{"version":3,"sources":["../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/lodash/_root.js","../node_modules/lodash/isArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/lodash/_getNative.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_toKey.js","../node_modules/object-assign/index.js","../node_modules/webpack/buildin/module.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_Map.js","../node_modules/lodash/isObject.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/keys.js","../node_modules/lodash/isLength.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/isSymbol.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/prop-types/index.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/eq.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_castPath.js","../node_modules/react-csv/lib/core.js","../node_modules/react-csv/lib/metaProps.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/technicalindicators/lib/Utils/LinkedList.js","../node_modules/technicalindicators/lib/Utils/FixedSizeLinkedList.js","../node_modules/technicalindicators/lib/StockData.js","../node_modules/technicalindicators/lib/config.js","../node_modules/technicalindicators/lib/Utils/NumberFormatter.js","../node_modules/technicalindicators/lib/indicator/indicator.js","../node_modules/technicalindicators/lib/moving_averages/SMA.js","../node_modules/technicalindicators/lib/moving_averages/EMA.js","../node_modules/technicalindicators/lib/moving_averages/WMA.js","../node_modules/technicalindicators/lib/moving_averages/WEMA.js","../node_modules/technicalindicators/lib/moving_averages/MACD.js","../node_modules/technicalindicators/lib/Utils/AverageGain.js","../node_modules/technicalindicators/lib/Utils/AverageLoss.js","../node_modules/technicalindicators/lib/oscillators/RSI.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/technicalindicators/lib/Utils/SD.js","../node_modules/technicalindicators/lib/volatility/BollingerBands.js","../node_modules/technicalindicators/lib/moving_averages/WilderSmoothing.js","../node_modules/technicalindicators/lib/directionalmovement/MinusDM.js","../node_modules/technicalindicators/lib/directionalmovement/PlusDM.js","../node_modules/technicalindicators/lib/directionalmovement/TrueRange.js","../node_modules/technicalindicators/lib/directionalmovement/ADX.js","../node_modules/technicalindicators/lib/directionalmovement/ATR.js","../node_modules/technicalindicators/lib/momentum/ROC.js","../node_modules/technicalindicators/lib/momentum/KST.js","../node_modules/technicalindicators/lib/momentum/PSAR.js","../node_modules/technicalindicators/lib/momentum/Stochastic.js","../node_modules/technicalindicators/lib/momentum/WilliamsR.js","../node_modules/technicalindicators/lib/volume/ADL.js","../node_modules/technicalindicators/lib/volume/OBV.js","../node_modules/technicalindicators/lib/momentum/TRIX.js","../node_modules/technicalindicators/lib/volume/ForceIndex.js","../node_modules/technicalindicators/lib/oscillators/CCI.js","../node_modules/technicalindicators/lib/oscillators/AwesomeOscillator.js","../node_modules/technicalindicators/lib/volume/VWAP.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/technicalindicators/lib/volume/VolumeProfile.js","../node_modules/technicalindicators/lib/chart_types/TypicalPrice.js","../node_modules/technicalindicators/lib/volume/MFI.js","../node_modules/technicalindicators/lib/momentum/StochasticRSI.js","../node_modules/technicalindicators/lib/Utils/Highest.js","../node_modules/technicalindicators/lib/Utils/Lowest.js","../node_modules/technicalindicators/lib/Utils/Sum.js","../node_modules/technicalindicators/lib/chart_types/Renko.js","../node_modules/technicalindicators/lib/chart_types/HeikinAshi.js","../node_modules/technicalindicators/lib/candlestick/CandlestickFinder.js","../node_modules/technicalindicators/lib/candlestick/MorningStar.js","../node_modules/technicalindicators/lib/candlestick/BullishEngulfingPattern.js","../node_modules/technicalindicators/lib/candlestick/BullishHarami.js","../node_modules/technicalindicators/lib/candlestick/BullishHaramiCross.js","../node_modules/technicalindicators/lib/candlestick/Doji.js","../node_modules/technicalindicators/lib/candlestick/MorningDojiStar.js","../node_modules/technicalindicators/lib/candlestick/DownsideTasukiGap.js","../node_modules/technicalindicators/lib/candlestick/BullishMarubozu.js","../node_modules/technicalindicators/lib/candlestick/PiercingLine.js","../node_modules/technicalindicators/lib/candlestick/ThreeWhiteSoldiers.js","../node_modules/technicalindicators/lib/candlestick/BullishHammerStick.js","../node_modules/technicalindicators/lib/candlestick/BullishInvertedHammerStick.js","../node_modules/technicalindicators/lib/candlestick/BearishHammerStick.js","../node_modules/technicalindicators/lib/candlestick/BearishInvertedHammerStick.js","../node_modules/technicalindicators/lib/candlestick/HammerPattern.js","../node_modules/technicalindicators/lib/candlestick/HammerPatternUnconfirmed.js","../node_modules/technicalindicators/lib/candlestick/TweezerBottom.js","../node_modules/technicalindicators/lib/candlestick/Bullish.js","../node_modules/technicalindicators/lib/candlestick/BearishEngulfingPattern.js","../node_modules/technicalindicators/lib/candlestick/BearishHarami.js","../node_modules/technicalindicators/lib/candlestick/BearishHaramiCross.js","../node_modules/technicalindicators/lib/candlestick/EveningDojiStar.js","../node_modules/technicalindicators/lib/candlestick/EveningStar.js","../node_modules/technicalindicators/lib/candlestick/BearishMarubozu.js","../node_modules/technicalindicators/lib/candlestick/ThreeBlackCrows.js","../node_modules/technicalindicators/lib/candlestick/HangingMan.js","../node_modules/technicalindicators/lib/candlestick/HangingManUnconfirmed.js","../node_modules/technicalindicators/lib/candlestick/ShootingStar.js","../node_modules/technicalindicators/lib/candlestick/ShootingStarUnconfirmed.js","../node_modules/technicalindicators/lib/candlestick/TweezerTop.js","../node_modules/technicalindicators/lib/candlestick/Bearish.js","../node_modules/technicalindicators/lib/candlestick/AbandonedBaby.js","../node_modules/technicalindicators/lib/candlestick/DarkCloudCover.js","../node_modules/technicalindicators/lib/candlestick/DragonFlyDoji.js","../node_modules/technicalindicators/lib/candlestick/GraveStoneDoji.js","../node_modules/technicalindicators/lib/candlestick/BullishSpinningTop.js","../node_modules/technicalindicators/lib/candlestick/BearishSpinningTop.js","../node_modules/technicalindicators/lib/drawingtools/fibonacci.js","../node_modules/technicalindicators/lib/ichimoku/IchimokuCloud.js","../node_modules/technicalindicators/lib/volatility/KeltnerChannels.js","../node_modules/technicalindicators/lib/volatility/ChandelierExit.js","../node_modules/technicalindicators/lib/Utils/CrossUp.js","../node_modules/technicalindicators/lib/Utils/CrossDown.js","../node_modules/react-dom/index.js","../node_modules/react-chartjs-2/es/index.js","../node_modules/react-csv/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/process/browser.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/chart.js/dist/Chart.js","../node_modules/moment/moment.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsNative.js","../node_modules/webpack/buildin/global.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/keyBy.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_createAggregator.js","../node_modules/lodash/_arrayAggregator.js","../node_modules/lodash/_baseAggregator.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/get.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/identity.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react-csv/lib/index.js","../node_modules/react-csv/lib/components/Download.js","../node_modules/react-csv/lib/components/Link.js"],"names":["module","exports","require","freeGlobal","freeSelf","self","Object","root","Function","isArray","Array","_slicedToArray","arr","i","Symbol","iterator","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","value","length","err","unsupportedIterableToArray","TypeError","baseIsNative","getValue","object","key","_unsupportedIterableToArray","o","minLen","n","prototype","toString","call","slice","constructor","name","from","test","getRawTag","objectToString","symToStringTag","toStringTag","_arrayLikeToArray","len","arr2","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","entries","index","this","clear","entry","set","get","has","eq","array","nativeCreate","getNative","isKeyable","map","data","__data__","isSymbol","result","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","toObject","val","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","join","test3","split","forEach","letter","keys","shouldUseNative","target","source","symbols","to","s","arguments","webpackPolyfill","deprecate","paths","children","defineProperty","enumerable","l","baseIsEqualDeep","isObjectLike","baseIsEqual","other","bitmask","customizer","stack","Map","type","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","arrayLikeKeys","baseKeys","isArrayLike","reIsDeepProp","reIsPlainProp","baseGetTag","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","Promise","then","_asyncToGenerator","fn","args","apply","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","size","isObject","tag","global","funcToString","func","e","SetCache","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","baseIsArguments","objectProto","isArguments","stubFalse","freeExports","nodeType","freeModule","Buffer","isBuffer","reIsUint","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","isFunction","isLength","srcValue","castPath","toKey","path","isKey","stringToPath","_typeof","obj","_toConsumableArray","isSafari","navigator","userAgent","isJsons","every","row","isArrays","jsonsHeaders","json","reduce","a","b","Set","concat","jsons2arrays","jsons","headers","headerLabels","headerKeys","header","label","getHeaderValue","property","foundValue","replace","p","splice","elementOrEmpty","element","joiner","separator","enclosingCharacter","filter","column","arrays2csv","jsons2csv","string2csv","toCSV","buildURI","uFEFF","csv","blob","Blob","dataURI","URL","window","webkitURL","createObjectURL","PropsNotForwarded","defaultProps","propTypes","_react","_propTypes","__esModule","oneOfType","string","isRequired","filename","bool","onClick","asyncOnClick","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","configurable","writable","_createClass","protoProps","staticProps","_setPrototypeOf","setPrototypeOf","__proto__","_inherits","subClass","superClass","create","_getPrototypeOf","getPrototypeOf","_possibleConstructorReturn","ReferenceError","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","Super","NewTarget","Item","prev","LinkedList","_length","_head","_tail","_current","tail","head","current","FixedSizeLinkedList","maintainHigh","maintainLow","maintainSum","totalPushed","periodHigh","periodLow","Infinity","periodSum","_push","add","lastShift","shift","calculatePeriodHigh","calculatePeriodLow","resetCursor","CandleData","CandleList","open","high","low","close","volume","timestamp","config","setConfig","getConfig","format","v","precision","parseFloat","toPrecision","IndicatorInput","Indicator","input","nf","reversedInput","values","reverse","SMA","period","price","genFn","list","sum","counter","generator","tick","sma","reverseInputs","calculate","EMA","priceArray","exponent","prevEma","nextValue","ema","WMA","denominator","wma","WEMA","wema","MACD","oscillatorMAtype","SimpleMAOscillator","signalMAtype","SimpleMASignal","fastMAProducer","fastPeriod","slowMAProducer","slowPeriod","signalMAProducer","signalPeriod","fast","slow","signal","histogram","isNaN","macd","AverageGain","currentValue","gainSum","lastValue","gain","avgGain","averagegain","AverageLoss","lossSum","loss","avgLoss","averageloss","RSI","GainProvider","LossProvider","lastAvgGain","lastAvgLoss","currentRSI","RS","toFixed","rsi","_createForOfIteratorHelper","allowArrayLike","it","F","f","normalCompletion","didErr","step","_e2","SD","currentSet","mean","x","Math","pow","sd","sqrt","nextResult","BollingerBands","stdDev","calcSMA","calcsd","middle","upper","lower","pb","bollingerbands","WilderSmoothing","MDM","lows","highs","last","upMove","downMove","minusDm","PDM","plusDm","TrueRange","closes","previousClose","max","abs","truerange","ADX","plusDM","minusDM","emaPDM","emaMDM","emaTR","emaDX","tr","calcTr","calcPDM","calcMDM","lastATR","lastAPDM","lastAMDM","lastPDI","lastMDI","diDiff","lastDX","smoothedDX","adx","pdi","mdi","ATR","trueRange","trange","avgTrueRange","atr","ROC","pastPeriods","roc","KST","rocPer1","ROCPer1","rocPer2","ROCPer2","rocPer3","ROCPer3","rocPer4","ROCPer4","smaPer1","SMAROCPer1","smaPer2","SMAROCPer2","smaPer3","SMAROCPer3","smaPer4","SMAROCPer4","roc1","roc2","roc3","roc4","sma1","sma2","sma3","sma4","signalSMA","firstResult","roc1Result","roc2Result","roc3Result","roc4Result","RCMA1","RCMA2","RCMA3","RCMA4","kst","PSAR","up","accel","curr","sar","extreme","min","furthest","psar","Stochastic","pastHighPeriods","pastLowPeriods","dSma","k","d","stochastic","WilliamsR","williamsR","williamsr","ADL","volumes","moneyFlowMultiplier","moneyFlowVolume","round","tickHigh","tickInput","adl","OBV","lastClose","obv","TRIX","emaOfema","emaOfemaOfema","trixROC","initialema","smoothedResult","doubleSmoothedResult","trix","ForceIndex","emaForceIndex","previousTick","forceIndex","forceindex","CCI","currentTpSet","tpSMACalculator","tp","smaTp","cci","AwesomeOscillator","slowSMA","fastSMA","medianPrice","slowSmaValue","fastSmaValue","awesomeoscillator","VWAP","cumulativeTotal","cumulativeVolume","typicalPrice","total","vwap","arrayLikeToArray","iter","VolumeProfile","opens","bars","noOfBars","low1","high1","barRange","lastEnd","rangeStart","rangeEnd","bullishVolume","bearishVolume","totalVolume","priceBar","priceBarStart","priceBarEnd","priceBarOpen","priceBarClose","priceBarVolume","volumeprofile","TypicalPrice","priceInput","MFI","positiveFlow","negativeFlow","rawMoneyFlow","typicalPriceValue","prevousTypicalPrice","positionMoney","negativeMoney","positiveFlowForPeriod","negativeFlowForPeriod","mfi","StochasticRSI","rsiPeriod","stochasticPeriod","kPeriod","dPeriod","lastRSI","stochasticInput","stochasticRSI","stochRSI","stochasticrsi","Highest","periodList","FixedSizedLinkedList","highest","Lowest","lowest","Sum","Renko","useATR","brickSize","atrResult","console","lastOpen","lastHigh","lastLow","lastVolume","candleData","absoluteMovementFromClose","absoluteMovementFromOpen","calculated","reference","Low","renko","HeikinAshi","newClose","newOpen","newHigh","newLow","heikinashi","CandlestickFinder","requiredCount","warn","strategyFn","logic","_generateDataForCandleStick","hasIndex","_getLastDataForCandleStick","returnVal","currentData","MorningStar","firstdaysOpen","firstdaysClose","firstdaysLow","seconddaysClose","seconddaysHigh","seconddaysLow","thirddaysOpen","thirddaysClose","morningstar","hasPattern","BullishEngulfingPattern","seconddaysOpen","bullishengulfingpattern","BullishHarami","firstdaysHigh","bullishharami","BullishHaramiCross","isBullishHaramiCrossPattern","isSecondDayDoji","approximateEqual","bullishharamicross","Doji","daysOpen","daysClose","daysHigh","daysLow","isOpenEqualsClose","isHighEqualsOpen","isLowEqualsClose","doji","MorningDojiStar","firstdaysMidpoint","isFirstBearish","dojiExists","morningdojistar","DownsideTasukiGap","downsidetasukigap","BullishMarubozu","bullishmarubozu","PiercingLine","piercingline","ThreeWhiteSoldiers","thirddaysHigh","threewhitesoldiers","BullishHammerStick","isBullishHammer","bullishhammerstick","BullishInvertedHammerStick","isBullishInvertedHammer","bullishinvertedhammerstick","BearishHammerStick","isBearishHammer","bearishhammerstick","BearishInvertedHammerStick","isBearishInvertedHammer","bearishinvertedhammerstick","HammerPattern","isPattern","downwardTrend","includesHammer","hasConfirmation","confirm","end","gains","losses","start","possibleHammerData","possibleHammer","possibleConfirmation","hammerpattern","HammerPatternUnconfirmed","hammerpatternunconfirmed","TweezerBottom","tweezerbottom","bullishPatterns","BullishPatterns","state","pattern","bullish","BearishEngulfingPattern","bearishengulfingpattern","BearishHarami","bearishharami","BearishHaramiCross","isBearishHaramiCrossPattern","bearishharamicross","EveningDojiStar","isFirstBullish","eveningdojistar","EveningStar","eveningstar","BearishMarubozu","bearishmarubozu","ThreeBlackCrows","thirddaysLow","threeblackcrows","HangingMan","upwardTrend","hangingman","HangingManUnconfirmed","hangingmanunconfirmed","ShootingStar","shootingstar","ShootingStarUnconfirmed","shootingstarunconfirmed","TweezerTop","tweezertop","bearishPatterns","BearishPatterns","bearish","AbandonedBaby","abandonedbaby","DarkCloudCover","darkcloudcover","DragonFlyDoji","dragonflydoji","GraveStoneDoji","gravestonedoji","BullishSpinningTop","bodyLength","upperShadowLength","lowerShadowLength","bullishspinningtop","BearishSpinningTop","bearishspinningtop","fibonacciretracement","levels","level","IchimokuCloud","params","conversionPeriod","basePeriod","spanPeriod","displacement","currentConversionData","currentBaseData","currenSpanData","periodCounter","conversionLine","baseLine","spanA","spanB","conversion","base","ichimokucloud","KeltnerChannelsInput","maPeriod","atrPeriod","useSMA","multiplier","KeltnerChannelsOutput","KeltnerChannels","maProducer","atrProducer","ma","keltnerchannels","ChandelierExitInput","ChandelierExitOutput","ChandelierExit","dataCollector","exitLong","exitShort","chandelierexit","CrossUp","lineA","lineB","currentLineA","currentLineB","unshift","valueA","valueB","pointer","crossUp","CrossDown","crossDown","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","_chart","defaults","Scatter","Bubble","Polar","Radar","HorizontalBar","Bar","Line","Pie","Doughnut","_interopRequireDefault","_isEqual","_keyBy","default","_extends","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","ownKeys","enumerableOnly","sym","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_isNativeReflectConstruct","_assertThisInitialized","NODE_ENV","process","ChartComponent","_React$Component","_super","_this","event","chartInstance","_this$props","getDatasetAtEvent","getElementAtEvent","getElementsAtEvent","onElementsClick","renderChart","redraw","destroyChart","updateChart","nextProps","_this$props2","options","plugins","legend","height","width","nextData","transformDataProp","shadowDataProp","datasets","saveCurrentDatasets","isDev","usingCustomKeyProvider","datasetKeyProvider","getLabelAsKey","multipleDatasets","shouldWarn","dataset","_this2","getCurrentDatasets","_this3","memoizeDataProps","helpers","configMerge","currentDatasets","nextDatasets","checkDatasets","currentDatasetsIndexed","point","pid","otherProps","rest","update","_this$props3","node","destroy","_this$props4","id","createElement","ref","handleOnClick","Component","number","arrayOf","propName","componentName","controllers","Error","display","position","_default","_React$Component2","_super2","_this4","_ref","_React$Component3","_super3","_this5","_ref2","_React$Component4","_super4","_this6","_ref3","_React$Component5","_super5","_this7","_ref4","_React$Component6","_super6","_this8","_ref5","_React$Component7","_super7","_this9","_ref6","_React$Component8","_super8","_this10","_ref7","_React$Component9","_super9","_this11","_ref8","_React$Component10","_super10","_this12","_ref9","Fragment","StrictMode","Profiler","q","r","t","Suspense","u","for","w","z","c","encodeURIComponent","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","B","C","context","refs","updater","D","E","isReactComponent","setState","forceUpdate","isPureReactComponent","G","H","I","__self","__source","J","h","g","m","$$typeof","_owner","L","M","N","escape","O","K","y","P","Q","_status","_result","R","S","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","Children","count","toArray","only","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","bind","createRef","forwardRef","render","isValidElement","lazy","_payload","_init","memo","compare","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","version","aa","ba","ca","da","ea","fa","document","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","toLowerCase","oa","pa","toUpperCase","qa","na","la","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ra","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","trim","match","Oa","Pa","prepareStackTrace","displayName","Qa","_render","Ra","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","cb","ownerDocument","eb","db","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","ob","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","lastChild","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","style","setProperty","charAt","substring","ub","menuitem","area","br","col","embed","hr","img","keygen","link","meta","param","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","addEventListener","removeEventListener","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","flags","$b","memoizedState","dehydrated","ac","cc","child","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","eventPhase","bubbles","cancelable","timeStamp","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Rd","code","location","repeat","locale","which","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Zd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","password","range","search","tel","text","time","url","week","me","ne","oe","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","offset","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","href","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","listener","$e","af","bf","random","cf","df","capture","passive","Nb","ef","ff","parentWindow","gf","hf","je","char","ke","jf","kf","lf","mf","autoFocus","__html","of","setTimeout","pf","clearTimeout","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","payload","callback","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","contextType","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","mode","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","documentElement","tagName","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createElementNS","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","message","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","ceil","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","unstable_observedBits","unmount","querySelectorAll","JSON","stringify","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","floor","port2","port1","onmessage","postMessage","pop","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","method","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","noop","nextTick","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","getShim","ReactPropTypes","symbol","any","instanceOf","objectOf","oneOf","shape","exact","checkPropTypes","PropTypes","moment","createCommonjsModule","getCjsExportFromNamespace","colorName","conversions","reverseKeywords","convert","rgb","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","model","comparativeDistance","delta","rdif","gdif","bdif","diff","diffc","reversed","currentClosestKeyword","currentClosestDistance","distance","t1","t2","t3","smin","lmin","sl","vmin","bl","ratio","y2","x2","z2","atan2","PI","cos","sin","ansi","mult","rem","colorString","integer","parseInt","hue","chroma","pure","buildGraph","graph","models","parent","deriveBFS","fromModel","adjacents","adjacent","wrapConversion","toModel","cur","route","wrapRaw","wrappedFn","wrapRounded","routes","raw","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","abbr","rgba","per","hexAlpha","scale","alpha","hsla","vals","hexDouble","reverseNames","num","str","Color","valid","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","color2","lum1","lum2","contrastRatio","dark","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","toJSON","clone","prop","spaces","maxes","getValues","space","capped","chans","sname","svalues","chartjsColor","isValidKey","uid","isNullOrUndef","substr","isFinite","Number","valueOrDefault","valueAtIndexOrDefault","thisArg","each","loopable","arrayEquals","a0","a1","ilen","v0","v1","klen","_merger","tval","sval","merge","_mergerIf","mergeIf","sources","merger","dst","src","inherits","extensions","ChartElement","Surrogate","__super__","_deprecated","scope","previous","helpers_core","callCallback","item","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","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","chart","ctx","clearRect","roundedRect","radius","right","bottom","moveTo","arc","closePath","rect","drawPoint","rotation","xOffset","yOffset","cornerRadius","rad","save","translate","drawImage","restore","beginPath","lineTo","SQRT1_2","fill","stroke","_isPointInArea","epsilon","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","helpers_options","toLineHeight","matches","toPadding","_parseFont","globalDefaults","fontSize","fontFamily","fontStyle","inputs","cacheable","exports$2","_factorize","sort","log10","LOG10E","powerOf10","helpers_math","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","getLtrAdapter","_itemWidth","helpers$1","easing","canvas","math","rtl","overrideTextDirection","direction","original","getPropertyValue","getPropertyPriority","prevTextDirection","restoreTextDirection","interpolate","ease","actual","origin","c0","c1","Element","configuration","initialize","_type","hidden","pivot","_view","_model","_start","tooltipPosition","hasValue","isNumber","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","duration","onProgress","onComplete","core_animations","animations","request","addAnimation","animating","cancelAnimation","findIndex","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","_chartjs","res","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","scales","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","_update","_data","createMetaDataset","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_config","_cachedDataOpts","easingValue","elements","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","backgroundColor","borderColor","hover","readKey","datasetOpts","custom","elementOptions","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","vm","inner","fullCircles","drawBorder","borderAlign","lineWidth","lineJoin","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","points","_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","borderSkipped","horizontal","parseBorderWidth","maxW","maxH","boundingRects","bounds","border","outer","skipX","skipY","rectangle","element_rectangle","rects","fillRect","Arc","Point","Rectangle","deprecated","valueOrDefault$3","computeMinSampleSize","pixels","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","percent","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","center","_getStacks","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","tooltips","callbacks","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","outerHTML","generateLabels","controller","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","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","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","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","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","bubble","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","handler","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","indexMode","items","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","pos","sortByWeight","wrapBoxes","boxes","box","layoutBoxes","setLayoutDims","layouts","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","getContext","platform_dom","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","eventListenerOptions","supports","createEvent","fromNativeEvent","throttled","ticking","createDiv","cls","el","className","createResizer","maxSize","resizer","expand","shrink","_reset","onScroll","watchForRender","expando","proxy","renderProxy","reflow","offsetParent","classList","unwatchForRender","remove","addResizeListener","container","maintainAspectRatio","clientWidth","removeResizeListener","injectCSS","rootNode","css","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","getRootNode","host","getElementById","releaseContext","proxies","addEvent","removeEvent","platform","core_plugins","_plugins","_cacheId","register","plugin","unregister","idx","getAll","notify","hook","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","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","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","legendColorBackground","getTooltipSize","tooltip","combinedBodyLength","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","olf","orf","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","quadraticCurveTo","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","Chart","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementsAtXAxis","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","core_controller","Controller","types","scaleMerge","core_helpers","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","_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","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","loop","niceNum","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","evt","originalEvent","boundingRect","getBoundingClientRect","paddingLeft","paddingTop","paddingRight","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","clientHeight","currentStyle","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","garbageCollect","thing","nestedThing","longest","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","formats","parse","startOf","endOf","_create","override","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","tickString","logTick","numExponential","toExponential","numDecimal","logarithmic","remain","valueOrDefault$a","sample","numItems","increment","getPixelForGridLine","validIndex","lineValue","caches","computeLabelSizes","tickFonts","tickFont","nestedLabel","widest","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","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","xLabels","yLabels","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","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","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","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","quarter","year","UNITS","sorter","arrayUnique","hash","out","getMin","getMax","buildLookupTable","timestamps","distribution","table","lookup","mid","i0","i1","lo","interpolate$1","skey","tkey","span","toTimestamp","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","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","_id","amount","filler","propagate","mappers","boundary","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","cx","cy","computeBoundary","resolveTarget","visited","visible","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","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","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","factory","hookCallback","some","hooks","setHookCallback","hasOwnProp","isObjectEmpty","isUndefined","isDate","createUTC","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","_isValid","parsedParts","isNowValid","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","momentProperties","updateInProgress","copyConfig","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","msg","suppressDeprecationWarnings","firstTime","deprecationHandler","deprecations","deprecateSimple","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","output","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","defaultLongDateFormat","LTS","LT","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ss","mm","ww","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","getPrioritizedUnits","unitsObj","isLeapYear","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","daysInMonth","stringGet","stringSet","prioritized","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","isPM","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","exec","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","createLocal","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromObject","dayOrDate","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","utcOffset","offsetFromString","chunkOffset","matcher","parts","cloneWithOffset","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","isAdding","invalid","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","sod","calendarFormat","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","unix","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","assocIndexOf","pairs","LARGE_ARRAY_SIZE","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","nativeObjectToString","isOwn","unmasked","coreJsData","maskSrcKey","IE_PROTO","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","setCacheAdd","setCacheHas","predicate","Uint8Array","mapToArray","setToArray","symbolProto","symbolValueOf","byteLength","byteOffset","buffer","getAllKeys","objProps","objLength","objStacked","skipCtor","objValue","objCtor","othCtor","baseGetAllKeys","getSymbols","arrayPush","keysFunc","symbolsFunc","arrayFilter","stubArray","nativeGetSymbols","resIndex","baseTimes","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","iteratee","typedArrayTags","freeProcess","isPrototype","nativeKeys","Ctor","overArg","transform","DataView","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","ctorString","baseAssignValue","keyBy","createAggregator","arrayAggregator","baseAggregator","baseIteratee","initializer","accumulator","baseEach","baseForOwn","createBaseEach","baseFor","createBaseFor","fromRight","eachFunc","baseMatches","baseMatchesProperty","identity","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","isStrictComparable","hasIn","baseGet","memoizeCapped","rePropName","reEscapeChar","charCodeAt","quote","subString","memoize","resolver","memoized","Cache","baseToString","arrayMap","symbolToString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep","jsx","jsxs","CSVLink","CSVDownload","_Download2","_Link2","_react2","_core","_metaProps","_props","specs","page","prevProps","_props2","msSaveOrOpenBlob","_props3","msSaveBlob","proceed","handleLegacy","handleAsyncClick","handleSyncClick","_props4","download","handleClick"],"mappings":";2HAAAA,EAAOC,QAAU,EAAQ,K,6BCGvBD,EAAOC,QAAUC,EAAQ,K,6BCAzBF,EAAOC,QAAUC,EAAQ,M,gBCH3B,IAAIC,EAAaD,EAAQ,IAGrBE,EAA0B,iBAARC,MAAoBA,MAAQA,KAAKC,SAAWA,QAAUD,KAGxEE,EAAOJ,GAAcC,GAAYI,SAAS,cAATA,GAErCR,EAAOC,QAAUM,G,cCejB,IAAIE,EAAUC,MAAMD,QAEpBT,EAAOC,QAAUQ,G,0ECrBF,SAASE,EAAeC,EAAKC,GAC1C,OCLa,SAAyBD,GACtC,GAAIF,MAAMD,QAAQG,GAAM,OAAOA,EDIxB,CAAeA,IELT,SAA+BA,EAAKC,GACjD,GAAsB,qBAAXC,QAA4BA,OAAOC,YAAYT,OAAOM,GAAjE,CACA,IAAII,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAKC,EAET,IACE,IAAK,IAAiCC,EAA7BC,EAAKV,EAAIE,OAAOC,cAAmBE,GAAMI,EAAKC,EAAGC,QAAQC,QAChER,EAAKS,KAAKJ,EAAGK,QAETb,GAAKG,EAAKW,SAAWd,GAH8CI,GAAK,IAK9E,MAAOW,GACPV,GAAK,EACLC,EAAKS,EACL,QACA,IACOX,GAAsB,MAAhBK,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIJ,EAAI,MAAMC,GAIlB,OAAOH,GFnBuB,CAAqBJ,EAAKC,IAAM,OAAAgB,EAAA,GAA2BjB,EAAKC,IGLjF,WACb,MAAM,IAAIiB,UAAU,6IHIgF,K,gBILtG,IAAIC,EAAe7B,EAAQ,IACvB8B,EAAW9B,EAAQ,IAevBF,EAAOC,QALP,SAAmBgC,EAAQC,GACzB,IAAIR,EAAQM,EAASC,EAAQC,GAC7B,OAAOH,EAAaL,GAASA,OAAQN,I,6BCbvC,8CACe,SAASe,EAA4BC,EAAGC,GACrD,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,YAAiBA,EAAGC,GACtD,IAAIC,EAAIhC,OAAOiC,UAAUC,SAASC,KAAKL,GAAGM,MAAM,GAAI,GAEpD,MADU,WAANJ,GAAkBF,EAAEO,cAAaL,EAAIF,EAAEO,YAAYC,MAC7C,QAANN,GAAqB,QAANA,EAAoB5B,MAAMmC,KAAKT,GACxC,cAANE,GAAqB,2CAA2CQ,KAAKR,GAAW,YAAiBF,EAAGC,QAAxG,K,gBCPF,IAAIvB,EAASZ,EAAQ,IACjB6C,EAAY7C,EAAQ,IACpB8C,EAAiB9C,EAAQ,IAOzB+C,EAAiBnC,EAASA,EAAOoC,iBAAc9B,EAkBnDpB,EAAOC,QATP,SAAoByB,GAClB,OAAa,MAATA,OACeN,IAAVM,EAdQ,qBADL,gBAiBJuB,GAAkBA,KAAkB3C,OAAOoB,GAC/CqB,EAAUrB,GACVsB,EAAetB,K,cCIrB1B,EAAOC,QAJP,SAAsByB,GACpB,OAAgB,MAATA,GAAiC,iBAATA,I,6BCzBlB,SAASyB,EAAkBvC,EAAKwC,IAClC,MAAPA,GAAeA,EAAMxC,EAAIe,UAAQyB,EAAMxC,EAAIe,QAE/C,IAAK,IAAId,EAAI,EAAGwC,EAAO,IAAI3C,MAAM0C,GAAMvC,EAAIuC,EAAKvC,IAC9CwC,EAAKxC,GAAKD,EAAIC,GAGhB,OAAOwC,EAPT,mC,gBCAA,IAAIC,EAAiBpD,EAAQ,IACzBqD,EAAkBrD,EAAQ,IAC1BsD,EAAetD,EAAQ,IACvBuD,EAAevD,EAAQ,IACvBwD,EAAexD,EAAQ,IAS3B,SAASyD,EAAUC,GACjB,IAAIC,GAAS,EACTlC,EAAoB,MAAXiC,EAAkB,EAAIA,EAAQjC,OAG3C,IADAmC,KAAKC,UACIF,EAAQlC,GAAQ,CACvB,IAAIqC,EAAQJ,EAAQC,GACpBC,KAAKG,IAAID,EAAM,GAAIA,EAAM,KAK7BL,EAAUpB,UAAUwB,MAAQT,EAC5BK,EAAUpB,UAAV,OAAgCgB,EAChCI,EAAUpB,UAAU2B,IAAMV,EAC1BG,EAAUpB,UAAU4B,IAAMV,EAC1BE,EAAUpB,UAAU0B,IAAMP,EAE1B1D,EAAOC,QAAU0D,G,gBC/BjB,IAAIS,EAAKlE,EAAQ,IAoBjBF,EAAOC,QAVP,SAAsBoE,EAAOnC,GAE3B,IADA,IAAIP,EAAS0C,EAAM1C,OACZA,KACL,GAAIyC,EAAGC,EAAM1C,GAAQ,GAAIO,GACvB,OAAOP,EAGX,OAAQ,I,gBCjBV,IAGIb,EAHOZ,EAAQ,GAGDY,OAElBd,EAAOC,QAAUa,G,gBCLjB,IAGIwD,EAHYpE,EAAQ,EAGLqE,CAAUjE,OAAQ,UAErCN,EAAOC,QAAUqE,G,gBCLjB,IAAIE,EAAYtE,EAAQ,IAiBxBF,EAAOC,QAPP,SAAoBwE,EAAKvC,GACvB,IAAIwC,EAAOD,EAAIE,SACf,OAAOH,EAAUtC,GACbwC,EAAmB,iBAAPxC,EAAkB,SAAW,QACzCwC,EAAKD,M,gBCdX,IAAIG,EAAW1E,EAAQ,IAoBvBF,EAAOC,QARP,SAAeyB,GACb,GAAoB,iBAATA,GAAqBkD,EAASlD,GACvC,OAAOA,EAET,IAAImD,EAAUnD,EAAQ,GACtB,MAAkB,KAAVmD,GAAkB,EAAInD,IAdjB,SAcwC,KAAOmD,I,6BCT9D,IAAIC,EAAwBxE,OAAOwE,sBAC/BC,EAAiBzE,OAAOiC,UAAUwC,eAClCC,EAAmB1E,OAAOiC,UAAU0C,qBAExC,SAASC,EAASC,GACjB,GAAY,OAARA,QAAwB/D,IAAR+D,EACnB,MAAM,IAAIrD,UAAU,yDAGrB,OAAOxB,OAAO6E,GA+CfnF,EAAOC,QA5CP,WACC,IACC,IAAKK,OAAO8E,OACX,OAAO,EAMR,IAAIC,EAAQ,IAAIC,OAAO,OAEvB,GADAD,EAAM,GAAK,KACkC,MAAzC/E,OAAOiF,oBAAoBF,GAAO,GACrC,OAAO,EAKR,IADA,IAAIG,EAAQ,GACH3E,EAAI,EAAGA,EAAI,GAAIA,IACvB2E,EAAM,IAAMF,OAAOG,aAAa5E,IAAMA,EAKvC,GAAwB,eAHXP,OAAOiF,oBAAoBC,GAAOf,KAAI,SAAUnC,GAC5D,OAAOkD,EAAMlD,MAEHoD,KAAK,IACf,OAAO,EAIR,IAAIC,EAAQ,GAIZ,MAHA,uBAAuBC,MAAM,IAAIC,SAAQ,SAAUC,GAClDH,EAAMG,GAAUA,KAGf,yBADExF,OAAOyF,KAAKzF,OAAO8E,OAAO,GAAIO,IAAQD,KAAK,IAM9C,MAAO9D,GAER,OAAO,GAIQoE,GAAoB1F,OAAO8E,OAAS,SAAUa,EAAQC,GAKtE,IAJA,IAAIrD,EAEAsD,EADAC,EAAKlB,EAASe,GAGTI,EAAI,EAAGA,EAAIC,UAAU3E,OAAQ0E,IAAK,CAG1C,IAAK,IAAInE,KAFTW,EAAOvC,OAAOgG,UAAUD,IAGnBtB,EAAetC,KAAKI,EAAMX,KAC7BkE,EAAGlE,GAAOW,EAAKX,IAIjB,GAAI4C,EAAuB,CAC1BqB,EAAUrB,EAAsBjC,GAChC,IAAK,IAAIhC,EAAI,EAAGA,EAAIsF,EAAQxE,OAAQd,IAC/BmE,EAAiBvC,KAAKI,EAAMsD,EAAQtF,MACvCuF,EAAGD,EAAQtF,IAAMgC,EAAKsD,EAAQtF,MAMlC,OAAOuF,I,cCxFRpG,EAAOC,QAAU,SAASD,GAoBzB,OAnBKA,EAAOuG,kBACXvG,EAAOwG,UAAY,aACnBxG,EAAOyG,MAAQ,GAEVzG,EAAO0G,WAAU1G,EAAO0G,SAAW,IACxCpG,OAAOqG,eAAe3G,EAAQ,SAAU,CACvC4G,YAAY,EACZ1C,IAAK,WACJ,OAAOlE,EAAO6G,KAGhBvG,OAAOqG,eAAe3G,EAAQ,KAAM,CACnC4G,YAAY,EACZ1C,IAAK,WACJ,OAAOlE,EAAOa,KAGhBb,EAAOuG,gBAAkB,GAEnBvG,I,gBCpBR,IAAI8G,EAAkB5G,EAAQ,IAC1B6G,EAAe7G,EAAQ,GA0B3BF,EAAOC,QAVP,SAAS+G,EAAYtF,EAAOuF,EAAOC,EAASC,EAAYC,GACtD,OAAI1F,IAAUuF,IAGD,MAATvF,GAA0B,MAATuF,IAAmBF,EAAarF,KAAWqF,EAAaE,GACpEvF,IAAUA,GAASuF,IAAUA,EAE/BH,EAAgBpF,EAAOuF,EAAOC,EAASC,EAAYH,EAAaI,M,gBCxBzE,IAIIC,EAJYnH,EAAQ,EAIdqE,CAHCrE,EAAQ,GAGO,OAE1BF,EAAOC,QAAUoH,G,cCwBjBrH,EAAOC,QALP,SAAkByB,GAChB,IAAI4F,SAAc5F,EAClB,OAAgB,MAATA,IAA0B,UAAR4F,GAA4B,YAARA,K,gBC3B/C,IAAIC,EAAgBrH,EAAQ,IACxBsH,EAAiBtH,EAAQ,IACzBuH,EAAcvH,EAAQ,IACtBwH,EAAcxH,EAAQ,IACtByH,EAAczH,EAAQ,IAS1B,SAAS0H,EAAShE,GAChB,IAAIC,GAAS,EACTlC,EAAoB,MAAXiC,EAAkB,EAAIA,EAAQjC,OAG3C,IADAmC,KAAKC,UACIF,EAAQlC,GAAQ,CACvB,IAAIqC,EAAQJ,EAAQC,GACpBC,KAAKG,IAAID,EAAM,GAAIA,EAAM,KAK7B4D,EAASrF,UAAUwB,MAAQwD,EAC3BK,EAASrF,UAAT,OAA+BiF,EAC/BI,EAASrF,UAAU2B,IAAMuD,EACzBG,EAASrF,UAAU4B,IAAMuD,EACzBE,EAASrF,UAAU0B,IAAM0D,EAEzB3H,EAAOC,QAAU2H,G,gBC/BjB,IAAIC,EAAgB3H,EAAQ,KACxB4H,EAAW5H,EAAQ,KACnB6H,EAAc7H,EAAQ,IAkC1BF,EAAOC,QAJP,SAAcgC,GACZ,OAAO8F,EAAY9F,GAAU4F,EAAc5F,GAAU6F,EAAS7F,K,cCChEjC,EAAOC,QALP,SAAkByB,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,mB,gBCDvB,IAAIjB,EAAUP,EAAQ,GAClB0E,EAAW1E,EAAQ,IAGnB8H,EAAe,mDACfC,EAAgB,QAuBpBjI,EAAOC,QAbP,SAAeyB,EAAOO,GACpB,GAAIxB,EAAQiB,GACV,OAAO,EAET,IAAI4F,SAAc5F,EAClB,QAAY,UAAR4F,GAA4B,UAARA,GAA4B,WAARA,GAC/B,MAAT5F,IAAiBkD,EAASlD,MAGvBuG,EAAcnF,KAAKpB,KAAWsG,EAAalF,KAAKpB,IAC1C,MAAVO,GAAkBP,KAASpB,OAAO2B,M,gBCzBvC,IAAIiG,EAAahI,EAAQ,GACrB6G,EAAe7G,EAAQ,GA2B3BF,EAAOC,QALP,SAAkByB,GAChB,MAAuB,iBAATA,GACXqF,EAAarF,IArBF,mBAqBYwG,EAAWxG,K,6BCzBvC,SAASyG,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQtG,EAAKuG,GACpE,IACE,IAAIC,EAAON,EAAIlG,GAAKuG,GAChB/G,EAAQgH,EAAKhH,MACjB,MAAOiH,GAEP,YADAL,EAAOK,GAILD,EAAKlH,KACP6G,EAAQ3G,GAERkH,QAAQP,QAAQ3G,GAAOmH,KAAKN,EAAOC,GAIxB,SAASM,EAAkBC,GACxC,OAAO,WACL,IAAI1I,EAAOyD,KACPkF,EAAO1C,UACX,OAAO,IAAIsC,SAAQ,SAAUP,EAASC,GACpC,IAAIF,EAAMW,EAAGE,MAAM5I,EAAM2I,GAEzB,SAAST,EAAM7G,GACbyG,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,OAAQ9G,GAGlE,SAAS8G,EAAO5G,GACduG,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,QAAS5G,GAGnE2G,OAAMnH,OA/BZ,mC,kCCiBEpB,EAAOC,QAAUC,EAAQ,GAARA,I,gBCjBnB,IAAIyD,EAAYzD,EAAQ,IACpBgJ,EAAahJ,EAAQ,IACrBiJ,EAAcjJ,EAAQ,IACtBkJ,EAAWlJ,EAAQ,IACnBmJ,EAAWnJ,EAAQ,IACnBoJ,EAAWpJ,EAAQ,IASvB,SAASqJ,EAAM3F,GACb,IAAIc,EAAOZ,KAAKa,SAAW,IAAIhB,EAAUC,GACzCE,KAAK0F,KAAO9E,EAAK8E,KAInBD,EAAMhH,UAAUwB,MAAQmF,EACxBK,EAAMhH,UAAN,OAA4B4G,EAC5BI,EAAMhH,UAAU2B,IAAMkF,EACtBG,EAAMhH,UAAU4B,IAAMkF,EACtBE,EAAMhH,UAAU0B,IAAMqF,EAEtBtJ,EAAOC,QAAUsJ,G,cCUjBvJ,EAAOC,QAJP,SAAYyB,EAAOuF,GACjB,OAAOvF,IAAUuF,GAAUvF,IAAUA,GAASuF,IAAUA,I,gBCjC1D,IAAIiB,EAAahI,EAAQ,GACrBuJ,EAAWvJ,EAAQ,IAmCvBF,EAAOC,QAVP,SAAoByB,GAClB,IAAK+H,EAAS/H,GACZ,OAAO,EAIT,IAAIgI,EAAMxB,EAAWxG,GACrB,MA5BY,qBA4BLgI,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,I,iBCjC/D,YACA,IAAIvJ,EAA8B,iBAAVwJ,GAAsBA,GAAUA,EAAOrJ,SAAWA,QAAUqJ,EAEpF3J,EAAOC,QAAUE,I,gCCFjB,IAGIyJ,EAHYpJ,SAAS+B,UAGIC,SAqB7BxC,EAAOC,QAZP,SAAkB4J,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOD,EAAanH,KAAKoH,GACzB,MAAOC,IACT,IACE,OAAQD,EAAO,GACf,MAAOC,KAEX,MAAO,K,gBCtBT,IAAIC,EAAW7J,EAAQ,IACnB8J,EAAY9J,EAAQ,IACpB+J,EAAW/J,EAAQ,IAiFvBF,EAAOC,QA9DP,SAAqBoE,EAAO4C,EAAOC,EAASC,EAAY+C,EAAW9C,GACjE,IAAI+C,EAjBqB,EAiBTjD,EACZkD,EAAY/F,EAAM1C,OAClB0I,EAAYpD,EAAMtF,OAEtB,GAAIyI,GAAaC,KAAeF,GAAaE,EAAYD,GACvD,OAAO,EAGT,IAAIE,EAAalD,EAAMlD,IAAIG,GACvBkG,EAAanD,EAAMlD,IAAI+C,GAC3B,GAAIqD,GAAcC,EAChB,OAAOD,GAAcrD,GAASsD,GAAclG,EAE9C,IAAIR,GAAS,EACTgB,GAAS,EACT2F,EA/BuB,EA+BftD,EAAoC,IAAI6C,OAAW3I,EAM/D,IAJAgG,EAAMnD,IAAII,EAAO4C,GACjBG,EAAMnD,IAAIgD,EAAO5C,KAGRR,EAAQuG,GAAW,CAC1B,IAAIK,EAAWpG,EAAMR,GACjB6G,EAAWzD,EAAMpD,GAErB,GAAIsD,EACF,IAAIwD,EAAWR,EACXhD,EAAWuD,EAAUD,EAAU5G,EAAOoD,EAAO5C,EAAO+C,GACpDD,EAAWsD,EAAUC,EAAU7G,EAAOQ,EAAO4C,EAAOG,GAE1D,QAAiBhG,IAAbuJ,EAAwB,CAC1B,GAAIA,EACF,SAEF9F,GAAS,EACT,MAGF,GAAI2F,GACF,IAAKR,EAAU/C,GAAO,SAASyD,EAAUE,GACnC,IAAKX,EAASO,EAAMI,KACfH,IAAaC,GAAYR,EAAUO,EAAUC,EAAUxD,EAASC,EAAYC,IAC/E,OAAOoD,EAAK/I,KAAKmJ,MAEjB,CACN/F,GAAS,EACT,YAEG,GACD4F,IAAaC,IACXR,EAAUO,EAAUC,EAAUxD,EAASC,EAAYC,GACpD,CACLvC,GAAS,EACT,OAKJ,OAFAuC,EAAK,OAAW/C,GAChB+C,EAAK,OAAWH,GACTpC,I,gBChFT,IAAIgG,EAAkB3K,EAAQ,KAC1B6G,EAAe7G,EAAQ,GAGvB4K,EAAcxK,OAAOiC,UAGrBwC,EAAiB+F,EAAY/F,eAG7BE,EAAuB6F,EAAY7F,qBAoBnC8F,EAAcF,EAAgB,WAAa,OAAOvE,UAApB,IAAsCuE,EAAkB,SAASnJ,GACjG,OAAOqF,EAAarF,IAAUqD,EAAetC,KAAKf,EAAO,YACtDuD,EAAqBxC,KAAKf,EAAO,WAGtC1B,EAAOC,QAAU8K,G,iBCnCjB,gBAAIxK,EAAOL,EAAQ,GACf8K,EAAY9K,EAAQ,KAGpB+K,EAA4ChL,IAAYA,EAAQiL,UAAYjL,EAG5EkL,EAAaF,GAAgC,iBAAVjL,GAAsBA,IAAWA,EAAOkL,UAAYlL,EAMvFoL,EAHgBD,GAAcA,EAAWlL,UAAYgL,EAG5B1K,EAAK6K,YAAShK,EAsBvCiK,GAnBiBD,EAASA,EAAOC,cAAWjK,IAmBf4J,EAEjChL,EAAOC,QAAUoL,I,mCCpCjB,IAGIC,EAAW,mBAoBftL,EAAOC,QAVP,SAAiByB,EAAOC,GACtB,IAAI2F,SAAc5F,EAGlB,SAFAC,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAAR2F,GACU,UAARA,GAAoBgE,EAASxI,KAAKpB,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQC,I,gBCrBjD,IAAI4J,EAAmBrL,EAAQ,KAC3BsL,EAAYtL,EAAQ,KACpBuL,EAAWvL,EAAQ,KAGnBwL,EAAmBD,GAAYA,EAASE,aAmBxCA,EAAeD,EAAmBF,EAAUE,GAAoBH,EAEpEvL,EAAOC,QAAU0L,G,gBC1BjB,IAAIC,EAAa1L,EAAQ,IACrB2L,EAAW3L,EAAQ,IA+BvBF,EAAOC,QAJP,SAAqByB,GACnB,OAAgB,MAATA,GAAiBmK,EAASnK,EAAMC,UAAYiK,EAAWlK,K,gBC7BhE,IAAI+H,EAAWvJ,EAAQ,IAcvBF,EAAOC,QAJP,SAA4ByB,GAC1B,OAAOA,IAAUA,IAAU+H,EAAS/H,K,cCQtC1B,EAAOC,QAVP,SAAiCiC,EAAK4J,GACpC,OAAO,SAAS7J,GACd,OAAc,MAAVA,IAGGA,EAAOC,KAAS4J,SACP1K,IAAb0K,GAA2B5J,KAAO5B,OAAO2B,Q,gBCfhD,IAAI8J,EAAW7L,EAAQ,IACnB8L,EAAQ9L,EAAQ,IAsBpBF,EAAOC,QAZP,SAAiBgC,EAAQgK,GAMvB,IAHA,IAAIpI,EAAQ,EACRlC,GAHJsK,EAAOF,EAASE,EAAMhK,IAGJN,OAED,MAAVM,GAAkB4B,EAAQlC,GAC/BM,EAASA,EAAO+J,EAAMC,EAAKpI,OAE7B,OAAQA,GAASA,GAASlC,EAAUM,OAASb,I,gBCpB/C,IAAIX,EAAUP,EAAQ,GAClBgM,EAAQhM,EAAQ,IAChBiM,EAAejM,EAAQ,KACvBsC,EAAWtC,EAAQ,KAiBvBF,EAAOC,QAPP,SAAkByB,EAAOO,GACvB,OAAIxB,EAAQiB,GACHA,EAEFwK,EAAMxK,EAAOO,GAAU,CAACP,GAASyK,EAAa3J,EAASd,M,6BCfhEpB,OAAOqG,eAAe1G,EAAS,aAAc,CAC3CyB,OAAO,IAGT,IAAI0K,EAA4B,oBAAXtL,QAAoD,kBAApBA,OAAOC,SAAwB,SAAUsL,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,oBAAXvL,QAAyBuL,EAAI1J,cAAgB7B,QAAUuL,IAAQvL,OAAOyB,UAAY,gBAAkB8J,GAEtQ,SAASC,EAAmB1L,GAAO,GAAIF,MAAMD,QAAQG,GAAM,CAAE,IAAK,IAAIC,EAAI,EAAGwC,EAAO3C,MAAME,EAAIe,QAASd,EAAID,EAAIe,OAAQd,IAAOwC,EAAKxC,GAAKD,EAAIC,GAAM,OAAOwC,EAAe,OAAO3C,MAAMmC,KAAKjC,GAE1L,IAAI2L,EAAWtM,EAAQsM,SAAW,WAChC,MAAQ,iCAAiCzJ,KAAK0J,UAAUC,YAItDC,EAAUzM,EAAQyM,QAAU,SAAiBrI,GAC/C,OAAO3D,MAAMD,QAAQ4D,IAAUA,EAAMsI,OAAM,SAAUC,GACnD,MAAqE,YAA9C,qBAARA,EAAsB,YAAcR,EAAQQ,OAAwBA,aAAelM,WAIlGmM,EAAW5M,EAAQ4M,SAAW,SAAkBxI,GAClD,OAAO3D,MAAMD,QAAQ4D,IAAUA,EAAMsI,OAAM,SAAUC,GACnD,OAAOlM,MAAMD,QAAQmM,OAIrBE,EAAe7M,EAAQ6M,aAAe,SAAsBzI,GAC9D,OAAO3D,MAAMmC,KAAKwB,EAAMI,KAAI,SAAUsI,GACpC,OAAOzM,OAAOyF,KAAKgH,MAClBC,QAAO,SAAUC,EAAGC,GACrB,OAAO,IAAIC,IAAI,GAAGC,OAAOd,EAAmBW,GAAIX,EAAmBY,OAClE,MAGDG,EAAepN,EAAQoN,aAAe,SAAsBC,EAAOC,GAGrE,IAAIC,EAFJD,EAAUA,GAAWT,EAAaQ,GAG9BG,EAAaF,EACbb,EAAQa,KACVC,EAAeD,EAAQ9I,KAAI,SAAUiJ,GACnC,OAAOA,EAAOC,SAEhBF,EAAaF,EAAQ9I,KAAI,SAAUiJ,GACjC,OAAOA,EAAOxL,QAIlB,IAAIwC,EAAO4I,EAAM7I,KAAI,SAAUxC,GAC7B,OAAOwL,EAAWhJ,KAAI,SAAUiJ,GAC9B,OAAOE,EAAeF,EAAQzL,SAGlC,MAAO,CAACuL,GAAcJ,OAAOd,EAAmB5H,KAG9CkJ,EAAiB3N,EAAQ2N,eAAiB,SAAwBC,EAAUxB,GAC9E,IAAIyB,EAAaD,EAASE,QAAQ,eAAgB,OAAOnI,MAAM,KAAKoH,QAAO,SAAU5K,EAAG4L,EAAGnN,EAAGD,GAC5F,QAAaQ,IAATgB,EAAE4L,GAGJ,OAAO5L,EAAE4L,GAFTpN,EAAIqN,OAAO,KAIZ5B,GAEH,YAAsBjL,IAAf0M,EAA2BD,KAAYxB,EAAMA,EAAIwB,GAAY,GAAKC,GAGvEI,EAAiBjO,EAAQiO,eAAiB,SAAwBC,GACpE,OAAOA,GAAuB,IAAZA,EAAgBA,EAAU,IAG1CC,EAASnO,EAAQmO,OAAS,SAAgB1J,GAC5C,IAAI2J,EAAY/H,UAAU3E,OAAS,QAAsBP,IAAjBkF,UAAU,GAAmBA,UAAU,GAAK,IAChFgI,EAAqBhI,UAAU3E,OAAS,QAAsBP,IAAjBkF,UAAU,GAAmBA,UAAU,GAAK,IAE7F,OAAO5B,EAAK6J,QAAO,SAAUzE,GAC3B,OAAOA,KACNrF,KAAI,SAAUmI,GACf,OAAOA,EAAInI,KAAI,SAAU0J,GACvB,OAAOD,EAAeC,MACrB1J,KAAI,SAAU+J,GACf,MAAO,GAAKF,EAAqBE,EAASF,KACzC5I,KAAK2I,MACP3I,KAAK,OAGN+I,EAAaxO,EAAQwO,WAAa,SAAoB/J,EAAM6I,EAASc,EAAWC,GAClF,OAAOF,EAAOb,EAAU,CAACA,GAASH,OAAOd,EAAmB5H,IAASA,EAAM2J,EAAWC,IAGpFI,EAAYzO,EAAQyO,UAAY,SAAmBhK,EAAM6I,EAASc,EAAWC,GAC/E,OAAOF,EAAOf,EAAa3I,EAAM6I,GAAUc,EAAWC,IAGpDK,EAAa1O,EAAQ0O,WAAa,SAAoBjK,EAAM6I,EAASc,EAAWC,GAClF,OAAOf,EAAUA,EAAQ7H,KAAK2I,GAAa,KAAO3J,EAAOA,GAGvDkK,EAAQ3O,EAAQ2O,MAAQ,SAAelK,EAAM6I,EAASc,EAAWC,GACnE,GAAI5B,EAAQhI,GAAO,OAAOgK,EAAUhK,EAAM6I,EAASc,EAAWC,GAC9D,GAAIzB,EAASnI,GAAO,OAAO+J,EAAW/J,EAAM6I,EAASc,EAAWC,GAChE,GAAoB,kBAAT5J,EAAmB,OAAOiK,EAAWjK,EAAM6I,EAASc,GAC/D,MAAM,IAAIvM,UAAU,wEAGP7B,EAAQ4O,SAAW,SAAkBnK,EAAMoK,EAAOvB,EAASc,EAAWC,GACnF,IAAIS,EAAMH,EAAMlK,EAAM6I,EAASc,EAAWC,GACtChH,EAAOiF,IAAa,kBAAoB,WACxCyC,EAAO,IAAIC,KAAK,CAACH,EAAQ,SAAW,GAAIC,GAAM,CAAEzH,KAAMA,IACtD4H,EAAU,QAAU5H,EAAO,mBAAqBwH,EAAQ,SAAW,IAAMC,EAEzEI,EAAMC,OAAOD,KAAOC,OAAOC,UAE/B,MAAsC,qBAAxBF,EAAIG,gBAAkCJ,EAAUC,EAAIG,gBAAgBN,K,6BCjHpF1O,OAAOqG,eAAe1G,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQsP,kBAAoBtP,EAAQuP,aAAevP,EAAQwP,eAAYrO,EAEvE,IAMgCiL,EAN5BqD,EAASxP,EAAQ,GAIjByP,IAE4BtD,EAJKqD,IAIgBrD,EAAIuD,WAFxC1P,EAAQ,KAITD,EAAQwP,UAAY,CAClC/K,MAAM,EAAIiL,EAAWE,WAAW,CAACF,EAAWG,OAAQH,EAAWtL,QAAQ0L,WACvExC,QAASoC,EAAWtL,MACpB4B,OAAQ0J,EAAWG,OACnBzB,UAAWsB,EAAWG,OACtBE,SAAUL,EAAWG,OACrBhB,MAAOa,EAAWM,KAClBC,QAASP,EAAW9F,KACpBsG,aAAcR,EAAWM,MAGRhQ,EAAQuP,aAAe,CACxCnB,UAAW,IACX2B,SAAU,4BACVlB,OAAO,EACPqB,cAAc,GAGQlQ,EAAQsP,kBAAoB,CAAC,OAAQ,Y,qzKCjC9C,SAASa,EAAgBC,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAIxO,UAAU,qCCFxB,SAASyO,EAAkBtK,EAAQuK,GACjC,IAAK,IAAI3P,EAAI,EAAGA,EAAI2P,EAAM7O,OAAQd,IAAK,CACrC,IAAI4P,EAAaD,EAAM3P,GACvB4P,EAAW7J,WAAa6J,EAAW7J,aAAc,EACjD6J,EAAWC,cAAe,EACtB,UAAWD,IAAYA,EAAWE,UAAW,GACjDrQ,OAAOqG,eAAeV,EAAQwK,EAAWvO,IAAKuO,IAInC,SAASG,EAAaN,EAAaO,EAAYC,GAG5D,OAFID,GAAYN,EAAkBD,EAAY/N,UAAWsO,GACrDC,GAAaP,EAAkBD,EAAaQ,GACzCR,ECbM,SAASS,EAAgB3O,EAAG4L,GAMzC,OALA+C,EAAkBzQ,OAAO0Q,gBAAkB,SAAyB5O,EAAG4L,GAErE,OADA5L,EAAE6O,UAAYjD,EACP5L,IAGcA,EAAG4L,GCLb,SAASkD,EAAUC,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAItP,UAAU,sDAGtBqP,EAAS5O,UAAYjC,OAAO+Q,OAAOD,GAAcA,EAAW7O,UAAW,CACrEI,YAAa,CACXjB,MAAOyP,EACPR,UAAU,EACVD,cAAc,KAGdU,GAAY,EAAeD,EAAUC,GCb5B,SAASE,EAAgBlP,GAItC,OAHAkP,EAAkBhR,OAAO0Q,eAAiB1Q,OAAOiR,eAAiB,SAAyBnP,GACzF,OAAOA,EAAE6O,WAAa3Q,OAAOiR,eAAenP,KAEvBA,GCJV,SAASgK,EAAQC,GAa9B,OATED,EADoB,oBAAXtL,QAAoD,kBAApBA,OAAOC,SACtC,SAAiBsL,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAXvL,QAAyBuL,EAAI1J,cAAgB7B,QAAUuL,IAAQvL,OAAOyB,UAAY,gBAAkB8J,IAI9GA,GCXF,SAASmF,EAA2BnR,EAAMoC,GACvD,OAAIA,GAA2B,WAAlB2J,EAAQ3J,IAAsC,oBAATA,ECHrC,SAAgCpC,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIoR,eAAe,6DAG3B,OAAOpR,EDEA,CAAsBA,GAHpBoC,EEDI,SAASiP,EAAaC,GACnC,IAAIC,ECJS,WACb,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUC,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EAExC,IAEE,OADAC,KAAK1P,UAAUC,SAASC,KAAKoP,QAAQC,UAAUG,KAAM,IAAI,iBAClD,EACP,MAAOnI,GACP,OAAO,GDLuB,GAChC,OAAO,WACL,IACIjF,EADAqN,EAAQ,EAAeP,GAG3B,GAAIC,EAA2B,CAC7B,IAAIO,EAAY,EAAerO,MAAMnB,YACrCkC,EAASgN,QAAQC,UAAUI,EAAO5L,UAAW6L,QAE7CtN,EAASqN,EAAMjJ,MAAMnF,KAAMwC,WAG7B,OAAO,EAA0BxC,KAAMe,I,IEhBrCuN,EACF,WAAY1N,EAAM2N,EAAM9Q,GAAM,UAC1BuC,KAAKvC,KAAOA,EACRA,IACAA,EAAK8Q,KAAOvO,MAChBA,KAAKuO,KAAOA,EACRA,IACAA,EAAK9Q,KAAOuC,MAChBA,KAAKY,KAAOA,GAGP4N,EAAb,WACI,aAAc,UACVxO,KAAKyO,QAAU,EAFvB,4BAII,WACI,OAAOzO,KAAK0O,OAAS1O,KAAK0O,MAAM9N,OALxC,gBAOI,WACI,OAAOZ,KAAK2O,OAAS3O,KAAK2O,MAAM/N,OARxC,mBAUI,WACI,OAAOZ,KAAK4O,UAAY5O,KAAK4O,SAAShO,OAX9C,kBAaI,WACI,OAAOZ,KAAKyO,UAdpB,kBAgBI,SAAK7N,GACDZ,KAAK2O,MAAQ,IAAIL,EAAK1N,EAAMZ,KAAK2O,OACZ,IAAjB3O,KAAKyO,UACLzO,KAAK0O,MAAQ1O,KAAK2O,MAClB3O,KAAK4O,SAAW5O,KAAK0O,MACrB1O,KAAKyE,MAAQzE,KAAK0O,OAEtB1O,KAAKyO,YAvBb,iBAyBI,WACI,IAAII,EAAO7O,KAAK2O,MAChB,GAAqB,IAAjB3O,KAAKyO,QAIT,OADAzO,KAAKyO,UACgB,IAAjBzO,KAAKyO,SACLzO,KAAK0O,MAAQ1O,KAAK2O,MAAQ3O,KAAK4O,SAAW5O,KAAKyE,WAAQnH,EAChDuR,EAAKjO,OAEhBZ,KAAK2O,MAAQE,EAAKN,KAClBvO,KAAK2O,MAAMlR,UAAOH,EACd0C,KAAK4O,WAAaC,IAClB7O,KAAK4O,SAAW5O,KAAK2O,MACrB3O,KAAKyE,WAAQnH,GAEVuR,EAAKjO,QAzCpB,mBA2CI,WACI,IAAIkO,EAAO9O,KAAK0O,MAChB,GAAqB,IAAjB1O,KAAKyO,QAIT,OADAzO,KAAKyO,UACgB,IAAjBzO,KAAKyO,SACLzO,KAAK0O,MAAQ1O,KAAK2O,MAAQ3O,KAAK4O,SAAW5O,KAAKyE,WAAQnH,EAChDwR,EAAKlO,OAEhBZ,KAAK0O,MAAQ1O,KAAK0O,MAAMjR,KACpBuC,KAAK4O,WAAaE,IAClB9O,KAAK4O,SAAW5O,KAAK0O,MACrB1O,KAAKyE,MAAQzE,KAAK4O,SAASnR,MAExBqR,EAAKlO,QA1DpB,qBA4DI,SAAQA,GACJZ,KAAK0O,MAAQ,IAAIJ,EAAK1N,OAAMtD,EAAW0C,KAAK0O,OACvB,IAAjB1O,KAAKyO,UACLzO,KAAK2O,MAAQ3O,KAAK0O,MAClB1O,KAAKyE,MAAQzE,KAAK0O,OAEtB1O,KAAKyO,YAlEb,4BAoEI,WACI,IAAIM,EAAU/O,KAAK4O,SACnB,OAAIG,IAAY/O,KAAK0O,OAAS1O,KAAKyO,QAAU,EAClCM,GAAWA,EAAQnO,MAG1BmO,IAAY/O,KAAK2O,OACjB3O,KAAK2O,MAAQI,EAAQR,KACrBvO,KAAK2O,MAAMlR,UAAOH,EAClB0C,KAAK4O,SAAW5O,KAAK2O,QAGrBI,EAAQtR,KAAK8Q,KAAOQ,EAAQR,KAC5BQ,EAAQR,KAAK9Q,KAAOsR,EAAQtR,KAC5BuC,KAAK4O,SAAWG,EAAQR,MAE5BvO,KAAKyE,MAAQzE,KAAK4O,SAASnR,KAE3BsR,EAAQtR,KAAOuC,KAAK0O,MACpBK,EAAQR,UAAOjR,EACf0C,KAAK0O,MAAMH,KAAOQ,EAClB/O,KAAK0O,MAAQK,EACNA,EAAQnO,QA1FvB,2BA4FI,WACI,IAAImO,EAAU/O,KAAK4O,SACnB,GAAqB,IAAjB5O,KAAKyO,QAIT,OADAzO,KAAKyO,UACgB,IAAjBzO,KAAKyO,SACLzO,KAAK0O,MAAQ1O,KAAK2O,MAAQ3O,KAAK4O,SAAW5O,KAAKyE,WAAQnH,EAChDyR,EAAQnO,OAEfmO,IAAY/O,KAAK2O,OACjB3O,KAAK2O,MAAQI,EAAQR,KACrBvO,KAAK2O,MAAMlR,UAAOH,EAClB0C,KAAK4O,SAAW5O,KAAK2O,OAEhBI,IAAY/O,KAAK0O,OACtB1O,KAAK0O,MAAQK,EAAQtR,KACrBuC,KAAK0O,MAAMH,UAAOjR,EAClB0C,KAAK4O,SAAW5O,KAAK0O,QAGrBK,EAAQtR,KAAK8Q,KAAOQ,EAAQR,KAC5BQ,EAAQR,KAAK9Q,KAAOsR,EAAQtR,KAC5BuC,KAAK4O,SAAWG,EAAQR,MAE5BvO,KAAKyE,MAAQzE,KAAK4O,SAASnR,KACpBsR,EAAQnO,QAtHvB,yBAwHI,WAEI,OADAZ,KAAK4O,SAAW5O,KAAKyE,MAAQzE,KAAK0O,MAC3B1O,OA1Hf,kBA4HI,WACI,IAAIvC,EAAOuC,KAAKyE,MAChB,QAAanH,IAATG,EAGA,OAFAuC,KAAKyE,MAAQhH,EAAKA,KAClBuC,KAAK4O,SAAWnR,EACTA,EAAKmD,SAjIxB,KCPqBoO,E,8BACjB,WAAYtJ,EAAMuJ,EAAcC,EAAaC,GAAa,MAUtD,GAVsD,WACtD,gBACKzJ,KAAOA,EACZ,EAAKuJ,aAAeA,EACpB,EAAKC,YAAcA,EACnB,EAAKC,YAAcA,EACnB,EAAKC,YAAc,EACnB,EAAKC,WAAa,EAClB,EAAKC,UAAYC,IACjB,EAAKC,UAAY,GACZ9J,GAAwB,kBAATA,EAChB,KAAO,wCAX2C,OAatD,EAAK+J,MAAQ,EAAK9R,KAClB,EAAKA,KAAO,SAAUiD,GAClBZ,KAAK0P,IAAI9O,GACTZ,KAAKoP,eAhB6C,E,6BAmB1D,SAAIxO,GACIZ,KAAKnC,SAAWmC,KAAK0F,MACrB1F,KAAK2P,UAAY3P,KAAK4P,QACtB5P,KAAKyP,MAAM7O,GAEPZ,KAAKiP,cACDjP,KAAK2P,WAAa3P,KAAKqP,YACvBrP,KAAK6P,sBACT7P,KAAKkP,aACDlP,KAAK2P,WAAa3P,KAAKsP,WACvBtP,KAAK8P,qBACT9P,KAAKmP,cACLnP,KAAKwP,UAAYxP,KAAKwP,UAAYxP,KAAK2P,YAI3C3P,KAAKyP,MAAM7O,GAGXZ,KAAKiP,cACDjP,KAAKqP,YAAczO,IAClBZ,KAAKqP,WAAazO,GACvBZ,KAAKkP,aACDlP,KAAKsP,WAAa1O,IACjBZ,KAAKsP,UAAY1O,GACtBZ,KAAKmP,cACLnP,KAAKwP,UAAYxP,KAAKwP,UAAY5O,K,gCAG1C,8EACIZ,KAAK+P,cADT,WAEW/P,KAAKvC,OAFhB,gBAGQ,OAHR,SAGcuC,KAAK+O,QAHnB,sE,iCAMA,WAII,IAHA/O,KAAK+P,cACD/P,KAAKvC,SACLuC,KAAKqP,WAAarP,KAAK+O,SACpB/O,KAAKvC,QACJuC,KAAKqP,YAAcrP,KAAK+O,UACxB/O,KAAKqP,WAAarP,KAAK+O,W,gCAMnC,WAII,IAHA/O,KAAK+P,cACD/P,KAAKvC,SACLuC,KAAKsP,UAAYtP,KAAK+O,SACnB/O,KAAKvC,QACJuC,KAAKsP,WAAatP,KAAK+O,UACvB/O,KAAKsP,UAAYtP,KAAK+O,a,GAzEWP,GCKpCwB,EAAb,wBAEaC,EACT,aAAc,UACVjQ,KAAKkQ,KAAO,GACZlQ,KAAKmQ,KAAO,GACZnQ,KAAKoQ,IAAM,GACXpQ,KAAKqQ,MAAQ,GACbrQ,KAAKsQ,OAAS,GACdtQ,KAAKuQ,UAAY,IClBrBC,EAAS,GACN,SAASC,EAAUrS,EAAKR,GAC3B4S,EAAOpS,GAAOR,EAEX,SAAS8S,EAAUtS,GACtB,OAAOoS,EAAOpS,GCJX,SAASuS,EAAOC,GACnB,IAAIC,EAAYH,EAAU,aAC1B,OAAIG,EACOC,WAAWF,EAAEG,YAAYF,IAE7BD,ECLJ,IAAMI,EAAb,wBAIaC,EAAb,WACI,WAAYC,GAAO,UACflR,KAAK2Q,OAASO,EAAMP,QAAUQ,EAFtC,mCAeI,WACI,OAAOnR,KAAKe,UAhBpB,4BAII,SAAqBmQ,GACbA,EAAME,gBACNF,EAAMG,QAASH,EAAMG,OAAOC,UAC5BJ,EAAMhB,MAAOgB,EAAMhB,KAAKoB,UACxBJ,EAAMf,MAAOe,EAAMf,KAAKmB,UACxBJ,EAAMd,KAAMc,EAAMd,IAAIkB,UACtBJ,EAAMb,OAAQa,EAAMb,MAAMiB,UAC1BJ,EAAMZ,QAASY,EAAMZ,OAAOgB,UAC5BJ,EAAMX,WAAYW,EAAMX,UAAUe,eAZ9C,KCOaC,EAAb,8BACI,WAAYL,GAAO,iBACf,cAAMA,IACDM,OAASN,EAAMM,OACpB,EAAKC,MAAQP,EAAMG,OACnB,IAAIK,EAAK,UAAI,SAATA,EAAoBF,GAAX,+EAIK,OAHVG,EAAO,IAAInD,EACXoD,EAAM,EACNC,EAAU,OAHL,iBAIL9C,EAJK,OAMT4C,EAAKhU,KAAK,GAND,OAkBK,OAVNkU,EAAUL,GACVK,IACAF,EAAKhU,KAAKoR,GACV6C,GAAY7C,IAGZ6C,EAAMA,EAAMD,EAAK/B,QAAUb,EAC3BhO,EAAW6Q,EAAOJ,EAClBG,EAAKhU,KAAKoR,IAhBT,UAkBWhO,EAlBX,QAkBLgO,EAlBK,2DAAT2C,MAJW,OAyBf,EAAKI,UAAYJ,EAAM,EAAKF,QAC5B,EAAKM,UAAUrU,OACf,EAAKsD,OAAS,GACd,EAAK0Q,MAAM1P,SAAQ,SAACgQ,GAChB,IAAIhR,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACZzU,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAK,EAAKgT,OAAO5P,EAAOnD,WA/B7B,EADvB,mCAoCI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GAAO7T,MACxC,QAAcN,GAAVyD,EACA,OAAOf,KAAK2Q,OAAO5P,OAvC/B,GAAyBkQ,GA4ClB,SAASe,EAAId,GAChBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIwQ,EAAIL,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXwQ,EAAIW,UAAYF,ECrDT,IAAMG,EAAb,8BACI,WAAYjB,GAAO,gBACf,cAAMA,GACN,IAGIc,EAHAR,EAASN,EAAMM,OACfY,EAAalB,EAAMG,OACnBgB,EAAY,GAAKb,EAAS,GAE9B,EAAKzQ,OAAS,GACdiR,EAAM,IAAIT,EAAI,CAAEC,OAAQA,EAAQH,OAAQ,KACxC,IAAIK,EAAK,UAAI,SAATA,IAAS,yEACE,YADF,iBACLK,EADK,sBAIWzU,IAAZgV,QAAkChV,IAATyU,EAJxB,iBAMM,OADPO,GAAYP,EAAOO,GAAWD,EAAYC,EALzC,SAMYA,EANZ,OAMDP,EANC,+BASM,YATN,sBASDA,EATC,SAUDO,EAAUN,EAAIO,UAAUR,IAVvB,iBAYU,OAZV,UAYgBO,EAZhB,QAYGP,EAZH,mEAATL,MARW,OAwBf,EAAKI,UAAYJ,IACjB,EAAKI,UAAUrU,OACf,EAAKqU,UAAUrU,OACf2U,EAAWrQ,SAAQ,SAACgQ,GAChB,IAAIhR,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACbzU,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAK,EAAKgT,OAAO5P,EAAOnD,WA9B7B,EADvB,mCAmCI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GAAO7T,MACxC,QAAcN,GAAVyD,EACA,OAAOf,KAAK2Q,OAAO5P,OAtC/B,GAAyBkQ,GA2ClB,SAASuB,EAAItB,GAChBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIoR,EAAIjB,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXoR,EAAID,UAAYM,ECzCT,IAAMC,EAAb,8BACI,WAAYvB,GAAO,gBACf,cAAMA,GACN,IAAIM,EAASN,EAAMM,OACfY,EAAalB,EAAMG,OAHR,OAIf,EAAKtQ,OAAS,GACd,EAAK+Q,UAAY,UAAC,4FACVlR,EAAO,IAAI4N,EACXkE,EAAclB,GAAUA,EAAS,GAAK,EAF5B,YAIL5Q,EAAK/C,OAAU2T,GAJV,iBAKI,OALJ,KAKN5Q,OALM,kCAKDjD,KALC,wCAUN,IAFAiD,EAAKmP,cACDhP,EAAS,EACJhE,EAAI,EAAGA,GAAKyU,EAAQzU,IACzBgE,GAAmBH,EAAKnD,OAASV,EAAK2V,EAE/B,OAbL,UAaW3R,EAbX,QAaFtD,EAbE,OAcNmD,EAAKgP,QACLhP,EAAKjD,KAAKF,GAfJ,iEAAD,GAmBjB,EAAKqU,UAAUrU,OACf2U,EAAWrQ,SAAQ,SAACgQ,EAAMhS,GACtB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACbzU,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAK,EAAKgT,OAAO5P,EAAOnD,WA5B7B,EADvB,mCAkCI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GAAO7T,MACxC,QAAcN,GAAVyD,EACA,OAAOf,KAAK2Q,OAAO5P,OArC/B,GAAyBkQ,GA2ClB,SAAS0B,EAAIzB,GAChBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI0R,EAAIvB,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EATX0R,EAAIP,UAAYS,EC1CT,IAAMC,EAAb,8BACI,WAAY1B,GAAO,gBACf,cAAMA,GACN,IAGIc,EAHAR,EAASN,EAAMM,OACfY,EAAalB,EAAMG,OACnBgB,EAAW,EAAIb,EAEnB,EAAKzQ,OAAS,GACdiR,EAAM,IAAIT,EAAI,CAAEC,OAAQA,EAAQH,OAAQ,KACxC,IAAIK,EAAK,UAAI,SAATA,IAAS,yEACE,YADF,iBACLK,EADK,sBAIWzU,IAAZgV,QAAkChV,IAATyU,EAJxB,iBAMM,OADPO,GAAYP,EAAOO,GAAWD,EAAYC,EALzC,SAMYA,EANZ,OAMDP,EANC,+BASM,YATN,sBASDA,EATC,YAWezU,KADhBgV,EAAUN,EAAIO,UAAUR,IAVvB,iBAYU,OAZV,UAYgBO,EAZhB,QAYGP,EAZH,mEAATL,MARW,OAwBf,EAAKI,UAAYJ,IACjB,EAAKI,UAAUrU,OACf,EAAKqU,UAAUrU,OACf2U,EAAWrQ,SAAQ,SAACgQ,GAChB,IAAIhR,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACbzU,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAK,EAAKgT,OAAO5P,EAAOnD,WA9B7B,EADvB,mCAmCI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GAAO7T,MACxC,QAAcN,GAAVyD,EACA,OAAOf,KAAK2Q,OAAO5P,OAtC/B,GAA0BkQ,GA2CnB,SAAS4B,EAAK3B,GACjBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI6R,EAAK1B,GAAOnQ,OAK7B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARX6R,EAAKV,UAAYW,ECtCV,IAUMC,EAAb,8BACI,WAAY5B,GAAO,gBACf,cAAMA,GACN,IAAI6B,EAAmB7B,EAAM8B,mBAAqBzB,EAAMY,EACpDc,EAAe/B,EAAMgC,eAAiB3B,EAAMY,EAC5CgB,EAAiB,IAAIJ,EAAiB,CAAEvB,OAAQN,EAAMkC,WAAY/B,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACtGyC,EAAiB,IAAIN,EAAiB,CAAEvB,OAAQN,EAAMoC,WAAYjC,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACtG2C,EAAmB,IAAIN,EAAa,CAAEzB,OAAQN,EAAMsC,aAAcnC,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACtGD,EAAS,EAAKA,OAPH,OAQf,EAAK5P,OAAS,GACd,EAAK+Q,UAAY,UAAC,gGACV/R,EAAQ,EADE,YAKNA,EAAQmR,EAAMoC,YALR,iBAMC,YAND,wBAMNvB,EANM,OAON0B,EAAON,EAAeZ,UAAUR,GAChC2B,EAAOL,EAAed,UAAUR,GAChChS,IATM,+BAiBH,OALH0T,GAAQC,IACRZ,EAAOW,EAAOC,EACdC,EAASJ,EAAiBhB,UAAUO,IAExCc,EAAYd,EAAOa,EAhBT,UAiBI,CAGVb,KAAMnC,EAAOmC,GACba,OAAQA,EAAShD,EAAOgD,QAAUrW,EAClCsW,UAAWC,MAAMD,QAAatW,EAAYqT,EAAOiD,IAtB3C,QAiBV7B,EAjBU,OAwBV0B,EAAON,EAAeZ,UAAUR,GAChC2B,EAAOL,EAAed,UAAUR,GAzBtB,yDAAD,GA4BjB,EAAKD,UAAUrU,OACfyT,EAAMG,OAAOtP,SAAQ,SAACgQ,GAClB,IAAIhR,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACbzU,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAzCjB,EADvB,mCA8CI,SAAU6T,GAEN,OADazR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,UA/ChD,GAA0BqT,GAqDnB,SAAS6C,EAAK5C,GACjBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI+R,EAAK5B,GAAOnQ,OAK7B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARX+R,EAAKZ,UAAY4B,ECnEV,IAEMC,EAAb,8BACI,WAAY7C,GAAO,gBACf,cAAMA,GACN,IAAIG,EAASH,EAAMG,OACfG,EAASN,EAAMM,OACfb,EAAS,EAAKA,OAJH,OAKf,EAAKmB,UAAY,UAAC,WAAWN,GAAX,iFACK,YADL,iBAOC,OANXwC,EADU,OAEVnC,EAAU,EACVoC,EAAU,EAGVC,EAAYF,OANF,iBAOdA,EAPc,cAyBK,OAffG,GADAA,EAAOH,EAAeE,GACR,EAAIC,EAAO,GACd,IACPF,GAAoBE,GAEpBtC,EAAUL,EACVK,IAGAuC,OADiB9W,IAAZ8W,EACKH,EAAUzC,GAGR4C,GAAW5C,EAAS,GAAM2C,GAAQ3C,EAElD0C,EAAYF,EACZI,OAAuB9W,IAAZ8W,EAAyBzD,EAAOyD,QAAW9W,EAxB5C,UAyBW8W,EAzBX,QAyBVJ,EAzBU,gEAAD,CA2BdxC,GACH,EAAKM,UAAUrU,OACf,EAAKsD,OAAS,GACdsQ,EAAOtP,SAAQ,SAACgQ,GACZ,IAAIhR,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACZzU,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAtCjB,EADvB,mCA2CI,SAAU6T,GACN,OAAOzR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,UA5C1C,GAAiCqT,GAiD1B,SAASoD,EAAYnD,GACxBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIgT,EAAY7C,GAAOnQ,OAKpC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXgT,EAAY7B,UAAYmC,EClDjB,IAEMC,EAAb,8BACI,WAAYpD,GAAO,gBACf,cAAMA,GACN,IAAIG,EAASH,EAAMG,OACfG,EAASN,EAAMM,OACfb,EAAS,EAAKA,OAJH,OAKf,EAAKmB,UAAY,UAAC,WAAWN,GAAX,iFACK,YADL,iBAOC,OANXwC,EADU,OAEVnC,EAAU,EACV0C,EAAU,EAGVL,EAAYF,OANF,iBAOdA,EAPc,cAyBK,OAffQ,GADAA,EAAON,EAAYF,GACL,EAAIQ,EAAO,GACd,IACPD,GAAoBC,GAEpB3C,EAAUL,EACVK,IAGA4C,OADiBnX,IAAZmX,EACKF,EAAU/C,GAGRiD,GAAWjD,EAAS,GAAMgD,GAAQhD,EAElD0C,EAAYF,EACZS,OAAuBnX,IAAZmX,EAAyB9D,EAAO8D,QAAWnX,EAxB5C,UAyBWmX,EAzBX,QAyBVT,EAzBU,gEAAD,CA2BdxC,GACH,EAAKM,UAAUrU,OACf,EAAKsD,OAAS,GACdsQ,EAAOtP,SAAQ,SAACgQ,GACZ,IAAIhR,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACZzU,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAtCjB,EADvB,mCA2CI,SAAU6T,GACN,OAAOzR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,UA5C1C,GAAiCqT,GAiD1B,SAASyD,EAAYxD,GACxBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIuT,EAAYpD,GAAOnQ,OAKpC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXuT,EAAYpC,UAAYwC,EC7CjB,IAEMC,EAAb,8BACI,WAAYzD,GAAO,gBACf,cAAMA,GACN,IAAIM,EAASN,EAAMM,OACfH,EAASH,EAAMG,OACfuD,EAAe,IAAIb,EAAY,CAAEvC,OAAQA,EAAQH,OAAQ,KACzDwD,EAAe,IAAIP,EAAY,CAAE9C,OAAQA,EAAQH,OAAQ,KAL9C,OAOf,EAAKS,UAAY,UAAC,WAAWN,GAAX,+EACA,YADA,iBACVzC,EADU,cAoBA,OAhBV+F,EAAcF,EAAarC,UAAUxD,GACrCgG,EAAcF,EAAatC,UAAUxD,QAChBzR,IAAhBwX,QAA+CxX,IAAhByX,IACZ,IAAhBA,EACAC,EAAa,IAEQ,IAAhBF,EACLE,EAAa,GAGbC,EAAKH,EAAcC,EACnBE,EAAKpB,MAAMoB,GAAM,EAAIA,EACrBD,EAAalE,YAAY,IAAO,KAAO,EAAImE,IAAMC,QAAQ,MAhBvD,UAoBMF,EApBN,QAoBVjG,EApBU,gEAAD,CAsBdyC,GACH,EAAKM,UAAUrU,OACf,EAAKsD,OAAS,GACdsQ,EAAOtP,SAAQ,SAACgQ,GACZ,IAAIhR,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACZzU,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAnCjB,EADvB,mCAyCI,SAAU6T,GACN,OAAOzR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,UA1C1C,GAAyBqT,GA+ClB,SAASkE,EAAIjE,GAChBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI4T,EAAIzD,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARX4T,EAAIzC,UAAYiD,E,WCrDD,SAASC,EAA2B9W,EAAG+W,GACpD,IAAIC,EAEJ,GAAsB,qBAAXtY,QAAgD,MAAtBsB,EAAEtB,OAAOC,UAAmB,CAC/D,GAAIL,MAAMD,QAAQ2B,KAAOgX,EAAK,OAAAvX,EAAA,GAA2BO,KAAO+W,GAAkB/W,GAAyB,kBAAbA,EAAET,OAAqB,CAC/GyX,IAAIhX,EAAIgX,GACZ,IAAIvY,EAAI,EAEJwY,EAAI,aAER,MAAO,CACLhT,EAAGgT,EACH/W,EAAG,WACD,OAAIzB,GAAKuB,EAAET,OAAe,CACxBH,MAAM,GAED,CACLA,MAAM,EACNE,MAAOU,EAAEvB,OAGbiJ,EAAG,SAAW3I,GACZ,MAAMA,GAERmY,EAAGD,GAIP,MAAM,IAAIvX,UAAU,yIAGtB,IAEIF,EAFA2X,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACLnT,EAAG,WACD+S,EAAKhX,EAAEtB,OAAOC,aAEhBuB,EAAG,WACD,IAAImX,EAAOL,EAAG7X,OAEd,OADAgY,EAAmBE,EAAKjY,KACjBiY,GAET3P,EAAG,SAAW4P,GACZF,GAAS,EACT5X,EAAM8X,GAERJ,EAAG,WACD,IACOC,GAAoC,MAAhBH,EAAW,QAAWA,EAAW,SAC1D,QACA,GAAII,EAAQ,MAAM5X,KC7CnB,IAGM+X,EAAb,8BACI,WAAY3E,GAAO,gBACf,cAAMA,GACN,IAAIM,EAASN,EAAMM,OACfY,EAAalB,EAAMG,OACnBW,EAAM,IAAIT,EAAI,CAAEC,OAAQA,EAAQH,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KAJzD,OAKf,EAAK7P,OAAS,GACd,EAAK+Q,UAAY,UAAC,kGAKP,OAFHgE,EAAa,IAAItH,EAAWgD,QAHlB,iBAKdO,EALc,cAUV,GAFA+D,EAAWnY,KAAKoU,GAChBgE,EAAO/D,EAAIO,UAAUR,GACX,CACFH,EAAM,EADJ,IAEQkE,EAAW7Y,YAFnB,IAEN,2BAAS+Y,EAA4B,QACjCpE,GAAaqE,KAAKC,IAAKF,EAAID,EAAO,GAHhC,8BAKNI,EAAKF,KAAKG,KAAKxE,EAAOJ,GAEnB,OAjBG,UAiBG2E,EAjBH,QAiBVpE,EAjBU,gEAAD,GAoBjB,EAAKD,UAAUrU,OACf2U,EAAWrQ,SAAQ,SAACgQ,GAChB,IAAIhR,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACbzU,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAK,EAAKgT,OAAO5P,EAAOnD,WA9B7B,EADvB,mCAmCI,SAAU6T,GACN,IAAI4E,EAAarW,KAAK8R,UAAUrU,KAAKgU,GACrC,QAAwBnU,GAApB+Y,EAAWzY,MACX,OAAOoC,KAAK2Q,OAAO0F,EAAWzY,WAtC1C,GAAwBqT,GA2CjB,SAASkF,EAAGjF,GACfD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI8U,EAAG3E,GAAOnQ,OAK3B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARX8U,EAAG3D,UAAYiE,EChDR,IAMMG,EAAb,8BACI,WAAYpF,GAAO,gBACf,cAAMA,GACN,IAIIc,EAAKmE,EAJL3E,EAASN,EAAMM,OACfY,EAAalB,EAAMG,OACnBkF,EAASrF,EAAMqF,OACf5F,EAAS,EAAKA,OALH,OAOf,EAAK5P,OAAS,GACdiR,EAAM,IAAIT,EAAI,CAAEC,OAAQA,EAAQH,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACpEuF,EAAK,IAAIN,EAAG,CAAErE,OAAQA,EAAQH,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KAClE,EAAKkB,UAAY,UAAC,kGAKP,YALO,iBAKdC,EALc,cAqBH,OAdPyE,EAAUxE,EAAIO,UAAUR,GACxB0E,EAASN,EAAG5D,UAAUR,GAClByE,IACIE,EAAS/F,EAAO6F,GAChBG,EAAQhG,EAAO6F,EAAWC,EAASF,GACnCK,EAAQjG,EAAO6F,EAAWC,EAASF,GACnCM,EAAKlG,GAAQoB,EAAO6E,IAAUD,EAAQC,IAC1C7V,EAAS,CACL2V,OAAQA,EACRC,MAAOA,EACPC,MAAOA,EACPC,GAAIA,IAlBF,SAqBG9V,EArBH,OAqBVgR,EArBU,gEAAD,GAwBjB,EAAKD,UAAUrU,OACf2U,EAAWrQ,SAAQ,SAACgQ,GAChB,IAAIhR,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACbzU,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAtCjB,EADvB,mCA2CI,SAAU6T,GACN,OAAOzR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,UA5C1C,GAAoCqT,GAiD7B,SAAS6F,EAAe5F,GAC3BD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIuV,EAAepF,GAAOnQ,OAKvC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXuV,EAAepE,UAAY4E,ECvDpB,IAAMC,EAAb,8BACI,WAAY7F,GAAO,iBACf,cAAMA,IACDM,OAASN,EAAMM,OACpB,EAAKC,MAAQP,EAAMG,OACnB,IAAIK,EAAK,UAAI,SAATA,EAAoBF,GAAX,6EAIK,OAHH,IAAIhD,EACXoD,EAAM,EACNC,EAAU,OAHL,iBAIL9C,EAJK,OAKLhO,EAAS,EALJ,OAoBK,OAbN8Q,EAAUL,GACVK,IACAD,GAAY7C,EACZhO,OAASzD,GAEJuU,GAAWL,GAChBK,IAEA9Q,EADA6Q,GAAY7C,GAIZhO,EAASA,EAAUA,EAASyQ,EAAUzC,EAlBrC,UAoBWhO,EApBX,QAoBLgO,EApBK,2DAAT2C,MAJW,OA2Bf,EAAKI,UAAYJ,EAAM,EAAKF,QAC5B,EAAKM,UAAUrU,OACf,EAAKsD,OAAS,GACd,EAAK0Q,MAAM1P,SAAQ,SAACgQ,GAChB,IAAIhR,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACbzU,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAK,EAAKgT,OAAO5P,EAAOnD,WAjC7B,EADvB,mCAsCI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GAAO7T,MACxC,QAAcN,GAAVyD,EACA,OAAOf,KAAK2Q,OAAO5P,OAzC/B,GAAqCkQ,GA6CrC8F,EAAgB7E,UACT,SAAyBhB,GAC5BD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIgW,EAAgB7F,GAAOnQ,OACpCmQ,EAAME,eACNrQ,EAAOuQ,UAGX,OADAL,EAAUgB,cAAcf,GACjBnQ,GCnDJ,IAGMiW,EAAb,8BACI,WAAY9F,GAAO,gBACf,cAAMA,GACN,IAAI+F,EAAO/F,EAAMd,IACb8G,EAAQhG,EAAMf,KACdQ,EAAS,EAAKA,OAClB,GAAIsG,EAAKpZ,QAAUqZ,EAAMrZ,OACrB,KAAO,qCANI,OAQf,EAAKkD,OAAS,GACd,EAAK+Q,UAAY,UAAC,4FAEA,YAFA,iBAEV/C,EAFU,cAWA,OANNoI,IACIC,EAAUrI,EAAQoB,KAAOgH,EAAKhH,KAC9BkH,EAAYF,EAAK/G,IAAMrB,EAAQqB,IACnCkH,EAAU3G,EAAQ0G,EAAWD,GAAUC,EAAW,EAAKA,EAAW,IAEtEF,EAAOpI,EAVG,SAWMuI,EAXN,OAWVvI,EAXU,gEAAD,GAcjB,EAAK+C,UAAUrU,OACfwZ,EAAKlV,SAAQ,SAACgQ,EAAMhS,GAChB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7B0S,KAAM+G,EAAMnX,GACZqQ,IAAK6G,EAAKlX,UAEOzC,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UA9BjB,EADvB,mCA6CI,SAAU6T,GACN,OAAOzR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,SA9C1C,wBAmCI,SAAiBsT,GACbD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIiW,EAAI9F,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,MA1Cf,GAAyBkQ,GCDZsG,EAAb,8BACI,WAAYrG,GAAO,gBACf,cAAMA,GACN,IAAI+F,EAAO/F,EAAMd,IACb8G,EAAQhG,EAAMf,KACdQ,EAAS,EAAKA,OAClB,GAAIsG,EAAKpZ,QAAUqZ,EAAMrZ,OACrB,KAAO,qCANI,OAQf,EAAKkD,OAAS,GACd,EAAK+Q,UAAY,UAAC,4FAEA,YAFA,iBAEV/C,EAFU,cAWA,OANNoI,IACIC,EAAUrI,EAAQoB,KAAOgH,EAAKhH,KAC9BkH,EAAYF,EAAK/G,IAAMrB,EAAQqB,IACnCoH,EAAS7G,EAAQyG,EAASC,GAAYD,EAAS,EAAKA,EAAS,IAEjED,EAAOpI,EAVG,SAWMyI,EAXN,OAWVzI,EAXU,gEAAD,GAcjB,EAAK+C,UAAUrU,OACfwZ,EAAKlV,SAAQ,SAACgQ,EAAMhS,GAChB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7B0S,KAAM+G,EAAMnX,GACZqQ,IAAK6G,EAAKlX,UAEOzC,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UA9BjB,EADvB,mCA6CI,SAAU6T,GACN,OAAOzR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,SA9C1C,wBAmCI,SAAiBsT,GACbD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIwW,EAAIrG,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,MA1Cf,GAAyBkQ,GCIZwG,EAAb,8BACI,WAAYvG,GAAO,gBACf,cAAMA,GACN,IAAI+F,EAAO/F,EAAMd,IACb8G,EAAQhG,EAAMf,KACduH,EAASxG,EAAMb,MACfM,EAAS,EAAKA,OAClB,GAAIsG,EAAKpZ,QAAUqZ,EAAMrZ,OACrB,KAAO,qCAPI,OASf,EAAKkD,OAAS,GACd,EAAK+Q,UAAY,UAAC,wFACA,YADA,iBACV/C,EADU,sBAIYzR,IAAlBqa,EAJM,gBAMI,OADVA,EAAgB5I,EAAQsB,MALlB,SAMUtP,EANV,OAMNgO,EANM,cAaA,OALVhO,EAASkV,KAAK2B,IAAI7I,EAAQoB,KAAOpB,EAAQqB,IAAKyD,MAAMoC,KAAK4B,IAAI9I,EAAQoB,KAAOwH,IAAkB,EAAI1B,KAAK4B,IAAI9I,EAAQoB,KAAOwH,GAAgB9D,MAAMoC,KAAK4B,IAAI9I,EAAQqB,IAAMuH,IAAkB,EAAI1B,KAAK4B,IAAI9I,EAAQqB,IAAMuH,IACpNA,EAAgB5I,EAAQsB,WACV/S,GAAVyD,IACAA,EAAS4P,EAAO5P,IAXV,UAaMA,EAbN,QAaVgO,EAbU,gEAAD,GAgBjB,EAAK+C,UAAUrU,OACfwZ,EAAKlV,SAAQ,SAACgQ,EAAMhS,GAChB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7B0S,KAAM+G,EAAMnX,GACZqQ,IAAK6G,EAAKlX,GACVsQ,MAAOqH,EAAO3X,UAEEzC,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAlCjB,EADvB,mCAwCI,SAAU6T,GACN,OAAOzR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,UAzC1C,GAA+BqT,GA8CxB,SAAS6G,EAAU5G,GACtBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI0W,EAAUvG,GAAOnQ,OAKlC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARX0W,EAAUvF,UAAY4F,EClDf,IAMMC,EAAb,8BACI,WAAY7G,GAAO,gBACf,cAAMA,GACN,IAAI+F,EAAO/F,EAAMd,IACb8G,EAAQhG,EAAMf,KACduH,EAASxG,EAAMb,MACfmB,EAASN,EAAMM,OACfb,EAAS,EAAKA,OACdqH,EAAS,IAAIT,EAAI,CACjBpH,KAAM,GACNC,IAAK,KAEL6H,EAAU,IAAIjB,EAAI,CAClB7G,KAAM,GACNC,IAAK,KAEL8H,EAAS,IAAInB,EAAgB,CAAEvF,OAAQA,EAAQH,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACnFuH,EAAS,IAAIpB,EAAgB,CAAEvF,OAAQA,EAAQH,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACnFwH,EAAQ,IAAIrB,EAAgB,CAAEvF,OAAQA,EAAQH,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KAClFyH,EAAQ,IAAIzF,EAAK,CAAEpB,OAAQA,EAAQH,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACvE0H,EAAK,IAAIb,EAAU,CACnBrH,IAAK,GACLD,KAAM,GACNE,MAAO,KAEX,GAAO4G,EAAKpZ,SAAWqZ,EAAMrZ,QAAYqZ,EAAMrZ,SAAW6Z,EAAO7Z,OAC7D,KAAO,4CAzBI,OA2Bf,EAAKkD,OAAS,GAEd,EAAK+Q,UAAY,UAAC,0GACH,YADG,iBACVC,EADU,OAEF,EAEF,EACC,EACA,EANG,UAQNwG,EAASD,EAAG/F,UAAUR,GACtByG,EAAUR,EAAOzF,UAAUR,GAC3B0G,EAAUR,EAAQ1F,UAAUR,QACjBzU,IAAXib,EAXM,iBAYC,YAZD,0BAYNxG,EAZM,sCA2BH,OAZH2G,EAAUN,EAAM7F,UAAUgG,GAC1BI,EAAWT,EAAO3F,UAAUiG,GAC5BI,EAAWT,EAAO5F,UAAUkG,QAChBnb,GAAXob,QAAsCpb,GAAZqb,QAAuCrb,GAAZsb,IACtDC,EAAuB,IAAZF,EAAkBD,EAC7BI,EAAuB,IAAZF,EAAkBF,EACzBK,EAAS9C,KAAK4B,IAAIgB,EAAUC,GAEhCE,EAAUD,GADGF,EAAUC,GACK,IAC5BG,EAAaZ,EAAM9F,UAAUyG,IAxBvB,UA2BG,CAAEE,IAAKD,EAAYE,IAAKN,EAASO,IAAKN,GA3BzC,QA2BV/G,EA3BU,gEAAD,GA8BjB,EAAKD,UAAUrU,OACfwZ,EAAKlV,SAAQ,SAACgQ,EAAMhS,GAChB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7B0S,KAAM+G,EAAMnX,GACZqQ,IAAK6G,EAAKlX,GACVsQ,MAAOqH,EAAO3X,UAEEzC,GAAhByD,EAAOnD,YAA0CN,GAApByD,EAAOnD,MAAMsb,KAC1C,EAAKnY,OAAOpD,KAAK,CAAEub,IAAKvI,EAAO5P,EAAOnD,MAAMsb,KAAMC,IAAKxI,EAAO5P,EAAOnD,MAAMub,KAAMC,IAAKzI,EAAO5P,EAAOnD,MAAMwb,UAnEnG,EADvB,mCA0EI,SAAU3H,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GAAO7T,MACxC,QAAcN,GAAVyD,QAAqCzD,GAAdyD,EAAOmY,IAC9B,MAAO,CAAEA,IAAKlZ,KAAK2Q,OAAO5P,EAAOmY,KAAMC,IAAKnZ,KAAK2Q,OAAO5P,EAAOoY,KAAMC,IAAKpZ,KAAK2Q,OAAO5P,EAAOqY,UA7EzG,GAAyBnI,GAmFlB,SAASiI,EAAIhI,GAChBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIgX,EAAI7G,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXgX,EAAI7F,UAAYgH,ECvFT,IAGMG,GAAb,8BACI,WAAYnI,GAAO,gBACf,cAAMA,GACN,IAAI+F,EAAO/F,EAAMd,IACb8G,EAAQhG,EAAMf,KACduH,EAASxG,EAAMb,MACfmB,EAASN,EAAMM,OACfb,EAAS,EAAKA,OAClB,GAAOsG,EAAKpZ,SAAWqZ,EAAMrZ,QAAYqZ,EAAMrZ,SAAW6Z,EAAO7Z,OAC7D,KAAO,4CAEX,IAAIyb,EAAY,IAAI7B,EAAU,CAC1BrH,IAAK,GACLD,KAAM,GACNE,MAAO,KAEPwC,EAAO,IAAID,EAAK,CAAEpB,OAAQA,EAAQH,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KAf3D,OAgBf,EAAK7P,OAAS,GACd,EAAK+Q,UAAY,UAAC,wFACH,YADG,iBACVC,EADU,cAgBH,OAXPwH,EAASD,EAAU/G,UAAU,CACzBnC,IAAK2B,EAAK3B,IACVD,KAAM4B,EAAK5B,KACXE,MAAO0B,EAAK1B,QAGZmJ,OADWlc,IAAXic,OACejc,EAGAuV,EAAKN,UAAUgH,GAdxB,SAgBGC,EAhBH,OAgBVzH,EAhBU,gEAAD,GAmBjB,EAAKD,UAAUrU,OACfwZ,EAAKlV,SAAQ,SAACgQ,EAAMhS,GAChB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7B0S,KAAM+G,EAAMnX,GACZqQ,IAAK6G,EAAKlX,GACVsQ,MAAOqH,EAAO3X,UAEGzC,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKgT,EAAO5P,EAAOnD,WA5CxB,EADvB,mCAkDI,SAAU6T,GACN,OAAOzR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,UAnD1C,GAAyBqT,GAwDlB,SAASwI,GAAIvI,GAChBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIsY,GAAInI,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXsY,GAAInH,UAAYuH,GC/DT,IAEMC,GAAb,8BACI,WAAYxI,GAAO,gBACf,cAAMA,GACN,IAAIM,EAASN,EAAMM,OACfY,EAAalB,EAAMG,OAHR,OAIf,EAAKtQ,OAAS,GACd,EAAK+Q,UAAY,UAAC,0FAIH,OAHP/R,EAAQ,EACR4Z,EAAc,IAAInL,EAAWgD,QAFnB,iBAIVO,EAJU,cAcH,OAPP4H,EAAYhc,KAAKoU,GACbhS,EAAQyR,EACRzR,IAGA6Z,GAAQ7H,EAAO4H,EAAYhK,WAAcgK,EAAYhK,UAAc,IAZ7D,UAcGiK,EAdH,QAcV7H,EAdU,gEAAD,GAiBjB,EAAKD,UAAUrU,OACf2U,EAAWrQ,SAAQ,SAACgQ,GAChB,IAAIhR,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACbzU,GAAhByD,EAAOnD,OAAwBiW,MAAM9S,EAAOnD,QAC5C,EAAKmD,OAAOpD,KAAK,EAAKgT,OAAO5P,EAAOnD,WA1B7B,EADvB,mCA+BI,SAAU6T,GACN,IAAI4E,EAAarW,KAAK8R,UAAUrU,KAAKgU,GACrC,QAAwBnU,GAApB+Y,EAAWzY,QAAwBiW,MAAMwC,EAAWzY,OACpD,OAAOoC,KAAK2Q,OAAO0F,EAAWzY,WAlC1C,GAAyBqT,GAyClB,SAAS2I,GAAI1I,GAChBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI2Y,GAAIxI,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EATX2Y,GAAIxH,UAAY0H,GCxCT,IAIMC,GAAb,8BACI,WAAY3I,GAAO,gBACf,cAAMA,GACN,IAAIkB,EAAalB,EAAMG,OACnByI,EAAU5I,EAAM6I,QAChBC,EAAU9I,EAAM+I,QAChBC,EAAUhJ,EAAMiJ,QAChBC,EAAUlJ,EAAMmJ,QAChBC,EAAUpJ,EAAMqJ,WAChBC,EAAUtJ,EAAMuJ,WAChBC,EAAUxJ,EAAMyJ,WAChBC,EAAU1J,EAAM2J,WAChBrH,EAAetC,EAAMsC,aACrBsH,EAAO,IAAIpB,GAAI,CAAElI,OAAQsI,EAASzI,OAAQ,KAC1C0J,EAAO,IAAIrB,GAAI,CAAElI,OAAQwI,EAAS3I,OAAQ,KAC1C2J,EAAO,IAAItB,GAAI,CAAElI,OAAQ0I,EAAS7I,OAAQ,KAC1C4J,EAAO,IAAIvB,GAAI,CAAElI,OAAQ4I,EAAS/I,OAAQ,KAC1C6J,EAAO,IAAI3J,EAAI,CAAEC,OAAQ8I,EAASjJ,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACtEuK,EAAO,IAAI5J,EAAI,CAAEC,OAAQgJ,EAASnJ,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACtEwK,EAAO,IAAI7J,EAAI,CAAEC,OAAQkJ,EAASrJ,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACtEyK,EAAO,IAAI9J,EAAI,CAAEC,OAAQoJ,EAASvJ,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACtE0K,EAAY,IAAI/J,EAAI,CAAEC,OAAQgC,EAAcnC,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KAChFD,EAAS,EAAKA,OAClB,EAAK5P,OAAS,GACd,IAAIwa,EAActF,KAAK2B,IAAIkC,EAAUQ,EAASN,EAAUQ,EAASN,EAAUQ,EAASN,EAAUQ,GAvB/E,OAwBf,EAAK9I,UAAY,UAAC,4GAEH,OADP/R,EAAQ,OADE,iBAEVgS,EAFU,cAyBH,OAnBHyJ,EAAaV,EAAKvI,UAAUR,GAC5B0J,EAAaV,EAAKxI,UAAUR,GAC5B2J,EAAaV,EAAKzI,UAAUR,GAC5B4J,EAAaV,EAAK1I,UAAUR,GAChC6J,OAAwBte,IAAfke,EAA4BN,EAAK3I,UAAUiJ,QAAcle,EAClEue,OAAwBve,IAAfme,EAA4BN,EAAK5I,UAAUkJ,QAAcne,EAClEwe,OAAwBxe,IAAfoe,EAA4BN,EAAK7I,UAAUmJ,QAAcpe,EAClEye,OAAwBze,IAAfqe,EAA4BN,EAAK9I,UAAUoJ,QAAcre,EAC9DyC,EAAQwb,EACRxb,IAGAic,EAAe,EAARJ,EAAsB,EAARC,EAAsB,EAARC,EAAsB,EAARC,EAErDpI,OAAkBrW,IAAR0e,EAAqBV,EAAU/I,UAAUyJ,QAAO1e,EAC1DyD,OAAiBzD,IAAR0e,EAAoB,CACzBA,IAAKrL,EAAOqL,GACZrI,OAAQA,EAAShD,EAAOgD,QAAUrW,QAClCA,EAxBM,UAyBGyD,EAzBH,QAyBVgR,EAzBU,gEAAD,GA4BjB,EAAKD,UAAUrU,OACf2U,EAAWrQ,SAAQ,SAACgQ,GAChB,IAAIhR,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACbzU,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAxDjB,EADvB,mCA8DI,SAAU6T,GACN,IAAI4E,EAAarW,KAAK8R,UAAUrU,KAAKgU,GACrC,QAAwBnU,GAApB+Y,EAAWzY,MACX,OAAOyY,EAAWzY,UAjE9B,GAAyBqT,GAsElB,SAAS+K,GAAI9K,GAChBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI8Y,GAAI3I,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARX8Y,GAAI3H,UAAY8J,GC3CT,IAGMC,GAAb,8BACI,WAAY/K,GAAO,gBACf,cAAMA,GACN,IAAIgG,EAAQhG,EAAMf,MAAQ,GACtB8G,EAAO/F,EAAMd,KAAO,GACpBsB,EAAK,UAAG,SAARA,EAAmBiE,EAAMiC,GAAjB,mFAIG,OAFPsE,GAAK,EACLC,EAAQxG,OAHJ,iBAIJpH,EAJI,cAsCG,OAhCH6N,GACAC,GAAYF,GAASG,EAAUD,GAC3BH,GACAG,EAAMpG,KAAKsG,IAAIF,EAAKG,EAASpM,IAAK7B,EAAK6B,KACnCgM,EAAKjM,KAAOmM,IACZA,EAAUF,EAAKjM,KACfgM,EAAQlG,KAAKsG,IAAIJ,EAAQxG,EAAMiC,MAKnCyE,EAAMpG,KAAK2B,IAAIyE,EAAKG,EAASrM,KAAM5B,EAAK4B,MACpCiM,EAAKhM,IAAMkM,IACXA,EAAUF,EAAKhM,IACf+L,EAAQlG,KAAKsG,IAAIJ,EAAQxG,EAAMiC,MAGlCsE,GAAME,EAAKhM,IAAMiM,IAAUH,GAAME,EAAKjM,KAAOkM,KAC9CF,EAAQxG,EACR0G,EAAMC,EAENA,GADAJ,GAAMA,GACqBE,EAAKjM,KAAhBiM,EAAKhM,OAKzBiM,EAAM9N,EAAK6B,IACXkM,EAAU/N,EAAK4B,MAEnBqM,EAAWjO,EACP6N,IACA7N,EAAO6N,GArCP,UAsCSC,EAtCT,QAsCJD,EAtCI,2DAAR1K,MAJW,OA6Cf,EAAK3Q,OAAS,GACd,EAAK+Q,UAAYJ,EAAMR,EAAMyE,KAAMzE,EAAM0G,KACzC,EAAK9F,UAAUrU,OACfwZ,EAAKlV,SAAQ,SAACgQ,EAAMhS,GAChB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7B0S,KAAM+G,EAAMnX,GACZqQ,IAAK6G,EAAKlX,UAEOzC,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAtDjB,EADvB,mCA4DI,SAAUsT,GACN,IAAImF,EAAarW,KAAK8R,UAAUrU,KAAKyT,GACrC,QAAyB5T,IAArB+Y,EAAWzY,MACX,OAAOyY,EAAWzY,UA/D9B,GAA0BqT,GAoEnB,SAASwL,GAAKvL,GACjBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIkb,GAAK/K,GAAOnQ,OAK7B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXkb,GAAK/J,UAAYuK,GChGV,IAMMC,GAAb,8BACI,WAAYxL,GAAO,gBACf,cAAMA,GACN,IAAI+F,EAAO/F,EAAMd,IACb8G,EAAQhG,EAAMf,KACduH,EAASxG,EAAMb,MACfmB,EAASN,EAAMM,OACfgC,EAAetC,EAAMsC,aACrB7C,EAAS,EAAKA,OAClB,GAAOsG,EAAKpZ,SAAWqZ,EAAMrZ,QAAYqZ,EAAMrZ,SAAW6Z,EAAO7Z,OAC7D,KAAO,4CATI,OAWf,EAAKkD,OAAS,GAOd,EAAK+Q,UAAY,UAAC,kGAUH,OATP/R,EAAQ,EACR4c,EAAkB,IAAInO,EAAWgD,GAAQ,GAAM,GAC/CoL,EAAiB,IAAIpO,EAAWgD,GAAQ,GAAO,GAC/CqL,EAAO,IAAItL,EAAI,CACfC,OAAQgC,EACRnC,OAAQ,GACRV,OAAQ,SAACC,GAAQ,OAAOA,UAPd,iBAUVmB,EAVU,iBAYV4K,EAAgBhf,KAAKoU,EAAK5B,MAC1ByM,EAAejf,KAAKoU,EAAK3B,OACrBrQ,EAAQyR,GAdF,iBAgBC,OADPzR,SAfM,0BAgBNgS,EAhBM,sCAuBH,OAJHzC,EAAYsN,EAAetN,UAC/BwN,GAAK/K,EAAK1B,MAAQf,IAAcqN,EAAgBtN,WAAaC,GAAa,IAC1EwN,EAAIjJ,MAAMiJ,GAAK,EAAIA,EACnBC,EAAIF,EAAKtK,UAAUuK,GAtBT,UAuBG,CACTA,EAAGnM,EAAOmM,GACVC,OAAUzf,IAANyf,EAAmBpM,EAAOoM,QAAKzf,GAzB7B,QAuBVyU,EAvBU,gEAAD,GA6BjB,EAAKD,UAAUrU,OACfwZ,EAAKlV,SAAQ,SAACgQ,EAAMhS,GAChB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7B0S,KAAM+G,EAAMnX,GACZqQ,IAAK6G,EAAKlX,GACVsQ,MAAOqH,EAAO3X,UAEGzC,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAvDjB,EADvB,mCA6DI,SAAUsT,GACN,IAAImF,EAAarW,KAAK8R,UAAUrU,KAAKyT,GACrC,QAAyB5T,IAArB+Y,EAAWzY,MACX,OAAOyY,EAAWzY,UAhE9B,GAAgCqT,GAqEzB,SAAS+L,GAAW9L,GACvBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI2b,GAAWxL,GAAOnQ,OAKnC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARX2b,GAAWxK,UAAY8K,GC/EhB,IAGMC,GAAb,8BACI,WAAY/L,GAAO,gBACf,cAAMA,GACN,IAAI+F,EAAO/F,EAAMd,IACb8G,EAAQhG,EAAMf,KACduH,EAASxG,EAAMb,MACfmB,EAASN,EAAMM,OACfb,EAAS,EAAKA,OAClB,GAAOsG,EAAKpZ,SAAWqZ,EAAMrZ,QAAYqZ,EAAMrZ,SAAW6Z,EAAO7Z,OAC7D,KAAO,4CARI,OAUf,EAAKkD,OAAS,GAKd,EAAK+Q,UAAY,UAAC,gGAMH,OALP/R,EAAQ,EACR4c,EAAkB,IAAInO,EAAWgD,GAAQ,GAAM,GAC/CoL,EAAiB,IAAIpO,EAAWgD,GAAQ,GAAO,QAHrC,iBAMVO,EANU,iBASV4K,EAAgBhf,KAAKoU,EAAK5B,MAC1ByM,EAAejf,KAAKoU,EAAK3B,OACrBrQ,EAAQyR,GAXF,iBAaC,OADPzR,SAZM,0BAaNgS,EAbM,sCAmBH,OAHPzC,EAAYsN,EAAetN,UAC3BD,EAAasN,EAAgBtN,WAC7B6N,EAAYvM,GAAQtB,EAAa0C,EAAK1B,QAAUhB,EAAaC,IAAc,KAlBjE,UAmBG4N,EAnBH,QAmBVnL,EAnBU,gEAAD,GAsBjB,EAAKD,UAAUrU,OACfwZ,EAAKlV,SAAQ,SAACqO,EAAKrQ,GACf,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7B0S,KAAM+G,EAAMnX,GACZqQ,IAAK6G,EAAKlX,GACVsQ,MAAOqH,EAAO3X,UAEGzC,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UA7CjB,EADvB,mCAmDI,SAAU6T,GACN,IAAI4E,EAAarW,KAAK8R,UAAUrU,KAAKgU,GACrC,QAAwBnU,GAApB+Y,EAAWzY,MACX,OAAOoC,KAAK2Q,OAAO0F,EAAWzY,WAtD1C,GAA+BqT,GA2DxB,SAASkM,GAAUjM,GACtBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIkc,GAAU/L,GAAOnQ,OAKlC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXkc,GAAU/K,UAAYiL,GC3Df,IAEMC,GAAb,8BACI,WAAYlM,GAAO,gBACf,cAAMA,GACN,IAAIgG,EAAQhG,EAAMf,KACd8G,EAAO/F,EAAMd,IACbsH,EAASxG,EAAMb,MACfgN,EAAUnM,EAAMZ,OACpB,GAAO2G,EAAKpZ,SAAWqZ,EAAMrZ,QAAYqZ,EAAMrZ,SAAW6Z,EAAO7Z,QAAYqZ,EAAMrZ,SAAWwf,EAAQxf,OAClG,KAAO,qDAPI,OASf,EAAKkD,OAAS,GACd,EAAK+Q,UAAY,UAAC,0FAGP,OAFH/Q,EAAS,OADC,iBAGdgR,EAHc,cASH,OAJHuL,GAAwBvL,EAAK1B,MAAQ0B,EAAK3B,KAAQ2B,EAAK5B,KAAO4B,EAAK1B,SAAW0B,EAAK5B,KAAO4B,EAAK3B,KACnGkN,EAAsBzJ,MAAMyJ,GAAuB,EAAIA,EACnDC,EAAkBD,EAAsBvL,EAAKzB,OACjDvP,GAAkBwc,EARR,UASGtH,KAAKuH,MAAMzc,GATd,QASVgR,EATU,gEAAD,GAYjB,EAAKD,UAAUrU,OACfyZ,EAAMnV,SAAQ,SAAC0b,EAAU1d,GACrB,IAAI2d,EAAY,CACZvN,KAAMsN,EACNrN,IAAK6G,EAAKlX,GACVsQ,MAAOqH,EAAO3X,GACduQ,OAAQ+M,EAAQtd,IAEhBgB,EAAS,EAAK+Q,UAAUrU,KAAKigB,QACbpgB,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAhCjB,EADvB,mCAsCI,SAAU6T,GACN,OAAOzR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,UAvC1C,GAAyBqT,GA4ClB,SAAS0M,GAAIzM,GAChBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIqc,GAAIlM,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXqc,GAAIlL,UAAYyL,GC5CT,IAEMC,GAAb,8BACI,WAAY1M,GAAO,gBACf,cAAMA,GACN,IAAIwG,EAASxG,EAAMb,MACfgN,EAAUnM,EAAMZ,OAHL,OAIf,EAAKvP,OAAS,GACd,EAAK+Q,UAAY,UAAC,wFAIP,OAHH/Q,EAAS,OADC,sBAIdgR,EAJc,QAKL1B,OAAgC,kBAAf0B,EAAK1B,MALjB,gBAOH,OADPwN,EAAY9L,EAAK1B,WANP,iBAOV0B,EAPU,cAiBH,OAPH8L,EAAY9L,EAAK1B,MACjBtP,GAAkBgR,EAAKzB,OAElByB,EAAK1B,MAAQwN,IAClB9c,GAAkBgR,EAAKzB,QAE3BuN,EAAY9L,EAAK1B,MAhBP,UAiBGtP,EAjBH,QAiBVgR,EAjBU,gEAAD,GAoBjB,EAAKD,UAAUrU,OACfia,EAAO3V,SAAQ,SAACsO,EAAOtQ,GACnB,IAAI2d,EAAY,CACZrN,MAAOqH,EAAO3X,GACduQ,OAAQ+M,EAAQtd,IAEhBgB,EAAS,EAAK+Q,UAAUrU,KAAKigB,QACbpgB,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAjCjB,EADvB,mCAsCI,SAAU6T,GACN,OAAOzR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,UAvC1C,GAAyBqT,GA4ClB,SAAS6M,GAAI5M,GAChBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI6c,GAAI1M,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARX6c,GAAI1L,UAAY4L,GC3CT,IAGMC,GAAb,8BACI,WAAY7M,GAAO,gBACf,cAAMA,GACN,IAAIkB,EAAalB,EAAMG,OACnBG,EAASN,EAAMM,OACfb,EAAS,EAAKA,OACd6B,EAAM,IAAIL,EAAI,CAAEX,OAAQA,EAAQH,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACpEoN,EAAW,IAAI7L,EAAI,CAAEX,OAAQA,EAAQH,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACzEqN,EAAgB,IAAI9L,EAAI,CAAEX,OAAQA,EAAQH,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KAC9EsN,EAAU,IAAIxE,GAAI,CAAElI,OAAQ,EAAGH,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KARxD,OASf,EAAK7P,OAAS,GACd,EAAK+Q,UAAY,UAAC,4FACH,YADG,iBACVC,EADU,cAOH,OAJHoM,EAAa3L,EAAID,UAAUR,GAC3BqM,EAAiBD,EAAaH,EAASzL,UAAU4L,QAAc7gB,EAC/D+gB,EAAuBD,EAAiBH,EAAc1L,UAAU6L,QAAkB9gB,EAClFyD,EAASsd,EAAuBH,EAAQ3L,UAAU8L,QAAwB/gB,EANpE,UAOGyD,EAAS4P,EAAO5P,QAAUzD,EAP7B,QAOVyU,EAPU,gEAAD,GAUjB,EAAKD,UAAUrU,OACf2U,EAAWrQ,SAAQ,SAACgQ,GAChB,IAAIhR,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACZzU,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAxBjB,EADvB,mCA6BI,SAAU6T,GACN,IAAI4E,EAAarW,KAAK8R,UAAUrU,KAAKgU,GACrC,QAAyBnU,IAArB+Y,EAAWzY,MACX,OAAOyY,EAAWzY,UAhC9B,GAA0BqT,GAqCnB,SAASqN,GAAKpN,GACjBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIgd,GAAK7M,GAAOnQ,OAK7B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXgd,GAAK7L,UAAYoM,GC5CV,IAOMC,GAAb,8BACI,WAAYrN,GAAO,gBACf,cAAMA,GACN,IAAIwG,EAASxG,EAAMb,MACfgN,EAAUnM,EAAMZ,OAChBkB,EAASN,EAAMM,QAAU,EAC7B,GAAO6L,EAAQxf,SAAW6Z,EAAO7Z,OAC7B,KAAO,0CAEX,IAAI2gB,EAAgB,IAAIrM,EAAI,CAAEd,OAAQ,GAAIG,OAAQA,IARnC,OASf,EAAKzQ,OAAS,GACd,EAAK+Q,UAAY,UAAC,wFACK,YADL,iBAEH,OADP2M,EADU,6BAEV1M,EAFU,cAOH,OAFP2M,GAAc3M,EAAK1B,MAAQoO,EAAapO,OAAS0B,EAAKzB,OACtDmO,EAAe1M,EANL,UAOGyM,EAAcjM,UAAUmM,GAP3B,QAOV3M,EAPU,gEAAD,GAUjB,EAAKD,UAAUrU,OACf4f,EAAQtb,SAAQ,SAACgQ,EAAMhS,GACnB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7B4S,MAAOqH,EAAO3X,GACduQ,OAAQ+M,EAAQtd,UAEAzC,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UA3BjB,EADvB,mCAkCI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GAAO7T,MACxC,QAAcN,GAAVyD,EACA,OAAOA,MArCnB,GAAgCkQ,GA2CzB,SAAS0N,GAAWzN,GACvBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIwd,GAAWrN,GAAOnQ,OAKnC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXwd,GAAWrM,UAAYyM,GChDhB,IAGMC,GAAb,8BACI,WAAY1N,GAAO,gBACf,cAAMA,GACN,IAAI+F,EAAO/F,EAAMd,IACb8G,EAAQhG,EAAMf,KACduH,EAASxG,EAAMb,MACfmB,EAASN,EAAMM,OAGfqN,GAFS,EAAKlO,OAEC,IAAInC,EAAWgD,IAE9BsN,EAAkB,IAAIvN,EAAI,CAAEC,OAAQA,EAAQH,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACpF,GAAOqG,EAAKpZ,SAAWqZ,EAAMrZ,QAAYqZ,EAAMrZ,SAAW6Z,EAAO7Z,OAC7D,KAAO,4CAZI,OAcf,EAAKkD,OAAS,GACd,EAAK+Q,UAAY,UAAC,kGACH,YADG,iBACVC,EADU,cASV,GANIgN,GAAMhN,EAAK5B,KAAO4B,EAAK3B,IAAM2B,EAAK1B,OAAS,EAC/CwO,EAAalhB,KAAKohB,GACdC,EAAQF,EAAgBvM,UAAUwM,GAClB,KAChBE,OAPM,EAQNrN,EAAM,OACGtU,GAAT0hB,EAAoB,KAINH,EAAa5hB,YAJP,IAIpB,2BAAS+Y,EAA8B,QACnCpE,GAAaqE,KAAK4B,IAAI7B,EAAIgJ,GALV,8BASpBC,GAAOF,EAAKC,IA1BT,MAyBapN,EAAMJ,IAGnB,OApBG,UAoBGyN,EApBH,QAoBVlN,EApBU,gEAAD,GAuBjB,EAAKD,UAAUrU,OACfwZ,EAAKlV,SAAQ,SAACgQ,EAAMhS,GAChB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7B0S,KAAM+G,EAAMnX,GACZqQ,IAAK6G,EAAKlX,GACVsQ,MAAOqH,EAAO3X,UAEEzC,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UA9CjB,EADvB,mCAqDI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GAAO7T,MACxC,QAAcN,GAAVyD,EACA,OAAOA,MAxDnB,GAAyBkQ,GA8DlB,SAASgO,GAAI/N,GAChBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI6d,GAAI1N,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARX6d,GAAI1M,UAAY+M,GCjET,IAEMC,GAAb,8BACI,WAAYhO,GAAO,gBACf,cAAMA,GACN,IAAIgG,EAAQhG,EAAMf,KACd8G,EAAO/F,EAAMd,IACbgD,EAAalC,EAAMkC,WACnBE,EAAapC,EAAMoC,WACnB6L,EAAU,IAAI5N,EAAI,CAAEF,OAAQ,GAAIG,OAAQ8B,IACxC8L,EAAU,IAAI7N,EAAI,CAAEF,OAAQ,GAAIG,OAAQ4B,IAP7B,OAQf,EAAKrS,OAAS,GACd,EAAK+Q,UAAY,UAAC,4FAMP,YANO,iBAMdC,EANc,cAcH,OANPsN,GAAetN,EAAK5B,KAAO4B,EAAK3B,KAAO,EACvCkP,EAAeH,EAAQ5M,UAAU8M,GACjCE,EAAeH,EAAQ7M,UAAU8M,QACZ/hB,IAAjBgiB,QAA+ChiB,IAAjBiiB,IAC9Bxe,EAASwe,EAAeD,GAZlB,UAcGve,EAdH,QAcVgR,EAdU,gEAAD,GAiBjB,EAAKD,UAAUrU,OACfyZ,EAAMnV,SAAQ,SAAC0b,EAAU1d,GACrB,IAAI2d,EAAY,CACZvN,KAAMsN,EACNrN,IAAK6G,EAAKlX,IAEVgB,EAAS,EAAK+Q,UAAUrU,KAAKigB,QACbpgB,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAK,EAAKgT,OAAO5P,EAAOnD,WAlC7B,EADvB,mCAwCI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GACjC,QAAoBnU,GAAhByD,EAAOnD,MACP,OAAOoC,KAAK2Q,OAAO5P,EAAOnD,WA3CtC,GAAuCqT,GAiDhC,SAASuO,GAAkBtO,GAC9BD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIme,GAAkBhO,GAAOnQ,OAK1C,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXme,GAAkBhN,UAAYsN,GCnDvB,IAGMC,GAAb,8BACI,WAAYvO,GAAO,gBACf,cAAMA,GACN,IAAI+F,EAAO/F,EAAMd,IACb8G,EAAQhG,EAAMf,KACduH,EAASxG,EAAMb,MACfgN,EAAUnM,EAAMZ,OACP,EAAKK,OAClB,GAAOsG,EAAKpZ,SAAWqZ,EAAMrZ,QAAYqZ,EAAMrZ,SAAW6Z,EAAO7Z,OAC7D,KAAO,4CARI,OAUf,EAAKkD,OAAS,GACd,EAAK+Q,UAAY,UAAC,4FACH,YADG,iBACVC,EADU,OAEV2N,EAAkB,EAClBC,EAAmB,EAHT,OASH,OAJHC,GAAgB7N,EAAK5B,KAAO4B,EAAK3B,IAAM2B,EAAK1B,OAAS,EACrDwP,EAAQ9N,EAAKzB,OAASsP,EAC1BF,GAAoCG,EACpCF,GAAsC5N,EAAKzB,OARjC,UASGoP,EAAkBC,EATrB,QASV5N,EATU,gEAAD,GAajB,EAAKD,UAAUrU,OACfwZ,EAAKlV,SAAQ,SAACgQ,EAAMhS,GAChB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7B0S,KAAM+G,EAAMnX,GACZqQ,IAAK6G,EAAKlX,GACVsQ,MAAOqH,EAAO3X,GACduQ,OAAQ+M,EAAQtd,UAEAzC,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAjCjB,EADvB,mCAwCI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GAAO7T,MACxC,QAAcN,GAAVyD,EACA,OAAOA,MA3CnB,GAA0BkQ,GAiDnB,SAAS6O,GAAK5O,GACjBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI0e,GAAKvO,GAAOnQ,OAK7B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARX0e,GAAKvN,UAAY4N,G,aChDF,SAAStX,GAAmB1L,GACzC,OCJa,SAA4BA,GACzC,GAAIF,MAAMD,QAAQG,GAAM,OAAO,OAAAijB,GAAA,GAAiBjjB,GDGzC,CAAkBA,IELZ,SAA0BkjB,GACvC,GAAsB,qBAAXhjB,QAA0BA,OAAOC,YAAYT,OAAOwjB,GAAO,OAAOpjB,MAAMmC,KAAKihB,GFIvD,CAAgBljB,IAAQ,OAAAiB,EAAA,GAA2BjB,IGLvE,WACb,MAAM,IAAIkB,UAAU,wIHIwE,GIGvF,IAAMiiB,GAAb,8BACI,WAAY/O,GAAO,gBACf,cAAMA,GACN,IAAIgG,EAAQhG,EAAMf,KACd8G,EAAO/F,EAAMd,IACbsH,EAASxG,EAAMb,MACf6P,EAAQhP,EAAMhB,KACdmN,EAAUnM,EAAMZ,OAChB6P,EAAOjP,EAAMkP,SACjB,GAAOnJ,EAAKpZ,SAAWqZ,EAAMrZ,QAAYqZ,EAAMrZ,SAAW6Z,EAAO7Z,QAAYqZ,EAAMrZ,SAAWwf,EAAQxf,OAClG,KAAO,qDAEX,EAAKkD,OAAS,GAKd,IAJA,IAhBkCqP,EAAKD,EAAMkQ,EAAMC,EAgB/C1I,EAAM3B,KAAK2B,IAAL,MAAA3B,KAAI,GAAQiB,GAAR,UAAkBD,GAAlB,GAA2BS,GAA3B,GAAsCwI,KAChD3D,EAAMtG,KAAKsG,IAAL,MAAAtG,KAAI,GAAQiB,GAAR,UAAkBD,GAAlB,GAA2BS,GAA3B,GAAsCwI,KAChDK,GAAY3I,EAAM2E,GAAO4D,EACzBK,EAAUjE,EACLxf,EAAI,EAAGA,EAAIojB,EAAMpjB,IAAK,CAC3B,IAAI0jB,EAAaD,EACbE,EAAWD,EAAaF,EAC5BC,EAAUE,EAIV,IAHA,IAAIC,EAAgB,EAChBC,EAAgB,EAChBC,EAAc,EACTC,EAAW,EAAGA,EAAW5J,EAAMrZ,OAAQijB,IAAY,CACxD,IAAIC,EAAgB9J,EAAK6J,GACrBE,EAAc9J,EAAM4J,GACpBG,EAAef,EAAMY,GACrBI,EAAgBxJ,EAAOoJ,GACvBK,EAAiB9D,EAAQyD,GAhCE3Q,EAiCWuQ,EAjCCJ,EAiCwBU,IAjCzC5Q,EAiCIqQ,KAjCOJ,EAiCeU,IAhCzC5Q,GAAQkQ,GAAUA,GAAQjQ,GAAOkQ,GAASlQ,KAiCjDyQ,GAA4BM,EACxBF,EAAeC,EACfN,GAAgCO,EAGhCR,GAAgCQ,GAI5C,EAAKpgB,OAAOpD,KAAK,CACb8iB,aAAYC,WAAUC,gBAAeC,gBAAeC,gBAxC7C,SADvB,mCA8CI,SAAUpP,GACN,KAAO,kDA/Cf,GAAmCR,GAoD5B,SAASmQ,GAAclQ,GAC1BD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIkf,GAAc/O,GAAOnQ,OAKtC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXkf,GAAc/N,UAAYkP,GCvDnB,IAEMC,GAAb,8BACI,WAAYnQ,GAAO,wBACf,cAAMA,IACDnQ,OAAS,GACd,EAAK+Q,UAAY,UAAC,oFACG,YADH,iBACVwP,EADU,cAGG,OAHH,UAGUA,EAAWnR,KAAOmR,EAAWlR,IAAMkR,EAAWjR,OAAS,EAHjE,OAGViR,EAHU,+DAAD,GAMjB,EAAKxP,UAAUrU,OACfyT,EAAMd,IAAIrO,SAAQ,SAACgQ,EAAMhS,GACrB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7B0S,KAAMe,EAAMf,KAAKpQ,GACjBqQ,IAAKc,EAAMd,IAAIrQ,GACfsQ,MAAOa,EAAMb,MAAMtQ,KAEvB,EAAKgB,OAAOpD,KAAKoD,EAAOnD,UAhBb,EADvB,mCAoBI,SAAU6T,GAEN,OADazR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,UArBhD,GAAkCqT,GA0BlCoQ,GAAanP,UACN,SAAsBhB,GACzBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIsgB,GAAanQ,GAAOnQ,OACjCmQ,EAAME,eACNrQ,EAAOuQ,UAGX,OADAL,EAAUgB,cAAcf,GACjBnQ,GClCJ,IAEMwgB,GAAb,8BACI,WAAYrQ,GAAO,gBACf,cAAMA,GACN,IAAIgG,EAAQhG,EAAMf,KACd8G,EAAO/F,EAAMd,IACbsH,EAASxG,EAAMb,MACfgN,EAAUnM,EAAMZ,OAChBkB,EAASN,EAAMM,OACfoO,EAAe,IAAIyB,GAAa,CAAEjR,IAAK,GAAID,KAAM,GAAIE,MAAO,KAC5DmR,EAAe,IAAIxS,EAAoBwC,GAAQ,GAAO,GAAO,GAC7DiQ,EAAe,IAAIzS,EAAoBwC,GAAQ,GAAO,GAAO,GACjE,GAAOyF,EAAKpZ,SAAWqZ,EAAMrZ,QAAYqZ,EAAMrZ,SAAW6Z,EAAO7Z,QAAYqZ,EAAMrZ,SAAWwf,EAAQxf,OAClG,KAAO,qDAXI,OAaf,EAAKkD,OAAS,GACd,EAAK+Q,UAAY,UAAC,8GAUP,OALH4P,EAAe,EAGfC,EAAoB,KACpBC,EAAsB,UATZ,iBAYP,OAFP7P,EAVc,OAWFA,EAAK1B,WAXH,iBAYd0B,EAZc,eA+BH,OAjBD5B,GAdI,EAcyB4B,GAA7B5B,KAAMC,EAdF,EAcEA,IAAKC,EAdP,EAcOA,MAAOC,EAdd,EAccA,OACpBuR,EAAgB,EAChBC,EAAgB,EACpBH,EAAoB/B,EAAarN,UAAU,CAAEpC,OAAMC,MAAKC,UACxDqR,EAAeC,EAAoBrR,EACT,MAArBqR,GAAsD,MAAvBC,IAChCD,EAAoBC,EAAsBC,EAAgBH,EAAeI,EAAgBJ,EACzFF,EAAa7jB,KAAKkkB,GAClBJ,EAAa9jB,KAAKmkB,GAClBC,EAAwBP,EAAahS,UACrCwS,EAAwBP,EAAajS,UAChCgS,EAAapS,aAAeoC,GAAYgQ,EAAapS,aAAeoC,IAErEzQ,EAAS,IAAM,KAAO,EADLghB,EAAwBC,KAIjDJ,EAAsBD,EA9BZ,UA+BG5gB,EA/BH,QA+BVgR,EA/BU,iEAAD,GAkCjB,EAAKD,UAAUrU,OACfyZ,EAAMnV,SAAQ,SAAC0b,EAAU1d,GACrB,IAAI2d,EAAY,CACZvN,KAAMsN,EACNrN,IAAK6G,EAAKlX,GACVsQ,MAAOqH,EAAO3X,GACduQ,OAAQ+M,EAAQtd,IAEhBgB,EAAS,EAAK+Q,UAAUrU,KAAKigB,QACbpgB,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKmT,WAAW/P,EAAOnD,MAAMsX,QAAQ,QA1D1C,EADvB,mCAgEI,SAAUzD,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GACjC,QAAoBnU,GAAhByD,EAAOnD,MACP,OAAQkT,WAAW/P,EAAOnD,MAAMsX,QAAQ,QAnEpD,GAAyBjE,GAyElB,SAASgR,GAAI/Q,GAChBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIwgB,GAAIrQ,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXwgB,GAAIrP,UAAY+P,GCxET,IAMMC,GAAb,8BACI,WAAYhR,GAAO,gBACf,cAAMA,GACN,IAAIwG,EAASxG,EAAMG,OACf8Q,EAAYjR,EAAMiR,UAClBC,EAAmBlR,EAAMkR,iBACzBC,EAAUnR,EAAMmR,QAChBC,EAAUpR,EAAMoR,QACP,EAAK3R,OAPH,OAQf,EAAK5P,OAAS,GACd,EAAK+Q,UAAY,UAAC,oGAUH,OATC,EACRqD,EAAM,IAAIR,EAAI,CAAEnD,OAAQ2Q,EAAW9Q,OAAQ,KAC3C2L,EAAa,IAAIN,GAAW,CAAElL,OAAQ4Q,EAAkBjS,KAAM,GAAIC,IAAK,GAAIC,MAAO,GAAImD,aAAc6O,IACpGxF,EAAO,IAAItL,EAAI,CACfC,OAAQ8Q,EACRjR,OAAQ,GACRV,OAAQ,SAACC,GAAQ,OAAOA,UAPd,iBAUVmB,EAVU,cA0BH,YAbSzU,KADhBilB,EAAUpN,EAAI5C,UAAUR,MAEhByQ,EAAkB,CAAErS,KAAMoS,EAASnS,IAAKmS,EAASlS,MAAOkS,QAEtCjlB,KADtBmlB,EAAgBzF,EAAWzK,UAAUiQ,UACkBllB,IAApBmlB,EAAc1F,QAEnCzf,KADVyf,EAAIF,EAAKtK,UAAUkQ,EAAc1F,MAE7Bhc,EAAS,CACL2hB,SAAUD,EAAc3F,EACxBA,EAAG2F,EAAc1F,EACjBA,EAAGA,KAtBT,UA0BGhc,EA1BH,QA0BVgR,EA1BU,gEAAD,GA6BjB,EAAKD,UAAUrU,OACfia,EAAO3V,SAAQ,SAACgQ,EAAMhS,GAClB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAKsU,QACZzU,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UA1CjB,EADvB,mCAgDI,SAAUsT,GACN,IAAImF,EAAarW,KAAK8R,UAAUrU,KAAKyT,GACrC,QAAyB5T,IAArB+Y,EAAWzY,MACX,OAAOyY,EAAWzY,UAnD9B,GAAmCqT,GAwD5B,SAAS0R,GAAczR,GAC1BD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAImhB,GAAchR,GAAOnQ,OAKtC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXmhB,GAAchQ,UAAYyQ,GCnEnB,IAEMC,GAAb,8BACI,WAAY1R,GAAO,gBACf,cAAMA,GACN,IAAIG,EAASH,EAAMG,OACfG,EAASN,EAAMM,OACnB,EAAKzQ,OAAS,GACd,IAAI8hB,EAAa,IAAIC,EAAqBtR,GAAQ,GAAM,GAAO,GALhD,OAMf,EAAKM,UAAY,UAAC,sFAIP,YAJO,iBAIdC,EAJc,cAUH,OAJP8Q,EAAWllB,KAAKoU,GACZ8Q,EAAWzT,aAAeoC,IAC1BrB,EAAO0S,EAAWxT,YARZ,SAUGc,EAVH,OAUV4B,EAVU,gEAAD,GAajB,EAAKD,UAAUrU,OACf4T,EAAOtP,SAAQ,SAACnE,EAAOmC,GACnB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAKG,QACbN,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAvBjB,EADvB,mCA6BI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GACjC,QAAoBnU,GAAhByD,EAAOnD,MACP,OAAOmD,EAAOnD,UAhC1B,GAA6BqT,GAsCtB,SAAS8R,GAAQ7R,GACpBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI6hB,GAAQ1R,GAAOnQ,OAKhC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARX6hB,GAAQ1Q,UAAY6Q,GCvCb,IAEMC,GAAb,8BACI,WAAY9R,GAAO,gBACf,cAAMA,GACN,IAAIG,EAASH,EAAMG,OACfG,EAASN,EAAMM,OACnB,EAAKzQ,OAAS,GACd,IAAI8hB,EAAa,IAAIC,EAAqBtR,GAAQ,GAAO,GAAM,GALhD,OAMf,EAAKM,UAAY,UAAC,sFAIP,YAJO,iBAIdC,EAJc,cAUH,OAJP8Q,EAAWllB,KAAKoU,GACZ8Q,EAAWzT,aAAeoC,IAC1BrB,EAAO0S,EAAWvT,WARZ,SAUGa,EAVH,OAUV4B,EAVU,gEAAD,GAajB,EAAKD,UAAUrU,OACf4T,EAAOtP,SAAQ,SAACnE,EAAOmC,GACnB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAKG,QACbN,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAvBjB,EADvB,mCA6BI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GACjC,QAAoBnU,GAAhByD,EAAOnD,MACP,OAAOmD,EAAOnD,UAhC1B,GAA4BqT,GAsCrB,SAASgS,GAAO/R,GACnBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIiiB,GAAO9R,GAAOnQ,OAK/B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXiiB,GAAO9Q,UAAY+Q,GCvCZ,IAEMC,GAAb,8BACI,WAAYhS,GAAO,gBACf,cAAMA,GACN,IAAIG,EAASH,EAAMG,OACfG,EAASN,EAAMM,OACnB,EAAKzQ,OAAS,GACd,IAAI8hB,EAAa,IAAIC,EAAqBtR,GAAQ,GAAO,GAAO,GALjD,OAMf,EAAKM,UAAY,UAAC,sFAIP,YAJO,iBAIdC,EAJc,cAUH,OAJP8Q,EAAWllB,KAAKoU,GACZ8Q,EAAWzT,aAAeoC,IAC1BrB,EAAO0S,EAAWrT,WARZ,SAUGW,EAVH,OAUV4B,EAVU,gEAAD,GAajB,EAAKD,UAAUrU,OACf4T,EAAOtP,SAAQ,SAACnE,EAAOmC,GACnB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAKG,QACbN,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAvBjB,EADvB,mCA6BI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GACjC,QAAoBnU,GAAhByD,EAAOnD,MACP,OAAOmD,EAAOnD,UAhC1B,GAAyBqT,GAsClB,SAASW,GAAIV,GAChBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAImiB,GAAIhS,GAAOnQ,OAK5B,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXmiB,GAAIhR,UAAYN,GCnCT,IAEDuR,G,8BACF,WAAYjS,GAAO,iBACf,cAAMA,IACYP,OAAlB,IACIyS,EAASlS,EAAMkS,OACfC,EAAYnS,EAAMmS,WAAa,EACnC,GAAID,EAAQ,CACR,IAAIE,EAAY7J,GAAIjd,OAAO8E,OAAO,GAAI4P,IACtCmS,EAAYC,EAAUA,EAAUzlB,OAAS,GAI7C,GAFA,EAAKkD,OAAS,IAAIkP,EAEA,IAAdoT,EAEA,OADAE,QAAQ1e,MAAM,mEACd,KAEJ,IAAI2e,EAAW,EACXC,EAAW,EACXC,EAAUnU,IACVsO,EAAY,EACZ8F,EAAa,EAnBF,OAqBf,EAAK7R,UAAY,UAAC,4FACG,YADH,iBACV8R,EADU,iBAIO,IAAbJ,EAJM,iBAWO,OANbA,EAAWI,EAAWvT,MACtBoT,EAAWG,EAAWzT,KACtBuT,EAAUE,EAAWxT,IACrByN,EAAY+F,EAAWvT,MACvBsT,EAAaC,EAAWtT,OACRsT,EAAWrT,eAVrB,0BAWNqT,EAXM,yCAcNC,EAA4B5N,KAAK4B,IAAI+L,EAAWvT,MAAQwN,GACxDiG,EAA2B7N,KAAK4B,IAAI+L,EAAWvT,MAAQmT,KACtDK,GAA6BR,GAAeS,GAA4BT,GAhBnE,iBA+BO,OAbTU,EAAa,CACb7T,KAFA8T,EAAYH,EAA4BC,EAA2BN,EAAW3F,EAG9E1N,KAAMsT,EAAWG,EAAWzT,KAAOsT,EAAWG,EAAWzT,KACzDC,IAAKsT,EAAUE,EAAWK,IAAMP,EAAUE,EAAWxT,IACrDC,MAAO2T,EAAYJ,EAAWvT,MAAS2T,EAAYX,EAAcW,EAAYX,EAC7E/S,OAAQqT,EAAaC,EAAWtT,OAChCC,UAAWqT,EAAWrT,WAE1BiT,EAAWO,EAAW7T,KACtBuT,EAAWM,EAAW1T,MACtBqT,EAAUK,EAAW1T,MACrBwN,EAAYkG,EAAW1T,MACvBsT,EAAa,EA9BP,UA+BaI,EA/Bb,QA+BNH,EA/BM,+BAsCO,OAJbH,EAAWA,EAAWG,EAAWzT,KAAOsT,EAAWG,EAAWzT,KAC9DuT,EAAUA,EAAUE,EAAWK,IAAMP,EAAUE,EAAWxT,IAC1DuT,GAA0BC,EAAWtT,OACrBsT,EAAWrT,eArCrB,mBAsCNqT,EAtCM,wEAAD,GA0CjB,EAAK9R,UAAUrU,OACfyT,EAAMd,IAAIrO,SAAQ,SAACgQ,EAAMhS,GACrB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7ByS,KAAMgB,EAAMhB,KAAKnQ,GACjBoQ,KAAMe,EAAMf,KAAKpQ,GACjBqQ,IAAKc,EAAMd,IAAIrQ,GACfsQ,MAAOa,EAAMb,MAAMtQ,GACnBuQ,OAAQY,EAAMZ,OAAOvQ,GACrBwQ,UAAWW,EAAMX,UAAUxQ,KAE3BgB,EAAOnD,QACP,EAAKmD,OAAOmP,KAAKvS,KAAKoD,EAAOnD,MAAMsS,MACnC,EAAKnP,OAAOoP,KAAKxS,KAAKoD,EAAOnD,MAAMuS,MACnC,EAAKpP,OAAOqP,IAAIzS,KAAKoD,EAAOnD,MAAMwS,KAClC,EAAKrP,OAAOsP,MAAM1S,KAAKoD,EAAOnD,MAAMyS,OACpC,EAAKtP,OAAOuP,OAAO3S,KAAKoD,EAAOnD,MAAM0S,QACrC,EAAKvP,OAAOwP,UAAU5S,KAAKoD,EAAOnD,MAAM2S,eA/EjC,E,mCAmFnB,SAAUkB,GAEN,OADA8R,QAAQ1e,MAAM,iHACP,S,GAtFKoM,GA2Fb,SAASiT,GAAMhT,GAClBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIoiB,GAAMjS,GAAOnQ,OAU9B,OATImQ,EAAME,gBACNrQ,EAAOmP,KAAKoB,UACZvQ,EAAOoP,KAAKmB,UACZvQ,EAAOqP,IAAIkB,UACXvQ,EAAOsP,MAAMiB,UACbvQ,EAAOuP,OAAOgB,UACdvQ,EAAOwP,UAAUe,WAErBL,EAAUgB,cAAcf,GACjBnQ,EAbXoiB,GAAMjR,UAAYgS,GC7FX,IAEMC,GAAb,8BACI,WAAYjT,GAAO,iBACf,cAAMA,IACYP,OAClB,EAAK5P,OAAS,IAAIkP,EAClB,IAAIuT,EAAW,KACXC,EAAW,EACXC,EAAUnU,IACVsO,EAAY,EAPD,OAUf,EAAK/L,UAAY,UAAC,8FACG,YADH,iBACV8R,EADU,OAEVG,EAAa,KAFH,OAsCG,OAlCI,OAAbP,GACAA,GAAYI,EAAWvT,MAAQuT,EAAW1T,MAAQ,EAClDuT,EAAWG,EAAWzT,KACtBuT,EAAUE,EAAWxT,IACrByN,GAAa+F,EAAWvT,MAAQuT,EAAW1T,KAAO0T,EAAWzT,KAAOyT,EAAWxT,KAAO,EACxEwT,EAAWtT,QAAU,EAClBsT,EAAWrT,WAAa,EACzCwT,EAAa,CACT7T,KAAMsT,EACNrT,KAAMsT,EACNrT,IAAKsT,EACLrT,MAAOwN,EACPvN,OAAQsT,EAAWtT,QAAU,EAC7BC,UAAYqT,EAAWrT,WAAa,KAIpC6T,GAAYR,EAAWvT,MAAQuT,EAAW1T,KAAO0T,EAAWzT,KAAOyT,EAAWxT,KAAO,EACrFiU,GAAWb,EAAW3F,GAAa,EACnCyG,EAAUrO,KAAK2B,IAAIyM,EAASD,EAAUR,EAAWzT,MACjDoU,EAAStO,KAAKsG,IAAIqH,EAAWxT,IAAKiU,EAASD,GAC/CL,EAAa,CACT1T,MAAO+T,EACPlU,KAAMmU,EACNlU,KAAMmU,EACNlU,IAAKmU,EACLjU,OAASsT,EAAWtT,QAAU,EAC9BC,UAAYqT,EAAWrT,WAAa,GAExCsN,EAAYuG,EACZZ,EAAWa,EACXZ,EAAWa,EACXZ,EAAUa,GApCJ,SAsCSR,EAtCT,OAsCVH,EAtCU,gEAAD,GAyCjB,EAAK9R,UAAUrU,OACfyT,EAAMd,IAAIrO,SAAQ,SAACgQ,EAAMhS,GACrB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7ByS,KAAMgB,EAAMhB,KAAKnQ,GACjBoQ,KAAMe,EAAMf,KAAKpQ,GACjBqQ,IAAKc,EAAMd,IAAIrQ,GACfsQ,MAAOa,EAAMb,MAAMtQ,GACnBuQ,OAAQY,EAAMZ,OAASY,EAAMZ,OAAOvQ,GAASmR,EAAMZ,OACnDC,UAAWW,EAAMX,UAAYW,EAAMX,UAAUxQ,GAASmR,EAAMX,YAE5DxP,EAAOnD,QACP,EAAKmD,OAAOmP,KAAKvS,KAAKoD,EAAOnD,MAAMsS,MACnC,EAAKnP,OAAOoP,KAAKxS,KAAKoD,EAAOnD,MAAMuS,MACnC,EAAKpP,OAAOqP,IAAIzS,KAAKoD,EAAOnD,MAAMwS,KAClC,EAAKrP,OAAOsP,MAAM1S,KAAKoD,EAAOnD,MAAMyS,OACpC,EAAKtP,OAAOuP,OAAO3S,KAAKoD,EAAOnD,MAAM0S,QACrC,EAAKvP,OAAOwP,UAAU5S,KAAKoD,EAAOnD,MAAM2S,eAnEjC,EADvB,mCAwEI,SAAUkB,GAEN,OADazR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,UAzEhD,GAAgCqT,GA+EzB,SAASuT,GAAWtT,GACvBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIojB,GAAWjT,GAAOnQ,OAUnC,OATImQ,EAAME,gBACNrQ,EAAOmP,KAAKoB,UACZvQ,EAAOoP,KAAKmB,UACZvQ,EAAOqP,IAAIkB,UACXvQ,EAAOsP,MAAMiB,UACbvQ,EAAOuP,OAAOgB,UACdvQ,EAAOwP,UAAUe,WAErBL,EAAUgB,cAAcf,GACjBnQ,EAbXojB,GAAWjS,UAAYsS,G,ICrFFC,G,WACjB,aAAc,U,0CAKd,SAAiBtb,EAAGC,GAGhB,OAFwD,EAA7C0H,WAAWmF,KAAK4B,IAAI1O,EAAIC,GAAG2H,YAAY,KACG,EAAzCD,YAAgB,KAAJ3H,GAAW4H,YAAY,M,mBAGnD,SAAMnQ,GACF,KAAM,+B,gCAEV,SAAmBA,GAAM,WACrB,GAAIA,EAAKyP,MAAMxS,OAASmC,KAAK0kB,cAEzB,OADAnB,QAAQoB,KAAK,uDAAwD3kB,KAAKlB,MACnE,GAEP8B,EAAKwQ,gBACLxQ,EAAKsP,KAAKoB,UACV1Q,EAAKuP,KAAKmB,UACV1Q,EAAKwP,IAAIkB,UACT1Q,EAAKyP,MAAMiB,WAEf,IAAIsT,EAAa5kB,KAAK6kB,MACtB,OAAO7kB,KAAK8kB,4BAA4BlkB,GACnCD,KAAI,SAACoO,EAAShP,GACf,OAAO6kB,EAAWjmB,KAAK,EAAMoQ,GAAWhP,OAAQzC,KACjDmN,QAAO,SAACsa,GACP,OAAOA,O,wBAGf,SAAWnkB,GACP,OAAIA,EAAKyP,MAAMxS,OAASmC,KAAK0kB,eACzBnB,QAAQoB,KAAK,uDAAwD3kB,KAAKlB,OACnE,IAEP8B,EAAKwQ,gBACLxQ,EAAKsP,KAAKoB,UACV1Q,EAAKuP,KAAKmB,UACV1Q,EAAKwP,IAAIkB,UACT1Q,EAAKyP,MAAMiB,WAEEtR,KAAK6kB,MACJlmB,KAAKqB,KAAMA,KAAKglB,2BAA2BpkB,O,wCAEjE,SAA2BA,GACvB,IAAI8jB,EAAgB1kB,KAAK0kB,cACzB,GAAI9jB,EAAKyP,MAAMxS,SAAW6mB,EACtB,OAAO9jB,EAWP,IARA,IAAIqkB,EAAY,CACZ/U,KAAM,GACNC,KAAM,GACNC,IAAK,GACLC,MAAO,IAEPtT,EAAI,EACJgD,EAAQa,EAAKyP,MAAMxS,OAAS6mB,EACzB3nB,EAAI2nB,GACPO,EAAU/U,KAAKvS,KAAKiD,EAAKsP,KAAKnQ,EAAQhD,IACtCkoB,EAAU9U,KAAKxS,KAAKiD,EAAKuP,KAAKpQ,EAAQhD,IACtCkoB,EAAU7U,IAAIzS,KAAKiD,EAAKwP,IAAIrQ,EAAQhD,IACpCkoB,EAAU5U,MAAM1S,KAAKiD,EAAKyP,MAAMtQ,EAAQhD,IACxCA,IAEJ,OAAOkoB,I,yCAGf,SAA4BrkB,GACxB,IAAI8jB,EAAgB1kB,KAAK0kB,cAkBzB,OAjBoB9jB,EAAKyP,MAAM1P,KAAI,SAAUukB,EAAanlB,GAQtD,IAPA,IAAIhD,EAAI,EACJkoB,EAAY,CACZ/U,KAAM,GACNC,KAAM,GACNC,IAAK,GACLC,MAAO,IAEJtT,EAAI2nB,GACPO,EAAU/U,KAAKvS,KAAKiD,EAAKsP,KAAKnQ,EAAQhD,IACtCkoB,EAAU9U,KAAKxS,KAAKiD,EAAKuP,KAAKpQ,EAAQhD,IACtCkoB,EAAU7U,IAAIzS,KAAKiD,EAAKwP,IAAIrQ,EAAQhD,IACpCkoB,EAAU5U,MAAM1S,KAAKiD,EAAKyP,MAAMtQ,EAAQhD,IACxCA,IAEJ,OAAOkoB,KACRxa,QAAO,SAACpJ,EAAKtB,GAAY,OAAQA,GAAUa,EAAKyP,MAAMxS,OAAS6mB,S,KCxFrDS,G,8BACjB,aAAc,wBACV,gBACKrmB,KAAO,cACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAE5BiV,GADgB1kB,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,IAExBmV,GADiB3kB,EAAKsP,KAAK,GACTtP,EAAKyP,MAAM,IAC7BmV,EAAiB5kB,EAAKuP,KAAK,GAC3BsV,EAAgB7kB,EAAKwP,IAAI,GACzBsV,EAAgB9kB,EAAKsP,KAAK,GAC1ByV,EAAiB/kB,EAAKyP,MAAM,GACZzP,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,GAW5B,OATqBiV,EAAiBD,IACZE,EAAeG,GACpCH,EAAeE,KAEFA,EAAiBF,GAC9BG,EAAgBH,GAChBI,EAAgBF,GAChBD,EAAkBG,IAJFA,EAAgBC,GAKHA,GATRP,EAAgBC,GAAkB,M,GAnB3BZ,IAgClC,SAASmB,GAAYhlB,GACxB,OAAO,IAAIukB,IAAcU,WAAWjlB,G,ICjCnBklB,G,8BACjB,aAAc,wBACV,gBACKhnB,KAAO,0BACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAG5B0V,GAFgBnlB,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,GACPxP,EAAKsP,KAAK,IAC3BqV,EAAkB3kB,EAAKyP,MAAM,GACZzP,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,GAK7B,OAJ2BiV,EAAiBD,GACvCA,EAAgBW,GAChBV,EAAiBU,GACjBX,EAAgBG,M,GAlBwBd,IAsB9C,SAASuB,GAAwBplB,GACpC,OAAO,IAAIklB,IAA0BD,WAAWjlB,G,ICvB/BqlB,G,8BACjB,aAAc,wBACV,gBACKvB,cAAgB,EACrB,EAAK5lB,KAAO,gBAHF,E,+BAKd,SAAM8B,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAC5B6V,EAAgBtlB,EAAKuP,KAAK,GAE1B4V,GADenlB,EAAKwP,IAAI,GACPxP,EAAKsP,KAAK,IAC3BqV,EAAkB3kB,EAAKyP,MAAM,GAC7BmV,EAAiB5kB,EAAKuP,KAAK,GAC3BsV,EAAgB7kB,EAAKwP,IAAI,GAM7B,OAL+BgV,EAAgBW,GAC1CV,EAAiBU,GACjBV,EAAiBE,GACjBH,EAAgBK,GAChBS,EAAgBV,M,GAnBcf,IAuBpC,SAAS0B,GAAcvlB,GAC1B,OAAO,IAAIqlB,IAAgBJ,WAAWjlB,G,ICxBrBwlB,G,8BACjB,aAAc,wBACV,gBACK1B,cAAgB,EACrB,EAAK5lB,KAAO,qBAHF,E,+BAKd,SAAM8B,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAC5B6V,EAAgBtlB,EAAKuP,KAAK,GAE1B4V,GADenlB,EAAKwP,IAAI,GACPxP,EAAKsP,KAAK,IAC3BqV,EAAkB3kB,EAAKyP,MAAM,GAC7BmV,EAAiB5kB,EAAKuP,KAAK,GAC3BsV,EAAgB7kB,EAAKwP,IAAI,GACzBiW,EAAgCjB,EAAgBW,GAC/CV,EAAiBU,GACjBV,EAAiBE,GACjBH,EAAgBK,GAChBS,EAAgBV,EACjBc,EAAkBtmB,KAAKumB,iBAAiBR,EAAgBR,GAC5D,OAAQc,GAA+BC,M,GArBC7B,IAwBzC,SAAS+B,GAAmB5lB,GAC/B,OAAO,IAAIwlB,IAAqBP,WAAWjlB,G,ICzB1B6lB,G,8BACjB,aAAc,wBACV,gBACK3nB,KAAO,OACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAI8lB,EAAW9lB,EAAKsP,KAAK,GACrByW,EAAY/lB,EAAKyP,MAAM,GACvBuW,EAAWhmB,EAAKuP,KAAK,GACrB0W,EAAUjmB,EAAKwP,IAAI,GACnB0W,EAAoB9mB,KAAKumB,iBAAiBG,EAAUC,GACpDI,EAAmBD,GAAqB9mB,KAAKumB,iBAAiBG,EAAUE,GACxEI,EAAmBF,GAAqB9mB,KAAKumB,iBAAiBI,EAAWE,GAC7E,OAAQC,GAAqBC,GAAoBC,M,GAdvBvC,IAiB3B,SAASwC,GAAKrmB,GACjB,OAAO,IAAI6lB,IAAOZ,WAAWjlB,G,ICjBZsmB,G,8BACjB,aAAc,wBACV,gBACKpoB,KAAO,kBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAE5BiV,GADgB1kB,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,IACxB2V,EAAiBnlB,EAAKsP,KAAK,GAC3BqV,EAAkB3kB,EAAKyP,MAAM,GAC7BmV,EAAiB5kB,EAAKuP,KAAK,GAC3BsV,EAAgB7kB,EAAKwP,IAAI,GACzBsV,EAAgB9kB,EAAKsP,KAAK,GAC1ByV,EAAiB/kB,EAAKyP,MAAM,GAG5B8W,GAFgBvmB,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,IACFgV,EAAgBC,GAAkB,GACxD+B,EAAiB/B,EAAiBD,EAClCiC,GAAa,IAAIZ,IAAOZ,WAAW,CACnC,KAAQ,CAACE,GACT,MAAS,CAACR,GACV,KAAQ,CAACC,GACT,IAAO,CAACC,KAQZ,OAAQ2B,GAAkBC,GANL3B,EAAgBC,IACnBH,EAAiBF,GAC9BG,EAAgBH,GAChBI,EAAgBF,GAChBD,EAAkBG,IACWC,EAAiBwB,M,GAhCd1C,IAqCtC,SAAS6C,GAAgB1mB,GAC5B,OAAO,IAAIsmB,IAAkBrB,WAAWjlB,G,ICvCvB2mB,G,8BACjB,aAAc,wBACV,gBACK7C,cAAgB,EACrB,EAAK5lB,KAAO,oBAHF,E,+BAKd,SAAM8B,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAE5BiV,GADgB1kB,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,IACxB2V,EAAiBnlB,EAAKsP,KAAK,GAC3BqV,EAAkB3kB,EAAKyP,MAAM,GAC7BmV,EAAiB5kB,EAAKuP,KAAK,GAE3BuV,GADgB9kB,EAAKwP,IAAI,GACTxP,EAAKsP,KAAK,IAC1ByV,EAAiB/kB,EAAKyP,MAAM,GACZzP,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,GAS5B,OARqBiV,EAAiBD,GAChBG,EAAkBQ,GACnBJ,EAAiBD,GACfF,EAAiBF,IACZS,EAAiBL,GACxCH,EAAkBG,GAClBC,EAAiBI,GACjBJ,EAAiBN,O,GA1BiBZ,IA8BxC,SAAS+C,GAAkB5mB,GAC9B,OAAO,IAAI2mB,IAAoB1B,WAAWjlB,G,IC/BzB6mB,G,8BACjB,aAAc,wBACV,gBACK3oB,KAAO,kBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAI8lB,EAAW9lB,EAAKsP,KAAK,GACrByW,EAAY/lB,EAAKyP,MAAM,GACvBuW,EAAWhmB,EAAKuP,KAAK,GACrB0W,EAAUjmB,EAAKwP,IAAI,GAKvB,OAJuBpQ,KAAKumB,iBAAiBI,EAAWC,IACpD5mB,KAAKumB,iBAAiBM,EAASH,IAC/BA,EAAWC,GACXD,EAAWE,M,GAdsBnC,IAkBtC,SAASiD,GAAgB9mB,GAC5B,OAAO,IAAI6mB,IAAkB5B,WAAWjlB,G,ICnBvB+mB,G,8BACjB,aAAc,wBACV,gBACKjD,cAAgB,EACrB,EAAK5lB,KAAO,eAHF,E,+BAKd,SAAM8B,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAE5BiV,GADgB1kB,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,IACxB2V,EAAiBnlB,EAAKsP,KAAK,GAC3BqV,EAAkB3kB,EAAKyP,MAAM,GACZzP,EAAKuP,KAAK,GAQ/B,OAPoBvP,EAAKwP,IAAI,GAEKkV,GACbD,EAAiBD,IAERE,EAAeS,GACxCR,GALqBH,EAAgBC,GAAkB,IAGtCE,EAAkBQ,M,GAlBNtB,IAwBnC,SAASmD,GAAahnB,GACzB,OAAO,IAAI+mB,IAAe9B,WAAWjlB,G,ICzBpBinB,G,8BACjB,aAAc,wBACV,gBACK/oB,KAAO,qBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAC5B6V,EAAgBtlB,EAAKuP,KAAK,GAE1B4V,GADenlB,EAAKwP,IAAI,GACPxP,EAAKsP,KAAK,IAC3BqV,EAAkB3kB,EAAKyP,MAAM,GAC7BmV,EAAiB5kB,EAAKuP,KAAK,GAE3BuV,GADgB9kB,EAAKwP,IAAI,GACTxP,EAAKsP,KAAK,IAC1ByV,EAAiB/kB,EAAKyP,MAAM,GAC5ByX,EAAgBlnB,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,GAU5B,OATgBoV,EAAiBU,GAC7B4B,EAAgBtC,IACDJ,EAAgBC,GAC/BU,EAAiBR,GACjBG,EAAgBC,KACaN,EAAiBU,GAC9CA,EAAiBG,GACjBV,EAAiBE,GACjBA,EAAgBH,O,GA3BoBd,IA+BzC,SAASsD,GAAmBnnB,GAC/B,OAAO,IAAIinB,IAAqBhC,WAAWjlB,G,IChC1BonB,G,8BACjB,aAAc,wBACV,gBACKlpB,KAAO,qBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAI8lB,EAAW9lB,EAAKsP,KAAK,GACrByW,EAAY/lB,EAAKyP,MAAM,GACvBuW,EAAWhmB,EAAKuP,KAAK,GACrB0W,EAAUjmB,EAAKwP,IAAI,GACnB6X,EAAkBtB,EAAYD,EAGlC,OADAuB,GADAA,EAAkBA,GAAmBjoB,KAAKumB,iBAAiBI,EAAWC,KAChCD,EAAYD,GAAa,GAAKA,EAAWG,O,GAbvCpC,IAiBzC,SAASyD,GAAmBtnB,GAC/B,OAAO,IAAIonB,IAAqBnC,WAAWjlB,G,IClB1BunB,G,8BACjB,aAAc,wBACV,gBACKrpB,KAAO,6BACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAI8lB,EAAW9lB,EAAKsP,KAAK,GACrByW,EAAY/lB,EAAKyP,MAAM,GACvBuW,EAAWhmB,EAAKuP,KAAK,GACrB0W,EAAUjmB,EAAKwP,IAAI,GACnBgY,EAA0BzB,EAAYD,EAG1C,OADA0B,GADAA,EAA0BA,GAA2BpoB,KAAKumB,iBAAiBG,EAAUG,KAC/BF,EAAYD,GAAa,GAAKE,EAAWD,O,GAb/ClC,IAiBjD,SAAS4D,GAA2BznB,GACvC,OAAO,IAAIunB,IAA6BtC,WAAWjlB,G,IClBlC0nB,G,8BACjB,aAAc,wBACV,gBACKxpB,KAAO,qBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAI8lB,EAAW9lB,EAAKsP,KAAK,GACrByW,EAAY/lB,EAAKyP,MAAM,GACvBuW,EAAWhmB,EAAKuP,KAAK,GACrB0W,EAAUjmB,EAAKwP,IAAI,GACnBmY,EAAkB7B,EAAWC,EAGjC,OADA4B,GADAA,EAAkBA,GAAmBvoB,KAAKumB,iBAAiBG,EAAUE,KAC/BF,EAAWC,GAAc,GAAKA,EAAYE,O,GAbxCpC,IAiBzC,SAAS+D,GAAmB5nB,GAC/B,OAAO,IAAI0nB,IAAqBzC,WAAWjlB,G,IClB1B6nB,G,8BACjB,aAAc,wBACV,gBACK3pB,KAAO,6BACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAI8lB,EAAW9lB,EAAKsP,KAAK,GACrByW,EAAY/lB,EAAKyP,MAAM,GACvBuW,EAAWhmB,EAAKuP,KAAK,GACrB0W,EAAUjmB,EAAKwP,IAAI,GACnBsY,EAA0BhC,EAAWC,EAGzC,OADA+B,GADAA,EAA0BA,GAA2B1oB,KAAKumB,iBAAiBI,EAAWE,KAChCH,EAAWC,GAAc,GAAKC,EAAWF,O,GAb/CjC,IAiBjD,SAASkE,GAA2B/nB,GACvC,OAAO,IAAI6nB,IAA6B5C,WAAWjlB,G,ICZlCgoB,G,8BACjB,aAAc,wBACV,gBACK9pB,KAAO,gBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAIioB,EAAY7oB,KAAK8oB,cAAcloB,GAGnC,OADAioB,GADAA,EAAYA,GAAa7oB,KAAK+oB,eAAenoB,KACpBZ,KAAKgpB,gBAAgBpoB,K,2BAGlD,SAAcA,GAAsB,IAAhBqoB,IAAgB,yDAC5BC,EAAMD,EAAU,EAAI,EAEpBE,EAAQ9U,EAAY,CAAEhD,OAAQzQ,EAAKyP,MAAMzR,MAAM,EAAGsqB,GAAM1X,OAAQ0X,EAAM,IACtEE,EAAS1U,EAAY,CAAErD,OAAQzQ,EAAKyP,MAAMzR,MAAM,EAAGsqB,GAAM1X,OAAQ0X,EAAM,IAE3E,OAAOE,EAASD,I,4BAEpB,SAAevoB,GAAsB,IAAhBqoB,IAAgB,yDAC7BI,EAAQJ,EAAU,EAAI,EACtBC,EAAMD,EAAU,OAAI3rB,EACpBgsB,EAAqB,CACrBpZ,KAAMtP,EAAKsP,KAAKtR,MAAMyqB,EAAOH,GAC7B7Y,MAAOzP,EAAKyP,MAAMzR,MAAMyqB,EAAOH,GAC/B9Y,IAAKxP,EAAKwP,IAAIxR,MAAMyqB,EAAOH,GAC3B/Y,KAAMvP,EAAKuP,KAAKvR,MAAMyqB,EAAOH,IAE7BL,EAAYL,GAAmBc,GAInC,OADAT,GADAA,GADAA,EAAYA,GAAaF,GAA2BW,KAC3BpB,GAAmBoB,KACnBjB,GAA2BiB,K,6BAGxD,SAAgB1oB,GAEFA,EAAKsP,KAAK,GADpB,IAAIqZ,EAEO3oB,EAAKyP,MAAM,GAIlBmZ,GAHK5oB,EAAKwP,IAAI,GACRxP,EAAKuP,KAAK,GAGVvP,EAAKsP,KAAK,IADhBsZ,EAEO5oB,EAAKyP,MAAM,GACbzP,EAAKwP,IAAI,GACRxP,EAAKuP,KAAK,GAIpB,OADgBqZ,EAA4BA,GACxBD,EAAuBC,M,GAlDR/E,IAqDpC,SAASgF,GAAc7oB,GAC1B,OAAO,IAAIgoB,IAAgB/C,WAAWjlB,G,IC5DrB8oB,G,8BACjB,aAAc,wBACV,gBACK5qB,KAAO,2BAFF,E,+BAId,SAAM8B,GACF,IAAIioB,EAAY7oB,KAAK8oB,cAAcloB,GAAM,GAEzC,OADAioB,EAAYA,GAAa7oB,KAAK+oB,eAAenoB,GAAM,O,GAPLgoB,IAW/C,SAASe,GAAyB/oB,GACrC,OAAO,IAAI8oB,IAA2B7D,WAAWjlB,G,ICVhCgpB,G,8BACjB,aAAc,wBACV,gBACK9qB,KAAO,gBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,OAAOZ,KAAK8oB,cAAcloB,IAASA,EAAKwP,IAAI,IAAMxP,EAAKwP,IAAI,K,2BAE/D,SAAcxP,GAEV,IAAIuoB,EAAQ9U,EAAY,CAAEhD,OAAQzQ,EAAKyP,MAAMzR,MAAM,EAAG,GAAI4S,OAAQ,IAGlE,OAFakD,EAAY,CAAErD,OAAQzQ,EAAKyP,MAAMzR,MAAM,EAAG,GAAI4S,OAAQ,IAEnD2X,M,GAdmB1E,IAiBpC,SAASoF,GAAcjpB,GAC1B,OAAO,IAAIgpB,IAAgB/D,WAAWjlB,GCN1C,IAAIkpB,GAAkB,CAClB,IAAIhE,GACJ,IAAIyB,GACJ,IAAItB,GACJ,IAAIG,GACJ,IAAIc,GACJ,IAAI/B,GACJ,IAAIsC,GACJ,IAAIE,GACJ,IAAIE,GACJ,IAAIG,GACJ,IAAIG,GACJ,IAAIS,GACJ,IAAIc,GACJ,IAAIE,IAEaG,G,8BACjB,aAAc,wBACV,gBACKjrB,KAAO,uBAFF,E,oCAId,SAAW8B,GACP,OAAOkpB,GAAgB5gB,QAAO,SAAU8gB,EAAOC,GAC3C,IAAIlpB,EAASkpB,EAAQpE,WAAWjlB,GAChC,OAAOopB,GAASjpB,KACjB,O,GATkC0jB,IAYtC,SAASyF,GAAQtpB,GACpB,OAAO,IAAImpB,IAAkBlE,WAAWjlB,G,IC3CvBupB,G,8BACjB,aAAc,wBACV,gBACKrrB,KAAO,0BACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAG5B0V,GAFgBnlB,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,GACPxP,EAAKsP,KAAK,IAC3BqV,EAAkB3kB,EAAKyP,MAAM,GACZzP,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,GAK7B,OAJ2BiV,EAAiBD,GACvCA,EAAgBW,GAChBV,EAAiBU,GACjBX,EAAgBG,M,GAlBwBd,IAsB9C,SAAS2F,GAAwBxpB,GACpC,OAAO,IAAIupB,IAA0BtE,WAAWjlB,G,ICvB/BypB,G,8BACjB,aAAc,wBACV,gBACK3F,cAAgB,EACrB,EAAK5lB,KAAO,gBAHF,E,+BAKd,SAAM8B,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAC5B6V,EAAgBtlB,EAAKuP,KAAK,GAE1B4V,GADenlB,EAAKwP,IAAI,GACPxP,EAAKsP,KAAK,IAC3BqV,EAAkB3kB,EAAKyP,MAAM,GAC7BmV,EAAiB5kB,EAAKuP,KAAK,GAC3BsV,EAAgB7kB,EAAKwP,IAAI,GAM7B,OAL+BgV,EAAgBW,GAC1CV,EAAiBU,GACjBV,EAAiBE,GACjBH,EAAgBK,GAChBS,EAAgBV,M,GAnBcf,IAuBpC,SAAS6F,GAAc1pB,GAC1B,OAAO,IAAIypB,IAAgBxE,WAAWjlB,G,ICxBrB2pB,G,8BACjB,aAAc,wBACV,gBACK7F,cAAgB,EACrB,EAAK5lB,KAAO,qBAHF,E,+BAKd,SAAM8B,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAC5B6V,EAAgBtlB,EAAKuP,KAAK,GAE1B4V,GADenlB,EAAKwP,IAAI,GACPxP,EAAKsP,KAAK,IAC3BqV,EAAkB3kB,EAAKyP,MAAM,GAC7BmV,EAAiB5kB,EAAKuP,KAAK,GAC3BsV,EAAgB7kB,EAAKwP,IAAI,GACzBoa,EAAgCpF,EAAgBW,GAC/CV,EAAiBU,GACjBV,EAAiBE,GACjBH,EAAgBK,GAChBS,EAAgBV,EACjBc,EAAkBtmB,KAAKumB,iBAAiBR,EAAgBR,GAC5D,OAAQiF,GAA+BlE,M,GArBC7B,IAwBzC,SAASgG,GAAmB7pB,GAC/B,OAAO,IAAI2pB,IAAqB1E,WAAWjlB,G,ICxB1B8pB,G,8BACjB,aAAc,wBACV,gBACK5rB,KAAO,kBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAC5B6V,EAAgBtlB,EAAKuP,KAAK,GAE1B4V,GADenlB,EAAKwP,IAAI,GACPxP,EAAKsP,KAAK,IAC3BqV,EAAkB3kB,EAAKyP,MAAM,GAC7BmV,EAAiB5kB,EAAKuP,KAAK,GAC3BsV,EAAgB7kB,EAAKwP,IAAI,GACzBsV,EAAgB9kB,EAAKsP,KAAK,GAC1ByV,EAAiB/kB,EAAKyP,MAAM,GAG5B8W,GAFgBvmB,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,IACFgV,EAAgBC,GAAkB,GACxDsF,EAAiBtF,EAAiBD,EAClCiC,GAAa,IAAIZ,IAAOZ,WAAW,CACnC,KAAQ,CAACE,GACT,MAAS,CAACR,GACV,KAAQ,CAACC,GACT,IAAO,CAACC,KAQZ,OAAQkF,GAAkBtD,IALR7B,EAAiBU,GAC9BT,EAAgBS,GAChBR,EAAgBD,GAChBF,EAAkBG,IAJFA,EAAgBC,GAKHA,EAAiBwB,M,GAhCd1C,IAoCtC,SAASmG,GAAgBhqB,GAC5B,OAAO,IAAI8pB,IAAkB7E,WAAWjlB,G,ICtCvBiqB,G,8BACjB,aAAc,wBACV,gBACK/rB,KAAO,cACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAC5B6V,EAAgBtlB,EAAKuP,KAAK,GAG1BoV,GAFe3kB,EAAKwP,IAAI,GACPxP,EAAKsP,KAAK,GACTtP,EAAKyP,MAAM,IAC7BmV,EAAiB5kB,EAAKuP,KAAK,GAC3BsV,EAAgB7kB,EAAKwP,IAAI,GACzBsV,EAAgB9kB,EAAKsP,KAAK,GAC1ByV,EAAiB/kB,EAAKyP,MAAM,GACZzP,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,GAW5B,OATqBiV,EAAiBD,IACZc,EAAgBT,GACrCS,EAAgBV,KAEHA,EAAiBU,GAC9BT,EAAgBS,GAChBR,EAAgBD,GAChBF,EAAkBG,IAJFA,EAAgBC,GAKHA,GATRP,EAAgBC,GAAkB,M,GAnB3BZ,IAgClC,SAASqG,GAAYlqB,GACxB,OAAO,IAAIiqB,IAAchF,WAAWjlB,G,ICjCnBmqB,G,8BACjB,aAAc,wBACV,gBACKjsB,KAAO,kBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAI8lB,EAAW9lB,EAAKsP,KAAK,GACrByW,EAAY/lB,EAAKyP,MAAM,GACvBuW,EAAWhmB,EAAKuP,KAAK,GACrB0W,EAAUjmB,EAAKwP,IAAI,GAKvB,OAJuBpQ,KAAKumB,iBAAiBG,EAAUE,IACnD5mB,KAAKumB,iBAAiBM,EAASF,IAC/BD,EAAWC,GACXD,EAAWG,M,GAdsBpC,IAkBtC,SAASuG,GAAgBpqB,GAC5B,OAAO,IAAImqB,IAAkBlF,WAAWjlB,G,ICnBvBqqB,G,8BACjB,aAAc,wBACV,gBACKnsB,KAAO,kBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAE5BiV,GADgB1kB,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,IACxB2V,EAAiBnlB,EAAKsP,KAAK,GAC3BqV,EAAkB3kB,EAAKyP,MAAM,GAE7BoV,GADiB7kB,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,IACzBsV,EAAgB9kB,EAAKsP,KAAK,GAC1ByV,EAAiB/kB,EAAKyP,MAAM,GAE5B6a,GADgBtqB,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,IAU5B,OATkBkV,EAAeG,GAC7BA,EAAgByF,IACD9F,EAAgBC,GAC/BU,EAAiBR,GACjBG,EAAgBC,KACaP,EAAgBW,GAC7CA,EAAiBV,GACjBU,EAAiBL,GACjBA,EAAgBH,O,GA3BiBd,IA+BtC,SAAS0G,GAAgBvqB,GAC5B,OAAO,IAAIqqB,IAAkBpF,WAAWjlB,G,IC5BvBwqB,G,8BACjB,aAAc,wBACV,gBACKtsB,KAAO,aACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAIioB,EAAY7oB,KAAKqrB,YAAYzqB,GAGjC,OADAioB,GADAA,EAAYA,GAAa7oB,KAAK+oB,eAAenoB,KACpBZ,KAAKgpB,gBAAgBpoB,K,yBAGlD,SAAYA,GAAsB,IAAhBqoB,IAAgB,yDAC1BC,EAAMD,EAAU,EAAI,EAEpBE,EAAQ9U,EAAY,CAAEhD,OAAQzQ,EAAKyP,MAAMzR,MAAM,EAAGsqB,GAAM1X,OAAQ0X,EAAM,IACtEE,EAAS1U,EAAY,CAAErD,OAAQzQ,EAAKyP,MAAMzR,MAAM,EAAGsqB,GAAM1X,OAAQ0X,EAAM,IAE3E,OAAOC,EAAQC,I,4BAEnB,SAAexoB,GAAsB,IAAhBqoB,IAAgB,yDAC7BI,EAAQJ,EAAU,EAAI,EACtBC,EAAMD,EAAU,OAAI3rB,EACpBgsB,EAAqB,CACrBpZ,KAAMtP,EAAKsP,KAAKtR,MAAMyqB,EAAOH,GAC7B7Y,MAAOzP,EAAKyP,MAAMzR,MAAMyqB,EAAOH,GAC/B9Y,IAAKxP,EAAKwP,IAAIxR,MAAMyqB,EAAOH,GAC3B/Y,KAAMvP,EAAKuP,KAAKvR,MAAMyqB,EAAOH,IAE7BL,EAAYL,GAAmBc,GAEnC,OADAT,EAAYA,GAAaX,GAAmBoB,K,6BAGhD,SAAgB1oB,GAEFA,EAAKsP,KAAK,GADpB,IAAIqZ,EAEO3oB,EAAKyP,MAAM,GAIlBmZ,GAHK5oB,EAAKwP,IAAI,GACRxP,EAAKuP,KAAK,GAGVvP,EAAKsP,KAAK,IADhBsZ,EAEO5oB,EAAKyP,MAAM,GACbzP,EAAKwP,IAAI,GACRxP,EAAKuP,KAAK,GAIpB,OADgBqZ,EAA4BA,GACxBD,EAAuBC,M,GAhDX/E,IAmDjC,SAAS6G,GAAW1qB,GACvB,OAAO,IAAIwqB,IAAavF,WAAWjlB,G,ICxDlB2qB,G,8BACjB,aAAc,wBACV,gBACKzsB,KAAO,wBAFF,E,+BAId,SAAM8B,GACF,IAAIioB,EAAY7oB,KAAKqrB,YAAYzqB,GAAM,GAEvC,OADAioB,EAAYA,GAAa7oB,KAAK+oB,eAAenoB,GAAM,O,GAPRwqB,IAW5C,SAASI,GAAsB5qB,GAClC,OAAO,IAAI2qB,IAAwB1F,WAAWjlB,G,ICR7B6qB,G,8BACjB,aAAc,wBACV,gBACK3sB,KAAO,eACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAIioB,EAAY7oB,KAAKqrB,YAAYzqB,GAGjC,OADAioB,GADAA,EAAYA,GAAa7oB,KAAK+oB,eAAenoB,KACpBZ,KAAKgpB,gBAAgBpoB,K,yBAGlD,SAAYA,GAAsB,IAAhBqoB,IAAgB,yDAC1BC,EAAMD,EAAU,EAAI,EAEpBE,EAAQ9U,EAAY,CAAEhD,OAAQzQ,EAAKyP,MAAMzR,MAAM,EAAGsqB,GAAM1X,OAAQ0X,EAAM,IACtEE,EAAS1U,EAAY,CAAErD,OAAQzQ,EAAKyP,MAAMzR,MAAM,EAAGsqB,GAAM1X,OAAQ0X,EAAM,IAE3E,OAAOC,EAAQC,I,4BAEnB,SAAexoB,GAAsB,IAAhBqoB,IAAgB,yDAC7BI,EAAQJ,EAAU,EAAI,EACtBC,EAAMD,EAAU,OAAI3rB,EACpBgsB,EAAqB,CACrBpZ,KAAMtP,EAAKsP,KAAKtR,MAAMyqB,EAAOH,GAC7B7Y,MAAOzP,EAAKyP,MAAMzR,MAAMyqB,EAAOH,GAC/B9Y,IAAKxP,EAAKwP,IAAIxR,MAAMyqB,EAAOH,GAC3B/Y,KAAMvP,EAAKuP,KAAKvR,MAAMyqB,EAAOH,IAE7BL,EAAYF,GAA2BW,GAE3C,OADAT,EAAYA,GAAaR,GAA2BiB,K,6BAGxD,SAAgB1oB,GAEFA,EAAKsP,KAAK,GADpB,IAAIqZ,EAEO3oB,EAAKyP,MAAM,GAIlBmZ,GAHK5oB,EAAKwP,IAAI,GACRxP,EAAKuP,KAAK,GAGVvP,EAAKsP,KAAK,IADhBsZ,EAEO5oB,EAAKyP,MAAM,GACbzP,EAAKwP,IAAI,GACRxP,EAAKuP,KAAK,GAIpB,OADgBqZ,EAA4BA,GACxBD,EAAuBC,M,GAhDT/E,IAmDnC,SAASiH,GAAa9qB,GACzB,OAAO,IAAI6qB,IAAe5F,WAAWjlB,G,ICxDpB+qB,G,8BACjB,aAAc,wBACV,gBACK7sB,KAAO,0BAFF,E,+BAId,SAAM8B,GACF,IAAIioB,EAAY7oB,KAAKqrB,YAAYzqB,GAAM,GAEvC,OADAioB,EAAYA,GAAa7oB,KAAK+oB,eAAenoB,GAAM,O,GAPN6qB,IAW9C,SAASG,GAAwBhrB,GACpC,OAAO,IAAI+qB,IAA0B9F,WAAWjlB,G,ICV/BirB,G,8BACjB,aAAc,wBACV,gBACK/sB,KAAO,aACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,OAAOZ,KAAKqrB,YAAYzqB,IAASA,EAAKuP,KAAK,IAAMvP,EAAKuP,KAAK,K,yBAE/D,SAAYvP,GAKR,OAHYyT,EAAY,CAAEhD,OAAQzQ,EAAKyP,MAAMzR,MAAM,EAAG,GAAI4S,OAAQ,IACrDkD,EAAY,CAAErD,OAAQzQ,EAAKyP,MAAMzR,MAAM,EAAG,GAAI4S,OAAQ,Q,GAZnCiT,IAiBjC,SAASqH,GAAWlrB,GACvB,OAAO,IAAIirB,IAAahG,WAAWjlB,GCNvC,IAAImrB,GAAkB,CAClB,IAAI5B,GACJ,IAAIE,GACJ,IAAIE,GACJ,IAAIG,GACJ,IAAIG,GACJ,IAAIE,GACJ,IAAIE,GACJ,IAAI3C,GACJ,IAAIG,GACJ,IAAI2C,GACJ,IAAIG,GACJ,IAAIE,GACJ,IAAIE,GACJ,IAAIE,IAEaG,G,8BACjB,aAAc,wBACV,gBACKltB,KAAO,uBAFF,E,oCAId,SAAW8B,GACP,OAAOmrB,GAAgB7iB,QAAO,SAAU8gB,EAAOC,GAC3C,OAAOD,GAASC,EAAQpE,WAAWjlB,MACpC,O,GARkC6jB,IAWtC,SAASwH,GAAQrrB,GACpB,OAAO,IAAIorB,IAAkBnG,WAAWjlB,G,ICzCvBsrB,G,8BACjB,aAAc,wBACV,gBACKptB,KAAO,gBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAE5BiV,GADgB1kB,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,IACxB2V,EAAiBnlB,EAAKsP,KAAK,GAC3BqV,EAAkB3kB,EAAKyP,MAAM,GAC7BmV,EAAiB5kB,EAAKuP,KAAK,GAC3BsV,EAAgB7kB,EAAKwP,IAAI,GACzBsV,EAAgB9kB,EAAKsP,KAAK,GAC1ByV,EAAiB/kB,EAAKyP,MAAM,GAC5ByX,EAAgBlnB,EAAKuP,KAAK,GAC1B+a,EAAetqB,EAAKwP,IAAI,GACxBgX,EAAiB/B,EAAiBD,EAClCiC,GAAa,IAAIZ,IAAOZ,WAAW,CACnC,KAAQ,CAACE,GACT,MAAS,CAACR,GACV,KAAQ,CAACC,GACT,IAAO,CAACC,KAMZ,OAAQ2B,GAAkBC,IAJR7B,EAAiBF,GAC9B4F,EAAe1F,GACfG,EAAiBD,IACAoC,EAAgB1C,M,GA7BHX,IAiCpC,SAAS0H,GAAcvrB,GAC1B,OAAO,IAAIsrB,IAAgBrG,WAAWjlB,G,ICnCrBwrB,G,8BACjB,aAAc,wBACV,gBACKttB,KAAO,iBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAIwkB,EAAgBxkB,EAAKsP,KAAK,GAC1BmV,EAAiBzkB,EAAKyP,MAAM,GAC5B6V,EAAgBtlB,EAAKuP,KAAK,GAE1B4V,GADenlB,EAAKwP,IAAI,GACPxP,EAAKsP,KAAK,IAC3BqV,EAAkB3kB,EAAKyP,MAAM,GACZzP,EAAKuP,KAAK,GACXvP,EAAKwP,IAAI,GAO7B,OALqBiV,EAAiBD,GAChBG,EAAkBQ,IACbA,EAAiBG,GACvCX,GAJoBF,EAAiBD,GAAiB,GAKtDG,EAAkBH,O,GApBaX,IAwBrC,SAAS4H,GAAezrB,GAC3B,OAAO,IAAIwrB,IAAiBvG,WAAWjlB,G,ICzBtB0rB,G,8BACjB,aAAc,wBACV,gBACK5H,cAAgB,EACrB,EAAK5lB,KAAO,gBAHF,E,+BAKd,SAAM8B,GACF,IAAI8lB,EAAW9lB,EAAKsP,KAAK,GACrByW,EAAY/lB,EAAKyP,MAAM,GACvBuW,EAAWhmB,EAAKuP,KAAK,GACrB0W,EAAUjmB,EAAKwP,IAAI,GACnB0W,EAAoB9mB,KAAKumB,iBAAiBG,EAAUC,GACpDI,EAAmBD,GAAqB9mB,KAAKumB,iBAAiBG,EAAUE,GACxEI,EAAmBF,GAAqB9mB,KAAKumB,iBAAiBI,EAAWE,GAC7E,OAAQC,GAAqBC,IAAqBC,M,GAdfvC,IAiBpC,SAAS8H,GAAc3rB,GAC1B,OAAO,IAAI0rB,IAAgBzG,WAAWjlB,G,IClBrB4rB,G,8BACjB,aAAc,wBACV,gBACK9H,cAAgB,EACrB,EAAK5lB,KAAO,iBAHF,E,+BAKd,SAAM8B,GACF,IAAI8lB,EAAW9lB,EAAKsP,KAAK,GACrByW,EAAY/lB,EAAKyP,MAAM,GACvBuW,EAAWhmB,EAAKuP,KAAK,GACrB0W,EAAUjmB,EAAKwP,IAAI,GACnB0W,EAAoB9mB,KAAKumB,iBAAiBG,EAAUC,GACpDI,EAAmBD,GAAqB9mB,KAAKumB,iBAAiBG,EAAUE,GACxEI,EAAmBF,GAAqB9mB,KAAKumB,iBAAiBI,EAAWE,GAC7E,OAAQC,GAAqBE,IAAqBD,M,GAddtC,IAiBrC,SAASgI,GAAe7rB,GAC3B,OAAO,IAAI4rB,IAAiB3G,WAAWjlB,G,IClBtB8rB,G,8BACjB,aAAc,wBACV,gBACK5tB,KAAO,qBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAI8lB,EAAW9lB,EAAKsP,KAAK,GACrByW,EAAY/lB,EAAKyP,MAAM,GACvBuW,EAAWhmB,EAAKuP,KAAK,GACrB0W,EAAUjmB,EAAKwP,IAAI,GACnBuc,EAAa1W,KAAK4B,IAAI8O,EAAYD,GAClCkG,EAAoB3W,KAAK4B,IAAI+O,EAAWD,GACxCkG,EAAoB5W,KAAK4B,IAAI6O,EAAWG,GAG5C,OAF2B8F,EAAaC,GACpCD,EAAaE,M,GAfuBpI,IAmBzC,SAASqI,GAAmBlsB,GAC/B,OAAO,IAAI8rB,IAAqB7G,WAAWjlB,G,ICpB1BmsB,G,8BACjB,aAAc,wBACV,gBACKjuB,KAAO,qBACZ,EAAK4lB,cAAgB,EAHX,E,+BAKd,SAAM9jB,GACF,IAAI8lB,EAAW9lB,EAAKsP,KAAK,GACrByW,EAAY/lB,EAAKyP,MAAM,GACvBuW,EAAWhmB,EAAKuP,KAAK,GACrB0W,EAAUjmB,EAAKwP,IAAI,GACnBuc,EAAa1W,KAAK4B,IAAI8O,EAAYD,GAClCkG,EAAoB3W,KAAK4B,IAAI+O,EAAWF,GACxCmG,EAAoB5W,KAAK4B,IAAI+O,EAAWC,GAG5C,OAF2B8F,EAAaC,GACpCD,EAAaE,M,GAfuBpI,IAmBzC,SAASuI,GAAmBpsB,GAC/B,OAAO,IAAImsB,IAAqBlH,WAAWjlB,GCTxC,SAASqsB,GAAqB5D,EAAOH,GACxC,IAAIgE,EAAS,CAAC,EAAG,KAAM,KAAM,GAAI,KAAM,KAAM,IAAK,MAAO,MAAO,MAAO,OAcvE,OAZI7D,EAAQH,EACOgE,EAAOvsB,KAAI,SAAUwsB,GAChC,IAAIpJ,EAAamF,EAAMjT,KAAK4B,IAAIwR,EAAQH,GAAQiE,EAAS,IACzD,OAAOpJ,EAAa,EAAIA,EAAa,KAI1BmJ,EAAOvsB,KAAI,SAAUwsB,GAChC,IAAIpJ,EAAamF,EAAMjT,KAAK4B,IAAIwR,EAAQH,GAAQiE,EAAS,IACzD,OAAOpJ,EAAa,EAAIA,EAAa,KCtB1C,IAWMqJ,GAAb,8BACI,WAAYlc,GAAO,iBACf,cAAMA,IACDnQ,OAAS,GACd,IAMIssB,EAAS7wB,OAAO8E,OAAO,GANZ,CACXgsB,iBAAkB,EAClBC,WAAY,GACZC,WAAY,GACZC,aAAc,IAEuBvc,GACrCwc,EAAwB,IAAIlf,EAAqC,EAA1B6e,EAAOC,kBAAsB,GAAM,GAAM,GAChFK,EAAkB,IAAInf,EAA+B,EAApB6e,EAAOE,YAAgB,GAAM,GAAM,GACpEK,EAAiB,IAAIpf,EAA+B,EAApB6e,EAAOG,YAAgB,GAAM,GAAM,GAZxD,OAaf,EAAK1b,UAAY,UAAC,kGAKP,OAFHN,EAASyE,KAAK2B,IAAIyV,EAAOC,iBAAkBD,EAAOE,WAAYF,EAAOG,WAAYH,EAAOI,cACxFI,EAAgB,OAJN,iBAKd9b,EALc,cAwCH,OAhCP2b,EAAsB/vB,KAAKoU,EAAK5B,MAChCud,EAAsB/vB,KAAKoU,EAAK3B,KAChCud,EAAgBhwB,KAAKoU,EAAK5B,MAC1Bwd,EAAgBhwB,KAAKoU,EAAK3B,KAC1Bwd,EAAejwB,KAAKoU,EAAK5B,MACzByd,EAAejwB,KAAKoU,EAAK3B,KACrByd,EAAgBrc,EAChBqc,KAIIC,GAAkBJ,EAAsBre,WAAaqe,EAAsBpe,WAAa,EAExFye,GAAYJ,EAAgBte,WAAase,EAAgBre,WAAa,EAEtE0e,GAASF,EAAiBC,GAAY,EAEtCE,GAASL,EAAeve,WAAaue,EAAete,WAAa,EAQrEvO,EAAS,CACLmtB,WAAYJ,EACZK,KAAMJ,EACNC,MAAOA,EACPC,MAAOA,IArCL,UAwCGltB,EAxCH,QAwCVgR,EAxCU,gEAAD,GA2CjB,EAAKD,UAAUrU,OACfyT,EAAMd,IAAIrO,SAAQ,SAACgQ,EAAMhS,GACrB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7B0S,KAAMe,EAAMf,KAAKpQ,GACjBqQ,IAAKc,EAAMd,IAAIrQ,KAEfgB,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UA/DjB,EADvB,mCAoEI,SAAU6T,GACN,OAAOzR,KAAK8R,UAAUrU,KAAKgU,GAAO7T,UArE1C,GAAmCqT,GAyE5B,SAASmd,GAAcld,GAC1BD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIqsB,GAAclc,GAAOnQ,OAKtC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXqsB,GAAclb,UAAYkc,GCjFnB,IAAMC,GAAb,8BACI,aAAc,wBACV,eAAS7rB,YACJ8rB,SAAW,GAChB,EAAKC,UAAY,GACjB,EAAKC,QAAS,EACd,EAAKC,WAAa,EALR,EADlB,UAA0Czd,GAS7B0d,GAAb,8FAA2C1d,GAG9B2d,GAAb,8BACI,WAAYzd,GAAO,gBACf,cAAMA,GACN,IAGIa,EAFA6c,EAAa,IADJ1d,EAAMsd,OAASjd,EAAMY,GACN,CAAEX,OAAQN,EAAMod,SAAUjd,OAAQ,GAAIV,OAAQ,SAACC,GAAQ,OAAOA,KACtFie,EAAc,IAAIxV,GAAI,CAAE7H,OAAQN,EAAMqd,UAAWpe,KAAM,GAAIC,IAAK,GAAIC,MAAO,GAAIM,OAAQ,SAACC,GAAQ,OAAOA,KAJ5F,OAMf,EAAK7P,OAAS,GACd,EAAK+Q,UAAY,UAAC,0FAGP,YAHO,iBAGdC,EAHc,cAeH,OAVD1B,EAAU0B,EAAV1B,MACFye,EAAKF,EAAWrc,UAAUlC,GAC1BoJ,EAAMoV,EAAYtc,UAAUR,QACtBzU,GAANwxB,QAA0BxxB,GAAPmc,IACnB1Y,EAAS,CACL2V,OAAQoY,EACRnY,MAAOmY,EAAM5d,EAAMud,WAAchV,EACjC7C,MAAOkY,EAAM5d,EAAMud,WAAchV,IAZ/B,UAeG1Y,EAfH,QAeVgR,EAfU,gEAAD,GAkBjB,EAAKD,UAAUrU,OACHyT,EAAMf,KACZpO,SAAQ,SAAC0b,EAAU1d,GACrB,IAAI2d,EAAY,CACZvN,KAAMsN,EACNrN,IAAKc,EAAMd,IAAIrQ,GACfsQ,MAAOa,EAAMb,MAAMtQ,IAEnBgB,EAAS,EAAK+Q,UAAUrU,KAAKigB,QACbpgB,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAnCjB,EADvB,mCAyCI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GACjC,QAAoBnU,GAAhByD,EAAOnD,MACP,OAAOmD,EAAOnD,UA5C1B,GAAqCqT,GAkD9B,SAAS8d,GAAgB7d,GAC5BD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAI4tB,GAAgBzd,GAAOnQ,OAKxC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARX4tB,GAAgBzc,UAAY6c,GC9DrB,IAAMC,GAAb,8BACI,aAAc,wBACV,eAASxsB,YACJgP,OAAS,GACd,EAAKid,WAAa,EAHR,EADlB,UAAyCzd,GAO5Bie,GAAb,8FAA0Cje,GAG7Bke,GAAb,8BACI,WAAYhe,GAAO,gBACf,cAAMA,GACN,IAAIgG,EAAQhG,EAAMf,KACd8G,EAAO/F,EAAMd,IACbsH,EAASxG,EAAMb,MACnB,EAAKtP,OAAS,GACd,IAAI8tB,EAAc,IAAIxV,GAAI,CAAE7H,OAAQN,EAAMM,OAAQrB,KAAM,GAAIC,IAAK,GAAIC,MAAO,GAAIM,OAAQ,SAACC,GAAQ,OAAOA,KACpGue,EAAgB,IAAI3gB,EAA0B,EAAf0C,EAAMM,QAAY,GAAM,GAAM,GAPlD,OAQf,EAAKM,UAAY,UAAC,8FAEH,YAFG,iBAEVC,EAFU,cAeH,OAVD5B,GALI,EAKU4B,GAAd5B,KAAMC,EALF,EAKEA,IACZ+e,EAAcxxB,KAAKwS,GACnBgf,EAAcxxB,KAAKyS,GACnBqJ,EAAMoV,EAAYtc,UAAUR,GACvBod,EAAc/f,aAAgB,EAAI8B,EAAMM,aAAmBlU,GAAPmc,IACrD1Y,EAAS,CACLquB,SAAUD,EAAc9f,WAAaoK,EAAMvI,EAAMud,WACjDY,UAAWF,EAAc7f,UAAYmK,EAAMvI,EAAMud,aAZ/C,UAeG1tB,EAfH,QAeVgR,EAfU,gEAAD,GAkBjB,EAAKD,UAAUrU,OACfyZ,EAAMnV,SAAQ,SAAC0b,EAAU1d,GACrB,IAAI2d,EAAY,CACZvN,KAAMsN,EACNrN,IAAK6G,EAAKlX,GACVsQ,MAAOqH,EAAO3X,IAEdgB,EAAS,EAAK+Q,UAAUrU,KAAKigB,QACbpgB,GAAhByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAnCjB,EADvB,mCAyCI,SAAU6T,GACN,IAAI1Q,EAASf,KAAK8R,UAAUrU,KAAKgU,GACjC,QAAoBnU,GAAhByD,EAAOnD,MACP,OAAOmD,EAAOnD,UA5C1B,GAAoCqT,GAkD7B,SAASqe,GAAepe,GAC3BD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAImuB,GAAehe,GAAOnQ,OAKvC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXmuB,GAAehd,UAAYod,GC7DpB,IAOMC,GAAb,8BACI,WAAYre,GAAO,iBACf,cAAMA,IACDse,MAAQte,EAAMse,MACnB,EAAKC,MAAQve,EAAMue,MACnB,IAAIC,EAAe,GACfC,EAAe,GACbje,EAAK,UAAI,SAATA,IAAS,2EACG,YADH,iBACP3C,EADO,OAEPhO,GAAS,EAFF,OAQP,IARO,EAIP2uB,EAAaE,QAAQ7gB,EAAQ8gB,QAC7BF,EAAaC,QAAQ7gB,EAAQ+gB,QAC7B/uB,EAASgO,EAAQ8gB,OAAS9gB,EAAQ+gB,OAC9BC,EAAU,GACI,IAAXhvB,GAAmB2uB,EAAaK,IAAYJ,EAAaI,IACxDL,EAAaK,GAAWJ,EAAaI,GACrChvB,GAAS,EAEJ2uB,EAAaK,GAAWJ,EAAaI,GAC1ChvB,GAAS,EAEJ2uB,EAAaK,KAAaJ,EAAaI,KAC5CA,GAAW,GAOT,OAJK,IAAXhvB,IACA2uB,EAAe,CAAC3gB,EAAQ8gB,QACxBF,EAAe,CAAC5gB,EAAQ+gB,SArBrB,UAuBS/uB,EAvBT,QAuBPgO,EAvBO,2DAAT2C,MANS,OAgCf,EAAKI,UAAYJ,IACjB,EAAKI,UAAUrU,OACf,EAAKsD,OAAS,GACd,EAAKyuB,MAAMztB,SAAQ,SAACnE,EAAOmC,GACvB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7BoyB,OAAQ,EAAKL,MAAMzvB,GACnB+vB,OAAQ,EAAKL,MAAM1vB,UAEFzC,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAzCjB,EADvB,mCAoDI,SAAUiyB,EAAQC,GACd,OAAO9vB,KAAK8R,UAAUrU,KAAK,CACvBoyB,OAAQA,EACRC,OAAQA,IACTlyB,SAxDX,4BA8CI,SAAqBsT,GACbA,EAAME,gBACNF,EAAMse,OAAQte,EAAMse,MAAMle,UAC1BJ,EAAMue,OAAQve,EAAMue,MAAMne,eAjDtC,GAA6BL,GA6DtB,SAAS+e,GAAQ9e,GACpBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIwuB,GAAQre,GAAOnQ,OAKhC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXwuB,GAAQrd,UAAY8d,GCnEb,IAOMC,GAAb,8BACI,WAAY/e,GAAO,iBACf,cAAMA,IACDse,MAAQte,EAAMse,MACnB,EAAKC,MAAQve,EAAMue,MACnB,IAAIC,EAAe,GACfC,EAAe,GACbje,EAAK,UAAI,SAATA,IAAS,2EACG,YADH,iBACP3C,EADO,OAEPhO,GAAS,EAFF,OAQP,IARO,EAIP2uB,EAAaE,QAAQ7gB,EAAQ8gB,QAC7BF,EAAaC,QAAQ7gB,EAAQ+gB,QAC7B/uB,EAASgO,EAAQ8gB,OAAS9gB,EAAQ+gB,OAC9BC,EAAU,GACI,IAAXhvB,GAAmB2uB,EAAaK,IAAYJ,EAAaI,IACxDL,EAAaK,GAAWJ,EAAaI,GACrChvB,GAAS,EAEJ2uB,EAAaK,GAAWJ,EAAaI,GAC1ChvB,GAAS,EAEJ2uB,EAAaK,KAAaJ,EAAaI,KAC5CA,GAAW,GAOT,OAJK,IAAXhvB,IACA2uB,EAAe,CAAC3gB,EAAQ8gB,QACxBF,EAAe,CAAC5gB,EAAQ+gB,SArBrB,UAuBS/uB,EAvBT,QAuBPgO,EAvBO,2DAAT2C,MANS,OAgCf,EAAKI,UAAYJ,IACjB,EAAKI,UAAUrU,OACf,EAAKsD,OAAS,GACd,EAAKyuB,MAAMztB,SAAQ,SAACnE,EAAOmC,GACvB,IAAIgB,EAAS,EAAK+Q,UAAUrU,KAAK,CAC7BoyB,OAAQ,EAAKL,MAAMzvB,GACnB+vB,OAAQ,EAAKL,MAAM1vB,UAEFzC,IAAjByD,EAAOnD,OACP,EAAKmD,OAAOpD,KAAKoD,EAAOnD,UAzCjB,EADvB,mCAoDI,SAAUiyB,EAAQC,GACd,OAAO9vB,KAAK8R,UAAUrU,KAAK,CACvBoyB,OAAQA,EACRC,OAAQA,IACTlyB,SAxDX,4BA8CI,SAAqBsT,GACbA,EAAME,gBACNF,EAAMse,OAAQte,EAAMse,MAAMle,UAC1BJ,EAAMue,OAAQve,EAAMue,MAAMne,eAjDtC,GAA+BL,GA6DxB,SAASif,GAAUhf,GACtBD,EAAUgB,cAAcf,GACxB,IAAInQ,EAAS,IAAIkvB,GAAU/e,GAAOnQ,OAKlC,OAJImQ,EAAME,eACNrQ,EAAOuQ,UAEXL,EAAUgB,cAAcf,GACjBnQ,EARXkvB,GAAU/d,UAAYge,I,8BClEtB,SAASC,IAEP,GAC4C,qBAAnCC,gCAC4C,oBAA5CA,+BAA+BD,SAcxC,IAEEC,+BAA+BD,SAASA,GACxC,MAAOryB,GAGPylB,QAAQ1e,MAAM/G,IAOhBqyB,GACAj0B,EAAOC,QAAUC,EAAQ,K,8BClC3B,YAEAI,OAAOqG,eAAe1G,EAAS,aAAc,CAC3CyB,OAAO,IAETpB,OAAOqG,eAAe1G,EAAS,QAAS,CACtC2G,YAAY,EACZ1C,IAAK,WACH,OAAOiwB,EAAM,WAGjBl0B,EAAQm0B,SAAWn0B,EAAQo0B,QAAUp0B,EAAQq0B,OAASr0B,EAAQs0B,MAAQt0B,EAAQu0B,MAAQv0B,EAAQw0B,cAAgBx0B,EAAQy0B,IAAMz0B,EAAQ00B,KAAO10B,EAAQ20B,IAAM30B,EAAQ40B,SAAW50B,EAAO,aAAc,EAEjM,IAAIyP,EAASolB,EAAuB50B,EAAQ,IAExCyP,EAAamlB,EAAuB50B,EAAQ,KAE5Ci0B,EAASW,EAAuB50B,EAAQ,KAExC60B,EAAWD,EAAuB50B,EAAQ,KAE1C80B,EAASF,EAAuB50B,EAAQ,MAE5C,SAAS40B,EAAuBzoB,GAAO,OAAOA,GAAOA,EAAIuD,WAAavD,EAAM,CAAE4oB,QAAS5oB,GAEvF,SAAS6oB,IAA2Q,OAA9PA,EAAW50B,OAAO8E,QAAU,SAAUa,GAAU,IAAK,IAAIpF,EAAI,EAAGA,EAAIyF,UAAU3E,OAAQd,IAAK,CAAE,IAAIqF,EAASI,UAAUzF,GAAI,IAAK,IAAIqB,KAAOgE,EAAc5F,OAAOiC,UAAUwC,eAAetC,KAAKyD,EAAQhE,KAAQ+D,EAAO/D,GAAOgE,EAAOhE,IAAY,OAAO+D,IAA2BgD,MAAMnF,KAAMwC,WAEhT,SAAS8F,EAAQC,GAAmV,OAAtOD,EAArD,oBAAXtL,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiBsL,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXvL,QAAyBuL,EAAI1J,cAAgB7B,QAAUuL,IAAQvL,OAAOyB,UAAY,gBAAkB8J,IAAyBA,GAEnX,SAAS8oB,EAAyBjvB,EAAQkvB,GAAY,GAAc,MAAVlvB,EAAgB,MAAO,GAAI,IAAkEhE,EAAKrB,EAAnEoF,EAEzF,SAAuCC,EAAQkvB,GAAY,GAAc,MAAVlvB,EAAgB,MAAO,GAAI,IAA2DhE,EAAKrB,EAA5DoF,EAAS,GAAQovB,EAAa/0B,OAAOyF,KAAKG,GAAqB,IAAKrF,EAAI,EAAGA,EAAIw0B,EAAW1zB,OAAQd,IAAOqB,EAAMmzB,EAAWx0B,GAAQu0B,EAASE,QAAQpzB,IAAQ,IAAa+D,EAAO/D,GAAOgE,EAAOhE,IAAQ,OAAO+D,EAFxMsvB,CAA8BrvB,EAAQkvB,GAAuB,GAAI90B,OAAOwE,sBAAuB,CAAE,IAAI0wB,EAAmBl1B,OAAOwE,sBAAsBoB,GAAS,IAAKrF,EAAI,EAAGA,EAAI20B,EAAiB7zB,OAAQd,IAAOqB,EAAMszB,EAAiB30B,GAAQu0B,EAASE,QAAQpzB,IAAQ,GAAkB5B,OAAOiC,UAAU0C,qBAAqBxC,KAAKyD,EAAQhE,KAAgB+D,EAAO/D,GAAOgE,EAAOhE,IAAU,OAAO+D,EAIne,SAASwvB,EAAQxzB,EAAQyzB,GAAkB,IAAI3vB,EAAOzF,OAAOyF,KAAK9D,GAAS,GAAI3B,OAAOwE,sBAAuB,CAAE,IAAIqB,EAAU7F,OAAOwE,sBAAsB7C,GAAayzB,IAAgBvvB,EAAUA,EAAQoI,QAAO,SAAUonB,GAAO,OAAOr1B,OAAOs1B,yBAAyB3zB,EAAQ0zB,GAAK/uB,eAAgBb,EAAKtE,KAAKwH,MAAMlD,EAAMI,GAAY,OAAOJ,EAE9U,SAAS8vB,EAAc5vB,GAAU,IAAK,IAAIpF,EAAI,EAAGA,EAAIyF,UAAU3E,OAAQd,IAAK,CAAE,IAAIqF,EAAyB,MAAhBI,UAAUzF,GAAayF,UAAUzF,GAAK,GAAQA,EAAI,EAAK40B,EAAQn1B,OAAO4F,IAAS,GAAML,SAAQ,SAAU3D,GAAO4zB,EAAgB7vB,EAAQ/D,EAAKgE,EAAOhE,OAAsB5B,OAAOy1B,0BAA6Bz1B,OAAO01B,iBAAiB/vB,EAAQ3F,OAAOy1B,0BAA0B7vB,IAAmBuvB,EAAQn1B,OAAO4F,IAASL,SAAQ,SAAU3D,GAAO5B,OAAOqG,eAAeV,EAAQ/D,EAAK5B,OAAOs1B,yBAAyB1vB,EAAQhE,OAAe,OAAO+D,EAE7gB,SAASmK,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIxO,UAAU,qCAEhH,SAASyO,EAAkBtK,EAAQuK,GAAS,IAAK,IAAI3P,EAAI,EAAGA,EAAI2P,EAAM7O,OAAQd,IAAK,CAAE,IAAI4P,EAAaD,EAAM3P,GAAI4P,EAAW7J,WAAa6J,EAAW7J,aAAc,EAAO6J,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAMrQ,OAAOqG,eAAeV,EAAQwK,EAAWvO,IAAKuO,IAE7S,SAASG,EAAaN,EAAaO,EAAYC,GAAmJ,OAAhID,GAAYN,EAAkBD,EAAY/N,UAAWsO,GAAiBC,GAAaP,EAAkBD,EAAaQ,GAAqBR,EAEzM,SAASY,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAItP,UAAU,sDAAyDqP,EAAS5O,UAAYjC,OAAO+Q,OAAOD,GAAcA,EAAW7O,UAAW,CAAEI,YAAa,CAAEjB,MAAOyP,EAAUR,UAAU,EAAMD,cAAc,KAAeU,GAAYL,EAAgBI,EAAUC,GAEnX,SAASL,EAAgB3O,EAAG4L,GAA+G,OAA1G+C,EAAkBzQ,OAAO0Q,gBAAkB,SAAyB5O,EAAG4L,GAAsB,OAAjB5L,EAAE6O,UAAYjD,EAAU5L,IAA6BA,EAAG4L,GAErK,SAAS0D,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAiF,OAA3EC,KAAK1P,UAAUC,SAASC,KAAKoP,QAAQC,UAAUG,KAAM,IAAI,iBAAyB,EAAQ,MAAOnI,GAAK,OAAO,GANzPmsB,GAA6B,OAAO,WAAkC,IAAsCpxB,EAAlCqN,EAAQZ,EAAgBK,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAYb,EAAgBxN,MAAMnB,YAAakC,EAASgN,QAAQC,UAAUI,EAAO5L,UAAW6L,QAAqBtN,EAASqN,EAAMjJ,MAAMnF,KAAMwC,WAAc,OAAOkL,EAA2B1N,KAAMe,IAE5Z,SAAS2M,EAA2BnR,EAAMoC,GAAQ,OAAIA,GAA2B,WAAlB2J,EAAQ3J,IAAsC,oBAATA,EAA8CyzB,EAAuB71B,GAAtCoC,EAEnI,SAASyzB,EAAuB71B,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIoR,eAAe,6DAAgE,OAAOpR,EAI/J,SAASiR,EAAgBlP,GAAwJ,OAAnJkP,EAAkBhR,OAAO0Q,eAAiB1Q,OAAOiR,eAAiB,SAAyBnP,GAAK,OAAOA,EAAE6O,WAAa3Q,OAAOiR,eAAenP,KAA8BA,GAExM,SAAS0zB,EAAgBzpB,EAAKnK,EAAKR,GAAiK,OAApJQ,KAAOmK,EAAO/L,OAAOqG,eAAe0F,EAAKnK,EAAK,CAAER,MAAOA,EAAOkF,YAAY,EAAM8J,cAAc,EAAMC,UAAU,IAAkBtE,EAAInK,GAAOR,EAAgB2K,EAE3M,IAAI8pB,EAA8B,qBAAZC,GAA2BA,oIAAeA,aAE5DC,EAA8B,SAAUC,GAC1CplB,EAAUmlB,EAAgBC,GAE1B,IAAIC,EAAS7kB,EAAa2kB,GAE1B,SAASA,IACP,IAAIG,EAwBJ,OAtBApmB,EAAgBtM,KAAMuyB,GAItBP,EAAgBI,EAFhBM,EAAQD,EAAO9zB,KAAKqB,OAE2B,iBAAiB,SAAU2yB,GACxE,IAAIpmB,EAAWmmB,EAAME,cACjBC,EAAcH,EAAMhmB,MACpBomB,EAAoBD,EAAYC,kBAChCC,EAAoBF,EAAYE,kBAChCC,EAAqBH,EAAYG,mBACjCC,EAAkBJ,EAAYI,gBAClCH,GAAqBA,EAAkBvmB,EAASumB,kBAAkBH,GAAQA,GAC1EI,GAAqBA,EAAkBxmB,EAASwmB,kBAAkBJ,GAAQA,GAC1EK,GAAsBA,EAAmBzmB,EAASymB,mBAAmBL,GAAQA,GAC7EM,GAAmBA,EAAgB1mB,EAASymB,mBAAmBL,GAAQA,MAGzEX,EAAgBI,EAAuBM,GAAQ,OAAO,SAAUroB,GAC9DqoB,EAAMroB,QAAUA,KAGlBqoB,EAAME,mBAAgBt1B,EACfo1B,EA+OT,OA5OA5lB,EAAaylB,EAAgB,CAAC,CAC5Bn0B,IAAK,oBACLR,MAAO,WACLoC,KAAKkzB,gBAEN,CACD90B,IAAK,qBACLR,MAAO,WACL,GAAIoC,KAAK0M,MAAMymB,OAGb,OAFAnzB,KAAKozB,oBACLpzB,KAAKkzB,cAIPlzB,KAAKqzB,gBAEN,CACDj1B,IAAK,wBACLR,MAAO,SAA+B01B,GACpC,IAAIC,EAAevzB,KAAK0M,MAEpBlJ,GADS+vB,EAAaJ,OACfI,EAAa/vB,MACpBgwB,EAAUD,EAAaC,QACvBC,EAAUF,EAAaE,QACvBC,EAASH,EAAaG,OACtBC,EAASJ,EAAaI,OACtBC,EAAQL,EAAaK,MAEzB,IAAyB,IAArBN,EAAUH,OACZ,OAAO,EAGT,GAAIQ,IAAWL,EAAUK,QAAUC,IAAUN,EAAUM,MACrD,OAAO,EAGT,GAAIpwB,IAAS8vB,EAAU9vB,KACrB,OAAO,EAGT,KAAK,EAAIytB,EAAQ,SAAayC,EAAQJ,EAAUI,QAC9C,OAAO,EAGT,KAAK,EAAIzC,EAAQ,SAAauC,EAASF,EAAUE,SAC/C,OAAO,EAGT,IAAIK,EAAW7zB,KAAK8zB,kBAAkBR,GAEtC,QAAK,EAAIrC,EAAQ,SAAajxB,KAAK+zB,eAAgBF,MAI3C,EAAI5C,EAAQ,SAAawC,EAASH,EAAUG,WAErD,CACDr1B,IAAK,uBACLR,MAAO,WACLoC,KAAKozB,iBAEN,CACDh1B,IAAK,oBACLR,MAAO,SAA2B8O,GAChC,IAAI9L,EAAO8L,EAAM9L,KAEjB,MAAmB,mBAARA,EAEFA,EADIZ,KAAKqK,SAGTzJ,IAOV,CACDxC,IAAK,mBACLR,MAAO,WACL,GAAKoC,KAAK0M,MAAM9L,KAAhB,CAIA,IAAIA,EAAOZ,KAAK8zB,kBAAkB9zB,KAAK0M,OAQvC,OAPA1M,KAAK+zB,eAAiBhC,EAAcA,EAAc,GAAInxB,GAAO,GAAI,CAC/DozB,SAAUpzB,EAAKozB,UAAYpzB,EAAKozB,SAASrzB,KAAI,SAAUR,GACrD,OAAO4xB,EAAc,GAAI5xB,QAG7BH,KAAKi0B,sBAEErzB,KAER,CACDxC,IAAK,gBACLR,MAAO,SAAuBo2B,GAC5B,IAAIE,EAAqB,eAAb7B,GAA0C,SAAbA,EACrC8B,EAAyBn0B,KAAK0M,MAAM0nB,qBAAuB7B,EAAe8B,cAC1EC,EAAmBN,EAASn2B,OAAS,EAEzC,GAAIq2B,GAASI,IAAqBH,EAAwB,CACxD,IAAII,GAAa,EACjBP,EAASjyB,SAAQ,SAAUyyB,GACpBA,EAAQ3qB,QACX0qB,GAAa,MAIbA,GACFhR,QAAQ1e,MAAM,uNAInB,CACDzG,IAAK,qBACLR,MAAO,WACL,OAAOoC,KAAK4yB,eAAiB5yB,KAAK4yB,cAAcpiB,OAAO5P,MAAQZ,KAAK4yB,cAAcpiB,OAAO5P,KAAKozB,UAAY,KAE3G,CACD51B,IAAK,sBACLR,MAAO,WACL,IAAI62B,EAASz0B,KAEbA,KAAKg0B,SAAWh0B,KAAKg0B,UAAY,GACXh0B,KAAK00B,qBACX3yB,SAAQ,SAAUgb,GAChC0X,EAAOT,SAASS,EAAO/nB,MAAM0nB,mBAAmBrX,IAAMA,OAGzD,CACD3e,IAAK,cACLR,MAAO,WACL,IAAI+2B,EAAS30B,KAETwzB,EAAUxzB,KAAK0M,MAAM8mB,QACrB5yB,EAAOZ,KAAK40B,iBAAiB50B,KAAK0M,OACtC,GAAK1M,KAAK4yB,cAAV,CAEIY,IACFxzB,KAAK4yB,cAAcY,QAAUnD,EAAM,QAAYwE,QAAQC,YAAY90B,KAAK4yB,cAAcY,QAASA,IAKjG,IAAIuB,EAAkB/0B,KAAK00B,qBACvBM,EAAep0B,EAAKozB,UAAY,GACpCh0B,KAAKi1B,cAAcF,GACnB,IAAIG,GAAyB,EAAIhE,EAAM,SAAa6D,EAAiB/0B,KAAK0M,MAAM0nB,oBAGhFp0B,KAAK4yB,cAAcpiB,OAAO5P,KAAKozB,SAAWgB,EAAar0B,KAAI,SAAUlD,GACnE,IAAIsR,EAAUmmB,EAAuBP,EAAOjoB,MAAM0nB,mBAAmB32B,IAErE,GAAIsR,GAAWA,EAAQvL,OAAS/F,EAAK+F,MAAQ/F,EAAKmD,KAAM,CAGtDmO,EAAQnO,KAAKuJ,OAAO1M,EAAKmD,KAAK/C,QAC9BJ,EAAKmD,KAAKmB,SAAQ,SAAUozB,EAAOC,GACjCrmB,EAAQnO,KAAKw0B,GAAO33B,EAAKmD,KAAKw0B,MAGpB33B,EAAKmD,KAAjB,IACIy0B,EAAahE,EAAyB5zB,EAAM,CAAC,SAKjD,OAAOs0B,EAAcA,EAAc,GAAIhjB,GAAUsmB,GAEjD,OAAO53B,KAIImD,EAAKozB,SAApB,IACIsB,EAAOjE,EAAyBzwB,EAAM,CAAC,aAE3CZ,KAAK4yB,cAAcpiB,OAAO5P,KAAOmxB,EAAcA,EAAc,GAAI/xB,KAAK4yB,cAAcpiB,OAAO5P,MAAO00B,GAClGt1B,KAAK4yB,cAAc2C,YAEpB,CACDn3B,IAAK,cACLR,MAAO,WACL,IAAI43B,EAAex1B,KAAK0M,MACpB8mB,EAAUgC,EAAahC,QACvBE,EAAS8B,EAAa9B,OACtBlwB,EAAOgyB,EAAahyB,KACpBiwB,EAAU+B,EAAa/B,QACvBgC,EAAOz1B,KAAKqK,QACZzJ,EAAOZ,KAAK40B,mBAEM,qBAAXlB,IAA2B,EAAIzC,EAAQ,SAAasB,EAAe7mB,aAAagoB,OAAQA,KACjGF,EAAQE,OAASA,GAGnB1zB,KAAK4yB,cAAgB,IAAIvC,EAAM,QAAYoF,EAAM,CAC/CjyB,KAAMA,EACN5C,KAAMA,EACN4yB,QAASA,EACTC,QAASA,MAGZ,CACDr1B,IAAK,eACLR,MAAO,WACL,GAAKoC,KAAK4yB,cAAV,CASA5yB,KAAKi0B,sBACL,IAAID,EAAWx3B,OAAO6U,OAAOrR,KAAKg0B,UAClCh0B,KAAK4yB,cAAcpiB,OAAO5P,KAAKozB,SAAWA,EAC1Ch0B,KAAK4yB,cAAc8C,aAEpB,CACDt3B,IAAK,SACLR,MAAO,WACL,IAAI+3B,EAAe31B,KAAK0M,MACpBinB,EAASgC,EAAahC,OACtBC,EAAQ+B,EAAa/B,MACrBgC,EAAKD,EAAaC,GACtB,OAAoBhqB,EAAM,QAAYiqB,cAAc,SAAU,CAC5DC,IAAK91B,KAAK81B,IACVnC,OAAQA,EACRC,MAAOA,EACPgC,GAAIA,EACJxpB,QAASpM,KAAK+1B,oBAKbxD,EA7QyB,CA8QhC3mB,EAAM,QAAYoqB,WAEpBhE,EAAgBO,EAAgB,iBAAiB,SAAUxV,GACzD,OAAOA,EAAElT,SAGXmoB,EAAgBO,EAAgB,YAAa,CAC3C3xB,KAAMiL,EAAU,QAAYE,UAAU,CAACF,EAAU,QAAY1N,OAAQ0N,EAAU,QAAY9F,OAAOkG,WAClG6mB,kBAAmBjnB,EAAU,QAAY9F,KACzCgtB,kBAAmBlnB,EAAU,QAAY9F,KACzCitB,mBAAoBnnB,EAAU,QAAY9F,KAC1C4tB,OAAQ9nB,EAAU,QAAYoqB,OAC9BvC,OAAQ7nB,EAAU,QAAY1N,OAC9B80B,gBAAiBpnB,EAAU,QAAY9F,KACvCytB,QAAS3nB,EAAU,QAAY1N,OAC/Bs1B,QAAS5nB,EAAU,QAAYqqB,QAAQrqB,EAAU,QAAY1N,QAC7Dg1B,OAAQtnB,EAAU,QAAYM,KAC9B3I,KAAM,SAAckJ,EAAOypB,EAAUC,GACnC,IAAK/F,EAAM,QAAYgG,YAAY3pB,EAAMypB,IACvC,OAAO,IAAIG,MAAM,uBAAyB5pB,EAAMypB,GAA/B,kBAAoEC,EAAgB,OAGzGxC,MAAO/nB,EAAU,QAAYoqB,OAC7B7B,mBAAoBvoB,EAAU,QAAY9F,OAG5CisB,EAAgBO,EAAgB,eAAgB,CAC9CmB,OAAQ,CACN6C,SAAS,EACTC,SAAU,UAEZhzB,KAAM,WACNmwB,OAAQ,IACRC,MAAO,IACPT,QAAQ,EACRK,QAAS,GACTY,mBAAoB7B,EAAe8B,gBAGrC,IAAIoC,EAAWlE,EACfp2B,EAAO,QAAcs6B,EAErB,IAAI1F,EAAwB,SAAU2F,GACpCtpB,EAAU2jB,EAAU2F,GAEpB,IAAIC,EAAU/oB,EAAamjB,GAE3B,SAASA,IAGP,OAFAzkB,EAAgBtM,KAAM+wB,GAEf4F,EAAQxxB,MAAMnF,KAAMwC,WAiB7B,OAdAsK,EAAaikB,EAAU,CAAC,CACtB3yB,IAAK,SACLR,MAAO,WACL,IAAIg5B,EAAS52B,KAEb,OAAoB4L,EAAM,QAAYiqB,cAActD,EAAgBnB,EAAS,GAAIpxB,KAAK0M,MAAO,CAC3FopB,IAAK,SAAae,GAChB,OAAOD,EAAOhE,cAAgBiE,GAAQA,EAAKjE,eAE7CpvB,KAAM,kBAKLutB,EAzBmB,CA0B1BnlB,EAAM,QAAYoqB,WAEpB75B,EAAQ40B,SAAWA,EAEnB,IAAID,EAAmB,SAAUgG,GAC/B1pB,EAAU0jB,EAAKgG,GAEf,IAAIC,EAAUnpB,EAAakjB,GAE3B,SAASA,IAGP,OAFAxkB,EAAgBtM,KAAM8wB,GAEfiG,EAAQ5xB,MAAMnF,KAAMwC,WAiB7B,OAdAsK,EAAagkB,EAAK,CAAC,CACjB1yB,IAAK,SACLR,MAAO,WACL,IAAIo5B,EAASh3B,KAEb,OAAoB4L,EAAM,QAAYiqB,cAActD,EAAgBnB,EAAS,GAAIpxB,KAAK0M,MAAO,CAC3FopB,IAAK,SAAamB,GAChB,OAAOD,EAAOpE,cAAgBqE,GAASA,EAAMrE,eAE/CpvB,KAAM,aAKLstB,EAzBc,CA0BrBllB,EAAM,QAAYoqB,WAEpB75B,EAAQ20B,IAAMA,EAEd,IAAID,EAAoB,SAAUqG,GAChC9pB,EAAUyjB,EAAMqG,GAEhB,IAAIC,EAAUvpB,EAAaijB,GAE3B,SAASA,IAGP,OAFAvkB,EAAgBtM,KAAM6wB,GAEfsG,EAAQhyB,MAAMnF,KAAMwC,WAiB7B,OAdAsK,EAAa+jB,EAAM,CAAC,CAClBzyB,IAAK,SACLR,MAAO,WACL,IAAIw5B,EAASp3B,KAEb,OAAoB4L,EAAM,QAAYiqB,cAActD,EAAgBnB,EAAS,GAAIpxB,KAAK0M,MAAO,CAC3FopB,IAAK,SAAauB,GAChB,OAAOD,EAAOxE,cAAgByE,GAASA,EAAMzE,eAE/CpvB,KAAM,cAKLqtB,EAzBe,CA0BtBjlB,EAAM,QAAYoqB,WAEpB75B,EAAQ00B,KAAOA,EAEf,IAAID,EAAmB,SAAU0G,GAC/BlqB,EAAUwjB,EAAK0G,GAEf,IAAIC,EAAU3pB,EAAagjB,GAE3B,SAASA,IAGP,OAFAtkB,EAAgBtM,KAAM4wB,GAEf2G,EAAQpyB,MAAMnF,KAAMwC,WAiB7B,OAdAsK,EAAa8jB,EAAK,CAAC,CACjBxyB,IAAK,SACLR,MAAO,WACL,IAAI45B,EAASx3B,KAEb,OAAoB4L,EAAM,QAAYiqB,cAActD,EAAgBnB,EAAS,GAAIpxB,KAAK0M,MAAO,CAC3FopB,IAAK,SAAa2B,GAChB,OAAOD,EAAO5E,cAAgB6E,GAASA,EAAM7E,eAE/CpvB,KAAM,aAKLotB,EAzBc,CA0BrBhlB,EAAM,QAAYoqB,WAEpB75B,EAAQy0B,IAAMA,EAEd,IAAID,EAA6B,SAAU+G,GACzCtqB,EAAUujB,EAAe+G,GAEzB,IAAIC,EAAU/pB,EAAa+iB,GAE3B,SAASA,IAGP,OAFArkB,EAAgBtM,KAAM2wB,GAEfgH,EAAQxyB,MAAMnF,KAAMwC,WAiB7B,OAdAsK,EAAa6jB,EAAe,CAAC,CAC3BvyB,IAAK,SACLR,MAAO,WACL,IAAIg6B,EAAS53B,KAEb,OAAoB4L,EAAM,QAAYiqB,cAActD,EAAgBnB,EAAS,GAAIpxB,KAAK0M,MAAO,CAC3FopB,IAAK,SAAa+B,GAChB,OAAOD,EAAOhF,cAAgBiF,GAASA,EAAMjF,eAE/CpvB,KAAM,uBAKLmtB,EAzBwB,CA0B/B/kB,EAAM,QAAYoqB,WAEpB75B,EAAQw0B,cAAgBA,EAExB,IAAID,EAAqB,SAAUoH,GACjC1qB,EAAUsjB,EAAOoH,GAEjB,IAAIC,EAAUnqB,EAAa8iB,GAE3B,SAASA,IAGP,OAFApkB,EAAgBtM,KAAM0wB,GAEfqH,EAAQ5yB,MAAMnF,KAAMwC,WAiB7B,OAdAsK,EAAa4jB,EAAO,CAAC,CACnBtyB,IAAK,SACLR,MAAO,WACL,IAAIo6B,EAASh4B,KAEb,OAAoB4L,EAAM,QAAYiqB,cAActD,EAAgBnB,EAAS,GAAIpxB,KAAK0M,MAAO,CAC3FopB,IAAK,SAAamC,GAChB,OAAOD,EAAOpF,cAAgBqF,GAASA,EAAMrF,eAE/CpvB,KAAM,eAKLktB,EAzBgB,CA0BvB9kB,EAAM,QAAYoqB,WAEpB75B,EAAQu0B,MAAQA,EAEhB,IAAID,EAAqB,SAAUyH,GACjC9qB,EAAUqjB,EAAOyH,GAEjB,IAAIC,EAAUvqB,EAAa6iB,GAE3B,SAASA,IAGP,OAFAnkB,EAAgBtM,KAAMywB,GAEf0H,EAAQhzB,MAAMnF,KAAMwC,WAiB7B,OAdAsK,EAAa2jB,EAAO,CAAC,CACnBryB,IAAK,SACLR,MAAO,WACL,IAAIw6B,EAAUp4B,KAEd,OAAoB4L,EAAM,QAAYiqB,cAActD,EAAgBnB,EAAS,GAAIpxB,KAAK0M,MAAO,CAC3FopB,IAAK,SAAauC,GAChB,OAAOD,EAAQxF,cAAgByF,GAASA,EAAMzF,eAEhDpvB,KAAM,mBAKLitB,EAzBgB,CA0BvB7kB,EAAM,QAAYoqB,WAEpB75B,EAAQs0B,MAAQA,EAEhB,IAAID,EAAsB,SAAU8H,GAClClrB,EAAUojB,EAAQ8H,GAElB,IAAIC,EAAU3qB,EAAa4iB,GAE3B,SAASA,IAGP,OAFAlkB,EAAgBtM,KAAMwwB,GAEf+H,EAAQpzB,MAAMnF,KAAMwC,WAiB7B,OAdAsK,EAAa0jB,EAAQ,CAAC,CACpBpyB,IAAK,SACLR,MAAO,WACL,IAAI46B,EAAUx4B,KAEd,OAAoB4L,EAAM,QAAYiqB,cAActD,EAAgBnB,EAAS,GAAIpxB,KAAK0M,MAAO,CAC3FopB,IAAK,SAAa2C,GAChB,OAAOD,EAAQ5F,cAAgB6F,GAASA,EAAM7F,eAEhDpvB,KAAM,gBAKLgtB,EAzBiB,CA0BxB5kB,EAAM,QAAYoqB,WAEpB75B,EAAQq0B,OAASA,EAEjB,IAAID,EAAuB,SAAUmI,GACnCtrB,EAAUmjB,EAASmI,GAEnB,IAAIC,EAAW/qB,EAAa2iB,GAE5B,SAASA,IAGP,OAFAjkB,EAAgBtM,KAAMuwB,GAEfoI,EAASxzB,MAAMnF,KAAMwC,WAiB9B,OAdAsK,EAAayjB,EAAS,CAAC,CACrBnyB,IAAK,SACLR,MAAO,WACL,IAAIg7B,EAAU54B,KAEd,OAAoB4L,EAAM,QAAYiqB,cAActD,EAAgBnB,EAAS,GAAIpxB,KAAK0M,MAAO,CAC3FopB,IAAK,SAAa+C,GAChB,OAAOD,EAAQhG,cAAgBiG,GAASA,EAAMjG,eAEhDpvB,KAAM,iBAKL+sB,EAzBkB,CA0BzB3kB,EAAM,QAAYoqB,WAEpB75B,EAAQo0B,QAAUA,EAClB,IAAID,EAAWD,EAAM,QAAYC,SACjCn0B,EAAQm0B,SAAWA,I,kCCnoBnBp0B,EAAOC,QAAUC,EAAQ,M,6BCQZ,IAAI2G,EAAE3G,EAAQ,IAAiBoC,EAAE,MAAM0L,EAAE,MAAM/N,EAAQ28B,SAAS,MAAM38B,EAAQ48B,WAAW,MAAM58B,EAAQ68B,SAAS,MAAM,IAAIC,EAAE,MAAMC,EAAE,MAAMC,EAAE,MAAMh9B,EAAQi9B,SAAS,MAAM,IAAIC,EAAE,MAAMzoB,EAAE,MACpM,GAAG,oBAAoB5T,QAAQA,OAAOs8B,IAAI,CAAC,IAAIC,EAAEv8B,OAAOs8B,IAAI96B,EAAE+6B,EAAE,iBAAiBrvB,EAAEqvB,EAAE,gBAAgBp9B,EAAQ28B,SAASS,EAAE,kBAAkBp9B,EAAQ48B,WAAWQ,EAAE,qBAAqBp9B,EAAQ68B,SAASO,EAAE,kBAAkBN,EAAEM,EAAE,kBAAkBL,EAAEK,EAAE,iBAAiBJ,EAAEI,EAAE,qBAAqBp9B,EAAQi9B,SAASG,EAAE,kBAAkBF,EAAEE,EAAE,cAAc3oB,EAAE2oB,EAAE,cAAc,IAAIvjB,EAAE,oBAAoBhZ,QAAQA,OAAOC,SACtR,SAASu8B,EAAErwB,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAEswB,EAAE,EAAEA,EAAEj3B,UAAU3E,OAAO47B,IAAIrwB,GAAG,WAAWswB,mBAAmBl3B,UAAUi3B,IAAI,MAAM,yBAAyBtwB,EAAE,WAAWC,EAAE,iHACpU,IAAIuwB,EAAE,CAACC,UAAU,WAAW,OAAM,GAAIC,mBAAmB,aAAaC,oBAAoB,aAAaC,gBAAgB,cAAcC,EAAE,GAAG,SAASC,EAAE9wB,EAAEC,EAAEqwB,GAAGz5B,KAAK0M,MAAMvD,EAAEnJ,KAAKk6B,QAAQ9wB,EAAEpJ,KAAKm6B,KAAKH,EAAEh6B,KAAKo6B,QAAQX,GAAGE,EACpN,SAASU,KAA6B,SAASC,EAAEnxB,EAAEC,EAAEqwB,GAAGz5B,KAAK0M,MAAMvD,EAAEnJ,KAAKk6B,QAAQ9wB,EAAEpJ,KAAKm6B,KAAKH,EAAEh6B,KAAKo6B,QAAQX,GAAGE,EADsGM,EAAEx7B,UAAU87B,iBAAiB,GAAGN,EAAEx7B,UAAU+7B,SAAS,SAASrxB,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMmtB,MAAMkD,EAAE,KAAKx5B,KAAKo6B,QAAQL,gBAAgB/5B,KAAKmJ,EAAEC,EAAE,aAAa6wB,EAAEx7B,UAAUg8B,YAAY,SAAStxB,GAAGnJ,KAAKo6B,QAAQP,mBAAmB75B,KAAKmJ,EAAE,gBACndkxB,EAAE57B,UAAUw7B,EAAEx7B,UAAsF,IAAI8W,EAAE+kB,EAAE77B,UAAU,IAAI47B,EAAE9kB,EAAE1W,YAAYy7B,EAAEv3B,EAAEwS,EAAE0kB,EAAEx7B,WAAW8W,EAAEmlB,sBAAqB,EAAG,IAAIC,EAAE,CAAC5rB,QAAQ,MAAM6rB,EAAEp+B,OAAOiC,UAAUwC,eAAe45B,EAAE,CAACz8B,KAAI,EAAG03B,KAAI,EAAGgF,QAAO,EAAGC,UAAS,GAChS,SAASC,EAAE7xB,EAAEC,EAAEqwB,GAAG,IAAIzzB,EAAE+W,EAAE,GAAGD,EAAE,KAAKme,EAAE,KAAK,GAAG,MAAM7xB,EAAE,IAAIpD,UAAK,IAASoD,EAAE0sB,MAAMmF,EAAE7xB,EAAE0sB,UAAK,IAAS1sB,EAAEhL,MAAM0e,EAAE,GAAG1T,EAAEhL,KAAKgL,EAAEwxB,EAAEj8B,KAAKyK,EAAEpD,KAAK60B,EAAE55B,eAAe+E,KAAK+W,EAAE/W,GAAGoD,EAAEpD,IAAI,IAAIk1B,EAAE14B,UAAU3E,OAAO,EAAE,GAAG,IAAIq9B,EAAEne,EAAEna,SAAS62B,OAAO,GAAG,EAAEyB,EAAE,CAAC,IAAI,IAAI1lB,EAAE5Y,MAAMs+B,GAAGC,EAAE,EAAEA,EAAED,EAAEC,IAAI3lB,EAAE2lB,GAAG34B,UAAU24B,EAAE,GAAGpe,EAAEna,SAAS4S,EAAE,GAAGrM,GAAGA,EAAEuC,aAAa,IAAI1F,KAAKk1B,EAAE/xB,EAAEuC,kBAAe,IAASqR,EAAE/W,KAAK+W,EAAE/W,GAAGk1B,EAAEl1B,IAAI,MAAM,CAACo1B,SAAS58B,EAAEgF,KAAK2F,EAAE/K,IAAI0e,EAAEgZ,IAAImF,EAAEvuB,MAAMqQ,EAAEse,OAAOV,EAAE5rB,SACxU,SAASusB,EAAEnyB,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEiyB,WAAW58B,EAAqG,IAAI+8B,EAAE,OAAO,SAASC,EAAEryB,EAAEC,GAAG,MAAM,kBAAkBD,GAAG,OAAOA,GAAG,MAAMA,EAAE/K,IAA7K,SAAgB+K,GAAG,IAAIC,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAID,EAAEc,QAAQ,SAAQ,SAASd,GAAG,OAAOC,EAAED,MAAmFsyB,CAAO,GAAGtyB,EAAE/K,KAAKgL,EAAE1K,SAAS,IAC5W,SAASg9B,EAAEvyB,EAAEC,EAAEqwB,EAAEzzB,EAAE+W,GAAG,IAAID,SAAS3T,EAAK,cAAc2T,GAAG,YAAYA,IAAE3T,EAAE,MAAK,IAAI8xB,GAAE,EAAG,GAAG,OAAO9xB,EAAE8xB,GAAE,OAAQ,OAAOne,GAAG,IAAK,SAAS,IAAK,SAASme,GAAE,EAAG,MAAM,IAAK,SAAS,OAAO9xB,EAAEiyB,UAAU,KAAK58B,EAAE,KAAK0L,EAAE+wB,GAAE,GAAI,GAAGA,EAAE,OAAWle,EAAEA,EAANke,EAAE9xB,GAASA,EAAE,KAAKnD,EAAE,IAAIw1B,EAAEP,EAAE,GAAGj1B,EAAEpJ,MAAMD,QAAQogB,IAAI0c,EAAE,GAAG,MAAMtwB,IAAIswB,EAAEtwB,EAAEc,QAAQsxB,EAAE,OAAO,KAAKG,EAAE3e,EAAE3T,EAAEqwB,EAAE,IAAG,SAAStwB,GAAG,OAAOA,MAAK,MAAM4T,IAAIue,EAAEve,KAAKA,EAD/W,SAAW5T,EAAEC,GAAG,MAAM,CAACgyB,SAAS58B,EAAEgF,KAAK2F,EAAE3F,KAAKpF,IAAIgL,EAAE0sB,IAAI3sB,EAAE2sB,IAAIppB,MAAMvD,EAAEuD,MAAM2uB,OAAOlyB,EAAEkyB,QAC4RM,CAAE5e,EAAE0c,IAAI1c,EAAE3e,KAAK68B,GAAGA,EAAE78B,MAAM2e,EAAE3e,IAAI,IAAI,GAAG2e,EAAE3e,KAAK6L,QAAQsxB,EAAE,OAAO,KAAKpyB,IAAIC,EAAEzL,KAAKof,IAAI,EAAyB,GAAvBke,EAAE,EAAEj1B,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOpJ,MAAMD,QAAQwM,GAAG,IAAI,IAAI+xB,EACzf,EAAEA,EAAE/xB,EAAEtL,OAAOq9B,IAAI,CAAQ,IAAI1lB,EAAExP,EAAEw1B,EAAf1e,EAAE3T,EAAE+xB,GAAeA,GAAGD,GAAGS,EAAE5e,EAAE1T,EAAEqwB,EAAEjkB,EAAEuH,QAAQ,GAAU,oBAAPvH,EANhE,SAAWrM,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAE6M,GAAG7M,EAAE6M,IAAI7M,EAAE,eAA0CA,EAAE,KAMlDyyB,CAAEzyB,IAAyB,IAAIA,EAAEqM,EAAE7W,KAAKwK,GAAG+xB,EAAE,IAAIpe,EAAE3T,EAAE1L,QAAQC,MAA6Bu9B,GAAGS,EAA1B5e,EAAEA,EAAElf,MAA0BwL,EAAEqwB,EAAtBjkB,EAAExP,EAAEw1B,EAAE1e,EAAEoe,KAAkBne,QAAQ,GAAG,WAAWD,EAAE,MAAM1T,EAAE,GAAGD,EAAEmtB,MAAMkD,EAAE,GAAG,oBAAoBpwB,EAAE,qBAAqB5M,OAAOyF,KAAKkH,GAAGvH,KAAK,MAAM,IAAIwH,IAAI,OAAO6xB,EAAE,SAASY,EAAE1yB,EAAEC,EAAEqwB,GAAG,GAAG,MAAMtwB,EAAE,OAAOA,EAAE,IAAInD,EAAE,GAAG+W,EAAE,EAAmD,OAAjD2e,EAAEvyB,EAAEnD,EAAE,GAAG,IAAG,SAASmD,GAAG,OAAOC,EAAEzK,KAAK86B,EAAEtwB,EAAE4T,QAAc/W,EAC1Z,SAAS81B,EAAE3yB,GAAG,IAAI,IAAIA,EAAE4yB,QAAQ,CAAC,IAAI3yB,EAAED,EAAE6yB,QAAQ5yB,EAAEA,IAAID,EAAE4yB,QAAQ,EAAE5yB,EAAE6yB,QAAQ5yB,EAAEA,EAAErE,MAAK,SAASqE,GAAG,IAAID,EAAE4yB,UAAU3yB,EAAEA,EAAE+nB,QAAQhoB,EAAE4yB,QAAQ,EAAE5yB,EAAE6yB,QAAQ5yB,MAAI,SAASA,GAAG,IAAID,EAAE4yB,UAAU5yB,EAAE4yB,QAAQ,EAAE5yB,EAAE6yB,QAAQ5yB,MAAK,GAAG,IAAID,EAAE4yB,QAAQ,OAAO5yB,EAAE6yB,QAAQ,MAAM7yB,EAAE6yB,QAAS,IAAIC,EAAE,CAACltB,QAAQ,MAAM,SAASmtB,IAAI,IAAI/yB,EAAE8yB,EAAEltB,QAAQ,GAAG,OAAO5F,EAAE,MAAMmtB,MAAMkD,EAAE,MAAM,OAAOrwB,EAAE,IAAIgzB,EAAE,CAACC,uBAAuBH,EAAEI,wBAAwB,CAACC,WAAW,GAAGC,kBAAkB5B,EAAE6B,qBAAqB,CAACztB,SAAQ,GAAIzN,OAAOyB,GACje5G,EAAQsgC,SAAS,CAAC97B,IAAIk7B,EAAE95B,QAAQ,SAASoH,EAAEC,EAAEqwB,GAAGoC,EAAE1yB,GAAE,WAAWC,EAAEjE,MAAMnF,KAAKwC,aAAYi3B,IAAIiD,MAAM,SAASvzB,GAAG,IAAIC,EAAE,EAAuB,OAArByyB,EAAE1yB,GAAE,WAAWC,OAAaA,GAAGuzB,QAAQ,SAASxzB,GAAG,OAAO0yB,EAAE1yB,GAAE,SAASA,GAAG,OAAOA,MAAK,IAAIyzB,KAAK,SAASzzB,GAAG,IAAImyB,EAAEnyB,GAAG,MAAMmtB,MAAMkD,EAAE,MAAM,OAAOrwB,IAAIhN,EAAQ65B,UAAUiE,EAAE99B,EAAQ0gC,cAAcvC,EAAEn+B,EAAQ2gC,mDAAmDX,EAChXhgC,EAAQ4gC,aAAa,SAAS5zB,EAAEC,EAAEqwB,GAAG,GAAG,OAAOtwB,QAAG,IAASA,EAAE,MAAMmtB,MAAMkD,EAAE,IAAIrwB,IAAI,IAAInD,EAAEjD,EAAE,GAAGoG,EAAEuD,OAAOqQ,EAAE5T,EAAE/K,IAAI0e,EAAE3T,EAAE2sB,IAAImF,EAAE9xB,EAAEkyB,OAAO,GAAG,MAAMjyB,EAAE,CAAoE,QAAnE,IAASA,EAAE0sB,MAAMhZ,EAAE1T,EAAE0sB,IAAImF,EAAEN,EAAE5rB,cAAS,IAAS3F,EAAEhL,MAAM2e,EAAE,GAAG3T,EAAEhL,KAAQ+K,EAAE3F,MAAM2F,EAAE3F,KAAKkI,aAAa,IAAIwvB,EAAE/xB,EAAE3F,KAAKkI,aAAa,IAAI8J,KAAKpM,EAAEwxB,EAAEj8B,KAAKyK,EAAEoM,KAAKqlB,EAAE55B,eAAeuU,KAAKxP,EAAEwP,QAAG,IAASpM,EAAEoM,SAAI,IAAS0lB,EAAEA,EAAE1lB,GAAGpM,EAAEoM,IAAI,IAAIA,EAAEhT,UAAU3E,OAAO,EAAE,GAAG,IAAI2X,EAAExP,EAAEpD,SAAS62B,OAAO,GAAG,EAAEjkB,EAAE,CAAC0lB,EAAEt+B,MAAM4Y,GAAG,IAAI,IAAI2lB,EAAE,EAAEA,EAAE3lB,EAAE2lB,IAAID,EAAEC,GAAG34B,UAAU24B,EAAE,GAAGn1B,EAAEpD,SAASs4B,EAAE,MAAM,CAACE,SAAS58B,EAAEgF,KAAK2F,EAAE3F,KACxfpF,IAAI2e,EAAE+Y,IAAIhZ,EAAEpQ,MAAM1G,EAAEq1B,OAAOJ,IAAI9+B,EAAQ6gC,cAAc,SAAS7zB,EAAEC,GAA8K,YAA3K,IAASA,IAAIA,EAAE,OAAMD,EAAE,CAACiyB,SAASlC,EAAE+D,sBAAsB7zB,EAAE8zB,cAAc/zB,EAAEg0B,eAAeh0B,EAAEi0B,aAAa,EAAEC,SAAS,KAAKC,SAAS,OAAQD,SAAS,CAACjC,SAASnC,EAAEsE,SAASp0B,GAAUA,EAAEm0B,SAASn0B,GAAGhN,EAAQ05B,cAAcmF,EAAE7+B,EAAQqhC,cAAc,SAASr0B,GAAG,IAAIC,EAAE4xB,EAAEyC,KAAK,KAAKt0B,GAAY,OAATC,EAAE5F,KAAK2F,EAASC,GAAGjN,EAAQuhC,UAAU,WAAW,MAAM,CAAC3uB,QAAQ,OAAO5S,EAAQwhC,WAAW,SAASx0B,GAAG,MAAM,CAACiyB,SAASjC,EAAEyE,OAAOz0B,IAAIhN,EAAQ0hC,eAAevC,EAC3en/B,EAAQ2hC,KAAK,SAAS30B,GAAG,MAAM,CAACiyB,SAASxqB,EAAEmtB,SAAS,CAAChC,SAAS,EAAEC,QAAQ7yB,GAAG60B,MAAMlC,IAAI3/B,EAAQ8hC,KAAK,SAAS90B,EAAEC,GAAG,MAAM,CAACgyB,SAAS/B,EAAE71B,KAAK2F,EAAE+0B,aAAQ,IAAS90B,EAAE,KAAKA,IAAIjN,EAAQgiC,YAAY,SAASh1B,EAAEC,GAAG,OAAO8yB,IAAIiC,YAAYh1B,EAAEC,IAAIjN,EAAQiiC,WAAW,SAASj1B,EAAEC,GAAG,OAAO8yB,IAAIkC,WAAWj1B,EAAEC,IAAIjN,EAAQkiC,cAAc,aAAaliC,EAAQmiC,UAAU,SAASn1B,EAAEC,GAAG,OAAO8yB,IAAIoC,UAAUn1B,EAAEC,IAAIjN,EAAQoiC,oBAAoB,SAASp1B,EAAEC,EAAEqwB,GAAG,OAAOyC,IAAIqC,oBAAoBp1B,EAAEC,EAAEqwB,IAC9ct9B,EAAQqiC,gBAAgB,SAASr1B,EAAEC,GAAG,OAAO8yB,IAAIsC,gBAAgBr1B,EAAEC,IAAIjN,EAAQsiC,QAAQ,SAASt1B,EAAEC,GAAG,OAAO8yB,IAAIuC,QAAQt1B,EAAEC,IAAIjN,EAAQuiC,WAAW,SAASv1B,EAAEC,EAAEqwB,GAAG,OAAOyC,IAAIwC,WAAWv1B,EAAEC,EAAEqwB,IAAIt9B,EAAQwiC,OAAO,SAASx1B,GAAG,OAAO+yB,IAAIyC,OAAOx1B,IAAIhN,EAAQyiC,SAAS,SAASz1B,GAAG,OAAO+yB,IAAI0C,SAASz1B,IAAIhN,EAAQ0iC,QAAQ,U,6BCXxS,IAAIC,EAAG1iC,EAAQ,GAAS++B,EAAE/+B,EAAQ,IAAiB88B,EAAE98B,EAAQ,IAAa,SAASw/B,EAAEzyB,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAEswB,EAAE,EAAEA,EAAEj3B,UAAU3E,OAAO47B,IAAIrwB,GAAG,WAAWswB,mBAAmBl3B,UAAUi3B,IAAI,MAAM,yBAAyBtwB,EAAE,WAAWC,EAAE,iHAAiH,IAAI01B,EAAG,MAAMxI,MAAMsF,EAAE,MAAM,IAAImD,EAAG,IAAI11B,IAAI21B,EAAG,GAAG,SAASC,EAAG91B,EAAEC,GAAG81B,EAAG/1B,EAAEC,GAAG81B,EAAG/1B,EAAE,UAAUC,GAC3e,SAAS81B,EAAG/1B,EAAEC,GAAW,IAAR41B,EAAG71B,GAAGC,EAAMD,EAAE,EAAEA,EAAEC,EAAEvL,OAAOsL,IAAI41B,EAAGrvB,IAAItG,EAAED,IACzD,IAAIg2B,IAAK,qBAAqB7zB,QAAQ,qBAAqBA,OAAO8zB,UAAU,qBAAqB9zB,OAAO8zB,SAASvJ,eAAewJ,EAAG,8VAA8VC,EAAG9iC,OAAOiC,UAAUwC,eACrfs+B,EAAG,GAAGC,EAAG,GAC+M,SAASxF,EAAE7wB,EAAEC,EAAEqwB,EAAE1c,EAAE/W,EAAEwP,EAAE0lB,GAAGl7B,KAAKy/B,gBAAgB,IAAIr2B,GAAG,IAAIA,GAAG,IAAIA,EAAEpJ,KAAK0/B,cAAc3iB,EAAE/c,KAAK2/B,mBAAmB35B,EAAEhG,KAAK4/B,gBAAgBnG,EAAEz5B,KAAK6/B,aAAa12B,EAAEnJ,KAAKwD,KAAK4F,EAAEpJ,KAAK8/B,YAAYtqB,EAAExV,KAAK+/B,kBAAkB7E,EAAE,IAAIb,EAAE,GACnb,uIAAuIv4B,MAAM,KAAKC,SAAQ,SAASoH,GAAGkxB,EAAElxB,GAAG,IAAI6wB,EAAE7wB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAepH,SAAQ,SAASoH,GAAG,IAAIC,EAAED,EAAE,GAAGkxB,EAAEjxB,GAAG,IAAI4wB,EAAE5wB,EAAE,GAAE,EAAGD,EAAE,GAAG,MAAK,GAAG,MAAM,CAAC,kBAAkB,YAAY,aAAa,SAASpH,SAAQ,SAASoH,GAAGkxB,EAAElxB,GAAG,IAAI6wB,EAAE7wB,EAAE,GAAE,EAAGA,EAAE62B,cAAc,MAAK,GAAG,MACve,CAAC,cAAc,4BAA4B,YAAY,iBAAiBj+B,SAAQ,SAASoH,GAAGkxB,EAAElxB,GAAG,IAAI6wB,EAAE7wB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,8OAA8OrH,MAAM,KAAKC,SAAQ,SAASoH,GAAGkxB,EAAElxB,GAAG,IAAI6wB,EAAE7wB,EAAE,GAAE,EAAGA,EAAE62B,cAAc,MAAK,GAAG,MACrb,CAAC,UAAU,WAAW,QAAQ,YAAYj+B,SAAQ,SAASoH,GAAGkxB,EAAElxB,GAAG,IAAI6wB,EAAE7wB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,UAAU,YAAYpH,SAAQ,SAASoH,GAAGkxB,EAAElxB,GAAG,IAAI6wB,EAAE7wB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,OAAO,OAAO,OAAO,QAAQpH,SAAQ,SAASoH,GAAGkxB,EAAElxB,GAAG,IAAI6wB,EAAE7wB,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,UAAU,SAASpH,SAAQ,SAASoH,GAAGkxB,EAAElxB,GAAG,IAAI6wB,EAAE7wB,EAAE,GAAE,EAAGA,EAAE62B,cAAc,MAAK,GAAG,MAAM,IAAIC,EAAG,gBAAgB,SAASC,EAAG/2B,GAAG,OAAOA,EAAE,GAAGg3B,cAI3Y,SAASC,EAAGj3B,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAEq0B,EAAEp5B,eAAemI,GAAGixB,EAAEjxB,GAAG,MAAW,OAAOpD,EAAE,IAAIA,EAAExC,MAAKuZ,IAAO,EAAE3T,EAAEvL,SAAS,MAAMuL,EAAE,IAAI,MAAMA,EAAE,MAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,QAPnJ,SAAYD,EAAEC,EAAEqwB,EAAE1c,GAAG,GAAG,OAAO3T,GAAG,qBAAqBA,GADwE,SAAYD,EAAEC,EAAEqwB,EAAE1c,GAAG,GAAG,OAAO0c,GAAG,IAAIA,EAAEj2B,KAAK,OAAM,EAAG,cAAc4F,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAG2T,IAAc,OAAO0c,GAASA,EAAEgG,gBAAmD,WAAnCt2B,EAAEA,EAAE62B,cAAcphC,MAAM,EAAE,KAAsB,UAAUuK,GAAE,QAAQ,OAAM,GAC/T2lB,CAAG3lB,EAAEC,EAAEqwB,EAAE1c,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAO0c,EAAE,OAAOA,EAAEj2B,MAAM,KAAK,EAAE,OAAO4F,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAOyK,MAAMzK,GAAG,KAAK,EAAE,OAAOyK,MAAMzK,IAAI,EAAEA,EAAE,OAAM,EAOrDi3B,CAAGj3B,EAAEqwB,EAAEzzB,EAAE+W,KAAK0c,EAAE,MAAM1c,GAAG,OAAO/W,EARpL,SAAYmD,GAAG,QAAGm2B,EAAG3gC,KAAK6gC,EAAGr2B,KAAem2B,EAAG3gC,KAAK4gC,EAAGp2B,KAAek2B,EAAGrgC,KAAKmK,GAAUq2B,EAAGr2B,IAAG,GAAGo2B,EAAGp2B,IAAG,GAAS,IAQsEm3B,CAAGl3B,KAAK,OAAOqwB,EAAEtwB,EAAEo3B,gBAAgBn3B,GAAGD,EAAEq3B,aAAap3B,EAAE,GAAGqwB,IAAIzzB,EAAE45B,gBAAgBz2B,EAAEnD,EAAE65B,cAAc,OAAOpG,EAAE,IAAIzzB,EAAExC,MAAQ,GAAGi2B,GAAGrwB,EAAEpD,EAAE05B,cAAc3iB,EAAE/W,EAAE25B,mBAAmB,OAAOlG,EAAEtwB,EAAEo3B,gBAAgBn3B,IAAaqwB,EAAE,KAAXzzB,EAAEA,EAAExC,OAAc,IAAIwC,IAAG,IAAKyzB,EAAE,GAAG,GAAGA,EAAE1c,EAAE5T,EAAEs3B,eAAe1jB,EAAE3T,EAAEqwB,GAAGtwB,EAAEq3B,aAAap3B,EAAEqwB,MAH5d,0jCAA0jC33B,MAAM,KAAKC,SAAQ,SAASoH,GAAG,IAAIC,EAAED,EAAEc,QAAQg2B,EACzmCC,GAAI7F,EAAEjxB,GAAG,IAAI4wB,EAAE5wB,EAAE,GAAE,EAAGD,EAAE,MAAK,GAAG,MAAM,2EAA2ErH,MAAM,KAAKC,SAAQ,SAASoH,GAAG,IAAIC,EAAED,EAAEc,QAAQg2B,EAAGC,GAAI7F,EAAEjxB,GAAG,IAAI4wB,EAAE5wB,EAAE,GAAE,EAAGD,EAAE,gCAA+B,GAAG,MAAM,CAAC,WAAW,WAAW,aAAapH,SAAQ,SAASoH,GAAG,IAAIC,EAAED,EAAEc,QAAQg2B,EAAGC,GAAI7F,EAAEjxB,GAAG,IAAI4wB,EAAE5wB,EAAE,GAAE,EAAGD,EAAE,wCAAuC,GAAG,MAAM,CAAC,WAAW,eAAepH,SAAQ,SAASoH,GAAGkxB,EAAElxB,GAAG,IAAI6wB,EAAE7wB,EAAE,GAAE,EAAGA,EAAE62B,cAAc,MAAK,GAAG,MAC/c3F,EAAEqG,UAAU,IAAI1G,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAcj4B,SAAQ,SAASoH,GAAGkxB,EAAElxB,GAAG,IAAI6wB,EAAE7wB,EAAE,GAAE,EAAGA,EAAE62B,cAAc,MAAK,GAAG,MAEzL,IAAIW,EAAG7B,EAAGhC,mDAAmD8D,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAChN,GAAG,oBAAoB5kC,QAAQA,OAAOs8B,IAAI,CAAC,IAAIgB,EAAEt9B,OAAOs8B,IAAIsH,EAAGtG,EAAE,iBAAiBuG,EAAGvG,EAAE,gBAAgBwG,EAAGxG,EAAE,kBAAkByG,EAAGzG,EAAE,qBAAqB0G,EAAG1G,EAAE,kBAAkB2G,EAAG3G,EAAE,kBAAkB4G,EAAG5G,EAAE,iBAAiB6G,EAAG7G,EAAE,qBAAqB8G,EAAG9G,EAAE,kBAAkB+G,EAAG/G,EAAE,uBAAuBgH,EAAGhH,EAAE,cAAciH,EAAGjH,EAAE,cAAckH,EAAGlH,EAAE,eAAeA,EAAE,eAAemH,EAAGnH,EAAE,mBAAmBoH,EAAGpH,EAAE,0BAA0BqH,EAAGrH,EAAE,mBAAmBsH,EAAGtH,EAAE,uBACxc,IAAmLuH,EAA/KC,EAAG,oBAAoB9kC,QAAQA,OAAOC,SAAS,SAAS8kC,EAAG54B,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAE24B,GAAI34B,EAAE24B,IAAK34B,EAAE,eAA0CA,EAAE,KAAY,SAAS64B,EAAG74B,GAAG,QAAG,IAAS04B,EAAG,IAAI,MAAMvL,QAAS,MAAMmD,GAAG,IAAIrwB,EAAEqwB,EAAEn2B,MAAM2+B,OAAOC,MAAM,gBAAgBL,EAAGz4B,GAAGA,EAAE,IAAI,GAAG,MAAM,KAAKy4B,EAAG14B,EAAE,IAAIg5B,GAAG,EACjU,SAASC,EAAGj5B,EAAEC,GAAG,IAAID,GAAGg5B,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAI1I,EAAEnD,MAAM+L,kBAAkB/L,MAAM+L,uBAAkB,EAAO,IAAI,GAAGj5B,EAAE,GAAGA,EAAE,WAAW,MAAMktB,SAAU95B,OAAOqG,eAAeuG,EAAE3K,UAAU,QAAQ,CAAC0B,IAAI,WAAW,MAAMm2B,WAAY,kBAAkBvoB,SAASA,QAAQC,UAAU,CAAC,IAAID,QAAQC,UAAU5E,EAAE,IAAI,MAAM0T,GAAG,IAAIC,EAAED,EAAE/O,QAAQC,UAAU7E,EAAE,GAAGC,OAAO,CAAC,IAAIA,EAAEzK,OAAO,MAAMme,GAAGC,EAAED,EAAE3T,EAAExK,KAAKyK,EAAE3K,eAAe,CAAC,IAAI,MAAM63B,QAAS,MAAMxZ,GAAGC,EAAED,EAAE3T,KAAK,MAAM2T,GAAG,GAAGA,GAAGC,GAAG,kBAAkBD,EAAExZ,MAAM,CAAC,IAAI,IAAI0C,EAAE8W,EAAExZ,MAAMxB,MAAM,MACnf0T,EAAEuH,EAAEzZ,MAAMxB,MAAM,MAAMo5B,EAAEl1B,EAAEnI,OAAO,EAAEo9B,EAAEzlB,EAAE3X,OAAO,EAAE,GAAGq9B,GAAG,GAAGD,GAAGj1B,EAAEk1B,KAAK1lB,EAAEylB,IAAIA,IAAI,KAAK,GAAGC,GAAG,GAAGD,EAAEC,IAAID,IAAI,GAAGj1B,EAAEk1B,KAAK1lB,EAAEylB,GAAG,CAAC,GAAG,IAAIC,GAAG,IAAID,EAAG,GAAG,GAAGC,IAAQ,IAAJD,GAASj1B,EAAEk1B,KAAK1lB,EAAEylB,GAAG,MAAM,KAAKj1B,EAAEk1B,GAAGjxB,QAAQ,WAAW,cAAc,GAAGixB,GAAG,GAAGD,GAAG,QAD3H,QAC2IkH,GAAG,EAAG7L,MAAM+L,kBAAkB5I,EAAE,OAAOtwB,EAAEA,EAAEA,EAAEm5B,aAAan5B,EAAErK,KAAK,IAAIkjC,EAAG74B,GAAG,GAC7T,SAASo5B,EAAGp5B,GAAG,OAAOA,EAAEvD,KAAK,KAAK,EAAE,OAAOo8B,EAAG74B,EAAE3F,MAAM,KAAK,GAAG,OAAOw+B,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO74B,EAAEi5B,EAAGj5B,EAAE3F,MAAK,GAAM,KAAK,GAAG,OAAO2F,EAAEi5B,EAAGj5B,EAAE3F,KAAKo6B,QAAO,GAAM,KAAK,GAAG,OAAOz0B,EAAEi5B,EAAGj5B,EAAE3F,KAAKg/B,SAAQ,GAAM,KAAK,EAAE,OAAOr5B,EAAEi5B,EAAGj5B,EAAE3F,MAAK,GAAM,QAAQ,MAAM,IAC9T,SAASi/B,EAAGt5B,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAEm5B,aAAan5B,EAAErK,MAAM,KAAK,GAAG,kBAAkBqK,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAK23B,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,SAAS,KAAKG,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,aAAa,KAAKK,EAAG,MAAM,WAAW,KAAKC,EAAG,MAAM,eAAe,GAAG,kBAAkBl4B,EAAE,OAAOA,EAAEiyB,UAAU,KAAK8F,EAAG,OAAO/3B,EAAEm5B,aAAa,WAAW,YAAY,KAAKrB,EAAG,OAAO93B,EAAEo0B,SAAS+E,aAAa,WAAW,YAAY,KAAKnB,EAAG,IAAI/3B,EAAED,EAAEy0B,OACnd,OAD0dx0B,EAAEA,EAAEk5B,aAAal5B,EAAEtK,MAAM,GAC5eqK,EAAEm5B,cAAc,KAAKl5B,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAKk4B,EAAG,OAAOmB,EAAGt5B,EAAE3F,MAAM,KAAKg+B,EAAG,OAAOiB,EAAGt5B,EAAEq5B,SAAS,KAAKjB,EAAGn4B,EAAED,EAAE40B,SAAS50B,EAAEA,EAAE60B,MAAM,IAAI,OAAOyE,EAAGt5B,EAAEC,IAAI,MAAMqwB,KAAK,OAAO,KAAK,SAASiJ,EAAGv5B,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,OAAOA,EAAE,QAAQ,MAAM,IAAI,SAASw5B,EAAGx5B,GAAG,IAAIC,EAAED,EAAE3F,KAAK,OAAO2F,EAAEA,EAAEy5B,WAAW,UAAUz5B,EAAE62B,gBAAgB,aAAa52B,GAAG,UAAUA,GAE1Z,SAASy5B,EAAG15B,GAAGA,EAAE25B,gBAAgB35B,EAAE25B,cADvD,SAAY35B,GAAG,IAAIC,EAAEu5B,EAAGx5B,GAAG,UAAU,QAAQswB,EAAEj9B,OAAOs1B,yBAAyB3oB,EAAEtK,YAAYJ,UAAU2K,GAAG2T,EAAE,GAAG5T,EAAEC,GAAG,IAAID,EAAElI,eAAemI,IAAI,qBAAqBqwB,GAAG,oBAAoBA,EAAEr5B,KAAK,oBAAoBq5B,EAAEt5B,IAAI,CAAC,IAAI6F,EAAEyzB,EAAEr5B,IAAIoV,EAAEikB,EAAEt5B,IAAiL,OAA7K3D,OAAOqG,eAAesG,EAAEC,EAAE,CAACwD,cAAa,EAAGxM,IAAI,WAAW,OAAO4F,EAAErH,KAAKqB,OAAOG,IAAI,SAASgJ,GAAG4T,EAAE,GAAG5T,EAAEqM,EAAE7W,KAAKqB,KAAKmJ,MAAM3M,OAAOqG,eAAesG,EAAEC,EAAE,CAACtG,WAAW22B,EAAE32B,aAAmB,CAAC5E,SAAS,WAAW,OAAO6e,GAAGgmB,SAAS,SAAS55B,GAAG4T,EAAE,GAAG5T,GAAG65B,aAAa,WAAW75B,EAAE25B,cACxf,YAAY35B,EAAEC,MAAuD65B,CAAG95B,IAAI,SAAS+5B,EAAG/5B,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIC,EAAED,EAAE25B,cAAc,IAAI15B,EAAE,OAAM,EAAG,IAAIqwB,EAAErwB,EAAElL,WAAe6e,EAAE,GAAqD,OAAlD5T,IAAI4T,EAAE4lB,EAAGx5B,GAAGA,EAAEg6B,QAAQ,OAAO,QAAQh6B,EAAEvL,QAAOuL,EAAE4T,KAAa0c,IAAGrwB,EAAE25B,SAAS55B,IAAG,GAAO,SAASi6B,EAAGj6B,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqBi2B,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAOj2B,EAAEk6B,eAAel6B,EAAEm6B,KAAK,MAAMl6B,GAAG,OAAOD,EAAEm6B,MAC/Z,SAASC,EAAGp6B,EAAEC,GAAG,IAAIqwB,EAAErwB,EAAE+5B,QAAQ,OAAOhI,EAAE,GAAG/xB,EAAE,CAACo6B,oBAAe,EAAOC,kBAAa,EAAO7lC,WAAM,EAAOulC,QAAQ,MAAM1J,EAAEA,EAAEtwB,EAAEu6B,cAAcC,iBAAiB,SAASC,GAAGz6B,EAAEC,GAAG,IAAIqwB,EAAE,MAAMrwB,EAAEq6B,aAAa,GAAGr6B,EAAEq6B,aAAa1mB,EAAE,MAAM3T,EAAE+5B,QAAQ/5B,EAAE+5B,QAAQ/5B,EAAEo6B,eAAe/J,EAAEiJ,EAAG,MAAMt5B,EAAExL,MAAMwL,EAAExL,MAAM67B,GAAGtwB,EAAEu6B,cAAc,CAACC,eAAe5mB,EAAE8mB,aAAapK,EAAEqK,WAAW,aAAa16B,EAAE5F,MAAM,UAAU4F,EAAE5F,KAAK,MAAM4F,EAAE+5B,QAAQ,MAAM/5B,EAAExL,OAAO,SAASmmC,GAAG56B,EAAEC,GAAe,OAAZA,EAAEA,EAAE+5B,UAAiB/C,EAAGj3B,EAAE,UAAUC,GAAE,GAC3d,SAAS46B,GAAG76B,EAAEC,GAAG26B,GAAG56B,EAAEC,GAAG,IAAIqwB,EAAEiJ,EAAGt5B,EAAExL,OAAOmf,EAAE3T,EAAE5F,KAAK,GAAG,MAAMi2B,EAAK,WAAW1c,GAAM,IAAI0c,GAAG,KAAKtwB,EAAEvL,OAAOuL,EAAEvL,OAAO67B,KAAEtwB,EAAEvL,MAAM,GAAG67B,GAAOtwB,EAAEvL,QAAQ,GAAG67B,IAAItwB,EAAEvL,MAAM,GAAG67B,QAAQ,GAAG,WAAW1c,GAAG,UAAUA,EAA8B,YAA3B5T,EAAEo3B,gBAAgB,SAAgBn3B,EAAEnI,eAAe,SAASgjC,GAAG96B,EAAEC,EAAE5F,KAAKi2B,GAAGrwB,EAAEnI,eAAe,iBAAiBgjC,GAAG96B,EAAEC,EAAE5F,KAAKk/B,EAAGt5B,EAAEq6B,eAAe,MAAMr6B,EAAE+5B,SAAS,MAAM/5B,EAAEo6B,iBAAiBr6B,EAAEq6B,iBAAiBp6B,EAAEo6B,gBACnZ,SAASU,GAAG/6B,EAAEC,EAAEqwB,GAAG,GAAGrwB,EAAEnI,eAAe,UAAUmI,EAAEnI,eAAe,gBAAgB,CAAC,IAAI8b,EAAE3T,EAAE5F,KAAK,KAAK,WAAWuZ,GAAG,UAAUA,QAAG,IAAS3T,EAAExL,OAAO,OAAOwL,EAAExL,OAAO,OAAOwL,EAAE,GAAGD,EAAEu6B,cAAcG,aAAapK,GAAGrwB,IAAID,EAAEvL,QAAQuL,EAAEvL,MAAMwL,GAAGD,EAAEs6B,aAAar6B,EAAW,MAATqwB,EAAEtwB,EAAErK,QAAcqK,EAAErK,KAAK,IAAIqK,EAAEq6B,iBAAiBr6B,EAAEu6B,cAAcC,eAAe,KAAKlK,IAAItwB,EAAErK,KAAK26B,GACvV,SAASwK,GAAG96B,EAAEC,EAAEqwB,GAAM,WAAWrwB,GAAGg6B,EAAGj6B,EAAEg7B,iBAAiBh7B,IAAE,MAAMswB,EAAEtwB,EAAEs6B,aAAa,GAAGt6B,EAAEu6B,cAAcG,aAAa16B,EAAEs6B,eAAe,GAAGhK,IAAItwB,EAAEs6B,aAAa,GAAGhK,IAAwF,SAAS2K,GAAGj7B,EAAEC,GAA6D,OAA1DD,EAAEgyB,EAAE,CAACv4B,cAAS,GAAQwG,IAAMA,EAAlI,SAAYD,GAAG,IAAIC,EAAE,GAAuD,OAApD01B,EAAGrC,SAAS16B,QAAQoH,GAAE,SAASA,GAAG,MAAMA,IAAIC,GAAGD,MAAYC,EAAiDi7B,CAAGj7B,EAAExG,aAAUuG,EAAEvG,SAASwG,GAASD,EACvU,SAASm7B,GAAGn7B,EAAEC,EAAEqwB,EAAE1c,GAAe,GAAZ5T,EAAEA,EAAEqqB,QAAWpqB,EAAE,CAACA,EAAE,GAAG,IAAI,IAAIpD,EAAE,EAAEA,EAAEyzB,EAAE57B,OAAOmI,IAAIoD,EAAE,IAAIqwB,EAAEzzB,KAAI,EAAG,IAAIyzB,EAAE,EAAEA,EAAEtwB,EAAEtL,OAAO47B,IAAIzzB,EAAEoD,EAAEnI,eAAe,IAAIkI,EAAEswB,GAAG77B,OAAOuL,EAAEswB,GAAG8K,WAAWv+B,IAAImD,EAAEswB,GAAG8K,SAASv+B,GAAGA,GAAG+W,IAAI5T,EAAEswB,GAAG+K,iBAAgB,OAAQ,CAAmB,IAAlB/K,EAAE,GAAGiJ,EAAGjJ,GAAGrwB,EAAE,KAASpD,EAAE,EAAEA,EAAEmD,EAAEtL,OAAOmI,IAAI,CAAC,GAAGmD,EAAEnD,GAAGpI,QAAQ67B,EAAiD,OAA9CtwB,EAAEnD,GAAGu+B,UAAS,OAAGxnB,IAAI5T,EAAEnD,GAAGw+B,iBAAgB,IAAW,OAAOp7B,GAAGD,EAAEnD,GAAGy+B,WAAWr7B,EAAED,EAAEnD,IAAI,OAAOoD,IAAIA,EAAEm7B,UAAS,IACpY,SAASG,GAAGv7B,EAAEC,GAAG,GAAG,MAAMA,EAAEu7B,wBAAwB,MAAMrO,MAAMsF,EAAE,KAAK,OAAOT,EAAE,GAAG/xB,EAAE,CAACxL,WAAM,EAAO6lC,kBAAa,EAAO7gC,SAAS,GAAGuG,EAAEu6B,cAAcG,eAAe,SAASe,GAAGz7B,EAAEC,GAAG,IAAIqwB,EAAErwB,EAAExL,MAAM,GAAG,MAAM67B,EAAE,CAA+B,GAA9BA,EAAErwB,EAAExG,SAASwG,EAAEA,EAAEq6B,aAAgB,MAAMhK,EAAE,CAAC,GAAG,MAAMrwB,EAAE,MAAMktB,MAAMsF,EAAE,KAAK,GAAGh/B,MAAMD,QAAQ88B,GAAG,CAAC,KAAK,GAAGA,EAAE57B,QAAQ,MAAMy4B,MAAMsF,EAAE,KAAKnC,EAAEA,EAAE,GAAGrwB,EAAEqwB,EAAE,MAAMrwB,IAAIA,EAAE,IAAIqwB,EAAErwB,EAAED,EAAEu6B,cAAc,CAACG,aAAanB,EAAGjJ,IAC/Y,SAASoL,GAAG17B,EAAEC,GAAG,IAAIqwB,EAAEiJ,EAAGt5B,EAAExL,OAAOmf,EAAE2lB,EAAGt5B,EAAEq6B,cAAc,MAAMhK,KAAIA,EAAE,GAAGA,KAAMtwB,EAAEvL,QAAQuL,EAAEvL,MAAM67B,GAAG,MAAMrwB,EAAEq6B,cAAct6B,EAAEs6B,eAAehK,IAAItwB,EAAEs6B,aAAahK,IAAI,MAAM1c,IAAI5T,EAAEs6B,aAAa,GAAG1mB,GAAG,SAAS+nB,GAAG37B,GAAG,IAAIC,EAAED,EAAE47B,YAAY37B,IAAID,EAAEu6B,cAAcG,cAAc,KAAKz6B,GAAG,OAAOA,IAAID,EAAEvL,MAAMwL,GAAG,IAAI47B,GAAS,+BAATA,GAAwF,6BAC9X,SAASC,GAAG97B,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,gCAAgC,SAAS+7B,GAAG/7B,EAAEC,GAAG,OAAO,MAAMD,GAAG,iCAAiCA,EAAE87B,GAAG77B,GAAG,+BAA+BD,GAAG,kBAAkBC,EAAE,+BAA+BD,EAC3U,IAAIg8B,GAAeh8B,GAAZi8B,IAAYj8B,GAAsJ,SAASA,EAAEC,GAAG,GAAGD,EAAEk8B,eAAeL,IAAQ,cAAc77B,EAAEA,EAAEm8B,UAAUl8B,MAAM,CAA2F,KAA1F+7B,GAAGA,IAAI/F,SAASvJ,cAAc,QAAUyP,UAAU,QAAQl8B,EAAEm8B,UAAU7mC,WAAW,SAAa0K,EAAE+7B,GAAGK,WAAWr8B,EAAEq8B,YAAYr8B,EAAEs8B,YAAYt8B,EAAEq8B,YAAY,KAAKp8B,EAAEo8B,YAAYr8B,EAAEu8B,YAAYt8B,EAAEo8B,cAArZ,qBAAqBG,OAAOA,MAAMC,wBAAwB,SAASx8B,EAAEqwB,EAAE1c,EAAE/W,GAAG2/B,MAAMC,yBAAwB,WAAW,OAAOz8B,GAAEC,EAAEqwB,OAAUtwB,IACtK,SAAS0N,GAAG1N,EAAEC,GAAG,GAAGA,EAAE,CAAC,IAAIqwB,EAAEtwB,EAAEq8B,WAAW,GAAG/L,GAAGA,IAAItwB,EAAE08B,WAAW,IAAIpM,EAAEryB,SAAwB,YAAdqyB,EAAEqM,UAAU18B,GAAUD,EAAE47B,YAAY37B,EACrH,IAAI28B,GAAG,CAACC,yBAAwB,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGC,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGC,YAAW,EAAGC,WAAU,EAAGC,YAAW,EAAGC,SAAQ,EAAGC,OAAM,EAAGC,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAAGC,MAAK,EAAGC,aAAY,EAC1fC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAGC,aAAY,GAAIC,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASC,GAAGx/B,EAAEC,EAAEqwB,GAAG,OAAO,MAAMrwB,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAGqwB,GAAG,kBAAkBrwB,GAAG,IAAIA,GAAG28B,GAAG9kC,eAAekI,IAAI48B,GAAG58B,IAAI,GAAGC,GAAG64B,OAAO74B,EAAE,KAC9Z,SAASw/B,GAAGz/B,EAAEC,GAAa,IAAI,IAAIqwB,KAAlBtwB,EAAEA,EAAE0/B,MAAmBz/B,EAAE,GAAGA,EAAEnI,eAAew4B,GAAG,CAAC,IAAI1c,EAAE,IAAI0c,EAAEjI,QAAQ,MAAMxrB,EAAE2iC,GAAGlP,EAAErwB,EAAEqwB,GAAG1c,GAAG,UAAU0c,IAAIA,EAAE,YAAY1c,EAAE5T,EAAE2/B,YAAYrP,EAAEzzB,GAAGmD,EAAEswB,GAAGzzB,GADTxJ,OAAOyF,KAAK8jC,IAAIhkC,SAAQ,SAASoH,GAAGu/B,GAAG3mC,SAAQ,SAASqH,GAAGA,EAAEA,EAAED,EAAE4/B,OAAO,GAAG5I,cAAch3B,EAAE6/B,UAAU,GAAGjD,GAAG38B,GAAG28B,GAAG58B,SACrG,IAAI8/B,GAAG9N,EAAE,CAAC+N,UAAS,GAAI,CAACC,MAAK,EAAGhb,MAAK,EAAGib,IAAG,EAAGC,KAAI,EAAGC,OAAM,EAAGC,IAAG,EAAGC,KAAI,EAAGt4B,OAAM,EAAGu4B,QAAO,EAAGC,MAAK,EAAGC,MAAK,EAAGC,OAAM,EAAGxnC,QAAO,EAAGynC,OAAM,EAAGC,KAAI,IAClT,SAASC,GAAG5gC,EAAEC,GAAG,GAAGA,EAAE,CAAC,GAAG6/B,GAAG9/B,KAAK,MAAMC,EAAExG,UAAU,MAAMwG,EAAEu7B,yBAAyB,MAAMrO,MAAMsF,EAAE,IAAIzyB,IAAI,GAAG,MAAMC,EAAEu7B,wBAAwB,CAAC,GAAG,MAAMv7B,EAAExG,SAAS,MAAM0zB,MAAMsF,EAAE,KAAK,GAAK,kBAAkBxyB,EAAEu7B,2BAAyB,WAAWv7B,EAAEu7B,yBAAyB,MAAMrO,MAAMsF,EAAE,KAAM,GAAG,MAAMxyB,EAAEy/B,OAAO,kBAAkBz/B,EAAEy/B,MAAM,MAAMvS,MAAMsF,EAAE,MAC5V,SAASoO,GAAG7gC,EAAEC,GAAG,IAAI,IAAID,EAAEqoB,QAAQ,KAAK,MAAM,kBAAkBpoB,EAAE6gC,GAAG,OAAO9gC,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,GAAI,SAAS+gC,GAAG/gC,GAA6F,OAA1FA,EAAEA,EAAEhH,QAAQgH,EAAEghC,YAAY7+B,QAAS8+B,0BAA0BjhC,EAAEA,EAAEihC,yBAAgC,IAAIjhC,EAAE/B,SAAS+B,EAAEkhC,WAAWlhC,EAAE,IAAImhC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACxb,SAASC,GAAGthC,GAAG,GAAGA,EAAEuhC,GAAGvhC,GAAG,CAAC,GAAG,oBAAoBmhC,GAAG,MAAMhU,MAAMsF,EAAE,MAAM,IAAIxyB,EAAED,EAAEwhC,UAAUvhC,IAAIA,EAAEwhC,GAAGxhC,GAAGkhC,GAAGnhC,EAAEwhC,UAAUxhC,EAAE3F,KAAK4F,KAAK,SAASyhC,GAAG1hC,GAAGohC,GAAGC,GAAGA,GAAG7sC,KAAKwL,GAAGqhC,GAAG,CAACrhC,GAAGohC,GAAGphC,EAAE,SAAS2hC,KAAK,GAAGP,GAAG,CAAC,IAAIphC,EAAEohC,GAAGnhC,EAAEohC,GAAoB,GAAjBA,GAAGD,GAAG,KAAKE,GAAGthC,GAAMC,EAAE,IAAID,EAAE,EAAEA,EAAEC,EAAEvL,OAAOsL,IAAIshC,GAAGrhC,EAAED,KAAK,SAAS4hC,GAAG5hC,EAAEC,GAAG,OAAOD,EAAEC,GAAG,SAAS4hC,GAAG7hC,EAAEC,EAAEqwB,EAAE1c,EAAE/W,GAAG,OAAOmD,EAAEC,EAAEqwB,EAAE1c,EAAE/W,GAAG,SAASilC,MAAM,IAAIC,GAAGH,GAAGI,IAAG,EAAGC,IAAG,EAAG,SAASC,KAAQ,OAAOd,IAAI,OAAOC,KAAGS,KAAKH,MAE9Z,SAASQ,GAAGniC,EAAEC,GAAG,IAAIqwB,EAAEtwB,EAAEwhC,UAAU,GAAG,OAAOlR,EAAE,OAAO,KAAK,IAAI1c,EAAE6tB,GAAGnR,GAAG,GAAG,OAAO1c,EAAE,OAAO,KAAK0c,EAAE1c,EAAE3T,GAAGD,EAAE,OAAOC,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgB2T,GAAGA,EAAE0nB,YAAqB1nB,IAAI,YAAb5T,EAAEA,EAAE3F,OAAuB,UAAU2F,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAG4T,EAAE,MAAM5T,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAGswB,GAAG,oBACleA,EAAE,MAAMnD,MAAMsF,EAAE,IAAIxyB,SAASqwB,IAAI,OAAOA,EAAE,IAAI8R,IAAG,EAAG,GAAGpM,EAAG,IAAI,IAAIqM,GAAG,GAAGhvC,OAAOqG,eAAe2oC,GAAG,UAAU,CAACprC,IAAI,WAAWmrC,IAAG,KAAMjgC,OAAOmgC,iBAAiB,OAAOD,GAAGA,IAAIlgC,OAAOogC,oBAAoB,OAAOF,GAAGA,IAAI,MAAMriC,IAAGoiC,IAAG,EAAG,SAASI,GAAGxiC,EAAEC,EAAEqwB,EAAE1c,EAAE/W,EAAEwP,EAAE0lB,EAAED,EAAEne,GAAG,IAAI/Z,EAAEnG,MAAM6B,UAAUG,MAAMD,KAAK6D,UAAU,GAAG,IAAI4G,EAAEjE,MAAMs0B,EAAE12B,GAAG,MAAMvE,GAAGwB,KAAK4rC,QAAQptC,IAAI,IAAIqtC,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGC,GAAG,KAAKC,GAAG,CAACL,QAAQ,SAASziC,GAAG0iC,IAAG,EAAGC,GAAG3iC,IAAI,SAAS+iC,GAAG/iC,EAAEC,EAAEqwB,EAAE1c,EAAE/W,EAAEwP,EAAE0lB,EAAED,EAAEne,GAAG+uB,IAAG,EAAGC,GAAG,KAAKH,GAAGxmC,MAAM8mC,GAAGzpC,WACvV,SAAS2pC,GAAGhjC,GAAG,IAAIC,EAAED,EAAEswB,EAAEtwB,EAAE,GAAGA,EAAEijC,UAAU,KAAKhjC,EAAEijC,QAAQjjC,EAAEA,EAAEijC,WAAW,CAACljC,EAAEC,EAAE,GAAO,KAAa,MAAjBA,EAAED,GAASmjC,SAAc7S,EAAErwB,EAAEijC,QAAQljC,EAAEC,EAAEijC,aAAaljC,GAAG,OAAO,IAAIC,EAAExD,IAAI6zB,EAAE,KAAK,SAAS8S,GAAGpjC,GAAG,GAAG,KAAKA,EAAEvD,IAAI,CAAC,IAAIwD,EAAED,EAAEqjC,cAAsE,GAAxD,OAAOpjC,IAAkB,QAAdD,EAAEA,EAAEijC,aAAqBhjC,EAAED,EAAEqjC,gBAAmB,OAAOpjC,EAAE,OAAOA,EAAEqjC,WAAW,OAAO,KAAK,SAASC,GAAGvjC,GAAG,GAAGgjC,GAAGhjC,KAAKA,EAAE,MAAMmtB,MAAMsF,EAAE,MAEpS,SAAS+Q,GAAGxjC,GAAW,KAARA,EADtN,SAAYA,GAAG,IAAIC,EAAED,EAAEijC,UAAU,IAAIhjC,EAAE,CAAS,GAAG,QAAXA,EAAE+iC,GAAGhjC,IAAe,MAAMmtB,MAAMsF,EAAE,MAAM,OAAOxyB,IAAID,EAAE,KAAKA,EAAE,IAAI,IAAIswB,EAAEtwB,EAAE4T,EAAE3T,IAAI,CAAC,IAAIpD,EAAEyzB,EAAE4S,OAAO,GAAG,OAAOrmC,EAAE,MAAM,IAAIwP,EAAExP,EAAEomC,UAAU,GAAG,OAAO52B,EAAE,CAAY,GAAG,QAAduH,EAAE/W,EAAEqmC,QAAmB,CAAC5S,EAAE1c,EAAE,SAAS,MAAM,GAAG/W,EAAE4mC,QAAQp3B,EAAEo3B,MAAM,CAAC,IAAIp3B,EAAExP,EAAE4mC,MAAMp3B,GAAG,CAAC,GAAGA,IAAIikB,EAAE,OAAOiT,GAAG1mC,GAAGmD,EAAE,GAAGqM,IAAIuH,EAAE,OAAO2vB,GAAG1mC,GAAGoD,EAAEoM,EAAEA,EAAEq3B,QAAQ,MAAMvW,MAAMsF,EAAE,MAAO,GAAGnC,EAAE4S,SAAStvB,EAAEsvB,OAAO5S,EAAEzzB,EAAE+W,EAAEvH,MAAM,CAAC,IAAI,IAAI0lB,GAAE,EAAGD,EAAEj1B,EAAE4mC,MAAM3R,GAAG,CAAC,GAAGA,IAAIxB,EAAE,CAACyB,GAAE,EAAGzB,EAAEzzB,EAAE+W,EAAEvH,EAAE,MAAM,GAAGylB,IAAIle,EAAE,CAACme,GAAE,EAAGne,EAAE/W,EAAEyzB,EAAEjkB,EAAE,MAAMylB,EAAEA,EAAE4R,QAAQ,IAAI3R,EAAE,CAAC,IAAID,EAAEzlB,EAAEo3B,MAAM3R,GAAG,CAAC,GAAGA,IAC5fxB,EAAE,CAACyB,GAAE,EAAGzB,EAAEjkB,EAAEuH,EAAE/W,EAAE,MAAM,GAAGi1B,IAAIle,EAAE,CAACme,GAAE,EAAGne,EAAEvH,EAAEikB,EAAEzzB,EAAE,MAAMi1B,EAAEA,EAAE4R,QAAQ,IAAI3R,EAAE,MAAM5E,MAAMsF,EAAE,OAAQ,GAAGnC,EAAE2S,YAAYrvB,EAAE,MAAMuZ,MAAMsF,EAAE,MAAO,GAAG,IAAInC,EAAE7zB,IAAI,MAAM0wB,MAAMsF,EAAE,MAAM,OAAOnC,EAAEkR,UAAU57B,UAAU0qB,EAAEtwB,EAAEC,EAAmB0jC,CAAG3jC,IAAS,OAAO,KAAK,IAAI,IAAIC,EAAED,IAAI,CAAC,GAAG,IAAIC,EAAExD,KAAK,IAAIwD,EAAExD,IAAI,OAAOwD,EAAE,GAAGA,EAAEwjC,MAAMxjC,EAAEwjC,MAAMP,OAAOjjC,EAAEA,EAAEA,EAAEwjC,UAAU,CAAC,GAAGxjC,IAAID,EAAE,MAAM,MAAMC,EAAEyjC,SAAS,CAAC,IAAIzjC,EAAEijC,QAAQjjC,EAAEijC,SAASljC,EAAE,OAAO,KAAKC,EAAEA,EAAEijC,OAAOjjC,EAAEyjC,QAAQR,OAAOjjC,EAAEijC,OAAOjjC,EAAEA,EAAEyjC,SAAS,OAAO,KAC5c,SAASE,GAAG5jC,EAAEC,GAAG,IAAI,IAAIqwB,EAAEtwB,EAAEijC,UAAU,OAAOhjC,GAAG,CAAC,GAAGA,IAAID,GAAGC,IAAIqwB,EAAE,OAAM,EAAGrwB,EAAEA,EAAEijC,OAAO,OAAM,EAAG,IAAIW,GAAGC,GAAGC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAIlqC,IAAImqC,GAAG,IAAInqC,IAAIoqC,GAAG,GAAGC,GAAG,6PAA6P9rC,MAAM,KACrb,SAAS+rC,GAAG1kC,EAAEC,EAAEqwB,EAAE1c,EAAE/W,GAAG,MAAM,CAAC8nC,UAAU3kC,EAAE4kC,aAAa3kC,EAAE4kC,iBAAmB,GAAFvU,EAAKwU,YAAYjoC,EAAEkoC,iBAAiB,CAACnxB,IAAI,SAASoxB,GAAGhlC,EAAEC,GAAG,OAAOD,GAAG,IAAK,UAAU,IAAK,WAAWmkC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGW,OAAOhlC,EAAEilC,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBX,GAAGU,OAAOhlC,EAAEilC,YAC3Z,SAASC,GAAGnlC,EAAEC,EAAEqwB,EAAE1c,EAAE/W,EAAEwP,GAAG,OAAG,OAAOrM,GAAGA,EAAE8kC,cAAcz4B,GAASrM,EAAE0kC,GAAGzkC,EAAEqwB,EAAE1c,EAAE/W,EAAEwP,GAAG,OAAOpM,IAAY,QAARA,EAAEshC,GAAGthC,KAAa6jC,GAAG7jC,IAAID,IAAEA,EAAE6kC,kBAAkBjxB,EAAE3T,EAAED,EAAE+kC,iBAAiB,OAAOloC,IAAI,IAAIoD,EAAEooB,QAAQxrB,IAAIoD,EAAEzL,KAAKqI,GAAUmD,GAE9M,SAASolC,GAAGplC,GAAG,IAAIC,EAAEolC,GAAGrlC,EAAEhH,QAAQ,GAAG,OAAOiH,EAAE,CAAC,IAAIqwB,EAAE0S,GAAG/iC,GAAG,GAAG,OAAOqwB,EAAE,GAAW,MAARrwB,EAAEqwB,EAAE7zB,MAAY,GAAW,QAARwD,EAAEmjC,GAAG9S,IAAmH,OAAtGtwB,EAAE2kC,UAAU1kC,OAAE+jC,GAAGhkC,EAAEslC,cAAa,WAAWvV,EAAEwV,yBAAyBvlC,EAAEwlC,UAAS,WAAWzB,GAAGzT,cAAoB,GAAG,IAAIrwB,GAAGqwB,EAAEkR,UAAUiE,QAA8D,YAArDzlC,EAAE2kC,UAAU,IAAIrU,EAAE7zB,IAAI6zB,EAAEkR,UAAUkE,cAAc,MAAa1lC,EAAE2kC,UAAU,KAC1U,SAASgB,GAAG3lC,GAAG,GAAG,OAAOA,EAAE2kC,UAAU,OAAM,EAAG,IAAI,IAAI1kC,EAAED,EAAE+kC,iBAAiB,EAAE9kC,EAAEvL,QAAQ,CAAC,IAAI47B,EAAEsV,GAAG5lC,EAAE4kC,aAAa5kC,EAAE6kC,iBAAiB5kC,EAAE,GAAGD,EAAE8kC,aAAa,GAAG,OAAOxU,EAAE,OAAe,QAARrwB,EAAEshC,GAAGjR,KAAawT,GAAG7jC,GAAGD,EAAE2kC,UAAUrU,GAAE,EAAGrwB,EAAEwG,QAAQ,OAAM,EAAG,SAASo/B,GAAG7lC,EAAEC,EAAEqwB,GAAGqV,GAAG3lC,IAAIswB,EAAE2U,OAAOhlC,GACzQ,SAAS6lC,KAAK,IAAI7B,IAAG,EAAG,EAAEC,GAAGxvC,QAAQ,CAAC,IAAIsL,EAAEkkC,GAAG,GAAG,GAAG,OAAOlkC,EAAE2kC,UAAU,CAAmB,QAAlB3kC,EAAEuhC,GAAGvhC,EAAE2kC,aAAqBd,GAAG7jC,GAAG,MAAM,IAAI,IAAIC,EAAED,EAAE+kC,iBAAiB,EAAE9kC,EAAEvL,QAAQ,CAAC,IAAI47B,EAAEsV,GAAG5lC,EAAE4kC,aAAa5kC,EAAE6kC,iBAAiB5kC,EAAE,GAAGD,EAAE8kC,aAAa,GAAG,OAAOxU,EAAE,CAACtwB,EAAE2kC,UAAUrU,EAAE,MAAMrwB,EAAEwG,QAAQ,OAAOzG,EAAE2kC,WAAWT,GAAGz9B,QAAQ,OAAO09B,IAAIwB,GAAGxB,MAAMA,GAAG,MAAM,OAAOC,IAAIuB,GAAGvB,MAAMA,GAAG,MAAM,OAAOC,IAAIsB,GAAGtB,MAAMA,GAAG,MAAMC,GAAG1rC,QAAQitC,IAAItB,GAAG3rC,QAAQitC,IACrZ,SAASE,GAAG/lC,EAAEC,GAAGD,EAAE2kC,YAAY1kC,IAAID,EAAE2kC,UAAU,KAAKV,KAAKA,IAAG,EAAGlU,EAAEiW,0BAA0BjW,EAAEkW,wBAAwBH,MACrH,SAASI,GAAGlmC,GAAG,SAASC,EAAEA,GAAG,OAAO8lC,GAAG9lC,EAAED,GAAG,GAAG,EAAEkkC,GAAGxvC,OAAO,CAACqxC,GAAG7B,GAAG,GAAGlkC,GAAG,IAAI,IAAIswB,EAAE,EAAEA,EAAE4T,GAAGxvC,OAAO47B,IAAI,CAAC,IAAI1c,EAAEswB,GAAG5T,GAAG1c,EAAE+wB,YAAY3kC,IAAI4T,EAAE+wB,UAAU,OAA+F,IAAxF,OAAOR,IAAI4B,GAAG5B,GAAGnkC,GAAG,OAAOokC,IAAI2B,GAAG3B,GAAGpkC,GAAG,OAAOqkC,IAAI0B,GAAG1B,GAAGrkC,GAAGskC,GAAG1rC,QAAQqH,GAAGskC,GAAG3rC,QAAQqH,GAAOqwB,EAAE,EAAEA,EAAEkU,GAAG9vC,OAAO47B,KAAI1c,EAAE4wB,GAAGlU,IAAKqU,YAAY3kC,IAAI4T,EAAE+wB,UAAU,MAAM,KAAK,EAAEH,GAAG9vC,QAAiB,QAAR47B,EAAEkU,GAAG,IAAYG,WAAYS,GAAG9U,GAAG,OAAOA,EAAEqU,WAAWH,GAAG/9B,QAC/X,SAAS0/B,GAAGnmC,EAAEC,GAAG,IAAIqwB,EAAE,GAAkF,OAA/EA,EAAEtwB,EAAE62B,eAAe52B,EAAE42B,cAAcvG,EAAE,SAAStwB,GAAG,SAASC,EAAEqwB,EAAE,MAAMtwB,GAAG,MAAMC,EAASqwB,EAAE,IAAI8V,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,GAAGC,GAAG,GACnF,SAASC,GAAG3mC,GAAG,GAAGymC,GAAGzmC,GAAG,OAAOymC,GAAGzmC,GAAG,IAAIomC,GAAGpmC,GAAG,OAAOA,EAAE,IAAYswB,EAARrwB,EAAEmmC,GAAGpmC,GAAK,IAAIswB,KAAKrwB,EAAE,GAAGA,EAAEnI,eAAew4B,IAAIA,KAAKoW,GAAG,OAAOD,GAAGzmC,GAAGC,EAAEqwB,GAAG,OAAOtwB,EAA9Xg2B,IAAK0Q,GAAGzQ,SAASvJ,cAAc,OAAOgT,MAAM,mBAAmBv9B,gBAAgBikC,GAAGC,aAAaO,iBAAiBR,GAAGE,mBAAmBM,iBAAiBR,GAAGG,eAAeK,WAAW,oBAAoBzkC,eAAeikC,GAAGI,cAAcrT,YACxO,IAAI0T,GAAGF,GAAG,gBAAgBG,GAAGH,GAAG,sBAAsBI,GAAGJ,GAAG,kBAAkBK,GAAGL,GAAG,iBAAiBM,GAAG,IAAI7sC,IAAI8sC,GAAG,IAAI9sC,IAAI+sC,GAAG,CAAC,QAAQ,QAAQN,GAAG,eAAeC,GAAG,qBAAqBC,GAAG,iBAAiB,UAAU,UAAU,iBAAiB,iBAAiB,iBAAiB,iBAAiB,UAAU,UAAU,YAAY,YAAY,QAAQ,QAAQ,QAAQ,QAAQ,oBAAoB,oBAAoB,OAAO,OAAO,aAAa,aAAa,iBAAiB,iBAAiB,YAAY,YAC/e,qBAAqB,qBAAqB,UAAU,UAAU,WAAW,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,aAAa,aAAaC,GAAG,gBAAgB,UAAU,WAAW,SAASI,GAAGpnC,EAAEC,GAAG,IAAI,IAAIqwB,EAAE,EAAEA,EAAEtwB,EAAEtL,OAAO47B,GAAG,EAAE,CAAC,IAAI1c,EAAE5T,EAAEswB,GAAGzzB,EAAEmD,EAAEswB,EAAE,GAAGzzB,EAAE,MAAMA,EAAE,GAAGm6B,cAAcn6B,EAAEpH,MAAM,IAAIyxC,GAAGlwC,IAAI4c,EAAE3T,GAAGgnC,GAAGjwC,IAAI4c,EAAE/W,GAAGi5B,EAAGj5B,EAAE,CAAC+W,MAA2ByzB,EAAftX,EAAEuX,gBAAkB,IAAIl7B,GAAE,EAC/X,SAASm7B,GAAGvnC,GAAG,GAAG,KAAK,EAAEA,GAAG,OAAOoM,GAAE,GAAG,EAAE,GAAG,KAAK,EAAEpM,GAAG,OAAOoM,GAAE,GAAG,EAAE,GAAG,KAAK,EAAEpM,GAAG,OAAOoM,GAAE,GAAG,EAAE,IAAInM,EAAE,GAAGD,EAAE,OAAG,IAAIC,GAASmM,GAAE,GAAGnM,GAAK,KAAO,GAAFD,IAAaoM,GAAE,GAAG,IAAc,KAAXnM,EAAE,IAAID,IAAkBoM,GAAE,GAAGnM,GAAK,KAAO,IAAFD,IAAcoM,GAAE,EAAE,KAAgB,KAAZnM,EAAE,KAAKD,IAAkBoM,GAAE,EAAEnM,GAAK,KAAO,KAAFD,IAAeoM,GAAE,EAAE,MAAoB,KAAfnM,EAAE,QAAQD,IAAkBoM,GAAE,EAAEnM,GAAkB,KAAhBA,EAAE,SAASD,IAAkBoM,GAAE,EAAEnM,GAAO,SAAFD,GAAkBoM,GAAE,EAAE,UAAY,KAAO,UAAFpM,IAAoBoM,GAAE,EAAE,WAA2B,KAAjBnM,EAAE,UAAUD,IAAkBoM,GAAE,EAAEnM,GAAK,KAAK,WAAWD,IAAUoM,GAAE,EAAE,aACjfA,GAAE,EAASpM,GACX,SAASwnC,GAAGxnC,EAAEC,GAAG,IAAIqwB,EAAEtwB,EAAEynC,aAAa,GAAG,IAAInX,EAAE,OAAOlkB,GAAE,EAAE,IAAIwH,EAAE,EAAE/W,EAAE,EAAEwP,EAAErM,EAAE0nC,aAAa3V,EAAE/xB,EAAE2nC,eAAe7V,EAAE9xB,EAAE4nC,YAAY,GAAG,IAAIv7B,EAAEuH,EAAEvH,EAAExP,EAAEuP,GAAE,QAAQ,GAAiB,KAAdC,EAAI,UAAFikB,GAAkB,CAAC,IAAI3c,EAAEtH,GAAG0lB,EAAE,IAAIpe,GAAGC,EAAE2zB,GAAG5zB,GAAG9W,EAAEuP,IAAS,KAAL0lB,GAAGzlB,KAAUuH,EAAE2zB,GAAGzV,GAAGj1B,EAAEuP,SAAgB,KAAPC,EAAEikB,GAAGyB,IAASne,EAAE2zB,GAAGl7B,GAAGxP,EAAEuP,IAAG,IAAI0lB,IAAIle,EAAE2zB,GAAGzV,GAAGj1B,EAAEuP,IAAG,GAAG,IAAIwH,EAAE,OAAO,EAAqC,GAAxBA,EAAE0c,IAAI,GAAjB1c,EAAE,GAAGi0B,GAAGj0B,IAAa,EAAE,GAAGA,IAAI,GAAG,EAAK,IAAI3T,GAAGA,IAAI2T,GAAG,KAAK3T,EAAE8xB,GAAG,CAAO,GAANwV,GAAGtnC,GAAMpD,GAAGuP,GAAE,OAAOnM,EAAEmM,GAAEvP,EAAqB,GAAG,KAAtBoD,EAAED,EAAE8nC,gBAAwB,IAAI9nC,EAAEA,EAAE+nC,cAAc9nC,GAAG2T,EAAE,EAAE3T,GAAcpD,EAAE,IAAbyzB,EAAE,GAAGuX,GAAG5nC,IAAU2T,GAAG5T,EAAEswB,GAAGrwB,IAAIpD,EAAE,OAAO+W,EAC1e,SAASo0B,GAAGhoC,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAEynC,cAAsCznC,EAAI,WAAFA,EAAa,WAAW,EAAE,SAASioC,GAAGjoC,EAAEC,GAAG,OAAOD,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAmB,KAAZA,EAAEkoC,GAAG,IAAIjoC,IAASgoC,GAAG,GAAGhoC,GAAGD,EAAE,KAAK,GAAG,OAAoB,KAAbA,EAAEkoC,GAAG,KAAKjoC,IAASgoC,GAAG,EAAEhoC,GAAGD,EAAE,KAAK,EAAE,OAAqB,KAAdA,EAAEkoC,GAAG,MAAMjoC,MAA4B,KAAjBD,EAAEkoC,GAAG,SAASjoC,MAAWD,EAAE,MAAMA,EAAE,KAAK,EAAE,OAA0B,KAAnBC,EAAEioC,GAAG,WAAWjoC,MAAWA,EAAE,WAAWA,EAAE,MAAMktB,MAAMsF,EAAE,IAAIzyB,IAAK,SAASkoC,GAAGloC,GAAG,OAAOA,GAAGA,EAAE,SAASmoC,GAAGnoC,GAAG,IAAI,IAAIC,EAAE,GAAGqwB,EAAE,EAAE,GAAGA,EAAEA,IAAIrwB,EAAEzL,KAAKwL,GAAG,OAAOC,EACrd,SAASmoC,GAAGpoC,EAAEC,EAAEqwB,GAAGtwB,EAAEynC,cAAcxnC,EAAE,IAAI2T,EAAE3T,EAAE,EAAED,EAAE2nC,gBAAgB/zB,EAAE5T,EAAE4nC,aAAah0B,GAAE5T,EAAEA,EAAEqoC,YAAWpoC,EAAE,GAAG4nC,GAAG5nC,IAAQqwB,EAAE,IAAIuX,GAAG/6B,KAAKw7B,MAAMx7B,KAAKw7B,MAAiC,SAAYtoC,GAAG,OAAO,IAAIA,EAAE,GAAG,IAAIuoC,GAAGvoC,GAAGwoC,GAAG,GAAG,GAAvED,GAAGz7B,KAAK27B,IAAID,GAAG17B,KAAK47B,IAAqD,IAAIC,GAAG5Y,EAAE6Y,8BAA8BC,GAAG9Y,EAAEwV,yBAAyBuD,IAAG,EAAG,SAASC,GAAG/oC,EAAEC,EAAEqwB,EAAE1c,GAAGouB,IAAIF,KAAK,IAAIjlC,EAAEmsC,GAAG38B,EAAE21B,GAAGA,IAAG,EAAG,IAAIH,GAAGhlC,EAAEmD,EAAEC,EAAEqwB,EAAE1c,GAAf,SAA2BouB,GAAG31B,IAAI61B,MAAM,SAASzV,GAAGzsB,EAAEC,EAAEqwB,EAAE1c,GAAGi1B,GAAGF,GAAGK,GAAG1U,KAAK,KAAKt0B,EAAEC,EAAEqwB,EAAE1c,IACjb,SAASo1B,GAAGhpC,EAAEC,EAAEqwB,EAAE1c,GAAU,IAAI/W,EAAX,GAAGisC,GAAU,IAAIjsC,EAAE,KAAO,EAAFoD,KAAO,EAAEikC,GAAGxvC,SAAS,EAAE+vC,GAAGpc,QAAQroB,GAAGA,EAAE0kC,GAAG,KAAK1kC,EAAEC,EAAEqwB,EAAE1c,GAAGswB,GAAG1vC,KAAKwL,OAAO,CAAC,IAAIqM,EAAEu5B,GAAG5lC,EAAEC,EAAEqwB,EAAE1c,GAAG,GAAG,OAAOvH,EAAExP,GAAGmoC,GAAGhlC,EAAE4T,OAAO,CAAC,GAAG/W,EAAE,CAAC,IAAI,EAAE4nC,GAAGpc,QAAQroB,GAA+B,OAA3BA,EAAE0kC,GAAGr4B,EAAErM,EAAEC,EAAEqwB,EAAE1c,QAAGswB,GAAG1vC,KAAKwL,GAAU,GAfhO,SAAYA,EAAEC,EAAEqwB,EAAE1c,EAAE/W,GAAG,OAAOoD,GAAG,IAAK,UAAU,OAAOkkC,GAAGgB,GAAGhB,GAAGnkC,EAAEC,EAAEqwB,EAAE1c,EAAE/W,IAAG,EAAG,IAAK,YAAY,OAAOunC,GAAGe,GAAGf,GAAGpkC,EAAEC,EAAEqwB,EAAE1c,EAAE/W,IAAG,EAAG,IAAK,YAAY,OAAOwnC,GAAGc,GAAGd,GAAGrkC,EAAEC,EAAEqwB,EAAE1c,EAAE/W,IAAG,EAAG,IAAK,cAAc,IAAIwP,EAAExP,EAAEqoC,UAAkD,OAAxCZ,GAAGttC,IAAIqV,EAAE84B,GAAGb,GAAGrtC,IAAIoV,IAAI,KAAKrM,EAAEC,EAAEqwB,EAAE1c,EAAE/W,KAAU,EAAG,IAAK,oBAAoB,OAAOwP,EAAExP,EAAEqoC,UAAUX,GAAGvtC,IAAIqV,EAAE84B,GAAGZ,GAAGttC,IAAIoV,IAAI,KAAKrM,EAAEC,EAAEqwB,EAAE1c,EAAE/W,KAAI,EAAG,OAAM,EAe9HosC,CAAG58B,EAAErM,EAAEC,EAAEqwB,EAAE1c,GAAG,OAAOoxB,GAAGhlC,EAAE4T,GAAGs1B,GAAGlpC,EAAEC,EAAE2T,EAAE,KAAK0c,KAC9Q,SAASsV,GAAG5lC,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAEkkC,GAAGntB,GAAW,GAAG,QAAX/W,EAAEwoC,GAAGxoC,IAAe,CAAC,IAAIwP,EAAE22B,GAAGnmC,GAAG,GAAG,OAAOwP,EAAExP,EAAE,SAAS,CAAC,IAAIk1B,EAAE1lB,EAAE5P,IAAI,GAAG,KAAKs1B,EAAE,CAAS,GAAG,QAAXl1B,EAAEumC,GAAG/2B,IAAe,OAAOxP,EAAEA,EAAE,UAAU,GAAG,IAAIk1B,EAAE,CAAC,GAAG1lB,EAAEm1B,UAAUiE,QAAQ,OAAO,IAAIp5B,EAAE5P,IAAI4P,EAAEm1B,UAAUkE,cAAc,KAAK7oC,EAAE,UAAUwP,IAAIxP,IAAIA,EAAE,OAAqB,OAAdqsC,GAAGlpC,EAAEC,EAAE2T,EAAE/W,EAAEyzB,GAAU,KAAK,IAAI6Y,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACzT,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAIrpC,EAAkB4T,EAAhB3T,EAAEmpC,GAAG9Y,EAAErwB,EAAEvL,OAASmI,EAAE,UAAUssC,GAAGA,GAAG10C,MAAM00C,GAAGvN,YAAYvvB,EAAExP,EAAEnI,OAAO,IAAIsL,EAAE,EAAEA,EAAEswB,GAAGrwB,EAAED,KAAKnD,EAAEmD,GAAGA,KAAK,IAAI+xB,EAAEzB,EAAEtwB,EAAE,IAAI4T,EAAE,EAAEA,GAAGme,GAAG9xB,EAAEqwB,EAAE1c,KAAK/W,EAAEwP,EAAEuH,GAAGA,KAAK,OAAOy1B,GAAGxsC,EAAEpH,MAAMuK,EAAE,EAAE4T,EAAE,EAAEA,OAAE,GAAQ,SAAS21B,GAAGvpC,GAAG,IAAIC,EAAED,EAAEwpC,QAA+E,MAAvE,aAAaxpC,EAAgB,KAAbA,EAAEA,EAAEypC,WAAgB,KAAKxpC,IAAID,EAAE,IAAKA,EAAEC,EAAE,KAAKD,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,EAAE,SAAS0pC,KAAK,OAAM,EAAG,SAASC,KAAK,OAAM,EACjY,SAASC,GAAG5pC,GAAG,SAASC,EAAEA,EAAE2T,EAAE/W,EAAEwP,EAAE0lB,GAA6G,IAAI,IAAIzB,KAAlHz5B,KAAKgzC,WAAW5pC,EAAEpJ,KAAKizC,YAAYjtC,EAAEhG,KAAKwD,KAAKuZ,EAAE/c,KAAKiuC,YAAYz4B,EAAExV,KAAKmC,OAAO+4B,EAAEl7B,KAAKkzC,cAAc,KAAkB/pC,EAAEA,EAAElI,eAAew4B,KAAKrwB,EAAED,EAAEswB,GAAGz5B,KAAKy5B,GAAGrwB,EAAEA,EAAEoM,GAAGA,EAAEikB,IAAgI,OAA5Hz5B,KAAKmzC,oBAAoB,MAAM39B,EAAE49B,iBAAiB59B,EAAE49B,kBAAiB,IAAK59B,EAAE69B,aAAaR,GAAGC,GAAG9yC,KAAKszC,qBAAqBR,GAAU9yC,KAC1E,OAD+Em7B,EAAE/xB,EAAE3K,UAAU,CAAC80C,eAAe,WAAWvzC,KAAKozC,kBAAiB,EAAG,IAAIjqC,EAAEnJ,KAAKiuC,YAAY9kC,IAAIA,EAAEoqC,eAAepqC,EAAEoqC,iBAAiB,mBAAmBpqC,EAAEkqC,cAC7elqC,EAAEkqC,aAAY,GAAIrzC,KAAKmzC,mBAAmBN,KAAKW,gBAAgB,WAAW,IAAIrqC,EAAEnJ,KAAKiuC,YAAY9kC,IAAIA,EAAEqqC,gBAAgBrqC,EAAEqqC,kBAAkB,mBAAmBrqC,EAAEsqC,eAAetqC,EAAEsqC,cAAa,GAAIzzC,KAAKszC,qBAAqBT,KAAKa,QAAQ,aAAaC,aAAad,KAAYzpC,EAChR,IAAoLwqC,GAAGC,GAAGC,GAAtL39B,GAAG,CAAC49B,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,UAAU,SAAS/qC,GAAG,OAAOA,EAAE+qC,WAAW/lC,KAAKgmC,OAAOf,iBAAiB,EAAEgB,UAAU,GAAGC,GAAGtB,GAAG58B,IAAIm+B,GAAGnZ,EAAE,GAAGhlB,GAAG,CAACo+B,KAAK,EAAEC,OAAO,IAAIC,GAAG1B,GAAGuB,IAAaI,GAAGvZ,EAAE,GAAGmZ,GAAG,CAACK,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,iBAAiBC,GAAGC,OAAO,EAAEC,QAAQ,EAAEC,cAAc,SAAStsC,GAAG,YAAO,IAASA,EAAEssC,cAActsC,EAAEusC,cAAcvsC,EAAEghC,WAAWhhC,EAAEwsC,UAAUxsC,EAAEusC,YAAYvsC,EAAEssC,eAAeG,UAAU,SAASzsC,GAAG,MAAG,cAC3eA,EAASA,EAAEysC,WAAUzsC,IAAI2qC,KAAKA,IAAI,cAAc3qC,EAAE3F,MAAMowC,GAAGzqC,EAAEwrC,QAAQb,GAAGa,QAAQd,GAAG1qC,EAAEyrC,QAAQd,GAAGc,SAASf,GAAGD,GAAG,EAAEE,GAAG3qC,GAAUyqC,KAAIiC,UAAU,SAAS1sC,GAAG,MAAM,cAAcA,EAAEA,EAAE0sC,UAAUhC,MAAMiC,GAAG/C,GAAG2B,IAAiCqB,GAAGhD,GAA7B5X,EAAE,GAAGuZ,GAAG,CAACsB,aAAa,KAA4CC,GAAGlD,GAA9B5X,EAAE,GAAGmZ,GAAG,CAACmB,cAAc,KAA0ES,GAAGnD,GAA5D5X,EAAE,GAAGhlB,GAAG,CAACggC,cAAc,EAAEC,YAAY,EAAEC,cAAc,KAAsHC,GAAGvD,GAAxG5X,EAAE,GAAGhlB,GAAG,CAACogC,cAAc,SAASptC,GAAG,MAAM,kBAAkBA,EAAEA,EAAEotC,cAAcjrC,OAAOirC,kBAAgDC,GAAGzD,GAArB5X,EAAE,GAAGhlB,GAAG,CAACvV,KAAK,KAAc61C,GAAG,CAACC,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKC,KAAK,cAAcC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAGzuC,GAAG,IAAIC,EAAEpJ,KAAKiuC,YAAY,OAAO7kC,EAAEisC,iBAAiBjsC,EAAEisC,iBAAiBlsC,MAAIA,EAAEouC,GAAGpuC,OAAMC,EAAED,GAAM,SAASmsC,KAAK,OAAOsC,GAC9R,IACiEC,GAAG9E,GAD7D5X,EAAE,GAAGmZ,GAAG,CAACl2C,IAAI,SAAS+K,GAAG,GAAGA,EAAE/K,IAAI,CAAC,IAAIgL,EAAEqtC,GAAGttC,EAAE/K,MAAM+K,EAAE/K,IAAI,GAAG,iBAAiBgL,EAAE,OAAOA,EAAE,MAAM,aAAaD,EAAE3F,KAAc,MAAR2F,EAAEupC,GAAGvpC,IAAU,QAAQ3H,OAAOG,aAAawH,GAAI,YAAYA,EAAE3F,MAAM,UAAU2F,EAAE3F,KAAK8zC,GAAGnuC,EAAEwpC,UAAU,eAAe,IAAImF,KAAK,EAAEC,SAAS,EAAE9C,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAE4C,OAAO,EAAEC,OAAO,EAAE5C,iBAAiBC,GAAG1C,SAAS,SAASzpC,GAAG,MAAM,aAAaA,EAAE3F,KAAKkvC,GAAGvpC,GAAG,GAAGwpC,QAAQ,SAASxpC,GAAG,MAAM,YAAYA,EAAE3F,MAAM,UAAU2F,EAAE3F,KAAK2F,EAAEwpC,QAAQ,GAAGuF,MAAM,SAAS/uC,GAAG,MAAM,aAC7eA,EAAE3F,KAAKkvC,GAAGvpC,GAAG,YAAYA,EAAE3F,MAAM,UAAU2F,EAAE3F,KAAK2F,EAAEwpC,QAAQ,MAA4IwF,GAAGpF,GAA7H5X,EAAE,GAAGuZ,GAAG,CAACrG,UAAU,EAAEza,MAAM,EAAED,OAAO,EAAEykB,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAEC,UAAU,KAAmIC,GAAG5F,GAArH5X,EAAE,GAAGmZ,GAAG,CAACsE,QAAQ,EAAEC,cAAc,EAAEC,eAAe,EAAE3D,OAAO,EAAEC,QAAQ,EAAEH,QAAQ,EAAEC,SAAS,EAAEG,iBAAiBC,MAA0EyD,GAAGhG,GAA3D5X,EAAE,GAAGhlB,GAAG,CAAC0pB,aAAa,EAAEuW,YAAY,EAAEC,cAAc,KAC/P2C,GAAGjG,GAD6Q5X,EAAE,GAAGuZ,GAAG,CAACuE,OAAO,SAAS9vC,GAAG,MAAM,WAAWA,EAAEA,EAAE8vC,OAAO,gBAAgB9vC,GAAGA,EAAE+vC,YAAY,GAClfC,OAAO,SAAShwC,GAAG,MAAM,WAAWA,EAAEA,EAAEgwC,OAAO,gBAAgBhwC,GAAGA,EAAEiwC,YAAY,eAAejwC,GAAGA,EAAEkwC,WAAW,GAAGC,OAAO,EAAEC,UAAU,KAAcC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIC,GAAGta,GAAI,qBAAqB7zB,OAAOouC,GAAG,KAAKva,GAAI,iBAAiBC,WAAWsa,GAAGta,SAASua,cAAc,IAAIC,GAAGza,GAAI,cAAc7zB,SAASouC,GAAGG,GAAG1a,KAAMsa,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAII,GAAGt4C,OAAOG,aAAa,IAAIo4C,IAAG,EAC1W,SAASC,GAAG7wC,EAAEC,GAAG,OAAOD,GAAG,IAAK,QAAQ,OAAO,IAAIqwC,GAAGhoB,QAAQpoB,EAAEupC,SAAS,IAAK,UAAU,OAAO,MAAMvpC,EAAEupC,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,GAAI,SAASsH,GAAG9wC,GAAc,MAAM,kBAAjBA,EAAEA,EAAEqrC,SAAkC,SAASrrC,EAAEA,EAAEvI,KAAK,KAAK,IAAIs5C,IAAG,EAE9Q,IAAIC,GAAG,CAACC,OAAM,EAAGC,MAAK,EAAGC,UAAS,EAAG,kBAAiB,EAAGC,OAAM,EAAGC,OAAM,EAAGvkB,QAAO,EAAGwkB,UAAS,EAAGC,OAAM,EAAGC,QAAO,EAAGC,KAAI,EAAGC,MAAK,EAAGC,MAAK,EAAGC,KAAI,EAAGC,MAAK,GAAI,SAASC,GAAG9xC,GAAG,IAAIC,EAAED,GAAGA,EAAEy5B,UAAUz5B,EAAEy5B,SAAS5C,cAAc,MAAM,UAAU52B,IAAI+wC,GAAGhxC,EAAE3F,MAAM,aAAa4F,EAAQ,SAAS8xC,GAAG/xC,EAAEC,EAAEqwB,EAAE1c,GAAG8tB,GAAG9tB,GAAsB,GAAnB3T,EAAE+xC,GAAG/xC,EAAE,aAAgBvL,SAAS47B,EAAE,IAAI4a,GAAG,WAAW,SAAS,KAAK5a,EAAE1c,GAAG5T,EAAExL,KAAK,CAACg1B,MAAM8G,EAAE2hB,UAAUhyC,KAAK,IAAIiyC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGpyC,GAAGqyC,GAAGryC,EAAE,GAAG,SAASsyC,GAAGtyC,GAAe,GAAG+5B,EAATwY,GAAGvyC,IAAY,OAAOA,EACne,SAASwyC,GAAGxyC,EAAEC,GAAG,GAAG,WAAWD,EAAE,OAAOC,EAAE,IAAIwyC,IAAG,EAAG,GAAGzc,EAAG,CAAC,IAAI0c,GAAG,GAAG1c,EAAG,CAAC,IAAI2c,GAAG,YAAY1c,SAAS,IAAI0c,GAAG,CAAC,IAAIC,GAAG3c,SAASvJ,cAAc,OAAOkmB,GAAGvb,aAAa,UAAU,WAAWsb,GAAG,oBAAoBC,GAAGC,QAAQH,GAAGC,QAAQD,IAAG,EAAGD,GAAGC,MAAMzc,SAASua,cAAc,EAAEva,SAASua,cAAc,SAASsC,KAAKZ,KAAKA,GAAGa,YAAY,mBAAmBC,IAAIb,GAAGD,GAAG,MAAM,SAASc,GAAGhzC,GAAG,GAAG,UAAUA,EAAE02B,cAAc4b,GAAGH,IAAI,CAAC,IAAIlyC,EAAE,GAAyB,GAAtB8xC,GAAG9xC,EAAEkyC,GAAGnyC,EAAE+gC,GAAG/gC,IAAIA,EAAEoyC,GAAMpQ,GAAGhiC,EAAEC,OAAO,CAAC+hC,IAAG,EAAG,IAAIJ,GAAG5hC,EAAEC,GAAT,QAAoB+hC,IAAG,EAAGE,QAC3e,SAAS+Q,GAAGjzC,EAAEC,EAAEqwB,GAAG,YAAYtwB,GAAG8yC,KAAUX,GAAG7hB,GAAR4hB,GAAGjyC,GAAUizC,YAAY,mBAAmBF,KAAK,aAAahzC,GAAG8yC,KAAK,SAASK,GAAGnzC,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOsyC,GAAGH,IAAI,SAASiB,GAAGpzC,EAAEC,GAAG,GAAG,UAAUD,EAAE,OAAOsyC,GAAGryC,GAAG,SAASozC,GAAGrzC,EAAEC,GAAG,GAAG,UAAUD,GAAG,WAAWA,EAAE,OAAOsyC,GAAGryC,GAAmE,IAAIqzC,GAAG,oBAAoBjgD,OAAOytC,GAAGztC,OAAOytC,GAA5G,SAAY9gC,EAAEC,GAAG,OAAOD,IAAIC,IAAI,IAAID,GAAG,EAAEA,IAAI,EAAEC,IAAID,IAAIA,GAAGC,IAAIA,GAAoDszC,GAAGlgD,OAAOiC,UAAUwC,eAC7a,SAAS07C,GAAGxzC,EAAEC,GAAG,GAAGqzC,GAAGtzC,EAAEC,GAAG,OAAM,EAAG,GAAG,kBAAkBD,GAAG,OAAOA,GAAG,kBAAkBC,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAIqwB,EAAEj9B,OAAOyF,KAAKkH,GAAG4T,EAAEvgB,OAAOyF,KAAKmH,GAAG,GAAGqwB,EAAE57B,SAASkf,EAAElf,OAAO,OAAM,EAAG,IAAIkf,EAAE,EAAEA,EAAE0c,EAAE57B,OAAOkf,IAAI,IAAI2/B,GAAG/9C,KAAKyK,EAAEqwB,EAAE1c,MAAM0/B,GAAGtzC,EAAEswB,EAAE1c,IAAI3T,EAAEqwB,EAAE1c,KAAK,OAAM,EAAG,OAAM,EAAG,SAAS6/B,GAAGzzC,GAAG,KAAKA,GAAGA,EAAEq8B,YAAYr8B,EAAEA,EAAEq8B,WAAW,OAAOr8B,EAClU,SAAS0zC,GAAG1zC,EAAEC,GAAG,IAAwB2T,EAApB0c,EAAEmjB,GAAGzzC,GAAO,IAAJA,EAAE,EAAYswB,GAAG,CAAC,GAAG,IAAIA,EAAEryB,SAAS,CAA0B,GAAzB2V,EAAE5T,EAAEswB,EAAEsL,YAAYlnC,OAAUsL,GAAGC,GAAG2T,GAAG3T,EAAE,MAAM,CAACqsB,KAAKgE,EAAEqjB,OAAO1zC,EAAED,GAAGA,EAAE4T,EAAE5T,EAAE,CAAC,KAAKswB,GAAG,CAAC,GAAGA,EAAEsjB,YAAY,CAACtjB,EAAEA,EAAEsjB,YAAY,MAAM5zC,EAAEswB,EAAEA,EAAE4Q,WAAW5Q,OAAE,EAAOA,EAAEmjB,GAAGnjB,IAAI,SAASujB,GAAG7zC,EAAEC,GAAG,SAAOD,IAAGC,KAAED,IAAIC,KAAKD,GAAG,IAAIA,EAAE/B,YAAYgC,GAAG,IAAIA,EAAEhC,SAAS41C,GAAG7zC,EAAEC,EAAEihC,YAAY,aAAalhC,EAAEA,EAAE8zC,SAAS7zC,KAAGD,EAAE+zC,4BAAwD,GAA7B/zC,EAAE+zC,wBAAwB9zC,MAClZ,SAAS+zC,KAAK,IAAI,IAAIh0C,EAAEmC,OAAOlC,EAAEg6B,IAAKh6B,aAAaD,EAAEi0C,mBAAmB,CAAC,IAAI,IAAI3jB,EAAE,kBAAkBrwB,EAAEi0C,cAActF,SAASuF,KAAK,MAAMvgC,GAAG0c,GAAE,EAAG,IAAGA,EAAyB,MAAMrwB,EAAEg6B,GAA/Bj6B,EAAEC,EAAEi0C,eAAgCje,UAAU,OAAOh2B,EAAE,SAASm0C,GAAGp0C,GAAG,IAAIC,EAAED,GAAGA,EAAEy5B,UAAUz5B,EAAEy5B,SAAS5C,cAAc,OAAO52B,IAAI,UAAUA,IAAI,SAASD,EAAE3F,MAAM,WAAW2F,EAAE3F,MAAM,QAAQ2F,EAAE3F,MAAM,QAAQ2F,EAAE3F,MAAM,aAAa2F,EAAE3F,OAAO,aAAa4F,GAAG,SAASD,EAAEq0C,iBACxZ,IAAIC,GAAGte,GAAI,iBAAiBC,UAAU,IAAIA,SAASua,aAAa+D,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC3F,SAASC,GAAG30C,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE0c,EAAEnuB,SAASmuB,EAAEA,EAAE2F,SAAS,IAAI3F,EAAEryB,SAASqyB,EAAEA,EAAE0K,cAAc0Z,IAAI,MAAMH,IAAIA,KAAKta,EAAGrmB,KAAU,mBAALA,EAAE2gC,KAAyBH,GAAGxgC,GAAGA,EAAE,CAACsM,MAAMtM,EAAEghC,eAAe70B,IAAInM,EAAEihC,cAAuFjhC,EAAE,CAACkhC,YAA3ElhC,GAAGA,EAAEonB,eAAepnB,EAAEonB,cAAc+Z,aAAa5yC,QAAQ6yC,gBAA+BF,WAAWG,aAAarhC,EAAEqhC,aAAaC,UAAUthC,EAAEshC,UAAUC,YAAYvhC,EAAEuhC,aAAcV,IAAIjB,GAAGiB,GAAG7gC,KAAK6gC,GAAG7gC,EAAsB,GAApBA,EAAEo+B,GAAGwC,GAAG,aAAgB9/C,SAASuL,EAAE,IAAIirC,GAAG,WAAW,SAAS,KAAKjrC,EAAEqwB,GAAGtwB,EAAExL,KAAK,CAACg1B,MAAMvpB,EAAEgyC,UAAUr+B,IAAI3T,EAAEjH,OAAOu7C,MACjfnN,GAAG,mjBAAmjBzuC,MAAM,KAC5jB,GAAGyuC,GAAG,oRAAoRzuC,MAAM,KAAK,GAAGyuC,GAAGD,GAAG,GAAG,IAAI,IAAIiO,GAAG,qFAAqFz8C,MAAM,KAAK08C,GAAG,EAAEA,GAAGD,GAAG1gD,OAAO2gD,KAAKnO,GAAGlwC,IAAIo+C,GAAGC,IAAI,GAAGtf,EAAG,eAAe,CAAC,WAAW,cACleA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBD,EAAG,WAAW,oEAAoEn9B,MAAM,MAAMm9B,EAAG,WAAW,uFAAuFn9B,MAAM,MAAMm9B,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2Dn9B,MAAM,MAC5fm9B,EAAG,qBAAqB,6DAA6Dn9B,MAAM,MAAMm9B,EAAG,sBAAsB,8DAA8Dn9B,MAAM,MAAM,IAAI28C,GAAG,sNAAsN38C,MAAM,KAAK48C,GAAG,IAAIr1C,IAAI,0CAA0CvH,MAAM,KAAKwH,OAAOm1C,KACnf,SAASE,GAAGx1C,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE5T,EAAE3F,MAAM,gBAAgB2F,EAAE+pC,cAAczZ,EA/CjE,SAAYtwB,EAAEC,EAAEqwB,EAAE1c,EAAE/W,EAAEwP,EAAE0lB,EAAED,EAAEne,GAA4B,GAAzBovB,GAAG/mC,MAAMnF,KAAKwC,WAAcqpC,GAAG,CAAC,IAAGA,GAAgC,MAAMvV,MAAMsF,EAAE,MAA1C,IAAI74B,EAAE+oC,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGC,GAAGjpC,IA+CjE67C,CAAG7hC,EAAE3T,OAAE,EAAOD,GAAGA,EAAE+pC,cAAc,KACpG,SAASsI,GAAGryC,EAAEC,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAIqwB,EAAE,EAAEA,EAAEtwB,EAAEtL,OAAO47B,IAAI,CAAC,IAAI1c,EAAE5T,EAAEswB,GAAGzzB,EAAE+W,EAAE4V,MAAM5V,EAAEA,EAAEq+B,UAAUjyC,EAAE,CAAC,IAAIqM,OAAE,EAAO,GAAGpM,EAAE,IAAI,IAAI8xB,EAAEne,EAAElf,OAAO,EAAE,GAAGq9B,EAAEA,IAAI,CAAC,IAAID,EAAEle,EAAEme,GAAGpe,EAAEme,EAAE1uB,SAASxJ,EAAEk4B,EAAEiY,cAA2B,GAAbjY,EAAEA,EAAE4jB,SAAY/hC,IAAItH,GAAGxP,EAAEstC,uBAAuB,MAAMnqC,EAAEw1C,GAAG34C,EAAEi1B,EAAEl4B,GAAGyS,EAAEsH,OAAO,IAAIoe,EAAE,EAAEA,EAAEne,EAAElf,OAAOq9B,IAAI,CAAoD,GAA5Cpe,GAAPme,EAAEle,EAAEme,IAAO3uB,SAASxJ,EAAEk4B,EAAEiY,cAAcjY,EAAEA,EAAE4jB,SAAY/hC,IAAItH,GAAGxP,EAAEstC,uBAAuB,MAAMnqC,EAAEw1C,GAAG34C,EAAEi1B,EAAEl4B,GAAGyS,EAAEsH,IAAI,GAAGivB,GAAG,MAAM5iC,EAAE6iC,GAAGD,IAAG,EAAGC,GAAG,KAAK7iC,EAC1a,SAASwxB,GAAExxB,EAAEC,GAAG,IAAIqwB,EAAEqlB,GAAG11C,GAAG2T,EAAE5T,EAAE,WAAWswB,EAAEp5B,IAAI0c,KAAKgiC,GAAG31C,EAAED,EAAE,GAAE,GAAIswB,EAAE/pB,IAAIqN,IAAI,IAAIiiC,GAAG,kBAAkB/oC,KAAKgpC,SAASvgD,SAAS,IAAIE,MAAM,GAAG,SAASsgD,GAAG/1C,GAAGA,EAAE61C,MAAM71C,EAAE61C,KAAI,EAAGjgB,EAAGh9B,SAAQ,SAASqH,GAAGs1C,GAAGr+C,IAAI+I,IAAI+1C,GAAG/1C,GAAE,EAAGD,EAAE,MAAMg2C,GAAG/1C,GAAE,EAAGD,EAAE,UACtO,SAASg2C,GAAGh2C,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAE,EAAExD,UAAU3E,aAAQ,IAAS2E,UAAU,GAAGA,UAAU,GAAG,EAAEgT,EAAEikB,EAA6D,GAA3D,oBAAoBtwB,GAAG,IAAIswB,EAAEryB,WAAWoO,EAAEikB,EAAE0K,eAAkB,OAAOpnB,IAAI3T,GAAGs1C,GAAGr+C,IAAI8I,GAAG,CAAC,GAAG,WAAWA,EAAE,OAAOnD,GAAG,EAAEwP,EAAEuH,EAAE,IAAIme,EAAE4jB,GAAGtpC,GAAGylB,EAAE9xB,EAAE,MAAMC,EAAE,UAAU,UAAU8xB,EAAE76B,IAAI46B,KAAK7xB,IAAIpD,GAAG,GAAG+4C,GAAGvpC,EAAErM,EAAEnD,EAAEoD,GAAG8xB,EAAExrB,IAAIurB,IAClS,SAAS8jB,GAAG51C,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAEqqC,GAAGjwC,IAAIgJ,GAAG,YAAO,IAASpD,EAAE,EAAEA,GAAG,KAAK,EAAEA,EAAEksC,GAAG,MAAM,KAAK,EAAElsC,EAAE4vB,GAAG,MAAM,QAAQ5vB,EAAEmsC,GAAG1Y,EAAEzzB,EAAEy3B,KAAK,KAAKr0B,EAAEqwB,EAAEtwB,GAAGnD,OAAE,GAAQulC,IAAI,eAAeniC,GAAG,cAAcA,GAAG,UAAUA,IAAIpD,GAAE,GAAI+W,OAAE,IAAS/W,EAAEmD,EAAEsiC,iBAAiBriC,EAAEqwB,EAAE,CAAC2lB,SAAQ,EAAGC,QAAQr5C,IAAImD,EAAEsiC,iBAAiBriC,EAAEqwB,GAAE,QAAI,IAASzzB,EAAEmD,EAAEsiC,iBAAiBriC,EAAEqwB,EAAE,CAAC4lB,QAAQr5C,IAAImD,EAAEsiC,iBAAiBriC,EAAEqwB,GAAE,GACpW,SAAS4Y,GAAGlpC,EAAEC,EAAEqwB,EAAE1c,EAAE/W,GAAG,IAAIwP,EAAEuH,EAAE,GAAG,KAAO,EAAF3T,IAAM,KAAO,EAAFA,IAAM,OAAO2T,EAAE5T,EAAE,OAAO,CAAC,GAAG,OAAO4T,EAAE,OAAO,IAAIme,EAAEne,EAAEnX,IAAI,GAAG,IAAIs1B,GAAG,IAAIA,EAAE,CAAC,IAAID,EAAEle,EAAE4tB,UAAUkE,cAAc,GAAG5T,IAAIj1B,GAAG,IAAIi1B,EAAE7zB,UAAU6zB,EAAEoP,aAAarkC,EAAE,MAAM,GAAG,IAAIk1B,EAAE,IAAIA,EAAEne,EAAEsvB,OAAO,OAAOnR,GAAG,CAAC,IAAIpe,EAAEoe,EAAEt1B,IAAI,IAAG,IAAIkX,GAAG,IAAIA,MAAKA,EAAEoe,EAAEyP,UAAUkE,iBAAkB7oC,GAAG,IAAI8W,EAAE1V,UAAU0V,EAAEutB,aAAarkC,GAAE,OAAOk1B,EAAEA,EAAEmR,OAAO,KAAK,OAAOpR,GAAG,CAAS,GAAG,QAAXC,EAAEsT,GAAGvT,IAAe,OAAe,GAAG,KAAXne,EAAEoe,EAAEt1B,MAAc,IAAIkX,EAAE,CAACC,EAAEvH,EAAE0lB,EAAE,SAAS/xB,EAAE8xB,EAAEA,EAAEoP,YAAYttB,EAAEA,EAAEsvB,QAvD7c,SAAYljC,EAAEC,EAAEqwB,GAAG,GAAG2R,GAAG,OAAOjiC,EAAEC,EAAEqwB,GAAG2R,IAAG,EAAG,IAAWF,GAAG/hC,EAAEC,EAAEqwB,GAAlB,QAA6B2R,IAAG,EAAGC,MAuDoYiU,EAAG,WAAW,IAAIviC,EAAEvH,EAAExP,EAAEkkC,GAAGzQ,GAAGyB,EAAE,GACpf/xB,EAAE,CAAC,IAAI8xB,EAAEmV,GAAGhwC,IAAI+I,GAAG,QAAG,IAAS8xB,EAAE,CAAC,IAAIne,EAAEu3B,GAAGr+B,EAAE7M,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAIupC,GAAGjZ,GAAG,MAAMtwB,EAAE,IAAK,UAAU,IAAK,QAAQ2T,EAAE+6B,GAAG,MAAM,IAAK,UAAU7hC,EAAE,QAAQ8G,EAAEm5B,GAAG,MAAM,IAAK,WAAWjgC,EAAE,OAAO8G,EAAEm5B,GAAG,MAAM,IAAK,aAAa,IAAK,YAAYn5B,EAAEm5B,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAIxc,EAAE8b,OAAO,MAAMpsC,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAc2T,EAAEg5B,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAOh5B,EAC1iBi5B,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAaj5B,EAAE67B,GAAG,MAAM,KAAK3I,GAAG,KAAKC,GAAG,KAAKC,GAAGpzB,EAAEo5B,GAAG,MAAM,KAAK/F,GAAGrzB,EAAEi8B,GAAG,MAAM,IAAK,SAASj8B,EAAE23B,GAAG,MAAM,IAAK,QAAQ33B,EAAEk8B,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQl8B,EAAEw5B,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYx5B,EAAEq7B,GAAG,IAAI5e,EAAE,KAAO,EAAFnwB,GAAKowB,GAAGD,GAAG,WAAWpwB,EAAEkwB,EAAEE,EAAE,OAAO0B,EAAEA,EAAE,UAAU,KAAKA,EAAE1B,EAAE,GAAG,IAAI,IAAQN,EAAJE,EAAEpc,EAAI,OAC/eoc,GAAG,CAAK,IAAIvoB,GAARqoB,EAAEE,GAAUwR,UAAsF,GAA5E,IAAI1R,EAAErzB,KAAK,OAAOgL,IAAIqoB,EAAEroB,EAAE,OAAOyoB,IAAc,OAAVzoB,EAAE06B,GAAGnS,EAAEE,KAAYE,EAAE57B,KAAK4hD,GAAGpmB,EAAEvoB,EAAEqoB,MAASO,EAAE,MAAML,EAAEA,EAAEkT,OAAO,EAAE9S,EAAE17B,SAASo9B,EAAE,IAAIne,EAAEme,EAAEjlB,EAAE,KAAKyjB,EAAEzzB,GAAGk1B,EAAEv9B,KAAK,CAACg1B,MAAMsI,EAAEmgB,UAAU7hB,MAAM,GAAG,KAAO,EAAFnwB,GAAK,CAA4E,GAAnC0T,EAAE,aAAa3T,GAAG,eAAeA,KAAtE8xB,EAAE,cAAc9xB,GAAG,gBAAgBA,IAA2C,KAAO,GAAFC,MAAQ4M,EAAEyjB,EAAEgc,eAAehc,EAAEic,eAAelH,GAAGx4B,KAAIA,EAAEwpC,OAAgB1iC,GAAGme,KAAGA,EAAEj1B,EAAEsF,SAAStF,EAAEA,GAAGi1B,EAAEj1B,EAAEm+B,eAAelJ,EAAEijB,aAAajjB,EAAEwkB,aAAan0C,OAAUwR,GAAqCA,EAAEC,EAAiB,QAAf/G,GAAnCA,EAAEyjB,EAAEgc,eAAehc,EAAEkc,WAAkBnH,GAAGx4B,GAAG,QACleA,KAARwjB,EAAE2S,GAAGn2B,KAAU,IAAIA,EAAEpQ,KAAK,IAAIoQ,EAAEpQ,OAAKoQ,EAAE,QAAU8G,EAAE,KAAK9G,EAAE+G,GAAKD,IAAI9G,GAAE,CAAgU,GAA/TujB,EAAEuc,GAAGllC,EAAE,eAAeyoB,EAAE,eAAeF,EAAE,QAAW,eAAehwB,GAAG,gBAAgBA,IAAEowB,EAAE4e,GAAGvnC,EAAE,iBAAiByoB,EAAE,iBAAiBF,EAAE,WAAUK,EAAE,MAAM1c,EAAEme,EAAEygB,GAAG5+B,GAAGmc,EAAE,MAAMjjB,EAAEilB,EAAEygB,GAAG1lC,IAAGilB,EAAE,IAAI1B,EAAE3oB,EAAEuoB,EAAE,QAAQrc,EAAE2c,EAAEzzB,IAAK7D,OAAOq3B,EAAEyB,EAAEwa,cAAcxc,EAAEroB,EAAE,KAAK49B,GAAGxoC,KAAK+W,KAAIwc,EAAE,IAAIA,EAAEF,EAAEF,EAAE,QAAQnjB,EAAEyjB,EAAEzzB,IAAK7D,OAAO82B,EAAEM,EAAEkc,cAAcjc,EAAE5oB,EAAE2oB,GAAGC,EAAE5oB,EAAKkM,GAAG9G,EAAE5M,EAAE,CAAa,IAARiwB,EAAErjB,EAAEmjB,EAAE,EAAMF,EAAhBM,EAAEzc,EAAkBmc,EAAEA,EAAEymB,GAAGzmB,GAAGE,IAAQ,IAAJF,EAAE,EAAMroB,EAAEyoB,EAAEzoB,EAAEA,EAAE8uC,GAAG9uC,GAAGqoB,IAAI,KAAK,EAAEE,EAAEF,GAAGM,EAAEmmB,GAAGnmB,GAAGJ,IAAI,KAAK,EAAEF,EAAEE,GAAGE,EACpfqmB,GAAGrmB,GAAGJ,IAAI,KAAKE,KAAK,CAAC,GAAGI,IAAIF,GAAG,OAAOA,GAAGE,IAAIF,EAAE+S,UAAU,MAAMhjC,EAAEmwB,EAAEmmB,GAAGnmB,GAAGF,EAAEqmB,GAAGrmB,GAAGE,EAAE,UAAUA,EAAE,KAAK,OAAOzc,GAAG6iC,GAAGzkB,EAAED,EAAEne,EAAEyc,GAAE,GAAI,OAAOvjB,GAAG,OAAOwjB,GAAGmmB,GAAGzkB,EAAE1B,EAAExjB,EAAEujB,GAAE,GAAiE,GAAG,YAA1Czc,GAAjBme,EAAEle,EAAE2+B,GAAG3+B,GAAGzR,QAAWs3B,UAAU3H,EAAE2H,SAAS5C,gBAA+B,UAAUljB,GAAG,SAASme,EAAEz3B,KAAK,IAAIw3B,EAAE2gB,QAAQ,GAAGV,GAAGhgB,GAAG,GAAG2gB,GAAG5gB,EAAEwhB,OAAO,CAACxhB,EAAEshB,GAAG,IAAI3gB,EAAEygB,QAAQt/B,EAAEme,EAAE2H,WAAW,UAAU9lB,EAAEkjB,gBAAgB,aAAa/E,EAAEz3B,MAAM,UAAUy3B,EAAEz3B,QAAQw3B,EAAEuhB,IAClV,OADyVvhB,IAAIA,EAAEA,EAAE7xB,EAAE4T,IAAKm+B,GAAGhgB,EAAEF,EAAEvB,EAAEzzB,IAAW21B,GAAGA,EAAExyB,EAAE8xB,EAAEle,GAAG,aAAa5T,IAAIwyB,EAAEV,EAAEyI,gBACte/H,EAAEmI,YAAY,WAAW7I,EAAEz3B,MAAMygC,GAAGhJ,EAAE,SAASA,EAAEr9B,QAAO+9B,EAAE5e,EAAE2+B,GAAG3+B,GAAGzR,OAAcnC,GAAG,IAAK,WAAa8xC,GAAGtf,IAAI,SAASA,EAAE6hB,mBAAgBE,GAAG/hB,EAAEgiB,GAAG5gC,EAAE6gC,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGC,GAAG5iB,EAAEzB,EAAEzzB,GAAG,MAAM,IAAK,kBAAkB,GAAGy3C,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAG5iB,EAAEzB,EAAEzzB,GAAG,IAAI81B,EAAE,GAAG2d,GAAGrwC,EAAE,CAAC,OAAOD,GAAG,IAAK,mBAAmB,IAAImyB,EAAE,qBAAqB,MAAMlyB,EAAE,IAAK,iBAAiBkyB,EAAE,mBAAmB,MAAMlyB,EACrf,IAAK,oBAAoBkyB,EAAE,sBAAsB,MAAMlyB,EAAEkyB,OAAE,OAAY4e,GAAGF,GAAG7wC,EAAEswB,KAAK6B,EAAE,oBAAoB,YAAYnyB,GAAG,MAAMswB,EAAEkZ,UAAUrX,EAAE,sBAAsBA,IAAIue,IAAI,OAAOpgB,EAAEwe,SAASiC,IAAI,uBAAuB5e,EAAE,qBAAqBA,GAAG4e,KAAKpe,EAAE2W,OAAYF,GAAG,UAARD,GAAGtsC,GAAkBssC,GAAG10C,MAAM00C,GAAGvN,YAAYmV,IAAG,IAAe,GAAVve,EAAEwf,GAAGp+B,EAAEue,IAAOz9B,SAASy9B,EAAE,IAAIkb,GAAGlb,EAAEnyB,EAAE,KAAKswB,EAAEzzB,GAAGk1B,EAAEv9B,KAAK,CAACg1B,MAAM2I,EAAE8f,UAAUzf,IAAIG,EAAER,EAAE16B,KAAKk7B,EAAW,QAARA,EAAEme,GAAGxgB,MAAc6B,EAAE16B,KAAKk7B,MAASA,EAAE8d,GA1BjK,SAAYzwC,EAAEC,GAAG,OAAOD,GAAG,IAAK,iBAAiB,OAAO8wC,GAAG7wC,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAE8uC,MAAa,MAAK6B,IAAG,EAAUD,IAAG,IAAK,YAAY,OAAO3wC,EAAEC,EAAExI,QAASk5C,IAAIC,GAAG,KAAK5wC,EAAE,QAAQ,OAAO,MA0BxBy2C,CAAGz2C,EAAEswB,GAzB1b,SAAYtwB,EAAEC,GAAG,GAAG8wC,GAAG,MAAM,mBAAmB/wC,IAAIswC,IAAIO,GAAG7wC,EAAEC,IAAID,EAAEspC,KAAKD,GAAGD,GAAGD,GAAG,KAAK4H,IAAG,EAAG/wC,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAQ,OAAO,KAAK,IAAK,WAAW,KAAKC,EAAE6rC,SAAS7rC,EAAE+rC,QAAQ/rC,EAAEgsC,UAAUhsC,EAAE6rC,SAAS7rC,EAAE+rC,OAAO,CAAC,GAAG/rC,EAAEy2C,MAAM,EAAEz2C,EAAEy2C,KAAKhiD,OAAO,OAAOuL,EAAEy2C,KAAK,GAAGz2C,EAAE8uC,MAAM,OAAO12C,OAAOG,aAAayH,EAAE8uC,OAAO,OAAO,KAAK,IAAK,iBAAiB,OAAO2B,IAAI,OAAOzwC,EAAE6uC,OAAO,KAAK7uC,EAAExI,KAAK,QAAQ,OAAO,MAyB2Dk/C,CAAG32C,EAAEswB,MAA2B,GAAxB1c,EAAEo+B,GAAGp+B,EAAE,kBAAqBlf,SAASmI,EAAE,IAAIwwC,GAAG,gBACnf,cAAc,KAAK/c,EAAEzzB,GAAGk1B,EAAEv9B,KAAK,CAACg1B,MAAM3sB,EAAEo1C,UAAUr+B,IAAI/W,EAAEpF,KAAKk7B,IAAG0f,GAAGtgB,EAAE9xB,MAAK,SAASm2C,GAAGp2C,EAAEC,EAAEqwB,GAAG,MAAM,CAACltB,SAASpD,EAAE01C,SAASz1C,EAAE8pC,cAAczZ,GAAG,SAAS0hB,GAAGhyC,EAAEC,GAAG,IAAI,IAAIqwB,EAAErwB,EAAE,UAAU2T,EAAE,GAAG,OAAO5T,GAAG,CAAC,IAAInD,EAAEmD,EAAEqM,EAAExP,EAAE2kC,UAAU,IAAI3kC,EAAEJ,KAAK,OAAO4P,IAAIxP,EAAEwP,EAAY,OAAVA,EAAE81B,GAAGniC,EAAEswB,KAAY1c,EAAE6S,QAAQ2vB,GAAGp2C,EAAEqM,EAAExP,IAAc,OAAVwP,EAAE81B,GAAGniC,EAAEC,KAAY2T,EAAEpf,KAAK4hD,GAAGp2C,EAAEqM,EAAExP,KAAKmD,EAAEA,EAAEkjC,OAAO,OAAOtvB,EAAE,SAAS2iC,GAAGv2C,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAEkjC,aAAaljC,GAAG,IAAIA,EAAEvD,KAAK,OAAOuD,GAAI,KACxa,SAASw2C,GAAGx2C,EAAEC,EAAEqwB,EAAE1c,EAAE/W,GAAG,IAAI,IAAIwP,EAAEpM,EAAE4pC,WAAW9X,EAAE,GAAG,OAAOzB,GAAGA,IAAI1c,GAAG,CAAC,IAAIke,EAAExB,EAAE3c,EAAEme,EAAEmR,UAAUrpC,EAAEk4B,EAAE0P,UAAU,GAAG,OAAO7tB,GAAGA,IAAIC,EAAE,MAAM,IAAIke,EAAEr1B,KAAK,OAAO7C,IAAIk4B,EAAEl4B,EAAEiD,EAAa,OAAV8W,EAAEwuB,GAAG7R,EAAEjkB,KAAY0lB,EAAEtL,QAAQ2vB,GAAG9lB,EAAE3c,EAAEme,IAAKj1B,GAAc,OAAV8W,EAAEwuB,GAAG7R,EAAEjkB,KAAY0lB,EAAEv9B,KAAK4hD,GAAG9lB,EAAE3c,EAAEme,KAAMxB,EAAEA,EAAE4S,OAAO,IAAInR,EAAEr9B,QAAQsL,EAAExL,KAAK,CAACg1B,MAAMvpB,EAAEgyC,UAAUlgB,IAAI,SAAS6kB,MAAM,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAG/2C,EAAEC,GAAG,OAAOD,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAW,QAAQC,EAAE+2C,UAAU,OAAM,EAC3b,SAAShvC,GAAGhI,EAAEC,GAAG,MAAM,aAAaD,GAAG,WAAWA,GAAG,aAAaA,GAAG,kBAAkBC,EAAExG,UAAU,kBAAkBwG,EAAExG,UAAU,kBAAkBwG,EAAEu7B,yBAAyB,OAAOv7B,EAAEu7B,yBAAyB,MAAMv7B,EAAEu7B,wBAAwByb,OAAO,IAAIC,GAAG,oBAAoBC,WAAWA,gBAAW,EAAOC,GAAG,oBAAoBC,aAAaA,kBAAa,EAAO,SAASC,GAAGt3C,GAAG,IAAIA,EAAE/B,SAAS+B,EAAE47B,YAAY,GAAG,IAAI57B,EAAE/B,WAAoB,OAAT+B,EAAEA,EAAEm6B,QAAen6B,EAAE47B,YAAY,KACxc,SAAS2b,GAAGv3C,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAE4zC,YAAY,CAAC,IAAI3zC,EAAED,EAAE/B,SAAS,GAAG,IAAIgC,GAAG,IAAIA,EAAE,MAAM,OAAOD,EAAE,SAASw3C,GAAGx3C,GAAGA,EAAEA,EAAEy3C,gBAAgB,IAAI,IAAIx3C,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAE/B,SAAS,CAAC,IAAIqyB,EAAEtwB,EAAEvI,KAAK,GAAG,MAAM64B,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAIrwB,EAAE,OAAOD,EAAEC,QAAQ,OAAOqwB,GAAGrwB,IAAID,EAAEA,EAAEy3C,gBAAgB,OAAO,KAAK,IAAIC,GAAG,EAA0D,IAAIC,GAAG7qC,KAAKgpC,SAASvgD,SAAS,IAAIE,MAAM,GAAGmiD,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAGtB,GAAG,oBAAoBsB,GAAGG,GAAG,iBAAiBH,GAC9d,SAAStS,GAAGrlC,GAAG,IAAIC,EAAED,EAAE43C,IAAI,GAAG33C,EAAE,OAAOA,EAAE,IAAI,IAAIqwB,EAAEtwB,EAAEkhC,WAAW5Q,GAAG,CAAC,GAAGrwB,EAAEqwB,EAAE+lB,KAAK/lB,EAAEsnB,IAAI,CAAe,GAAdtnB,EAAErwB,EAAEgjC,UAAa,OAAOhjC,EAAEwjC,OAAO,OAAOnT,GAAG,OAAOA,EAAEmT,MAAM,IAAIzjC,EAAEw3C,GAAGx3C,GAAG,OAAOA,GAAG,CAAC,GAAGswB,EAAEtwB,EAAE43C,IAAI,OAAOtnB,EAAEtwB,EAAEw3C,GAAGx3C,GAAG,OAAOC,EAAMqwB,GAAJtwB,EAAEswB,GAAM4Q,WAAW,OAAO,KAAK,SAASK,GAAGvhC,GAAkB,QAAfA,EAAEA,EAAE43C,KAAK53C,EAAEq2C,MAAc,IAAIr2C,EAAEvD,KAAK,IAAIuD,EAAEvD,KAAK,KAAKuD,EAAEvD,KAAK,IAAIuD,EAAEvD,IAAI,KAAKuD,EAAE,SAASuyC,GAAGvyC,GAAG,GAAG,IAAIA,EAAEvD,KAAK,IAAIuD,EAAEvD,IAAI,OAAOuD,EAAEwhC,UAAU,MAAMrU,MAAMsF,EAAE,KAAM,SAASgP,GAAGzhC,GAAG,OAAOA,EAAE63C,KAAK,KAClb,SAASlC,GAAG31C,GAAG,IAAIC,EAAED,EAAE83C,IAAkC,YAA9B,IAAS73C,IAAIA,EAAED,EAAE83C,IAAI,IAAI53C,KAAYD,EAAE,IAAI83C,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAGj4C,GAAG,MAAM,CAAC4F,QAAQ5F,GAAG,SAASyxB,GAAEzxB,GAAG,EAAEg4C,KAAKh4C,EAAE4F,QAAQmyC,GAAGC,IAAID,GAAGC,IAAI,KAAKA,MAAM,SAAStmB,GAAE1xB,EAAEC,GAAG+3C,KAAKD,GAAGC,IAAIh4C,EAAE4F,QAAQ5F,EAAE4F,QAAQ3F,EAAE,IAAIi4C,GAAG,GAAG9lB,GAAE6lB,GAAGC,IAAI7lB,GAAE4lB,IAAG,GAAIE,GAAGD,GAC5P,SAASE,GAAGp4C,EAAEC,GAAG,IAAIqwB,EAAEtwB,EAAE3F,KAAKg+C,aAAa,IAAI/nB,EAAE,OAAO4nB,GAAG,IAAItkC,EAAE5T,EAAEwhC,UAAU,GAAG5tB,GAAGA,EAAE0kC,8CAA8Cr4C,EAAE,OAAO2T,EAAE2kC,0CAA0C,IAASlsC,EAALxP,EAAE,GAAK,IAAIwP,KAAKikB,EAAEzzB,EAAEwP,GAAGpM,EAAEoM,GAAoH,OAAjHuH,KAAI5T,EAAEA,EAAEwhC,WAAY8W,4CAA4Cr4C,EAAED,EAAEu4C,0CAA0C17C,GAAUA,EAAE,SAAS27C,GAAGx4C,GAAyB,OAAO,QAA7BA,EAAEA,EAAEy4C,yBAAmC,IAASz4C,EAAE,SAAS04C,KAAKjnB,GAAEY,IAAGZ,GAAEW,IAAG,SAASumB,GAAG34C,EAAEC,EAAEqwB,GAAG,GAAG8B,GAAExsB,UAAUsyC,GAAG,MAAM/qB,MAAMsF,EAAE,MAAMf,GAAEU,GAAEnyB,GAAGyxB,GAAEW,GAAE/B,GAC/e,SAASsoB,GAAG54C,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE5T,EAAEwhC,UAAgC,GAAtBxhC,EAAEC,EAAEw4C,kBAAqB,oBAAoB7kC,EAAEilC,gBAAgB,OAAOvoB,EAAwB,IAAI,IAAIzzB,KAA9B+W,EAAEA,EAAEilC,kBAAiC,KAAKh8C,KAAKmD,GAAG,MAAMmtB,MAAMsF,EAAE,IAAI6G,EAAGr5B,IAAI,UAAUpD,IAAI,OAAOm1B,EAAE,GAAG1B,EAAE1c,GAAG,SAASklC,GAAG94C,GAAyG,OAAtGA,GAAGA,EAAEA,EAAEwhC,YAAYxhC,EAAE+4C,2CAA2Cb,GAAGC,GAAG/lB,GAAExsB,QAAQ8rB,GAAEU,GAAEpyB,GAAG0xB,GAAEW,GAAEA,GAAEzsB,UAAe,EAAG,SAASozC,GAAGh5C,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE5T,EAAEwhC,UAAU,IAAI5tB,EAAE,MAAMuZ,MAAMsF,EAAE,MAAMnC,GAAGtwB,EAAE44C,GAAG54C,EAAEC,EAAEk4C,IAAIvkC,EAAEmlC,0CAA0C/4C,EAAEyxB,GAAEY,IAAGZ,GAAEW,IAAGV,GAAEU,GAAEpyB,IAAIyxB,GAAEY,IAAGX,GAAEW,GAAE/B,GAC7e,IAAI2oB,GAAG,KAAKC,GAAG,KAAKC,GAAGppB,EAAEwV,yBAAyB6T,GAAGrpB,EAAEiW,0BAA0BqT,GAAGtpB,EAAEupB,wBAAwBC,GAAGxpB,EAAEypB,qBAAqBC,GAAG1pB,EAAE2pB,sBAAsBC,GAAG5pB,EAAEuX,aAAasS,GAAG7pB,EAAE8pB,iCAAiCC,GAAG/pB,EAAEgqB,2BAA2BC,GAAGjqB,EAAE6Y,8BAA8BqR,GAAGlqB,EAAEkW,wBAAwBiU,GAAGnqB,EAAEoqB,qBAAqBC,GAAGrqB,EAAEsqB,sBAAsBC,GAAG,GAAGC,QAAG,IAASd,GAAGA,GAAG,aAAae,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAAGC,GAAGhB,KAAKpnB,GAAE,IAAIooB,GAAGhB,GAAG,WAAW,OAAOA,KAAKgB,IACtd,SAASC,KAAK,OAAOhB,MAAM,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,QAAQ,MAAMjtB,MAAMsF,EAAE,OAAQ,SAASooB,GAAG76C,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAO85C,GAAG,KAAK,GAAG,OAAOE,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOE,GAAG,QAAQ,MAAMjtB,MAAMsF,EAAE,OAAQ,SAASqoB,GAAG96C,EAAEC,GAAW,OAARD,EAAE66C,GAAG76C,GAAUm5C,GAAGn5C,EAAEC,GAAG,SAAS86C,GAAG/6C,EAAEC,EAAEqwB,GAAW,OAARtwB,EAAE66C,GAAG76C,GAAUo5C,GAAGp5C,EAAEC,EAAEqwB,GAAG,SAAS0qB,KAAK,GAAG,OAAOP,GAAG,CAAC,IAAIz6C,EAAEy6C,GAAGA,GAAG,KAAKpB,GAAGr5C,GAAGi7C,KAC3a,SAASA,KAAK,IAAIP,IAAI,OAAOF,GAAG,CAACE,IAAG,EAAG,IAAI16C,EAAE,EAAE,IAAI,IAAIC,EAAEu6C,GAAGM,GAAG,IAAG,WAAW,KAAK96C,EAAEC,EAAEvL,OAAOsL,IAAI,CAAC,IAAIswB,EAAErwB,EAAED,GAAG,GAAGswB,EAAEA,GAAE,SAAU,OAAOA,OAAMkqB,GAAG,KAAK,MAAMlqB,GAAG,MAAM,OAAOkqB,KAAKA,GAAGA,GAAG/kD,MAAMuK,EAAE,IAAIo5C,GAAGU,GAAGkB,IAAI1qB,EAA3J,QAAsKoqB,IAAG,IAAK,IAAIQ,GAAG1jB,EAAGtE,wBAAwB,SAASioB,GAAGn7C,EAAEC,GAAG,GAAGD,GAAGA,EAAEuC,aAAa,CAA4B,IAAI,IAAI+tB,KAAnCrwB,EAAE+xB,EAAE,GAAG/xB,GAAGD,EAAEA,EAAEuC,kBAA4B,IAAStC,EAAEqwB,KAAKrwB,EAAEqwB,GAAGtwB,EAAEswB,IAAI,OAAOrwB,EAAE,OAAOA,EAAE,IAAIm7C,GAAGnD,GAAG,MAAMoD,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,KAC5b,SAASI,GAAGz7C,GAAG,IAAIC,EAAEm7C,GAAGx1C,QAAQ6rB,GAAE2pB,IAAIp7C,EAAE3F,KAAK+5B,SAASL,cAAc9zB,EAAE,SAASy7C,GAAG17C,EAAEC,GAAG,KAAK,OAAOD,GAAG,CAAC,IAAIswB,EAAEtwB,EAAEijC,UAAU,IAAIjjC,EAAE27C,WAAW17C,KAAKA,EAAtB,CAAwB,GAAG,OAAOqwB,IAAIA,EAAEqrB,WAAW17C,KAAKA,EAAE,MAAWqwB,EAAEqrB,YAAY17C,OAAOD,EAAE27C,YAAY17C,EAAE,OAAOqwB,IAAIA,EAAEqrB,YAAY17C,GAAGD,EAAEA,EAAEkjC,QAAQ,SAAS0Y,GAAG57C,EAAEC,GAAGo7C,GAAGr7C,EAAEu7C,GAAGD,GAAG,KAAsB,QAAjBt7C,EAAEA,EAAE67C,eAAuB,OAAO77C,EAAE87C,eAAe,KAAK97C,EAAE+7C,MAAM97C,KAAK+7C,IAAG,GAAIh8C,EAAE87C,aAAa,MACvY,SAASG,GAAGj8C,EAAEC,GAAG,GAAGs7C,KAAKv7C,IAAG,IAAKC,GAAG,IAAIA,EAAmG,GAA7F,kBAAkBA,GAAG,aAAaA,IAAEs7C,GAAGv7C,EAAEC,EAAE,YAAWA,EAAE,CAAC8wB,QAAQ/wB,EAAEk8C,aAAaj8C,EAAE3L,KAAK,MAAS,OAAOgnD,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAMluB,MAAMsF,EAAE,MAAM6oB,GAAGr7C,EAAEo7C,GAAGQ,aAAa,CAACE,MAAM,EAAED,aAAa77C,EAAEk8C,WAAW,WAAWb,GAAGA,GAAGhnD,KAAK2L,EAAE,OAAOD,EAAE+zB,cAAc,IAAIqoB,IAAG,EAAG,SAASC,GAAGr8C,GAAGA,EAAEs8C,YAAY,CAACC,UAAUv8C,EAAEqjC,cAAcmZ,gBAAgB,KAAKC,eAAe,KAAKC,OAAO,CAACC,QAAQ,MAAMC,QAAQ,MAC1a,SAASC,GAAG78C,EAAEC,GAAGD,EAAEA,EAAEs8C,YAAYr8C,EAAEq8C,cAAct8C,IAAIC,EAAEq8C,YAAY,CAACC,UAAUv8C,EAAEu8C,UAAUC,gBAAgBx8C,EAAEw8C,gBAAgBC,eAAez8C,EAAEy8C,eAAeC,OAAO18C,EAAE08C,OAAOE,QAAQ58C,EAAE48C,UAAU,SAASE,GAAG98C,EAAEC,GAAG,MAAM,CAAC88C,UAAU/8C,EAAEg9C,KAAK/8C,EAAExD,IAAI,EAAEwgD,QAAQ,KAAKC,SAAS,KAAK5oD,KAAK,MAAM,SAAS6oD,GAAGn9C,EAAEC,GAAmB,GAAG,QAAnBD,EAAEA,EAAEs8C,aAAwB,CAAY,IAAIhsB,GAAftwB,EAAEA,EAAE08C,QAAeC,QAAQ,OAAOrsB,EAAErwB,EAAE3L,KAAK2L,GAAGA,EAAE3L,KAAKg8B,EAAEh8B,KAAKg8B,EAAEh8B,KAAK2L,GAAGD,EAAE28C,QAAQ18C,GACrZ,SAASm9C,GAAGp9C,EAAEC,GAAG,IAAIqwB,EAAEtwB,EAAEs8C,YAAY1oC,EAAE5T,EAAEijC,UAAU,GAAG,OAAOrvB,GAAoB0c,KAAhB1c,EAAEA,EAAE0oC,aAAmB,CAAC,IAAIz/C,EAAE,KAAKwP,EAAE,KAAyB,GAAG,QAAvBikB,EAAEA,EAAEksB,iBAA4B,CAAC,EAAE,CAAC,IAAIzqB,EAAE,CAACgrB,UAAUzsB,EAAEysB,UAAUC,KAAK1sB,EAAE0sB,KAAKvgD,IAAI6zB,EAAE7zB,IAAIwgD,QAAQ3sB,EAAE2sB,QAAQC,SAAS5sB,EAAE4sB,SAAS5oD,KAAK,MAAM,OAAO+X,EAAExP,EAAEwP,EAAE0lB,EAAE1lB,EAAEA,EAAE/X,KAAKy9B,EAAEzB,EAAEA,EAAEh8B,WAAW,OAAOg8B,GAAG,OAAOjkB,EAAExP,EAAEwP,EAAEpM,EAAEoM,EAAEA,EAAE/X,KAAK2L,OAAOpD,EAAEwP,EAAEpM,EAAiH,OAA/GqwB,EAAE,CAACisB,UAAU3oC,EAAE2oC,UAAUC,gBAAgB3/C,EAAE4/C,eAAepwC,EAAEqwC,OAAO9oC,EAAE8oC,OAAOE,QAAQhpC,EAAEgpC,cAAS58C,EAAEs8C,YAAYhsB,GAA4B,QAAnBtwB,EAAEswB,EAAEmsB,gBAAwBnsB,EAAEksB,gBAAgBv8C,EAAED,EAAE1L,KACnf2L,EAAEqwB,EAAEmsB,eAAex8C,EACnB,SAASo9C,GAAGr9C,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAEmD,EAAEs8C,YAAYF,IAAG,EAAG,IAAI/vC,EAAExP,EAAE2/C,gBAAgBzqB,EAAEl1B,EAAE4/C,eAAe3qB,EAAEj1B,EAAE6/C,OAAOC,QAAQ,GAAG,OAAO7qB,EAAE,CAACj1B,EAAE6/C,OAAOC,QAAQ,KAAK,IAAIhpC,EAAEme,EAAEl4B,EAAE+Z,EAAErf,KAAKqf,EAAErf,KAAK,KAAK,OAAOy9B,EAAE1lB,EAAEzS,EAAEm4B,EAAEz9B,KAAKsF,EAAEm4B,EAAEpe,EAAE,IAAIte,EAAE2K,EAAEijC,UAAU,GAAG,OAAO5tC,EAAE,CAAiB,IAAIm7B,GAApBn7B,EAAEA,EAAEinD,aAAoBG,eAAejsB,IAAIuB,IAAI,OAAOvB,EAAEn7B,EAAEmnD,gBAAgB5iD,EAAE42B,EAAEl8B,KAAKsF,EAAEvE,EAAEonD,eAAe9oC,IAAI,GAAG,OAAOtH,EAAE,CAA8B,IAA7BmkB,EAAE3zB,EAAE0/C,UAAUxqB,EAAE,EAAE18B,EAAEuE,EAAE+Z,EAAE,OAAO,CAACme,EAAEzlB,EAAE2wC,KAAK,IAAIj8C,EAAEsL,EAAE0wC,UAAU,IAAInpC,EAAEke,KAAKA,EAAE,CAAC,OAAOz8B,IAAIA,EAAEA,EAAEf,KAAK,CAACyoD,UAAUh8C,EAAEi8C,KAAK,EAAEvgD,IAAI4P,EAAE5P,IAAIwgD,QAAQ5wC,EAAE4wC,QAAQC,SAAS7wC,EAAE6wC,SACrf5oD,KAAK,OAAO0L,EAAE,CAAC,IAAI8wB,EAAE9wB,EAAE6M,EAAER,EAAU,OAARylB,EAAE7xB,EAAEc,EAAEuvB,EAASzjB,EAAEpQ,KAAK,KAAK,EAAc,GAAG,oBAAfq0B,EAAEjkB,EAAEowC,SAAiC,CAACzsB,EAAEM,EAAEt7B,KAAKuL,EAAEyvB,EAAEsB,GAAG,MAAM9xB,EAAEwwB,EAAEM,EAAE,MAAM9wB,EAAE,KAAK,EAAE8wB,EAAEqS,OAAe,KAATrS,EAAEqS,MAAY,GAAG,KAAK,EAAsD,GAAG,QAA3CrR,EAAE,oBAAdhB,EAAEjkB,EAAEowC,SAAgCnsB,EAAEt7B,KAAKuL,EAAEyvB,EAAEsB,GAAGhB,SAAe,IAASgB,EAAE,MAAM9xB,EAAEwwB,EAAEwB,EAAE,GAAGxB,EAAEsB,GAAG,MAAM9xB,EAAE,KAAK,EAAEo8C,IAAG,GAAI,OAAO/vC,EAAE6wC,WAAWl9C,EAAEmjC,OAAO,GAAe,QAAZrR,EAAEj1B,EAAE+/C,SAAiB//C,EAAE+/C,QAAQ,CAACvwC,GAAGylB,EAAEt9B,KAAK6X,SAAStL,EAAE,CAACg8C,UAAUh8C,EAAEi8C,KAAKlrB,EAAEr1B,IAAI4P,EAAE5P,IAAIwgD,QAAQ5wC,EAAE4wC,QAAQC,SAAS7wC,EAAE6wC,SAAS5oD,KAAK,MAAM,OAAOe,GAAGuE,EAAEvE,EAAE0L,EAAE4S,EAAE6c,GAAGn7B,EAAEA,EAAEf,KAAKyM,EAAEgxB,GAAGD,EAAW,GAAG,QAAZzlB,EAAEA,EAAE/X,MAC1e,IAAsB,QAAnBw9B,EAAEj1B,EAAE6/C,OAAOC,SAAiB,MAAWtwC,EAAEylB,EAAEx9B,KAAKw9B,EAAEx9B,KAAK,KAAKuI,EAAE4/C,eAAe3qB,EAAEj1B,EAAE6/C,OAAOC,QAAQ,MAAc,OAAOtnD,IAAIse,EAAE6c,GAAG3zB,EAAE0/C,UAAU5oC,EAAE9W,EAAE2/C,gBAAgB5iD,EAAEiD,EAAE4/C,eAAepnD,EAAEioD,IAAIvrB,EAAE/xB,EAAE+7C,MAAMhqB,EAAE/xB,EAAEqjC,cAAc7S,GAAG,SAAS+sB,GAAGv9C,EAAEC,EAAEqwB,GAA8B,GAA3BtwB,EAAEC,EAAE28C,QAAQ38C,EAAE28C,QAAQ,KAAQ,OAAO58C,EAAE,IAAIC,EAAE,EAAEA,EAAED,EAAEtL,OAAOuL,IAAI,CAAC,IAAI2T,EAAE5T,EAAEC,GAAGpD,EAAE+W,EAAEspC,SAAS,GAAG,OAAOrgD,EAAE,CAAqB,GAApB+W,EAAEspC,SAAS,KAAKtpC,EAAE0c,EAAK,oBAAoBzzB,EAAE,MAAMswB,MAAMsF,EAAE,IAAI51B,IAAIA,EAAErH,KAAKoe,KAAK,IAAI4pC,IAAI,IAAI7nB,EAAG9I,WAAWmE,KAC3b,SAASysB,GAAGz9C,EAAEC,EAAEqwB,EAAE1c,GAA8B0c,EAAE,QAAXA,EAAEA,EAAE1c,EAAtB3T,EAAED,EAAEqjC,sBAAmC,IAAS/S,EAAErwB,EAAE+xB,EAAE,GAAG/xB,EAAEqwB,GAAGtwB,EAAEqjC,cAAc/S,EAAE,IAAItwB,EAAE+7C,QAAQ/7C,EAAEs8C,YAAYC,UAAUjsB,GAC3I,IAAIotB,GAAG,CAACjtB,UAAU,SAASzwB,GAAG,SAAOA,EAAEA,EAAE29C,kBAAiB3a,GAAGhjC,KAAKA,GAAM4wB,gBAAgB,SAAS5wB,EAAEC,EAAEqwB,GAAGtwB,EAAEA,EAAE29C,gBAAgB,IAAI/pC,EAAEgqC,KAAK/gD,EAAEghD,GAAG79C,GAAGqM,EAAEywC,GAAGlpC,EAAE/W,GAAGwP,EAAE4wC,QAAQh9C,OAAE,IAASqwB,GAAG,OAAOA,IAAIjkB,EAAE6wC,SAAS5sB,GAAG6sB,GAAGn9C,EAAEqM,GAAGyxC,GAAG99C,EAAEnD,EAAE+W,IAAI+c,oBAAoB,SAAS3wB,EAAEC,EAAEqwB,GAAGtwB,EAAEA,EAAE29C,gBAAgB,IAAI/pC,EAAEgqC,KAAK/gD,EAAEghD,GAAG79C,GAAGqM,EAAEywC,GAAGlpC,EAAE/W,GAAGwP,EAAE5P,IAAI,EAAE4P,EAAE4wC,QAAQh9C,OAAE,IAASqwB,GAAG,OAAOA,IAAIjkB,EAAE6wC,SAAS5sB,GAAG6sB,GAAGn9C,EAAEqM,GAAGyxC,GAAG99C,EAAEnD,EAAE+W,IAAI8c,mBAAmB,SAAS1wB,EAAEC,GAAGD,EAAEA,EAAE29C,gBAAgB,IAAIrtB,EAAEstB,KAAKhqC,EAAEiqC,GAAG79C,GAAGnD,EAAEigD,GAAGxsB,EAAE1c,GAAG/W,EAAEJ,IAAI,OAAE,IAASwD,GAAG,OAAOA,IAAIpD,EAAEqgD,SACjfj9C,GAAGk9C,GAAGn9C,EAAEnD,GAAGihD,GAAG99C,EAAE4T,EAAE0c,KAAK,SAASytB,GAAG/9C,EAAEC,EAAEqwB,EAAE1c,EAAE/W,EAAEwP,EAAE0lB,GAAiB,MAAM,oBAApB/xB,EAAEA,EAAEwhC,WAAsCwc,sBAAsBh+C,EAAEg+C,sBAAsBpqC,EAAEvH,EAAE0lB,IAAG9xB,EAAE3K,YAAW2K,EAAE3K,UAAUi8B,wBAAsBiiB,GAAGljB,EAAE1c,KAAK4/B,GAAG32C,EAAEwP,IAC/M,SAAS4xC,GAAGj+C,EAAEC,EAAEqwB,GAAG,IAAI1c,GAAE,EAAG/W,EAAEq7C,GAAO7rC,EAAEpM,EAAEi+C,YAA2W,MAA/V,kBAAkB7xC,GAAG,OAAOA,EAAEA,EAAE4vC,GAAG5vC,IAAIxP,EAAE27C,GAAGv4C,GAAGk4C,GAAG/lB,GAAExsB,QAAyByG,GAAGuH,EAAE,QAAtBA,EAAE3T,EAAEo4C,oBAA4B,IAASzkC,GAAGwkC,GAAGp4C,EAAEnD,GAAGq7C,IAAIj4C,EAAE,IAAIA,EAAEqwB,EAAEjkB,GAAGrM,EAAEqjC,cAAc,OAAOpjC,EAAE4gB,YAAO,IAAS5gB,EAAE4gB,MAAM5gB,EAAE4gB,MAAM,KAAK5gB,EAAEgxB,QAAQysB,GAAG19C,EAAEwhC,UAAUvhC,EAAEA,EAAE09C,gBAAgB39C,EAAE4T,KAAI5T,EAAEA,EAAEwhC,WAAY8W,4CAA4Cz7C,EAAEmD,EAAEu4C,0CAA0ClsC,GAAUpM,EAC3Z,SAASk+C,GAAGn+C,EAAEC,EAAEqwB,EAAE1c,GAAG5T,EAAEC,EAAE4gB,MAAM,oBAAoB5gB,EAAEm+C,2BAA2Bn+C,EAAEm+C,0BAA0B9tB,EAAE1c,GAAG,oBAAoB3T,EAAEo+C,kCAAkCp+C,EAAEo+C,iCAAiC/tB,EAAE1c,GAAG3T,EAAE4gB,QAAQ7gB,GAAG09C,GAAG/sB,oBAAoB1wB,EAAEA,EAAE4gB,MAAM,MAC/P,SAASy9B,GAAGt+C,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAEmD,EAAEwhC,UAAU3kC,EAAE0G,MAAM+sB,EAAEzzB,EAAEgkB,MAAM7gB,EAAEqjC,cAAcxmC,EAAEm0B,KAAKwsB,GAAGnB,GAAGr8C,GAAG,IAAIqM,EAAEpM,EAAEi+C,YAAY,kBAAkB7xC,GAAG,OAAOA,EAAExP,EAAEk0B,QAAQkrB,GAAG5vC,IAAIA,EAAEmsC,GAAGv4C,GAAGk4C,GAAG/lB,GAAExsB,QAAQ/I,EAAEk0B,QAAQqnB,GAAGp4C,EAAEqM,IAAIgxC,GAAGr9C,EAAEswB,EAAEzzB,EAAE+W,GAAG/W,EAAEgkB,MAAM7gB,EAAEqjC,cAA2C,oBAA7Bh3B,EAAEpM,EAAEs+C,4BAAiDd,GAAGz9C,EAAEC,EAAEoM,EAAEikB,GAAGzzB,EAAEgkB,MAAM7gB,EAAEqjC,eAAe,oBAAoBpjC,EAAEs+C,0BAA0B,oBAAoB1hD,EAAE2hD,yBAAyB,oBAAoB3hD,EAAE4hD,2BAA2B,oBAAoB5hD,EAAE6hD,qBACvez+C,EAAEpD,EAAEgkB,MAAM,oBAAoBhkB,EAAE6hD,oBAAoB7hD,EAAE6hD,qBAAqB,oBAAoB7hD,EAAE4hD,2BAA2B5hD,EAAE4hD,4BAA4Bx+C,IAAIpD,EAAEgkB,OAAO68B,GAAG/sB,oBAAoB9zB,EAAEA,EAAEgkB,MAAM,MAAMw8B,GAAGr9C,EAAEswB,EAAEzzB,EAAE+W,GAAG/W,EAAEgkB,MAAM7gB,EAAEqjC,eAAe,oBAAoBxmC,EAAE8hD,oBAAoB3+C,EAAEmjC,OAAO,GAAG,IAAIyb,GAAGnrD,MAAMD,QACvT,SAASqrD,GAAG7+C,EAAEC,EAAEqwB,GAAW,GAAG,QAAXtwB,EAAEswB,EAAE3D,MAAiB,oBAAoB3sB,GAAG,kBAAkBA,EAAE,CAAC,GAAGswB,EAAE4B,OAAO,CAAY,GAAX5B,EAAEA,EAAE4B,OAAY,CAAC,GAAG,IAAI5B,EAAE7zB,IAAI,MAAM0wB,MAAMsF,EAAE,MAAM,IAAI7e,EAAE0c,EAAEkR,UAAU,IAAI5tB,EAAE,MAAMuZ,MAAMsF,EAAE,IAAIzyB,IAAI,IAAInD,EAAE,GAAGmD,EAAE,OAAG,OAAOC,GAAG,OAAOA,EAAE0sB,KAAK,oBAAoB1sB,EAAE0sB,KAAK1sB,EAAE0sB,IAAImyB,aAAajiD,EAASoD,EAAE0sB,MAAI1sB,EAAE,SAASD,GAAG,IAAIC,EAAE2T,EAAEod,KAAK/wB,IAAIu9C,KAAKv9C,EAAE2T,EAAEod,KAAK,IAAI,OAAOhxB,SAASC,EAAEpD,GAAGoD,EAAEpD,GAAGmD,IAAK8+C,WAAWjiD,EAASoD,GAAE,GAAG,kBAAkBD,EAAE,MAAMmtB,MAAMsF,EAAE,MAAM,IAAInC,EAAE4B,OAAO,MAAM/E,MAAMsF,EAAE,IAAIzyB,IAAK,OAAOA,EAChe,SAAS++C,GAAG/+C,EAAEC,GAAG,GAAG,aAAaD,EAAE3F,KAAK,MAAM8yB,MAAMsF,EAAE,GAAG,oBAAoBp/B,OAAOiC,UAAUC,SAASC,KAAKyK,GAAG,qBAAqB5M,OAAOyF,KAAKmH,GAAGxH,KAAK,MAAM,IAAIwH,IAClK,SAAS++C,GAAGh/C,GAAG,SAASC,EAAEA,EAAEqwB,GAAG,GAAGtwB,EAAE,CAAC,IAAI4T,EAAE3T,EAAEg/C,WAAW,OAAOrrC,GAAGA,EAAEsrC,WAAW5uB,EAAErwB,EAAEg/C,WAAW3uB,GAAGrwB,EAAEk/C,YAAYl/C,EAAEg/C,WAAW3uB,EAAEA,EAAE4uB,WAAW,KAAK5uB,EAAE6S,MAAM,GAAG,SAAS7S,EAAEA,EAAE1c,GAAG,IAAI5T,EAAE,OAAO,KAAK,KAAK,OAAO4T,GAAG3T,EAAEqwB,EAAE1c,GAAGA,EAAEA,EAAE8vB,QAAQ,OAAO,KAAK,SAAS9vB,EAAE5T,EAAEC,GAAG,IAAID,EAAE,IAAI5F,IAAI,OAAO6F,GAAG,OAAOA,EAAEhL,IAAI+K,EAAEhJ,IAAIiJ,EAAEhL,IAAIgL,GAAGD,EAAEhJ,IAAIiJ,EAAErJ,MAAMqJ,GAAGA,EAAEA,EAAEyjC,QAAQ,OAAO1jC,EAAE,SAASnD,EAAEmD,EAAEC,GAAsC,OAAnCD,EAAEo/C,GAAGp/C,EAAEC,IAAKrJ,MAAM,EAAEoJ,EAAE0jC,QAAQ,KAAY1jC,EAAE,SAASqM,EAAEpM,EAAEqwB,EAAE1c,GAAa,OAAV3T,EAAErJ,MAAMgd,EAAM5T,EAA4B,QAAjB4T,EAAE3T,EAAEgjC,YAA6BrvB,EAAEA,EAAEhd,OAAQ05B,GAAGrwB,EAAEkjC,MAAM,EACpf7S,GAAG1c,GAAE3T,EAAEkjC,MAAM,EAAS7S,GADoaA,EACla,SAASyB,EAAE9xB,GAAsC,OAAnCD,GAAG,OAAOC,EAAEgjC,YAAYhjC,EAAEkjC,MAAM,GAAUljC,EAAE,SAAS6xB,EAAE9xB,EAAEC,EAAEqwB,EAAE1c,GAAG,OAAG,OAAO3T,GAAG,IAAIA,EAAExD,MAAWwD,EAAEo/C,GAAG/uB,EAAEtwB,EAAEs/C,KAAK1rC,IAAKsvB,OAAOljC,EAAEC,KAAEA,EAAEpD,EAAEoD,EAAEqwB,IAAK4S,OAAOljC,EAASC,GAAE,SAAS0T,EAAE3T,EAAEC,EAAEqwB,EAAE1c,GAAG,OAAG,OAAO3T,GAAGA,EAAEs/C,cAAcjvB,EAAEj2B,OAAYuZ,EAAE/W,EAAEoD,EAAEqwB,EAAE/sB,QAASopB,IAAIkyB,GAAG7+C,EAAEC,EAAEqwB,GAAG1c,EAAEsvB,OAAOljC,EAAE4T,KAAEA,EAAE4rC,GAAGlvB,EAAEj2B,KAAKi2B,EAAEr7B,IAAIq7B,EAAE/sB,MAAM,KAAKvD,EAAEs/C,KAAK1rC,IAAK+Y,IAAIkyB,GAAG7+C,EAAEC,EAAEqwB,GAAG1c,EAAEsvB,OAAOljC,EAAS4T,GAAE,SAASha,EAAEoG,EAAEC,EAAEqwB,EAAE1c,GAAG,OAAG,OAAO3T,GAAG,IAAIA,EAAExD,KAAKwD,EAAEuhC,UAAUkE,gBAAgBpV,EAAEoV,eAAezlC,EAAEuhC,UAAUie,iBAAiBnvB,EAAEmvB,iBAAsBx/C,EACrgBy/C,GAAGpvB,EAAEtwB,EAAEs/C,KAAK1rC,IAAKsvB,OAAOljC,EAAEC,KAAEA,EAAEpD,EAAEoD,EAAEqwB,EAAE72B,UAAU,KAAMypC,OAAOljC,EAASC,GAAE,SAAS5K,EAAE2K,EAAEC,EAAEqwB,EAAE1c,EAAEvH,GAAG,OAAG,OAAOpM,GAAG,IAAIA,EAAExD,MAAWwD,EAAE0/C,GAAGrvB,EAAEtwB,EAAEs/C,KAAK1rC,EAAEvH,IAAK62B,OAAOljC,EAAEC,KAAEA,EAAEpD,EAAEoD,EAAEqwB,IAAK4S,OAAOljC,EAASC,GAAE,SAASuwB,EAAExwB,EAAEC,EAAEqwB,GAAG,GAAG,kBAAkBrwB,GAAG,kBAAkBA,EAAE,OAAOA,EAAEo/C,GAAG,GAAGp/C,EAAED,EAAEs/C,KAAKhvB,IAAK4S,OAAOljC,EAAEC,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEgyB,UAAU,KAAKwF,EAAG,OAAOnH,EAAEkvB,GAAGv/C,EAAE5F,KAAK4F,EAAEhL,IAAIgL,EAAEsD,MAAM,KAAKvD,EAAEs/C,KAAKhvB,IAAK3D,IAAIkyB,GAAG7+C,EAAE,KAAKC,GAAGqwB,EAAE4S,OAAOljC,EAAEswB,EAAE,KAAKoH,EAAG,OAAOz3B,EAAEy/C,GAAGz/C,EAAED,EAAEs/C,KAAKhvB,IAAK4S,OAAOljC,EAAEC,EAAE,GAAG2+C,GAAG3+C,IAAI24B,EAAG34B,GAAG,OAAOA,EAAE0/C,GAAG1/C,EACnfD,EAAEs/C,KAAKhvB,EAAE,OAAQ4S,OAAOljC,EAAEC,EAAE8+C,GAAG/+C,EAAEC,GAAG,OAAO,KAAK,SAASc,EAAEf,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAE,OAAOoD,EAAEA,EAAEhL,IAAI,KAAK,GAAG,kBAAkBq7B,GAAG,kBAAkBA,EAAE,OAAO,OAAOzzB,EAAE,KAAKi1B,EAAE9xB,EAAEC,EAAE,GAAGqwB,EAAE1c,GAAG,GAAG,kBAAkB0c,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE2B,UAAU,KAAKwF,EAAG,OAAOnH,EAAEr7B,MAAM4H,EAAEyzB,EAAEj2B,OAAOs9B,EAAGtiC,EAAE2K,EAAEC,EAAEqwB,EAAE/sB,MAAM9J,SAASma,EAAE/W,GAAG8W,EAAE3T,EAAEC,EAAEqwB,EAAE1c,GAAG,KAAK,KAAK8jB,EAAG,OAAOpH,EAAEr7B,MAAM4H,EAAEjD,EAAEoG,EAAEC,EAAEqwB,EAAE1c,GAAG,KAAK,GAAGgrC,GAAGtuB,IAAIsI,EAAGtI,GAAG,OAAO,OAAOzzB,EAAE,KAAKxH,EAAE2K,EAAEC,EAAEqwB,EAAE1c,EAAE,MAAMmrC,GAAG/+C,EAAEswB,GAAG,OAAO,KAAK,SAASQ,EAAE9wB,EAAEC,EAAEqwB,EAAE1c,EAAE/W,GAAG,GAAG,kBAAkB+W,GAAG,kBAAkBA,EAAE,OACleke,EAAE7xB,EADueD,EAAEA,EAAE/I,IAAIq5B,IACtf,KAAW,GAAG1c,EAAE/W,GAAG,GAAG,kBAAkB+W,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEqe,UAAU,KAAKwF,EAAG,OAAOz3B,EAAEA,EAAE/I,IAAI,OAAO2c,EAAE3e,IAAIq7B,EAAE1c,EAAE3e,MAAM,KAAK2e,EAAEvZ,OAAOs9B,EAAGtiC,EAAE4K,EAAED,EAAE4T,EAAErQ,MAAM9J,SAASoD,EAAE+W,EAAE3e,KAAK0e,EAAE1T,EAAED,EAAE4T,EAAE/W,GAAG,KAAK66B,EAAG,OAA2C99B,EAAEqG,EAAtCD,EAAEA,EAAE/I,IAAI,OAAO2c,EAAE3e,IAAIq7B,EAAE1c,EAAE3e,MAAM,KAAW2e,EAAE/W,GAAG,GAAG+hD,GAAGhrC,IAAIglB,EAAGhlB,GAAG,OAAwBve,EAAE4K,EAAnBD,EAAEA,EAAE/I,IAAIq5B,IAAI,KAAW1c,EAAE/W,EAAE,MAAMkiD,GAAG9+C,EAAE2T,GAAG,OAAO,KAAK,SAAS/G,EAAEhQ,EAAEk1B,EAAED,EAAEne,GAAG,IAAI,IAAI/Z,EAAE,KAAKo2B,EAAE,KAAKE,EAAE6B,EAAE1B,EAAE0B,EAAE,EAAEjC,EAAE,KAAK,OAAOI,GAAGG,EAAEyB,EAAEp9B,OAAO27B,IAAI,CAACH,EAAEt5B,MAAMy5B,GAAGP,EAAEI,EAAEA,EAAE,MAAMJ,EAAEI,EAAEwT,QAAQ,IAAIruC,EAAE0L,EAAElE,EAAEqzB,EAAE4B,EAAEzB,GAAG1c,GAAG,GAAG,OAAOte,EAAE,CAAC,OAAO66B,IAAIA,EAAEJ,GAAG,MAAM9vB,GAAGkwB,GAAG,OACjf76B,EAAE4tC,WAAWhjC,EAAEpD,EAAEqzB,GAAG6B,EAAE1lB,EAAEhX,EAAE08B,EAAE1B,GAAG,OAAOL,EAAEp2B,EAAEvE,EAAE26B,EAAE0T,QAAQruC,EAAE26B,EAAE36B,EAAE66B,EAAEJ,EAAE,GAAGO,IAAIyB,EAAEp9B,OAAO,OAAO47B,EAAEzzB,EAAEqzB,GAAGt2B,EAAE,GAAG,OAAOs2B,EAAE,CAAC,KAAKG,EAAEyB,EAAEp9B,OAAO27B,IAAkB,QAAdH,EAAEM,EAAE3zB,EAAEi1B,EAAEzB,GAAG1c,MAAcoe,EAAE1lB,EAAE6jB,EAAE6B,EAAE1B,GAAG,OAAOL,EAAEp2B,EAAEs2B,EAAEF,EAAE0T,QAAQxT,EAAEF,EAAEE,GAAG,OAAOt2B,EAAE,IAAIs2B,EAAEtc,EAAE/W,EAAEqzB,GAAGG,EAAEyB,EAAEp9B,OAAO27B,IAAsB,QAAlBP,EAAEgB,EAAEZ,EAAErzB,EAAEwzB,EAAEyB,EAAEzB,GAAG1c,MAAc3T,GAAG,OAAO8vB,EAAEmT,WAAW/S,EAAE+U,OAAO,OAAOnV,EAAE76B,IAAIo7B,EAAEP,EAAE76B,KAAK88B,EAAE1lB,EAAEyjB,EAAEiC,EAAE1B,GAAG,OAAOL,EAAEp2B,EAAEk2B,EAAEE,EAAE0T,QAAQ5T,EAAEE,EAAEF,GAA4C,OAAzC9vB,GAAGkwB,EAAEt3B,SAAQ,SAASoH,GAAG,OAAOC,EAAEpD,EAAEmD,MAAYpG,EAAE,SAASw2B,EAAEvzB,EAAEk1B,EAAED,EAAEne,GAAG,IAAI/Z,EAAEg/B,EAAG9G,GAAG,GAAG,oBAAoBl4B,EAAE,MAAMuzB,MAAMsF,EAAE,MAAkB,GAAG,OAAfX,EAAEl4B,EAAEpE,KAAKs8B,IAC1e,MAAM3E,MAAMsF,EAAE,MAAM,IAAI,IAAIzC,EAAEp2B,EAAE,KAAKs2B,EAAE6B,EAAE1B,EAAE0B,EAAE,EAAEjC,EAAE,KAAKz6B,EAAEy8B,EAAEx9B,OAAO,OAAO47B,IAAI76B,EAAEd,KAAK87B,IAAIh7B,EAAEy8B,EAAEx9B,OAAO,CAAC47B,EAAEt5B,MAAMy5B,GAAGP,EAAEI,EAAEA,EAAE,MAAMJ,EAAEI,EAAEwT,QAAQ,IAAItT,EAAErvB,EAAElE,EAAEqzB,EAAE76B,EAAEZ,MAAMkf,GAAG,GAAG,OAAOyc,EAAE,CAAC,OAAOF,IAAIA,EAAEJ,GAAG,MAAM9vB,GAAGkwB,GAAG,OAAOE,EAAE6S,WAAWhjC,EAAEpD,EAAEqzB,GAAG6B,EAAE1lB,EAAE+jB,EAAE2B,EAAE1B,GAAG,OAAOL,EAAEp2B,EAAEw2B,EAAEJ,EAAE0T,QAAQtT,EAAEJ,EAAEI,EAAEF,EAAEJ,EAAE,GAAGz6B,EAAEd,KAAK,OAAO+7B,EAAEzzB,EAAEqzB,GAAGt2B,EAAE,GAAG,OAAOs2B,EAAE,CAAC,MAAM76B,EAAEd,KAAK87B,IAAIh7B,EAAEy8B,EAAEx9B,OAAwB,QAAjBe,EAAEm7B,EAAE3zB,EAAExH,EAAEZ,MAAMkf,MAAcoe,EAAE1lB,EAAEhX,EAAE08B,EAAE1B,GAAG,OAAOL,EAAEp2B,EAAEvE,EAAE26B,EAAE0T,QAAQruC,EAAE26B,EAAE36B,GAAG,OAAOuE,EAAE,IAAIs2B,EAAEtc,EAAE/W,EAAEqzB,IAAI76B,EAAEd,KAAK87B,IAAIh7B,EAAEy8B,EAAEx9B,OAA4B,QAArBe,EAAEy7B,EAAEZ,EAAErzB,EAAEwzB,EAAEh7B,EAAEZ,MAAMkf,MAAc3T,GAAG,OAAO3K,EAAE4tC,WAChf/S,EAAE+U,OAAO,OAAO5vC,EAAEJ,IAAIo7B,EAAEh7B,EAAEJ,KAAK88B,EAAE1lB,EAAEhX,EAAE08B,EAAE1B,GAAG,OAAOL,EAAEp2B,EAAEvE,EAAE26B,EAAE0T,QAAQruC,EAAE26B,EAAE36B,GAA4C,OAAzC2K,GAAGkwB,EAAEt3B,SAAQ,SAASoH,GAAG,OAAOC,EAAEpD,EAAEmD,MAAYpG,EAAE,OAAO,SAASoG,EAAE4T,EAAEvH,EAAEylB,GAAG,IAAIne,EAAE,kBAAkBtH,GAAG,OAAOA,GAAGA,EAAEhS,OAAOs9B,GAAI,OAAOtrB,EAAEpX,IAAI0e,IAAItH,EAAEA,EAAE9I,MAAM9J,UAAU,IAAIG,EAAE,kBAAkByS,GAAG,OAAOA,EAAE,GAAGzS,EAAE,OAAOyS,EAAE4lB,UAAU,KAAKwF,EAAGz3B,EAAE,CAAS,IAARpG,EAAEyS,EAAEpX,IAAQ0e,EAAEC,EAAE,OAAOD,GAAG,CAAC,GAAGA,EAAE1e,MAAM2E,EAAE,CAAC,OAAO+Z,EAAElX,KAAK,KAAK,EAAE,GAAG4P,EAAEhS,OAAOs9B,EAAG,CAACrH,EAAEtwB,EAAE2T,EAAE+vB,UAAS9vB,EAAE/W,EAAE8W,EAAEtH,EAAE9I,MAAM9J,WAAYypC,OAAOljC,EAAEA,EAAE4T,EAAE,MAAM5T,EAAE,MAAM,QAAQ,GAAG2T,EAAE4rC,cAAclzC,EAAEhS,KAAK,CAACi2B,EAAEtwB,EAAE2T,EAAE+vB,UAC5e9vB,EAAE/W,EAAE8W,EAAEtH,EAAE9I,QAASopB,IAAIkyB,GAAG7+C,EAAE2T,EAAEtH,GAAGuH,EAAEsvB,OAAOljC,EAAEA,EAAE4T,EAAE,MAAM5T,GAAGswB,EAAEtwB,EAAE2T,GAAG,MAAW1T,EAAED,EAAE2T,GAAGA,EAAEA,EAAE+vB,QAAQr3B,EAAEhS,OAAOs9B,IAAI/jB,EAAE+rC,GAAGtzC,EAAE9I,MAAM9J,SAASuG,EAAEs/C,KAAKxtB,EAAEzlB,EAAEpX,MAAOiuC,OAAOljC,EAAEA,EAAE4T,KAAIke,EAAE0tB,GAAGnzC,EAAEhS,KAAKgS,EAAEpX,IAAIoX,EAAE9I,MAAM,KAAKvD,EAAEs/C,KAAKxtB,IAAKnF,IAAIkyB,GAAG7+C,EAAE4T,EAAEvH,GAAGylB,EAAEoR,OAAOljC,EAAEA,EAAE8xB,GAAG,OAAOC,EAAE/xB,GAAG,KAAK03B,EAAG13B,EAAE,CAAC,IAAI2T,EAAEtH,EAAEpX,IAAI,OAAO2e,GAAG,CAAC,GAAGA,EAAE3e,MAAM0e,EAAX,CAAa,GAAG,IAAIC,EAAEnX,KAAKmX,EAAE4tB,UAAUkE,gBAAgBr5B,EAAEq5B,eAAe9xB,EAAE4tB,UAAUie,iBAAiBpzC,EAAEozC,eAAe,CAACnvB,EAAEtwB,EAAE4T,EAAE8vB,UAAS9vB,EAAE/W,EAAE+W,EAAEvH,EAAE5S,UAAU,KAAMypC,OAAOljC,EAAEA,EAAE4T,EAAE,MAAM5T,EAAOswB,EAAEtwB,EAAE4T,GAAG,MAAW3T,EAAED,EAAE4T,GAAGA,EAAEA,EAAE8vB,SAAQ9vB,EACpf8rC,GAAGrzC,EAAErM,EAAEs/C,KAAKxtB,IAAKoR,OAAOljC,EAAEA,EAAE4T,EAAE,OAAOme,EAAE/xB,GAAG,GAAG,kBAAkBqM,GAAG,kBAAkBA,EAAE,OAAOA,EAAE,GAAGA,EAAE,OAAOuH,GAAG,IAAIA,EAAEnX,KAAK6zB,EAAEtwB,EAAE4T,EAAE8vB,UAAS9vB,EAAE/W,EAAE+W,EAAEvH,IAAK62B,OAAOljC,EAAEA,EAAE4T,IAAI0c,EAAEtwB,EAAE4T,IAAGA,EAAEyrC,GAAGhzC,EAAErM,EAAEs/C,KAAKxtB,IAAKoR,OAAOljC,EAAEA,EAAE4T,GAAGme,EAAE/xB,GAAG,GAAG4+C,GAAGvyC,GAAG,OAAOQ,EAAE7M,EAAE4T,EAAEvH,EAAEylB,GAAG,GAAG8G,EAAGvsB,GAAG,OAAO+jB,EAAEpwB,EAAE4T,EAAEvH,EAAEylB,GAAc,GAAXl4B,GAAGmlD,GAAG/+C,EAAEqM,GAAM,qBAAqBA,IAAIsH,EAAE,OAAO3T,EAAEvD,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM0wB,MAAMsF,EAAE,IAAI6G,EAAGt5B,EAAE3F,OAAO,cAAe,OAAOi2B,EAAEtwB,EAAE4T,IAAI,IAAIgsC,GAAGZ,IAAG,GAAIa,GAAGb,IAAG,GAAIc,GAAG,GAAGC,GAAG9H,GAAG6H,IAAIE,GAAG/H,GAAG6H,IAAIG,GAAGhI,GAAG6H,IACtd,SAASI,GAAGlgD,GAAG,GAAGA,IAAI8/C,GAAG,MAAM3yB,MAAMsF,EAAE,MAAM,OAAOzyB,EAAE,SAASmgD,GAAGngD,EAAEC,GAAyC,OAAtCyxB,GAAEuuB,GAAGhgD,GAAGyxB,GAAEsuB,GAAGhgD,GAAG0xB,GAAEquB,GAAGD,IAAI9/C,EAAEC,EAAEhC,UAAmB,KAAK,EAAE,KAAK,GAAGgC,GAAGA,EAAEA,EAAEmgD,iBAAiBngD,EAAEi8B,aAAaH,GAAG,KAAK,IAAI,MAAM,QAAkE97B,EAAE87B,GAArC97B,GAAvBD,EAAE,IAAIA,EAAEC,EAAEihC,WAAWjhC,GAAMi8B,cAAc,KAAKl8B,EAAEA,EAAEqgD,SAAkB5uB,GAAEsuB,IAAIruB,GAAEquB,GAAG9/C,GAAG,SAASqgD,KAAK7uB,GAAEsuB,IAAItuB,GAAEuuB,IAAIvuB,GAAEwuB,IAAI,SAASM,GAAGvgD,GAAGkgD,GAAGD,GAAGr6C,SAAS,IAAI3F,EAAEigD,GAAGH,GAAGn6C,SAAa0qB,EAAEyL,GAAG97B,EAAED,EAAE3F,MAAM4F,IAAIqwB,IAAIoB,GAAEsuB,GAAGhgD,GAAG0xB,GAAEquB,GAAGzvB,IAAI,SAASkwB,GAAGxgD,GAAGggD,GAAGp6C,UAAU5F,IAAIyxB,GAAEsuB,IAAItuB,GAAEuuB,KAAK,IAAIttB,GAAEulB,GAAG,GAC9c,SAASwI,GAAGzgD,GAAG,IAAI,IAAIC,EAAED,EAAE,OAAOC,GAAG,CAAC,GAAG,KAAKA,EAAExD,IAAI,CAAC,IAAI6zB,EAAErwB,EAAEojC,cAAc,GAAG,OAAO/S,IAAmB,QAAfA,EAAEA,EAAEgT,aAAqB,OAAOhT,EAAE74B,MAAM,OAAO64B,EAAE74B,MAAM,OAAOwI,OAAO,GAAG,KAAKA,EAAExD,UAAK,IAASwD,EAAEygD,cAAcC,aAAa,GAAG,KAAa,GAAR1gD,EAAEkjC,OAAU,OAAOljC,OAAO,GAAG,OAAOA,EAAEwjC,MAAM,CAACxjC,EAAEwjC,MAAMP,OAAOjjC,EAAEA,EAAEA,EAAEwjC,MAAM,SAAS,GAAGxjC,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAEyjC,SAAS,CAAC,GAAG,OAAOzjC,EAAEijC,QAAQjjC,EAAEijC,SAASljC,EAAE,OAAO,KAAKC,EAAEA,EAAEijC,OAAOjjC,EAAEyjC,QAAQR,OAAOjjC,EAAEijC,OAAOjjC,EAAEA,EAAEyjC,QAAQ,OAAO,KAAK,IAAIkd,GAAG,KAAKC,GAAG,KAAKC,IAAG,EACpd,SAASC,GAAG/gD,EAAEC,GAAG,IAAIqwB,EAAE0wB,GAAG,EAAE,KAAK,KAAK,GAAG1wB,EAAEivB,YAAY,UAAUjvB,EAAEj2B,KAAK,UAAUi2B,EAAEkR,UAAUvhC,EAAEqwB,EAAE4S,OAAOljC,EAAEswB,EAAE6S,MAAM,EAAE,OAAOnjC,EAAEi/C,YAAYj/C,EAAEi/C,WAAWC,WAAW5uB,EAAEtwB,EAAEi/C,WAAW3uB,GAAGtwB,EAAEm/C,YAAYn/C,EAAEi/C,WAAW3uB,EAAE,SAAS2wB,GAAGjhD,EAAEC,GAAG,OAAOD,EAAEvD,KAAK,KAAK,EAAE,IAAI6zB,EAAEtwB,EAAE3F,KAAyE,OAAO,QAA3E4F,EAAE,IAAIA,EAAEhC,UAAUqyB,EAAEuG,gBAAgB52B,EAAEw5B,SAAS5C,cAAc,KAAK52B,KAAmBD,EAAEwhC,UAAUvhC,GAAE,GAAO,KAAK,EAAE,OAAoD,QAA7CA,EAAE,KAAKD,EAAEkhD,cAAc,IAAIjhD,EAAEhC,SAAS,KAAKgC,KAAYD,EAAEwhC,UAAUvhC,GAAE,GAAO,KAAK,GAAY,QAAQ,OAAM,GACve,SAASkhD,GAAGnhD,GAAG,GAAG8gD,GAAG,CAAC,IAAI7gD,EAAE4gD,GAAG,GAAG5gD,EAAE,CAAC,IAAIqwB,EAAErwB,EAAE,IAAIghD,GAAGjhD,EAAEC,GAAG,CAAqB,KAApBA,EAAEs3C,GAAGjnB,EAAEsjB,gBAAqBqN,GAAGjhD,EAAEC,GAAuC,OAAnCD,EAAEmjC,OAAe,KAATnjC,EAAEmjC,MAAY,EAAE2d,IAAG,OAAGF,GAAG5gD,GAAS+gD,GAAGH,GAAGtwB,GAAGswB,GAAG5gD,EAAE6gD,GAAGtJ,GAAGt3C,EAAEo8B,iBAAiBr8B,EAAEmjC,OAAe,KAATnjC,EAAEmjC,MAAY,EAAE2d,IAAG,EAAGF,GAAG5gD,GAAG,SAASohD,GAAGphD,GAAG,IAAIA,EAAEA,EAAEkjC,OAAO,OAAOljC,GAAG,IAAIA,EAAEvD,KAAK,IAAIuD,EAAEvD,KAAK,KAAKuD,EAAEvD,KAAKuD,EAAEA,EAAEkjC,OAAO0d,GAAG5gD,EAC5S,SAASqhD,GAAGrhD,GAAG,GAAGA,IAAI4gD,GAAG,OAAM,EAAG,IAAIE,GAAG,OAAOM,GAAGphD,GAAG8gD,IAAG,GAAG,EAAG,IAAI7gD,EAAED,EAAE3F,KAAK,GAAG,IAAI2F,EAAEvD,KAAK,SAASwD,GAAG,SAASA,IAAI+H,GAAG/H,EAAED,EAAE0gD,eAAe,IAAIzgD,EAAE4gD,GAAG5gD,GAAG8gD,GAAG/gD,EAAEC,GAAGA,EAAEs3C,GAAGt3C,EAAE2zC,aAAmB,GAANwN,GAAGphD,GAAM,KAAKA,EAAEvD,IAAI,CAAgD,KAA7BuD,EAAE,QAApBA,EAAEA,EAAEqjC,eAAyBrjC,EAAEsjC,WAAW,MAAW,MAAMnW,MAAMsF,EAAE,MAAMzyB,EAAE,CAAiB,IAAhBA,EAAEA,EAAE4zC,YAAgB3zC,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAE/B,SAAS,CAAC,IAAIqyB,EAAEtwB,EAAEvI,KAAK,GAAG,OAAO64B,EAAE,CAAC,GAAG,IAAIrwB,EAAE,CAAC4gD,GAAGtJ,GAAGv3C,EAAE4zC,aAAa,MAAM5zC,EAAEC,QAAQ,MAAMqwB,GAAG,OAAOA,GAAG,OAAOA,GAAGrwB,IAAID,EAAEA,EAAE4zC,YAAYiN,GAAG,WAAWA,GAAGD,GAAGrJ,GAAGv3C,EAAEwhC,UAAUoS,aAAa,KAAK,OAAM,EACtf,SAAS0N,KAAKT,GAAGD,GAAG,KAAKE,IAAG,EAAG,IAAIS,GAAG,GAAG,SAASC,KAAK,IAAI,IAAIxhD,EAAE,EAAEA,EAAEuhD,GAAG7sD,OAAOsL,IAAIuhD,GAAGvhD,GAAGyhD,8BAA8B,KAAKF,GAAG7sD,OAAO,EAAE,IAAIgtD,GAAGlqB,EAAGvE,uBAAuB0uB,GAAGnqB,EAAGtE,wBAAwB0uB,GAAG,EAAE9uB,GAAE,KAAKC,GAAE,KAAKC,GAAE,KAAK6uB,IAAG,EAAGC,IAAG,EAAG,SAASC,KAAK,MAAM50B,MAAMsF,EAAE,MAAO,SAASuvB,GAAGhiD,EAAEC,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAIqwB,EAAE,EAAEA,EAAErwB,EAAEvL,QAAQ47B,EAAEtwB,EAAEtL,OAAO47B,IAAI,IAAIgjB,GAAGtzC,EAAEswB,GAAGrwB,EAAEqwB,IAAI,OAAM,EAAG,OAAM,EAC9X,SAAS2xB,GAAGjiD,EAAEC,EAAEqwB,EAAE1c,EAAE/W,EAAEwP,GAAyH,GAAtHu1C,GAAGv1C,EAAEymB,GAAE7yB,EAAEA,EAAEojC,cAAc,KAAKpjC,EAAEq8C,YAAY,KAAKr8C,EAAE87C,MAAM,EAAE2F,GAAG97C,QAAQ,OAAO5F,GAAG,OAAOA,EAAEqjC,cAAc6e,GAAGC,GAAGniD,EAAEswB,EAAE1c,EAAE/W,GAAMilD,GAAG,CAACz1C,EAAE,EAAE,EAAE,CAAO,GAANy1C,IAAG,IAAQ,GAAGz1C,GAAG,MAAM8gB,MAAMsF,EAAE,MAAMpmB,GAAG,EAAE2mB,GAAED,GAAE,KAAK9yB,EAAEq8C,YAAY,KAAKoF,GAAG97C,QAAQw8C,GAAGpiD,EAAEswB,EAAE1c,EAAE/W,SAASilD,IAAkE,GAA9DJ,GAAG97C,QAAQy8C,GAAGpiD,EAAE,OAAO8yB,IAAG,OAAOA,GAAEz+B,KAAKstD,GAAG,EAAE5uB,GAAED,GAAED,GAAE,KAAK+uB,IAAG,EAAM5hD,EAAE,MAAMktB,MAAMsF,EAAE,MAAM,OAAOzyB,EAAE,SAASsiD,KAAK,IAAItiD,EAAE,CAACqjC,cAAc,KAAKkZ,UAAU,KAAKgG,UAAU,KAAKC,MAAM,KAAKluD,KAAK,MAA8C,OAAxC,OAAO0+B,GAAEF,GAAEuQ,cAAcrQ,GAAEhzB,EAAEgzB,GAAEA,GAAE1+B,KAAK0L,EAASgzB,GAC/e,SAASyvB,KAAK,GAAG,OAAO1vB,GAAE,CAAC,IAAI/yB,EAAE8yB,GAAEmQ,UAAUjjC,EAAE,OAAOA,EAAEA,EAAEqjC,cAAc,UAAUrjC,EAAE+yB,GAAEz+B,KAAK,IAAI2L,EAAE,OAAO+yB,GAAEF,GAAEuQ,cAAcrQ,GAAE1+B,KAAK,GAAG,OAAO2L,EAAE+yB,GAAE/yB,EAAE8yB,GAAE/yB,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMmtB,MAAMsF,EAAE,MAAUzyB,EAAE,CAACqjC,eAAPtQ,GAAE/yB,GAAqBqjC,cAAckZ,UAAUxpB,GAAEwpB,UAAUgG,UAAUxvB,GAAEwvB,UAAUC,MAAMzvB,GAAEyvB,MAAMluD,KAAK,MAAM,OAAO0+B,GAAEF,GAAEuQ,cAAcrQ,GAAEhzB,EAAEgzB,GAAEA,GAAE1+B,KAAK0L,EAAE,OAAOgzB,GAAE,SAAS0vB,GAAG1iD,EAAEC,GAAG,MAAM,oBAAoBA,EAAEA,EAAED,GAAGC,EACvY,SAAS0iD,GAAG3iD,GAAG,IAAIC,EAAEwiD,KAAKnyB,EAAErwB,EAAEuiD,MAAM,GAAG,OAAOlyB,EAAE,MAAMnD,MAAMsF,EAAE,MAAMnC,EAAEsyB,oBAAoB5iD,EAAE,IAAI4T,EAAEmf,GAAEl2B,EAAE+W,EAAE2uC,UAAUl2C,EAAEikB,EAAEqsB,QAAQ,GAAG,OAAOtwC,EAAE,CAAC,GAAG,OAAOxP,EAAE,CAAC,IAAIk1B,EAAEl1B,EAAEvI,KAAKuI,EAAEvI,KAAK+X,EAAE/X,KAAK+X,EAAE/X,KAAKy9B,EAAEne,EAAE2uC,UAAU1lD,EAAEwP,EAAEikB,EAAEqsB,QAAQ,KAAK,GAAG,OAAO9/C,EAAE,CAACA,EAAEA,EAAEvI,KAAKsf,EAAEA,EAAE2oC,UAAU,IAAIzqB,EAAEC,EAAE1lB,EAAE,KAAKsH,EAAE9W,EAAE,EAAE,CAAC,IAAIjD,EAAE+Z,EAAEqpC,KAAK,IAAI4E,GAAGhoD,KAAKA,EAAE,OAAOk4B,IAAIA,EAAEA,EAAEx9B,KAAK,CAAC0oD,KAAK,EAAE6F,OAAOlvC,EAAEkvC,OAAOC,aAAanvC,EAAEmvC,aAAaC,WAAWpvC,EAAEovC,WAAWzuD,KAAK,OAAOsf,EAAED,EAAEmvC,eAAe9iD,EAAE2T,EAAEovC,WAAW/iD,EAAE4T,EAAED,EAAEkvC,YAAY,CAAC,IAAIxtD,EAAE,CAAC2nD,KAAKpjD,EAAEipD,OAAOlvC,EAAEkvC,OAAOC,aAAanvC,EAAEmvC,aAC9fC,WAAWpvC,EAAEovC,WAAWzuD,KAAK,MAAM,OAAOw9B,GAAGC,EAAED,EAAEz8B,EAAEgX,EAAEuH,GAAGke,EAAEA,EAAEx9B,KAAKe,EAAEy9B,GAAEipB,OAAOniD,EAAE0jD,IAAI1jD,EAAE+Z,EAAEA,EAAErf,WAAW,OAAOqf,GAAGA,IAAI9W,GAAG,OAAOi1B,EAAEzlB,EAAEuH,EAAEke,EAAEx9B,KAAKy9B,EAAEuhB,GAAG1/B,EAAE3T,EAAEojC,iBAAiB2Y,IAAG,GAAI/7C,EAAEojC,cAAczvB,EAAE3T,EAAEs8C,UAAUlwC,EAAEpM,EAAEsiD,UAAUzwB,EAAExB,EAAE0yB,kBAAkBpvC,EAAE,MAAM,CAAC3T,EAAEojC,cAAc/S,EAAE2yB,UACtQ,SAASC,GAAGljD,GAAG,IAAIC,EAAEwiD,KAAKnyB,EAAErwB,EAAEuiD,MAAM,GAAG,OAAOlyB,EAAE,MAAMnD,MAAMsF,EAAE,MAAMnC,EAAEsyB,oBAAoB5iD,EAAE,IAAI4T,EAAE0c,EAAE2yB,SAASpmD,EAAEyzB,EAAEqsB,QAAQtwC,EAAEpM,EAAEojC,cAAc,GAAG,OAAOxmC,EAAE,CAACyzB,EAAEqsB,QAAQ,KAAK,IAAI5qB,EAAEl1B,EAAEA,EAAEvI,KAAK,GAAG+X,EAAErM,EAAEqM,EAAE0lB,EAAE8wB,QAAQ9wB,EAAEA,EAAEz9B,WAAWy9B,IAAIl1B,GAAGy2C,GAAGjnC,EAAEpM,EAAEojC,iBAAiB2Y,IAAG,GAAI/7C,EAAEojC,cAAch3B,EAAE,OAAOpM,EAAEsiD,YAAYtiD,EAAEs8C,UAAUlwC,GAAGikB,EAAE0yB,kBAAkB32C,EAAE,MAAM,CAACA,EAAEuH,GACnV,SAASuvC,GAAGnjD,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE3T,EAAEmjD,YAAYxvC,EAAEA,EAAE3T,EAAEojD,SAAS,IAAIxmD,EAAEoD,EAAEwhD,8BAAyI,GAAxG,OAAO5kD,EAAEmD,EAAEnD,IAAI+W,GAAU5T,EAAEA,EAAEsjD,kBAAiBtjD,GAAG4hD,GAAG5hD,KAAKA,KAAEC,EAAEwhD,8BAA8B7tC,EAAE2tC,GAAG/sD,KAAKyL,KAAMD,EAAE,OAAOswB,EAAErwB,EAAEojD,SAAoB,MAAX9B,GAAG/sD,KAAKyL,GAASktB,MAAMsF,EAAE,MACzP,SAAS8wB,GAAGvjD,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAE2mD,GAAE,GAAG,OAAO3mD,EAAE,MAAMswB,MAAMsF,EAAE,MAAM,IAAIpmB,EAAEpM,EAAEmjD,YAAYrxB,EAAE1lB,EAAEpM,EAAEojD,SAASvxB,EAAE4vB,GAAG97C,QAAQ+N,EAAEme,EAAE2D,UAAS,WAAW,OAAO0tB,GAAGtmD,EAAEoD,EAAEqwB,MAAK12B,EAAE+Z,EAAE,GAAGte,EAAEse,EAAE,GAAGA,EAAEqf,GAAE,IAAIxC,EAAExwB,EAAEqjC,cAActiC,EAAEyvB,EAAEQ,KAAKF,EAAE/vB,EAAE0iD,YAAY52C,EAAE2jB,EAAEv3B,OAAOu3B,EAAEA,EAAEkzB,UAAU,IAAItzB,EAAE0C,GACuO,OADrO9yB,EAAEqjC,cAAc,CAACrS,KAAKjwB,EAAE9H,OAAOgH,EAAEyjD,UAAU9vC,GAAGke,EAAEqD,WAAU,WAAWp0B,EAAE0iD,YAAYnzB,EAAEvvB,EAAE4iD,YAAY/pD,EAAE,IAAIoG,EAAEqM,EAAEpM,EAAEojD,SAAS,IAAI/P,GAAGvhB,EAAE/xB,GAAG,CAACA,EAAEswB,EAAErwB,EAAEojD,SAAS/P,GAAGj+C,EAAE2K,KAAKpG,EAAEoG,GAAGA,EAAE69C,GAAGztB,GAAGvzB,EAAEymD,kBAAkBtjD,EAAEnD,EAAE4qC,cAAcznC,EAAEnD,EAAEymD,iBAAiBzmD,EAAEirC,gBAAgB9nC,EAAE,IAAI,IAAI4T,EAC5f/W,EAAEkrC,cAAcjW,EAAE9xB,EAAE,EAAE8xB,GAAG,CAAC,IAAIne,EAAE,GAAGk0B,GAAG/V,GAAGrqB,EAAE,GAAGkM,EAAEC,EAAED,IAAI3T,EAAE8xB,IAAIrqB,MAAK,CAAC6oB,EAAErwB,EAAE2T,IAAIke,EAAEqD,WAAU,WAAW,OAAOvhB,EAAE3T,EAAEojD,SAAQ,WAAW,IAAIrjD,EAAEe,EAAE0iD,YAAYnzB,EAAEvvB,EAAE4iD,YAAY,IAAIrzB,EAAEtwB,EAAEC,EAAEojD,UAAU,IAAIzvC,EAAEiqC,GAAGztB,GAAGvzB,EAAEymD,kBAAkB1vC,EAAE/W,EAAE4qC,aAAa,MAAM3X,GAAGQ,GAAE,WAAW,MAAMR,WAAS,CAAC7vB,EAAE2T,IAAI0/B,GAAGxiB,EAAER,IAAIgjB,GAAGzmC,EAAE5M,IAAIqzC,GAAG9iB,EAAE5c,MAAK5T,EAAE,CAAC28C,QAAQ,KAAKsG,SAAS,KAAKL,oBAAoBF,GAAGM,kBAAkB3tD,IAAK4tD,SAASrpD,EAAEgqD,GAAGtvB,KAAK,KAAKxB,GAAE9yB,GAAG2T,EAAE6uC,MAAMxiD,EAAE2T,EAAE4uC,UAAU,KAAKltD,EAAE8tD,GAAGtmD,EAAEoD,EAAEqwB,GAAG3c,EAAE0vB,cAAc1vB,EAAE4oC,UAAUlnD,GAAUA,EACte,SAASwuD,GAAG7jD,EAAEC,EAAEqwB,GAAc,OAAOizB,GAAZd,KAAiBziD,EAAEC,EAAEqwB,GAAG,SAASwzB,GAAG9jD,GAAG,IAAIC,EAAEqiD,KAAmL,MAA9K,oBAAoBtiD,IAAIA,EAAEA,KAAKC,EAAEojC,cAAcpjC,EAAEs8C,UAAUv8C,EAAoFA,GAAlFA,EAAEC,EAAEuiD,MAAM,CAAC7F,QAAQ,KAAKsG,SAAS,KAAKL,oBAAoBF,GAAGM,kBAAkBhjD,IAAOijD,SAASW,GAAGtvB,KAAK,KAAKxB,GAAE9yB,GAAS,CAACC,EAAEojC,cAAcrjC,GAChR,SAAS+jD,GAAG/jD,EAAEC,EAAEqwB,EAAE1c,GAAkO,OAA/N5T,EAAE,CAACvD,IAAIuD,EAAEoE,OAAOnE,EAAEssB,QAAQ+D,EAAE0zB,KAAKpwC,EAAEtf,KAAK,MAAsB,QAAhB2L,EAAE6yB,GAAEwpB,cAAsBr8C,EAAE,CAACg/C,WAAW,MAAMnsB,GAAEwpB,YAAYr8C,EAAEA,EAAEg/C,WAAWj/C,EAAE1L,KAAK0L,GAAmB,QAAfswB,EAAErwB,EAAEg/C,YAAoBh/C,EAAEg/C,WAAWj/C,EAAE1L,KAAK0L,GAAG4T,EAAE0c,EAAEh8B,KAAKg8B,EAAEh8B,KAAK0L,EAAEA,EAAE1L,KAAKsf,EAAE3T,EAAEg/C,WAAWj/C,GAAWA,EAAE,SAASikD,GAAGjkD,GAA4B,OAAdA,EAAE,CAAC4F,QAAQ5F,GAAhBsiD,KAA4Bjf,cAAcrjC,EAAE,SAASkkD,KAAK,OAAOzB,KAAKpf,cAAc,SAAS8gB,GAAGnkD,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAEylD,KAAKxvB,GAAEqQ,OAAOnjC,EAAEnD,EAAEwmC,cAAc0gB,GAAG,EAAE9jD,EAAEqwB,OAAE,OAAO,IAAS1c,EAAE,KAAKA,GACjc,SAASwwC,GAAGpkD,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAE4lD,KAAK7uC,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIvH,OAAE,EAAO,GAAG,OAAO0mB,GAAE,CAAC,IAAIhB,EAAEgB,GAAEsQ,cAA0B,GAAZh3B,EAAE0lB,EAAExF,QAAW,OAAO3Y,GAAGouC,GAAGpuC,EAAEme,EAAEiyB,MAAmB,YAAZD,GAAG9jD,EAAEqwB,EAAEjkB,EAAEuH,GAAWkf,GAAEqQ,OAAOnjC,EAAEnD,EAAEwmC,cAAc0gB,GAAG,EAAE9jD,EAAEqwB,EAAEjkB,EAAEuH,GAAG,SAASywC,GAAGrkD,EAAEC,GAAG,OAAOkkD,GAAG,IAAI,EAAEnkD,EAAEC,GAAG,SAASqkD,GAAGtkD,EAAEC,GAAG,OAAOmkD,GAAG,IAAI,EAAEpkD,EAAEC,GAAG,SAASskD,GAAGvkD,EAAEC,GAAG,OAAOmkD,GAAG,EAAE,EAAEpkD,EAAEC,GAAG,SAASukD,GAAGxkD,EAAEC,GAAG,MAAG,oBAAoBA,GAASD,EAAEA,IAAIC,EAAED,GAAG,WAAWC,EAAE,QAAU,OAAOA,QAAG,IAASA,GAASD,EAAEA,IAAIC,EAAE2F,QAAQ5F,EAAE,WAAWC,EAAE2F,QAAQ,YAAtE,EACxY,SAAS6+C,GAAGzkD,EAAEC,EAAEqwB,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEnwB,OAAO,CAACH,IAAI,KAAYokD,GAAG,EAAE,EAAEI,GAAGlwB,KAAK,KAAKr0B,EAAED,GAAGswB,GAAG,SAASo0B,MAAM,SAASC,GAAG3kD,EAAEC,GAAG,IAAIqwB,EAAEmyB,KAAKxiD,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI2T,EAAE0c,EAAE+S,cAAc,OAAG,OAAOzvB,GAAG,OAAO3T,GAAG+hD,GAAG/hD,EAAE2T,EAAE,IAAWA,EAAE,IAAG0c,EAAE+S,cAAc,CAACrjC,EAAEC,GAAUD,GAAE,SAAS4kD,GAAG5kD,EAAEC,GAAG,IAAIqwB,EAAEmyB,KAAKxiD,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI2T,EAAE0c,EAAE+S,cAAc,OAAG,OAAOzvB,GAAG,OAAO3T,GAAG+hD,GAAG/hD,EAAE2T,EAAE,IAAWA,EAAE,IAAG5T,EAAEA,IAAIswB,EAAE+S,cAAc,CAACrjC,EAAEC,GAAUD,GACzZ,SAAS6kD,GAAG7kD,EAAEC,GAAG,IAAIqwB,EAAEsqB,KAAKE,GAAG,GAAGxqB,EAAE,GAAGA,GAAE,WAAWtwB,GAAE,MAAM86C,GAAG,GAAGxqB,EAAE,GAAGA,GAAE,WAAW,IAAIA,EAAEqxB,GAAGxuB,WAAWwuB,GAAGxuB,WAAW,EAAE,IAAInzB,GAAE,GAAIC,IAAV,QAAsB0hD,GAAGxuB,WAAW7C,MAC5J,SAASszB,GAAG5jD,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAEgqC,KAAK/gD,EAAEghD,GAAG79C,GAAGqM,EAAE,CAAC2wC,KAAKngD,EAAEgmD,OAAOvyB,EAAEwyB,aAAa,KAAKC,WAAW,KAAKzuD,KAAK,MAAMy9B,EAAE9xB,EAAE08C,QAA6E,GAArE,OAAO5qB,EAAE1lB,EAAE/X,KAAK+X,GAAGA,EAAE/X,KAAKy9B,EAAEz9B,KAAKy9B,EAAEz9B,KAAK+X,GAAGpM,EAAE08C,QAAQtwC,EAAE0lB,EAAE/xB,EAAEijC,UAAajjC,IAAI8yB,IAAG,OAAOf,GAAGA,IAAIe,GAAEgvB,GAAGD,IAAG,MAAO,CAAC,GAAG,IAAI7hD,EAAE+7C,QAAQ,OAAOhqB,GAAG,IAAIA,EAAEgqB,QAAiC,QAAxBhqB,EAAE9xB,EAAE2iD,qBAA8B,IAAI,IAAI9wB,EAAE7xB,EAAE+iD,kBAAkBrvC,EAAEoe,EAAED,EAAExB,GAAmC,GAAhCjkB,EAAEy2C,aAAa/wB,EAAE1lB,EAAE02C,WAAWpvC,EAAK2/B,GAAG3/B,EAAEme,GAAG,OAAO,MAAMl4B,IAAakkD,GAAG99C,EAAEnD,EAAE+W,IAC9Z,IAAIyuC,GAAG,CAACyC,YAAY7I,GAAGjnB,YAAY+sB,GAAG9sB,WAAW8sB,GAAG5sB,UAAU4sB,GAAG3sB,oBAAoB2sB,GAAG1sB,gBAAgB0sB,GAAGzsB,QAAQysB,GAAGxsB,WAAWwsB,GAAGvsB,OAAOusB,GAAGtsB,SAASssB,GAAG7sB,cAAc6sB,GAAGgD,iBAAiBhD,GAAGiD,cAAcjD,GAAGkD,iBAAiBlD,GAAGmD,oBAAoBnD,GAAGoD,0BAAyB,GAAIjD,GAAG,CAAC4C,YAAY7I,GAAGjnB,YAAY,SAASh1B,EAAEC,GAA4C,OAAzCqiD,KAAKjf,cAAc,CAACrjC,OAAE,IAASC,EAAE,KAAKA,GAAUD,GAAGi1B,WAAWgnB,GAAG9mB,UAAUkvB,GAAGjvB,oBAAoB,SAASp1B,EAAEC,EAAEqwB,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEnwB,OAAO,CAACH,IAAI,KAAYmkD,GAAG,EAAE,EAAEK,GAAGlwB,KAAK,KACvfr0B,EAAED,GAAGswB,IAAI+E,gBAAgB,SAASr1B,EAAEC,GAAG,OAAOkkD,GAAG,EAAE,EAAEnkD,EAAEC,IAAIq1B,QAAQ,SAASt1B,EAAEC,GAAG,IAAIqwB,EAAEgyB,KAAqD,OAAhDriD,OAAE,IAASA,EAAE,KAAKA,EAAED,EAAEA,IAAIswB,EAAE+S,cAAc,CAACrjC,EAAEC,GAAUD,GAAGu1B,WAAW,SAASv1B,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE0uC,KAAuK,OAAlKriD,OAAE,IAASqwB,EAAEA,EAAErwB,GAAGA,EAAE2T,EAAEyvB,cAAczvB,EAAE2oC,UAAUt8C,EAAmFD,GAAjFA,EAAE4T,EAAE4uC,MAAM,CAAC7F,QAAQ,KAAKsG,SAAS,KAAKL,oBAAoB5iD,EAAEgjD,kBAAkB/iD,IAAOgjD,SAASW,GAAGtvB,KAAK,KAAKxB,GAAE9yB,GAAS,CAAC4T,EAAEyvB,cAAcrjC,IAAIw1B,OAAOyuB,GAAGxuB,SAASquB,GAAG5uB,cAAcwvB,GAAGK,iBAAiB,SAAS/kD,GAAG,IAAIC,EAAE6jD,GAAG9jD,GAAGswB,EAAErwB,EAAE,GAAG2T,EAAE3T,EAAE,GAC5Z,OAD+ZokD,IAAG,WAAW,IAAIpkD,EAAE0hD,GAAGxuB,WAC9ewuB,GAAGxuB,WAAW,EAAE,IAAIvf,EAAE5T,GAAN,QAAiB2hD,GAAGxuB,WAAWlzB,KAAI,CAACD,IAAWswB,GAAG00B,cAAc,WAAW,IAAIhlD,EAAE8jD,IAAG,GAAI7jD,EAAED,EAAE,GAA8B,OAANikD,GAArBjkD,EAAE6kD,GAAGvwB,KAAK,KAAKt0B,EAAE,KAAgB,CAACA,EAAEC,IAAIglD,iBAAiB,SAASjlD,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE0uC,KAAkF,OAA7E1uC,EAAEyvB,cAAc,CAACrS,KAAK,CAACyyB,YAAYxjD,EAAE0jD,YAAY,MAAM1qD,OAAO+G,EAAE0jD,UAAUpzB,GAAUizB,GAAG3vC,EAAE5T,EAAEC,EAAEqwB,IAAI40B,oBAAoB,WAAW,GAAGpE,GAAG,CAAC,IAAI9gD,GAAE,EAAGC,EAzDlD,SAAYD,GAAG,MAAM,CAACiyB,SAASqG,EAAG/iC,SAASyK,EAAEo8B,QAAQp8B,GAyDDolD,EAAG,WAAiD,MAAtCplD,IAAIA,GAAE,EAAGswB,EAAE,MAAMonB,MAAMniD,SAAS,MAAY43B,MAAMsF,EAAE,SAASnC,EAAEwzB,GAAG7jD,GAAG,GAC1Z,OAD6Z,KAAY,EAAP6yB,GAAEwsB,QAAUxsB,GAAEqQ,OAAO,IAAI4gB,GAAG,GAAE,WAAWzzB,EAAE,MAAMonB,MAAMniD,SAAS,YAChf,EAAO,OAAc0K,EAAmC,OAAN6jD,GAA3B7jD,EAAE,MAAMy3C,MAAMniD,SAAS,KAAiB0K,GAAGklD,0BAAyB,GAAIhD,GAAG,CAAC2C,YAAY7I,GAAGjnB,YAAY2vB,GAAG1vB,WAAWgnB,GAAG9mB,UAAUmvB,GAAGlvB,oBAAoBqvB,GAAGpvB,gBAAgBkvB,GAAGjvB,QAAQsvB,GAAGrvB,WAAWotB,GAAGntB,OAAO0uB,GAAGzuB,SAAS,WAAW,OAAOktB,GAAGD,KAAKxtB,cAAcwvB,GAAGK,iBAAiB,SAAS/kD,GAAG,IAAIC,EAAE0iD,GAAGD,IAAIpyB,EAAErwB,EAAE,GAAG2T,EAAE3T,EAAE,GAA6F,OAA1FqkD,IAAG,WAAW,IAAIrkD,EAAE0hD,GAAGxuB,WAAWwuB,GAAGxuB,WAAW,EAAE,IAAIvf,EAAE5T,GAAN,QAAiB2hD,GAAGxuB,WAAWlzB,KAAI,CAACD,IAAWswB,GAAG00B,cAAc,WAAW,IAAIhlD,EAAE2iD,GAAGD,IAAI,GAAG,MAAM,CAACwB,KAAKt+C,QAC9e5F,IAAIilD,iBAAiBpB,GAAGqB,oBAAoB,WAAW,OAAOvC,GAAGD,IAAI,IAAIyC,0BAAyB,GAAI/C,GAAG,CAAC0C,YAAY7I,GAAGjnB,YAAY2vB,GAAG1vB,WAAWgnB,GAAG9mB,UAAUmvB,GAAGlvB,oBAAoBqvB,GAAGpvB,gBAAgBkvB,GAAGjvB,QAAQsvB,GAAGrvB,WAAW2tB,GAAG1tB,OAAO0uB,GAAGzuB,SAAS,WAAW,OAAOytB,GAAGR,KAAKxtB,cAAcwvB,GAAGK,iBAAiB,SAAS/kD,GAAG,IAAIC,EAAEijD,GAAGR,IAAIpyB,EAAErwB,EAAE,GAAG2T,EAAE3T,EAAE,GAA6F,OAA1FqkD,IAAG,WAAW,IAAIrkD,EAAE0hD,GAAGxuB,WAAWwuB,GAAGxuB,WAAW,EAAE,IAAIvf,EAAE5T,GAAN,QAAiB2hD,GAAGxuB,WAAWlzB,KAAI,CAACD,IAAWswB,GAAG00B,cAAc,WAAW,IAAIhlD,EAAEkjD,GAAGR,IAAI,GAAG,MAAM,CAACwB,KAAKt+C,QACrf5F,IAAIilD,iBAAiBpB,GAAGqB,oBAAoB,WAAW,OAAOhC,GAAGR,IAAI,IAAIyC,0BAAyB,GAAIE,GAAG7tB,EAAGpE,kBAAkB4oB,IAAG,EAAG,SAASsJ,GAAGtlD,EAAEC,EAAEqwB,EAAE1c,GAAG3T,EAAEwjC,MAAM,OAAOzjC,EAAE6/C,GAAG5/C,EAAE,KAAKqwB,EAAE1c,GAAGgsC,GAAG3/C,EAAED,EAAEyjC,MAAMnT,EAAE1c,GAAG,SAAS2xC,GAAGvlD,EAAEC,EAAEqwB,EAAE1c,EAAE/W,GAAGyzB,EAAEA,EAAEmE,OAAO,IAAIpoB,EAAEpM,EAAE0sB,IAA8B,OAA1BivB,GAAG37C,EAAEpD,GAAG+W,EAAEquC,GAAGjiD,EAAEC,EAAEqwB,EAAE1c,EAAEvH,EAAExP,GAAM,OAAOmD,GAAIg8C,IAA0E/7C,EAAEkjC,OAAO,EAAEmiB,GAAGtlD,EAAEC,EAAE2T,EAAE/W,GAAUoD,EAAEwjC,QAAhGxjC,EAAEq8C,YAAYt8C,EAAEs8C,YAAYr8C,EAAEkjC,QAAQ,IAAInjC,EAAE+7C,QAAQl/C,EAAE2oD,GAAGxlD,EAAEC,EAAEpD,IACxW,SAAS4oD,GAAGzlD,EAAEC,EAAEqwB,EAAE1c,EAAE/W,EAAEwP,GAAG,GAAG,OAAOrM,EAAE,CAAC,IAAI+xB,EAAEzB,EAAEj2B,KAAK,MAAG,oBAAoB03B,GAAI2zB,GAAG3zB,SAAI,IAASA,EAAExvB,cAAc,OAAO+tB,EAAEyE,cAAS,IAASzE,EAAE/tB,eAAsDvC,EAAEw/C,GAAGlvB,EAAEj2B,KAAK,KAAKuZ,EAAE3T,EAAEA,EAAEq/C,KAAKjzC,IAAKsgB,IAAI1sB,EAAE0sB,IAAI3sB,EAAEkjC,OAAOjjC,EAASA,EAAEwjC,MAAMzjC,IAAvGC,EAAExD,IAAI,GAAGwD,EAAE5F,KAAK03B,EAAE4zB,GAAG3lD,EAAEC,EAAE8xB,EAAEne,EAAE/W,EAAEwP,IAAoF,OAAV0lB,EAAE/xB,EAAEyjC,MAAS,KAAK5mC,EAAEwP,KAAKxP,EAAEk1B,EAAE2uB,eAA0BpwB,EAAE,QAAdA,EAAEA,EAAEyE,SAAmBzE,EAAEkjB,IAAK32C,EAAE+W,IAAI5T,EAAE2sB,MAAM1sB,EAAE0sB,KAAY64B,GAAGxlD,EAAEC,EAAEoM,IAAGpM,EAAEkjC,OAAO,GAAEnjC,EAAEo/C,GAAGrtB,EAAEne,IAAK+Y,IAAI1sB,EAAE0sB,IAAI3sB,EAAEkjC,OAAOjjC,EAASA,EAAEwjC,MAAMzjC,GAClb,SAAS2lD,GAAG3lD,EAAEC,EAAEqwB,EAAE1c,EAAE/W,EAAEwP,GAAG,GAAG,OAAOrM,GAAGwzC,GAAGxzC,EAAE0gD,cAAc9sC,IAAI5T,EAAE2sB,MAAM1sB,EAAE0sB,IAAI,IAAGqvB,IAAG,EAAG,KAAK3vC,EAAExP,GAAqC,OAAOoD,EAAE87C,MAAM/7C,EAAE+7C,MAAMyJ,GAAGxlD,EAAEC,EAAEoM,GAAhE,KAAa,MAARrM,EAAEmjC,SAAe6Y,IAAG,GAA0C,OAAO4J,GAAG5lD,EAAEC,EAAEqwB,EAAE1c,EAAEvH,GACnL,SAASw5C,GAAG7lD,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE3T,EAAEihD,aAAarkD,EAAE+W,EAAEna,SAAS4S,EAAE,OAAOrM,EAAEA,EAAEqjC,cAAc,KAAK,GAAG,WAAWzvB,EAAE0rC,MAAM,kCAAkC1rC,EAAE0rC,KAAK,GAAG,KAAY,EAAPr/C,EAAEq/C,MAAQr/C,EAAEojC,cAAc,CAACyiB,UAAU,GAAGC,GAAG9lD,EAAEqwB,OAAQ,IAAG,KAAO,WAAFA,GAA8E,OAAOtwB,EAAE,OAAOqM,EAAEA,EAAEy5C,UAAUx1B,EAAEA,EAAErwB,EAAE87C,MAAM97C,EAAE07C,WAAW,WAAW17C,EAAEojC,cAAc,CAACyiB,UAAU9lD,GAAG+lD,GAAG9lD,EAAED,GAAG,KAAxKC,EAAEojC,cAAc,CAACyiB,UAAU,GAAGC,GAAG9lD,EAAE,OAAOoM,EAAEA,EAAEy5C,UAAUx1B,QAA0H,OAAOjkB,GAAGuH,EAAEvH,EAAEy5C,UAAUx1B,EAAErwB,EAAEojC,cAAc,MAAMzvB,EAAE0c,EAAEy1B,GAAG9lD,EAAE2T,GAAe,OAAZ0xC,GAAGtlD,EAAEC,EAAEpD,EAAEyzB,GAAUrwB,EAAEwjC,MAC1e,SAASuiB,GAAGhmD,EAAEC,GAAG,IAAIqwB,EAAErwB,EAAE0sB,KAAO,OAAO3sB,GAAG,OAAOswB,GAAG,OAAOtwB,GAAGA,EAAE2sB,MAAM2D,KAAErwB,EAAEkjC,OAAO,KAAI,SAASyiB,GAAG5lD,EAAEC,EAAEqwB,EAAE1c,EAAE/W,GAAG,IAAIwP,EAAEmsC,GAAGloB,GAAG6nB,GAAG/lB,GAAExsB,QAA4C,OAApCyG,EAAE+rC,GAAGn4C,EAAEoM,GAAGuvC,GAAG37C,EAAEpD,GAAGyzB,EAAE2xB,GAAGjiD,EAAEC,EAAEqwB,EAAE1c,EAAEvH,EAAExP,GAAM,OAAOmD,GAAIg8C,IAA0E/7C,EAAEkjC,OAAO,EAAEmiB,GAAGtlD,EAAEC,EAAEqwB,EAAEzzB,GAAUoD,EAAEwjC,QAAhGxjC,EAAEq8C,YAAYt8C,EAAEs8C,YAAYr8C,EAAEkjC,QAAQ,IAAInjC,EAAE+7C,QAAQl/C,EAAE2oD,GAAGxlD,EAAEC,EAAEpD,IAC9P,SAASopD,GAAGjmD,EAAEC,EAAEqwB,EAAE1c,EAAE/W,GAAG,GAAG27C,GAAGloB,GAAG,CAAC,IAAIjkB,GAAE,EAAGysC,GAAG74C,QAAQoM,GAAE,EAAW,GAARuvC,GAAG37C,EAAEpD,GAAM,OAAOoD,EAAEuhC,UAAU,OAAOxhC,IAAIA,EAAEijC,UAAU,KAAKhjC,EAAEgjC,UAAU,KAAKhjC,EAAEkjC,OAAO,GAAG8a,GAAGh+C,EAAEqwB,EAAE1c,GAAG0qC,GAAGr+C,EAAEqwB,EAAE1c,EAAE/W,GAAG+W,GAAE,OAAQ,GAAG,OAAO5T,EAAE,CAAC,IAAI+xB,EAAE9xB,EAAEuhC,UAAU1P,EAAE7xB,EAAEygD,cAAc3uB,EAAExuB,MAAMuuB,EAAE,IAAIne,EAAEoe,EAAEhB,QAAQn3B,EAAE02B,EAAE4tB,YAAY,kBAAkBtkD,GAAG,OAAOA,EAAEA,EAAEqiD,GAAGriD,GAAyBA,EAAEw+C,GAAGn4C,EAA1BrG,EAAE4+C,GAAGloB,GAAG6nB,GAAG/lB,GAAExsB,SAAmB,IAAIvQ,EAAEi7B,EAAEiuB,yBAAyB/tB,EAAE,oBAAoBn7B,GAAG,oBAAoB08B,EAAEysB,wBAAwBhuB,GAAG,oBAAoBuB,EAAEssB,kCACpd,oBAAoBtsB,EAAEqsB,4BAA4BtsB,IAAIle,GAAGD,IAAI/Z,IAAIukD,GAAGl+C,EAAE8xB,EAAEne,EAAEha,GAAGwiD,IAAG,EAAG,IAAIr7C,EAAEd,EAAEojC,cAActR,EAAElR,MAAM9f,EAAEs8C,GAAGp9C,EAAE2T,EAAEme,EAAEl1B,GAAG8W,EAAE1T,EAAEojC,cAAcvR,IAAIle,GAAG7S,IAAI4S,GAAG0e,GAAEzsB,SAASw2C,IAAI,oBAAoB/mD,IAAIooD,GAAGx9C,EAAEqwB,EAAEj7B,EAAEue,GAAGD,EAAE1T,EAAEojC,gBAAgBvR,EAAEsqB,IAAI2B,GAAG99C,EAAEqwB,EAAEwB,EAAEle,EAAE7S,EAAE4S,EAAE/Z,KAAK42B,GAAG,oBAAoBuB,EAAE0sB,2BAA2B,oBAAoB1sB,EAAE2sB,qBAAqB,oBAAoB3sB,EAAE2sB,oBAAoB3sB,EAAE2sB,qBAAqB,oBAAoB3sB,EAAE0sB,2BAA2B1sB,EAAE0sB,6BAA6B,oBACze1sB,EAAE4sB,oBAAoB1+C,EAAEkjC,OAAO,KAAK,oBAAoBpR,EAAE4sB,oBAAoB1+C,EAAEkjC,OAAO,GAAGljC,EAAEygD,cAAc9sC,EAAE3T,EAAEojC,cAAc1vB,GAAGoe,EAAExuB,MAAMqQ,EAAEme,EAAElR,MAAMlN,EAAEoe,EAAEhB,QAAQn3B,EAAEga,EAAEke,IAAI,oBAAoBC,EAAE4sB,oBAAoB1+C,EAAEkjC,OAAO,GAAGvvB,GAAE,OAAQ,CAACme,EAAE9xB,EAAEuhC,UAAUqb,GAAG78C,EAAEC,GAAG6xB,EAAE7xB,EAAEygD,cAAc9mD,EAAEqG,EAAE5F,OAAO4F,EAAEs/C,YAAYztB,EAAEqpB,GAAGl7C,EAAE5F,KAAKy3B,GAAGC,EAAExuB,MAAM3J,EAAE42B,EAAEvwB,EAAEihD,aAAangD,EAAEgxB,EAAEhB,QAAwB,kBAAhBpd,EAAE2c,EAAE4tB,cAAiC,OAAOvqC,EAAEA,EAAEsoC,GAAGtoC,GAAyBA,EAAEykC,GAAGn4C,EAA1B0T,EAAE6kC,GAAGloB,GAAG6nB,GAAG/lB,GAAExsB,SAAmB,IAAIkrB,EAAER,EAAEiuB,0BAA0BlpD,EAAE,oBAAoBy7B,GACnf,oBAAoBiB,EAAEysB,0BAA0B,oBAAoBzsB,EAAEssB,kCAAkC,oBAAoBtsB,EAAEqsB,4BAA4BtsB,IAAItB,GAAGzvB,IAAI4S,IAAIwqC,GAAGl+C,EAAE8xB,EAAEne,EAAED,GAAGyoC,IAAG,EAAGr7C,EAAEd,EAAEojC,cAActR,EAAElR,MAAM9f,EAAEs8C,GAAGp9C,EAAE2T,EAAEme,EAAEl1B,GAAG,IAAIgQ,EAAE5M,EAAEojC,cAAcvR,IAAItB,GAAGzvB,IAAI8L,GAAGwlB,GAAEzsB,SAASw2C,IAAI,oBAAoBtrB,IAAI2sB,GAAGx9C,EAAEqwB,EAAEQ,EAAEld,GAAG/G,EAAE5M,EAAEojC,gBAAgBzpC,EAAEwiD,IAAI2B,GAAG99C,EAAEqwB,EAAE12B,EAAEga,EAAE7S,EAAE8L,EAAE8G,KAAKte,GAAG,oBAAoB08B,EAAEm0B,4BAA4B,oBAAoBn0B,EAAEo0B,sBAAsB,oBAAoBp0B,EAAEo0B,qBAAqBp0B,EAAEo0B,oBAAoBvyC,EAC1gB/G,EAAE8G,GAAG,oBAAoBoe,EAAEm0B,4BAA4Bn0B,EAAEm0B,2BAA2BtyC,EAAE/G,EAAE8G,IAAI,oBAAoBoe,EAAEq0B,qBAAqBnmD,EAAEkjC,OAAO,GAAG,oBAAoBpR,EAAEysB,0BAA0Bv+C,EAAEkjC,OAAO,OAAO,oBAAoBpR,EAAEq0B,oBAAoBt0B,IAAI9xB,EAAE0gD,eAAe3/C,IAAIf,EAAEqjC,gBAAgBpjC,EAAEkjC,OAAO,GAAG,oBAAoBpR,EAAEysB,yBAAyB1sB,IAAI9xB,EAAE0gD,eAAe3/C,IAAIf,EAAEqjC,gBAAgBpjC,EAAEkjC,OAAO,KAAKljC,EAAEygD,cAAc9sC,EAAE3T,EAAEojC,cAAcx2B,GAAGklB,EAAExuB,MAAMqQ,EAAEme,EAAElR,MAAMhU,EAAEklB,EAAEhB,QAAQpd,EAAEC,EAAEha,IAAI,oBAAoBm4B,EAAEq0B,oBAC7ft0B,IAAI9xB,EAAE0gD,eAAe3/C,IAAIf,EAAEqjC,gBAAgBpjC,EAAEkjC,OAAO,GAAG,oBAAoBpR,EAAEysB,yBAAyB1sB,IAAI9xB,EAAE0gD,eAAe3/C,IAAIf,EAAEqjC,gBAAgBpjC,EAAEkjC,OAAO,KAAKvvB,GAAE,GAAI,OAAOyyC,GAAGrmD,EAAEC,EAAEqwB,EAAE1c,EAAEvH,EAAExP,GACzL,SAASwpD,GAAGrmD,EAAEC,EAAEqwB,EAAE1c,EAAE/W,EAAEwP,GAAG25C,GAAGhmD,EAAEC,GAAG,IAAI8xB,EAAE,KAAa,GAAR9xB,EAAEkjC,OAAU,IAAIvvB,IAAIme,EAAE,OAAOl1B,GAAGm8C,GAAG/4C,EAAEqwB,GAAE,GAAIk1B,GAAGxlD,EAAEC,EAAEoM,GAAGuH,EAAE3T,EAAEuhC,UAAU6jB,GAAGz/C,QAAQ3F,EAAE,IAAI6xB,EAAEC,GAAG,oBAAoBzB,EAAEg2B,yBAAyB,KAAK1yC,EAAE6gB,SAAwI,OAA/Hx0B,EAAEkjC,OAAO,EAAE,OAAOnjC,GAAG+xB,GAAG9xB,EAAEwjC,MAAMmc,GAAG3/C,EAAED,EAAEyjC,MAAM,KAAKp3B,GAAGpM,EAAEwjC,MAAMmc,GAAG3/C,EAAE,KAAK6xB,EAAEzlB,IAAIi5C,GAAGtlD,EAAEC,EAAE6xB,EAAEzlB,GAAGpM,EAAEojC,cAAczvB,EAAEiN,MAAMhkB,GAAGm8C,GAAG/4C,EAAEqwB,GAAE,GAAWrwB,EAAEwjC,MAAM,SAAS8iB,GAAGvmD,GAAG,IAAIC,EAAED,EAAEwhC,UAAUvhC,EAAEumD,eAAe7N,GAAG34C,EAAEC,EAAEumD,eAAevmD,EAAEumD,iBAAiBvmD,EAAE8wB,SAAS9wB,EAAE8wB,SAAS4nB,GAAG34C,EAAEC,EAAE8wB,SAAQ,GAAIovB,GAAGngD,EAAEC,EAAEylC,eAC7d,IAS0V+gB,GAAMC,GAAGC,GAT/VC,GAAG,CAACtjB,WAAW,KAAKujB,UAAU,GAClC,SAASC,GAAG9mD,EAAEC,EAAEqwB,GAAG,IAAsCyB,EAAlCne,EAAE3T,EAAEihD,aAAarkD,EAAE61B,GAAE9sB,QAAQyG,GAAE,EAA6M,OAAvM0lB,EAAE,KAAa,GAAR9xB,EAAEkjC,UAAapR,GAAE,OAAO/xB,GAAG,OAAOA,EAAEqjC,gBAAiB,KAAO,EAAFxmC,IAAMk1B,GAAG1lB,GAAE,EAAGpM,EAAEkjC,QAAQ,IAAI,OAAOnjC,GAAG,OAAOA,EAAEqjC,oBAAe,IAASzvB,EAAEmzC,WAAU,IAAKnzC,EAAEozC,6BAA6BnqD,GAAG,GAAG60B,GAAEgB,GAAI,EAAF71B,GAAQ,OAAOmD,QAAG,IAAS4T,EAAEmzC,UAAU5F,GAAGlhD,GAAGD,EAAE4T,EAAEna,SAASoD,EAAE+W,EAAEmzC,SAAY16C,GAASrM,EAAEinD,GAAGhnD,EAAED,EAAEnD,EAAEyzB,GAAGrwB,EAAEwjC,MAAMJ,cAAc,CAACyiB,UAAUx1B,GAAGrwB,EAAEojC,cAAcujB,GAAG5mD,GAAK,kBAAkB4T,EAAEszC,2BAAiClnD,EAAEinD,GAAGhnD,EAAED,EAAEnD,EAAEyzB,GAAGrwB,EAAEwjC,MAAMJ,cAAc,CAACyiB,UAAUx1B,GAC/frwB,EAAEojC,cAAcujB,GAAG3mD,EAAE87C,MAAM,SAAS/7C,KAAEswB,EAAE62B,GAAG,CAAC7H,KAAK,UAAU7lD,SAASuG,GAAGC,EAAEq/C,KAAKhvB,EAAE,OAAQ4S,OAAOjjC,EAASA,EAAEwjC,MAAMnT,KAAYtwB,EAAEqjC,cAAkBh3B,GAASuH,EAAEwzC,GAAGpnD,EAAEC,EAAE2T,EAAEna,SAASma,EAAEmzC,SAASz2B,GAAGjkB,EAAEpM,EAAEwjC,MAAM5mC,EAAEmD,EAAEyjC,MAAMJ,cAAch3B,EAAEg3B,cAAc,OAAOxmC,EAAE,CAACipD,UAAUx1B,GAAG,CAACw1B,UAAUjpD,EAAEipD,UAAUx1B,GAAGjkB,EAAEsvC,WAAW37C,EAAE27C,YAAYrrB,EAAErwB,EAAEojC,cAAcujB,GAAGhzC,IAAE0c,EAAE+2B,GAAGrnD,EAAEC,EAAE2T,EAAEna,SAAS62B,GAAGrwB,EAAEojC,cAAc,KAAY/S,IAClQ,SAAS22B,GAAGjnD,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAEmD,EAAEs/C,KAAKjzC,EAAErM,EAAEyjC,MAAuK,OAAjKxjC,EAAE,CAACq/C,KAAK,SAAS7lD,SAASwG,GAAG,KAAO,EAAFpD,IAAM,OAAOwP,GAAGA,EAAEsvC,WAAW,EAAEtvC,EAAE60C,aAAajhD,GAAGoM,EAAE86C,GAAGlnD,EAAEpD,EAAE,EAAE,MAAMyzB,EAAEqvB,GAAGrvB,EAAEzzB,EAAE+W,EAAE,MAAMvH,EAAE62B,OAAOljC,EAAEswB,EAAE4S,OAAOljC,EAAEqM,EAAEq3B,QAAQpT,EAAEtwB,EAAEyjC,MAAMp3B,EAASikB,EACrV,SAAS+2B,GAAGrnD,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAEmD,EAAEyjC,MAAiL,OAA3KzjC,EAAEnD,EAAE6mC,QAAQpT,EAAE8uB,GAAGviD,EAAE,CAACyiD,KAAK,UAAU7lD,SAAS62B,IAAI,KAAY,EAAPrwB,EAAEq/C,QAAUhvB,EAAEyrB,MAAMnoC,GAAG0c,EAAE4S,OAAOjjC,EAAEqwB,EAAEoT,QAAQ,KAAK,OAAO1jC,IAAIA,EAAEk/C,WAAW,KAAKl/C,EAAEmjC,MAAM,EAAEljC,EAAEk/C,YAAYl/C,EAAEg/C,WAAWj/C,GAAUC,EAAEwjC,MAAMnT,EAC7N,SAAS82B,GAAGpnD,EAAEC,EAAEqwB,EAAE1c,EAAE/W,GAAG,IAAIwP,EAAEpM,EAAEq/C,KAAKvtB,EAAE/xB,EAAEyjC,MAAMzjC,EAAE+xB,EAAE2R,QAAQ,IAAI5R,EAAE,CAACwtB,KAAK,SAAS7lD,SAAS62B,GAAoS,OAAjS,KAAO,EAAFjkB,IAAMpM,EAAEwjC,QAAQ1R,IAAGzB,EAAErwB,EAAEwjC,OAAQkY,WAAW,EAAErrB,EAAE4wB,aAAapvB,EAAiB,QAAfC,EAAEzB,EAAE2uB,aAAqBh/C,EAAEk/C,YAAY7uB,EAAE6uB,YAAYl/C,EAAEg/C,WAAWltB,EAAEA,EAAEmtB,WAAW,MAAMj/C,EAAEk/C,YAAYl/C,EAAEg/C,WAAW,MAAM3uB,EAAE8uB,GAAGrtB,EAAED,GAAG,OAAO9xB,EAAE4T,EAAEwrC,GAAGp/C,EAAE4T,IAAIA,EAAE+rC,GAAG/rC,EAAEvH,EAAExP,EAAE,OAAQsmC,OAAO,EAAGvvB,EAAEsvB,OAAOjjC,EAAEqwB,EAAE4S,OAAOjjC,EAAEqwB,EAAEoT,QAAQ9vB,EAAE3T,EAAEwjC,MAAMnT,EAAS1c,EAAE,SAAS0zC,GAAGtnD,EAAEC,GAAGD,EAAE+7C,OAAO97C,EAAE,IAAIqwB,EAAEtwB,EAAEijC,UAAU,OAAO3S,IAAIA,EAAEyrB,OAAO97C,GAAGy7C,GAAG17C,EAAEkjC,OAAOjjC,GACtd,SAASsnD,GAAGvnD,EAAEC,EAAEqwB,EAAE1c,EAAE/W,EAAEwP,GAAG,IAAI0lB,EAAE/xB,EAAEqjC,cAAc,OAAOtR,EAAE/xB,EAAEqjC,cAAc,CAACmkB,YAAYvnD,EAAEwnD,UAAU,KAAKC,mBAAmB,EAAE15C,KAAK4F,EAAElO,KAAK4qB,EAAEq3B,SAAS9qD,EAAEoiD,WAAW5yC,IAAI0lB,EAAEy1B,YAAYvnD,EAAE8xB,EAAE01B,UAAU,KAAK11B,EAAE21B,mBAAmB,EAAE31B,EAAE/jB,KAAK4F,EAAEme,EAAErsB,KAAK4qB,EAAEyB,EAAE41B,SAAS9qD,EAAEk1B,EAAEktB,WAAW5yC,GACvQ,SAASu7C,GAAG5nD,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE3T,EAAEihD,aAAarkD,EAAE+W,EAAE+sC,YAAYt0C,EAAEuH,EAAElO,KAAsC,GAAjC4/C,GAAGtlD,EAAEC,EAAE2T,EAAEna,SAAS62B,GAAkB,KAAO,GAAtB1c,EAAE8e,GAAE9sB,UAAqBgO,EAAI,EAAFA,EAAI,EAAE3T,EAAEkjC,OAAO,OAAO,CAAC,GAAG,OAAOnjC,GAAG,KAAa,GAARA,EAAEmjC,OAAUnjC,EAAE,IAAIA,EAAEC,EAAEwjC,MAAM,OAAOzjC,GAAG,CAAC,GAAG,KAAKA,EAAEvD,IAAI,OAAOuD,EAAEqjC,eAAeikB,GAAGtnD,EAAEswB,QAAQ,GAAG,KAAKtwB,EAAEvD,IAAI6qD,GAAGtnD,EAAEswB,QAAQ,GAAG,OAAOtwB,EAAEyjC,MAAM,CAACzjC,EAAEyjC,MAAMP,OAAOljC,EAAEA,EAAEA,EAAEyjC,MAAM,SAAS,GAAGzjC,IAAIC,EAAE,MAAMD,EAAE,KAAK,OAAOA,EAAE0jC,SAAS,CAAC,GAAG,OAAO1jC,EAAEkjC,QAAQljC,EAAEkjC,SAASjjC,EAAE,MAAMD,EAAEA,EAAEA,EAAEkjC,OAAOljC,EAAE0jC,QAAQR,OAAOljC,EAAEkjC,OAAOljC,EAAEA,EAAE0jC,QAAQ9vB,GAAG,EAAS,GAAP8d,GAAEgB,GAAE9e,GAAM,KAAY,EAAP3T,EAAEq/C,MAAQr/C,EAAEojC,cACze,UAAU,OAAOxmC,GAAG,IAAK,WAAqB,IAAVyzB,EAAErwB,EAAEwjC,MAAU5mC,EAAE,KAAK,OAAOyzB,GAAiB,QAAdtwB,EAAEswB,EAAE2S,YAAoB,OAAOwd,GAAGzgD,KAAKnD,EAAEyzB,GAAGA,EAAEA,EAAEoT,QAAY,QAAJpT,EAAEzzB,IAAYA,EAAEoD,EAAEwjC,MAAMxjC,EAAEwjC,MAAM,OAAO5mC,EAAEyzB,EAAEoT,QAAQpT,EAAEoT,QAAQ,MAAM6jB,GAAGtnD,GAAE,EAAGpD,EAAEyzB,EAAEjkB,EAAEpM,EAAEg/C,YAAY,MAAM,IAAK,YAA6B,IAAjB3uB,EAAE,KAAKzzB,EAAEoD,EAAEwjC,MAAUxjC,EAAEwjC,MAAM,KAAK,OAAO5mC,GAAG,CAAe,GAAG,QAAjBmD,EAAEnD,EAAEomC,YAAuB,OAAOwd,GAAGzgD,GAAG,CAACC,EAAEwjC,MAAM5mC,EAAE,MAAMmD,EAAEnD,EAAE6mC,QAAQ7mC,EAAE6mC,QAAQpT,EAAEA,EAAEzzB,EAAEA,EAAEmD,EAAEunD,GAAGtnD,GAAE,EAAGqwB,EAAE,KAAKjkB,EAAEpM,EAAEg/C,YAAY,MAAM,IAAK,WAAWsI,GAAGtnD,GAAE,EAAG,KAAK,UAAK,EAAOA,EAAEg/C,YAAY,MAAM,QAAQh/C,EAAEojC,cAAc,KAAK,OAAOpjC,EAAEwjC,MAC/f,SAAS+hB,GAAGxlD,EAAEC,EAAEqwB,GAAyD,GAAtD,OAAOtwB,IAAIC,EAAE47C,aAAa77C,EAAE67C,cAAcyB,IAAIr9C,EAAE87C,MAAS,KAAKzrB,EAAErwB,EAAE07C,YAAY,CAAC,GAAG,OAAO37C,GAAGC,EAAEwjC,QAAQzjC,EAAEyjC,MAAM,MAAMtW,MAAMsF,EAAE,MAAM,GAAG,OAAOxyB,EAAEwjC,MAAM,CAA4C,IAAjCnT,EAAE8uB,GAAZp/C,EAAEC,EAAEwjC,MAAazjC,EAAEkhD,cAAcjhD,EAAEwjC,MAAMnT,EAAMA,EAAE4S,OAAOjjC,EAAE,OAAOD,EAAE0jC,SAAS1jC,EAAEA,EAAE0jC,SAAQpT,EAAEA,EAAEoT,QAAQ0b,GAAGp/C,EAAEA,EAAEkhD,eAAgBhe,OAAOjjC,EAAEqwB,EAAEoT,QAAQ,KAAK,OAAOzjC,EAAEwjC,MAAM,OAAO,KAK5P,SAASokB,GAAG7nD,EAAEC,GAAG,IAAI6gD,GAAG,OAAO9gD,EAAE2nD,UAAU,IAAK,SAAS1nD,EAAED,EAAE0F,KAAK,IAAI,IAAI4qB,EAAE,KAAK,OAAOrwB,GAAG,OAAOA,EAAEgjC,YAAY3S,EAAErwB,GAAGA,EAAEA,EAAEyjC,QAAQ,OAAOpT,EAAEtwB,EAAE0F,KAAK,KAAK4qB,EAAEoT,QAAQ,KAAK,MAAM,IAAK,YAAYpT,EAAEtwB,EAAE0F,KAAK,IAAI,IAAIkO,EAAE,KAAK,OAAO0c,GAAG,OAAOA,EAAE2S,YAAYrvB,EAAE0c,GAAGA,EAAEA,EAAEoT,QAAQ,OAAO9vB,EAAE3T,GAAG,OAAOD,EAAE0F,KAAK1F,EAAE0F,KAAK,KAAK1F,EAAE0F,KAAKg+B,QAAQ,KAAK9vB,EAAE8vB,QAAQ,MAC7Z,SAASokB,GAAG9nD,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE3T,EAAEihD,aAAa,OAAOjhD,EAAExD,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO,KAAK,KAAK,EAAE,OAAO+7C,GAAGv4C,EAAE5F,OAAOq+C,KAAK,KAAK,KAAK,EAAsL,OAApL4H,KAAK7uB,GAAEY,IAAGZ,GAAEW,IAAGovB,MAAK5tC,EAAE3T,EAAEuhC,WAAYglB,iBAAiB5yC,EAAEmd,QAAQnd,EAAE4yC,eAAe5yC,EAAE4yC,eAAe,MAAS,OAAOxmD,GAAG,OAAOA,EAAEyjC,QAAM4d,GAAGphD,GAAGA,EAAEkjC,OAAO,EAAEvvB,EAAE6xB,UAAUxlC,EAAEkjC,OAAO,MAAkB,KAAK,KAAK,EAAEqd,GAAGvgD,GAAG,IAAIpD,EAAEqjD,GAAGD,GAAGr6C,SAAkB,GAAT0qB,EAAErwB,EAAE5F,KAAQ,OAAO2F,GAAG,MAAMC,EAAEuhC,UAAUklB,GAAG1mD,EAAEC,EAAEqwB,EAAE1c,GAAK5T,EAAE2sB,MAAM1sB,EAAE0sB,MAAM1sB,EAAEkjC,OAAO,SAAS,CAAC,IAAIvvB,EAAE,CAAC,GAAG,OAC7f3T,EAAEuhC,UAAU,MAAMrU,MAAMsF,EAAE,MAAM,OAAO,KAAsB,GAAjBzyB,EAAEkgD,GAAGH,GAAGn6C,SAAYy7C,GAAGphD,GAAG,CAAC2T,EAAE3T,EAAEuhC,UAAUlR,EAAErwB,EAAE5F,KAAK,IAAIgS,EAAEpM,EAAEygD,cAA8B,OAAhB9sC,EAAEgkC,IAAI33C,EAAE2T,EAAEikC,IAAIxrC,EAASikB,GAAG,IAAK,SAASkB,GAAE,SAAS5d,GAAG4d,GAAE,QAAQ5d,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ4d,GAAE,OAAO5d,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAI5T,EAAE,EAAEA,EAAEs1C,GAAG5gD,OAAOsL,IAAIwxB,GAAE8jB,GAAGt1C,GAAG4T,GAAG,MAAM,IAAK,SAAS4d,GAAE,QAAQ5d,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO4d,GAAE,QAAQ5d,GAAG4d,GAAE,OAAO5d,GAAG,MAAM,IAAK,UAAU4d,GAAE,SAAS5d,GAAG,MAAM,IAAK,QAAQ6mB,GAAG7mB,EAAEvH,GAAGmlB,GAAE,UAAU5d,GAAG,MAAM,IAAK,SAASA,EAAE2mB,cAC5f,CAACwtB,cAAc17C,EAAE27C,UAAUx2B,GAAE,UAAU5d,GAAG,MAAM,IAAK,WAAW6nB,GAAG7nB,EAAEvH,GAAGmlB,GAAE,UAAU5d,GAAkB,IAAI,IAAIme,KAAvB6O,GAAGtQ,EAAEjkB,GAAGrM,EAAE,KAAkBqM,EAAEA,EAAEvU,eAAei6B,KAAKl1B,EAAEwP,EAAE0lB,GAAG,aAAaA,EAAE,kBAAkBl1B,EAAE+W,EAAEgoB,cAAc/+B,IAAImD,EAAE,CAAC,WAAWnD,IAAI,kBAAkBA,GAAG+W,EAAEgoB,cAAc,GAAG/+B,IAAImD,EAAE,CAAC,WAAW,GAAGnD,IAAIg5B,EAAG/9B,eAAei6B,IAAI,MAAMl1B,GAAG,aAAak1B,GAAGP,GAAE,SAAS5d,IAAI,OAAO0c,GAAG,IAAK,QAAQoJ,EAAG9lB,GAAGmnB,GAAGnnB,EAAEvH,GAAE,GAAI,MAAM,IAAK,WAAWqtB,EAAG9lB,GAAG+nB,GAAG/nB,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoBvH,EAAEpJ,UAAU2Q,EAAEq0C,QACtfrR,IAAIhjC,EAAE5T,EAAEC,EAAEq8C,YAAY1oC,EAAE,OAAOA,IAAI3T,EAAEkjC,OAAO,OAAO,CAAiZ,OAAhZpR,EAAE,IAAIl1B,EAAEoB,SAASpB,EAAEA,EAAEm+B,cAAch7B,IAAI67B,KAAU77B,EAAE87B,GAAGxL,IAAItwB,IAAI67B,GAAQ,WAAWvL,IAAGtwB,EAAE+xB,EAAErF,cAAc,QAASyP,UAAU,qBAAuBn8B,EAAEA,EAAEs8B,YAAYt8B,EAAEq8B,aAAa,kBAAkBzoB,EAAEktB,GAAG9gC,EAAE+xB,EAAErF,cAAc4D,EAAE,CAACwQ,GAAGltB,EAAEktB,MAAM9gC,EAAE+xB,EAAErF,cAAc4D,GAAG,WAAWA,IAAIyB,EAAE/xB,EAAE4T,EAAEo0C,SAASj2B,EAAEi2B,UAAS,EAAGp0C,EAAErX,OAAOw1B,EAAEx1B,KAAKqX,EAAErX,QAAQyD,EAAE+xB,EAAEm2B,gBAAgBloD,EAAEswB,GAAGtwB,EAAE43C,IAAI33C,EAAED,EAAE63C,IAAIjkC,EAAE6yC,GAAGzmD,EAAEC,GAASA,EAAEuhC,UAAUxhC,EAAE+xB,EAAE8O,GAAGvQ,EAAE1c,GAAU0c,GAAG,IAAK,SAASkB,GAAE,SAASxxB,GAAGwxB,GAAE,QAAQxxB,GACpfnD,EAAE+W,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ4d,GAAE,OAAOxxB,GAAGnD,EAAE+W,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAI/W,EAAE,EAAEA,EAAEy4C,GAAG5gD,OAAOmI,IAAI20B,GAAE8jB,GAAGz4C,GAAGmD,GAAGnD,EAAE+W,EAAE,MAAM,IAAK,SAAS4d,GAAE,QAAQxxB,GAAGnD,EAAE+W,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO4d,GAAE,QAAQxxB,GAAGwxB,GAAE,OAAOxxB,GAAGnD,EAAE+W,EAAE,MAAM,IAAK,UAAU4d,GAAE,SAASxxB,GAAGnD,EAAE+W,EAAE,MAAM,IAAK,QAAQ6mB,GAAGz6B,EAAE4T,GAAG/W,EAAEu9B,EAAGp6B,EAAE4T,GAAG4d,GAAE,UAAUxxB,GAAG,MAAM,IAAK,SAASnD,EAAEo+B,GAAGj7B,EAAE4T,GAAG,MAAM,IAAK,SAAS5T,EAAEu6B,cAAc,CAACwtB,cAAcn0C,EAAEo0C,UAAUnrD,EAAEm1B,EAAE,GAAGpe,EAAE,CAACnf,WAAM,IAAS+8B,GAAE,UAAUxxB,GAAG,MAAM,IAAK,WAAWy7B,GAAGz7B,EAAE4T,GAAG/W,EACpf0+B,GAAGv7B,EAAE4T,GAAG4d,GAAE,UAAUxxB,GAAG,MAAM,QAAQnD,EAAE+W,EAAEgtB,GAAGtQ,EAAEzzB,GAAG,IAAIi1B,EAAEj1B,EAAE,IAAIwP,KAAKylB,EAAE,GAAGA,EAAEh6B,eAAeuU,GAAG,CAAC,IAAIsH,EAAEme,EAAEzlB,GAAG,UAAUA,EAAEozB,GAAGz/B,EAAE2T,GAAG,4BAA4BtH,EAAuB,OAApBsH,EAAEA,EAAEA,EAAEsjC,YAAO,IAAgBhb,GAAGj8B,EAAE2T,GAAI,aAAatH,EAAE,kBAAkBsH,GAAG,aAAa2c,GAAG,KAAK3c,IAAIjG,GAAG1N,EAAE2T,GAAG,kBAAkBA,GAAGjG,GAAG1N,EAAE,GAAG2T,GAAG,mCAAmCtH,GAAG,6BAA6BA,GAAG,cAAcA,IAAIwpB,EAAG/9B,eAAeuU,GAAG,MAAMsH,GAAG,aAAatH,GAAGmlB,GAAE,SAASxxB,GAAG,MAAM2T,GAAGsjB,EAAGj3B,EAAEqM,EAAEsH,EAAEoe,IAAI,OAAOzB,GAAG,IAAK,QAAQoJ,EAAG15B,GAAG+6B,GAAG/6B,EAAE4T,GAAE,GACnf,MAAM,IAAK,WAAW8lB,EAAG15B,GAAG27B,GAAG37B,GAAG,MAAM,IAAK,SAAS,MAAM4T,EAAEnf,OAAOuL,EAAEq3B,aAAa,QAAQ,GAAGkC,EAAG3lB,EAAEnf,QAAQ,MAAM,IAAK,SAASuL,EAAEgoD,WAAWp0C,EAAEo0C,SAAmB,OAAV37C,EAAEuH,EAAEnf,OAAc0mC,GAAGn7B,IAAI4T,EAAEo0C,SAAS37C,GAAE,GAAI,MAAMuH,EAAE0mB,cAAca,GAAGn7B,IAAI4T,EAAEo0C,SAASp0C,EAAE0mB,cAAa,GAAI,MAAM,QAAQ,oBAAoBz9B,EAAEoG,UAAUjD,EAAEioD,QAAQrR,IAAIG,GAAGzmB,EAAE1c,KAAK3T,EAAEkjC,OAAO,GAAG,OAAOljC,EAAE0sB,MAAM1sB,EAAEkjC,OAAO,KAAK,OAAO,KAAK,KAAK,EAAE,GAAGnjC,GAAG,MAAMC,EAAEuhC,UAAUmlB,GAAG3mD,EAAEC,EAAED,EAAE0gD,cAAc9sC,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAO3T,EAAEuhC,UAAU,MAAMrU,MAAMsF,EAAE,MAC/enC,EAAE4vB,GAAGD,GAAGr6C,SAASs6C,GAAGH,GAAGn6C,SAASy7C,GAAGphD,IAAI2T,EAAE3T,EAAEuhC,UAAUlR,EAAErwB,EAAEygD,cAAc9sC,EAAEgkC,IAAI33C,EAAE2T,EAAE+oB,YAAYrM,IAAIrwB,EAAEkjC,OAAO,MAAKvvB,GAAG,IAAI0c,EAAEryB,SAASqyB,EAAEA,EAAE0K,eAAemtB,eAAev0C,IAAKgkC,IAAI33C,EAAEA,EAAEuhC,UAAU5tB,GAAG,OAAO,KAAK,KAAK,GAA0B,OAAvB6d,GAAEiB,IAAG9e,EAAE3T,EAAEojC,cAAiB,KAAa,GAARpjC,EAAEkjC,QAAiBljC,EAAE87C,MAAMzrB,EAAErwB,IAAE2T,EAAE,OAAOA,EAAE0c,GAAE,EAAG,OAAOtwB,OAAE,IAASC,EAAEygD,cAAcqG,UAAU1F,GAAGphD,GAAGqwB,EAAE,OAAOtwB,EAAEqjC,cAAiBzvB,IAAI0c,GAAG,KAAY,EAAPrwB,EAAEq/C,QAAW,OAAOt/C,IAAG,IAAKC,EAAEygD,cAAcsG,4BAA4B,KAAe,EAAVt0B,GAAE9sB,SAAW,IAAIwiD,KAAIA,GAAE,IAAW,IAAIA,IAAG,IAAIA,KAAEA,GACrf,GAAE,OAAO5E,IAAG,KAAQ,UAAHlG,KAAe,KAAQ,UAAH+K,KAAeC,GAAG9E,GAAE+E,OAAM30C,GAAG0c,KAAErwB,EAAEkjC,OAAO,GAAS,MAAK,KAAK,EAAE,OAAOmd,KAAW,OAAOtgD,GAAG+1C,GAAG91C,EAAEuhC,UAAUkE,eAAe,KAAK,KAAK,GAAG,OAAO+V,GAAGx7C,GAAG,KAAK,KAAK,GAAG,OAAOu4C,GAAGv4C,EAAE5F,OAAOq+C,KAAK,KAAK,KAAK,GAA0B,GAAvBjnB,GAAEiB,IAAwB,QAArB9e,EAAE3T,EAAEojC,eAA0B,OAAO,KAAsC,GAAjCh3B,EAAE,KAAa,GAARpM,EAAEkjC,OAA2B,QAAjBpR,EAAEne,EAAE6zC,WAAsB,GAAGp7C,EAAEw7C,GAAGj0C,GAAE,OAAQ,CAAC,GAAG,IAAIw0C,IAAG,OAAOpoD,GAAG,KAAa,GAARA,EAAEmjC,OAAU,IAAInjC,EAAEC,EAAEwjC,MAAM,OAAOzjC,GAAG,CAAS,GAAG,QAAX+xB,EAAE0uB,GAAGzgD,IAAe,CACjW,IADkWC,EAAEkjC,OAAO,GAAG0kB,GAAGj0C,GAAE,GAAoB,QAAhBvH,EAAE0lB,EAAEuqB,eAAuBr8C,EAAEq8C,YAAYjwC,EAAEpM,EAAEkjC,OAAO,GACnf,OAAOvvB,EAAEqrC,aAAah/C,EAAEk/C,YAAY,MAAMl/C,EAAEg/C,WAAWrrC,EAAEqrC,WAAWrrC,EAAE0c,EAAMA,EAAErwB,EAAEwjC,MAAM,OAAOnT,GAAOtwB,EAAE4T,GAANvH,EAAEikB,GAAQ6S,OAAO,EAAE92B,EAAE6yC,WAAW,KAAK7yC,EAAE8yC,YAAY,KAAK9yC,EAAE4yC,WAAW,KAAmB,QAAdltB,EAAE1lB,EAAE42B,YAAoB52B,EAAEsvC,WAAW,EAAEtvC,EAAE0vC,MAAM/7C,EAAEqM,EAAEo3B,MAAM,KAAKp3B,EAAEq0C,cAAc,KAAKr0C,EAAEg3B,cAAc,KAAKh3B,EAAEiwC,YAAY,KAAKjwC,EAAEwvC,aAAa,KAAKxvC,EAAEm1B,UAAU,OAAOn1B,EAAEsvC,WAAW5pB,EAAE4pB,WAAWtvC,EAAE0vC,MAAMhqB,EAAEgqB,MAAM1vC,EAAEo3B,MAAM1R,EAAE0R,MAAMp3B,EAAEq0C,cAAc3uB,EAAE2uB,cAAcr0C,EAAEg3B,cAActR,EAAEsR,cAAch3B,EAAEiwC,YAAYvqB,EAAEuqB,YAAYjwC,EAAEhS,KAAK03B,EAAE13B,KAAK2F,EAAE+xB,EAAE8pB,aACpfxvC,EAAEwvC,aAAa,OAAO77C,EAAE,KAAK,CAAC+7C,MAAM/7C,EAAE+7C,MAAMD,aAAa97C,EAAE87C,eAAexrB,EAAEA,EAAEoT,QAA2B,OAAnBhS,GAAEgB,GAAY,EAAVA,GAAE9sB,QAAU,GAAU3F,EAAEwjC,MAAMzjC,EAAEA,EAAE0jC,QAAQ,OAAO9vB,EAAElO,MAAM6sB,KAAIi2B,KAAKvoD,EAAEkjC,OAAO,GAAG92B,GAAE,EAAGw7C,GAAGj0C,GAAE,GAAI3T,EAAE87C,MAAM,cAAc,CAAC,IAAI1vC,EAAE,GAAW,QAARrM,EAAEygD,GAAG1uB,KAAa,GAAG9xB,EAAEkjC,OAAO,GAAG92B,GAAE,EAAmB,QAAhBikB,EAAEtwB,EAAEs8C,eAAuBr8C,EAAEq8C,YAAYhsB,EAAErwB,EAAEkjC,OAAO,GAAG0kB,GAAGj0C,GAAE,GAAI,OAAOA,EAAElO,MAAM,WAAWkO,EAAE+zC,WAAW51B,EAAEkR,YAAY6d,GAAG,OAAmC,QAA5B7gD,EAAEA,EAAEg/C,WAAWrrC,EAAEqrC,cAAsBh/C,EAAEi/C,WAAW,MAAM,UAAU,EAAE3sB,KAAI3e,EAAE8zC,mBAAmBc,IAAI,aAAal4B,IAAIrwB,EAAEkjC,OACjf,GAAG92B,GAAE,EAAGw7C,GAAGj0C,GAAE,GAAI3T,EAAE87C,MAAM,UAAUnoC,EAAE4zC,aAAaz1B,EAAE2R,QAAQzjC,EAAEwjC,MAAMxjC,EAAEwjC,MAAM1R,IAAa,QAATzB,EAAE1c,EAAE5F,MAAcsiB,EAAEoT,QAAQ3R,EAAE9xB,EAAEwjC,MAAM1R,EAAEne,EAAE5F,KAAK+jB,GAAG,OAAO,OAAOne,EAAElO,MAAM4qB,EAAE1c,EAAElO,KAAKkO,EAAE6zC,UAAUn3B,EAAE1c,EAAElO,KAAK4qB,EAAEoT,QAAQ9vB,EAAEqrC,WAAWh/C,EAAEg/C,WAAWrrC,EAAE8zC,mBAAmBn1B,KAAIjC,EAAEoT,QAAQ,KAAKzjC,EAAEyyB,GAAE9sB,QAAQ8rB,GAAEgB,GAAErmB,EAAI,EAAFpM,EAAI,EAAI,EAAFA,GAAKqwB,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOm4B,KAAK,OAAOzoD,GAAG,OAAOA,EAAEqjC,iBAAiB,OAAOpjC,EAAEojC,gBAAgB,kCAAkCzvB,EAAE0rC,OAAOr/C,EAAEkjC,OAAO,GAAG,KAAK,MAAMhW,MAAMsF,EAAE,IAAIxyB,EAAExD,MAChd,SAASisD,GAAG1oD,GAAG,OAAOA,EAAEvD,KAAK,KAAK,EAAE+7C,GAAGx4C,EAAE3F,OAAOq+C,KAAK,IAAIz4C,EAAED,EAAEmjC,MAAM,OAAS,KAAFljC,GAAQD,EAAEmjC,OAAS,KAAHljC,EAAQ,GAAGD,GAAG,KAAK,KAAK,EAAgC,GAA9BsgD,KAAK7uB,GAAEY,IAAGZ,GAAEW,IAAGovB,KAAkB,KAAO,IAApBvhD,EAAED,EAAEmjC,QAAoB,MAAMhW,MAAMsF,EAAE,MAAyB,OAAnBzyB,EAAEmjC,OAAS,KAAHljC,EAAQ,GAAUD,EAAE,KAAK,EAAE,OAAOwgD,GAAGxgD,GAAG,KAAK,KAAK,GAAG,OAAOyxB,GAAEiB,IAAe,MAAZzyB,EAAED,EAAEmjC,QAAcnjC,EAAEmjC,OAAS,KAAHljC,EAAQ,GAAGD,GAAG,KAAK,KAAK,GAAG,OAAOyxB,GAAEiB,IAAG,KAAK,KAAK,EAAE,OAAO4tB,KAAK,KAAK,KAAK,GAAG,OAAO7E,GAAGz7C,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOyoD,KAAK,KAAK,QAAQ,OAAO,MACra,SAASE,GAAG3oD,EAAEC,GAAG,IAAI,IAAIqwB,EAAE,GAAG1c,EAAE3T,EAAE,GAAGqwB,GAAG8I,EAAGxlB,GAAGA,EAAEA,EAAEsvB,aAAatvB,GAAG,IAAI/W,EAAEyzB,EAAE,MAAMjkB,GAAGxP,EAAE,6BAA6BwP,EAAEu8C,QAAQ,KAAKv8C,EAAElS,MAAM,MAAM,CAAC1F,MAAMuL,EAAE/G,OAAOgH,EAAE9F,MAAM0C,GAAG,SAASgsD,GAAG7oD,EAAEC,GAAG,IAAIma,QAAQ1e,MAAMuE,EAAExL,OAAO,MAAM67B,GAAG6mB,YAAW,WAAW,MAAM7mB,MAlB3Pm2B,GAAG,SAASzmD,EAAEC,GAAG,IAAI,IAAIqwB,EAAErwB,EAAEwjC,MAAM,OAAOnT,GAAG,CAAC,GAAG,IAAIA,EAAE7zB,KAAK,IAAI6zB,EAAE7zB,IAAIuD,EAAEu8B,YAAYjM,EAAEkR,gBAAgB,GAAG,IAAIlR,EAAE7zB,KAAK,OAAO6zB,EAAEmT,MAAM,CAACnT,EAAEmT,MAAMP,OAAO5S,EAAEA,EAAEA,EAAEmT,MAAM,SAAS,GAAGnT,IAAIrwB,EAAE,MAAM,KAAK,OAAOqwB,EAAEoT,SAAS,CAAC,GAAG,OAAOpT,EAAE4S,QAAQ5S,EAAE4S,SAASjjC,EAAE,OAAOqwB,EAAEA,EAAE4S,OAAO5S,EAAEoT,QAAQR,OAAO5S,EAAE4S,OAAO5S,EAAEA,EAAEoT,UAChSgjB,GAAG,SAAS1mD,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAEmD,EAAE0gD,cAAc,GAAG7jD,IAAI+W,EAAE,CAAC5T,EAAEC,EAAEuhC,UAAU0e,GAAGH,GAAGn6C,SAAS,IAAyUmsB,EAArU1lB,EAAE,KAAK,OAAOikB,GAAG,IAAK,QAAQzzB,EAAEu9B,EAAGp6B,EAAEnD,GAAG+W,EAAEwmB,EAAGp6B,EAAE4T,GAAGvH,EAAE,GAAG,MAAM,IAAK,SAASxP,EAAEo+B,GAAGj7B,EAAEnD,GAAG+W,EAAEqnB,GAAGj7B,EAAE4T,GAAGvH,EAAE,GAAG,MAAM,IAAK,SAASxP,EAAEm1B,EAAE,GAAGn1B,EAAE,CAACpI,WAAM,IAASmf,EAAEoe,EAAE,GAAGpe,EAAE,CAACnf,WAAM,IAAS4X,EAAE,GAAG,MAAM,IAAK,WAAWxP,EAAE0+B,GAAGv7B,EAAEnD,GAAG+W,EAAE2nB,GAAGv7B,EAAE4T,GAAGvH,EAAE,GAAG,MAAM,QAAQ,oBAAoBxP,EAAEoG,SAAS,oBAAoB2Q,EAAE3Q,UAAUjD,EAAEioD,QAAQrR,IAAyB,IAAIh9C,KAAzBgnC,GAAGtQ,EAAE1c,GAAS0c,EAAE,KAAczzB,EAAE,IAAI+W,EAAE9b,eAAe8B,IAAIiD,EAAE/E,eAAe8B,IAAI,MAAMiD,EAAEjD,GAAG,GAAG,UAC3eA,EAAE,CAAC,IAAIk4B,EAAEj1B,EAAEjD,GAAG,IAAIm4B,KAAKD,EAAEA,EAAEh6B,eAAei6B,KAAKzB,IAAIA,EAAE,IAAIA,EAAEyB,GAAG,QAAQ,4BAA4Bn4B,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAIi8B,EAAG/9B,eAAe8B,GAAGyS,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAI7X,KAAKoF,EAAE,OAAO,IAAIA,KAAKga,EAAE,CAAC,IAAID,EAAEC,EAAEha,GAAyB,GAAtBk4B,EAAE,MAAMj1B,EAAEA,EAAEjD,QAAG,EAAUga,EAAE9b,eAAe8B,IAAI+Z,IAAIme,IAAI,MAAMne,GAAG,MAAMme,GAAG,GAAG,UAAUl4B,EAAE,GAAGk4B,EAAE,CAAC,IAAIC,KAAKD,GAAGA,EAAEh6B,eAAei6B,IAAIpe,GAAGA,EAAE7b,eAAei6B,KAAKzB,IAAIA,EAAE,IAAIA,EAAEyB,GAAG,IAAI,IAAIA,KAAKpe,EAAEA,EAAE7b,eAAei6B,IAAID,EAAEC,KAAKpe,EAAEoe,KAAKzB,IAClfA,EAAE,IAAIA,EAAEyB,GAAGpe,EAAEoe,SAASzB,IAAIjkB,IAAIA,EAAE,IAAIA,EAAE7X,KAAKoF,EAAE02B,IAAIA,EAAE3c,MAAM,4BAA4B/Z,GAAG+Z,EAAEA,EAAEA,EAAEsjC,YAAO,EAAOnlB,EAAEA,EAAEA,EAAEmlB,YAAO,EAAO,MAAMtjC,GAAGme,IAAIne,IAAItH,EAAEA,GAAG,IAAI7X,KAAKoF,EAAE+Z,IAAI,aAAa/Z,EAAE,kBAAkB+Z,GAAG,kBAAkBA,IAAItH,EAAEA,GAAG,IAAI7X,KAAKoF,EAAE,GAAG+Z,GAAG,mCAAmC/Z,GAAG,6BAA6BA,IAAIi8B,EAAG/9B,eAAe8B,IAAI,MAAM+Z,GAAG,aAAa/Z,GAAG43B,GAAE,SAASxxB,GAAGqM,GAAGylB,IAAIne,IAAItH,EAAE,KAAK,kBAAkBsH,GAAG,OAAOA,GAAGA,EAAEse,WAAWqG,EAAG3kB,EAAEpe,YAAY8W,EAAEA,GAAG,IAAI7X,KAAKoF,EAAE+Z,IAAI2c,IAAIjkB,EAAEA,GAAG,IAAI7X,KAAK,QAC/e87B,GAAG,IAAI12B,EAAEyS,GAAKpM,EAAEq8C,YAAY1iD,KAAEqG,EAAEkjC,OAAO,KAAIwjB,GAAG,SAAS3mD,EAAEC,EAAEqwB,EAAE1c,GAAG0c,IAAI1c,IAAI3T,EAAEkjC,OAAO,IAcgL,IAAI2lB,GAAG,oBAAoBC,QAAQA,QAAQ3uD,IAAI,SAAS4uD,GAAGhpD,EAAEC,EAAEqwB,IAAGA,EAAEwsB,IAAI,EAAExsB,IAAK7zB,IAAI,EAAE6zB,EAAE2sB,QAAQ,CAAC/7C,QAAQ,MAAM,IAAI0S,EAAE3T,EAAExL,MAAsD,OAAhD67B,EAAE4sB,SAAS,WAAW+L,KAAKA,IAAG,EAAGC,GAAGt1C,GAAGi1C,GAAG7oD,EAAEC,IAAWqwB,EACpb,SAAS64B,GAAGnpD,EAAEC,EAAEqwB,IAAGA,EAAEwsB,IAAI,EAAExsB,IAAK7zB,IAAI,EAAE,IAAImX,EAAE5T,EAAE3F,KAAKisD,yBAAyB,GAAG,oBAAoB1yC,EAAE,CAAC,IAAI/W,EAAEoD,EAAExL,MAAM67B,EAAE2sB,QAAQ,WAAmB,OAAR4L,GAAG7oD,EAAEC,GAAU2T,EAAE/W,IAAI,IAAIwP,EAAErM,EAAEwhC,UAA8O,OAApO,OAAOn1B,GAAG,oBAAoBA,EAAE+8C,oBAAoB94B,EAAE4sB,SAAS,WAAW,oBAAoBtpC,IAAI,OAAOy1C,GAAGA,GAAG,IAAInpD,IAAI,CAACrJ,OAAOwyD,GAAG9iD,IAAI1P,MAAMgyD,GAAG7oD,EAAEC,IAAI,IAAIqwB,EAAErwB,EAAE9F,MAAMtD,KAAKuyD,kBAAkBnpD,EAAExL,MAAM,CAAC60D,eAAe,OAAOh5B,EAAEA,EAAE,OAAcA,EAAE,IAAIi5B,GAAG,oBAAoBC,QAAQA,QAAQtpD,IACxc,SAASupD,GAAGzpD,GAAG,IAAIC,EAAED,EAAE2sB,IAAI,GAAG,OAAO1sB,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,MAAM,MAAMqwB,GAAGo5B,GAAG1pD,EAAEswB,QAAQrwB,EAAE2F,QAAQ,KAAK,SAAS+jD,GAAG3pD,EAAEC,GAAG,OAAOA,EAAExD,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,KAAK,EAAE,GAAW,IAARwD,EAAEkjC,OAAW,OAAOnjC,EAAE,CAAC,IAAIswB,EAAEtwB,EAAE0gD,cAAc9sC,EAAE5T,EAAEqjC,cAA4BpjC,GAAdD,EAAEC,EAAEuhC,WAAcgd,wBAAwBv+C,EAAEs/C,cAAct/C,EAAE5F,KAAKi2B,EAAE6qB,GAAGl7C,EAAE5F,KAAKi2B,GAAG1c,GAAG5T,EAAE4pD,oCAAoC3pD,EAAE,OAAO,KAAK,EAA6C,YAAnC,IAARA,EAAEkjC,OAAWmU,GAAGr3C,EAAEuhC,UAAUkE,gBAAsB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,MAAMvY,MAAMsF,EAAE,MAC5e,SAASo3B,GAAG7pD,EAAEC,EAAEqwB,GAAG,OAAOA,EAAE7zB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAgD,GAAG,QAAhCwD,EAAE,QAAlBA,EAAEqwB,EAAEgsB,aAAuBr8C,EAAEg/C,WAAW,MAAiB,CAACj/C,EAAEC,EAAEA,EAAE3L,KAAK,EAAE,CAAC,GAAG,KAAW,EAAN0L,EAAEvD,KAAO,CAAC,IAAImX,EAAE5T,EAAEoE,OAAOpE,EAAEusB,QAAQ3Y,IAAI5T,EAAEA,EAAE1L,WAAW0L,IAAIC,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEqwB,EAAEgsB,aAAuBr8C,EAAEg/C,WAAW,MAAiB,CAACj/C,EAAEC,EAAEA,EAAE3L,KAAK,EAAE,CAAC,IAAIuI,EAAEmD,EAAE4T,EAAE/W,EAAEvI,KAAa,KAAO,GAAfuI,EAAEA,EAAEJ,OAAe,KAAO,EAAFI,KAAOitD,GAAGx5B,EAAEtwB,GAAG+pD,GAAGz5B,EAAEtwB,IAAIA,EAAE4T,QAAQ5T,IAAIC,GAAG,OAAO,KAAK,EACtR,OADwRD,EAAEswB,EAAEkR,UAAkB,EAARlR,EAAE6S,QAAU,OAAOljC,EAAED,EAAE2+C,qBAAqB/qC,EAAE0c,EAAEivB,cAAcjvB,EAAEj2B,KAAK4F,EAAEygD,cAAcvF,GAAG7qB,EAAEj2B,KAAK4F,EAAEygD,eAAe1gD,EAAEomD,mBAAmBxyC,EACxgB3T,EAAEojC,cAAcrjC,EAAE4pD,4CAAuD,QAAhB3pD,EAAEqwB,EAAEgsB,cAAsBiB,GAAGjtB,EAAErwB,EAAED,IAAU,KAAK,EAAkB,GAAG,QAAnBC,EAAEqwB,EAAEgsB,aAAwB,CAAQ,GAAPt8C,EAAE,KAAQ,OAAOswB,EAAEmT,MAAM,OAAOnT,EAAEmT,MAAMhnC,KAAK,KAAK,EAAEuD,EAAEswB,EAAEmT,MAAMjC,UAAU,MAAM,KAAK,EAAExhC,EAAEswB,EAAEmT,MAAMjC,UAAU+b,GAAGjtB,EAAErwB,EAAED,GAAG,OAAO,KAAK,EAA2E,OAAzEA,EAAEswB,EAAEkR,eAAU,OAAOvhC,GAAW,EAARqwB,EAAE6S,OAAS4T,GAAGzmB,EAAEj2B,KAAKi2B,EAAEowB,gBAAgB1gD,EAAEgqD,SAAe,KAAK,EAAS,KAAK,EAAS,KAAK,GAAG,OAAO,KAAK,GACzY,YAD4Y,OAAO15B,EAAE+S,gBAAgB/S,EAAEA,EAAE2S,UAAU,OAAO3S,IAAIA,EAAEA,EAAE+S,cAAc,OAAO/S,IAAIA,EAAEA,EAAEgT,WAAW,OAAOhT,GAAG4V,GAAG5V,OAChf,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,MAAMnD,MAAMsF,EAAE,MAC5E,SAASw3B,GAAGjqD,EAAEC,GAAG,IAAI,IAAIqwB,EAAEtwB,IAAI,CAAC,GAAG,IAAIswB,EAAE7zB,IAAI,CAAC,IAAImX,EAAE0c,EAAEkR,UAAU,GAAGvhC,EAAY,oBAAV2T,EAAEA,EAAE8rB,OAA4BC,YAAY/rB,EAAE+rB,YAAY,UAAU,OAAO,aAAa/rB,EAAEwZ,QAAQ,WAAW,CAACxZ,EAAE0c,EAAEkR,UAAU,IAAI3kC,EAAEyzB,EAAEowB,cAAchhB,MAAM7iC,OAAE,IAASA,GAAG,OAAOA,GAAGA,EAAE/E,eAAe,WAAW+E,EAAEuwB,QAAQ,KAAKxZ,EAAE8rB,MAAMtS,QAAQoS,GAAG,UAAU3iC,SAAS,GAAG,IAAIyzB,EAAE7zB,IAAI6zB,EAAEkR,UAAU7E,UAAU18B,EAAE,GAAGqwB,EAAEowB,mBAAmB,IAAI,KAAKpwB,EAAE7zB,KAAK,KAAK6zB,EAAE7zB,KAAK,OAAO6zB,EAAE+S,eAAe/S,IAAItwB,IAAI,OAAOswB,EAAEmT,MAAM,CAACnT,EAAEmT,MAAMP,OAAO5S,EAAEA,EAAEA,EAAEmT,MAAM,SAAS,GAAGnT,IACtftwB,EAAE,MAAM,KAAK,OAAOswB,EAAEoT,SAAS,CAAC,GAAG,OAAOpT,EAAE4S,QAAQ5S,EAAE4S,SAASljC,EAAE,OAAOswB,EAAEA,EAAE4S,OAAO5S,EAAEoT,QAAQR,OAAO5S,EAAE4S,OAAO5S,EAAEA,EAAEoT,SACjH,SAASwmB,GAAGlqD,EAAEC,GAAG,GAAGi5C,IAAI,oBAAoBA,GAAGiR,qBAAqB,IAAIjR,GAAGiR,qBAAqBlR,GAAGh5C,GAAG,MAAMoM,IAAI,OAAOpM,EAAExD,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAmB,GAAG,QAAnBuD,EAAEC,EAAEq8C,cAAyC,QAAft8C,EAAEA,EAAEi/C,YAAqB,CAAC,IAAI3uB,EAAEtwB,EAAEA,EAAE1L,KAAK,EAAE,CAAC,IAAIsf,EAAE0c,EAAEzzB,EAAE+W,EAAE2Y,QAAgB,GAAR3Y,EAAEA,EAAEnX,SAAO,IAASI,EAAE,GAAG,KAAO,EAAF+W,GAAKk2C,GAAG7pD,EAAEqwB,OAAO,CAAC1c,EAAE3T,EAAE,IAAIpD,IAAI,MAAMwP,GAAGq9C,GAAG91C,EAAEvH,IAAIikB,EAAEA,EAAEh8B,WAAWg8B,IAAItwB,GAAG,MAAM,KAAK,EAAsB,GAApBypD,GAAGxpD,GAAoB,oBAAjBD,EAAEC,EAAEuhC,WAAmC4oB,qBAAqB,IAAIpqD,EAAEuD,MAAMtD,EAAEygD,cAAc1gD,EAAE6gB,MAAM5gB,EAAEojC,cAAcrjC,EAAEoqD,uBAAuB,MAAM/9C,GAAGq9C,GAAGzpD,EAC/gBoM,GAAG,MAAM,KAAK,EAAEo9C,GAAGxpD,GAAG,MAAM,KAAK,EAAEoqD,GAAGrqD,EAAEC,IAAI,SAASqqD,GAAGtqD,GAAGA,EAAEijC,UAAU,KAAKjjC,EAAEyjC,MAAM,KAAKzjC,EAAE67C,aAAa,KAAK77C,EAAEm/C,YAAY,KAAKn/C,EAAEi/C,WAAW,KAAKj/C,EAAE0gD,cAAc,KAAK1gD,EAAEqjC,cAAc,KAAKrjC,EAAEkhD,aAAa,KAAKlhD,EAAEkjC,OAAO,KAAKljC,EAAEs8C,YAAY,KAAK,SAASiO,GAAGvqD,GAAG,OAAO,IAAIA,EAAEvD,KAAK,IAAIuD,EAAEvD,KAAK,IAAIuD,EAAEvD,IACnS,SAAS+tD,GAAGxqD,GAAGA,EAAE,CAAC,IAAI,IAAIC,EAAED,EAAEkjC,OAAO,OAAOjjC,GAAG,CAAC,GAAGsqD,GAAGtqD,GAAG,MAAMD,EAAEC,EAAEA,EAAEijC,OAAO,MAAM/V,MAAMsF,EAAE,MAAO,IAAInC,EAAErwB,EAAgB,OAAdA,EAAEqwB,EAAEkR,UAAiBlR,EAAE7zB,KAAK,KAAK,EAAE,IAAImX,GAAE,EAAG,MAAM,KAAK,EAA+B,KAAK,EAAE3T,EAAEA,EAAEylC,cAAc9xB,GAAE,EAAG,MAAM,QAAQ,MAAMuZ,MAAMsF,EAAE,MAAe,GAARnC,EAAE6S,QAAWz1B,GAAGzN,EAAE,IAAIqwB,EAAE6S,QAAQ,IAAInjC,EAAEC,EAAE,IAAIqwB,EAAEtwB,IAAI,CAAC,KAAK,OAAOswB,EAAEoT,SAAS,CAAC,GAAG,OAAOpT,EAAE4S,QAAQqnB,GAAGj6B,EAAE4S,QAAQ,CAAC5S,EAAE,KAAK,MAAMtwB,EAAEswB,EAAEA,EAAE4S,OAAiC,IAA1B5S,EAAEoT,QAAQR,OAAO5S,EAAE4S,OAAW5S,EAAEA,EAAEoT,QAAQ,IAAIpT,EAAE7zB,KAAK,IAAI6zB,EAAE7zB,KAAK,KAAK6zB,EAAE7zB,KAAK,CAAC,GAAW,EAAR6zB,EAAE6S,MAAQ,SAASljC,EAAE,GAAG,OAC/eqwB,EAAEmT,OAAO,IAAInT,EAAE7zB,IAAI,SAASwD,EAAOqwB,EAAEmT,MAAMP,OAAO5S,EAAEA,EAAEA,EAAEmT,MAAM,KAAa,EAARnT,EAAE6S,OAAS,CAAC7S,EAAEA,EAAEkR,UAAU,MAAMxhC,GAAG4T,EAAE62C,GAAGzqD,EAAEswB,EAAErwB,GAAGyqD,GAAG1qD,EAAEswB,EAAErwB,GACzH,SAASwqD,GAAGzqD,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE5T,EAAEvD,IAAII,EAAE,IAAI+W,GAAG,IAAIA,EAAE,GAAG/W,EAAEmD,EAAEnD,EAAEmD,EAAEwhC,UAAUxhC,EAAEwhC,UAAUp+B,SAASnD,EAAE,IAAIqwB,EAAEryB,SAASqyB,EAAE4Q,WAAWypB,aAAa3qD,EAAEC,GAAGqwB,EAAEq6B,aAAa3qD,EAAEC,IAAI,IAAIqwB,EAAEryB,UAAUgC,EAAEqwB,EAAE4Q,YAAaypB,aAAa3qD,EAAEswB,IAAKrwB,EAAEqwB,GAAIiM,YAAYv8B,GAA4B,QAAxBswB,EAAEA,EAAEs6B,2BAA8B,IAASt6B,GAAG,OAAOrwB,EAAEgoD,UAAUhoD,EAAEgoD,QAAQrR,UAAU,GAAG,IAAIhjC,GAAc,QAAV5T,EAAEA,EAAEyjC,OAAgB,IAAIgnB,GAAGzqD,EAAEC,EAAEqwB,GAAGtwB,EAAEA,EAAE0jC,QAAQ,OAAO1jC,GAAGyqD,GAAGzqD,EAAEC,EAAEqwB,GAAGtwB,EAAEA,EAAE0jC,QAC9Y,SAASgnB,GAAG1qD,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE5T,EAAEvD,IAAII,EAAE,IAAI+W,GAAG,IAAIA,EAAE,GAAG/W,EAAEmD,EAAEnD,EAAEmD,EAAEwhC,UAAUxhC,EAAEwhC,UAAUp+B,SAASnD,EAAEqwB,EAAEq6B,aAAa3qD,EAAEC,GAAGqwB,EAAEiM,YAAYv8B,QAAQ,GAAG,IAAI4T,GAAc,QAAV5T,EAAEA,EAAEyjC,OAAgB,IAAIinB,GAAG1qD,EAAEC,EAAEqwB,GAAGtwB,EAAEA,EAAE0jC,QAAQ,OAAO1jC,GAAG0qD,GAAG1qD,EAAEC,EAAEqwB,GAAGtwB,EAAEA,EAAE0jC,QACrN,SAAS2mB,GAAGrqD,EAAEC,GAAG,IAAI,IAAapD,EAAEwP,EAAXikB,EAAErwB,EAAE2T,GAAE,IAAS,CAAC,IAAIA,EAAE,CAACA,EAAE0c,EAAE4S,OAAOljC,EAAE,OAAO,CAAC,GAAG,OAAO4T,EAAE,MAAMuZ,MAAMsF,EAAE,MAAoB,OAAd51B,EAAE+W,EAAE4tB,UAAiB5tB,EAAEnX,KAAK,KAAK,EAAE4P,GAAE,EAAG,MAAMrM,EAAE,KAAK,EAAiC,KAAK,EAAEnD,EAAEA,EAAE6oC,cAAcr5B,GAAE,EAAG,MAAMrM,EAAE4T,EAAEA,EAAEsvB,OAAOtvB,GAAE,EAAG,GAAG,IAAI0c,EAAE7zB,KAAK,IAAI6zB,EAAE7zB,IAAI,CAACuD,EAAE,IAAI,IAAI+xB,EAAE/xB,EAAE8xB,EAAExB,EAAE3c,EAAEme,IAAI,GAAGo4B,GAAGn4B,EAAEpe,GAAG,OAAOA,EAAE8vB,OAAO,IAAI9vB,EAAElX,IAAIkX,EAAE8vB,MAAMP,OAAOvvB,EAAEA,EAAEA,EAAE8vB,UAAU,CAAC,GAAG9vB,IAAIme,EAAE,MAAM9xB,EAAE,KAAK,OAAO2T,EAAE+vB,SAAS,CAAC,GAAG,OAAO/vB,EAAEuvB,QAAQvvB,EAAEuvB,SAASpR,EAAE,MAAM9xB,EAAE2T,EAAEA,EAAEuvB,OAAOvvB,EAAE+vB,QAAQR,OAAOvvB,EAAEuvB,OAAOvvB,EAAEA,EAAE+vB,QAAQr3B,GAAG0lB,EAAEl1B,EAAEi1B,EAAExB,EAAEkR,UACrf,IAAIzP,EAAE9zB,SAAS8zB,EAAEmP,WAAW5E,YAAYxK,GAAGC,EAAEuK,YAAYxK,IAAIj1B,EAAEy/B,YAAYhM,EAAEkR,gBAAgB,GAAG,IAAIlR,EAAE7zB,KAAK,GAAG,OAAO6zB,EAAEmT,MAAM,CAAC5mC,EAAEyzB,EAAEkR,UAAUkE,cAAcr5B,GAAE,EAAGikB,EAAEmT,MAAMP,OAAO5S,EAAEA,EAAEA,EAAEmT,MAAM,eAAe,GAAGymB,GAAGlqD,EAAEswB,GAAG,OAAOA,EAAEmT,MAAM,CAACnT,EAAEmT,MAAMP,OAAO5S,EAAEA,EAAEA,EAAEmT,MAAM,SAAS,GAAGnT,IAAIrwB,EAAE,MAAM,KAAK,OAAOqwB,EAAEoT,SAAS,CAAC,GAAG,OAAOpT,EAAE4S,QAAQ5S,EAAE4S,SAASjjC,EAAE,OAAkB,KAAXqwB,EAAEA,EAAE4S,QAAazmC,MAAMmX,GAAE,GAAI0c,EAAEoT,QAAQR,OAAO5S,EAAE4S,OAAO5S,EAAEA,EAAEoT,SAClZ,SAASmnB,GAAG7qD,EAAEC,GAAG,OAAOA,EAAExD,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI6zB,EAAErwB,EAAEq8C,YAAyC,GAAG,QAAhChsB,EAAE,OAAOA,EAAEA,EAAE2uB,WAAW,MAAiB,CAAC,IAAIrrC,EAAE0c,EAAEA,EAAEh8B,KAAK,GAAG,KAAW,EAANsf,EAAEnX,OAASuD,EAAE4T,EAAE2Y,QAAQ3Y,EAAE2Y,aAAQ,OAAO,IAASvsB,GAAGA,KAAK4T,EAAEA,EAAEtf,WAAWsf,IAAI0c,GAAG,OAAO,KAAK,EAAE,OAAO,KAAK,EAAgB,GAAG,OAAjBA,EAAErwB,EAAEuhC,WAAqB,CAAC5tB,EAAE3T,EAAEygD,cAAc,IAAI7jD,EAAE,OAAOmD,EAAEA,EAAE0gD,cAAc9sC,EAAE5T,EAAEC,EAAE5F,KAAK,IAAIgS,EAAEpM,EAAEq8C,YAA+B,GAAnBr8C,EAAEq8C,YAAY,KAAQ,OAAOjwC,EAAE,CAAgF,IAA/EikB,EAAEunB,IAAIjkC,EAAE,UAAU5T,GAAG,UAAU4T,EAAEvZ,MAAM,MAAMuZ,EAAEje,MAAMilC,GAAGtK,EAAE1c,GAAGitB,GAAG7gC,EAAEnD,GAAGoD,EAAE4gC,GAAG7gC,EAAE4T,GAAO/W,EAAE,EAAEA,EAAEwP,EAAE3X,OAAOmI,GAClf,EAAE,CAAC,IAAIk1B,EAAE1lB,EAAExP,GAAGi1B,EAAEzlB,EAAExP,EAAE,GAAG,UAAUk1B,EAAE0N,GAAGnP,EAAEwB,GAAG,4BAA4BC,EAAEkK,GAAG3L,EAAEwB,GAAG,aAAaC,EAAErkB,GAAG4iB,EAAEwB,GAAGmF,EAAG3G,EAAEyB,EAAED,EAAE7xB,GAAG,OAAOD,GAAG,IAAK,QAAQ66B,GAAGvK,EAAE1c,GAAG,MAAM,IAAK,WAAW8nB,GAAGpL,EAAE1c,GAAG,MAAM,IAAK,SAAS5T,EAAEswB,EAAEiK,cAAcwtB,YAAYz3B,EAAEiK,cAAcwtB,cAAcn0C,EAAEo0C,SAAmB,OAAV37C,EAAEuH,EAAEnf,OAAc0mC,GAAG7K,IAAI1c,EAAEo0C,SAAS37C,GAAE,GAAIrM,MAAM4T,EAAEo0C,WAAW,MAAMp0C,EAAE0mB,aAAaa,GAAG7K,IAAI1c,EAAEo0C,SAASp0C,EAAE0mB,cAAa,GAAIa,GAAG7K,IAAI1c,EAAEo0C,SAASp0C,EAAEo0C,SAAS,GAAG,IAAG,MAAO,OAAO,KAAK,EAAE,GAAG,OAAO/nD,EAAEuhC,UAAU,MAAMrU,MAAMsF,EAAE,MAC/c,YADqdxyB,EAAEuhC,UAAU7E,UACjf18B,EAAEygD,eAAqB,KAAK,EAA8D,aAA5DpwB,EAAErwB,EAAEuhC,WAAYiE,UAAUnV,EAAEmV,SAAQ,EAAGS,GAAG5V,EAAEoV,iBAAuB,KAAK,GAAG,OAAO,KAAK,GAAyD,OAAtD,OAAOzlC,EAAEojC,gBAAgBynB,GAAGv4B,KAAI03B,GAAGhqD,EAAEwjC,OAAM,SAAKsnB,GAAG9qD,GAAU,KAAK,GAAS,YAAN8qD,GAAG9qD,GAAU,KAAK,GAAG,OAAO,KAAK,GAAG,KAAK,GAAgC,YAA7BgqD,GAAGhqD,EAAE,OAAOA,EAAEojC,eAAsB,MAAMlW,MAAMsF,EAAE,MAAO,SAASs4B,GAAG/qD,GAAG,IAAIC,EAAED,EAAEs8C,YAAY,GAAG,OAAOr8C,EAAE,CAACD,EAAEs8C,YAAY,KAAK,IAAIhsB,EAAEtwB,EAAEwhC,UAAU,OAAOlR,IAAIA,EAAEtwB,EAAEwhC,UAAU,IAAI+nB,IAAItpD,EAAErH,SAAQ,SAASqH,GAAG,IAAI2T,EAAEo3C,GAAG12B,KAAK,KAAKt0B,EAAEC,GAAGqwB,EAAEp5B,IAAI+I,KAAKqwB,EAAE/pB,IAAItG,GAAGA,EAAErE,KAAKgY,EAAEA,QACne,SAASq3C,GAAGjrD,EAAEC,GAAG,OAAO,OAAOD,IAAsB,QAAlBA,EAAEA,EAAEqjC,gBAAwB,OAAOrjC,EAAEsjC,cAA+B,QAAlBrjC,EAAEA,EAAEojC,gBAAwB,OAAOpjC,EAAEqjC,YAAe,IAAI4nB,GAAGp+C,KAAKq+C,KAAKC,GAAG5zB,EAAGvE,uBAAuBo4B,GAAG7zB,EAAGpE,kBAAkBk4B,GAAE,EAAE9H,GAAE,KAAK+H,GAAE,KAAKhD,GAAE,EAAEiD,GAAG,EAAEC,GAAGxT,GAAG,GAAGmQ,GAAE,EAAEsD,GAAG,KAAKC,GAAG,EAAErO,GAAG,EAAE+K,GAAG,EAAEuD,GAAG,EAAEC,GAAG,KAAKf,GAAG,EAAEtC,GAAGpiD,IAAS,SAAS0lD,KAAKtD,GAAGj2B,KAAI,IAAI,IA8BsFw5B,GA9BlFC,GAAE,KAAK/C,IAAG,EAAGC,GAAG,KAAKG,GAAG,KAAK4C,IAAG,EAAGC,GAAG,KAAKC,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,IAAG,EAAG,SAASjP,KAAK,OAAO,KAAO,GAAF0N,IAAM/4B,MAAK,IAAIk6B,GAAGA,GAAGA,GAAGl6B,KAC3e,SAASsrB,GAAG79C,GAAY,GAAG,KAAO,GAAnBA,EAAEA,EAAEs/C,OAAkB,OAAO,EAAE,GAAG,KAAO,EAAFt/C,GAAK,OAAO,KAAK46C,KAAK,EAAE,EAAkB,GAAhB,IAAI8R,KAAKA,GAAGf,IAAO,IAAIzQ,GAAG/nB,WAAW,CAAC,IAAIw5B,KAAKA,GAAG,OAAOd,GAAGA,GAAGpkB,aAAa,GAAGznC,EAAE0sD,GAAG,IAAIzsD,EAAE,SAAS0sD,GAAsD,OAA7C,KAAN1sD,IAAIA,KAA8B,KAAPA,GAAbD,EAAE,SAASA,IAAOA,KAAUC,EAAE,OAAcA,EAA4D,OAA1DD,EAAE46C,KAAK,KAAO,EAAF0Q,KAAM,KAAKtrD,EAAEA,EAAEioC,GAAG,GAAGykB,IAAa1sD,EAAEioC,GAAVjoC,EAtK3Q,SAAYA,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,QAAQ,OAAO,GAsKuJ8sD,CAAG9sD,GAAU0sD,IAAY1sD,EACnT,SAAS89C,GAAG99C,EAAEC,EAAEqwB,GAAG,GAAG,GAAGi8B,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAKr/B,MAAMsF,EAAE,MAAgB,GAAG,QAAbzyB,EAAE+sD,GAAG/sD,EAAEC,IAAe,OAAO,KAAKmoC,GAAGpoC,EAAEC,EAAEqwB,GAAGtwB,IAAIwjD,KAAI6E,IAAIpoD,EAAE,IAAImoD,IAAGE,GAAGtoD,EAAEuoD,KAAI,IAAI30C,EAAEgnC,KAAK,IAAI36C,EAAE,KAAO,EAAFqrD,KAAM,KAAO,GAAFA,IAAM0B,GAAGhtD,IAAIitD,GAAGjtD,EAAEswB,GAAG,IAAIg7B,KAAIQ,KAAK9Q,QAAQ,KAAO,EAAFsQ,KAAM,KAAK13C,GAAG,KAAKA,IAAI,OAAO04C,GAAGA,GAAG,IAAIpsD,IAAI,CAACF,IAAIssD,GAAG/lD,IAAIvG,IAAIitD,GAAGjtD,EAAEswB,IAAIu7B,GAAG7rD,EAAE,SAAS+sD,GAAG/sD,EAAEC,GAAGD,EAAE+7C,OAAO97C,EAAE,IAAIqwB,EAAEtwB,EAAEijC,UAAqC,IAA3B,OAAO3S,IAAIA,EAAEyrB,OAAO97C,GAAGqwB,EAAEtwB,EAAMA,EAAEA,EAAEkjC,OAAO,OAAOljC,GAAGA,EAAE27C,YAAY17C,EAAgB,QAAdqwB,EAAEtwB,EAAEijC,aAAqB3S,EAAEqrB,YAAY17C,GAAGqwB,EAAEtwB,EAAEA,EAAEA,EAAEkjC,OAAO,OAAO,IAAI5S,EAAE7zB,IAAI6zB,EAAEkR,UAAU,KACze,SAASyrB,GAAGjtD,EAAEC,GAAG,IAAI,IAAIqwB,EAAEtwB,EAAEktD,aAAat5C,EAAE5T,EAAE2nC,eAAe9qC,EAAEmD,EAAE4nC,YAAYv7B,EAAErM,EAAEmtD,gBAAgBp7B,EAAE/xB,EAAEynC,aAAa,EAAE1V,GAAG,CAAC,IAAID,EAAE,GAAG+V,GAAG9V,GAAGpe,EAAE,GAAGme,EAAEl4B,EAAEyS,EAAEylB,GAAG,IAAI,IAAIl4B,GAAG,GAAG,KAAK+Z,EAAEC,IAAI,KAAKD,EAAE9W,GAAG,CAACjD,EAAEqG,EAAEsnC,GAAG5zB,GAAG,IAAIte,EAAE+W,GAAEC,EAAEylB,GAAG,IAAIz8B,EAAEuE,EAAE,IAAI,GAAGvE,EAAEuE,EAAE,KAAK,QAAQA,GAAGqG,IAAID,EAAE0nC,cAAc/zB,GAAGoe,IAAIpe,EAAwB,GAAtBC,EAAE4zB,GAAGxnC,EAAEA,IAAIwjD,GAAE+E,GAAE,GAAGtoD,EAAEmM,GAAK,IAAIwH,EAAE,OAAO0c,IAAIA,IAAIgqB,IAAIjB,GAAG/oB,GAAGtwB,EAAEktD,aAAa,KAAKltD,EAAEotD,iBAAiB,OAAO,CAAC,GAAG,OAAO98B,EAAE,CAAC,GAAGtwB,EAAEotD,mBAAmBntD,EAAE,OAAOqwB,IAAIgqB,IAAIjB,GAAG/oB,GAAG,KAAKrwB,GAAGqwB,EAAE08B,GAAG14B,KAAK,KAAKt0B,GAAG,OAAOw6C,IAAIA,GAAG,CAAClqB,GAAGmqB,GAAGrB,GAAGU,GAAGmB,KAAKT,GAAGhmD,KAAK87B,GACrfA,EAAEgqB,IAAI,KAAKr6C,EAAEqwB,EAAEyqB,GAAG,GAAGiS,GAAG14B,KAAK,KAAKt0B,IAAaswB,EAAEyqB,GAAVzqB,EAzK+F,SAAYtwB,GAAG,OAAOA,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,GAAG,QAAQ,MAAMmtB,MAAMsF,EAAE,IAAIzyB,KAyKxTqtD,CAAGptD,GAAUqtD,GAAGh5B,KAAK,KAAKt0B,IAAKA,EAAEotD,iBAAiBntD,EAAED,EAAEktD,aAAa58B,GAC5G,SAASg9B,GAAGttD,GAAiB,GAAdysD,IAAI,EAAEE,GAAGD,GAAG,EAAK,KAAO,GAAFpB,IAAM,MAAMn+B,MAAMsF,EAAE,MAAM,IAAIxyB,EAAED,EAAEktD,aAAa,GAAGK,MAAMvtD,EAAEktD,eAAejtD,EAAE,OAAO,KAAK,IAAIqwB,EAAEkX,GAAGxnC,EAAEA,IAAIwjD,GAAE+E,GAAE,GAAG,GAAG,IAAIj4B,EAAE,OAAO,KAAK,IAAI1c,EAAE0c,EAAMzzB,EAAEyuD,GAAEA,IAAG,GAAG,IAAIj/C,EAAEmhD,KAAkC,IAA1BhK,KAAIxjD,GAAGuoD,KAAI30C,IAAEk4C,KAAK2B,GAAGztD,EAAE4T,MAAM,IAAI85C,KAAK,MAAM,MAAM57B,GAAG67B,GAAG3tD,EAAE8xB,GAAgE,GAApD0pB,KAAK4P,GAAGxlD,QAAQyG,EAAEi/C,GAAEzuD,EAAE,OAAO0uD,GAAE33C,EAAE,GAAG4vC,GAAE,KAAK+E,GAAE,EAAE30C,EAAEw0C,IAAM,KAAKuD,GAAGtD,IAAIoF,GAAGztD,EAAE,QAAQ,GAAG,IAAI4T,EAAE,CAAyF,GAAxF,IAAIA,IAAI03C,IAAG,GAAGtrD,EAAEylC,UAAUzlC,EAAEylC,SAAQ,EAAG6R,GAAGt3C,EAAE0lC,gBAAwB,KAARpV,EAAE0X,GAAGhoC,MAAW4T,EAAEg6C,GAAG5tD,EAAEswB,KAAQ,IAAI1c,EAAE,MAAM3T,EAAEyrD,GAAG+B,GAAGztD,EAAE,GAAGsoD,GAAGtoD,EAAEswB,GAAG28B,GAAGjtD,EAAEuyB,MAAKtyB,EAC3c,OAD6cD,EAAE6tD,aACrf7tD,EAAE4F,QAAQq9B,UAAUjjC,EAAE8tD,cAAcx9B,EAAS1c,GAAG,KAAK,EAAE,KAAK,EAAE,MAAMuZ,MAAMsF,EAAE,MAAM,KAAK,EAAEs7B,GAAG/tD,GAAG,MAAM,KAAK,EAAU,GAARsoD,GAAGtoD,EAAEswB,IAAS,SAAFA,KAAcA,GAAiB,IAAb1c,EAAEk3C,GAAG,IAAIv4B,MAAU,CAAC,GAAG,IAAIiV,GAAGxnC,EAAE,GAAG,MAAyB,KAAnBnD,EAAEmD,EAAE2nC,gBAAqBrX,KAAKA,EAAE,CAACstB,KAAK59C,EAAE4nC,aAAa5nC,EAAE2nC,eAAe9qC,EAAE,MAAMmD,EAAEguD,cAAc9W,GAAG6W,GAAGz5B,KAAK,KAAKt0B,GAAG4T,GAAG,MAAMm6C,GAAG/tD,GAAG,MAAM,KAAK,EAAU,GAARsoD,GAAGtoD,EAAEswB,IAAS,QAAFA,KAAaA,EAAE,MAAqB,IAAf1c,EAAE5T,EAAEqoC,WAAexrC,GAAG,EAAE,EAAEyzB,GAAG,CAAC,IAAIyB,EAAE,GAAG8V,GAAGvX,GAAGjkB,EAAE,GAAG0lB,GAAEA,EAAEne,EAAEme,IAAKl1B,IAAIA,EAAEk1B,GAAGzB,IAAIjkB,EACjZ,GADmZikB,EAAEzzB,EAClZ,IAD4ZyzB,GAAG,KAAXA,EAAEiC,KAAIjC,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAClfA,EAAE,KAAK,KAAK46B,GAAG56B,EAAE,OAAOA,GAAU,CAACtwB,EAAEguD,cAAc9W,GAAG6W,GAAGz5B,KAAK,KAAKt0B,GAAGswB,GAAG,MAAMy9B,GAAG/tD,GAAG,MAAM,KAAK,EAAE+tD,GAAG/tD,GAAG,MAAM,QAAQ,MAAMmtB,MAAMsF,EAAE,OAAkB,OAAVw6B,GAAGjtD,EAAEuyB,MAAYvyB,EAAEktD,eAAejtD,EAAEqtD,GAAGh5B,KAAK,KAAKt0B,GAAG,KAAK,SAASsoD,GAAGtoD,EAAEC,GAAuD,IAApDA,IAAI2rD,GAAG3rD,IAAIooD,GAAGroD,EAAE2nC,gBAAgB1nC,EAAED,EAAE4nC,cAAc3nC,EAAMD,EAAEA,EAAEmtD,gBAAgB,EAAEltD,GAAG,CAAC,IAAIqwB,EAAE,GAAGuX,GAAG5nC,GAAG2T,EAAE,GAAG0c,EAAEtwB,EAAEswB,IAAI,EAAErwB,IAAI2T,GAC1U,SAASo5C,GAAGhtD,GAAG,GAAG,KAAO,GAAFsrD,IAAM,MAAMn+B,MAAMsF,EAAE,MAAW,GAAL86B,KAAQvtD,IAAIwjD,IAAG,KAAKxjD,EAAE0nC,aAAa6gB,IAAG,CAAC,IAAItoD,EAAEsoD,GAAMj4B,EAAEs9B,GAAG5tD,EAAEC,GAAG,KAAK0rD,GAAGtD,MAAgB/3B,EAAEs9B,GAAG5tD,EAAfC,EAAEunC,GAAGxnC,EAAEC,UAA6BqwB,EAAEs9B,GAAG5tD,EAAfC,EAAEunC,GAAGxnC,EAAE,IAAgH,GAAnG,IAAIA,EAAEvD,KAAK,IAAI6zB,IAAIg7B,IAAG,GAAGtrD,EAAEylC,UAAUzlC,EAAEylC,SAAQ,EAAG6R,GAAGt3C,EAAE0lC,gBAAwB,KAARzlC,EAAE+nC,GAAGhoC,MAAWswB,EAAEs9B,GAAG5tD,EAAEC,KAAQ,IAAIqwB,EAAE,MAAMA,EAAEo7B,GAAG+B,GAAGztD,EAAE,GAAGsoD,GAAGtoD,EAAEC,GAAGgtD,GAAGjtD,EAAEuyB,MAAKjC,EAAuE,OAArEtwB,EAAE6tD,aAAa7tD,EAAE4F,QAAQq9B,UAAUjjC,EAAE8tD,cAAc7tD,EAAE8tD,GAAG/tD,GAAGitD,GAAGjtD,EAAEuyB,MAAY,KACnR,SAAS07B,GAAGjuD,EAAEC,GAAG,IAAIqwB,EAAEg7B,GAAEA,IAAG,EAAE,IAAI,OAAOtrD,EAAEC,GAAb,QAA4B,KAAJqrD,GAAEh7B,KAAUw7B,KAAK9Q,OAAO,SAASkT,GAAGluD,EAAEC,GAAG,IAAIqwB,EAAEg7B,GAAEA,KAAI,EAAEA,IAAG,EAAE,IAAI,OAAOtrD,EAAEC,GAAb,QAA4B,KAAJqrD,GAAEh7B,KAAUw7B,KAAK9Q,OAAO,SAAS+K,GAAG/lD,EAAEC,GAAGyxB,GAAE+5B,GAAGD,IAAIA,IAAIvrD,EAAE0rD,IAAI1rD,EAAE,SAASwoD,KAAK+C,GAAGC,GAAG7lD,QAAQ6rB,GAAEg6B,IAC5V,SAASgC,GAAGztD,EAAEC,GAAGD,EAAE6tD,aAAa,KAAK7tD,EAAE8tD,cAAc,EAAE,IAAIx9B,EAAEtwB,EAAEguD,cAAiD,IAAlC,IAAI19B,IAAItwB,EAAEguD,eAAe,EAAE5W,GAAG9mB,IAAO,OAAOi7B,GAAE,IAAIj7B,EAAEi7B,GAAEroB,OAAO,OAAO5S,GAAG,CAAC,IAAI1c,EAAE0c,EAAE,OAAO1c,EAAEnX,KAAK,KAAK,EAA6B,QAA3BmX,EAAEA,EAAEvZ,KAAKo+C,yBAA4B,IAAS7kC,GAAG8kC,KAAK,MAAM,KAAK,EAAE4H,KAAK7uB,GAAEY,IAAGZ,GAAEW,IAAGovB,KAAK,MAAM,KAAK,EAAEhB,GAAG5sC,GAAG,MAAM,KAAK,EAAE0sC,KAAK,MAAM,KAAK,GAAc,KAAK,GAAG7uB,GAAEiB,IAAG,MAAM,KAAK,GAAG+oB,GAAG7nC,GAAG,MAAM,KAAK,GAAG,KAAK,GAAG60C,KAAKn4B,EAAEA,EAAE4S,OAAOsgB,GAAExjD,EAAEurD,GAAEnM,GAAGp/C,EAAE4F,QAAQ,MAAM2iD,GAAEiD,GAAGG,GAAG1rD,EAAEmoD,GAAE,EAAEsD,GAAG,KAAKE,GAAGvD,GAAG/K,GAAG,EACvc,SAASqQ,GAAG3tD,EAAEC,GAAG,OAAE,CAAC,IAAIqwB,EAAEi7B,GAAE,IAAuB,GAAnB/P,KAAKkG,GAAG97C,QAAQy8C,GAAMR,GAAG,CAAC,IAAI,IAAIjuC,EAAEkf,GAAEuQ,cAAc,OAAOzvB,GAAG,CAAC,IAAI/W,EAAE+W,EAAE4uC,MAAM,OAAO3lD,IAAIA,EAAE8/C,QAAQ,MAAM/oC,EAAEA,EAAEtf,KAAKutD,IAAG,EAAyC,GAAtCD,GAAG,EAAE5uB,GAAED,GAAED,GAAE,KAAKgvB,IAAG,EAAGuJ,GAAGzlD,QAAQ,KAAQ,OAAO0qB,GAAG,OAAOA,EAAE4S,OAAO,CAACklB,GAAE,EAAEsD,GAAGzrD,EAAEsrD,GAAE,KAAK,MAAMvrD,EAAE,CAAC,IAAIqM,EAAErM,EAAE+xB,EAAEzB,EAAE4S,OAAOpR,EAAExB,EAAE3c,EAAE1T,EAAoD,GAAlDA,EAAEsoD,GAAEz2B,EAAEqR,OAAO,KAAKrR,EAAEqtB,YAAYrtB,EAAEmtB,WAAW,KAAQ,OAAOtrC,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAE/X,KAAK,CAAC,IAAIhC,EAAE+Z,EAAE,GAAG,KAAY,EAAPme,EAAEwtB,MAAQ,CAAC,IAAIjqD,EAAEy8B,EAAEmR,UAAU5tC,GAAGy8B,EAAEwqB,YAAYjnD,EAAEinD,YAAYxqB,EAAEuR,cAAchuC,EAAEguC,cAAcvR,EAAEiqB,MAAM1mD,EAAE0mD,QACpfjqB,EAAEwqB,YAAY,KAAKxqB,EAAEuR,cAAc,MAAM,IAAI7S,EAAE,KAAe,EAAVkC,GAAE9sB,SAAW7E,EAAEgxB,EAAE,EAAE,CAAC,IAAIjB,EAAE,GAAGA,EAAE,KAAK/vB,EAAEtE,IAAI,CAAC,IAAIoQ,EAAE9L,EAAEsiC,cAAc,GAAG,OAAOx2B,EAAEikB,EAAE,OAAOjkB,EAAEy2B,eAAqB,CAAC,IAAIlT,EAAErvB,EAAE2/C,cAAc5vB,OAAE,IAASV,EAAE22B,YAAY,IAAK32B,EAAE42B,6BAA8Bx2B,IAAS,GAAGM,EAAE,CAAC,IAAIT,EAAEtvB,EAAEu7C,YAAY,GAAG,OAAOjsB,EAAE,CAAC,IAAIH,EAAE,IAAIhwB,IAAIgwB,EAAE3pB,IAAI3M,GAAGmH,EAAEu7C,YAAYpsB,OAAOG,EAAE9pB,IAAI3M,GAAG,GAAG,KAAY,EAAPmH,EAAEu+C,MAAQ,CAA2C,GAA1Cv+C,EAAEoiC,OAAO,GAAGrR,EAAEqR,OAAO,MAAMrR,EAAEqR,QAAQ,KAAQ,IAAIrR,EAAEr1B,IAAI,GAAG,OAAOq1B,EAAEmR,UAAUnR,EAAEr1B,IAAI,OAAO,CAAC,IAAIuzB,EAAE8sB,IAAI,EAAE,GAAG9sB,EAAEvzB,IAAI,EAAE0gD,GAAGrrB,EAAE9B,GAAG8B,EAAEiqB,OAAO,EAAE,MAAM/7C,EAAE2T,OAC5f,EAAOme,EAAE7xB,EAAE,IAAI6vB,EAAEzjB,EAAE8hD,UAA+G,GAArG,OAAOr+B,GAAGA,EAAEzjB,EAAE8hD,UAAU,IAAIrF,GAAGn1C,EAAE,IAAIzT,IAAI4vB,EAAE94B,IAAI4C,EAAE+Z,SAAgB,KAAXA,EAAEmc,EAAE74B,IAAI2C,MAAgB+Z,EAAE,IAAIzT,IAAI4vB,EAAE94B,IAAI4C,EAAE+Z,KAASA,EAAEzc,IAAI46B,GAAG,CAACne,EAAEpN,IAAIurB,GAAG,IAAIrqB,EAAE2mD,GAAG95B,KAAK,KAAKjoB,EAAEzS,EAAEk4B,GAAGl4B,EAAEgC,KAAK6L,EAAEA,GAAG1G,EAAEoiC,OAAO,KAAKpiC,EAAEg7C,MAAM97C,EAAE,MAAMD,EAAEe,EAAEA,EAAEmiC,aAAa,OAAOniC,GAAG4S,EAAEwZ,OAAOmM,EAAGxH,EAAEz3B,OAAO,qBAAqB,yLAAyL,IAAI+tD,KAAIA,GAAE,GAAGz0C,EAAEg1C,GAAGh1C,EAAEme,GAAG/wB,EACpfgxB,EAAE,EAAE,CAAC,OAAOhxB,EAAEtE,KAAK,KAAK,EAAE4P,EAAEsH,EAAE5S,EAAEoiC,OAAO,KAAKljC,IAAIA,EAAEc,EAAEg7C,OAAO97C,EAAkBm9C,GAAGr8C,EAAbioD,GAAGjoD,EAAEsL,EAAEpM,IAAW,MAAMD,EAAE,KAAK,EAAEqM,EAAEsH,EAAE,IAAI6e,EAAEzxB,EAAE1G,KAAKs4B,EAAE5xB,EAAEygC,UAAU,GAAG,KAAa,GAARzgC,EAAEoiC,SAAY,oBAAoB3Q,EAAE8zB,0BAA0B,OAAO3zB,GAAG,oBAAoBA,EAAEy2B,oBAAoB,OAAOC,KAAKA,GAAGnyD,IAAIy7B,KAAK,CAAC5xB,EAAEoiC,OAAO,KAAKljC,IAAIA,EAAEc,EAAEg7C,OAAO97C,EAAkBm9C,GAAGr8C,EAAbooD,GAAGpoD,EAAEsL,EAAEpM,IAAW,MAAMD,GAAGe,EAAEA,EAAEmiC,aAAa,OAAOniC,GAAGstD,GAAG/9B,GAAG,MAAMg+B,GAAIruD,EAAEquD,EAAG/C,KAAIj7B,GAAG,OAAOA,IAAIi7B,GAAEj7B,EAAEA,EAAE4S,QAAQ,SAAS,OAC/a,SAASsqB,KAAK,IAAIxtD,EAAEorD,GAAGxlD,QAAsB,OAAdwlD,GAAGxlD,QAAQy8C,GAAU,OAAOriD,EAAEqiD,GAAGriD,EAAE,SAAS4tD,GAAG5tD,EAAEC,GAAG,IAAIqwB,EAAEg7B,GAAEA,IAAG,GAAG,IAAI13C,EAAE45C,KAA2B,IAAtBhK,KAAIxjD,GAAGuoD,KAAItoD,GAAGwtD,GAAGztD,EAAEC,KAAM,IAAIsuD,KAAK,MAAM,MAAM1xD,GAAG8wD,GAAG3tD,EAAEnD,GAAkC,GAAtB2+C,KAAK8P,GAAEh7B,EAAE86B,GAAGxlD,QAAQgO,EAAK,OAAO23C,GAAE,MAAMp+B,MAAMsF,EAAE,MAAiB,OAAX+wB,GAAE,KAAK+E,GAAE,EAASH,GAAE,SAASmG,KAAK,KAAK,OAAOhD,IAAGiD,GAAGjD,IAAG,SAASmC,KAAK,KAAK,OAAOnC,KAAIhS,MAAMiV,GAAGjD,IAAG,SAASiD,GAAGxuD,GAAG,IAAIC,EAAE8rD,GAAG/rD,EAAEijC,UAAUjjC,EAAEwrD,IAAIxrD,EAAE0gD,cAAc1gD,EAAEkhD,aAAa,OAAOjhD,EAAEouD,GAAGruD,GAAGurD,GAAEtrD,EAAEorD,GAAGzlD,QAAQ,KAC5a,SAASyoD,GAAGruD,GAAG,IAAIC,EAAED,EAAE,EAAE,CAAC,IAAIswB,EAAErwB,EAAEgjC,UAAqB,GAAXjjC,EAAEC,EAAEijC,OAAU,KAAa,KAARjjC,EAAEkjC,OAAY,CAAc,GAAG,QAAhB7S,EAAEw3B,GAAGx3B,EAAErwB,EAAEurD,KAAqB,YAAJD,GAAEj7B,GAAa,GAAG,MAAPA,EAAErwB,GAAYxD,KAAK,KAAK6zB,EAAE7zB,KAAK,OAAO6zB,EAAE+S,eAAe,KAAQ,WAAHmoB,KAAgB,KAAY,EAAPl7B,EAAEgvB,MAAQ,CAAC,IAAI,IAAI1rC,EAAE,EAAE/W,EAAEyzB,EAAEmT,MAAM,OAAO5mC,GAAG+W,GAAG/W,EAAEk/C,MAAMl/C,EAAE8+C,WAAW9+C,EAAEA,EAAE6mC,QAAQpT,EAAEqrB,WAAW/nC,EAAE,OAAO5T,GAAG,KAAa,KAARA,EAAEmjC,SAAc,OAAOnjC,EAAEm/C,cAAcn/C,EAAEm/C,YAAYl/C,EAAEk/C,aAAa,OAAOl/C,EAAEg/C,aAAa,OAAOj/C,EAAEi/C,aAAaj/C,EAAEi/C,WAAWC,WAAWj/C,EAAEk/C,aAAan/C,EAAEi/C,WAAWh/C,EAAEg/C,YAAY,EAAEh/C,EAAEkjC,QAAQ,OAC/enjC,EAAEi/C,WAAWj/C,EAAEi/C,WAAWC,WAAWj/C,EAAED,EAAEm/C,YAAYl/C,EAAED,EAAEi/C,WAAWh/C,QAAQ,CAAS,GAAG,QAAXqwB,EAAEo4B,GAAGzoD,IAAkC,OAAlBqwB,EAAE6S,OAAO,UAAKooB,GAAEj7B,GAAS,OAAOtwB,IAAIA,EAAEm/C,YAAYn/C,EAAEi/C,WAAW,KAAKj/C,EAAEmjC,OAAO,MAAkB,GAAG,QAAfljC,EAAEA,EAAEyjC,SAAyB,YAAJ6nB,GAAEtrD,GAASsrD,GAAEtrD,EAAED,QAAQ,OAAOC,GAAG,IAAImoD,KAAIA,GAAE,GAAG,SAAS2F,GAAG/tD,GAAG,IAAIC,EAAE26C,KAA8B,OAAzBE,GAAG,GAAG2T,GAAGn6B,KAAK,KAAKt0B,EAAEC,IAAW,KACtT,SAASwuD,GAAGzuD,EAAEC,GAAG,GAAGstD,WAAW,OAAOrB,IAAI,GAAG,KAAO,GAAFZ,IAAM,MAAMn+B,MAAMsF,EAAE,MAAM,IAAInC,EAAEtwB,EAAE6tD,aAAa,GAAG,OAAOv9B,EAAE,OAAO,KAA2C,GAAtCtwB,EAAE6tD,aAAa,KAAK7tD,EAAE8tD,cAAc,EAAKx9B,IAAItwB,EAAE4F,QAAQ,MAAMunB,MAAMsF,EAAE,MAAMzyB,EAAEktD,aAAa,KAAK,IAAIt5C,EAAE0c,EAAEyrB,MAAMzrB,EAAEqrB,WAAW9+C,EAAE+W,EAAEvH,EAAErM,EAAEynC,cAAc5qC,EAAEmD,EAAEynC,aAAa5qC,EAAEmD,EAAE2nC,eAAe,EAAE3nC,EAAE4nC,YAAY,EAAE5nC,EAAE0nC,cAAc7qC,EAAEmD,EAAEsjD,kBAAkBzmD,EAAEmD,EAAE8nC,gBAAgBjrC,EAAEA,EAAEmD,EAAE+nC,cAAc,IAAI,IAAIhW,EAAE/xB,EAAEqoC,WAAWvW,EAAE9xB,EAAEmtD,gBAAgB,EAAE9gD,GAAG,CAAC,IAAIsH,EAAE,GAAGk0B,GAAGx7B,GAAGzS,EAAE,GAAG+Z,EAAE9W,EAAE8W,GAAG,EAAEoe,EAAEpe,IAAI,EAAEme,EAAEne,IAAI,EAAEtH,IAAIzS,EACnV,GADqV,OACjf0yD,IAAI,KAAO,GAAF14C,IAAO04C,GAAGp1D,IAAI8I,IAAIssD,GAAGrnB,OAAOjlC,GAAGA,IAAIwjD,KAAI+H,GAAE/H,GAAE,KAAK+E,GAAE,GAAG,EAAEj4B,EAAE6S,MAAM,OAAO7S,EAAE2uB,YAAY3uB,EAAE2uB,WAAWC,WAAW5uB,EAAE1c,EAAE0c,EAAE6uB,aAAavrC,EAAE0c,EAAE1c,EAAE0c,EAAE6uB,YAAe,OAAOvrC,EAAE,CAAwC,GAAvC/W,EAAEyuD,GAAEA,IAAG,GAAGD,GAAGzlD,QAAQ,KAAKixC,GAAG/N,GAAasL,GAAVriB,EAAEiiB,MAAc,CAAC,GAAG,mBAAmBjiB,EAAED,EAAE,CAAC5R,MAAM6R,EAAE6iB,eAAe70B,IAAIgS,EAAE8iB,mBAAmB70C,EAAE,GAAG8xB,GAAGA,EAAEC,EAAEiJ,gBAAgBlJ,EAAEijB,aAAa5yC,QAAQvI,EAAEk4B,EAAEkjB,cAAcljB,EAAEkjB,iBAAiB,IAAIp7C,EAAE80D,WAAW,CAAC58B,EAAEl4B,EAAEk7C,WAAWzoC,EAAEzS,EAAEq7C,aAAathC,EAAE/Z,EAAEs7C,UAAUt7C,EAAEA,EAAEu7C,YAAY,IAAIrjB,EAAE7zB,SAAS0V,EAAE1V,SAAS,MAAMqwD,GAAIx8B,EAAE,KACnf,MAAM9xB,EAAE,IAAI3K,EAAE,EAAEm7B,GAAG,EAAEzvB,GAAG,EAAE+vB,EAAE,EAAEjkB,EAAE,EAAEujB,EAAE2B,EAAE1B,EAAE,KAAKpwB,EAAE,OAAO,CAAC,IAAI,IAAIiwB,EAAKE,IAAI0B,GAAG,IAAIzlB,GAAG,IAAI+jB,EAAEnyB,WAAWuyB,EAAEn7B,EAAEgX,GAAG+jB,IAAIzc,GAAG,IAAI/Z,GAAG,IAAIw2B,EAAEnyB,WAAW8C,EAAE1L,EAAEuE,GAAG,IAAIw2B,EAAEnyB,WAAW5I,GAAG+6B,EAAEuM,UAAUjoC,QAAW,QAAQw7B,EAAEE,EAAEiM,aAAkBhM,EAAED,EAAEA,EAAEF,EAAE,OAAO,CAAC,GAAGE,IAAI2B,EAAE,MAAM9xB,EAA8C,GAA5CowB,IAAIyB,KAAKhB,IAAIzkB,IAAImkB,EAAEn7B,GAAGg7B,IAAI1c,KAAK9G,IAAIjT,IAAImH,EAAE1L,GAAM,QAAQ66B,EAAEE,EAAEwjB,aAAa,MAAUvjB,GAAJD,EAAEC,GAAM6Q,WAAW9Q,EAAEF,EAAE4B,GAAG,IAAItB,IAAI,IAAIzvB,EAAE,KAAK,CAACmf,MAAMsQ,EAAEzQ,IAAIhf,QAAQ+wB,EAAE,KAAKA,EAAEA,GAAG,CAAC5R,MAAM,EAAEH,IAAI,QAAQ+R,EAAE,KAAKglB,GAAG,CAAC6X,YAAY58B,EAAE68B,eAAe98B,GAAGgX,IAAG,EAAG8jB,GAAG,KAAKC,IAAG,EAAGb,GAAEp4C,EAAE,GAAG,IAAIi7C,KAAK,MAAMP,GAAI,GAAG,OACvgBtC,GAAE,MAAM7+B,MAAMsF,EAAE,MAAMi3B,GAAGsC,GAAEsC,GAAItC,GAAEA,GAAE9M,kBAAiB,OAAO8M,IAAGY,GAAG,KAAKZ,GAAEp4C,EAAE,GAAG,IAAI,IAAIme,EAAE/xB,EAAE,OAAOgsD,IAAG,CAAC,IAAIh8B,EAAEg8B,GAAE7oB,MAA+B,GAAvB,GAAFnT,GAAMtiB,GAAGs+C,GAAExqB,UAAU,IAAS,IAAFxR,EAAM,CAAC,IAAIF,EAAEk8B,GAAE/oB,UAAU,GAAG,OAAOnT,EAAE,CAAC,IAAIroB,EAAEqoB,EAAEnD,IAAI,OAAOllB,IAAI,oBAAoBA,EAAEA,EAAE,MAAMA,EAAE7B,QAAQ,OAAO,OAAS,KAAFoqB,GAAQ,KAAK,EAAEw6B,GAAGwB,IAAGA,GAAE7oB,QAAQ,EAAE,MAAM,KAAK,EAAEqnB,GAAGwB,IAAGA,GAAE7oB,QAAQ,EAAE0nB,GAAGmB,GAAE/oB,UAAU+oB,IAAG,MAAM,KAAK,KAAKA,GAAE7oB,QAAQ,KAAK,MAAM,KAAK,KAAK6oB,GAAE7oB,QAAQ,KAAK0nB,GAAGmB,GAAE/oB,UAAU+oB,IAAG,MAAM,KAAK,EAAEnB,GAAGmB,GAAE/oB,UAAU+oB,IAAG,MAAM,KAAK,EAAM3B,GAAGt4B,EAAPD,EAAEk6B,IAAU,IAAIn6B,EAAEC,EAAEmR,UAAUqnB,GAAGx4B,GAAG,OACnfD,GAAGy4B,GAAGz4B,GAAGm6B,GAAEA,GAAE9M,YAAY,MAAMoP,GAAI,GAAG,OAAOtC,GAAE,MAAM7+B,MAAMsF,EAAE,MAAMi3B,GAAGsC,GAAEsC,GAAItC,GAAEA,GAAE9M,kBAAiB,OAAO8M,IAAkD,GAA/CvkD,EAAEqvC,GAAGhnB,EAAEkkB,KAAKhkB,EAAEvoB,EAAEknD,YAAY58B,EAAEtqB,EAAEmnD,eAAkB9+B,IAAIE,GAAGA,GAAGA,EAAEgL,eAAe6Y,GAAG7jB,EAAEgL,cAAcolB,gBAAgBpwB,GAAG,CAAC,OAAO+B,GAAGqiB,GAAGpkB,KAAKF,EAAEiC,EAAE7R,WAAc,KAARzY,EAAEsqB,EAAEhS,OAAiBtY,EAAEqoB,GAAG,mBAAmBE,GAAGA,EAAE4kB,eAAe9kB,EAAEE,EAAE6kB,aAAa/nC,KAAKsG,IAAI3L,EAAEuoB,EAAEv7B,MAAMC,UAAU+S,GAAGqoB,EAAEE,EAAEgL,eAAe/E,WAAWnG,EAAEilB,aAAa5yC,QAAS6yC,eAAevtC,EAAEA,EAAEutC,eAAeljB,EAAE9B,EAAE4L,YAAYlnC,OAAOm9B,EAAE/kB,KAAKsG,IAAI2e,EAAE7R,MAAM4R,GAAGC,OAAE,IACpfA,EAAEhS,IAAI8R,EAAE/kB,KAAKsG,IAAI2e,EAAEhS,IAAI+R,IAAIrqB,EAAEqnD,QAAQj9B,EAAEE,IAAID,EAAEC,EAAEA,EAAEF,EAAEA,EAAEC,GAAGA,EAAE4hB,GAAG1jB,EAAE6B,GAAGxlB,EAAEqnC,GAAG1jB,EAAE+B,GAAGD,GAAGzlB,IAAI,IAAI5E,EAAEinD,YAAYjnD,EAAEqtC,aAAahjB,EAAExF,MAAM7kB,EAAEwtC,eAAenjB,EAAE6hB,QAAQlsC,EAAEytC,YAAY7oC,EAAEigB,MAAM7kB,EAAE0tC,cAAc9oC,EAAEsnC,WAAU7jB,EAAEA,EAAEi/B,eAAgBC,SAASl9B,EAAExF,KAAKwF,EAAE6hB,QAAQlsC,EAAEwnD,kBAAkBp9B,EAAEE,GAAGtqB,EAAEynD,SAASp/B,GAAGroB,EAAEqnD,OAAOziD,EAAEigB,KAAKjgB,EAAEsnC,UAAU7jB,EAAEq/B,OAAO9iD,EAAEigB,KAAKjgB,EAAEsnC,QAAQlsC,EAAEynD,SAASp/B,OAAQA,EAAE,GAAG,IAAIroB,EAAEuoB,EAAEvoB,EAAEA,EAAEy5B,YAAY,IAAIz5B,EAAExJ,UAAU6xB,EAAEt7B,KAAK,CAAC0M,QAAQuG,EAAE2nD,KAAK3nD,EAAE4nD,WAAWC,IAAI7nD,EAAE8nD,YAAmD,IAAvC,oBAAoBv/B,EAAEg6B,OAAOh6B,EAAEg6B,QAAYh6B,EACrf,EAAEA,EAAEF,EAAEp7B,OAAOs7B,KAAIvoB,EAAEqoB,EAAEE,IAAK9uB,QAAQmuD,WAAW5nD,EAAE2nD,KAAK3nD,EAAEvG,QAAQquD,UAAU9nD,EAAE6nD,IAAIxmB,KAAK+N,GAAGC,GAAGD,GAAG,KAAK72C,EAAE4F,QAAQ0qB,EAAE07B,GAAEp4C,EAAE,GAAG,IAAI,IAAIoc,EAAEhwB,EAAE,OAAOgsD,IAAG,CAAC,IAAIx5B,EAAEw5B,GAAE7oB,MAAgC,GAAxB,GAAF3Q,GAAMq3B,GAAG75B,EAAEg8B,GAAE/oB,UAAU+oB,IAAQ,IAAFx5B,EAAM,CAAC1C,OAAE,EAAO,IAAI6C,EAAEq5B,GAAEr/B,IAAI,GAAG,OAAOgG,EAAE,CAAC,IAAIR,EAAE65B,GAAExqB,UAAU,OAAOwqB,GAAEvvD,KAAK,KAAK,EAAEqzB,EAAEqC,EAAE,MAAM,QAAQrC,EAAEqC,EAAE,oBAAoBQ,EAAEA,EAAE7C,GAAG6C,EAAE/sB,QAAQkqB,GAAGk8B,GAAEA,GAAE9M,YAAY,MAAMoP,GAAI,GAAG,OAAOtC,GAAE,MAAM7+B,MAAMsF,EAAE,MAAMi3B,GAAGsC,GAAEsC,GAAItC,GAAEA,GAAE9M,kBAAiB,OAAO8M,IAAGA,GAAE,KAAKzR,KAAK+Q,GAAEzuD,OAAOmD,EAAE4F,QAAQ0qB,EAAE,GAAG27B,GAAGA,IAAG,EAAGC,GAAGlsD,EAAEmsD,GAAGlsD,OAAO,IAAI+rD,GAAEp4C,EAAE,OAAOo4C,IAAG/rD,EACpf+rD,GAAE9M,WAAW8M,GAAE9M,WAAW,KAAa,EAAR8M,GAAE7oB,SAAU3Q,EAAEw5B,IAAItoB,QAAQ,KAAKlR,EAAEgP,UAAU,MAAMwqB,GAAE/rD,EAAqF,GAAlE,KAAjB2T,EAAE5T,EAAEynC,gBAAqB4hB,GAAG,MAAM,IAAIz1C,EAAE5T,IAAIwsD,GAAGD,MAAMA,GAAG,EAAEC,GAAGxsD,GAAGusD,GAAG,EAAEj8B,EAAEA,EAAEkR,UAAa0X,IAAI,oBAAoBA,GAAGsW,kBAAkB,IAAItW,GAAGsW,kBAAkBvW,GAAG3oB,OAAE,EAAO,MAAsB,GAAhBA,EAAE1qB,QAAQu9B,QAAW,MAAMmrB,IAAe,GAAVrB,GAAGjtD,EAAEuyB,MAAQ02B,GAAG,MAAMA,IAAG,EAAGjpD,EAAEkpD,GAAGA,GAAG,KAAKlpD,EAAE,OAAG,KAAO,EAAFsrD,KAAiBtQ,KAAL,KACjW,SAAS6T,KAAK,KAAK,OAAO7C,IAAG,CAAC,IAAIhsD,EAAEgsD,GAAE/oB,UAAU4pB,IAAI,OAAOD,KAAK,KAAa,EAARZ,GAAE7oB,OAASS,GAAGooB,GAAEY,MAAMC,IAAG,GAAI,KAAKb,GAAEvvD,KAAKwuD,GAAGjrD,EAAEgsD,KAAIpoB,GAAGooB,GAAEY,MAAMC,IAAG,IAAK,IAAI5sD,EAAE+rD,GAAE7oB,MAAM,KAAO,IAAFljC,IAAQ0pD,GAAG3pD,EAAEgsD,IAAG,KAAO,IAAF/rD,IAAQgsD,KAAKA,IAAG,EAAGlR,GAAG,IAAG,WAAgB,OAALwS,KAAY,SAAQvB,GAAEA,GAAE9M,YAAY,SAASqO,KAAK,GAAG,KAAKpB,GAAG,CAAC,IAAInsD,EAAE,GAAGmsD,GAAG,GAAGA,GAAS,OAANA,GAAG,GAAUrR,GAAG96C,EAAEyvD,IAAI,OAAM,EAAG,SAAS1F,GAAG/pD,EAAEC,GAAGmsD,GAAG53D,KAAKyL,EAAED,GAAGisD,KAAKA,IAAG,EAAGlR,GAAG,IAAG,WAAgB,OAALwS,KAAY,SAAQ,SAASzD,GAAG9pD,EAAEC,GAAGosD,GAAG73D,KAAKyL,EAAED,GAAGisD,KAAKA,IAAG,EAAGlR,GAAG,IAAG,WAAgB,OAALwS,KAAY,SACzd,SAASkC,KAAK,GAAG,OAAOvD,GAAG,OAAM,EAAG,IAAIlsD,EAAEksD,GAAW,GAARA,GAAG,KAAQ,KAAO,GAAFZ,IAAM,MAAMn+B,MAAMsF,EAAE,MAAM,IAAIxyB,EAAEqrD,GAAEA,IAAG,GAAG,IAAIh7B,EAAE+7B,GAAGA,GAAG,GAAG,IAAI,IAAIz4C,EAAE,EAAEA,EAAE0c,EAAE57B,OAAOkf,GAAG,EAAE,CAAC,IAAI/W,EAAEyzB,EAAE1c,GAAGvH,EAAEikB,EAAE1c,EAAE,GAAGme,EAAEl1B,EAAE0vB,QAAyB,GAAjB1vB,EAAE0vB,aAAQ,EAAU,oBAAoBwF,EAAE,IAAIA,IAAI,MAAMpe,GAAG,GAAG,OAAOtH,EAAE,MAAM8gB,MAAMsF,EAAE,MAAMi3B,GAAGr9C,EAAEsH,IAAe,IAAX2c,EAAE87B,GAAGA,GAAG,GAAOx4C,EAAE,EAAEA,EAAE0c,EAAE57B,OAAOkf,GAAG,EAAE,CAAC/W,EAAEyzB,EAAE1c,GAAGvH,EAAEikB,EAAE1c,EAAE,GAAG,IAAI,IAAIke,EAAEj1B,EAAEuH,OAAOvH,EAAE0vB,QAAQuF,IAAI,MAAMne,GAAG,GAAG,OAAOtH,EAAE,MAAM8gB,MAAMsF,EAAE,MAAMi3B,GAAGr9C,EAAEsH,IAAI,IAAIme,EAAE9xB,EAAE4F,QAAQu5C,YAAY,OAAOrtB,GAAG9xB,EAAE8xB,EAAEotB,WAAWptB,EAAEotB,WAAW,KAAa,EAARptB,EAAEqR,QAAUrR,EAAE4R,QACjf,KAAK5R,EAAE0P,UAAU,MAAM1P,EAAE9xB,EAAW,OAATsrD,GAAErrD,EAAE+6C,MAAW,EAAG,SAAS0U,GAAG1vD,EAAEC,EAAEqwB,GAAyB6sB,GAAGn9C,EAAfC,EAAE+oD,GAAGhpD,EAAfC,EAAE0oD,GAAGr4B,EAAErwB,GAAY,IAAWA,EAAE29C,KAAe,QAAV59C,EAAE+sD,GAAG/sD,EAAE,MAAcooC,GAAGpoC,EAAE,EAAEC,GAAGgtD,GAAGjtD,EAAEC,IACzI,SAASypD,GAAG1pD,EAAEC,GAAG,GAAG,IAAID,EAAEvD,IAAIizD,GAAG1vD,EAAEA,EAAEC,QAAQ,IAAI,IAAIqwB,EAAEtwB,EAAEkjC,OAAO,OAAO5S,GAAG,CAAC,GAAG,IAAIA,EAAE7zB,IAAI,CAACizD,GAAGp/B,EAAEtwB,EAAEC,GAAG,MAAW,GAAG,IAAIqwB,EAAE7zB,IAAI,CAAC,IAAImX,EAAE0c,EAAEkR,UAAU,GAAG,oBAAoBlR,EAAEj2B,KAAKisD,0BAA0B,oBAAoB1yC,EAAEw1C,oBAAoB,OAAOC,KAAKA,GAAGnyD,IAAI0c,IAAI,CAAW,IAAI/W,EAAEssD,GAAG74B,EAAnBtwB,EAAE2oD,GAAG1oD,EAAED,GAAgB,GAA4B,GAAzBm9C,GAAG7sB,EAAEzzB,GAAGA,EAAE+gD,KAAkB,QAAbttB,EAAEy8B,GAAGz8B,EAAE,IAAe8X,GAAG9X,EAAE,EAAEzzB,GAAGowD,GAAG38B,EAAEzzB,QAAQ,GAAG,oBAAoB+W,EAAEw1C,oBAAoB,OAAOC,KAAKA,GAAGnyD,IAAI0c,IAAI,IAAIA,EAAEw1C,kBAAkBnpD,EAAED,GAAG,MAAMqM,IAAI,OAAOikB,EAAEA,EAAE4S,QACpd,SAASkrB,GAAGpuD,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE5T,EAAEmuD,UAAU,OAAOv6C,GAAGA,EAAEqxB,OAAOhlC,GAAGA,EAAE29C,KAAK59C,EAAE4nC,aAAa5nC,EAAE2nC,eAAerX,EAAEkzB,KAAIxjD,IAAIuoD,GAAEj4B,KAAKA,IAAI,IAAI83B,IAAG,IAAIA,KAAM,SAAFG,MAAcA,IAAG,IAAIh2B,KAAIu4B,GAAG2C,GAAGztD,EAAE,GAAG4rD,IAAIt7B,GAAG28B,GAAGjtD,EAAEC,GAAG,SAAS+qD,GAAGhrD,EAAEC,GAAG,IAAIqwB,EAAEtwB,EAAEwhC,UAAU,OAAOlR,GAAGA,EAAE2U,OAAOhlC,GAAO,KAAJA,EAAE,KAAmB,KAAO,GAAhBA,EAAED,EAAEs/C,OAAer/C,EAAE,EAAE,KAAO,EAAFA,GAAKA,EAAE,KAAK26C,KAAK,EAAE,GAAG,IAAI8R,KAAKA,GAAGf,IAAuB,KAAnB1rD,EAAEioC,GAAG,UAAUwkB,OAAYzsD,EAAE,WAAWqwB,EAAEstB,KAAe,QAAV59C,EAAE+sD,GAAG/sD,EAAEC,MAAcmoC,GAAGpoC,EAAEC,EAAEqwB,GAAG28B,GAAGjtD,EAAEswB,IAUjZ,SAASq/B,GAAG3vD,EAAEC,EAAEqwB,EAAE1c,GAAG/c,KAAK4F,IAAIuD,EAAEnJ,KAAK5B,IAAIq7B,EAAEz5B,KAAK6sC,QAAQ7sC,KAAK4sC,MAAM5sC,KAAKqsC,OAAOrsC,KAAK2qC,UAAU3qC,KAAKwD,KAAKxD,KAAK0oD,YAAY,KAAK1oD,KAAKD,MAAM,EAAEC,KAAK81B,IAAI,KAAK91B,KAAKqqD,aAAajhD,EAAEpJ,KAAKglD,aAAahlD,KAAKwsC,cAAcxsC,KAAKylD,YAAYzlD,KAAK6pD,cAAc,KAAK7pD,KAAKyoD,KAAK1rC,EAAE/c,KAAKssC,MAAM,EAAEtsC,KAAKooD,WAAWpoD,KAAKsoD,YAAYtoD,KAAKqoD,WAAW,KAAKroD,KAAK8kD,WAAW9kD,KAAKklD,MAAM,EAAEllD,KAAKosC,UAAU,KAAK,SAAS+d,GAAGhhD,EAAEC,EAAEqwB,EAAE1c,GAAG,OAAO,IAAI+7C,GAAG3vD,EAAEC,EAAEqwB,EAAE1c,GAAG,SAAS8xC,GAAG1lD,GAAiB,UAAdA,EAAEA,EAAE1K,aAAuB0K,EAAEoxB,kBAErd,SAASguB,GAAGp/C,EAAEC,GAAG,IAAIqwB,EAAEtwB,EAAEijC,UACuB,OADb,OAAO3S,IAAGA,EAAE0wB,GAAGhhD,EAAEvD,IAAIwD,EAAED,EAAE/K,IAAI+K,EAAEs/C,OAAQC,YAAYv/C,EAAEu/C,YAAYjvB,EAAEj2B,KAAK2F,EAAE3F,KAAKi2B,EAAEkR,UAAUxhC,EAAEwhC,UAAUlR,EAAE2S,UAAUjjC,EAAEA,EAAEijC,UAAU3S,IAAIA,EAAE4wB,aAAajhD,EAAEqwB,EAAEj2B,KAAK2F,EAAE3F,KAAKi2B,EAAE6S,MAAM,EAAE7S,EAAE4uB,WAAW,KAAK5uB,EAAE6uB,YAAY,KAAK7uB,EAAE2uB,WAAW,MAAM3uB,EAAEqrB,WAAW37C,EAAE27C,WAAWrrB,EAAEyrB,MAAM/7C,EAAE+7C,MAAMzrB,EAAEmT,MAAMzjC,EAAEyjC,MAAMnT,EAAEowB,cAAc1gD,EAAE0gD,cAAcpwB,EAAE+S,cAAcrjC,EAAEqjC,cAAc/S,EAAEgsB,YAAYt8C,EAAEs8C,YAAYr8C,EAAED,EAAE67C,aAAavrB,EAAEurB,aAAa,OAAO57C,EAAE,KAAK,CAAC87C,MAAM97C,EAAE87C,MAAMD,aAAa77C,EAAE67C,cAC3exrB,EAAEoT,QAAQ1jC,EAAE0jC,QAAQpT,EAAE15B,MAAMoJ,EAAEpJ,MAAM05B,EAAE3D,IAAI3sB,EAAE2sB,IAAW2D,EACvD,SAASkvB,GAAGx/C,EAAEC,EAAEqwB,EAAE1c,EAAE/W,EAAEwP,GAAG,IAAI0lB,EAAE,EAAM,GAAJne,EAAE5T,EAAK,oBAAoBA,EAAE0lD,GAAG1lD,KAAK+xB,EAAE,QAAQ,GAAG,kBAAkB/xB,EAAE+xB,EAAE,OAAO/xB,EAAE,OAAOA,GAAG,KAAK23B,EAAG,OAAOgoB,GAAGrvB,EAAE72B,SAASoD,EAAEwP,EAAEpM,GAAG,KAAKs4B,EAAGxG,EAAE,EAAEl1B,GAAG,GAAG,MAAM,KAAK+6B,EAAG7F,EAAE,EAAEl1B,GAAG,EAAE,MAAM,KAAKg7B,EAAG,OAAO73B,EAAEghD,GAAG,GAAG1wB,EAAErwB,EAAI,EAAFpD,IAAO0iD,YAAY1nB,EAAG73B,EAAE3F,KAAKw9B,EAAG73B,EAAE+7C,MAAM1vC,EAAErM,EAAE,KAAKi4B,EAAG,OAAOj4B,EAAEghD,GAAG,GAAG1wB,EAAErwB,EAAEpD,IAAKxC,KAAK49B,EAAGj4B,EAAEu/C,YAAYtnB,EAAGj4B,EAAE+7C,MAAM1vC,EAAErM,EAAE,KAAKk4B,EAAG,OAAOl4B,EAAEghD,GAAG,GAAG1wB,EAAErwB,EAAEpD,IAAK0iD,YAAYrnB,EAAGl4B,EAAE+7C,MAAM1vC,EAAErM,EAAE,KAAKw4B,EAAG,OAAO2uB,GAAG72B,EAAEzzB,EAAEwP,EAAEpM,GAAG,KAAKw4B,EAAG,OAAOz4B,EAAEghD,GAAG,GAAG1wB,EAAErwB,EAAEpD,IAAK0iD,YAAY9mB,EAAGz4B,EAAE+7C,MAAM1vC,EAAErM,EAAE,QAAQ,GAAG,kBAChfA,GAAG,OAAOA,EAAE,OAAOA,EAAEiyB,UAAU,KAAK6F,EAAG/F,EAAE,GAAG,MAAM/xB,EAAE,KAAK+3B,EAAGhG,EAAE,EAAE,MAAM/xB,EAAE,KAAKg4B,EAAGjG,EAAE,GAAG,MAAM/xB,EAAE,KAAKm4B,EAAGpG,EAAE,GAAG,MAAM/xB,EAAE,KAAKo4B,EAAGrG,EAAE,GAAGne,EAAE,KAAK,MAAM5T,EAAE,KAAKq4B,EAAGtG,EAAE,GAAG,MAAM/xB,EAAE,MAAMmtB,MAAMsF,EAAE,IAAI,MAAMzyB,EAAEA,SAASA,EAAE,KAAuD,OAAjDC,EAAE+gD,GAAGjvB,EAAEzB,EAAErwB,EAAEpD,IAAK0iD,YAAYv/C,EAAEC,EAAE5F,KAAKuZ,EAAE3T,EAAE87C,MAAM1vC,EAASpM,EAAE,SAAS0/C,GAAG3/C,EAAEC,EAAEqwB,EAAE1c,GAA2B,OAAxB5T,EAAEghD,GAAG,EAAEhhD,EAAE4T,EAAE3T,IAAK87C,MAAMzrB,EAAStwB,EAAE,SAASmnD,GAAGnnD,EAAEC,EAAEqwB,EAAE1c,GAA6C,OAA1C5T,EAAEghD,GAAG,GAAGhhD,EAAE4T,EAAE3T,IAAKs/C,YAAY/mB,EAAGx4B,EAAE+7C,MAAMzrB,EAAStwB,EAAE,SAASq/C,GAAGr/C,EAAEC,EAAEqwB,GAA8B,OAA3BtwB,EAAEghD,GAAG,EAAEhhD,EAAE,KAAKC,IAAK87C,MAAMzrB,EAAStwB,EAClc,SAAS0/C,GAAG1/C,EAAEC,EAAEqwB,GAA8J,OAA3JrwB,EAAE+gD,GAAG,EAAE,OAAOhhD,EAAEvG,SAASuG,EAAEvG,SAAS,GAAGuG,EAAE/K,IAAIgL,IAAK87C,MAAMzrB,EAAErwB,EAAEuhC,UAAU,CAACkE,cAAc1lC,EAAE0lC,cAAckqB,gBAAgB,KAAKnQ,eAAez/C,EAAEy/C,gBAAuBx/C,EACrL,SAAS4vD,GAAG7vD,EAAEC,EAAEqwB,GAAGz5B,KAAK4F,IAAIwD,EAAEpJ,KAAK6uC,cAAc1lC,EAAEnJ,KAAKg3D,aAAah3D,KAAKs3D,UAAUt3D,KAAK+O,QAAQ/O,KAAK+4D,gBAAgB,KAAK/4D,KAAKm3D,eAAe,EAAEn3D,KAAK2vD,eAAe3vD,KAAKk6B,QAAQ,KAAKl6B,KAAK4uC,QAAQnV,EAAEz5B,KAAKq2D,aAAa,KAAKr2D,KAAKu2D,iBAAiB,EAAEv2D,KAAKwxC,WAAWF,GAAG,GAAGtxC,KAAKs2D,gBAAgBhlB,IAAI,GAAGtxC,KAAKixC,eAAejxC,KAAKi3D,cAAcj3D,KAAKysD,iBAAiBzsD,KAAK6wC,aAAa7wC,KAAK+wC,YAAY/wC,KAAK8wC,eAAe9wC,KAAK4wC,aAAa,EAAE5wC,KAAKkxC,cAAcI,GAAG,GAAGtxC,KAAKi5D,gCAAgC,KAC7e,SAASC,GAAG/vD,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE,EAAEva,UAAU3E,aAAQ,IAAS2E,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAAC44B,SAASyF,EAAGziC,IAAI,MAAM2e,EAAE,KAAK,GAAGA,EAAEna,SAASuG,EAAE0lC,cAAczlC,EAAEw/C,eAAenvB,GACxK,SAAS0/B,GAAGhwD,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI/W,EAAEoD,EAAE2F,QAAQyG,EAAEuxC,KAAK7rB,EAAE8rB,GAAGhhD,GAAGmD,EAAE,GAAGswB,EAAE,CAAqBrwB,EAAE,CAAC,GAAG+iC,GAA1B1S,EAAEA,EAAEqtB,mBAA8BrtB,GAAG,IAAIA,EAAE7zB,IAAI,MAAM0wB,MAAMsF,EAAE,MAAM,IAAIX,EAAExB,EAAE,EAAE,CAAC,OAAOwB,EAAEr1B,KAAK,KAAK,EAAEq1B,EAAEA,EAAE0P,UAAUzQ,QAAQ,MAAM9wB,EAAE,KAAK,EAAE,GAAGu4C,GAAG1mB,EAAEz3B,MAAM,CAACy3B,EAAEA,EAAE0P,UAAUuX,0CAA0C,MAAM94C,GAAG6xB,EAAEA,EAAEoR,aAAa,OAAOpR,GAAG,MAAM3E,MAAMsF,EAAE,MAAO,GAAG,IAAInC,EAAE7zB,IAAI,CAAC,IAAIkX,EAAE2c,EAAEj2B,KAAK,GAAGm+C,GAAG7kC,GAAG,CAAC2c,EAAEsoB,GAAGtoB,EAAE3c,EAAEme,GAAG,MAAM9xB,GAAGswB,EAAEwB,OAAOxB,EAAE4nB,GACrW,OADwW,OAAOj4C,EAAE8wB,QAAQ9wB,EAAE8wB,QAAQT,EAAErwB,EAAEumD,eAAel2B,GAAErwB,EAAE68C,GAAGzwC,EAAE0lB,IAAKkrB,QAAQ,CAAC/7C,QAAQlB,GAAuB,QAApB4T,OAAE,IAASA,EAAE,KAAKA,KAC1e3T,EAAEi9C,SAAStpC,GAAGupC,GAAGtgD,EAAEoD,GAAG69C,GAAGjhD,EAAEk1B,EAAE1lB,GAAU0lB,EAAE,SAASk+B,GAAGjwD,GAAe,KAAZA,EAAEA,EAAE4F,SAAc69B,MAAM,OAAO,KAAK,OAAOzjC,EAAEyjC,MAAMhnC,KAAK,KAAK,EAA2B,QAAQ,OAAOuD,EAAEyjC,MAAMjC,WAAW,SAAS0uB,GAAGlwD,EAAEC,GAAqB,GAAG,QAArBD,EAAEA,EAAEqjC,gBAA2B,OAAOrjC,EAAEsjC,WAAW,CAAC,IAAIhT,EAAEtwB,EAAE6mD,UAAU7mD,EAAE6mD,UAAU,IAAIv2B,GAAGA,EAAErwB,EAAEqwB,EAAErwB,GAAG,SAASkwD,GAAGnwD,EAAEC,GAAGiwD,GAAGlwD,EAAEC,IAAID,EAAEA,EAAEijC,YAAYitB,GAAGlwD,EAAEC,GACxV,SAASmwD,GAAGpwD,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE,MAAM0c,GAAG,MAAMA,EAAE+/B,kBAAkB//B,EAAE+/B,iBAAiBC,gBAAgB,KAAiK,GAA5JhgC,EAAE,IAAIu/B,GAAG7vD,EAAEC,EAAE,MAAMqwB,IAAG,IAAKA,EAAEmV,SAASxlC,EAAE+gD,GAAG,EAAE,KAAK,KAAK,IAAI/gD,EAAE,EAAE,IAAIA,EAAE,EAAE,GAAGqwB,EAAE1qB,QAAQ3F,EAAEA,EAAEuhC,UAAUlR,EAAE+rB,GAAGp8C,GAAGD,EAAEq2C,IAAI/lB,EAAE1qB,QAAQmwC,GAAG,IAAI/1C,EAAE/B,SAAS+B,EAAEkhC,WAAWlhC,GAAM4T,EAAE,IAAI5T,EAAE,EAAEA,EAAE4T,EAAElf,OAAOsL,IAAI,CAAQ,IAAInD,GAAXoD,EAAE2T,EAAE5T,IAAWojD,YAAYvmD,EAAEA,EAAEoD,EAAEojD,SAAS,MAAM/yB,EAAEw/B,gCAAgCx/B,EAAEw/B,gCAAgC,CAAC7vD,EAAEpD,GAAGyzB,EAAEw/B,gCAAgCt7D,KAAKyL,EAAEpD,GAAGhG,KAAK05D,cAAcjgC,EAC/R,SAASkgC,GAAGxwD,GAAG,SAASA,GAAG,IAAIA,EAAE/B,UAAU,IAAI+B,EAAE/B,UAAU,KAAK+B,EAAE/B,WAAW,IAAI+B,EAAE/B,UAAU,iCAAiC+B,EAAE28B,YAEvT,SAAS8zB,GAAGzwD,EAAEC,EAAEqwB,EAAE1c,EAAE/W,GAAG,IAAIwP,EAAEikB,EAAEs6B,oBAAoB,GAAGv+C,EAAE,CAAC,IAAI0lB,EAAE1lB,EAAEkkD,cAAc,GAAG,oBAAoB1zD,EAAE,CAAC,IAAIi1B,EAAEj1B,EAAEA,EAAE,WAAW,IAAImD,EAAEiwD,GAAGl+B,GAAGD,EAAEt8B,KAAKwK,IAAIgwD,GAAG/vD,EAAE8xB,EAAE/xB,EAAEnD,OAAO,CAAmD,GAAlDwP,EAAEikB,EAAEs6B,oBAD1K,SAAY5qD,EAAEC,GAA0H,GAAvHA,IAA2DA,MAAvDA,EAAED,EAAE,IAAIA,EAAE/B,SAAS+B,EAAEogD,gBAAgBpgD,EAAEq8B,WAAW,OAAa,IAAIp8B,EAAEhC,WAAWgC,EAAEywD,aAAa,qBAAwBzwD,EAAE,IAAI,IAAIqwB,EAAEA,EAAEtwB,EAAE08B,WAAW18B,EAAEs8B,YAAYhM,GAAG,OAAO,IAAI8/B,GAAGpwD,EAAE,EAAEC,EAAE,CAACwlC,SAAQ,QAAI,GAC3BkrB,CAAGrgC,EAAE1c,GAAGme,EAAE1lB,EAAEkkD,cAAiB,oBAAoB1zD,EAAE,CAAC,IAAI8W,EAAE9W,EAAEA,EAAE,WAAW,IAAImD,EAAEiwD,GAAGl+B,GAAGpe,EAAEne,KAAKwK,IAAIkuD,IAAG,WAAW8B,GAAG/vD,EAAE8xB,EAAE/xB,EAAEnD,MAAK,OAAOozD,GAAGl+B,GAGlG,SAAS6+B,GAAG5wD,EAAEC,GAAG,IAAIqwB,EAAE,EAAEj3B,UAAU3E,aAAQ,IAAS2E,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIm3D,GAAGvwD,GAAG,MAAMktB,MAAMsF,EAAE,MAAM,OAAOs9B,GAAG/vD,EAAEC,EAAE,KAAKqwB,GA1BtWy7B,GAAG,SAAS/rD,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE3T,EAAE87C,MAAM,GAAG,OAAO/7C,EAAE,GAAGA,EAAE0gD,gBAAgBzgD,EAAEihD,cAAc7uB,GAAEzsB,QAAQo2C,IAAG,MAAQ,IAAG,KAAK1rB,EAAE1c,GAAoC,CAAO,OAANooC,IAAG,EAAU/7C,EAAExD,KAAK,KAAK,EAAE8pD,GAAGtmD,GAAGqhD,KAAK,MAAM,KAAK,EAAEf,GAAGtgD,GAAG,MAAM,KAAK,EAAEu4C,GAAGv4C,EAAE5F,OAAOy+C,GAAG74C,GAAG,MAAM,KAAK,EAAEkgD,GAAGlgD,EAAEA,EAAEuhC,UAAUkE,eAAe,MAAM,KAAK,GAAG9xB,EAAE3T,EAAEygD,cAAcjsD,MAAM,IAAIoI,EAAEoD,EAAE5F,KAAK+5B,SAAS1C,GAAE0pB,GAAGv+C,EAAEk3B,eAAel3B,EAAEk3B,cAAcngB,EAAE,MAAM,KAAK,GAAG,GAAG,OAAO3T,EAAEojC,cAAe,OAAG,KAAK/S,EAAErwB,EAAEwjC,MAAMkY,YAAmBmL,GAAG9mD,EAAEC,EAAEqwB,IAAGoB,GAAEgB,GAAY,EAAVA,GAAE9sB,SAA8B,QAAnB3F,EAAEulD,GAAGxlD,EAAEC,EAAEqwB,IAC/erwB,EAAEyjC,QAAQ,MAAKhS,GAAEgB,GAAY,EAAVA,GAAE9sB,SAAW,MAAM,KAAK,GAA0B,GAAvBgO,EAAE,KAAK0c,EAAErwB,EAAE07C,YAAe,KAAa,GAAR37C,EAAEmjC,OAAU,CAAC,GAAGvvB,EAAE,OAAOg0C,GAAG5nD,EAAEC,EAAEqwB,GAAGrwB,EAAEkjC,OAAO,GAA+F,GAA1E,QAAlBtmC,EAAEoD,EAAEojC,iBAAyBxmC,EAAE4qD,UAAU,KAAK5qD,EAAE6I,KAAK,KAAK7I,EAAEoiD,WAAW,MAAMvtB,GAAEgB,GAAEA,GAAE9sB,SAAYgO,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAO3T,EAAE87C,MAAM,EAAE8J,GAAG7lD,EAAEC,EAAEqwB,GAAG,OAAOk1B,GAAGxlD,EAAEC,EAAEqwB,GAD3L0rB,GAAG,KAAa,MAARh8C,EAAEmjC,YACyL6Y,IAAG,EAAa,OAAV/7C,EAAE87C,MAAM,EAAS97C,EAAExD,KAAK,KAAK,EAA+I,GAA7ImX,EAAE3T,EAAE5F,KAAK,OAAO2F,IAAIA,EAAEijC,UAAU,KAAKhjC,EAAEgjC,UAAU,KAAKhjC,EAAEkjC,OAAO,GAAGnjC,EAAEC,EAAEihD,aAAarkD,EAAEu7C,GAAGn4C,EAAEmyB,GAAExsB,SAASg2C,GAAG37C,EAAEqwB,GAAGzzB,EAAEolD,GAAG,KAAKhiD,EAAE2T,EAAE5T,EAAEnD,EAAEyzB,GAAGrwB,EAAEkjC,OAAO,EAAK,kBACretmC,GAAG,OAAOA,GAAG,oBAAoBA,EAAE43B,aAAQ,IAAS53B,EAAEo1B,SAAS,CAAiD,GAAhDhyB,EAAExD,IAAI,EAAEwD,EAAEojC,cAAc,KAAKpjC,EAAEq8C,YAAY,KAAQ9D,GAAG5kC,GAAG,CAAC,IAAIvH,GAAE,EAAGysC,GAAG74C,QAAQoM,GAAE,EAAGpM,EAAEojC,cAAc,OAAOxmC,EAAEgkB,YAAO,IAAShkB,EAAEgkB,MAAMhkB,EAAEgkB,MAAM,KAAKw7B,GAAGp8C,GAAG,IAAI8xB,EAAEne,EAAE2qC,yBAAyB,oBAAoBxsB,GAAG0rB,GAAGx9C,EAAE2T,EAAEme,EAAE/xB,GAAGnD,EAAEo0B,QAAQysB,GAAGz9C,EAAEuhC,UAAU3kC,EAAEA,EAAE8gD,gBAAgB19C,EAAEq+C,GAAGr+C,EAAE2T,EAAE5T,EAAEswB,GAAGrwB,EAAEomD,GAAG,KAAKpmD,EAAE2T,GAAE,EAAGvH,EAAEikB,QAAQrwB,EAAExD,IAAI,EAAE6oD,GAAG,KAAKrlD,EAAEpD,EAAEyzB,GAAGrwB,EAAEA,EAAEwjC,MAAM,OAAOxjC,EAAE,KAAK,GAAGpD,EAAEoD,EAAEs/C,YAAYv/C,EAAE,CAChX,OADiX,OAAOA,IAAIA,EAAEijC,UAAU,KAAKhjC,EAAEgjC,UAAU,KAAKhjC,EAAEkjC,OAAO,GACnfnjC,EAAEC,EAAEihD,aAAuBrkD,GAAVwP,EAAExP,EAAEg4B,OAAUh4B,EAAE+3B,UAAU30B,EAAE5F,KAAKwC,EAAEwP,EAAEpM,EAAExD,IAOxD,SAAYuD,GAAG,GAAG,oBAAoBA,EAAE,OAAO0lD,GAAG1lD,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAEiyB,YAAgB+F,EAAG,OAAO,GAAG,GAAGh4B,IAAIm4B,EAAG,OAAO,GAAG,OAAO,EAPlF04B,CAAGh0D,GAAGmD,EAAEm7C,GAAGt+C,EAAEmD,GAAUqM,GAAG,KAAK,EAAEpM,EAAE2lD,GAAG,KAAK3lD,EAAEpD,EAAEmD,EAAEswB,GAAG,MAAMtwB,EAAE,KAAK,EAAEC,EAAEgmD,GAAG,KAAKhmD,EAAEpD,EAAEmD,EAAEswB,GAAG,MAAMtwB,EAAE,KAAK,GAAGC,EAAEslD,GAAG,KAAKtlD,EAAEpD,EAAEmD,EAAEswB,GAAG,MAAMtwB,EAAE,KAAK,GAAGC,EAAEwlD,GAAG,KAAKxlD,EAAEpD,EAAEs+C,GAAGt+C,EAAExC,KAAK2F,GAAG4T,EAAE0c,GAAG,MAAMtwB,EAAE,MAAMmtB,MAAMsF,EAAE,IAAI51B,EAAE,KAAM,OAAOoD,EAAE,KAAK,EAAE,OAAO2T,EAAE3T,EAAE5F,KAAKwC,EAAEoD,EAAEihD,aAA2C0E,GAAG5lD,EAAEC,EAAE2T,EAArC/W,EAAEoD,EAAEs/C,cAAc3rC,EAAE/W,EAAEs+C,GAAGvnC,EAAE/W,GAAcyzB,GAAG,KAAK,EAAE,OAAO1c,EAAE3T,EAAE5F,KAAKwC,EAAEoD,EAAEihD,aAA2C+E,GAAGjmD,EAAEC,EAAE2T,EAArC/W,EAAEoD,EAAEs/C,cAAc3rC,EAAE/W,EAAEs+C,GAAGvnC,EAAE/W,GAAcyzB,GAAG,KAAK,EAAwB,GAAtBi2B,GAAGtmD,GAAG2T,EAAE3T,EAAEq8C,YAAe,OAAOt8C,GAAG,OAAO4T,EAAE,MAAMuZ,MAAMsF,EAAE,MAC3Y,GAA9G7e,EAAE3T,EAAEihD,aAA+BrkD,EAAE,QAApBA,EAAEoD,EAAEojC,eAAyBxmC,EAAEqE,QAAQ,KAAK27C,GAAG78C,EAAEC,GAAGo9C,GAAGp9C,EAAE2T,EAAE,KAAK0c,IAAG1c,EAAE3T,EAAEojC,cAAcniC,WAAerE,EAAEykD,KAAKrhD,EAAEulD,GAAGxlD,EAAEC,EAAEqwB,OAAO,CAAuF,IAArEjkB,GAAjBxP,EAAEoD,EAAEuhC,WAAiBiE,WAAQob,GAAGtJ,GAAGt3C,EAAEuhC,UAAUkE,cAAcrJ,YAAYukB,GAAG3gD,EAAEoM,EAAEy0C,IAAG,GAAMz0C,EAAE,CAAqC,GAAG,OAAvCrM,EAAEnD,EAAEizD,iCAA2C,IAAIjzD,EAAE,EAAEA,EAAEmD,EAAEtL,OAAOmI,GAAG,GAAEwP,EAAErM,EAAEnD,IAAK4kD,8BAA8BzhD,EAAEnD,EAAE,GAAG0kD,GAAG/sD,KAAK6X,GAAoB,IAAjBikB,EAAEuvB,GAAG5/C,EAAE,KAAK2T,EAAE0c,GAAOrwB,EAAEwjC,MAAMnT,EAAEA,GAAGA,EAAE6S,OAAe,EAAT7S,EAAE6S,MAAS,KAAK7S,EAAEA,EAAEoT,aAAa4hB,GAAGtlD,EAAEC,EAAE2T,EAAE0c,GAAGgxB,KAAKrhD,EAAEA,EAAEwjC,MAAM,OAAOxjC,EAAE,KAAK,EAAE,OAAOsgD,GAAGtgD,GAAG,OAAOD,GACnfmhD,GAAGlhD,GAAG2T,EAAE3T,EAAE5F,KAAKwC,EAAEoD,EAAEihD,aAAa70C,EAAE,OAAOrM,EAAEA,EAAE0gD,cAAc,KAAK3uB,EAAEl1B,EAAEpD,SAASuO,GAAG4L,EAAE/W,GAAGk1B,EAAE,KAAK,OAAO1lB,GAAGrE,GAAG4L,EAAEvH,KAAKpM,EAAEkjC,OAAO,IAAI6iB,GAAGhmD,EAAEC,GAAGqlD,GAAGtlD,EAAEC,EAAE8xB,EAAEzB,GAAGrwB,EAAEwjC,MAAM,KAAK,EAAE,OAAO,OAAOzjC,GAAGmhD,GAAGlhD,GAAG,KAAK,KAAK,GAAG,OAAO6mD,GAAG9mD,EAAEC,EAAEqwB,GAAG,KAAK,EAAE,OAAO6vB,GAAGlgD,EAAEA,EAAEuhC,UAAUkE,eAAe9xB,EAAE3T,EAAEihD,aAAa,OAAOlhD,EAAEC,EAAEwjC,MAAMmc,GAAG3/C,EAAE,KAAK2T,EAAE0c,GAAGg1B,GAAGtlD,EAAEC,EAAE2T,EAAE0c,GAAGrwB,EAAEwjC,MAAM,KAAK,GAAG,OAAO7vB,EAAE3T,EAAE5F,KAAKwC,EAAEoD,EAAEihD,aAA2CqE,GAAGvlD,EAAEC,EAAE2T,EAArC/W,EAAEoD,EAAEs/C,cAAc3rC,EAAE/W,EAAEs+C,GAAGvnC,EAAE/W,GAAcyzB,GAAG,KAAK,EAAE,OAAOg1B,GAAGtlD,EAAEC,EAAEA,EAAEihD,aAAa5wB,GAAGrwB,EAAEwjC,MAAM,KAAK,EACtc,KAAK,GAAG,OAAO6hB,GAAGtlD,EAAEC,EAAEA,EAAEihD,aAAaznD,SAAS62B,GAAGrwB,EAAEwjC,MAAM,KAAK,GAAGzjC,EAAE,CAAC4T,EAAE3T,EAAE5F,KAAK+5B,SAASv3B,EAAEoD,EAAEihD,aAAanvB,EAAE9xB,EAAEygD,cAAcr0C,EAAExP,EAAEpI,MAAM,IAAIq9B,EAAE7xB,EAAE5F,KAAK+5B,SAAiD,GAAxC1C,GAAE0pB,GAAGtpB,EAAEiC,eAAejC,EAAEiC,cAAc1nB,EAAK,OAAO0lB,EAAE,GAAGD,EAAEC,EAAEt9B,MAA0G,KAApG4X,EAAEinC,GAAGxhB,EAAEzlB,GAAG,EAAwF,GAArF,oBAAoBuH,EAAEkgB,sBAAsBlgB,EAAEkgB,sBAAsBhC,EAAEzlB,GAAG,cAAqB,GAAG0lB,EAAEt4B,WAAWoD,EAAEpD,WAAW44B,GAAEzsB,QAAQ,CAAC3F,EAAEulD,GAAGxlD,EAAEC,EAAEqwB,GAAG,MAAMtwB,QAAQ,IAAc,QAAV8xB,EAAE7xB,EAAEwjC,SAAiB3R,EAAEoR,OAAOjjC,GAAG,OAAO6xB,GAAG,CAAC,IAAIne,EAAEme,EAAE+pB,aAAa,GAAG,OAAOloC,EAAE,CAACoe,EAAED,EAAE2R,MAAM,IAAI,IAAI7pC,EACtf+Z,EAAEmoC,aAAa,OAAOliD,GAAG,CAAC,GAAGA,EAAEm3B,UAAUnd,GAAG,KAAKha,EAAEsiD,aAAa7vC,GAAG,CAAC,IAAIylB,EAAEr1B,OAAM7C,EAAEkjD,IAAI,EAAExsB,GAAGA,IAAK7zB,IAAI,EAAE0gD,GAAGrrB,EAAEl4B,IAAIk4B,EAAEiqB,OAAOzrB,EAAgB,QAAd12B,EAAEk4B,EAAEmR,aAAqBrpC,EAAEmiD,OAAOzrB,GAAGorB,GAAG5pB,EAAEoR,OAAO5S,GAAG3c,EAAEooC,OAAOzrB,EAAE,MAAM12B,EAAEA,EAAEtF,WAAWy9B,EAAE,KAAKD,EAAEr1B,KAAIq1B,EAAEz3B,OAAO4F,EAAE5F,KAAK,KAAay3B,EAAE2R,MAAM,GAAG,OAAO1R,EAAEA,EAAEmR,OAAOpR,OAAO,IAAIC,EAAED,EAAE,OAAOC,GAAG,CAAC,GAAGA,IAAI9xB,EAAE,CAAC8xB,EAAE,KAAK,MAAkB,GAAG,QAAfD,EAAEC,EAAE2R,SAAoB,CAAC5R,EAAEoR,OAAOnR,EAAEmR,OAAOnR,EAAED,EAAE,MAAMC,EAAEA,EAAEmR,OAAOpR,EAAEC,EAAEuzB,GAAGtlD,EAAEC,EAAEpD,EAAEpD,SAAS62B,GAAGrwB,EAAEA,EAAEwjC,MAAM,OAAOxjC,EAAE,KAAK,EAAE,OAAOpD,EAAEoD,EAAE5F,KAAsBuZ,GAAjBvH,EAAEpM,EAAEihD,cAAiBznD,SAASmiD,GAAG37C,EAAEqwB,GACnd1c,EAAEA,EADod/W,EAAEo/C,GAAGp/C,EACpfwP,EAAEykD,wBAA8B7wD,EAAEkjC,OAAO,EAAEmiB,GAAGtlD,EAAEC,EAAE2T,EAAE0c,GAAGrwB,EAAEwjC,MAAM,KAAK,GAAG,OAAgBp3B,EAAE8uC,GAAXt+C,EAAEoD,EAAE5F,KAAY4F,EAAEihD,cAA6BuE,GAAGzlD,EAAEC,EAAEpD,EAAtBwP,EAAE8uC,GAAGt+C,EAAExC,KAAKgS,GAAcuH,EAAE0c,GAAG,KAAK,GAAG,OAAOq1B,GAAG3lD,EAAEC,EAAEA,EAAE5F,KAAK4F,EAAEihD,aAAattC,EAAE0c,GAAG,KAAK,GAAG,OAAO1c,EAAE3T,EAAE5F,KAAKwC,EAAEoD,EAAEihD,aAAarkD,EAAEoD,EAAEs/C,cAAc3rC,EAAE/W,EAAEs+C,GAAGvnC,EAAE/W,GAAG,OAAOmD,IAAIA,EAAEijC,UAAU,KAAKhjC,EAAEgjC,UAAU,KAAKhjC,EAAEkjC,OAAO,GAAGljC,EAAExD,IAAI,EAAE+7C,GAAG5kC,IAAI5T,GAAE,EAAG84C,GAAG74C,IAAID,GAAE,EAAG47C,GAAG37C,EAAEqwB,GAAG2tB,GAAGh+C,EAAE2T,EAAE/W,GAAGyhD,GAAGr+C,EAAE2T,EAAE/W,EAAEyzB,GAAG+1B,GAAG,KAAKpmD,EAAE2T,GAAE,EAAG5T,EAAEswB,GAAG,KAAK,GAAG,OAAOs3B,GAAG5nD,EAAEC,EAAEqwB,GAAG,KAAK,GAAoB,KAAK,GAAG,OAAOu1B,GAAG7lD,EAAEC,EAAEqwB,GAAG,MAAMnD,MAAMsF,EAAE,IAAIxyB,EAAExD,OAa/e2zD,GAAG96D,UAAUm/B,OAAO,SAASz0B,GAAGgwD,GAAGhwD,EAAEnJ,KAAK05D,cAAc,KAAK,OAAOH,GAAG96D,UAAUy7D,QAAQ,WAAW,IAAI/wD,EAAEnJ,KAAK05D,cAActwD,EAAED,EAAE0lC,cAAcsqB,GAAG,KAAKhwD,EAAE,MAAK,WAAWC,EAAEo2C,IAAI,SAEwJxS,GAAG,SAAS7jC,GAAM,KAAKA,EAAEvD,MAAgBqhD,GAAG99C,EAAE,EAAV49C,MAAeuS,GAAGnwD,EAAE,KAAK8jC,GAAG,SAAS9jC,GAAM,KAAKA,EAAEvD,MAAgBqhD,GAAG99C,EAAE,SAAV49C,MAAsBuS,GAAGnwD,EAAE,YACnc+jC,GAAG,SAAS/jC,GAAG,GAAG,KAAKA,EAAEvD,IAAI,CAAC,IAAIwD,EAAE29C,KAAKttB,EAAEutB,GAAG79C,GAAG89C,GAAG99C,EAAEswB,EAAErwB,GAAGkwD,GAAGnwD,EAAEswB,KAAK0T,GAAG,SAAShkC,EAAEC,GAAG,OAAOA,KAC7FkhC,GAAG,SAASnhC,EAAEC,EAAEqwB,GAAG,OAAOrwB,GAAG,IAAK,QAAyB,GAAjB46B,GAAG76B,EAAEswB,GAAGrwB,EAAEqwB,EAAE36B,KAAQ,UAAU26B,EAAEj2B,MAAM,MAAM4F,EAAE,CAAC,IAAIqwB,EAAEtwB,EAAEswB,EAAE4Q,YAAY5Q,EAAEA,EAAE4Q,WAAsF,IAA3E5Q,EAAEA,EAAE0gC,iBAAiB,cAAcC,KAAKC,UAAU,GAAGjxD,GAAG,mBAAuBA,EAAE,EAAEA,EAAEqwB,EAAE57B,OAAOuL,IAAI,CAAC,IAAI2T,EAAE0c,EAAErwB,GAAG,GAAG2T,IAAI5T,GAAG4T,EAAEu9C,OAAOnxD,EAAEmxD,KAAK,CAAC,IAAIt0D,EAAE4kC,GAAG7tB,GAAG,IAAI/W,EAAE,MAAMswB,MAAMsF,EAAE,KAAKsH,EAAGnmB,GAAGinB,GAAGjnB,EAAE/W,KAAK,MAAM,IAAK,WAAW6+B,GAAG17B,EAAEswB,GAAG,MAAM,IAAK,SAAmB,OAAVrwB,EAAEqwB,EAAE77B,QAAe0mC,GAAGn7B,IAAIswB,EAAE03B,SAAS/nD,GAAE,KAAM2hC,GAAGqsB,GAC9ZpsB,GAAG,SAAS7hC,EAAEC,EAAEqwB,EAAE1c,EAAE/W,GAAG,IAAIwP,EAAEi/C,GAAEA,IAAG,EAAE,IAAI,OAAOxQ,GAAG,GAAG96C,EAAEs0B,KAAK,KAAKr0B,EAAEqwB,EAAE1c,EAAE/W,IAAnC,QAAmD,KAAJyuD,GAAEj/C,KAAUy/C,KAAK9Q,QAAQlZ,GAAG,WAAW,KAAO,GAAFwpB,MAhD/H,WAAc,GAAG,OAAOgB,GAAG,CAAC,IAAItsD,EAAEssD,GAAGA,GAAG,KAAKtsD,EAAEpH,SAAQ,SAASoH,GAAGA,EAAE0nC,cAAc,GAAG1nC,EAAEynC,aAAawlB,GAAGjtD,EAAEuyB,SAAOyoB,KAgDsBoW,GAAK7D,OAAOxrB,GAAG,SAAS/hC,EAAEC,GAAG,IAAIqwB,EAAEg7B,GAAEA,IAAG,EAAE,IAAI,OAAOtrD,EAAEC,GAAb,QAA4B,KAAJqrD,GAAEh7B,KAAUw7B,KAAK9Q,QAA+I,IAAIqW,GAAG,CAACC,OAAO,CAAC/vB,GAAGgR,GAAG9Q,GAAGC,GAAGC,GAAG4rB,GAAG,CAAC3nD,SAAQ,KAAM2rD,GAAG,CAACC,wBAAwBnsB,GAAGosB,WAAW,EAAE/7B,QAAQ,SAASg8B,oBAAoB,aACveC,GAAG,CAACF,WAAWF,GAAGE,WAAW/7B,QAAQ67B,GAAG77B,QAAQg8B,oBAAoBH,GAAGG,oBAAoBE,eAAeL,GAAGK,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqB76B,EAAGvE,uBAAuBq/B,wBAAwB,SAAStyD,GAAW,OAAO,QAAfA,EAAEwjC,GAAGxjC,IAAmB,KAAKA,EAAEwhC,WAAWgwB,wBAAwBD,GAAGC,yBAR/I,WAAc,OAAO,MAS7We,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,MAAM,GAAG,qBAAqB1rC,+BAA+B,CAAC,IAAI2rC,GAAG3rC,+BAA+B,IAAI2rC,GAAGC,YAAYD,GAAGE,cAAc,IAAI7Z,GAAG2Z,GAAGG,OAAOpB,IAAIzY,GAAG0Z,GAAG,MAAM5yD,MAAKhN,EAAQ2gC,mDAAmD09B,GAAGr+D,EAAQggE,aAAapC,GACnX59D,EAAQigE,YAAY,SAASjzD,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAE/B,SAAS,OAAO+B,EAAE,IAAIC,EAAED,EAAE29C,gBAAgB,QAAG,IAAS19C,EAAE,CAAC,GAAG,oBAAoBD,EAAEy0B,OAAO,MAAMtH,MAAMsF,EAAE,MAAM,MAAMtF,MAAMsF,EAAE,IAAIp/B,OAAOyF,KAAKkH,KAA0C,OAA5BA,EAAE,QAAVA,EAAEwjC,GAAGvjC,IAAc,KAAKD,EAAEwhC,WAAoBxuC,EAAQkgE,UAAU,SAASlzD,EAAEC,GAAG,IAAIqwB,EAAEg7B,GAAE,GAAG,KAAO,GAAFh7B,GAAM,OAAOtwB,EAAEC,GAAGqrD,IAAG,EAAE,IAAI,GAAGtrD,EAAE,OAAO86C,GAAG,GAAG96C,EAAEs0B,KAAK,KAAKr0B,IAAlC,QAA8CqrD,GAAEh7B,EAAE0qB,OAAOhoD,EAAQyyC,QAAQ,SAASzlC,EAAEC,EAAEqwB,GAAG,IAAIkgC,GAAGvwD,GAAG,MAAMktB,MAAMsF,EAAE,MAAM,OAAOg+B,GAAG,KAAKzwD,EAAEC,GAAE,EAAGqwB,IACndt9B,EAAQyhC,OAAO,SAASz0B,EAAEC,EAAEqwB,GAAG,IAAIkgC,GAAGvwD,GAAG,MAAMktB,MAAMsF,EAAE,MAAM,OAAOg+B,GAAG,KAAKzwD,EAAEC,GAAE,EAAGqwB,IAAIt9B,EAAQmgE,uBAAuB,SAASnzD,GAAG,IAAIwwD,GAAGxwD,GAAG,MAAMmtB,MAAMsF,EAAE,KAAK,QAAOzyB,EAAE4qD,sBAAqBsD,IAAG,WAAWuC,GAAG,KAAK,KAAKzwD,GAAE,GAAG,WAAWA,EAAE4qD,oBAAoB,KAAK5qD,EAAEq2C,IAAI,YAAS,IAAQrjD,EAAQogE,wBAAwBnF,GAAGj7D,EAAQqgE,sBAAsB,SAASrzD,EAAEC,GAAG,OAAO2wD,GAAG5wD,EAAEC,EAAE,EAAE5G,UAAU3E,aAAQ,IAAS2E,UAAU,GAAGA,UAAU,GAAG,OAC9arG,EAAQsgE,oCAAoC,SAAStzD,EAAEC,EAAEqwB,EAAE1c,GAAG,IAAI48C,GAAGlgC,GAAG,MAAMnD,MAAMsF,EAAE,MAAM,GAAG,MAAMzyB,QAAG,IAASA,EAAE29C,gBAAgB,MAAMxwB,MAAMsF,EAAE,KAAK,OAAOg+B,GAAGzwD,EAAEC,EAAEqwB,GAAE,EAAG1c,IAAI5gB,EAAQ0iC,QAAQ,U,6BCrS3L3iC,EAAOC,QAAUC,EAAQ,K,6BCKd,IAAIoZ,EAAE0lB,EAAED,EAAEne,EAAE,GAAG,kBAAkB4/C,aAAa,oBAAoBA,YAAYvoB,IAAI,CAAC,IAAIpxC,EAAE25D,YAAYvgE,EAAQs0C,aAAa,WAAW,OAAO1tC,EAAEoxC,WAAW,CAAC,IAAIjqC,EAAEiE,KAAK8qB,EAAE/uB,EAAEiqC,MAAMh4C,EAAQs0C,aAAa,WAAW,OAAOvmC,EAAEiqC,MAAMlb,GAC3O,GAAG,qBAAqB3tB,QAAQ,oBAAoBqxD,eAAe,CAAC,IAAIxjC,EAAE,KAAKE,EAAE,KAAKE,EAAE,SAAFA,IAAa,GAAG,OAAOJ,EAAE,IAAI,IAAIhwB,EAAEhN,EAAQs0C,eAAetX,GAAE,EAAGhwB,GAAGgwB,EAAE,KAAK,MAAM/vB,GAAG,MAAMk3C,WAAW/mB,EAAE,GAAGnwB,IAAKoM,EAAE,SAASrM,GAAG,OAAOgwB,EAAEmnB,WAAW9qC,EAAE,EAAErM,IAAIgwB,EAAEhwB,EAAEm3C,WAAW/mB,EAAE,KAAK2B,EAAE,SAAS/xB,EAAEC,GAAGiwB,EAAEinB,WAAWn3C,EAAEC,IAAI6xB,EAAE,WAAWulB,aAAannB,IAAIl9B,EAAQwmD,qBAAqB,WAAW,OAAM,GAAI7lC,EAAE3gB,EAAQygE,wBAAwB,iBAAiB,CAAC,IAAI5mD,EAAE1K,OAAOg1C,WAAW1kB,EAAEtwB,OAAOk1C,aAAa,GAAG,qBAAqBj9B,QAAQ,CAAC,IAAIiW,EAC7fluB,OAAOuxD,qBAAqB,oBAAoBvxD,OAAOwxD,uBAAuBv5C,QAAQ1e,MAAM,sJAAsJ,oBAAoB20B,GAAGjW,QAAQ1e,MAAM,qJAAqJ,IAAI80B,GAAE,EAAGK,EAAE,KAAKC,GAAG,EAAEI,EAAE,EAAEC,EAAE,EAAEn+B,EAAQwmD,qBAAqB,WAAW,OAAOxmD,EAAQs0C,gBAChgBnW,GAAGxd,EAAE,aAAa3gB,EAAQygE,wBAAwB,SAASzzD,GAAG,EAAEA,GAAG,IAAIA,EAAEoa,QAAQ1e,MAAM,mHAAmHw1B,EAAE,EAAElxB,EAAE8M,KAAK8mD,MAAM,IAAI5zD,GAAG,GAAG,IAAIoM,EAAE,IAAIonD,eAAehiC,EAAEplB,EAAEynD,MAAMznD,EAAE0nD,MAAMC,UAAU,WAAW,GAAG,OAAOljC,EAAE,CAAC,IAAI7wB,EAAEhN,EAAQs0C,eAAenW,EAAEnxB,EAAEkxB,EAAE,IAAIL,GAAE,EAAG7wB,GAAGwxB,EAAEwiC,YAAY,OAAOxjC,GAAE,EAAGK,EAAE,MAAM,MAAM5wB,GAAG,MAAMuxB,EAAEwiC,YAAY,MAAM/zD,QAASuwB,GAAE,GAAInkB,EAAE,SAASrM,GAAG6wB,EAAE7wB,EAAEwwB,IAAIA,GAAE,EAAGgB,EAAEwiC,YAAY,QAAQjiC,EAAE,SAAS/xB,EAAEC,GAAG6wB,EACtfjkB,GAAE,WAAW7M,EAAEhN,EAAQs0C,kBAAiBrnC,IAAI6xB,EAAE,WAAWW,EAAE3B,GAAGA,GAAG,GAAG,SAASW,EAAEzxB,EAAEC,GAAG,IAAIqwB,EAAEtwB,EAAEtL,OAAOsL,EAAExL,KAAKyL,GAAGD,EAAE,OAAO,CAAC,IAAI4T,EAAE0c,EAAE,IAAI,EAAEzzB,EAAEmD,EAAE4T,GAAG,UAAG,IAAS/W,GAAG,EAAE60B,EAAE70B,EAAEoD,IAA0B,MAAMD,EAA7BA,EAAE4T,GAAG3T,EAAED,EAAEswB,GAAGzzB,EAAEyzB,EAAE1c,GAAgB,SAASie,EAAE7xB,GAAU,YAAO,KAAdA,EAAEA,EAAE,IAAqB,KAAKA,EAChP,SAASwyB,EAAExyB,GAAG,IAAIC,EAAED,EAAE,GAAG,QAAG,IAASC,EAAE,CAAC,IAAIqwB,EAAEtwB,EAAEi0D,MAAM,GAAG3jC,IAAIrwB,EAAE,CAACD,EAAE,GAAGswB,EAAEtwB,EAAE,IAAI,IAAI4T,EAAE,EAAE/W,EAAEmD,EAAEtL,OAAOkf,EAAE/W,GAAG,CAAC,IAAIm1B,EAAE,GAAGpe,EAAE,GAAG,EAAEve,EAAE2K,EAAEgyB,GAAGvqB,EAAEuqB,EAAE,EAAEjC,EAAE/vB,EAAEyH,GAAG,QAAG,IAASpS,GAAG,EAAEq8B,EAAEr8B,EAAEi7B,QAAG,IAASP,GAAG,EAAE2B,EAAE3B,EAAE16B,IAAI2K,EAAE4T,GAAGmc,EAAE/vB,EAAEyH,GAAG6oB,EAAE1c,EAAEnM,IAAIzH,EAAE4T,GAAGve,EAAE2K,EAAEgyB,GAAG1B,EAAE1c,EAAEoe,OAAQ,WAAG,IAASjC,GAAG,EAAE2B,EAAE3B,EAAEO,IAA0B,MAAMtwB,EAA7BA,EAAE4T,GAAGmc,EAAE/vB,EAAEyH,GAAG6oB,EAAE1c,EAAEnM,IAAgB,OAAOxH,EAAE,OAAO,KAAK,SAASyxB,EAAE1xB,EAAEC,GAAG,IAAIqwB,EAAEtwB,EAAEk0D,UAAUj0D,EAAEi0D,UAAU,OAAO,IAAI5jC,EAAEA,EAAEtwB,EAAEysB,GAAGxsB,EAAEwsB,GAAG,IAAI0F,EAAE,GAAGC,EAAE,GAAGC,EAAE,EAAEE,EAAE,KAAKG,EAAE,EAAEC,GAAE,EAAGG,GAAE,EAAGC,GAAE,EACja,SAASC,EAAEhzB,GAAG,IAAI,IAAIC,EAAE4xB,EAAEO,GAAG,OAAOnyB,GAAG,CAAC,GAAG,OAAOA,EAAEi9C,SAAS1qB,EAAEJ,OAAQ,MAAGnyB,EAAEk0D,WAAWn0D,GAAgD,MAA9CwyB,EAAEJ,GAAGnyB,EAAEi0D,UAAUj0D,EAAEm0D,eAAe3iC,EAAEU,EAAElyB,GAAcA,EAAE4xB,EAAEO,IAAI,SAASoxB,EAAExjD,GAAa,GAAV+yB,GAAE,EAAGC,EAAEhzB,IAAO8yB,EAAE,GAAG,OAAOjB,EAAEM,GAAGW,GAAE,EAAGzmB,EAAE+7C,OAAO,CAAC,IAAInoD,EAAE4xB,EAAEO,GAAG,OAAOnyB,GAAG8xB,EAAEyxB,EAAEvjD,EAAEk0D,UAAUn0D,IACtP,SAASooD,EAAEpoD,EAAEC,GAAG6yB,GAAE,EAAGC,IAAIA,GAAE,EAAGjB,KAAKa,GAAE,EAAG,IAAIrC,EAAEoC,EAAE,IAAS,IAALM,EAAE/yB,GAAOsyB,EAAEV,EAAEM,GAAG,OAAOI,MAAMA,EAAE6hC,eAAen0D,IAAID,IAAIhN,EAAQwmD,yBAAyB,CAAC,IAAI5lC,EAAE2e,EAAE2qB,SAAS,GAAG,oBAAoBtpC,EAAE,CAAC2e,EAAE2qB,SAAS,KAAKxqB,EAAEH,EAAE8hC,cAAc,IAAIx3D,EAAE+W,EAAE2e,EAAE6hC,gBAAgBn0D,GAAGA,EAAEjN,EAAQs0C,eAAe,oBAAoBzqC,EAAE01B,EAAE2qB,SAASrgD,EAAE01B,IAAIV,EAAEM,IAAIK,EAAEL,GAAGa,EAAE/yB,QAAQuyB,EAAEL,GAAGI,EAAEV,EAAEM,GAAG,GAAG,OAAOI,EAAE,IAAIP,GAAE,MAAO,CAAC,IAAI38B,EAAEw8B,EAAEO,GAAG,OAAO/8B,GAAG08B,EAAEyxB,EAAEnuD,EAAE8+D,UAAUl0D,GAAG+xB,GAAE,EAAG,OAAOA,EAArX,QAA+XO,EAAE,KAAKG,EAAEpC,EAAEqC,GAAE,GAAI,IAAI41B,EAAE50C,EAAE3gB,EAAQqnD,sBAAsB,EACternD,EAAQ+mD,2BAA2B,EAAE/mD,EAAQmnD,qBAAqB,EAAEnnD,EAAQizC,wBAAwB,EAAEjzC,EAAQshE,mBAAmB,KAAKthE,EAAQ41C,8BAA8B,EAAE51C,EAAQsmD,wBAAwB,SAASt5C,GAAGA,EAAEk9C,SAAS,MAAMlqD,EAAQuhE,2BAA2B,WAAWzhC,GAAGH,IAAIG,GAAE,EAAGzmB,EAAE+7C,KAAKp1D,EAAQ6mD,iCAAiC,WAAW,OAAOnnB,GAAG1/B,EAAQwhE,8BAA8B,WAAW,OAAO3iC,EAAEM,IACpan/B,EAAQyhE,cAAc,SAASz0D,GAAG,OAAO0yB,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAIzyB,EAAE,EAAE,MAAM,QAAQA,EAAEyyB,EAAE,IAAIpC,EAAEoC,EAAEA,EAAEzyB,EAAE,IAAI,OAAOD,IAAX,QAAuB0yB,EAAEpC,IAAIt9B,EAAQ0hE,wBAAwB,aAAa1hE,EAAQ0mD,sBAAsB6O,EAAEv1D,EAAQuyC,yBAAyB,SAASvlC,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAIswB,EAAEoC,EAAEA,EAAE1yB,EAAE,IAAI,OAAOC,IAAX,QAAuByyB,EAAEpC,IACpWt9B,EAAQgzC,0BAA0B,SAAShmC,EAAEC,EAAEqwB,GAAG,IAAI1c,EAAE5gB,EAAQs0C,eAA8F,OAA/E,kBAAkBhX,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAEqkC,QAA6B,EAAErkC,EAAE1c,EAAE0c,EAAE1c,EAAG0c,EAAE1c,EAAS5T,GAAG,KAAK,EAAE,IAAInD,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAA2M,OAAjMmD,EAAE,CAACysB,GAAG4F,IAAI6qB,SAASj9C,EAAEo0D,cAAcr0D,EAAEm0D,UAAU7jC,EAAE8jC,eAAvDv3D,EAAEyzB,EAAEzzB,EAAoEq3D,WAAW,GAAG5jC,EAAE1c,GAAG5T,EAAEk0D,UAAU5jC,EAAEmB,EAAEW,EAAEpyB,GAAG,OAAO6xB,EAAEM,IAAInyB,IAAI6xB,EAAEO,KAAKW,EAAEjB,IAAIiB,GAAE,EAAGhB,EAAEyxB,EAAElzB,EAAE1c,MAAM5T,EAAEk0D,UAAUr3D,EAAE40B,EAAEU,EAAEnyB,GAAG8yB,GAAGH,IAAIG,GAAE,EAAGzmB,EAAE+7C,KAAYpoD,GAC1dhN,EAAQ4hE,sBAAsB,SAAS50D,GAAG,IAAIC,EAAEyyB,EAAE,OAAO,WAAW,IAAIpC,EAAEoC,EAAEA,EAAEzyB,EAAE,IAAI,OAAOD,EAAEhE,MAAMnF,KAAKwC,WAAxB,QAA2Cq5B,EAAEpC,M,gBCZ7H,IAAIukC,EAAW,SAAU7hE,GACvB,aAEA,IAEImB,EAFA2gE,EAAKzhE,OAAOiC,UACZy/D,EAASD,EAAGh9D,eAEZk9D,EAA4B,oBAAXnhE,OAAwBA,OAAS,GAClDohE,EAAiBD,EAAQlhE,UAAY,aACrCohE,EAAsBF,EAAQG,eAAiB,kBAC/CC,EAAoBJ,EAAQ/+D,aAAe,gBAE/C,SAASo/D,EAAOj2D,EAAKnK,EAAKR,GAOxB,OANApB,OAAOqG,eAAe0F,EAAKnK,EAAK,CAC9BR,MAAOA,EACPkF,YAAY,EACZ8J,cAAc,EACdC,UAAU,IAELtE,EAAInK,GAEb,IAEEogE,EAAO,GAAI,IACX,MAAO1gE,GACP0gE,EAAS,SAASj2D,EAAKnK,EAAKR,GAC1B,OAAO2K,EAAInK,GAAOR,GAItB,SAAS6gE,EAAKC,EAASC,EAASpiE,EAAMqiE,GAEpC,IAAIC,EAAiBF,GAAWA,EAAQlgE,qBAAqBqgE,EAAYH,EAAUG,EAC/EhtD,EAAYtV,OAAO+Q,OAAOsxD,EAAepgE,WACzCy7B,EAAU,IAAI6kC,EAAQH,GAAe,IAMzC,OAFA9sD,EAAUktD,QAsMZ,SAA0BN,EAASniE,EAAM29B,GACvC,IAAIlQ,EAAQi1C,EAEZ,OAAO,SAAgBC,EAAQv6D,GAC7B,GAAIqlB,IAAUm1C,EACZ,MAAM,IAAI7oC,MAAM,gCAGlB,GAAItM,IAAUo1C,EAAmB,CAC/B,GAAe,UAAXF,EACF,MAAMv6D,EAKR,OAAO06D,IAMT,IAHAnlC,EAAQglC,OAASA,EACjBhlC,EAAQv1B,IAAMA,IAED,CACX,IAAI26D,EAAWplC,EAAQolC,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUplC,GACnD,GAAIqlC,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnBrlC,EAAQglC,OAGVhlC,EAAQwlC,KAAOxlC,EAAQylC,MAAQzlC,EAAQv1B,SAElC,GAAuB,UAAnBu1B,EAAQglC,OAAoB,CACrC,GAAIl1C,IAAUi1C,EAEZ,MADAj1C,EAAQo1C,EACFllC,EAAQv1B,IAGhBu1B,EAAQ0lC,kBAAkB1lC,EAAQv1B,SAEN,WAAnBu1B,EAAQglC,QACjBhlC,EAAQ2lC,OAAO,SAAU3lC,EAAQv1B,KAGnCqlB,EAAQm1C,EAER,IAAIW,EAASC,EAASrB,EAASniE,EAAM29B,GACrC,GAAoB,WAAhB4lC,EAAOt8D,KAAmB,CAO5B,GAJAwmB,EAAQkQ,EAAQx8B,KACZ0hE,EACAY,EAEAF,EAAOn7D,MAAQ86D,EACjB,SAGF,MAAO,CACL7hE,MAAOkiE,EAAOn7D,IACdjH,KAAMw8B,EAAQx8B,MAGS,UAAhBoiE,EAAOt8D,OAChBwmB,EAAQo1C,EAGRllC,EAAQglC,OAAS,QACjBhlC,EAAQv1B,IAAMm7D,EAAOn7D,OA9QPs7D,CAAiBvB,EAASniE,EAAM29B,GAE7CpoB,EAcT,SAASiuD,EAAS96D,EAAIsD,EAAK5D,GACzB,IACE,MAAO,CAAEnB,KAAM,SAAUmB,IAAKM,EAAGtG,KAAK4J,EAAK5D,IAC3C,MAAO7G,GACP,MAAO,CAAE0F,KAAM,QAASmB,IAAK7G,IAhBjC3B,EAAQsiE,KAAOA,EAoBf,IAAIQ,EAAyB,iBACzBe,EAAyB,iBACzBb,EAAoB,YACpBC,EAAoB,YAIpBK,EAAmB,GAMvB,SAASX,KACT,SAASoB,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxBA,EAAkBhC,GAAkB,WAClC,OAAOp+D,MAGT,IAAIqgE,EAAW7jE,OAAOiR,eAClB6yD,EAA0BD,GAAYA,EAASA,EAAShvD,EAAO,MAC/DivD,GACAA,IAA4BrC,GAC5BC,EAAOv/D,KAAK2hE,EAAyBlC,KAGvCgC,EAAoBE,GAGtB,IAAIC,EAAKJ,EAA2B1hE,UAClCqgE,EAAUrgE,UAAYjC,OAAO+Q,OAAO6yD,GAWtC,SAASI,EAAsB/hE,GAC7B,CAAC,OAAQ,QAAS,UAAUsD,SAAQ,SAASm9D,GAC3CV,EAAO//D,EAAWygE,GAAQ,SAASv6D,GACjC,OAAO3E,KAAKg/D,QAAQE,EAAQv6D,SAkClC,SAAS87D,EAAc3uD,EAAW4uD,GAChC,SAASC,EAAOzB,EAAQv6D,EAAKJ,EAASC,GACpC,IAAIs7D,EAASC,EAASjuD,EAAUotD,GAASptD,EAAWnN,GACpD,GAAoB,UAAhBm7D,EAAOt8D,KAEJ,CACL,IAAIzC,EAAS++D,EAAOn7D,IAChB/G,EAAQmD,EAAOnD,MACnB,OAAIA,GACiB,kBAAVA,GACPsgE,EAAOv/D,KAAKf,EAAO,WACd8iE,EAAYn8D,QAAQ3G,EAAMgjE,SAAS77D,MAAK,SAASnH,GACtD+iE,EAAO,OAAQ/iE,EAAO2G,EAASC,MAC9B,SAAS1G,GACV6iE,EAAO,QAAS7iE,EAAKyG,EAASC,MAI3Bk8D,EAAYn8D,QAAQ3G,GAAOmH,MAAK,SAAS87D,GAI9C9/D,EAAOnD,MAAQijE,EACft8D,EAAQxD,MACP,SAAS8D,GAGV,OAAO87D,EAAO,QAAS97D,EAAON,EAASC,MAvBzCA,EAAOs7D,EAAOn7D,KA4BlB,IAAIm8D,EAgCJ9gE,KAAKg/D,QA9BL,SAAiBE,EAAQv6D,GACvB,SAASo8D,IACP,OAAO,IAAIL,GAAY,SAASn8D,EAASC,GACvCm8D,EAAOzB,EAAQv6D,EAAKJ,EAASC,MAIjC,OAAOs8D,EAaLA,EAAkBA,EAAgB/7D,KAChCg8D,EAGAA,GACEA,KAkHV,SAASvB,EAAoBF,EAAUplC,GACrC,IAAIglC,EAASI,EAASriE,SAASi9B,EAAQglC,QACvC,GAAIA,IAAW5hE,EAAW,CAKxB,GAFA48B,EAAQolC,SAAW,KAEI,UAAnBplC,EAAQglC,OAAoB,CAE9B,GAAII,EAASriE,SAAT,SAGFi9B,EAAQglC,OAAS,SACjBhlC,EAAQv1B,IAAMrH,EACdkiE,EAAoBF,EAAUplC,GAEP,UAAnBA,EAAQglC,QAGV,OAAOO,EAIXvlC,EAAQglC,OAAS,QACjBhlC,EAAQv1B,IAAM,IAAI3G,UAChB,kDAGJ,OAAOyhE,EAGT,IAAIK,EAASC,EAASb,EAAQI,EAASriE,SAAUi9B,EAAQv1B,KAEzD,GAAoB,UAAhBm7D,EAAOt8D,KAIT,OAHA02B,EAAQglC,OAAS,QACjBhlC,EAAQv1B,IAAMm7D,EAAOn7D,IACrBu1B,EAAQolC,SAAW,KACZG,EAGT,IAAI76D,EAAOk7D,EAAOn7D,IAElB,OAAMC,EAOFA,EAAKlH,MAGPw8B,EAAQolC,EAAS0B,YAAcp8D,EAAKhH,MAGpCs8B,EAAQz8B,KAAO6hE,EAAS2B,QAQD,WAAnB/mC,EAAQglC,SACVhlC,EAAQglC,OAAS,OACjBhlC,EAAQv1B,IAAMrH,GAUlB48B,EAAQolC,SAAW,KACZG,GANE76D,GA3BPs1B,EAAQglC,OAAS,QACjBhlC,EAAQv1B,IAAM,IAAI3G,UAAU,oCAC5Bk8B,EAAQolC,SAAW,KACZG,GAoDX,SAASyB,EAAaC,GACpB,IAAIjhE,EAAQ,CAAEkhE,OAAQD,EAAK,IAEvB,KAAKA,IACPjhE,EAAMmhE,SAAWF,EAAK,IAGpB,KAAKA,IACPjhE,EAAMohE,WAAaH,EAAK,GACxBjhE,EAAMqhE,SAAWJ,EAAK,IAGxBnhE,KAAKwhE,WAAW7jE,KAAKuC,GAGvB,SAASuhE,EAAcvhE,GACrB,IAAI4/D,EAAS5/D,EAAMwhE,YAAc,GACjC5B,EAAOt8D,KAAO,gBACPs8D,EAAOn7D,IACdzE,EAAMwhE,WAAa5B,EAGrB,SAASf,EAAQH,GAIf5+D,KAAKwhE,WAAa,CAAC,CAAEJ,OAAQ,SAC7BxC,EAAY78D,QAAQm/D,EAAclhE,MAClCA,KAAK2hE,OAAM,GA8Bb,SAAStwD,EAAOuwD,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAASxD,GAC9B,GAAIyD,EACF,OAAOA,EAAeljE,KAAKijE,GAG7B,GAA6B,oBAAlBA,EAASnkE,KAClB,OAAOmkE,EAGT,IAAK/tD,MAAM+tD,EAAS/jE,QAAS,CAC3B,IAAId,GAAK,EAAGU,EAAO,SAASA,IAC1B,OAASV,EAAI6kE,EAAS/jE,QACpB,GAAIqgE,EAAOv/D,KAAKijE,EAAU7kE,GAGxB,OAFAU,EAAKG,MAAQgkE,EAAS7kE,GACtBU,EAAKC,MAAO,EACLD,EAOX,OAHAA,EAAKG,MAAQN,EACbG,EAAKC,MAAO,EAELD,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAM4hE,GAIjB,SAASA,IACP,MAAO,CAAEzhE,MAAON,EAAWI,MAAM,GA+MnC,OA5mBAwiE,EAAkBzhE,UAAY8hE,EAAG1hE,YAAcshE,EAC/CA,EAA2BthE,YAAcqhE,EACzCA,EAAkB59B,YAAck8B,EAC9B2B,EACA5B,EACA,qBAaFpiE,EAAQ2lE,oBAAsB,SAASC,GACrC,IAAIC,EAAyB,oBAAXD,GAAyBA,EAAOljE,YAClD,QAAOmjE,IACHA,IAAS9B,GAG2B,uBAAnC8B,EAAK1/B,aAAe0/B,EAAKljE,QAIhC3C,EAAQ8lE,KAAO,SAASF,GAQtB,OAPIvlE,OAAO0Q,eACT1Q,OAAO0Q,eAAe60D,EAAQ5B,IAE9B4B,EAAO50D,UAAYgzD,EACnB3B,EAAOuD,EAAQxD,EAAmB,sBAEpCwD,EAAOtjE,UAAYjC,OAAO+Q,OAAOgzD,GAC1BwB,GAOT5lE,EAAQ+lE,MAAQ,SAASv9D,GACvB,MAAO,CAAEi8D,QAASj8D,IAsEpB67D,EAAsBC,EAAchiE,WACpCgiE,EAAchiE,UAAU4/D,GAAuB,WAC7C,OAAOr+D,MAET7D,EAAQskE,cAAgBA,EAKxBtkE,EAAQgmE,MAAQ,SAASzD,EAASC,EAASpiE,EAAMqiE,EAAa8B,QACxC,IAAhBA,IAAwBA,EAAc57D,SAE1C,IAAIkb,EAAO,IAAIygD,EACbhC,EAAKC,EAASC,EAASpiE,EAAMqiE,GAC7B8B,GAGF,OAAOvkE,EAAQ2lE,oBAAoBnD,GAC/B3+C,EACAA,EAAKviB,OAAOsH,MAAK,SAAShE,GACxB,OAAOA,EAAOrD,KAAOqD,EAAOnD,MAAQoiB,EAAKviB,WAuKjD+iE,EAAsBD,GAEtB/B,EAAO+B,EAAIhC,EAAmB,aAO9BgC,EAAGnC,GAAkB,WACnB,OAAOp+D,MAGTugE,EAAG7hE,SAAW,WACZ,MAAO,sBAkCTvC,EAAQ8F,KAAO,SAAS9D,GACtB,IAAI8D,EAAO,GACX,IAAK,IAAI7D,KAAOD,EACd8D,EAAKtE,KAAKS,GAMZ,OAJA6D,EAAKqP,UAIE,SAAS7T,IACd,KAAOwE,EAAKpE,QAAQ,CAClB,IAAIO,EAAM6D,EAAKm7D,MACf,GAAIh/D,KAAOD,EAGT,OAFAV,EAAKG,MAAQQ,EACbX,EAAKC,MAAO,EACLD,EAQX,OADAA,EAAKC,MAAO,EACLD,IAsCXtB,EAAQkV,OAASA,EAMjB0tD,EAAQtgE,UAAY,CAClBI,YAAakgE,EAEb4C,MAAO,SAASS,GAcd,GAbApiE,KAAKuO,KAAO,EACZvO,KAAKvC,KAAO,EAGZuC,KAAK0/D,KAAO1/D,KAAK2/D,MAAQriE,EACzB0C,KAAKtC,MAAO,EACZsC,KAAKs/D,SAAW,KAEhBt/D,KAAKk/D,OAAS,OACdl/D,KAAK2E,IAAMrH,EAEX0C,KAAKwhE,WAAWz/D,QAAQ0/D,IAEnBW,EACH,IAAK,IAAItjE,KAAQkB,KAEQ,MAAnBlB,EAAKiqC,OAAO,IACZm1B,EAAOv/D,KAAKqB,KAAMlB,KACjB+U,OAAO/U,EAAKF,MAAM,MACrBoB,KAAKlB,GAAQxB,IAMrB+kE,KAAM,WACJriE,KAAKtC,MAAO,EAEZ,IACI4kE,EADYtiE,KAAKwhE,WAAW,GACLE,WAC3B,GAAwB,UAApBY,EAAW9+D,KACb,MAAM8+D,EAAW39D,IAGnB,OAAO3E,KAAKuiE,MAGd3C,kBAAmB,SAAS4C,GAC1B,GAAIxiE,KAAKtC,KACP,MAAM8kE,EAGR,IAAItoC,EAAUl6B,KACd,SAASyiE,EAAOC,EAAKC,GAYnB,OAXA7C,EAAOt8D,KAAO,QACds8D,EAAOn7D,IAAM69D,EACbtoC,EAAQz8B,KAAOilE,EAEXC,IAGFzoC,EAAQglC,OAAS,OACjBhlC,EAAQv1B,IAAMrH,KAGNqlE,EAGZ,IAAK,IAAI5lE,EAAIiD,KAAKwhE,WAAW3jE,OAAS,EAAGd,GAAK,IAAKA,EAAG,CACpD,IAAImD,EAAQF,KAAKwhE,WAAWzkE,GACxB+iE,EAAS5/D,EAAMwhE,WAEnB,GAAqB,SAAjBxhE,EAAMkhE,OAIR,OAAOqB,EAAO,OAGhB,GAAIviE,EAAMkhE,QAAUphE,KAAKuO,KAAM,CAC7B,IAAIq0D,EAAW1E,EAAOv/D,KAAKuB,EAAO,YAC9B2iE,EAAa3E,EAAOv/D,KAAKuB,EAAO,cAEpC,GAAI0iE,GAAYC,EAAY,CAC1B,GAAI7iE,KAAKuO,KAAOrO,EAAMmhE,SACpB,OAAOoB,EAAOviE,EAAMmhE,UAAU,GACzB,GAAIrhE,KAAKuO,KAAOrO,EAAMohE,WAC3B,OAAOmB,EAAOviE,EAAMohE,iBAGjB,GAAIsB,GACT,GAAI5iE,KAAKuO,KAAOrO,EAAMmhE,SACpB,OAAOoB,EAAOviE,EAAMmhE,UAAU,OAG3B,KAAIwB,EAMT,MAAM,IAAIvsC,MAAM,0CALhB,GAAIt2B,KAAKuO,KAAOrO,EAAMohE,WACpB,OAAOmB,EAAOviE,EAAMohE,gBAU9BzB,OAAQ,SAASr8D,EAAMmB,GACrB,IAAK,IAAI5H,EAAIiD,KAAKwhE,WAAW3jE,OAAS,EAAGd,GAAK,IAAKA,EAAG,CACpD,IAAImD,EAAQF,KAAKwhE,WAAWzkE,GAC5B,GAAImD,EAAMkhE,QAAUphE,KAAKuO,MACrB2vD,EAAOv/D,KAAKuB,EAAO,eACnBF,KAAKuO,KAAOrO,EAAMohE,WAAY,CAChC,IAAIwB,EAAe5iE,EACnB,OAIA4iE,IACU,UAATt/D,GACS,aAATA,IACDs/D,EAAa1B,QAAUz8D,GACvBA,GAAOm+D,EAAaxB,aAGtBwB,EAAe,MAGjB,IAAIhD,EAASgD,EAAeA,EAAapB,WAAa,GAItD,OAHA5B,EAAOt8D,KAAOA,EACds8D,EAAOn7D,IAAMA,EAETm+D,GACF9iE,KAAKk/D,OAAS,OACdl/D,KAAKvC,KAAOqlE,EAAaxB,WAClB7B,GAGFz/D,KAAK+iE,SAASjD,IAGvBiD,SAAU,SAASjD,EAAQyB,GACzB,GAAoB,UAAhBzB,EAAOt8D,KACT,MAAMs8D,EAAOn7D,IAcf,MAXoB,UAAhBm7D,EAAOt8D,MACS,aAAhBs8D,EAAOt8D,KACTxD,KAAKvC,KAAOqiE,EAAOn7D,IACM,WAAhBm7D,EAAOt8D,MAChBxD,KAAKuiE,KAAOviE,KAAK2E,IAAMm7D,EAAOn7D,IAC9B3E,KAAKk/D,OAAS,SACdl/D,KAAKvC,KAAO,OACa,WAAhBqiE,EAAOt8D,MAAqB+9D,IACrCvhE,KAAKvC,KAAO8jE,GAGP9B,GAGTuD,OAAQ,SAAS1B,GACf,IAAK,IAAIvkE,EAAIiD,KAAKwhE,WAAW3jE,OAAS,EAAGd,GAAK,IAAKA,EAAG,CACpD,IAAImD,EAAQF,KAAKwhE,WAAWzkE,GAC5B,GAAImD,EAAMohE,aAAeA,EAGvB,OAFAthE,KAAK+iE,SAAS7iE,EAAMwhE,WAAYxhE,EAAMqhE,UACtCE,EAAcvhE,GACPu/D,IAKb,MAAS,SAAS2B,GAChB,IAAK,IAAIrkE,EAAIiD,KAAKwhE,WAAW3jE,OAAS,EAAGd,GAAK,IAAKA,EAAG,CACpD,IAAImD,EAAQF,KAAKwhE,WAAWzkE,GAC5B,GAAImD,EAAMkhE,SAAWA,EAAQ,CAC3B,IAAItB,EAAS5/D,EAAMwhE,WACnB,GAAoB,UAAhB5B,EAAOt8D,KAAkB,CAC3B,IAAIy/D,EAASnD,EAAOn7D,IACpB88D,EAAcvhE,GAEhB,OAAO+iE,GAMX,MAAM,IAAI3sC,MAAM,0BAGlB4sC,cAAe,SAAStB,EAAUZ,EAAYC,GAa5C,OAZAjhE,KAAKs/D,SAAW,CACdriE,SAAUoU,EAAOuwD,GACjBZ,WAAYA,EACZC,QAASA,GAGS,SAAhBjhE,KAAKk/D,SAGPl/D,KAAK2E,IAAMrH,GAGNmiE,IAQJtjE,EA7sBM,CAotBgBD,EAAOC,SAGtC,IACEgnE,mBAAqBnF,EACrB,MAAOoF,GAUP1mE,SAAS,IAAK,yBAAdA,CAAwCshE,K,gCCzuB1C,IAOIqF,EACAC,EARAhxC,EAAUp2B,EAAOC,QAAU,GAU/B,SAASonE,IACL,MAAM,IAAIjtC,MAAM,mCAEpB,SAASktC,IACL,MAAM,IAAIltC,MAAM,qCAsBpB,SAASmtC,EAAWC,GAChB,GAAIL,IAAqB/iB,WAErB,OAAOA,WAAWojB,EAAK,GAG3B,IAAKL,IAAqBE,IAAqBF,IAAqB/iB,WAEhE,OADA+iB,EAAmB/iB,WACZA,WAAWojB,EAAK,GAE3B,IAEI,OAAOL,EAAiBK,EAAK,GAC/B,MAAM19D,GACJ,IAEI,OAAOq9D,EAAiB1kE,KAAK,KAAM+kE,EAAK,GAC1C,MAAM19D,GAEJ,OAAOq9D,EAAiB1kE,KAAKqB,KAAM0jE,EAAK,MAvCnD,WACG,IAEQL,EADsB,oBAAf/iB,WACYA,WAEAijB,EAEzB,MAAOv9D,GACLq9D,EAAmBE,EAEvB,IAEQD,EADwB,oBAAjB9iB,aACcA,aAEAgjB,EAE3B,MAAOx9D,GACLs9D,EAAqBE,GAjB5B,GAwED,IAEIG,EAFAhY,EAAQ,GACRiY,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaD,IAGlBC,GAAW,EACPD,EAAa9lE,OACb8tD,EAAQgY,EAAar6D,OAAOqiD,GAE5BkY,GAAc,EAEdlY,EAAM9tD,QACNkmE,KAIR,SAASA,IACL,IAAIH,EAAJ,CAGA,IAAII,EAAUP,EAAWK,GACzBF,GAAW,EAGX,IADA,IAAItkE,EAAMqsD,EAAM9tD,OACVyB,GAAK,CAGP,IAFAqkE,EAAehY,EACfA,EAAQ,KACCkY,EAAavkE,GACdqkE,GACAA,EAAaE,GAAYI,MAGjCJ,GAAc,EACdvkE,EAAMqsD,EAAM9tD,OAEhB8lE,EAAe,KACfC,GAAW,EAnEf,SAAyBM,GACrB,GAAIZ,IAAuB9iB,aAEvB,OAAOA,aAAa0jB,GAGxB,IAAKZ,IAAuBE,IAAwBF,IAAuB9iB,aAEvE,OADA8iB,EAAqB9iB,aACdA,aAAa0jB,GAExB,IAEWZ,EAAmBY,GAC5B,MAAOl+D,GACL,IAEI,OAAOs9D,EAAmB3kE,KAAK,KAAMulE,GACvC,MAAOl+D,GAGL,OAAOs9D,EAAmB3kE,KAAKqB,KAAMkkE,KAgD7CC,CAAgBH,IAiBpB,SAAS11D,EAAKo1D,EAAKnjE,GACfP,KAAK0jE,IAAMA,EACX1jE,KAAKO,MAAQA,EAYjB,SAAS6jE,KA5BT9xC,EAAQ+xC,SAAW,SAAUX,GACzB,IAAIx+D,EAAO,IAAItI,MAAM4F,UAAU3E,OAAS,GACxC,GAAI2E,UAAU3E,OAAS,EACnB,IAAK,IAAId,EAAI,EAAGA,EAAIyF,UAAU3E,OAAQd,IAClCmI,EAAKnI,EAAI,GAAKyF,UAAUzF,GAGhC4uD,EAAMhuD,KAAK,IAAI2Q,EAAKo1D,EAAKx+D,IACJ,IAAjBymD,EAAM9tD,QAAiB+lE,GACvBH,EAAWM,IASnBz1D,EAAK7P,UAAUwlE,IAAM,WACjBjkE,KAAK0jE,IAAIv+D,MAAM,KAAMnF,KAAKO,QAE9B+xB,EAAQgyC,MAAQ,UAChBhyC,EAAQiyC,SAAU,EAClBjyC,EAAQkyC,IAAM,GACdlyC,EAAQmyC,KAAO,GACfnyC,EAAQuM,QAAU,GAClBvM,EAAQoyC,SAAW,GAInBpyC,EAAQqyC,GAAKP,EACb9xC,EAAQsyC,YAAcR,EACtB9xC,EAAQuyC,KAAOT,EACf9xC,EAAQwyC,IAAMV,EACd9xC,EAAQyyC,eAAiBX,EACzB9xC,EAAQ0yC,mBAAqBZ,EAC7B9xC,EAAQ2yC,KAAOb,EACf9xC,EAAQ4yC,gBAAkBd,EAC1B9xC,EAAQ6yC,oBAAsBf,EAE9B9xC,EAAQ8oB,UAAY,SAAUt8C,GAAQ,MAAO,IAE7CwzB,EAAQ8yC,QAAU,SAAUtmE,GACxB,MAAM,IAAIw3B,MAAM,qCAGpBhE,EAAQ+yC,IAAM,WAAc,MAAO,KACnC/yC,EAAQgzC,MAAQ,SAAUC,GACtB,MAAM,IAAIjvC,MAAM,mCAEpBhE,EAAQkzC,MAAQ,WAAa,OAAO,I,6BC9KpC,IAAIC,EAAuBrpE,EAAQ,IAEnC,SAASspE,KACT,SAASC,KACTA,EAAuBC,kBAAoBF,EAE3CxpE,EAAOC,QAAU,WACf,SAAS0pE,EAAKn5D,EAAOypB,EAAUC,EAAe2hB,EAAU+tB,EAAcC,GACpE,GAAIA,IAAWN,EAAf,CAIA,IAAI3nE,EAAM,IAAIw4B,MACZ,mLAKF,MADAx4B,EAAIgB,KAAO,sBACLhB,GAGR,SAASkoE,IACP,OAAOH,EAFTA,EAAK55D,WAAa45D,EAMlB,IAAII,EAAiB,CACnB1lE,MAAOslE,EACP15D,KAAM05D,EACN9/D,KAAM8/D,EACN5vC,OAAQ4vC,EACR1nE,OAAQ0nE,EACR75D,OAAQ65D,EACRK,OAAQL,EAERM,IAAKN,EACL3vC,QAAS8vC,EACT37D,QAASw7D,EACTnd,YAAamd,EACbO,WAAYJ,EACZvwC,KAAMowC,EACNQ,SAAUL,EACVM,MAAON,EACPj6D,UAAWi6D,EACXO,MAAOP,EACPQ,MAAOR,EAEPS,eAAgBd,EAChBC,kBAAmBF,GAKrB,OAFAO,EAAeS,UAAYT,EAEpBA,I,6BCnDT/pE,EAAOC,QAFoB,gD,gBCFoCD,EAAOC,QAG7D,SAAUwqE,GAAU,aAI7B,SAASC,EAAqB3hE,EAAI/I,GACjC,OAAiC+I,EAA1B/I,EAAS,CAAEC,QAAS,IAAiBD,EAAOC,SAAUD,EAAOC,QAGrE,SAAS0qE,EAA2BroE,GACnC,OAAOA,GAAKA,EAAC,SAAeA,EAP7BmoE,EAASA,GAAUA,EAAO1lE,eAAe,WAAa0lE,EAAM,QAAcA,EAU1E,IAAIG,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,EAAcH,GAAqB,SAAU1qE,GAQjD,IAAI8qE,EAAkB,GACtB,IAAK,IAAI5oE,KAAO0oE,EACXA,EAAU7lE,eAAe7C,KAC5B4oE,EAAgBF,EAAU1oE,IAAQA,GAIpC,IAAI6oE,EAAU/qE,EAAOC,QAAU,CAC9B+qE,IAAK,CAACC,SAAU,EAAGC,OAAQ,OAC3BC,IAAK,CAACF,SAAU,EAAGC,OAAQ,OAC3BE,IAAK,CAACH,SAAU,EAAGC,OAAQ,OAC3BG,IAAK,CAACJ,SAAU,EAAGC,OAAQ,OAC3BI,KAAM,CAACL,SAAU,EAAGC,OAAQ,QAC5BK,IAAK,CAACN,SAAU,EAAGC,OAAQ,OAC3BM,IAAK,CAACP,SAAU,EAAGC,OAAQ,OAC3BO,IAAK,CAACR,SAAU,EAAGC,OAAQ,OAC3BQ,IAAK,CAACT,SAAU,EAAGC,OAAQ,CAAC,QAC5BS,QAAS,CAACV,SAAU,EAAGC,OAAQ,CAAC,YAChCU,OAAQ,CAACX,SAAU,EAAGC,OAAQ,CAAC,WAC/BW,QAAS,CAACZ,SAAU,EAAGC,OAAQ,CAAC,YAChCY,IAAK,CAACb,SAAU,EAAGC,OAAQ,CAAC,IAAK,IAAK,MACtCa,MAAO,CAACd,SAAU,EAAGC,OAAQ,CAAC,MAAO,MAAO,QAC5Cc,KAAM,CAACf,SAAU,EAAGC,OAAQ,CAAC,UAI9B,IAAK,IAAIe,KAASlB,EACjB,GAAIA,EAAQhmE,eAAeknE,GAAQ,CAClC,KAAM,aAAclB,EAAQkB,IAC3B,MAAM,IAAI7xC,MAAM,8BAAgC6xC,GAGjD,KAAM,WAAYlB,EAAQkB,IACzB,MAAM,IAAI7xC,MAAM,oCAAsC6xC,GAGvD,GAAIlB,EAAQkB,GAAOf,OAAOvpE,SAAWopE,EAAQkB,GAAOhB,SACnD,MAAM,IAAI7wC,MAAM,sCAAwC6xC,GAGzD,IAAIhB,EAAWF,EAAQkB,GAAOhB,SAC1BC,EAASH,EAAQkB,GAAOf,cACrBH,EAAQkB,GAAOhB,gBACfF,EAAQkB,GAAOf,OACtB5qE,OAAOqG,eAAeokE,EAAQkB,GAAQ,WAAY,CAACvqE,MAAOupE,IAC1D3qE,OAAOqG,eAAeokE,EAAQkB,GAAQ,SAAU,CAACvqE,MAAOwpE,IAyH1D,SAASgB,EAAoBpyD,EAAG4lB,GAC/B,OACC3lB,KAAKC,IAAIF,EAAE,GAAK4lB,EAAE,GAAI,GACtB3lB,KAAKC,IAAIF,EAAE,GAAK4lB,EAAE,GAAI,GACtB3lB,KAAKC,IAAIF,EAAE,GAAK4lB,EAAE,GAAI,GAzHxBqrC,EAAQC,IAAIG,IAAM,SAAUH,GAC3B,IAMIjsC,EAEAl4B,EARAm2B,EAAIguC,EAAI,GAAK,IACbhsC,EAAIgsC,EAAI,GAAK,IACb99D,EAAI89D,EAAI,GAAK,IACb3qD,EAAMtG,KAAKsG,IAAI2c,EAAGgC,EAAG9xB,GACrBwO,EAAM3B,KAAK2B,IAAIshB,EAAGgC,EAAG9xB,GACrBi/D,EAAQzwD,EAAM2E,EA+BlB,OA1BI3E,IAAQ2E,EACX0e,EAAI,EACM/B,IAAMthB,EAChBqjB,GAAKC,EAAI9xB,GAAKi/D,EACJntC,IAAMtjB,EAChBqjB,EAAI,GAAK7xB,EAAI8vB,GAAKmvC,EACRj/D,IAAMwO,IAChBqjB,EAAI,GAAK/B,EAAIgC,GAAKmtC,IAGnBptC,EAAIhlB,KAAKsG,IAAQ,GAAJ0e,EAAQ,MAEb,IACPA,GAAK,KAGNl4B,GAAKwZ,EAAM3E,GAAO,EAUX,CAACqjB,EAAO,KARXrjB,IAAQ2E,EACP,EACMxZ,GAAK,GACXslE,GAASzwD,EAAM2E,GAEf8rD,GAAS,EAAIzwD,EAAM2E,IAGA,IAAJxZ,IAGrBkkE,EAAQC,IAAII,IAAM,SAAUJ,GAC3B,IAAIoB,EACAC,EACAC,EACAvtC,EACA14B,EAEA22B,EAAIguC,EAAI,GAAK,IACbhsC,EAAIgsC,EAAI,GAAK,IACb99D,EAAI89D,EAAI,GAAK,IACbt2D,EAAIqF,KAAK2B,IAAIshB,EAAGgC,EAAG9xB,GACnBq/D,EAAO73D,EAAIqF,KAAKsG,IAAI2c,EAAGgC,EAAG9xB,GAC1Bs/D,EAAQ,SAAUjvC,GACrB,OAAQ7oB,EAAI6oB,GAAK,EAAIgvC,EAAO,IAyB7B,OAtBa,IAATA,EACHxtC,EAAI14B,EAAI,GAERA,EAAIkmE,EAAO73D,EACX03D,EAAOI,EAAMxvC,GACbqvC,EAAOG,EAAMxtC,GACbstC,EAAOE,EAAMt/D,GAET8vB,IAAMtoB,EACTqqB,EAAIutC,EAAOD,EACDrtC,IAAMtqB,EAChBqqB,EAAK,EAAI,EAAKqtC,EAAOE,EACXp/D,IAAMwH,IAChBqqB,EAAK,EAAI,EAAKstC,EAAOD,GAElBrtC,EAAI,EACPA,GAAK,EACKA,EAAI,IACdA,GAAK,IAIA,CACF,IAAJA,EACI,IAAJ14B,EACI,IAAJqO,IAIFq2D,EAAQC,IAAIK,IAAM,SAAUL,GAC3B,IAAIhuC,EAAIguC,EAAI,GACRhsC,EAAIgsC,EAAI,GACR99D,EAAI89D,EAAI,GAMZ,MAAO,CALCD,EAAQC,IAAIG,IAAIH,GAAK,GACrB,EAAI,IAAMjxD,KAAKsG,IAAI2c,EAAGjjB,KAAKsG,IAAI2e,EAAG9xB,IAI3B,IAAS,KAFxBA,EAAI,EAAI,EAAI,IAAM6M,KAAK2B,IAAIshB,EAAGjjB,KAAK2B,IAAIsjB,EAAG9xB,OAK3C69D,EAAQC,IAAIM,KAAO,SAAUN,GAC5B,IAMIpqD,EANAoc,EAAIguC,EAAI,GAAK,IACbhsC,EAAIgsC,EAAI,GAAK,IACb99D,EAAI89D,EAAI,GAAK,IAWjB,MAAO,CAAK,MAJP,EAAIhuC,GADTpc,EAAI7G,KAAKsG,IAAI,EAAI2c,EAAG,EAAIgC,EAAG,EAAI9xB,MACZ,EAAI0T,IAAM,GAIR,MAHhB,EAAIoe,EAAIpe,IAAM,EAAIA,IAAM,GAGC,MAFzB,EAAI1T,EAAI0T,IAAM,EAAIA,IAAM,GAEU,IAAJA,IAcpCmqD,EAAQC,IAAIW,QAAU,SAAUX,GAC/B,IAAIyB,EAAW3B,EAAgBE,GAC/B,GAAIyB,EACH,OAAOA,EAGR,IACIC,EADAC,EAAyBt5D,IAG7B,IAAK,IAAIs4D,KAAWf,EACnB,GAAIA,EAAU7lE,eAAe4mE,GAAU,CACtC,IAGIiB,EAAWV,EAAoBlB,EAHvBJ,EAAUe,IAMlBiB,EAAWD,IACdA,EAAyBC,EACzBF,EAAwBf,GAK3B,OAAOe,GAGR3B,EAAQY,QAAQX,IAAM,SAAUW,GAC/B,OAAOf,EAAUe,IAGlBZ,EAAQC,IAAIO,IAAM,SAAUP,GAC3B,IAAIhuC,EAAIguC,EAAI,GAAK,IACbhsC,EAAIgsC,EAAI,GAAK,IACb99D,EAAI89D,EAAI,GAAK,IAWjB,MAAO,CAAK,KAJC,OAJbhuC,EAAIA,EAAI,OAAUjjB,KAAKC,KAAMgjB,EAAI,MAAS,MAAQ,KAAQA,EAAI,OAIlC,OAH5BgC,EAAIA,EAAI,OAAUjlB,KAAKC,KAAMglB,EAAI,MAAS,MAAQ,KAAQA,EAAI,OAGnB,OAF3C9xB,EAAIA,EAAI,OAAU6M,KAAKC,KAAM9M,EAAI,MAAS,MAAQ,KAAQA,EAAI,QAMzC,KAHR,MAAJ8vB,EAAmB,MAAJgC,EAAmB,MAAJ9xB,GAGT,KAFjB,MAAJ8vB,EAAmB,MAAJgC,EAAmB,MAAJ9xB,KAKxC69D,EAAQC,IAAIQ,IAAM,SAAUR,GAC3B,IAAIO,EAAMR,EAAQC,IAAIO,IAAIP,GACtBlxD,EAAIyxD,EAAI,GACR7rC,EAAI6rC,EAAI,GACRjuC,EAAIiuC,EAAI,GAiBZ,OAXA7rC,GAAK,IACLpC,GAAK,QAELxjB,GAJAA,GAAK,QAIG,QAAWC,KAAKC,IAAIF,EAAG,EAAI,GAAM,MAAQA,EAAM,GAAK,IAQrD,CAJF,KAHL4lB,EAAIA,EAAI,QAAW3lB,KAAKC,IAAI0lB,EAAG,EAAI,GAAM,MAAQA,EAAM,GAAK,KAG5C,GACZ,KAAO5lB,EAAI4lB,GACX,KAAOA,GAJXpC,EAAIA,EAAI,QAAWvjB,KAAKC,IAAIsjB,EAAG,EAAI,GAAM,MAAQA,EAAM,GAAK,QAS7DytC,EAAQI,IAAIH,IAAM,SAAUG,GAC3B,IAGI0B,EACAC,EACAC,EACA/B,EACA7lE,EAPA45B,EAAIosC,EAAI,GAAK,IACb9kE,EAAI8kE,EAAI,GAAK,IACbtkE,EAAIskE,EAAI,GAAK,IAOjB,GAAU,IAAN9kE,EAEH,MAAO,CADPlB,EAAU,IAAJ0B,EACO1B,EAAKA,GASnB0nE,EAAK,EAAIhmE,GALRimE,EADGjmE,EAAI,GACFA,GAAK,EAAIR,GAETQ,EAAIR,EAAIQ,EAAIR,GAKlB2kE,EAAM,CAAC,EAAG,EAAG,GACb,IAAK,IAAInqE,EAAI,EAAGA,EAAI,EAAGA,KACtBksE,EAAKhuC,EAAI,EAAI,IAAMl+B,EAAI,IACd,GACRksE,IAEGA,EAAK,GACRA,IAIA5nE,EADG,EAAI4nE,EAAK,EACNF,EAAiB,GAAXC,EAAKD,GAAUE,EACjB,EAAIA,EAAK,EACbD,EACI,EAAIC,EAAK,EACbF,GAAMC,EAAKD,IAAO,EAAI,EAAIE,GAAM,EAEhCF,EAGP7B,EAAInqE,GAAW,IAANsE,EAGV,OAAO6lE,GAGRD,EAAQI,IAAIC,IAAM,SAAUD,GAC3B,IAAIpsC,EAAIosC,EAAI,GACR9kE,EAAI8kE,EAAI,GAAK,IACbtkE,EAAIskE,EAAI,GAAK,IACb6B,EAAO3mE,EACP4mE,EAAOlzD,KAAK2B,IAAI7U,EAAG,KAUvB,OALAR,IADAQ,GAAK,IACM,EAAKA,EAAI,EAAIA,EACxBmmE,GAAQC,GAAQ,EAAIA,EAAO,EAAIA,EAIxB,CAACluC,EAAQ,KAFL,IAANl4B,EAAW,EAAImmE,GAASC,EAAOD,GAAS,EAAI3mE,GAAMQ,EAAIR,KADtDQ,EAAIR,GAAK,EAGW,MAG1B0kE,EAAQK,IAAIJ,IAAM,SAAUI,GAC3B,IAAIrsC,EAAIqsC,EAAI,GAAK,GACb/kE,EAAI+kE,EAAI,GAAK,IACb12D,EAAI02D,EAAI,GAAK,IACb3Y,EAAK14C,KAAK8mD,MAAM9hC,GAAK,EAErBzlB,EAAIylB,EAAIhlB,KAAK8mD,MAAM9hC,GACnB/wB,EAAI,IAAM0G,GAAK,EAAIrO,GACnB02B,EAAI,IAAMroB,GAAK,EAAKrO,EAAIiT,GACxB2jB,EAAI,IAAMvoB,GAAK,EAAKrO,GAAK,EAAIiT,IAGjC,OAFA5E,GAAK,IAEG+9C,GACP,KAAK,EACJ,MAAO,CAAC/9C,EAAGuoB,EAAGjvB,GACf,KAAK,EACJ,MAAO,CAAC+uB,EAAGroB,EAAG1G,GACf,KAAK,EACJ,MAAO,CAACA,EAAG0G,EAAGuoB,GACf,KAAK,EACJ,MAAO,CAACjvB,EAAG+uB,EAAGroB,GACf,KAAK,EACJ,MAAO,CAACuoB,EAAGjvB,EAAG0G,GACf,KAAK,EACJ,MAAO,CAACA,EAAG1G,EAAG+uB,KAIjBguC,EAAQK,IAAID,IAAM,SAAUC,GAC3B,IAII6B,EACAC,EACArmE,EANAk4B,EAAIqsC,EAAI,GACR/kE,EAAI+kE,EAAI,GAAK,IACb12D,EAAI02D,EAAI,GAAK,IACb+B,EAAOpzD,KAAK2B,IAAIhH,EAAG,KAYvB,OAPA7N,GAAK,EAAIR,GAAKqO,EAEdw4D,EAAK7mE,EAAI8mE,EAKF,CAACpuC,EAAQ,KAHhBmuC,GADAA,IAFAD,GAAQ,EAAI5mE,GAAK8mE,IAEF,EAAKF,EAAO,EAAIA,IACpB,GAGc,KAFzBpmE,GAAK,KAMNkkE,EAAQM,IAAIL,IAAM,SAAUK,GAC3B,IAIIxqE,EACA6T,EACA4E,EACAhX,EAkBA06B,EACAgC,EACA9xB,EA3BA6xB,EAAIssC,EAAI,GAAK,IACbzc,EAAKyc,EAAI,GAAK,IACd+B,EAAK/B,EAAI,GAAK,IACdgC,EAAQze,EAAKwe,EAyBjB,OAlBIC,EAAQ,IACXze,GAAMye,EACND,GAAMC,GAKP/zD,EAAI,EAAIylB,GAFRl+B,EAAIkZ,KAAK8mD,MAAM,EAAI9hC,IAIA,KAAV,EAAJl+B,KACJyY,EAAI,EAAIA,GAGThX,EAAIssD,EAAKt1C,IAPT5E,EAAI,EAAI04D,GAOUxe,GAKV/tD,GACP,QACA,KAAK,EACL,KAAK,EAAGm8B,EAAItoB,EAAGsqB,EAAI18B,EAAG4K,EAAI0hD,EAAI,MAC9B,KAAK,EAAG5xB,EAAI16B,EAAG08B,EAAItqB,EAAGxH,EAAI0hD,EAAI,MAC9B,KAAK,EAAG5xB,EAAI4xB,EAAI5vB,EAAItqB,EAAGxH,EAAI5K,EAAG,MAC9B,KAAK,EAAG06B,EAAI4xB,EAAI5vB,EAAI18B,EAAG4K,EAAIwH,EAAG,MAC9B,KAAK,EAAGsoB,EAAI16B,EAAG08B,EAAI4vB,EAAI1hD,EAAIwH,EAAG,MAC9B,KAAK,EAAGsoB,EAAItoB,EAAGsqB,EAAI4vB,EAAI1hD,EAAI5K,EAG5B,MAAO,CAAK,IAAJ06B,EAAa,IAAJgC,EAAa,IAAJ9xB,IAG3B69D,EAAQO,KAAKN,IAAM,SAAUM,GAC5B,IAAI/tC,EAAI+tC,EAAK,GAAK,IACdrsC,EAAIqsC,EAAK,GAAK,IACd5rC,EAAI4rC,EAAK,GAAK,IACd1qD,EAAI0qD,EAAK,GAAK,IASlB,MAAO,CAAK,KAJR,EAAIvxD,KAAKsG,IAAI,EAAGkd,GAAK,EAAI3c,GAAKA,IAIb,KAHjB,EAAI7G,KAAKsG,IAAI,EAAG4e,GAAK,EAAIre,GAAKA,IAGJ,KAF1B,EAAI7G,KAAKsG,IAAI,EAAGqf,GAAK,EAAI9e,GAAKA,MAKnCmqD,EAAQQ,IAAIP,IAAM,SAAUO,GAC3B,IAGIvuC,EACAgC,EACA9xB,EALA4M,EAAIyxD,EAAI,GAAK,IACb7rC,EAAI6rC,EAAI,GAAK,IACbjuC,EAAIiuC,EAAI,GAAK,IA0BjB,OApBAvsC,GAAU,MAALllB,EAAoB,OAAJ4lB,EAAmB,MAAJpC,EACpCpwB,EAAS,MAAJ4M,GAAoB,KAAL4lB,EAAoB,MAAJpC,EAGpCN,GALAA,EAAS,OAAJljB,GAAoB,OAAL4lB,GAAqB,MAALpC,GAK5B,SACH,MAAQvjB,KAAKC,IAAIgjB,EAAG,EAAM,KAAQ,KAChC,MAAJA,EAEHgC,EAAIA,EAAI,SACH,MAAQjlB,KAAKC,IAAIglB,EAAG,EAAM,KAAQ,KAChC,MAAJA,EAEH9xB,EAAIA,EAAI,SACH,MAAQ6M,KAAKC,IAAI9M,EAAG,EAAM,KAAQ,KAChC,MAAJA,EAMI,CAAK,KAJZ8vB,EAAIjjB,KAAKsG,IAAItG,KAAK2B,IAAI,EAAGshB,GAAI,IAIR,KAHrBgC,EAAIjlB,KAAKsG,IAAItG,KAAK2B,IAAI,EAAGsjB,GAAI,IAGC,KAF9B9xB,EAAI6M,KAAKsG,IAAItG,KAAK2B,IAAI,EAAGxO,GAAI,MAK9B69D,EAAQQ,IAAIC,IAAM,SAAUD,GAC3B,IAAIzxD,EAAIyxD,EAAI,GACR7rC,EAAI6rC,EAAI,GACRjuC,EAAIiuC,EAAI,GAiBZ,OAXA7rC,GAAK,IACLpC,GAAK,QAELxjB,GAJAA,GAAK,QAIG,QAAWC,KAAKC,IAAIF,EAAG,EAAI,GAAM,MAAQA,EAAM,GAAK,IAQrD,CAJF,KAHL4lB,EAAIA,EAAI,QAAW3lB,KAAKC,IAAI0lB,EAAG,EAAI,GAAM,MAAQA,EAAM,GAAK,KAG5C,GACZ,KAAO5lB,EAAI4lB,GACX,KAAOA,GAJXpC,EAAIA,EAAI,QAAWvjB,KAAKC,IAAIsjB,EAAG,EAAI,GAAM,MAAQA,EAAM,GAAK,QAS7DytC,EAAQS,IAAID,IAAM,SAAUC,GAC3B,IAGI1xD,EACA4lB,EACApC,EALAz2B,EAAI2kE,EAAI,GAQZ1xD,EAPQ0xD,EAAI,GAOJ,KADR9rC,GAAK74B,EAAI,IAAM,KAEfy2B,EAAIoC,EAPI8rC,EAAI,GAOA,IAEZ,IAAI8B,EAAKvzD,KAAKC,IAAI0lB,EAAG,GACjB6tC,EAAKxzD,KAAKC,IAAIF,EAAG,GACjB0zD,EAAKzzD,KAAKC,IAAIsjB,EAAG,GASrB,OARAoC,EAAI4tC,EAAK,QAAWA,GAAM5tC,EAAI,GAAK,KAAO,MAC1C5lB,EAAIyzD,EAAK,QAAWA,GAAMzzD,EAAI,GAAK,KAAO,MAC1CwjB,EAAIkwC,EAAK,QAAWA,GAAMlwC,EAAI,GAAK,KAAO,MAMnC,CAJPxjB,GAAK,OACL4lB,GAAK,IACLpC,GAAK,UAKNytC,EAAQS,IAAIC,IAAM,SAAUD,GAC3B,IAIIzsC,EAJAl4B,EAAI2kE,EAAI,GACRv+D,EAAIu+D,EAAI,GACRt+D,EAAIs+D,EAAI,GAcZ,OARAzsC,EAAS,IADJhlB,KAAK0zD,MAAMvgE,EAAGD,GACJ,EAAI8M,KAAK2zD,IAEhB,IACP3uC,GAAK,KAKC,CAACl4B,EAFJkT,KAAKG,KAAKjN,EAAIA,EAAIC,EAAIA,GAEZ6xB,IAGfgsC,EAAQU,IAAID,IAAM,SAAUC,GAC3B,IAKIp+B,EALAxmC,EAAI4kE,EAAI,GACRluC,EAAIkuC,EAAI,GAUZ,OAJAp+B,EALQo+B,EAAI,GAKH,IAAM,EAAI1xD,KAAK2zD,GAIjB,CAAC7mE,EAHJ02B,EAAIxjB,KAAK4zD,IAAItgC,GACb9P,EAAIxjB,KAAK6zD,IAAIvgC,KAKlB09B,EAAQC,IAAIY,OAAS,SAAU5iE,GAC9B,IAAIg0B,EAAIh0B,EAAK,GACTg2B,EAAIh2B,EAAK,GACTkE,EAAIlE,EAAK,GACTtH,EAAQ,KAAK4E,UAAYA,UAAU,GAAKykE,EAAQC,IAAII,IAAIpiE,GAAM,GAIlE,GAAc,KAFdtH,EAAQqY,KAAKuH,MAAM5f,EAAQ,KAG1B,OAAO,GAGR,IAAImsE,EAAO,IACN9zD,KAAKuH,MAAMpU,EAAI,MAAQ,EACxB6M,KAAKuH,MAAM0d,EAAI,MAAQ,EACxBjlB,KAAKuH,MAAM0b,EAAI,MAMlB,OAJc,IAAVt7B,IACHmsE,GAAQ,IAGFA,GAGR9C,EAAQK,IAAIQ,OAAS,SAAU5iE,GAG9B,OAAO+hE,EAAQC,IAAIY,OAAOb,EAAQK,IAAIJ,IAAIhiE,GAAOA,EAAK,KAGvD+hE,EAAQC,IAAIa,QAAU,SAAU7iE,GAC/B,IAAIg0B,EAAIh0B,EAAK,GACTg2B,EAAIh2B,EAAK,GACTkE,EAAIlE,EAAK,GAIb,OAAIg0B,IAAMgC,GAAKA,IAAM9xB,EAChB8vB,EAAI,EACA,GAGJA,EAAI,IACA,IAGDjjB,KAAKuH,OAAQ0b,EAAI,GAAK,IAAO,IAAM,IAGhC,GACP,GAAKjjB,KAAKuH,MAAM0b,EAAI,IAAM,GAC1B,EAAIjjB,KAAKuH,MAAM0d,EAAI,IAAM,GAC1BjlB,KAAKuH,MAAMpU,EAAI,IAAM,IAKzB69D,EAAQa,OAAOZ,IAAM,SAAUhiE,GAC9B,IAAIk1C,EAAQl1C,EAAO,GAGnB,GAAc,IAAVk1C,GAAyB,IAAVA,EAOlB,OANIl1C,EAAO,KACVk1C,GAAS,KAKH,CAFPA,EAAQA,EAAQ,KAAO,IAERA,EAAOA,GAGvB,IAAI4vB,EAA6B,IAAL,KAAb9kE,EAAO,KAKtB,MAAO,EAJW,EAARk1C,GAAa4vB,EAAQ,KACpB5vB,GAAS,EAAK,GAAK4vB,EAAQ,KAC3B5vB,GAAS,EAAK,GAAK4vB,EAAQ,MAKvC/C,EAAQc,QAAQb,IAAM,SAAUhiE,GAE/B,GAAIA,GAAQ,IAAK,CAChB,IAAIu0B,EAAmB,IAAdv0B,EAAO,KAAY,EAC5B,MAAO,CAACu0B,EAAGA,EAAGA,GAKf,IAAIwwC,EAKJ,OAPA/kE,GAAQ,GAOD,CAJC+Q,KAAK8mD,MAAM73D,EAAO,IAAM,EAAI,IAC5B+Q,KAAK8mD,OAAOkN,EAAM/kE,EAAO,IAAM,GAAK,EAAI,IACvC+kE,EAAM,EAAK,EAAI,MAKzBhD,EAAQC,IAAIU,IAAM,SAAU1iE,GAC3B,IAII8G,KAJkC,IAAtBiK,KAAKuH,MAAMtY,EAAK,MAAe,MACpB,IAAtB+Q,KAAKuH,MAAMtY,EAAK,MAAe,IACV,IAAtB+Q,KAAKuH,MAAMtY,EAAK,MAECxG,SAAS,IAAIyhC,cAClC,MAAO,SAAS6I,UAAUh9B,EAAOnO,QAAUmO,GAG5Ci7D,EAAQW,IAAIV,IAAM,SAAUhiE,GAC3B,IAAIg9B,EAAQh9B,EAAKxG,SAAS,IAAIwjC,MAAM,4BACpC,IAAKA,EACJ,MAAO,CAAC,EAAG,EAAG,GAGf,IAAIgoC,EAAchoC,EAAM,GAEA,IAApBA,EAAM,GAAGrkC,SACZqsE,EAAcA,EAAYpoE,MAAM,IAAInB,KAAI,SAAUk/C,GACjD,OAAOA,EAAOA,KACZj+C,KAAK,KAGT,IAAIuoE,EAAUC,SAASF,EAAa,IAKpC,MAAO,CAJEC,GAAW,GAAM,IACjBA,GAAW,EAAK,IACP,IAAVA,IAKTlD,EAAQC,IAAIc,IAAM,SAAUd,GAC3B,IAOImD,EAPAnxC,EAAIguC,EAAI,GAAK,IACbhsC,EAAIgsC,EAAI,GAAK,IACb99D,EAAI89D,EAAI,GAAK,IACbtvD,EAAM3B,KAAK2B,IAAI3B,KAAK2B,IAAIshB,EAAGgC,GAAI9xB,GAC/BmT,EAAMtG,KAAKsG,IAAItG,KAAKsG,IAAI2c,EAAGgC,GAAI9xB,GAC/BkhE,EAAU1yD,EAAM2E,EAyBpB,OAdC8tD,EADGC,GAAU,EACP,EAEH1yD,IAAQshB,GACHgC,EAAI9xB,GAAKkhE,EAAU,EAExB1yD,IAAQsjB,EACL,GAAK9xB,EAAI8vB,GAAKoxC,EAEd,GAAKpxC,EAAIgC,GAAKovC,EAAS,EAG9BD,GAAO,EAGA,CAAO,KAFdA,GAAO,GAEqB,IAATC,EAA0B,KArBzCA,EAAS,EACA/tD,GAAO,EAAI+tD,GAEX,KAqBdrD,EAAQI,IAAIW,IAAM,SAAUX,GAC3B,IAAI9kE,EAAI8kE,EAAI,GAAK,IACbtkE,EAAIskE,EAAI,GAAK,IACb5tC,EAAI,EACJjkB,EAAI,EAYR,OATCikB,EADG12B,EAAI,GACH,EAAMR,EAAIQ,EAEV,EAAMR,GAAK,EAAMQ,IAGd,IACPyS,GAAKzS,EAAI,GAAM02B,IAAM,EAAMA,IAGrB,CAAC4tC,EAAI,GAAQ,IAAJ5tC,EAAa,IAAJjkB,IAG1ByxD,EAAQK,IAAIU,IAAM,SAAUV,GAC3B,IAAI/kE,EAAI+kE,EAAI,GAAK,IACb12D,EAAI02D,EAAI,GAAK,IAEb7tC,EAAIl3B,EAAIqO,EACR4E,EAAI,EAMR,OAJIikB,EAAI,IACPjkB,GAAK5E,EAAI6oB,IAAM,EAAIA,IAGb,CAAC6tC,EAAI,GAAQ,IAAJ7tC,EAAa,IAAJjkB,IAG1ByxD,EAAQe,IAAId,IAAM,SAAUc,GAC3B,IAAI/sC,EAAI+sC,EAAI,GAAK,IACbvuC,EAAIuuC,EAAI,GAAK,IACb9sC,EAAI8sC,EAAI,GAAK,IAEjB,GAAU,IAANvuC,EACH,MAAO,CAAK,IAAJyB,EAAa,IAAJA,EAAa,IAAJA,GAG3B,IAAIqvC,EAAO,CAAC,EAAG,EAAG,GACd5b,EAAM1zB,EAAI,EAAK,EACfrqB,EAAI+9C,EAAK,EACTp1B,EAAI,EAAI3oB,EACR2zC,EAAK,EAET,OAAQtuC,KAAK8mD,MAAMpO,IAClB,KAAK,EACJ4b,EAAK,GAAK,EAAGA,EAAK,GAAK35D,EAAG25D,EAAK,GAAK,EAAG,MACxC,KAAK,EACJA,EAAK,GAAKhxC,EAAGgxC,EAAK,GAAK,EAAGA,EAAK,GAAK,EAAG,MACxC,KAAK,EACJA,EAAK,GAAK,EAAGA,EAAK,GAAK,EAAGA,EAAK,GAAK35D,EAAG,MACxC,KAAK,EACJ25D,EAAK,GAAK,EAAGA,EAAK,GAAKhxC,EAAGgxC,EAAK,GAAK,EAAG,MACxC,KAAK,EACJA,EAAK,GAAK35D,EAAG25D,EAAK,GAAK,EAAGA,EAAK,GAAK,EAAG,MACxC,QACCA,EAAK,GAAK,EAAGA,EAAK,GAAK,EAAGA,EAAK,GAAKhxC,EAKtC,OAFAgrB,GAAM,EAAM9qB,GAAKyB,EAEV,CACe,KAApBzB,EAAI8wC,EAAK,GAAKhmB,GACM,KAApB9qB,EAAI8wC,EAAK,GAAKhmB,GACM,KAApB9qB,EAAI8wC,EAAK,GAAKhmB,KAIjB0iB,EAAQe,IAAIV,IAAM,SAAUU,GAC3B,IAAIvuC,EAAIuuC,EAAI,GAAK,IAGbp3D,EAAI6oB,EAFAuuC,EAAI,GAAK,KAEA,EAAMvuC,GACnBjkB,EAAI,EAMR,OAJI5E,EAAI,IACP4E,EAAIikB,EAAI7oB,GAGF,CAACo3D,EAAI,GAAQ,IAAJxyD,EAAa,IAAJ5E,IAG1Bq2D,EAAQe,IAAIX,IAAM,SAAUW,GAC3B,IAAIvuC,EAAIuuC,EAAI,GAAK,IAGbjlE,EAFIilE,EAAI,GAAK,KAEJ,EAAMvuC,GAAK,GAAMA,EAC1Bl3B,EAAI,EASR,OAPIQ,EAAI,GAAOA,EAAI,GAClBR,EAAIk3B,GAAK,EAAI12B,GAEVA,GAAK,IAAOA,EAAI,IACnBR,EAAIk3B,GAAK,GAAK,EAAI12B,KAGZ,CAACilE,EAAI,GAAQ,IAAJzlE,EAAa,IAAJQ,IAG1BkkE,EAAQe,IAAIT,IAAM,SAAUS,GAC3B,IAAIvuC,EAAIuuC,EAAI,GAAK,IAEbp3D,EAAI6oB,EADAuuC,EAAI,GAAK,KACA,EAAMvuC,GACvB,MAAO,CAACuuC,EAAI,GAAc,KAATp3D,EAAI6oB,GAAoB,KAAT,EAAI7oB,KAGrCq2D,EAAQM,IAAIS,IAAM,SAAUT,GAC3B,IAAIhuC,EAAIguC,EAAI,GAAK,IAEb32D,EAAI,EADA22D,EAAI,GAAK,IAEb9tC,EAAI7oB,EAAI2oB,EACR2B,EAAI,EAMR,OAJIzB,EAAI,IACPyB,GAAKtqB,EAAI6oB,IAAM,EAAIA,IAGb,CAAC8tC,EAAI,GAAQ,IAAJ9tC,EAAa,IAAJyB,IAG1B+rC,EAAQgB,MAAMf,IAAM,SAAUe,GAC7B,MAAO,CAAEA,EAAM,GAAK,MAAS,IAAMA,EAAM,GAAK,MAAS,IAAMA,EAAM,GAAK,MAAS,MAGlFhB,EAAQC,IAAIe,MAAQ,SAAUf,GAC7B,MAAO,CAAEA,EAAI,GAAK,IAAO,MAAQA,EAAI,GAAK,IAAO,MAAQA,EAAI,GAAK,IAAO,QAG1ED,EAAQiB,KAAKhB,IAAM,SAAUhiE,GAC5B,MAAO,CAACA,EAAK,GAAK,IAAM,IAAKA,EAAK,GAAK,IAAM,IAAKA,EAAK,GAAK,IAAM,MAGnE+hE,EAAQiB,KAAKb,IAAMJ,EAAQiB,KAAKZ,IAAM,SAAUpiE,GAC/C,MAAO,CAAC,EAAG,EAAGA,EAAK,KAGpB+hE,EAAQiB,KAAKX,IAAM,SAAUW,GAC5B,MAAO,CAAC,EAAG,IAAKA,EAAK,KAGtBjB,EAAQiB,KAAKV,KAAO,SAAUU,GAC7B,MAAO,CAAC,EAAG,EAAG,EAAGA,EAAK,KAGvBjB,EAAQiB,KAAKR,IAAM,SAAUQ,GAC5B,MAAO,CAACA,EAAK,GAAI,EAAG,IAGrBjB,EAAQiB,KAAKN,IAAM,SAAUM,GAC5B,IAAI7mE,EAAwC,IAAlC4U,KAAKuH,MAAM0qD,EAAK,GAAK,IAAM,KAGjCl8D,IAFW3K,GAAO,KAAOA,GAAO,GAAKA,GAEpB3C,SAAS,IAAIyhC,cAClC,MAAO,SAAS6I,UAAUh9B,EAAOnO,QAAUmO,GAG5Ci7D,EAAQC,IAAIgB,KAAO,SAAUhB,GAE5B,MAAO,EADIA,EAAI,GAAKA,EAAI,GAAKA,EAAI,IAAM,EACzB,IAAM,SA8BrB,SAASsD,IAKR,IAJA,IAAIC,EAAQ,GAERC,EAASluE,OAAOyF,KAAK8kE,GAEhBznE,EAAMorE,EAAO7sE,OAAQd,EAAI,EAAGA,EAAIuC,EAAKvC,IAC7C0tE,EAAMC,EAAO3tE,IAAM,CAGlB+rE,UAAW,EACX6B,OAAQ,MAIV,OAAOF,EAIR,SAASG,EAAUC,GAClB,IAAIJ,EAAQD,IACR7e,EAAQ,CAACkf,GAIb,IAFAJ,EAAMI,GAAW/B,SAAW,EAErBnd,EAAM9tD,QAIZ,IAHA,IAAIkR,EAAU48C,EAAMyR,MAChB0N,EAAYtuE,OAAOyF,KAAK8kE,EAAYh4D,IAE/BzP,EAAMwrE,EAAUjtE,OAAQd,EAAI,EAAGA,EAAIuC,EAAKvC,IAAK,CACrD,IAAIguE,EAAWD,EAAU/tE,GACrB04B,EAAOg1C,EAAMM,IAEM,IAAnBt1C,EAAKqzC,WACRrzC,EAAKqzC,SAAW2B,EAAM17D,GAAS+5D,SAAW,EAC1CrzC,EAAKk1C,OAAS57D,EACd48C,EAAM/7B,QAAQm7C,IAKjB,OAAON,EAGR,SAAS/gC,EAAK3qC,EAAMuD,GACnB,OAAO,SAAU4C,GAChB,OAAO5C,EAAGvD,EAAKmG,KAIjB,SAAS8lE,EAAeC,EAASR,GAKhC,IAJA,IAAItiE,EAAO,CAACsiE,EAAMQ,GAASN,OAAQM,GAC/BhmE,EAAK8hE,EAAY0D,EAAMQ,GAASN,QAAQM,GAExCC,EAAMT,EAAMQ,GAASN,OAClBF,EAAMS,GAAKP,QACjBxiE,EAAKynB,QAAQ66C,EAAMS,GAAKP,QACxB1lE,EAAKykC,EAAKq9B,EAAY0D,EAAMS,GAAKP,QAAQO,GAAMjmE,GAC/CimE,EAAMT,EAAMS,GAAKP,OAIlB,OADA1lE,EAAGipB,WAAa/lB,EACTlD,EAxFY8hE,EAAYG,IACZH,EAAYM,IACZN,EAAYO,IACZP,EAAYQ,IACZR,EAAYS,KACZT,EAAYU,IACZV,EAAYW,IACZX,EAAYY,IACZZ,EAAYa,IACXb,EAAYc,QACZd,EAAYe,OACZf,EAAYgB,QACZhB,EAAYiB,IACZjB,EAAYkB,MACZlB,EAAYmB,KA6EjC,IAAIiD,EAAQ,SAAUN,GAKrB,IAJA,IAAIJ,EAAQG,EAAUC,GAClB38C,EAAa,GAEbw8C,EAASluE,OAAOyF,KAAKwoE,GAChBnrE,EAAMorE,EAAO7sE,OAAQd,EAAI,EAAGA,EAAIuC,EAAKvC,IAAK,CAClD,IAAIkuE,EAAUP,EAAO3tE,GAGD,OAFT0tE,EAAMQ,GAERN,SAKTz8C,EAAW+8C,GAAWD,EAAeC,EAASR,IAG/C,OAAOv8C,GAGJ+4C,EAAU,GAId,SAASmE,EAAQnmE,GAChB,IAAIomE,EAAY,SAAUnmE,GACzB,YAAa5H,IAAT4H,GAA+B,OAATA,EAClBA,GAGJ1C,UAAU3E,OAAS,IACtBqH,EAAOtI,MAAM6B,UAAUG,MAAMD,KAAK6D,YAG5ByC,EAAGC,KAQX,MAJI,eAAgBD,IACnBomE,EAAUn9C,WAAajpB,EAAGipB,YAGpBm9C,EAGR,SAASC,EAAYrmE,GACpB,IAAIomE,EAAY,SAAUnmE,GACzB,QAAa5H,IAAT4H,GAA+B,OAATA,EACzB,OAAOA,EAGJ1C,UAAU3E,OAAS,IACtBqH,EAAOtI,MAAM6B,UAAUG,MAAMD,KAAK6D,YAGnC,IAAIzB,EAASkE,EAAGC,GAKhB,GAAsB,kBAAXnE,EACV,IAAK,IAAIzB,EAAMyB,EAAOlD,OAAQd,EAAI,EAAGA,EAAIuC,EAAKvC,IAC7CgE,EAAOhE,GAAKkZ,KAAKuH,MAAMzc,EAAOhE,IAIhC,OAAOgE,GAQR,MAJI,eAAgBkE,IACnBomE,EAAUn9C,WAAajpB,EAAGipB,YAGpBm9C,EApDK7uE,OAAOyF,KAAK8kE,GAuDlBhlE,SAAQ,SAAU8oE,GACxB5D,EAAQ4D,GAAa,GAErBruE,OAAOqG,eAAeokE,EAAQ4D,GAAY,WAAY,CAACjtE,MAAOmpE,EAAY8D,GAAW1D,WACrF3qE,OAAOqG,eAAeokE,EAAQ4D,GAAY,SAAU,CAACjtE,MAAOmpE,EAAY8D,GAAWzD,SAEnF,IAAImE,EAASJ,EAAMN,GACDruE,OAAOyF,KAAKspE,GAElBxpE,SAAQ,SAAUkpE,GAC7B,IAAIhmE,EAAKsmE,EAAON,GAEhBhE,EAAQ4D,GAAWI,GAAWK,EAAYrmE,GAC1CgiE,EAAQ4D,GAAWI,GAASO,IAAMJ,EAAQnmE,SAI5C,IAAIwmE,EAAexE,EAEfyE,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,KAMvBxB,EAAc,CACfyB,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,EACX3E,QAASA,GAGZ,SAAS8D,EAAQ3/D,GACd,GAAKA,EAAL,CAGA,IAAIygE,EAAQ,yBACR7E,EAAO,wCACP8E,EAAO,2FACPC,EAAM,6GACN9E,EAAU,QAEVX,EAAM,CAAC,EAAG,EAAG,GACb/9D,EAAI,EACJ+4B,EAAQl2B,EAAOk2B,MAAMuqC,GACrBG,EAAW,GACf,GAAI1qC,EAAO,CAER0qC,GADA1qC,EAAQA,EAAM,IACG,GACjB,IAAK,IAAInlC,EAAI,EAAGA,EAAImqE,EAAIrpE,OAAQd,IAC7BmqE,EAAInqE,GAAKqtE,SAASloC,EAAMnlC,GAAKmlC,EAAMnlC,GAAI,IAEtC6vE,IACDzjE,EAAI8M,KAAKuH,MAAO4sD,SAASwC,EAAWA,EAAU,IAAM,IAAO,KAAO,UAGnE,GAAI1qC,EAAQl2B,EAAOk2B,MAAM0lC,GAAM,CAGjC,IAFAgF,EAAW1qC,EAAM,GACjBA,EAAQA,EAAM,GACLnlC,EAAI,EAAGA,EAAImqE,EAAIrpE,OAAQd,IAC7BmqE,EAAInqE,GAAKqtE,SAASloC,EAAMtjC,MAAU,EAAJ7B,EAAW,EAAJA,EAAQ,GAAI,IAEhD6vE,IACDzjE,EAAI8M,KAAKuH,MAAO4sD,SAASwC,EAAU,IAAM,IAAO,KAAO,UAGxD,GAAI1qC,EAAQl2B,EAAOk2B,MAAMwqC,GAAO,CAClC,IAAS3vE,EAAI,EAAGA,EAAImqE,EAAIrpE,OAAQd,IAC7BmqE,EAAInqE,GAAKqtE,SAASloC,EAAMnlC,EAAI,IAE/BoM,EAAI2H,WAAWoxB,EAAM,SAEnB,GAAIA,EAAQl2B,EAAOk2B,MAAMyqC,GAAM,CACjC,IAAS5vE,EAAI,EAAGA,EAAImqE,EAAIrpE,OAAQd,IAC7BmqE,EAAInqE,GAAKkZ,KAAKuH,MAAiC,KAA3B1M,WAAWoxB,EAAMnlC,EAAI,KAE5CoM,EAAI2H,WAAWoxB,EAAM,SAEnB,GAAIA,EAAQl2B,EAAOk2B,MAAM2lC,GAAU,CACrC,GAAgB,eAAZ3lC,EAAM,GACP,MAAO,CAAC,EAAG,EAAG,EAAG,GAGpB,KADAglC,EAAMwE,EAAYxpC,EAAM,KAErB,OAIN,IAASnlC,EAAI,EAAGA,EAAImqE,EAAIrpE,OAAQd,IAC7BmqE,EAAInqE,GAAK8vE,EAAM3F,EAAInqE,GAAI,EAAG,KAS7B,OAHGoM,EAJEA,GAAU,GAALA,EAIH0jE,EAAM1jE,EAAG,EAAG,GAHZ,EAKP+9D,EAAI,GAAK/9D,EACF+9D,GAGV,SAAS0E,EAAQ5/D,GACd,GAAKA,EAAL,CAGA,IAAIq7D,EAAM,2GACNnlC,EAAQl2B,EAAOk2B,MAAMmlC,GACzB,GAAInlC,EAAO,CACR,IAAI4qC,EAAQh8D,WAAWoxB,EAAM,IAK7B,MAAO,CAJC2qC,EAAMzC,SAASloC,EAAM,IAAK,EAAG,KAC7B2qC,EAAM/7D,WAAWoxB,EAAM,IAAK,EAAG,KAC/B2qC,EAAM/7D,WAAWoxB,EAAM,IAAK,EAAG,KAC/B2qC,EAAMh5D,MAAMi5D,GAAS,EAAIA,EAAO,EAAG,MAKjD,SAASf,EAAO//D,GACb,GAAKA,EAAL,CAGA,IAAIu7D,EAAM,yGACNrlC,EAAQl2B,EAAOk2B,MAAMqlC,GACzB,GAAIrlC,EAAO,CACV,IAAI4qC,EAAQh8D,WAAWoxB,EAAM,IAK3B,MAAO,CAJC2qC,EAAMzC,SAASloC,EAAM,IAAK,EAAG,KAC7B2qC,EAAM/7D,WAAWoxB,EAAM,IAAK,EAAG,KAC/B2qC,EAAM/7D,WAAWoxB,EAAM,IAAK,EAAG,KAC/B2qC,EAAMh5D,MAAMi5D,GAAS,EAAIA,EAAO,EAAG,MAKjD,SAASjB,EAAO7/D,GACb,IAAI0gE,EAAOf,EAAQ3/D,GACnB,OAAO0gE,GAAQA,EAAK9tE,MAAM,EAAG,GAGhC,SAASktE,EAAO9/D,GACd,IAAI+gE,EAAOnB,EAAQ5/D,GACnB,OAAO+gE,GAAQA,EAAKnuE,MAAM,EAAG,GAG/B,SAASotE,EAAShgE,GACf,IAAIghE,EAAOrB,EAAQ3/D,GACnB,OAAIghE,IAGKA,EAAOpB,EAAQ5/D,MAGfghE,EAAOjB,EAAO//D,IALbghE,EAAK,QAKV,EAMR,SAASf,EAAUS,EAAMvjE,GAEtB,OADIA,OAAW7L,IAAN6L,GAAmC,IAAhBujE,EAAK7uE,OAAgBsL,EAAIujE,EAAK,GACnD,IAAMO,EAAUP,EAAK,IACfO,EAAUP,EAAK,IACfO,EAAUP,EAAK,KAEbvjE,GAAK,GAAKA,EAAI,EACb8jE,EAAUh3D,KAAKuH,MAAU,IAAJrU,IACrB,IAInB,SAAS+iE,EAAUQ,EAAMI,GACtB,OAAIA,EAAQ,GAAMJ,EAAK,IAAMA,EAAK,GAAK,EAC7BP,EAAWO,EAAMI,GAEpB,OAASJ,EAAK,GAAK,KAAOA,EAAK,GAAK,KAAOA,EAAK,GAAK,IAG/D,SAASP,EAAWO,EAAMI,GAIvB,YAHcxvE,IAAVwvE,IACDA,OAAqBxvE,IAAZovE,EAAK,GAAmBA,EAAK,GAAK,GAEvC,QAAUA,EAAK,GAAK,KAAOA,EAAK,GAAK,KAAOA,EAAK,GAC9C,KAAOI,EAAQ,IAG5B,SAASV,EAAcM,EAAMI,GAC1B,OAAIA,EAAQ,GAAMJ,EAAK,IAAMA,EAAK,GAAK,EAC7BL,EAAeK,EAAMI,GAMxB,OAJC72D,KAAKuH,MAAMkvD,EAAK,GAAG,IAAM,KAIb,MAHZz2D,KAAKuH,MAAMkvD,EAAK,GAAG,IAAM,KAGD,MAFxBz2D,KAAKuH,MAAMkvD,EAAK,GAAG,IAAM,KAEW,KAG/C,SAASL,EAAeK,EAAMI,GAI3B,MAAO,QAHC72D,KAAKuH,MAAMkvD,EAAK,GAAG,IAAM,KAGZ,MAFbz2D,KAAKuH,MAAMkvD,EAAK,GAAG,IAAM,KAEA,MADzBz2D,KAAKuH,MAAMkvD,EAAK,GAAG,IAAM,KACY,OAASI,GAASJ,EAAK,IAAM,GAAK,IAGlF,SAASJ,EAAUS,EAAMD,GACtB,OAAIA,EAAQ,GAAMC,EAAK,IAAMA,EAAK,GAAK,EAC7BR,EAAWQ,EAAMD,GAEpB,OAASC,EAAK,GAAK,KAAOA,EAAK,GAAK,MAAQA,EAAK,GAAK,KAGhE,SAASR,EAAWQ,EAAMD,GAIvB,YAHcxvE,IAAVwvE,IACDA,OAAqBxvE,IAAZyvE,EAAK,GAAmBA,EAAK,GAAK,GAEvC,QAAUA,EAAK,GAAK,KAAOA,EAAK,GAAK,MAAQA,EAAK,GAAK,MACpDD,EAAQ,IAKrB,SAASN,EAAUjF,EAAKuF,GAIrB,YAHcxvE,IAAVwvE,IACDA,OAAoBxvE,IAAXiqE,EAAI,GAAmBA,EAAI,GAAK,GAErC,OAASA,EAAI,GAAK,KAAOA,EAAI,GAAK,MAAQA,EAAI,GAAK,UACrCjqE,IAAVwvE,GAAiC,IAAVA,EAAc,KAAOA,EAAQ,IAAM,IAGxE,SAASjF,EAAQX,GACf,OAAOgG,EAAahG,EAAItoE,MAAM,EAAG,IAInC,SAASiuE,EAAMM,EAAK5wD,EAAK3E,GACtB,OAAO3B,KAAKsG,IAAItG,KAAK2B,IAAI2E,EAAK4wD,GAAMv1D,GAGvC,SAASq1D,EAAUE,GACjB,IAAIC,EAAMD,EAAIzuE,SAAS,IAAIyhC,cAC3B,OAAQitC,EAAIvvE,OAAS,EAAK,IAAMuvE,EAAMA,EAKxC,IAAIF,EAAe,GACnB,IAAK,IAAIpuE,KAAQ4sE,EACdwB,EAAaxB,EAAY5sE,IAASA,EAOrC,IAAIuuE,EAAQ,SAARA,EAAkB9kE,GACrB,OAAIA,aAAe8kE,EACX9kE,EAEFvI,gBAAgBqtE,GAItBrtE,KAAKstE,OAAQ,EACbttE,KAAKqR,OAAS,CACb61D,IAAK,CAAC,EAAG,EAAG,GACZG,IAAK,CAAC,EAAG,EAAG,GACZC,IAAK,CAAC,EAAG,EAAG,GACZC,IAAK,CAAC,EAAG,EAAG,GACZC,KAAM,CAAC,EAAG,EAAG,EAAG,GAChBsF,MAAO,QAKW,kBAARvkE,GACVykE,EAAO9C,EAAYyB,QAAQpjE,IAE1BvI,KAAKutE,UAAU,MAAOP,IACZA,EAAO9C,EAAY0B,QAAQrjE,IACrCvI,KAAKutE,UAAU,MAAOP,IACZA,EAAO9C,EAAY6B,OAAOxjE,KACpCvI,KAAKutE,UAAU,MAAOP,GAEE,kBAARzkE,SAEFjL,KADf0vE,EAAOzkE,GACE2wB,QAAgC57B,IAAb0vE,EAAKQ,IAChCxtE,KAAKutE,UAAU,MAAOP,QACD1vE,IAAX0vE,EAAKjqE,QAAsCzF,IAAnB0vE,EAAKS,UACvCztE,KAAKutE,UAAU,MAAOP,QACD1vE,IAAX0vE,EAAKp8D,QAAkCtT,IAAf0vE,EAAKpvE,MACvCoC,KAAKutE,UAAU,MAAOP,QACD1vE,IAAX0vE,EAAKzzC,QAAsCj8B,IAAnB0vE,EAAKU,UACvC1tE,KAAKutE,UAAU,MAAOP,QACD1vE,IAAX0vE,EAAKvzC,QAAiCn8B,IAAd0vE,EAAKW,MACvC3tE,KAAKutE,UAAU,OAAQP,MAnCjB,IAAIK,EAAM9kE,GAclB,IAAIykE,GA0BLK,EAAM5uE,UAAY,CACjBmvE,QAAS,WACR,OAAO5tE,KAAKstE,OAEbpG,IAAK,WACJ,OAAOlnE,KAAK6tE,SAAS,MAAOrrE,YAE7B6kE,IAAK,WACJ,OAAOrnE,KAAK6tE,SAAS,MAAOrrE,YAE7B8kE,IAAK,WACJ,OAAOtnE,KAAK6tE,SAAS,MAAOrrE,YAE7B+kE,IAAK,WACJ,OAAOvnE,KAAK6tE,SAAS,MAAOrrE,YAE7BglE,KAAM,WACL,OAAOxnE,KAAK6tE,SAAS,OAAQrrE,YAG9BsrE,SAAU,WACT,OAAO9tE,KAAKqR,OAAO61D,KAEpB6G,SAAU,WACT,OAAO/tE,KAAKqR,OAAOg2D,KAEpB2G,SAAU,WACT,OAAOhuE,KAAKqR,OAAOi2D,KAEpB2G,SAAU,WACT,IAAI58D,EAASrR,KAAKqR,OAClB,OAAqB,IAAjBA,EAAOy7D,MACHz7D,EAAOk2D,IAAIj+D,OAAO,CAAC+H,EAAOy7D,QAE3Bz7D,EAAOk2D,KAEf2G,UAAW,WACV,OAAOluE,KAAKqR,OAAOm2D,MAEpB2G,UAAW,WACV,IAAI98D,EAASrR,KAAKqR,OAClB,OAAOA,EAAO61D,IAAI59D,OAAO,CAAC+H,EAAOy7D,SAElCsB,UAAW,WACV,IAAI/8D,EAASrR,KAAKqR,OAClB,OAAOA,EAAOg2D,IAAI/9D,OAAO,CAAC+H,EAAOy7D,SAElCA,MAAO,SAAUzrE,GAChB,YAAY/D,IAAR+D,EACIrB,KAAKqR,OAAOy7D,OAEpB9sE,KAAKutE,UAAU,QAASlsE,GACjBrB,OAGRwtE,IAAK,SAAUnsE,GACd,OAAOrB,KAAKquE,WAAW,MAAO,EAAGhtE,IAElCitE,MAAO,SAAUjtE,GAChB,OAAOrB,KAAKquE,WAAW,MAAO,EAAGhtE,IAElCktE,KAAM,SAAUltE,GACf,OAAOrB,KAAKquE,WAAW,MAAO,EAAGhtE,IAElCgpE,IAAK,SAAUhpE,GAKd,OAJIA,IAEHA,GADAA,GAAO,KACK,EAAI,IAAMA,EAAMA,GAEtBrB,KAAKquE,WAAW,MAAO,EAAGhtE,IAElCmtE,WAAY,SAAUntE,GACrB,OAAOrB,KAAKquE,WAAW,MAAO,EAAGhtE,IAElCosE,UAAW,SAAUpsE,GACpB,OAAOrB,KAAKquE,WAAW,MAAO,EAAGhtE,IAElCotE,YAAa,SAAUptE,GACtB,OAAOrB,KAAKquE,WAAW,MAAO,EAAGhtE,IAElCqsE,UAAW,SAAUrsE,GACpB,OAAOrB,KAAKquE,WAAW,MAAO,EAAGhtE,IAElCqtE,UAAW,SAAUrtE,GACpB,OAAOrB,KAAKquE,WAAW,MAAO,EAAGhtE,IAElCzD,MAAO,SAAUyD,GAChB,OAAOrB,KAAKquE,WAAW,MAAO,EAAGhtE,IAElCssE,KAAM,SAAUtsE,GACf,OAAOrB,KAAKquE,WAAW,OAAQ,EAAGhtE,IAEnCstE,QAAS,SAAUttE,GAClB,OAAOrB,KAAKquE,WAAW,OAAQ,EAAGhtE,IAEnCutE,OAAQ,SAAUvtE,GACjB,OAAOrB,KAAKquE,WAAW,OAAQ,EAAGhtE,IAEnCwtE,MAAO,SAAUxtE,GAChB,OAAOrB,KAAKquE,WAAW,OAAQ,EAAGhtE,IAGnC4qE,UAAW,WACV,OAAO/B,EAAY+B,UAAUjsE,KAAKqR,OAAO61D,MAE1CgF,UAAW,WACV,OAAOhC,EAAYgC,UAAUlsE,KAAKqR,OAAO61D,IAAKlnE,KAAKqR,OAAOy7D,QAE3DX,WAAY,WACX,OAAOjC,EAAYiC,WAAWnsE,KAAKqR,OAAO61D,IAAKlnE,KAAKqR,OAAOy7D,QAE5DV,cAAe,WACd,OAAOlC,EAAYkC,cAAcpsE,KAAKqR,OAAO61D,IAAKlnE,KAAKqR,OAAOy7D,QAE/DR,UAAW,WACV,OAAOpC,EAAYoC,UAAUtsE,KAAKqR,OAAOg2D,IAAKrnE,KAAKqR,OAAOy7D,QAE3DP,WAAY,WACX,OAAOrC,EAAYqC,WAAWvsE,KAAKqR,OAAOg2D,IAAKrnE,KAAKqR,OAAOy7D,QAE5DN,UAAW,WACV,OAAOtC,EAAYsC,UAAUxsE,KAAKqR,OAAOk2D,IAAKvnE,KAAKqR,OAAOy7D,QAE3DjF,QAAS,WACR,OAAOqC,EAAYrC,QAAQ7nE,KAAKqR,OAAO61D,IAAKlnE,KAAKqR,OAAOy7D,QAGzDgC,UAAW,WACV,IAAI5H,EAAMlnE,KAAKqR,OAAO61D,IACtB,OAAQA,EAAI,IAAM,GAAOA,EAAI,IAAM,EAAKA,EAAI,IAG7C6H,WAAY,WAIX,IAFA,IAAI7H,EAAMlnE,KAAKqR,OAAO61D,IAClB8H,EAAM,GACDjyE,EAAI,EAAGA,EAAImqE,EAAIrpE,OAAQd,IAAK,CACpC,IAAIkyE,EAAO/H,EAAInqE,GAAK,IACpBiyE,EAAIjyE,GAAMkyE,GAAQ,OAAWA,EAAO,MAAQh5D,KAAKC,KAAM+4D,EAAO,MAAS,MAAQ,KAEhF,MAAO,MAASD,EAAI,GAAK,MAASA,EAAI,GAAK,MAASA,EAAI,IAGzDE,SAAU,SAAUC,GAEnB,IAAIC,EAAOpvE,KAAK+uE,aACZM,EAAOF,EAAOJ,aAClB,OAAIK,EAAOC,GACFD,EAAO,MAASC,EAAO,MAExBA,EAAO,MAASD,EAAO,MAGhCjiD,MAAO,SAAUgiD,GAChB,IAAIG,EAAgBtvE,KAAKkvE,SAASC,GAClC,OAAIG,GAAiB,IACb,MAGAA,GAAiB,IAAO,KAAO,IAGxCC,KAAM,WAEL,IAAIrI,EAAMlnE,KAAKqR,OAAO61D,IAEtB,OADoB,IAATA,EAAI,GAAoB,IAATA,EAAI,GAAoB,IAATA,EAAI,IAAY,IAC5C,KAGdsI,MAAO,WACN,OAAQxvE,KAAKuvE,QAGdE,OAAQ,WAEP,IADA,IAAIvI,EAAM,GACDnqE,EAAI,EAAGA,EAAI,EAAGA,IACtBmqE,EAAInqE,GAAK,IAAMiD,KAAKqR,OAAO61D,IAAInqE,GAGhC,OADAiD,KAAKutE,UAAU,MAAOrG,GACflnE,MAGR0vE,QAAS,SAAUnG,GAClB,IAAIlC,EAAMrnE,KAAKqR,OAAOg2D,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKkC,EACnBvpE,KAAKutE,UAAU,MAAOlG,GACfrnE,MAGR2vE,OAAQ,SAAUpG,GACjB,IAAIlC,EAAMrnE,KAAKqR,OAAOg2D,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKkC,EACnBvpE,KAAKutE,UAAU,MAAOlG,GACfrnE,MAGR4vE,SAAU,SAAUrG,GACnB,IAAIlC,EAAMrnE,KAAKqR,OAAOg2D,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKkC,EACnBvpE,KAAKutE,UAAU,MAAOlG,GACfrnE,MAGR6vE,WAAY,SAAUtG,GACrB,IAAIlC,EAAMrnE,KAAKqR,OAAOg2D,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKkC,EACnBvpE,KAAKutE,UAAU,MAAOlG,GACfrnE,MAGR8vE,OAAQ,SAAUvG,GACjB,IAAIhC,EAAMvnE,KAAKqR,OAAOk2D,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKgC,EACnBvpE,KAAKutE,UAAU,MAAOhG,GACfvnE,MAGR+vE,QAAS,SAAUxG,GAClB,IAAIhC,EAAMvnE,KAAKqR,OAAOk2D,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKgC,EACnBvpE,KAAKutE,UAAU,MAAOhG,GACfvnE,MAGRgwE,UAAW,WACV,IAAI9I,EAAMlnE,KAAKqR,OAAO61D,IAElB7lE,EAAe,GAAT6lE,EAAI,GAAoB,IAATA,EAAI,GAAqB,IAATA,EAAI,GAE7C,OADAlnE,KAAKutE,UAAU,MAAO,CAAClsE,EAAKA,EAAKA,IAC1BrB,MAGRiwE,QAAS,SAAU1G,GAClB,IAAIuD,EAAQ9sE,KAAKqR,OAAOy7D,MAExB,OADA9sE,KAAKutE,UAAU,QAAST,EAASA,EAAQvD,GAClCvpE,MAGRkwE,QAAS,SAAU3G,GAClB,IAAIuD,EAAQ9sE,KAAKqR,OAAOy7D,MAExB,OADA9sE,KAAKutE,UAAU,QAAST,EAASA,EAAQvD,GAClCvpE,MAGRmwE,OAAQ,SAAUC,GACjB,IAAI/I,EAAMrnE,KAAKqR,OAAOg2D,IAClBgD,GAAOhD,EAAI,GAAK+I,GAAW,IAG/B,OAFA/I,EAAI,GAAKgD,EAAM,EAAI,IAAMA,EAAMA,EAC/BrqE,KAAKutE,UAAU,MAAOlG,GACfrnE,MAORqwE,IAAK,SAAUC,EAAYC,GAC1B,IAAIC,EAASxwE,KACTmvE,EAASmB,EACTpmE,OAAe5M,IAAXizE,EAAuB,GAAMA,EAEjCh3C,EAAI,EAAIrvB,EAAI,EACZf,EAAIqnE,EAAO1D,QAAUqC,EAAOrC,QAE5B2D,IAAQl3C,EAAIpwB,KAAO,EAAKowB,GAAKA,EAAIpwB,IAAM,EAAIowB,EAAIpwB,IAAM,GAAK,EAC1DunE,EAAK,EAAID,EAEb,OAAOzwE,KACLknE,IACAuJ,EAAKD,EAAOhD,MAAQkD,EAAKvB,EAAO3B,MAChCiD,EAAKD,EAAOlC,QAAUoC,EAAKvB,EAAOb,QAClCmC,EAAKD,EAAOjC,OAASmC,EAAKvB,EAAOZ,QAEjCzB,MAAM0D,EAAO1D,QAAU5iE,EAAIilE,EAAOrC,SAAW,EAAI5iE,KAGpDymE,OAAQ,WACP,OAAO3wE,KAAKknE,OAGb0J,MAAO,WAKN,IAGIhzE,EAAO4F,EAHPzC,EAAS,IAAIssE,EACbjrE,EAASpC,KAAKqR,OACdlP,EAASpB,EAAOsQ,OAGpB,IAAK,IAAIw/D,KAAQzuE,EACZA,EAAOnB,eAAe4vE,KACzBjzE,EAAQwE,EAAOyuE,GAEF,oBADbrtE,EAAQ,GAAI9E,SAASC,KAAKf,IAEzBuE,EAAO0uE,GAAQjzE,EAAMgB,MAAM,GACR,oBAAT4E,EACVrB,EAAO0uE,GAAQjzE,EAEf2lB,QAAQ1e,MAAM,0BAA2BjH,IAK5C,OAAOmD,IAITssE,EAAM5uE,UAAUqyE,OAAS,CACxB5J,IAAK,CAAC,MAAO,QAAS,QACtBG,IAAK,CAAC,MAAO,aAAc,aAC3BC,IAAK,CAAC,MAAO,aAAc,SAC3BC,IAAK,CAAC,MAAO,YAAa,aAC1BC,KAAM,CAAC,OAAQ,UAAW,SAAU,UAGrC6F,EAAM5uE,UAAUsyE,MAAQ,CACvB7J,IAAK,CAAC,IAAK,IAAK,KAChBG,IAAK,CAAC,IAAK,IAAK,KAChBC,IAAK,CAAC,IAAK,IAAK,KAChBC,IAAK,CAAC,IAAK,IAAK,KAChBC,KAAM,CAAC,IAAK,IAAK,IAAK,MAGvB6F,EAAM5uE,UAAUuyE,UAAY,SAAUC,GAIrC,IAHA,IAAI5/D,EAASrR,KAAKqR,OACd27D,EAAO,GAEFjwE,EAAI,EAAGA,EAAIk0E,EAAMpzE,OAAQd,IACjCiwE,EAAKiE,EAAMloC,OAAOhsC,IAAMsU,EAAO4/D,GAAOl0E,GAQvC,OALqB,IAAjBsU,EAAOy7D,QACVE,EAAK7jE,EAAIkI,EAAOy7D,OAIVE,GAGRK,EAAM5uE,UAAU8uE,UAAY,SAAU0D,EAAOjE,GAC5C,IAIIjwE,EAkCAm0E,EAtCA7/D,EAASrR,KAAKqR,OACdy/D,EAAS9wE,KAAK8wE,OACdC,EAAQ/wE,KAAK+wE,MACbjE,EAAQ,EAKZ,GAFA9sE,KAAKstE,OAAQ,EAEC,UAAV2D,EACHnE,EAAQE,OACF,GAAIA,EAAKnvE,OAEfwT,EAAO4/D,GAASjE,EAAKpuE,MAAM,EAAGqyE,EAAMpzE,QACpCivE,EAAQE,EAAKiE,EAAMpzE,aACb,QAA8BP,IAA1B0vE,EAAKiE,EAAMloC,OAAO,IAAmB,CAE/C,IAAKhsC,EAAI,EAAGA,EAAIk0E,EAAMpzE,OAAQd,IAC7BsU,EAAO4/D,GAAOl0E,GAAKiwE,EAAKiE,EAAMloC,OAAOhsC,IAGtC+vE,EAAQE,EAAK7jE,OACP,QAA+B7L,IAA3B0vE,EAAK8D,EAAOG,GAAO,IAAmB,CAEhD,IAAIE,EAAQL,EAAOG,GAEnB,IAAKl0E,EAAI,EAAGA,EAAIk0E,EAAMpzE,OAAQd,IAC7BsU,EAAO4/D,GAAOl0E,GAAKiwE,EAAKmE,EAAMp0E,IAG/B+vE,EAAQE,EAAKF,MAKd,GAFAz7D,EAAOy7D,MAAQ72D,KAAK2B,IAAI,EAAG3B,KAAKsG,IAAI,OAAcjf,IAAVwvE,EAAsBz7D,EAAOy7D,MAAQA,IAE/D,UAAVmE,EACH,OAAO,EAMR,IAAKl0E,EAAI,EAAGA,EAAIk0E,EAAMpzE,OAAQd,IAC7Bm0E,EAASj7D,KAAK2B,IAAI,EAAG3B,KAAKsG,IAAIw0D,EAAME,GAAOl0E,GAAIsU,EAAO4/D,GAAOl0E,KAC7DsU,EAAO4/D,GAAOl0E,GAAKkZ,KAAKuH,MAAM0zD,GAI/B,IAAK,IAAIE,KAASN,EACbM,IAAUH,IACb5/D,EAAO+/D,GAAS3F,EAAawF,GAAOG,GAAO//D,EAAO4/D,KAIpD,OAAO,GAGR5D,EAAM5uE,UAAUovE,SAAW,SAAUoD,EAAO/rE,GAC3C,IAAI8nE,EAAO9nE,EAAK,GAEhB,YAAa5H,IAAT0vE,EAEIhtE,KAAKgxE,UAAUC,IAIH,kBAATjE,IACVA,EAAOpwE,MAAM6B,UAAUG,MAAMD,KAAKuG,IAGnClF,KAAKutE,UAAU0D,EAAOjE,GACfhtE,OAGRqtE,EAAM5uE,UAAU4vE,WAAa,SAAU4C,EAAOlxE,EAAOsB,GACpD,IAAIgwE,EAAUrxE,KAAKqR,OAAO4/D,GAC1B,YAAY3zE,IAAR+D,EAEIgwE,EAAQtxE,IACLsB,IAAQgwE,EAAQtxE,KAM3BsxE,EAAQtxE,GAASsB,EACjBrB,KAAKutE,UAAU0D,EAAOI,IALdrxE,OAUa,qBAAXsL,SACVA,OAAO+hE,MAAQA,GAGhB,IAAIiE,EAAejE,EAEnB,SAASkE,EAAWnzE,GACnB,OAAmE,IAA5D,CAAC,YAAa,YAAa,eAAeozB,QAAQpzB,GAM1D,IAAIy2B,EAAU,CAIbuvC,KAAM,aAONoN,IAAM,WACL,IAAI57C,EAAK,EACT,OAAO,WACN,OAAOA,KAHH,GAaN67C,cAAe,SAAS7zE,GACvB,OAAiB,OAAVA,GAAmC,qBAAVA,GASjCjB,QAAS,SAASiB,GACjB,GAAIhB,MAAMD,SAAWC,MAAMD,QAAQiB,GAClC,OAAO,EAER,IAAI4F,EAAOhH,OAAOiC,UAAUC,SAASC,KAAKf,GAC1C,MAA0B,YAAtB4F,EAAKkuE,OAAO,EAAG,IAAwC,WAApBluE,EAAKkuE,QAAQ,IAYrD/rE,SAAU,SAAS/H,GAClB,OAAiB,OAAVA,GAA4D,oBAA1CpB,OAAOiC,UAAUC,SAASC,KAAKf,IAQzD+zE,SAAU,SAAF,oGAAE,WAAS/zE,GAClB,OAAyB,kBAAVA,GAAsBA,aAAiBg0E,SAAWD,SAAS/zE,MAS3Ei0E,eAAgB,SAASj0E,EAAO6lC,GAC/B,MAAwB,qBAAV7lC,EAAwB6lC,EAAe7lC,GAUtDk0E,sBAAuB,SAASl0E,EAAOmC,EAAO0jC,GAC7C,OAAO5O,EAAQg9C,eAAeh9C,EAAQl4B,QAAQiB,GAASA,EAAMmC,GAASnC,EAAO6lC,IAW9E4iB,SAAU,SAASphD,EAAIC,EAAM6sE,GAC5B,GAAI9sE,GAAyB,oBAAZA,EAAGtG,KACnB,OAAOsG,EAAGE,MAAM4sE,EAAS7sE,IAa3B8sE,KAAM,SAASC,EAAUhtE,EAAI8sE,EAASzgE,GACrC,IAAIvU,EAAGuC,EAAK2C,EACZ,GAAI4yB,EAAQl4B,QAAQs1E,GAEnB,GADA3yE,EAAM2yE,EAASp0E,OACXyT,EACH,IAAKvU,EAAIuC,EAAM,EAAGvC,GAAK,EAAGA,IACzBkI,EAAGtG,KAAKozE,EAASE,EAASl1E,GAAIA,QAG/B,IAAKA,EAAI,EAAGA,EAAIuC,EAAKvC,IACpBkI,EAAGtG,KAAKozE,EAASE,EAASl1E,GAAIA,QAG1B,GAAI83B,EAAQlvB,SAASssE,GAG3B,IADA3yE,GADA2C,EAAOzF,OAAOyF,KAAKgwE,IACRp0E,OACNd,EAAI,EAAGA,EAAIuC,EAAKvC,IACpBkI,EAAGtG,KAAKozE,EAASE,EAAShwE,EAAKlF,IAAKkF,EAAKlF,KAY5Cm1E,YAAa,SAASC,EAAIC,GACzB,IAAIr1E,EAAGs1E,EAAMC,EAAIC,EAEjB,IAAKJ,IAAOC,GAAMD,EAAGt0E,SAAWu0E,EAAGv0E,OAClC,OAAO,EAGR,IAAKd,EAAI,EAAGs1E,EAAOF,EAAGt0E,OAAQd,EAAIs1E,IAAQt1E,EAIzC,GAHAu1E,EAAKH,EAAGp1E,GACRw1E,EAAKH,EAAGr1E,GAEJu1E,aAAc11E,OAAS21E,aAAc31E,OACxC,IAAKi4B,EAAQq9C,YAAYI,EAAIC,GAC5B,OAAO,OAEF,GAAID,IAAOC,EAEjB,OAAO,EAIT,OAAO,GAQR3B,MAAO,SAASxuE,GACf,GAAIyyB,EAAQl4B,QAAQyF,GACnB,OAAOA,EAAOzB,IAAIk0B,EAAQ+7C,OAG3B,GAAI/7C,EAAQlvB,SAASvD,GAAS,CAM7B,IALA,IAAID,EAAS3F,OAAO+Q,OAAOnL,GACvBH,EAAOzF,OAAOyF,KAAKG,GACnBowE,EAAOvwE,EAAKpE,OACZif,EAAI,EAEDA,EAAI01D,IAAQ11D,EAClB3a,EAAOF,EAAK6a,IAAM+X,EAAQ+7C,MAAMxuE,EAAOH,EAAK6a,KAG7C,OAAO3a,EAGR,OAAOC,GAQRqwE,QAAS,SAASr0E,EAAK+D,EAAQC,EAAQoxB,GACtC,GAAK+9C,EAAWnzE,GAAhB,CAMA,IAAIs0E,EAAOvwE,EAAO/D,GACdu0E,EAAOvwE,EAAOhE,GAEdy2B,EAAQlvB,SAAS+sE,IAAS79C,EAAQlvB,SAASgtE,GAC9C99C,EAAQ+9C,MAAMF,EAAMC,EAAMn/C,GAE1BrxB,EAAO/D,GAAOy2B,EAAQ+7C,MAAM+B,KAQ9BE,UAAW,SAASz0E,EAAK+D,EAAQC,GAChC,GAAKmvE,EAAWnzE,GAAhB,CAMA,IAAIs0E,EAAOvwE,EAAO/D,GACdu0E,EAAOvwE,EAAOhE,GAEdy2B,EAAQlvB,SAAS+sE,IAAS79C,EAAQlvB,SAASgtE,GAC9C99C,EAAQi+C,QAAQJ,EAAMC,GACXxwE,EAAOlB,eAAe7C,KACjC+D,EAAO/D,GAAOy2B,EAAQ+7C,MAAM+B,MAa9BC,MAAO,SAASzwE,EAAQC,EAAQoxB,GAC/B,IAEIo/C,EAAO71E,EAAGkF,EAAMuwE,EAAM11D,EAFtBi2D,EAAUl+C,EAAQl4B,QAAQyF,GAAUA,EAAS,CAACA,GAC9CiwE,EAAOU,EAAQl1E,OAGnB,IAAKg3B,EAAQlvB,SAASxD,GACrB,OAAOA,EAMR,IAFAywE,GADAp/C,EAAUA,GAAW,IACLw/C,QAAUn+C,EAAQ49C,QAE7B11E,EAAI,EAAGA,EAAIs1E,IAAQt1E,EAEvB,GADAqF,EAAS2wE,EAAQh2E,GACZ83B,EAAQlvB,SAASvD,GAKtB,IAAK0a,EAAI,EAAG01D,GADZvwE,EAAOzF,OAAOyF,KAAKG,IACKvE,OAAQif,EAAI01D,IAAQ11D,EAC3C81D,EAAM3wE,EAAK6a,GAAI3a,EAAQC,EAAQoxB,GAIjC,OAAOrxB,GAUR2wE,QAAS,SAAS3wE,EAAQC,GACzB,OAAOyyB,EAAQ+9C,MAAMzwE,EAAQC,EAAQ,CAAC4wE,OAAQn+C,EAAQg+C,aAUvD5a,OAAQz7D,OAAO8E,QAAU,SAASa,GACjC,OAAO0yB,EAAQ+9C,MAAMzwE,EAAQ,GAAGvD,MAAMD,KAAK6D,UAAW,GAAI,CACzDwwE,OAAQ,SAAS50E,EAAK60E,EAAKC,GAC1BD,EAAI70E,GAAO80E,EAAI90E,OAQlB+0E,SAAU,SAASC,GAClB,IAAIn4B,EAAKj7C,KACLqzE,EAAgBD,GAAcA,EAAWnyE,eAAe,eAAkBmyE,EAAWv0E,YAAc,WACtG,OAAOo8C,EAAG91C,MAAMnF,KAAMwC,YAGnB8wE,EAAY,WACftzE,KAAKnB,YAAcw0E,GAYpB,OATAC,EAAU70E,UAAYw8C,EAAGx8C,UACzB40E,EAAa50E,UAAY,IAAI60E,EAC7BD,EAAapb,OAASpjC,EAAQs+C,SAE1BC,GACHv+C,EAAQojC,OAAOob,EAAa50E,UAAW20E,GAGxCC,EAAaE,UAAYt4B,EAAGx8C,UACrB40E,GAGRG,YAAa,SAASC,EAAO71E,EAAO81E,EAAU3kE,QAC/BzR,IAAVM,GACH2lB,QAAQoB,KAAK8uD,EAAQ,MAAQC,EAC5B,gCAAkC3kE,EAAU,eAK5C4kE,EAAe9+C,EAWnBA,EAAQ++C,aAAe/+C,EAAQwxB,SAU/BxxB,EAAQrD,QAAU,SAASjxB,EAAOszE,EAAMC,GACvC,OAAOl3E,MAAM6B,UAAU+yB,QAAQ7yB,KAAK4B,EAAOszE,EAAMC,IAUlDj/C,EAAQk/C,kBAAoBl/C,EAAQg9C,eASpCh9C,EAAQm/C,yBAA2Bn/C,EAAQi9C,sBAO3C,IAAI/rB,EAAU,CACbkuB,OAAQ,SAAS96C,GAChB,OAAOA,GAGR+6C,WAAY,SAAS/6C,GACpB,OAAOA,EAAIA,GAGZg7C,YAAa,SAASh7C,GACrB,OAAQA,GAAKA,EAAI,IAGlBi7C,cAAe,SAASj7C,GACvB,OAAKA,GAAK,IAAO,EACT,GAAMA,EAAIA,GAEV,MAAUA,GAAMA,EAAI,GAAK,IAGlCk7C,YAAa,SAASl7C,GACrB,OAAOA,EAAIA,EAAIA,GAGhBm7C,aAAc,SAASn7C,GACtB,OAAQA,GAAQ,GAAKA,EAAIA,EAAI,GAG9Bo7C,eAAgB,SAASp7C,GACxB,OAAKA,GAAK,IAAO,EACT,GAAMA,EAAIA,EAAIA,EAEf,KAAQA,GAAK,GAAKA,EAAIA,EAAI,IAGlCq7C,YAAa,SAASr7C,GACrB,OAAOA,EAAIA,EAAIA,EAAIA,GAGpBs7C,aAAc,SAASt7C,GACtB,SAAUA,GAAQ,GAAKA,EAAIA,EAAIA,EAAI,IAGpCu7C,eAAgB,SAASv7C,GACxB,OAAKA,GAAK,IAAO,EACT,GAAMA,EAAIA,EAAIA,EAAIA,GAElB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,IAGvCw7C,YAAa,SAASx7C,GACrB,OAAOA,EAAIA,EAAIA,EAAIA,EAAIA,GAGxBy7C,aAAc,SAASz7C,GACtB,OAAQA,GAAQ,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,GAGtC07C,eAAgB,SAAS17C,GACxB,OAAKA,GAAK,IAAO,EACT,GAAMA,EAAIA,EAAIA,EAAIA,EAAIA,EAEvB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,IAG1C27C,WAAY,SAAS37C,GACpB,OAAsC,EAA9BljB,KAAK4zD,IAAI1wC,GAAKljB,KAAK2zD,GAAK,KAGjCmL,YAAa,SAAS57C,GACrB,OAAOljB,KAAK6zD,IAAI3wC,GAAKljB,KAAK2zD,GAAK,KAGhCoL,cAAe,SAAS77C,GACvB,OAAQ,IAAOljB,KAAK4zD,IAAI5zD,KAAK2zD,GAAKzwC,GAAK,IAGxC87C,WAAY,SAAS97C,GACpB,OAAc,IAANA,EAAW,EAAIljB,KAAKC,IAAI,EAAG,IAAMijB,EAAI,KAG9C+7C,YAAa,SAAS/7C,GACrB,OAAc,IAANA,EAAW,EAA4B,EAAvBljB,KAAKC,IAAI,GAAI,GAAKijB,IAG3Cg8C,cAAe,SAASh8C,GACvB,OAAU,IAANA,EACI,EAEE,IAANA,EACI,GAEHA,GAAK,IAAO,EACT,GAAMljB,KAAKC,IAAI,EAAG,IAAMijB,EAAI,IAE7B,IAAiC,EAAzBljB,KAAKC,IAAI,GAAI,KAAOijB,KAGpCi8C,WAAY,SAASj8C,GACpB,OAAIA,GAAK,EACDA,IAECljB,KAAKG,KAAK,EAAI+iB,EAAIA,GAAK,IAGjCk8C,YAAa,SAASl8C,GACrB,OAAOljB,KAAKG,KAAK,GAAK+iB,GAAQ,GAAKA,IAGpCm8C,cAAe,SAASn8C,GACvB,OAAKA,GAAK,IAAO,GACR,IAAOljB,KAAKG,KAAK,EAAI+iB,EAAIA,GAAK,GAEhC,IAAOljB,KAAKG,KAAK,GAAK+iB,GAAK,GAAKA,GAAK,IAG7Co8C,cAAe,SAASp8C,GACvB,IAAI52B,EAAI,QACJ2H,EAAI,EACJf,EAAI,EACR,OAAU,IAANgwB,EACI,EAEE,IAANA,EACI,GAEHjvB,IACJA,EAAI,IAEDf,EAAI,GACPA,EAAI,EACJ5G,EAAI2H,EAAI,GAER3H,EAAI2H,GAAK,EAAI+L,KAAK2zD,IAAM3zD,KAAKu/D,KAAK,EAAIrsE,IAE9BA,EAAI8M,KAAKC,IAAI,EAAG,IAAMijB,GAAK,IAAMljB,KAAK6zD,KAAK3wC,EAAI52B,IAAM,EAAI0T,KAAK2zD,IAAM1/D,KAG9EurE,eAAgB,SAASt8C,GACxB,IAAI52B,EAAI,QACJ2H,EAAI,EACJf,EAAI,EACR,OAAU,IAANgwB,EACI,EAEE,IAANA,EACI,GAEHjvB,IACJA,EAAI,IAEDf,EAAI,GACPA,EAAI,EACJ5G,EAAI2H,EAAI,GAER3H,EAAI2H,GAAK,EAAI+L,KAAK2zD,IAAM3zD,KAAKu/D,KAAK,EAAIrsE,GAEhCA,EAAI8M,KAAKC,IAAI,GAAI,GAAKijB,GAAKljB,KAAK6zD,KAAK3wC,EAAI52B,IAAM,EAAI0T,KAAK2zD,IAAM1/D,GAAK,IAG3EwrE,iBAAkB,SAASv8C,GAC1B,IAAI52B,EAAI,QACJ2H,EAAI,EACJf,EAAI,EACR,OAAU,IAANgwB,EACI,EAEW,KAAdA,GAAK,IACF,GAEHjvB,IACJA,EAAI,KAEDf,EAAI,GACPA,EAAI,EACJ5G,EAAI2H,EAAI,GAER3H,EAAI2H,GAAK,EAAI+L,KAAK2zD,IAAM3zD,KAAKu/D,KAAK,EAAIrsE,GAEnCgwB,EAAI,EACQhwB,EAAI8M,KAAKC,IAAI,EAAG,IAAMijB,GAAK,IAAMljB,KAAK6zD,KAAK3wC,EAAI52B,IAAM,EAAI0T,KAAK2zD,IAAM1/D,IAA3E,GAEFf,EAAI8M,KAAKC,IAAI,GAAI,IAAMijB,GAAK,IAAMljB,KAAK6zD,KAAK3wC,EAAI52B,IAAM,EAAI0T,KAAK2zD,IAAM1/D,GAAK,GAAM,IAExFyrE,WAAY,SAASx8C,GACpB,IAAI52B,EAAI,QACR,OAAO42B,EAAIA,IAAM52B,EAAI,GAAK42B,EAAI52B,IAG/BqzE,YAAa,SAASz8C,GACrB,IAAI52B,EAAI,QACR,OAAQ42B,GAAQ,GAAKA,IAAM52B,EAAI,GAAK42B,EAAI52B,GAAK,GAG9CszE,cAAe,SAAS18C,GACvB,IAAI52B,EAAI,QACR,OAAK42B,GAAK,IAAO,EACFA,EAAIA,IAAuB,GAAhB52B,GAAM,QAAe42B,EAAI52B,GAA3C,GAED,KAAQ42B,GAAK,GAAKA,IAAuB,GAAhB52B,GAAM,QAAe42B,EAAI52B,GAAK,IAG/DuzE,aAAc,SAAS38C,GACtB,OAAO,EAAI4sB,EAAQgwB,cAAc,EAAI58C,IAGtC48C,cAAe,SAAS58C,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,SAG7C68C,gBAAiB,SAAS78C,GACzB,OAAIA,EAAI,GAC8B,GAA9B4sB,EAAQ+vB,aAAiB,EAAJ38C,GAEa,GAAnC4sB,EAAQgwB,cAAkB,EAAJ58C,EAAQ,GAAW,KAI9C88C,EAAiB,CACpBlwB,QAASA,GAYV4tB,EAAauC,cAAgBnwB,EAE7B,IAAI6jB,EAAK3zD,KAAK2zD,GACVuM,EAAcvM,EAAK,IACnBwM,EAAiB,EAALxM,EACZyM,EAAUzM,EAAK,EACf0M,EAAa1M,EAAK,EAClB2M,EAAqB,EAAL3M,EAAS,EAKzB4M,EAAY,CAKfv2E,MAAO,SAASw2E,GACfA,EAAMC,IAAIC,UAAU,EAAG,EAAGF,EAAM7iD,MAAO6iD,EAAM9iD,SAc9CijD,YAAa,SAASF,EAAK1gE,EAAG4lB,EAAGhI,EAAOD,EAAQkjD,GAC/C,GAAIA,EAAQ,CACX,IAAI39C,EAAIjjB,KAAKsG,IAAIs6D,EAAQljD,EAAS,EAAGC,EAAQ,GACzC2kC,EAAOviD,EAAIkjB,EACXu/B,EAAM78B,EAAI1C,EACV49C,EAAQ9gE,EAAI4d,EAAQsF,EACpB69C,EAASn7C,EAAIjI,EAASuF,EAE1Bw9C,EAAIM,OAAOhhE,EAAGyiD,GACVF,EAAOue,GAASre,EAAMse,GACzBL,EAAIO,IAAI1e,EAAME,EAAKv/B,GAAI0wC,GAAKyM,GAC5BK,EAAIO,IAAIH,EAAOre,EAAKv/B,GAAIm9C,EAAS,GACjCK,EAAIO,IAAIH,EAAOC,EAAQ79C,EAAG,EAAGm9C,GAC7BK,EAAIO,IAAI1e,EAAMwe,EAAQ79C,EAAGm9C,EAASzM,IACxBrR,EAAOue,GACjBJ,EAAIM,OAAOze,EAAM38B,GACjB86C,EAAIO,IAAIH,EAAOre,EAAKv/B,GAAIm9C,EAASA,GACjCK,EAAIO,IAAI1e,EAAME,EAAKv/B,EAAGm9C,EAASzM,EAAKyM,IAC1B5d,EAAMse,GAChBL,EAAIO,IAAI1e,EAAME,EAAKv/B,GAAI0wC,EAAI,GAC3B8M,EAAIO,IAAI1e,EAAMwe,EAAQ79C,EAAG,EAAG0wC,IAE5B8M,EAAIO,IAAI1e,EAAME,EAAKv/B,GAAI0wC,EAAIA,GAE5B8M,EAAIQ,YACJR,EAAIM,OAAOhhE,EAAG4lB,QAEd86C,EAAIS,KAAKnhE,EAAG4lB,EAAGhI,EAAOD,IAIxByjD,UAAW,SAASV,EAAK7tC,EAAOguC,EAAQ7gE,EAAG4lB,EAAGy7C,GAC7C,IAAI7zE,EAAM8zE,EAASC,EAAS7xE,EAAM8xE,EAC9BC,GAAOJ,GAAY,GAAKlB,EAE5B,GAAIttC,GAA0B,kBAAVA,IAEN,+BADbrlC,EAAOqlC,EAAMnqC,aACwC,+BAAT8E,GAM3C,OALAkzE,EAAIgB,OACJhB,EAAIiB,UAAU3hE,EAAG4lB,GACjB86C,EAAIvG,OAAOsH,GACXf,EAAIkB,UAAU/uC,GAAQA,EAAMjV,MAAQ,GAAIiV,EAAMlV,OAAS,EAAGkV,EAAMjV,MAAOiV,EAAMlV,aAC7E+iD,EAAImB,UAKN,KAAIhkE,MAAMgjE,IAAWA,GAAU,GAA/B,CAMA,OAFAH,EAAIoB,YAEIjvC,GAER,QACC6tC,EAAIO,IAAIjhE,EAAG4lB,EAAGi7C,EAAQ,EAAGT,GACzBM,EAAIQ,YACJ,MACD,IAAK,WACJR,EAAIM,OAAOhhE,EAAIC,KAAK6zD,IAAI2N,GAAOZ,EAAQj7C,EAAI3lB,KAAK4zD,IAAI4N,GAAOZ,GAC3DY,GAAOlB,EACPG,EAAIqB,OAAO/hE,EAAIC,KAAK6zD,IAAI2N,GAAOZ,EAAQj7C,EAAI3lB,KAAK4zD,IAAI4N,GAAOZ,GAC3DY,GAAOlB,EACPG,EAAIqB,OAAO/hE,EAAIC,KAAK6zD,IAAI2N,GAAOZ,EAAQj7C,EAAI3lB,KAAK4zD,IAAI4N,GAAOZ,GAC3DH,EAAIQ,YACJ,MACD,IAAK,cASJxxE,EAAOmxE,GADPW,EAAwB,KAATX,GAEfS,EAAUrhE,KAAK4zD,IAAI4N,EAAMnB,GAAc5wE,EACvC6xE,EAAUthE,KAAK6zD,IAAI2N,EAAMnB,GAAc5wE,EACvCgxE,EAAIO,IAAIjhE,EAAIshE,EAAS17C,EAAI27C,EAASC,EAAcC,EAAM7N,EAAI6N,EAAMpB,GAChEK,EAAIO,IAAIjhE,EAAIuhE,EAAS37C,EAAI07C,EAASE,EAAcC,EAAMpB,EAASoB,GAC/Df,EAAIO,IAAIjhE,EAAIshE,EAAS17C,EAAI27C,EAASC,EAAcC,EAAKA,EAAMpB,GAC3DK,EAAIO,IAAIjhE,EAAIuhE,EAAS37C,EAAI07C,EAASE,EAAcC,EAAMpB,EAASoB,EAAM7N,GACrE8M,EAAIQ,YACJ,MACD,IAAK,OACJ,IAAKG,EAAU,CACd3xE,EAAOuQ,KAAK+hE,QAAUnB,EACtBH,EAAIS,KAAKnhE,EAAItQ,EAAMk2B,EAAIl2B,EAAM,EAAIA,EAAM,EAAIA,GAC3C,MAED+xE,GAAOnB,EAER,IAAK,UACJgB,EAAUrhE,KAAK4zD,IAAI4N,GAAOZ,EAC1BU,EAAUthE,KAAK6zD,IAAI2N,GAAOZ,EAC1BH,EAAIM,OAAOhhE,EAAIshE,EAAS17C,EAAI27C,GAC5Bb,EAAIqB,OAAO/hE,EAAIuhE,EAAS37C,EAAI07C,GAC5BZ,EAAIqB,OAAO/hE,EAAIshE,EAAS17C,EAAI27C,GAC5Bb,EAAIqB,OAAO/hE,EAAIuhE,EAAS37C,EAAI07C,GAC5BZ,EAAIQ,YACJ,MACD,IAAK,WACJO,GAAOnB,EAER,IAAK,QACJgB,EAAUrhE,KAAK4zD,IAAI4N,GAAOZ,EAC1BU,EAAUthE,KAAK6zD,IAAI2N,GAAOZ,EAC1BH,EAAIM,OAAOhhE,EAAIshE,EAAS17C,EAAI27C,GAC5Bb,EAAIqB,OAAO/hE,EAAIshE,EAAS17C,EAAI27C,GAC5Bb,EAAIM,OAAOhhE,EAAIuhE,EAAS37C,EAAI07C,GAC5BZ,EAAIqB,OAAO/hE,EAAIuhE,EAAS37C,EAAI07C,GAC5B,MACD,IAAK,OACJA,EAAUrhE,KAAK4zD,IAAI4N,GAAOZ,EAC1BU,EAAUthE,KAAK6zD,IAAI2N,GAAOZ,EAC1BH,EAAIM,OAAOhhE,EAAIshE,EAAS17C,EAAI27C,GAC5Bb,EAAIqB,OAAO/hE,EAAIshE,EAAS17C,EAAI27C,GAC5Bb,EAAIM,OAAOhhE,EAAIuhE,EAAS37C,EAAI07C,GAC5BZ,EAAIqB,OAAO/hE,EAAIuhE,EAAS37C,EAAI07C,GAC5BG,GAAOnB,EACPgB,EAAUrhE,KAAK4zD,IAAI4N,GAAOZ,EAC1BU,EAAUthE,KAAK6zD,IAAI2N,GAAOZ,EAC1BH,EAAIM,OAAOhhE,EAAIshE,EAAS17C,EAAI27C,GAC5Bb,EAAIqB,OAAO/hE,EAAIshE,EAAS17C,EAAI27C,GAC5Bb,EAAIM,OAAOhhE,EAAIuhE,EAAS37C,EAAI07C,GAC5BZ,EAAIqB,OAAO/hE,EAAIuhE,EAAS37C,EAAI07C,GAC5B,MACD,IAAK,OACJA,EAAUrhE,KAAK4zD,IAAI4N,GAAOZ,EAC1BU,EAAUthE,KAAK6zD,IAAI2N,GAAOZ,EAC1BH,EAAIM,OAAOhhE,EAAIshE,EAAS17C,EAAI27C,GAC5Bb,EAAIqB,OAAO/hE,EAAIshE,EAAS17C,EAAI27C,GAC5B,MACD,IAAK,OACJb,EAAIM,OAAOhhE,EAAG4lB,GACd86C,EAAIqB,OAAO/hE,EAAIC,KAAK4zD,IAAI4N,GAAOZ,EAAQj7C,EAAI3lB,KAAK6zD,IAAI2N,GAAOZ,GAI5DH,EAAIuB,OACJvB,EAAIwB,WAULC,eAAgB,SAAShjD,EAAOgU,GAC/B,IAAIivC,EAAU,KAEd,OAAOjjD,EAAMnf,EAAImzB,EAAKovB,KAAO6f,GAAWjjD,EAAMnf,EAAImzB,EAAK2tC,MAAQsB,GAC9DjjD,EAAMyG,EAAIuN,EAAKsvB,IAAM2f,GAAWjjD,EAAMyG,EAAIuN,EAAK4tC,OAASqB,GAG1DC,SAAU,SAAS3B,EAAKvtC,GACvButC,EAAIgB,OACJhB,EAAIoB,YACJpB,EAAIS,KAAKhuC,EAAKovB,KAAMpvB,EAAKsvB,IAAKtvB,EAAK2tC,MAAQ3tC,EAAKovB,KAAMpvB,EAAK4tC,OAAS5tC,EAAKsvB,KACzEie,EAAI4B,QAGLC,WAAY,SAAS7B,GACpBA,EAAImB,WAGLE,OAAQ,SAASrB,EAAKhD,EAAUvxE,EAAQq2E,GACvC,IAAIC,EAAUt2E,EAAOu2E,YACrB,GAAID,EAAJ,CACC,GAAgB,WAAZA,EAAsB,CACzB,IAAIE,GAAYjF,EAAS19D,EAAI7T,EAAO6T,GAAK,EACzC0gE,EAAIqB,OAAOY,EAAUH,EAAOr2E,EAAOy5B,EAAI83C,EAAS93C,GAChD86C,EAAIqB,OAAOY,EAAUH,EAAO9E,EAAS93C,EAAIz5B,EAAOy5B,OACzB,UAAZ68C,IAAwBD,GAAsB,UAAZC,GAAuBD,EACpE9B,EAAIqB,OAAOrE,EAAS19D,EAAG7T,EAAOy5B,GAE9B86C,EAAIqB,OAAO51E,EAAO6T,EAAG09D,EAAS93C,GAE/B86C,EAAIqB,OAAO51E,EAAO6T,EAAG7T,EAAOy5B,QAIxBz5B,EAAOy2E,QAKZlC,EAAImC,cACHL,EAAO9E,EAASoF,sBAAwBpF,EAASqF,kBACjDP,EAAO9E,EAASsF,sBAAwBtF,EAASuF,kBACjDT,EAAOr2E,EAAO42E,kBAAoB52E,EAAO22E,sBACzCN,EAAOr2E,EAAO82E,kBAAoB92E,EAAO62E,sBACzC72E,EAAO6T,EACP7T,EAAOy5B,GAVP86C,EAAIqB,OAAO51E,EAAO6T,EAAG7T,EAAOy5B,KAc3Bs9C,EAAiB1C,EAWrB7C,EAAa1zE,MAAQu2E,EAAUv2E,MAS/B0zE,EAAawF,qBAAuB,SAASzC,GAC5CA,EAAIoB,YACJtB,EAAUI,YAAYzxE,MAAMqxE,EAAWh0E,YAGxC,IAAI8tB,EAAW,CAId8oD,KAAM,SAAS3F,EAAOpiE,GACrB,OAAOsiE,EAAaf,MAAM5yE,KAAKyzE,KAAWzzE,KAAKyzE,GAAS,IAAKpiE,KAM/Dif,EAAS8oD,KAAK,SAAU,CACvBC,aAAc,kBACdC,iBAAkB,OAClBC,kBAAmB,qDACnBC,gBAAiB,GACjBC,iBAAkB,SAClBC,kBAAmB,IACnBC,WAAW,IAGZ,IAAIC,EAAgBtpD,EAEhBuhD,EAAiB8B,EAAa9B,eAQlC,SAASgI,EAAaC,GACrB,OAAKA,GAAQnG,EAAalC,cAAcqI,EAAKp0E,OAASiuE,EAAalC,cAAcqI,EAAKC,QAC9E,MAGAD,EAAKjxC,MAAQixC,EAAKjxC,MAAQ,IAAM,KACpCixC,EAAKvJ,OAASuJ,EAAKvJ,OAAS,IAAM,IACnCuJ,EAAKp0E,KAAO,MACZo0E,EAAKC,OAOT,IAAIC,GAAkB,CASrBC,aAAc,SAASr8E,EAAO8H,GAC7B,IAAIw0E,GAAW,GAAKt8E,GAAOskC,MAAM,wCACjC,IAAKg4C,GAA0B,WAAfA,EAAQ,GACvB,OAAc,IAAPx0E,EAKR,OAFA9H,GAASs8E,EAAQ,GAETA,EAAQ,IAChB,IAAK,KACJ,OAAOt8E,EACR,IAAK,IACJA,GAAS,IAIV,OAAO8H,EAAO9H,GAUfu8E,UAAW,SAASv8E,GACnB,IAAIu7B,EAAGD,EAAG9vB,EAAGrG,EAWb,OATI4wE,EAAahuE,SAAS/H,IACzBu7B,GAAKv7B,EAAM66D,KAAO,EAClBv/B,GAAKt7B,EAAMk5E,OAAS,EACpB1tE,GAAKxL,EAAMm5E,QAAU,EACrBh0E,GAAKnF,EAAM26D,MAAQ,GAEnBp/B,EAAID,EAAI9vB,EAAIrG,GAAKnF,GAAS,EAGpB,CACN66D,IAAKt/B,EACL29C,MAAO59C,EACP69C,OAAQ3tE,EACRmvD,KAAMx1D,EACN4wB,OAAQwF,EAAI/vB,EACZwqB,MAAO7wB,EAAIm2B,IAWbkhD,WAAY,SAAS5mD,GACpB,IAAI6mD,EAAiBT,EAAc/zE,OAC/BH,EAAOmsE,EAAer+C,EAAQ8mD,SAAUD,EAAeb,iBACvDM,EAAO,CACVC,OAAQlI,EAAer+C,EAAQ+mD,WAAYF,EAAed,mBAC1D7xC,WAAYisC,EAAangD,QAAQymD,aAAapI,EAAer+C,EAAQkU,WAAY2yC,EAAeX,mBAAoBh0E,GACpHA,KAAMA,EACNmjC,MAAOgpC,EAAer+C,EAAQgnD,UAAWH,EAAeZ,kBACxDlJ,OAAQ,KACRvkE,OAAQ,IAIT,OADA8tE,EAAK9tE,OAAS6tE,EAAaC,GACpBA,GAcRv1E,QAAS,SAASk2E,EAAQvgD,EAASn6B,EAAO6E,GACzC,IACI7H,EAAGs1E,EAAMz0E,EADT88E,GAAY,EAGhB,IAAK39E,EAAI,EAAGs1E,EAAOoI,EAAO58E,OAAQd,EAAIs1E,IAAQt1E,EAE7C,QAAcO,KADdM,EAAQ68E,EAAO19E,WAICO,IAAZ48B,GAA0C,oBAAVt8B,IACnCA,EAAQA,EAAMs8B,GACdwgD,GAAY,QAECp9E,IAAVyC,GAAuB4zE,EAAah3E,QAAQiB,KAC/CA,EAAQA,EAAMmC,GACd26E,GAAY,QAECp9E,IAAVM,GAIH,OAHIgH,IAAS81E,IACZ91E,EAAK81E,WAAY,GAEX98E,IAUP+8E,GAAY,CAKfC,WAAY,SAASh9E,GACpB,IAEIb,EAFAgE,EAAS,GACTqV,EAAOH,KAAKG,KAAKxY,GAGrB,IAAKb,EAAI,EAAGA,EAAIqZ,EAAMrZ,IACjBa,EAAQb,IAAM,IACjBgE,EAAOpD,KAAKZ,GACZgE,EAAOpD,KAAKC,EAAQb,IAUtB,OAPIqZ,KAAiB,EAAPA,IACbrV,EAAOpD,KAAKyY,GAGbrV,EAAO85E,MAAK,SAAS1xE,EAAGC,GACvB,OAAOD,EAAIC,KACTg0D,MACIr8D,GAGR+5E,MAAO7kE,KAAK6kE,OAAS,SAAS9kE,GAC7B,IAAI3D,EAAW4D,KAAK27B,IAAI57B,GAAKC,KAAK8kE,OAG9BC,EAAY/kE,KAAKuH,MAAMnL,GAG3B,OAFkB2D,IAAMC,KAAKC,IAAI,GAAI8kE,GAEhBA,EAAY3oE,IAI/B4oE,GAAeN,GAWnBhH,EAAamH,MAAQH,GAAUG,MAE/B,IAAII,GAAgB,SAASC,EAAOvnD,GACnC,MAAO,CACN5d,EAAG,SAASA,GACX,OAAOmlE,EAAQA,EAAQvnD,EAAQ5d,GAEhColE,SAAU,SAAS7hD,GAClB3F,EAAQ2F,GAET8hD,UAAW,SAASC,GACnB,MAAc,WAAVA,EACIA,EAES,UAAVA,EAAoB,OAAS,SAErCC,MAAO,SAASvlE,EAAGpY,GAClB,OAAOoY,EAAIpY,GAEZ49E,WAAY,SAASxlE,EAAGylE,GACvB,OAAOzlE,EAAIylE,KAKVC,GAAgB,WACnB,MAAO,CACN1lE,EAAG,SAASA,GACX,OAAOA,GAERolE,SAAU,SAAS7hD,KAEnB8hD,UAAW,SAASC,GACnB,OAAOA,GAERC,MAAO,SAASvlE,EAAGpY,GAClB,OAAOoY,EAAIpY,GAEZ49E,WAAY,SAASxlE,EAAG2lE,GACvB,OAAO3lE,KAqCN4lE,GAAYjI,EACZkI,GAAS5F,EACT6F,GAAS5C,EACT1lD,GAAUwmD,GACV+B,GAAOd,GACPe,GAXc,CACjBd,cA3BgB,SAASc,EAAKb,EAAOvnD,GACrC,OAAOooD,EAAMd,GAAcC,EAAOvnD,GAAS8nD,MA2B3CO,sBAxB2B,SAASvF,EAAKwF,GACzC,IAAIrzC,EAAOszC,EACO,QAAdD,GAAqC,QAAdA,IAE1BC,EAAW,EADXtzC,EAAQ6tC,EAAIoF,OAAOjzC,OAEZuzC,iBAAiB,aACvBvzC,EAAMwzC,oBAAoB,cAG3BxzC,EAAMC,YAAY,YAAaozC,EAAW,aAC1CxF,EAAI4F,kBAAoBH,IAezBI,qBAX0B,SAAS7F,GACnC,IAAIyF,EAAWzF,EAAI4F,uBACFh/E,IAAb6+E,WACIzF,EAAI4F,kBACX5F,EAAIoF,OAAOjzC,MAAMC,YAAY,YAAaqzC,EAAS,GAAIA,EAAS,OAsBlE,SAASK,GAAYnzD,EAAOkrB,EAAM4zB,EAAOsU,GACxC,IACI1/E,EAAGs1E,EAAMj0E,EAAKs+E,EAAQC,EAAQx6E,EAAQqB,EAAMo5E,EAAIC,EADhD56E,EAAOzF,OAAOyF,KAAKkmE,GAGvB,IAAKprE,EAAI,EAAGs1E,EAAOpwE,EAAKpE,OAAQd,EAAIs1E,IAAQt1E,EAa3C,GAVAoF,EAASgmE,EAFT/pE,EAAM6D,EAAKlF,IAMNw3C,EAAKtzC,eAAe7C,KACxBm2C,EAAKn2C,GAAO+D,IAGbu6E,EAASnoC,EAAKn2C,MAEC+D,GAAqB,MAAX/D,EAAI,GAA7B,CAYA,GARKirB,EAAMpoB,eAAe7C,KACzBirB,EAAMjrB,GAAOs+E,IAKdl5E,SAAcrB,YAFdw6E,EAAStzD,EAAMjrB,IAKd,GAAa,WAAToF,GAEH,IADAo5E,EAAKtL,EAAaqL,IACXrP,QACNuP,EAAKvL,EAAanvE,IACXmrE,MAAO,CACb/4B,EAAKn2C,GAAOy+E,EAAGxM,IAAIuM,EAAIH,GAAMvQ,YAC7B,eAGI,GAAI0P,GAAUjK,SAASgL,IAAWf,GAAUjK,SAASxvE,GAAS,CACpEoyC,EAAKn2C,GAAOu+E,GAAUx6E,EAASw6E,GAAUF,EACzC,SAIFloC,EAAKn2C,GAAO+D,GAnDdy5E,GAAUC,OAASA,GACnBD,GAAUE,OAASA,GACnBF,GAAUpoD,QAAUA,GACpBooD,GAAUG,KAAOA,GACjBH,GAAUI,IAAMA,GAmDhB,IAAIc,GAAU,SAASC,GACtBnB,GAAU3jB,OAAOj4D,KAAM+8E,GACvB/8E,KAAKg9E,WAAW73E,MAAMnF,KAAMwC,YAG7Bo5E,GAAU3jB,OAAO6kB,GAAQr+E,UAAW,CACnCw+E,WAAO3/E,EAEP0/E,WAAY,WACXh9E,KAAKk9E,QAAS,GAGfC,MAAO,WACN,IAAIliC,EAAKj7C,KAKT,OAJKi7C,EAAGmiC,QACPniC,EAAGmiC,MAAQxB,GAAU3jB,OAAO,GAAIhd,EAAGoiC,SAEpCpiC,EAAGqiC,OAAS,GACLriC,GAGR3e,WAAY,SAASmgD,GACpB,IAAIxhC,EAAKj7C,KACLmoE,EAAQltB,EAAGoiC,OACXh0D,EAAQ4xB,EAAGqiC,OACX/oC,EAAO0G,EAAGmiC,MAGd,OAAKjV,GAAkB,IAATsU,GAMTloC,IACJA,EAAO0G,EAAGmiC,MAAQ,IAGd/zD,IACJA,EAAQ4xB,EAAGqiC,OAAS,IAGrBd,GAAYnzD,EAAOkrB,EAAM4zB,EAAOsU,GAEzBxhC,IAfNA,EAAGmiC,MAAQxB,GAAU3jB,OAAO,GAAIkQ,GAChCltB,EAAGqiC,OAAS,KACLriC,IAgBTsiC,gBAAiB,WAChB,MAAO,CACNvnE,EAAGhW,KAAKq9E,OAAOrnE,EACf4lB,EAAG57B,KAAKq9E,OAAOzhD,IAIjB4hD,SAAU,WACT,OAAO5B,GAAU6B,SAASz9E,KAAKq9E,OAAOrnE,IAAM4lE,GAAU6B,SAASz9E,KAAKq9E,OAAOzhD,MAI7EkhD,GAAQ7kB,OAAS2jB,GAAUzI,SAE3B,IAAIuK,GAAeZ,GAEfa,GAAYD,GAAazlB,OAAO,CACnCwe,MAAO,KACPmH,YAAa,EACbC,SAAU,GACVhC,OAAQ,GACRj+C,OAAQ,KAERkgD,oBAAqB,KACrBC,oBAAqB,OAGlBC,GAAiBL,GAUrBnhF,OAAOqG,eAAe86E,GAAUl/E,UAAW,kBAAmB,CAC7D2B,IAAK,WACJ,OAAOJ,QAUTxD,OAAOqG,eAAe86E,GAAUl/E,UAAW,gBAAiB,CAC3D2B,IAAK,WACJ,OAAOJ,KAAKy2E,OAEbt2E,IAAK,SAASvC,GACboC,KAAKy2E,MAAQ74E,KAIfg8E,EAAcR,KAAK,SAAU,CAC5BrpC,UAAW,CACVkuC,SAAU,IACVpC,OAAQ,eACRqC,WAAYtC,GAAUxX,KACtB+Z,WAAYvC,GAAUxX,QAIxB,IAAIga,GAAkB,CACrBC,WAAY,GACZC,QAAS,KAQTC,aAAc,SAAS9H,EAAO1mC,EAAWkuC,EAAUngD,GAClD,IACI/gC,EAAGs1E,EADHgM,EAAar+E,KAAKq+E,WAWtB,IARAtuC,EAAU0mC,MAAQA,EAClB1mC,EAAUutB,UAAYnvD,KAAKgmC,MAC3BpE,EAAUkuC,SAAWA,EAEhBngD,IACJ24C,EAAM+H,WAAY,GAGdzhF,EAAI,EAAGs1E,EAAOgM,EAAWxgF,OAAQd,EAAIs1E,IAAQt1E,EACjD,GAAIshF,EAAWthF,GAAG05E,QAAUA,EAE3B,YADA4H,EAAWthF,GAAKgzC,GAKlBsuC,EAAW1gF,KAAKoyC,GAGU,IAAtBsuC,EAAWxgF,QACdmC,KAAK88D,yBAIP2hB,gBAAiB,SAAShI,GACzB,IAAI12E,EAAQ67E,GAAU8C,UAAU1+E,KAAKq+E,YAAY,SAAStuC,GACzD,OAAOA,EAAU0mC,QAAUA,MAGb,IAAX12E,IACHC,KAAKq+E,WAAWl0E,OAAOpK,EAAO,GAC9B02E,EAAM+H,WAAY,IAIpB1hB,sBAAuB,WACtB,IAAI7hB,EAAKj7C,KACU,OAAfi7C,EAAGqjC,UAINrjC,EAAGqjC,QAAU1C,GAAU+C,iBAAiBhgF,KAAK2M,QAAQ,WACpD2vC,EAAGqjC,QAAU,KACbrjC,EAAG2jC,mBAQNA,YAAa,WACZ,IAAI3jC,EAAKj7C,KAETi7C,EAAG4jC,UAGC5jC,EAAGojC,WAAWxgF,OAAS,GAC1Bo9C,EAAG6hB,yBAOL+hB,QAAS,WAMR,IALA,IACI9uC,EAAW0mC,EAAOoH,EAAUiB,EAD5BT,EAAar+E,KAAKq+E,WAElBthF,EAAI,EAGDA,EAAIshF,EAAWxgF,QAErB44E,GADA1mC,EAAYsuC,EAAWthF,IACL05E,MAClBoH,EAAW9tC,EAAU8tC,SAIrBiB,EAAW7oE,KAAK8mD,OAAO5uD,KAAKgmC,MAAQpE,EAAUutB,WAAavtB,EAAUkuC,SAAWJ,GAAY,EAC5F9tC,EAAU6tC,YAAc3nE,KAAKsG,IAAIuiE,EAAUjB,GAE3CjC,GAAUv1B,SAAStW,EAAUnS,OAAQ,CAAC64C,EAAO1mC,GAAY0mC,GACzDmF,GAAUv1B,SAAStW,EAAU+tC,oBAAqB,CAAC/tC,GAAY0mC,GAE3D1mC,EAAU6tC,aAAeC,GAC5BjC,GAAUv1B,SAAStW,EAAUguC,oBAAqB,CAAChuC,GAAY0mC,GAC/DA,EAAM+H,WAAY,EAClBH,EAAWl0E,OAAOpN,EAAG,MAEnBA,IAMFwH,GAAUq3E,GAAUpoD,QAAQjvB,QAE5Bw6E,GAAc,CAAC,OAAQ,MAAO,QAAS,SAAU,WAOrD,SAASC,GAAkBz+E,EAAOs+C,GAC7Bt+C,EAAM0+E,SACT1+E,EAAM0+E,SAAS7jC,UAAUz9C,KAAKkhD,IAI/BriD,OAAOqG,eAAetC,EAAO,WAAY,CACxCqM,cAAc,EACd9J,YAAY,EACZlF,MAAO,CACNw9C,UAAW,CAACyD,MAIdkgC,GAAYh9E,SAAQ,SAAS3D,GAC5B,IAAI8gE,EAAS,SAAW9gE,EAAI2qC,OAAO,GAAG5I,cAAgB/hC,EAAIQ,MAAM,GAC5DuvB,EAAO5tB,EAAMnC,GAEjB5B,OAAOqG,eAAetC,EAAOnC,EAAK,CACjCwO,cAAc,EACd9J,YAAY,EACZlF,MAAO,WACN,IAAIsH,EAAOtI,MAAM6B,UAAUG,MAAMD,KAAK6D,WAClC08E,EAAM/wD,EAAKhpB,MAAMnF,KAAMkF,GAQ3B,OANA02E,GAAU5J,KAAKzxE,EAAM0+E,SAAS7jC,WAAW,SAASj9C,GACnB,oBAAnBA,EAAO+gE,IACjB/gE,EAAO+gE,GAAQ/5D,MAAMhH,EAAQ+G,MAIxBg6E,SAUX,SAASC,GAAoB5+E,EAAOs+C,GACnC,IAAIugC,EAAO7+E,EAAM0+E,SACjB,GAAKG,EAAL,CAIA,IAAIhkC,EAAYgkC,EAAKhkC,UACjBr7C,EAAQq7C,EAAU5pB,QAAQqtB,IACf,IAAX9+C,GACHq7C,EAAUjxC,OAAOpK,EAAO,GAGrBq7C,EAAUv9C,OAAS,IAIvBkhF,GAAYh9E,SAAQ,SAAS3D,UACrBmC,EAAMnC,aAGPmC,EAAM0+E,WAId,IAAII,GAAoB,SAAS5I,EAAO6I,GACvCt/E,KAAKg9E,WAAWvG,EAAO6I,IAGxB1D,GAAU3jB,OAAOonB,GAAkB5gF,UAAW,CAM7C8gF,mBAAoB,KAMpBC,gBAAiB,KAQjBC,uBAAwB,CACvB,kBACA,iBACA,cACA,aACA,mBACA,kBACA,eASDC,oBAAqB,CACpB,kBACA,cACA,cACA,cAGD1C,WAAY,SAASvG,EAAO6I,GAC3B,IAAIrkC,EAAKj7C,KACTi7C,EAAGw7B,MAAQA,EACXx7B,EAAGl7C,MAAQu/E,EACXrkC,EAAG0kC,aACH1kC,EAAG2kC,cACH3kC,EAAGgiC,MAAQhiC,EAAG4kC,UAAUr8E,MAGzBs8E,YAAa,SAASR,GACrBt/E,KAAKD,MAAQu/E,GAGdK,WAAY,WACX,IAAI1kC,EAAKj7C,KACL2pC,EAAOsR,EAAG4kC,UACVpJ,EAAQx7B,EAAGw7B,MACXsJ,EAAStJ,EAAMsJ,OACfvrD,EAAUymB,EAAG+kC,aACbC,EAAaxJ,EAAMjjD,QAAQusD,OAEV,OAAjBp2C,EAAKu2C,SAAsBv2C,EAAKu2C,WAAWH,IAAWvrD,EAAQ0rD,UACjEv2C,EAAKu2C,QAAU1rD,EAAQ0rD,SAAWD,EAAWE,MAAM,GAAGvqD,IAElC,OAAjB+T,EAAKy2C,SAAsBz2C,EAAKy2C,WAAWL,IAAWvrD,EAAQ4rD,UACjEz2C,EAAKy2C,QAAU5rD,EAAQ4rD,SAAWH,EAAWI,MAAM,GAAGzqD,KAIxDoqD,WAAY,WACX,OAAOhgF,KAAKy2E,MAAM71E,KAAKozB,SAASh0B,KAAKD,QAGtC8/E,QAAS,WACR,OAAO7/E,KAAKy2E,MAAM6J,eAAetgF,KAAKD,QAGvCwgF,cAAe,SAASC,GACvB,OAAOxgF,KAAKy2E,MAAMsJ,OAAOS,IAM1BC,iBAAkB,WACjB,OAAOzgF,KAAK6/E,UAAUO,SAMvBM,iBAAkB,WACjB,OAAO1gF,KAAK6/E,UAAUK,SAMvBS,eAAgB,WACf,OAAO3gF,KAAKugF,cAAcvgF,KAAKygF,qBAMhCG,eAAgB,WACf,OAAO5gF,KAAKugF,cAAcvgF,KAAK0gF,qBAGhC/e,MAAO,WACN3hE,KAAK6gF,SAAQ,IAMdnrD,QAAS,WACJ11B,KAAK8gF,OACR3B,GAAoBn/E,KAAK8gF,MAAO9gF,OAIlC+gF,kBAAmB,WAClB,IAAI9lC,EAAKj7C,KACLwD,EAAOy3C,EAAGskC,mBACd,OAAO/7E,GAAQ,IAAIA,EAAK,CACvB6sB,OAAQ4qB,EAAGw7B,MACXuK,cAAe/lC,EAAGl7C,SAIpBkhF,eAAgB,SAASlhF,GACxB,IAAIk7C,EAAKj7C,KACLwD,EAAOy3C,EAAGukC,gBACd,OAAOh8E,GAAQ,IAAIA,EAAK,CACvB6sB,OAAQ4qB,EAAGw7B,MACXuK,cAAe/lC,EAAGl7C,MAClBmhF,OAAQnhF,KAIV6/E,YAAa,WACZ,IAII7iF,EAAGs1E,EAJHp3B,EAAKj7C,KACL2pC,EAAOsR,EAAG4kC,UACVj/E,EAAOq6C,EAAG+kC,aAAap/E,MAAQ,GAC/BugF,EAAWx3C,EAAK/oC,KAGpB,IAAK7D,EAAI,EAAGs1E,EAAOzxE,EAAK/C,OAAQd,EAAIs1E,IAAQt1E,EAC3CokF,EAASpkF,GAAKokF,EAASpkF,IAAMk+C,EAAGgmC,eAAelkF,GAGhD4sC,EAAKnV,QAAUmV,EAAKnV,SAAWymB,EAAG8lC,qBAGnCK,mBAAoB,SAASrhF,GAC5B,IAAIsK,EAAUrK,KAAKihF,eAAelhF,GAClCC,KAAK6/E,UAAUj/E,KAAKuJ,OAAOpK,EAAO,EAAGsK,GACrCrK,KAAKqhF,cAAch3E,EAAStK,GAAO,IAGpCuhF,sBAAuB,WACtB,IAAIrmC,EAAKj7C,KACLw0B,EAAUymB,EAAG+kC,aACbp/E,EAAO4zB,EAAQ5zB,OAAS4zB,EAAQ5zB,KAAO,IAKvCq6C,EAAG6lC,QAAUlgF,IACZq6C,EAAG6lC,OAEN3B,GAAoBlkC,EAAG6lC,MAAO7lC,GAG3Br6C,GAAQpE,OAAO+kF,aAAa3gF,IAC/Bo+E,GAAkBp+E,EAAMq6C,GAEzBA,EAAG6lC,MAAQlgF,GAKZq6C,EAAGumC,kBAOJC,WAAY,WACX,IAAIxmC,EAAKj7C,KACTi7C,EAAGymC,QAAU9F,GAAUhJ,MAAMp2E,OAAO+Q,OAAO,MAAO,CACjD0tC,EAAGw7B,MAAMjjD,QAAQQ,SAASinB,EAAGgiC,OAC7BhiC,EAAG+kC,cACD,CACFhN,OAAQ,SAAS50E,EAAK+D,EAAQC,GACjB,UAARhE,GAA2B,SAARA,GACtBw9E,GAAUnJ,QAAQr0E,EAAK+D,EAAQC,OAMnCy+E,QAAS,SAASlf,GACjB,IAAI1mB,EAAKj7C,KACTi7C,EAAGwmC,aACHxmC,EAAG0mC,gBAAkB,KACrB1mC,EAAG1lB,OAAOosC,IAGXpsC,OAAQqmD,GAAUxX,KAElB9nC,WAAY,SAASslD,GAMpB,IALA,IAAIj4C,EAAO3pC,KAAK6/E,UACZgC,EAAWl4C,EAAK/oC,MAAQ,GACxByxE,EAAOwP,EAAShkF,OAChBd,EAAI,EAEDA,EAAIs1E,IAAQt1E,EAClB8kF,EAAS9kF,GAAGu/B,WAAWslD,GAGpBj4C,EAAKnV,SACRmV,EAAKnV,QAAQ8H,WAAWslD,IAI1BE,KAAM,WACL,IAAIn4C,EAAO3pC,KAAK6/E,UACZgC,EAAWl4C,EAAK/oC,MAAQ,GACxByxE,EAAOwP,EAAShkF,OAChBd,EAAI,EAMR,IAJI4sC,EAAKnV,SACRmV,EAAKnV,QAAQstD,OAGP/kF,EAAIs1E,IAAQt1E,EAClB8kF,EAAS9kF,GAAG+kF,QAUdC,SAAU,SAAShiF,GAClB,IAGI8oC,EAHAoS,EAAKj7C,KACL2pC,EAAOsR,EAAG4kC,UACVrrD,EAAUmV,EAAKnV,QAenB,OAZAymB,EAAGwmC,aACCjtD,QAAqBl3B,IAAVyC,EACd8oC,EAAQoS,EAAG+mC,8BAA8BxtD,GAAW,KAEpDz0B,EAAQA,GAAS,EACjB8oC,EAAQoS,EAAGgnC,2BAA2Bt4C,EAAK/oC,KAAKb,IAAU,GAAIA,KAG5C,IAAf8oC,EAAMovC,MAAiC,OAAfpvC,EAAMovC,OACjCpvC,EAAMq5C,gBAAkBr5C,EAAMs5C,aAGxBt5C,GAMRm5C,8BAA+B,SAAS33E,EAAS+3E,GAChD,IAOIrlF,EAAGs1E,EAAMj0E,EAAKikF,EAPdpnC,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACX6L,EAAcrnC,EAAGymC,QACjBa,EAASl4E,EAAQk4E,QAAU,GAC3B/uD,EAAUijD,EAAMjjD,QAAQquD,SAAS5mC,EAAGskC,mBAAmB9gF,UAAUw+E,QAAU,GAC3EuF,EAAiBvnC,EAAGwkC,uBACpBpuE,EAAS,GAIT6oB,EAAU,CACbu8C,MAAOA,EACPjiD,QAASymB,EAAG+kC,aACZV,aAAcrkC,EAAGl7C,MACjBqiF,MAAOA,GAGR,IAAKrlF,EAAI,EAAGs1E,EAAOmQ,EAAe3kF,OAAQd,EAAIs1E,IAAQt1E,EACrDqB,EAAMokF,EAAezlF,GACrBslF,EAAUD,EAAQ,QAAUhkF,EAAI2qC,OAAO,GAAG5I,cAAgB/hC,EAAIQ,MAAM,GAAKR,EACzEiT,EAAOjT,GAAOmG,GAAQ,CACrBg+E,EAAOF,GACPC,EAAYD,GACZ7uD,EAAQ6uD,IACNnoD,GAGJ,OAAO7oB,GAMR4wE,2BAA4B,SAAS53E,EAAStK,GAC7C,IAAIk7C,EAAKj7C,KACLuiF,EAASl4E,GAAWA,EAAQk4E,OAC5BE,EAASxnC,EAAG0mC,gBAChB,GAAIc,IAAWF,EACd,OAAOE,EAER,IAiBIxgF,EAAMlF,EAAGs1E,EAAMj0E,EAjBfq4E,EAAQx7B,EAAGw7B,MACX6L,EAAcrnC,EAAGymC,QACjBluD,EAAUijD,EAAMjjD,QAAQquD,SAAS5mC,EAAGukC,gBAAgB/gF,UAAUw+E,QAAU,GACxEuF,EAAiBvnC,EAAGykC,oBACpBruE,EAAS,GAGT6oB,EAAU,CACbu8C,MAAOA,EACPiM,UAAW3iF,EACXy0B,QAASymB,EAAG+kC,aACZV,aAAcrkC,EAAGl7C,OAId6E,EAAO,CAAC81E,WAAY6H,GAMxB,GAFAA,EAASA,GAAU,GAEf3G,GAAUj/E,QAAQ6lF,GACrB,IAAKzlF,EAAI,EAAGs1E,EAAOmQ,EAAe3kF,OAAQd,EAAIs1E,IAAQt1E,EAErDsU,EADAjT,EAAMokF,EAAezlF,IACPwH,GAAQ,CACrBg+E,EAAOnkF,GACPkkF,EAAYlkF,GACZo1B,EAAQp1B,IACN87B,EAASn6B,EAAO6E,QAIpB,IAAK7H,EAAI,EAAGs1E,GADZpwE,EAAOzF,OAAOyF,KAAKugF,IACK3kF,OAAQd,EAAIs1E,IAAQt1E,EAE3CsU,EADAjT,EAAM6D,EAAKlF,IACGwH,GAAQ,CACrBg+E,EAAOnkF,GACPkkF,EAAYE,EAAepkF,IAC3BkkF,EAAYlkF,GACZo1B,EAAQp1B,IACN87B,EAASn6B,EAAO6E,GAQrB,OAJIA,EAAK81E,YACRz/B,EAAG0mC,gBAAkBnlF,OAAOmmF,OAAOtxE,IAG7BA,GAGRuxE,iBAAkB,SAASv4E,GAC1BuxE,GAAUhJ,MAAMvoE,EAAQgzE,OAAQhzE,EAAQw4E,gBAAkB,WACnDx4E,EAAQw4E,gBAGhBC,cAAe,SAASz4E,GACvB,IAAImqB,EAAUx0B,KAAKy2E,MAAM71E,KAAKozB,SAAS3pB,EAAQ22E,eAC3CjhF,EAAQsK,EAAQ62E,OAChBqB,EAASl4E,EAAQk4E,QAAU,GAC3Bpa,EAAQ99D,EAAQgzE,OAChB0F,EAAgBnH,GAAUmH,cAE9B14E,EAAQw4E,eAAiB,CACxBX,gBAAiB/Z,EAAM+Z,gBACvBC,YAAaha,EAAMga,YACnBa,YAAa7a,EAAM6a,aAGpB7a,EAAM+Z,gBAAkB39E,GAAQ,CAACg+E,EAAOU,qBAAsBzuD,EAAQyuD,qBAAsBF,EAAc5a,EAAM+Z,uBAAmB5kF,EAAWyC,GAC9IooE,EAAMga,YAAc59E,GAAQ,CAACg+E,EAAOW,iBAAkB1uD,EAAQ0uD,iBAAkBH,EAAc5a,EAAMga,mBAAe7kF,EAAWyC,GAC9HooE,EAAM6a,YAAcz+E,GAAQ,CAACg+E,EAAOY,iBAAkB3uD,EAAQ2uD,iBAAkBhb,EAAM6a,kBAAc1lF,EAAWyC,IAMhHqjF,yBAA0B,WACzB,IAAI/4E,EAAUrK,KAAK6/E,UAAUrrD,QAEzBnqB,GACHrK,KAAK4iF,iBAAiBv4E,IAOxBg5E,sBAAuB,WACtB,IAEItmF,EAAGs1E,EAAMj0E,EAAK6D,EAAMqhF,EAAcnb,EAFlC99D,EAAUrK,KAAK6/E,UAAUrrD,QACzBjmB,EAAO,GAGX,GAAKlE,EAAL,CAQA,IAJA89D,EAAQ99D,EAAQgzE,OAChBiG,EAAetjF,KAAKgiF,8BAA8B33E,GAAS,GAGtDtN,EAAI,EAAGs1E,GADZpwE,EAAOzF,OAAOyF,KAAKqhF,IACKzlF,OAAQd,EAAIs1E,IAAQt1E,EAE3CwR,EADAnQ,EAAM6D,EAAKlF,IACCorE,EAAM/pE,GAClB+pE,EAAM/pE,GAAOklF,EAAallF,GAG3BiM,EAAQw4E,eAAiBt0E,IAM1BizE,eAAgB,WACf,IAAIvmC,EAAKj7C,KACL2pC,EAAOsR,EAAG4kC,UACVj/E,EAAOq6C,EAAG+kC,aAAap/E,KACvB2iF,EAAU55C,EAAK/oC,KAAK/C,OACpB2lF,EAAU5iF,EAAK/C,OAEf2lF,EAAUD,EACb55C,EAAK/oC,KAAKuJ,OAAOq5E,EAASD,EAAUC,GAC1BA,EAAUD,GACpBtoC,EAAGwoC,eAAeF,EAASC,EAAUD,IAOvCE,eAAgB,SAASp6D,EAAOqT,GAC/B,IAAK,IAAI3/B,EAAI,EAAGA,EAAI2/B,IAAS3/B,EAC5BiD,KAAKohF,mBAAmB/3D,EAAQtsB,IAOlC2mF,WAAY,WACX,IAAIhnD,EAAQl6B,UAAU3E,OACtBmC,KAAKyjF,eAAezjF,KAAKggF,aAAap/E,KAAK/C,OAAS6+B,EAAOA,IAM5DinD,UAAW,WACV3jF,KAAK6/E,UAAUj/E,KAAKw8D,OAMrBwmB,YAAa,WACZ5jF,KAAK6/E,UAAUj/E,KAAKgP,SAMrBi0E,aAAc,SAASx6D,EAAOqT,GAC7B18B,KAAK6/E,UAAUj/E,KAAKuJ,OAAOkf,EAAOqT,GAClC18B,KAAKyjF,eAAep6D,EAAO7mB,UAAU3E,OAAS,IAM/CimF,cAAe,WACd9jF,KAAKyjF,eAAe,EAAGjhF,UAAU3E,WAInCwhF,GAAkBpnB,OAAS2jB,GAAUzI,SAErC,IAAI4Q,GAAyB1E,GAEzB2E,GAAgB,EAAV/tE,KAAK2zD,GAaf,SAASqa,GAAQvN,EAAKO,GACrB,IAAIiN,EAAajN,EAAIiN,WACjBC,EAAWlN,EAAIkN,SACfC,EAAcnN,EAAImN,YAClBC,EAAcD,EAAcnN,EAAIqN,YAChCtuE,EAAIihE,EAAIjhE,EACR4lB,EAAIq7C,EAAIr7C,EAIZ86C,EAAIoB,YACJpB,EAAIO,IAAIjhE,EAAG4lB,EAAGq7C,EAAIqN,YAAaJ,EAAaG,EAAaF,EAAWE,GAChEpN,EAAIsN,YAAcH,GACrBC,EAAcD,EAAcnN,EAAIsN,YAChC7N,EAAIO,IAAIjhE,EAAG4lB,EAAGq7C,EAAIsN,YAAcH,EAAaD,EAAWE,EAAaH,EAAaG,GAAa,IAE/F3N,EAAIO,IAAIjhE,EAAG4lB,EAAGwoD,EAAaD,EAAWluE,KAAK2zD,GAAK,EAAGsa,EAAajuE,KAAK2zD,GAAK,GAE3E8M,EAAIQ,YACJR,EAAI4B,OAGL,SAASkM,GAAsB9N,EAAK+N,EAAIxN,EAAKyN,GAC5C,IACI3nF,EADAonF,EAAWlN,EAAIkN,SAenB,IAZIO,IACHzN,EAAIkN,SAAWlN,EAAIiN,WAAaF,GAChCC,GAAQvN,EAAKO,GACbA,EAAIkN,SAAWA,EACXlN,EAAIkN,WAAalN,EAAIiN,YAAcjN,EAAI0N,cAC1C1N,EAAIkN,UAAYH,GAChB/M,EAAI0N,gBAINjO,EAAIoB,YACJpB,EAAIO,IAAIA,EAAIjhE,EAAGihE,EAAIr7C,EAAGq7C,EAAIsN,YAAatN,EAAIiN,WAAaF,GAAK/M,EAAIiN,YAAY,GACxEnnF,EAAI,EAAGA,EAAIk6E,EAAI0N,cAAe5nF,EAClC25E,EAAIwB,SAKL,IAFAxB,EAAIoB,YACJpB,EAAIO,IAAIA,EAAIjhE,EAAGihE,EAAIr7C,EAAG6oD,EAAGH,YAAarN,EAAIiN,WAAYjN,EAAIiN,WAAaF,IAClEjnF,EAAI,EAAGA,EAAIk6E,EAAI0N,cAAe5nF,EAClC25E,EAAIwB,SAIN,SAAS0M,GAAWlO,EAAK+N,EAAIxN,GAC5B,IAAIyN,EAA2B,UAAnBD,EAAGI,YAEXH,GACHhO,EAAIoO,UAA6B,EAAjBL,EAAGzB,YACnBtM,EAAIqO,SAAW,UAEfrO,EAAIoO,UAAYL,EAAGzB,YACnBtM,EAAIqO,SAAW,SAGZ9N,EAAI0N,aACPH,GAAsB9N,EAAK+N,EAAIxN,EAAKyN,GAGjCA,GACHT,GAAQvN,EAAKO,GAGdP,EAAIoB,YACJpB,EAAIO,IAAIA,EAAIjhE,EAAGihE,EAAIr7C,EAAG6oD,EAAGH,YAAarN,EAAIiN,WAAYjN,EAAIkN,UAC1DzN,EAAIO,IAAIA,EAAIjhE,EAAGihE,EAAIr7C,EAAGq7C,EAAIsN,YAAatN,EAAIkN,SAAUlN,EAAIiN,YAAY,GACrExN,EAAIQ,YACJR,EAAIwB,SAnFL0B,EAAcR,KAAK,SAAU,CAC5ByI,SAAU,CACT5K,IAAK,CACJiL,gBAAiBtI,EAAc/zE,OAAOwzE,aACtC8I,YAAa,OACba,YAAa,EACb6B,YAAa,aAgFhB,IAAIG,GAActH,GAAazlB,OAAO,CACrCglB,MAAO,MAEPgI,aAAc,SAASC,GACtB,IAAIT,EAAKzkF,KAAKo9E,MAEd,QAAIqH,GACKxuE,KAAKC,IAAIgvE,EAAST,EAAGzuE,EAAG,GAAKC,KAAKC,IAAIuuE,EAAG5N,OAAS4N,EAAGU,YAAa,IAK5EC,QAAS,SAASC,EAAQC,GACzB,IAAIb,EAAKzkF,KAAKo9E,MAEd,GAAIqH,EAAI,CAQP,IAPA,IAAIc,EAAwB3J,GAAU4J,kBAAkBf,EAAI,CAACzuE,EAAGqvE,EAAQzpD,EAAG0pD,IACvEG,EAAQF,EAAsBE,MAC9B3c,EAAWyc,EAAsBzc,SAGjCob,EAAaO,EAAGP,WAChBC,EAAWM,EAAGN,SACXA,EAAWD,GACjBC,GAAYH,GAEb,KAAOyB,EAAQtB,GACdsB,GAASzB,GAEV,KAAOyB,EAAQvB,GACduB,GAASzB,GAIV,IAAI0B,EAAiBD,GAASvB,GAAcuB,GAAStB,EACjDwB,EAAgB7c,GAAY2b,EAAGF,aAAezb,GAAY2b,EAAGH,YAEjE,OAAQoB,GAAiBC,EAE1B,OAAO,GAGRC,eAAgB,WACf,IAAInB,EAAKzkF,KAAKo9E,MACVyI,GAAapB,EAAGP,WAAaO,EAAGN,UAAY,EAC5C2B,GAAcrB,EAAGF,YAAcE,EAAGH,aAAe,EACrD,MAAO,CACNtuE,EAAGyuE,EAAGzuE,EAAIC,KAAK4zD,IAAIgc,GAAaC,EAChClqD,EAAG6oD,EAAG7oD,EAAI3lB,KAAK6zD,IAAI+b,GAAaC,IAIlCC,QAAS,WACR,IAAItB,EAAKzkF,KAAKo9E,MACd,OAAOnnE,KAAK2zD,KAAO6a,EAAGN,SAAWM,EAAGP,aAAe,EAAIjuE,KAAK2zD,MAAQ3zD,KAAKC,IAAIuuE,EAAGH,YAAa,GAAKruE,KAAKC,IAAIuuE,EAAGF,YAAa,KAG5HhH,gBAAiB,WAChB,IAAIkH,EAAKzkF,KAAKo9E,MACV4I,EAAcvB,EAAGP,YAAeO,EAAGN,SAAWM,EAAGP,YAAc,EAC/D+B,GAAmBxB,EAAGH,YAAcG,EAAGF,aAAe,EAAIE,EAAGF,YAEjE,MAAO,CACNvuE,EAAGyuE,EAAGzuE,EAAKC,KAAK4zD,IAAImc,GAAeC,EACnCrqD,EAAG6oD,EAAG7oD,EAAK3lB,KAAK6zD,IAAIkc,GAAeC,IAIrCnE,KAAM,WACL,IAaI/kF,EAbA25E,EAAM12E,KAAKqwB,OAAOqmD,IAClB+N,EAAKzkF,KAAKo9E,MACVgH,EAAkC,UAAnBK,EAAGI,YAA2B,IAAO,EACpD5N,EAAM,CACTjhE,EAAGyuE,EAAGzuE,EACN4lB,EAAG6oD,EAAG7oD,EACN2oD,YAAaE,EAAGF,YAChBD,YAAaruE,KAAK2B,IAAI6sE,EAAGH,YAAcF,EAAa,GACpDA,YAAaA,EACbF,WAAYO,EAAGP,WACfC,SAAUM,EAAGN,SACbQ,YAAa1uE,KAAK8mD,MAAM0nB,EAAGyB,cAAgBlC,KAS5C,GALAtN,EAAIgB,OAEJhB,EAAIyP,UAAY1B,EAAGvC,gBACnBxL,EAAI0P,YAAc3B,EAAGtC,YAEjBlL,EAAI0N,YAAa,CAMpB,IALA1N,EAAIkN,SAAWlN,EAAIiN,WAAaF,GAChCtN,EAAIoB,YACJpB,EAAIO,IAAIA,EAAIjhE,EAAGihE,EAAIr7C,EAAGq7C,EAAIqN,YAAarN,EAAIiN,WAAYjN,EAAIkN,UAC3DzN,EAAIO,IAAIA,EAAIjhE,EAAGihE,EAAIr7C,EAAGq7C,EAAIsN,YAAatN,EAAIkN,SAAUlN,EAAIiN,YAAY,GACrExN,EAAIQ,YACCn6E,EAAI,EAAGA,EAAIk6E,EAAI0N,cAAe5nF,EAClC25E,EAAIuB,OAELhB,EAAIkN,SAAWlN,EAAIiN,WAAaO,EAAGyB,cAAgBlC,GAGpDtN,EAAIoB,YACJpB,EAAIO,IAAIA,EAAIjhE,EAAGihE,EAAIr7C,EAAGq7C,EAAIqN,YAAarN,EAAIiN,WAAYjN,EAAIkN,UAC3DzN,EAAIO,IAAIA,EAAIjhE,EAAGihE,EAAIr7C,EAAGq7C,EAAIsN,YAAatN,EAAIkN,SAAUlN,EAAIiN,YAAY,GACrExN,EAAIQ,YACJR,EAAIuB,OAEAwM,EAAGzB,aACN4B,GAAWlO,EAAK+N,EAAIxN,GAGrBP,EAAImB,aAIFwO,GAAmBzK,GAAU/J,eAE7BwH,GAAeO,EAAc/zE,OAAOwzE,aAExCO,EAAcR,KAAK,SAAU,CAC5ByI,SAAU,CACTyE,KAAM,CACL1N,QAAS,GACTsJ,gBAAiB7I,GACjB2J,YAAa,EACbb,YAAa9I,GACbkN,eAAgB,OAChBC,WAAY,GACZC,iBAAkB,EAClBC,gBAAiB,QACjBC,iBAAiB,EACjB1O,MAAM,MAKT,IAAI2O,GAAelJ,GAAazlB,OAAO,CACtCglB,MAAO,OAEP6E,KAAM,WACL,IASI/hF,EAAO2zE,EAAUmT,EATjB5rC,EAAKj7C,KACLykF,EAAKxpC,EAAGmiC,MACR1G,EAAMz7B,EAAG5qB,OAAOqmD,IAChBoQ,EAAWrC,EAAGqC,SACdC,EAAS9rC,EAAG+rC,UAAUpoF,QACtBy7E,EAAiBT,EAAc/zE,OAC/BohF,EAA2B5M,EAAewH,SAASyE,KACnDY,GAAkB,EAClBhQ,EAAYj8B,EAAGksC,MAGnB,GAAKJ,EAAOlpF,OAAZ,CAIA,GAAIo9C,EAAGksC,MAAO,CACb,IAAKpnF,EAAQ,EAAGA,EAAQgnF,EAAOlpF,SAAUkC,EAGxC,GAFA2zE,EAAWkI,GAAUwL,aAAaL,EAAQhnF,IAErCgnF,EAAOhnF,GAAOq9E,MAAMiK,MAAQ3T,EAAS0J,MAAMiK,KAAM,CACrDN,EAASA,EAAOnoF,MAAMmB,GAAOuJ,OAAOy9E,EAAOnoF,MAAM,EAAGmB,IACpDm3E,EAAY4P,EACZ,MAIE5P,GACH6P,EAAOppF,KAAKopF,EAAO,IA6BrB,IAzBArQ,EAAIgB,OAGJhB,EAAI4Q,QAAU7C,EAAG8B,gBAAkBU,EAAyBV,eAGxD7P,EAAI6Q,aACP7Q,EAAI6Q,YAAY9C,EAAG+B,YAAcS,EAAyBT,YAG3D9P,EAAI8Q,eAAiBnB,GAAiB5B,EAAGgC,iBAAkBQ,EAAyBR,kBACpF/P,EAAIqO,SAAWN,EAAGiC,iBAAmBO,EAAyBP,gBAC9DhQ,EAAIoO,UAAYuB,GAAiB5B,EAAGzB,YAAaiE,EAAyBjE,aAC1EtM,EAAI0P,YAAc3B,EAAGtC,aAAe9H,EAAehB,aAGnD3C,EAAIoB,aAGJ+O,EAAYE,EAAO,GAAG3J,OACPiK,OACd3Q,EAAIM,OAAO6P,EAAU7wE,EAAG6wE,EAAUjrD,GAClCsrD,EAAiB,GAGbnnF,EAAQ,EAAGA,EAAQgnF,EAAOlpF,SAAUkC,EACxC8mF,EAAYE,EAAOhnF,GAAOq9E,MAC1B1J,GAA+B,IAApBwT,EAAwBtL,GAAUwL,aAAaL,EAAQhnF,GAASgnF,EAAOG,GAE7EL,EAAUQ,OACTH,IAAoBnnF,EAAQ,IAAO+mF,IAAiC,IAApBI,EAEpDxQ,EAAIM,OAAO6P,EAAU7wE,EAAG6wE,EAAUjrD,GAGlCggD,GAAUE,OAAO/D,OAAOrB,EAAKhD,EAAS0J,MAAOyJ,GAE9CK,EAAiBnnF,GAIfm3E,GACHR,EAAIQ,YAGLR,EAAIwB,SACJxB,EAAImB,cAIF4P,GAAmB7L,GAAU/J,eAE7B6V,GAAiB9N,EAAc/zE,OAAOwzE,aAkB1C,SAASsO,GAAOzC,GACf,IAAIT,EAAKzkF,KAAKo9E,MACd,QAAOqH,GAAMxuE,KAAK4B,IAAIqtE,EAAST,EAAGzuE,GAAKyuE,EAAG5N,OAAS4N,EAAGmD,UAGvD,SAASC,GAAOC,GACf,IAAIrD,EAAKzkF,KAAKo9E,MACd,QAAOqH,GAAMxuE,KAAK4B,IAAIiwE,EAASrD,EAAG7oD,GAAK6oD,EAAG5N,OAAS4N,EAAGmD,UAvBvDhO,EAAcR,KAAK,SAAU,CAC5ByI,SAAU,CACT1sD,MAAO,CACN0hD,OAAQ,EACRkR,WAAY,SACZ7F,gBAAiBwF,GACjBvF,YAAauF,GACb1E,YAAa,EAEb4E,UAAW,EACXzC,YAAa,EACbhC,iBAAkB,MAerB,IAAI6E,GAAgBtK,GAAazlB,OAAO,CACvCglB,MAAO,QAEPmI,QAAS,SAASF,EAAQ4C,GACzB,IAAIrD,EAAKzkF,KAAKo9E,MACd,QAAOqH,GAAOxuE,KAAKC,IAAIgvE,EAAST,EAAGzuE,EAAG,GAAKC,KAAKC,IAAI4xE,EAASrD,EAAG7oD,EAAG,GAAM3lB,KAAKC,IAAIuuE,EAAGmD,UAAYnD,EAAG5N,OAAQ,IAG7GoO,aAAc0C,GACdM,SAAUN,GACVO,SAAUL,GAEVjC,eAAgB,WACf,IAAInB,EAAKzkF,KAAKo9E,MACd,MAAO,CACNpnE,EAAGyuE,EAAGzuE,EACN4lB,EAAG6oD,EAAG7oD,IAIRmqD,QAAS,WACR,OAAO9vE,KAAK2zD,GAAK3zD,KAAKC,IAAIlW,KAAKo9E,MAAMvG,OAAQ,IAG9C0G,gBAAiB,WAChB,IAAIkH,EAAKzkF,KAAKo9E,MACd,MAAO,CACNpnE,EAAGyuE,EAAGzuE,EACN4lB,EAAG6oD,EAAG7oD,EACNusD,QAAS1D,EAAG5N,OAAS4N,EAAGzB,cAI1BlB,KAAM,SAASsG,GACd,IAAI3D,EAAKzkF,KAAKo9E,MACV1G,EAAM12E,KAAKqwB,OAAOqmD,IAClBqR,EAAatD,EAAGsD,WAChB1Q,EAAWoN,EAAGpN,SACdR,EAAS4N,EAAG5N,OACZ7gE,EAAIyuE,EAAGzuE,EACP4lB,EAAI6oD,EAAG7oD,EACPy+C,EAAiBT,EAAc/zE,OAC/BwzE,EAAegB,EAAehB,aAE9BoL,EAAG4C,YAKW/pF,IAAd8qF,GAA2BxM,GAAUE,OAAO3D,eAAesM,EAAI2D,MAClE1R,EAAI0P,YAAc3B,EAAGtC,aAAe9I,EACpC3C,EAAIoO,UAAY2C,GAAiBhD,EAAGzB,YAAa3I,EAAewH,SAAS1sD,MAAM6tD,aAC/EtM,EAAIyP,UAAY1B,EAAGvC,iBAAmB7I,EACtCuC,GAAUE,OAAO1E,UAAUV,EAAKqR,EAAYlR,EAAQ7gE,EAAG4lB,EAAGy7C,OAKzDgR,GAAiBzO,EAAc/zE,OAAOwzE,aAa1C,SAASiP,GAAW7D,GACnB,OAAOA,QAAmBnnF,IAAbmnF,EAAG7wD,MASjB,SAAS20D,GAAa9D,GACrB,IAAI+D,EAAI/e,EAAIgf,EAAIjf,EAAIkf,EAgBpB,OAdIJ,GAAW7D,IACdiE,EAAOjE,EAAG7wD,MAAQ,EAClB40D,EAAK/D,EAAGzuE,EAAI0yE,EACZjf,EAAKgb,EAAGzuE,EAAI0yE,EACZD,EAAKxyE,KAAKsG,IAAIkoE,EAAG7oD,EAAG6oD,EAAGt2D,MACvBq7C,EAAKvzD,KAAK2B,IAAI6sE,EAAG7oD,EAAG6oD,EAAGt2D,QAEvBu6D,EAAOjE,EAAG9wD,OAAS,EACnB60D,EAAKvyE,KAAKsG,IAAIkoE,EAAGzuE,EAAGyuE,EAAGt2D,MACvBs7C,EAAKxzD,KAAK2B,IAAI6sE,EAAGzuE,EAAGyuE,EAAGt2D,MACvBs6D,EAAKhE,EAAG7oD,EAAI8sD,EACZlf,EAAKib,EAAG7oD,EAAI8sD,GAGN,CACNnwB,KAAMiwB,EACN/vB,IAAKgwB,EACL3R,MAAOrN,EACPsN,OAAQvN,GAIV,SAASmf,GAAKC,EAAMrW,EAAIsW,GACvB,OAAOD,IAASrW,EAAKsW,EAAKD,IAASC,EAAKtW,EAAKqW,EAG9C,SAASE,GAAmBrE,GAC3B,IAAIsE,EAAOtE,EAAGuE,cACV9J,EAAM,GAEV,OAAK6J,GAIDtE,EAAGwE,WACFxE,EAAGt2D,KAAOs2D,EAAGzuE,IAChB+yE,EAAOJ,GAAKI,EAAM,OAAQ,UAEjBtE,EAAGt2D,KAAOs2D,EAAG7oD,IACvBmtD,EAAOJ,GAAKI,EAAM,SAAU,QAG7B7J,EAAI6J,IAAQ,EACL7J,GAZCA,EAeT,SAASgK,GAAiBzE,EAAI0E,EAAMC,GACnC,IAEIjwD,EAAGD,EAAG9vB,EAAGrG,EAFTnF,EAAQ6mF,EAAGzB,YACXqE,EAAOyB,GAAmBrE,GAY9B,OATI7I,GAAUj2E,SAAS/H,IACtBu7B,GAAKv7B,EAAM66D,KAAO,EAClBv/B,GAAKt7B,EAAMk5E,OAAS,EACpB1tE,GAAKxL,EAAMm5E,QAAU,EACrBh0E,GAAKnF,EAAM26D,MAAQ,GAEnBp/B,EAAID,EAAI9vB,EAAIrG,GAAKnF,GAAS,EAGpB,CACNu7B,EAAGkuD,EAAK5uB,KAAQt/B,EAAI,EAAK,EAAIA,EAAIiwD,EAAOA,EAAOjwD,EAC/CD,EAAGmuD,EAAKvQ,OAAU59C,EAAI,EAAK,EAAIA,EAAIiwD,EAAOA,EAAOjwD,EACjD9vB,EAAGi+E,EAAKtQ,QAAW3tE,EAAI,EAAK,EAAIA,EAAIggF,EAAOA,EAAOhgF,EAClDrG,EAAGskF,EAAK9uB,MAASx1D,EAAI,EAAK,EAAIA,EAAIomF,EAAOA,EAAOpmF,GAIlD,SAASsmF,GAAc5E,GACtB,IAAI6E,EAASf,GAAa9D,GACtB7wD,EAAQ01D,EAAOxS,MAAQwS,EAAO/wB,KAC9B5kC,EAAS21D,EAAOvS,OAASuS,EAAO7wB,IAChC8wB,EAASL,GAAiBzE,EAAI7wD,EAAQ,EAAGD,EAAS,GAEtD,MAAO,CACN61D,MAAO,CACNxzE,EAAGszE,EAAO/wB,KACV38B,EAAG0tD,EAAO7wB,IACVl/B,EAAG3F,EACHqH,EAAGtH,GAEJ+wD,MAAO,CACN1uE,EAAGszE,EAAO/wB,KAAOgxB,EAAOxmF,EACxB64B,EAAG0tD,EAAO7wB,IAAM8wB,EAAOpwD,EACvBI,EAAG3F,EAAQ21D,EAAOxmF,EAAIwmF,EAAOrwD,EAC7B+B,EAAGtH,EAAS41D,EAAOpwD,EAAIowD,EAAOngF,IAKjC,SAASg8E,GAAQX,EAAIzuE,EAAG4lB,GACvB,IAAI6tD,EAAc,OAANzzE,EACR0zE,EAAc,OAAN9tD,EACR0tD,KAAU7E,GAAOgF,GAASC,IAAiBnB,GAAa9D,GAE5D,OAAO6E,IACFG,GAASzzE,GAAKszE,EAAO/wB,MAAQviD,GAAKszE,EAAOxS,SACzC4S,GAAS9tD,GAAK0tD,EAAO7wB,KAAO78B,GAAK0tD,EAAOvS,QAzH9C6C,EAAcR,KAAK,SAAU,CAC5ByI,SAAU,CACT8H,UAAW,CACVzH,gBAAiBmG,GACjBlG,YAAakG,GACbW,cAAe,SACfhG,YAAa,MAsHhB,IAAI4G,GAAoBlM,GAAazlB,OAAO,CAC3CglB,MAAO,YAEP6E,KAAM,WACL,IAAIpL,EAAM12E,KAAKqwB,OAAOqmD,IAClB+N,EAAKzkF,KAAKo9E,MACVyM,EAAQR,GAAc5E,GACtB+E,EAAQK,EAAML,MACd9E,EAAQmF,EAAMnF,MAElBhO,EAAIyP,UAAY1B,EAAGvC,gBACnBxL,EAAIoT,SAASN,EAAMxzE,EAAGwzE,EAAM5tD,EAAG4tD,EAAMjwD,EAAGiwD,EAAMvuD,GAE1CuuD,EAAMjwD,IAAMmrD,EAAMnrD,GAAKiwD,EAAMvuD,IAAMypD,EAAMzpD,IAI7Cy7C,EAAIgB,OACJhB,EAAIoB,YACJpB,EAAIS,KAAKqS,EAAMxzE,EAAGwzE,EAAM5tD,EAAG4tD,EAAMjwD,EAAGiwD,EAAMvuD,GAC1Cy7C,EAAI4B,OACJ5B,EAAIyP,UAAY1B,EAAGtC,YACnBzL,EAAIS,KAAKuN,EAAM1uE,EAAG0uE,EAAM9oD,EAAG8oD,EAAMnrD,EAAGmrD,EAAMzpD,GAC1Cy7C,EAAIuB,KAAK,WACTvB,EAAImB,YAGLlkD,OAAQ,WACP,IAAI8wD,EAAKzkF,KAAKo9E,MACd,OAAOqH,EAAGt2D,KAAOs2D,EAAG7oD,GAGrBwpD,QAAS,SAASF,EAAQ4C,GACzB,OAAO1C,GAAQplF,KAAKo9E,MAAO8H,EAAQ4C,IAGpC7C,aAAc,SAASC,EAAQ4C,GAC9B,IAAIrD,EAAKzkF,KAAKo9E,MACd,OAAOkL,GAAW7D,GACfW,GAAQX,EAAIS,EAAQ,MACpBE,GAAQX,EAAI,KAAMqD,IAGtBG,SAAU,SAAS/C,GAClB,OAAOE,GAAQplF,KAAKo9E,MAAO8H,EAAQ,OAGpCgD,SAAU,SAASJ,GAClB,OAAO1C,GAAQplF,KAAKo9E,MAAO,KAAM0K,IAGlClC,eAAgB,WACf,IACI5vE,EAAG4lB,EADH6oD,EAAKzkF,KAAKo9E,MAUd,OARIkL,GAAW7D,IACdzuE,EAAIyuE,EAAGzuE,EACP4lB,GAAK6oD,EAAG7oD,EAAI6oD,EAAGt2D,MAAQ,IAEvBnY,GAAKyuE,EAAGzuE,EAAIyuE,EAAGt2D,MAAQ,EACvByN,EAAI6oD,EAAG7oD,GAGD,CAAC5lB,EAAGA,EAAG4lB,EAAGA,IAGlBmqD,QAAS,WACR,IAAItB,EAAKzkF,KAAKo9E,MAEd,OAAOkL,GAAW7D,GACfA,EAAG7wD,MAAQ3d,KAAK4B,IAAI4sE,EAAG7oD,EAAI6oD,EAAGt2D,MAC9Bs2D,EAAG9wD,OAAS1d,KAAK4B,IAAI4sE,EAAGzuE,EAAIyuE,EAAGt2D,OAGnCovD,gBAAiB,WAChB,IAAIkH,EAAKzkF,KAAKo9E,MACd,MAAO,CACNpnE,EAAGyuE,EAAGzuE,EACN4lB,EAAG6oD,EAAG7oD,MAKLimD,GAAW,GACXkI,GAAM/E,GACNn0D,GAAO+1D,GACPoD,GAAQhC,GACRiC,GAAYL,GAChB/H,GAASkI,IAAMA,GACflI,GAAShxD,KAAOA,GAChBgxD,GAASmI,MAAQA,GACjBnI,GAASoI,UAAYA,GAErB,IAAIC,GAAatO,GAAUpI,YACvB2W,GAAmBvO,GAAU/J,eAmCjC,SAASuY,GAAqBvd,EAAOwd,GACpC,IACI97E,EAAM6N,EAAMrf,EAAGs1E,EADf91D,EAAMswD,EAAMp+D,QAGhB,IAAK1R,EAAI,EAAGs1E,EAAOgY,EAAOxsF,OAAQd,EAAIs1E,IAAQt1E,EAC7Cwf,EAAMtG,KAAKsG,IAAIA,EAAKtG,KAAK4B,IAAIwyE,EAAOttF,GAAKstF,EAAOttF,EAAI,KAGrD,IAAKA,EAAI,EAAGs1E,EAAOxF,EAAMyd,WAAWzsF,OAAQd,EAAIs1E,IAAQt1E,EACvDqf,EAAOywD,EAAM0d,gBAAgBxtF,GAC7Bwf,EAAMxf,EAAI,EAAIkZ,KAAKsG,IAAIA,EAAKtG,KAAK4B,IAAIuE,EAAO7N,IAASgO,EACrDhO,EAAO6N,EAGR,OAAOG,EASR,SAASiuE,GAAyBzqF,EAAO0qF,EAAOj3D,GAC/C,IAMI9tB,EAAM6jE,EANNmhB,EAAYl3D,EAAQm3D,aACpBjuD,EAAQ+tD,EAAMG,WACdxuE,EAAOquE,EAAMJ,OAAOtqF,GACpBwc,EAAMq/D,GAAUnK,cAAciZ,GAC/BN,GAAqBK,EAAM5d,MAAO4d,EAAMJ,SACvC,EAcJ,OAXIzO,GAAUnK,cAAciZ,IAC3BhlF,EAAO6W,EAAMiX,EAAQq3D,mBACrBthB,EAAQ/1C,EAAQs3D,gBAKhBplF,EAAOglF,EAAYhuD,EACnB6sC,EAAQ,GAGF,CACNwhB,MAAOrlF,EAAOg3B,EACd6sC,MAAOA,EACPlgD,MAAOjN,EAAQ1W,EAAO,GAUxB,SAASslF,GAA0BjrF,EAAO0qF,EAAOj3D,GAChD,IAKInK,EALAghE,EAASI,EAAMJ,OACfjuE,EAAOiuE,EAAOtqF,GACdwO,EAAOxO,EAAQ,EAAIsqF,EAAOtqF,EAAQ,GAAK,KACvCtC,EAAOsC,EAAQsqF,EAAOxsF,OAAS,EAAIwsF,EAAOtqF,EAAQ,GAAK,KACvDkrF,EAAUz3D,EAAQq3D,mBAiBtB,OAda,OAATt8E,IAGHA,EAAO6N,GAAiB,OAAT3e,EAAgBgtF,EAAMvhE,IAAMuhE,EAAMphE,MAAQ5rB,EAAO2e,IAGpD,OAAT3e,IAEHA,EAAO2e,EAAOA,EAAO7N,GAGtB8a,EAAQjN,GAAQA,EAAOnG,KAAKsG,IAAIhO,EAAM9Q,IAAS,EAAIwtF,EAG5C,CACNF,MAHM90E,KAAK4B,IAAIpa,EAAO8Q,GAAQ,EAAI08E,EAGpBR,EAAMG,WACpBrhB,MAAO/1C,EAAQs3D,cACfzhE,MAAOA,GAlHTuwD,EAAcR,KAAK,MAAO,CACzBgJ,MAAO,CACN35B,KAAM,SAGPs3B,OAAQ,CACPI,MAAO,CAAC,CACP38E,KAAM,WACNs5C,QAAQ,EACRouC,UAAW,CACVC,iBAAiB,KAInB9K,MAAO,CAAC,CACP78E,KAAM,cAKTo2E,EAAcR,KAAK,SAAU,CAC5BplD,SAAU,CACTo3D,IAAK,CACJP,mBAAoB,GACpBC,cAAe,OA8FlB,IAAIO,GAAiBtH,GAAuB9rB,OAAO,CAElDunB,gBAAiBqC,GAASoI,UAK1BvK,oBAAqB,CACpB,kBACA,cACA,gBACA,cACA,gBACA,eACA,qBACA,kBACA,gBAGD1C,WAAY,WACX,IACIrzC,EAAM2hD,EADNrwC,EAAKj7C,KAGT+jF,GAAuBtlF,UAAUu+E,WAAW73E,MAAM81C,EAAIz4C,YAEtDmnC,EAAOsR,EAAG4kC,WACLv8E,MAAQ23C,EAAG+kC,aAAa18E,MAC7BqmC,EAAKyhD,KAAM,EAEXE,EAAYrwC,EAAG2lC,iBAAiBptD,QAChC02D,GAAW,YAAaoB,EAAUR,cAAe,iCAAkC,yBACnFZ,GAAW,YAAaoB,EAAUX,aAAc,gCAAiC,wBACjFT,GAAW,YAAaoB,EAAUT,mBAAoB,sCAAuC,8BAC7FX,GAAW,YAAajvC,EAAG0lC,iBAAiBntD,QAAQ+3D,aAAc,gCAAiC,wBACnGrB,GAAW,YAAaoB,EAAUE,gBAAiB,mCAAoC,4BAGxFj2D,OAAQ,SAASosC,GAChB,IAEI5kE,EAAGs1E,EAFHp3B,EAAKj7C,KACL6pF,EAAQ5uC,EAAG4kC,UAAUj/E,KAKzB,IAFAq6C,EAAGwwC,OAASxwC,EAAGywC,WAEV3uF,EAAI,EAAGs1E,EAAOwX,EAAMhsF,OAAQd,EAAIs1E,IAAQt1E,EAC5Ck+C,EAAGomC,cAAcwI,EAAM9sF,GAAIA,EAAG4kE,IAIhC0f,cAAe,SAASsI,EAAW5pF,EAAO4hE,GACzC,IAAI1mB,EAAKj7C,KACL2pC,EAAOsR,EAAG4kC,UACVrrD,EAAUymB,EAAG+kC,aACbxsD,EAAUynB,EAAGgnC,2BAA2B0H,EAAW5pF,GAEvD4pF,EAAUgC,QAAU1wC,EAAGslC,cAAc52C,EAAKu2C,SAC1CyJ,EAAUiC,QAAU3wC,EAAGslC,cAAc52C,EAAKy2C,SAC1CuJ,EAAU3I,cAAgB/lC,EAAGl7C,MAC7B4pF,EAAUzI,OAASnhF,EACnB4pF,EAAUtM,OAAS,CAClB6E,gBAAiB1uD,EAAQ0uD,gBACzBC,YAAa3uD,EAAQ2uD,YACrB6G,cAAex1D,EAAQw1D,cACvBhG,YAAaxvD,EAAQwvD,YACrB6I,aAAcr3D,EAAQ3qB,MACtBA,MAAOoxC,EAAGw7B,MAAM71E,KAAKwmE,OAAOrnE,IAGzB67E,GAAUj/E,QAAQ63B,EAAQ5zB,KAAKb,MAClC4pF,EAAUtM,OAAO2L,cAAgB,MAGlC/tC,EAAG6wC,uBAAuBnC,EAAW5pF,EAAO4hE,EAAOnuC,GAEnDm2D,EAAUxM,SAMX2O,uBAAwB,SAASnC,EAAW5pF,EAAO4hE,EAAOnuC,GACzD,IAAIynB,EAAKj7C,KACLmoE,EAAQwhB,EAAUtM,OAClB0O,EAAS9wC,EAAG0lC,iBACZxyD,EAAO49D,EAAOC,eACd/C,EAAa8C,EAAOE,eACpBxB,EAAQxvC,EAAGwwC,QAAUxwC,EAAGywC,WACxBQ,EAAUjxC,EAAGkxC,wBAAwBlxC,EAAGl7C,MAAOA,EAAOyzB,GACtD44D,EAAUnxC,EAAGoxC,wBAAwBpxC,EAAGl7C,MAAOA,EAAO0qF,EAAOj3D,GAEjE20C,EAAM8gB,WAAaA,EACnB9gB,EAAMh6C,KAAOwzC,EAAQxzC,EAAO+9D,EAAQ/9D,KACpCg6C,EAAMnyD,EAAIizE,EAAatnB,EAAQxzC,EAAO+9D,EAAQp9E,KAAOs9E,EAAQE,OAC7DnkB,EAAMvsC,EAAIqtD,EAAamD,EAAQE,OAAS3qB,EAAQxzC,EAAO+9D,EAAQp9E,KAC/Dq5D,EAAMx0C,OAASs1D,EAAamD,EAAQ1mF,UAAOpI,EAC3C6qE,EAAMv0C,MAAQq1D,OAAa3rF,EAAY8uF,EAAQ1mF,MAShD6mF,WAAY,SAASp1E,GACpB,IAMIpa,EAAG4sC,EANHsR,EAAKj7C,KACL6sE,EAAQ5xB,EAAG2lC,iBACX4L,EAAW3f,EAAM4f,yBAAyBxxC,EAAGgiC,OAC7CyP,EAAU7f,EAAMr5C,QAAQk5D,QACxBra,EAAOma,EAAS3uF,OAChB8uF,EAAS,GAGb,IAAK5vF,EAAI,EAAGA,EAAIs1E,IACf1oC,EAAO6iD,EAASzvF,KAMA,IAAZ2vF,IAAqD,IAAhCC,EAAOn7D,QAAQmY,EAAKrmC,aAC/BhG,IAAZovF,QAAwCpvF,IAAfqsC,EAAKrmC,QAC/BqpF,EAAOhvF,KAAKgsC,EAAKrmC,OAEdqmC,EAAK5pC,QAAUoX,KAXIpa,GAgBxB,OAAO4vF,GAORC,cAAe,WACd,OAAO5sF,KAAKusF,aAAa1uF,QAU1BgvF,cAAe,SAASvN,EAAcxgF,GACrC,IAAI6tF,EAAS3sF,KAAKusF,WAAWjN,GACzBv/E,OAAkBzC,IAATwB,EACV6tF,EAAOn7D,QAAQ1yB,IACd,EAEJ,OAAmB,IAAXiB,EACL4sF,EAAO9uF,OAAS,EAChBkC,GAMJ2rF,SAAU,WACT,IAGI3uF,EAAGs1E,EAHHp3B,EAAKj7C,KACL6sE,EAAQ5xB,EAAG2lC,iBACXyJ,EAAS,GAGb,IAAKttF,EAAI,EAAGs1E,EAAOp3B,EAAG4kC,UAAUj/E,KAAK/C,OAAQd,EAAIs1E,IAAQt1E,EACxDstF,EAAO1sF,KAAKkvE,EAAMigB,iBAAiB,KAAM/vF,EAAGk+C,EAAGl7C,QAGhD,MAAO,CACNsqF,OAAQA,EACRhhE,MAAOwjD,EAAMkgB,YACb7jE,IAAK2jD,EAAMmgB,UACXpC,WAAY3vC,EAAG2xC,gBACf/f,MAAOA,IAQTsf,wBAAyB,SAAS7M,EAAcv/E,EAAOyzB,GACtD,IAaIz2B,EAAGkwF,EAAOC,EAAQ/+D,EAAMrf,EAAMpJ,EAAMynF,EAbpClyC,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACX5J,EAAQ5xB,EAAG0lC,iBACXsL,EAAepf,EAAMof,eACrBj4D,EAAWyiD,EAAM71E,KAAKozB,SACtBw4D,EAAW3f,EAAM4f,yBAAyBxxC,EAAGgiC,OAC7Cr/E,EAAQivE,EAAMugB,YAAYp5D,EAASsrD,GAAc1+E,KAAKb,IACtDwrF,EAAe/3D,EAAQ+3D,aACvBmB,EAAU7f,EAAMr5C,QAAQk5D,QACxBppF,EAAQ23C,EAAG4kC,UAAUv8E,MACrB+lB,OAAwB/rB,IAAhBM,EAAMyrB,MAAsB,EAAIzrB,EAAMga,KAAO,GAAKha,EAAM2e,KAAO,EAAI3e,EAAM2e,IAAM3e,EAAMga,IAC7F/Z,OAAyBP,IAAhBM,EAAMyrB,MAAsBzrB,EAAMsrB,IAAMtrB,EAAMga,KAAO,GAAKha,EAAM2e,KAAO,EAAI3e,EAAMga,IAAMha,EAAM2e,IAAM3e,EAAM2e,IAAM3e,EAAMga,IAC9Hy6D,EAAOma,EAAS3uF,OAGpB,GAAI6uF,QAAwBpvF,IAAZovF,QAAmCpvF,IAAVgG,EACxC,IAAKvG,EAAI,EAAGA,EAAIs1E,IACf4a,EAAQT,EAASzvF,IAEPgD,QAAUu/E,IAHGviF,EAOnBkwF,EAAM3pF,QAAUA,IAEnB4pF,OAA+B5vF,KAD/B6vF,EAActgB,EAAMugB,YAAYp5D,EAASi5D,EAAMltF,OAAOa,KAAKb,KACtCspB,MAAsB8jE,EAAYjkE,IAAMikE,EAAY5wE,KAAO,GAAK4wE,EAAYv1E,KAAO,EAAIu1E,EAAYv1E,IAAMu1E,EAAY5wE,KAErI3e,EAAM2e,IAAM,GAAK2wE,EAAS,GAAOtvF,EAAMga,KAAO,GAAKs1E,EAAS,KAChE7jE,GAAS6jE,IAmBb,OAbA/+D,EAAO0+C,EAAMigB,iBAAiBzjE,GAE9B3jB,GADAoJ,EAAO+9D,EAAMigB,iBAAiBzjE,EAAQxrB,IACxBswB,OAEO7wB,IAAjBiuF,GAA8Bt1E,KAAK4B,IAAInS,GAAQ6lF,IAClD7lF,EAAO6lF,EAENz8E,EADGjR,GAAU,IAAMouF,GAAgBpuF,EAAS,GAAKouF,EAC1C99D,EAAOo9D,EAEPp9D,EAAOo9D,GAIT,CACN7lF,KAAMA,EACNyoB,KAAMA,EACNrf,KAAMA,EACNw9E,OAAQx9E,EAAOpJ,EAAO,IAOxB2mF,wBAAyB,SAAS/M,EAAcv/E,EAAO0qF,EAAOj3D,GAC7D,IAAIynB,EAAKj7C,KACL06C,EAAiC,SAAzBlnB,EAAQm3D,aACjBK,GAA0BjrF,EAAO0qF,EAAOj3D,GACxCg3D,GAAyBzqF,EAAO0qF,EAAOj3D,GAEtC65D,EAAapyC,EAAG4xC,cAAcvN,EAAcrkC,EAAG4kC,UAAUv8E,OACzDgpF,EAAS5xC,EAAMrxB,MAASqxB,EAAMqwC,MAAQsC,EAAe3yC,EAAMqwC,MAAQ,EACnErlF,EAAOuQ,KAAKsG,IACf4tE,GAAiB32D,EAAQg4D,gBAAiBj8E,KAC1CmrC,EAAMqwC,MAAQrwC,EAAM6uB,OAErB,MAAO,CACNp7C,KAAMm+D,EAAS5mF,EAAO,EACtBoJ,KAAMw9E,EAAS5mF,EAAO,EACtB4mF,OAAQA,EACR5mF,KAAMA,IAIRo8E,KAAM,WACL,IAAI7mC,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACX5J,EAAQ5xB,EAAG0lC,iBACXkJ,EAAQ5uC,EAAG4kC,UAAUj/E,KACrB4zB,EAAUymB,EAAG+kC,aACb3N,EAAOwX,EAAMhsF,OACbd,EAAI,EAIR,IAFA6+E,GAAUE,OAAOzD,SAAS5B,EAAMC,IAAKD,EAAM2R,WAEpCrrF,EAAIs1E,IAAQt1E,EAAG,CACrB,IAAIsE,EAAMwrE,EAAMugB,YAAY54D,EAAQ5zB,KAAK7D,IACpC8W,MAAMxS,EAAIkb,MAAS1I,MAAMxS,EAAIuW,MACjCiyE,EAAM9sF,GAAG+kF,OAIXlG,GAAUE,OAAOvD,WAAW9B,EAAMC,MAMnCuL,2BAA4B,WAC3B,IAAIhnC,EAAKj7C,KACLqR,EAASuqE,GAAU3jB,OAAO,GAAI8rB,GAAuBtlF,UAAUwjF,2BAA2B98E,MAAM81C,EAAIz4C,YACpG8qF,EAAYryC,EAAG2lC,iBAAiBptD,QAChC+5D,EAAYtyC,EAAG0lC,iBAAiBntD,QAQpC,OANAniB,EAAOy5E,cAAgBX,GAAiBmD,EAAUxC,cAAez5E,EAAOy5E,eACxEz5E,EAAOs5E,aAAeR,GAAiBmD,EAAU3C,aAAct5E,EAAOs5E,cACtEt5E,EAAOw5E,mBAAqBV,GAAiBmD,EAAUzC,mBAAoBx5E,EAAOw5E,oBAClFx5E,EAAOm6E,gBAAkBrB,GAAiBmD,EAAU9B,gBAAiBn6E,EAAOm6E,iBAC5En6E,EAAOk6E,aAAepB,GAAiBoD,EAAUhC,aAAcl6E,EAAOk6E,cAE/Dl6E,KAKLm8E,GAAmB5R,GAAU/J,eAC7B4b,GAAY7R,GAAUpoD,QAAQjvB,QAElCq1E,EAAcR,KAAK,SAAU,CAC5BgJ,MAAO,CACN35B,KAAM,UAGPs3B,OAAQ,CACPI,MAAO,CAAC,CACP38E,KAAM,SACNgzB,SAAU,SACVZ,GAAI,aAELyqD,MAAO,CAAC,CACP78E,KAAM,SACNgzB,SAAU,OACVZ,GAAI,cAIN83D,SAAU,CACTC,UAAW,CACVrpB,MAAO,WAEN,MAAO,IAERz6D,MAAO,SAASgqE,EAAMjzE,GACrB,IAAIirF,EAAejrF,EAAKozB,SAAS6/C,EAAKyL,cAAcz1E,OAAS,GACzD+jF,EAAYhtF,EAAKozB,SAAS6/C,EAAKyL,cAAc1+E,KAAKizE,EAAK9zE,OAC3D,OAAO8rF,EAAe,MAAQhY,EAAKga,OAAS,KAAOha,EAAKia,OAAS,KAAOF,EAAU10D,EAAI,SAM1F,IAAI60D,GAAoBhK,GAAuB9rB,OAAO,CAIrDunB,gBAAiBqC,GAASmI,MAK1BtK,oBAAqB,CACpB,kBACA,cACA,cACA,uBACA,mBACA,mBACA,cACA,YACA,aACA,YAMDnqD,OAAQ,SAASosC,GAChB,IAAI1mB,EAAKj7C,KAEL+mF,EADO9rC,EAAG4kC,UACIj/E,KAGlBg7E,GAAU5J,KAAK+U,GAAQ,SAAS5xD,EAAOp1B,GACtCk7C,EAAGomC,cAAclsD,EAAOp1B,EAAO4hE,OAOjC0f,cAAe,SAASlsD,EAAOp1B,EAAO4hE,GACrC,IAAI1mB,EAAKj7C,KACL2pC,EAAOsR,EAAG4kC,UACV0C,EAASptD,EAAMotD,QAAU,GACzByL,EAAS/yC,EAAGslC,cAAc52C,EAAKu2C,SAC/B+N,EAAShzC,EAAGslC,cAAc52C,EAAKy2C,SAC/B5sD,EAAUynB,EAAGgnC,2BAA2B9sD,EAAOp1B,GAC/Ca,EAAOq6C,EAAG+kC,aAAap/E,KAAKb,GAC5BmuF,EAAUjzC,EAAGl7C,MAEbiW,EAAI2rD,EAAQqsB,EAAOG,mBAAmB,IAAOH,EAAOlB,iBAAiC,kBAATlsF,EAAoBA,EAAOwtF,IAAKruF,EAAOmuF,GACnHtyD,EAAI+lC,EAAQssB,EAAOjC,eAAiBiC,EAAOnB,iBAAiBlsF,EAAMb,EAAOmuF,GAE7E/4D,EAAMw2D,QAAUqC,EAChB74D,EAAMy2D,QAAUqC,EAChB94D,EAAMk5D,SAAW76D,EACjB2B,EAAM6rD,cAAgBkN,EACtB/4D,EAAM+rD,OAASnhF,EACfo1B,EAAMkoD,OAAS,CACd6E,gBAAiB1uD,EAAQ0uD,gBACzBC,YAAa3uD,EAAQ2uD,YACrBa,YAAaxvD,EAAQwvD,YACrB4E,UAAWp0D,EAAQo0D,UACnBG,WAAYv0D,EAAQu0D,WACpB1Q,SAAU7jD,EAAQ6jD,SAClBR,OAAQlV,EAAQ,EAAInuC,EAAQqjD,OAC5BwQ,KAAM9E,EAAO8E,MAAQxzE,MAAMmC,IAAMnC,MAAM+nB,GACvC5lB,EAAGA,EACH4lB,EAAGA,GAGJzG,EAAMgoD,SAMP2F,cAAe,SAAS3tD,GACvB,IAAIgzC,EAAQhzC,EAAMkoD,OACd7pD,EAAU2B,EAAMk5D,SAChBtL,EAAgBnH,GAAUmH,cAE9B5tD,EAAM0tD,eAAiB,CACtBX,gBAAiB/Z,EAAM+Z,gBACvBC,YAAaha,EAAMga,YACnBa,YAAa7a,EAAM6a,YACnBnM,OAAQ1O,EAAM0O,QAGf1O,EAAM+Z,gBAAkBsL,GAAiBh6D,EAAQyvD,qBAAsBF,EAAcvvD,EAAQ0uD,kBAC7F/Z,EAAMga,YAAcqL,GAAiBh6D,EAAQ0vD,iBAAkBH,EAAcvvD,EAAQ2uD,cACrFha,EAAM6a,YAAcwK,GAAiBh6D,EAAQ2vD,iBAAkB3vD,EAAQwvD,aACvE7a,EAAM0O,OAASrjD,EAAQqjD,OAASrjD,EAAQ2xD,aAMzClD,2BAA4B,SAAS9sD,EAAOp1B,GAC3C,IAAIk7C,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACXjiD,EAAUymB,EAAG+kC,aACbuC,EAASptD,EAAMotD,QAAU,GACzB3hF,EAAO4zB,EAAQ5zB,KAAKb,IAAU,GAC9BsR,EAAS0yE,GAAuBtlF,UAAUwjF,2BAA2B98E,MAAM81C,EAAIz4C,WAG/E03B,EAAU,CACbu8C,MAAOA,EACPiM,UAAW3iF,EACXy0B,QAASA,EACT8qD,aAAcrkC,EAAGl7C,OAgBlB,OAZIk7C,EAAG0mC,kBAAoBtwE,IAC1BA,EAASuqE,GAAU3jB,OAAO,GAAI5mD,IAI/BA,EAAOwlE,OAAS4W,GAAU,CACzBlL,EAAO1L,OACPj2E,EAAKs4B,EACL+hB,EAAGymC,QAAQ7K,OACXJ,EAAMjjD,QAAQquD,SAAS1sD,MAAM0hD,QAC3B38C,EAASn6B,GAELsR,KAILi9E,GAAmB1S,GAAU/J,eAE7B0c,GAAOt4E,KAAK2zD,GACZ4kB,GAAqB,EAAPD,GACdE,GAAYF,GAAO,EAEvB3U,EAAcR,KAAK,WAAY,CAC9BrpC,UAAW,CAEV2+C,eAAe,EAEfC,cAAc,GAEfvM,MAAO,CACN35B,KAAM,UAEPmmC,eAAgB,SAASnY,GACxB,IAII15E,EAAGs1E,EAAMwc,EAJTl9E,EAAOytB,SAASvJ,cAAc,MAC9Bj1B,EAAO61E,EAAM71E,KACbozB,EAAWpzB,EAAKozB,SAChBozC,EAASxmE,EAAKwmE,OAIlB,GADAz1D,EAAK6uB,aAAa,QAASi2C,EAAM7gD,GAAK,WAClC5B,EAASn2B,OACZ,IAAKd,EAAI,EAAGs1E,EAAOr+C,EAAS,GAAGpzB,KAAK/C,OAAQd,EAAIs1E,IAAQt1E,GACvD8xF,EAAWl9E,EAAK+zB,YAAYtG,SAASvJ,cAAc,QAC3B6P,YAAYtG,SAASvJ,cAAc,SAC9CgT,MAAMq5C,gBAAkBluD,EAAS,GAAGkuD,gBAAgBnlF,GAC7DqqE,EAAOrqE,IACV8xF,EAASnpD,YAAYtG,SAASkyB,eAAe8V,EAAOrqE,KAKvD,OAAO4U,EAAKm9E,WAEbp7D,OAAQ,CACP0zC,OAAQ,CACP2nB,eAAgB,SAAStY,GACxB,IAAI71E,EAAO61E,EAAM71E,KACjB,OAAIA,EAAKwmE,OAAOvpE,QAAU+C,EAAKozB,SAASn2B,OAChC+C,EAAKwmE,OAAOzmE,KAAI,SAASkJ,EAAO9M,GACtC,IAAI4sC,EAAO8sC,EAAM6J,eAAe,GAC5Bz3C,EAAQc,EAAKqlD,WAAWjN,SAAShlF,GAErC,MAAO,CACN89C,KAAMhxC,EACNs8E,UAAWt9C,EAAMq5C,gBACjBkE,YAAav9C,EAAMs5C,YACnB2C,UAAWj8C,EAAMm6C,YACjB9F,OAAQrpE,MAAMjT,EAAKozB,SAAS,GAAGpzB,KAAK7D,KAAO4sC,EAAK/oC,KAAK7D,GAAGmgF,OAGxDn9E,MAAOhD,MAIH,KAITqP,QAAS,SAASpG,EAAGipF,GACpB,IAEIlyF,EAAGs1E,EAAM1oC,EAFT5pC,EAAQkvF,EAAWlvF,MACnB02E,EAAQz2E,KAAKy2E,MAGjB,IAAK15E,EAAI,EAAGs1E,GAAQoE,EAAM71E,KAAKozB,UAAY,IAAIn2B,OAAQd,EAAIs1E,IAAQt1E,GAClE4sC,EAAO8sC,EAAM6J,eAAevjF,IAEnB6D,KAAKb,KACb4pC,EAAK/oC,KAAKb,GAAOm9E,QAAUvzC,EAAK/oC,KAAKb,GAAOm9E,QAI9CzG,EAAMlhD,WAKR25D,iBAAkB,GAGlB7X,UAAWoX,GAGXvI,cAAesI,GAGfd,SAAU,CACTC,UAAW,CACVrpB,MAAO,WACN,MAAO,IAERz6D,MAAO,SAASslF,EAAavuF,GAC5B,IAAIwuF,EAAYxuF,EAAKwmE,OAAO+nB,EAAYpvF,OACpCnC,EAAQ,KAAOgD,EAAKozB,SAASm7D,EAAY7P,cAAc1+E,KAAKuuF,EAAYpvF,OAW5E,OATI67E,GAAUj/E,QAAQyyF,IAGrBA,EAAYA,EAAUxwF,SACZ,IAAMhB,EAEhBwxF,GAAaxxF,EAGPwxF,OAMX,IAAIC,GAAsBtL,GAAuB9rB,OAAO,CAEvDunB,gBAAiBqC,GAASkI,IAE1BpK,WAAY/D,GAAUxX,KAKtBsb,oBAAqB,CACpB,kBACA,cACA,cACA,cACA,uBACA,mBACA,oBAID4P,aAAc,SAAShQ,GAGtB,IAFA,IAAIiQ,EAAY,EAEPC,EAAI,EAAGA,EAAIlQ,IAAgBkQ,EAC/BxvF,KAAKy2E,MAAMgZ,iBAAiBD,MAC7BD,EAIJ,OAAOA,GAGRh6D,OAAQ,SAASosC,GAChB,IAaI+tB,EAAUC,EAAW5yF,EAAGs1E,EAbxBp3B,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACX2R,EAAY3R,EAAM2R,UAClBwH,EAAOnZ,EAAMjjD,QACbq8D,EAAS,EACTC,EAAS,EACTC,EAAU,EACVC,EAAU,EACVrmD,EAAOsR,EAAG4kC,UACVoQ,EAAOtmD,EAAK/oC,KACZsvF,EAASN,EAAKV,iBAAmB,KAAO,EACxChJ,EAAgB0J,EAAK1J,cACrBiK,EAAcl1C,EAAGm1C,eAAen1C,EAAGl7C,OAIvC,GAAImmF,EAAgBsI,GAAa,CAChC,IAAItK,EAAa0L,EAAKvY,SAAWmX,GAE7BrK,GADJD,GAAcA,GAAcqK,IAAQC,GAActK,GAAcqK,GAAOC,GAAc,GACzDtI,EACxBmK,EAASp6E,KAAK4zD,IAAIqa,GAClBoM,EAASr6E,KAAK6zD,IAAIoa,GAClBqM,EAAOt6E,KAAK4zD,IAAIsa,GAChBqM,EAAOv6E,KAAK6zD,IAAIqa,GAChBsM,EAAavM,GAAc,GAAKC,GAAY,GAAMA,GAAYqK,GAC9DkC,EAAcxM,GAAcuK,IAAatK,GAAYsK,IAActK,GAAYqK,GAAcC,GAE7FkC,EAAezM,IAAeuK,IAAatK,IAAasK,IAActK,GAAYoK,GAAOE,GACzFmC,EAFc1M,KAAgBqK,IAAQpK,GAAYoK,IAE5B,EAAIt4E,KAAKsG,IAAI8zE,EAAQA,EAASH,EAAQK,EAAMA,EAAOL,GACzEW,EAAOF,GAAe,EAAI16E,KAAKsG,IAAI+zE,EAAQA,EAASJ,EAAQM,EAAMA,EAAON,GACzEY,EAAOL,EAAY,EAAIx6E,KAAK2B,IAAIy4E,EAAQA,EAASH,EAAQK,EAAMA,EAAOL,GACtEa,EAAOL,EAAa,EAAIz6E,KAAK2B,IAAI04E,EAAQA,EAASJ,EAAQM,EAAMA,EAAON,GAC3EL,GAAUiB,EAAOF,GAAQ,EACzBd,GAAUiB,EAAOF,GAAQ,EACzBd,IAAYe,EAAOF,GAAQ,EAC3BZ,IAAYe,EAAOF,GAAQ,EAG5B,IAAK9zF,EAAI,EAAGs1E,EAAO4d,EAAKpyF,OAAQd,EAAIs1E,IAAQt1E,EAC3CkzF,EAAKlzF,GAAGsxF,SAAWpzC,EAAGgnC,2BAA2BgO,EAAKlzF,GAAIA,GAiB3D,IAdA05E,EAAMuM,YAAc/nC,EAAG+1C,oBACvBtB,GAAYtH,EAAUtR,MAAQsR,EAAU7vB,KAAOke,EAAMuM,aAAe6M,EACpEF,GAAavH,EAAUrR,OAASqR,EAAU3vB,IAAMge,EAAMuM,aAAe8M,EACrErZ,EAAM6N,YAAcruE,KAAK2B,IAAI3B,KAAKsG,IAAImzE,EAAUC,GAAa,EAAG,GAChElZ,EAAM8N,YAActuE,KAAK2B,IAAI6+D,EAAM6N,YAAc4L,EAAQ,GACzDzZ,EAAMwa,cAAgBxa,EAAM6N,YAAc7N,EAAM8N,cAAgBtpC,EAAGi2C,iCAAmC,GACtGza,EAAMsZ,QAAUA,EAAUtZ,EAAM6N,YAChC7N,EAAMuZ,QAAUA,EAAUvZ,EAAM6N,YAEhC36C,EAAK9pB,MAAQo7B,EAAGk2C,iBAEhBl2C,EAAGqpC,YAAc7N,EAAM6N,YAAc7N,EAAMwa,aAAeh2C,EAAGm2C,qBAAqBn2C,EAAGl7C,OACrFk7C,EAAGspC,YAActuE,KAAK2B,IAAIqjC,EAAGqpC,YAAc7N,EAAMwa,aAAed,EAAa,GAExEpzF,EAAI,EAAGs1E,EAAO4d,EAAKpyF,OAAQd,EAAIs1E,IAAQt1E,EAC3Ck+C,EAAGomC,cAAc4O,EAAKlzF,GAAIA,EAAG4kE,IAI/B0f,cAAe,SAASpK,EAAKl3E,EAAO4hE,GACnC,IAAI1mB,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACX2R,EAAY3R,EAAM2R,UAClBwH,EAAOnZ,EAAMjjD,QACb69D,EAAgBzB,EAAK7/C,UACrBuhD,GAAWlJ,EAAU7vB,KAAO6vB,EAAUtR,OAAS,EAC/Cya,GAAWnJ,EAAU3vB,IAAM2vB,EAAUrR,QAAU,EAC/CmN,EAAa0L,EAAKvY,SAClB8M,EAAWyL,EAAKvY,SAChB7iD,EAAUymB,EAAG+kC,aACbkG,EAAgBvkB,GAAS0vB,EAAc3C,eAAoBzX,EAAIiG,OAAR,EAAqBjiC,EAAGu2C,uBAAuBh9D,EAAQ5zB,KAAKb,KAAW6vF,EAAK1J,cAAgBsI,IACnJjK,EAAc5iB,GAAS0vB,EAAc1C,aAAe,EAAI1zC,EAAGspC,YAC3DD,EAAc3iB,GAAS0vB,EAAc1C,aAAe,EAAI1zC,EAAGqpC,YAC3D9wD,EAAUyjD,EAAIoX,UAAY,GAE9BzS,GAAU3jB,OAAOgf,EAAK,CAErB+J,cAAe/lC,EAAGl7C,MAClBmhF,OAAQnhF,EAGRs9E,OAAQ,CACP6E,gBAAiB1uD,EAAQ0uD,gBACzBC,YAAa3uD,EAAQ2uD,YACrBa,YAAaxvD,EAAQwvD,YACrB6B,YAAarxD,EAAQqxD,YACrB7uE,EAAGs7E,EAAU7a,EAAMsZ,QACnBn0D,EAAG21D,EAAU9a,EAAMuZ,QACnB9L,WAAYA,EACZC,SAAUA,EACV+B,cAAeA,EACf5B,YAAaA,EACbC,YAAaA,EACb16E,MAAO+xE,GAAU9J,sBAAsBt9C,EAAQ3qB,MAAO9J,EAAO02E,EAAM71E,KAAKwmE,OAAOrnE,OAIjF,IAAIooE,EAAQ8O,EAAIoG,OAGX1b,GAAU0vB,EAAc3C,gBAE3BvmB,EAAM+b,WADO,IAAVnkF,EACgB6vF,EAAKvY,SAELp8B,EAAG4kC,UAAUj/E,KAAKb,EAAQ,GAAGs9E,OAAO8G,SAGxDhc,EAAMgc,SAAWhc,EAAM+b,WAAa/b,EAAM+d,eAG3CjP,EAAIkG,SAGLgU,eAAgB,WACf,IAGIvzF,EAHA42B,EAAUx0B,KAAKggF,aACfr2C,EAAO3pC,KAAK6/E,UACZhgE,EAAQ,EAcZ,OAXA+7D,GAAU5J,KAAKroC,EAAK/oC,MAAM,SAASyJ,EAAStK,GAC3CnC,EAAQ42B,EAAQ5zB,KAAKb,GAChB8T,MAAMjW,IAAWyM,EAAQ6yE,SAC7Br9D,GAAS5J,KAAK4B,IAAIja,OAQbiiB,GAGR2xE,uBAAwB,SAAS5zF,GAChC,IAAIiiB,EAAQ7f,KAAK6/E,UAAUhgE,MAC3B,OAAIA,EAAQ,IAAMhM,MAAMjW,GAChB4wF,IAAev4E,KAAK4B,IAAIja,GAASiiB,GAElC,GAIRmxE,kBAAmB,SAASf,GAC3B,IAGIlzF,EAAGs1E,EAAM1oC,EAAMstC,EAAK+X,EAAYx7D,EAASwvD,EAAayO,EAHtDx2C,EAAKj7C,KACL4X,EAAM,EACN6+D,EAAQx7B,EAAGw7B,MAGf,IAAKwZ,EAEJ,IAAKlzF,EAAI,EAAGs1E,EAAOoE,EAAM71E,KAAKozB,SAASn2B,OAAQd,EAAIs1E,IAAQt1E,EAC1D,GAAI05E,EAAMgZ,iBAAiB1yF,GAAI,CAE9BkzF,GADAtmD,EAAO8sC,EAAM6J,eAAevjF,IAChB6D,KACR7D,IAAMk+C,EAAGl7C,QACZivF,EAAarlD,EAAKqlD,YAEnB,MAKH,IAAKiB,EACJ,OAAO,EAGR,IAAKlzF,EAAI,EAAGs1E,EAAO4d,EAAKpyF,OAAQd,EAAIs1E,IAAQt1E,EAC3Ck6E,EAAMgZ,EAAKlzF,GACPiyF,GACHA,EAAWvN,aACXjuD,EAAUw7D,EAAW/M,2BAA2BhL,EAAKl6E,IAErDy2B,EAAUyjD,EAAIoX,SAEa,UAAxB76D,EAAQqxD,cACX7B,EAAcxvD,EAAQwvD,YAItBprE,GAHA65E,EAAaj+D,EAAQ2vD,mBAErBvrE,EAAMorE,EAAcprE,EAAMorE,EAAcprE,GACf65E,EAAa75E,GAGxC,OAAOA,GAMRkrE,cAAe,SAAS7L,GACvB,IAAI9O,EAAQ8O,EAAIoG,OACZ7pD,EAAUyjD,EAAIoX,SACdtL,EAAgBnH,GAAUmH,cAE9B9L,EAAI4L,eAAiB,CACpBX,gBAAiB/Z,EAAM+Z,gBACvBC,YAAaha,EAAMga,YACnBa,YAAa7a,EAAM6a,aAGpB7a,EAAM+Z,gBAAkBoM,GAAiB96D,EAAQyvD,qBAAsBF,EAAcvvD,EAAQ0uD,kBAC7F/Z,EAAMga,YAAcmM,GAAiB96D,EAAQ0vD,iBAAkBH,EAAcvvD,EAAQ2uD,cACrFha,EAAM6a,YAAcsL,GAAiB96D,EAAQ2vD,iBAAkB3vD,EAAQwvD,cAOxEoO,qBAAsB,SAAS9R,GAG9B,IAFA,IAAIoS,EAAmB,EAEd30F,EAAI,EAAGA,EAAIuiF,IAAgBviF,EAC/BiD,KAAKy2E,MAAMgZ,iBAAiB1yF,KAC/B20F,GAAoB1xF,KAAKowF,eAAerzF,IAI1C,OAAO20F,GAMRtB,eAAgB,SAASuB,GACxB,OAAO17E,KAAK2B,IAAI02E,GAAiBtuF,KAAKy2E,MAAM71E,KAAKozB,SAAS29D,GAAcphB,OAAQ,GAAI,IAOrF2gB,8BAA+B,WAC9B,OAAOlxF,KAAKoxF,qBAAqBpxF,KAAKy2E,MAAM71E,KAAKozB,SAASn2B,WAI5D+7E,EAAcR,KAAK,gBAAiB,CACnCgJ,MAAO,CACN35B,KAAM,QACNmpC,KAAM,KAGP7R,OAAQ,CACPI,MAAO,CAAC,CACP38E,KAAM,SACNgzB,SAAU,WAGX6pD,MAAO,CAAC,CACP78E,KAAM,WACNgzB,SAAU,OACVsmB,QAAQ,EACRouC,UAAW,CACVC,iBAAiB,MAKpBtJ,SAAU,CACT8H,UAAW,CACVX,cAAe,SAIjB0E,SAAU,CACTjlC,KAAM,QACNmpC,KAAM,OAIRhY,EAAcR,KAAK,SAAU,CAC5BplD,SAAU,CACT69D,cAAe,CACdhH,mBAAoB,GACpBC,cAAe,OAKlB,IAAIgH,GAA2BzG,GAAepzB,OAAO,CAIpDwoB,iBAAkB,WACjB,OAAOzgF,KAAK6/E,UAAUK,SAMvBQ,iBAAkB,WACjB,OAAO1gF,KAAK6/E,UAAUO,WAIpB2R,GAAmBnW,GAAU/J,eAC7BmgB,GAAYpW,GAAUpoD,QAAQjvB,QAC9B0tF,GAAgBrW,GAAUE,OAAO3D,eAsBrC,SAAS+Z,GAAUrlB,EAAOslB,GACzB,IAAIC,EAAWvlB,GAASA,EAAMr5C,QAAQ6+D,OAAS,GAC3C/gF,EAAU8gF,EAAS9gF,QACnBiL,OAAuBjf,IAAjB80F,EAAS71E,IAAoB41E,EAAkB,EACrDv6E,OAAuBta,IAAjB80F,EAASx6E,IAAoBu6E,EAAkB,EACzD,MAAO,CACN9oE,MAAO/X,EAAUsG,EAAM2E,EACvB2M,IAAK5X,EAAUiL,EAAM3E,GAIvB,SAAS06E,GAAYtE,EAAQC,EAAQjL,GACpC,IAAImP,EAAkBnP,EAAc,EAChChtE,EAAIk8E,GAAUlE,EAAQmE,GACtBv2D,EAAIs2D,GAAUjE,EAAQkE,GAE1B,MAAO,CACN15B,IAAK78B,EAAE1S,IACP4tD,MAAO9gE,EAAEkT,IACT6tD,OAAQn7C,EAAEvS,MACVkvC,KAAMviD,EAAEqT,OAIV,SAASkpE,GAAO30F,GACf,IAAIu7B,EAAGD,EAAG9vB,EAAGrG,EAWb,OATI64E,GAAUj2E,SAAS/H,IACtBu7B,EAAIv7B,EAAM66D,IACVv/B,EAAIt7B,EAAMk5E,MACV1tE,EAAIxL,EAAMm5E,OACVh0E,EAAInF,EAAM26D,MAEVp/B,EAAID,EAAI9vB,EAAIrG,EAAInF,EAGV,CACN66D,IAAKt/B,EACL29C,MAAO59C,EACP69C,OAAQ3tE,EACRmvD,KAAMx1D,GA5DR62E,EAAcR,KAAK,OAAQ,CAC1BO,WAAW,EACXmN,UAAU,EAEV1E,MAAO,CACN35B,KAAM,SAGPs3B,OAAQ,CACPI,MAAO,CAAC,CACP38E,KAAM,WACNoyB,GAAI,aAELyqD,MAAO,CAAC,CACP78E,KAAM,SACNoyB,GAAI,gBAkDP,IAAI48D,GAAkBzO,GAAuB9rB,OAAO,CAEnDsnB,mBAAoBsC,GAAShxD,KAE7B2uD,gBAAiBqC,GAASmI,MAK1BvK,uBAAwB,CACvB,kBACA,iBACA,cACA,aACA,mBACA,kBACA,cACA,yBACA,QAMDC,oBAAqB,CACpBwC,gBAAiB,uBACjBC,YAAa,mBACba,YAAa,mBACb4E,UAAW,iBACX3E,qBAAsB,4BACtBC,iBAAkB,wBAClBC,iBAAkB,wBAClBgC,YAAa,mBACb4C,WAAY,aACZlR,OAAQ,cACRQ,SAAU,iBAGX9hD,OAAQ,SAASosC,GAChB,IAOI5kE,EAAGs1E,EAPHp3B,EAAKj7C,KACL2pC,EAAOsR,EAAG4kC,UACVyG,EAAO38C,EAAKnV,QACZuyD,EAASp9C,EAAK/oC,MAAQ,GACtB4yB,EAAUynB,EAAGw7B,MAAMjjD,QACnBhjB,EAASyqC,EAAGymC,QACZ+Q,EAAWx3C,EAAGy3C,UAAYX,GAAiBvhF,EAAOiiF,SAAUj/D,EAAQmmD,WAyBxE,IAtBA1+B,EAAG0wC,QAAU1wC,EAAGslC,cAAc52C,EAAKu2C,SACnCjlC,EAAG2wC,QAAU3wC,EAAGslC,cAAc52C,EAAKy2C,SAG/BqS,SAEoBn1F,IAAnBkT,EAAOooE,cAAgDt7E,IAAvBkT,EAAOmiF,cAC1CniF,EAAOmiF,YAAcniF,EAAOooE,SAI7B0N,EAAKsM,OAAS33C,EAAG2wC,QACjBtF,EAAKtF,cAAgB/lC,EAAGl7C,MAExBumF,EAAKU,UAAYD,EAEjBT,EAAKjJ,OAASpiC,EAAG+mC,8BAA8BsE,GAE/CA,EAAKnJ,SAIDpgF,EAAI,EAAGs1E,EAAO0U,EAAOlpF,OAAQd,EAAIs1E,IAAQt1E,EAC7Ck+C,EAAGomC,cAAc0F,EAAOhqF,GAAIA,EAAG4kE,GAQhC,IALI8wB,GAAoC,IAAxBnM,EAAKjJ,OAAOzE,SAC3B39B,EAAG43C,4BAIC91F,EAAI,EAAGs1E,EAAO0U,EAAOlpF,OAAQd,EAAIs1E,IAAQt1E,EAC7CgqF,EAAOhqF,GAAGogF,SAIZkE,cAAe,SAASlsD,EAAOp1B,EAAO4hE,GACrC,IASI3rD,EAAG4lB,EATHqf,EAAKj7C,KACL2pC,EAAOsR,EAAG4kC,UACV0C,EAASptD,EAAMotD,QAAU,GACzB/tD,EAAUymB,EAAG+kC,aACbV,EAAerkC,EAAGl7C,MAClBnC,EAAQ42B,EAAQ5zB,KAAKb,GACrBiuF,EAAS/yC,EAAG0wC,QACZsC,EAAShzC,EAAG2wC,QACZkH,EAAYnpD,EAAKnV,QAAQ6oD,OAGzB7pD,EAAUynB,EAAGgnC,2BAA2B9sD,EAAOp1B,GAEnDiW,EAAIg4E,EAAOlB,iBAAkC,kBAAVlvF,EAAqBA,EAAQwwF,IAAKruF,EAAOu/E,GAC5E1jD,EAAI+lC,EAAQssB,EAAOjC,eAAiB/wC,EAAG83C,gBAAgBn1F,EAAOmC,EAAOu/E,GAGrEnqD,EAAMw2D,QAAUqC,EAChB74D,EAAMy2D,QAAUqC,EAChB94D,EAAMk5D,SAAW76D,EACjB2B,EAAM6rD,cAAgB1B,EACtBnqD,EAAM+rD,OAASnhF,EAGfo1B,EAAMkoD,OAAS,CACdrnE,EAAGA,EACH4lB,EAAGA,EACHyrD,KAAM9E,EAAO8E,MAAQxzE,MAAMmC,IAAMnC,MAAM+nB,GAEvCi7C,OAAQrjD,EAAQqjD,OAChBkR,WAAYv0D,EAAQu0D,WACpB1Q,SAAU7jD,EAAQ6jD,SAClB6K,gBAAiB1uD,EAAQ0uD,gBACzBC,YAAa3uD,EAAQ2uD,YACrBa,YAAaxvD,EAAQwvD,YACrBpK,QAASmZ,GAAiBxP,EAAO3J,QAASka,EAAYA,EAAUla,QAAU,GAC1EF,cAAaoa,GAAYA,EAAUpa,YAEnCkP,UAAWp0D,EAAQo0D,YAOrB5F,8BAA+B,SAAS33E,GACvC,IAAI4wC,EAAKj7C,KACLwQ,EAASyqC,EAAGymC,QACZa,EAASl4E,EAAQk4E,QAAU,GAC3B/uD,EAAUynB,EAAGw7B,MAAMjjD,QACnBw/D,EAAcx/D,EAAQquD,SAASyE,KAC/Bj1E,EAAS0yE,GAAuBtlF,UAAUujF,8BAA8B78E,MAAM81C,EAAIz4C,WAUtF,OALA6O,EAAOy1E,SAAWiL,GAAiBvhF,EAAOs2E,SAAUtzD,EAAQszD,UAC5Dz1E,EAAOunE,QAAUmZ,GAAiBvhF,EAAOmiF,YAAaK,EAAYpa,SAClEvnE,EAAOqnE,YAAcsZ,GAAU,CAACzP,EAAO7J,YAAaloE,EAAOkoE,YAAasa,EAAYva,UACpFpnE,EAAOinE,KAAOia,GAAOR,GAAiBvhF,EAAO8nE,KAAMga,GAAYr3C,EAAG0wC,QAAS1wC,EAAG2wC,QAASv6E,EAAO2xE,eAEvF3xE,GAGR0hF,gBAAiB,SAASn1F,EAAOmC,EAAOu/E,GACvC,IAKIviF,EAAGk2F,EAAIC,EAAQC,EAAmBC,EAAY5G,EAAUna,EALxDp3B,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACXwX,EAAShzC,EAAG2wC,QACZyH,EAAS,EACTC,EAAS,EAGb,GAAIrF,EAAOz6D,QAAQk5D,QAAS,CAK3B,IAJA0G,GAAcnF,EAAOsF,cAAc31F,GAEnCy0E,GADAma,EAAW/V,EAAM+c,iCACD31F,OAEXd,EAAI,EAAGA,EAAIs1E,IACf6gB,EAAS1G,EAASzvF,IACPgD,QAAUu/E,IAFEviF,EAMvBk2F,EAAKxc,EAAM71E,KAAKozB,SAASk/D,EAAOnzF,OACZ,SAAhBmzF,EAAO1vF,MAAmB0vF,EAAO9S,UAAY6N,EAAOr4D,MACvDu9D,GAAqBlF,EAAOsF,cAAcN,EAAGryF,KAAKb,KAC1B,EACvBuzF,GAAUH,GAAqB,EAE/BE,GAAUF,GAAqB,GAKlC,OAAIC,EAAa,EACTnF,EAAOnB,iBAAiBwG,EAASF,GAElCnF,EAAOnB,iBAAiBuG,EAASD,GAEzC,OAAOnF,EAAOnB,iBAAiBlvF,IAGhCi1F,0BAA2B,WAC1B,IAMI91F,EAAGs1E,EAAMlK,EAAOsrB,EANhBx4C,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACX9sC,EAAOsR,EAAG4kC,UACViT,EAAYnpD,EAAKnV,QAAQ6oD,OACzBl0C,EAAOstC,EAAM2R,UACbrB,EAASp9C,EAAK/oC,MAAQ,GAU1B,SAAS8yF,EAAgBC,EAAIp3E,EAAK3E,GACjC,OAAO3B,KAAK2B,IAAI3B,KAAKsG,IAAIo3E,EAAI/7E,GAAM2E,GAGpC,GAVIu2E,EAAUhM,WACbC,EAASA,EAAOt8E,QAAO,SAASkpF,GAC/B,OAAQA,EAAGtW,OAAOgK,SAQqB,aAArCyL,EAAUc,uBACbhY,GAAUiY,oBAAoB9M,QAE9B,IAAKhqF,EAAI,EAAGs1E,EAAO0U,EAAOlpF,OAAQd,EAAIs1E,IAAQt1E,EAC7CorE,EAAQ4e,EAAOhqF,GAAGsgF,OAClBoW,EAAgB7X,GAAUkY,YACzBlY,GAAUwL,aAAaL,EAAQhqF,GAAGsgF,OAClClV,EACAyT,GAAUmY,SAAShN,EAAQhqF,GAAGsgF,OAC9ByV,EAAUla,SAEXzQ,EAAM2Q,sBAAwB2a,EAAc/f,SAAS19D,EACrDmyD,EAAM6Q,sBAAwBya,EAAc/f,SAAS93C,EACrDusC,EAAM4Q,kBAAoB0a,EAAch2F,KAAKuY,EAC7CmyD,EAAM8Q,kBAAoBwa,EAAch2F,KAAKm+B,EAI/C,GAAI66C,EAAMjjD,QAAQquD,SAASyE,KAAKK,gBAC/B,IAAK5pF,EAAI,EAAGs1E,EAAO0U,EAAOlpF,OAAQd,EAAIs1E,IAAQt1E,EAC7CorE,EAAQ4e,EAAOhqF,GAAGsgF,OACd4U,GAAc9pB,EAAOh/B,KACpBpsC,EAAI,GAAKk1F,GAAclL,EAAOhqF,EAAI,GAAGsgF,OAAQl0C,KAChDg/B,EAAM2Q,sBAAwB4a,EAAgBvrB,EAAM2Q,sBAAuB3vC,EAAKovB,KAAMpvB,EAAK2tC,OAC3F3O,EAAM6Q,sBAAwB0a,EAAgBvrB,EAAM6Q,sBAAuB7vC,EAAKsvB,IAAKtvB,EAAK4tC,SAEvFh6E,EAAIgqF,EAAOlpF,OAAS,GAAKo0F,GAAclL,EAAOhqF,EAAI,GAAGsgF,OAAQl0C,KAChEg/B,EAAM4Q,kBAAoB2a,EAAgBvrB,EAAM4Q,kBAAmB5vC,EAAKovB,KAAMpvB,EAAK2tC,OACnF3O,EAAM8Q,kBAAoBya,EAAgBvrB,EAAM8Q,kBAAmB9vC,EAAKsvB,IAAKtvB,EAAK4tC,WAOvF+K,KAAM,WACL,IAQIxJ,EARAr9B,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACX9sC,EAAOsR,EAAG4kC,UACVkH,EAASp9C,EAAK/oC,MAAQ,GACtBuoC,EAAOstC,EAAM2R,UACbtM,EAASrF,EAAMqF,OACf/+E,EAAI,EACJs1E,EAAO0U,EAAOlpF,OAmBlB,IAhBIo9C,EAAGy3C,YACNpa,EAAO3uC,EAAKnV,QAAQ6oD,OAAO/E,KAE3BsD,GAAUE,OAAOzD,SAAS5B,EAAMC,IAAK,CACpCne,MAAoB,IAAd+f,EAAK/f,KAAiB,EAAIpvB,EAAKovB,KAAO+f,EAAK/f,KACjDue,OAAsB,IAAfwB,EAAKxB,MAAkBgF,EAAOloD,MAAQuV,EAAK2tC,MAAQwB,EAAKxB,MAC/Dre,KAAkB,IAAb6f,EAAK7f,IAAgB,EAAItvB,EAAKsvB,IAAM6f,EAAK7f,IAC9Cse,QAAwB,IAAhBuB,EAAKvB,OAAmB+E,EAAOnoD,OAASwV,EAAK4tC,OAASuB,EAAKvB,SAGpEptC,EAAKnV,QAAQstD,OAEblG,GAAUE,OAAOvD,WAAW9B,EAAMC,MAI5B35E,EAAIs1E,IAAQt1E,EAClBgqF,EAAOhqF,GAAG+kF,KAAK34C,IAOjB25C,cAAe,SAAS3tD,GACvB,IAAIgzC,EAAQhzC,EAAMkoD,OACd7pD,EAAU2B,EAAMk5D,SAChBtL,EAAgBnH,GAAUmH,cAE9B5tD,EAAM0tD,eAAiB,CACtBX,gBAAiB/Z,EAAM+Z,gBACvBC,YAAaha,EAAMga,YACnBa,YAAa7a,EAAM6a,YACnBnM,OAAQ1O,EAAM0O,QAGf1O,EAAM+Z,gBAAkB6P,GAAiBv+D,EAAQyvD,qBAAsBF,EAAcvvD,EAAQ0uD,kBAC7F/Z,EAAMga,YAAc4P,GAAiBv+D,EAAQ0vD,iBAAkBH,EAAcvvD,EAAQ2uD,cACrFha,EAAM6a,YAAc+O,GAAiBv+D,EAAQ2vD,iBAAkB3vD,EAAQwvD,aACvE7a,EAAM0O,OAASkb,GAAiBv+D,EAAQ2xD,YAAa3xD,EAAQqjD,WAI3Dmd,GAAYpY,GAAUpoD,QAAQjvB,QAElCq1E,EAAcR,KAAK,YAAa,CAC/BvM,MAAO,CACNrpE,KAAM,eACNywF,WAAY,CACX19D,SAAS,GAEV20D,UAAW,CACVgJ,UAAU,GAEXC,YAAa,CACZ59D,SAAS,GAEV87D,MAAO,CACN+B,aAAa,IAKfrkD,UAAW,CACV2+C,eAAe,EACfC,cAAc,GAGfzK,YAAa,GAAMjuE,KAAK2zD,GACxBglB,eAAgB,SAASnY,GACxB,IAII15E,EAAGs1E,EAAMwc,EAJTl9E,EAAOytB,SAASvJ,cAAc,MAC9Bj1B,EAAO61E,EAAM71E,KACbozB,EAAWpzB,EAAKozB,SAChBozC,EAASxmE,EAAKwmE,OAIlB,GADAz1D,EAAK6uB,aAAa,QAASi2C,EAAM7gD,GAAK,WAClC5B,EAASn2B,OACZ,IAAKd,EAAI,EAAGs1E,EAAOr+C,EAAS,GAAGpzB,KAAK/C,OAAQd,EAAIs1E,IAAQt1E,GACvD8xF,EAAWl9E,EAAK+zB,YAAYtG,SAASvJ,cAAc,QAC3B6P,YAAYtG,SAASvJ,cAAc,SAC9CgT,MAAMq5C,gBAAkBluD,EAAS,GAAGkuD,gBAAgBnlF,GAC7DqqE,EAAOrqE,IACV8xF,EAASnpD,YAAYtG,SAASkyB,eAAe8V,EAAOrqE,KAKvD,OAAO4U,EAAKm9E,WAEbp7D,OAAQ,CACP0zC,OAAQ,CACP2nB,eAAgB,SAAStY,GACxB,IAAI71E,EAAO61E,EAAM71E,KACjB,OAAIA,EAAKwmE,OAAOvpE,QAAU+C,EAAKozB,SAASn2B,OAChC+C,EAAKwmE,OAAOzmE,KAAI,SAASkJ,EAAO9M,GACtC,IAAI4sC,EAAO8sC,EAAM6J,eAAe,GAC5Bz3C,EAAQc,EAAKqlD,WAAWjN,SAAShlF,GAErC,MAAO,CACN89C,KAAMhxC,EACNs8E,UAAWt9C,EAAMq5C,gBACjBkE,YAAav9C,EAAMs5C,YACnB2C,UAAWj8C,EAAMm6C,YACjB9F,OAAQrpE,MAAMjT,EAAKozB,SAAS,GAAGpzB,KAAK7D,KAAO4sC,EAAK/oC,KAAK7D,GAAGmgF,OAGxDn9E,MAAOhD,MAIH,KAITqP,QAAS,SAASpG,EAAGipF,GACpB,IAEIlyF,EAAGs1E,EAAM1oC,EAFT5pC,EAAQkvF,EAAWlvF,MACnB02E,EAAQz2E,KAAKy2E,MAGjB,IAAK15E,EAAI,EAAGs1E,GAAQoE,EAAM71E,KAAKozB,UAAY,IAAIn2B,OAAQd,EAAIs1E,IAAQt1E,GAClE4sC,EAAO8sC,EAAM6J,eAAevjF,IACvB6D,KAAKb,GAAOm9E,QAAUvzC,EAAK/oC,KAAKb,GAAOm9E,OAG7CzG,EAAMlhD,WAKRm4D,SAAU,CACTC,UAAW,CACVrpB,MAAO,WACN,MAAO,IAERz6D,MAAO,SAASgqE,EAAMjzE,GACrB,OAAOA,EAAKwmE,OAAOyM,EAAK9zE,OAAS,KAAO8zE,EAAKia,YAMjD,IAAIuG,GAAuBtQ,GAAuB9rB,OAAO,CAExDunB,gBAAiBqC,GAASkI,IAE1BpK,WAAY/D,GAAUxX,KAKtBsb,oBAAqB,CACpB,kBACA,cACA,cACA,cACA,uBACA,mBACA,oBAMDgB,iBAAkB,WACjB,OAAO1gF,KAAKy2E,MAAM5J,MAAMj3C,IAMzB6qD,iBAAkB,WACjB,OAAOzgF,KAAKy2E,MAAM5J,MAAMj3C,IAGzBL,OAAQ,SAASosC,GAChB,IAOI5kE,EAAGs1E,EAAMoT,EAPTxqC,EAAKj7C,KACLw0B,EAAUymB,EAAG+kC,aACbr2C,EAAOsR,EAAG4kC,UACVx2D,EAAQ4xB,EAAGw7B,MAAMjjD,QAAQ0wD,YAAc,EACvCoQ,EAASr5C,EAAGs5C,QAAU,GACtBC,EAASv5C,EAAGw5C,QAAU,GACtBxE,EAAOtmD,EAAK/oC,KAOhB,IAJAq6C,EAAGy5C,gBAEH/qD,EAAKjN,MAAQue,EAAG05C,uBAEX53F,EAAI,EAAGs1E,EAAO79C,EAAQ5zB,KAAK/C,OAAQd,EAAIs1E,EAAMt1E,IACjDu3F,EAAOv3F,GAAKssB,EACZo8D,EAAQxqC,EAAG25C,cAAc73F,GACzBy3F,EAAOz3F,GAAK0oF,EACZp8D,GAASo8D,EAGV,IAAK1oF,EAAI,EAAGs1E,EAAO4d,EAAKpyF,OAAQd,EAAIs1E,IAAQt1E,EAC3CkzF,EAAKlzF,GAAGsxF,SAAWpzC,EAAGgnC,2BAA2BgO,EAAKlzF,GAAIA,GAC1Dk+C,EAAGomC,cAAc4O,EAAKlzF,GAAIA,EAAG4kE,IAO/B+yB,cAAe,WACd,IAAIz5C,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACX2R,EAAY3R,EAAM2R,UAClBwH,EAAOnZ,EAAMjjD,QACbqhE,EAAU5+E,KAAKsG,IAAI6rE,EAAUtR,MAAQsR,EAAU7vB,KAAM6vB,EAAUrR,OAASqR,EAAU3vB,KAEtFge,EAAM6N,YAAcruE,KAAK2B,IAAIi9E,EAAU,EAAG,GAC1Cpe,EAAM8N,YAActuE,KAAK2B,IAAIg4E,EAAKV,iBAAoBzY,EAAM6N,YAAc,IAAQsL,EAAKV,iBAAoB,EAAG,GAC9GzY,EAAMwa,cAAgBxa,EAAM6N,YAAc7N,EAAM8N,aAAe9N,EAAMqe,yBAErE75C,EAAGqpC,YAAc7N,EAAM6N,YAAe7N,EAAMwa,aAAeh2C,EAAGl7C,MAC9Dk7C,EAAGspC,YAActpC,EAAGqpC,YAAc7N,EAAMwa,cAGzC5P,cAAe,SAASpK,EAAKl3E,EAAO4hE,GACnC,IAAI1mB,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACXjiD,EAAUymB,EAAG+kC,aACb4P,EAAOnZ,EAAMjjD,QACb69D,EAAgBzB,EAAK7/C,UACrB88B,EAAQ4J,EAAM5J,MACdzF,EAASqP,EAAM71E,KAAKwmE,OAEpBkqB,EAAUzkB,EAAMkoB,QAChBxD,EAAU1kB,EAAMmoB,QAGhBC,EAAoBrF,EAAK1L,WACzBpb,EAAWmO,EAAIiG,OAAS,EAAIrQ,EAAMqoB,8BAA8B1gE,EAAQ5zB,KAAKb,IAC7EmkF,EAAajpC,EAAGs5C,QAAQx0F,GACxBokF,EAAWD,GAAcjN,EAAIiG,OAAS,EAAIjiC,EAAGw5C,QAAQ10F,IAErDo1F,EAAc9D,EAAc1C,aAAe,EAAI9hB,EAAMqoB,8BAA8B1gE,EAAQ5zB,KAAKb,IAChGyzB,EAAUyjD,EAAIoX,UAAY,GAE9BzS,GAAU3jB,OAAOgf,EAAK,CAErB+J,cAAe/lC,EAAGl7C,MAClBmhF,OAAQnhF,EACR6yF,OAAQ/lB,EAGRwQ,OAAQ,CACP6E,gBAAiB1uD,EAAQ0uD,gBACzBC,YAAa3uD,EAAQ2uD,YACrBa,YAAaxvD,EAAQwvD,YACrB6B,YAAarxD,EAAQqxD,YACrB7uE,EAAGs7E,EACH11D,EAAG21D,EACHhN,YAAa,EACbD,YAAa3iB,EAAQwzB,EAAcrsB,EACnCob,WAAYviB,GAAS0vB,EAAc3C,cAAgBuG,EAAoB/Q,EACvEC,SAAUxiB,GAAS0vB,EAAc3C,cAAgBuG,EAAoB9Q,EACrEt6E,MAAO+xE,GAAU9J,sBAAsB1K,EAAQrnE,EAAOqnE,EAAOrnE,OAI/Dk3E,EAAIkG,SAGLwX,qBAAsB,WACrB,IAAIngE,EAAUx0B,KAAKggF,aACfr2C,EAAO3pC,KAAK6/E,UACZnjD,EAAQ,EAQZ,OANAk/C,GAAU5J,KAAKroC,EAAK/oC,MAAM,SAASyJ,EAAStK,GACtC8T,MAAM2gB,EAAQ5zB,KAAKb,KAAYsK,EAAQ6yE,QAC3CxgD,OAIKA,GAMRomD,cAAe,SAAS7L,GACvB,IAAI9O,EAAQ8O,EAAIoG,OACZ7pD,EAAUyjD,EAAIoX,SACdtL,EAAgBnH,GAAUmH,cAC1BlR,EAAiB+J,GAAU/J,eAE/BoF,EAAI4L,eAAiB,CACpBX,gBAAiB/Z,EAAM+Z,gBACvBC,YAAaha,EAAMga,YACnBa,YAAa7a,EAAM6a,aAGpB7a,EAAM+Z,gBAAkBrQ,EAAer+C,EAAQyvD,qBAAsBF,EAAcvvD,EAAQ0uD,kBAC3F/Z,EAAMga,YAActQ,EAAer+C,EAAQ0vD,iBAAkBH,EAAcvvD,EAAQ2uD,cACnFha,EAAM6a,YAAcnR,EAAer+C,EAAQ2vD,iBAAkB3vD,EAAQwvD,cAMtE4R,cAAe,SAAS70F,GACvB,IAAIk7C,EAAKj7C,KACL08B,EAAQ18B,KAAK6/E,UAAUnjD,MACvBlI,EAAUymB,EAAG+kC,aACbr2C,EAAOsR,EAAG4kC,UAEd,GAAIhsE,MAAM2gB,EAAQ5zB,KAAKb,KAAW4pC,EAAK/oC,KAAKb,GAAOm9E,OAClD,OAAO,EAIR,IAAIhjD,EAAU,CACbu8C,MAAOx7B,EAAGw7B,MACViM,UAAW3iF,EACXy0B,QAASA,EACT8qD,aAAcrkC,EAAGl7C,OAGlB,OAAOi0F,GAAU,CAChB/4C,EAAGw7B,MAAMjjD,QAAQquD,SAAS5K,IAAIwO,MAC7B,EAAIxvE,KAAK2zD,GAAMltC,GACdxC,EAASn6B,MAId65E,EAAcR,KAAK,MAAOwC,GAAUhL,MAAMgJ,EAAcwb,WACxDxb,EAAcR,KAAK,MAAO,CACzB8V,iBAAkB,IAInB,IAAImG,GAAiBhG,GAEjBiG,GAAmB1Z,GAAU/J,eAEjC+H,EAAcR,KAAK,QAAS,CAC3B0N,UAAU,EACVja,MAAO,CACNrpE,KAAM,gBAEPq+E,SAAU,CACTyE,KAAM,CACLrO,KAAM,QACNW,QAAS,MAKZ,IAAI2c,GAAmBxR,GAAuB9rB,OAAO,CACpDsnB,mBAAoBsC,GAAShxD,KAE7B2uD,gBAAiBqC,GAASmI,MAE1BrK,WAAY/D,GAAUxX,KAKtBqb,uBAAwB,CACvB,kBACA,cACA,cACA,iBACA,aACA,mBACA,kBACA,QAMDC,oBAAqB,CACpBwC,gBAAiB,uBACjBC,YAAa,mBACba,YAAa,mBACb4E,UAAW,iBACX3E,qBAAsB,4BACtBC,iBAAkB,wBAClBC,iBAAkB,wBAClBgC,YAAa,mBACb4C,WAAY,aACZlR,OAAQ,cACRQ,SAAU,iBAMXqJ,iBAAkB,WACjB,OAAO1gF,KAAKy2E,MAAM5J,MAAMj3C,IAMzB6qD,iBAAkB,WACjB,OAAOzgF,KAAKy2E,MAAM5J,MAAMj3C,IAGzBL,OAAQ,SAASosC,GAChB,IAMI5kE,EAAGs1E,EANHp3B,EAAKj7C,KACL2pC,EAAOsR,EAAG4kC,UACVyG,EAAO38C,EAAKnV,QACZuyD,EAASp9C,EAAK/oC,MAAQ,GACtBisE,EAAQ5xB,EAAGw7B,MAAM5J,MACjBr8D,EAASyqC,EAAGymC,QAoBhB,SAhBuBpkF,IAAnBkT,EAAOooE,cAAgDt7E,IAAvBkT,EAAOmiF,cAC1CniF,EAAOmiF,YAAcniF,EAAOooE,SAI7B0N,EAAKsM,OAAS/lB,EACdyZ,EAAKtF,cAAgB/lC,EAAGl7C,MAExBumF,EAAKU,UAAYD,EACjBT,EAAKa,OAAQ,EAEbb,EAAKjJ,OAASpiC,EAAG+mC,8BAA8BsE,GAE/CA,EAAKnJ,QAGApgF,EAAI,EAAGs1E,EAAO0U,EAAOlpF,OAAQd,EAAIs1E,IAAQt1E,EAC7Ck+C,EAAGomC,cAAc0F,EAAOhqF,GAAIA,EAAG4kE,GAOhC,IAHA1mB,EAAG43C,4BAGE91F,EAAI,EAAGs1E,EAAO0U,EAAOlpF,OAAQd,EAAIs1E,IAAQt1E,EAC7CgqF,EAAOhqF,GAAGogF,SAIZkE,cAAe,SAASlsD,EAAOp1B,EAAO4hE,GACrC,IAAI1mB,EAAKj7C,KACLuiF,EAASptD,EAAMotD,QAAU,GACzB/tD,EAAUymB,EAAG+kC,aACbnT,EAAQ5xB,EAAGw7B,MAAM5J,MACjB2oB,EAAgB3oB,EAAM4oB,yBAAyB11F,EAAOy0B,EAAQ5zB,KAAKb,IACnEyzB,EAAUynB,EAAGgnC,2BAA2B9sD,EAAOp1B,GAC/C+yF,EAAY73C,EAAG4kC,UAAUrrD,QAAQ6oD,OACjCrnE,EAAI2rD,EAAQkL,EAAMkoB,QAAUS,EAAcx/E,EAC1C4lB,EAAI+lC,EAAQkL,EAAMmoB,QAAUQ,EAAc55D,EAG9CzG,EAAMy9D,OAAS/lB,EACf13C,EAAMk5D,SAAW76D,EACjB2B,EAAM6rD,cAAgB/lC,EAAGl7C,MACzBo1B,EAAM+rD,OAASnhF,EAGfo1B,EAAMkoD,OAAS,CACdrnE,EAAGA,EACH4lB,EAAGA,EACHyrD,KAAM9E,EAAO8E,MAAQxzE,MAAMmC,IAAMnC,MAAM+nB,GAEvCi7C,OAAQrjD,EAAQqjD,OAChBkR,WAAYv0D,EAAQu0D,WACpB1Q,SAAU7jD,EAAQ6jD,SAClB6K,gBAAiB1uD,EAAQ0uD,gBACzBC,YAAa3uD,EAAQ2uD,YACrBa,YAAaxvD,EAAQwvD,YACrBpK,QAAS0c,GAAiB/S,EAAO3J,QAASka,EAAYA,EAAUla,QAAU,GAG1EgP,UAAWp0D,EAAQo0D,YAOrB5F,8BAA+B,WAC9B,IAAI/mC,EAAKj7C,KACLwQ,EAASyqC,EAAGymC,QACZluD,EAAUynB,EAAGw7B,MAAMjjD,QACnBniB,EAAS0yE,GAAuBtlF,UAAUujF,8BAA8B78E,MAAM81C,EAAIz4C,WAKtF,OAHA6O,EAAOy1E,SAAWwO,GAAiB9kF,EAAOs2E,SAAUtzD,EAAQszD,UAC5Dz1E,EAAOunE,QAAU0c,GAAiB9kF,EAAOmiF,YAAan/D,EAAQquD,SAASyE,KAAK1N,SAErEvnE,GAGRwhF,0BAA2B,WAC1B,IAII91F,EAAGs1E,EAAMlK,EAAOsrB,EAJhBx4C,EAAKj7C,KACL2pC,EAAOsR,EAAG4kC,UACV12C,EAAO8R,EAAGw7B,MAAM2R,UAChBrB,EAASp9C,EAAK/oC,MAAQ,GAU1B,SAAS8yF,EAAgBC,EAAIp3E,EAAK3E,GACjC,OAAO3B,KAAK2B,IAAI3B,KAAKsG,IAAIo3E,EAAI/7E,GAAM2E,GAGpC,IAVIotB,EAAKnV,QAAQ6oD,OAAOyJ,WACvBC,EAASA,EAAOt8E,QAAO,SAASkpF,GAC/B,OAAQA,EAAGtW,OAAOgK,SAQftqF,EAAI,EAAGs1E,EAAO0U,EAAOlpF,OAAQd,EAAIs1E,IAAQt1E,EAC7CorE,EAAQ4e,EAAOhqF,GAAGsgF,OAClBoW,EAAgB7X,GAAUkY,YACzBlY,GAAUwL,aAAaL,EAAQhqF,GAAG,GAAMsgF,OACxClV,EACAyT,GAAUmY,SAAShN,EAAQhqF,GAAG,GAAMsgF,OACpClV,EAAMyQ,SAIPzQ,EAAM2Q,sBAAwB4a,EAAgBD,EAAc/f,SAAS19D,EAAGmzB,EAAKovB,KAAMpvB,EAAK2tC,OACxF3O,EAAM6Q,sBAAwB0a,EAAgBD,EAAc/f,SAAS93C,EAAGuN,EAAKsvB,IAAKtvB,EAAK4tC,QACvF5O,EAAM4Q,kBAAoB2a,EAAgBD,EAAch2F,KAAKuY,EAAGmzB,EAAKovB,KAAMpvB,EAAK2tC,OAChF3O,EAAM8Q,kBAAoBya,EAAgBD,EAAch2F,KAAKm+B,EAAGuN,EAAKsvB,IAAKtvB,EAAK4tC,SAIjF+L,cAAe,SAAS3tD,GACvB,IAAIgzC,EAAQhzC,EAAMkoD,OACd7pD,EAAU2B,EAAMk5D,SAChBtL,EAAgBnH,GAAUmH,cAE9B5tD,EAAM0tD,eAAiB,CACtBX,gBAAiB/Z,EAAM+Z,gBACvBC,YAAaha,EAAMga,YACnBa,YAAa7a,EAAM6a,YACnBnM,OAAQ1O,EAAM0O,QAGf1O,EAAM+Z,gBAAkBoT,GAAiB9hE,EAAQyvD,qBAAsBF,EAAcvvD,EAAQ0uD,kBAC7F/Z,EAAMga,YAAcmT,GAAiB9hE,EAAQ0vD,iBAAkBH,EAAcvvD,EAAQ2uD,cACrFha,EAAM6a,YAAcsS,GAAiB9hE,EAAQ2vD,iBAAkB3vD,EAAQwvD,aACvE7a,EAAM0O,OAASye,GAAiB9hE,EAAQ2xD,YAAa3xD,EAAQqjD,WAI/D+C,EAAcR,KAAK,UAAW,CAC7BgJ,MAAO,CACN35B,KAAM,UAGPs3B,OAAQ,CACPI,MAAO,CAAC,CACPvqD,GAAI,WACJpyB,KAAM,SACNgzB,SAAU,WAEX6pD,MAAO,CAAC,CACPzqD,GAAI,WACJpyB,KAAM,SACNgzB,SAAU,UAIZk3D,SAAU,CACTC,UAAW,CACVrpB,MAAO,WACN,MAAO,IAERz6D,MAAO,SAASgqE,GACf,MAAO,IAAMA,EAAKga,OAAS,KAAOha,EAAKia,OAAS,SAMpDlU,EAAcR,KAAK,SAAU,CAC5BplD,SAAU,CACT0hE,QAAS,CACRjD,UAAU,MAMb,IAMIp8D,GAAc,CACjB+0D,IAAKC,GACLsK,OAAQ5H,GACRqH,SAAU/F,GACVwC,cAAeC,GACfxL,KAAMkM,GACNoD,UAAWvB,GACXwB,IAAKR,GACLS,MAAOP,GACPG,QAfwBlD,IAwBzB,SAASuD,GAAoB/vF,EAAGywE,GAC/B,OAAIzwE,EAAEgwF,OACE,CACNhgF,EAAGhQ,EAAEgQ,EACL4lB,EAAG51B,EAAE41B,GAIAggD,GAAUma,oBAAoB/vF,EAAGywE,GAQzC,SAASwf,GAAkBxf,EAAOyf,GACjC,IACIC,EAAUp5F,EAAGyyF,EAAGnd,EAAM+jB,EAAM/rF,EAD5BmiF,EAAW/V,EAAM+c,gCAGrB,IAAKz2F,EAAI,EAAGs1E,EAAOma,EAAS3uF,OAAQd,EAAIs1E,IAAQt1E,EAE/C,IAAKyyF,EAAI,EAAG4G,GADZD,EAAW3J,EAASzvF,GAAG6D,MACK/C,OAAQ2xF,EAAI4G,IAAQ5G,GAC/CnlF,EAAU8rF,EAAS3G,IACNpS,MAAMiK,MAClB6O,EAAQ7rF,GAYZ,SAASgsF,GAAkB5f,EAAOjgD,GACjC,IAAIqrD,EAAW,GAQf,OANAoU,GAAkBxf,GAAO,SAASpsE,GAC7BA,EAAQ+6E,QAAQ5uD,EAASxgB,EAAGwgB,EAASoF,IACxCimD,EAASlkF,KAAK0M,MAITw3E,EAWR,SAASyU,GAAgB7f,EAAOjgD,EAAU+/D,EAAWC,GACpD,IAAIC,EAAc7kB,OAAO8kB,kBACrBC,EAAe,GAkBnB,OAhBAV,GAAkBxf,GAAO,SAASpsE,GACjC,IAAIksF,GAAclsF,EAAQ+6E,QAAQ5uD,EAASxgB,EAAGwgB,EAASoF,GAAvD,CAIA,IAAI0wD,EAASjiF,EAAQu7E,iBACjB9c,EAAW0tB,EAAehgE,EAAU81D,GACpCxjB,EAAW2tB,GACdE,EAAe,CAACtsF,GAChBosF,EAAc3tB,GACJA,IAAa2tB,GAEvBE,EAAah5F,KAAK0M,OAIbssF,EAQR,SAASC,GAAyBhF,GACjC,IAAIiF,GAA8B,IAAvBjF,EAAKpgE,QAAQ,KACpBslE,GAA8B,IAAvBlF,EAAKpgE,QAAQ,KAExB,OAAO,SAASulE,EAAKC,GACpB,IAAI/9C,EAAS49C,EAAO5gF,KAAK4B,IAAIk/E,EAAI/gF,EAAIghF,EAAIhhF,GAAK,EAC1CmjC,EAAS29C,EAAO7gF,KAAK4B,IAAIk/E,EAAIn7D,EAAIo7D,EAAIp7D,GAAK,EAC9C,OAAO3lB,KAAKG,KAAKH,KAAKC,IAAI+iC,EAAQ,GAAKhjC,KAAKC,IAAIijC,EAAQ,KAI1D,SAAS89C,GAAUxgB,EAAOzwE,EAAGwtB,GAC5B,IAAIgD,EAAWu/D,GAAoB/vF,EAAGywE,GAEtCjjD,EAAQo+D,KAAOp+D,EAAQo+D,MAAQ,IAC/B,IAAI4E,EAAiBI,GAAyBpjE,EAAQo+D,MAClDsF,EAAQ1jE,EAAQ+iE,UAAYF,GAAkB5f,EAAOjgD,GAAY8/D,GAAgB7f,EAAOjgD,GAAU,EAAOggE,GACzG3U,EAAW,GAEf,OAAKqV,EAAMr5F,QAIX44E,EAAM+c,gCAAgCzxF,SAAQ,SAAS4nC,GACtD,IAAIt/B,EAAUs/B,EAAK/oC,KAAKs2F,EAAM,GAAGhW,QAG7B72E,IAAYA,EAAQ+yE,MAAMiK,MAC7BxF,EAASlkF,KAAK0M,MAITw3E,GAZC,GA4BT,IAAIsV,GAAmB,CAEtBC,MAAO,CACNC,OAAQ,SAAS5gB,EAAOzwE,GACvB,IAAIwwB,EAAWu/D,GAAoB/vF,EAAGywE,GAClCoL,EAAW,GASf,OAPAoU,GAAkBxf,GAAO,SAASpsE,GACjC,GAAIA,EAAQ+6E,QAAQ5uD,EAASxgB,EAAGwgB,EAASoF,GAExC,OADAimD,EAASlkF,KAAK0M,GACPw3E,KAIFA,EAASjjF,MAAM,EAAG,IAS1BiL,MAAOotF,GAYPl3F,MAAOk3F,GAWPziE,QAAS,SAASiiD,EAAOzwE,EAAGwtB,GAC3B,IAAIgD,EAAWu/D,GAAoB/vF,EAAGywE,GACtCjjD,EAAQo+D,KAAOp+D,EAAQo+D,MAAQ,KAC/B,IAAI4E,EAAiBI,GAAyBpjE,EAAQo+D,MAClDsF,EAAQ1jE,EAAQ+iE,UAAYF,GAAkB5f,EAAOjgD,GAAY8/D,GAAgB7f,EAAOjgD,GAAU,EAAOggE,GAM7G,OAJIU,EAAMr5F,OAAS,IAClBq5F,EAAQzgB,EAAM6J,eAAe4W,EAAM,GAAGlW,eAAepgF,MAG/Cs2F,GASR,SAAU,SAASzgB,EAAOzwE,GACzB,OAAOixF,GAAUxgB,EAAOzwE,EAAG,CAACuwF,WAAW,KAWxCphE,MAAO,SAASshD,EAAOzwE,GAEtB,OAAOqwF,GAAkB5f,EADVsf,GAAoB/vF,EAAGywE,KAYvC6gB,QAAS,SAAS7gB,EAAOzwE,EAAGwtB,GAC3B,IAAIgD,EAAWu/D,GAAoB/vF,EAAGywE,GACtCjjD,EAAQo+D,KAAOp+D,EAAQo+D,MAAQ,KAC/B,IAAI4E,EAAiBI,GAAyBpjE,EAAQo+D,MACtD,OAAO0E,GAAgB7f,EAAOjgD,EAAUhD,EAAQ+iE,UAAWC,IAW5DxgF,EAAG,SAASygE,EAAOzwE,EAAGwtB,GACrB,IAAIgD,EAAWu/D,GAAoB/vF,EAAGywE,GAClCygB,EAAQ,GACRK,GAAiB,EAiBrB,OAfAtB,GAAkBxf,GAAO,SAASpsE,GAC7BA,EAAQ49E,SAASzxD,EAASxgB,IAC7BkhF,EAAMv5F,KAAK0M,GAGRA,EAAQ+6E,QAAQ5uD,EAASxgB,EAAGwgB,EAASoF,KACxC27D,GAAiB,MAMf/jE,EAAQ+iE,YAAcgB,IACzBL,EAAQ,IAEFA,GAWRt7D,EAAG,SAAS66C,EAAOzwE,EAAGwtB,GACrB,IAAIgD,EAAWu/D,GAAoB/vF,EAAGywE,GAClCygB,EAAQ,GACRK,GAAiB,EAiBrB,OAfAtB,GAAkBxf,GAAO,SAASpsE,GAC7BA,EAAQ69E,SAAS1xD,EAASoF,IAC7Bs7D,EAAMv5F,KAAK0M,GAGRA,EAAQ+6E,QAAQ5uD,EAASxgB,EAAGwgB,EAASoF,KACxC27D,GAAiB,MAMf/jE,EAAQ+iE,YAAcgB,IACzBL,EAAQ,IAEFA,KAKNj/B,GAAS2jB,GAAU3jB,OAEvB,SAASu/B,GAAiBj3F,EAAOi2B,GAChC,OAAOolD,GAAU6b,MAAMl3F,GAAO,SAASqQ,GACtC,OAAOA,EAAE8mF,MAAQlhE,KAInB,SAASmhE,GAAap3F,EAAO+Q,GAC5B,OAAO/Q,EAAMs6E,MAAK,SAAS1xE,EAAGC,GAC7B,IAAIkpE,EAAKhhE,EAAUlI,EAAID,EACnBopE,EAAKjhE,EAAUnI,EAAIC,EACvB,OAAOkpE,EAAG/B,SAAWgC,EAAGhC,OACvB+B,EAAGvyE,MAAQwyE,EAAGxyE,MACduyE,EAAG/B,OAASgC,EAAGhC,UAIlB,SAASqnB,GAAUC,GAClB,IACI96F,EAAGs1E,EAAMylB,EADTC,EAAc,GAGlB,IAAKh7F,EAAI,EAAGs1E,GAAQwlB,GAAS,IAAIh6F,OAAQd,EAAIs1E,IAAQt1E,EACpD+6F,EAAMD,EAAM96F,GACZg7F,EAAYp6F,KAAK,CAChBoC,MAAOhD,EACP+6F,IAAKA,EACLJ,IAAKI,EAAIthE,SACTyyD,WAAY6O,EAAI7L,eAChB1b,OAAQunB,EAAIvnB,SAGd,OAAOwnB,EAGR,SAASC,GAAcC,EAAS5qE,GAC/B,IAAItwB,EAAGs1E,EAAM6lB,EACb,IAAKn7F,EAAI,EAAGs1E,EAAO4lB,EAAQp6F,OAAQd,EAAIs1E,IAAQt1E,GAC9Cm7F,EAASD,EAAQl7F,IAEV62B,MAAQskE,EAAOjP,WACnBiP,EAAOJ,IAAIK,WAAa9qE,EAAO+qE,eAC/B/qE,EAAOgrE,aAEVH,EAAOvkE,OAASukE,EAAOjP,YAAc57D,EAAOirE,cAI9C,SAASC,GAAiBV,GACzB,IAAIE,EAAcH,GAAUC,GACxBt/B,EAAOo/B,GAAaH,GAAiBO,EAAa,SAAS,GAC3DjhB,EAAQ6gB,GAAaH,GAAiBO,EAAa,UACnDt/B,EAAMk/B,GAAaH,GAAiBO,EAAa,QAAQ,GACzDhhB,EAAS4gB,GAAaH,GAAiBO,EAAa,WAExD,MAAO,CACNS,WAAYjgC,EAAKjvD,OAAOmvD,GACxBggC,eAAgB3hB,EAAMxtE,OAAOytE,GAC7BqR,UAAWoP,GAAiBO,EAAa,aACzCW,SAAUngC,EAAKjvD,OAAOwtE,GACtBmS,WAAYxwB,EAAInvD,OAAOytE,IAIzB,SAAS4hB,GAAeC,EAAYxQ,EAAWj/E,EAAGC,GACjD,OAAO6M,KAAK2B,IAAIghF,EAAWzvF,GAAIi/E,EAAUj/E,IAAM8M,KAAK2B,IAAIghF,EAAWxvF,GAAIg/E,EAAUh/E,IAGlF,SAASyvF,GAAWzQ,EAAW/6D,EAAQ6qE,GACtC,IAEIY,EAAUC,EAFVjB,EAAMI,EAAOJ,IACbc,EAAaxQ,EAAUwQ,WAU3B,GAPIV,EAAOxyF,OAEV0iF,EAAU8P,EAAOR,MAAQQ,EAAOxyF,MAEjCwyF,EAAOxyF,KAAOwyF,EAAOjP,WAAa6O,EAAInkE,OAASmkE,EAAIlkE,MACnDw0D,EAAU8P,EAAOR,MAAQQ,EAAOxyF,KAE5BoyF,EAAIkB,WAAY,CACnB,IAAIC,EAAanB,EAAIkB,aACrBJ,EAAWngC,IAAMxiD,KAAK2B,IAAIghF,EAAWngC,IAAKwgC,EAAWxgC,KACrDmgC,EAAWrgC,KAAOtiD,KAAK2B,IAAIghF,EAAWrgC,KAAM0gC,EAAW1gC,MACvDqgC,EAAW7hB,OAAS9gE,KAAK2B,IAAIghF,EAAW7hB,OAAQkiB,EAAWliB,QAC3D6hB,EAAW9hB,MAAQ7gE,KAAK2B,IAAIghF,EAAW9hB,MAAOmiB,EAAWniB,OAM1D,GAHAgiB,EAAWzrE,EAAO6rE,WAAaP,GAAeC,EAAYxQ,EAAW,OAAQ,SAC7E2Q,EAAY1rE,EAAO8rE,YAAcR,GAAeC,EAAYxQ,EAAW,MAAO,UAE1E0Q,IAAa1Q,EAAU7uD,GAAKw/D,IAAc3Q,EAAUntD,EAAG,CAC1DmtD,EAAU7uD,EAAIu/D,EACd1Q,EAAUntD,EAAI89D,EAGd,IAAIK,EAAQlB,EAAOjP,WAAa,CAAC6P,EAAU1Q,EAAU7uD,GAAK,CAACw/D,EAAW3Q,EAAUntD,GAChF,OAAOm+D,EAAM,KAAOA,EAAM,MAAQvlF,MAAMulF,EAAM,MAAQvlF,MAAMulF,EAAM,MAIpE,SAASC,GAAiBjR,GACzB,IAAIwQ,EAAaxQ,EAAUwQ,WAE3B,SAASU,EAAU5B,GAClB,IAAI6B,EAAStjF,KAAK2B,IAAIghF,EAAWlB,GAAOtP,EAAUsP,GAAM,GAExD,OADAtP,EAAUsP,IAAQ6B,EACXA,EAERnR,EAAUxsD,GAAK09D,EAAU,OACzBlR,EAAUpyE,GAAKsjF,EAAU,QACzBA,EAAU,SACVA,EAAU,UAGX,SAASE,GAAWvQ,EAAYb,GAC/B,IAAIwQ,EAAaxQ,EAAUwQ,WAE3B,SAASa,EAAmBC,GAC3B,IAAIC,EAAS,CAACphC,KAAM,EAAGE,IAAK,EAAGqe,MAAO,EAAGC,OAAQ,GAIjD,OAHA2iB,EAAU33F,SAAQ,SAAS21F,GAC1BiC,EAAOjC,GAAOzhF,KAAK2B,IAAIwwE,EAAUsP,GAAMkB,EAAWlB,OAE5CiC,EAGR,OACGF,EADIxQ,EACe,CAAC,OAAQ,SACT,CAAC,MAAO,WAG/B,SAAS2Q,GAAS/B,EAAOzP,EAAW/6D,GACnC,IACItwB,EAAGs1E,EAAM6lB,EAAQJ,EAAK+B,EAAOC,EAD7BC,EAAa,GAGjB,IAAKh9F,EAAI,EAAGs1E,EAAOwlB,EAAMh6F,OAAQd,EAAIs1E,IAAQt1E,GAE5C+6F,GADAI,EAASL,EAAM96F,IACF+6F,KAETviE,OACH2iE,EAAOtkE,OAASw0D,EAAU7uD,EAC1B2+D,EAAOvkE,QAAUy0D,EAAUntD,EAC3Bu+D,GAAWtB,EAAOjP,WAAYb,IAE3ByQ,GAAWzQ,EAAW/6D,EAAQ6qE,KACjC4B,GAAU,EACNC,EAAWl8F,SAGdg8F,GAAQ,IAGL/B,EAAIK,WACR4B,EAAWp8F,KAAKu6F,GAIlB,OAAO2B,GAAQD,GAASG,EAAY3R,EAAW/6D,IAAqBysE,EAGrE,SAASE,GAAWnC,EAAOzP,EAAW/6D,GACrC,IAGItwB,EAAGs1E,EAAM6lB,EAAQJ,EAHjBmC,EAAc5sE,EAAO86D,QACrBnyE,EAAIoyE,EAAUpyE,EACd4lB,EAAIwsD,EAAUxsD,EAGlB,IAAK7+B,EAAI,EAAGs1E,EAAOwlB,EAAMh6F,OAAQd,EAAIs1E,IAAQt1E,EAE5C+6F,GADAI,EAASL,EAAM96F,IACF+6F,IACTI,EAAOjP,YACV6O,EAAIv/B,KAAOu/B,EAAIK,UAAY8B,EAAY1hC,KAAO6vB,EAAU7vB,KACxDu/B,EAAIhhB,MAAQghB,EAAIK,UAAY9qE,EAAO6rE,WAAae,EAAYnjB,MAAQsR,EAAU7vB,KAAO6vB,EAAU7uD,EAC/Fu+D,EAAIr/B,IAAM78B,EACVk8D,EAAI/gB,OAASn7C,EAAIk8D,EAAInkE,OACrBmkE,EAAIlkE,MAAQkkE,EAAIhhB,MAAQghB,EAAIv/B,KAC5B38B,EAAIk8D,EAAI/gB,SAER+gB,EAAIv/B,KAAOviD,EACX8hF,EAAIhhB,MAAQ9gE,EAAI8hF,EAAIlkE,MACpBkkE,EAAIr/B,IAAM2vB,EAAU3vB,IACpBq/B,EAAI/gB,OAASqR,EAAU3vB,IAAM2vB,EAAUntD,EACvC68D,EAAInkE,OAASmkE,EAAI/gB,OAAS+gB,EAAIr/B,IAC9BziD,EAAI8hF,EAAIhhB,OAIVsR,EAAUpyE,EAAIA,EACdoyE,EAAUxsD,EAAIA,EAGfg+C,EAAcR,KAAK,SAAU,CAC5B8e,OAAQ,CACP/P,QAAS,CACR1vB,IAAK,EACLqe,MAAO,EACPC,OAAQ,EACRxe,KAAM,MAyBT,IAAI2hC,GAAe,CAClB5pE,SAAU,GAQV6pE,OAAQ,SAAS1jB,EAAO5C,GAClB4C,EAAMohB,QACVphB,EAAMohB,MAAQ,IAIfhkB,EAAKskB,UAAYtkB,EAAKskB,YAAa,EACnCtkB,EAAKr9C,SAAWq9C,EAAKr9C,UAAY,MACjCq9C,EAAKtD,OAASsD,EAAKtD,QAAU,EAC7BsD,EAAKumB,QAAUvmB,EAAKumB,SAAW,WAC9B,MAAO,CAAC,CACP5gE,EAAG,EACHsoD,KAAM,WACLjO,EAAKiO,KAAK38E,MAAM0uE,EAAMrxE,eAKzBi0E,EAAMohB,MAAMl6F,KAAKk2E,IAQlBwmB,UAAW,SAAS5jB,EAAO6jB,GAC1B,IAAIv6F,EAAQ02E,EAAMohB,MAAQphB,EAAMohB,MAAMrmE,QAAQ8oE,IAAe,GAC9C,IAAXv6F,GACH02E,EAAMohB,MAAM1tF,OAAOpK,EAAO,IAU5Bw6F,UAAW,SAAS9jB,EAAO5C,EAAMrgD,GAMhC,IALA,IAGIq9C,EAHAnkE,EAAQ,CAAC,YAAa,WAAY,UAClC2lE,EAAO3lE,EAAM7O,OACbd,EAAI,EAGDA,EAAIs1E,IAAQt1E,EAClB8zE,EAAOnkE,EAAM3P,GACTy2B,EAAQvyB,eAAe4vE,KAC1BgD,EAAKhD,GAAQr9C,EAAQq9C,KAYxBt7C,OAAQ,SAASkhD,EAAO7iD,EAAOD,GAC9B,GAAK8iD,EAAL,CAIA,IAAI+jB,EAAgB/jB,EAAMjjD,QAAQ0kE,QAAU,GACxC/P,EAAUvM,GAAUpoD,QAAQ2mD,UAAUqgB,EAAcrS,SAEpDiQ,EAAiBxkE,EAAQu0D,EAAQv0D,MACjC6mE,EAAkB9mE,EAASw0D,EAAQx0D,OACnCkkE,EAAQU,GAAiB9hB,EAAMohB,OAC/B6C,EAAgB7C,EAAMa,SACtBiC,EAAkB9C,EAAM5O,WA6BxB57D,EAAS7wB,OAAOmmF,OAAO,CAC1BuW,WAAYtlE,EACZulE,YAAaxlE,EACbw0D,QAASA,EACTiQ,eAAgBA,EAChBC,aAAcD,EAAiB,EAAIsC,EAAc78F,OACjDy6F,cAAemC,EAAkB,IAE9BrS,EAAYnwB,GAAO,CACtB2gC,WAAY3gC,GAAO,GAAIkwB,GACvB5uD,EAAG6+D,EACHn9D,EAAGw/D,EACHzkF,EAAGmyE,EAAQ5vB,KACX38B,EAAGusD,EAAQ1vB,KACT0vB,GAEH6P,GAAc0C,EAAcpxF,OAAOqxF,GAAkBttE,GAGrDusE,GAASc,EAAetS,EAAW/6D,GAG/BusE,GAASe,EAAiBvS,EAAW/6D,IAExCusE,GAASc,EAAetS,EAAW/6D,GAGpCgsE,GAAiBjR,GAGjB4R,GAAWnC,EAAMW,WAAYpQ,EAAW/6D,GAGxC+6D,EAAUpyE,GAAKoyE,EAAU7uD,EACzB6uD,EAAUxsD,GAAKwsD,EAAUntD,EAEzB++D,GAAWnC,EAAMY,eAAgBrQ,EAAW/6D,GAE5CopD,EAAM2R,UAAY,CACjB7vB,KAAM6vB,EAAU7vB,KAChBE,IAAK2vB,EAAU3vB,IACfqe,MAAOsR,EAAU7vB,KAAO6vB,EAAU7uD,EAClCw9C,OAAQqR,EAAU3vB,IAAM2vB,EAAUntD,GAInC2gD,GAAU5J,KAAK6lB,EAAMzP,WAAW,SAAS8P,GACxC,IAAIJ,EAAMI,EAAOJ,IACjB7/B,GAAO6/B,EAAKrhB,EAAM2R,WAClB0P,EAAIviE,OAAO6yD,EAAU7uD,EAAG6uD,EAAUntD,SAUjC2/D,GAAiB,CACpBC,eAAgB,SAAShnB,GAMxB,OALIA,GAAQA,EAAKiI,SAEhBjI,EAAOA,EAAKiI,QAGNjI,GAAQA,EAAKinB,WAAW,OAAS,OAItCC,GAAe,k9BAOfC,GAAan0B,EALiBrqE,OAAOmmF,OAAO,CAChDx1E,UAAW,KACX,QAAW4tF,MAKPE,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,GAAa5xF,EAASN,GAC9B,IAAInM,EAAQg+E,GAAUmG,SAAS13E,EAASN,GACpCmwE,EAAUt8E,GAASA,EAAMskC,MAAM,qBACnC,OAAOg4C,EAAUtI,OAAOsI,EAAQ,SAAM58E,EAQvC,SAAS4+F,GAAWpgB,EAAQtrE,GAC3B,IAAIq4B,EAAQizC,EAAOjzC,MAIfszD,EAAergB,EAAOsgB,aAAa,UACnCC,EAAcvgB,EAAOsgB,aAAa,SAoBtC,GAjBAtgB,EAAOmf,IAAe,CACrBqB,QAAS,CACR3oE,OAAQwoE,EACRvoE,MAAOyoE,EACPxzD,MAAO,CACNtS,QAASsS,EAAMtS,QACf5C,OAAQkV,EAAMlV,OACdC,MAAOiV,EAAMjV,SAQhBiV,EAAMtS,QAAUsS,EAAMtS,SAAW,QAEb,OAAhB8lE,GAAwC,KAAhBA,EAAoB,CAC/C,IAAIE,EAAeN,GAAangB,EAAQ,cACnBx+E,IAAjBi/F,IACHzgB,EAAOloD,MAAQ2oE,GAIjB,GAAqB,OAAjBJ,GAA0C,KAAjBA,EAC5B,GAA4B,KAAxBrgB,EAAOjzC,MAAMlV,OAIhBmoD,EAAOnoD,OAASmoD,EAAOloD,OAASpjB,EAAOgjB,QAAQgpE,aAAe,OACxD,CACN,IAAIC,EAAgBR,GAAangB,EAAQ,eACpBx+E,IAAjBi/F,IACHzgB,EAAOnoD,OAAS8oE,GAKnB,OAAO3gB,EAQR,IAkBI4gB,KAlBgC,WACnC,IAAIC,GAAW,EACf,IACC,IAAInpE,EAAUh3B,OAAOqG,eAAe,GAAI,UAAW,CAElDzC,IAAK,WACJu8F,GAAW,KAGbrxF,OAAOmgC,iBAAiB,IAAK,KAAMjY,GAClC,MAAOxtB,IAGT,OAAO22F,EAb4B,IAkBsB,CAACt9C,SAAS,GAEpE,SAASulB,GAAYnvC,EAAMjyB,EAAMq7C,GAChCppB,EAAKgW,iBAAiBjoC,EAAMq7C,EAAU69C,IAGvC,SAAS33B,GAAetvC,EAAMjyB,EAAMq7C,GACnCppB,EAAKiW,oBAAoBloC,EAAMq7C,EAAU69C,IAG1C,SAASE,GAAYp5F,EAAMizE,EAAOzgE,EAAG4lB,EAAGqS,GACvC,MAAO,CACNzqC,KAAMA,EACNizE,MAAOA,EACPuf,OAAQ/nD,GAAe,KACvBj4B,OAAS1Y,IAAN0Y,EAAkBA,EAAI,KACzB4lB,OAASt+B,IAANs+B,EAAkBA,EAAI,MAI3B,SAASihE,GAAgBlqE,EAAO8jD,GAC/B,IAAIjzE,EAAO+3F,GAAY5oE,EAAMnvB,OAASmvB,EAAMnvB,KACxCk0F,EAAM9b,GAAUma,oBAAoBpjE,EAAO8jD,GAC/C,OAAOmmB,GAAYp5F,EAAMizE,EAAOihB,EAAI1hF,EAAG0hF,EAAI97D,EAAGjJ,GAG/C,SAASmqE,GAAU73F,EAAI8sE,GACtB,IAAIgrB,GAAU,EACV73F,EAAO,GAEX,OAAO,WACNA,EAAOtI,MAAM6B,UAAUG,MAAMD,KAAK6D,WAClCuvE,EAAUA,GAAW/xE,KAEhB+8F,IACJA,GAAU,EACVnhB,GAAU+C,iBAAiBhgF,KAAK2M,QAAQ,WACvCyxF,GAAU,EACV93F,EAAGE,MAAM4sE,EAAS7sE,QAMtB,SAAS83F,GAAUC,GAClB,IAAIC,EAAK99D,SAASvJ,cAAc,OAEhC,OADAqnE,EAAGC,UAAYF,GAAO,GACfC,EAIR,SAASE,GAAclH,GACtB,IAAImH,EAAU,IAIVC,EAAUN,GAAU7B,IACpBoC,EAASP,GAAU7B,GAAmB,WACtCqC,EAASR,GAAU7B,GAAmB,WAE1CoC,EAAO73D,YAAYs3D,MACnBQ,EAAO93D,YAAYs3D,MAEnBM,EAAQ53D,YAAY63D,GACpBD,EAAQ53D,YAAY83D,GACpBF,EAAQG,OAAS,WAChBF,EAAO/kC,WAAa6kC,EACpBE,EAAO7kC,UAAY2kC,EACnBG,EAAOhlC,WAAa6kC,EACpBG,EAAO9kC,UAAY2kC,GAGpB,IAAIK,EAAW,WACdJ,EAAQG,SACRvH,KAMD,OAHAtxB,GAAY24B,EAAQ,SAAUG,EAASjgE,KAAK8/D,EAAQ,WACpD34B,GAAY44B,EAAQ,SAAUE,EAASjgE,KAAK+/D,EAAQ,WAE7CF,EAIR,SAASK,GAAeloE,EAAMygE,GAC7B,IAAI0H,EAAUnoE,EAAKwlE,MAAiBxlE,EAAKwlE,IAAe,IACpD4C,EAAQD,EAAQE,YAAc,SAAS93F,GACtCA,EAAEmwC,gBAAkBklD,IACvBnF,KAIFta,GAAU5J,KAAKspB,IAAwB,SAAS93F,GAC/CohE,GAAYnvC,EAAMjyB,EAAMq6F,MAQzBD,EAAQG,SAAWtoE,EAAKuoE,aAExBvoE,EAAKwoE,UAAUvuF,IAAI0rF,IAGpB,SAAS8C,GAAiBzoE,GACzB,IAAImoE,EAAUnoE,EAAKwlE,KAAgB,GAC/B4C,EAAQD,EAAQE,YAEhBD,IACHjiB,GAAU5J,KAAKspB,IAAwB,SAAS93F,GAC/CuhE,GAAetvC,EAAMjyB,EAAMq6F,aAGrBD,EAAQE,aAGhBroE,EAAKwoE,UAAUE,OAAO/C,IAGvB,SAASgD,GAAkB3oE,EAAMopB,EAAU43B,GAC1C,IAAImnB,EAAUnoE,EAAKwlE,MAAiBxlE,EAAKwlE,IAAe,IAGpDqC,EAAUM,EAAQN,QAAUF,GAAcN,IAAU,WACvD,GAAIc,EAAQN,QAAS,CACpB,IAAIe,EAAY5nB,EAAMjjD,QAAQ8qE,qBAAuB7oE,EAAK4U,WACtD9Q,EAAI8kE,EAAYA,EAAUE,YAAc,EAC5C1/C,EAAS+9C,GAAY,SAAUnmB,IAC3B4nB,GAAaA,EAAUE,YAAchlE,GAAKk9C,EAAMqF,QAQnDj9B,EAAS+9C,GAAY,SAAUnmB,SAOlCknB,GAAeloE,GAAM,WACpB,GAAImoE,EAAQN,QAAS,CACpB,IAAIe,EAAY5oE,EAAK4U,WACjBg0D,GAAaA,IAAcf,EAAQjzD,YACtCg0D,EAAUvqC,aAAawpC,EAASe,EAAU74D,YAI3C83D,EAAQG,aAKX,SAASe,GAAqB/oE,GAC7B,IAAImoE,EAAUnoE,EAAKwlE,KAAgB,GAC/BqC,EAAUM,EAAQN,eAEfM,EAAQN,QACfY,GAAiBzoE,GAEb6nE,GAAWA,EAAQjzD,YACtBizD,EAAQjzD,WAAW5E,YAAY63D,GASjC,SAASmB,GAAUC,EAAUC,GAE5B,IAAIf,EAAUc,EAASzD,MAAiByD,EAASzD,IAAe,IAChE,IAAK2C,EAAQgB,eAAgB,CAC5BhB,EAAQgB,gBAAiB,EACzBD,EAAM,mBAAqBA,EAC3B,IAAI91D,EAAQzJ,SAASvJ,cAAc,SACnCgT,EAAMrI,aAAa,OAAQ,YAC3BqI,EAAMnD,YAAYtG,SAASkyB,eAAeqtC,IAC1CD,EAASh5D,YAAYmD,IAIvB,IAAIg2D,GAAiB,CAQpBC,qBAAqB,EAOrBC,SAA4B,qBAAXzzF,QAA8C,qBAAb8zB,SAOlD4/D,cAAe,SAASljB,GACvB,IAAK97E,KAAK8+F,oBAAqB,CAI9B,IAAIriG,EAAOq/E,EAAOmjB,YAAcnjB,EAAOmjB,cAAgB7/D,SAEvDq/D,GADiBhiG,EAAKyiG,KAAOziG,EAAO2iC,SAAStwB,KACvBksF,MAIxBH,eAAgB,SAAShnB,EAAMrjE,GACV,kBAATqjE,EACVA,EAAOz0C,SAAS+/D,eAAetrB,GACrBA,EAAKh2E,SAEfg2E,EAAOA,EAAK,IAGTA,GAAQA,EAAKiI,SAEhBjI,EAAOA,EAAKiI,QAMb,IAAI5hD,EAAU25C,GAAQA,EAAKinB,YAAcjnB,EAAKinB,WAAW,MASzD,OAAI5gE,GAAWA,EAAQ4hD,SAAWjI,GAGjC7zE,KAAKg/F,cAAcnrB,GACnBqoB,GAAWroB,EAAMrjE,GACV0pB,GAGD,MAGRklE,eAAgB,SAASllE,GACxB,IAAI4hD,EAAS5hD,EAAQ4hD,OACrB,GAAKA,EAAOmf,IAAZ,CAIA,IAAIqB,EAAUxgB,EAAOmf,IAAaqB,QAClC,CAAC,SAAU,SAASv6F,SAAQ,SAAS8uE,GACpC,IAAIjzE,EAAQ0+F,EAAQzrB,GAChB+K,GAAUnK,cAAc7zE,GAC3Bk+E,EAAOv7C,gBAAgBswC,GAEvBiL,EAAOt7C,aAAaqwC,EAAMjzE,MAI5Bg+E,GAAU5J,KAAKsqB,EAAQzzD,OAAS,IAAI,SAASjrC,EAAOQ,GACnD09E,EAAOjzC,MAAMzqC,GAAOR,KAQrBk+E,EAAOloD,MAAQkoD,EAAOloD,aAEfkoD,EAAOmf,MAGfxvD,iBAAkB,SAASgrC,EAAOjzE,EAAMq7C,GACvC,IAAIi9B,EAASrF,EAAMqF,OACnB,GAAa,WAATt4E,EAAJ,CAMA,IAAIo6F,EAAU/+C,EAASo8C,MAAiBp8C,EAASo8C,IAAe,IAMhEr2B,GAAYkX,EAAQt4E,GALNo6F,EAAQyB,UAAYzB,EAAQyB,QAAU,KAChC5oB,EAAM7gD,GAAK,IAAMpyB,GAAQ,SAASmvB,GACrDksB,EAASg+C,GAAgBlqE,EAAO8jD,WAPhC2nB,GAAkBtiB,EAAQj9B,EAAU43B,IAatC/qC,oBAAqB,SAAS+qC,EAAOjzE,EAAMq7C,GAC1C,IAAIi9B,EAASrF,EAAMqF,OACnB,GAAa,WAATt4E,EAAJ,CAMA,IAEIq6F,IAFUh/C,EAASo8C,KAAgB,IACjBoE,SAAW,IACb5oB,EAAM7gD,GAAK,IAAMpyB,GAChCq6F,GAIL94B,GAAe+W,EAAQt4E,EAAMq6F,QAX5BW,GAAqB1iB,KA0BxBF,GAAU0jB,SAAW16B,GAWrBgX,GAAU2jB,YAAcx6B,GAGxB,IAAInc,GAAiBi2C,GAAeE,SAAWF,GAAiBjE,GAO5D4E,GAAW5jB,GAAU3jB,OAAO,CAI/B+kB,WAAY,aASZ6d,eAAgB,aAQhBuE,eAAgB,aAShB3zD,iBAAkB,aAQlBC,oBAAqB,cAEnBkd,IAEHgxB,EAAcR,KAAK,SAAU,CAC5B3lD,QAAS,KAQV,IAAIgsE,GAAe,CAKlBC,SAAU,GAQVC,SAAU,EAMVC,SAAU,SAASnsE,GAClB,IAAIvpB,EAAIlK,KAAK0/F,SACZ,GAAIp2F,OAAOmqB,GAAS1xB,SAAQ,SAAS89F,IACV,IAAvB31F,EAAEsnB,QAAQquE,IACb31F,EAAEvM,KAAKkiG,MAIT7/F,KAAK2/F,YAONG,WAAY,SAASrsE,GACpB,IAAIvpB,EAAIlK,KAAK0/F,SACZ,GAAIp2F,OAAOmqB,GAAS1xB,SAAQ,SAAS89F,GACrC,IAAIE,EAAM71F,EAAEsnB,QAAQquE,IACP,IAATE,GACH71F,EAAEC,OAAO41F,EAAK,MAIhB//F,KAAK2/F,YAON1/F,MAAO,WACND,KAAK0/F,SAAW,GAChB1/F,KAAK2/F,YAQNjjE,MAAO,WACN,OAAO18B,KAAK0/F,SAAS7hG,QAQtBmiG,OAAQ,WACP,OAAOhgG,KAAK0/F,UAYbO,OAAQ,SAASxpB,EAAOypB,EAAMh7F,GAC7B,IAEInI,EAAG4P,EAAYkzF,EAAQxyE,EAAQ6xC,EAF/BihC,EAAcngG,KAAKmgG,YAAY1pB,GAC/BpE,EAAO8tB,EAAYtiG,OAGvB,IAAKd,EAAI,EAAGA,EAAIs1E,IAAQt1E,EAIvB,GAAsB,oBADtBmiE,GADA2gC,GADAlzF,EAAawzF,EAAYpjG,IACL8iG,QACJK,OAEf7yE,EAAS,CAACopD,GAAOntE,OAAOpE,GAAQ,KACzBvH,KAAKgP,EAAW6mB,UACc,IAAjC0rC,EAAO/5D,MAAM06F,EAAQxyE,IACxB,OAAO,EAKV,OAAO,GAQR8yE,YAAa,SAAS1pB,GACrB,IAAI2pB,EAAQ3pB,EAAM4pB,WAAa5pB,EAAM4pB,SAAW,IAChD,GAAID,EAAMxqE,KAAO51B,KAAK2/F,SACrB,OAAOS,EAAMD,YAGd,IAAI1sE,EAAU,GACV0sE,EAAc,GACd3vF,EAAUimE,GAASA,EAAMjmE,QAAW,GACpCgjB,EAAWhjB,EAAOgjB,SAAWhjB,EAAOgjB,QAAQC,SAAY,GA2B5D,OAzBAzzB,KAAK0/F,SAASp2F,OAAOkH,EAAOijB,SAAW,IAAI1xB,SAAQ,SAAS89F,GAE3D,IAAa,IADHpsE,EAAQjC,QAAQquE,GAC1B,CAIA,IAAIjqE,EAAKiqE,EAAOjqE,GACZg6D,EAAOp8D,EAAQoC,IACN,IAATg6D,KAIS,IAATA,IACHA,EAAOhU,GAAUhL,MAAMgJ,EAAc/zE,OAAO4tB,QAAQmC,KAGrDnC,EAAQ91B,KAAKkiG,GACbM,EAAYxiG,KAAK,CAChBkiG,OAAQA,EACRrsE,QAASo8D,GAAQ,UAInBwQ,EAAMD,YAAcA,EACpBC,EAAMxqE,GAAK51B,KAAK2/F,SACTQ,GASRG,YAAa,SAAS7pB,UACdA,EAAM4pB,WAIXE,GAAoB,CAGvBC,aAAc,GAKdlwE,SAAU,GACVmwE,kBAAmB,SAASj9F,EAAMk9F,EAAkBC,GACnD3gG,KAAKwgG,aAAah9F,GAAQk9F,EAC1B1gG,KAAKswB,SAAS9sB,GAAQo4E,GAAUhL,MAAM+vB,IAEvCC,oBAAqB,SAASp9F,GAC7B,OAAOxD,KAAKwgG,aAAav/F,eAAeuC,GAAQxD,KAAKwgG,aAAah9F,QAAQlG,GAE3EujG,iBAAkB,SAASr9F,GAE1B,OAAOxD,KAAKswB,SAASrvB,eAAeuC,GAAQo4E,GAAUhJ,MAAMp2E,OAAO+Q,OAAO,MAAO,CAACqsE,EAAc/M,MAAO7sE,KAAKswB,SAAS9sB,KAAU,IAEhIs9F,oBAAqB,SAASt9F,EAAMu9F,GACnC,IAAI9lD,EAAKj7C,KACLi7C,EAAG3qB,SAASrvB,eAAeuC,KAC9By3C,EAAG3qB,SAAS9sB,GAAQo4E,GAAU3jB,OAAOhd,EAAG3qB,SAAS9sB,GAAOu9F,KAG1DC,kBAAmB,SAASvqB,GAE3BmF,GAAU5J,KAAKyE,EAAMsJ,QAAQ,SAASlT,GAErCA,EAAMsrB,UAAYtrB,EAAMr5C,QAAQ2kE,UAChCtrB,EAAMr2C,SAAWq2C,EAAMr5C,QAAQgD,SAC/Bq2C,EAAM0D,OAAS1D,EAAMr5C,QAAQ+8C,OAC7B2pB,GAAaC,OAAO1jB,EAAO5J,QAK1Bo0B,GAAmBrlB,GAAU/J,eAC7BqvB,GAAetlB,GAAUI,IAAId,cAEjCtB,EAAcR,KAAK,SAAU,CAC5BsU,SAAU,CACTyT,SAAS,EACT5e,OAAQ,KACR95B,KAAM,UACNjyB,SAAU,UACV+/D,WAAW,EACXrU,gBAAiB,kBACjBkf,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,EACX5qB,aAAc,EACd6qB,mBAAoB,OACpBC,eAAe,EACfngB,YAAa,gBACba,YAAa,EACb2K,UAAW,CAEV4U,YAAa3mB,GAAUxX,KACvBE,MAAO,SAASk+B,EAAc5hG,GAC7B,IAAI0jE,EAAQ,GACR8C,EAASxmE,EAAKwmE,OACdq7B,EAAar7B,EAASA,EAAOvpE,OAAS,EAE1C,GAAI2kG,EAAa3kG,OAAS,EAAG,CAC5B,IAAIg2E,EAAO2uB,EAAa,GACpB3uB,EAAKhqE,MACRy6D,EAAQuP,EAAKhqE,MACHgqE,EAAKga,OACfvpB,EAAQuP,EAAKga,OACH4U,EAAa,GAAK5uB,EAAK9zE,MAAQ0iG,IACzCn+B,EAAQ8C,EAAOyM,EAAK9zE,QAItB,OAAOukE,GAERo+B,WAAY9mB,GAAUxX,KAGtBu+B,WAAY/mB,GAAUxX,KAGtBw+B,YAAahnB,GAAUxX,KACvBv6D,MAAO,SAASslF,EAAavuF,GAC5B,IAAIiJ,EAAQjJ,EAAKozB,SAASm7D,EAAY7P,cAAcz1E,OAAS,GAU7D,OARIA,IACHA,GAAS,MAEL+xE,GAAUnK,cAAc0d,EAAYvxF,OAGxCiM,GAASslF,EAAYrB,OAFrBjkF,GAASslF,EAAYvxF,MAIfiM,GAERg5F,WAAY,SAAS1T,EAAa1Y,GACjC,IAEIliC,EAFOkiC,EAAM6J,eAAe6O,EAAY7P,cACnB1+E,KAAKuuF,EAAYpvF,OACjBq9E,MACzB,MAAO,CACN+E,YAAa5tC,EAAK4tC,YAClBD,gBAAiB3tC,EAAK2tC,kBAGxB4gB,eAAgB,WACf,OAAO9iG,KAAKquF,SAASqT,eAEtBqB,WAAYnnB,GAAUxX,KAGtB4+B,UAAWpnB,GAAUxX,KAGrB6+B,aAAcrnB,GAAUxX,KACxB8+B,OAAQtnB,GAAUxX,KAClB++B,YAAavnB,GAAUxX,SAK1B,IAAIg/B,GAAc,CAOjBC,QAAS,SAASxhB,GACjB,IAAKA,EAAShkF,OACb,OAAO,EAGR,IAAId,EAAGuC,EACH0W,EAAI,EACJ4lB,EAAI,EACJc,EAAQ,EAEZ,IAAK3/B,EAAI,EAAGuC,EAAMuiF,EAAShkF,OAAQd,EAAIuC,IAAOvC,EAAG,CAChD,IAAImgG,EAAKrb,EAAS9kF,GAClB,GAAImgG,GAAMA,EAAG1f,WAAY,CACxB,IAAIka,EAAMwF,EAAG3f,kBACbvnE,GAAK0hF,EAAI1hF,EACT4lB,GAAK87D,EAAI97D,IACPc,GAIJ,MAAO,CACN1mB,EAAGA,EAAI0mB,EACPd,EAAGA,EAAIc,IAWT46D,QAAS,SAASzV,EAAUyhB,GAC3B,IAGIvmG,EAAGuC,EAAKikG,EAHRvtF,EAAIstF,EAActtF,EAClB4lB,EAAI0nE,EAAc1nE,EAClB66D,EAAc7kB,OAAO8kB,kBAGzB,IAAK35F,EAAI,EAAGuC,EAAMuiF,EAAShkF,OAAQd,EAAIuC,IAAOvC,EAAG,CAChD,IAAImgG,EAAKrb,EAAS9kF,GAClB,GAAImgG,GAAMA,EAAG1f,WAAY,CACxB,IAAI8O,EAAS4Q,EAAGtX,iBACZ7oE,EAAI6+D,GAAU4nB,sBAAsBF,EAAehX,GAEnDvvE,EAAI05E,IACPA,EAAc15E,EACdwmF,EAAiBrG,IAKpB,GAAIqG,EAAgB,CACnB,IAAIxkF,EAAKwkF,EAAehmB,kBACxBvnE,EAAI+I,EAAG/I,EACP4lB,EAAI7c,EAAG6c,EAGR,MAAO,CACN5lB,EAAGA,EACH4lB,EAAGA,KAMN,SAAS6nE,GAAat1E,EAAMu1E,GAU3B,OATIA,IACC9nB,GAAUj/E,QAAQ+mG,GAErB9mG,MAAM6B,UAAUd,KAAKwH,MAAMgpB,EAAMu1E,GAEjCv1E,EAAKxwB,KAAK+lG,IAILv1E,EASR,SAASw1E,GAAcv2B,GACtB,OAAoB,kBAARA,GAAoBA,aAAe5rE,SAAW4rE,EAAI57C,QAAQ,OAAS,EACvE47C,EAAItrE,MAAM,MAEXsrE,EASR,SAASw2B,GAAkBv5F,GAC1B,IAAI2jF,EAAS3jF,EAAQshF,QACjBsC,EAAS5jF,EAAQuhF,SAAWvhF,EAAQuoF,OACpC7yF,EAAQsK,EAAQ62E,OAChB5B,EAAej1E,EAAQ22E,cACvBgO,EAAa3kF,EAAQgmB,OAAOiwD,eAAehB,GAAc0P,WACzD6U,EAAa7U,EAAWpO,iBACxBkjB,EAAa9U,EAAWrO,iBAE5B,MAAO,CACNkN,OAAQG,EAASA,EAAO+V,iBAAiBhkG,EAAOu/E,GAAgB,GAChEwO,OAAQG,EAASA,EAAO8V,iBAAiBhkG,EAAOu/E,GAAgB,GAChEz1E,MAAOg6F,EAAa,GAAKA,EAAWE,iBAAiBhkG,EAAOu/E,GAAgB,GAC5E1hF,MAAOkmG,EAAa,GAAKA,EAAWC,iBAAiBhkG,EAAOu/E,GAAgB,GAC5Ev/E,MAAOA,EACPu/E,aAAcA,EACdtpE,EAAG3L,EAAQgzE,OAAOrnE,EAClB4lB,EAAGvxB,EAAQgzE,OAAOzhD,GAQpB,SAASooE,GAAaC,GACrB,IAAI5pB,EAAiBT,EAAc/zE,OAEnC,MAAO,CAENq8F,SAAU+B,EAAY/B,SACtBD,SAAUgC,EAAYhC,SACtBiC,OAAQD,EAAYC,OACpBC,OAAQF,EAAYE,OAGpBnoB,IAAKioB,EAAYjoB,IACjBooB,cAAeH,EAAYG,cAG3B1C,cAAeuC,EAAYvC,cAC3B2C,gBAAiBpD,GAAiBgD,EAAYK,eAAgBjqB,EAAed,mBAC7EgrB,eAAgBtD,GAAiBgD,EAAYO,cAAenqB,EAAeZ,kBAC3EgrB,WAAYR,EAAYtC,UACxB+C,aAAczD,GAAiBgD,EAAYS,aAAcrqB,EAAeb,iBACxEioB,YAAawC,EAAYxC,YAGzBF,eAAgB0C,EAAY1C,eAC5BoD,iBAAkB1D,GAAiBgD,EAAYW,gBAAiBvqB,EAAed,mBAC/EsrB,gBAAiB5D,GAAiBgD,EAAY7C,eAAgB/mB,EAAeZ,kBAC7EqrB,cAAe7D,GAAiBgD,EAAYa,cAAezqB,EAAeb,iBAC1EurB,YAAad,EAAYzC,WACzBH,aAAc4C,EAAY5C,aAC1BC,kBAAmB2C,EAAY3C,kBAG/BS,gBAAiBkC,EAAYlC,gBAC7BiD,kBAAmB/D,GAAiBgD,EAAYgB,iBAAkB5qB,EAAed,mBACjF2rB,iBAAkBjE,GAAiBgD,EAAYrC,gBAAiBvnB,EAAeZ,kBAC/E0rB,eAAgBlE,GAAiBgD,EAAYkB,eAAgB9qB,EAAeb,iBAC5E4rB,aAAcnB,EAAYjC,YAC1BH,cAAeoC,EAAYpC,cAC3BC,gBAAiBmC,EAAYnC,gBAG7BM,UAAW6B,EAAY7B,UACvB5qB,aAAcysB,EAAYzsB,aAC1B0K,gBAAiB+hB,EAAY/hB,gBAC7Bv6C,QAAS,EACT09D,sBAAuBpB,EAAY5B,mBACnCC,cAAe2B,EAAY3B,cAC3BngB,YAAa8hB,EAAY9hB,YACzBa,YAAaihB,EAAYjhB,aAO3B,SAASsiB,GAAeC,EAASp9B,GAChC,IAAIuO,EAAM6uB,EAAQl1E,OAAOqmD,IAErB/iD,EAA0B,EAAjBw0C,EAAM85B,SACfruE,EAAQ,EAGR0P,EAAO6kC,EAAM7kC,KACbkiE,EAAqBliE,EAAKp6B,QAAO,SAASwzB,EAAO+oE,GACpD,OAAO/oE,EAAQ+oE,EAASC,OAAO7nG,OAAS4nG,EAASE,MAAM9nG,OAAS4nG,EAASG,MAAM/nG,SAC7E,GACH2nG,GAAsBr9B,EAAMw6B,WAAW9kG,OAASsqE,EAAM66B,UAAUnlG,OAEhE,IAAIgoG,EAAiB19B,EAAM7D,MAAMzmE,OAC7BioG,EAAkB39B,EAAM+6B,OAAOrlG,OAC/BinG,EAAgB38B,EAAM28B,cACtBJ,EAAev8B,EAAMu8B,aACrBS,EAAiBh9B,EAAMg9B,eAE3BxxE,GAAUkyE,EAAiBf,EAC3BnxE,GAAUkyE,GAAkBA,EAAiB,GAAK19B,EAAMk5B,aAAe,EACvE1tE,GAAUkyE,EAAiB19B,EAAMm5B,kBAAoB,EACrD3tE,GAAU6xE,EAAqBd,EAC/B/wE,GAAU6xE,GAAsBA,EAAqB,GAAKr9B,EAAMs5B,YAAc,EAC9E9tE,GAAUmyE,EAAkB39B,EAAM25B,gBAAkB,EACpDnuE,GAAUmyE,EAAmBX,EAC7BxxE,GAAUmyE,GAAmBA,EAAkB,GAAK39B,EAAM05B,cAAgB,EAG1E,IAAIkE,EAAe,EACfC,EAAe,SAAS1f,GAC3B1yD,EAAQ3d,KAAK2B,IAAIgc,EAAO8iD,EAAIuvB,YAAY3f,GAAM1yD,MAAQmyE,IA4BvD,OAzBArvB,EAAIoD,KAAO8B,GAAUsqB,WAAWpB,EAAe38B,EAAM08B,gBAAiB18B,EAAMw8B,kBAC5E/oB,GAAU5J,KAAK7J,EAAM7D,MAAO0hC,GAG5BtvB,EAAIoD,KAAO8B,GAAUsqB,WAAWxB,EAAcv8B,EAAMo8B,eAAgBp8B,EAAMk8B,iBAC1EzoB,GAAU5J,KAAK7J,EAAMw6B,WAAWr5F,OAAO6+D,EAAM66B,WAAYgD,GAGzDD,EAAe59B,EAAMm6B,cAAiBoC,EAAe,EAAK,EAC1D9oB,GAAU5J,KAAK1uC,GAAM,SAASmiE,GAC7B7pB,GAAU5J,KAAKyzB,EAASC,OAAQM,GAChCpqB,GAAU5J,KAAKyzB,EAASE,MAAOK,GAC/BpqB,GAAU5J,KAAKyzB,EAASG,MAAOI,MAIhCD,EAAe,EAGfrvB,EAAIoD,KAAO8B,GAAUsqB,WAAWf,EAAgBh9B,EAAM+8B,iBAAkB/8B,EAAM68B,mBAC9EppB,GAAU5J,KAAK7J,EAAM+6B,OAAQ8C,GAKtB,CACNpyE,MAHDA,GAAS,EAAIu0C,EAAM+5B,SAIlBvuE,OAAQA,GAOV,SAASwyE,GAAmBZ,EAAS7/F,GACpC,IAYIu6C,EAAIS,EACJ0lD,EAAKC,EACLplD,EAdAknB,EAAQo9B,EAAQloB,OAChB5G,EAAQ8uB,EAAQl1E,OAChB+3D,EAAYmd,EAAQl1E,OAAO+3D,UAC3B8b,EAAS,SACTC,EAAS,SAETh8B,EAAMvsC,EAAIl2B,EAAKiuB,OAClBwwE,EAAS,MACCh8B,EAAMvsC,EAAK66C,EAAM9iD,OAASjuB,EAAKiuB,SACzCwwE,EAAS,UAMV,IAAImC,GAAQle,EAAU7vB,KAAO6vB,EAAUtR,OAAS,EAC5CyvB,GAAQne,EAAU3vB,IAAM2vB,EAAUrR,QAAU,EAEjC,WAAXotB,GACHlkD,EAAK,SAASjqC,GACb,OAAOA,GAAKswF,GAEb5lD,EAAK,SAAS1qC,GACb,OAAOA,EAAIswF,KAGZrmD,EAAK,SAASjqC,GACb,OAAOA,GAAMtQ,EAAKkuB,MAAQ,GAE3B8sB,EAAK,SAAS1qC,GACb,OAAOA,GAAMygE,EAAM7iD,MAASluB,EAAKkuB,MAAQ,IAI3CwyE,EAAM,SAASpwF,GACd,OAAOA,EAAItQ,EAAKkuB,MAAQu0C,EAAMi6B,UAAYj6B,EAAMg6B,aAAe1rB,EAAM7iD,OAEtEyyE,EAAM,SAASrwF,GACd,OAAOA,EAAItQ,EAAKkuB,MAAQu0C,EAAMi6B,UAAYj6B,EAAMg6B,aAAe,GAEhElhD,EAAK,SAASrlB,GACb,OAAOA,GAAK2qE,EAAO,MAAQ,UAGxBtmD,EAAGkoB,EAAMnyD,IACZkuF,EAAS,OAGLkC,EAAIj+B,EAAMnyD,KACbkuF,EAAS,SACTC,EAASljD,EAAGknB,EAAMvsC,KAET8kB,EAAGynB,EAAMnyD,KACnBkuF,EAAS,QAGLmC,EAAIl+B,EAAMnyD,KACbkuF,EAAS,SACTC,EAASljD,EAAGknB,EAAMvsC,KAIpB,IAAIg0D,EAAO2V,EAAQlX,SACnB,MAAO,CACN6V,OAAQtU,EAAKsU,OAAStU,EAAKsU,OAASA,EACpCC,OAAQvU,EAAKuU,OAASvU,EAAKuU,OAASA,GAOtC,SAASqC,GAAmB/hB,EAAI/+E,EAAM+gG,EAAWhwB,GAEhD,IAAIzgE,EAAIyuE,EAAGzuE,EACP4lB,EAAI6oD,EAAG7oD,EAEPwmE,EAAY3d,EAAG2d,UACfD,EAAe1d,EAAG0d,aAClB3qB,EAAeiN,EAAGjN,aAClB0sB,EAASuC,EAAUvC,OACnBC,EAASsC,EAAUtC,OACnBuC,EAAiBtE,EAAYD,EAC7BwE,EAAmBnvB,EAAe2qB,EAkCtC,MAhCe,UAAX+B,EACHluF,GAAKtQ,EAAKkuB,MACW,WAAXswE,KACVluF,GAAMtQ,EAAKkuB,MAAQ,GACXluB,EAAKkuB,MAAQ6iD,EAAM7iD,QAC1B5d,EAAIygE,EAAM7iD,MAAQluB,EAAKkuB,OAEpB5d,EAAI,IACPA,EAAI,IAIS,QAAXmuF,EACHvoE,GAAK8qE,EAEL9qE,GADqB,WAAXuoE,EACLz+F,EAAKiuB,OAAS+yE,EAEbhhG,EAAKiuB,OAAS,EAGN,WAAXwwE,EACY,SAAXD,EACHluF,GAAK0wF,EACgB,UAAXxC,IACVluF,GAAK0wF,GAEe,SAAXxC,EACVluF,GAAK2wF,EACgB,UAAXzC,IACVluF,GAAK2wF,GAGC,CACN3wF,EAAGA,EACH4lB,EAAGA,GAIL,SAASgrE,GAAYniB,EAAInJ,GACxB,MAAiB,WAAVA,EACJmJ,EAAGzuE,EAAIyuE,EAAG7wD,MAAQ,EACR,UAAV0nD,EACCmJ,EAAGzuE,EAAIyuE,EAAG7wD,MAAQ6wD,EAAGyd,SACrBzd,EAAGzuE,EAAIyuE,EAAGyd,SAMf,SAAS2E,GAAwBxgD,GAChC,OAAOo9C,GAAa,GAAIE,GAAct9C,IAGvC,IAAIygD,GAAYppB,GAAazlB,OAAO,CACnC+kB,WAAY,WACXh9E,KAAKq9E,OAAS2mB,GAAahkG,KAAKquF,UAChCruF,KAAK+mG,YAAc,IAKpBC,SAAU,WACT,IAAI/rD,EAAKj7C,KAEL2tF,EADO1yC,EAAGozC,SACOV,UAEjB4U,EAAc5U,EAAU4U,YAAYp9F,MAAM81C,EAAIz4C,WAC9C8hE,EAAQqpB,EAAUrpB,MAAMn/D,MAAM81C,EAAIz4C,WAClCkgG,EAAa/U,EAAU+U,WAAWv9F,MAAM81C,EAAIz4C,WAE5CmjG,EAAQ,GAKZ,OAJAA,EAAQlC,GAAakC,EAAOhC,GAAcpB,IAC1CoD,EAAQlC,GAAakC,EAAOhC,GAAcr/B,IAC1CqhC,EAAQlC,GAAakC,EAAOhC,GAAcjB,KAM3CuE,cAAe,WACd,OAAOJ,GAAwB7mG,KAAKquF,SAASV,UAAUgV,WAAWx9F,MAAMnF,KAAMwC,aAI/E0kG,QAAS,SAAS1E,EAAc5hG,GAC/B,IAAIq6C,EAAKj7C,KACL2tF,EAAY1yC,EAAGozC,SAASV,UACxBwZ,EAAY,GAehB,OAbAvrB,GAAU5J,KAAKwwB,GAAc,SAASrT,GACrC,IAAIsW,EAAW,CACdC,OAAQ,GACRC,MAAO,GACPC,MAAO,IAERnC,GAAagC,EAASC,OAAQ/B,GAAchW,EAAUiV,YAAYjkG,KAAKs8C,EAAIk0C,EAAavuF,KACxF6iG,GAAagC,EAASE,MAAOhY,EAAU9jF,MAAMlL,KAAKs8C,EAAIk0C,EAAavuF,IACnE6iG,GAAagC,EAASG,MAAOjC,GAAchW,EAAUoV,WAAWpkG,KAAKs8C,EAAIk0C,EAAavuF,KAEtFumG,EAAUxpG,KAAK8nG,MAGT0B,GAIRC,aAAc,WACb,OAAOP,GAAwB7mG,KAAKquF,SAASV,UAAUqV,UAAU79F,MAAMnF,KAAMwC,aAK9E6kG,UAAW,WACV,IAAIpsD,EAAKj7C,KACL2tF,EAAY1yC,EAAGozC,SAASV,UAExBsV,EAAetV,EAAUsV,aAAa99F,MAAM81C,EAAIz4C,WAChD0gG,EAASvV,EAAUuV,OAAO/9F,MAAM81C,EAAIz4C,WACpC2gG,EAAcxV,EAAUwV,YAAYh+F,MAAM81C,EAAIz4C,WAE9CmjG,EAAQ,GAKZ,OAJAA,EAAQlC,GAAakC,EAAOhC,GAAcV,IAC1C0C,EAAQlC,GAAakC,EAAOhC,GAAcT,IAC1CyC,EAAQlC,GAAakC,EAAOhC,GAAcR,KAK3C5tE,OAAQ,SAASukE,GAChB,IA8BI/8F,EAAGuC,EA9BH27C,EAAKj7C,KACL4vF,EAAO30C,EAAGozC,SAKViZ,EAAgBrsD,EAAGoiC,OACnBlV,EAAQltB,EAAGoiC,OAAS2mB,GAAapU,GACjC2X,EAAStsD,EAAGusD,QAEZ5mG,EAAOq6C,EAAG6lC,MAGV2lB,EAAY,CACfvC,OAAQoD,EAAcpD,OACtBC,OAAQmD,EAAcnD,QAEnBsD,EAAkB,CACrBzxF,EAAGsxF,EAActxF,EACjB4lB,EAAG0rE,EAAc1rE,GAEd8rE,EAAc,CACjB9zE,MAAO0zE,EAAc1zE,MACrBD,OAAQ2zE,EAAc3zE,QAEnB4pD,EAAkB,CACrBvnE,EAAGsxF,EAAcK,OACjB/rE,EAAG0rE,EAAcM,QAKlB,GAAIL,EAAO1pG,OAAQ,CAClBsqE,EAAMxgC,QAAU,EAEhB,IAAIkgE,EAAc,GACdC,EAAkB,GACtBvqB,EAAkB6lB,GAAYxT,EAAKp5D,UAAU73B,KAAKs8C,EAAIssD,EAAQtsD,EAAG8sD,gBAEjE,IAAIvF,EAAe,GACnB,IAAKzlG,EAAI,EAAGuC,EAAMioG,EAAO1pG,OAAQd,EAAIuC,IAAOvC,EAC3CylG,EAAa7kG,KAAKimG,GAAkB2D,EAAOxqG,KAIxC6yF,EAAKnlF,SACR+3F,EAAeA,EAAa/3F,QAAO,SAAStB,GAC3C,OAAOymF,EAAKnlF,OAAOtB,EAAGvI,OAKpBgvF,EAAKoY,WACRxF,EAAeA,EAAa3nB,MAAK,SAAS1xE,EAAGC,GAC5C,OAAOwmF,EAAKoY,SAAS7+F,EAAGC,EAAGxI,OAK7Bg7E,GAAU5J,KAAKwwB,GAAc,SAASrT,GACrC0Y,EAAYlqG,KAAKiyF,EAAKjC,UAAUkV,WAAWlkG,KAAKs8C,EAAIk0C,EAAal0C,EAAG5qB,SACpEy3E,EAAgBnqG,KAAKiyF,EAAKjC,UAAUmV,eAAenkG,KAAKs8C,EAAIk0C,EAAal0C,EAAG5qB,YAK7E83C,EAAM7D,MAAQrpB,EAAG+rD,SAASxE,EAAc5hG,GACxCunE,EAAMw6B,WAAa1nD,EAAGgsD,cAAczE,EAAc5hG,GAClDunE,EAAM7kC,KAAO2X,EAAGisD,QAAQ1E,EAAc5hG,GACtCunE,EAAM66B,UAAY/nD,EAAGmsD,aAAa5E,EAAc5hG,GAChDunE,EAAM+6B,OAASjoD,EAAGosD,UAAU7E,EAAc5hG,GAG1CunE,EAAMnyD,EAAIunE,EAAgBvnE,EAC1BmyD,EAAMvsC,EAAI2hD,EAAgB3hD,EAC1BusC,EAAMg6B,aAAevS,EAAKuS,aAC1Bh6B,EAAM0/B,YAAcA,EACpB1/B,EAAM2/B,gBAAkBA,EAGxB3/B,EAAM8/B,WAAazF,EAMnBiF,EAAkBjB,GAAmBr+B,EAHrCu/B,EAAcpC,GAAetlG,KAAMmoE,GACnCs+B,EAAYN,GAAmBnmG,KAAM0nG,GAE+BzsD,EAAG5qB,aAEvE83C,EAAMxgC,QAAU,EAoBjB,OAjBAwgC,EAAM+7B,OAASuC,EAAUvC,OACzB/7B,EAAMg8B,OAASsC,EAAUtC,OACzBh8B,EAAMnyD,EAAIyxF,EAAgBzxF,EAC1BmyD,EAAMvsC,EAAI6rE,EAAgB7rE,EAC1BusC,EAAMv0C,MAAQ8zE,EAAY9zE,MAC1Bu0C,EAAMx0C,OAAS+zE,EAAY/zE,OAG3Bw0C,EAAMw/B,OAASpqB,EAAgBvnE,EAC/BmyD,EAAMy/B,OAASrqB,EAAgB3hD,EAE/Bqf,EAAGoiC,OAASlV,EAER2xB,GAAWlK,EAAKrN,QACnBqN,EAAKrN,OAAO5jF,KAAKs8C,EAAIktB,GAGfltB,GAGRitD,UAAW,SAASC,EAAcziG,GACjC,IAAIgxE,EAAM12E,KAAKqwB,OAAOqmD,IAClB+N,EAAKzkF,KAAKo9E,MACVgrB,EAAgBpoG,KAAKqoG,iBAAiBF,EAAcziG,EAAM++E,GAE9D/N,EAAIqB,OAAOqwB,EAAc5f,GAAI4f,EAAc3f,IAC3C/R,EAAIqB,OAAOqwB,EAAc3+B,GAAI2+B,EAAc5+B,IAC3CkN,EAAIqB,OAAOqwB,EAAcE,GAAIF,EAAcG,KAE5CF,iBAAkB,SAASF,EAAcziG,EAAM++E,GAC9C,IAAI+D,EAAI/e,EAAI6+B,EAAI7f,EAAIjf,EAAI++B,EACpBnG,EAAY3d,EAAG2d,UACf5qB,EAAeiN,EAAGjN,aAClB0sB,EAASzf,EAAGyf,OACZC,EAAS1f,EAAG0f,OACZqE,EAAML,EAAanyF,EACnByyF,EAAMN,EAAavsE,EACnBhI,EAAQluB,EAAKkuB,MACbD,EAASjuB,EAAKiuB,OAElB,GAAe,WAAXwwE,EACH36B,EAAKi/B,EAAO90E,EAAS,EAEN,SAAXuwE,GAEHz6B,GADA+e,EAAKggB,GACKpG,EACVkG,EAAK9f,EAELC,EAAKjf,EAAK44B,EACVmG,EAAK/+B,EAAK44B,IAGV34B,GADA+e,EAAKggB,EAAM50E,GACDwuE,EACVkG,EAAK9f,EAELC,EAAKjf,EAAK44B,EACVmG,EAAK/+B,EAAK44B,QAgBX,GAbe,SAAX8B,GAEH1b,GADA/e,EAAK++B,EAAMhxB,EAAgB4qB,GACjBA,EACVkG,EAAK7+B,EAAK24B,GACW,UAAX8B,GAEV1b,GADA/e,EAAK++B,EAAM50E,EAAQ4jD,EAAe4qB,GACxBA,EACVkG,EAAK7+B,EAAK24B,IAGV5Z,GADA/e,EAAKgb,EAAGkjB,QACEvF,EACVkG,EAAK7+B,EAAK24B,GAEI,QAAX+B,EAEH36B,GADAif,EAAKggB,GACKrG,EACVmG,EAAK9f,MACC,CAENjf,GADAif,EAAKggB,EAAM90E,GACDyuE,EACVmG,EAAK9f,EAEL,IAAIigB,EAAMJ,EACVA,EAAK9f,EACLA,EAAKkgB,EAGP,MAAO,CAAClgB,GAAIA,EAAI/e,GAAIA,EAAI6+B,GAAIA,EAAI7f,GAAIA,EAAIjf,GAAIA,EAAI++B,GAAIA,IAGrDI,UAAW,SAAShV,EAAIlP,EAAI/N,GAC3B,IAEIouB,EAAezD,EAActkG,EAF7BunE,EAAQmgB,EAAGngB,MACXzmE,EAASymE,EAAMzmE,OAGnB,GAAIA,EAAQ,CACX,IAAI+qG,EAAY1H,GAAazc,EAAGzI,IAAKyI,EAAGzuE,EAAGyuE,EAAG7wD,OAa9C,IAXA+/D,EAAG39E,EAAI4wF,GAAYniB,EAAIA,EAAGsgB,aAE1BruB,EAAI2E,UAAYutB,EAAUvtB,UAAUoJ,EAAGsgB,aACvCruB,EAAImyB,aAAe,SAEnB/D,EAAgBrgB,EAAGqgB,cACnBzD,EAAe5c,EAAG4c,aAElB3qB,EAAIyP,UAAY1B,EAAG8c,eACnB7qB,EAAIoD,KAAO8B,GAAUsqB,WAAWpB,EAAergB,EAAGogB,gBAAiBpgB,EAAGkgB,kBAEjE5nG,EAAI,EAAGA,EAAIc,IAAUd,EACzB25E,EAAIoyB,SAASxkC,EAAMvnE,GAAI6rG,EAAU5yF,EAAE29E,EAAG39E,GAAI29E,EAAG/3D,EAAIkpE,EAAgB,GACjEnR,EAAG/3D,GAAKkpE,EAAgBzD,EAEpBtkG,EAAI,IAAMc,IACb81F,EAAG/3D,GAAK6oD,EAAG6c,kBAAoBD,KAMnC0H,SAAU,SAASpV,EAAIlP,EAAI/N,GAC1B,IAeI+uB,EAAUuD,EAAWnB,EAAalC,EAAO5oG,EAAGyyF,EAAGnd,EAAM+jB,EAfrDsO,EAAejgB,EAAGigB,aAClBjD,EAAchd,EAAGgd,YACjBE,EAAYld,EAAGggB,WACfnhE,EAAOmhD,EAAGnhD,KACV2lE,EAAiBxkB,EAAG6d,cACpB4G,EAAe,EACfC,EAASF,EAAiBrC,GAAYniB,EAAI,QAAU,EAEpDmkB,EAAY1H,GAAazc,EAAGzI,IAAKyI,EAAGzuE,EAAGyuE,EAAG7wD,OAE1Cw1E,EAAiB,SAAS9iB,GAC7B5P,EAAIoyB,SAASxiB,EAAMsiB,EAAU5yF,EAAE29E,EAAG39E,EAAIkzF,GAAevV,EAAG/3D,EAAI8oE,EAAe,GAC3E/Q,EAAG/3D,GAAK8oE,EAAejD,GAIpB4H,EAA0BT,EAAUvtB,UAAUsmB,GAiBlD,IAfAjrB,EAAI2E,UAAYsmB,EAChBjrB,EAAImyB,aAAe,SACnBnyB,EAAIoD,KAAO8B,GAAUsqB,WAAWxB,EAAcjgB,EAAG8f,eAAgB9f,EAAG4f,iBAEpE1Q,EAAG39E,EAAI4wF,GAAYniB,EAAI4kB,GAGvB3yB,EAAIyP,UAAY1B,EAAGid,cACnB9lB,GAAU5J,KAAKyS,EAAGke,WAAYyG,GAE9BF,EAAeD,GAA8C,UAA5BI,EAChB,WAAd1H,EAA0B+C,EAAe,EAAI,EAAMA,EAAe,EAClE,EAGE3nG,EAAI,EAAGs1E,EAAO/uC,EAAKzlC,OAAQd,EAAIs1E,IAAQt1E,EAAG,CAS9C,IARA0oG,EAAWniE,EAAKvmC,GAChBisG,EAAYvkB,EAAGqjB,gBAAgB/qG,GAC/B8qG,EAAcpjB,EAAGojB,YAAY9qG,GAE7B25E,EAAIyP,UAAY6iB,EAChBptB,GAAU5J,KAAKyzB,EAASC,OAAQ0D,GAG3B5Z,EAAI,EAAG4G,GADZuP,EAAQF,EAASE,OACQ9nG,OAAQ2xF,EAAI4G,IAAQ5G,EAAG,CAE/C,GAAIyZ,EAAgB,CACnB,IAAIK,EAAYV,EAAU5yF,EAAEmzF,GAG5BzyB,EAAIyP,UAAY1B,EAAG4gB,sBACnB3uB,EAAIoT,SAAS8e,EAAUptB,WAAW8tB,EAAW5E,GAAe/Q,EAAG/3D,EAAG8oE,EAAcA,GAGhFhuB,EAAIoO,UAAY,EAChBpO,EAAI0P,YAAcyhB,EAAY1lB,YAC9BzL,EAAI6yB,WAAWX,EAAUptB,WAAW8tB,EAAW5E,GAAe/Q,EAAG/3D,EAAG8oE,EAAcA,GAGlFhuB,EAAIyP,UAAY0hB,EAAY3lB,gBAC5BxL,EAAIoT,SAAS8e,EAAUptB,WAAWotB,EAAUrtB,MAAM+tB,EAAW,GAAI5E,EAAe,GAAI/Q,EAAG/3D,EAAI,EAAG8oE,EAAe,EAAGA,EAAe,GAC/HhuB,EAAIyP,UAAY6iB,EAGjBI,EAAezD,EAAMnW,IAGtB5T,GAAU5J,KAAKyzB,EAASG,MAAOwD,GAIhCF,EAAe,EAGfttB,GAAU5J,KAAKyS,EAAGue,UAAWoG,GAC7BzV,EAAG/3D,GAAK6lE,GAGT+H,WAAY,SAAS7V,EAAIlP,EAAI/N,GAC5B,IAEIyuB,EAAgBpoG,EAFhBmmG,EAASze,EAAGye,OACZrlG,EAASqlG,EAAOrlG,OAGpB,GAAIA,EAAQ,CACX,IAAI+qG,EAAY1H,GAAazc,EAAGzI,IAAKyI,EAAGzuE,EAAGyuE,EAAG7wD,OAa9C,IAXA+/D,EAAG39E,EAAI4wF,GAAYniB,EAAIA,EAAG2gB,cAC1BzR,EAAG/3D,GAAK6oD,EAAGqd,gBAEXprB,EAAI2E,UAAYutB,EAAUvtB,UAAUoJ,EAAG2gB,cACvC1uB,EAAImyB,aAAe,SAEnB1D,EAAiB1gB,EAAG0gB,eAEpBzuB,EAAIyP,UAAY1B,EAAGsd,gBACnBrrB,EAAIoD,KAAO8B,GAAUsqB,WAAWf,EAAgB1gB,EAAGygB,iBAAkBzgB,EAAGugB,mBAEnEjoG,EAAI,EAAGA,EAAIc,IAAUd,EACzB25E,EAAIoyB,SAAS5F,EAAOnmG,GAAI6rG,EAAU5yF,EAAE29E,EAAG39E,GAAI29E,EAAG/3D,EAAIupE,EAAiB,GACnExR,EAAG/3D,GAAKupE,EAAiB1gB,EAAGod,gBAK/B4H,eAAgB,SAAS9V,EAAIlP,EAAI/N,EAAKgxB,GACrChxB,EAAIyP,UAAY1B,EAAGvC,gBACnBxL,EAAI0P,YAAc3B,EAAGtC,YACrBzL,EAAIoO,UAAYL,EAAGzB,YACnB,IAAIkhB,EAASzf,EAAGyf,OACZC,EAAS1f,EAAG0f,OACZnuF,EAAI29E,EAAG39E,EACP4lB,EAAI+3D,EAAG/3D,EACPhI,EAAQ8zE,EAAY9zE,MACpBD,EAAS+zE,EAAY/zE,OACrBkjD,EAAS4N,EAAGjN,aAEhBd,EAAIoB,YACJpB,EAAIM,OAAOhhE,EAAI6gE,EAAQj7C,GACR,QAAXuoE,GACHnkG,KAAKkoG,UAAUvU,EAAI+T,GAEpBhxB,EAAIqB,OAAO/hE,EAAI4d,EAAQijD,EAAQj7C,GAC/B86C,EAAIgzB,iBAAiB1zF,EAAI4d,EAAOgI,EAAG5lB,EAAI4d,EAAOgI,EAAIi7C,GACnC,WAAXstB,GAAkC,UAAXD,GAC1BlkG,KAAKkoG,UAAUvU,EAAI+T,GAEpBhxB,EAAIqB,OAAO/hE,EAAI4d,EAAOgI,EAAIjI,EAASkjD,GACnCH,EAAIgzB,iBAAiB1zF,EAAI4d,EAAOgI,EAAIjI,EAAQ3d,EAAI4d,EAAQijD,EAAQj7C,EAAIjI,GACrD,WAAXwwE,GACHnkG,KAAKkoG,UAAUvU,EAAI+T,GAEpBhxB,EAAIqB,OAAO/hE,EAAI6gE,EAAQj7C,EAAIjI,GAC3B+iD,EAAIgzB,iBAAiB1zF,EAAG4lB,EAAIjI,EAAQ3d,EAAG4lB,EAAIjI,EAASkjD,GACrC,WAAXstB,GAAkC,SAAXD,GAC1BlkG,KAAKkoG,UAAUvU,EAAI+T,GAEpBhxB,EAAIqB,OAAO/hE,EAAG4lB,EAAIi7C,GAClBH,EAAIgzB,iBAAiB1zF,EAAG4lB,EAAG5lB,EAAI6gE,EAAQj7C,GACvC86C,EAAIQ,YAEJR,EAAIuB,OAEAwM,EAAGzB,YAAc,GACpBtM,EAAIwB,UAIN4J,KAAM,WACL,IAAIpL,EAAM12E,KAAKqwB,OAAOqmD,IAClB+N,EAAKzkF,KAAKo9E,MAEd,GAAmB,IAAfqH,EAAG98C,QAAP,CAIA,IAAI+/D,EAAc,CACjB9zE,MAAO6wD,EAAG7wD,MACVD,OAAQ8wD,EAAG9wD,QAERggE,EAAK,CACR39E,EAAGyuE,EAAGzuE,EACN4lB,EAAG6oD,EAAG7oD,GAIH+L,EAAU1xB,KAAK4B,IAAI4sE,EAAG98C,QAAU,MAAQ,EAAI88C,EAAG98C,QAG/CgiE,EAAoBllB,EAAGngB,MAAMzmE,QAAU4mF,EAAGke,WAAW9kG,QAAU4mF,EAAGnhD,KAAKzlC,QAAU4mF,EAAGue,UAAUnlG,QAAU4mF,EAAGye,OAAOrlG,OAElHmC,KAAKquF,SAAS8S,SAAWwI,IAC5BjzB,EAAIgB,OACJhB,EAAIkzB,YAAcjiE,EAGlB3nC,KAAKypG,eAAe9V,EAAIlP,EAAI/N,EAAKgxB,GAGjC/T,EAAG/3D,GAAK6oD,EAAGwd,SAEXrmB,GAAUI,IAAIC,sBAAsBvF,EAAK+N,EAAG2f,eAG5CpkG,KAAK2oG,UAAUhV,EAAIlP,EAAI/N,GAGvB12E,KAAK+oG,SAASpV,EAAIlP,EAAI/N,GAGtB12E,KAAKwpG,WAAW7V,EAAIlP,EAAI/N,GAExBkF,GAAUI,IAAIO,qBAAqB7F,EAAK+N,EAAG2f,eAE3C1tB,EAAImB,aAUNgyB,YAAa,SAAS7jG,GACrB,IAAIi1C,EAAKj7C,KACLwzB,EAAUynB,EAAGozC,SACbyL,GAAU,EAgCd,OA9BA7+C,EAAG8rD,YAAc9rD,EAAG8rD,aAAe,GAGpB,aAAX/gG,EAAExC,KACLy3C,EAAGusD,QAAU,IAEbvsD,EAAGusD,QAAUvsD,EAAG5qB,OAAOy5E,0BAA0B9jG,EAAGwtB,EAAQi1B,KAAMj1B,GAC9DA,EAAQliB,SACX2pC,EAAGusD,QAAQl2F,YAKbwoF,GAAWle,GAAU1J,YAAYj3B,EAAGusD,QAASvsD,EAAG8rD,gBAI/C9rD,EAAG8rD,YAAc9rD,EAAGusD,SAEhBh0E,EAAQ2tE,SAAW3tE,EAAQ+uD,UAC9BtnC,EAAG8sD,eAAiB,CACnB/xF,EAAGhQ,EAAEgQ,EACL4lB,EAAG51B,EAAE41B,GAGNqf,EAAG1lB,QAAO,GACV0lB,EAAGkiC,UAIE2c,KAOLiQ,GAAgB3G,GAEhB4G,GAAelD,GACnBkD,GAAa5G,YAAc2G,GAE3B,IAAIE,GAAmBruB,GAAU/J,eA4BjC,SAASq4B,KACR,OAAOtuB,GAAUhJ,MAAMp2E,OAAO+Q,OAAO,MAAO,GAAG3O,MAAMD,KAAK6D,WAAY,CACrEwwE,OAAQ,SAAS50E,EAAK+D,EAAQC,EAAQoxB,GACrC,GAAY,UAARp1B,GAA2B,UAARA,EAAiB,CACvC,IACIrB,EAAGyG,EAAMqpE,EADTs9B,EAAO/nG,EAAOhE,GAAKP,OAOvB,IAJKsE,EAAO/D,KACX+D,EAAO/D,GAAO,IAGVrB,EAAI,EAAGA,EAAIotG,IAAQptG,EACvB8vE,EAAQzqE,EAAOhE,GAAKrB,GACpByG,EAAOymG,GAAiBp9B,EAAMrpE,KAAc,UAARpF,EAAkB,WAAa,UAE/DrB,GAAKoF,EAAO/D,GAAKP,QACpBsE,EAAO/D,GAAKT,KAAK,KAGbwE,EAAO/D,GAAKrB,GAAGyG,MAASqpE,EAAMrpE,MAAQqpE,EAAMrpE,OAASrB,EAAO/D,GAAKrB,GAAGyG,KAGxEo4E,GAAUhJ,MAAMzwE,EAAO/D,GAAKrB,GAAI,CAACwjG,GAAkBM,iBAAiBr9F,GAAOqpE,IAG3E+O,GAAUhJ,MAAMzwE,EAAO/D,GAAKrB,GAAI8vE,QAIlC+O,GAAUnJ,QAAQr0E,EAAK+D,EAAQC,EAAQoxB,MAW3C,SAAS42E,KACR,OAAOxuB,GAAUhJ,MAAMp2E,OAAO+Q,OAAO,MAAO,GAAG3O,MAAMD,KAAK6D,WAAY,CACrEwwE,OAAQ,SAAS50E,EAAK+D,EAAQC,EAAQoxB,GACrC,IAAIk/C,EAAOvwE,EAAO/D,IAAQ5B,OAAO+Q,OAAO,MACpColE,EAAOvwE,EAAOhE,GAEN,WAARA,EAEH+D,EAAO/D,GAAO8rG,GAAiBx3B,EAAMC,GACnB,UAARv0E,EAEV+D,EAAO/D,GAAOw9E,GAAUhJ,MAAMF,EAAM,CAAC6tB,GAAkBM,iBAAiBluB,EAAKnvE,MAAOmvE,IAEpFiJ,GAAUnJ,QAAQr0E,EAAK+D,EAAQC,EAAQoxB,MAM3C,SAAS62E,GAAW75F,GAKnB,IAAI5P,GAJJ4P,EAASA,GAAUhU,OAAO+Q,OAAO,OAIf3M,KAAO4P,EAAO5P,MAAQ,GASxC,OARAA,EAAKozB,SAAWpzB,EAAKozB,UAAY,GACjCpzB,EAAKwmE,OAASxmE,EAAKwmE,QAAU,GAE7B52D,EAAOgjB,QAAU42E,GAChBxwB,EAAc/zE,OACd+zE,EAAcppE,EAAOhN,MACrBgN,EAAOgjB,SAAW,IAEZhjB,EAGR,SAAS85F,GAAa7zB,GACrB,IAAI8zB,EAAa9zB,EAAMjjD,QAEvBooD,GAAU5J,KAAKyE,EAAMsJ,QAAQ,SAASlT,GACrCqtB,GAAaG,UAAU5jB,EAAO5J,MAG/B09B,EAAaH,GACZxwB,EAAc/zE,OACd+zE,EAAcnD,EAAMjmE,OAAOhN,MAC3B+mG,GAED9zB,EAAMjjD,QAAUijD,EAAMjmE,OAAOgjB,QAAU+2E,EACvC9zB,EAAM+zB,sBACN/zB,EAAMg0B,sBAGNh0B,EAAM8uB,QAAQlX,SAAWkc,EAAW7c,SACpCjX,EAAM8uB,QAAQvoB,aAGf,SAAS0tB,GAAqBC,EAAUC,EAAQ7qG,GAC/C,IAAI61B,EACAi1E,EAAQ,SAAStiG,GACpB,OAAOA,EAAIqtB,KAAOA,GAGnB,GACCA,EAAKg1E,EAAS7qG,UACN67E,GAAU8C,UAAUisB,EAAUE,IAAU,GAEjD,OAAOj1E,EAGR,SAASk1E,GAAqBt0E,GAC7B,MAAoB,QAAbA,GAAmC,WAAbA,EAG9B,SAASu0E,GAAcC,EAAIC,GAC1B,OAAO,SAAS9hG,EAAGC,GAClB,OAAOD,EAAE6hG,KAAQ5hG,EAAE4hG,GAChB7hG,EAAE8hG,GAAM7hG,EAAE6hG,GACV9hG,EAAE6hG,GAAM5hG,EAAE4hG,IAhJfpxB,EAAcR,KAAK,SAAU,CAC5ByI,SAAU,GACVqpB,OAAQ,CACP,YACA,WACA,QACA,aACA,aAED9oB,MAAO,CACN+oB,QAAS,KACT1iD,KAAM,UACN8tC,WAAW,EACX6U,kBAAmB,KAEpBh/F,QAAS,KACTkyF,qBAAqB,EACrB+M,YAAY,EACZC,4BAA6B,IAkI9B,IAAIC,GAAQ,SAAS13B,EAAMrjE,GAE1B,OADAxQ,KAAKgO,UAAU6lE,EAAMrjE,GACdxQ,MAGR47E,GAAU3jB,OAAOszC,GAAM9sG,UAA+B,CAIrDuP,UAAW,SAAS6lE,EAAMrjE,GACzB,IAAIyqC,EAAKj7C,KAETwQ,EAAS65F,GAAW75F,GAEpB,IAAI0pB,EAAUslE,GAAS3E,eAAehnB,EAAMrjE,GACxCsrE,EAAS5hD,GAAWA,EAAQ4hD,OAC5BnoD,EAASmoD,GAAUA,EAAOnoD,OAC1BC,EAAQkoD,GAAUA,EAAOloD,MAE7BqnB,EAAGrlB,GAAKgmD,GAAUpK,MAClBv2B,EAAGy7B,IAAMx8C,EACT+gB,EAAG6gC,OAASA,EACZ7gC,EAAGzqC,OAASA,EACZyqC,EAAGrnB,MAAQA,EACXqnB,EAAGtnB,OAASA,EACZsnB,EAAGuhD,YAAc7oE,EAASC,EAAQD,EAAS,KAC3CsnB,EAAGznB,QAAUhjB,EAAOgjB,QACpBynB,EAAGuwD,iBAAkB,EACrBvwD,EAAGm/C,QAAU,GAUbn/C,EAAGw7B,MAAQx7B,EACXA,EAAG+zC,WAAa/zC,EAGhBswD,GAAME,UAAUxwD,EAAGrlB,IAAMqlB,EAGzBz+C,OAAOqG,eAAeo4C,EAAI,OAAQ,CACjC76C,IAAK,WACJ,OAAO66C,EAAGzqC,OAAO5P,MAElBT,IAAK,SAASvC,GACbq9C,EAAGzqC,OAAO5P,KAAOhD,KAIds8B,GAAY4hD,GASjB7gC,EAAG+hC,aACH/hC,EAAG1lB,UALFhS,QAAQ1e,MAAM,sEAWhBm4E,WAAY,WACX,IAAI/hC,EAAKj7C,KAmBT,OAhBAy/F,GAAaQ,OAAOhlD,EAAI,cAExB2gC,GAAU8vB,YAAYzwD,EAAIA,EAAGznB,QAAQm4E,kBAErC1wD,EAAG2wD,aAEC3wD,EAAGznB,QAAQ63E,YAEdpwD,EAAG4wD,QAAO,GAGX5wD,EAAG6wD,cAGHrM,GAAaQ,OAAOhlD,EAAI,aAEjBA,GAGRh7C,MAAO,WAEN,OADA27E,GAAUE,OAAO77E,MAAMD,MAChBA,MAGRqiE,KAAM,WAGL,OADA+b,GAAgBK,gBAAgBz+E,MACzBA,MAGR6rG,OAAQ,SAASE,GAChB,IAAI9wD,EAAKj7C,KACLwzB,EAAUynB,EAAGznB,QACbsoD,EAAS7gC,EAAG6gC,OACZ0gB,EAAehpE,EAAQ8qE,qBAAuBrjD,EAAGuhD,aAAgB,KAMjE1D,EAAW7iF,KAAK2B,IAAI,EAAG3B,KAAK8mD,MAAM6e,GAAUowB,gBAAgBlwB,KAC5Did,EAAY9iF,KAAK2B,IAAI,EAAG3B,KAAK8mD,MAAMy/B,EAAc1D,EAAW0D,EAAc5gB,GAAUqwB,iBAAiBnwB,KAEzG,IAAI7gC,EAAGrnB,QAAUklE,GAAY79C,EAAGtnB,SAAWolE,KAI3Cjd,EAAOloD,MAAQqnB,EAAGrnB,MAAQklE,EAC1Bhd,EAAOnoD,OAASsnB,EAAGtnB,OAASolE,EAC5Bjd,EAAOjzC,MAAMjV,MAAQklE,EAAW,KAChChd,EAAOjzC,MAAMlV,OAASolE,EAAY,KAElCnd,GAAU8vB,YAAYzwD,EAAIznB,EAAQm4E,mBAE7BI,GAAQ,CAEZ,IAAIG,EAAU,CAACt4E,MAAOklE,EAAUnlE,OAAQolE,GACxC0G,GAAaQ,OAAOhlD,EAAI,SAAU,CAACixD,IAG/B14E,EAAQ24E,UACX34E,EAAQ24E,SAASlxD,EAAIixD,GAGtBjxD,EAAGonB,OACHpnB,EAAG1lB,OAAO,CACT0oD,SAAUzqD,EAAQ83E,gCAKrBd,oBAAqB,WACpB,IAAIh3E,EAAUxzB,KAAKwzB,QACf44E,EAAgB54E,EAAQusD,QAAU,GAClCssB,EAAe74E,EAAQq5C,MAE3B+O,GAAU5J,KAAKo6B,EAAcjsB,OAAO,SAASmsB,EAAcvsG,GACrDusG,EAAa12E,KACjB02E,EAAa12E,GAAK80E,GAAqB0B,EAAcjsB,MAAO,UAAWpgF,OAIzE67E,GAAU5J,KAAKo6B,EAAc/rB,OAAO,SAASksB,EAAcxsG,GACrDwsG,EAAa32E,KACjB22E,EAAa32E,GAAK80E,GAAqB0B,EAAc/rB,MAAO,UAAWtgF,OAIrEssG,IACHA,EAAaz2E,GAAKy2E,EAAaz2E,IAAM,UAOvC60E,oBAAqB,WACpB,IAAIxvD,EAAKj7C,KACLwzB,EAAUynB,EAAGznB,QACbusD,EAAS9kC,EAAG8kC,QAAU,GACtBmX,EAAQ,GACRsV,EAAUhwG,OAAOyF,KAAK89E,GAAQ72E,QAAO,SAASX,EAAKqtB,GAEtD,OADArtB,EAAIqtB,IAAM,EACHrtB,IACL,IAECirB,EAAQusD,SACXmX,EAAQA,EAAM5tF,QACZkqB,EAAQusD,OAAOI,OAAS,IAAIx/E,KAAI,SAAS2rG,GACzC,MAAO,CAAC94E,QAAS84E,EAAcG,MAAO,WAAYC,UAAW,cAE7Dl5E,EAAQusD,OAAOM,OAAS,IAAI1/E,KAAI,SAAS4rG,GACzC,MAAO,CAAC/4E,QAAS+4E,EAAcE,MAAO,SAAUC,UAAW,aAK1Dl5E,EAAQq5C,OACXqqB,EAAMv5F,KAAK,CACV61B,QAASA,EAAQq5C,MACjB4/B,MAAO,eACPE,WAAW,EACXD,UAAW,cAIb9wB,GAAU5J,KAAKklB,GAAO,SAASrjB,GAC9B,IAAIw4B,EAAex4B,EAAKrgD,QACpBoC,EAAKy2E,EAAaz2E,GAClBg3E,EAAY3C,GAAiBoC,EAAa7oG,KAAMqwE,EAAK44B,OAErD3B,GAAqBuB,EAAa71E,YAAcs0E,GAAqBj3B,EAAK64B,aAC7EL,EAAa71E,SAAWq9C,EAAK64B,WAG9BF,EAAQ52E,IAAM,EACd,IAAIi3C,EAAQ,KACZ,GAAIj3C,KAAMmqD,GAAUA,EAAOnqD,GAAIpyB,OAASopG,GACvC//B,EAAQkT,EAAOnqD,IACTpC,QAAU64E,EAChBx/B,EAAM6J,IAAMz7B,EAAGy7B,IACf7J,EAAM4J,MAAQx7B,MACR,CACN,IAAI4xD,EAAatM,GAAkBK,oBAAoBgM,GACvD,IAAKC,EACJ,OAEDhgC,EAAQ,IAAIggC,EAAW,CACtBj3E,GAAIA,EACJpyB,KAAMopG,EACNp5E,QAAS64E,EACT31B,IAAKz7B,EAAGy7B,IACRD,MAAOx7B,IAER8kC,EAAOlT,EAAMj3C,IAAMi3C,EAGpBA,EAAMigC,oBAKFj5B,EAAK84B,YACR1xD,EAAG4xB,MAAQA,MAIb+O,GAAU5J,KAAKw6B,GAAS,SAASO,EAAYn3E,GACvCm3E,UACGhtB,EAAOnqD,MAIhBqlB,EAAG8kC,OAASA,EAEZwgB,GAAkBS,kBAAkBhhG,OAGrCgtG,yBAA0B,WACzB,IAGIjwG,EAAGs1E,EAHHp3B,EAAKj7C,KACLitG,EAAiB,GACjBj5E,EAAWinB,EAAGr6C,KAAKozB,SAGvB,IAAKj3B,EAAI,EAAGs1E,EAAOr+C,EAASn2B,OAAQd,EAAIs1E,EAAMt1E,IAAK,CAClD,IAAIy3B,EAAUR,EAASj3B,GACnB4sC,EAAOsR,EAAGqlC,eAAevjF,GACzByG,EAAOgxB,EAAQhxB,MAAQy3C,EAAGzqC,OAAOhN,KAUrC,GARImmC,EAAKnmC,MAAQmmC,EAAKnmC,OAASA,IAC9By3C,EAAGiyD,mBAAmBnwG,GACtB4sC,EAAOsR,EAAGqlC,eAAevjF,IAE1B4sC,EAAKnmC,KAAOA,EACZmmC,EAAK/B,MAAQpT,EAAQoT,OAAS,EAC9B+B,EAAK5pC,MAAQhD,EAET4sC,EAAKqlD,WACRrlD,EAAKqlD,WAAWlP,YAAY/iF,GAC5B4sC,EAAKqlD,WAAWrP,iBACV,CACN,IAAIwtB,EAAkB92E,GAAYsT,EAAKnmC,MACvC,QAAwBlG,IAApB6vG,EACH,MAAM,IAAI72E,MAAM,IAAMqT,EAAKnmC,KAAO,0BAGnCmmC,EAAKqlD,WAAa,IAAIme,EAAgBlyD,EAAIl+C,GAC1CkwG,EAAetvG,KAAKgsC,EAAKqlD,aAI3B,OAAOie,GAORG,cAAe,WACd,IAAInyD,EAAKj7C,KACT47E,GAAU5J,KAAK/2B,EAAGr6C,KAAKozB,UAAU,SAASQ,EAAS8qD,GAClDrkC,EAAGqlC,eAAehB,GAAc0P,WAAWrtB,UACzC1mB,IAMJ0mB,MAAO,WACN3hE,KAAKotG,gBACLptG,KAAKulG,QAAQvoB,cAGdznD,OAAQ,SAAS/kB,GAChB,IACIzT,EAAGs1E,EADHp3B,EAAKj7C,KAiBT,GAdKwQ,GAA4B,kBAAXA,IAErBA,EAAS,CACRytE,SAAUztE,EACVstB,KAAMt7B,UAAU,KAIlB8nG,GAAarvD,GAIbwkD,GAAaa,YAAYrlD,IAEuB,IAA5CwkD,GAAaQ,OAAOhlD,EAAI,gBAA5B,CAKAA,EAAGsqD,QAAQzkB,MAAQ7lC,EAAGr6C,KAGtB,IAAIqsG,EAAiBhyD,EAAG+xD,2BAGxB,IAAKjwG,EAAI,EAAGs1E,EAAOp3B,EAAGr6C,KAAKozB,SAASn2B,OAAQd,EAAIs1E,EAAMt1E,IACrDk+C,EAAGqlC,eAAevjF,GAAGiyF,WAAW1N,wBAGjCrmC,EAAGoyD,eAGCpyD,EAAGznB,QAAQuc,WAAakL,EAAGznB,QAAQuc,UAAUkuC,UAChDrC,GAAU5J,KAAKi7B,GAAgB,SAASje,GACvCA,EAAWrtB,WAIb1mB,EAAGqyD,iBAIHryD,EAAGsqD,QAAQvoB,aAIX/hC,EAAGsyD,WAAa,GAGhB9N,GAAaQ,OAAOhlD,EAAI,eAExBA,EAAGm/C,QAAQvf,KAAKkwB,GAAc,IAAK,SAE/B9vD,EAAGuwD,gBACNvwD,EAAGuyD,iBAAmB,CACrBvvB,SAAUztE,EAAOytE,SACjBpC,OAAQrrE,EAAOqrE,OACf/9C,KAAMttB,EAAOstB,MAGdmd,EAAGrd,OAAOptB,KASZ68F,aAAc,WACb,IAAIpyD,EAAKj7C,MAEuC,IAA5Cy/F,GAAaQ,OAAOhlD,EAAI,kBAI5Bi/C,GAAa3kE,OAAOv1B,KAAMA,KAAK4zB,MAAO5zB,KAAK2zB,QAE3CsnB,EAAGm/C,QAAU,GACbxe,GAAU5J,KAAK/2B,EAAG48C,OAAO,SAASC,GAG7BA,EAAIrW,YACPqW,EAAIrW,aAELxmC,EAAGm/C,QAAQz8F,KAAKwH,MAAM81C,EAAGm/C,QAAStC,EAAIsC,aACpCn/C,GAEHA,EAAGm/C,QAAQr4F,SAAQ,SAAS8xE,EAAM9zE,GACjC8zE,EAAK45B,KAAO1tG,KAUb0/F,GAAaQ,OAAOhlD,EAAI,oBACxBwkD,GAAaQ,OAAOhlD,EAAI,iBAQzBqyD,eAAgB,WACf,IAAIryD,EAAKj7C,KAET,IAAwD,IAApDy/F,GAAaQ,OAAOhlD,EAAI,wBAA5B,CAIA,IAAK,IAAIl+C,EAAI,EAAGs1E,EAAOp3B,EAAGr6C,KAAKozB,SAASn2B,OAAQd,EAAIs1E,IAAQt1E,EAC3Dk+C,EAAGyyD,cAAc3wG,GAGlB0iG,GAAaQ,OAAOhlD,EAAI,yBAQzByyD,cAAe,SAAS3tG,GACvB,IAAIk7C,EAAKj7C,KACL2pC,EAAOsR,EAAGqlC,eAAevgF,GACzBmF,EAAO,CACVykC,KAAMA,EACN5pC,MAAOA,IAGuD,IAA3D0/F,GAAaQ,OAAOhlD,EAAI,sBAAuB,CAAC/1C,MAIpDykC,EAAKqlD,WAAWnO,UAEhB4e,GAAaQ,OAAOhlD,EAAI,qBAAsB,CAAC/1C,MAGhD04B,OAAQ,SAASptB,GAChB,IAAIyqC,EAAKj7C,KAEJwQ,GAA4B,kBAAXA,IAErBA,EAAS,CACRytE,SAAUztE,EACVstB,KAAMt7B,UAAU,KAIlB,IAAImrG,EAAmB1yD,EAAGznB,QAAQuc,UAC9BkuC,EAAWgsB,GAAiBz5F,EAAOytE,SAAU0vB,GAAoBA,EAAiB1vB,UAClFngD,EAAOttB,EAAOstB,KAElB,IAAgD,IAA5C2hE,GAAaQ,OAAOhlD,EAAI,gBAA5B,CAIA,IAAIkjC,EAAa,SAASpuC,GACzB0vD,GAAaQ,OAAOhlD,EAAI,eACxB2gC,GAAUv1B,SAASsnD,GAAoBA,EAAiBxvB,WAAY,CAACpuC,GAAYkL,IAGlF,GAAI0yD,GAAoB1vB,EAAU,CACjC,IAAIluC,EAAY,IAAIiuC,GAAe,CAClCH,SAAUI,EAAW,MACrBpC,OAAQrrE,EAAOqrE,QAAU8xB,EAAiB9xB,OAE1Cj+C,OAAQ,SAAS64C,EAAOm3B,GACvB,IAAIC,EAAiBjyB,GAAUC,OAAO91B,QAAQ6nD,EAAgB/xB,QAC1D+B,EAAcgwB,EAAgBhwB,YAC9BkwB,EAAclwB,EAAcgwB,EAAgB/vB,SAEhDpH,EAAMqL,KAAK+rB,EAAeC,GAAcA,EAAalwB,IAGtDE,oBAAqB6vB,EAAiBzvB,WACtCH,oBAAqBI,IAGtBC,GAAgBG,aAAatjC,EAAIlL,EAAWkuC,EAAUngD,QAEtDmd,EAAG6mC,OAGH3D,EAAW,IAAIH,GAAe,CAACH,SAAU,EAAGpH,MAAOx7B,KAGpD,OAAOA,IAGR6mC,KAAM,SAASF,GACd,IACI7kF,EAAGgxG,EADH9yD,EAAKj7C,KAWT,GARAi7C,EAAGh7C,QAEC27E,GAAUnK,cAAcmQ,KAC3BA,EAAc,GAGf3mC,EAAG3e,WAAWslD,KAEV3mC,EAAGrnB,OAAS,GAAKqnB,EAAGtnB,QAAU,KAI2B,IAAzD8rE,GAAaQ,OAAOhlD,EAAI,aAAc,CAAC2mC,IAA3C,CAQA,IADAmsB,EAAS9yD,EAAGm/C,QACPr9F,EAAI,EAAGA,EAAIgxG,EAAOlwG,QAAUkwG,EAAOhxG,GAAGy8B,GAAK,IAAKz8B,EACpDgxG,EAAOhxG,GAAG+kF,KAAK7mC,EAAGmtC,WAMnB,IAHAntC,EAAG+yD,aAAapsB,GAGT7kF,EAAIgxG,EAAOlwG,SAAUd,EAC3BgxG,EAAOhxG,GAAG+kF,KAAK7mC,EAAGmtC,WAGnBntC,EAAGgzD,aAAarsB,GAEhB6d,GAAaQ,OAAOhlD,EAAI,YAAa,CAAC2mC,MAMvCtlD,WAAY,SAASslD,GAGpB,IAFA,IAAI3mC,EAAKj7C,KAEAjD,EAAI,EAAGs1E,GAAQp3B,EAAGr6C,KAAKozB,UAAY,IAAIn2B,OAAQd,EAAIs1E,IAAQt1E,EAC/Dk+C,EAAGw0C,iBAAiB1yF,IACvBk+C,EAAGqlC,eAAevjF,GAAGiyF,WAAW1yD,WAAWslD,GAI7C3mC,EAAGsqD,QAAQjpE,WAAWslD,IAMvBssB,uBAAwB,SAASC,GAChC,IAGIpxG,EAAGs1E,EAHHp3B,EAAKj7C,KAELe,EAAS,GAGb,IAAKhE,EAAI,EAAGs1E,GAJGp3B,EAAGr6C,KAAKozB,UAAY,IAIPn2B,OAAQd,EAAIs1E,IAAQt1E,EAC1CoxG,IAAiBlzD,EAAGw0C,iBAAiB1yF,IACzCgE,EAAOpD,KAAKs9C,EAAGqlC,eAAevjF,IAMhC,OAFAgE,EAAO85E,KAAKkwB,GAAc,QAAS,UAE5BhqG,GAMRyyF,8BAA+B,WAC9B,OAAOxzF,KAAKkuG,wBAAuB,IAQpCF,aAAc,SAASpsB,GACtB,IACI4K,EAAUzvF,EADVk+C,EAAKj7C,KAGT,IAAqE,IAAjEy/F,GAAaQ,OAAOhlD,EAAI,qBAAsB,CAAC2mC,IAAnD,CAKA,IAAK7kF,GADLyvF,EAAWvxC,EAAGu4C,iCACI31F,OAAS,EAAGd,GAAK,IAAKA,EACvCk+C,EAAGmzD,YAAY5hB,EAASzvF,GAAI6kF,GAG7B6d,GAAaQ,OAAOhlD,EAAI,oBAAqB,CAAC2mC,MAQ/CwsB,YAAa,SAASzkE,EAAMi4C,GAC3B,IAAI3mC,EAAKj7C,KACLkF,EAAO,CACVykC,KAAMA,EACN5pC,MAAO4pC,EAAK5pC,MACZ6hF,YAAaA,IAG+C,IAAzD6d,GAAaQ,OAAOhlD,EAAI,oBAAqB,CAAC/1C,MAIlDykC,EAAKqlD,WAAWlN,KAAKF,GAErB6d,GAAaQ,OAAOhlD,EAAI,mBAAoB,CAAC/1C,MAQ9C+oG,aAAc,SAASrsB,GACtB,IAAI3mC,EAAKj7C,KACLulG,EAAUtqD,EAAGsqD,QACbrgG,EAAO,CACVqgG,QAASA,EACT3jB,YAAaA,IAG+C,IAAzD6d,GAAaQ,OAAOhlD,EAAI,oBAAqB,CAAC/1C,MAIlDqgG,EAAQzjB,OAER2d,GAAaQ,OAAOhlD,EAAI,mBAAoB,CAAC/1C,MAO9C6tB,kBAAmB,SAAS/sB,GAC3B,OAAOmxF,GAAiBC,MAAMC,OAAOr3F,KAAMgG,IAG5CgtB,mBAAoB,SAAShtB,GAC5B,OAAOmxF,GAAiBC,MAAMvtF,MAAM7J,KAAMgG,EAAG,CAACuwF,WAAW,KAG1D8X,mBAAoB,SAASroG,GAC5B,OAAOmxF,GAAiBC,MAAM,UAAUp3F,KAAMgG,EAAG,CAACuwF,WAAW,KAG9DuT,0BAA2B,SAAS9jG,EAAGyiD,EAAMj1B,GAC5C,IAAI0rC,EAASi4B,GAAiBC,MAAM3uC,GACpC,MAAsB,oBAAXyW,EACHA,EAAOl/D,KAAMgG,EAAGwtB,GAGjB,IAGRV,kBAAmB,SAAS9sB,GAC3B,OAAOmxF,GAAiBC,MAAM5iE,QAAQx0B,KAAMgG,EAAG,CAACuwF,WAAW,KAG5DjW,eAAgB,SAAShB,GACxB,IAAIrkC,EAAKj7C,KACLw0B,EAAUymB,EAAGr6C,KAAKozB,SAASsrD,GAC1B9qD,EAAQ85E,QACZ95E,EAAQ85E,MAAQ,IAGjB,IAAI3kE,EAAOnV,EAAQ85E,MAAMrzD,EAAGrlB,IAe5B,OAdK+T,IACJA,EAAOnV,EAAQ85E,MAAMrzD,EAAGrlB,IAAM,CAC7BpyB,KAAM,KACN5C,KAAM,GACN4zB,QAAS,KACTw6D,WAAY,KACZ9R,OAAQ,KACRgD,QAAS,KACTE,QAAS,KACTx4C,MAAOpT,EAAQoT,OAAS,EACxB7nC,MAAOu/E,IAIF31C,GAGRmrD,uBAAwB,WAEvB,IADA,IAAIp4D,EAAQ,EACH3/B,EAAI,EAAGs1E,EAAOryE,KAAKY,KAAKozB,SAASn2B,OAAQd,EAAIs1E,IAAQt1E,EACzDiD,KAAKyvF,iBAAiB1yF,IACzB2/B,IAGF,OAAOA,GAGR+yD,iBAAkB,SAASnQ,GAC1B,IAAI31C,EAAO3pC,KAAKsgF,eAAehB,GAI/B,MAA8B,mBAAhB31C,EAAKuzC,QAAwBvzC,EAAKuzC,QAAUl9E,KAAKY,KAAKozB,SAASsrD,GAAcpC,QAG5FqxB,eAAgB,WACf,OAAOvuG,KAAKwzB,QAAQo7D,eAAe5uF,OAMpCktG,mBAAoB,SAAS5tB,GAC5B,IAAI1pD,EAAK51B,KAAK41B,GACVpB,EAAUx0B,KAAKY,KAAKozB,SAASsrD,GAC7B31C,EAAOnV,EAAQ85E,OAAS95E,EAAQ85E,MAAM14E,GAEtC+T,IACHA,EAAKqlD,WAAWt5D,iBACTlB,EAAQ85E,MAAM14E,KAIvBF,QAAS,WACR,IAEI34B,EAAGs1E,EAFHp3B,EAAKj7C,KACL87E,EAAS7gC,EAAG6gC,OAMhB,IAHA7gC,EAAGonB,OAGEtlE,EAAI,EAAGs1E,EAAOp3B,EAAGr6C,KAAKozB,SAASn2B,OAAQd,EAAIs1E,IAAQt1E,EACvDk+C,EAAGiyD,mBAAmBnwG,GAGnB++E,IACH7gC,EAAGuzD,eACH5yB,GAAUE,OAAO77E,MAAMg7C,GACvBukD,GAASJ,eAAenkD,EAAGy7B,KAC3Bz7B,EAAG6gC,OAAS,KACZ7gC,EAAGy7B,IAAM,MAGV+oB,GAAaQ,OAAOhlD,EAAI,kBAEjBswD,GAAME,UAAUxwD,EAAGrlB,KAG3B64E,cAAe,WACd,OAAOzuG,KAAK87E,OAAO4yB,UAAUvpG,MAAMnF,KAAK87E,OAAQt5E,YAGjDspG,YAAa,WACZ,IAAI7wD,EAAKj7C,KACTi7C,EAAGsqD,QAAU,IAAIyE,GAAa,CAC7B35E,OAAQ4qB,EACR0zD,eAAgB1zD,EAChB6lC,MAAO7lC,EAAGr6C,KACVytF,SAAUpzC,EAAGznB,QAAQk6D,UACnBzyC,IAMJ2wD,WAAY,WACX,IAAI3wD,EAAKj7C,KACLo7C,EAAYH,EAAG2zD,WAAa,GAC5B/vD,EAAW,WACd5D,EAAG4zD,aAAa1pG,MAAM81C,EAAIz4C,YAG3Bo5E,GAAU5J,KAAK/2B,EAAGznB,QAAQ03E,QAAQ,SAAS1nG,GAC1Cg8F,GAAS/zD,iBAAiBwP,EAAIz3C,EAAMq7C,GACpCzD,EAAU53C,GAAQq7C,KAKf5D,EAAGznB,QAAQ63E,aACdxsD,EAAW,WACV5D,EAAG4wD,UAGJrM,GAAS/zD,iBAAiBwP,EAAI,SAAU4D,GACxCzD,EAAUywD,OAAShtD,IAOrB2vD,aAAc,WACb,IAAIvzD,EAAKj7C,KACLo7C,EAAYH,EAAG2zD,WACdxzD,WAIEH,EAAG2zD,WACVhzB,GAAU5J,KAAK52B,GAAW,SAASyD,EAAUr7C,GAC5Cg8F,GAAS9zD,oBAAoBuP,EAAIz3C,EAAMq7C,QAIzCiwD,iBAAkB,SAASjtB,EAAUp5B,EAAM04C,GAC1C,IACI92F,EAAStN,EAAGs1E,EADZu4B,EAASzJ,EAAU,MAAQ,SAG/B,IAAKpkG,EAAI,EAAGs1E,EAAOwP,EAAShkF,OAAQd,EAAIs1E,IAAQt1E,GAC/CsN,EAAUw3E,EAAS9kF,KAElBiD,KAAKsgF,eAAej2E,EAAQ22E,eAAegO,WAAW4b,EAAS,cAAcvgG,GAIlE,YAATo+C,GACHzoD,KAAKsgF,eAAeuB,EAAS,GAAGb,eAAegO,WAAW,IAAM4b,EAAS,wBAO3EiE,aAAc,SAAS7oG,GACtB,IAAIi1C,EAAKj7C,KACLulG,EAAUtqD,EAAGsqD,QAEjB,IAAoD,IAAhD9F,GAAaQ,OAAOhlD,EAAI,cAAe,CAACj1C,IAA5C,CAKAi1C,EAAGuwD,iBAAkB,EACrBvwD,EAAGuyD,iBAAmB,KAEtB,IAAI1T,EAAU7+C,EAAG4uD,YAAY7jG,GAKzBu/F,IACHzL,EAAUyL,EAAQjoB,OACfioB,EAAQsE,YAAY7jG,GACpB8zF,EAAUyL,EAAQsE,YAAY7jG,IAGlCy5F,GAAaQ,OAAOhlD,EAAI,aAAc,CAACj1C,IAEvC,IAAI+oG,EAAkB9zD,EAAGuyD,iBAmBzB,OAlBIuB,EAEH9zD,EAAGrd,OAAOmxE,GACAjV,IAAY7+C,EAAGujC,YAEzBvjC,EAAGonB,OAIHpnB,EAAGrd,OAAO,CACTqgD,SAAUhjC,EAAGznB,QAAQ4uD,MAAMgpB,kBAC3BttE,MAAM,KAIRmd,EAAGuwD,iBAAkB,EACrBvwD,EAAGuyD,iBAAmB,KAEfvyD,IASR4uD,YAAa,SAAS7jG,GACrB,IAAIi1C,EAAKj7C,KACLwzB,EAAUynB,EAAGznB,SAAW,GACxB8vD,EAAe9vD,EAAQ4uD,MACvB0X,GAAU,EAqCd,OAnCA7+C,EAAGsyD,WAAatyD,EAAGsyD,YAAc,GAGlB,aAAXvnG,EAAExC,KACLy3C,EAAGssD,OAAS,GAEZtsD,EAAGssD,OAAStsD,EAAG6uD,0BAA0B9jG,EAAGs9E,EAAa76B,KAAM66B,GAKhE1H,GAAUv1B,SAAS7yB,EAAQ23E,SAAW33E,EAAQ4uD,MAAM+oB,QAAS,CAACnlG,EAAEgwF,OAAQ/6C,EAAGssD,QAAStsD,GAErE,YAAXj1C,EAAExC,MAAiC,UAAXwC,EAAExC,MACzBgwB,EAAQpnB,SAEXonB,EAAQpnB,QAAQzN,KAAKs8C,EAAIj1C,EAAEgwF,OAAQ/6C,EAAGssD,QAKpCtsD,EAAGsyD,WAAW1vG,QACjBo9C,EAAG6zD,iBAAiB7zD,EAAGsyD,WAAYjqB,EAAa76B,MAAM,GAInDxN,EAAGssD,OAAO1pG,QAAUylF,EAAa76B,MACpCxN,EAAG6zD,iBAAiB7zD,EAAGssD,OAAQjkB,EAAa76B,MAAM,GAGnDqxC,GAAWle,GAAU1J,YAAYj3B,EAAGssD,OAAQtsD,EAAGsyD,YAG/CtyD,EAAGsyD,WAAatyD,EAAGssD,OAEZzN,KASTyR,GAAME,UAAY,GAElB,IAAIuD,GAAkBzD,GAWtBA,GAAM0D,WAAa1D,GASnBA,GAAM2D,MAAQ,GASdtzB,GAAU9mD,YAAcs1E,GASxBxuB,GAAUuzB,WAAajF,GAEvB,IAAIkF,GAAe,WAoYlB,SAASC,EAAcC,EAAY75E,EAAM85E,GACxC,IAAIC,EAYJ,MAX0B,kBAAfF,GACVE,EAAgBplC,SAASklC,EAAY,KAEJ,IAA7BA,EAAW99E,QAAQ,OAEtBg+E,EAAgBA,EAAgB,IAAM/5E,EAAK4U,WAAWklE,KAGvDC,EAAgBF,EAGVE,EAOR,SAASC,EAAmB7xG,GAC3B,YAAiBN,IAAVM,GAAiC,OAAVA,GAA4B,SAAVA,EAUjD,SAAS8xG,EAAuBC,EAASC,EAAUC,GAClD,IAAIt7D,EAAOnV,SAAS8e,YAChB7T,EAAauxC,GAAUk0B,eAAeH,GACtCI,EAAkBx7D,EAAKy7D,iBAAiBL,GAASC,GACjDK,EAAuB17D,EAAKy7D,iBAAiB3lE,GAAYulE,GACzDM,EAAWT,EAAmBM,GAC9BI,EAAgBV,EAAmBQ,GACnCG,EAAWx+B,OAAO8kB,kBAEtB,OAAIwZ,GAAYC,EACRl6F,KAAKsG,IACX2zF,EAAWb,EAAcU,EAAiBJ,EAASE,GAAsBO,EACzED,EAAgBd,EAAcY,EAAsB5lE,EAAYwlE,GAAsBO,GAGjF,OA9aRx0B,GAAU6b,MAAQ,SAAS4Y,EAAYC,GACtC,GAAI10B,GAAUj/E,QAAQ0zG,IAAezzG,MAAM6B,UAAUgM,OACpD,OAAO4lG,EAAW5lG,OAAO6lG,GAE1B,IAAIC,EAAW,GAQf,OANA30B,GAAU5J,KAAKq+B,GAAY,SAASx8B,GAC/By8B,EAAez8B,IAClB08B,EAAS5yG,KAAKk2E,MAIT08B,GAER30B,GAAU8C,UAAY9hF,MAAM6B,UAAUigF,UACrC,SAASn+E,EAAO8lD,EAAUotB,GACzB,OAAOlzE,EAAMm+E,UAAUr4B,EAAUotB,IAElC,SAASlzE,EAAO8lD,EAAUotB,GACzBA,OAAkBn2E,IAAVm2E,EAAsBlzE,EAAQkzE,EACtC,IAAK,IAAI12E,EAAI,EAAGs1E,EAAO9xE,EAAM1C,OAAQd,EAAIs1E,IAAQt1E,EAChD,GAAIspD,EAAS1nD,KAAK80E,EAAOlzE,EAAMxD,GAAIA,EAAGwD,GACrC,OAAOxD,EAGT,OAAQ,GAEV6+E,GAAU40B,cAAgB,SAASC,EAAeH,EAAgBI,GAE7D90B,GAAUnK,cAAci/B,KAC3BA,GAAc,GAEf,IAAK,IAAI3zG,EAAI2zG,EAAa,EAAG3zG,EAAI0zG,EAAc5yG,OAAQd,IAAK,CAC3D,IAAI4zG,EAAcF,EAAc1zG,GAChC,GAAIuzG,EAAeK,GAClB,OAAOA,IAIV/0B,GAAUg1B,kBAAoB,SAASH,EAAeH,EAAgBI,GAEjE90B,GAAUnK,cAAci/B,KAC3BA,EAAaD,EAAc5yG,QAE5B,IAAK,IAAId,EAAI2zG,EAAa,EAAG3zG,GAAK,EAAGA,IAAK,CACzC,IAAI4zG,EAAcF,EAAc1zG,GAChC,GAAIuzG,EAAeK,GAClB,OAAOA,IAMV/0B,GAAU6B,SAAW,SAASj/E,GAC7B,OAAQqV,MAAM/C,WAAWtS,KAAOmzE,SAASnzE,IAE1Co9E,GAAUi1B,aAAe,SAAS76F,EAAG4lB,EAAGw8C,GACvC,OAAOniE,KAAK4B,IAAI7B,EAAI4lB,GAAKw8C,GAE1BwD,GAAUk1B,YAAc,SAAS96F,EAAGoiE,GACnC,IAAI24B,EAAU96F,KAAKuH,MAAMxH,GACzB,OAAS+6F,EAAU34B,GAAYpiE,GAAQ+6F,EAAU34B,GAAYpiE,GAE9D4lE,GAAUhkE,IAAM,SAASrX,GACxB,OAAOA,EAAM2I,QAAO,SAAS0O,EAAKha,GACjC,OAAKiW,MAAMjW,GAGJga,EAFC3B,KAAK2B,IAAIA,EAAKha,KAGpBg0E,OAAOo/B,oBAEXp1B,GAAUr/D,IAAM,SAAShc,GACxB,OAAOA,EAAM2I,QAAO,SAASqT,EAAK3e,GACjC,OAAKiW,MAAMjW,GAGJ2e,EAFCtG,KAAKsG,IAAIA,EAAK3e,KAGpBg0E,OAAO8kB,oBAEX9a,GAAUq1B,KAAOh7F,KAAKg7F,KACrB,SAASj7F,GACR,OAAOC,KAAKg7F,KAAKj7F,IAElB,SAASA,GAER,OAAU,KADVA,GAAKA,IACUnC,MAAMmC,GACbA,EAEDA,EAAI,EAAI,GAAK,GAEtB4lE,GAAUs1B,UAAY,SAAS9gC,GAC9B,OAAOA,GAAWn6D,KAAK2zD,GAAK,MAE7BgS,GAAUu1B,UAAY,SAASC,GAC9B,OAAOA,GAAW,IAAMn7F,KAAK2zD,KAU9BgS,GAAUy1B,eAAiB,SAASr7F,GACnC,GAAK4lE,GAAUjK,SAAS37D,GAAxB,CAKA,IAFA,IAAIhQ,EAAI,EACJkE,EAAI,EACD+L,KAAKuH,MAAMxH,EAAIhQ,GAAKA,IAAMgQ,GAChChQ,GAAK,GACLkE,IAED,OAAOA,IAIR0xE,GAAU4J,kBAAoB,SAAS8rB,EAAaC,GACnD,IAAIC,EAAsBD,EAAWv7F,EAAIs7F,EAAYt7F,EACjDy7F,EAAsBF,EAAW31E,EAAI01E,EAAY11E,EACjD81E,EAA2Bz7F,KAAKG,KAAKo7F,EAAsBA,EAAsBC,EAAsBA,GAEvGhsB,EAAQxvE,KAAK0zD,MAAM8nC,EAAqBD,GAM5C,OAJI/rB,GAAU,GAAMxvE,KAAK2zD,KACxB6b,GAAS,EAAMxvE,KAAK2zD,IAGd,CACN6b,MAAOA,EACP3c,SAAU4oC,IAGZ91B,GAAU4nB,sBAAwB,SAASzM,EAAKC,GAC/C,OAAO/gF,KAAKG,KAAKH,KAAKC,IAAI8gF,EAAIhhF,EAAI+gF,EAAI/gF,EAAG,GAAKC,KAAKC,IAAI8gF,EAAIp7D,EAAIm7D,EAAIn7D,EAAG,KASvEggD,GAAU+1B,WAAa,SAASC,GAC/B,OAAQA,EAAa,IAAM,EAAK,EAAI,IAWrCh2B,GAAUi2B,YAAc,SAASp7B,EAAOq7B,EAAOl+E,GAC9C,IAAI+3E,EAAmBl1B,EAAMs7B,wBACzBC,EAAYp+E,EAAQ,EACxB,OAAO3d,KAAKuH,OAAOs0F,EAAQE,GAAarG,GAAoBA,EAAmBqG,GAGhFp2B,GAAUkY,YAAc,SAASme,EAAYC,EAAaC,EAAYh5E,GAMrE,IAAIu6C,EAAWu+B,EAAW5qB,KAAO6qB,EAAcD,EAC3CljG,EAAUmjG,EACVz0G,EAAO00G,EAAW9qB,KAAO6qB,EAAcC,EAEvCC,EAAMn8F,KAAKG,KAAKH,KAAKC,IAAInH,EAAQiH,EAAI09D,EAAS19D,EAAG,GAAKC,KAAKC,IAAInH,EAAQ6sB,EAAI83C,EAAS93C,EAAG,IACvFy2E,EAAMp8F,KAAKG,KAAKH,KAAKC,IAAIzY,EAAKuY,EAAIjH,EAAQiH,EAAG,GAAKC,KAAKC,IAAIzY,EAAKm+B,EAAI7sB,EAAQ6sB,EAAG,IAE/E02E,EAAMF,GAAOA,EAAMC,GACnBE,EAAMF,GAAOD,EAAMC,GAMnBlzE,EAAKhG,GAHTm5E,EAAMz+F,MAAMy+F,GAAO,EAAIA,GAInBhuE,EAAKnL,GAHTo5E,EAAM1+F,MAAM0+F,GAAO,EAAIA,GAKvB,MAAO,CACN7+B,SAAU,CACT19D,EAAGjH,EAAQiH,EAAImpB,GAAM1hC,EAAKuY,EAAI09D,EAAS19D,GACvC4lB,EAAG7sB,EAAQ6sB,EAAIuD,GAAM1hC,EAAKm+B,EAAI83C,EAAS93C,IAExCn+B,KAAM,CACLuY,EAAGjH,EAAQiH,EAAIsuB,GAAM7mC,EAAKuY,EAAI09D,EAAS19D,GACvC4lB,EAAG7sB,EAAQ6sB,EAAI0I,GAAM7mC,EAAKm+B,EAAI83C,EAAS93C,MAI1CggD,GAAU42B,QAAU5gC,OAAO4gC,SAAW,MACtC52B,GAAUiY,oBAAsB,SAAS9M,GAMxC,IAUIhqF,EAAG01G,EAAaC,EAAcC,EA4B9BC,EAAQC,EAAOC,EAAMC,EA0BrB95D,EAhEA+5D,GAAsBjsB,GAAU,IAAIpmF,KAAI,SAASw0B,GACpD,MAAO,CACNgzC,MAAOhzC,EAAMkoD,OACb41B,OAAQ,EACRC,GAAI,MAKFC,EAAYH,EAAmBn1G,OAEnC,IAAKd,EAAI,EAAGA,EAAIo2G,IAAap2G,EAE5B,KADA21G,EAAeM,EAAmBj2G,IACjBorE,MAAMkf,KAAvB,CAMA,GAFAorB,EAAc11G,EAAI,EAAIi2G,EAAmBj2G,EAAI,GAAK,MAClD41G,EAAa51G,EAAIo2G,EAAY,EAAIH,EAAmBj2G,EAAI,GAAK,QAC1C41G,EAAWxqC,MAAMkf,KAAM,CACzC,IAAI+rB,EAAeT,EAAWxqC,MAAMnyD,EAAI08F,EAAavqC,MAAMnyD,EAG3D08F,EAAaO,OAAyB,IAAhBG,GAAqBT,EAAWxqC,MAAMvsC,EAAI82E,EAAavqC,MAAMvsC,GAAKw3E,EAAc,GAGlGX,GAAeA,EAAYtqC,MAAMkf,KACrCqrB,EAAaQ,GAAKR,EAAaO,QACpBN,GAAcA,EAAWxqC,MAAMkf,KAC1CqrB,EAAaQ,GAAKT,EAAYQ,OACpBjzG,KAAKixG,KAAKwB,EAAYQ,UAAYjzG,KAAKixG,KAAKyB,EAAaO,QACnEP,EAAaQ,GAAK,EAElBR,EAAaQ,IAAMT,EAAYQ,OAASP,EAAaO,QAAU,EAMjE,IAAKl2G,EAAI,EAAGA,EAAIo2G,EAAY,IAAKp2G,EAChC21G,EAAeM,EAAmBj2G,GAClC41G,EAAaK,EAAmBj2G,EAAI,GAChC21G,EAAavqC,MAAMkf,MAAQsrB,EAAWxqC,MAAMkf,OAI5CzL,GAAUi1B,aAAa6B,EAAaO,OAAQ,EAAGjzG,KAAKwyG,SACvDE,EAAaQ,GAAKP,EAAWO,GAAK,GAInCN,EAASF,EAAaQ,GAAKR,EAAaO,OACxCJ,EAAQF,EAAWO,GAAKR,EAAaO,QACrCF,EAAmB98F,KAAKC,IAAI08F,EAAQ,GAAK38F,KAAKC,IAAI28F,EAAO,KACjC,IAIxBC,EAAO,EAAI78F,KAAKG,KAAK28F,GACrBL,EAAaQ,GAAKN,EAASE,EAAOJ,EAAaO,OAC/CN,EAAWO,GAAKL,EAAQC,EAAOJ,EAAaO,UAK7C,IAAKl2G,EAAI,EAAGA,EAAIo2G,IAAap2G,GAC5B21G,EAAeM,EAAmBj2G,IACjBorE,MAAMkf,OAIvBorB,EAAc11G,EAAI,EAAIi2G,EAAmBj2G,EAAI,GAAK,KAClD41G,EAAa51G,EAAIo2G,EAAY,EAAIH,EAAmBj2G,EAAI,GAAK,KACzD01G,IAAgBA,EAAYtqC,MAAMkf,OACrCpuC,GAAUy5D,EAAavqC,MAAMnyD,EAAIy8F,EAAYtqC,MAAMnyD,GAAK,EACxD08F,EAAavqC,MAAM2Q,sBAAwB45B,EAAavqC,MAAMnyD,EAAIijC,EAClEy5D,EAAavqC,MAAM6Q,sBAAwB05B,EAAavqC,MAAMvsC,EAAIqd,EAASy5D,EAAaQ,IAErFP,IAAeA,EAAWxqC,MAAMkf,OACnCpuC,GAAU05D,EAAWxqC,MAAMnyD,EAAI08F,EAAavqC,MAAMnyD,GAAK,EACvD08F,EAAavqC,MAAM4Q,kBAAoB25B,EAAavqC,MAAMnyD,EAAIijC,EAC9Dy5D,EAAavqC,MAAM8Q,kBAAoBy5B,EAAavqC,MAAMvsC,EAAIqd,EAASy5D,EAAaQ,MAIvFt3B,GAAUmY,SAAW,SAASsc,EAAYtwG,EAAOszG,GAChD,OAAIA,EACItzG,GAASswG,EAAWxyG,OAAS,EAAIwyG,EAAW,GAAKA,EAAWtwG,EAAQ,GAErEA,GAASswG,EAAWxyG,OAAS,EAAIwyG,EAAWA,EAAWxyG,OAAS,GAAKwyG,EAAWtwG,EAAQ,IAEhG67E,GAAUwL,aAAe,SAASipB,EAAYtwG,EAAOszG,GACpD,OAAIA,EACItzG,GAAS,EAAIswG,EAAWA,EAAWxyG,OAAS,GAAKwyG,EAAWtwG,EAAQ,GAErEA,GAAS,EAAIswG,EAAW,GAAKA,EAAWtwG,EAAQ,IAGxD67E,GAAU03B,QAAU,SAAS54D,EAAOl9B,GACnC,IAAInL,EAAW4D,KAAK8mD,MAAM6e,GAAUd,MAAMpgC,IACtC64D,EAAW74D,EAAQzkC,KAAKC,IAAI,GAAI7D,GAuBpC,OApBImL,EACC+1F,EAAW,IACC,EACLA,EAAW,EACN,EACLA,EAAW,EACN,EAEA,GAENA,GAAY,EACP,EACLA,GAAY,EACP,EACLA,GAAY,EACP,EAEA,IAGMt9F,KAAKC,IAAI,GAAI7D,IAGpCupE,GAAU+C,iBACa,qBAAXrzE,OACH,SAAS+6C,GACfA,KAGK/6C,OAAOwxD,uBACbxxD,OAAOkoG,6BACPloG,OAAOmoG,0BACPnoG,OAAOooG,wBACPpoG,OAAOqoG,yBACP,SAASttD,GACR,OAAO/6C,OAAOg1C,WAAW+F,EAAU,IAAO,KAI7Cu1B,GAAUma,oBAAsB,SAAS6d,EAAKn9B,GAC7C,IAAIyO,EAAQ4C,EACR9hF,EAAI4tG,EAAIC,eAAiBD,EACzB93B,EAAS83B,EAAIzxG,QAAUyxG,EAAIzpE,WAC3B2pE,EAAeh4B,EAAOi4B,wBAEtBn7D,EAAU5yC,EAAE4yC,QACZA,GAAWA,EAAQ/6C,OAAS,GAC/BqnF,EAAStsC,EAAQ,GAAG/D,QACpBizC,EAASlvC,EAAQ,GAAG9D,UAGpBowC,EAASl/E,EAAE6uC,QACXizC,EAAS9hF,EAAE8uC,SAMZ,IAAIk/D,EAAcljG,WAAW8qE,GAAUmG,SAASjG,EAAQ,iBACpDm4B,EAAanjG,WAAW8qE,GAAUmG,SAASjG,EAAQ,gBACnDo4B,EAAepjG,WAAW8qE,GAAUmG,SAASjG,EAAQ,kBACrDq4B,EAAgBrjG,WAAW8qE,GAAUmG,SAASjG,EAAQ,mBACtDloD,EAAQkgF,EAAah9B,MAAQg9B,EAAav7C,KAAOy7C,EAAcE,EAC/DvgF,EAASmgF,EAAa/8B,OAAS+8B,EAAar7C,IAAMw7C,EAAaE,EAOnE,MAAO,CACNn+F,EAJDkvE,EAASjvE,KAAKuH,OAAO0nE,EAAS4uB,EAAav7C,KAAOy7C,GAAgBpgF,EAASkoD,EAAOloD,MAAQ6iD,EAAMs7B,yBAK/Fn2E,EAJDksD,EAAS7xE,KAAKuH,OAAOsqE,EAASgsB,EAAar7C,IAAMw7C,GAAetgF,EAAUmoD,EAAOnoD,OAAS8iD,EAAMs7B,2BA2DjGn2B,GAAUw4B,mBAAqB,SAASzE,GACvC,OAAOD,EAAuBC,EAAS,YAAa,gBAGrD/zB,GAAUy4B,oBAAsB,SAAS1E,GACxC,OAAOD,EAAuBC,EAAS,aAAc,iBAKtD/zB,GAAU04B,kBAAoB,SAASjW,EAAWlW,EAASosB,GAG1D,OAFApsB,EAAUvM,GAAUmG,SAASsc,EAAWlW,IAEzB32D,QAAQ,MAAQ,EAAI+iF,EAAkBnqC,SAAS+d,EAAS,IAAM,IAAM/d,SAAS+d,EAAS,KAKtGvM,GAAUk0B,eAAiB,SAASH,GACnC,IAAIhlC,EAASglC,EAAQtlE,WAIrB,OAHIsgC,GAAgC,wBAAtBA,EAAOjsE,aACpBisE,EAASA,EAAOu0B,MAEVv0B,GAERiR,GAAUowB,gBAAkB,SAAS2D,GACpC,IAAItR,EAAYziB,GAAUk0B,eAAeH,GACzC,IAAKtR,EACJ,OAAOsR,EAAQpR,YAGhB,IAAIA,EAAcF,EAAUE,YAIxBhlE,EAAIglE,EAHU3iB,GAAU04B,kBAAkBjW,EAAW,eAAgBE,GACtD3iB,GAAU04B,kBAAkBjW,EAAW,gBAAiBE,GAGvEiW,EAAK54B,GAAUw4B,mBAAmBzE,GACtC,OAAO97F,MAAM2gG,GAAMj7E,EAAItjB,KAAKsG,IAAIgd,EAAGi7E,IAEpC54B,GAAUqwB,iBAAmB,SAAS0D,GACrC,IAAItR,EAAYziB,GAAUk0B,eAAeH,GACzC,IAAKtR,EACJ,OAAOsR,EAAQ8E,aAGhB,IAAIA,EAAepW,EAAUoW,aAIzBx5E,EAAIw5E,EAHS74B,GAAU04B,kBAAkBjW,EAAW,cAAeoW,GACnD74B,GAAU04B,kBAAkBjW,EAAW,iBAAkBoW,GAGzErrD,EAAKwyB,GAAUy4B,oBAAoB1E,GACvC,OAAO97F,MAAMu1C,GAAMnuB,EAAIhlB,KAAKsG,IAAI0e,EAAGmuB,IAEpCwyB,GAAUmG,SAAW,SAASmb,EAAInzF,GACjC,OAAOmzF,EAAGwX,aACTxX,EAAGwX,aAAa3qG,GAChBq1B,SAAS8e,YAAY8xD,iBAAiB9S,EAAI,MAAM9gB,iBAAiBryE,IAEnE6xE,GAAU8vB,YAAc,SAASj1B,EAAOk+B,GACvC,IAAIC,EAAan+B,EAAMs7B,wBAA0B4C,GAAiC,qBAAXrpG,QAA0BA,OAAOqgG,kBAAqB,EAC7H,GAAmB,IAAfiJ,EAAJ,CAIA,IAAI94B,EAASrF,EAAMqF,OACfnoD,EAAS8iD,EAAM9iD,OACfC,EAAQ6iD,EAAM7iD,MAElBkoD,EAAOnoD,OAASA,EAASihF,EACzB94B,EAAOloD,MAAQA,EAAQghF,EACvBn+B,EAAMC,IAAI7J,MAAM+nC,EAAYA,GAKvB94B,EAAOjzC,MAAMlV,QAAWmoD,EAAOjzC,MAAMjV,QACzCkoD,EAAOjzC,MAAMlV,OAASA,EAAS,KAC/BmoD,EAAOjzC,MAAMjV,MAAQA,EAAQ,QAI/BgoD,GAAUsqB,WAAa,SAAS2O,EAAWr6B,EAAWD,GACrD,OAAOC,EAAY,IAAMq6B,EAAY,MAAQt6B,GAE9CqB,GAAUk5B,YAAc,SAASp+B,EAAKoD,EAAMi7B,EAAe3U,GAE1D,IAAIx/F,GADJw/F,EAAQA,GAAS,IACAx/F,KAAOw/F,EAAMx/F,MAAQ,GAClCssC,EAAKkzD,EAAM4U,eAAiB5U,EAAM4U,gBAAkB,GAEpD5U,EAAMtmB,OAASA,IAClBl5E,EAAOw/F,EAAMx/F,KAAO,GACpBssC,EAAKkzD,EAAM4U,eAAiB,GAC5B5U,EAAMtmB,KAAOA,GAGdpD,EAAIoD,KAAOA,EACX,IAEI/8E,EAAGyyF,EAAG4G,EAAM6e,EAAOC,EAFnBC,EAAU,EACV9iC,EAAO0iC,EAAcl3G,OAEzB,IAAKd,EAAI,EAAGA,EAAIs1E,EAAMt1E,IAIrB,QAAcO,KAHd23G,EAAQF,EAAch4G,KAGe,OAAVk4G,IAA+C,IAA7Br5B,GAAUj/E,QAAQs4G,GAC9DE,EAAUv5B,GAAUqqB,YAAYvvB,EAAK91E,EAAMssC,EAAIioE,EAASF,QAClD,GAAIr5B,GAAUj/E,QAAQs4G,GAG5B,IAAKzlB,EAAI,EAAG4G,EAAO6e,EAAMp3G,OAAQ2xF,EAAI4G,EAAM5G,SAGtBlyF,KAFpB43G,EAAcD,EAAMzlB,KAE6B,OAAhB0lB,GAAyBt5B,GAAUj/E,QAAQu4G,KAC3EC,EAAUv5B,GAAUqqB,YAAYvvB,EAAK91E,EAAMssC,EAAIioE,EAASD,IAM5D,IAAIE,EAAQloE,EAAGrvC,OAAS,EACxB,GAAIu3G,EAAQL,EAAcl3G,OAAQ,CACjC,IAAKd,EAAI,EAAGA,EAAIq4G,EAAOr4G,WACf6D,EAAKssC,EAAGnwC,IAEhBmwC,EAAG/iC,OAAO,EAAGirG,GAEd,OAAOD,GAERv5B,GAAUqqB,YAAc,SAASvvB,EAAK91E,EAAMssC,EAAIioE,EAASnpG,GACxD,IAAIqpG,EAAYz0G,EAAKoL,GAQrB,OAPKqpG,IACJA,EAAYz0G,EAAKoL,GAAU0qE,EAAIuvB,YAAYj6F,GAAQ4nB,MACnDsZ,EAAGvvC,KAAKqO,IAELqpG,EAAYF,IACfA,EAAUE,GAEJF,GAMRv5B,GAAU05B,mBAAqB,SAASP,GACvC,IAAIQ,EAAgB,EAQpB,OAPA35B,GAAU5J,KAAK+iC,GAAe,SAASE,GAClCr5B,GAAUj/E,QAAQs4G,IACjBA,EAAMp3G,OAAS03G,IAClBA,EAAgBN,EAAMp3G,WAIlB03G,GAGR35B,GAAUxhC,MAASk3B,EAKlB,SAAS1zE,GAMR,OAJIA,aAAiB43G,iBACpB53G,EAAQg8E,EAAc/zE,OAAOwzE,cAGvB/H,EAAa1zE,IAVrB,SAASA,GAER,OADA2lB,QAAQ1e,MAAM,uBACPjH,GAWTg+E,GAAUmH,cAAgB,SAAS0yB,GAElC,OAAQA,aAAsBC,eAAiBD,aAAsBD,eACpEC,EACA75B,GAAUxhC,MAAMq7D,GAAY7lC,SAAS,IAAKD,OAAO,IAAKzD,cAIzD,SAASypC,KACR,MAAM,IAAIr/E,MACT,6GAsBF,SAASs/E,GAAYpiF,GACpBxzB,KAAKwzB,QAAUA,GAAW,GAG3BooD,GAAU3jB,OAAO29C,GAAYn3G,UAAqC,CAMjEo3G,QAASF,GASTG,MAAOH,GASPhlG,OAAQglG,GAURjmG,IAAKimG,GAULltC,KAAMktC,GAUNI,QAASJ,GAQTK,MAAOL,GAWPM,QAAS,SAASr4G,GACjB,OAAOA,KAITg4G,GAAYM,SAAW,SAASC,GAC/Bv6B,GAAU3jB,OAAO29C,GAAYn3G,UAAW03G,IAGzC,IAEIC,GAAgB,CACnBC,MAHWT,IAURU,GAAa,CAKhBC,WAAY,CAOXllG,OAAQ,SAASzT,GAChB,OAAOg+E,GAAUj/E,QAAQiB,GAASA,EAAQ,GAAKA,GAWhDq2E,OAAQ,SAASuiC,EAAWz2G,EAAOsyF,GAElC,IAAIhqB,EAAQgqB,EAAMx0F,OAAS,EAAIw0F,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAGlEp8E,KAAK4B,IAAIwwD,GAAS,GACjBmuC,IAAcvgG,KAAK8mD,MAAMy5C,KAE5BnuC,EAAQmuC,EAAYvgG,KAAK8mD,MAAMy5C,IAIjC,IAAIC,EAAW76B,GAAUd,MAAM7kE,KAAK4B,IAAIwwD,IACpCquC,EAAa,GAEjB,GAAkB,IAAdF,EAEH,GADcvgG,KAAK2B,IAAI3B,KAAK4B,IAAIw6E,EAAM,IAAKp8E,KAAK4B,IAAIw6E,EAAMA,EAAMx0F,OAAS,KAC3D,KAAM,CACnB,IAAI84G,EAAU/6B,GAAUd,MAAM7kE,KAAK4B,IAAI2+F,IACnCI,EAAiB3gG,KAAK8mD,MAAM45C,GAAW1gG,KAAK8mD,MAAM05C,GACtDG,EAAiB3gG,KAAK2B,IAAI3B,KAAKsG,IAAIq6F,EAAgB,IAAK,GACxDF,EAAaF,EAAUK,cAAcD,OAC/B,CACN,IAAIE,GAAc,EAAI7gG,KAAK8mD,MAAM05C,GACjCK,EAAa7gG,KAAK2B,IAAI3B,KAAKsG,IAAIu6F,EAAY,IAAK,GAChDJ,EAAaF,EAAUthG,QAAQ4hG,QAGhCJ,EAAa,IAGd,OAAOA,GAGRK,YAAa,SAASP,EAAWz2G,EAAOsyF,GACvC,IAAI2kB,EAASR,EAAavgG,KAAKC,IAAI,GAAID,KAAK8mD,MAAM6e,GAAUd,MAAM07B,KAElE,OAAkB,IAAdA,EACI,IACc,IAAXQ,GAA2B,IAAXA,GAA2B,IAAXA,GAA0B,IAAVj3G,GAAeA,IAAUsyF,EAAMx0F,OAAS,EAC3F24G,EAAUK,gBAEX,MAKNl6G,GAAUi/E,GAAUj/E,QACpB80E,GAAgBmK,GAAUnK,cAC1BwlC,GAAmBr7B,GAAU/J,eAC7BC,GAAwB8J,GAAU9J,sBA4DtC,SAASolC,GAAOp6G,EAAKq6G,GAMpB,IALA,IAAIp2G,EAAS,GACTq2G,EAAYt6G,EAAIe,OAASs5G,EACzBp6G,EAAI,EACJuC,EAAMxC,EAAIe,OAEPd,EAAIuC,EAAKvC,GAAKq6G,EACpBr2G,EAAOpD,KAAKb,EAAImZ,KAAK8mD,MAAMhgE,KAE5B,OAAOgE,EAGR,SAASs2G,GAAoBxqC,EAAO9sE,EAAOorF,GAC1C,IAMIruC,EANAj/C,EAASgvE,EAAMyd,WAAWzsF,OAC1By5G,EAAarhG,KAAKsG,IAAIxc,EAAOlC,EAAS,GACtC05G,EAAY1qC,EAAM0d,gBAAgB+sB,GAClCjuF,EAAQwjD,EAAMkgB,YACd7jE,EAAM2jD,EAAMmgB,UACZ5U,EAAU,KAGd,KAAI+S,IAEFruC,EADc,IAAXj/C,EACMoY,KAAK2B,IAAI2/F,EAAYluF,EAAOH,EAAMquF,GACvB,IAAVx3G,GACA8sE,EAAM0d,gBAAgB,GAAKgtB,GAAa,GAExCA,EAAY1qC,EAAM0d,gBAAgB+sB,EAAa,IAAM,GAEhEC,GAAaD,EAAav3G,EAAQ+8C,GAAUA,GAG5BzzB,EAAQ+uD,GAAWm/B,EAAYruF,EAAMkvD,IAItD,OAAOm/B,EAGR,SAASvC,GAAewC,EAAQ35G,GAC/B+9E,GAAU5J,KAAKwlC,GAAQ,SAASpX,GAC/B,IAEIrjG,EAFAmwC,EAAKkzD,EAAMlzD,GACXkoE,EAAQloE,EAAGrvC,OAAS,EAExB,GAAIu3G,EAAQv3G,EAAQ,CACnB,IAAKd,EAAI,EAAGA,EAAIq4G,IAASr4G,SACjBqjG,EAAMx/F,KAAKssC,EAAGnwC,IAEtBmwC,EAAG/iC,OAAO,EAAGirG,OAShB,SAASqC,GAAkB/gC,EAAKghC,EAAWrlB,EAAOmlB,GACjD,IAMIz6G,EAAGyyF,EAAG4G,EAAMvsF,EAAO8tG,EAAUzR,EAAY9F,EAAO14D,EAAY9T,EAAOD,EAAQikF,EAAaC,EAAQ90F,EANhGllB,EAASw0F,EAAMx0F,OACfi6G,EAAS,GACTC,EAAU,GACVC,EAAU,GACVC,EAAkB,EAClBC,EAAmB,EAGvB,IAAKn7G,EAAI,EAAGA,EAAIc,IAAUd,EAAG,CAQ5B,GAPA8M,EAAQwoF,EAAMt1F,GAAG8M,MACjB8tG,EAAWtlB,EAAMt1F,GAAGo7G,MAAQT,EAAUS,MAAQT,EAAUU,MACxD1hC,EAAIoD,KAAOosB,EAAayR,EAAS3rG,OACjCo0F,EAAQoX,EAAOtR,GAAcsR,EAAOtR,IAAe,CAACtlG,KAAM,GAAIssC,GAAI,IAClExF,EAAaiwE,EAASjwE,WACtB9T,EAAQD,EAAS,EAEZ89C,GAAc5nE,IAAWlN,GAAQkN,IAG/B,GAAIlN,GAAQkN,GAElB,IAAK2lF,EAAI,EAAG4G,EAAOvsF,EAAMhM,OAAQ2xF,EAAI4G,IAAQ5G,EAC5CooB,EAAc/tG,EAAM2lF,GAEf/d,GAAcmmC,IAAiBj7G,GAAQi7G,KAC3ChkF,EAAQgoD,GAAUqqB,YAAYvvB,EAAK0pB,EAAMx/F,KAAMw/F,EAAMlzD,GAAItZ,EAAOgkF,GAChEjkF,GAAU+T,QATZ9T,EAAQgoD,GAAUqqB,YAAYvvB,EAAK0pB,EAAMx/F,KAAMw/F,EAAMlzD,GAAItZ,EAAO/pB,GAChE8pB,EAAS+T,EAYVowE,EAAOn6G,KAAKi2B,GACZmkF,EAAQp6G,KAAKg2B,GACbqkF,EAAQr6G,KAAK+pC,EAAa,GAC1BuwE,EAAkBhiG,KAAK2B,IAAIgc,EAAOqkF,GAClCC,EAAmBjiG,KAAK2B,IAAI+b,EAAQukF,GAOrC,SAASG,EAAQtY,GAChB,MAAO,CACNnsE,MAAOkkF,EAAO/X,IAAQ,EACtBpsE,OAAQokF,EAAQhY,IAAQ,EACxBjjD,OAAQk7D,EAAQjY,IAAQ,GAI1B,OAbAiV,GAAewC,EAAQ35G,GAEvBg6G,EAASC,EAAOtmF,QAAQymF,GACxBl1F,EAAUg1F,EAAQvmF,QAAQ0mF,GAUnB,CACNI,MAAOD,EAAQ,GACflhG,KAAMkhG,EAAQx6G,EAAS,GACvBg6G,OAAQQ,EAAQR,GAChB90F,QAASs1F,EAAQt1F,IAInB,SAASw1F,GAAkB/kF,GAC1B,OAAOA,EAAQglF,UAAYhlF,EAAQilF,eAAiB,EAGrD,SAASC,GAAoBllF,GAC5B,IAAIsmD,EAAMqO,EAEV,OAAK30D,EAAQ+C,SAIbujD,EAAO8B,GAAUpoD,QAAQ4mD,WAAW5mD,GACpC20D,EAAUvM,GAAUpoD,QAAQ2mD,UAAU3mD,EAAQ20D,SAEvCrO,EAAKpyC,WAAaygD,EAAQx0D,QANzB,EAST,SAASglF,GAAiBnlF,EAASolF,GAClC,OAAOh9B,GAAU3jB,OAAO2jB,GAAUpoD,QAAQ4mD,WAAW,CACpDG,WAAY08B,GAAiB2B,EAAWr+B,WAAY/mD,EAAQ+mD,YAC5DD,SAAU28B,GAAiB2B,EAAWt+B,SAAU9mD,EAAQ8mD,UACxDE,UAAWy8B,GAAiB2B,EAAWp+B,UAAWhnD,EAAQgnD,WAC1D9yC,WAAYuvE,GAAiB2B,EAAWlxE,WAAYlU,EAAQkU,cACzD,CACH0S,MAAOwhC,GAAUpoD,QAAQjvB,QAAQ,CAACq0G,EAAWC,UAAWrlF,EAAQqlF,UAAWj/B,EAAc/zE,OAAOyzE,qBAIlG,SAASw/B,GAAqBtlF,GAC7B,IAAI4kF,EAAQO,GAAiBnlF,EAASA,EAAQ4kF,OAG9C,MAAO,CAACA,MAAOA,EAAOD,MAFV3kF,EAAQ2kF,MAAMhX,QAAUwX,GAAiBnlF,EAASA,EAAQ2kF,OAASC,GAKhF,SAASW,GAAWC,GACnB,IACInlC,EAAM9zE,EAAOT,EADbixG,EAAW,GAEf,IAAKxwG,EAAQ,EAAGT,EAAM05G,EAAcn7G,OAAQkC,EAAQT,IAAOS,EAE/B,qBAD3B8zE,EAAOmlC,EAAcj5G,IACLmhF,QACfqvB,EAAS5yG,KAAKk2E,GAGhB,OAAO08B,EAGR,SAAS0I,GAAen8G,GACvB,IACIC,EAAG0rE,EADHnpE,EAAMxC,EAAIe,OAGd,GAAIyB,EAAM,EACT,OAAO,EAGR,IAAKmpE,EAAO3rE,EAAI,GAAIC,EAAI,EAAGA,EAAIuC,IAAOvC,EACrC,GAAID,EAAIC,GAAKD,EAAIC,EAAI,KAAO0rE,EAC3B,OAAO,EAGT,OAAOA,EAGR,SAASywC,GAAiBC,EAAc9mB,EAAO+mB,EAAYC,GAC1D,IAEIC,EAASC,EAAQx8G,EAAGs1E,EAFpBmnC,EAAmBP,GAAeE,GAClCM,GAAWpnB,EAAMx0F,OAAS,GAAKw7G,EAKnC,IAAKG,EACJ,OAAOvjG,KAAK2B,IAAI6hG,EAAS,GAI1B,IAAK18G,EAAI,EAAGs1E,GADZinC,EAAU19B,GAAUG,KAAKnB,WAAW4+B,IACT37G,OAAS,EAAGd,EAAIs1E,EAAMt1E,IAEhD,IADAw8G,EAASD,EAAQv8G,IACJ08G,EACZ,OAAOF,EAGT,OAAOtjG,KAAK2B,IAAI6hG,EAAS,GAG1B,SAASC,GAAgBrnB,GACxB,IACIt1F,EAAGs1E,EADHtxE,EAAS,GAEb,IAAKhE,EAAI,EAAGs1E,EAAOggB,EAAMx0F,OAAQd,EAAIs1E,EAAMt1E,IACtCs1F,EAAMt1F,GAAGo7G,OACZp3G,EAAOpD,KAAKZ,GAGd,OAAOgE,EAGR,SAAS44G,GAAWtnB,EAAO8mB,EAAcM,GACxC,IAEI18G,EAAGgV,EAFH2qB,EAAQ,EACRj/B,EAAO07G,EAAa,GAIxB,IADAM,EAAUxjG,KAAKq+C,KAAKmlD,GACf18G,EAAI,EAAGA,EAAIs1F,EAAMx0F,OAAQd,IAC7BgV,EAAOsgF,EAAMt1F,GACTA,IAAMU,GACTsU,EAAKmvE,OAASnkF,EAEdU,EAAO07G,IADPz8E,EAC4B+8E,WAErB1nG,EAAKlI,MAKf,SAASw9E,GAAKgL,EAAOonB,EAASG,EAAYC,GACzC,IAGIh8G,EAAQd,EAAGgV,EAAMtU,EAHjB4rB,EAAQ4tF,GAAiB2C,EAAY,GACrC1wF,EAAMjT,KAAKsG,IAAI06F,GAAiB4C,EAAUxnB,EAAMx0F,QAASw0F,EAAMx0F,QAC/D6+B,EAAQ,EAWZ,IARA+8E,EAAUxjG,KAAKq+C,KAAKmlD,GAChBI,IAEHJ,GADA57G,EAASg8G,EAAWD,GACD3jG,KAAK8mD,MAAMl/D,EAAS47G,IAGxCh8G,EAAO4rB,EAEA5rB,EAAO,GACbi/B,IACAj/B,EAAOwY,KAAKuH,MAAM6L,EAAQqT,EAAQ+8E,GAGnC,IAAK18G,EAAIkZ,KAAK2B,IAAIyR,EAAO,GAAItsB,EAAImsB,EAAKnsB,IACrCgV,EAAOsgF,EAAMt1F,GACTA,IAAMU,GACTsU,EAAKmvE,OAASnkF,EACd2/B,IACAj/B,EAAOwY,KAAKuH,MAAM6L,EAAQqT,EAAQ+8E,WAE3B1nG,EAAKlI,MAxTf+vE,EAAcR,KAAK,QAAS,CAC3B7iD,SAAS,EACTC,SAAU,OACVsmB,QAAQ,EAGRouC,UAAW,CACV30D,SAAS,EACT6jB,MAAO,kBACP0qC,UAAW,EACXF,YAAY,EACZk1B,iBAAiB,EACjBtB,WAAW,EACXC,eAAgB,GAChBsB,cAAe,EACfC,cAAe,mBACfC,mBAAoB,GACpBC,yBAA0B,EAC1B/uB,iBAAiB,EACjB3E,WAAY,GACZC,iBAAkB,GAInB0zB,WAAY,CAEX5jF,SAAS,EAGT6jF,YAAa,GAGbjyB,QAAS,CACR1vB,IAAK,EACLse,OAAQ,IAKVsb,MAAO,CACN+B,aAAa,EACbimB,YAAa,EACbC,YAAa,GACbC,QAAQ,EACRpyB,QAAS,EACT72E,SAAS,EACTilB,SAAS,EACTikF,UAAU,EACVC,gBAAiB,EACjBC,YAAa,EAEbr0D,SAAUiwD,GAAWC,WAAWllG,OAChC+mG,MAAO,GACPD,MAAO,MAwQT,IAAIwC,GAAQj9B,GAAazlB,OAAO,CAE/B2iD,cAAe,EAQf5hB,WAAY,WACX,IAAI/9C,EAAKj7C,KACT,MAAO,CACNu4D,KAAMtd,EAAG+4D,aAAe,EACxBv7C,IAAKxd,EAAGg5D,YAAc,EACtBn9B,MAAO77B,EAAGi5D,cAAgB,EAC1Bn9B,OAAQ97B,EAAGk5D,eAAiB,IAQ9B7pB,SAAU,WACT,OAAOtqF,KAAK66G,QAMbC,WAAY,WACX,IAAIl6G,EAAOZ,KAAKy2E,MAAM71E,KACtB,OAAOZ,KAAKwzB,QAAQ4zC,SAAWpnE,KAAKisF,eAAiBrrF,EAAKm6G,QAAUn6G,EAAKo6G,UAAYp6G,EAAKwmE,QAAU,IAarG0lC,kBAAmB,aAInBmO,aAAc,WACbr/B,GAAUv1B,SAASrmD,KAAKwzB,QAAQynF,aAAc,CAACj7G,QAWhDu1B,OAAQ,SAASm6D,EAAUC,EAAWurB,GACrC,IAGIn+G,EAAGs1E,EAAMjL,EAAQirB,EAAO8oB,EAHxBlgE,EAAKj7C,KACLoyF,EAAWn3C,EAAGznB,QAAQ6+D,MACtB+oB,EAAahpB,EAASgpB,WAoD1B,GAhDAngE,EAAGggE,eAGHhgE,EAAGy0C,SAAWA,EACdz0C,EAAG00C,UAAYA,EACf10C,EAAGigE,QAAUt/B,GAAU3jB,OAAO,CAC7BM,KAAM,EACNue,MAAO,EACPre,IAAK,EACLse,OAAQ,GACNmkC,GAEHjgE,EAAG4/D,OAAS,KACZ5/D,EAAGo3C,MAAQ,KACXp3C,EAAGogE,YAAc,KACjBpgE,EAAGqgE,eAAiB,EACpBrgE,EAAGsgE,kBAAoB,EACvBtgE,EAAGugE,iBAAmBvgE,EAAGugE,kBAAoB,GAC7CvgE,EAAGwgE,eAAiB,KACpBxgE,EAAGygE,YAAc,KAGjBzgE,EAAG0gE,sBACH1gE,EAAG2gE,gBACH3gE,EAAG4gE,qBAGH5gE,EAAG6gE,mBACH7gE,EAAG8gE,sBACH9gE,EAAG+gE,kBASH/gE,EAAGghE,mBAIH5pB,EAAQp3C,EAAGihE,cAAgB,MAG3B7pB,EAAQp3C,EAAGkhE,gBAAgB9pB,IAAUA,KAGrBA,EAAMx0F,SAAWo9C,EAAGo3C,MAEnC,IADAA,EAAQ,GACHt1F,EAAI,EAAGs1E,EAAOp3B,EAAGo3C,MAAMx0F,OAAQd,EAAIs1E,IAAQt1E,EAC/Cs1F,EAAM10F,KAAK,CACVC,MAAOq9C,EAAGo3C,MAAMt1F,GAChBo7G,OAAO,IA2CV,OAtCAl9D,EAAG4/D,OAASxoB,EAIZ8oB,EAAkBC,EAAa/oB,EAAMx0F,OACrCupE,EAASnsB,EAAGmhE,sBAAsBjB,EAAkBjE,GAAO7kB,EAAO+oB,GAAc/oB,GAMhFp3C,EAAGwmC,aAGHxmC,EAAGohE,8BACHphE,EAAGqhE,wBACHrhE,EAAGshE,6BAEHthE,EAAGuhE,YACHvhE,EAAGwhE,MACHxhE,EAAGyhE,WAGHzhE,EAAG0hE,aAAevqB,EAAS77D,UAAY67D,EAASooB,UAAgC,SAApBpoB,EAAShwF,QAAqB64C,EAAG2hE,UAAUvqB,GAASA,EAE5G8oB,IAEH/zC,EAASnsB,EAAGmhE,sBAAsBnhE,EAAG0hE,eAGtC1hE,EAAGo3C,MAAQjrB,EAIXnsB,EAAG4hE,cAII5hE,EAAG45C,SAMXpT,WAAY,WACX,IAEIq7B,EAAYC,EAFZ9hE,EAAKj7C,KACLg9G,EAAgB/hE,EAAGznB,QAAQ6+D,MAAM/gF,QAGjC2pC,EAAGgxC,gBACN6wB,EAAa7hE,EAAGsd,KAChBwkD,EAAW9hE,EAAG67B,QAEdgmC,EAAa7hE,EAAGwd,IAChBskD,EAAW9hE,EAAG87B,OAEdimC,GAAiBA,GAElB/hE,EAAG8xC,YAAc+vB,EACjB7hE,EAAG+xC,UAAY+vB,EACf9hE,EAAGgiE,eAAiBD,EACpB/hE,EAAGxsC,QAAUsuG,EAAWD,GAGzBD,YAAa,WACZjhC,GAAUv1B,SAASrmD,KAAKwzB,QAAQqpF,YAAa,CAAC78G,QAK/C27G,oBAAqB,WACpB//B,GAAUv1B,SAASrmD,KAAKwzB,QAAQmoF,oBAAqB,CAAC37G,QAEvD47G,cAAe,WACd,IAAI3gE,EAAKj7C,KAELi7C,EAAGgxC,gBAENhxC,EAAGrnB,MAAQqnB,EAAGy0C,SACdz0C,EAAGsd,KAAO,EACVtd,EAAG67B,MAAQ77B,EAAGrnB,QAEdqnB,EAAGtnB,OAASsnB,EAAG00C,UAGf10C,EAAGwd,IAAM,EACTxd,EAAG87B,OAAS97B,EAAGtnB,QAIhBsnB,EAAG+4D,YAAc,EACjB/4D,EAAGg5D,WAAa,EAChBh5D,EAAGi5D,aAAe,EAClBj5D,EAAGk5D,cAAgB,GAEpB0H,mBAAoB,WACnBjgC,GAAUv1B,SAASrmD,KAAKwzB,QAAQqoF,mBAAoB,CAAC77G,QAItD87G,iBAAkB,WACjBlgC,GAAUv1B,SAASrmD,KAAKwzB,QAAQsoF,iBAAkB,CAAC97G,QAEpD+7G,oBAAqBngC,GAAUxX,KAC/B43C,gBAAiB,WAChBpgC,GAAUv1B,SAASrmD,KAAKwzB,QAAQwoF,gBAAiB,CAACh8G,QAInDi8G,iBAAkB,WACjBrgC,GAAUv1B,SAASrmD,KAAKwzB,QAAQyoF,iBAAkB,CAACj8G,QAEpDk8G,WAAYtgC,GAAUxX,KACtB+3C,gBAAiB,SAAS9pB,GACzB,IAAIp3C,EAAKj7C,KAET,OAAIrD,GAAQ01F,IAAUA,EAAMx0F,OACpB+9E,GAAUv1B,SAASpL,EAAGznB,QAAQ2oF,gBAAiB,CAAClhE,EAAIo3C,KAG5Dp3C,EAAGo3C,MAAQzW,GAAUv1B,SAASpL,EAAGznB,QAAQ2oF,gBAAiB,CAAClhE,EAAIA,EAAGo3C,SAAWp3C,EAAGo3C,MACzEA,IAGR6qB,4BAA6B,WAC5BthC,GAAUv1B,SAASrmD,KAAKwzB,QAAQ0pF,4BAA6B,CAACl9G,QAE/Dm9G,qBAAsB,WACrB,IAAIliE,EAAKj7C,KAELoyF,EAAWn3C,EAAGznB,QAAQ6+D,MAC1Bp3C,EAAGo3C,MAAQp3C,EAAGo3C,MAAM1xF,IAAIyxF,EAASgrB,cAAgBhrB,EAAS/rC,SAAUrmD,OAErEq9G,2BAA4B,WAC3BzhC,GAAUv1B,SAASrmD,KAAKwzB,QAAQ6pF,2BAA4B,CAACr9G,QAK9Dq8G,4BAA6B,WAC5BzgC,GAAUv1B,SAASrmD,KAAKwzB,QAAQ6oF,4BAA6B,CAACr8G,QAE/Ds8G,sBAAuB,WACtB,IAOIgB,EAAYC,EAAeC,EAAgB9tB,EAAU+tB,EAAW9tB,EAAW+tB,EAP3EziE,EAAKj7C,KACLwzB,EAAUynB,EAAGznB,QACb4+D,EAAW5+D,EAAQ6+D,MACnBsrB,EAAW1iE,EAAGqvC,WAAWzsF,OACzBw8G,EAAcjoB,EAASioB,aAAe,EACtCC,EAAcloB,EAASkoB,YACvBsD,EAAgBvD,GAGfp/D,EAAG4iE,eAAiBzrB,EAAS77D,SAAW8jF,GAAeC,GAAeqD,GAAY,IAAM1iE,EAAGgxC,eAC/FhxC,EAAG2iE,cAAgBvD,GAKpBkD,GADAD,EAAariE,EAAG6iE,kBACWjG,OAAOjkF,MAClC4pF,EAAiBF,EAAWv6F,QAAQ4Q,OAAS2pF,EAAWv6F,QAAQ+5B,OAIhE4yC,EAAWz5E,KAAKsG,IAAI0+B,EAAGy0C,SAAUz0C,EAAGw7B,MAAM7iD,MAAQ2pF,GAI9CA,EAAgB,GAHpBE,EAAYjqF,EAAQspB,OAAS7B,EAAGy0C,SAAWiuB,EAAWjuB,GAAYiuB,EAAW,MAI5EF,EAAY/tB,GAAYiuB,GAAYnqF,EAAQspB,OAAS,GAAM,IAC3D6yC,EAAY10C,EAAG00C,UAAY4oB,GAAkB/kF,EAAQ03D,WAClDkH,EAASjK,QAAUuwB,GAAoBllF,EAAQ2mF,YAClDuD,EAAmBznG,KAAKG,KAAKmnG,EAAgBA,EAAgBC,EAAiBA,GAC9EI,EAAgBhiC,GAAUu1B,UAAUl7F,KAAKsG,IACxCtG,KAAKu/D,KAAKv/D,KAAKsG,KAAK+gG,EAAWv6F,QAAQ4Q,OAAS,GAAK8pF,EAAW,IAChExnG,KAAKu/D,KAAKv/D,KAAKsG,IAAIozE,EAAY+tB,EAAkB,IAAMznG,KAAKu/D,KAAKgoC,EAAiBE,KAEnFE,EAAgB3nG,KAAK2B,IAAIyiG,EAAapkG,KAAKsG,IAAI+9F,EAAasD,KAG7D3iE,EAAG2iE,cAAgBA,IAEpBrB,2BAA4B,WAC3B3gC,GAAUv1B,SAASrmD,KAAKwzB,QAAQ+oF,2BAA4B,CAACv8G,QAK9Dw8G,UAAW,WACV5gC,GAAUv1B,SAASrmD,KAAKwzB,QAAQgpF,UAAW,CAACx8G,QAE7Cy8G,IAAK,WACJ,IAAIxhE,EAAKj7C,KAEL60F,EAAU55C,EAAG45C,QAAU,CAC1BjhE,MAAO,EACPD,OAAQ,GAGL8iD,EAAQx7B,EAAGw7B,MACXmZ,EAAO30C,EAAGznB,QACV4+D,EAAWxC,EAAKyC,MAChB0rB,EAAiBnuB,EAAKuqB,WACtB6D,EAAepuB,EAAK1E,UACpB30D,EAAU0kB,EAAG4iE,aACbI,EAA6B,WAAlBruB,EAAKp5D,SAChBy1D,EAAehxC,EAAGgxC,eAiBtB,GAdIA,EACH4I,EAAQjhE,MAAQqnB,EAAGy0C,SACTn5D,IACVs+D,EAAQjhE,MAAQ2kF,GAAkByF,GAAgBtF,GAAoBqF,IAIlE9xB,EAEM11D,IACVs+D,EAAQlhE,OAAS4kF,GAAkByF,GAAgBtF,GAAoBqF,IAFvElpB,EAAQlhE,OAASsnB,EAAG00C,UAMjByC,EAAS77D,SAAWA,EAAS,CAChC,IAAImhF,EAAYoB,GAAqB1mB,GACjCkrB,EAAariE,EAAG6iE,iBAChBI,EAAiBZ,EAAWhF,MAC5B6F,EAAgBb,EAAWnmG,KAC3B8gG,EAAkBqF,EAAWzF,OAC7BK,EAAmBoF,EAAWv6F,QAC9Bq7F,EAAyC,GAA7B1G,EAAUU,MAAM1wE,WAC5B22E,EAAcjsB,EAASjK,QAE3B,GAAI8D,EAAc,CAEjB,IAAIqyB,EAAiC,IAArBrjE,EAAG2iE,cACfW,EAAe3iC,GAAUs1B,UAAUj2D,EAAG2iE,eACtCY,EAAcvoG,KAAK4zD,IAAI00C,GACvBE,EAAcxoG,KAAK6zD,IAAIy0C,GAEvBG,EAAcD,EAAcxG,EAAgBrkF,MAC7C4qF,GAAetG,EAAiBvkF,QAAU2qF,EAAYpG,EAAiBp7D,OAAS,KAC/EwhE,EAAY,EAAIF,GAEpBvpB,EAAQlhE,OAAS1d,KAAKsG,IAAI0+B,EAAG00C,UAAWkF,EAAQlhE,OAAS+qF,EAAcL,GAEvE,IAEIrK,EAAaE,EAFbyK,EAAa1jE,EAAGsvC,gBAAgB,GAAKtvC,EAAGsd,KACxCqmD,EAAc3jE,EAAG67B,MAAQ77B,EAAGsvC,gBAAgBtvC,EAAGqvC,WAAWzsF,OAAS,GAKnEygH,GACHtK,EAAciK,EACbO,EAAcN,EAAetqF,MAAQ6qF,EAAcP,EAAephE,OAClE2hE,GAAeP,EAAevqF,OAASuqF,EAAephE,QACvDo3D,EAAe+J,EACdQ,GAAeN,EAAcxqF,OAASwqF,EAAcrhE,QACpD0hE,EAAcL,EAAcvqF,MAAQ6qF,EAAcN,EAAcrhE,SAEjEk3D,EAAckK,EAAetqF,MAAQ,EACrCsgF,EAAeiK,EAAcvqF,MAAQ,GAKtCqnB,EAAG+4D,YAAc/9F,KAAK2B,KAAKo8F,EAAc2K,GAAc1jE,EAAGrnB,OAASqnB,EAAGrnB,MAAQ+qF,GAAa,GAAK,EAChG1jE,EAAGi5D,aAAej+F,KAAK2B,KAAKs8F,EAAe0K,GAAe3jE,EAAGrnB,OAASqnB,EAAGrnB,MAAQgrF,GAAc,GAAK,MAC9F,CAGN,IAAIC,EAAazsB,EAASmoB,OAAS,EAGlCtC,EAAgBrkF,MAAQyqF,EAAcD,EAEvCvpB,EAAQjhE,MAAQ3d,KAAKsG,IAAI0+B,EAAGy0C,SAAUmF,EAAQjhE,MAAQirF,GAEtD5jE,EAAGg5D,WAAaiK,EAAevqF,OAAS,EACxCsnB,EAAGk5D,cAAgBgK,EAAcxqF,OAAS,GAI5CsnB,EAAG6jE,gBAEC7yB,GACHhxC,EAAGrnB,MAAQqnB,EAAGxsC,QAAUgoE,EAAM7iD,MAAQqnB,EAAGigE,QAAQ3iD,KAAOtd,EAAGigE,QAAQpkC,MACnE77B,EAAGtnB,OAASkhE,EAAQlhE,SAEpBsnB,EAAGrnB,MAAQihE,EAAQjhE,MACnBqnB,EAAGtnB,OAASsnB,EAAGxsC,QAAUgoE,EAAM9iD,OAASsnB,EAAGigE,QAAQziD,IAAMxd,EAAGigE,QAAQnkC,SAQtE+nC,cAAe,WACd,IAAI7jE,EAAKj7C,KACLi7C,EAAGigE,UACNjgE,EAAGigE,QAAQ3iD,KAAOtiD,KAAK2B,IAAIqjC,EAAG+4D,YAAa/4D,EAAGigE,QAAQ3iD,MACtDtd,EAAGigE,QAAQziD,IAAMxiD,KAAK2B,IAAIqjC,EAAGg5D,WAAYh5D,EAAGigE,QAAQziD,KACpDxd,EAAGigE,QAAQpkC,MAAQ7gE,KAAK2B,IAAIqjC,EAAGi5D,aAAcj5D,EAAGigE,QAAQpkC,OACxD77B,EAAGigE,QAAQnkC,OAAS9gE,KAAK2B,IAAIqjC,EAAGk5D,cAAel5D,EAAGigE,QAAQnkC,UAI5D2lC,SAAU,WACT9gC,GAAUv1B,SAASrmD,KAAKwzB,QAAQkpF,SAAU,CAAC18G,QAI5CisF,aAAc,WACb,IAAIyL,EAAM13F,KAAKwzB,QAAQgD,SACvB,MAAe,QAARkhE,GAAyB,WAARA,GAEzBqnB,YAAa,WACZ,OAAO/+G,KAAKwzB,QAAQ2kE,WAIrB5E,cAAe,SAASyrB,GAEvB,GAAIvtC,GAAcutC,GACjB,OAAO5wB,IAGR,IAAyB,kBAAb4wB,GAAyBA,aAAoBptC,UAAYD,SAASqtC,GAC7E,OAAO5wB,IAIR,GAAI4wB,EACH,GAAIh/G,KAAKisF,gBACR,QAAmB3uF,IAAf0hH,EAAShpG,EACZ,OAAOhW,KAAKuzF,cAAcyrB,EAAShpG,QAE9B,QAAmB1Y,IAAf0hH,EAASpjF,EACnB,OAAO57B,KAAKuzF,cAAcyrB,EAASpjF,GAKrC,OAAOojF,GAGR5C,sBAAuB,SAAS/pB,GAC/B,IACIjrB,EAAQrqE,EAAGs1E,EADXp3B,EAAKj7C,KAiBT,IAdAi7C,EAAGo3C,MAAQA,EAAM1xF,KAAI,SAASoR,GAC7B,OAAOA,EAAKnU,SAGbq9C,EAAGiiE,8BAKH91C,EAASnsB,EAAGkiE,qBAAqB9qB,IAAUp3C,EAAGo3C,MAE9Cp3C,EAAGoiE,6BAGEtgH,EAAI,EAAGs1E,EAAOggB,EAAMx0F,OAAQd,EAAIs1E,IAAQt1E,EAC5Cs1F,EAAMt1F,GAAG8M,MAAQu9D,EAAOrqE,GAGzB,OAAOqqE,GAMR02C,eAAgB,WACf,IAAI7iE,EAAKj7C,KACLs9G,EAAariE,EAAGogE,YAOpB,OALKiC,IACJriE,EAAGogE,YAAciC,EAAa7F,GAAkBx8D,EAAGy7B,IAAKoiC,GAAqB79D,EAAGznB,QAAQ6+D,OAAQp3C,EAAGqvC,WAAYrvC,EAAGugE,kBAClHvgE,EAAGsgE,kBAAoB+B,EAAWzF,OAAOjkF,OAGnC0pF,GAMRlwB,YAAa,SAASxvF,GACrB,IAAIyrB,EAAOH,EAAK3M,EAAK3E,EAerB,OAbIjb,GAAQiB,IACXyrB,GAASrpB,KAAKuzF,cAAc31F,EAAM,IAClCsrB,GAAOlpB,KAAKuzF,cAAc31F,EAAM,IAChC2e,EAAMtG,KAAKsG,IAAI8M,EAAOH,GACtBtR,EAAM3B,KAAK2B,IAAIyR,EAAOH,KAGtBG,OAAQ/rB,EACR4rB,EAFAtrB,GAASoC,KAAKuzF,cAAc31F,GAG5B2e,EAAM3e,EACNga,EAAMha,GAGA,CACN2e,IAAKA,EACL3E,IAAKA,EACLyR,MAAOA,EACPH,IAAKA,IAOP+1F,eAAgB,SAASD,GACxB,IAAIpuG,EAAI5Q,KAAKotF,YAAY4xB,GACzB,YAAgB1hH,IAAZsT,EAAEyY,MACE,IAAMzY,EAAEyY,MAAQ,KAAOzY,EAAEsY,IAAM,KAG/BlpB,KAAKuzF,cAAcyrB,IAQ5Bjb,iBAAkBnoB,GAAUxX,KAS5B0oB,iBAAkBlR,GAAUxX,KAO5B86C,iBAAkBtjC,GAAUxX,KAM5BmmB,gBAAiB,SAASxqF,GACzB,IAAIk7C,EAAKj7C,KACL88C,EAAS7B,EAAGznB,QAAQspB,OACpB6gE,EAAW1iE,EAAG4/D,OAAOh9G,OACrB4/G,EAAY,EAAIxnG,KAAK2B,IAAI+lG,GAAY7gE,EAAS,EAAI,GAAI,GAE1D,OAAO/8C,EAAQ,GAAKA,EAAQ49G,EAAW,EACpC,KACA1iE,EAAGkzC,mBAAmBpuF,EAAQ09G,GAAa3gE,EAAS2gE,EAAY,EAAI,KAOxEtvB,mBAAoB,SAASgxB,GAC5B,IAAIlkE,EAAKj7C,KAMT,OAJIi7C,EAAGgiE,iBACNkC,EAAU,EAAIA,GAGRlkE,EAAG8xC,YAAcoyB,EAAUlkE,EAAGxsC,SAGtC2wG,mBAAoB,SAAStN,GAC5B,IAAIqN,GAAWrN,EAAQ9xG,KAAK+sF,aAAe/sF,KAAKyO,QAChD,OAAOzO,KAAKi9G,eAAiB,EAAIkC,EAAUA,GAO5CnzB,aAAc,WACb,OAAOhsF,KAAK8sF,iBAAiB9sF,KAAKq/G,iBAGnCA,aAAc,WACb,IAAIpkE,EAAKj7C,KACLuc,EAAM0+B,EAAG1+B,IACT3E,EAAMqjC,EAAGrjC,IAEb,OAAOqjC,EAAGm5C,YAAc,EACvB73E,EAAM,GAAK3E,EAAM,EAAIA,EACrB2E,EAAM,GAAK3E,EAAM,EAAI2E,EACrB,GAOFqgG,UAAW,SAASvqB,GACnB,IAQIt1F,EAAGs1E,EAAMonC,EAAS6F,EARlBrkE,EAAKj7C,KACLoyF,EAAWn3C,EAAGznB,QAAQ6+D,MACtB+mB,EAAan+D,EAAGxsC,QAChB4qG,EAAajnB,EAASmtB,eAAiBnG,EAAan+D,EAAGukE,YAAc,EACrErG,EAAe/mB,EAAS+lB,MAAMhX,QAAUuY,GAAgBrnB,GAAS,GACjEotB,EAAkBtG,EAAat7G,OAC/By6G,EAAQa,EAAa,GACrBhiG,EAAOgiG,EAAasG,EAAkB,GAI1C,GAAIA,EAAkBpG,EAErB,OADAM,GAAWtnB,EAAO8mB,EAAcsG,EAAkBpG,GAC3CN,GAAW1mB,GAKnB,GAFAonB,EAAUP,GAAiBC,EAAc9mB,EAAO+mB,EAAYC,GAExDoG,EAAkB,EAAG,CACxB,IAAK1iH,EAAI,EAAGs1E,EAAOotC,EAAkB,EAAG1iH,EAAIs1E,EAAMt1E,IACjDsqF,GAAKgL,EAAOonB,EAASN,EAAap8G,GAAIo8G,EAAap8G,EAAI,IAKxD,OAHAuiH,EAAkBG,EAAkB,GAAKtoG,EAAOmhG,IAAUmH,EAAkB,GAAK,KACjFp4B,GAAKgL,EAAOonB,EAAS79B,GAAUnK,cAAc6tC,GAAmB,EAAIhH,EAAQgH,EAAiBhH,GAC7FjxB,GAAKgL,EAAOonB,EAAStiG,EAAMykE,GAAUnK,cAAc6tC,GAAmBjtB,EAAMx0F,OAASsZ,EAAOmoG,GACrFvG,GAAW1mB,GAGnB,OADAhL,GAAKgL,EAAOonB,GACLV,GAAW1mB,IAMnBmtB,UAAW,WACV,IAAIvkE,EAAKj7C,KACL0/G,EAAczkE,EAAGznB,QAAQ6+D,MAGzBstB,EAAM/jC,GAAUs1B,UAAUj2D,EAAG2iE,eAC7B/zC,EAAM5zD,KAAK4B,IAAI5B,KAAK4zD,IAAI81C,IACxB71C,EAAM7zD,KAAK4B,IAAI5B,KAAK6zD,IAAI61C,IAExBrC,EAAariE,EAAG6iE,iBAChB31B,EAAUu3B,EAAYjF,iBAAmB,EACzClhF,EAAI+jF,EAAaA,EAAWzF,OAAOjkF,MAAQu0D,EAAU,EACrDltD,EAAIqiF,EAAaA,EAAWv6F,QAAQ4Q,OAASw0D,EAAU,EAG3D,OAAOltC,EAAGgxC,eACPhxD,EAAI4uC,EAAMtwC,EAAIuwC,EAAMvwC,EAAIswC,EAAM5uC,EAAI6uC,EAClC7uC,EAAI6uC,EAAMvwC,EAAIswC,EAAM5uC,EAAI4uC,EAAMtwC,EAAIuwC,GAMtC+zC,WAAY,WACX,IAGI9gH,EAAGs1E,EAAM1oC,EAHTsR,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACXlgD,EAAU0kB,EAAGznB,QAAQ+C,QAGzB,GAAgB,SAAZA,EACH,QAASA,EAIV,IAAKx5B,EAAI,EAAGs1E,EAAOoE,EAAM71E,KAAKozB,SAASn2B,OAAQd,EAAIs1E,IAAQt1E,EAC1D,GAAI05E,EAAMgZ,iBAAiB1yF,MAC1B4sC,EAAO8sC,EAAM6J,eAAevjF,IACnBmjF,UAAYjlC,EAAGrlB,IAAM+T,EAAKy2C,UAAYnlC,EAAGrlB,IACjD,OAAO,EAKV,OAAO,GAMRgqF,sBAAuB,SAASx3B,GAC/B,IAkBIy3B,EAAa9iH,EAAGgV,EAAMwlG,EAAWuI,EACjCC,EAAKC,EAAKC,EAAKC,EAAK13B,EAAIC,EAAIhf,EAAID,EAAIsb,EAAWq7B,EAAW35B,EAAYC,EAnBtExrC,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACXjjD,EAAUynB,EAAGznB,QACb03D,EAAY13D,EAAQ03D,UACpB10D,EAAWhD,EAAQgD,SACnB20D,EAAkBD,EAAUC,gBAC5Bc,EAAehxC,EAAGgxC,eAClBoG,EAAQp3C,EAAG0hE,aACXyD,EAAc/tB,EAAMx0F,QAAUstF,EAAkB,EAAI,GAEpDk1B,EAAK9H,GAAkBrtB,GACvBgM,EAAQ,GACRopB,EAAYp1B,EAAUtG,WAAa9S,GAAsBoZ,EAAUpG,UAAW,EAAG,GAAK,EACtFy7B,EAAgBD,EAAY,EAC5BE,EAAa5kC,GAAUi2B,YACvB4O,EAAmB,SAAS3O,GAC/B,OAAO0O,EAAW/pC,EAAOq7B,EAAOwO,IA+BjC,IA1BiB,QAAb9pF,GACHqpF,EAAcY,EAAiBxlE,EAAG87B,QAClCipC,EAAM/kE,EAAG87B,OAASspC,EAClBH,EAAML,EAAcU,EACpB93B,EAAKg4B,EAAiBr4B,EAAU3vB,KAAO8nD,EACvC/2C,EAAK4e,EAAUrR,QACQ,WAAbvgD,GACVqpF,EAAcY,EAAiBxlE,EAAGwd,KAClCgwB,EAAKL,EAAU3vB,IACf+Q,EAAKi3C,EAAiBr4B,EAAUrR,QAAUwpC,EAC1CP,EAAMH,EAAcU,EACpBL,EAAMjlE,EAAGwd,IAAM4nD,GACQ,SAAb7pF,GACVqpF,EAAcY,EAAiBxlE,EAAG67B,OAClCipC,EAAM9kE,EAAG67B,MAAQupC,EACjBJ,EAAMJ,EAAcU,EACpB/3B,EAAKi4B,EAAiBr4B,EAAU7vB,MAAQgoD,EACxC92C,EAAK2e,EAAUtR,QAEf+oC,EAAcY,EAAiBxlE,EAAGsd,MAClCiwB,EAAKJ,EAAU7vB,KACfkR,EAAKg3C,EAAiBr4B,EAAUtR,OAASypC,EACzCR,EAAMF,EAAcU,EACpBN,EAAMhlE,EAAGsd,KAAO8nD,GAGZtjH,EAAI,EAAGA,EAAIqjH,IAAerjH,EAC9BgV,EAAOsgF,EAAMt1F,IAAM,GAGf00E,GAAc1/D,EAAKlI,QAAU9M,EAAIs1F,EAAMx0F,SAIvCd,IAAMk+C,EAAG2/D,eAAiBpnF,EAAQspB,SAAWquC,GAEhDrG,EAAYoG,EAAU6uB,cACtBoG,EAAYj1B,EAAU8uB,cACtBxzB,EAAa0E,EAAU+uB,oBAAsB,GAC7CxzB,EAAmByE,EAAUgvB,0BAA4B,IAEzDp1B,EAAYhT,GAAsBoZ,EAAUpG,UAAW/nF,EAAG,GAC1DojH,EAAYruC,GAAsBoZ,EAAU9wC,MAAOr9C,EAAG,mBACtDypF,EAAa0E,EAAU1E,YAAc,GACrCC,EAAmByE,EAAUzE,kBAAoB,QAMhCnpF,KAHlBi6G,EAAYF,GAAoBp8D,EAAIlpC,EAAKmvE,QAAUnkF,EAAGouF,MAOtD20B,EAAmBU,EAAW/pC,EAAO8gC,EAAWzyB,GAE5CmH,EACH8zB,EAAME,EAAMz3B,EAAK/e,EAAKq2C,EAEtBE,EAAME,EAAMz3B,EAAKjf,EAAKs2C,EAGvB5oB,EAAMv5F,KAAK,CACVoiH,IAAKA,EACLC,IAAKA,EACLC,IAAKA,EACLC,IAAKA,EACL13B,GAAIA,EACJC,GAAIA,EACJhf,GAAIA,EACJD,GAAIA,EACJ51C,MAAOkxD,EACP1qC,MAAO+lE,EACP35B,WAAYA,EACZC,iBAAkBA,MAOpB,OAHAyQ,EAAMkpB,YAAcA,EACpBlpB,EAAM2oB,YAAcA,EAEb3oB,GAMRwpB,mBAAoB,WACnB,IAYI3jH,EAAGs1E,EAAMtgE,EAAMlI,EAAOmM,EAAG4lB,EAAGy/C,EAAWy2B,EAAOh4B,EAAMpyC,EAAYi5E,EAAWC,EAZ3E3lE,EAAKj7C,KACLwzB,EAAUynB,EAAGznB,QACbksF,EAAclsF,EAAQ6+D,MACtB77D,EAAWhD,EAAQgD,SACnBqqF,EAAanB,EAAYnF,OACzBtuB,EAAehxC,EAAGgxC,eAClBoG,EAAQp3C,EAAG0hE,aACXmE,EAAQhI,GAAqB4G,GAC7BrB,EAAcqB,EAAYv3B,QAC1Bk4B,EAAK9H,GAAkB/kF,EAAQ03D,WAC/B7T,GAAYuE,GAAUs1B,UAAUj2D,EAAG2iE,eACnC1mB,EAAQ,GAiBZ,IAdiB,QAAb1gE,GACHoF,EAAIqf,EAAG87B,OAASspC,EAAKhC,EACrBhjC,EAAahE,EAAsB,OAAX,UACD,WAAb7gD,GACVoF,EAAIqf,EAAGwd,IAAM4nD,EAAKhC,EAClBhjC,EAAahE,EAAsB,QAAX,UACD,SAAb7gD,GACVxgB,EAAIilC,EAAG67B,OAAS+pC,EAAa,EAAIR,GAAMhC,EACvChjC,EAAYwlC,EAAa,OAAS,UAElC7qG,EAAIilC,EAAGsd,MAAQsoD,EAAa,EAAIR,GAAMhC,EACtChjC,EAAYwlC,EAAa,QAAU,QAG/B9jH,EAAI,EAAGs1E,EAAOggB,EAAMx0F,OAAQd,EAAIs1E,IAAQt1E,EAE5C8M,GADAkI,EAAOsgF,EAAMt1F,IACA8M,MAGT4nE,GAAc5nE,KAIlBioG,EAAQ72D,EAAGsvC,gBAAgBx4E,EAAKmvE,QAAUnkF,GAAK2iH,EAAYhF,YAE3DhzE,GADAoyC,EAAO/nE,EAAKomG,MAAQ2I,EAAM3I,MAAQ2I,EAAM1I,OACtB1wE,WAClBi5E,EAAYhkH,GAAQkN,GAASA,EAAMhM,OAAS,EAExCouF,GACHj2E,EAAI87F,EACJ8O,EAA0B,QAAbpqF,IACP6gD,EAAiB,EAAN,IAAWspC,GAAaj5E,GACpC2vC,EAAiB,EAAN,IAAW3vC,IAE3B9L,EAAIk2E,EACJ8O,GAAc,EAAID,GAAaj5E,EAAa,GAG7CwvD,EAAMv5F,KAAK,CACVqY,EAAGA,EACH4lB,EAAGA,EACHy7C,SAAUA,EACVxtE,MAAOA,EACPiwE,KAAMA,EACN8mC,WAAYA,EACZvlC,UAAWA,KAIb,OAAO6b,GAMR6pB,UAAW,SAAS34B,GACnB,IAAIntC,EAAKj7C,KACLkrF,EAAYjwC,EAAGznB,QAAQ03D,UAE3B,GAAKA,EAAU30D,QAAf,CAIA,IAKI3C,EAAOwmB,EAAOr9C,EAAGs1E,EAAMwB,EALvB6C,EAAMz7B,EAAGy7B,IACTD,EAAQx7B,EAAGw7B,MACX+pC,EAAa5kC,GAAUi2B,YACvByO,EAAYp1B,EAAUtG,WAAa9S,GAAsBoZ,EAAUpG,UAAW,EAAG,GAAK,EACtFoS,EAAQj8C,EAAGwgE,iBAAmBxgE,EAAGwgE,eAAiBxgE,EAAG2kE,sBAAsBx3B,IAG/E,IAAKrrF,EAAI,EAAGs1E,EAAO6kB,EAAMr5F,OAAQd,EAAIs1E,IAAQt1E,EAE5C62B,GADAigD,EAAOqjB,EAAMn6F,IACA62B,MACbwmB,EAAQy5B,EAAKz5B,MAETxmB,GAASwmB,IACZs8B,EAAIgB,OACJhB,EAAIoO,UAAYlxD,EAChB8iD,EAAI0P,YAAchsC,EACds8B,EAAI6Q,cACP7Q,EAAI6Q,YAAY1T,EAAK2S,YACrB9P,EAAI8Q,eAAiB3T,EAAK4S,kBAG3B/P,EAAIoB,YAEAoT,EAAUstB,YACb9hC,EAAIM,OAAOnD,EAAKksC,IAAKlsC,EAAKmsC,KAC1BtpC,EAAIqB,OAAOlE,EAAKosC,IAAKpsC,EAAKqsC,MAGvBh1B,EAAU4uB,kBACbpjC,EAAIM,OAAOnD,EAAK2U,GAAI3U,EAAK4U,IACzB/R,EAAIqB,OAAOlE,EAAKpK,GAAIoK,EAAKrK,KAG1BkN,EAAIwB,SACJxB,EAAImB,WAIN,GAAIyoC,EAAW,CAEd,IAGI93B,EAAI/e,EAAIgf,EAAIjf,EAHZw3C,EAAiBV,EACjBW,EAAgBnvC,GAAsBoZ,EAAUpG,UAAWoS,EAAMkpB,YAAc,EAAG,GAClFP,EAAc3oB,EAAM2oB,YAGpB5kE,EAAGgxC,gBACNzD,EAAKg4B,EAAW/pC,EAAOx7B,EAAGsd,KAAMyoD,GAAkBA,EAAiB,EACnEv3C,EAAK+2C,EAAW/pC,EAAOx7B,EAAG67B,MAAOmqC,GAAiBA,EAAgB,EAClEx4B,EAAKjf,EAAKq2C,IAEVp3B,EAAK+3B,EAAW/pC,EAAOx7B,EAAGwd,IAAKuoD,GAAkBA,EAAiB,EAClEx3C,EAAKg3C,EAAW/pC,EAAOx7B,EAAG87B,OAAQkqC,GAAiBA,EAAgB,EACnEz4B,EAAK/e,EAAKo2C,GAGXnpC,EAAIoO,UAAYw7B,EAChB5pC,EAAI0P,YAActU,GAAsBoZ,EAAU9wC,MAAO,GACzDs8B,EAAIoB,YACJpB,EAAIM,OAAOwR,EAAIC,GACf/R,EAAIqB,OAAOtO,EAAID,GACfkN,EAAIwB,YAONgpC,YAAa,WACZ,IAAIjmE,EAAKj7C,KAGT,GAFkBi7C,EAAGznB,QAAQ6+D,MAEZ97D,QAAjB,CAIA,IAEIx5B,EAAGyyF,EAAGnd,EAAM+jB,EAAMviB,EAAM8jC,EAAU9tG,EAAO+xB,EAFzC86C,EAAMz7B,EAAGy7B,IACTwgB,EAAQj8C,EAAGygE,cAAgBzgE,EAAGygE,YAAczgE,EAAGylE,sBAGnD,IAAK3jH,EAAI,EAAGs1E,EAAO6kB,EAAMr5F,OAAQd,EAAIs1E,IAAQt1E,EAAG,CAe/C,GAbA46G,GADA9jC,EAAOqjB,EAAMn6F,IACG+8E,KAGhBpD,EAAIgB,OACJhB,EAAIiB,UAAU9D,EAAK79D,EAAG69D,EAAKj4C,GAC3B86C,EAAIvG,OAAO0D,EAAKwD,UAChBX,EAAIoD,KAAO69B,EAAS3rG,OACpB0qE,EAAIyP,UAAYwxB,EAASv9D,MACzBs8B,EAAImyB,aAAe,SACnBnyB,EAAI2E,UAAYxH,EAAKwH,UAErBxxE,EAAQgqE,EAAKhqE,MACb+xB,EAAIi4C,EAAK+sC,WACLjkH,GAAQkN,GACX,IAAK2lF,EAAI,EAAG4G,EAAOvsF,EAAMhM,OAAQ2xF,EAAI4G,IAAQ5G,EAE5C9Y,EAAIoyB,SAAS,GAAKj/F,EAAM2lF,GAAI,EAAG5zD,GAC/BA,GAAK+7E,EAASjwE,gBAGfgvC,EAAIoyB,SAASj/F,EAAO,EAAG+xB,GAExB86C,EAAImB,aAONspC,WAAY,WACX,IAAIlmE,EAAKj7C,KACL02E,EAAMz7B,EAAGy7B,IACTljD,EAAUynB,EAAGznB,QACb2mF,EAAa3mF,EAAQ2mF,WAEzB,GAAKA,EAAW5jF,QAAhB,CAIA,IAMI6qF,EAAaC,EANbC,EAAsBrK,GAAiBkD,EAAWtB,UAAWj/B,EAAc/zE,OAAOyzE,kBAClFioC,EAAiB3lC,GAAUpoD,QAAQ4mD,WAAW+/B,GAC9CqH,EAAoB5lC,GAAUpoD,QAAQ2mD,UAAUggC,EAAWhyB,SAC3Ds5B,EAAiBF,EAAe75E,WAAa,EAC7ClR,EAAWhD,EAAQgD,SACnB6gD,EAAW,EAGf,GAAIp8B,EAAGgxC,eACNm1B,EAAcnmE,EAAGsd,KAAOtd,EAAGrnB,MAAQ,EACnCytF,EAA2B,WAAb7qF,EACXykB,EAAG87B,OAAS0qC,EAAiBD,EAAkBzqC,OAC/C97B,EAAGwd,IAAMgpD,EAAiBD,EAAkB/oD,QACzC,CACN,IAAIipD,EAAsB,SAAblrF,EACb4qF,EAAcM,EACXzmE,EAAGsd,KAAOkpD,EAAiBD,EAAkB/oD,IAC7Cxd,EAAG67B,MAAQ2qC,EAAiBD,EAAkB/oD,IACjD4oD,EAAcpmE,EAAGwd,IAAMxd,EAAGtnB,OAAS,EACnC0jD,EAAWqqC,GAAU,GAAMzrG,KAAK2zD,GAAK,GAAM3zD,KAAK2zD,GAGjD8M,EAAIgB,OACJhB,EAAIiB,UAAUypC,EAAaC,GAC3B3qC,EAAIvG,OAAOkH,GACXX,EAAI2E,UAAY,SAChB3E,EAAImyB,aAAe,SACnBnyB,EAAIyP,UAAYm7B,EAChB5qC,EAAIoD,KAAOynC,EAAev1G,OAC1B0qE,EAAIoyB,SAASqR,EAAWC,YAAa,EAAG,GACxC1jC,EAAImB,YAGLiK,KAAM,SAASsG,GACd,IAAIntC,EAAKj7C,KAEJi7C,EAAG4iE,eAIR5iE,EAAG8lE,UAAU34B,GACbntC,EAAGkmE,aACHlmE,EAAGimE,gBAMJ9mB,QAAS,WACR,IAAIn/C,EAAKj7C,KACL4vF,EAAO30C,EAAGznB,QACVmuF,EAAK/xB,EAAKyC,OAASzC,EAAKyC,MAAM74D,GAAK,EACnCooF,EAAKhyB,EAAK1E,WAAa0E,EAAK1E,UAAU1xD,GAAK,EAE/C,OAAKyhB,EAAG4iE,cAAgB8D,IAAOC,GAAM3mE,EAAG6mC,OAAS7mC,EAAG4mE,MAU7C,CAAC,CACProF,EAAGooF,EACH9/B,KAAM,WACL7mC,EAAG8lE,UAAU57G,MAAM81C,EAAIz4C,WACvBy4C,EAAGkmE,WAAWh8G,MAAM81C,EAAIz4C,aAEvB,CACFg3B,EAAGmoF,EACH7/B,KAAM,WACL7mC,EAAGimE,YAAY/7G,MAAM81C,EAAIz4C,cAjBnB,CAAC,CACPg3B,EAAGmoF,EACH7/B,KAAM,WACL7mC,EAAG6mC,KAAK38E,MAAM81C,EAAIz4C,eAsBtBiqF,yBAA0B,SAASjpF,GAClC,IAAIy3C,EAAKj7C,KACLisF,EAAehxC,EAAGgxC,eACtB,OAAOhxC,EAAGw7B,MAAM+c,gCACd/oF,QAAO,SAASk/B,GAChB,QAASnmC,GAAQmmC,EAAKnmC,OAASA,KAC1ByoF,EAAetiD,EAAKu2C,UAAYjlC,EAAGrlB,GAAK+T,EAAKy2C,UAAYnlC,EAAGrlB,UAKrE+kF,GAAMl8G,UAAUojH,MAAQlH,GAAMl8G,UAAUqjF,KAExC,IAAIggC,GAAanH,GAEboH,GAAkBnmC,GAAUnK,cAE5BuwC,GAAgB,CACnBxrF,SAAU,UAGPyrF,GAAiBH,GAAW7pD,OAAO,CACtC8jD,oBAAqB,WACpB,IAOIr9B,EAPAzjC,EAAKj7C,KACLonE,EAASnsB,EAAG6/D,aACZoH,EAAYjnE,EAAGznB,QAAQ6+D,MACvB91E,EAAM2lG,EAAU3lG,IAChB3E,EAAMsqG,EAAUtqG,IAChBuqG,EAAW,EACXC,EAAWh7C,EAAOvpE,OAAS,OAGnBP,IAARif,IAEHmiE,EAAYtX,EAAO51C,QAAQjV,KACV,IAChB4lG,EAAWzjC,QAIDphF,IAARsa,IAEH8mE,EAAYtX,EAAO51C,QAAQ5Z,KACV,IAChBwqG,EAAW1jC,GAIbzjC,EAAGknE,SAAWA,EACdlnE,EAAGmnE,SAAWA,EACdnnE,EAAG1+B,IAAM6qD,EAAO+6C,GAChBlnE,EAAGrjC,IAAMwvD,EAAOg7C,IAGjBlG,WAAY,WACX,IAAIjhE,EAAKj7C,KACLonE,EAASnsB,EAAG6/D,aACZqH,EAAWlnE,EAAGknE,SACdC,EAAWnnE,EAAGmnE,SAGlBnnE,EAAGo3C,MAAsB,IAAb8vB,GAAkBC,IAAah7C,EAAOvpE,OAAS,EAAKupE,EAASA,EAAOxoE,MAAMujH,EAAUC,EAAW,IAG5Gre,iBAAkB,SAAShkG,EAAOu/E,GACjC,IAAIrkC,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MAEf,OAAIA,EAAM6J,eAAehB,GAAc0P,WAAWvO,qBAAuBxlC,EAAGrlB,GACpEqlB,EAAGs4C,cAAc9c,EAAM71E,KAAKozB,SAASsrD,GAAc1+E,KAAKb,IAGzDk7C,EAAG6/D,aAAa/6G,IAGxB0hF,WAAY,WACX,IAAIxmC,EAAKj7C,KACL88C,EAAS7B,EAAGznB,QAAQspB,OACpBu1C,EAAQp3C,EAAGo3C,MAEfyvB,GAAWrjH,UAAUgjF,WAAW9iF,KAAKs8C,GAEhCA,EAAGgxC,iBAEPhxC,EAAGgiE,gBAAkBhiE,EAAGgiE,gBAGpB5qB,IAILp3C,EAAGonE,YAAcpnE,EAAGknE,UAAYrlE,EAAS,GAAM,GAC/C7B,EAAGqnE,YAAcrsG,KAAK2B,IAAIy6E,EAAMx0F,QAAUi/C,EAAS,EAAI,GAAI,KAI5DgwC,iBAAkB,SAASlvF,EAAOmC,EAAOu/E,GACxC,IACIijC,EAAen7C,EAAQ24B,EADvB9kD,EAAKj7C,KAqBT,OAlBK+hH,GAAgBhiH,IAAWgiH,GAAgBziC,KAC/C1hF,EAAQq9C,EAAGw7B,MAAM71E,KAAKozB,SAASsrD,GAAc1+E,KAAKb,IAK9CgiH,GAAgBnkH,KACpB2kH,EAAgBtnE,EAAGgxC,eAAiBruF,EAAMoY,EAAIpY,EAAMg+B,SAE/Bt+B,IAAlBilH,QAA0CjlH,IAAVM,GAAuBiW,MAAM9T,MAChEqnE,EAASnsB,EAAG6/D,aACZl9G,EAAQg+E,GAAU/J,eAAe0wC,EAAe3kH,GAEhDmC,GAAiB,KADjBggG,EAAM34B,EAAO51C,QAAQ5zB,IACAmiG,EAAMhgG,EACvB8T,MAAM9T,KACTA,EAAQnC,IAGHq9C,EAAGkzC,oBAAoBpuF,EAAQk7C,EAAGonE,aAAepnE,EAAGqnE,cAG5D/3B,gBAAiB,SAASxqF,GACzB,IAAIsyF,EAAQryF,KAAKqyF,MACjB,OAAOtyF,EAAQ,GAAKA,EAAQsyF,EAAMx0F,OAAS,EACxC,KACAmC,KAAK8sF,iBAAiBuF,EAAMtyF,GAAQA,EAAQC,KAAKmiH,WAGrDjD,iBAAkB,SAASpN,GAC1B,IAAI72D,EAAKj7C,KACLpC,EAAQqY,KAAKuH,MAAMy9B,EAAGonE,YAAcpnE,EAAGmkE,mBAAmBtN,GAAS72D,EAAGqnE,aAC1E,OAAOrsG,KAAKsG,IAAItG,KAAK2B,IAAIha,EAAO,GAAIq9C,EAAGo3C,MAAMx0F,OAAS,IAGvDmuF,aAAc,WACb,OAAOhsF,KAAK+2E,UAKVyrC,GAAYR,GAChBC,GAAeO,UAAYA,GAE3B,IAAIp+C,GAAOwX,GAAUxX,KACjBq+C,GAAkB7mC,GAAUnK,cAQhC,SAASixC,GAAcC,EAAmBC,GACzC,IAeIrJ,EAAQsJ,EAASC,EAASC,EAf1B1wB,EAAQ,GAKR2wB,EAAc,MACdC,EAAWN,EAAkBM,SAC7BC,EAAOD,GAAY,EACnBE,EAAeR,EAAkBS,SAAW,EAC5C7mG,EAAMomG,EAAkBpmG,IACxB3E,EAAM+qG,EAAkB/qG,IACxB/G,EAAY8xG,EAAkB9xG,UAC9BwyG,EAAOT,EAAUrmG,IACjB+mG,EAAOV,EAAUhrG,IACjB6hG,EAAU79B,GAAU03B,SAASgQ,EAAOD,GAAQF,EAAeD,GAAQA,EAKvE,GAAIzJ,EAAUuJ,GAAeP,GAAgBlmG,IAAQkmG,GAAgB7qG,GACpE,MAAO,CAACyrG,EAAMC,IAGfP,EAAY9sG,KAAKq+C,KAAKgvD,EAAO7J,GAAWxjG,KAAK8mD,MAAMsmD,EAAO5J,IAC1C0J,IAEf1J,EAAU79B,GAAU03B,QAAQyP,EAAYtJ,EAAU0J,EAAeD,GAAQA,GAGtED,GAAYR,GAAgB5xG,GAE/B0oG,EAAStjG,KAAKC,IAAI,GAAI0lE,GAAUy1B,eAAeoI,KAG/CF,EAAStjG,KAAKC,IAAI,GAAIrF,GACtB4oG,EAAUxjG,KAAKq+C,KAAKmlD,EAAUF,GAAUA,GAGzCsJ,EAAU5sG,KAAK8mD,MAAMsmD,EAAO5J,GAAWA,EACvCqJ,EAAU7sG,KAAKq+C,KAAKgvD,EAAO7J,GAAWA,EAGlCwJ,KAEER,GAAgBlmG,IAAQq/D,GAAUk1B,YAAYv0F,EAAMk9F,EAASA,EAAU,OAC3EoJ,EAAUtmG,IAENkmG,GAAgB7qG,IAAQgkE,GAAUk1B,YAAYl5F,EAAM6hG,EAASA,EAAU,OAC3EqJ,EAAUlrG,IAIZmrG,GAAaD,EAAUD,GAAWpJ,EAGjCsJ,EADGnnC,GAAUi1B,aAAakS,EAAW9sG,KAAKuH,MAAMulG,GAAYtJ,EAAU,KAC1DxjG,KAAKuH,MAAMulG,GAEX9sG,KAAKq+C,KAAKyuD,GAGvBF,EAAU5sG,KAAKuH,MAAMqlG,EAAUtJ,GAAUA,EACzCuJ,EAAU7sG,KAAKuH,MAAMslG,EAAUvJ,GAAUA,EACzClnB,EAAM10F,KAAK8kH,GAAgBlmG,GAAOsmG,EAAUtmG,GAC5C,IAAK,IAAIizE,EAAI,EAAGA,EAAIuzB,IAAavzB,EAChC6C,EAAM10F,KAAKsY,KAAKuH,OAAOqlG,EAAUrzB,EAAIiqB,GAAWF,GAAUA,GAI3D,OAFAlnB,EAAM10F,KAAK8kH,GAAgB7qG,GAAOkrG,EAAUlrG,GAErCy6E,EAGR,IAAIkxB,GAAmBzB,GAAW7pD,OAAO,CACxCs7B,cAAe,SAAS31F,GACvB,MAAqB,kBAAVA,GACFA,EAEFkkH,GAAWrjH,UAAU80F,cAAc50F,KAAKqB,KAAMpC,IAGtD4lH,uBAAwB,WACvB,IAAIvoE,EAAKj7C,KAELoyF,EADOn3C,EAAGznB,QACM6+D,MAKpB,GAAID,EAASgC,YAAa,CACzB,IAAIqvB,EAAU7nC,GAAUq1B,KAAKh2D,EAAG1+B,KAC5BmnG,EAAU9nC,GAAUq1B,KAAKh2D,EAAGrjC,KAE5B6rG,EAAU,GAAKC,EAAU,EAE5BzoE,EAAGrjC,IAAM,EACC6rG,EAAU,GAAKC,EAAU,IAEnCzoE,EAAG1+B,IAAM,GAIX,IAAIonG,OAA0BrmH,IAAjB80F,EAAS71E,UAA+Cjf,IAA1B80F,EAASwxB,aAChDC,OAA0BvmH,IAAjB80F,EAASx6E,UAA+Cta,IAA1B80F,EAAS0xB,kBAE/BxmH,IAAjB80F,EAAS71E,IACZ0+B,EAAG1+B,IAAM61E,EAAS71E,SACkBjf,IAA1B80F,EAASwxB,eACJ,OAAX3oE,EAAG1+B,IACN0+B,EAAG1+B,IAAM61E,EAASwxB,aAElB3oE,EAAG1+B,IAAMtG,KAAKsG,IAAI0+B,EAAG1+B,IAAK61E,EAASwxB,oBAIhBtmH,IAAjB80F,EAASx6E,IACZqjC,EAAGrjC,IAAMw6E,EAASx6E,SACkBta,IAA1B80F,EAAS0xB,eACJ,OAAX7oE,EAAGrjC,IACNqjC,EAAGrjC,IAAMw6E,EAAS0xB,aAElB7oE,EAAGrjC,IAAM3B,KAAK2B,IAAIqjC,EAAGrjC,IAAKw6E,EAAS0xB,eAIjCH,IAAWE,GAKV5oE,EAAG1+B,KAAO0+B,EAAGrjC,MACZ+rG,EACH1oE,EAAGrjC,IAAMqjC,EAAG1+B,IAAM,EAElB0+B,EAAG1+B,IAAM0+B,EAAGrjC,IAAM,GAKjBqjC,EAAG1+B,MAAQ0+B,EAAGrjC,MACjBqjC,EAAGrjC,MAEEw6E,EAASgC,aACbn5C,EAAG1+B,QAKNwnG,aAAc,WACb,IAIIX,EAJAnoE,EAAKj7C,KACLoyF,EAAWn3C,EAAGznB,QAAQ6+D,MACtB4wB,EAAW7wB,EAAS6wB,SACpB1D,EAAgBntB,EAASmtB,cAc7B,OAXI0D,EACHG,EAAWntG,KAAKq+C,KAAKrZ,EAAGrjC,IAAMqrG,GAAYhtG,KAAK8mD,MAAM9hB,EAAG1+B,IAAM0mG,GAAY,GAE1EG,EAAWnoE,EAAG+oE,oBACdzE,EAAgBA,GAAiB,IAG9BA,IACH6D,EAAWntG,KAAKsG,IAAIgjG,EAAe6D,IAG7BA,GAGRY,kBAAmB,WAClB,OAAOpyC,OAAO8kB,mBAGfutB,yBAA0B7/C,GAE1B83C,WAAY,WACX,IAAIjhE,EAAKj7C,KAELoyF,EADOn3C,EAAGznB,QACM6+D,MAMhB+wB,EAAWnoE,EAAG8oE,eAGdG,EAA0B,CAC7Bd,SAHDA,EAAWntG,KAAK2B,IAAI,EAAGwrG,GAItB7mG,IAAK61E,EAAS71E,IACd3E,IAAKw6E,EAASx6E,IACd/G,UAAWuhF,EAASvhF,UACpBoyG,SAAUrnC,GAAU/J,eAAeugB,EAAS+xB,cAAe/xB,EAAS6wB,WAEjE5wB,EAAQp3C,EAAGo3C,MAAQqwB,GAAcwB,EAAyBjpE,GAE9DA,EAAGgpE,2BAIHhpE,EAAGrjC,IAAMgkE,GAAUhkE,IAAIy6E,GACvBp3C,EAAG1+B,IAAMq/D,GAAUr/D,IAAI81E,GAEnBD,EAAS9gF,SACZ+gF,EAAM/gF,UAEN2pC,EAAG5xB,MAAQ4xB,EAAGrjC,IACdqjC,EAAG/xB,IAAM+xB,EAAG1+B,MAEZ0+B,EAAG5xB,MAAQ4xB,EAAG1+B,IACd0+B,EAAG/xB,IAAM+xB,EAAGrjC,MAIdulG,qBAAsB,WACrB,IAAIliE,EAAKj7C,KACTi7C,EAAGmpE,eAAiBnpE,EAAGo3C,MAAMzzF,QAC7Bq8C,EAAG2/D,cAAgB3/D,EAAGo3C,MAAM7gE,QAAQ,GAEpCswF,GAAWrjH,UAAU0+G,qBAAqBx+G,KAAKs8C,IAGhDwmC,WAAY,WACX,IAII3kC,EAJA7B,EAAKj7C,KACLqyF,EAAQp3C,EAAGqvC,WACXjhE,EAAQ4xB,EAAG1+B,IACX2M,EAAM+xB,EAAGrjC,IAGbkqG,GAAWrjH,UAAUgjF,WAAW9iF,KAAKs8C,GAEjCA,EAAGznB,QAAQspB,QAAUu1C,EAAMx0F,SAE9BwrB,GADAyzB,GAAU5zB,EAAMG,GAASpT,KAAK2B,IAAIy6E,EAAMx0F,OAAS,EAAG,GAAK,EAEzDqrB,GAAO4zB,GAER7B,EAAGonE,YAAch5F,EACjB4xB,EAAGopE,UAAYn7F,EACf+xB,EAAGqnE,YAAcp5F,EAAMG,KAIrBi7F,GAAkB,CACrB9tF,SAAU,OACV67D,MAAO,CACNhsC,SAAUiwD,GAAWC,WAAWtiC,SAI9BswC,GAAc,EACdC,GAAc,EAElB,SAASC,GAAiB93B,EAAQD,EAAS/iD,GAC1C,IAAIvrC,EAAM,CACTurC,EAAKnmC,UAEOlG,IAAZovF,QAAwCpvF,IAAfqsC,EAAKrmC,MAAsBqmC,EAAK5pC,MAAQ,GACjE4pC,EAAKrmC,OACJ1B,KAAK,KASP,YAPoBtE,IAAhBqvF,EAAOvuF,KACVuuF,EAAOvuF,GAAO,CACbs5F,IAAK,GACLgtB,IAAK,KAIA/3B,EAAOvuF,GAGf,SAASumH,GAAU93C,EAAO8f,EAAQhjD,EAAM/oC,GACvC,IAMI7D,EAAGa,EANHgyF,EAAO/iB,EAAMr5C,QAEblwB,EAAQmhH,GAAiB93B,EADfiD,EAAKlD,QAC2B/iD,GAC1C+tD,EAAMp0F,EAAMo0F,IACZgtB,EAAMphH,EAAMohH,IACZryC,EAAOzxE,EAAK/C,OAGhB,IAAKd,EAAI,EAAGA,EAAIs1E,IAAQt1E,EACvBa,EAAQivE,EAAMugB,YAAYxsF,EAAK7D,IAC3B8W,MAAMjW,EAAM2e,MAAQ1I,MAAMjW,EAAMga,MAAQ+xB,EAAK/oC,KAAK7D,GAAGmgF,SAIzDwa,EAAI36F,GAAK26F,EAAI36F,IAAM,EACnB2nH,EAAI3nH,GAAK2nH,EAAI3nH,IAAM,EAEf6yF,EAAKg1B,eACRltB,EAAI36F,GAAK,IACCa,EAAM2e,IAAM,GAAK3e,EAAMga,IAAM,EACvC8sG,EAAI3nH,IAAMa,EAAM2e,IAEhBm7E,EAAI36F,IAAMa,EAAMga,KAKnB,SAASitG,GAAah4C,EAAOljC,EAAM/oC,GAClC,IACI7D,EAAGa,EADHy0E,EAAOzxE,EAAK/C,OAGhB,IAAKd,EAAI,EAAGA,EAAIs1E,IAAQt1E,EACvBa,EAAQivE,EAAMugB,YAAYxsF,EAAK7D,IAC3B8W,MAAMjW,EAAM2e,MAAQ1I,MAAMjW,EAAMga,MAAQ+xB,EAAK/oC,KAAK7D,GAAGmgF,SAIzDrQ,EAAMtwD,IAAMtG,KAAKsG,IAAIswD,EAAMtwD,IAAK3e,EAAM2e,KACtCswD,EAAMj1D,IAAM3B,KAAK2B,IAAIi1D,EAAMj1D,IAAKha,EAAMga,MAIxC,IAAIktG,GAAevB,GAAiBtrD,OAAO,CAC1C8jD,oBAAqB,WACpB,IAQIh/G,EAAG4sC,EAAM/oC,EAAMyQ,EARf4pC,EAAKj7C,KACL4vF,EAAO30C,EAAGznB,QAEVQ,EADQinB,EAAGw7B,MACM71E,KAAKozB,SACtBw4D,EAAWvxC,EAAGwxC,2BACds4B,EAAYn1B,EAAKlD,QACjBC,EAAS,GACTta,EAAOma,EAAS3uF,OAMpB,GAHAo9C,EAAG1+B,IAAMq1D,OAAO8kB,kBAChBz7C,EAAGrjC,IAAMg6D,OAAOo/B,uBAEE1zG,IAAdynH,EACH,IAAKhoH,EAAI,GAAIgoH,GAAahoH,EAAIs1E,IAAQt1E,EAErCgoH,OAA2BznH,KAD3BqsC,EAAO6iD,EAASzvF,IACCuG,MAInB,IAAKvG,EAAI,EAAGA,EAAIs1E,IAAQt1E,EAEvB6D,EAAOozB,GADP2V,EAAO6iD,EAASzvF,IACKgD,OAAOa,KACxBmkH,EACHJ,GAAU1pE,EAAI0xC,EAAQhjD,EAAM/oC,GAE5BikH,GAAa5pE,EAAItR,EAAM/oC,GAIzBg7E,GAAU5J,KAAK2a,GAAQ,SAASq4B,GAC/B3zG,EAAS2zG,EAAYttB,IAAIpuF,OAAO07G,EAAYN,KAC5CzpE,EAAG1+B,IAAMtG,KAAKsG,IAAI0+B,EAAG1+B,IAAKq/D,GAAUr/D,IAAIlL,IACxC4pC,EAAGrjC,IAAM3B,KAAK2B,IAAIqjC,EAAGrjC,IAAKgkE,GAAUhkE,IAAIvG,OAGzC4pC,EAAG1+B,IAAMq/D,GAAUjK,SAAS12B,EAAG1+B,OAAS1I,MAAMonC,EAAG1+B,KAAO0+B,EAAG1+B,IAAMgoG,GACjEtpE,EAAGrjC,IAAMgkE,GAAUjK,SAAS12B,EAAGrjC,OAAS/D,MAAMonC,EAAGrjC,KAAOqjC,EAAGrjC,IAAM4sG,GAGjEvpE,EAAGuoE,0BAIJQ,kBAAmB,WAClB,IACIrM,EADA18D,EAAKj7C,KAGT,OAAIi7C,EAAGgxC,eACCh2E,KAAKq+C,KAAKrZ,EAAGrnB,MAAQ,KAE7B+jF,EAAW/7B,GAAUpoD,QAAQ4mD,WAAWn/B,EAAGznB,QAAQ6+D,OAC5Cp8E,KAAKq+C,KAAKrZ,EAAGtnB,OAASgkF,EAASjwE,cAIvCu8E,yBAA0B,WACpBjkH,KAAKisF,gBAETjsF,KAAKqyF,MAAM/gF,WAIbyyF,iBAAkB,SAAShkG,EAAOu/E,GACjC,OAAOt/E,KAAKi/G,eAAej/G,KAAKy2E,MAAM71E,KAAKozB,SAASsrD,GAAc1+E,KAAKb,KAIxE+sF,iBAAkB,SAASlvF,GAC1B,IAAIq9C,EAAKj7C,KACT,OAAOi7C,EAAGkzC,qBAAqBlzC,EAAGs4C,cAAc31F,GAASq9C,EAAGonE,aAAepnE,EAAGqnE,cAG/EpD,iBAAkB,SAASpN,GAC1B,OAAO9xG,KAAKqiH,YAAcriH,KAAKo/G,mBAAmBtN,GAAS9xG,KAAKsiH,aAGjE/3B,gBAAiB,SAASxqF,GACzB,IAAIsyF,EAAQryF,KAAKokH,eACjB,OAAIrkH,EAAQ,GAAKA,EAAQsyF,EAAMx0F,OAAS,EAChC,KAEDmC,KAAK8sF,iBAAiBuF,EAAMtyF,OAKjCklH,GAAcX,GAClBQ,GAAatC,UAAYyC,GAEzB,IAAIC,GAAmBtpC,GAAU/J,eAC7BiJ,GAAQc,GAAUG,KAAKjB,MAQ3B,SAASqqC,GAAgBxC,EAAmBC,GAC3C,IAMIwC,EAAKC,EANLhzB,EAAQ,GAERizB,EAAUJ,GAAiBvC,EAAkBpmG,IAAKtG,KAAKC,IAAI,GAAID,KAAK8mD,MAAM+d,GAAM8nC,EAAUrmG,QAE1FgpG,EAAStvG,KAAK8mD,MAAM+d,GAAM8nC,EAAUhrG,MACpC4tG,EAAiBvvG,KAAKq+C,KAAKsuD,EAAUhrG,IAAM3B,KAAKC,IAAI,GAAIqvG,IAG5C,IAAZD,GACHF,EAAMnvG,KAAK8mD,MAAM+d,GAAM8nC,EAAU6C,aACjCJ,EAAcpvG,KAAK8mD,MAAM6lD,EAAU6C,WAAaxvG,KAAKC,IAAI,GAAIkvG,IAE7D/yB,EAAM10F,KAAK2nH,GACXA,EAAUD,EAAcpvG,KAAKC,IAAI,GAAIkvG,KAErCA,EAAMnvG,KAAK8mD,MAAM+d,GAAMwqC,IACvBD,EAAcpvG,KAAK8mD,MAAMuoD,EAAUrvG,KAAKC,IAAI,GAAIkvG,KAEjD,IAAIv0G,EAAYu0G,EAAM,EAAInvG,KAAKC,IAAI,GAAID,KAAK4B,IAAIutG,IAAQ,EAExD,GACC/yB,EAAM10F,KAAK2nH,GAGS,OADlBD,IAEDA,EAAc,EAEdx0G,IADEu0G,GACiB,EAAI,EAAIv0G,GAG5By0G,EAAUrvG,KAAKuH,MAAM6nG,EAAcpvG,KAAKC,IAAI,GAAIkvG,GAAOv0G,GAAaA,QAC5Du0G,EAAMG,GAAWH,IAAQG,GAAUF,EAAcG,GAE1D,IAAIE,EAAWR,GAAiBvC,EAAkB/qG,IAAK0tG,GAGvD,OAFAjzB,EAAM10F,KAAK+nH,GAEJrzB,EAGR,IAAIszB,GAAkB,CACrBnvF,SAAU,OAGV67D,MAAO,CACNhsC,SAAUiwD,GAAWC,WAAWQ,cAKlC,SAAS6O,GAAqBhoH,EAAO6lC,GACpC,OAAOm4C,GAAUjK,SAAS/zE,IAAUA,GAAS,EAAIA,EAAQ6lC,EAG1D,IAAIoiF,GAAoB/D,GAAW7pD,OAAO,CACzC8jD,oBAAqB,WACpB,IAQIz8B,EAAc31C,EAAM/rC,EAAOgD,EAAM7D,EAAGs1E,EARpCp3B,EAAKj7C,KACL4vF,EAAO30C,EAAGznB,QACVijD,EAAQx7B,EAAGw7B,MACXziD,EAAWyiD,EAAM71E,KAAKozB,SACtBi4D,EAAehxC,EAAGgxC,eACtB,SAAS65B,EAAUn8E,GAClB,OAAOsiD,EAAetiD,EAAKu2C,UAAYjlC,EAAGrlB,GAAK+T,EAAKy2C,UAAYnlC,EAAGrlB,GAKpEqlB,EAAG1+B,IAAMq1D,OAAO8kB,kBAChBz7C,EAAGrjC,IAAMg6D,OAAOo/B,kBAChB/1D,EAAGwqE,WAAa7zC,OAAO8kB,kBAEvB,IAAIquB,EAAYn1B,EAAKlD,QACrB,QAAkBpvF,IAAdynH,EACH,IAAKzlC,EAAe,EAAGA,EAAetrD,EAASn2B,OAAQyhF,IAEtD,GADA31C,EAAO8sC,EAAM6J,eAAehB,GACxB7I,EAAMgZ,iBAAiBnQ,IAAiBwmC,EAAUn8E,SACtCrsC,IAAfqsC,EAAKrmC,MAAqB,CAC1ByhH,GAAY,EACZ,MAKH,GAAIn1B,EAAKlD,SAAWq4B,EAAW,CAC9B,IAAIgB,EAAiB,GAErB,IAAKzmC,EAAe,EAAGA,EAAetrD,EAASn2B,OAAQyhF,IAAgB,CAEtE,IAAIlhF,EAAM,EADVurC,EAAO8sC,EAAM6J,eAAehB,IAEtB97E,UAEclG,IAAjBsyF,EAAKlD,cAAwCpvF,IAAfqsC,EAAKrmC,MAAuBg8E,EAAe,GAC3E31C,EAAKrmC,OACJ1B,KAAK,KAEP,GAAI60E,EAAMgZ,iBAAiBnQ,IAAiBwmC,EAAUn8E,GAMrD,SAL4BrsC,IAAxByoH,EAAe3nH,KAClB2nH,EAAe3nH,GAAO,IAIlBrB,EAAI,EAAGs1E,GADZzxE,EAAOozB,EAASsrD,GAAc1+E,MACN/C,OAAQd,EAAIs1E,EAAMt1E,IAAK,CAC9C,IAAIsU,EAAS00G,EAAe3nH,GAC5BR,EAAQq9C,EAAGmyC,YAAYxsF,EAAK7D,IAExB8W,MAAMjW,EAAM2e,MAAQ1I,MAAMjW,EAAMga,MAAQ+xB,EAAK/oC,KAAK7D,GAAGmgF,QAAUt/E,EAAM2e,IAAM,GAAK3e,EAAMga,IAAM,IAGhGvG,EAAOtU,GAAKsU,EAAOtU,IAAM,EACzBsU,EAAOtU,IAAMa,EAAMga,MAKtBgkE,GAAU5J,KAAK+zC,GAAgB,SAASC,GACvC,GAAIA,EAAcnoH,OAAS,EAAG,CAC7B,IAAIooH,EAASrqC,GAAUr/D,IAAIypG,GACvBE,EAAStqC,GAAUhkE,IAAIouG,GAC3B/qE,EAAG1+B,IAAMtG,KAAKsG,IAAI0+B,EAAG1+B,IAAK0pG,GAC1BhrE,EAAGrjC,IAAM3B,KAAK2B,IAAIqjC,EAAGrjC,IAAKsuG,YAK5B,IAAK5mC,EAAe,EAAGA,EAAetrD,EAASn2B,OAAQyhF,IAEtD,GADA31C,EAAO8sC,EAAM6J,eAAehB,GACxB7I,EAAMgZ,iBAAiBnQ,IAAiBwmC,EAAUn8E,GAErD,IAAK5sC,EAAI,EAAGs1E,GADZzxE,EAAOozB,EAASsrD,GAAc1+E,MACN/C,OAAQd,EAAIs1E,EAAMt1E,IACzCa,EAAQq9C,EAAGmyC,YAAYxsF,EAAK7D,IAExB8W,MAAMjW,EAAM2e,MAAQ1I,MAAMjW,EAAMga,MAAQ+xB,EAAK/oC,KAAK7D,GAAGmgF,QAAUt/E,EAAM2e,IAAM,GAAK3e,EAAMga,IAAM,IAIhGqjC,EAAG1+B,IAAMtG,KAAKsG,IAAI3e,EAAM2e,IAAK0+B,EAAG1+B,KAChC0+B,EAAGrjC,IAAM3B,KAAK2B,IAAIha,EAAMga,IAAKqjC,EAAGrjC,KAEd,IAAdha,EAAM2e,MACT0+B,EAAGwqE,WAAaxvG,KAAKsG,IAAI3e,EAAM2e,IAAK0+B,EAAGwqE,cAO5CxqE,EAAG1+B,IAAMq/D,GAAUjK,SAAS12B,EAAG1+B,KAAO0+B,EAAG1+B,IAAM,KAC/C0+B,EAAGrjC,IAAMgkE,GAAUjK,SAAS12B,EAAGrjC,KAAOqjC,EAAGrjC,IAAM,KAC/CqjC,EAAGwqE,WAAa7pC,GAAUjK,SAAS12B,EAAGwqE,YAAcxqE,EAAGwqE,WAAa,KAGpEzlH,KAAKwjH,0BAGNA,uBAAwB,WACvB,IAAIvoE,EAAKj7C,KACLoyF,EAAWn3C,EAAGznB,QAAQ6+D,MACtBkyB,EAAc,EACdC,EAAc,GAElBvpE,EAAG1+B,IAAMqpG,GAAqBxzB,EAAS71E,IAAK0+B,EAAG1+B,KAC/C0+B,EAAGrjC,IAAMguG,GAAqBxzB,EAASx6E,IAAKqjC,EAAGrjC,KAE3CqjC,EAAG1+B,MAAQ0+B,EAAGrjC,MACF,IAAXqjC,EAAG1+B,KAAwB,OAAX0+B,EAAG1+B,KACtB0+B,EAAG1+B,IAAMtG,KAAKC,IAAI,GAAID,KAAK8mD,MAAM+d,GAAM7/B,EAAG1+B,MAAQ,GAClD0+B,EAAGrjC,IAAM3B,KAAKC,IAAI,GAAID,KAAK8mD,MAAM+d,GAAM7/B,EAAGrjC,MAAQ,KAElDqjC,EAAG1+B,IAAMgoG,EACTtpE,EAAGrjC,IAAM4sG,IAGI,OAAXvpE,EAAG1+B,MACN0+B,EAAG1+B,IAAMtG,KAAKC,IAAI,GAAID,KAAK8mD,MAAM+d,GAAM7/B,EAAGrjC,MAAQ,IAEpC,OAAXqjC,EAAGrjC,MACNqjC,EAAGrjC,IAAiB,IAAXqjC,EAAG1+B,IACTtG,KAAKC,IAAI,GAAID,KAAK8mD,MAAM+d,GAAM7/B,EAAG1+B,MAAQ,GACzCioG,GAEkB,OAAlBvpE,EAAGwqE,aACFxqE,EAAG1+B,IAAM,EACZ0+B,EAAGwqE,WAAaxqE,EAAG1+B,IACT0+B,EAAGrjC,IAAM,EACnBqjC,EAAGwqE,WAAaxvG,KAAKC,IAAI,GAAID,KAAK8mD,MAAM+d,GAAM7/B,EAAGrjC,OAEjDqjC,EAAGwqE,WAAalB,IAKnBrI,WAAY,WACX,IAAIjhE,EAAKj7C,KACLoyF,EAAWn3C,EAAGznB,QAAQ6+D,MACtB/gF,GAAW2pC,EAAGgxC,eAEd02B,EAAoB,CACvBpmG,IAAKqpG,GAAqBxzB,EAAS71E,KACnC3E,IAAKguG,GAAqBxzB,EAASx6E,MAEhCy6E,EAAQp3C,EAAGo3C,MAAQ8yB,GAAgBxC,EAAmB1nE,GAI1DA,EAAGrjC,IAAMgkE,GAAUhkE,IAAIy6E,GACvBp3C,EAAG1+B,IAAMq/D,GAAUr/D,IAAI81E,GAEnBD,EAAS9gF,SACZA,GAAWA,EACX2pC,EAAG5xB,MAAQ4xB,EAAGrjC,IACdqjC,EAAG/xB,IAAM+xB,EAAG1+B,MAEZ0+B,EAAG5xB,MAAQ4xB,EAAG1+B,IACd0+B,EAAG/xB,IAAM+xB,EAAGrjC,KAETtG,GACH+gF,EAAM/gF,WAIR6rG,qBAAsB,WACrBn9G,KAAKmmH,WAAanmH,KAAKqyF,MAAMzzF,QAE7BkjH,GAAWrjH,UAAU0+G,qBAAqBx+G,KAAKqB,OAIhD+jG,iBAAkB,SAAShkG,EAAOu/E,GACjC,OAAOt/E,KAAKi/G,eAAej/G,KAAKy2E,MAAM71E,KAAKozB,SAASsrD,GAAc1+E,KAAKb,KAGxEwqF,gBAAiB,SAASxqF,GACzB,IAAIsyF,EAAQryF,KAAKmmH,WACjB,OAAIpmH,EAAQ,GAAKA,EAAQsyF,EAAMx0F,OAAS,EAChC,KAEDmC,KAAK8sF,iBAAiBuF,EAAMtyF,KASpCqmH,mBAAoB,SAASxoH,GAC5B,IAAIwnH,EAAMnvG,KAAK8mD,MAAM+d,GAAMl9E,IAG3B,OAFkBqY,KAAK8mD,MAAMn/D,EAAQqY,KAAKC,IAAI,GAAIkvG,IAE7BnvG,KAAKC,IAAI,GAAIkvG,IAGnC3jC,WAAY,WACX,IAAIxmC,EAAKj7C,KACLqpB,EAAQ4xB,EAAG1+B,IACXugC,EAAS,EAEbglE,GAAWrjH,UAAUgjF,WAAW9iF,KAAKs8C,GAEvB,IAAV5xB,IACHA,EAAQ4xB,EAAGmrE,mBAAmBnrE,EAAGwqE,YACjC3oE,EAASooE,GAAiBjqE,EAAGznB,QAAQ6+D,MAAM/X,SAAUV,EAAc/zE,OAAO2zE,iBAAmBv+B,EAAGxsC,SAGjGwsC,EAAGonE,YAAcvnC,GAAMzxD,GACvB4xB,EAAGorE,aAAevpE,EAClB7B,EAAGqnE,aAAexnC,GAAM7/B,EAAGrjC,KAAOkjE,GAAMzxD,KAAW,EAAIyzB,IAGxDgwC,iBAAkB,SAASlvF,GAC1B,IAAIq9C,EAAKj7C,KACLm/G,EAAU,EAOd,OALAvhH,GAASq9C,EAAGs4C,cAAc31F,IAEdq9C,EAAG1+B,KAAO3e,EAAQ,IAC7BuhH,GAAWrkC,GAAMl9E,GAASq9C,EAAGonE,aAAepnE,EAAGqnE,YAAcrnE,EAAGorE,cAE1DprE,EAAGkzC,mBAAmBgxB,IAG9BD,iBAAkB,SAASpN,GAC1B,IAAI72D,EAAKj7C,KACLm/G,EAAUlkE,EAAGmkE,mBAAmBtN,GACpC,OAAmB,IAAZqN,GAA4B,IAAXlkE,EAAG1+B,IACxB,EACAtG,KAAKC,IAAI,GAAI+kC,EAAGonE,aAAelD,EAAUlkE,EAAGorE,cAAgBprE,EAAGqnE,gBAKhEgE,GAAcX,GAClBE,GAAkBrD,UAAY8D,GAE9B,IAAIC,GAAmB3qC,GAAU/J,eAC7B20C,GAA0B5qC,GAAU9J,sBACpC20C,GAAY7qC,GAAUpoD,QAAQjvB,QAE9BmiH,GAAkB,CACrBnwF,SAAS,EAGTowF,SAAS,EACTnwF,SAAU,YAEVy9D,WAAY,CACX19D,SAAS,EACT6jB,MAAO,kBACP0qC,UAAW,EACX0B,WAAY,GACZC,iBAAkB,GAGnByE,UAAW,CACVgJ,UAAU,GAIX7B,MAAO,CAENu0B,mBAAmB,EAGnBC,cAAe,yBAGfC,iBAAkB,EAGlBC,iBAAkB,EAElB1gE,SAAUiwD,GAAWC,WAAWtiC,QAGjCkgB,YAAa,CAEZ59D,SAAS,EAGT+jD,SAAU,GAGVj0B,SAAU,SAASx8C,GAClB,OAAOA,KAKV,SAASm9G,GAAsBp3B,GAC9B,IAAIwC,EAAWxC,EAAKyC,MAEpB,OAAID,EAAS77D,SAAWq5D,EAAKr5D,QACrBgwF,GAAiBn0B,EAAS9X,SAAUV,EAAc/zE,OAAO2zE,iBAA+C,EAA5B4Y,EAAS00B,iBAEtF,EAGR,SAASG,GAAiBvwC,EAAKhvC,EAAY79B,GAC1C,OAAI+xE,GAAUj/E,QAAQkN,GACd,CACN0vB,EAAGqiD,GAAUk5B,YAAYp+B,EAAKA,EAAIoD,KAAMjwE,GACxCoxB,EAAGpxB,EAAMhM,OAAS6pC,GAIb,CACNnO,EAAGm9C,EAAIuvB,YAAYp8F,GAAO+pB,MAC1BqH,EAAGyM,GAIL,SAASw/E,GAAgBzhC,EAAOiS,EAAKhyF,EAAM6W,EAAK3E,GAC/C,OAAI6tE,IAAUlpE,GAAOkpE,IAAU7tE,EACvB,CACNyR,MAAOquE,EAAOhyF,EAAO,EACrBwjB,IAAKwuE,EAAOhyF,EAAO,GAEV+/E,EAAQlpE,GAAOkpE,EAAQ7tE,EAC1B,CACNyR,MAAOquE,EAAMhyF,EACbwjB,IAAKwuE,GAIA,CACNruE,MAAOquE,EACPxuE,IAAKwuE,EAAMhyF,GAOb,SAASyhH,GAAmBt6C,GA4B3B,IAWI9vE,EAAGqqH,EAAU5xB,EAXb6xB,EAASzrC,GAAUpoD,QAAQ4mD,WAAWvN,EAAMr5C,QAAQ2gE,aAIpDmzB,EAAiB,CACpBvkH,EAAG,EACHm2B,EAAG2zC,EAAMj5C,MACTuF,EAAG,EACH/vB,EAAGyjE,EAAMl5C,OAASk5C,EAAMonC,YAErBsT,EAAiB,GAGrB16C,EAAM6J,IAAIoD,KAAOutC,EAAOr7G,OACxB6gE,EAAM26C,iBAAmB,GAEzB,IAAIC,EAAa56C,EAAM4J,MAAM71E,KAAKwmE,OAAOvpE,OACzC,IAAKd,EAAI,EAAGA,EAAI0qH,EAAY1qH,IAAK,CAChCy4F,EAAgB3oB,EAAM66C,iBAAiB3qH,EAAG8vE,EAAM86C,YAAc,GAC9DP,EAAWH,GAAiBp6C,EAAM6J,IAAK2wC,EAAO3/E,WAAYmlC,EAAMsnB,YAAYp3F,IAC5E8vE,EAAM26C,iBAAiBzqH,GAAKqqH,EAG5B,IAAI7I,EAAe1xC,EAAM+6C,cAAc7qH,GACnC0oF,EAAQ7J,GAAUu1B,UAAUoN,GAAgB,IAC5CsJ,EAAUX,GAAgBzhC,EAAO+P,EAAcx/E,EAAGoxG,EAAS7tF,EAAG,EAAG,KACjEuuF,EAAUZ,GAAgBzhC,EAAO+P,EAAc55D,EAAGwrF,EAASnsF,EAAG,GAAI,KAElE4sF,EAAQx+F,MAAQi+F,EAAevkH,IAClCukH,EAAevkH,EAAI8kH,EAAQx+F,MAC3Bk+F,EAAexkH,EAAIw7G,GAGhBsJ,EAAQ3+F,IAAMo+F,EAAepuF,IAChCouF,EAAepuF,EAAI2uF,EAAQ3+F,IAC3Bq+F,EAAeruF,EAAIqlF,GAGhBuJ,EAAQz+F,MAAQi+F,EAAenuF,IAClCmuF,EAAenuF,EAAI2uF,EAAQz+F,MAC3Bk+F,EAAepuF,EAAIolF,GAGhBuJ,EAAQ5+F,IAAMo+F,EAAel+G,IAChCk+G,EAAel+G,EAAI0+G,EAAQ5+F,IAC3Bq+F,EAAen+G,EAAIm1G,GAIrB1xC,EAAMk7C,cAAcl7C,EAAM86C,YAAaL,EAAgBC,GAGxD,SAASS,GAAqBviC,GAC7B,OAAc,IAAVA,GAAyB,MAAVA,EACX,SACGA,EAAQ,IACX,OAGD,QAGR,SAASqjB,GAASpyB,EAAK77B,EAAMrkB,EAAUkR,GACtC,IACI3qC,EAAGs1E,EADHz2C,EAAIpF,EAASoF,EAAI8L,EAAa,EAGlC,GAAIk0C,GAAUj/E,QAAQk+C,GACrB,IAAK99C,EAAI,EAAGs1E,EAAOx3B,EAAKh9C,OAAQd,EAAIs1E,IAAQt1E,EAC3C25E,EAAIoyB,SAASjuD,EAAK99C,GAAIy5B,EAASxgB,EAAG4lB,GAClCA,GAAK8L,OAGNgvC,EAAIoyB,SAASjuD,EAAMrkB,EAASxgB,EAAG4lB,GAIjC,SAASqsF,GAAkCxiC,EAAO2hC,EAAU5wF,GAC7C,KAAVivD,GAA0B,MAAVA,EACnBjvD,EAASoF,GAAMwrF,EAASnsF,EAAI,GAClBwqD,EAAQ,KAAOA,EAAQ,MACjCjvD,EAASoF,GAAKwrF,EAASnsF,GAIzB,SAASitF,GAAgBr7C,GACxB,IAAI6J,EAAM7J,EAAM6J,IACZkZ,EAAO/iB,EAAMr5C,QACb20F,EAAiBv4B,EAAKuE,YACtBi0B,EAAqBpB,GAAsBp3B,GAC3Cy4B,EAAgBx7C,EAAMqoB,8BAA8BtF,EAAKyC,MAAM/gF,QAAUu7D,EAAMtwD,IAAMswD,EAAMj1D,KAC3FyvG,EAASzrC,GAAUpoD,QAAQ4mD,WAAW+tC,GAE1CzxC,EAAIgB,OAEJhB,EAAIoD,KAAOutC,EAAOr7G,OAClB0qE,EAAImyB,aAAe,SAEnB,IAAK,IAAI9rG,EAAI8vE,EAAM4J,MAAM71E,KAAKwmE,OAAOvpE,OAAS,EAAGd,GAAK,EAAGA,IAAK,CAE7D,IAAIurH,EAAe,IAANvrH,EAAUqrH,EAAqB,EAAI,EAC5CG,EAAqB17C,EAAM66C,iBAAiB3qH,EAAGsrH,EAAgBC,EAAQ,GAGvEE,EAAsBhC,GAAwB2B,EAAetP,UAAW97G,EAAG68E,EAAc/zE,OAAOyzE,kBACpG5C,EAAIyP,UAAYqiC,EAEhB,IAAIjK,EAAe1xC,EAAM+6C,cAAc7qH,GACnC0oF,EAAQ7J,GAAUu1B,UAAUoN,GAChC7nC,EAAI2E,UAAY2sC,GAAqBviC,GACrCwiC,GAAkCxiC,EAAO5Y,EAAM26C,iBAAiBzqH,GAAIwrH,GACpEzf,GAASpyB,EAAK7J,EAAMsnB,YAAYp3F,GAAIwrH,EAAoBlB,EAAO3/E,YAEhEgvC,EAAImB,UAGL,SAAS4wC,GAAe57C,EAAOmxC,EAAcnnC,EAAQ92E,GACpD,IAKIy1F,EALA9e,EAAM7J,EAAM6J,IACZwd,EAAW8pB,EAAa9pB,SACxBuzB,EAAa56C,EAAM4J,MAAM71E,KAAKwmE,OAAOvpE,OACrCsiH,EAAYqG,GAAwBxI,EAAa5jE,MAAOr6C,EAAQ,GAChE+kF,EAAY0hC,GAAwBxI,EAAal5B,UAAW/kF,EAAQ,GAGxE,IAAMm0F,GAAauzB,IAAgBtH,GAAcr7B,EAAjD,CAaA,GATApO,EAAIgB,OACJhB,EAAI0P,YAAc+5B,EAClBzpC,EAAIoO,UAAYA,EACZpO,EAAI6Q,cACP7Q,EAAI6Q,YAAYy2B,EAAax3B,YAAc,IAC3C9P,EAAI8Q,eAAiBw2B,EAAav3B,kBAAoB,GAGvD/P,EAAIoB,YACAoc,EAEHxd,EAAIO,IAAIpK,EAAMkoB,QAASloB,EAAMmoB,QAASne,EAAQ,EAAa,EAAV5gE,KAAK2zD,QAChD,CAEN4rB,EAAgB3oB,EAAM66C,iBAAiB,EAAG7wC,GAC1CH,EAAIM,OAAOwe,EAAcx/E,EAAGw/E,EAAc55D,GAE1C,IAAK,IAAI7+B,EAAI,EAAGA,EAAI0qH,EAAY1qH,IAC/By4F,EAAgB3oB,EAAM66C,iBAAiB3qH,EAAG85E,GAC1CH,EAAIqB,OAAOyd,EAAcx/E,EAAGw/E,EAAc55D,GAG5C86C,EAAIQ,YACJR,EAAIwB,SACJxB,EAAImB,WAGL,SAAS6wC,GAAa9+E,GACrB,OAAOgyC,GAAU6B,SAAS7zC,GAASA,EAAQ,EAG5C,IAAI++E,GAAqBpF,GAAiBtrD,OAAO,CAChD2jD,cAAe,WACd,IAAI3gE,EAAKj7C,KAGTi7C,EAAGrnB,MAAQqnB,EAAGy0C,SACdz0C,EAAGtnB,OAASsnB,EAAG00C,UACf10C,EAAGg5D,WAAa+S,GAAsB/rE,EAAGznB,SAAW,EACpDynB,EAAG85C,QAAU9+E,KAAK8mD,MAAM9hB,EAAGrnB,MAAQ,GACnCqnB,EAAG+5C,QAAU/+E,KAAK8mD,OAAO9hB,EAAGtnB,OAASsnB,EAAGg5D,YAAc,GACtDh5D,EAAG0sE,YAAc1xG,KAAKsG,IAAI0+B,EAAGtnB,OAASsnB,EAAGg5D,WAAYh5D,EAAGrnB,OAAS,GAGlEmoF,oBAAqB,WACpB,IAAI9gE,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACXl6D,EAAMq1D,OAAO8kB,kBACb9+E,EAAMg6D,OAAOo/B,kBAEjBp1B,GAAU5J,KAAKyE,EAAM71E,KAAKozB,UAAU,SAASQ,EAAS8qD,GACrD,GAAI7I,EAAMgZ,iBAAiBnQ,GAAe,CACzC,IAAI31C,EAAO8sC,EAAM6J,eAAehB,GAEhC1D,GAAU5J,KAAKx9C,EAAQ5zB,MAAM,SAASo+G,EAAUj/G,GAC/C,IAAInC,GAASq9C,EAAGs4C,cAAcyrB,GAC1BnrG,MAAMjW,IAAU+rC,EAAK/oC,KAAKb,GAAOm9E,SAIrC3gE,EAAMtG,KAAKsG,IAAI3e,EAAO2e,GACtB3E,EAAM3B,KAAK2B,IAAIha,EAAOga,WAKzBqjC,EAAG1+B,IAAOA,IAAQq1D,OAAO8kB,kBAAoB,EAAIn6E,EACjD0+B,EAAGrjC,IAAOA,IAAQg6D,OAAOo/B,kBAAoB,EAAIp5F,EAGjDqjC,EAAGuoE,0BAIJQ,kBAAmB,WAClB,OAAO/tG,KAAKq+C,KAAKt0D,KAAK2nH,YAAcX,GAAsBhnH,KAAKwzB,WAGhE2pF,qBAAsB,WACrB,IAAIliE,EAAKj7C,KAETujH,GAAiB9kH,UAAU0+G,qBAAqBx+G,KAAKs8C,GAGrDA,EAAGk5C,YAAcl5C,EAAGw7B,MAAM71E,KAAKwmE,OAAOzmE,KAAI,WACzC,IAAIkJ,EAAQ+xE,GAAUv1B,SAASpL,EAAGznB,QAAQ2gE,YAAY9tC,SAAU7jD,UAAWy4C,GAC3E,OAAOpxC,GAAmB,IAAVA,EAAcA,EAAQ,OAIxCk6F,iBAAkB,SAAShkG,EAAOu/E,GACjC,OAAQt/E,KAAKuzF,cAAcvzF,KAAKy2E,MAAM71E,KAAKozB,SAASsrD,GAAc1+E,KAAKb,KAGxE08G,IAAK,WACJ,IAAIxhE,EAAKj7C,KACL4vF,EAAO30C,EAAGznB,QAEVo8D,EAAKr5D,SAAWq5D,EAAKuE,YAAY59D,QACpC4wF,GAAmBlsE,GAEnBA,EAAG2tE,eAAe,EAAG,EAAG,EAAG,IAQ7Bb,cAAe,SAASc,EAAuBvB,EAAgBC,GAC9D,IAAItsE,EAAKj7C,KACL8oH,EAAsBxB,EAAevkH,EAAIkT,KAAK6zD,IAAIy9C,EAAexkH,GACjEgmH,EAAuB9yG,KAAK2B,IAAI0vG,EAAepuF,EAAI+hB,EAAGrnB,MAAO,GAAK3d,KAAK6zD,IAAIy9C,EAAeruF,GAC1F8vF,GAAsB1B,EAAenuF,EAAIljB,KAAK4zD,IAAI09C,EAAepuF,GACjE8vF,GAAyBhzG,KAAK2B,IAAI0vG,EAAel+G,GAAK6xC,EAAGtnB,OAASsnB,EAAGg5D,YAAa,GAAKh+F,KAAK4zD,IAAI09C,EAAen+G,GAEnH0/G,EAAsBJ,GAAaI,GACnCC,EAAuBL,GAAaK,GACpCC,EAAqBN,GAAaM,GAClCC,EAAwBP,GAAaO,GAErChuE,EAAG0sE,YAAc1xG,KAAKsG,IACrBtG,KAAK8mD,MAAM8rD,GAAyBC,EAAsBC,GAAwB,GAClF9yG,KAAK8mD,MAAM8rD,GAAyBG,EAAqBC,GAAyB,IACnFhuE,EAAG2tE,eAAeE,EAAqBC,EAAsBC,EAAoBC,IAGlFL,eAAgB,SAASM,EAAcC,EAAeC,EAAaC,GAClE,IAAIpuE,EAAKj7C,KACLspH,EAAWruE,EAAGrnB,MAAQu1F,EAAgBluE,EAAG0sE,YACzC4B,EAAUL,EAAejuE,EAAG0sE,YAC5B6B,EAASJ,EAAcnuE,EAAG0sE,YAC1B8B,EAAaxuE,EAAGtnB,OAASsnB,EAAGg5D,WAAcoV,EAAiBpuE,EAAG0sE,YAElE1sE,EAAG85C,QAAU9+E,KAAK8mD,OAAQwsD,EAAUD,GAAY,EAAKruE,EAAGsd,MACxDtd,EAAG+5C,QAAU/+E,KAAK8mD,OAAQysD,EAASC,GAAa,EAAKxuE,EAAGwd,IAAMxd,EAAGg5D,aAGlE2T,cAAe,SAAS7nH,GACvB,IAAI02E,EAAQz2E,KAAKy2E,MAMbgP,GAAS1lF,GALS,IAAM02E,EAAM71E,KAAKwmE,OAAOvpE,UAChC44E,EAAMjjD,SAAW,IACN0wD,YAAc,IAGc,IAErD,OAAQuB,EAAQ,EAAIA,EAAQ,IAAMA,GAASxvE,KAAK2zD,GAAK,EAAI,KAG1DsrB,8BAA+B,SAASt3F,GACvC,IAAIq9C,EAAKj7C,KAET,GAAI47E,GAAUnK,cAAc7zE,GAC3B,OAAOwwF,IAIR,IAAIs7B,EAAgBzuE,EAAG0sE,aAAe1sE,EAAGrjC,IAAMqjC,EAAG1+B,KAClD,OAAI0+B,EAAGznB,QAAQ6+D,MAAM/gF,SACZ2pC,EAAGrjC,IAAMha,GAAS8rH,GAEnB9rH,EAAQq9C,EAAG1+B,KAAOmtG,GAG3BhC,iBAAkB,SAAS3nH,EAAO4pH,GACjC,IAAI1uE,EAAKj7C,KACL4pH,EAAY3uE,EAAG2sE,cAAc7nH,GAAUkW,KAAK2zD,GAAK,EACrD,MAAO,CACN5zD,EAAGC,KAAK4zD,IAAI+/C,GAAaD,EAAqB1uE,EAAG85C,QACjDn5D,EAAG3lB,KAAK6zD,IAAI8/C,GAAaD,EAAqB1uE,EAAG+5C,UAInDS,yBAA0B,SAAS11F,EAAOnC,GACzC,OAAOoC,KAAK0nH,iBAAiB3nH,EAAOC,KAAKk1F,8BAA8Bt3F,KAGxEisH,gBAAiB,SAAS9pH,GACzB,IAAIk7C,EAAKj7C,KACLuc,EAAM0+B,EAAG1+B,IACT3E,EAAMqjC,EAAGrjC,IAEb,OAAOqjC,EAAGw6C,yBAAyB11F,GAAS,EAC3Ck7C,EAAGm5C,YAAc,EACjB73E,EAAM,GAAK3E,EAAM,EAAIA,EACrB2E,EAAM,GAAK3E,EAAM,EAAI2E,EACrB,IAMFwkG,UAAW,WACV,IAOIhkH,EAAG+/C,EAAQtmB,EAPXykB,EAAKj7C,KACL02E,EAAMz7B,EAAGy7B,IACTkZ,EAAO30C,EAAGznB,QACVwqF,EAAepuB,EAAK1E,UACpB4+B,EAAgBl6B,EAAKqE,WACrBnP,EAAYyhC,GAAiBuD,EAAchlC,UAAWk5B,EAAal5B,WACnEq7B,EAAYoG,GAAiBuD,EAAc1vE,MAAO4jE,EAAa5jE,OAgBnE,GAbIw1C,EAAKuE,YAAY59D,SACpB2xF,GAAgBjtE,GAGb+iE,EAAaznF,SAChBqlD,GAAU5J,KAAK/2B,EAAGo3C,OAAO,SAASxoF,EAAO9J,GAC1B,IAAVA,IACH+8C,EAAS7B,EAAGi6C,8BAA8Bj6C,EAAGmpE,eAAerkH,IAC5D0oH,GAAextE,EAAI+iE,EAAclhE,EAAQ/8C,OAKxC+pH,EAAcvzF,SAAWuuD,GAAaq7B,EAAW,CASpD,IARAzpC,EAAIgB,OACJhB,EAAIoO,UAAYA,EAChBpO,EAAI0P,YAAc+5B,EACdzpC,EAAI6Q,cACP7Q,EAAI6Q,YAAYk/B,GAAU,CAACqD,EAActjC,WAAYw3B,EAAax3B,WAAY,MAC9E9P,EAAI8Q,eAAiBi/B,GAAU,CAACqD,EAAcrjC,iBAAkBu3B,EAAav3B,iBAAkB,KAG3F1pF,EAAIk+C,EAAGw7B,MAAM71E,KAAKwmE,OAAOvpE,OAAS,EAAGd,GAAK,EAAGA,IACjD+/C,EAAS7B,EAAGi6C,8BAA8BtF,EAAKyC,MAAM/gF,QAAU2pC,EAAG1+B,IAAM0+B,EAAGrjC,KAC3E4e,EAAWykB,EAAGysE,iBAAiB3qH,EAAG+/C,GAClC45B,EAAIoB,YACJpB,EAAIM,OAAO/7B,EAAG85C,QAAS95C,EAAG+5C,SAC1Bte,EAAIqB,OAAOvhD,EAASxgB,EAAGwgB,EAASoF,GAChC86C,EAAIwB,SAGLxB,EAAImB,YAONqpC,YAAa,WACZ,IAAIjmE,EAAKj7C,KACL02E,EAAMz7B,EAAGy7B,IAET0b,EADOn3C,EAAGznB,QACM6+D,MAEpB,GAAKD,EAAS77D,QAAd,CAIA,IAGIumB,EAAQlpB,EAHRswD,EAAajpC,EAAG2sE,cAAc,GAC9BjQ,EAAW/7B,GAAUpoD,QAAQ4mD,WAAWgY,GACxC23B,EAAgBxD,GAAiBn0B,EAASymB,UAAWj/B,EAAc/zE,OAAOyzE,kBAG9E5C,EAAIgB,OACJhB,EAAIoD,KAAO69B,EAAS3rG,OACpB0qE,EAAIiB,UAAU18B,EAAG85C,QAAS95C,EAAG+5C,SAC7Bte,EAAIvG,OAAO+T,GACXxN,EAAI2E,UAAY,SAChB3E,EAAImyB,aAAe,SAEnBjtB,GAAU5J,KAAK/2B,EAAGo3C,OAAO,SAASxoF,EAAO9J,IAC1B,IAAVA,GAAgBqyF,EAAS9gF,WAI7BwrC,EAAS7B,EAAGi6C,8BAA8Bj6C,EAAGmpE,eAAerkH,IAExDqyF,EAASw0B,oBACZhzF,EAAQ8iD,EAAIuvB,YAAYp8F,GAAO+pB,MAC/B8iD,EAAIyP,UAAYiM,EAASy0B,cAEzBnwC,EAAIoT,UACFl2D,EAAQ,EAAIw+D,EAAS20B,kBACrBjqE,EAAS66D,EAASjyG,KAAO,EAAI0sF,EAAS00B,iBACvClzF,EAAoC,EAA5Bw+D,EAAS20B,iBACjBpP,EAASjyG,KAAmC,EAA5B0sF,EAAS00B,mBAI3BpwC,EAAIyP,UAAY4jC,EAChBrzC,EAAIoyB,SAASj/F,EAAO,GAAIizC,OAGzB45B,EAAImB,YAMLspC,WAAYvlC,GAAUxX,OAInB4lD,GAActD,GAClBiC,GAAmBnG,UAAYwH,GAE/B,IAAIC,GAAeruC,GAAUpI,YACzB02C,GAAYtuC,GAAUpoD,QAAQjvB,QAC9B4lH,GAAmBvuC,GAAU/J,eAG7Bu4C,GAAcx4C,OAAOy4C,mBAAqB,iBAC1CC,GAAc14C,OAAO24C,kBAAoB,iBAEzCC,GAAY,CACfC,YAAa,CACZC,QAAQ,EACRhlH,KAAM,EACNilH,MAAO,KAERC,OAAQ,CACPF,QAAQ,EACRhlH,KAAM,IACNilH,MAAO,IAERE,OAAQ,CACPH,QAAQ,EACRhlH,KAAM,IACNilH,MAAO,IAERG,KAAM,CACLJ,QAAQ,EACRhlH,KAAM,KACNilH,MAAO,IAERI,IAAK,CACJL,QAAQ,EACRhlH,KAAM,MACNilH,MAAO,IAER3vE,KAAM,CACL0vE,QAAQ,EACRhlH,KAAM,OACNilH,MAAO,GAERnwE,MAAO,CACNkwE,QAAQ,EACRhlH,KAAM,OACNilH,MAAO,IAERK,QAAS,CACRN,QAAQ,EACRhlH,KAAM,OACNilH,MAAO,GAERM,KAAM,CACLP,QAAQ,EACRhlH,KAAM,SAIJwlH,GAAQ1uH,OAAOyF,KAAKuoH,IAExB,SAASW,GAAOhiH,EAAGC,GAClB,OAAOD,EAAIC,EAGZ,SAASgiH,GAAYl0B,GACpB,IAEIn6F,EAAGs1E,EAAMwB,EAFTw3C,EAAO,GACPC,EAAM,GAGV,IAAKvuH,EAAI,EAAGs1E,EAAO6kB,EAAMr5F,OAAQd,EAAIs1E,IAAQt1E,EAEvCsuH,EADLx3C,EAAOqjB,EAAMn6F,MAEZsuH,EAAKx3C,IAAQ,EACby3C,EAAI3tH,KAAKk2E,IAIX,OAAOy3C,EAGR,SAASC,GAAO/3F,GACf,OAAOooD,GAAU/J,eAAer+C,EAAQsnB,KAAKv+B,IAAKiX,EAAQ6+D,MAAM91E,KAGjE,SAASivG,GAAOh4F,GACf,OAAOooD,GAAU/J,eAAer+C,EAAQsnB,KAAKljC,IAAK4b,EAAQ6+D,MAAMz6E,KAkBjE,SAAS6zG,GAAiBC,EAAYnvG,EAAK3E,EAAK+zG,GAC/C,GAAqB,WAAjBA,IAA8BD,EAAW7tH,OAC5C,MAAO,CACN,CAACi9C,KAAMv+B,EAAKm7E,IAAK,GACjB,CAAC58C,KAAMljC,EAAK8/E,IAAK,IAInB,IAEI36F,EAAGs1E,EAAM9jE,EAAM6N,EAAM3e,EAFrBmuH,EAAQ,GACR10B,EAAQ,CAAC36E,GAGb,IAAKxf,EAAI,EAAGs1E,EAAOq5C,EAAW7tH,OAAQd,EAAIs1E,IAAQt1E,GACjDqf,EAAOsvG,EAAW3uH,IACPwf,GAAOH,EAAOxE,GACxBs/E,EAAMv5F,KAAKye,GAMb,IAFA86E,EAAMv5F,KAAKia,GAEN7a,EAAI,EAAGs1E,EAAO6kB,EAAMr5F,OAAQd,EAAIs1E,IAAQt1E,EAC5CU,EAAOy5F,EAAMn6F,EAAI,GACjBwR,EAAO2oF,EAAMn6F,EAAI,GACjBqf,EAAO86E,EAAMn6F,QAGAO,IAATiR,QAA+BjR,IAATG,GAAsBwY,KAAKuH,OAAO/f,EAAO8Q,GAAQ,KAAO6N,GACjFwvG,EAAMjuH,KAAK,CAACm9C,KAAM1+B,EAAMs7E,IAAK36F,GAAKs1E,EAAO,KAI3C,OAAOu5C,EAIR,SAASC,GAAOD,EAAOxtH,EAAKR,GAK3B,IAJA,IAEIkuH,EAAKC,EAAIC,EAFTC,EAAK,EACLt9D,EAAKi9D,EAAM/tH,OAAS,EAGjBouH,GAAM,GAAKA,GAAMt9D,GAAI,CAK3B,GAHAo9D,EAAKH,GADLE,EAAOG,EAAKt9D,GAAO,GACF,IAAM,KACvBq9D,EAAKJ,EAAME,IAENC,EAEJ,MAAO,CAACE,GAAI,KAAMt9D,GAAIq9D,GAChB,GAAIA,EAAG5tH,GAAOR,EACpBquH,EAAKH,EAAM,MACL,MAAIC,EAAG3tH,GAAOR,GAGpB,MAAO,CAACquH,GAAIF,EAAIp9D,GAAIq9D,GAFpBr9D,EAAKm9D,EAAM,GAOb,MAAO,CAACG,GAAID,EAAIr9D,GAAI,MASrB,SAASu9D,GAAcN,EAAOO,EAAMx5C,EAAMy5C,GACzC,IAAI1xE,EAAQmxE,GAAOD,EAAOO,EAAMx5C,GAG5BpkE,EAAQmsC,EAAMuxE,GAAiBvxE,EAAMiU,GAA+BjU,EAAMuxE,GAAhCL,EAAMA,EAAM/tH,OAAS,GAA5C+tH,EAAM,GACzBnuH,EAAQi9C,EAAMuxE,GAAiBvxE,EAAMiU,GAA+BjU,EAAMiU,GAAhCi9D,EAAMA,EAAM/tH,OAAS,GAA5C+tH,EAAM,GAEzBS,EAAO5uH,EAAK0uH,GAAQ59G,EAAK49G,GACzB5iD,EAAQ8iD,GAAQ15C,EAAOpkE,EAAK49G,IAASE,EAAO,EAC5CvvE,GAAUr/C,EAAK2uH,GAAQ79G,EAAK69G,IAAS7iD,EAEzC,OAAOh7D,EAAK69G,GAAQtvE,EAGrB,SAASwvE,GAAYz/C,EAAO37D,GAC3B,IAAIq7G,EAAU1/C,EAAM2/C,SAChBh5F,EAAUq5C,EAAMr5C,QAAQsnB,KACxB2xE,EAASj5F,EAAQi5F,OACjB97G,EAAS87G,GAAUj5F,EAAQ7iB,OAC3B/S,EAAQsT,EAaZ,MAXsB,oBAAXu7G,IACV7uH,EAAQ6uH,EAAO7uH,IAIXg+E,GAAUjK,SAAS/zE,KACvBA,EAA0B,kBAAX+S,EACZ47G,EAAQzW,MAAMl4G,EAAO+S,GACrB47G,EAAQzW,MAAMl4G,IAGJ,OAAVA,GACKA,GAKJ6uH,GAA4B,oBAAX97G,IACrB/S,EAAQ+S,EAAOO,GAGV0qE,GAAUjK,SAAS/zE,KACvBA,EAAQ2uH,EAAQzW,MAAMl4G,KAIjBA,GAGR,SAASk4G,GAAMjpC,EAAO37D,GACrB,GAAI0qE,GAAUnK,cAAcvgE,GAC3B,OAAO,KAGR,IAAIsiB,EAAUq5C,EAAMr5C,QAAQsnB,KACxBl9C,EAAQ0uH,GAAYz/C,EAAOA,EAAM0mB,cAAcriF,IACnD,OAAc,OAAVtT,GAIA41B,EAAQhW,QACX5f,GAASivE,EAAM2/C,SAASzW,QAAQn4G,EAAO41B,EAAQhW,QAJxC5f,EAaT,SAAS8uH,GAA0BC,EAASpwG,EAAK3E,EAAKg1G,GACrD,IACI7vH,EAAG8vH,EAAUtT,EADblnC,EAAO64C,GAAMrtH,OAGjB,IAAKd,EAAImuH,GAAM15F,QAAQm7F,GAAU5vH,EAAIs1E,EAAO,IAAKt1E,EAIhD,GAFAw8G,GADAsT,EAAWrC,GAAUU,GAAMnuH,KACT4tH,MAAQkC,EAASlC,MAAQL,GAEvCuC,EAASnC,QAAUz0G,KAAKq+C,MAAM18C,EAAM2E,IAAQg9F,EAASsT,EAASnnH,QAAUknH,EAC3E,OAAO1B,GAAMnuH,GAIf,OAAOmuH,GAAM74C,EAAO,GAMrB,SAASy6C,GAA2BjgD,EAAO8wC,EAAUgP,EAASpwG,EAAK3E,GAClE,IAAI7a,EAAGmmH,EAEP,IAAKnmH,EAAImuH,GAAMrtH,OAAS,EAAGd,GAAKmuH,GAAM15F,QAAQm7F,GAAU5vH,IAEvD,GADAmmH,EAAOgI,GAAMnuH,GACTytH,GAAUtH,GAAMwH,QAAU79C,EAAM2/C,SAAS/jD,KAAK7wD,EAAK2E,EAAK2mG,IAASvF,EAAW,EAC/E,OAAOuF,EAIT,OAAOgI,GAAMyB,EAAUzB,GAAM15F,QAAQm7F,GAAW,GAGjD,SAASI,GAAmB7J,GAC3B,IAAK,IAAInmH,EAAImuH,GAAM15F,QAAQ0xF,GAAQ,EAAG7wC,EAAO64C,GAAMrtH,OAAQd,EAAIs1E,IAAQt1E,EACtE,GAAIytH,GAAUU,GAAMnuH,IAAI2tH,OACvB,OAAOQ,GAAMnuH,GAWhB,SAASiwH,GAASngD,EAAOtwD,EAAK3E,EAAKg1G,GAClC,IAQI9xE,EARAyxE,EAAU1/C,EAAM2/C,SAChBh5F,EAAUq5C,EAAMr5C,QAChBy5F,EAAWz5F,EAAQsnB,KACnBs9D,EAAQ6U,EAAS/J,MAAQwJ,GAA0BO,EAASN,QAASpwG,EAAK3E,EAAKg1G,GAC/E3J,EAAWiH,GAAU,CAAC+C,EAAShK,SAAUgK,EAASC,aAAc,IAChEC,EAAoB,SAAV/U,GAAmB6U,EAASG,WACtC9U,EAAQ/7F,EACR81E,EAAQ,GAYZ,GARI86B,IACH7U,GAASiU,EAAQxW,QAAQuC,EAAO,UAAW6U,IAI5C7U,GAASiU,EAAQxW,QAAQuC,EAAO6U,EAAU,MAAQ/U,GAG9CmU,EAAQ9jD,KAAK7wD,EAAK2E,EAAK67F,GAAS,IAAS6K,EAC5C,MAAM1mG,EAAM,QAAU3E,EAAM,uCAAyCqrG,EAAW,IAAM7K,EAGvF,IAAKt9D,EAAOw9D,EAAOx9D,EAAOljC,EAAKkjC,GAAQyxE,EAAQ78G,IAAIorC,EAAMmoE,EAAU7K,GAClE/lB,EAAM10F,KAAKm9C,GAOZ,OAJIA,IAASljC,GAA0B,UAAnB4b,EAAQ81D,QAC3B+I,EAAM10F,KAAKm9C,GAGLu3C,EASR,SAASg7B,GAAezB,EAAOv5B,EAAO91E,EAAK3E,EAAK4b,GAC/C,IAEI8kF,EAAOnhG,EAFPkS,EAAQ,EACRH,EAAM,EAkBV,OAfIsK,EAAQspB,QAAUu1C,EAAMx0F,SAC3By6G,EAAQ4T,GAAcN,EAAO,OAAQv5B,EAAM,GAAI,OAE9ChpE,EADoB,IAAjBgpE,EAAMx0F,OACD,EAAIy6G,GAEH4T,GAAcN,EAAO,OAAQv5B,EAAM,GAAI,OAASimB,GAAS,EAEnEnhG,EAAO+0G,GAAcN,EAAO,OAAQv5B,EAAMA,EAAMx0F,OAAS,GAAI,OAE5DqrB,EADoB,IAAjBmpE,EAAMx0F,OACHsZ,GAECA,EAAO+0G,GAAcN,EAAO,OAAQv5B,EAAMA,EAAMx0F,OAAS,GAAI,QAAU,GAIzE,CAACwrB,MAAOA,EAAOH,IAAKA,EAAKqwF,OAAQ,GAAKlwF,EAAQ,EAAIH,IAG1D,SAASokG,GAAczgD,EAAOwlB,EAAO1xF,EAAK4sH,GACzC,IAGIpV,EAAOp4G,EAHPwsH,EAAU1/C,EAAM2/C,SAChBlU,GAASiU,EAAQxW,QAAQ1jB,EAAM,GAAGz0F,MAAO2vH,GACzCp2G,EAAOk7E,EAAMA,EAAMx0F,OAAS,GAAGD,MAGnC,IAAKu6G,EAAQG,EAAOH,GAAShhG,EAAMghG,GAASoU,EAAQ78G,IAAIyoG,EAAO,EAAGoV,IACjExtH,EAAQY,EAAIw3G,KACC,IACZ9lB,EAAMtyF,GAAOo4G,OAAQ,GAGvB,OAAO9lB,EAGR,SAASm7B,GAAoB3gD,EAAOx7D,EAAQk8G,GAC3C,IAGIxwH,EAAGa,EAHHy0F,EAAQ,GACR1xF,EAAM,GACN0xE,EAAOhhE,EAAOxT,OAGlB,IAAKd,EAAI,EAAGA,EAAIs1E,IAAQt1E,EAEvB4D,EADA/C,EAAQyT,EAAOtU,IACFA,EAEbs1F,EAAM10F,KAAK,CACVC,MAAOA,EACPu6G,OAAO,IAMT,OAAiB,IAAT9lC,GAAek7C,EAAqBD,GAAczgD,EAAOwlB,EAAO1xF,EAAK4sH,GAAzCl7B,EAGrC,IAAIo7B,GAAkB,CACrBj3F,SAAU,SASVm1F,aAAc,SASdriC,OAAQ,OAERokC,SAAU,GACV5yE,KAAM,CACL2xE,QAAQ,EACRvJ,MAAM,EACN1lG,OAAO,EACPmwG,eAAe,EACfP,YAAY,EACZT,QAAS,cACTiB,eAAgB,IAEjBv7B,MAAO,CACNmoB,UAAU,EAUVp4G,OAAQ,OAER+1G,MAAO,CACNhX,SAAS,KAKR0sB,GAAa/L,GAAW7pD,OAAO,CAClC+kB,WAAY,WACXh9E,KAAK8sG,oBACLgV,GAAWrjH,UAAUu+E,WAAWr+E,KAAKqB,OAGtCu1B,OAAQ,WACP,IAAI0lB,EAAKj7C,KACLwzB,EAAUynB,EAAGznB,QACbsnB,EAAOtnB,EAAQsnB,OAAStnB,EAAQsnB,KAAO,IACvCyxE,EAAUtxE,EAAGuxE,SAAW,IAAIpW,GAAcC,MAAM7iF,EAAQk6F,SAASrzE,MAarE,OAVA4vE,GAAa,aAAcnvE,EAAKnqC,OAAQ,cAAe,eACvDs5G,GAAa,aAAcnvE,EAAKv+B,IAAK,WAAY,aACjD0tG,GAAa,aAAcnvE,EAAKljC,IAAK,WAAY,aAMjDgkE,GAAU9I,QAAQh4B,EAAK8yE,eAAgBrB,EAAQ1W,WAExCiM,GAAWrjH,UAAU82B,OAAOpwB,MAAM81C,EAAIz4C,YAM9C+wF,cAAe,SAASyrB,GAIvB,OAHIA,QAA2B1hH,IAAf0hH,EAAS7lF,IACxB6lF,EAAWA,EAAS7lF,GAEd2oF,GAAWrjH,UAAU80F,cAAc50F,KAAKqB,KAAMg/G,IAGtDjD,oBAAqB,WACpB,IAUIh/G,EAAGyyF,EAAGnd,EAAM+jB,EAAMx1F,EAAM2P,EAAWu9G,EAVnC7yE,EAAKj7C,KACLy2E,EAAQx7B,EAAGw7B,MACX81C,EAAUtxE,EAAGuxE,SACbh5F,EAAUynB,EAAGznB,QACb0vF,EAAO1vF,EAAQsnB,KAAKooE,MAAQ,MAC5B3mG,EAAM+tG,GACN1yG,EAAMwyG,GACNsB,EAAa,GACb13F,EAAW,GACXozC,EAAS,GAET2mD,EAAa9yE,EAAG6/D,aAEpB,IAAK/9G,EAAI,EAAGs1E,EAAO07C,EAAWlwH,OAAQd,EAAIs1E,IAAQt1E,EACjDqqE,EAAOzpE,KAAKm4G,GAAM76D,EAAI8yE,EAAWhxH,KAGlC,IAAKA,EAAI,EAAGs1E,GAAQoE,EAAM71E,KAAKozB,UAAY,IAAIn2B,OAAQd,EAAIs1E,IAAQt1E,EAClE,GAAI05E,EAAMgZ,iBAAiB1yF,GAI1B,GAHA6D,EAAO61E,EAAM71E,KAAKozB,SAASj3B,GAAG6D,KAG1Bg7E,GAAUj2E,SAAS/E,EAAK,IAG3B,IAFAozB,EAASj3B,GAAK,GAETyyF,EAAI,EAAG4G,EAAOx1F,EAAK/C,OAAQ2xF,EAAI4G,IAAQ5G,EAC3Cj/E,EAAYulG,GAAM76D,EAAIr6C,EAAK4uF,IAC3Bk8B,EAAW/tH,KAAK4S,GAChByjB,EAASj3B,GAAGyyF,GAAKj/E,OAGlByjB,EAASj3B,GAAKqqE,EAAOxoE,MAAM,GACtBkvH,IACJpC,EAAaA,EAAWpiH,OAAO89D,GAC/B0mD,GAAc,QAIhB95F,EAASj3B,GAAK,GAIZqqE,EAAOvpE,SACV0e,EAAMtG,KAAKsG,IAAIA,EAAK6qD,EAAO,IAC3BxvD,EAAM3B,KAAK2B,IAAIA,EAAKwvD,EAAOA,EAAOvpE,OAAS,KAGxC6tH,EAAW7tH,SACd6tH,EAAar5C,EAAO,EAAI+4C,GAAYM,GAAY7wC,KAAKswC,IAAUO,EAAW7wC,KAAKswC,IAC/E5uG,EAAMtG,KAAKsG,IAAIA,EAAKmvG,EAAW,IAC/B9zG,EAAM3B,KAAK2B,IAAIA,EAAK8zG,EAAWA,EAAW7tH,OAAS,KAGpD0e,EAAMu5F,GAAM76D,EAAIswE,GAAO/3F,KAAajX,EACpC3E,EAAMk+F,GAAM76D,EAAIuwE,GAAOh4F,KAAa5b,EAGpC2E,EAAMA,IAAQ+tG,IAAeiC,EAAQxW,QAAQ5nG,KAAKgmC,MAAO+uE,GAAQ3mG,EACjE3E,EAAMA,IAAQwyG,IAAemC,EAAQvW,MAAM7nG,KAAKgmC,MAAO+uE,GAAQ,EAAItrG,EAGnEqjC,EAAG1+B,IAAMtG,KAAKsG,IAAIA,EAAK3E,GACvBqjC,EAAGrjC,IAAM3B,KAAK2B,IAAI2E,EAAM,EAAG3E,GAG3BqjC,EAAG+yE,OAAS,GACZ/yE,EAAGgzE,YAAc,CAChBrtH,KAAM8qH,EACN13F,SAAUA,EACVozC,OAAQA,IAIV80C,WAAY,WACX,IAWIn/G,EAAGs1E,EAAM9hE,EAXT0qC,EAAKj7C,KACLuc,EAAM0+B,EAAG1+B,IACT3E,EAAMqjC,EAAGrjC,IACT4b,EAAUynB,EAAGznB,QACb4+D,EAAW5+D,EAAQ6+D,MACnB46B,EAAWz5F,EAAQsnB,KACnB4wE,EAAazwE,EAAGgzE,YAChB57B,EAAQ,GACRu6B,EAAW3xE,EAAGizE,iBAAiB3xG,GAC/Bna,EAASgwF,EAAShwF,OAClBupH,EAAen4F,EAAQm4F,aAqB3B,IAjBCD,EADc,SAAXtpH,GAAiC,SAAXA,GAAsC,WAAjBupH,EACjCD,EAAW9qH,KACH,WAAXwB,EACGspH,EAAWtkD,OAEX4lD,GAAS/xE,EAAI1+B,EAAK3E,EAAKg1G,GAGd,UAAnBp5F,EAAQ81D,QAAsBoiC,EAAW7tH,SAC5C0e,EAAMmvG,EAAW,GACjB9zG,EAAM8zG,EAAWA,EAAW7tH,OAAS,IAItC0e,EAAMu5F,GAAM76D,EAAIswE,GAAO/3F,KAAajX,EACpC3E,EAAMk+F,GAAM76D,EAAIuwE,GAAOh4F,KAAa5b,EAG/B7a,EAAI,EAAGs1E,EAAOq5C,EAAW7tH,OAAQd,EAAIs1E,IAAQt1E,GACjDwT,EAAYm7G,EAAW3uH,KACNwf,GAAOhM,GAAaqH,GACpCy6E,EAAM10F,KAAK4S,GAsBb,OAlBA0qC,EAAG1+B,IAAMA,EACT0+B,EAAGrjC,IAAMA,EAKTqjC,EAAGkzE,MAAQlB,EAAS/J,OAAS9wB,EAASooB,SACnCkS,GAA0BO,EAASN,QAAS1xE,EAAG1+B,IAAK0+B,EAAGrjC,IAAKg1G,GAC5DE,GAA2B7xE,EAAIo3C,EAAMx0F,OAAQovH,EAASN,QAAS1xE,EAAG1+B,IAAK0+B,EAAGrjC,MAC7EqjC,EAAGmzE,WAAch8B,EAAS+lB,MAAMhX,SAAwB,SAAblmD,EAAGkzE,MAC3CpB,GAAmB9xE,EAAGkzE,YADwC7wH,EAEjE29C,EAAG+yE,OAASvC,GAAiBxwE,EAAGgzE,YAAYrtH,KAAM2b,EAAK3E,EAAK+zG,GAC5D1wE,EAAGozE,SAAWhB,GAAepyE,EAAG+yE,OAAQ37B,EAAO91E,EAAK3E,EAAK4b,GAErD4+D,EAAS9gF,SACZ+gF,EAAM/gF,UAGAk8G,GAAoBvyE,EAAIo3C,EAAOp3C,EAAGmzE,aAG1CrqB,iBAAkB,SAAShkG,EAAOu/E,GACjC,IAAIrkC,EAAKj7C,KACLusH,EAAUtxE,EAAGuxE,SACb5rH,EAAOq6C,EAAGw7B,MAAM71E,KAChBqsH,EAAWhyE,EAAGznB,QAAQsnB,KACtBjxC,EAAQjJ,EAAKwmE,QAAUrnE,EAAQa,EAAKwmE,OAAOvpE,OAAS+C,EAAKwmE,OAAOrnE,GAAS,GACzEnC,EAAQgD,EAAKozB,SAASsrD,GAAc1+E,KAAKb,GAK7C,OAHI67E,GAAUj2E,SAAS/H,KACtBiM,EAAQoxC,EAAGs4C,cAAc31F,IAEtBqvH,EAASqB,cACL/B,EAAQ57G,OAAO27G,GAAYrxE,EAAIpxC,GAAQojH,EAASqB,eAEnC,kBAAVzkH,EACHA,EAED0iH,EAAQ57G,OAAO27G,GAAYrxE,EAAIpxC,GAAQojH,EAASW,eAAetzE,WAOvEi0E,mBAAoB,SAASzzE,EAAM/6C,EAAOsyF,EAAO1hF,GAChD,IAAIsqC,EAAKj7C,KACLusH,EAAUtxE,EAAGuxE,SACbh5F,EAAUynB,EAAGznB,QACbqiF,EAAUriF,EAAQsnB,KAAK8yE,eACvBY,EAAc3Y,EAAQ56D,EAAGkzE,OACzBZ,EAAYtyE,EAAGmzE,WACfK,EAAc5Y,EAAQ0X,GACtBx7G,EAAOsgF,EAAMtyF,GACbqyF,EAAW5+D,EAAQ6+D,MACnB8lB,EAAQoV,GAAakB,GAAe18G,GAAQA,EAAKomG,MACjDtuG,EAAQ0iH,EAAQ57G,OAAOmqC,EAAMnqC,IAAkBwnG,EAAQsW,EAAcD,IACrEE,EAAiBvW,EAAQ/lB,EAAS+lB,MAAQ/lB,EAASgmB,MACnDuW,EAAYzE,GAAU,CACzBwE,EAAeroE,SACfqoE,EAAetR,aACfhrB,EAAS/rC,SACT+rC,EAASgrB,eAGV,OAAOuR,EAAYA,EAAU9kH,EAAO9J,EAAOsyF,GAASxoF,GAGrDszG,qBAAsB,SAAS9qB,GAC9B,IACIt1F,EAAGs1E,EADHjL,EAAS,GAGb,IAAKrqE,EAAI,EAAGs1E,EAAOggB,EAAMx0F,OAAQd,EAAIs1E,IAAQt1E,EAC5CqqE,EAAOzpE,KAAKqC,KAAKuuH,mBAAmBl8B,EAAMt1F,GAAGa,MAAOb,EAAGs1F,IAGxD,OAAOjrB,GAMRwnD,kBAAmB,SAAS9zE,GAC3B,IAAIG,EAAKj7C,KACLg4G,EAAU/8D,EAAGozE,SACb32B,EAAMw0B,GAAcjxE,EAAG+yE,OAAQ,OAAQlzE,EAAM,OACjD,OAAOG,EAAGkzC,oBAAoB6pB,EAAQ3uF,MAAQquE,GAAOsgB,EAAQuB,SAG9DzsB,iBAAkB,SAASlvF,EAAOmC,EAAOu/E,GACxC,IAAIrkC,EAAKj7C,KACL86C,EAAO,KAUX,QARcx9C,IAAVyC,QAAwCzC,IAAjBgiF,IAC1BxkC,EAAOG,EAAGgzE,YAAYj6F,SAASsrD,GAAcv/E,IAGjC,OAAT+6C,IACHA,EAAOg7D,GAAM76D,EAAIr9C,IAGL,OAATk9C,EACH,OAAOG,EAAG2zE,kBAAkB9zE,IAI9ByvC,gBAAiB,SAASxqF,GACzB,IAAIsyF,EAAQryF,KAAKsqF,WACjB,OAAOvqF,GAAS,GAAKA,EAAQsyF,EAAMx0F,OAClCmC,KAAK4uH,kBAAkBv8B,EAAMtyF,GAAOnC,OACpC,MAGFshH,iBAAkB,SAASpN,GAC1B,IAAI72D,EAAKj7C,KACLg4G,EAAU/8D,EAAGozE,SACb32B,EAAMz8C,EAAGmkE,mBAAmBtN,GAASkG,EAAQuB,OAASvB,EAAQ9uF,IAC9D4xB,EAAOoxE,GAAcjxE,EAAG+yE,OAAQ,MAAOt2B,EAAK,QAGhD,OAAOz8C,EAAGuxE,SAASvW,QAAQn7D,IAM5B+zE,cAAe,SAAShlH,GACvB,IAAIoxC,EAAKj7C,KACLkiH,EAAYjnE,EAAGznB,QAAQ6+D,MACvBy8B,EAAiB7zE,EAAGy7B,IAAIuvB,YAAYp8F,GAAO+pB,MAC3C6xD,EAAQ7J,GAAUs1B,UAAUj2D,EAAGgxC,eAAiBi2B,EAAU5H,YAAc4H,EAAU7H,aAClFmE,EAAcvoG,KAAK4zD,IAAI4b,GACvBg5B,EAAcxoG,KAAK6zD,IAAI2b,GACvBspC,EAAe5E,GAAiBjI,EAAU5nC,SAAUV,EAAc/zE,OAAO2zE,iBAE7E,MAAO,CACNjgD,EAAIu1F,EAAiBtQ,EAAgBuQ,EAAetQ,EACpDxjF,EAAI6zF,EAAiBrQ,EAAgBsQ,EAAevQ,IAQtDwQ,cAAe,SAASnlH,GACvB,OAAO7J,KAAK6uH,cAAchlH,GAAO0vB,GAMlC20F,iBAAkB,SAASe,GAC1B,IAAIh0E,EAAKj7C,KACLitH,EAAWhyE,EAAGznB,QAAQsnB,KACtB8yE,EAAiBX,EAASW,eAG1Bj9G,EAASi9G,EAAeX,EAAS/J,OAAS0K,EAAenD,YACzDyE,EAAej0E,EAAGszE,mBAAmBU,EAAa,EAAGzB,GAAoBvyE,EAAI,CAACg0E,GAAch0E,EAAGmzE,YAAaz9G,GAC5GjL,EAAOu1C,EAAG4zE,cAAcK,GACxBtC,EAAW32G,KAAK8mD,MAAM9hB,EAAGgxC,eAAiBhxC,EAAGrnB,MAAQluB,EAAK6zB,EAAI0hB,EAAGtnB,OAASjuB,EAAKu1B,GAMnF,OAJIggB,EAAGznB,QAAQspB,QACd8vE,IAGMA,EAAW,EAAIA,EAAW,KAK/BuC,GAAc1B,GAClBI,GAAWrL,UAAY2M,GAEvB,IAAIpvC,GAAS,CACZqvC,SAAUnN,GACVhuC,OAAQ6wC,GACR/N,YAAa8O,GACbwJ,aAAc1G,GACd7tE,KAAM+yE,IAGHyB,GAAU,CACbh1E,SAAU,yBACVmwE,YAAa,gBACbG,OAAQ,YACRC,OAAQ,SACRC,KAAM,KACNC,IAAK,QACL/vE,KAAM,KACNR,MAAO,WACPwwE,QAAS,cACTC,KAAM,QAGP7U,GAAcC,MAAMH,SAA2B,oBAAXvvC,EAAwB,CAC3D4oD,IAAK,SAEL1Z,QAAS,WACR,OAAOyZ,IAGRxZ,MAAO,SAASl4G,EAAO+S,GAMtB,MALqB,kBAAV/S,GAAwC,kBAAX+S,EACvC/S,EAAQ+oE,EAAO/oE,EAAO+S,GACV/S,aAAiB+oE,IAC7B/oE,EAAQ+oE,EAAO/oE,IAETA,EAAMgwE,UAAYhwE,EAAM2nC,UAAY,MAG5C50B,OAAQ,SAASmqC,EAAMnqC,GACtB,OAAOg2D,EAAO7rB,GAAMnqC,OAAOA,IAG5BjB,IAAK,SAASorC,EAAM00E,EAAQtM,GAC3B,OAAOv8C,EAAO7rB,GAAMprC,IAAI8/G,EAAQtM,GAAM39E,WAGvCkjC,KAAM,SAAS7wD,EAAK2E,EAAK2mG,GACxB,OAAOv8C,EAAO/uD,GAAK6wD,KAAK9B,EAAOpqD,GAAM2mG,IAGtCnN,QAAS,SAASj7D,EAAMooE,EAAMiK,GAE7B,OADAryE,EAAO6rB,EAAO7rB,GACD,YAATooE,EACIpoE,EAAKsyE,WAAWD,GAAS5nF,UAE1BuV,EAAKi7D,QAAQmN,GAAM39E,WAG3BywE,MAAO,SAASl7D,EAAMooE,GACrB,OAAOv8C,EAAO7rB,GAAMk7D,MAAMkN,GAAM39E,WAWjC0wE,QAAS,SAASn7D,GACjB,OAAO6rB,EAAO7rB,KAEZ,IAEJ8+B,EAAcR,KAAK,SAAU,CAC5B3lD,QAAS,CACRg8F,OAAQ,CACPC,WAAW,MAKd,IAAIC,GAAU,CACbn7F,QAAS,SAASpyB,GACjB,IAAIrC,EAAQqC,EAAO61E,KACfxB,EAAQr0E,EAAOq0E,MACf9sC,EAAO8sC,EAAM6J,eAAevgF,GAE5BgnF,EADUp9C,GAAQ8sC,EAAMgZ,iBAAiB1vF,IACpB4pC,EAAKnV,QAAQwyD,WAAc,GAChDnpF,EAASkpF,EAAOlpF,QAAU,EAE9B,OAAQA,EAAgB,SAASs3B,EAAOp4B,GACvC,OAAQA,EAAIc,GAAUkpF,EAAOhqF,GAAGqgF,OAAU,MAD1B,MAKlBwyC,SAAU,SAASxtH,GAClB,IAAIwtH,EAAWxtH,EAAOwtH,SAClB55G,EAAI45G,EAAWA,EAAS55G,EAAI,KAC5B4lB,EAAIg0F,EAAWA,EAASh0F,EAAI,KAEhC,OAAIggD,GAAUj/E,QAAQizH,GACd,SAASz6F,EAAOp4B,GACtB,OAAO6yH,EAAS7yH,IAIX,SAASo4B,GACf,MAAO,CACNnf,EAAS,OAANA,EAAamf,EAAMnf,EAAIA,EAC1B4lB,EAAS,OAANA,EAAazG,EAAMyG,EAAIA,MAO9B,SAASi0F,GAAW3yB,EAAIn9F,EAAO28B,GAC9B,IAEIv6B,EAFAgmE,EAAQ+0B,EAAG7f,QAAU,GACrBpF,EAAO9P,EAAM8P,KAOjB,QAJa36E,IAAT26E,IACHA,IAAS9P,EAAM+Z,kBAGH,IAATjK,GAA2B,OAATA,EACrB,OAAO,EAGR,IAAa,IAATA,EACH,MAAO,SAIR,GADA91E,EAAS2O,WAAWmnE,EAAM,IACtBtG,SAASxvE,IAAW8T,KAAK8mD,MAAM56D,KAAYA,EAK9C,MAJgB,MAAZ81E,EAAK,IAA0B,MAAZA,EAAK,KAC3B91E,EAASpC,EAAQoC,KAGdA,IAAWpC,GAASoC,EAAS,GAAKA,GAAUu6B,IAIzCv6B,EAGR,OAAQ81E,GAER,IAAK,SACJ,MAAO,QACR,IAAK,MACJ,MAAO,MACR,IAAK,OACJ,MAAO,SAER,IAAK,SACL,IAAK,QACL,IAAK,MACJ,OAAOA,EAER,QACC,OAAO,GAIT,SAAS63C,GAAsB1tH,GAC9B,IAII6mF,EAJA9gB,EAAQ/lE,EAAO86F,GAAG7f,QAAU,GAC5BxQ,EAAQzqE,EAAO86F,GAAGtK,QAAU,GAC5B3a,EAAO71E,EAAO61E,KACd91E,EAAS,KAGb,GAAIwvE,SAASsG,GACZ,OAAO,KAiBR,GAVa,UAATA,EACH91E,OAA+B7E,IAAtB6qE,EAAM4nD,YAA4BljD,EAAMkK,OAAS5O,EAAM4nD,YAC7C,QAAT93C,EACV91E,OAA4B7E,IAAnB6qE,EAAM6nD,SAAyBnjD,EAAMpU,IAAM0P,EAAM6nD,cAC5B1yH,IAApB6qE,EAAM8nD,UAChB9tH,EAASgmE,EAAM8nD,UACLpjD,EAAMmf,eAChB7pF,EAAS0qE,EAAMmf,qBAGD1uF,IAAX6E,GAAmC,OAAXA,EAAiB,CAC5C,QAAiB7E,IAAb6E,EAAO6T,QAAgC1Y,IAAb6E,EAAOy5B,EACpC,OAAOz5B,EAGR,GAAIy5E,GAAUjK,SAASxvE,GAEtB,MAAO,CACN6T,GAFDizE,EAAapc,EAAMof,gBAEF9pF,EAAS,KACzBy5B,EAAGqtD,EAAa,KAAO9mF,GAK1B,OAAO,KAGR,SAAS+tH,GAAwB9tH,GAChC,IAKIinB,EAAOH,EAAKojE,EAAQvvF,EAAGo4B,EALvB03C,EAAQzqE,EAAO86F,GAAGtK,OAClBp/D,EAAUq5C,EAAMr5C,QAChB31B,EAASgvE,EAAM4J,MAAM71E,KAAKwmE,OAAOvpE,OACjCo6E,EAAO71E,EAAO61E,KACd91E,EAAS,GAGb,IAAKtE,EACJ,OAAO,KAMR,IAHAwrB,EAAQmK,EAAQ6+D,MAAM/gF,QAAUu7D,EAAMj1D,IAAMi1D,EAAMtwD,IAClD2M,EAAMsK,EAAQ6+D,MAAM/gF,QAAUu7D,EAAMtwD,IAAMswD,EAAMj1D,IAChD00E,EAASzf,EAAM4oB,yBAAyB,EAAGpsE,GACtCtsB,EAAI,EAAGA,EAAIc,IAAUd,EACzBo4B,EAAiB,UAAT8iD,GAA6B,QAATA,EACzBpL,EAAM4oB,yBAAyB14F,EAAY,UAATk7E,EAAmB5uD,EAAQH,GAC7D2jD,EAAMg9C,gBAAgB9sH,GACrBy2B,EAAQ03D,UAAUgJ,WACrB/+D,EAAMg7F,GAAK7jC,EAAOt2E,EAClBmf,EAAMi7F,GAAK9jC,EAAO1wD,EAClBzG,EAAMswD,MAAQ5Y,EAAM+6C,cAAc7qH,GAAKkZ,KAAK2zD,GAAK,GAElDznE,EAAOxE,KAAKw3B,GAEb,OAAOhzB,EAGR,SAASkuH,GAAgBjuH,GAGxB,OAFYA,EAAO86F,GAAGtK,QAAU,IAEtB6C,yBACFy6B,GAAwB9tH,GAEzB0tH,GAAsB1tH,GAG9B,SAASkuH,GAAcv9C,EAAShzE,EAAO2vH,GACtC,IAGIvtH,EAFA81E,EADSlF,EAAQhzE,GACHk4E,KACds4C,EAAU,CAACxwH,GAGf,IAAK2vH,EACJ,OAAOz3C,EAGR,MAAgB,IAATA,IAA6C,IAA3Bs4C,EAAQ/+F,QAAQymD,IAAc,CACtD,IAAKtG,SAASsG,GACb,OAAOA,EAIR,KADA91E,EAAS4wE,EAAQkF,IAEhB,OAAO,EAGR,GAAI91E,EAAOquH,QACV,OAAOv4C,EAGRs4C,EAAQ5yH,KAAKs6E,GACbA,EAAO91E,EAAO81E,KAGf,OAAO,EAGR,SAASw4C,GAAaruH,GACrB,IAAI61E,EAAO71E,EAAO61E,KACdz0E,EAAO,UAEX,OAAa,IAATy0E,EACI,MAGHtG,SAASsG,KACbz0E,EAAO,YAGDmsH,GAAQnsH,GAAMpB,IAGtB,SAASsuH,GAAWv7F,GACnB,OAAOA,IAAUA,EAAMkyD,KAGxB,SAASspC,GAASj6C,EAAKk6C,EAAQC,EAAQC,EAAMC,GAC5C,IAAIh0H,EAAGozH,EAAIC,EAAIl3F,EAEf,GAAK43F,GAASC,EAAd,CAMA,IADAr6C,EAAIM,OAAO45C,EAAO,GAAG56G,EAAG46G,EAAO,GAAGh1F,GAC7B7+B,EAAI,EAAGA,EAAI+zH,IAAQ/zH,EACvB6+E,GAAUE,OAAO/D,OAAOrB,EAAKk6C,EAAO7zH,EAAI,GAAI6zH,EAAO7zH,IAGpD,QAAwBO,IAApBuzH,EAAO,GAAGprC,MAcd,IAHA/O,EAAIqB,OAAO84C,EAAOE,EAAO,GAAG/6G,EAAG66G,EAAOE,EAAO,GAAGn1F,GAG3C7+B,EAAIg0H,EAAO,EAAGh0H,EAAI,IAAKA,EAC3B6+E,GAAUE,OAAO/D,OAAOrB,EAAKm6C,EAAO9zH,GAAI8zH,EAAO9zH,EAAI,IAAI,QAXvD,IAHAozH,EAAKU,EAAO,GAAGV,GACfC,EAAKS,EAAO,GAAGT,GACfl3F,EAAIjjB,KAAKG,KAAKH,KAAKC,IAAI26G,EAAO,GAAG76G,EAAIm6G,EAAI,GAAKl6G,KAAKC,IAAI26G,EAAO,GAAGj1F,EAAIw0F,EAAI,IACpErzH,EAAIg0H,EAAO,EAAGh0H,EAAI,IAAKA,EAC3B25E,EAAIO,IAAIk5C,EAAIC,EAAIl3F,EAAG23F,EAAO9zH,GAAG0oF,MAAOorC,EAAO9zH,EAAI,GAAG0oF,OAAO,IAc5D,SAASurC,GAAOt6C,EAAKqQ,EAAQkqC,EAAQ18E,EAAM6F,EAAOi5D,GACjD,IAMIt2G,EAAGs1E,EAAMtyE,EAAOmxH,EAAIC,EAAIC,EAAIC,EAAIC,EANhC50F,EAAQqqD,EAAOlpF,OACfwuH,EAAO93E,EAAKuyC,SACZ8pC,EAAS,GACTC,EAAS,GACTC,EAAO,EACPC,EAAO,EAKX,IAFAr6C,EAAIoB,YAEC/6E,EAAI,EAAGs1E,EAAO31C,EAAO3/B,EAAIs1E,IAAQt1E,EAGrCo0H,EAAKF,EADLC,EAAKnqC,EADLhnF,EAAQhD,EAAI2/B,GACO0gD,MACHr9E,EAAOw0C,GACvB68E,EAAKV,GAAWQ,GAChBG,EAAKX,GAAWS,GAEZ9d,QAAuB/1G,IAAfg0H,GAA4BF,IAEvC/+C,EAAO31C,GADP40F,EAAav0H,EAAI,IAIdq0H,GAAMC,GACTP,EAAOF,EAAOjzH,KAAKuzH,GACnBH,EAAOF,EAAOlzH,KAAKwzH,IACTL,GAAQC,IACb1E,GAMA+E,GACHR,EAAOjzH,KAAKuzH,GAETG,GACHR,EAAOlzH,KAAKwzH,KATbR,GAASj6C,EAAKk6C,EAAQC,EAAQC,EAAMC,GACpCD,EAAOC,EAAO,EACdH,EAAS,GACTC,EAAS,KAYZF,GAASj6C,EAAKk6C,EAAQC,EAAQC,EAAMC,GAEpCr6C,EAAIQ,YACJR,EAAIyP,UAAY/rC,EAChBs8B,EAAIuB,OAGL,IAAIs5C,GAAgB,CACnB37F,GAAI,SAEJ47F,oBAAqB,SAAS/6C,EAAOjjD,GACpC,IAGImW,EAAM5sC,EAAGmgG,EAAI96F,EAHbs6B,GAAS+5C,EAAM71E,KAAKozB,UAAY,IAAIn2B,OACpC6xH,EAAYl8F,EAAQk8F,UACpB38C,EAAU,GAGd,IAAKh2E,EAAI,EAAGA,EAAI2/B,IAAS3/B,EAGxBqF,EAAS,MADT86F,GADAvzD,EAAO8sC,EAAM6J,eAAevjF,IAClBy3B,UAGA0oE,EAAG7f,QAAU6f,aAAcrb,GAAShxD,OAC7CzuB,EAAS,CACRouH,QAAS/5C,EAAMgZ,iBAAiB1yF,GAChCk7E,KAAM43C,GAAW3yB,EAAIngG,EAAG2/B,GACxB+5C,MAAOA,EACPymB,GAAIA,IAINvzD,EAAK8nF,QAAUrvH,EACf2wE,EAAQp1E,KAAKyE,GAGd,IAAKrF,EAAI,EAAGA,EAAI2/B,IAAS3/B,GACxBqF,EAAS2wE,EAAQh2E,MAKjBqF,EAAO61E,KAAOq4C,GAAcv9C,EAASh2E,EAAG2yH,GACxCttH,EAAOwtH,SAAWS,GAAgBjuH,GAClCA,EAAO6uH,OAASR,GAAaruH,KAI/BsvH,mBAAoB,SAASj7C,GAC5B,IAEI9sC,EAAM5sC,EAAGmgG,EAAI3oD,EAAMwyC,EAAQkqC,EAAQ72E,EAFnCoyC,EAAW/V,EAAM+c,gCACjB9c,EAAMD,EAAMC,IAGhB,IAAK35E,EAAIyvF,EAAS3uF,OAAS,EAAGd,GAAK,IAAKA,GACvC4sC,EAAO6iD,EAASzvF,GAAG00H,UAEL9nF,EAAK6mF,UAKnBj8E,GADA2oD,EAAKvzD,EAAKuzD,IACA9f,MACV2J,EAASmW,EAAGlW,WAAa,GACzBiqC,EAAStnF,EAAKsnF,OACd72E,EAAQ7F,EAAK2tC,iBAAmBtI,EAAc/zE,OAAOwzE,aAEjD43C,GAAU72E,GAAS2sC,EAAOlpF,SAC7B+9E,GAAUE,OAAOzD,SAAS3B,EAAKD,EAAM2R,WACrC4oC,GAAOt6C,EAAKqQ,EAAQkqC,EAAQ18E,EAAM6F,EAAO8iD,EAAG/V,OAC5CvL,GAAUE,OAAOvD,WAAW7B,OAM5Bi7C,GAAiB/1C,GAAUI,IAAId,cAC/B02C,GAASh2C,GAAUxX,KACnBytD,GAAmBj2C,GAAU/J,eAgGjC,SAASigD,GAAYC,EAAWz3C,GAC/B,OAAOy3C,EAAUC,eAAiBD,EAAUE,SAAW33C,EACtDA,EACAy3C,EAAUE,SAjGZr4C,EAAcR,KAAK,SAAU,CAC5B1lD,OAAQ,CACP6C,SAAS,EACTC,SAAU,MACV8kD,MAAO,SACP6c,WAAW,EACX7mF,SAAS,EACTi/D,OAAQ,IAGRnkE,QAAS,SAASpG,EAAGipF,GACpB,IAAIlvF,EAAQkvF,EAAW3P,aACnBvxB,EAAK/tD,KAAKy2E,MACV9sC,EAAOokB,EAAGuyB,eAAevgF,GAG7B4pC,EAAKuzC,OAAyB,OAAhBvzC,EAAKuzC,QAAmBnvB,EAAGntD,KAAKozB,SAASj0B,GAAOm9E,OAAS,KAGvEnvB,EAAGx4B,UAGJ41E,QAAS,KACT+mB,QAAS,KAET9qD,OAAQ,CACP6qD,SAAU,GACV9pC,QAAS,GAYT4G,eAAgB,SAAStY,GACxB,IAAIziD,EAAWyiD,EAAM71E,KAAKozB,SACtBR,EAAUijD,EAAMjjD,QAAQE,QAAU,GAClCs+F,EAAgBx+F,EAAQ4zC,QAAU5zC,EAAQ4zC,OAAO4qD,cAErD,OAAOv7C,EAAMy3B,yBAAyBvtG,KAAI,SAASgpC,GAClD,IAAId,EAAQc,EAAKqlD,WAAWjN,SAASiwC,EAAgB,OAAI10H,GAEzD,MAAO,CACNu9C,KAAM7mB,EAAS2V,EAAK5pC,OAAO8J,MAC3Bs8E,UAAWt9C,EAAMq5C,gBACjBhF,QAASzG,EAAMgZ,iBAAiB9lD,EAAK5pC,OACrCunF,QAASz+C,EAAM09C,eACf4rC,SAAUtpF,EAAM29C,WAChBgB,eAAgB3+C,EAAM49C,iBACtB1B,SAAUl8C,EAAM69C,gBAChB5B,UAAWj8C,EAAMm6C,YACjBoD,YAAav9C,EAAMs5C,YACnB4F,WAAYl/C,EAAMk/C,WAClB1Q,SAAUxuC,EAAMwuC,SAGhBiI,aAAc31C,EAAK5pC,SAElBC,SAKN4uF,eAAgB,SAASnY,GACxB,IAEI15E,EAAGs1E,EAAMwc,EAFTl9E,EAAOytB,SAASvJ,cAAc,MAC9B7B,EAAWyiD,EAAM71E,KAAKozB,SAK1B,IAFAriB,EAAK6uB,aAAa,QAASi2C,EAAM7gD,GAAK,WAEjC74B,EAAI,EAAGs1E,EAAOr+C,EAASn2B,OAAQd,EAAIs1E,EAAMt1E,KAC7C8xF,EAAWl9E,EAAK+zB,YAAYtG,SAASvJ,cAAc,QAC3B6P,YAAYtG,SAASvJ,cAAc,SAC9CgT,MAAMq5C,gBAAkBluD,EAASj3B,GAAGmlF,gBAC7CluD,EAASj3B,GAAG8M,OACfglF,EAASnpD,YAAYtG,SAASkyB,eAAet9B,EAASj3B,GAAG8M,QAI3D,OAAO8H,EAAKm9E,aAmBd,IAAIsjC,GAAS10C,GAAazlB,OAAO,CAEhC+kB,WAAY,SAASxsE,GACpB,IAAIyqC,EAAKj7C,KACT47E,GAAU3jB,OAAOhd,EAAIzqC,GAGrByqC,EAAGo3E,eAAiB,GAKpBp3E,EAAGq3E,aAAe,KAGlBr3E,EAAGs3E,cAAe,GAOnBtX,aAAc2W,GACdr8F,OAAQ,SAASm6D,EAAUC,EAAWurB,GACrC,IAAIjgE,EAAKj7C,KA0BT,OAvBAi7C,EAAGggE,eAGHhgE,EAAGy0C,SAAWA,EACdz0C,EAAG00C,UAAYA,EACf10C,EAAGigE,QAAUA,EAGbjgE,EAAG0gE,sBACH1gE,EAAG2gE,gBACH3gE,EAAG4gE,qBAEH5gE,EAAGu3E,oBACHv3E,EAAGw3E,cACHx3E,EAAGy3E,mBAGHz3E,EAAGuhE,YACHvhE,EAAGwhE,MACHxhE,EAAGyhE,WAEHzhE,EAAG4hE,cAEI5hE,EAAG45C,SAEXgoB,YAAa+U,GAIbjW,oBAAqBiW,GACrBhW,cAAe,WACd,IAAI3gE,EAAKj7C,KAELi7C,EAAGgxC,gBAENhxC,EAAGrnB,MAAQqnB,EAAGy0C,SACdz0C,EAAGsd,KAAO,EACVtd,EAAG67B,MAAQ77B,EAAGrnB,QAEdqnB,EAAGtnB,OAASsnB,EAAG00C,UAGf10C,EAAGwd,IAAM,EACTxd,EAAG87B,OAAS97B,EAAGtnB,QAIhBsnB,EAAG+4D,YAAc,EACjB/4D,EAAGg5D,WAAa,EAChBh5D,EAAGi5D,aAAe,EAClBj5D,EAAGk5D,cAAgB,EAGnBl5D,EAAG45C,QAAU,CACZjhE,MAAO,EACPD,OAAQ,IAGVkoF,mBAAoB+V,GAIpBY,kBAAmBZ,GACnBa,YAAa,WACZ,IAAIx3E,EAAKj7C,KACL+xH,EAAY92E,EAAGznB,QAAQ4zC,QAAU,GACjCurD,EAAc/2C,GAAUv1B,SAAS0rE,EAAUhjC,eAAgB,CAAC9zC,EAAGw7B,OAAQx7B,IAAO,GAE9E82E,EAAUtnH,SACbkoH,EAAcA,EAAYloH,QAAO,SAASopE,GACzC,OAAOk+C,EAAUtnH,OAAOopE,EAAM54B,EAAGw7B,MAAM71E,UAIrCq6C,EAAGznB,QAAQliB,SACdqhH,EAAYrhH,UAGb2pC,EAAG03E,YAAcA,GAElBD,iBAAkBd,GAIlBpV,UAAWoV,GACXnV,IAAK,WACJ,IAAIxhE,EAAKj7C,KACL4vF,EAAO30C,EAAGznB,QACVu+F,EAAYniC,EAAKxoB,OACjB7wC,EAAUq5D,EAAKr5D,QAEfmgD,EAAMz7B,EAAGy7B,IAETk8C,EAAYh3C,GAAUpoD,QAAQ4mD,WAAW23C,GACzCz3C,EAAWs4C,EAAUltH,KAGrBmtH,EAAW53E,EAAGo3E,eAAiB,GAE/Bx9B,EAAU55C,EAAG45C,QACb5I,EAAehxC,EAAGgxC,eAWtB,GATIA,GACH4I,EAAQjhE,MAAQqnB,EAAGy0C,SACnBmF,EAAQlhE,OAAS4C,EAAU,GAAK,IAEhCs+D,EAAQjhE,MAAQ2C,EAAU,GAAK,EAC/Bs+D,EAAQlhE,OAASsnB,EAAG00C,WAIhBp5D,EAAL,CAMA,GAFAmgD,EAAIoD,KAAO84C,EAAU5mH,OAEjBigF,EAAc,CAIjB,IAAI6mC,EAAa73E,EAAG63E,WAAa,CAAC,GAC9BC,EAAc,EAElBr8C,EAAI2E,UAAY,OAChB3E,EAAImyB,aAAe,SAEnBjtB,GAAU5J,KAAK/2B,EAAG03E,aAAa,SAAS1jC,EAAYlyF,GACnD,IACI62B,EADWk+F,GAAYC,EAAWz3C,GACdA,EAAW,EAAK5D,EAAIuvB,YAAYhX,EAAWp0C,MAAMjnB,OAE/D,IAAN72B,GAAW+1H,EAAWA,EAAWj1H,OAAS,GAAK+1B,EAAQ,EAAIm+F,EAAU5pC,QAAU0M,EAAQjhE,SAC1Fm/F,GAAez4C,EAAWy3C,EAAU5pC,QACpC2qC,EAAWA,EAAWj1H,QAAUd,EAAI,EAAI,EAAI,IAAM,GAInD81H,EAAS91H,GAAK,CACbw7D,KAAM,EACNE,IAAK,EACL7kC,MAAOA,EACPD,OAAQ2mD,GAGTw4C,EAAWA,EAAWj1H,OAAS,IAAM+1B,EAAQm+F,EAAU5pC,WAGxD0M,EAAQlhE,QAAUo/F,MAEZ,CACN,IAAIC,EAAWjB,EAAU5pC,QACrB8qC,EAAeh4E,EAAGg4E,aAAe,GACjCC,EAAgBj4E,EAAGi4E,cAAgB,GACnCC,EAAapB,EAAU5pC,QACvBirC,EAAkB,EAClBC,EAAmB,EAEvBz3C,GAAU5J,KAAK/2B,EAAG03E,aAAa,SAAS1jC,EAAYlyF,GACnD,IACI0+E,EADWq2C,GAAYC,EAAWz3C,GACVA,EAAW,EAAK5D,EAAIuvB,YAAYhX,EAAWp0C,MAAMjnB,MAGzE72B,EAAI,GAAKs2H,EAAmB/4C,EAAW,EAAI04C,EAAWn+B,EAAQlhE,SACjEw/F,GAAcC,EAAkBrB,EAAU5pC,QAC1C8qC,EAAat1H,KAAKy1H,GAClBF,EAAcv1H,KAAK01H,GACnBD,EAAkB,EAClBC,EAAmB,GAIpBD,EAAkBn9G,KAAK2B,IAAIw7G,EAAiB33C,GAC5C43C,GAAoB/4C,EAAW04C,EAG/BH,EAAS91H,GAAK,CACbw7D,KAAM,EACNE,IAAK,EACL7kC,MAAO6nD,EACP9nD,OAAQ2mD,MAIV64C,GAAcC,EACdH,EAAat1H,KAAKy1H,GAClBF,EAAcv1H,KAAK01H,GACnBx+B,EAAQjhE,OAASu/F,EAGlBl4E,EAAGrnB,MAAQihE,EAAQjhE,MACnBqnB,EAAGtnB,OAASkhE,EAAQlhE,YA9EnBsnB,EAAGrnB,MAAQihE,EAAQjhE,MAAQqnB,EAAGtnB,OAASkhE,EAAQlhE,OAAS,GAgF1D+oF,SAAUkV,GAGV3lC,aAAc,WACb,MAAiC,QAA1BjsF,KAAKwzB,QAAQgD,UAAgD,WAA1Bx2B,KAAKwzB,QAAQgD,UAIxDsrD,KAAM,WACL,IAAI7mC,EAAKj7C,KACL4vF,EAAO30C,EAAGznB,QACVu+F,EAAYniC,EAAKxoB,OACjBiT,EAAiBT,EAAc/zE,OAC/BwzE,EAAegB,EAAehB,aAC9Bi6C,EAAcj5C,EAAewH,SAASyE,KACtCitC,EAAet4E,EAAGtnB,OAClBu/F,EAAgBj4E,EAAGi4E,cACnBM,EAAcv4E,EAAGrnB,MACjBk/F,EAAa73E,EAAG63E,WAEpB,GAAKljC,EAAKr5D,QAAV,CAIA,IAKIk9F,EALA7qB,EAAY+oB,GAAe/hC,EAAK5T,IAAK/gC,EAAGsd,KAAMtd,EAAG45C,QAAQjhE,OACzD8iD,EAAMz7B,EAAGy7B,IACTmiC,EAAYgZ,GAAiBE,EAAUlZ,UAAWx+B,EAAef,kBACjEs5C,EAAYh3C,GAAUpoD,QAAQ4mD,WAAW23C,GACzCz3C,EAAWs4C,EAAUltH,KAIzBgxE,EAAI2E,UAAYutB,EAAUvtB,UAAU,QACpC3E,EAAImyB,aAAe,SACnBnyB,EAAIoO,UAAY,GAChBpO,EAAI0P,YAAcyyB,EAClBniC,EAAIyP,UAAY0yB,EAChBniC,EAAIoD,KAAO84C,EAAU5mH,OAErB,IAAIimH,EAAWH,GAAYC,EAAWz3C,GAClCu4C,EAAW53E,EAAGo3E,eAGdqB,EAAgB,SAAS19G,EAAG4lB,EAAGqzD,GAClC,KAAIp7E,MAAMo+G,IAAaA,GAAY,GAAnC,CAKAv7C,EAAIgB,OAEJ,IAAIoN,EAAY+sC,GAAiB5iC,EAAWnK,UAAWwuC,EAAYtwC,aAanE,GAZAtM,EAAIyP,UAAY0rC,GAAiB5iC,EAAW9I,UAAW9M,GACvD3C,EAAI4Q,QAAUuqC,GAAiB5iC,EAAW3H,QAASgsC,EAAY/sC,gBAC/D7P,EAAI8Q,eAAiBqqC,GAAiB5iC,EAAWzH,eAAgB8rC,EAAY7sC,kBAC7E/P,EAAIqO,SAAW8sC,GAAiB5iC,EAAWlK,SAAUuuC,EAAY5sC,iBACjEhQ,EAAIoO,UAAYA,EAChBpO,EAAI0P,YAAcyrC,GAAiB5iC,EAAW7I,YAAa/M,GAEvD3C,EAAI6Q,aAEP7Q,EAAI6Q,YAAYsqC,GAAiB5iC,EAAWkjC,SAAUmB,EAAY9sC,aAG/DurC,GAAaA,EAAUC,cAAe,CAGzC,IAAIn7C,EAASo7C,EAAWh8G,KAAK09G,MAAQ,EACjCriC,EAAUsX,EAAUrtB,MAAMvlE,EAAGi8G,EAAW,GACxC1gC,EAAU31D,EAAI0+C,EAAW,EAG7BsB,GAAUE,OAAO1E,UAAUV,EAAKuY,EAAWlH,WAAYlR,EAAQya,EAASC,EAAStC,EAAW5X,eAG5FX,EAAIoT,SAAS8e,EAAUptB,WAAWxlE,EAAGi8G,GAAWr2F,EAAGq2F,EAAU33C,GAC3C,IAAdwK,GACHpO,EAAI6yB,WAAWX,EAAUptB,WAAWxlE,EAAGi8G,GAAWr2F,EAAGq2F,EAAU33C,GAIjE5D,EAAImB,YAGDixB,EAAW,SAAS9yF,EAAG4lB,EAAGqzD,EAAYomB,GACzC,IAAIue,EAAet5C,EAAW,EAC1Bu5C,EAAQjrB,EAAUrtB,MAAMvlE,EAAGi8G,EAAW2B,GACtCE,EAAUl4F,EAAIg4F,EAElBl9C,EAAIoyB,SAAS7Z,EAAWp0C,KAAMg5E,EAAOC,GAEjC7kC,EAAW/R,SAEdxG,EAAIoB,YACJpB,EAAIoO,UAAY,EAChBpO,EAAIM,OAAO68C,EAAOC,GAClBp9C,EAAIqB,OAAO6wB,EAAUrtB,MAAMs4C,EAAOxe,GAAYye,GAC9Cp9C,EAAIwB,WAIF67C,EAAkB,SAASC,EAAWC,GACzC,OAAQrkC,EAAKtU,OACb,IAAK,QACJ,OAAOy2C,EAAU5pC,QAClB,IAAK,MACJ,OAAO6rC,EAAYC,EACpB,QACC,OAAQD,EAAYC,EAAYlC,EAAU5pC,SAAW,IAKnD8D,EAAehxC,EAAGgxC,eAErBwnC,EADGxnC,EACM,CACRj2E,EAAGilC,EAAGsd,KAAOw7D,EAAgBP,EAAaV,EAAW,IACrDl3F,EAAGqf,EAAGwd,IAAMs5D,EAAU5pC,QACtB7B,KAAM,GAGE,CACRtwE,EAAGilC,EAAGsd,KAAOw5D,EAAU5pC,QACvBvsD,EAAGqf,EAAGwd,IAAMs7D,EAAgBR,EAAcL,EAAc,IACxD5sC,KAAM,GAIR1K,GAAUI,IAAIC,sBAAsBhhC,EAAGy7B,IAAKkZ,EAAKwU,eAEjD,IAAI8vB,EAAa55C,EAAWy3C,EAAU5pC,QACtCvM,GAAU5J,KAAK/2B,EAAG03E,aAAa,SAAS1jC,EAAYlyF,GACnD,IAAIs4G,EAAY3+B,EAAIuvB,YAAYhX,EAAWp0C,MAAMjnB,MAC7CA,EAAQq+F,EAAY33C,EAAW,EAAK+6B,EACpCr/F,EAAIy9G,EAAOz9G,EACX4lB,EAAI63F,EAAO73F,EAEfgtE,EAAUxtB,SAASngC,EAAG45C,QAAQjhE,OAK1Bq4D,EACClvF,EAAI,GAAKiZ,EAAI4d,EAAQm+F,EAAU5pC,QAAUltC,EAAGsd,KAAOtd,EAAG45C,QAAQjhE,QACjEgI,EAAI63F,EAAO73F,GAAKs4F,EAChBT,EAAOntC,OACPtwE,EAAIy9G,EAAOz9G,EAAIilC,EAAGsd,KAAOw7D,EAAgBP,EAAaV,EAAWW,EAAOntC,QAE/DvpF,EAAI,GAAK6+B,EAAIs4F,EAAaj5E,EAAGwd,IAAMxd,EAAG45C,QAAQlhE,SACxD3d,EAAIy9G,EAAOz9G,EAAIA,EAAIilC,EAAGg4E,aAAaQ,EAAOntC,MAAQyrC,EAAU5pC,QAC5DsrC,EAAOntC,OACP1qD,EAAI63F,EAAO73F,EAAIqf,EAAGwd,IAAMs7D,EAAgBR,EAAcL,EAAcO,EAAOntC,QAG5E,IAAI6tC,EAAQvrB,EAAU5yF,EAAEA,GAExB09G,EAAcS,EAAOv4F,EAAGqzD,GAExB4jC,EAAS91H,GAAGw7D,KAAOqwC,EAAUptB,WAAW24C,EAAOtB,EAAS91H,GAAG62B,OAC3Di/F,EAAS91H,GAAG07D,IAAM78B,EAGlBktE,EAASqrB,EAAOv4F,EAAGqzD,EAAYomB,GAE3BppB,EACHwnC,EAAOz9G,GAAK4d,EAAQm+F,EAAU5pC,QAE9BsrC,EAAO73F,GAAKs4F,KAIdt4C,GAAUI,IAAIO,qBAAqBthC,EAAGy7B,IAAKkZ,EAAKwU,iBAMjDgwB,iBAAkB,SAASp+G,EAAG4lB,GAC7B,IACI7+B,EAAGs3H,EAAQpqE,EADXhP,EAAKj7C,KAGT,GAAIgW,GAAKilC,EAAGsd,MAAQviD,GAAKilC,EAAG67B,OAASl7C,GAAKqf,EAAGwd,KAAO78B,GAAKqf,EAAG87B,OAG3D,IADA9sB,EAAKhP,EAAGo3E,eACHt1H,EAAI,EAAGA,EAAIktD,EAAGpsD,SAAUd,EAG5B,GAAIiZ,IAFJq+G,EAASpqE,EAAGltD,IAEIw7D,MAAQviD,GAAKq+G,EAAO97D,KAAO87D,EAAOzgG,OAASgI,GAAKy4F,EAAO57D,KAAO78B,GAAKy4F,EAAO57D,IAAM47D,EAAO1gG,OAEtG,OAAOsnB,EAAG03E,YAAY51H,GAKzB,OAAO,MAQR8sG,YAAa,SAAS7jG,GACrB,IAGIsuH,EAHAr5E,EAAKj7C,KACL4vF,EAAO30C,EAAGznB,QACVhwB,EAAkB,YAAXwC,EAAExC,KAAqB,QAAUwC,EAAExC,KAG9C,GAAa,cAATA,GACH,IAAKosF,EAAKub,UAAYvb,EAAKsiC,QAC1B,WAEK,IAAa,UAAT1uH,EAKV,OAJA,IAAKosF,EAAKxjF,QACT,OAOFkoH,EAAcr5E,EAAGm5E,iBAAiBpuH,EAAEgQ,EAAGhQ,EAAE41B,GAE5B,UAATp4B,EACC8wH,GAAe1kC,EAAKxjF,SAEvBwjF,EAAKxjF,QAAQzN,KAAKs8C,EAAIj1C,EAAEgwF,OAAQs+B,IAG7B1kC,EAAKsiC,SAAWoC,IAAgBr5E,EAAGq3E,eAClCr3E,EAAGq3E,cACN1iC,EAAKsiC,QAAQvzH,KAAKs8C,EAAIj1C,EAAEgwF,OAAQ/6C,EAAGq3E,cAEpCr3E,EAAGq3E,aAAegC,GAGf1kC,EAAKub,SAAWmpB,GAEnB1kC,EAAKub,QAAQxsG,KAAKs8C,EAAIj1C,EAAEgwF,OAAQs+B,OAMpC,SAASC,GAAyB99C,EAAO+9C,GACxC,IAAI9gG,EAAS,IAAI0+F,GAAO,CACvB17C,IAAKD,EAAMC,IACXljD,QAASghG,EACT/9C,MAAOA,IAGRyjB,GAAaK,UAAU9jB,EAAO/iD,EAAQ8gG,GACtCt6B,GAAaC,OAAO1jB,EAAO/iD,GAC3B+iD,EAAM/iD,OAASA,EAGhB,IAAI+gG,GAAgB,CACnB7+F,GAAI,SASJ8+F,SAAUtC,GAEVuC,WAAY,SAASl+C,GACpB,IAAI+9C,EAAa/9C,EAAMjjD,QAAQE,OAE3B8gG,GACHD,GAAyB99C,EAAO+9C,IAIlCvZ,aAAc,SAASxkC,GACtB,IAAI+9C,EAAa/9C,EAAMjjD,QAAQE,OAC3BA,EAAS+iD,EAAM/iD,OAEf8gG,GACH54C,GAAU9I,QAAQ0hD,EAAY56C,EAAc/zE,OAAO6tB,QAE/CA,GACHwmE,GAAaK,UAAU9jB,EAAO/iD,EAAQ8gG,GACtC9gG,EAAOF,QAAUghG,GAEjBD,GAAyB99C,EAAO+9C,IAEvB9gG,IACVwmE,GAAaG,UAAU5jB,EAAO/iD,UACvB+iD,EAAM/iD,SAIfkhG,WAAY,SAASn+C,EAAOzwE,GAC3B,IAAI0tB,EAAS+iD,EAAM/iD,OACfA,GACHA,EAAOm2E,YAAY7jG,KAKlB6uH,GAASj5C,GAAUxX,KAEvBwV,EAAcR,KAAK,SAAU,CAC5B9U,MAAO,CACN/tC,SAAS,EACTikD,UAAW,OACX2d,WAAW,EACXhQ,QAAS,GACT3xD,SAAU,MACVqkB,KAAM,GACN01B,OAAQ,OAOV,IAAIukD,GAAQp3C,GAAazlB,OAAO,CAC/B+kB,WAAY,SAASxsE,GACpB,IAAIyqC,EAAKj7C,KACT47E,GAAU3jB,OAAOhd,EAAIzqC,GAGrByqC,EAAGo3E,eAAiB,IAKrBpX,aAAc4Z,GACdt/F,OAAQ,SAASm6D,EAAUC,EAAWurB,GACrC,IAAIjgE,EAAKj7C,KA0BT,OAvBAi7C,EAAGggE,eAGHhgE,EAAGy0C,SAAWA,EACdz0C,EAAG00C,UAAYA,EACf10C,EAAGigE,QAAUA,EAGbjgE,EAAG0gE,sBACH1gE,EAAG2gE,gBACH3gE,EAAG4gE,qBAEH5gE,EAAGu3E,oBACHv3E,EAAGw3E,cACHx3E,EAAGy3E,mBAGHz3E,EAAGuhE,YACHvhE,EAAGwhE,MACHxhE,EAAGyhE,WAEHzhE,EAAG4hE,cAEI5hE,EAAG45C,SAGXgoB,YAAagY,GAIblZ,oBAAqBkZ,GACrBjZ,cAAe,WACd,IAAI3gE,EAAKj7C,KAELi7C,EAAGgxC,gBAENhxC,EAAGrnB,MAAQqnB,EAAGy0C,SACdz0C,EAAGsd,KAAO,EACVtd,EAAG67B,MAAQ77B,EAAGrnB,QAEdqnB,EAAGtnB,OAASsnB,EAAG00C,UAGf10C,EAAGwd,IAAM,EACTxd,EAAG87B,OAAS97B,EAAGtnB,QAIhBsnB,EAAG+4D,YAAc,EACjB/4D,EAAGg5D,WAAa,EAChBh5D,EAAGi5D,aAAe,EAClBj5D,EAAGk5D,cAAgB,EAGnBl5D,EAAG45C,QAAU,CACZjhE,MAAO,EACPD,OAAQ,IAGVkoF,mBAAoBgZ,GAIpBrC,kBAAmBqC,GACnBpC,YAAaoC,GACbnC,iBAAkBmC,GAIlBrY,UAAWqY,GACXpY,IAAK,WACJ,IAIe2K,EAJXnsE,EAAKj7C,KACL4vF,EAAO30C,EAAGznB,QACVqhE,EAAU55C,EAAG45C,QAAU,GACvB5I,EAAehxC,EAAGgxC,eAGjB2D,EAAKr5D,SAMV6wF,GADYxrC,GAAUj/E,QAAQizF,EAAK/0C,MAAQ+0C,EAAK/0C,KAAKh9C,OAAS,GACvC+9E,GAAUpoD,QAAQ4mD,WAAWwV,GAAMloD,WAA4B,EAAfkoD,EAAKzH,QAE5EltC,EAAGrnB,MAAQihE,EAAQjhE,MAAQq4D,EAAehxC,EAAGy0C,SAAW03B,EACxDnsE,EAAGtnB,OAASkhE,EAAQlhE,OAASs4D,EAAem7B,EAAWnsE,EAAG00C,WARzD10C,EAAGrnB,MAAQihE,EAAQjhE,MAAQqnB,EAAGtnB,OAASkhE,EAAQlhE,OAAS,GAU1D+oF,SAAUmY,GAGV5oC,aAAc,WACb,IAAIyL,EAAM13F,KAAKwzB,QAAQgD,SACvB,MAAe,QAARkhE,GAAyB,WAARA,GAIzB5V,KAAM,WACL,IAAI7mC,EAAKj7C,KACL02E,EAAMz7B,EAAGy7B,IACTkZ,EAAO30C,EAAGznB,QAEd,GAAKo8D,EAAKr5D,QAAV,CAIA,IAQIm5D,EAAUqlC,EAAQC,EARlBC,EAAWr5C,GAAUpoD,QAAQ4mD,WAAWwV,GACxCloD,EAAautF,EAASvtF,WACtBoV,EAASpV,EAAa,EAAIkoD,EAAKzH,QAC/B9Q,EAAW,EACX5e,EAAMxd,EAAGwd,IACTF,EAAOtd,EAAGsd,KACVwe,EAAS97B,EAAG87B,OACZD,EAAQ77B,EAAG67B,MAGfJ,EAAIyP,UAAYvK,GAAU/J,eAAe+d,EAAKipB,UAAWj/B,EAAc/zE,OAAOyzE,kBAC9E5C,EAAIoD,KAAOm7C,EAASjpH,OAGhBivC,EAAGgxC,gBACN8oC,EAASx8D,GAASue,EAAQve,GAAQ,EAClCy8D,EAASv8D,EAAM3b,EACf4yC,EAAW5Y,EAAQve,IAEnBw8D,EAA2B,SAAlBnlC,EAAKp5D,SAAsB+hC,EAAOzb,EAASg6B,EAAQh6B,EAC5Dk4E,EAASv8D,GAAQse,EAASte,GAAO,EACjCi3B,EAAW3Y,EAASte,EACpB4e,EAAWphE,KAAK2zD,IAAwB,SAAlBgmB,EAAKp5D,UAAuB,GAAM,KAGzDkgD,EAAIgB,OACJhB,EAAIiB,UAAUo9C,EAAQC,GACtBt+C,EAAIvG,OAAOkH,GACXX,EAAI2E,UAAY,SAChB3E,EAAImyB,aAAe,SAEnB,IAAIhuD,EAAO+0C,EAAK/0C,KAChB,GAAI+gC,GAAUj/E,QAAQk+C,GAErB,IADA,IAAIjf,EAAI,EACC7+B,EAAI,EAAGA,EAAI89C,EAAKh9C,SAAUd,EAClC25E,EAAIoyB,SAASjuD,EAAK99C,GAAI,EAAG6+B,EAAG8zD,GAC5B9zD,GAAK8L,OAGNgvC,EAAIoyB,SAASjuD,EAAM,EAAG,EAAG60C,GAG1BhZ,EAAImB,cAIN,SAASq9C,GAA6Bz+C,EAAO0+C,GAC5C,IAAI7wD,EAAQ,IAAIwwD,GAAM,CACrBp+C,IAAKD,EAAMC,IACXljD,QAAS2hG,EACT1+C,MAAOA,IAGRyjB,GAAaK,UAAU9jB,EAAOnS,EAAO6wD,GACrCj7B,GAAaC,OAAO1jB,EAAOnS,GAC3BmS,EAAM2+C,WAAa9wD,EAGpB,IAwCI7wC,GAAU,GACVg8F,GAAS8B,GACT79F,GAAS+gG,GACTnwD,GA3Ce,CAClB1uC,GAAI,QASJ8+F,SAAUI,GAEVH,WAAY,SAASl+C,GACpB,IAAI0+C,EAAY1+C,EAAMjjD,QAAQ8wC,MAE1B6wD,GACHD,GAA6Bz+C,EAAO0+C,IAItCla,aAAc,SAASxkC,GACtB,IAAI0+C,EAAY1+C,EAAMjjD,QAAQ8wC,MAC1B8wD,EAAa3+C,EAAM2+C,WAEnBD,GACHv5C,GAAU9I,QAAQqiD,EAAWv7C,EAAc/zE,OAAOy+D,OAE9C8wD,GACHl7B,GAAaK,UAAU9jB,EAAO2+C,EAAYD,GAC1CC,EAAW5hG,QAAU2hG,GAErBD,GAA6Bz+C,EAAO0+C,IAE3BC,IACVl7B,GAAaG,UAAU5jB,EAAO2+C,UACvB3+C,EAAM2+C,cAmDhB,IAAK,IAAIt4G,MA1CT2W,GAAQg8F,OAASA,GACjBh8F,GAAQC,OAASA,GACjBD,GAAQ6wC,MAAQA,GAOhB0qC,GAAgBn6E,QAAU+mD,GAG1BwzB,KAEAJ,GAAgBqmB,UAAYjf,GAC5BpH,GAAgBsmB,UAAYt3C,GAC5BgxB,GAAgBumB,iBAAmBn3C,GACnC4wB,GAAgB34E,YAAcA,GAC9B24E,GAAgB3vB,kBAAoB0E,GACpCirB,GAAgB1+E,SAAWspD,EAC3Bo1B,GAAgBlyB,QAAUY,GAC1BsxB,GAAgBntB,SAAWA,GAC3BmtB,GAAgBwmB,YAAcr+B,GAC9B6X,GAAgB/W,QAAUiC,GAC1B8U,GAAgBxP,SAAWA,GAC3BwP,GAAgBv7E,QAAUgsE,GAC1BuP,GAAgB2L,MAAQmH,GACxB9S,GAAgBymB,aAAel1B,GAC/ByO,GAAgB0mB,MAAQpf,GACxBtH,GAAgB2mB,QAAU3rB,GAI1BgF,GAAgBn6E,QAAQm9C,KAAK+N,IAAQ,SAASlT,EAAOrpE,GACpDwrG,GAAgBymB,aAAah1B,kBAAkBj9F,EAAMqpE,EAAOA,EAAM21C,cAQrD/uF,GACTA,GAAQxyB,eAAe6b,KAC1BkyF,GAAgBv7E,QAAQmsE,SAASnsE,GAAQ3W,KAI3CkyF,GAAgBxP,SAASxiB,aAEzB,IAAI9J,GAAM87B,GAyGV,MAxGsB,qBAAX1jG,SACVA,OAAOigG,MAAQyD,IAYhBA,GAAgBzD,MAAQyD,GASxBA,GAAgBojB,OAAS3+F,GAAQC,OAAOghG,SASxC1lB,GAAgB8lB,MAAQrhG,GAAQ6wC,MAAMowD,SAStC1lB,GAAgB4mB,cAAgB5mB,GAAgBv7E,QAUhDu7E,GAAgB6mB,WAAa7mB,GAAgBlyB,QAAQ7kB,OAAO,IAS5D+2C,GAAgB8mB,cAAgB9mB,GAAgBn6E,QAAQinD,OASxDkzB,GAAgB+mB,cAAgB/mB,GAAgB/W,QAShD+W,GAAgBgnB,gBAAkBzS,GAQlCvU,GAAgBn6E,QAAQm9C,KACvB,CACC,MACA,SACA,WACA,OACA,YACA,QACA,YAED,SAASikD,GACRjnB,GAAgBinB,GAAS,SAASv/C,EAAKw/C,GACtC,OAAO,IAAIlnB,GAAgBt4B,EAAKs4B,GAAgBn6E,QAAQ+9C,MAAMsjD,GAAO,GAAI,CACxE1yH,KAAMyyH,EAAMltF,OAAO,GAAG/I,cAAgBi2F,EAAMr3H,MAAM,UAM/Cs0E,GAlyfyEijD,CAAQ,WAAa,IAAM,OAAO/5H,EAAQ,IAAa,MAAM4J,KAArD,K,iBCPxF,YAOmE9J,EAAOC,QAGjE,WAAc,aAEnB,IAAIi6H,EA4HAC,EA1HJ,SAASC,IACL,OAAOF,EAAajxH,MAAM,KAAM3C,WAKpC,SAAS+zH,EAAgBlwE,GACrB+vE,EAAe/vE,EAGnB,SAAS1pD,EAAQuU,GACb,OACIA,aAAiBtU,OACyB,mBAA1CJ,OAAOiC,UAAUC,SAASC,KAAKuS,GAIvC,SAASvL,EAASuL,GAGd,OACa,MAATA,GAC0C,oBAA1C1U,OAAOiC,UAAUC,SAASC,KAAKuS,GAIvC,SAASslH,EAAWrtH,EAAGC,GACnB,OAAO5M,OAAOiC,UAAUwC,eAAetC,KAAKwK,EAAGC,GAGnD,SAASqtH,EAAcluH,GACnB,GAAI/L,OAAOiF,oBACP,OAAkD,IAA3CjF,OAAOiF,oBAAoB8G,GAAK1K,OAEvC,IAAIif,EACJ,IAAKA,KAAKvU,EACN,GAAIiuH,EAAWjuH,EAAKuU,GAChB,OAAO,EAGf,OAAO,EAIf,SAAS45G,EAAYxlH,GACjB,YAAiB,IAAVA,EAGX,SAASusE,EAASvsE,GACd,MACqB,kBAAVA,GACmC,oBAA1C1U,OAAOiC,UAAUC,SAASC,KAAKuS,GAIvC,SAASylH,EAAOzlH,GACZ,OACIA,aAAiB/C,MACyB,kBAA1C3R,OAAOiC,UAAUC,SAASC,KAAKuS,GAIvC,SAASvQ,EAAI7D,EAAKmI,GACd,IACIlI,EADAmiF,EAAM,GAEV,IAAKniF,EAAI,EAAGA,EAAID,EAAIe,SAAUd,EAC1BmiF,EAAIvhF,KAAKsH,EAAGnI,EAAIC,GAAIA,IAExB,OAAOmiF,EAGX,SAASjnB,EAAO9uD,EAAGC,GACf,IAAK,IAAIrM,KAAKqM,EACNotH,EAAWptH,EAAGrM,KACdoM,EAAEpM,GAAKqM,EAAErM,IAYjB,OARIy5H,EAAWptH,EAAG,cACdD,EAAEzK,SAAW0K,EAAE1K,UAGf83H,EAAWptH,EAAG,aACdD,EAAEo8B,QAAUn8B,EAAEm8B,SAGXp8B,EAGX,SAASytH,EAAU1lH,EAAOP,EAAQsnC,EAAQ4+E,GACtC,OAAOC,GAAiB5lH,EAAOP,EAAQsnC,EAAQ4+E,GAAQ,GAAME,MAGjE,SAASC,IAEL,MAAO,CACHC,OAAO,EACPC,aAAc,GACdC,YAAa,GACbC,UAAW,EACXC,cAAe,EACfC,WAAW,EACXC,WAAY,KACZC,aAAc,KACdC,eAAe,EACfC,iBAAiB,EACjBC,KAAK,EACLC,gBAAiB,GACjBC,IAAK,KACLC,SAAU,KACVC,SAAS,EACTC,iBAAiB,GAIzB,SAASC,EAAgB98F,GAIrB,OAHa,MAATA,EAAE+8F,MACF/8F,EAAE+8F,IAAMlB,KAEL77F,EAAE+8F,IAsBb,SAAStqD,EAAQzyC,GACb,GAAkB,MAAdA,EAAEg9F,SAAkB,CACpB,IAAI7rF,EAAQ2rF,EAAgB98F,GACxBi9F,EAAc/B,EAAK13H,KAAK2tC,EAAMsrF,iBAAiB,SAAU76H,GACrD,OAAY,MAALA,KAEXs7H,GACKxkH,MAAMsnB,EAAE/9B,GAAGk7H,YACZhsF,EAAM8qF,SAAW,IAChB9qF,EAAM2qF,QACN3qF,EAAMirF,aACNjrF,EAAMkrF,eACNlrF,EAAMisF,iBACNjsF,EAAM0rF,kBACN1rF,EAAMgrF,YACNhrF,EAAMmrF,gBACNnrF,EAAMorF,mBACLprF,EAAMwrF,UAAaxrF,EAAMwrF,UAAYM,GAU/C,GARIj9F,EAAEq9F,UACFH,EACIA,GACwB,IAAxB/rF,EAAM+qF,eACwB,IAA9B/qF,EAAM4qF,aAAar5H,aACDP,IAAlBgvC,EAAMmsF,SAGS,MAAnBj8H,OAAOk8H,UAAqBl8H,OAAOk8H,SAASv9F,GAG5C,OAAOk9F,EAFPl9F,EAAEg9F,SAAWE,EAKrB,OAAOl9F,EAAEg9F,SAGb,SAASQ,EAAcrsF,GACnB,IAAInR,EAAIy7F,EAAUxoC,KAOlB,OANa,MAAT9hD,EACA2rB,EAAOggE,EAAgB98F,GAAImR,GAE3B2rF,EAAgB98F,GAAGu8F,iBAAkB,EAGlCv8F,EA7DPk7F,EADAz5H,MAAM6B,UAAU43H,KACTz5H,MAAM6B,UAAU43H,KAEhB,SAAU3yD,GACb,IAEI3mE,EAFAo8B,EAAI38B,OAAOwD,MACXV,EAAM65B,EAAEt7B,SAAW,EAGvB,IAAKd,EAAI,EAAGA,EAAIuC,EAAKvC,IACjB,GAAIA,KAAKo8B,GAAKuqC,EAAI/kE,KAAKqB,KAAMm5B,EAAEp8B,GAAIA,EAAGo8B,GAClC,OAAO,EAIf,OAAO,GAqDf,IAAIy/F,EAAoBtC,EAAMsC,iBAAmB,GAC7CC,GAAmB,EAEvB,SAASC,EAAWx2H,EAAIvD,GACpB,IAAIhC,EAAG8zE,EAAMxvE,EAiCb,GA/BKq1H,EAAY33H,EAAKg6H,oBAClBz2H,EAAGy2H,iBAAmBh6H,EAAKg6H,kBAE1BrC,EAAY33H,EAAKvB,MAClB8E,EAAG9E,GAAKuB,EAAKvB,IAEZk5H,EAAY33H,EAAKi6H,MAClB12H,EAAG02H,GAAKj6H,EAAKi6H,IAEZtC,EAAY33H,EAAKk6H,MAClB32H,EAAG22H,GAAKl6H,EAAKk6H,IAEZvC,EAAY33H,EAAKy5H,WAClBl2H,EAAGk2H,QAAUz5H,EAAKy5H,SAEjB9B,EAAY33H,EAAKm6H,QAClB52H,EAAG42H,KAAOn6H,EAAKm6H,MAEdxC,EAAY33H,EAAKo6H,UAClB72H,EAAG62H,OAASp6H,EAAKo6H,QAEhBzC,EAAY33H,EAAKq6H,WAClB92H,EAAG82H,QAAUr6H,EAAKq6H,SAEjB1C,EAAY33H,EAAKm5H,OAClB51H,EAAG41H,IAAMD,EAAgBl5H,IAExB23H,EAAY33H,EAAKs6H,WAClB/2H,EAAG+2H,QAAUt6H,EAAKs6H,SAGlBT,EAAiB/6H,OAAS,EAC1B,IAAKd,EAAI,EAAGA,EAAI67H,EAAiB/6H,OAAQd,IAGhC25H,EADLr1H,EAAMtC,EADN8xE,EAAO+nD,EAAiB77H,OAGpBuF,EAAGuuE,GAAQxvE,GAKvB,OAAOiB,EAIX,SAASg3H,EAAO9oH,GACZsoH,EAAW94H,KAAMwQ,GACjBxQ,KAAK5C,GAAK,IAAI+Q,KAAkB,MAAbqC,EAAOpT,GAAaoT,EAAOpT,GAAGk7H,UAAYlqC,KACxDpuF,KAAK4tE,YACN5tE,KAAK5C,GAAK,IAAI+Q,KAAKigF,OAIE,IAArByqC,IACAA,GAAmB,EACnBvC,EAAMiD,aAAav5H,MACnB64H,GAAmB,GAI3B,SAASW,EAASjxH,GACd,OACIA,aAAe+wH,GAAkB,MAAP/wH,GAAuC,MAAxBA,EAAIwwH,iBAIrD,SAASp0G,EAAK80G,IAEgC,IAAtCnD,EAAMoD,6BACa,qBAAZn2G,SACPA,QAAQoB,MAERpB,QAAQoB,KAAK,wBAA0B80G,GAI/C,SAAS/2H,EAAU+2H,EAAKx0H,GACpB,IAAI00H,GAAY,EAEhB,OAAO1hE,GAAO,WAIV,GAHgC,MAA5Bq+D,EAAMsD,oBACNtD,EAAMsD,mBAAmB,KAAMH,GAE/BE,EAAW,CACX,IACIh1H,EACA5H,EACAqB,EAHA8G,EAAO,GAIX,IAAKnI,EAAI,EAAGA,EAAIyF,UAAU3E,OAAQd,IAAK,CAEnC,GADA4H,EAAM,GACsB,kBAAjBnC,UAAUzF,GAAiB,CAElC,IAAKqB,KADLuG,GAAO,MAAQ5H,EAAI,KACPyF,UAAU,GACdg0H,EAAWh0H,UAAU,GAAIpE,KACzBuG,GAAOvG,EAAM,KAAOoE,UAAU,GAAGpE,GAAO,MAGhDuG,EAAMA,EAAI/F,MAAM,GAAI,QAEpB+F,EAAMnC,UAAUzF,GAEpBmI,EAAKvH,KAAKgH,GAEdggB,EACI80G,EACI,gBACA78H,MAAM6B,UAAUG,MAAMD,KAAKuG,GAAMtD,KAAK,IACtC,MACA,IAAI00B,OAAQhzB,OAEpBq2H,GAAY,EAEhB,OAAO10H,EAAGE,MAAMnF,KAAMwC,aACvByC,GAGP,IAgFIhD,EAhFA43H,EAAe,GAEnB,SAASC,EAAgBh7H,EAAM26H,GACK,MAA5BnD,EAAMsD,oBACNtD,EAAMsD,mBAAmB96H,EAAM26H,GAE9BI,EAAa/6H,KACd6lB,EAAK80G,GACLI,EAAa/6H,IAAQ,GAO7B,SAASgJ,EAAWoJ,GAChB,MACyB,qBAAbxU,UAA4BwU,aAAiBxU,UACX,sBAA1CF,OAAOiC,UAAUC,SAASC,KAAKuS,GAIvC,SAAS/Q,EAAIqQ,GACT,IAAIqgE,EAAM9zE,EACV,IAAKA,KAAKyT,EACFgmH,EAAWhmH,EAAQzT,KAEf+K,EADJ+oE,EAAOrgE,EAAOzT,IAEViD,KAAKjD,GAAK8zE,EAEV7wE,KAAK,IAAMjD,GAAK8zE,GAI5B7wE,KAAK0hF,QAAUlxE,EAIfxQ,KAAK+5H,+BAAiC,IAAIC,QACrCh6H,KAAKi6H,wBAAwB73H,QAAUpC,KAAKk6H,cAAc93H,QACvD,IACA,UAAUA,QAItB,SAAS+3H,EAAaC,EAAcC,GAChC,IACIxpD,EADAqO,EAAMjnB,EAAO,GAAImiE,GAErB,IAAKvpD,KAAQwpD,EACL7D,EAAW6D,EAAaxpD,KACpBlrE,EAASy0H,EAAavpD,KAAUlrE,EAAS00H,EAAYxpD,KACrDqO,EAAIrO,GAAQ,GACZ5Y,EAAOinB,EAAIrO,GAAOupD,EAAavpD,IAC/B5Y,EAAOinB,EAAIrO,GAAOwpD,EAAYxpD,KACF,MAArBwpD,EAAYxpD,GACnBqO,EAAIrO,GAAQwpD,EAAYxpD,UAEjBqO,EAAIrO,IAIvB,IAAKA,KAAQupD,EAEL5D,EAAW4D,EAAcvpD,KACxB2lD,EAAW6D,EAAaxpD,IACzBlrE,EAASy0H,EAAavpD,MAGtBqO,EAAIrO,GAAQ5Y,EAAO,GAAIinB,EAAIrO,KAGnC,OAAOqO,EAGX,SAASo7C,EAAO9pH,GACE,MAAVA,GACAxQ,KAAKG,IAAIqQ,GAhEjB8lH,EAAMoD,6BAA8B,EACpCpD,EAAMsD,mBAAqB,KAsEvB33H,EADAzF,OAAOyF,KACAzF,OAAOyF,KAEP,SAAUsG,GACb,IAAIxL,EACAmiF,EAAM,GACV,IAAKniF,KAAKwL,EACFiuH,EAAWjuH,EAAKxL,IAChBmiF,EAAIvhF,KAAKZ,GAGjB,OAAOmiF,GAIf,IAAIq7C,EAAkB,CAClBC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAGd,SAASC,EAAS18H,EAAK28H,EAAK5mF,GACxB,IAAI6mF,EAASh7H,KAAKi7H,UAAU78H,IAAQ4B,KAAKi7H,UAAL,SACpC,OAAOnzH,EAAWkzH,GAAUA,EAAOr8H,KAAKo8H,EAAK5mF,GAAO6mF,EAGxD,SAASE,EAASjlG,EAAQklG,EAAcC,GACpC,IAAIC,EAAY,GAAKplH,KAAK4B,IAAIoe,GAC1BqlG,EAAcH,EAAeE,EAAUx9H,OAE3C,OADWo4B,GAAU,EAERmlG,EAAY,IAAM,GAAM,KACjCnlH,KAAKC,IAAI,GAAID,KAAK2B,IAAI,EAAG0jH,IAAc58H,WAAWgzE,OAAO,GACzD2pD,EAIR,IAAIE,EAAmB,yMACnBC,EAAwB,6CACxBC,EAAkB,GAClBC,EAAuB,GAM3B,SAASC,EAAeC,EAAOC,EAAQC,EAASz1E,GAC5C,IAAItgD,EAAOsgD,EACa,kBAAbA,IACPtgD,EAAO,WACH,OAAO/F,KAAKqmD,OAGhBu1E,IACAF,EAAqBE,GAAS71H,GAE9B81H,IACAH,EAAqBG,EAAO,IAAM,WAC9B,OAAOX,EAASn1H,EAAKZ,MAAMnF,KAAMwC,WAAYq5H,EAAO,GAAIA,EAAO,MAGnEC,IACAJ,EAAqBI,GAAW,WAC5B,OAAO97H,KAAK+7H,aAAaD,QACrB/1H,EAAKZ,MAAMnF,KAAMwC,WACjBo5H,KAMhB,SAASI,EAAuB9qH,GAC5B,OAAIA,EAAMgxB,MAAM,YACLhxB,EAAMjH,QAAQ,WAAY,IAE9BiH,EAAMjH,QAAQ,MAAO,IAGhC,SAASgyH,EAAmBtrH,GACxB,IACI5T,EACAc,EAFA0C,EAAQoQ,EAAOuxB,MAAMq5F,GAIzB,IAAKx+H,EAAI,EAAGc,EAAS0C,EAAM1C,OAAQd,EAAIc,EAAQd,IACvC2+H,EAAqBn7H,EAAMxD,IAC3BwD,EAAMxD,GAAK2+H,EAAqBn7H,EAAMxD,IAEtCwD,EAAMxD,GAAKi/H,EAAuBz7H,EAAMxD,IAIhD,OAAO,SAAUg+H,GACb,IACIh+H,EADAi+H,EAAS,GAEb,IAAKj+H,EAAI,EAAGA,EAAIc,EAAQd,IACpBi+H,GAAUlzH,EAAWvH,EAAMxD,IACrBwD,EAAMxD,GAAG4B,KAAKo8H,EAAKpqH,GACnBpQ,EAAMxD,GAEhB,OAAOi+H,GAKf,SAASkB,EAAa/gG,EAAGxqB,GACrB,OAAKwqB,EAAEyyC,WAIPj9D,EAASwrH,EAAaxrH,EAAQwqB,EAAE4gG,cAChCN,EAAgB9qH,GACZ8qH,EAAgB9qH,IAAWsrH,EAAmBtrH,GAE3C8qH,EAAgB9qH,GAAQwqB,IAPpBA,EAAE4gG,aAAaK,cAU9B,SAASD,EAAaxrH,EAAQsnC,GAC1B,IAAIl7C,EAAI,EAER,SAASs/H,EAA4BnrH,GACjC,OAAO+mC,EAAOqkF,eAAeprH,IAAUA,EAI3C,IADAsqH,EAAsBe,UAAY,EAC3Bx/H,GAAK,GAAKy+H,EAAsBx8H,KAAK2R,IACxCA,EAASA,EAAO1G,QACZuxH,EACAa,GAEJb,EAAsBe,UAAY,EAClCx/H,GAAK,EAGT,OAAO4T,EAGX,IAAI6rH,EAAwB,CACxBC,IAAK,YACLC,GAAI,SACJphG,EAAG,aACHqhG,GAAI,eACJC,IAAK,sBACLC,KAAM,6BAGV,SAASP,EAAel+H,GACpB,IAAIuS,EAAS3Q,KAAK88H,gBAAgB1+H,GAC9B2+H,EAAc/8H,KAAK88H,gBAAgB1+H,EAAI+hC,eAE3C,OAAIxvB,IAAWosH,EACJpsH,GAGX3Q,KAAK88H,gBAAgB1+H,GAAO2+H,EACvB76F,MAAMq5F,GACN56H,KAAI,SAAUq8H,GACX,MACY,SAARA,GACQ,OAARA,GACQ,OAARA,GACQ,SAARA,EAEOA,EAAIp+H,MAAM,GAEdo+H,KAEVp7H,KAAK,IAEH5B,KAAK88H,gBAAgB1+H,IAGhC,IAAI6+H,EAAqB,eAEzB,SAASb,IACL,OAAOp8H,KAAKk9H,aAGhB,IAAIC,EAAiB,KACjBC,EAAgC,UAEpC,SAAStB,EAAQ7lG,GACb,OAAOj2B,KAAKq9H,SAASpzH,QAAQ,KAAMgsB,GAGvC,IAAIqnG,EAAsB,CACtBC,OAAQ,QACRC,KAAM,SACNj7H,EAAG,gBACHk7H,GAAI,aACJtiG,EAAG,WACHuiG,GAAI,aACJziG,EAAG,UACH0uB,GAAI,WACJ5sC,EAAG,QACH+0B,GAAI,UACJvY,EAAG,SACHokG,GAAI,WACJpiG,EAAG,UACHqiG,GAAI,YACJhiG,EAAG,SACHiiG,GAAI,YAGR,SAASC,EAAa7nG,EAAQ8nG,EAAe/xH,EAAQgyH,GACjD,IAAIhD,EAASh7H,KAAKi+H,cAAcjyH,GAChC,OAAOlE,EAAWkzH,GACZA,EAAO/kG,EAAQ8nG,EAAe/xH,EAAQgyH,GACtChD,EAAO/wH,QAAQ,MAAOgsB,GAGhC,SAASioG,GAAWz1D,EAAMuyD,GACtB,IAAIrqH,EAAS3Q,KAAKi+H,cAAcx1D,EAAO,EAAI,SAAW,QACtD,OAAO3gE,EAAW6I,GAAUA,EAAOqqH,GAAUrqH,EAAO1G,QAAQ,MAAO+wH,GAGvE,IAAImD,GAAU,GAEd,SAASC,GAAalb,EAAMmb,GACxB,IAAIC,EAAYpb,EAAKljF,cACrBm+F,GAAQG,GAAaH,GAAQG,EAAY,KAAOH,GAAQE,GAAanb,EAGzE,SAASqb,GAAeC,GACpB,MAAwB,kBAAVA,EACRL,GAAQK,IAAUL,GAAQK,EAAMx+F,oBAChC1iC,EAGV,SAASmhI,GAAqBC,GAC1B,IACIC,EACA9tD,EAFA+tD,EAAkB,GAItB,IAAK/tD,KAAQ6tD,EACLlI,EAAWkI,EAAa7tD,KACxB8tD,EAAiBJ,GAAe1tD,MAE5B+tD,EAAgBD,GAAkBD,EAAY7tD,IAK1D,OAAO+tD,EAGX,IAAIC,GAAa,GAEjB,SAASC,GAAgB5b,EAAMv0E,GAC3BkwF,GAAW3b,GAAQv0E,EAGvB,SAASowF,GAAoBC,GACzB,IACI3lG,EADAmlG,EAAQ,GAEZ,IAAKnlG,KAAK2lG,EACFxI,EAAWwI,EAAU3lG,IACrBmlG,EAAM7gI,KAAK,CAAEulH,KAAM7pF,EAAGsV,SAAUkwF,GAAWxlG,KAMnD,OAHAmlG,EAAM3jD,MAAK,SAAU1xE,EAAGC,GACpB,OAAOD,EAAEwlC,SAAWvlC,EAAEulC,YAEnB6vF,EAGX,SAASS,GAAWhU,GAChB,OAAQA,EAAO,IAAM,GAAKA,EAAO,MAAQ,GAAMA,EAAO,MAAQ,EAGlE,SAASiU,GAASjpG,GACd,OAAIA,EAAS,EAEFhgB,KAAKq+C,KAAKr+B,IAAW,EAErBhgB,KAAK8mD,MAAM9mC,GAI1B,SAASkpG,GAAMC,GACX,IAAIC,GAAiBD,EACjBxhI,EAAQ,EAMZ,OAJsB,IAAlByhI,GAAuB1tD,SAAS0tD,KAChCzhI,EAAQshI,GAASG,IAGdzhI,EAGX,SAAS0hI,GAAWpc,EAAMqc,GACtB,OAAO,SAAU3hI,GACb,OAAa,MAATA,GACA4hI,GAAMx/H,KAAMkjH,EAAMtlH,GAClB04H,EAAMiD,aAAav5H,KAAMu/H,GAClBv/H,MAEAI,GAAIJ,KAAMkjH,IAK7B,SAAS9iH,GAAI26H,EAAK7X,GACd,OAAO6X,EAAIntD,UACLmtD,EAAI39H,GAAG,OAAS29H,EAAI5B,OAAS,MAAQ,IAAMjW,KAC3C90B,IAGV,SAASoxC,GAAMzE,EAAK7X,EAAMtlH,GAClBm9H,EAAIntD,YAAc/5D,MAAMjW,KAEX,aAATslH,GACA+b,GAAWlE,EAAI9P,SACC,IAAhB8P,EAAIvgF,SACW,KAAfugF,EAAI1gF,QAEJz8C,EAAQuhI,GAAMvhI,GACdm9H,EAAI39H,GAAG,OAAS29H,EAAI5B,OAAS,MAAQ,IAAMjW,GACvCtlH,EACAm9H,EAAIvgF,QACJilF,GAAY7hI,EAAOm9H,EAAIvgF,WAG3BugF,EAAI39H,GAAG,OAAS29H,EAAI5B,OAAS,MAAQ,IAAMjW,GAAMtlH,IAO7D,SAAS8hI,GAAUlB,GAEf,OAAI12H,EAAW9H,KADfw+H,EAAQD,GAAeC,KAEZx+H,KAAKw+H,KAETx+H,KAGX,SAAS2/H,GAAUnB,EAAO5gI,GACtB,GAAqB,kBAAV4gI,EAAoB,CAE3B,IACIzhI,EADA6iI,EAAcb,GADlBP,EAAQC,GAAqBD,IAG7B,IAAKzhI,EAAI,EAAGA,EAAI6iI,EAAY/hI,OAAQd,IAChCiD,KAAK4/H,EAAY7iI,GAAGmmH,MAAMsb,EAAMoB,EAAY7iI,GAAGmmH,YAInD,GAAIp7G,EAAW9H,KADfw+H,EAAQD,GAAeC,KAEnB,OAAOx+H,KAAKw+H,GAAO5gI,GAG3B,OAAOoC,KAGX,IAmBI6/H,GAnBAC,GAAS,KACTC,GAAS,OACTC,GAAS,QACTC,GAAS,QACTC,GAAS,aACTC,GAAY,QACZC,GAAY,YACZC,GAAY,gBACZC,GAAY,UACZC,GAAY,UACZC,GAAY,eACZC,GAAgB,MAChBC,GAAc,WACdC,GAAc,qBACdC,GAAmB,0BACnBC,GAAiB,uBAGjBC,GAAY,wJAKhB,SAASC,GAAcnF,EAAOoF,EAAOC,GACjCpB,GAAQjE,GAAS9zH,EAAWk5H,GACtBA,EACA,SAAUE,EAAUnF,GAChB,OAAOmF,GAAYD,EAAcA,EAAcD,GAI7D,SAASG,GAAsBvF,EAAOprH,GAClC,OAAKgmH,EAAWqJ,GAASjE,GAIlBiE,GAAQjE,GAAOprH,EAAOgoH,QAAShoH,EAAO6oH,SAHlC,IAAIW,OAAOoH,GAAexF,IAOzC,SAASwF,GAAe7+H,GACpB,OAAO8+H,GACH9+H,EACK0H,QAAQ,KAAM,IACdA,QAAQ,uCAAuC,SAC5Cq3H,EACAnQ,EACAoQ,EACAC,EACAC,GAEA,OAAOtQ,GAAMoQ,GAAMC,GAAMC,MAKzC,SAASJ,GAAY9+H,GACjB,OAAOA,EAAE0H,QAAQ,yBAA0B,QApC/C41H,GAAU,GAuCV,IAAI6B,GAAS,GAEb,SAASC,GAAc/F,EAAOv1E,GAC1B,IAAItpD,EACAgJ,EAAOsgD,EASX,IARqB,kBAAVu1E,IACPA,EAAQ,CAACA,IAETn+C,EAASp3B,KACTtgD,EAAO,SAAUmL,EAAO3Q,GACpBA,EAAM8lD,GAAY84E,GAAMjuH,KAG3BnU,EAAI,EAAGA,EAAI6+H,EAAM/9H,OAAQd,IAC1B2kI,GAAO9F,EAAM7+H,IAAMgJ,EAI3B,SAAS67H,GAAkBhG,EAAOv1E,GAC9Bs7E,GAAc/F,GAAO,SAAU1qH,EAAO3Q,EAAOiQ,EAAQorH,GACjDprH,EAAOqxH,GAAKrxH,EAAOqxH,IAAM,GACzBx7E,EAASn1C,EAAOV,EAAOqxH,GAAIrxH,EAAQorH,MAI3C,SAASkG,GAAwBlG,EAAO1qH,EAAOV,GAC9B,MAATU,GAAiBslH,EAAWkL,GAAQ9F,IACpC8F,GAAO9F,GAAO1qH,EAAOV,EAAOuxH,GAAIvxH,EAAQorH,GAIhD,IAcIpqG,GAdAwwG,GAAO,EACPC,GAAQ,EACRC,GAAO,EACPC,GAAO,EACPC,GAAS,EACTC,GAAS,EACTC,GAAc,EACdC,GAAO,EACPC,GAAU,EAEd,SAASC,GAAIjkI,EAAGwX,GACZ,OAASxX,EAAIwX,EAAKA,GAAKA,EAoB3B,SAASypH,GAAYxU,EAAMzwE,GACvB,GAAI3mC,MAAMo3G,IAASp3G,MAAM2mC,GACrB,OAAO4zC,IAEX,IAAIs0C,EAAWD,GAAIjoF,EAAO,IAE1B,OADAywE,IAASzwE,EAAQkoF,GAAY,GACT,IAAbA,EACDzD,GAAWhU,GACP,GACA,GACJ,GAAOyX,EAAW,EAAK,EAxB7BlxG,GADA50B,MAAM6B,UAAU+yB,QACN50B,MAAM6B,UAAU+yB,QAEhB,SAAUlzB,GAEhB,IAAIvB,EACJ,IAAKA,EAAI,EAAGA,EAAIiD,KAAKnC,SAAUd,EAC3B,GAAIiD,KAAKjD,KAAOuB,EACZ,OAAOvB,EAGf,OAAQ,GAmBhB4+H,EAAe,IAAK,CAAC,KAAM,GAAI,MAAM,WACjC,OAAO37H,KAAKw6C,QAAU,KAG1BmhF,EAAe,MAAO,EAAG,GAAG,SAAUhrH,GAClC,OAAO3Q,KAAK+7H,aAAa4G,YAAY3iI,KAAM2Q,MAG/CgrH,EAAe,OAAQ,EAAG,GAAG,SAAUhrH,GACnC,OAAO3Q,KAAK+7H,aAAa6G,OAAO5iI,KAAM2Q,MAK1CytH,GAAa,QAAS,KAItBU,GAAgB,QAAS,GAIzBiC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,OAAO,SAAUG,EAAUjpF,GACrC,OAAOA,EAAO4qF,iBAAiB3B,MAEnCH,GAAc,QAAQ,SAAUG,EAAUjpF,GACtC,OAAOA,EAAO6qF,YAAY5B,MAG9BS,GAAc,CAAC,IAAK,OAAO,SAAUzwH,EAAO3Q,GACxCA,EAAM0hI,IAAS9C,GAAMjuH,GAAS,KAGlCywH,GAAc,CAAC,MAAO,SAAS,SAAUzwH,EAAO3Q,EAAOiQ,EAAQorH,GAC3D,IAAIphF,EAAQhqC,EAAO6oH,QAAQ0J,YAAY7xH,EAAO0qH,EAAOprH,EAAOgoH,SAE/C,MAATh+E,EACAj6C,EAAM0hI,IAASznF,EAEfy9E,EAAgBznH,GAAQgnH,aAAetmH,KAM/C,IAAI8xH,GAAsB,wFAAwFlhI,MAC1G,KAEJmhI,GAA2B,kDAAkDnhI,MACzE,KAEJohI,GAAmB,gCACnBC,GAA0BrC,GAC1BsC,GAAqBtC,GAEzB,SAASuC,GAAaloG,EAAGxqB,GACrB,OAAKwqB,EAKEx+B,EAAQqD,KAAKsjI,SACdtjI,KAAKsjI,QAAQnoG,EAAEqf,SACfx6C,KAAKsjI,SACAtjI,KAAKsjI,QAAQC,UAAYL,IAAkBlkI,KAAK2R,GAC3C,SACA,cACRwqB,EAAEqf,SAVC79C,EAAQqD,KAAKsjI,SACdtjI,KAAKsjI,QACLtjI,KAAKsjI,QAAL,WAWd,SAASE,GAAkBroG,EAAGxqB,GAC1B,OAAKwqB,EAKEx+B,EAAQqD,KAAKyjI,cACdzjI,KAAKyjI,aAAatoG,EAAEqf,SACpBx6C,KAAKyjI,aACDP,GAAiBlkI,KAAK2R,GAAU,SAAW,cAC7CwqB,EAAEqf,SARC79C,EAAQqD,KAAKyjI,cACdzjI,KAAKyjI,aACLzjI,KAAKyjI,aAAL,WASd,SAASC,GAAkBC,EAAWhzH,EAAQkmH,GAC1C,IAAI95H,EACA6xD,EACAmsE,EACA6I,EAAMD,EAAUE,oBACpB,IAAK7jI,KAAK8jI,aAKN,IAHA9jI,KAAK8jI,aAAe,GACpB9jI,KAAK+jI,iBAAmB,GACxB/jI,KAAKgkI,kBAAoB,GACpBjnI,EAAI,EAAGA,EAAI,KAAMA,EAClBg+H,EAAMnE,EAAU,CAAC,IAAM75H,IACvBiD,KAAKgkI,kBAAkBjnI,GAAKiD,KAAK2iI,YAC7B5H,EACA,IACF8I,oBACF7jI,KAAK+jI,iBAAiBhnI,GAAKiD,KAAK4iI,OAAO7H,EAAK,IAAI8I,oBAIxD,OAAIhN,EACe,QAAXlmH,GAEe,KADfi+C,EAAKp9B,GAAQ7yB,KAAKqB,KAAKgkI,kBAAmBJ,IACvBh1E,EAAK,MAGT,KADfA,EAAKp9B,GAAQ7yB,KAAKqB,KAAK+jI,iBAAkBH,IACtBh1E,EAAK,KAGb,QAAXj+C,GAEY,KADZi+C,EAAKp9B,GAAQ7yB,KAAKqB,KAAKgkI,kBAAmBJ,MAK3B,KADfh1E,EAAKp9B,GAAQ7yB,KAAKqB,KAAK+jI,iBAAkBH,IAF9Bh1E,EAGa,MAGZ,KADZA,EAAKp9B,GAAQ7yB,KAAKqB,KAAK+jI,iBAAkBH,MAK1B,KADfh1E,EAAKp9B,GAAQ7yB,KAAKqB,KAAKgkI,kBAAmBJ,IAF/Bh1E,EAGa,KAKpC,SAASq1E,GAAkBN,EAAWhzH,EAAQkmH,GAC1C,IAAI95H,EAAGg+H,EAAKiG,EAEZ,GAAIhhI,KAAKkkI,kBACL,OAAOR,GAAkB/kI,KAAKqB,KAAM2jI,EAAWhzH,EAAQkmH,GAY3D,IATK72H,KAAK8jI,eACN9jI,KAAK8jI,aAAe,GACpB9jI,KAAK+jI,iBAAmB,GACxB/jI,KAAKgkI,kBAAoB,IAMxBjnI,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAmBrB,GAjBAg+H,EAAMnE,EAAU,CAAC,IAAM75H,IACnB85H,IAAW72H,KAAK+jI,iBAAiBhnI,KACjCiD,KAAK+jI,iBAAiBhnI,GAAK,IAAIi9H,OAC3B,IAAMh6H,KAAK4iI,OAAO7H,EAAK,IAAI9wH,QAAQ,IAAK,IAAM,IAC9C,KAEJjK,KAAKgkI,kBAAkBjnI,GAAK,IAAIi9H,OAC5B,IAAMh6H,KAAK2iI,YAAY5H,EAAK,IAAI9wH,QAAQ,IAAK,IAAM,IACnD,MAGH4sH,GAAW72H,KAAK8jI,aAAa/mI,KAC9BikI,EACI,IAAMhhI,KAAK4iI,OAAO7H,EAAK,IAAM,KAAO/6H,KAAK2iI,YAAY5H,EAAK,IAC9D/6H,KAAK8jI,aAAa/mI,GAAK,IAAIi9H,OAAOgH,EAAM/2H,QAAQ,IAAK,IAAK,MAI1D4sH,GACW,SAAXlmH,GACA3Q,KAAK+jI,iBAAiBhnI,GAAGiC,KAAK2kI,GAE9B,OAAO5mI,EACJ,GACH85H,GACW,QAAXlmH,GACA3Q,KAAKgkI,kBAAkBjnI,GAAGiC,KAAK2kI,GAE/B,OAAO5mI,EACJ,IAAK85H,GAAU72H,KAAK8jI,aAAa/mI,GAAGiC,KAAK2kI,GAC5C,OAAO5mI,GAOnB,SAASonI,GAASpJ,EAAKn9H,GACnB,IAAIwmI,EAEJ,IAAKrJ,EAAIntD,UAEL,OAAOmtD,EAGX,GAAqB,kBAAVn9H,EACP,GAAI,QAAQoB,KAAKpB,GACbA,EAAQuhI,GAAMvhI,QAId,IAAK6/E,EAFL7/E,EAAQm9H,EAAIgB,aAAagH,YAAYnlI,IAGjC,OAAOm9H,EAOnB,OAFAqJ,EAAanuH,KAAKsG,IAAIw+G,EAAI1gF,OAAQolF,GAAY1E,EAAI9P,OAAQrtH,IAC1Dm9H,EAAI39H,GAAG,OAAS29H,EAAI5B,OAAS,MAAQ,IAAM,SAASv7H,EAAOwmI,GACpDrJ,EAGX,SAASsJ,GAAYzmI,GACjB,OAAa,MAATA,GACAumI,GAASnkI,KAAMpC,GACf04H,EAAMiD,aAAav5H,MAAM,GAClBA,MAEAI,GAAIJ,KAAM,SAIzB,SAASskI,KACL,OAAO7E,GAAYz/H,KAAKirH,OAAQjrH,KAAKw6C,SAGzC,SAASqoF,GAAiB3B,GACtB,OAAIlhI,KAAKkkI,mBACA1N,EAAWx2H,KAAM,iBAClBukI,GAAmB5lI,KAAKqB,MAExBkhI,EACOlhI,KAAKwkI,wBAELxkI,KAAKykI,oBAGXjO,EAAWx2H,KAAM,uBAClBA,KAAKykI,kBAAoBtB,IAEtBnjI,KAAKwkI,yBAA2BtD,EACjClhI,KAAKwkI,wBACLxkI,KAAKykI,mBAInB,SAAS3B,GAAY5B,GACjB,OAAIlhI,KAAKkkI,mBACA1N,EAAWx2H,KAAM,iBAClBukI,GAAmB5lI,KAAKqB,MAExBkhI,EACOlhI,KAAK0kI,mBAEL1kI,KAAK2kI,eAGXnO,EAAWx2H,KAAM,kBAClBA,KAAK2kI,aAAevB,IAEjBpjI,KAAK0kI,oBAAsBxD,EAC5BlhI,KAAK0kI,mBACL1kI,KAAK2kI,cAInB,SAASJ,KACL,SAASK,EAAUz7H,EAAGC,GAClB,OAAOA,EAAEvL,OAASsL,EAAEtL,OAGxB,IAGId,EACAg+H,EAJA8J,EAAc,GACdC,EAAa,GACbC,EAAc,GAGlB,IAAKhoI,EAAI,EAAGA,EAAI,GAAIA,IAEhBg+H,EAAMnE,EAAU,CAAC,IAAM75H,IACvB8nI,EAAYlnI,KAAKqC,KAAK2iI,YAAY5H,EAAK,KACvC+J,EAAWnnI,KAAKqC,KAAK4iI,OAAO7H,EAAK,KACjCgK,EAAYpnI,KAAKqC,KAAK4iI,OAAO7H,EAAK,KAClCgK,EAAYpnI,KAAKqC,KAAK2iI,YAAY5H,EAAK,KAO3C,IAHA8J,EAAYhqD,KAAK+pD,GACjBE,EAAWjqD,KAAK+pD,GAChBG,EAAYlqD,KAAK+pD,GACZ7nI,EAAI,EAAGA,EAAI,GAAIA,IAChB8nI,EAAY9nI,GAAKskI,GAAYwD,EAAY9nI,IACzC+nI,EAAW/nI,GAAKskI,GAAYyD,EAAW/nI,IAE3C,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAChBgoI,EAAYhoI,GAAKskI,GAAY0D,EAAYhoI,IAG7CiD,KAAK2kI,aAAe,IAAI3K,OAAO,KAAO+K,EAAYnjI,KAAK,KAAO,IAAK,KACnE5B,KAAKykI,kBAAoBzkI,KAAK2kI,aAC9B3kI,KAAK0kI,mBAAqB,IAAI1K,OAC1B,KAAO8K,EAAWljI,KAAK,KAAO,IAC9B,KAEJ5B,KAAKwkI,wBAA0B,IAAIxK,OAC/B,KAAO6K,EAAYjjI,KAAK,KAAO,IAC/B,KAiDR,SAASojI,GAAW/Z,GAChB,OAAOgU,GAAWhU,GAAQ,IAAM,IA5CpC0Q,EAAe,IAAK,EAAG,GAAG,WACtB,IAAI//F,EAAI57B,KAAKirH,OACb,OAAOrvF,GAAK,KAAOs/F,EAASt/F,EAAG,GAAK,IAAMA,KAG9C+/F,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,OAAO37H,KAAKirH,OAAS,OAGzB0Q,EAAe,EAAG,CAAC,OAAQ,GAAI,EAAG,QAClCA,EAAe,EAAG,CAAC,QAAS,GAAI,EAAG,QACnCA,EAAe,EAAG,CAAC,SAAU,GAAG,GAAO,EAAG,QAI1CyC,GAAa,OAAQ,KAIrBU,GAAgB,OAAQ,GAIxBiC,GAAc,IAAKL,IACnBK,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,OAAQR,GAAWN,IACjCc,GAAc,QAASP,GAAWN,IAClCa,GAAc,SAAUP,GAAWN,IAEnCyB,GAAc,CAAC,QAAS,UAAWK,IACnCL,GAAc,QAAQ,SAAUzwH,EAAO3Q,GACnCA,EAAMyhI,IACe,IAAjB9wH,EAAMrT,OAAey4H,EAAM2O,kBAAkB/zH,GAASiuH,GAAMjuH,MAEpEywH,GAAc,MAAM,SAAUzwH,EAAO3Q,GACjCA,EAAMyhI,IAAQ1L,EAAM2O,kBAAkB/zH,MAE1CywH,GAAc,KAAK,SAAUzwH,EAAO3Q,GAChCA,EAAMyhI,IAAQ53D,SAASl5D,EAAO,OAWlColH,EAAM2O,kBAAoB,SAAU/zH,GAChC,OAAOiuH,GAAMjuH,IAAUiuH,GAAMjuH,GAAS,GAAK,KAAO,MAKtD,IAAIg0H,GAAa5F,GAAW,YAAY,GAExC,SAAS6F,KACL,OAAOlG,GAAWj/H,KAAKirH,QAG3B,SAASma,GAAWxpG,EAAGT,EAAGpe,EAAGke,EAAGM,EAAGh5B,EAAG8iI,GAGlC,IAAIhrF,EAYJ,OAVIze,EAAI,KAAOA,GAAK,GAEhBye,EAAO,IAAIlsC,KAAKytB,EAAI,IAAKT,EAAGpe,EAAGke,EAAGM,EAAGh5B,EAAG8iI,GACpC1zD,SAASt3B,EAAKirF,gBACdjrF,EAAKkrF,YAAY3pG,IAGrBye,EAAO,IAAIlsC,KAAKytB,EAAGT,EAAGpe,EAAGke,EAAGM,EAAGh5B,EAAG8iI,GAG/BhrF,EAGX,SAASmrF,GAAc5pG,GACnB,IAAIye,EAAMn1C,EAcV,OAZI02B,EAAI,KAAOA,GAAK,IAChB12B,EAAOtI,MAAM6B,UAAUG,MAAMD,KAAK6D,YAE7B,GAAKo5B,EAAI,IACdye,EAAO,IAAIlsC,KAAKA,KAAKs3H,IAAItgI,MAAM,KAAMD,IACjCysE,SAASt3B,EAAKqrF,mBACdrrF,EAAKsrF,eAAe/pG,IAGxBye,EAAO,IAAIlsC,KAAKA,KAAKs3H,IAAItgI,MAAM,KAAM3C,YAGlC63C,EAIX,SAASurF,GAAgB3a,EAAM4a,EAAKC,GAChC,IACIC,EAAM,EAAIF,EAAMC,EAIpB,QAFa,EAAIN,GAAcva,EAAM,EAAG8a,GAAKC,YAAcH,GAAO,EAElDE,EAAM,EAI1B,SAASE,GAAmBhb,EAAMjwE,EAAMmyE,EAAS0Y,EAAKC,GAClD,IAGII,EACAC,EAFAC,EAAY,EAAI,GAAKprF,EAAO,IAFZ,EAAImyE,EAAU0Y,GAAO,EACxBD,GAAgB3a,EAAM4a,EAAKC,GAgB5C,OAXIM,GAAa,EAEbD,EAAenB,GADfkB,EAAUjb,EAAO,GACoBmb,EAC9BA,EAAYpB,GAAW/Z,IAC9Bib,EAAUjb,EAAO,EACjBkb,EAAeC,EAAYpB,GAAW/Z,KAEtCib,EAAUjb,EACVkb,EAAeC,GAGZ,CACHnb,KAAMib,EACNE,UAAWD,GAInB,SAASE,GAAWtL,EAAK8K,EAAKC,GAC1B,IAEIQ,EACAJ,EAHAK,EAAaX,GAAgB7K,EAAI9P,OAAQ4a,EAAKC,GAC9C9qF,EAAO/kC,KAAK8mD,OAAOg+D,EAAIqL,YAAcG,EAAa,GAAK,GAAK,EAehE,OAXIvrF,EAAO,EAEPsrF,EAAUtrF,EAAOwrF,GADjBN,EAAUnL,EAAI9P,OAAS,EACe4a,EAAKC,GACpC9qF,EAAOwrF,GAAYzL,EAAI9P,OAAQ4a,EAAKC,IAC3CQ,EAAUtrF,EAAOwrF,GAAYzL,EAAI9P,OAAQ4a,EAAKC,GAC9CI,EAAUnL,EAAI9P,OAAS,IAEvBib,EAAUnL,EAAI9P,OACdqb,EAAUtrF,GAGP,CACHA,KAAMsrF,EACNrb,KAAMib,GAId,SAASM,GAAYvb,EAAM4a,EAAKC,GAC5B,IAAIS,EAAaX,GAAgB3a,EAAM4a,EAAKC,GACxCW,EAAiBb,GAAgB3a,EAAO,EAAG4a,EAAKC,GACpD,OAAQd,GAAW/Z,GAAQsb,EAAaE,GAAkB,EAsC9D,SAASC,GAAW3L,GAChB,OAAOsL,GAAWtL,EAAK/6H,KAAK2mI,MAAMd,IAAK7lI,KAAK2mI,MAAMb,KAAK9qF,KAlC3D2gF,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,QACrCA,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,WAIrCyC,GAAa,OAAQ,KACrBA,GAAa,UAAW,KAIxBU,GAAgB,OAAQ,GACxBA,GAAgB,UAAW,GAI3BiC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAE/B6B,GAAkB,CAAC,IAAK,KAAM,IAAK,OAAO,SACtC1wH,EACA8pC,EACAxqC,EACAorH,GAEA5gF,EAAK4gF,EAAMlqD,OAAO,EAAG,IAAMytD,GAAMjuH,MAWrC,IAAI01H,GAAoB,CACpBf,IAAK,EACLC,IAAK,GAGT,SAASe,KACL,OAAO7mI,KAAK2mI,MAAMd,IAGtB,SAASiB,KACL,OAAO9mI,KAAK2mI,MAAMb,IAKtB,SAASiB,GAAW71H,GAChB,IAAI8pC,EAAOh7C,KAAK+7H,aAAa/gF,KAAKh7C,MAClC,OAAgB,MAATkR,EAAgB8pC,EAAOh7C,KAAK0P,IAAqB,GAAhBwB,EAAQ8pC,GAAW,KAG/D,SAASgsF,GAAc91H,GACnB,IAAI8pC,EAAOqrF,GAAWrmI,KAAM,EAAG,GAAGg7C,KAClC,OAAgB,MAAT9pC,EAAgB8pC,EAAOh7C,KAAK0P,IAAqB,GAAhBwB,EAAQ8pC,GAAW,KAgE/D,SAASisF,GAAa/1H,EAAO+mC,GACzB,MAAqB,kBAAV/mC,EACAA,EAGN2C,MAAM3C,GAKU,kBADrBA,EAAQ+mC,EAAOivF,cAAch2H,IAElBA,EAGJ,KARIk5D,SAASl5D,EAAO,IAW/B,SAASi2H,GAAgBj2H,EAAO+mC,GAC5B,MAAqB,kBAAV/mC,EACA+mC,EAAOivF,cAAch2H,GAAS,GAAK,EAEvC2C,MAAM3C,GAAS,KAAOA,EAIjC,SAASk2H,GAAcC,EAAI7oI,GACvB,OAAO6oI,EAAGzoI,MAAMJ,EAAG,GAAG8K,OAAO+9H,EAAGzoI,MAAM,EAAGJ,IArF7Cm9H,EAAe,IAAK,EAAG,KAAM,OAE7BA,EAAe,KAAM,EAAG,GAAG,SAAUhrH,GACjC,OAAO3Q,KAAK+7H,aAAauL,YAAYtnI,KAAM2Q,MAG/CgrH,EAAe,MAAO,EAAG,GAAG,SAAUhrH,GAClC,OAAO3Q,KAAK+7H,aAAawL,cAAcvnI,KAAM2Q,MAGjDgrH,EAAe,OAAQ,EAAG,GAAG,SAAUhrH,GACnC,OAAO3Q,KAAK+7H,aAAayL,SAASxnI,KAAM2Q,MAG5CgrH,EAAe,IAAK,EAAG,EAAG,WAC1BA,EAAe,IAAK,EAAG,EAAG,cAI1ByC,GAAa,MAAO,KACpBA,GAAa,UAAW,KACxBA,GAAa,aAAc,KAG3BU,GAAgB,MAAO,IACvBA,GAAgB,UAAW,IAC3BA,GAAgB,aAAc,IAI9BiC,GAAc,IAAKZ,IACnBY,GAAc,IAAKZ,IACnBY,GAAc,IAAKZ,IACnBY,GAAc,MAAM,SAAUG,EAAUjpF,GACpC,OAAOA,EAAOwvF,iBAAiBvG,MAEnCH,GAAc,OAAO,SAAUG,EAAUjpF,GACrC,OAAOA,EAAOyvF,mBAAmBxG,MAErCH,GAAc,QAAQ,SAAUG,EAAUjpF,GACtC,OAAOA,EAAO0vF,cAAczG,MAGhCU,GAAkB,CAAC,KAAM,MAAO,SAAS,SAAU1wH,EAAO8pC,EAAMxqC,EAAQorH,GACpE,IAAIzO,EAAU38G,EAAO6oH,QAAQ6N,cAAch2H,EAAO0qH,EAAOprH,EAAOgoH,SAEjD,MAAXrL,EACAnyE,EAAKj+B,EAAIowG,EAET8K,EAAgBznH,GAAQ+nH,eAAiBrnH,KAIjD0wH,GAAkB,CAAC,IAAK,IAAK,MAAM,SAAU1wH,EAAO8pC,EAAMxqC,EAAQorH,GAC9D5gF,EAAK4gF,GAASuD,GAAMjuH,MAkCxB,IAAI02H,GAAwB,2DAA2D9lI,MAC/E,KAEJ+lI,GAA6B,8BAA8B/lI,MAAM,KACjEgmI,GAA2B,uBAAuBhmI,MAAM,KACxDimI,GAAuBjH,GACvBkH,GAA4BlH,GAC5BmH,GAA0BnH,GAE9B,SAASoH,GAAe/sG,EAAGxqB,GACvB,IAAI62H,EAAW7qI,EAAQqD,KAAKmoI,WACtBnoI,KAAKmoI,UACLnoI,KAAKmoI,UACDhtG,IAAW,IAANA,GAAcn7B,KAAKmoI,UAAU5E,SAASvkI,KAAK2R,GAC1C,SACA,cAEhB,OAAa,IAANwqB,EACDisG,GAAcI,EAAUxnI,KAAK2mI,MAAMd,KACnC1qG,EACAqsG,EAASrsG,EAAE4vF,OACXyc,EAGV,SAASY,GAAoBjtG,GACzB,OAAa,IAANA,EACDisG,GAAcpnI,KAAKqoI,eAAgBroI,KAAK2mI,MAAMd,KAC9C1qG,EACAn7B,KAAKqoI,eAAeltG,EAAE4vF,OACtB/qH,KAAKqoI,eAGf,SAASC,GAAkBntG,GACvB,OAAa,IAANA,EACDisG,GAAcpnI,KAAKuoI,aAAcvoI,KAAK2mI,MAAMd,KAC5C1qG,EACAn7B,KAAKuoI,aAAaptG,EAAE4vF,OACpB/qH,KAAKuoI,aAGf,SAASC,GAAoBC,EAAa93H,EAAQkmH,GAC9C,IAAI95H,EACA6xD,EACAmsE,EACA6I,EAAM6E,EAAY5E,oBACtB,IAAK7jI,KAAK0oI,eAKN,IAJA1oI,KAAK0oI,eAAiB,GACtB1oI,KAAK2oI,oBAAsB,GAC3B3oI,KAAK4oI,kBAAoB,GAEpB7rI,EAAI,EAAGA,EAAI,IAAKA,EACjBg+H,EAAMnE,EAAU,CAAC,IAAM,IAAI7L,IAAIhuH,GAC/BiD,KAAK4oI,kBAAkB7rI,GAAKiD,KAAKsnI,YAC7BvM,EACA,IACF8I,oBACF7jI,KAAK2oI,oBAAoB5rI,GAAKiD,KAAKunI,cAC/BxM,EACA,IACF8I,oBACF7jI,KAAK0oI,eAAe3rI,GAAKiD,KAAKwnI,SAASzM,EAAK,IAAI8I,oBAIxD,OAAIhN,EACe,SAAXlmH,GAEe,KADfi+C,EAAKp9B,GAAQ7yB,KAAKqB,KAAK0oI,eAAgB9E,IACpBh1E,EAAK,KACN,QAAXj+C,GAEQ,KADfi+C,EAAKp9B,GAAQ7yB,KAAKqB,KAAK2oI,oBAAqB/E,IACzBh1E,EAAK,MAGT,KADfA,EAAKp9B,GAAQ7yB,KAAKqB,KAAK4oI,kBAAmBhF,IACvBh1E,EAAK,KAGb,SAAXj+C,GAEY,KADZi+C,EAAKp9B,GAAQ7yB,KAAKqB,KAAK0oI,eAAgB9E,MAK3B,KADZh1E,EAAKp9B,GAAQ7yB,KAAKqB,KAAK2oI,oBAAqB/E,MAK7B,KADfh1E,EAAKp9B,GAAQ7yB,KAAKqB,KAAK4oI,kBAAmBhF,IAN/Bh1E,EAOa,KACN,QAAXj+C,GAEK,KADZi+C,EAAKp9B,GAAQ7yB,KAAKqB,KAAK2oI,oBAAqB/E,MAKhC,KADZh1E,EAAKp9B,GAAQ7yB,KAAKqB,KAAK0oI,eAAgB9E,MAKxB,KADfh1E,EAAKp9B,GAAQ7yB,KAAKqB,KAAK4oI,kBAAmBhF,IAN/Bh1E,EAOa,MAGZ,KADZA,EAAKp9B,GAAQ7yB,KAAKqB,KAAK4oI,kBAAmBhF,MAK9B,KADZh1E,EAAKp9B,GAAQ7yB,KAAKqB,KAAK0oI,eAAgB9E,MAKxB,KADfh1E,EAAKp9B,GAAQ7yB,KAAKqB,KAAK2oI,oBAAqB/E,IANjCh1E,EAOa,KAKpC,SAASi6E,GAAoBJ,EAAa93H,EAAQkmH,GAC9C,IAAI95H,EAAGg+H,EAAKiG,EAEZ,GAAIhhI,KAAK8oI,oBACL,OAAON,GAAoB7pI,KAAKqB,KAAMyoI,EAAa93H,EAAQkmH,GAU/D,IAPK72H,KAAK0oI,iBACN1oI,KAAK0oI,eAAiB,GACtB1oI,KAAK4oI,kBAAoB,GACzB5oI,KAAK2oI,oBAAsB,GAC3B3oI,KAAK+oI,mBAAqB,IAGzBhsI,EAAI,EAAGA,EAAI,EAAGA,IAAK,CA6BpB,GA1BAg+H,EAAMnE,EAAU,CAAC,IAAM,IAAI7L,IAAIhuH,GAC3B85H,IAAW72H,KAAK+oI,mBAAmBhsI,KACnCiD,KAAK+oI,mBAAmBhsI,GAAK,IAAIi9H,OAC7B,IAAMh6H,KAAKwnI,SAASzM,EAAK,IAAI9wH,QAAQ,IAAK,QAAU,IACpD,KAEJjK,KAAK2oI,oBAAoB5rI,GAAK,IAAIi9H,OAC9B,IAAMh6H,KAAKunI,cAAcxM,EAAK,IAAI9wH,QAAQ,IAAK,QAAU,IACzD,KAEJjK,KAAK4oI,kBAAkB7rI,GAAK,IAAIi9H,OAC5B,IAAMh6H,KAAKsnI,YAAYvM,EAAK,IAAI9wH,QAAQ,IAAK,QAAU,IACvD,MAGHjK,KAAK0oI,eAAe3rI,KACrBikI,EACI,IACAhhI,KAAKwnI,SAASzM,EAAK,IACnB,KACA/6H,KAAKunI,cAAcxM,EAAK,IACxB,KACA/6H,KAAKsnI,YAAYvM,EAAK,IAC1B/6H,KAAK0oI,eAAe3rI,GAAK,IAAIi9H,OAAOgH,EAAM/2H,QAAQ,IAAK,IAAK,MAI5D4sH,GACW,SAAXlmH,GACA3Q,KAAK+oI,mBAAmBhsI,GAAGiC,KAAKypI,GAEhC,OAAO1rI,EACJ,GACH85H,GACW,QAAXlmH,GACA3Q,KAAK2oI,oBAAoB5rI,GAAGiC,KAAKypI,GAEjC,OAAO1rI,EACJ,GACH85H,GACW,OAAXlmH,GACA3Q,KAAK4oI,kBAAkB7rI,GAAGiC,KAAKypI,GAE/B,OAAO1rI,EACJ,IAAK85H,GAAU72H,KAAK0oI,eAAe3rI,GAAGiC,KAAKypI,GAC9C,OAAO1rI,GAOnB,SAASisI,GAAgB93H,GACrB,IAAKlR,KAAK4tE,UACN,OAAgB,MAAT18D,EAAgBlR,KAAOouF,IAElC,IAAI28B,EAAM/qH,KAAKm5H,OAASn5H,KAAK5C,GAAG4oI,YAAchmI,KAAK5C,GAAG6rI,SACtD,OAAa,MAAT/3H,GACAA,EAAQ+1H,GAAa/1H,EAAOlR,KAAK+7H,cAC1B/7H,KAAK0P,IAAIwB,EAAQ65G,EAAK,MAEtBA,EAIf,SAASme,GAAsBh4H,GAC3B,IAAKlR,KAAK4tE,UACN,OAAgB,MAAT18D,EAAgBlR,KAAOouF,IAElC,IAAI++B,GAAWntH,KAAK+qH,MAAQ,EAAI/qH,KAAK+7H,aAAa4K,MAAMd,KAAO,EAC/D,OAAgB,MAAT30H,EAAgBi8G,EAAUntH,KAAK0P,IAAIwB,EAAQi8G,EAAS,KAG/D,SAASgc,GAAmBj4H,GACxB,IAAKlR,KAAK4tE,UACN,OAAgB,MAAT18D,EAAgBlR,KAAOouF,IAOlC,GAAa,MAATl9E,EAAe,CACf,IAAIi8G,EAAUga,GAAgBj2H,EAAOlR,KAAK+7H,cAC1C,OAAO/7H,KAAK+qH,IAAI/qH,KAAK+qH,MAAQ,EAAIoC,EAAUA,EAAU,GAErD,OAAOntH,KAAK+qH,OAAS,EAI7B,SAAS4c,GAAczG,GACnB,OAAIlhI,KAAK8oI,qBACAtS,EAAWx2H,KAAM,mBAClBopI,GAAqBzqI,KAAKqB,MAE1BkhI,EACOlhI,KAAKqpI,qBAELrpI,KAAKspI,iBAGX9S,EAAWx2H,KAAM,oBAClBA,KAAKspI,eAAiBvB,IAEnB/nI,KAAKqpI,sBAAwBnI,EAC9BlhI,KAAKqpI,qBACLrpI,KAAKspI,gBAInB,SAAS5B,GAAmBxG,GACxB,OAAIlhI,KAAK8oI,qBACAtS,EAAWx2H,KAAM,mBAClBopI,GAAqBzqI,KAAKqB,MAE1BkhI,EACOlhI,KAAKupI,0BAELvpI,KAAKwpI,sBAGXhT,EAAWx2H,KAAM,yBAClBA,KAAKwpI,oBAAsBxB,IAExBhoI,KAAKupI,2BAA6BrI,EACnClhI,KAAKupI,0BACLvpI,KAAKwpI,qBAInB,SAAS/B,GAAiBvG,GACtB,OAAIlhI,KAAK8oI,qBACAtS,EAAWx2H,KAAM,mBAClBopI,GAAqBzqI,KAAKqB,MAE1BkhI,EACOlhI,KAAKypI,wBAELzpI,KAAK0pI,oBAGXlT,EAAWx2H,KAAM,uBAClBA,KAAK0pI,kBAAoBzB,IAEtBjoI,KAAKypI,yBAA2BvI,EACjClhI,KAAKypI,wBACLzpI,KAAK0pI,mBAInB,SAASN,KACL,SAASxE,EAAUz7H,EAAGC,GAClB,OAAOA,EAAEvL,OAASsL,EAAEtL,OAGxB,IAIId,EACAg+H,EACA4O,EACAC,EACAC,EARAC,EAAY,GACZjF,EAAc,GACdC,EAAa,GACbC,EAAc,GAMlB,IAAKhoI,EAAI,EAAGA,EAAI,EAAGA,IAEfg+H,EAAMnE,EAAU,CAAC,IAAM,IAAI7L,IAAIhuH,GAC/B4sI,EAAOtI,GAAYrhI,KAAKsnI,YAAYvM,EAAK,KACzC6O,EAASvI,GAAYrhI,KAAKunI,cAAcxM,EAAK,KAC7C8O,EAAQxI,GAAYrhI,KAAKwnI,SAASzM,EAAK,KACvC+O,EAAUnsI,KAAKgsI,GACf9E,EAAYlnI,KAAKisI,GACjB9E,EAAWnnI,KAAKksI,GAChB9E,EAAYpnI,KAAKgsI,GACjB5E,EAAYpnI,KAAKisI,GACjB7E,EAAYpnI,KAAKksI,GAIrBC,EAAUjvD,KAAK+pD,GACfC,EAAYhqD,KAAK+pD,GACjBE,EAAWjqD,KAAK+pD,GAChBG,EAAYlqD,KAAK+pD,GAEjB5kI,KAAKspI,eAAiB,IAAItP,OAAO,KAAO+K,EAAYnjI,KAAK,KAAO,IAAK,KACrE5B,KAAKwpI,oBAAsBxpI,KAAKspI,eAChCtpI,KAAK0pI,kBAAoB1pI,KAAKspI,eAE9BtpI,KAAKqpI,qBAAuB,IAAIrP,OAC5B,KAAO8K,EAAWljI,KAAK,KAAO,IAC9B,KAEJ5B,KAAKupI,0BAA4B,IAAIvP,OACjC,KAAO6K,EAAYjjI,KAAK,KAAO,IAC/B,KAEJ5B,KAAKypI,wBAA0B,IAAIzP,OAC/B,KAAO8P,EAAUloI,KAAK,KAAO,IAC7B,KAMR,SAASmoI,KACL,OAAO/pI,KAAKgqI,QAAU,IAAM,GAGhC,SAASC,KACL,OAAOjqI,KAAKgqI,SAAW,GAiC3B,SAASlS,GAAS8D,EAAOsO,GACrBvO,EAAeC,EAAO,EAAG,GAAG,WACxB,OAAO57H,KAAK+7H,aAAajE,SACrB93H,KAAKgqI,QACLhqI,KAAKmqI,UACLD,MAiBZ,SAASE,GAAclJ,EAAUjpF,GAC7B,OAAOA,EAAOoyF,eA2DlB,SAASC,GAAWp5H,GAGhB,MAAgD,OAAxCA,EAAQ,IAAI8uB,cAAc+I,OAAO,GAnH7C4yF,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,QAClCA,EAAe,IAAK,CAAC,KAAM,GAAI,EAAGoO,IAClCpO,EAAe,IAAK,CAAC,KAAM,GAAI,EAAGsO,IAElCtO,EAAe,MAAO,EAAG,GAAG,WACxB,MAAO,GAAKoO,GAAQ5kI,MAAMnF,MAAQk7H,EAASl7H,KAAKmqI,UAAW,MAG/DxO,EAAe,QAAS,EAAG,GAAG,WAC1B,MACI,GACAoO,GAAQ5kI,MAAMnF,MACdk7H,EAASl7H,KAAKmqI,UAAW,GACzBjP,EAASl7H,KAAKuqI,UAAW,MAIjC5O,EAAe,MAAO,EAAG,GAAG,WACxB,MAAO,GAAK37H,KAAKgqI,QAAU9O,EAASl7H,KAAKmqI,UAAW,MAGxDxO,EAAe,QAAS,EAAG,GAAG,WAC1B,MACI,GACA37H,KAAKgqI,QACL9O,EAASl7H,KAAKmqI,UAAW,GACzBjP,EAASl7H,KAAKuqI,UAAW,MAcjCzS,GAAS,KAAK,GACdA,GAAS,KAAK,GAIdsG,GAAa,OAAQ,KAGrBU,GAAgB,OAAQ,IAQxBiC,GAAc,IAAKqJ,IACnBrJ,GAAc,IAAKqJ,IACnBrJ,GAAc,IAAKZ,IACnBY,GAAc,IAAKZ,IACnBY,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,KAAMZ,GAAWJ,IAE/BgB,GAAc,MAAOX,IACrBW,GAAc,QAASV,IACvBU,GAAc,MAAOX,IACrBW,GAAc,QAASV,IAEvBsB,GAAc,CAAC,IAAK,MAAOQ,IAC3BR,GAAc,CAAC,IAAK,OAAO,SAAUzwH,EAAO3Q,EAAOiQ,GAC/C,IAAIg6H,EAASrL,GAAMjuH,GACnB3Q,EAAM4hI,IAAmB,KAAXqI,EAAgB,EAAIA,KAEtC7I,GAAc,CAAC,IAAK,MAAM,SAAUzwH,EAAO3Q,EAAOiQ,GAC9CA,EAAOi6H,MAAQj6H,EAAO6oH,QAAQqR,KAAKx5H,GACnCV,EAAOm6H,UAAYz5H,KAEvBywH,GAAc,CAAC,IAAK,OAAO,SAAUzwH,EAAO3Q,EAAOiQ,GAC/CjQ,EAAM4hI,IAAQhD,GAAMjuH,GACpB+mH,EAAgBznH,GAAQioH,SAAU,KAEtCkJ,GAAc,OAAO,SAAUzwH,EAAO3Q,EAAOiQ,GACzC,IAAIknF,EAAMxmF,EAAMrT,OAAS,EACzB0C,EAAM4hI,IAAQhD,GAAMjuH,EAAMwgE,OAAO,EAAGgmB,IACpCn3F,EAAM6hI,IAAUjD,GAAMjuH,EAAMwgE,OAAOgmB,IACnCugC,EAAgBznH,GAAQioH,SAAU,KAEtCkJ,GAAc,SAAS,SAAUzwH,EAAO3Q,EAAOiQ,GAC3C,IAAIo6H,EAAO15H,EAAMrT,OAAS,EACtBgtI,EAAO35H,EAAMrT,OAAS,EAC1B0C,EAAM4hI,IAAQhD,GAAMjuH,EAAMwgE,OAAO,EAAGk5D,IACpCrqI,EAAM6hI,IAAUjD,GAAMjuH,EAAMwgE,OAAOk5D,EAAM,IACzCrqI,EAAM8hI,IAAUlD,GAAMjuH,EAAMwgE,OAAOm5D,IACnC5S,EAAgBznH,GAAQioH,SAAU,KAEtCkJ,GAAc,OAAO,SAAUzwH,EAAO3Q,EAAOiQ,GACzC,IAAIknF,EAAMxmF,EAAMrT,OAAS,EACzB0C,EAAM4hI,IAAQhD,GAAMjuH,EAAMwgE,OAAO,EAAGgmB,IACpCn3F,EAAM6hI,IAAUjD,GAAMjuH,EAAMwgE,OAAOgmB,OAEvCiqC,GAAc,SAAS,SAAUzwH,EAAO3Q,EAAOiQ,GAC3C,IAAIo6H,EAAO15H,EAAMrT,OAAS,EACtBgtI,EAAO35H,EAAMrT,OAAS,EAC1B0C,EAAM4hI,IAAQhD,GAAMjuH,EAAMwgE,OAAO,EAAGk5D,IACpCrqI,EAAM6hI,IAAUjD,GAAMjuH,EAAMwgE,OAAOk5D,EAAM,IACzCrqI,EAAM8hI,IAAUlD,GAAMjuH,EAAMwgE,OAAOm5D,OAWvC,IAAIC,GAA6B,gBAK7BC,GAAazL,GAAW,SAAS,GAErC,SAAS0L,GAAehB,EAAOG,EAASc,GACpC,OAAIjB,EAAQ,GACDiB,EAAU,KAAO,KAEjBA,EAAU,KAAO,KAIhC,IAuBIC,GAvBAC,GAAa,CACbrQ,SAAUP,EACV+B,eAAgBE,EAChBJ,YAAaa,EACbnB,QAASqB,EACTiO,uBAAwBhO,EACxBU,aAAcR,EAEdsF,OAAQI,GACRL,YAAaM,GAEbjoF,KAAM4rF,GAENY,SAAUI,GACVN,YAAaQ,GACbP,cAAeM,GAEfwD,cAAeP,IAIfQ,GAAU,GACVC,GAAiB,GAGrB,SAASC,GAAaC,EAAMlsI,GACxB,IAAIxC,EACA2uI,EAAOz1H,KAAKsG,IAAIkvH,EAAK5tI,OAAQ0B,EAAK1B,QACtC,IAAKd,EAAI,EAAGA,EAAI2uI,EAAM3uI,GAAK,EACvB,GAAI0uI,EAAK1uI,KAAOwC,EAAKxC,GACjB,OAAOA,EAGf,OAAO2uI,EAGX,SAASC,GAAgBvtI,GACrB,OAAOA,EAAMA,EAAI4hC,cAAc/1B,QAAQ,IAAK,KAAO7L,EAMvD,SAASwtI,GAAaC,GAOlB,IANA,IACIr8C,EACA/xF,EACAw6C,EACAn2C,EAJA/E,EAAI,EAMDA,EAAI8uI,EAAMhuI,QAAQ,CAKrB,IAHA2xF,GADA1tF,EAAQ6pI,GAAgBE,EAAM9uI,IAAI+E,MAAM,MAC9BjE,OAEVJ,GADAA,EAAOkuI,GAAgBE,EAAM9uI,EAAI,KACnBU,EAAKqE,MAAM,KAAO,KACzB0tF,EAAI,GAAG,CAEV,GADAv3C,EAAS6zF,GAAWhqI,EAAMlD,MAAM,EAAG4wF,GAAG5tF,KAAK,MAEvC,OAAOq2C,EAEX,GACIx6C,GACAA,EAAKI,QAAU2xF,GACfg8C,GAAa1pI,EAAOrE,IAAS+xF,EAAI,EAGjC,MAEJA,IAEJzyF,IAEJ,OAAOmuI,GAGX,SAASY,GAAWhtI,GAChB,IAAIitI,EAAY,KAGhB,QACsBzuI,IAAlBguI,GAAQxsI,IACU,qBAAX5C,GACPA,GACAA,EAAOC,QAEP,IACI4vI,EAAYb,GAAac,MAEzBC,kGACAC,GAAmBH,GACrB,MAAO/lI,GAGLslI,GAAQxsI,GAAQ,KAGxB,OAAOwsI,GAAQxsI,GAMnB,SAASotI,GAAmB9tI,EAAKiT,GAC7B,IAAIzQ,EAqBJ,OApBIxC,KAEIwC,EADA81H,EAAYrlH,GACL86H,GAAU/tI,GAEVguI,GAAahuI,EAAKiT,IAKzB65H,GAAetqI,EAEQ,qBAAZ2iB,SAA2BA,QAAQoB,MAE1CpB,QAAQoB,KACJ,UAAYvmB,EAAM,2CAM3B8sI,GAAac,MAGxB,SAASI,GAAattI,EAAM0R,GACxB,GAAe,OAAXA,EAAiB,CACjB,IAAIynC,EACAmiF,EAAe+Q,GAEnB,GADA36H,EAAOi8D,KAAO3tE,EACO,MAAjBwsI,GAAQxsI,GACRg7H,EACI,uBACA,2OAKJM,EAAekR,GAAQxsI,GAAM4iF,aAC1B,GAA2B,MAAvBlxE,EAAO67H,aACd,GAAoC,MAAhCf,GAAQ96H,EAAO67H,cACfjS,EAAekR,GAAQ96H,EAAO67H,cAAc3qD,YACzC,CAEH,GAAc,OADdzpC,EAAS6zF,GAAWt7H,EAAO67H,eAWvB,OAPKd,GAAe/6H,EAAO67H,gBACvBd,GAAe/6H,EAAO67H,cAAgB,IAE1Cd,GAAe/6H,EAAO67H,cAAc1uI,KAAK,CACrCmB,KAAMA,EACN0R,OAAQA,IAEL,KATP4pH,EAAeniF,EAAOypC,QA0BlC,OAbA4pD,GAAQxsI,GAAQ,IAAIw7H,EAAOH,EAAaC,EAAc5pH,IAElD+6H,GAAezsI,IACfysI,GAAezsI,GAAMiD,SAAQ,SAAUiU,GACnCo2H,GAAap2H,EAAElX,KAAMkX,EAAExF,WAO/B07H,GAAmBptI,GAEZwsI,GAAQxsI,GAIf,cADOwsI,GAAQxsI,GACR,KAIf,SAASwtI,GAAaxtI,EAAM0R,GACxB,GAAc,MAAVA,EAAgB,CAChB,IAAIynC,EACAs0F,EACAnS,EAAe+Q,GAEE,MAAjBG,GAAQxsI,IAA+C,MAA9BwsI,GAAQxsI,GAAMutI,aAEvCf,GAAQxsI,GAAMqB,IAAIg6H,EAAamR,GAAQxsI,GAAM4iF,QAASlxE,KAIrC,OADjB+7H,EAAYT,GAAWhtI,MAEnBs7H,EAAemS,EAAU7qD,SAE7BlxE,EAAS2pH,EAAaC,EAAc5pH,GACnB,MAAb+7H,IAIA/7H,EAAOi8D,KAAO3tE,IAElBm5C,EAAS,IAAIqiF,EAAO9pH,IACb67H,aAAef,GAAQxsI,GAC9BwsI,GAAQxsI,GAAQm5C,GAIpBi0F,GAAmBptI,QAGE,MAAjBwsI,GAAQxsI,KAC0B,MAA9BwsI,GAAQxsI,GAAMutI,cACdf,GAAQxsI,GAAQwsI,GAAQxsI,GAAMutI,aAC1BvtI,IAASotI,MACTA,GAAmBptI,IAEC,MAAjBwsI,GAAQxsI,WACRwsI,GAAQxsI,IAI3B,OAAOwsI,GAAQxsI,GAInB,SAASqtI,GAAU/tI,GACf,IAAI65C,EAMJ,GAJI75C,GAAOA,EAAIi7H,SAAWj7H,EAAIi7H,QAAQ2S,QAClC5tI,EAAMA,EAAIi7H,QAAQ2S,QAGjB5tI,EACD,OAAO8sI,GAGX,IAAKvuI,EAAQyB,GAAM,CAGf,GADA65C,EAAS6zF,GAAW1tI,GAEhB,OAAO65C,EAEX75C,EAAM,CAACA,GAGX,OAAOwtI,GAAaxtI,GAGxB,SAASouI,KACL,OAAOvqI,EAAKqpI,IAGhB,SAASmB,GAActxG,GACnB,IAAIi8F,EACAjuH,EAAIgyB,EAAE4mG,GAuCV,OArCI54H,IAAsC,IAAjC8uH,EAAgB98F,GAAGi8F,WACxBA,EACIjuH,EAAE84H,IAAS,GAAK94H,EAAE84H,IAAS,GACrBA,GACA94H,EAAE+4H,IAAQ,GAAK/4H,EAAE+4H,IAAQzC,GAAYt2H,EAAE64H,IAAO74H,EAAE84H,KAChDC,GACA/4H,EAAEg5H,IAAQ,GACVh5H,EAAEg5H,IAAQ,IACG,KAAZh5H,EAAEg5H,MACgB,IAAdh5H,EAAEi5H,KACe,IAAdj5H,EAAEk5H,KACiB,IAAnBl5H,EAAEm5H,KACVH,GACAh5H,EAAEi5H,IAAU,GAAKj5H,EAAEi5H,IAAU,GAC7BA,GACAj5H,EAAEk5H,IAAU,GAAKl5H,EAAEk5H,IAAU,GAC7BA,GACAl5H,EAAEm5H,IAAe,GAAKn5H,EAAEm5H,IAAe,IACvCA,IACC,EAGPrK,EAAgB98F,GAAGuxG,qBAClBtV,EAAW4K,IAAQ5K,EAAW8K,MAE/B9K,EAAW8K,IAEXjK,EAAgB98F,GAAGwxG,iBAAgC,IAAdvV,IACrCA,EAAWmL,IAEXtK,EAAgB98F,GAAGyxG,mBAAkC,IAAdxV,IACvCA,EAAWoL,IAGfvK,EAAgB98F,GAAGi8F,SAAWA,GAG3Bj8F,EAKX,IAAI0xG,GAAmB,iJACnBC,GAAgB,6IAChBC,GAAU,wBACVC,GAAW,CACP,CAAC,eAAgB,uBACjB,CAAC,aAAc,mBACf,CAAC,eAAgB,kBACjB,CAAC,aAAc,eAAe,GAC9B,CAAC,WAAY,eACb,CAAC,UAAW,cAAc,GAC1B,CAAC,aAAc,cACf,CAAC,WAAY,SACb,CAAC,aAAc,eACf,CAAC,YAAa,eAAe,GAC7B,CAAC,UAAW,SACZ,CAAC,SAAU,SAAS,GACpB,CAAC,OAAQ,SAAS,IAGtBC,GAAW,CACP,CAAC,gBAAiB,uBAClB,CAAC,gBAAiB,sBAClB,CAAC,WAAY,kBACb,CAAC,QAAS,aACV,CAAC,cAAe,qBAChB,CAAC,cAAe,oBAChB,CAAC,SAAU,gBACX,CAAC,OAAQ,YACT,CAAC,KAAM,SAEXC,GAAkB,qBAElBnV,GAAU,0LACVoV,GAAa,CACTC,GAAI,EACJC,IAAK,EACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,KAIb,SAASC,GAAct9H,GACnB,IAAIzT,EACAgG,EAGAgrI,EACAC,EACAC,EACAC,EALAliI,EAASwE,EAAOhT,GAChB0kC,EAAQ2qG,GAAiBsB,KAAKniI,IAAW8gI,GAAcqB,KAAKniI,GAMhE,GAAIk2B,EAAO,CAGP,IAFA+1F,EAAgBznH,GAAQmnH,KAAM,EAEzB56H,EAAI,EAAGgG,EAAIiqI,GAASnvI,OAAQd,EAAIgG,EAAGhG,IACpC,GAAIiwI,GAASjwI,GAAG,GAAGoxI,KAAKjsG,EAAM,IAAK,CAC/B8rG,EAAahB,GAASjwI,GAAG,GACzBgxI,GAA+B,IAAnBf,GAASjwI,GAAG,GACxB,MAGR,GAAkB,MAAdixI,EAEA,YADAx9H,EAAO2nH,UAAW,GAGtB,GAAIj2F,EAAM,GAAI,CACV,IAAKnlC,EAAI,EAAGgG,EAAIkqI,GAASpvI,OAAQd,EAAIgG,EAAGhG,IACpC,GAAIkwI,GAASlwI,GAAG,GAAGoxI,KAAKjsG,EAAM,IAAK,CAE/B+rG,GAAc/rG,EAAM,IAAM,KAAO+qG,GAASlwI,GAAG,GAC7C,MAGR,GAAkB,MAAdkxI,EAEA,YADAz9H,EAAO2nH,UAAW,GAI1B,IAAK4V,GAA2B,MAAdE,EAEd,YADAz9H,EAAO2nH,UAAW,GAGtB,GAAIj2F,EAAM,GAAI,CACV,IAAI6qG,GAAQoB,KAAKjsG,EAAM,IAInB,YADA1xB,EAAO2nH,UAAW,GAFlB+V,EAAW,IAMnB19H,EAAOwoH,GAAKgV,GAAcC,GAAc,KAAOC,GAAY,IAC3DE,GAA0B59H,QAE1BA,EAAO2nH,UAAW,EAI1B,SAASkW,GACLC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAI5tI,EAAS,CACT6tI,GAAeN,GACfrL,GAAyBzxG,QAAQ+8G,GACjCnkE,SAASokE,EAAQ,IACjBpkE,SAASqkE,EAAS,IAClBrkE,SAASskE,EAAW,KAOxB,OAJIC,GACA5tI,EAAOpD,KAAKysE,SAASukE,EAAW,KAG7B5tI,EAGX,SAAS6tI,GAAeN,GACpB,IAAIrjB,EAAO7gD,SAASkkE,EAAS,IAC7B,OAAIrjB,GAAQ,GACD,IAAOA,EACPA,GAAQ,IACR,KAAOA,EAEXA,EAGX,SAAS4jB,GAAkBtsI,GAEvB,OAAOA,EACF0H,QAAQ,oBAAqB,KAC7BA,QAAQ,WAAY,KACpBA,QAAQ,SAAU,IAClBA,QAAQ,SAAU,IAG3B,SAAS6kI,GAAaC,EAAYC,EAAax+H,GAC3C,OAAIu+H,GAEsBlH,GAA2Br2G,QAAQu9G,KACrC,IAAI5gI,KAChB6gI,EAAY,GACZA,EAAY,GACZA,EAAY,IACd/F,WAEFhR,EAAgBznH,GAAQwnH,iBAAkB,EAC1CxnH,EAAO2nH,UAAW,GACX,GAMnB,SAAS8W,GAAgBC,EAAWC,EAAgBC,GAChD,GAAIF,EACA,OAAO/B,GAAW+B,GACf,GAAIC,EAEP,OAAO,EAEP,IAAIE,EAAKjlE,SAASglE,EAAW,IACzBj0G,EAAIk0G,EAAK,IAEb,OADSA,EAAKl0G,GAAK,IACR,GAAKA,EAKxB,SAASm0G,GAAkB9+H,GACvB,IACI++H,EADArtG,EAAQ61F,GAAQoW,KAAKU,GAAkBr+H,EAAOhT,KAElD,GAAI0kC,EAAO,CASP,GARAqtG,EAAclB,GACVnsG,EAAM,GACNA,EAAM,GACNA,EAAM,GACNA,EAAM,GACNA,EAAM,GACNA,EAAM,KAEL4sG,GAAa5sG,EAAM,GAAIqtG,EAAa/+H,GACrC,OAGJA,EAAOuxH,GAAKwN,EACZ/+H,EAAO0oH,KAAO+V,GAAgB/sG,EAAM,GAAIA,EAAM,GAAIA,EAAM,KAExD1xB,EAAOpT,GAAKooI,GAAcrgI,MAAM,KAAMqL,EAAOuxH,IAC7CvxH,EAAOpT,GAAGoyI,cAAch/H,EAAOpT,GAAGqyI,gBAAkBj/H,EAAO0oH,MAE3DjB,EAAgBznH,GAAQunH,SAAU,OAElCvnH,EAAO2nH,UAAW,EAK1B,SAASuX,GAAiBl/H,GACtB,IAAI8wH,EAAU4L,GAAgBiB,KAAK39H,EAAOhT,IAC1B,OAAZ8jI,GAKJwM,GAAct9H,IACU,IAApBA,EAAO2nH,kBACA3nH,EAAO2nH,SAKlBmX,GAAkB9+H,IACM,IAApBA,EAAO2nH,kBACA3nH,EAAO2nH,SAKd3nH,EAAOgoH,QACPhoH,EAAO2nH,UAAW,EAGlB7B,EAAMqZ,wBAAwBn/H,MAtB9BA,EAAOpT,GAAK,IAAI+Q,MAAMmzH,EAAQ,IAoCtC,SAAShxG,GAASnnB,EAAGC,EAAGqwB,GACpB,OAAS,MAALtwB,EACOA,EAEF,MAALC,EACOA,EAEJqwB,EAGX,SAASm2G,GAAiBp/H,GAEtB,IAAIq/H,EAAW,IAAI1hI,KAAKmoH,EAAMniF,OAC9B,OAAI3jC,EAAOs/H,QACA,CACHD,EAASnK,iBACTmK,EAASE,cACTF,EAASG,cAGV,CAACH,EAASvK,cAAeuK,EAASI,WAAYJ,EAASK,WAOlE,SAASC,GAAgB3/H,GACrB,IAAIzT,EACAs9C,EAEA+1F,EACAC,EACAC,EAHAp/H,EAAQ,GAKZ,IAAIV,EAAOpT,GAAX,CAgCA,IA5BAgzI,EAAcR,GAAiBp/H,GAG3BA,EAAOqxH,IAAyB,MAAnBrxH,EAAOuxH,GAAGG,KAAqC,MAApB1xH,EAAOuxH,GAAGE,KAClDsO,GAAsB//H,GAID,MAArBA,EAAOggI,aACPF,EAAYhgH,GAAS9f,EAAOuxH,GAAGC,IAAOoO,EAAYpO,MAG9CxxH,EAAOggI,WAAaxL,GAAWsL,IACT,IAAtB9/H,EAAOggI,cAEPvY,EAAgBznH,GAAQk8H,oBAAqB,GAGjDryF,EAAOmrF,GAAc8K,EAAW,EAAG9/H,EAAOggI,YAC1ChgI,EAAOuxH,GAAGE,IAAS5nF,EAAK01F,cACxBv/H,EAAOuxH,GAAGG,IAAQ7nF,EAAK21F,cAQtBjzI,EAAI,EAAGA,EAAI,GAAqB,MAAhByT,EAAOuxH,GAAGhlI,KAAcA,EACzCyT,EAAOuxH,GAAGhlI,GAAKmU,EAAMnU,GAAKqzI,EAAYrzI,GAI1C,KAAOA,EAAI,EAAGA,IACVyT,EAAOuxH,GAAGhlI,GAAKmU,EAAMnU,GACD,MAAhByT,EAAOuxH,GAAGhlI,GAAoB,IAANA,EAAU,EAAI,EAAKyT,EAAOuxH,GAAGhlI,GAKrC,KAApByT,EAAOuxH,GAAGI,KACY,IAAtB3xH,EAAOuxH,GAAGK,KACY,IAAtB5xH,EAAOuxH,GAAGM,KACiB,IAA3B7xH,EAAOuxH,GAAGO,MAEV9xH,EAAOigI,UAAW,EAClBjgI,EAAOuxH,GAAGI,IAAQ,GAGtB3xH,EAAOpT,IAAMoT,EAAOs/H,QAAUtK,GAAgBJ,IAAYjgI,MACtD,KACA+L,GAEJm/H,EAAkB7/H,EAAOs/H,QACnBt/H,EAAOpT,GAAG4oI,YACVx1H,EAAOpT,GAAG6rI,SAIG,MAAfz4H,EAAO0oH,MACP1oH,EAAOpT,GAAGoyI,cAAch/H,EAAOpT,GAAGqyI,gBAAkBj/H,EAAO0oH,MAG3D1oH,EAAOigI,WACPjgI,EAAOuxH,GAAGI,IAAQ,IAKlB3xH,EAAOqxH,IACgB,qBAAhBrxH,EAAOqxH,GAAG9kH,GACjBvM,EAAOqxH,GAAG9kH,IAAMszH,IAEhBpY,EAAgBznH,GAAQwnH,iBAAkB,IAIlD,SAASuY,GAAsB//H,GAC3B,IAAI+oB,EAAGm3G,EAAU11F,EAAMmyE,EAAS0Y,EAAKC,EAAK6K,EAAMC,EAAiBC,EAGrD,OADZt3G,EAAI/oB,EAAOqxH,IACLiP,IAAqB,MAAPv3G,EAAEm4B,GAAoB,MAAPn4B,EAAEe,GACjCurG,EAAM,EACNC,EAAM,EAMN4K,EAAWpgH,GACPiJ,EAAEu3G,GACFtgI,EAAOuxH,GAAGC,IACVqE,GAAW0K,KAAe,EAAG,GAAG9lB,MAEpCjwE,EAAO1qB,GAASiJ,EAAEm4B,EAAG,KACrBy7D,EAAU78F,GAASiJ,EAAEe,EAAG,IACV,GAAK6yF,EAAU,KACzByjB,GAAkB,KAGtB/K,EAAMr1H,EAAO6oH,QAAQsN,MAAMd,IAC3BC,EAAMt1H,EAAO6oH,QAAQsN,MAAMb,IAE3B+K,EAAUxK,GAAW0K,KAAelL,EAAKC,GAEzC4K,EAAWpgH,GAASiJ,EAAE0qB,GAAIzzC,EAAOuxH,GAAGC,IAAO6O,EAAQ5lB,MAGnDjwE,EAAO1qB,GAASiJ,EAAEA,EAAGs3G,EAAQ71F,MAElB,MAAPzhB,EAAExc,IAEFowG,EAAU5zF,EAAExc,GACE,GAAKowG,EAAU,KACzByjB,GAAkB,GAER,MAAPr3G,EAAEvzB,GAETmnH,EAAU5zF,EAAEvzB,EAAI6/H,GACZtsG,EAAEvzB,EAAI,GAAKuzB,EAAEvzB,EAAI,KACjB4qI,GAAkB,IAItBzjB,EAAU0Y,GAGd7qF,EAAO,GAAKA,EAAOwrF,GAAYkK,EAAU7K,EAAKC,GAC9C7N,EAAgBznH,GAAQm8H,gBAAiB,EACf,MAAnBiE,EACP3Y,EAAgBznH,GAAQo8H,kBAAmB,GAE3C+D,EAAO1K,GAAmByK,EAAU11F,EAAMmyE,EAAS0Y,EAAKC,GACxDt1H,EAAOuxH,GAAGC,IAAQ2O,EAAK1lB,KACvBz6G,EAAOggI,WAAaG,EAAKvK,WAWjC,SAASgI,GAA0B59H,GAE/B,GAAIA,EAAOwoH,KAAO1C,EAAM0a,SAIxB,GAAIxgI,EAAOwoH,KAAO1C,EAAM2a,SAAxB,CAIAzgI,EAAOuxH,GAAK,GACZ9J,EAAgBznH,GAAQymH,OAAQ,EAGhC,IACIl6H,EACAiyI,EACAtN,EACA9F,EACAsV,EAGArZ,EARA7rH,EAAS,GAAKwE,EAAOhT,GAMrB2zI,EAAenlI,EAAOnO,OACtBuzI,EAAyB,EAM7B,IAHA1P,EACIvF,EAAa3rH,EAAOwoH,GAAIxoH,EAAO6oH,SAASn3F,MAAMq5F,IAAqB,GAElEx+H,EAAI,EAAGA,EAAI2kI,EAAO7jI,OAAQd,IAC3B6+H,EAAQ8F,EAAO3kI,IACfiyI,GAAehjI,EAAOk2B,MAAMi/F,GAAsBvF,EAAOprH,KACrD,IAAI,OAEJ0gI,EAAUllI,EAAO0lE,OAAO,EAAG1lE,EAAOwlB,QAAQw9G,KAC9BnxI,OAAS,GACjBo6H,EAAgBznH,GAAQ2mH,YAAYx5H,KAAKuzI,GAE7CllI,EAASA,EAAOpN,MACZoN,EAAOwlB,QAAQw9G,GAAeA,EAAYnxI,QAE9CuzI,GAA0BpC,EAAYnxI,QAGtC69H,EAAqBE,IACjBoT,EACA/W,EAAgBznH,GAAQymH,OAAQ,EAEhCgB,EAAgBznH,GAAQ0mH,aAAav5H,KAAKi+H,GAE9CkG,GAAwBlG,EAAOoT,EAAax+H,IACrCA,EAAOgoH,UAAYwW,GAC1B/W,EAAgBznH,GAAQ0mH,aAAav5H,KAAKi+H,GAKlD3D,EAAgBznH,GAAQ6mH,cACpB8Z,EAAeC,EACfplI,EAAOnO,OAAS,GAChBo6H,EAAgBznH,GAAQ2mH,YAAYx5H,KAAKqO,GAKzCwE,EAAOuxH,GAAGI,KAAS,KACiB,IAApClK,EAAgBznH,GAAQioH,SACxBjoH,EAAOuxH,GAAGI,IAAQ,IAElBlK,EAAgBznH,GAAQioH,aAAUn7H,GAGtC26H,EAAgBznH,GAAQonH,gBAAkBpnH,EAAOuxH,GAAGnjI,MAAM,GAC1Dq5H,EAAgBznH,GAAQsnH,SAAWtnH,EAAOm6H,UAE1Cn6H,EAAOuxH,GAAGI,IAAQkP,GACd7gI,EAAO6oH,QACP7oH,EAAOuxH,GAAGI,IACV3xH,EAAOm6H,WAKC,QADZ9S,EAAMI,EAAgBznH,GAAQqnH,OAE1BrnH,EAAOuxH,GAAGC,IAAQxxH,EAAO6oH,QAAQiY,gBAAgBzZ,EAAKrnH,EAAOuxH,GAAGC,MAGpEmO,GAAgB3/H,GAChBi8H,GAAcj8H,QA/EV8+H,GAAkB9+H,QAJlBs9H,GAAct9H,GAsFtB,SAAS6gI,GAAgBp5F,EAAQ6yE,EAAMgN,GACnC,IAAIyZ,EAEJ,OAAgB,MAAZzZ,EAEOhN,EAEgB,MAAvB7yE,EAAOu5F,aACAv5F,EAAOu5F,aAAa1mB,EAAMgN,GACX,MAAf7/E,EAAOyyF,OAEd6G,EAAOt5F,EAAOyyF,KAAK5S,KACPhN,EAAO,KACfA,GAAQ,IAEPymB,GAAiB,KAATzmB,IACTA,EAAO,GAEJA,GAGAA,EAKf,SAAS2mB,GAAyBjhI,GAC9B,IAAIkhI,EACAC,EACAC,EACA70I,EACA80I,EACAC,EACAC,GAAoB,EAExB,GAAyB,IAArBvhI,EAAOwoH,GAAGn7H,OAGV,OAFAo6H,EAAgBznH,GAAQinH,eAAgB,OACxCjnH,EAAOpT,GAAK,IAAI+Q,KAAKigF,MAIzB,IAAKrxF,EAAI,EAAGA,EAAIyT,EAAOwoH,GAAGn7H,OAAQd,IAC9B80I,EAAe,EACfC,GAAmB,EACnBJ,EAAa5Y,EAAW,GAAItoH,GACN,MAAlBA,EAAOs/H,UACP4B,EAAW5B,QAAUt/H,EAAOs/H,SAEhC4B,EAAW1Y,GAAKxoH,EAAOwoH,GAAGj8H,GAC1BqxI,GAA0BsD,GAEtB9jE,EAAQ8jE,KACRI,GAAmB,GAIvBD,GAAgB5Z,EAAgByZ,GAAYra,cAG5Cwa,GAAkE,GAAlD5Z,EAAgByZ,GAAYxa,aAAar5H,OAEzDo6H,EAAgByZ,GAAYM,MAAQH,EAE/BE,EAaGF,EAAeD,IACfA,EAAcC,EACdF,EAAaD,IAbE,MAAfE,GACAC,EAAeD,GACfE,KAEAF,EAAcC,EACdF,EAAaD,EACTI,IACAC,GAAoB,IAWpC95E,EAAOznD,EAAQmhI,GAAcD,GAGjC,SAASO,GAAiBzhI,GACtB,IAAIA,EAAOpT,GAAX,CAIA,IAAIL,EAAI0hI,GAAqBjuH,EAAOhT,IAChC00I,OAAsB50I,IAAVP,EAAEguH,IAAoBhuH,EAAEs9C,KAAOt9C,EAAEguH,IACjDv6G,EAAOuxH,GAAKphI,EACR,CAAC5D,EAAEkuH,KAAMluH,EAAEy9C,MAAO03F,EAAWn1I,EAAE+tH,KAAM/tH,EAAE8tH,OAAQ9tH,EAAE6tH,OAAQ7tH,EAAE0tH,cAC3D,SAAUliH,GACN,OAAOA,GAAO6hE,SAAS7hE,EAAK,OAIpC4nI,GAAgB3/H,IAGpB,SAAS2hI,GAAiB3hI,GACtB,IAAI0uE,EAAM,IAAIo6C,EAAOmT,GAAc2F,GAAc5hI,KAOjD,OANI0uE,EAAIuxD,WAEJvxD,EAAIxvE,IAAI,EAAG,KACXwvE,EAAIuxD,cAAWnzI,GAGZ4hF,EAGX,SAASkzD,GAAc5hI,GACnB,IAAIU,EAAQV,EAAOhT,GACfmT,EAASH,EAAOwoH,GAIpB,OAFAxoH,EAAO6oH,QAAU7oH,EAAO6oH,SAAW8S,GAAU37H,EAAOyoH,IAEtC,OAAV/nH,QAA8B5T,IAAXqT,GAAkC,KAAVO,EACpCynH,EAAc,CAAErB,WAAW,KAGjB,kBAAVpmH,IACPV,EAAOhT,GAAK0T,EAAQV,EAAO6oH,QAAQgZ,SAASnhI,IAG5CsoH,EAAStoH,GACF,IAAIooH,EAAOmT,GAAcv7H,KACzBylH,EAAOzlH,GACdV,EAAOpT,GAAK8T,EACLvU,EAAQgU,GACf8gI,GAAyBjhI,GAClBG,EACPy9H,GAA0B59H,GAE1B8hI,GAAgB9hI,GAGfo9D,EAAQp9D,KACTA,EAAOpT,GAAK,MAGToT,IAGX,SAAS8hI,GAAgB9hI,GACrB,IAAIU,EAAQV,EAAOhT,GACfk5H,EAAYxlH,GACZV,EAAOpT,GAAK,IAAI+Q,KAAKmoH,EAAMniF,OACpBwiF,EAAOzlH,GACdV,EAAOpT,GAAK,IAAI+Q,KAAK+C,EAAMq0B,WACH,kBAAVr0B,EACdw+H,GAAiBl/H,GACV7T,EAAQuU,IACfV,EAAOuxH,GAAKphI,EAAIuQ,EAAMtS,MAAM,IAAI,SAAU2J,GACtC,OAAO6hE,SAAS7hE,EAAK,OAEzB4nI,GAAgB3/H,IACT7K,EAASuL,GAChB+gI,GAAiBzhI,GACVitE,EAASvsE,GAEhBV,EAAOpT,GAAK,IAAI+Q,KAAK+C,GAErBolH,EAAMqZ,wBAAwBn/H,GAItC,SAASsmH,GAAiB5lH,EAAOP,EAAQsnC,EAAQ4+E,EAAQ0b,GACrD,IAAI94G,EAAI,GA2BR,OAzBe,IAAX9oB,IAA8B,IAAXA,IACnBkmH,EAASlmH,EACTA,OAASrT,IAGE,IAAX26C,IAA8B,IAAXA,IACnB4+E,EAAS5+E,EACTA,OAAS36C,IAIRqI,EAASuL,IAAUulH,EAAcvlH,IACjCvU,EAAQuU,IAA2B,IAAjBA,EAAMrT,UAEzBqT,OAAQ5T,GAIZm8B,EAAEs/F,kBAAmB,EACrBt/F,EAAEq2G,QAAUr2G,EAAE0/F,OAASoZ,EACvB94G,EAAEw/F,GAAKhhF,EACPxe,EAAEj8B,GAAK0T,EACPuoB,EAAEu/F,GAAKroH,EACP8oB,EAAE++F,QAAU3B,EAELsb,GAAiB14G,GAG5B,SAASs3G,GAAY7/H,EAAOP,EAAQsnC,EAAQ4+E,GACxC,OAAOC,GAAiB5lH,EAAOP,EAAQsnC,EAAQ4+E,GAAQ,GAre3DP,EAAMqZ,wBAA0BjtI,EAC5B,iSAGA,SAAU8N,GACNA,EAAOpT,GAAK,IAAI+Q,KAAKqC,EAAOhT,IAAMgT,EAAOs/H,QAAU,OAAS,QAuLpExZ,EAAM0a,SAAW,aAGjB1a,EAAM2a,SAAW,aAySjB,IAAIuB,GAAe9vI,EACX,sGACA,WACI,IAAIS,EAAQ4tI,GAAY5rI,MAAM,KAAM3C,WACpC,OAAIxC,KAAK4tE,WAAazqE,EAAMyqE,UACjBzqE,EAAQnD,KAAOA,KAAOmD,EAEtBw1H,OAInB8Z,GAAe/vI,EACX,sGACA,WACI,IAAIS,EAAQ4tI,GAAY5rI,MAAM,KAAM3C,WACpC,OAAIxC,KAAK4tE,WAAazqE,EAAMyqE,UACjBzqE,EAAQnD,KAAOA,KAAOmD,EAEtBw1H,OAUvB,SAAS+Z,GAAOztI,EAAI0tI,GAChB,IAAIzzD,EAAKniF,EAIT,GAHuB,IAAnB41I,EAAQ90I,QAAgBlB,EAAQg2I,EAAQ,MACxCA,EAAUA,EAAQ,KAEjBA,EAAQ90I,OACT,OAAOkzI,KAGX,IADA7xD,EAAMyzD,EAAQ,GACT51I,EAAI,EAAGA,EAAI41I,EAAQ90I,SAAUd,EACzB41I,EAAQ51I,GAAG6wE,YAAa+kE,EAAQ51I,GAAGkI,GAAIi6E,KACxCA,EAAMyzD,EAAQ51I,IAGtB,OAAOmiF,EAIX,SAAS3iE,KAGL,OAAOm2H,GAAO,WAFH,GAAG9zI,MAAMD,KAAK6D,UAAW,IAKxC,SAASoV,KAGL,OAAO86H,GAAO,UAFH,GAAG9zI,MAAMD,KAAK6D,UAAW,IAKxC,IAAI2xC,GAAM,WACN,OAAOhmC,KAAKgmC,IAAMhmC,KAAKgmC,OAAS,IAAIhmC,MAGpCykI,GAAW,CACX,OACA,UACA,QACA,OACA,MACA,OACA,SACA,SACA,eAGJ,SAASC,GAAgB13G,GACrB,IAAI/8B,EAEArB,EADA+1I,GAAiB,EAErB,IAAK10I,KAAO+8B,EACR,GACIq7F,EAAWr7F,EAAG/8B,MAEuB,IAAjCozB,GAAQ7yB,KAAKi0I,GAAUx0I,IACZ,MAAV+8B,EAAE/8B,IAAiByV,MAAMsnB,EAAE/8B,KAGhC,OAAO,EAIf,IAAKrB,EAAI,EAAGA,EAAI61I,GAAS/0I,SAAUd,EAC/B,GAAIo+B,EAAEy3G,GAAS71I,IAAK,CAChB,GAAI+1I,EACA,OAAO,EAEPhiI,WAAWqqB,EAAEy3G,GAAS71I,OAASoiI,GAAMhkG,EAAEy3G,GAAS71I,OAChD+1I,GAAiB,GAK7B,OAAO,EAGX,SAASC,KACL,OAAO/yI,KAAKm4H,SAGhB,SAAS6a,KACL,OAAOC,GAAe7kD,KAG1B,SAAS8kD,GAASj1D,GACd,IAAI2gD,EAAkBH,GAAqBxgD,GACvCk1D,EAAQvU,EAAgB3T,MAAQ,EAChCmoB,EAAWxU,EAAgB5T,SAAW,EACtC4X,EAAShE,EAAgBpkF,OAAS,EAClC64F,EAAQzU,EAAgB5jF,MAAQ4jF,EAAgB0U,SAAW,EAC3DC,EAAO3U,EAAgB7T,KAAO,EAC9Bif,EAAQpL,EAAgB9T,MAAQ,EAChCqf,EAAUvL,EAAgB/T,QAAU,EACpC0f,EAAU3L,EAAgBhU,QAAU,EACpC4oB,EAAe5U,EAAgBnU,aAAe,EAElDzqH,KAAKm4H,SAAW0a,GAAgBjU,GAGhC5+H,KAAKyzI,eACAD,EACS,IAAVjJ,EACU,IAAVJ,EACQ,IAARH,EAAe,GAAK,GAGxBhqI,KAAK0zI,OAASH,EAAe,EAARF,EAIrBrzI,KAAKsjI,SAAWV,EAAoB,EAAXwQ,EAAuB,GAARD,EAExCnzI,KAAK8gF,MAAQ,GAEb9gF,KAAKq5H,QAAU8S,KAEfnsI,KAAK2zI,UAGT,SAASC,GAAWrrI,GAChB,OAAOA,aAAe2qI,GAG1B,SAASW,GAAS59G,GACd,OAAIA,EAAS,GACyB,EAA3BhgB,KAAKuH,OAAO,EAAIyY,GAEhBhgB,KAAKuH,MAAMyY,GAK1B,SAAS69G,GAAcC,EAAQC,EAAQC,GACnC,IAGIl3I,EAHAuC,EAAM2W,KAAKsG,IAAIw3H,EAAOl2I,OAAQm2I,EAAOn2I,QACrCq2I,EAAaj+H,KAAK4B,IAAIk8H,EAAOl2I,OAASm2I,EAAOn2I,QAC7Cs2I,EAAQ,EAEZ,IAAKp3I,EAAI,EAAGA,EAAIuC,EAAKvC,KAEZk3I,GAAeF,EAAOh3I,KAAOi3I,EAAOj3I,KACnCk3I,GAAe9U,GAAM4U,EAAOh3I,MAAQoiI,GAAM6U,EAAOj3I,MAEnDo3I,IAGR,OAAOA,EAAQD,EAKnB,SAASp3F,GAAO8+E,EAAOrxH,GACnBoxH,EAAeC,EAAO,EAAG,GAAG,WACxB,IAAI9+E,EAAS98C,KAAKo0I,YACdnjC,EAAO,IAKX,OAJIn0D,EAAS,IACTA,GAAUA,EACVm0D,EAAO,KAGPA,EACAiqB,KAAYp+E,EAAS,IAAK,GAC1BvyC,EACA2wH,IAAWp+E,EAAS,GAAI,MAKpCA,GAAO,IAAK,KACZA,GAAO,KAAM,IAIbikF,GAAc,IAAKH,IACnBG,GAAc,KAAMH,IACpBe,GAAc,CAAC,IAAK,OAAO,SAAUzwH,EAAO3Q,EAAOiQ,GAC/CA,EAAOs/H,SAAU,EACjBt/H,EAAO0oH,KAAOmb,GAAiBzT,GAAkB1vH,MAQrD,IAAIojI,GAAc,kBAElB,SAASD,GAAiBE,EAASvoI,GAC/B,IAEIwoI,EACArK,EAHAjwD,GAAWluE,GAAU,IAAIk2B,MAAMqyG,GAKnC,OAAgB,OAAZr6D,EACO,KAOQ,KAFnBiwD,EAAuB,IADvBqK,IADQt6D,EAAQA,EAAQr8E,OAAS,IAAM,IACtB,IAAIqkC,MAAMoyG,KAAgB,CAAC,IAAK,EAAG,IAClC,GAAWnV,GAAMqV,EAAM,KAElB,EAAiB,MAAbA,EAAM,GAAarK,GAAWA,EAI7D,SAASsK,GAAgBvjI,EAAOi3D,GAC5B,IAAI+W,EAAKzW,EACT,OAAIN,EAAMgxD,QACNj6C,EAAM/W,EAAMyI,QACZnI,GACK+wD,EAAStoH,IAAUylH,EAAOzlH,GACrBA,EAAMq0B,UACNwrG,GAAY7/H,GAAOq0B,WAAa25C,EAAI35C,UAE9C25C,EAAI9hF,GAAGs3I,QAAQx1D,EAAI9hF,GAAGmoC,UAAYkjC,GAClC6tD,EAAMiD,aAAar6C,GAAK,GACjBA,GAEA6xD,GAAY7/H,GAAOyjI,QAIlC,SAASC,GAAcz5G,GAGnB,OAAQllB,KAAKuH,MAAM2d,EAAE/9B,GAAGy3I,qBAqB5B,SAASC,GAAa5jI,EAAO6jI,EAAeC,GACxC,IACIC,EADAn4F,EAAS98C,KAAKo5H,SAAW,EAE7B,IAAKp5H,KAAK4tE,UACN,OAAgB,MAAT18D,EAAgBlR,KAAOouF,IAElC,GAAa,MAATl9E,EAAe,CACf,GAAqB,kBAAVA,GAEP,GAAc,QADdA,EAAQmjI,GAAiBzT,GAAkB1vH,IAEvC,OAAOlR,UAEJiW,KAAK4B,IAAI3G,GAAS,KAAO8jI,IAChC9jI,GAAgB,IAwBpB,OAtBKlR,KAAKm5H,QAAU4b,IAChBE,EAAcL,GAAc50I,OAEhCA,KAAKo5H,QAAUloH,EACflR,KAAKm5H,QAAS,EACK,MAAf8b,GACAj1I,KAAK0P,IAAIulI,EAAa,KAEtBn4F,IAAW5rC,KACN6jI,GAAiB/0I,KAAKk1I,kBACvBC,GACIn1I,KACAizI,GAAe/hI,EAAQ4rC,EAAQ,KAC/B,GACA,GAEI98C,KAAKk1I,oBACbl1I,KAAKk1I,mBAAoB,EACzB5e,EAAMiD,aAAav5H,MAAM,GACzBA,KAAKk1I,kBAAoB,OAG1Bl1I,KAEP,OAAOA,KAAKm5H,OAASr8E,EAAS83F,GAAc50I,MAIpD,SAASo1I,GAAWlkI,EAAO6jI,GACvB,OAAa,MAAT7jI,GACqB,kBAAVA,IACPA,GAASA,GAGblR,KAAKo0I,UAAUljI,EAAO6jI,GAEf/0I,OAECA,KAAKo0I,YAIrB,SAASiB,GAAeN,GACpB,OAAO/0I,KAAKo0I,UAAU,EAAGW,GAG7B,SAASO,GAAiBP,GAStB,OARI/0I,KAAKm5H,SACLn5H,KAAKo0I,UAAU,EAAGW,GAClB/0I,KAAKm5H,QAAS,EAEV4b,GACA/0I,KAAKu1I,SAASX,GAAc50I,MAAO,MAGpCA,KAGX,SAASw1I,KACL,GAAiB,MAAbx1I,KAAKk5H,KACLl5H,KAAKo0I,UAAUp0I,KAAKk5H,MAAM,GAAO,QAC9B,GAAuB,kBAAZl5H,KAAKxC,GAAiB,CACpC,IAAIi4I,EAAQpB,GAAiB1T,GAAa3gI,KAAKxC,IAClC,MAATi4I,EACAz1I,KAAKo0I,UAAUqB,GAEfz1I,KAAKo0I,UAAU,GAAG,GAG1B,OAAOp0I,KAGX,SAAS01I,GAAqBxkI,GAC1B,QAAKlR,KAAK4tE,YAGV18D,EAAQA,EAAQ6/H,GAAY7/H,GAAOkjI,YAAc,GAEzCp0I,KAAKo0I,YAAcljI,GAAS,KAAO,GAG/C,SAASykI,KACL,OACI31I,KAAKo0I,YAAcp0I,KAAK4wE,QAAQp2B,MAAM,GAAG45F,aACzCp0I,KAAKo0I,YAAcp0I,KAAK4wE,QAAQp2B,MAAM,GAAG45F,YAIjD,SAASwB,KACL,IAAKlf,EAAY12H,KAAK61I,eAClB,OAAO71I,KAAK61I,cAGhB,IACI1yI,EADAs2B,EAAI,GAcR,OAXAq/F,EAAWr/F,EAAGz5B,OACdy5B,EAAI24G,GAAc34G,IAEZsoG,IACF5+H,EAAQs2B,EAAE0/F,OAASvC,EAAUn9F,EAAEsoG,IAAMgP,GAAYt3G,EAAEsoG,IACnD/hI,KAAK61I,cACD71I,KAAK4tE,WAAakmE,GAAcr6G,EAAEsoG,GAAI5+H,EAAMw5B,WAAa,GAE7D38B,KAAK61I,eAAgB,EAGlB71I,KAAK61I,cAGhB,SAASC,KACL,QAAO91I,KAAK4tE,YAAa5tE,KAAKm5H,OAGlC,SAAS4c,KACL,QAAO/1I,KAAK4tE,WAAY5tE,KAAKm5H,OAGjC,SAAS6c,KACL,QAAOh2I,KAAK4tE,WAAY5tE,KAAKm5H,QAA2B,IAAjBn5H,KAAKo5H,QApJhD9C,EAAMiD,aAAe,aAwJrB,IAAI0c,GAAc,wDAIdC,GAAW,sKAEf,SAASjD,GAAe/hI,EAAO9S,GAC3B,IAGI6yG,EACAklC,EACAC,EALAn4D,EAAW/sE,EAEXgxB,EAAQ,KAkEZ,OA7DI0xG,GAAW1iI,GACX+sE,EAAW,CACPonD,GAAIn0H,EAAMuiI,cACV12H,EAAG7L,EAAMwiI,MACTn4G,EAAGrqB,EAAMoyH,SAEN7lD,EAASvsE,KAAW2C,OAAO3C,IAClC+sE,EAAW,GACP7/E,EACA6/E,EAAS7/E,IAAQ8S,EAEjB+sE,EAASu1D,cAAgBtiI,IAErBgxB,EAAQ+zG,GAAY9H,KAAKj9H,KACjC+/F,EAAoB,MAAb/uE,EAAM,IAAc,EAAI,EAC/B+7C,EAAW,CACPriD,EAAG,EACH7e,EAAGoiH,GAAMj9F,EAAMggG,KAASjxB,EACxBh2E,EAAGkkG,GAAMj9F,EAAMigG,KAASlxB,EACxB91E,EAAGgkG,GAAMj9F,EAAMkgG,KAAWnxB,EAC1B1uG,EAAG48H,GAAMj9F,EAAMmgG,KAAWpxB,EAC1Bo0B,GAAIlG,GAAM0U,GAA8B,IAArB3xG,EAAMogG,MAAwBrxB,KAE7C/uE,EAAQg0G,GAAS/H,KAAKj9H,KAC9B+/F,EAAoB,MAAb/uE,EAAM,IAAc,EAAI,EAC/B+7C,EAAW,CACPriD,EAAGy6G,GAASn0G,EAAM,GAAI+uE,GACtB11E,EAAG86G,GAASn0G,EAAM,GAAI+uE,GACtB13E,EAAG88G,GAASn0G,EAAM,GAAI+uE,GACtBl0F,EAAGs5H,GAASn0G,EAAM,GAAI+uE,GACtBh2E,EAAGo7G,GAASn0G,EAAM,GAAI+uE,GACtB91E,EAAGk7G,GAASn0G,EAAM,GAAI+uE,GACtB1uG,EAAG8zI,GAASn0G,EAAM,GAAI+uE,KAEP,MAAZhzB,EAEPA,EAAW,GAES,kBAAbA,IACN,SAAUA,GAAY,OAAQA,KAE/Bm4D,EAAUE,GACNvF,GAAY9yD,EAASl/E,MACrBgyI,GAAY9yD,EAAS37E,MAGzB27E,EAAW,IACFonD,GAAK+Q,EAAQ5C,aACtBv1D,EAAS1iD,EAAI66G,EAAQxT,QAGzBuT,EAAM,IAAIjD,GAASj1D,GAEf21D,GAAW1iI,IAAUslH,EAAWtlH,EAAO,aACvCilI,EAAI9c,QAAUnoH,EAAMmoH,SAGpBua,GAAW1iI,IAAUslH,EAAWtlH,EAAO,cACvCilI,EAAIhe,SAAWjnH,EAAMinH,UAGlBge,EAMX,SAASE,GAASE,EAAKtlC,GAInB,IAAI/xB,EAAMq3D,GAAOzlI,WAAWylI,EAAItsI,QAAQ,IAAK,MAE7C,OAAQ4J,MAAMqrE,GAAO,EAAIA,GAAO+xB,EAGpC,SAASulC,GAA0BroH,EAAMhrB,GACrC,IAAI+7E,EAAM,GAUV,OARAA,EAAI0jD,OACAz/H,EAAMq3C,QAAUrsB,EAAKqsB,QAAyC,IAA9Br3C,EAAM8nH,OAAS98F,EAAK88F,QACpD98F,EAAKyiD,QAAQlhE,IAAIwvE,EAAI0jD,OAAQ,KAAK6T,QAAQtzI,MACxC+7E,EAAI0jD,OAGV1jD,EAAIs0D,cAAgBrwI,GAASgrB,EAAKyiD,QAAQlhE,IAAIwvE,EAAI0jD,OAAQ,KAEnD1jD,EAGX,SAASo3D,GAAkBnoH,EAAMhrB,GAC7B,IAAI+7E,EACJ,OAAM/wD,EAAKy/C,WAAazqE,EAAMyqE,WAI9BzqE,EAAQsxI,GAAgBtxI,EAAOgrB,GAC3BA,EAAKuoH,SAASvzI,GACd+7E,EAAMs3D,GAA0BroH,EAAMhrB,KAEtC+7E,EAAMs3D,GAA0BrzI,EAAOgrB,IACnCqlH,cAAgBt0D,EAAIs0D,aACxBt0D,EAAI0jD,QAAU1jD,EAAI0jD,QAGf1jD,GAZI,CAAEs0D,aAAc,EAAG5Q,OAAQ,GAgB1C,SAAS+T,GAAYz6D,EAAWp9E,GAC5B,OAAO,SAAUuC,EAAKmQ,GAClB,IAASk3F,EAmBT,OAjBe,OAAXl3F,GAAoBqC,OAAOrC,KAC3BsoH,EACIh7H,EACA,YACIA,EACA,uDACAA,EAHJ,kGAOJ4pG,EAAMrnG,EACNA,EAAMmQ,EACNA,EAASk3F,GAIbysC,GAAYn1I,KADNizI,GAAe5xI,EAAKmQ,GACH0qE,GAChBl8E,MAIf,SAASm1I,GAAYpa,EAAK98C,EAAU24D,EAAUrd,GAC1C,IAAIia,EAAev1D,EAASw1D,cACxBF,EAAOM,GAAS51D,EAASy1D,OACzB9Q,EAASiR,GAAS51D,EAASqlD,SAE1BvI,EAAIntD,YAKT2rD,EAA+B,MAAhBA,GAA8BA,EAEzCqJ,GACAuB,GAASpJ,EAAK36H,GAAI26H,EAAK,SAAW6H,EAASgU,GAE3CrD,GACA/T,GAAMzE,EAAK,OAAQ36H,GAAI26H,EAAK,QAAUwY,EAAOqD,GAE7CpD,GACAzY,EAAI39H,GAAGs3I,QAAQ3Z,EAAI39H,GAAGmoC,UAAYiuG,EAAeoD,GAEjDrd,GACAjD,EAAMiD,aAAawB,EAAKwY,GAAQ3Q,IA5FxCqQ,GAAehuI,GAAKiuI,GAASz0I,UAC7Bw0I,GAAe4D,QAAU7D,GA+FzB,IAAItjI,GAAMinI,GAAY,EAAG,OACrBpB,GAAWoB,IAAa,EAAG,YAE/B,SAASG,GAAS5lI,GACd,MAAwB,kBAAVA,GAAsBA,aAAiB1P,OAIzD,SAASu1I,GAAc7lI,GACnB,OACIsoH,EAAStoH,IACTylH,EAAOzlH,IACP4lI,GAAS5lI,IACTusE,EAASvsE,IACT8lI,GAAsB9lI,IACtB+lI,GAAoB/lI,IACV,OAAVA,QACU5T,IAAV4T,EAIR,SAAS+lI,GAAoB/lI,GACzB,IA4BInU,EACAgN,EA7BAmtI,EAAavxI,EAASuL,KAAWulH,EAAcvlH,GAC/CimI,GAAe,EACfC,EAAa,CACT,QACA,OACA,IACA,SACA,QACA,IACA,OACA,MACA,IACA,QACA,OACA,IACA,QACA,OACA,IACA,UACA,SACA,IACA,UACA,SACA,IACA,eACA,cACA,MAKR,IAAKr6I,EAAI,EAAGA,EAAIq6I,EAAWv5I,OAAQd,GAAK,EACpCgN,EAAWqtI,EAAWr6I,GACtBo6I,EAAeA,GAAgB3gB,EAAWtlH,EAAOnH,GAGrD,OAAOmtI,GAAcC,EAGzB,SAASH,GAAsB9lI,GAC3B,IAAImmI,EAAY16I,EAAQuU,GACpBomI,GAAe,EAOnB,OANID,IACAC,EAGkB,IAFdpmI,EAAMzG,QAAO,SAAUopE,GACnB,OAAQ4J,EAAS5J,IAASijE,GAAS5lI,MACpCrT,QAEJw5I,GAAaC,EAGxB,SAASC,GAAermI,GACpB,IAUInU,EACAgN,EAXAmtI,EAAavxI,EAASuL,KAAWulH,EAAcvlH,GAC/CimI,GAAe,EACfC,EAAa,CACT,UACA,UACA,UACA,WACA,WACA,YAKR,IAAKr6I,EAAI,EAAGA,EAAIq6I,EAAWv5I,OAAQd,GAAK,EACpCgN,EAAWqtI,EAAWr6I,GACtBo6I,EAAeA,GAAgB3gB,EAAWtlH,EAAOnH,GAGrD,OAAOmtI,GAAcC,EAGzB,SAASK,GAAkBC,EAAUtjG,GACjC,IAAIs0B,EAAOgvE,EAAShvE,KAAKt0B,EAAK,QAAQ,GACtC,OAAOs0B,GAAQ,EACT,WACAA,GAAQ,EACR,WACAA,EAAO,EACP,UACAA,EAAO,EACP,UACAA,EAAO,EACP,UACAA,EAAO,EACP,WACA,WAGV,SAASivE,GAAW58F,EAAM+6D,GAEG,IAArBrzG,UAAU3E,SACL2E,UAAU,GAGJu0I,GAAcv0I,UAAU,KAC/Bs4C,EAAOt4C,UAAU,GACjBqzG,OAAUv4G,GACHi6I,GAAe/0I,UAAU,MAChCqzG,EAAUrzG,UAAU,GACpBs4C,OAAOx9C,IAPPw9C,OAAOx9C,EACPu4G,OAAUv4G,IAWlB,IAAI62C,EAAM2G,GAAQi2F,KACd4G,EAAMlD,GAAgBtgG,EAAKn0C,MAAM+1G,QAAQ,OACzCplG,EAAS2lH,EAAMshB,eAAe53I,KAAM23I,IAAQ,WAC5C3c,EACInlB,IACC/tG,EAAW+tG,EAAQllG,IACdklG,EAAQllG,GAAQhS,KAAKqB,KAAMm0C,GAC3B0hE,EAAQllG,IAEtB,OAAO3Q,KAAK2Q,OACRqqH,GAAUh7H,KAAK+7H,aAAajB,SAASnqH,EAAQ3Q,KAAM+wI,GAAY58F,KAIvE,SAASy8B,KACL,OAAO,IAAI0oD,EAAOt5H,MAGtB,SAASy2I,GAAQvlI,EAAOstH,GACpB,IAAIqZ,EAAare,EAAStoH,GAASA,EAAQ6/H,GAAY7/H,GACvD,SAAMlR,KAAK4tE,YAAaiqE,EAAWjqE,aAIrB,iBADd4wD,EAAQD,GAAeC,IAAU,eAEtBx+H,KAAKulC,UAAYsyG,EAAWtyG,UAE5BsyG,EAAWtyG,UAAYvlC,KAAK4wE,QAAQmlC,QAAQyoB,GAAOj5F,WAIlE,SAASmxG,GAASxlI,EAAOstH,GACrB,IAAIqZ,EAAare,EAAStoH,GAASA,EAAQ6/H,GAAY7/H,GACvD,SAAMlR,KAAK4tE,YAAaiqE,EAAWjqE,aAIrB,iBADd4wD,EAAQD,GAAeC,IAAU,eAEtBx+H,KAAKulC,UAAYsyG,EAAWtyG,UAE5BvlC,KAAK4wE,QAAQolC,MAAMwoB,GAAOj5F,UAAYsyG,EAAWtyG,WAIhE,SAASuyG,GAAU/4I,EAAMuD,EAAIk8H,EAAOuZ,GAChC,IAAIC,EAAYxe,EAASz6H,GAAQA,EAAOgyI,GAAYhyI,GAChDk5I,EAAUze,EAASl3H,GAAMA,EAAKyuI,GAAYzuI,GAC9C,SAAMtC,KAAK4tE,WAAaoqE,EAAUpqE,WAAaqqE,EAAQrqE,aAK/B,OAFxBmqE,EAAcA,GAAe,MAEZ,GACP/3I,KAAKy2I,QAAQuB,EAAWxZ,IACvBx+H,KAAK02I,SAASsB,EAAWxZ,MACZ,MAAnBuZ,EAAY,GACP/3I,KAAK02I,SAASuB,EAASzZ,IACtBx+H,KAAKy2I,QAAQwB,EAASzZ,IAIrC,SAAS0Z,GAAOhnI,EAAOstH,GACnB,IACI2Z,EADAN,EAAare,EAAStoH,GAASA,EAAQ6/H,GAAY7/H,GAEvD,SAAMlR,KAAK4tE,YAAaiqE,EAAWjqE,aAIrB,iBADd4wD,EAAQD,GAAeC,IAAU,eAEtBx+H,KAAKulC,YAAcsyG,EAAWtyG,WAErC4yG,EAAUN,EAAWtyG,UAEjBvlC,KAAK4wE,QAAQmlC,QAAQyoB,GAAOj5F,WAAa4yG,GACzCA,GAAWn4I,KAAK4wE,QAAQolC,MAAMwoB,GAAOj5F,YAKjD,SAAS6yG,GAAclnI,EAAOstH,GAC1B,OAAOx+H,KAAKk4I,OAAOhnI,EAAOstH,IAAUx+H,KAAKy2I,QAAQvlI,EAAOstH,GAG5D,SAAS6Z,GAAennI,EAAOstH,GAC3B,OAAOx+H,KAAKk4I,OAAOhnI,EAAOstH,IAAUx+H,KAAK02I,SAASxlI,EAAOstH,GAG7D,SAAS/1D,GAAKv3D,EAAOstH,EAAO8Z,GACxB,IAAIC,EAAMC,EAAWxd,EAErB,IAAKh7H,KAAK4tE,UACN,OAAOwgB,IAKX,KAFAmqD,EAAO9D,GAAgBvjI,EAAOlR,OAEpB4tE,UACN,OAAOwgB,IAOX,OAJAoqD,EAAoD,KAAvCD,EAAKnE,YAAcp0I,KAAKo0I,aAErC5V,EAAQD,GAAeC,IAGnB,IAAK,OACDxD,EAASyd,GAAUz4I,KAAMu4I,GAAQ,GACjC,MACJ,IAAK,QACDvd,EAASyd,GAAUz4I,KAAMu4I,GACzB,MACJ,IAAK,UACDvd,EAASyd,GAAUz4I,KAAMu4I,GAAQ,EACjC,MACJ,IAAK,SACDvd,GAAUh7H,KAAOu4I,GAAQ,IACzB,MACJ,IAAK,SACDvd,GAAUh7H,KAAOu4I,GAAQ,IACzB,MACJ,IAAK,OACDvd,GAAUh7H,KAAOu4I,GAAQ,KACzB,MACJ,IAAK,MACDvd,GAAUh7H,KAAOu4I,EAAOC,GAAa,MACrC,MACJ,IAAK,OACDxd,GAAUh7H,KAAOu4I,EAAOC,GAAa,OACrC,MACJ,QACIxd,EAASh7H,KAAOu4I,EAGxB,OAAOD,EAAUtd,EAASkE,GAASlE,GAGvC,SAASyd,GAAUtvI,EAAGC,GAClB,GAAID,EAAEkxC,OAASjxC,EAAEixC,OAGb,OAAQo+F,GAAUrvI,EAAGD,GAGzB,IAAIuvI,EAAyC,IAAvBtvI,EAAE6hH,OAAS9hH,EAAE8hH,SAAgB7hH,EAAEoxC,QAAUrxC,EAAEqxC,SAE7Dm+F,EAASxvI,EAAEynE,QAAQlhE,IAAIgpI,EAAgB,UAe3C,QAASA,GAXLtvI,EAAIuvI,EAAS,GAGHvvI,EAAIuvI,IAAWA,EAFfxvI,EAAEynE,QAAQlhE,IAAIgpI,EAAiB,EAAG,YAMlCtvI,EAAIuvI,IAFJxvI,EAAEynE,QAAQlhE,IAAIgpI,EAAiB,EAAG,UAETC,MAIF,EAMzC,SAASj6I,KACL,OAAOsB,KAAK4wE,QAAQ34B,OAAO,MAAMtnC,OAAO,oCAG5C,SAASioI,GAAYC,GACjB,IAAK74I,KAAK4tE,UACN,OAAO,KAEX,IAAImpD,GAAqB,IAAf8hB,EACN19G,EAAI47F,EAAM/2H,KAAK4wE,QAAQmmD,MAAQ/2H,KACnC,OAAIm7B,EAAE8vF,OAAS,GAAK9vF,EAAE8vF,OAAS,KACpBiR,EACH/gG,EACA47F,EACM,iCACA,gCAGVjvH,EAAWqG,KAAK1P,UAAUm6I,aAEtB7hB,EACO/2H,KAAK84I,SAASF,cAEd,IAAIzqI,KAAKnO,KAAKulC,UAA+B,GAAnBvlC,KAAKo0I,YAAmB,KACpDwE,cACA3uI,QAAQ,IAAKiyH,EAAa/gG,EAAG,MAGnC+gG,EACH/gG,EACA47F,EAAM,+BAAiC,8BAU/C,SAASgiB,KACL,IAAK/4I,KAAK4tE,UACN,MAAO,qBAAuB5tE,KAAKxC,GAAK,OAE5C,IAEIotG,EACAqgB,EACA3wE,EACA0+F,EALAjzI,EAAO,SACPkzI,EAAO,GAcX,OATKj5I,KAAK81I,YACN/vI,EAA4B,IAArB/F,KAAKo0I,YAAoB,aAAe,mBAC/C6E,EAAO,KAEXruC,EAAS,IAAM7kG,EAAO,MACtBklH,EAAO,GAAKjrH,KAAKirH,QAAUjrH,KAAKirH,QAAU,KAAO,OAAS,SAC1D3wE,EAAW,wBACX0+F,EAASC,EAAO,OAETj5I,KAAK2Q,OAAOi6F,EAASqgB,EAAO3wE,EAAW0+F,GAGlD,SAASroI,GAAOuoI,GACPA,IACDA,EAAcl5I,KAAKg2I,QACb1f,EAAM6iB,iBACN7iB,EAAM8iB,eAEhB,IAAIpe,EAASkB,EAAal8H,KAAMk5I,GAChC,OAAOl5I,KAAK+7H,aAAasd,WAAWre,GAGxC,SAASj8H,GAAK+7C,EAAMijF,GAChB,OACI/9H,KAAK4tE,YACH4rD,EAAS1+E,IAASA,EAAK8yB,WAAcmjE,GAAYj2F,GAAM8yB,WAElDqlE,GAAe,CAAE3wI,GAAItC,KAAMjB,KAAM+7C,IACnC7C,OAAOj4C,KAAKi4C,UACZqhG,UAAUvb,GAER/9H,KAAK+7H,aAAaK,cAIjC,SAASmd,GAAQxb,GACb,OAAO/9H,KAAKjB,KAAKgyI,KAAehT,GAGpC,SAASz7H,GAAGw4C,EAAMijF,GACd,OACI/9H,KAAK4tE,YACH4rD,EAAS1+E,IAASA,EAAK8yB,WAAcmjE,GAAYj2F,GAAM8yB,WAElDqlE,GAAe,CAAEl0I,KAAMiB,KAAMsC,GAAIw4C,IACnC7C,OAAOj4C,KAAKi4C,UACZqhG,UAAUvb,GAER/9H,KAAK+7H,aAAaK,cAIjC,SAASod,GAAMzb,GACX,OAAO/9H,KAAKsC,GAAGyuI,KAAehT,GAMlC,SAAS9lF,GAAO75C,GACZ,IAAIq7I,EAEJ,YAAYn8I,IAARc,EACO4B,KAAKq5H,QAAQ2S,OAGC,OADrByN,EAAgBtN,GAAU/tI,MAEtB4B,KAAKq5H,QAAUogB,GAEZz5I,MA1Hfs2H,EAAM8iB,cAAgB,uBACtB9iB,EAAM6iB,iBAAmB,yBA6HzB,IAAIO,GAAOh3I,EACP,mJACA,SAAUtE,GACN,YAAYd,IAARc,EACO4B,KAAK+7H,aAEL/7H,KAAKi4C,OAAO75C,MAK/B,SAAS29H,KACL,OAAO/7H,KAAKq5H,QAGhB,IAAIsgB,GAAgB,IAChBC,GAAgB,GAAKD,GACrBE,GAAc,GAAKD,GACnBE,GAAmB,QAAwBD,GAG/C,SAASE,GAAMC,EAAUC,GACrB,OAASD,EAAWC,EAAWA,GAAWA,EAG9C,SAASC,GAAiBt+G,EAAGT,EAAGpe,GAE5B,OAAI6e,EAAI,KAAOA,GAAK,EAET,IAAIztB,KAAKytB,EAAI,IAAKT,EAAGpe,GAAK+8H,GAE1B,IAAI3rI,KAAKytB,EAAGT,EAAGpe,GAAGwoB,UAIjC,SAAS40G,GAAev+G,EAAGT,EAAGpe,GAE1B,OAAI6e,EAAI,KAAOA,GAAK,EAETztB,KAAKs3H,IAAI7pG,EAAI,IAAKT,EAAGpe,GAAK+8H,GAE1B3rI,KAAKs3H,IAAI7pG,EAAGT,EAAGpe,GAI9B,SAASg5F,GAAQyoB,GACb,IAAI1jF,EAAMs/F,EAEV,QAAc98I,KADdkhI,EAAQD,GAAeC,KACc,gBAAVA,IAA4Bx+H,KAAK4tE,UACxD,OAAO5tE,KAKX,OAFAo6I,EAAcp6I,KAAKm5H,OAASghB,GAAiBD,GAErC1b,GACJ,IAAK,OACD1jF,EAAOs/F,EAAYp6I,KAAKirH,OAAQ,EAAG,GACnC,MACJ,IAAK,UACDnwE,EAAOs/F,EACHp6I,KAAKirH,OACLjrH,KAAKw6C,QAAWx6C,KAAKw6C,QAAU,EAC/B,GAEJ,MACJ,IAAK,QACDM,EAAOs/F,EAAYp6I,KAAKirH,OAAQjrH,KAAKw6C,QAAS,GAC9C,MACJ,IAAK,OACDM,EAAOs/F,EACHp6I,KAAKirH,OACLjrH,KAAKw6C,QACLx6C,KAAKq6C,OAASr6C,KAAKmtH,WAEvB,MACJ,IAAK,UACDryE,EAAOs/F,EACHp6I,KAAKirH,OACLjrH,KAAKw6C,QACLx6C,KAAKq6C,QAAUr6C,KAAKotH,aAAe,IAEvC,MACJ,IAAK,MACL,IAAK,OACDtyE,EAAOs/F,EAAYp6I,KAAKirH,OAAQjrH,KAAKw6C,QAASx6C,KAAKq6C,QACnD,MACJ,IAAK,OACDS,EAAO96C,KAAK5C,GAAGmoC,UACfuV,GAAQi/F,GACJj/F,GAAQ96C,KAAKm5H,OAAS,EAAIn5H,KAAKo0I,YAAcwF,IAC7CC,IAEJ,MACJ,IAAK,SACD/+F,EAAO96C,KAAK5C,GAAGmoC,UACfuV,GAAQi/F,GAAMj/F,EAAM8+F,IACpB,MACJ,IAAK,SACD9+F,EAAO96C,KAAK5C,GAAGmoC,UACfuV,GAAQi/F,GAAMj/F,EAAM6+F,IAM5B,OAFA35I,KAAK5C,GAAGs3I,QAAQ55F,GAChBw7E,EAAMiD,aAAav5H,MAAM,GAClBA,KAGX,SAASg2G,GAAMwoB,GACX,IAAI1jF,EAAMs/F,EAEV,QAAc98I,KADdkhI,EAAQD,GAAeC,KACc,gBAAVA,IAA4Bx+H,KAAK4tE,UACxD,OAAO5tE,KAKX,OAFAo6I,EAAcp6I,KAAKm5H,OAASghB,GAAiBD,GAErC1b,GACJ,IAAK,OACD1jF,EAAOs/F,EAAYp6I,KAAKirH,OAAS,EAAG,EAAG,GAAK,EAC5C,MACJ,IAAK,UACDnwE,EACIs/F,EACIp6I,KAAKirH,OACLjrH,KAAKw6C,QAAWx6C,KAAKw6C,QAAU,EAAK,EACpC,GACA,EACR,MACJ,IAAK,QACDM,EAAOs/F,EAAYp6I,KAAKirH,OAAQjrH,KAAKw6C,QAAU,EAAG,GAAK,EACvD,MACJ,IAAK,OACDM,EACIs/F,EACIp6I,KAAKirH,OACLjrH,KAAKw6C,QACLx6C,KAAKq6C,OAASr6C,KAAKmtH,UAAY,GAC/B,EACR,MACJ,IAAK,UACDryE,EACIs/F,EACIp6I,KAAKirH,OACLjrH,KAAKw6C,QACLx6C,KAAKq6C,QAAUr6C,KAAKotH,aAAe,GAAK,GACxC,EACR,MACJ,IAAK,MACL,IAAK,OACDtyE,EAAOs/F,EAAYp6I,KAAKirH,OAAQjrH,KAAKw6C,QAASx6C,KAAKq6C,OAAS,GAAK,EACjE,MACJ,IAAK,OACDS,EAAO96C,KAAK5C,GAAGmoC,UACfuV,GACI++F,GACAE,GACIj/F,GAAQ96C,KAAKm5H,OAAS,EAAIn5H,KAAKo0I,YAAcwF,IAC7CC,IAEJ,EACJ,MACJ,IAAK,SACD/+F,EAAO96C,KAAK5C,GAAGmoC,UACfuV,GAAQ8+F,GAAgBG,GAAMj/F,EAAM8+F,IAAiB,EACrD,MACJ,IAAK,SACD9+F,EAAO96C,KAAK5C,GAAGmoC,UACfuV,GAAQ6+F,GAAgBI,GAAMj/F,EAAM6+F,IAAiB,EAM7D,OAFA35I,KAAK5C,GAAGs3I,QAAQ55F,GAChBw7E,EAAMiD,aAAav5H,MAAM,GAClBA,KAGX,SAASulC,KACL,OAAOvlC,KAAK5C,GAAGmoC,UAAkC,KAArBvlC,KAAKo5H,SAAW,GAGhD,SAASihB,KACL,OAAOpkI,KAAK8mD,MAAM/8D,KAAKulC,UAAY,KAGvC,SAASuzG,KACL,OAAO,IAAI3qI,KAAKnO,KAAKulC,WAGzB,SAAS5I,KACL,IAAIxB,EAAIn7B,KACR,MAAO,CACHm7B,EAAE8vF,OACF9vF,EAAEqf,QACFrf,EAAEkf,OACFlf,EAAE2vF,OACF3vF,EAAE0vF,SACF1vF,EAAEyvF,SACFzvF,EAAEsvF,eAIV,SAASrpH,KACL,IAAI+5B,EAAIn7B,KACR,MAAO,CACHmzI,MAAOh4G,EAAE8vF,OACT2X,OAAQznG,EAAEqf,QACVH,KAAMlf,EAAEkf,OACR2vF,MAAO7uG,EAAE6uG,QACTG,QAAShvG,EAAEgvG,UACXI,QAASpvG,EAAEovG,UACXiJ,aAAcr4G,EAAEq4G,gBAIxB,SAAS7iE,KAEL,OAAO3wE,KAAK4tE,UAAY5tE,KAAK44I,cAAgB,KAGjD,SAAS0B,KACL,OAAO1sE,EAAQ5tE,MAGnB,SAASu6I,KACL,OAAOtiF,EAAO,GAAIggE,EAAgBj4H,OAGtC,SAASw6I,KACL,OAAOviB,EAAgBj4H,MAAMo3H,SAGjC,SAASqjB,KACL,MAAO,CACHvpI,MAAOlR,KAAKxC,GACZmT,OAAQ3Q,KAAKg5H,GACb/gF,OAAQj4C,KAAKq5H,QACbkZ,MAAOvyI,KAAKm5H,OACZtC,OAAQ72H,KAAKw4H,SAuDrB,SAASkiB,GAAWv/G,EAAGxqB,GACnB,IAAI5T,EACAgG,EACAs3C,EACAsgG,EAAO36I,KAAK46I,OAASzO,GAAU,MAAMyO,MACzC,IAAK79I,EAAI,EAAGgG,EAAI43I,EAAK98I,OAAQd,EAAIgG,IAAKhG,EAAG,CACrC,cAAe49I,EAAK59I,GAAG89I,OACnB,IAAK,SAEDxgG,EAAOi8E,EAAMqkB,EAAK59I,GAAG89I,OAAO9kC,QAAQ,OACpC4kC,EAAK59I,GAAG89I,MAAQxgG,EAAK9U,UAI7B,cAAeo1G,EAAK59I,GAAG+9I,OACnB,IAAK,YACDH,EAAK59I,GAAG+9I,MAAQ,IAChB,MACJ,IAAK,SAEDzgG,EAAOi8E,EAAMqkB,EAAK59I,GAAG+9I,OAAO/kC,QAAQ,OAAOxwE,UAC3Co1G,EAAK59I,GAAG+9I,MAAQzgG,EAAK9U,WAIjC,OAAOo1G,EAGX,SAASI,GAAgBC,EAASrqI,EAAQkmH,GACtC,IAAI95H,EACAgG,EAEAjE,EACA2tE,EACAwuE,EAHAN,EAAO36I,KAAK26I,OAMhB,IAFAK,EAAUA,EAAQ76G,cAEbpjC,EAAI,EAAGgG,EAAI43I,EAAK98I,OAAQd,EAAIgG,IAAKhG,EAKlC,GAJA+B,EAAO67I,EAAK59I,GAAG+B,KAAKqhC,cACpBssC,EAAOkuE,EAAK59I,GAAG0vE,KAAKtsC,cACpB86G,EAASN,EAAK59I,GAAGk+I,OAAO96G,cAEpB02F,EACA,OAAQlmH,GACJ,IAAK,IACL,IAAK,KACL,IAAK,MACD,GAAI87D,IAASuuE,EACT,OAAOL,EAAK59I,GAEhB,MAEJ,IAAK,OACD,GAAI+B,IAASk8I,EACT,OAAOL,EAAK59I,GAEhB,MAEJ,IAAK,QACD,GAAIk+I,IAAWD,EACX,OAAOL,EAAK59I,QAIrB,GAAI,CAAC+B,EAAM2tE,EAAMwuE,GAAQzpH,QAAQwpH,IAAY,EAChD,OAAOL,EAAK59I,GAKxB,SAASm+I,GAAsBrjB,EAAK5M,GAChC,IAAI1lD,EAAMsyD,EAAIgjB,OAAShjB,EAAIijB,MAAQ,GAAM,EACzC,YAAax9I,IAAT2tH,EACOqL,EAAMuB,EAAIgjB,OAAO5vB,OAEjBqL,EAAMuB,EAAIgjB,OAAO5vB,QAAUA,EAAO4M,EAAI/6E,QAAUyoB,EAI/D,SAAS41E,KACL,IAAIp+I,EACAgG,EACA1B,EACAs5I,EAAO36I,KAAK+7H,aAAa4e,OAC7B,IAAK59I,EAAI,EAAGgG,EAAI43I,EAAK98I,OAAQd,EAAIgG,IAAKhG,EAAG,CAIrC,GAFAsE,EAAMrB,KAAK4wE,QAAQmlC,QAAQ,OAAOxwE,UAE9Bo1G,EAAK59I,GAAG89I,OAASx5I,GAAOA,GAAOs5I,EAAK59I,GAAG+9I,MACvC,OAAOH,EAAK59I,GAAG+B,KAEnB,GAAI67I,EAAK59I,GAAG+9I,OAASz5I,GAAOA,GAAOs5I,EAAK59I,GAAG89I,MACvC,OAAOF,EAAK59I,GAAG+B,KAIvB,MAAO,GAGX,SAASs8I,KACL,IAAIr+I,EACAgG,EACA1B,EACAs5I,EAAO36I,KAAK+7H,aAAa4e,OAC7B,IAAK59I,EAAI,EAAGgG,EAAI43I,EAAK98I,OAAQd,EAAIgG,IAAKhG,EAAG,CAIrC,GAFAsE,EAAMrB,KAAK4wE,QAAQmlC,QAAQ,OAAOxwE,UAE9Bo1G,EAAK59I,GAAG89I,OAASx5I,GAAOA,GAAOs5I,EAAK59I,GAAG+9I,MACvC,OAAOH,EAAK59I,GAAGk+I,OAEnB,GAAIN,EAAK59I,GAAG+9I,OAASz5I,GAAOA,GAAOs5I,EAAK59I,GAAG89I,MACvC,OAAOF,EAAK59I,GAAGk+I,OAIvB,MAAO,GAGX,SAASI,KACL,IAAIt+I,EACAgG,EACA1B,EACAs5I,EAAO36I,KAAK+7H,aAAa4e,OAC7B,IAAK59I,EAAI,EAAGgG,EAAI43I,EAAK98I,OAAQd,EAAIgG,IAAKhG,EAAG,CAIrC,GAFAsE,EAAMrB,KAAK4wE,QAAQmlC,QAAQ,OAAOxwE,UAE9Bo1G,EAAK59I,GAAG89I,OAASx5I,GAAOA,GAAOs5I,EAAK59I,GAAG+9I,MACvC,OAAOH,EAAK59I,GAAG0vE,KAEnB,GAAIkuE,EAAK59I,GAAG+9I,OAASz5I,GAAOA,GAAOs5I,EAAK59I,GAAG89I,MACvC,OAAOF,EAAK59I,GAAG0vE,KAIvB,MAAO,GAGX,SAAS6uE,KACL,IAAIv+I,EACAgG,EACAwiE,EACAlkE,EACAs5I,EAAO36I,KAAK+7H,aAAa4e,OAC7B,IAAK59I,EAAI,EAAGgG,EAAI43I,EAAK98I,OAAQd,EAAIgG,IAAKhG,EAMlC,GALAwoE,EAAMo1E,EAAK59I,GAAG89I,OAASF,EAAK59I,GAAG+9I,MAAQ,GAAM,EAG7Cz5I,EAAMrB,KAAK4wE,QAAQmlC,QAAQ,OAAOxwE,UAG7Bo1G,EAAK59I,GAAG89I,OAASx5I,GAAOA,GAAOs5I,EAAK59I,GAAG+9I,OACvCH,EAAK59I,GAAG+9I,OAASz5I,GAAOA,GAAOs5I,EAAK59I,GAAG89I,MAExC,OACK76I,KAAKirH,OAASqL,EAAMqkB,EAAK59I,GAAG89I,OAAO5vB,QAAU1lD,EAC9Co1E,EAAK59I,GAAG+/C,OAKpB,OAAO98C,KAAKirH,OAGhB,SAASswB,GAAcra,GAInB,OAHK1K,EAAWx2H,KAAM,mBAClBw7I,GAAiB78I,KAAKqB,MAEnBkhI,EAAWlhI,KAAKy7I,eAAiBz7I,KAAK07I,WAGjD,SAASC,GAAcza,GAInB,OAHK1K,EAAWx2H,KAAM,mBAClBw7I,GAAiB78I,KAAKqB,MAEnBkhI,EAAWlhI,KAAK47I,eAAiB57I,KAAK07I,WAGjD,SAASG,GAAgB3a,GAIrB,OAHK1K,EAAWx2H,KAAM,qBAClBw7I,GAAiB78I,KAAKqB,MAEnBkhI,EAAWlhI,KAAK87I,iBAAmB97I,KAAK07I,WAGnD,SAASK,GAAa7a,EAAUjpF,GAC5B,OAAOA,EAAO0jG,cAAcza,GAGhC,SAAS8a,GAAa9a,EAAUjpF,GAC5B,OAAOA,EAAOsjG,cAAcra,GAGhC,SAAS+a,GAAe/a,EAAUjpF,GAC9B,OAAOA,EAAO4jG,gBAAgB3a,GAGlC,SAASgb,GAAoBhb,EAAUjpF,GACnC,OAAOA,EAAOkkG,sBAAwB1b,GAG1C,SAAS+a,KACL,IAIIz+I,EACAgG,EALAq5I,EAAa,GACbC,EAAa,GACbC,EAAe,GACfvX,EAAc,GAGd4V,EAAO36I,KAAK26I,OAEhB,IAAK59I,EAAI,EAAGgG,EAAI43I,EAAK98I,OAAQd,EAAIgG,IAAKhG,EAClCs/I,EAAW1+I,KAAK0jI,GAAYsZ,EAAK59I,GAAG+B,OACpCs9I,EAAWz+I,KAAK0jI,GAAYsZ,EAAK59I,GAAG0vE,OACpC6vE,EAAa3+I,KAAK0jI,GAAYsZ,EAAK59I,GAAGk+I,SAEtClW,EAAYpnI,KAAK0jI,GAAYsZ,EAAK59I,GAAG+B,OACrCimI,EAAYpnI,KAAK0jI,GAAYsZ,EAAK59I,GAAG0vE,OACrCs4D,EAAYpnI,KAAK0jI,GAAYsZ,EAAK59I,GAAGk+I,SAGzCj7I,KAAK07I,WAAa,IAAI1hB,OAAO,KAAO+K,EAAYnjI,KAAK,KAAO,IAAK,KACjE5B,KAAKy7I,eAAiB,IAAIzhB,OAAO,KAAOqiB,EAAWz6I,KAAK,KAAO,IAAK,KACpE5B,KAAK47I,eAAiB,IAAI5hB,OAAO,KAAOoiB,EAAWx6I,KAAK,KAAO,IAAK,KACpE5B,KAAK87I,iBAAmB,IAAI9hB,OACxB,KAAOsiB,EAAa16I,KAAK,KAAO,IAChC,KAcR,SAAS26I,GAAuB3gB,EAAO4gB,GACnC7gB,EAAe,EAAG,CAACC,EAAOA,EAAM/9H,QAAS,EAAG2+I,GA4ChD,SAASC,GAAevrI,GACpB,OAAOwrI,GAAqB/9I,KACxBqB,KACAkR,EACAlR,KAAKg7C,OACLh7C,KAAKmtH,UACLntH,KAAK+7H,aAAa4K,MAAMd,IACxB7lI,KAAK+7H,aAAa4K,MAAMb,KAIhC,SAAS6W,GAAkBzrI,GACvB,OAAOwrI,GAAqB/9I,KACxBqB,KACAkR,EACAlR,KAAKszI,UACLtzI,KAAKotH,aACL,EACA,GAIR,SAASwvB,KACL,OAAOpW,GAAYxmI,KAAKirH,OAAQ,EAAG,GAGvC,SAAS4xB,KACL,OAAOrW,GAAYxmI,KAAK88I,cAAe,EAAG,GAG9C,SAASC,KACL,IAAIC,EAAWh9I,KAAK+7H,aAAa4K,MACjC,OAAOH,GAAYxmI,KAAKirH,OAAQ+xB,EAASnX,IAAKmX,EAASlX,KAG3D,SAASmX,KACL,IAAID,EAAWh9I,KAAK+7H,aAAa4K,MACjC,OAAOH,GAAYxmI,KAAK0wI,WAAYsM,EAASnX,IAAKmX,EAASlX,KAG/D,SAAS4W,GAAqBxrI,EAAO8pC,EAAMmyE,EAAS0Y,EAAKC,GACrD,IAAIoX,EACJ,OAAa,MAAThsI,EACOm1H,GAAWrmI,KAAM6lI,EAAKC,GAAK7a,MAG9BjwE,GADJkiG,EAAc1W,GAAYt1H,EAAO20H,EAAKC,MAElC9qF,EAAOkiG,GAEJC,GAAWx+I,KAAKqB,KAAMkR,EAAO8pC,EAAMmyE,EAAS0Y,EAAKC,IAIhE,SAASqX,GAAWzM,EAAU11F,EAAMmyE,EAAS0Y,EAAKC,GAC9C,IAAIsX,EAAgBnX,GAAmByK,EAAU11F,EAAMmyE,EAAS0Y,EAAKC,GACjEzrF,EAAOmrF,GAAc4X,EAAcnyB,KAAM,EAAGmyB,EAAchX,WAK9D,OAHApmI,KAAKirH,KAAK5wE,EAAKqrF,kBACf1lI,KAAKw6C,MAAMH,EAAK01F,eAChB/vI,KAAKq6C,KAAKA,EAAK21F,cACRhwI,KAwBX,SAASq9I,GAAcnsI,GACnB,OAAgB,MAATA,EACD+E,KAAKq+C,MAAMt0D,KAAKw6C,QAAU,GAAK,GAC/Bx6C,KAAKw6C,MAAoB,GAAbtpC,EAAQ,GAAUlR,KAAKw6C,QAAU,GAvavDmhF,EAAe,IAAK,EAAG,EAAG,WAC1BA,EAAe,KAAM,EAAG,EAAG,WAC3BA,EAAe,MAAO,EAAG,EAAG,WAC5BA,EAAe,OAAQ,EAAG,EAAG,WAC7BA,EAAe,QAAS,EAAG,EAAG,aAE9BA,EAAe,IAAK,CAAC,IAAK,GAAI,KAAM,WACpCA,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,WAClCA,EAAe,IAAK,CAAC,MAAO,GAAI,EAAG,WACnCA,EAAe,IAAK,CAAC,OAAQ,GAAI,EAAG,WAEpCoF,GAAc,IAAKgb,IACnBhb,GAAc,KAAMgb,IACpBhb,GAAc,MAAOgb,IACrBhb,GAAc,OAAQib,IACtBjb,GAAc,QAASkb,IAEvBta,GAAc,CAAC,IAAK,KAAM,MAAO,OAAQ,UAAU,SAC/CzwH,EACA3Q,EACAiQ,EACAorH,GAEA,IAAI/D,EAAMrnH,EAAO6oH,QAAQikB,UAAUpsI,EAAO0qH,EAAOprH,EAAOgoH,SACpDX,EACAI,EAAgBznH,GAAQqnH,IAAMA,EAE9BI,EAAgBznH,GAAQ+mH,WAAarmH,KAI7C6vH,GAAc,IAAKN,IACnBM,GAAc,KAAMN,IACpBM,GAAc,MAAON,IACrBM,GAAc,OAAQN,IACtBM,GAAc,KAAMmb,IAEpBva,GAAc,CAAC,IAAK,KAAM,MAAO,QAASK,IAC1CL,GAAc,CAAC,OAAO,SAAUzwH,EAAO3Q,EAAOiQ,EAAQorH,GAClD,IAAI15F,EACA1xB,EAAO6oH,QAAQ8iB,uBACfj6G,EAAQhxB,EAAMgxB,MAAM1xB,EAAO6oH,QAAQ8iB,uBAGnC3rI,EAAO6oH,QAAQkkB,oBACfh9I,EAAMyhI,IAAQxxH,EAAO6oH,QAAQkkB,oBAAoBrsI,EAAOgxB,GAExD3hC,EAAMyhI,IAAQ53D,SAASl5D,EAAO,OA4OtCyqH,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,OAAO37H,KAAK0wI,WAAa,OAG7B/U,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,OAAO37H,KAAK88I,cAAgB,OAOhCP,GAAuB,OAAQ,YAC/BA,GAAuB,QAAS,YAChCA,GAAuB,OAAQ,eAC/BA,GAAuB,QAAS,eAIhCne,GAAa,WAAY,MACzBA,GAAa,cAAe,MAI5BU,GAAgB,WAAY,GAC5BA,GAAgB,cAAe,GAI/BiC,GAAc,IAAKL,IACnBK,GAAc,IAAKL,IACnBK,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,OAAQR,GAAWN,IACjCc,GAAc,OAAQR,GAAWN,IACjCc,GAAc,QAASP,GAAWN,IAClCa,GAAc,QAASP,GAAWN,IAElC0B,GAAkB,CAAC,OAAQ,QAAS,OAAQ,UAAU,SAClD1wH,EACA8pC,EACAxqC,EACAorH,GAEA5gF,EAAK4gF,EAAMlqD,OAAO,EAAG,IAAMytD,GAAMjuH,MAGrC0wH,GAAkB,CAAC,KAAM,OAAO,SAAU1wH,EAAO8pC,EAAMxqC,EAAQorH,GAC3D5gF,EAAK4gF,GAAStF,EAAM2O,kBAAkB/zH,MAsE1CyqH,EAAe,IAAK,EAAG,KAAM,WAI7ByC,GAAa,UAAW,KAIxBU,GAAgB,UAAW,GAI3BiC,GAAc,IAAKjB,IACnB6B,GAAc,KAAK,SAAUzwH,EAAO3Q,GAChCA,EAAM0hI,IAA8B,GAApB9C,GAAMjuH,GAAS,MAanCyqH,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,QAIrCyC,GAAa,OAAQ,KAGrBU,GAAgB,OAAQ,GAIxBiC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,MAAM,SAAUG,EAAUjpF,GAEpC,OAAOipF,EACDjpF,EAAOgiF,yBAA2BhiF,EAAOiiF,cACzCjiF,EAAO8hF,kCAGjB4H,GAAc,CAAC,IAAK,MAAOO,IAC3BP,GAAc,MAAM,SAAUzwH,EAAO3Q,GACjCA,EAAM2hI,IAAQ/C,GAAMjuH,EAAMgxB,MAAMi+F,IAAW,OAK/C,IAAIqd,GAAmBle,GAAW,QAAQ,GAyB1C,SAASme,GAAgBvsI,GACrB,IAAIk1H,EACAnwH,KAAKuH,OACAxd,KAAK4wE,QAAQmlC,QAAQ,OAAS/1G,KAAK4wE,QAAQmlC,QAAQ,SAAW,OAC/D,EACR,OAAgB,MAAT7kG,EAAgBk1H,EAAYpmI,KAAK0P,IAAIwB,EAAQk1H,EAAW,KA1BnEzK,EAAe,MAAO,CAAC,OAAQ,GAAI,OAAQ,aAI3CyC,GAAa,YAAa,OAG1BU,GAAgB,YAAa,GAI7BiC,GAAc,MAAOT,IACrBS,GAAc,OAAQf,IACtB2B,GAAc,CAAC,MAAO,SAAS,SAAUzwH,EAAO3Q,EAAOiQ,GACnDA,EAAOggI,WAAarR,GAAMjuH,MAiB9ByqH,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,UAIlCyC,GAAa,SAAU,KAIvBU,GAAgB,SAAU,IAI1BiC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/B4B,GAAc,CAAC,IAAK,MAAOS,IAI3B,IAAIsb,GAAepe,GAAW,WAAW,GAIzC3D,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,UAIlCyC,GAAa,SAAU,KAIvBU,GAAgB,SAAU,IAI1BiC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/B4B,GAAc,CAAC,IAAK,MAAOU,IAI3B,IA8CIzG,GAAO+hB,GA9CPC,GAAete,GAAW,WAAW,GA+CzC,IA3CA3D,EAAe,IAAK,EAAG,GAAG,WACtB,SAAU37H,KAAKyqH,cAAgB,QAGnCkR,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,SAAU37H,KAAKyqH,cAAgB,OAGnCkR,EAAe,EAAG,CAAC,MAAO,GAAI,EAAG,eACjCA,EAAe,EAAG,CAAC,OAAQ,GAAI,GAAG,WAC9B,OAA4B,GAArB37H,KAAKyqH,iBAEhBkR,EAAe,EAAG,CAAC,QAAS,GAAI,GAAG,WAC/B,OAA4B,IAArB37H,KAAKyqH,iBAEhBkR,EAAe,EAAG,CAAC,SAAU,GAAI,GAAG,WAChC,OAA4B,IAArB37H,KAAKyqH,iBAEhBkR,EAAe,EAAG,CAAC,UAAW,GAAI,GAAG,WACjC,OAA4B,IAArB37H,KAAKyqH,iBAEhBkR,EAAe,EAAG,CAAC,WAAY,GAAI,GAAG,WAClC,OAA4B,IAArB37H,KAAKyqH,iBAEhBkR,EAAe,EAAG,CAAC,YAAa,GAAI,GAAG,WACnC,OAA4B,IAArB37H,KAAKyqH,iBAKhB2T,GAAa,cAAe,MAI5BU,GAAgB,cAAe,IAI/BiC,GAAc,IAAKT,GAAWR,IAC9BiB,GAAc,KAAMT,GAAWP,IAC/BgB,GAAc,MAAOT,GAAWN,IAG3BpE,GAAQ,OAAQA,GAAM/9H,QAAU,EAAG+9H,IAAS,IAC7CmF,GAAcnF,GAAO6E,IAGzB,SAASod,GAAQ3sI,EAAO3Q,GACpBA,EAAM+hI,IAAenD,GAAuB,KAAhB,KAAOjuH,IAGvC,IAAK0qH,GAAQ,IAAKA,GAAM/9H,QAAU,EAAG+9H,IAAS,IAC1C+F,GAAc/F,GAAOiiB,IAYzB,SAASC,KACL,OAAO99I,KAAKm5H,OAAS,MAAQ,GAGjC,SAAS4kB,KACL,OAAO/9I,KAAKm5H,OAAS,6BAA+B,GAdxDwkB,GAAoBre,GAAW,gBAAgB,GAI/C3D,EAAe,IAAK,EAAG,EAAG,YAC1BA,EAAe,KAAM,EAAG,EAAG,YAY3B,IAAIqiB,GAAQ1kB,EAAO76H,UAwGnB,SAASw/I,GAAW/sI,GAChB,OAAO6/H,GAAoB,IAAR7/H,GAGvB,SAASgtI,KACL,OAAOnN,GAAY5rI,MAAM,KAAM3C,WAAW27I,YAG9C,SAASC,GAAmBpyI,GACxB,OAAOA,EA/GXgyI,GAAMtuI,IAAMA,GACZsuI,GAAMljB,SAAW4c,GACjBsG,GAAMptE,MAAQA,GACdotE,GAAMv1E,KAAOA,GACbu1E,GAAMhoC,MAAQA,GACdgoC,GAAMrtI,OAASA,GACfqtI,GAAMj/I,KAAOA,GACbi/I,GAAMzE,QAAUA,GAChByE,GAAM17I,GAAKA,GACX07I,GAAMxE,MAAQA,GACdwE,GAAM59I,IAAMs/H,GACZse,GAAMxD,UAAYA,GAClBwD,GAAMvH,QAAUA,GAChBuH,GAAMtH,SAAWA,GACjBsH,GAAMlG,UAAYA,GAClBkG,GAAM9F,OAASA,GACf8F,GAAM5F,cAAgBA,GACtB4F,GAAM3F,eAAiBA,GACvB2F,GAAMpwE,QAAU0sE,GAChB0D,GAAMtE,KAAOA,GACbsE,GAAM/lG,OAASA,GACf+lG,GAAMjiB,WAAaA,GACnBiiB,GAAMpmI,IAAM66H,GACZuL,GAAMzhI,IAAMi2H,GACZwL,GAAMzD,aAAeA,GACrByD,GAAM79I,IAAMw/H,GACZqe,GAAMjoC,QAAUA,GAChBioC,GAAMzI,SAAWA,GACjByI,GAAMrhH,QAAUA,GAChBqhH,GAAM58I,SAAWA,GACjB48I,GAAMlF,OAASA,GACfkF,GAAMpF,YAAcA,GACpBoF,GAAMjF,QAAUA,GACM,qBAAX/7I,QAAwC,MAAdA,OAAOs8B,MACxC0kH,GAAMhhJ,OAAOs8B,IAAI,+BAAiC,WAC9C,MAAO,UAAYt5B,KAAK2Q,SAAW,MAG3CqtI,GAAMrtE,OAASA,GACfqtE,GAAMt/I,SAAWA,GACjBs/I,GAAM3D,KAAOA,GACb2D,GAAMz4G,QAAUA,GAChBy4G,GAAMvD,aAAeA,GACrBuD,GAAMhD,QAAUG,GAChB6C,GAAMK,UAAYjD,GAClB4C,GAAMM,QAAUjD,GAChB2C,GAAMO,QAAUjD,GAChB0C,GAAM/yB,KAAOia,GACb8Y,GAAM/e,WAAakG,GACnB6Y,GAAMtN,SAAW+L,GACjBuB,GAAMlB,YAAcH,GACpBqB,GAAMhzB,QAAUgzB,GAAM5K,SAAWiK,GACjCW,GAAMxjG,MAAQ6pF,GACd2Z,GAAMve,YAAc6E,GACpB0Z,GAAMhjG,KAAOgjG,GAAM3K,MAAQtM,GAC3BiX,GAAM1K,QAAU0K,GAAMQ,SAAWxX,GACjCgX,GAAMxX,YAAcuW,GACpBiB,GAAMS,gBAAkBxB,GACxBe,GAAMU,eAAiB9B,GACvBoB,GAAMW,sBAAwB9B,GAC9BmB,GAAM3jG,KAAOmjG,GACbQ,GAAMjzB,IAAMizB,GAAMzK,KAAOvK,GACzBgV,GAAM7wB,QAAU+b,GAChB8U,GAAM5wB,WAAa+b,GACnB6U,GAAM5X,UAAYqX,GAClBO,GAAMlzB,KAAOkzB,GAAMhU,MAAQe,GAC3BiT,GAAMnzB,OAASmzB,GAAM7T,QAAUuT,GAC/BM,GAAMpzB,OAASozB,GAAMzT,QAAUqT,GAC/BI,GAAMvzB,YAAcuzB,GAAMxK,aAAemK,GACzCK,GAAM5J,UAAYU,GAClBkJ,GAAMjnB,IAAMse,GACZ2I,GAAMrJ,MAAQW,GACd0I,GAAMG,UAAY3I,GAClBwI,GAAMtI,qBAAuBA,GAC7BsI,GAAMY,MAAQjJ,GACdqI,GAAMlI,QAAUA,GAChBkI,GAAMjI,YAAcA,GACpBiI,GAAMhI,MAAQA,GACdgI,GAAMzL,MAAQyD,GACdgI,GAAMa,SAAWf,GACjBE,GAAMc,SAAWf,GACjBC,GAAMe,MAAQr8I,EACV,kDACA86I,IAEJQ,GAAMpb,OAASlgI,EACX,mDACA2hI,IAEJ2Z,GAAM7K,MAAQzwI,EACV,iDACAwiI,IAEJ8Y,GAAM/E,KAAOv2I,EACT,2GACA0yI,IAEJ4I,GAAMgB,aAAet8I,EACjB,0GACAkzI,IAeJ,IAAIqJ,GAAU3kB,EAAO77H,UAuCrB,SAASygJ,GAAMvuI,EAAQ5Q,EAAOo/I,EAAOC,GACjC,IAAInnG,EAASk0F,KACTpV,EAAMH,IAAYz2H,IAAIi/I,EAAQr/I,GAClC,OAAOk4C,EAAOknG,GAAOpoB,EAAKpmH,GAG9B,SAAS0uI,GAAe1uI,EAAQ5Q,EAAOo/I,GAQnC,GAPI1hE,EAAS9sE,KACT5Q,EAAQ4Q,EACRA,OAASrT,GAGbqT,EAASA,GAAU,GAEN,MAAT5Q,EACA,OAAOm/I,GAAMvuI,EAAQ5Q,EAAOo/I,EAAO,SAGvC,IAAIpiJ,EACAuuH,EAAM,GACV,IAAKvuH,EAAI,EAAGA,EAAI,GAAIA,IAChBuuH,EAAIvuH,GAAKmiJ,GAAMvuI,EAAQ5T,EAAGoiJ,EAAO,SAErC,OAAO7zB,EAWX,SAASg0B,GAAiBC,EAAc5uI,EAAQ5Q,EAAOo/I,GACvB,mBAAjBI,GACH9hE,EAAS9sE,KACT5Q,EAAQ4Q,EACRA,OAASrT,GAGbqT,EAASA,GAAU,KAGnB5Q,EADA4Q,EAAS4uI,EAETA,GAAe,EAEX9hE,EAAS9sE,KACT5Q,EAAQ4Q,EACRA,OAASrT,GAGbqT,EAASA,GAAU,IAGvB,IAEI5T,EAFAk7C,EAASk0F,KACTv8H,EAAQ2vI,EAAetnG,EAAO0uF,MAAMd,IAAM,EAE1Cva,EAAM,GAEV,GAAa,MAATvrH,EACA,OAAOm/I,GAAMvuI,GAAS5Q,EAAQ6P,GAAS,EAAGuvI,EAAO,OAGrD,IAAKpiJ,EAAI,EAAGA,EAAI,EAAGA,IACfuuH,EAAIvuH,GAAKmiJ,GAAMvuI,GAAS5T,EAAI6S,GAAS,EAAGuvI,EAAO,OAEnD,OAAO7zB,EAGX,SAASk0B,GAAW7uI,EAAQ5Q,GACxB,OAAOs/I,GAAe1uI,EAAQ5Q,EAAO,UAGzC,SAAS0/I,GAAgB9uI,EAAQ5Q,GAC7B,OAAOs/I,GAAe1uI,EAAQ5Q,EAAO,eAGzC,SAAS2/I,GAAaH,EAAc5uI,EAAQ5Q,GACxC,OAAOu/I,GAAiBC,EAAc5uI,EAAQ5Q,EAAO,YAGzD,SAAS4/I,GAAkBJ,EAAc5uI,EAAQ5Q,GAC7C,OAAOu/I,GAAiBC,EAAc5uI,EAAQ5Q,EAAO,iBAGzD,SAAS6/I,GAAgBL,EAAc5uI,EAAQ5Q,GAC3C,OAAOu/I,GAAiBC,EAAc5uI,EAAQ5Q,EAAO,eA5HzDk/I,GAAQnkB,SAAWA,EACnBmkB,GAAQ3iB,eAAiBA,EACzB2iB,GAAQ7iB,YAAcA,EACtB6iB,GAAQnjB,QAAUA,EAClBmjB,GAAQ5M,SAAW+L,GACnBa,GAAQ5F,WAAa+E,GACrBa,GAAQnhB,aAAeA,EACvBmhB,GAAQ/gB,WAAaA,GACrB+gB,GAAQ9+I,IAAMA,EACd8+I,GAAQtE,KAAOD,GACfuE,GAAQ3B,UAAYvC,GACpBkE,GAAQ3N,gBAAkB4J,GAC1B+D,GAAQtD,cAAgBA,GACxBsD,GAAQ1D,cAAgBA,GACxB0D,GAAQpD,gBAAkBA,GAE1BoD,GAAQrc,OAASS,GACjB4b,GAAQtc,YAAca,GACtByb,GAAQlc,YAAckB,GACtBgb,GAAQnc,YAAcA,GACtBmc,GAAQpc,iBAAmBA,GAC3Boc,GAAQjkG,KAAO0rF,GACfuY,GAAQY,eAAiB/Y,GACzBmY,GAAQa,eAAiBjZ,GAEzBoY,GAAQzX,SAAWU,GACnB+W,GAAQ3X,YAAcgB,GACtB2W,GAAQ1X,cAAgBa,GACxB6W,GAAQ/X,cAAgB2B,GAExBoW,GAAQtX,cAAgBA,GACxBsX,GAAQvX,mBAAqBA,GAC7BuX,GAAQxX,iBAAmBA,GAE3BwX,GAAQvU,KAAOJ,GACf2U,GAAQnnB,SAAWkT,GA4FnBkB,GAAmB,KAAM,CACrByO,KAAM,CACF,CACIE,MAAO,aACPC,MAAO,IACPh+F,OAAQ,EACRh+C,KAAM,cACNm8I,OAAQ,KACRxuE,KAAM,MAEV,CACIouE,MAAO,aACPC,OAAO,IACPh+F,OAAQ,EACRh+C,KAAM,gBACNm8I,OAAQ,KACRxuE,KAAM,OAGd2+D,uBAAwB,uBACxBtP,QAAS,SAAU7lG,GACf,IAAI7sB,EAAI6sB,EAAS,GAWjB,OAAOA,GATgC,IAA/BkpG,GAAOlpG,EAAS,IAAO,IACjB,KACM,IAAN7sB,EACA,KACM,IAANA,EACA,KACM,IAANA,EACA,KACA,SAOtBktH,EAAMojB,KAAOh3I,EACT,wDACAwpI,IAEJ5V,EAAMypB,SAAWr9I,EACb,gEACAypI,IAGJ,IAAI6T,GAAU/pI,KAAK4B,IAEnB,SAASA,KACL,IAAIjX,EAAOZ,KAAK8gF,MAahB,OAXA9gF,KAAKyzI,cAAgBuM,GAAQhgJ,KAAKyzI,eAClCzzI,KAAK0zI,MAAQsM,GAAQhgJ,KAAK0zI,OAC1B1zI,KAAKsjI,QAAU0c,GAAQhgJ,KAAKsjI,SAE5B1iI,EAAK4yI,aAAewM,GAAQp/I,EAAK4yI,cACjC5yI,EAAK2pI,QAAUyV,GAAQp/I,EAAK2pI,SAC5B3pI,EAAKupI,QAAU6V,GAAQp/I,EAAKupI,SAC5BvpI,EAAKopI,MAAQgW,GAAQp/I,EAAKopI,OAC1BppI,EAAKgiI,OAASod,GAAQp/I,EAAKgiI,QAC3BhiI,EAAKuyI,MAAQ6M,GAAQp/I,EAAKuyI,OAEnBnzI,KAGX,SAASigJ,GAAchiE,EAAU/sE,EAAOtT,EAAOs+E,GAC3C,IAAI/4E,EAAQ8vI,GAAe/hI,EAAOtT,GAMlC,OAJAqgF,EAASw1D,eAAiBv3D,EAAY/4E,EAAMswI,cAC5Cx1D,EAASy1D,OAASx3D,EAAY/4E,EAAMuwI,MACpCz1D,EAASqlD,SAAWpnD,EAAY/4E,EAAMmgI,QAE/BrlD,EAAS01D,UAIpB,SAASuM,GAAMhvI,EAAOtT,GAClB,OAAOqiJ,GAAcjgJ,KAAMkR,EAAOtT,EAAO,GAI7C,SAASuiJ,GAAWjvI,EAAOtT,GACvB,OAAOqiJ,GAAcjgJ,KAAMkR,EAAOtT,GAAQ,GAG9C,SAASwiJ,GAAQnqH,GACb,OAAIA,EAAS,EACFhgB,KAAK8mD,MAAM9mC,GAEXhgB,KAAKq+C,KAAKr+B,GAIzB,SAAS0/D,KACL,IAII40C,EACAJ,EACAH,EACAmJ,EACAkN,EARA7M,EAAexzI,KAAKyzI,cACpBF,EAAOvzI,KAAK0zI,MACZ9Q,EAAS5iI,KAAKsjI,QACd1iI,EAAOZ,KAAK8gF,MAgDhB,OArCS0yD,GAAgB,GAAKD,GAAQ,GAAK3Q,GAAU,GAC5C4Q,GAAgB,GAAKD,GAAQ,GAAK3Q,GAAU,IAGjD4Q,GAAuD,MAAvC4M,GAAQE,GAAa1d,GAAU2Q,GAC/CA,EAAO,EACP3Q,EAAS,GAKbhiI,EAAK4yI,aAAeA,EAAe,IAEnCjJ,EAAUrL,GAASsU,EAAe,KAClC5yI,EAAK2pI,QAAUA,EAAU,GAEzBJ,EAAUjL,GAASqL,EAAU,IAC7B3pI,EAAKupI,QAAUA,EAAU,GAEzBH,EAAQ9K,GAASiL,EAAU,IAC3BvpI,EAAKopI,MAAQA,EAAQ,GAErBuJ,GAAQrU,GAAS8K,EAAQ,IAIzBpH,GADAyd,EAAiBnhB,GAASqhB,GAAahN,IAEvCA,GAAQ6M,GAAQE,GAAaD,IAG7BlN,EAAQjU,GAAS0D,EAAS,IAC1BA,GAAU,GAEVhiI,EAAK2yI,KAAOA,EACZ3yI,EAAKgiI,OAASA,EACdhiI,EAAKuyI,MAAQA,EAENnzI,KAGX,SAASugJ,GAAahN,GAGlB,OAAe,KAAPA,EAAe,OAG3B,SAAS+M,GAAa1d,GAElB,OAAiB,OAATA,EAAmB,KAG/B,SAAS4d,GAAGhiB,GACR,IAAKx+H,KAAK4tE,UACN,OAAOwgB,IAEX,IAAImlD,EACA3Q,EACA4Q,EAAexzI,KAAKyzI,cAIxB,GAAc,WAFdjV,EAAQD,GAAeC,KAEY,YAAVA,GAAiC,SAAVA,EAG5C,OAFA+U,EAAOvzI,KAAK0zI,MAAQF,EAAe,MACnC5Q,EAAS5iI,KAAKsjI,QAAUid,GAAahN,GAC7B/U,GACJ,IAAK,QACD,OAAOoE,EACX,IAAK,UACD,OAAOA,EAAS,EACpB,IAAK,OACD,OAAOA,EAAS,QAKxB,OADA2Q,EAAOvzI,KAAK0zI,MAAQz9H,KAAKuH,MAAM8iI,GAAatgJ,KAAKsjI,UACzC9E,GACJ,IAAK,OACD,OAAO+U,EAAO,EAAIC,EAAe,OACrC,IAAK,MACD,OAAOD,EAAOC,EAAe,MACjC,IAAK,OACD,OAAc,GAAPD,EAAYC,EAAe,KACtC,IAAK,SACD,OAAc,KAAPD,EAAcC,EAAe,IACxC,IAAK,SACD,OAAc,MAAPD,EAAeC,EAAe,IAEzC,IAAK,cACD,OAAOv9H,KAAK8mD,MAAa,MAAPw2E,GAAgBC,EACtC,QACI,MAAM,IAAIl9G,MAAM,gBAAkBkoG,IAMlD,SAASiiB,KACL,OAAKzgJ,KAAK4tE,UAIN5tE,KAAKyzI,cACQ,MAAbzzI,KAAK0zI,MACJ1zI,KAAKsjI,QAAU,GAAM,OACK,QAA3BnE,GAAMn/H,KAAKsjI,QAAU,IANdl1C,IAUf,SAASsyD,GAAOC,GACZ,OAAO,WACH,OAAO3gJ,KAAKwgJ,GAAGG,IAIvB,IAAIC,GAAiBF,GAAO,MACxBG,GAAYH,GAAO,KACnBI,GAAYJ,GAAO,KACnBK,GAAUL,GAAO,KACjBM,GAASN,GAAO,KAChBO,GAAUP,GAAO,KACjBQ,GAAWR,GAAO,KAClBS,GAAaT,GAAO,KACpBU,GAAUV,GAAO,KAErB,SAASW,KACL,OAAOpO,GAAejzI,MAG1B,SAASshJ,GAAM9iB,GAEX,OADAA,EAAQD,GAAeC,GAChBx+H,KAAK4tE,UAAY5tE,KAAKw+H,EAAQ,OAASpwC,IAGlD,SAASmzD,GAAWziJ,GAChB,OAAO,WACH,OAAOkB,KAAK4tE,UAAY5tE,KAAK8gF,MAAMhiF,GAAQsvF,KAInD,IAAIolD,GAAe+N,GAAW,gBAC1BhX,GAAUgX,GAAW,WACrBpX,GAAUoX,GAAW,WACrBvX,GAAQuX,GAAW,SACnBhO,GAAOgO,GAAW,QAClB3e,GAAS2e,GAAW,UACpBpO,GAAQoO,GAAW,SAEvB,SAASlO,KACL,OAAOnU,GAASl/H,KAAKuzI,OAAS,GAGlC,IAAI/1H,GAAQvH,KAAKuH,MACbgkI,GAAa,CACT/jB,GAAI,GACJl7H,EAAG,GACH44B,EAAG,GACHF,EAAG,GACHle,EAAG,GACHwc,EAAG,KACHgC,EAAG,IAIX,SAASkmH,GAAkBz1I,EAAQiqB,EAAQ8nG,EAAeC,EAAU/lF,GAChE,OAAOA,EAAO6lF,aAAa7nG,GAAU,IAAK8nG,EAAe/xH,EAAQgyH,GAGrE,SAAS0jB,GAAeC,EAAgB5jB,EAAeyjB,EAAYvpG,GAC/D,IAAIgmC,EAAWg1D,GAAe0O,GAAgB9pI,MAC1C0yH,EAAU/sH,GAAMygE,EAASuiE,GAAG,MAC5BrW,EAAU3sH,GAAMygE,EAASuiE,GAAG,MAC5BxW,EAAQxsH,GAAMygE,EAASuiE,GAAG,MAC1BjN,EAAO/1H,GAAMygE,EAASuiE,GAAG,MACzB5d,EAASplH,GAAMygE,EAASuiE,GAAG,MAC3BnN,EAAQ71H,GAAMygE,EAASuiE,GAAG,MAC1BrN,EAAQ31H,GAAMygE,EAASuiE,GAAG,MAC1Br3I,EACKohI,GAAWiX,EAAW/jB,IAAM,CAAC,IAAK8M,IAClCA,EAAUiX,EAAWj/I,GAAK,CAAC,KAAMgoI,IACjCJ,GAAW,GAAK,CAAC,MACjBA,EAAUqX,EAAWrmH,GAAK,CAAC,KAAMgvG,IACjCH,GAAS,GAAK,CAAC,MACfA,EAAQwX,EAAWvmH,GAAK,CAAC,KAAM+uG,IAC/BuJ,GAAQ,GAAK,CAAC,MACdA,EAAOiO,EAAWzkI,GAAK,CAAC,KAAMw2H,GAgBvC,OAdoB,MAAhBiO,EAAWjoH,IACXpwB,EACIA,GACCkqI,GAAS,GAAK,CAAC,MACfA,EAAQmO,EAAWjoH,GAAK,CAAC,KAAM85G,KAExClqI,EAAIA,GACCy5H,GAAU,GAAK,CAAC,MAChBA,EAAS4e,EAAWjmH,GAAK,CAAC,KAAMqnG,IAChCuQ,GAAS,GAAK,CAAC,MAAS,CAAC,KAAMA,IAElC,GAAKpV,EACP50H,EAAE,IAAMw4I,EAAiB,EACzBx4I,EAAE,GAAK8uC,EACAwpG,GAAkBt8I,MAAM,KAAMgE,GAIzC,SAASy4I,GAA2BC,GAChC,YAAyBvkJ,IAArBukJ,EACOrkI,GAEqB,oBAArBqkI,IACPrkI,GAAQqkI,GACD,GAMf,SAASC,GAA4BC,EAAWC,GAC5C,YAA8B1kJ,IAA1BkkJ,GAAWO,UAGDzkJ,IAAV0kJ,EACOR,GAAWO,IAEtBP,GAAWO,GAAaC,EACN,MAAdD,IACAP,GAAW/jB,GAAKukB,EAAQ,IAErB,IAGX,SAAS1I,GAAS2I,EAAeC,GAC7B,IAAKliJ,KAAK4tE,UACN,OAAO5tE,KAAK+7H,aAAaK,cAG7B,IAEInkF,EACA+iF,EAHAmnB,GAAa,EACbz3F,EAAK82F,GAyBT,MArB6B,kBAAlBS,IACPC,EAAgBD,EAChBA,GAAgB,GAES,mBAAlBA,IACPE,EAAaF,GAEY,kBAAlBC,IACPx3F,EAAKluD,OAAO8E,OAAO,GAAIkgJ,GAAYU,GACZ,MAAnBA,EAAc3/I,GAAiC,MAApB2/I,EAAczkB,KACzC/yE,EAAG+yE,GAAKykB,EAAc3/I,EAAI,IAKlCy4H,EAAS0mB,GAAe1hJ,MAAOmiJ,EAAYz3F,EAD3CzS,EAASj4C,KAAK+7H,cAGVomB,IACAnnB,EAAS/iF,EAAOimF,YAAYl+H,KAAMg7H,IAG/B/iF,EAAOohG,WAAWre,GAG7B,IAAIonB,GAAQnsI,KAAK4B,IAEjB,SAASo5F,GAAKj7F,GACV,OAAQA,EAAI,IAAMA,EAAI,KAAOA,EAGjC,SAASqsI,KAQL,IAAKriJ,KAAK4tE,UACN,OAAO5tE,KAAK+7H,aAAaK,cAG7B,IAGI+N,EACAH,EACAmJ,EACA5wI,EAEA+/I,EACAC,EACAC,EACAC,EAXAlY,EAAU6X,GAAMpiJ,KAAKyzI,eAAiB,IACtCF,EAAO6O,GAAMpiJ,KAAK0zI,OAClB9Q,EAASwf,GAAMpiJ,KAAKsjI,SAKpBzjH,EAAQ7f,KAAK6gJ,YAMjB,OAAKhhI,GAOLsqH,EAAUjL,GAASqL,EAAU,IAC7BP,EAAQ9K,GAASiL,EAAU,IAC3BI,GAAW,GACXJ,GAAW,GAGXgJ,EAAQjU,GAAS0D,EAAS,IAC1BA,GAAU,GAGVrgI,EAAIgoI,EAAUA,EAAQr1H,QAAQ,GAAGjL,QAAQ,SAAU,IAAM,GAEzDq4I,EAAYziI,EAAQ,EAAI,IAAM,GAC9B0iI,EAAStxC,GAAKjxG,KAAKsjI,WAAaryB,GAAKpxF,GAAS,IAAM,GACpD2iI,EAAWvxC,GAAKjxG,KAAK0zI,SAAWziC,GAAKpxF,GAAS,IAAM,GACpD4iI,EAAUxxC,GAAKjxG,KAAKyzI,iBAAmBxiC,GAAKpxF,GAAS,IAAM,GAGvDyiI,EACA,KACCnP,EAAQoP,EAASpP,EAAQ,IAAM,KAC/BvQ,EAAS2f,EAAS3f,EAAS,IAAM,KACjC2Q,EAAOiP,EAAWjP,EAAO,IAAM,KAC/BvJ,GAASG,GAAWI,EAAU,IAAM,KACpCP,EAAQyY,EAAUzY,EAAQ,IAAM,KAChCG,EAAUsY,EAAUtY,EAAU,IAAM,KACpCI,EAAUkY,EAAUlgJ,EAAI,IAAM,KA9BxB,MAkCf,IAAImgJ,GAAUxP,GAASz0I,UAwGvB,OAtGAikJ,GAAQ90E,QAAUmlE,GAClB2P,GAAQ7qI,IAAMA,GACd6qI,GAAQhzI,IAAMwwI,GACdwC,GAAQnN,SAAW4K,GACnBuC,GAAQlC,GAAKA,GACbkC,GAAQ9B,eAAiBA,GACzB8B,GAAQ7B,UAAYA,GACpB6B,GAAQ5B,UAAYA,GACpB4B,GAAQ3B,QAAUA,GAClB2B,GAAQ1B,OAASA,GACjB0B,GAAQzB,QAAUA,GAClByB,GAAQxB,SAAWA,GACnBwB,GAAQvB,WAAaA,GACrBuB,GAAQtB,QAAUA,GAClBsB,GAAQn9G,QAAUk7G,GAClBiC,GAAQ/O,QAAUh+C,GAClB+sD,GAAQ9xE,MAAQywE,GAChBqB,GAAQtiJ,IAAMkhJ,GACdoB,GAAQlP,aAAeA,GACvBkP,GAAQnY,QAAUA,GAClBmY,GAAQvY,QAAUA,GAClBuY,GAAQ1Y,MAAQA,GAChB0Y,GAAQnP,KAAOA,GACfmP,GAAQrP,MAAQA,GAChBqP,GAAQ9f,OAASA,GACjB8f,GAAQvP,MAAQA,GAChBuP,GAAQpJ,SAAWA,GACnBoJ,GAAQ9J,YAAcyJ,GACtBK,GAAQhkJ,SAAW2jJ,GACnBK,GAAQ/xE,OAAS0xE,GACjBK,GAAQzqG,OAASA,GACjByqG,GAAQ3mB,WAAaA,GAErB2mB,GAAQC,YAAcjgJ,EAClB,sFACA2/I,IAEJK,GAAQhJ,KAAOA,GAIf/d,EAAe,IAAK,EAAG,EAAG,QAC1BA,EAAe,IAAK,EAAG,EAAG,WAI1BoF,GAAc,IAAKL,IACnBK,GAAc,IAAKF,IACnBc,GAAc,KAAK,SAAUzwH,EAAO3Q,EAAOiQ,GACvCA,EAAOpT,GAAK,IAAI+Q,KAAyB,IAApB2C,WAAWI,OAEpCywH,GAAc,KAAK,SAAUzwH,EAAO3Q,EAAOiQ,GACvCA,EAAOpT,GAAK,IAAI+Q,KAAKgxH,GAAMjuH,OAK/BolH,EAAMz3F,QAAU,SAEhB03F,EAAgBwa,IAEhBza,EAAMrxH,GAAK+4I,GACX1nB,EAAM/5G,IAAMA,GACZ+5G,EAAM1+G,IAAMA,GACZ0+G,EAAMniF,IAAMA,GACZmiF,EAAMS,IAAMH,EACZN,EAAM+jB,KAAO4D,GACb3nB,EAAMsM,OAAS4c,GACflpB,EAAMK,OAASA,EACfL,EAAMr+E,OAASi0F,GACf5V,EAAMugB,QAAUle,EAChBrC,EAAMr4C,SAAWg1D,GACjB3c,EAAMkD,SAAWA,EACjBlD,EAAMkR,SAAWkY,GACjBppB,EAAM6nB,UAAYD,GAClB5nB,EAAMyF,WAAaoQ,GACnB7V,EAAMsd,WAAaA,GACnBtd,EAAMqM,YAAc8c,GACpBnpB,EAAMgR,YAAcsY,GACpBtpB,EAAM8V,aAAeA,GACrB9V,EAAMgW,aAAeA,GACrBhW,EAAMgV,QAAUkB,GAChBlW,EAAMiR,cAAgBoY,GACtBrpB,EAAMiI,eAAiBA,GACvBjI,EAAMssB,qBAAuBhB,GAC7BtrB,EAAMusB,sBAAwBf,GAC9BxrB,EAAMshB,eAAiBJ,GACvBlhB,EAAM73H,UAAYu/I,GAGlB1nB,EAAMwsB,UAAY,CACdC,eAAgB,mBAChBC,uBAAwB,sBACxBC,kBAAmB,0BACnB/gB,KAAM,aACNghB,KAAM,QACNC,aAAc,WACdC,QAAS,eACT7gB,KAAM,aACNN,MAAO,WAGJ3L,EA5hLyEH,K,qCCPpF,IAAIjzH,EAAc9G,EAAQ,IAkC1BF,EAAOC,QAJP,SAAiByB,EAAOuF,GACtB,OAAOD,EAAYtF,EAAOuF,K,gBC/B5B,IAAIsC,EAAQrJ,EAAQ,IAChBinJ,EAAcjnJ,EAAQ,IACtBknJ,EAAalnJ,EAAQ,IACrBmnJ,EAAennJ,EAAQ,KACvBonJ,EAASpnJ,EAAQ,KACjBO,EAAUP,EAAQ,GAClBmL,EAAWnL,EAAQ,IACnByL,EAAezL,EAAQ,IAMvBqnJ,EAAU,qBACVC,EAAW,iBACXC,EAAY,kBAMZ1iJ,EAHczE,OAAOiC,UAGQwC,eA6DjC/E,EAAOC,QA7CP,SAAyBgC,EAAQgF,EAAOC,EAASC,EAAY+C,EAAW9C,GACtE,IAAIsgJ,EAAWjnJ,EAAQwB,GACnB0lJ,EAAWlnJ,EAAQwG,GACnB2gJ,EAASF,EAAWF,EAAWF,EAAOrlJ,GACtC4lJ,EAASF,EAAWH,EAAWF,EAAOrgJ,GAKtC6gJ,GAHJF,EAASA,GAAUL,EAAUE,EAAYG,IAGhBH,EACrBM,GAHJF,EAASA,GAAUN,EAAUE,EAAYI,IAGhBJ,EACrBO,EAAYJ,GAAUC,EAE1B,GAAIG,GAAa38I,EAASpJ,GAAS,CACjC,IAAKoJ,EAASpE,GACZ,OAAO,EAETygJ,GAAW,EACXI,GAAW,EAEb,GAAIE,IAAcF,EAEhB,OADA1gJ,IAAUA,EAAQ,IAAImC,GACdm+I,GAAY/7I,EAAa1J,GAC7BklJ,EAAYllJ,EAAQgF,EAAOC,EAASC,EAAY+C,EAAW9C,GAC3DggJ,EAAWnlJ,EAAQgF,EAAO2gJ,EAAQ1gJ,EAASC,EAAY+C,EAAW9C,GAExE,KArDyB,EAqDnBF,GAAiC,CACrC,IAAI+gJ,EAAeH,GAAY/iJ,EAAetC,KAAKR,EAAQ,eACvDimJ,EAAeH,GAAYhjJ,EAAetC,KAAKwE,EAAO,eAE1D,GAAIghJ,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAehmJ,EAAOP,QAAUO,EAC/CmmJ,EAAeF,EAAejhJ,EAAMvF,QAAUuF,EAGlD,OADAG,IAAUA,EAAQ,IAAImC,GACfW,EAAUi+I,EAAcC,EAAclhJ,EAASC,EAAYC,IAGtE,QAAK4gJ,IAGL5gJ,IAAUA,EAAQ,IAAImC,GACf89I,EAAaplJ,EAAQgF,EAAOC,EAASC,EAAY+C,EAAW9C,M,cCnErEpH,EAAOC,QALP,WACE6D,KAAKa,SAAW,GAChBb,KAAK0F,KAAO,I,gBCTd,IAAI6+I,EAAenoJ,EAAQ,IAMvB+N,EAHavN,MAAM6B,UAGC0L,OA4BxBjO,EAAOC,QAjBP,SAAyBiC,GACvB,IAAIwC,EAAOZ,KAAKa,SACZd,EAAQwkJ,EAAa3jJ,EAAMxC,GAE/B,QAAI2B,EAAQ,KAIRA,GADYa,EAAK/C,OAAS,EAE5B+C,EAAKw8D,MAELjzD,EAAOxL,KAAKiC,EAAMb,EAAO,KAEzBC,KAAK0F,MACA,K,gBC/BT,IAAI6+I,EAAenoJ,EAAQ,IAkB3BF,EAAOC,QAPP,SAAsBiC,GACpB,IAAIwC,EAAOZ,KAAKa,SACZd,EAAQwkJ,EAAa3jJ,EAAMxC,GAE/B,OAAO2B,EAAQ,OAAIzC,EAAYsD,EAAKb,GAAO,K,gBCf7C,IAAIwkJ,EAAenoJ,EAAQ,IAe3BF,EAAOC,QAJP,SAAsBiC,GACpB,OAAOmmJ,EAAavkJ,KAAKa,SAAUzC,IAAQ,I,gBCZ7C,IAAImmJ,EAAenoJ,EAAQ,IAyB3BF,EAAOC,QAbP,SAAsBiC,EAAKR,GACzB,IAAIgD,EAAOZ,KAAKa,SACZd,EAAQwkJ,EAAa3jJ,EAAMxC,GAQ/B,OANI2B,EAAQ,KACRC,KAAK0F,KACP9E,EAAKjD,KAAK,CAACS,EAAKR,KAEhBgD,EAAKb,GAAO,GAAKnC,EAEZoC,O,gBCtBT,IAAIH,EAAYzD,EAAQ,IAcxBF,EAAOC,QALP,WACE6D,KAAKa,SAAW,IAAIhB,EACpBG,KAAK0F,KAAO,I,cCMdxJ,EAAOC,QARP,SAAqBiC,GACnB,IAAIwC,EAAOZ,KAAKa,SACZE,EAASH,EAAI,OAAWxC,GAG5B,OADA4B,KAAK0F,KAAO9E,EAAK8E,KACV3E,I,cCDT7E,EAAOC,QAJP,SAAkBiC,GAChB,OAAO4B,KAAKa,SAAST,IAAIhC,K,cCG3BlC,EAAOC,QAJP,SAAkBiC,GAChB,OAAO4B,KAAKa,SAASR,IAAIjC,K,gBCV3B,IAAIyB,EAAYzD,EAAQ,IACpBmH,EAAMnH,EAAQ,IACd0H,EAAW1H,EAAQ,IA+BvBF,EAAOC,QAhBP,SAAkBiC,EAAKR,GACrB,IAAIgD,EAAOZ,KAAKa,SAChB,GAAID,aAAgBf,EAAW,CAC7B,IAAI2kJ,EAAQ5jJ,EAAKC,SACjB,IAAK0C,GAAQihJ,EAAM3mJ,OAAS4mJ,IAG1B,OAFAD,EAAM7mJ,KAAK,CAACS,EAAKR,IACjBoC,KAAK0F,OAAS9E,EAAK8E,KACZ1F,KAETY,EAAOZ,KAAKa,SAAW,IAAIiD,EAAS0gJ,GAItC,OAFA5jJ,EAAKT,IAAI/B,EAAKR,GACdoC,KAAK0F,KAAO9E,EAAK8E,KACV1F,O,gBC9BT,IAAI8H,EAAa1L,EAAQ,IACrBsoJ,EAAWtoJ,EAAQ,IACnBuJ,EAAWvJ,EAAQ,IACnBuoJ,EAAWvoJ,EAAQ,IASnBwoJ,EAAe,8BAGfC,EAAYnoJ,SAAS+B,UACrBuI,EAAcxK,OAAOiC,UAGrBqH,EAAe++I,EAAUnmJ,SAGzBuC,EAAiB+F,EAAY/F,eAG7B6jJ,EAAa9qB,OAAO,IACtBl0H,EAAanH,KAAKsC,GAAgBgJ,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhF/N,EAAOC,QARP,SAAsByB,GACpB,SAAK+H,EAAS/H,IAAU8mJ,EAAS9mJ,MAGnBkK,EAAWlK,GAASknJ,EAAaF,GAChC5lJ,KAAK2lJ,EAAS/mJ,M,cC3C/B,IAAIs9B,EAGJA,EAAK,WACJ,OAAOl7B,KADH,GAIL,IAECk7B,EAAIA,GAAK,IAAIx+B,SAAS,cAAb,GACR,MAAOsJ,GAEc,kBAAXsF,SAAqB4vB,EAAI5vB,QAOrCpP,EAAOC,QAAU++B,G,gBCnBjB,IAAIl+B,EAASZ,EAAQ,IAGjB4K,EAAcxK,OAAOiC,UAGrBwC,EAAiB+F,EAAY/F,eAO7B8jJ,EAAuB/9I,EAAYtI,SAGnCS,EAAiBnC,EAASA,EAAOoC,iBAAc9B,EA6BnDpB,EAAOC,QApBP,SAAmByB,GACjB,IAAIonJ,EAAQ/jJ,EAAetC,KAAKf,EAAOuB,GACnCyG,EAAMhI,EAAMuB,GAEhB,IACEvB,EAAMuB,QAAkB7B,EACxB,IAAI2nJ,GAAW,EACf,MAAOj/I,IAET,IAAIjF,EAASgkJ,EAAqBpmJ,KAAKf,GAQvC,OAPIqnJ,IACED,EACFpnJ,EAAMuB,GAAkByG,SAEjBhI,EAAMuB,IAGV4B,I,cCzCT,IAOIgkJ,EAPcvoJ,OAAOiC,UAOcC,SAavCxC,EAAOC,QAJP,SAAwByB,GACtB,OAAOmnJ,EAAqBpmJ,KAAKf,K,gBClBnC,IAAIsnJ,EAAa9oJ,EAAQ,IAGrB+oJ,EAAc,WAChB,IAAI3zE,EAAM,SAAS28D,KAAK+W,GAAcA,EAAWjjJ,MAAQijJ,EAAWjjJ,KAAKmjJ,UAAY,IACrF,OAAO5zE,EAAO,iBAAmBA,EAAO,GAFxB,GAgBlBt1E,EAAOC,QAJP,SAAkB4J,GAChB,QAASo/I,GAAeA,KAAcp/I,I,gBChBxC,IAGIm/I,EAHO9oJ,EAAQ,GAGG,sBAEtBF,EAAOC,QAAU+oJ,G,cCOjBhpJ,EAAOC,QAJP,SAAkBgC,EAAQC,GACxB,OAAiB,MAAVD,OAAiBb,EAAYa,EAAOC,K,gBCT7C,IAAIinJ,EAAOjpJ,EAAQ,IACfyD,EAAYzD,EAAQ,IACpBmH,EAAMnH,EAAQ,IAkBlBF,EAAOC,QATP,WACE6D,KAAK0F,KAAO,EACZ1F,KAAKa,SAAW,CACd,KAAQ,IAAIwkJ,EACZ,IAAO,IAAK9hJ,GAAO1D,GACnB,OAAU,IAAIwlJ,K,gBChBlB,IAAIC,EAAYlpJ,EAAQ,IACpBmpJ,EAAanpJ,EAAQ,IACrBopJ,EAAUppJ,EAAQ,IAClBqpJ,EAAUrpJ,EAAQ,IAClBspJ,EAAUtpJ,EAAQ,IAStB,SAASipJ,EAAKvlJ,GACZ,IAAIC,GAAS,EACTlC,EAAoB,MAAXiC,EAAkB,EAAIA,EAAQjC,OAG3C,IADAmC,KAAKC,UACIF,EAAQlC,GAAQ,CACvB,IAAIqC,EAAQJ,EAAQC,GACpBC,KAAKG,IAAID,EAAM,GAAIA,EAAM,KAK7BmlJ,EAAK5mJ,UAAUwB,MAAQqlJ,EACvBD,EAAK5mJ,UAAL,OAA2B8mJ,EAC3BF,EAAK5mJ,UAAU2B,IAAMolJ,EACrBH,EAAK5mJ,UAAU4B,IAAMolJ,EACrBJ,EAAK5mJ,UAAU0B,IAAMulJ,EAErBxpJ,EAAOC,QAAUkpJ,G,gBC/BjB,IAAI7kJ,EAAepE,EAAQ,IAc3BF,EAAOC,QALP,WACE6D,KAAKa,SAAWL,EAAeA,EAAa,MAAQ,GACpDR,KAAK0F,KAAO,I,cCKdxJ,EAAOC,QANP,SAAoBiC,GAClB,IAAI2C,EAASf,KAAKK,IAAIjC,WAAe4B,KAAKa,SAASzC,GAEnD,OADA4B,KAAK0F,MAAQ3E,EAAS,EAAI,EACnBA,I,gBCbT,IAAIP,EAAepE,EAAQ,IASvB6E,EAHczE,OAAOiC,UAGQwC,eAoBjC/E,EAAOC,QATP,SAAiBiC,GACf,IAAIwC,EAAOZ,KAAKa,SAChB,GAAIL,EAAc,CAChB,IAAIO,EAASH,EAAKxC,GAClB,MArBiB,8BAqBV2C,OAA4BzD,EAAYyD,EAEjD,OAAOE,EAAetC,KAAKiC,EAAMxC,GAAOwC,EAAKxC,QAAOd,I,gBC1BtD,IAAIkD,EAAepE,EAAQ,IAMvB6E,EAHczE,OAAOiC,UAGQwC,eAgBjC/E,EAAOC,QALP,SAAiBiC,GACf,IAAIwC,EAAOZ,KAAKa,SAChB,OAAOL,OAA8BlD,IAAdsD,EAAKxC,GAAsB6C,EAAetC,KAAKiC,EAAMxC,K,gBCnB9E,IAAIoC,EAAepE,EAAQ,IAsB3BF,EAAOC,QAPP,SAAiBiC,EAAKR,GACpB,IAAIgD,EAAOZ,KAAKa,SAGhB,OAFAb,KAAK0F,MAAQ1F,KAAKK,IAAIjC,GAAO,EAAI,EACjCwC,EAAKxC,GAAQoC,QAA0BlD,IAAVM,EAfV,4BAekDA,EAC9DoC,O,gBCnBT,IAAI2lJ,EAAavpJ,EAAQ,IAiBzBF,EAAOC,QANP,SAAwBiC,GACtB,IAAI2C,EAAS4kJ,EAAW3lJ,KAAM5B,GAAjB,OAAgCA,GAE7C,OADA4B,KAAK0F,MAAQ3E,EAAS,EAAI,EACnBA,I,cCAT7E,EAAOC,QAPP,SAAmByB,GACjB,IAAI4F,SAAc5F,EAClB,MAAgB,UAAR4F,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV5F,EACU,OAAVA,I,gBCXP,IAAI+nJ,EAAavpJ,EAAQ,IAezBF,EAAOC,QAJP,SAAqBiC,GACnB,OAAOunJ,EAAW3lJ,KAAM5B,GAAKgC,IAAIhC,K,gBCZnC,IAAIunJ,EAAavpJ,EAAQ,IAezBF,EAAOC,QAJP,SAAqBiC,GACnB,OAAOunJ,EAAW3lJ,KAAM5B,GAAKiC,IAAIjC,K,gBCZnC,IAAIunJ,EAAavpJ,EAAQ,IAqBzBF,EAAOC,QATP,SAAqBiC,EAAKR,GACxB,IAAIgD,EAAO+kJ,EAAW3lJ,KAAM5B,GACxBsH,EAAO9E,EAAK8E,KAIhB,OAFA9E,EAAKT,IAAI/B,EAAKR,GACdoC,KAAK0F,MAAQ9E,EAAK8E,MAAQA,EAAO,EAAI,EAC9B1F,O,gBClBT,IAAI8D,EAAW1H,EAAQ,IACnBwpJ,EAAcxpJ,EAAQ,IACtBypJ,EAAczpJ,EAAQ,IAU1B,SAAS6J,EAASoL,GAChB,IAAItR,GAAS,EACTlC,EAAmB,MAAVwT,EAAiB,EAAIA,EAAOxT,OAGzC,IADAmC,KAAKa,SAAW,IAAIiD,IACX/D,EAAQlC,GACfmC,KAAK0P,IAAI2B,EAAOtR,IAKpBkG,EAASxH,UAAUiR,IAAMzJ,EAASxH,UAAUd,KAAOioJ,EACnD3/I,EAASxH,UAAU4B,IAAMwlJ,EAEzB3pJ,EAAOC,QAAU8J,G,cCRjB/J,EAAOC,QALP,SAAqByB,GAEnB,OADAoC,KAAKa,SAASV,IAAIvC,EAbC,6BAcZoC,O,cCFT9D,EAAOC,QAJP,SAAqByB,GACnB,OAAOoC,KAAKa,SAASR,IAAIzC,K,cCY3B1B,EAAOC,QAZP,SAAmBoE,EAAOulJ,GAIxB,IAHA,IAAI/lJ,GAAS,EACTlC,EAAkB,MAAT0C,EAAgB,EAAIA,EAAM1C,SAE9BkC,EAAQlC,GACf,GAAIioJ,EAAUvlJ,EAAMR,GAAQA,EAAOQ,GACjC,OAAO,EAGX,OAAO,I,cCPTrE,EAAOC,QAJP,SAAkBikG,EAAOhiG,GACvB,OAAOgiG,EAAM//F,IAAIjC,K,gBCTnB,IAAIpB,EAASZ,EAAQ,IACjB2pJ,EAAa3pJ,EAAQ,IACrBkE,EAAKlE,EAAQ,IACbinJ,EAAcjnJ,EAAQ,IACtB4pJ,EAAa5pJ,EAAQ,KACrB6pJ,EAAa7pJ,EAAQ,KAqBrB8pJ,EAAclpJ,EAASA,EAAOyB,eAAYnB,EAC1C6oJ,EAAgBD,EAAcA,EAAY3gH,aAAUjoC,EAoFxDpB,EAAOC,QAjEP,SAAoBgC,EAAQgF,EAAOyC,EAAKxC,EAASC,EAAY+C,EAAW9C,GACtE,OAAQsC,GACN,IAzBc,oBA0BZ,GAAKzH,EAAOioJ,YAAcjjJ,EAAMijJ,YAC3BjoJ,EAAOkoJ,YAAcljJ,EAAMkjJ,WAC9B,OAAO,EAETloJ,EAASA,EAAOmoJ,OAChBnjJ,EAAQA,EAAMmjJ,OAEhB,IAlCiB,uBAmCf,QAAKnoJ,EAAOioJ,YAAcjjJ,EAAMijJ,aAC3BhgJ,EAAU,IAAI2/I,EAAW5nJ,GAAS,IAAI4nJ,EAAW5iJ,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAO7C,GAAInC,GAASgF,GAEtB,IAxDW,iBAyDT,OAAOhF,EAAOW,MAAQqE,EAAMrE,MAAQX,EAAO4zD,SAAW5uD,EAAM4uD,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAO5zD,GAAWgF,EAAQ,GAE5B,IAjES,eAkEP,IAAI8jE,EAAU++E,EAEhB,IAjES,eAkEP,IAAI3/I,EA5EiB,EA4ELjD,EAGhB,GAFA6jE,IAAYA,EAAUg/E,GAElB9nJ,EAAOuH,MAAQvC,EAAMuC,OAASW,EAChC,OAAO,EAGT,IAAIqmF,EAAUppF,EAAMlD,IAAIjC,GACxB,GAAIuuF,EACF,OAAOA,GAAWvpF,EAEpBC,GAtFuB,EAyFvBE,EAAMnD,IAAIhC,EAAQgF,GAClB,IAAIpC,EAASsiJ,EAAYp8E,EAAQ9oE,GAAS8oE,EAAQ9jE,GAAQC,EAASC,EAAY+C,EAAW9C,GAE1F,OADAA,EAAK,OAAWnF,GACT4C,EAET,IAnFY,kBAoFV,GAAIolJ,EACF,OAAOA,EAAcxnJ,KAAKR,IAAWgoJ,EAAcxnJ,KAAKwE,GAG9D,OAAO,I,gBC5GT,IAGI4iJ,EAHO3pJ,EAAQ,GAGG2pJ,WAEtB7pJ,EAAOC,QAAU4pJ,G,cCYjB7pJ,EAAOC,QAVP,SAAoBwE,GAClB,IAAIZ,GAAS,EACTgB,EAASnE,MAAM+D,EAAI+E,MAKvB,OAHA/E,EAAIoB,SAAQ,SAASnE,EAAOQ,GAC1B2C,IAAShB,GAAS,CAAC3B,EAAKR,MAEnBmD,I,cCGT7E,EAAOC,QAVP,SAAoBgE,GAClB,IAAIJ,GAAS,EACTgB,EAASnE,MAAMuD,EAAIuF,MAKvB,OAHAvF,EAAI4B,SAAQ,SAASnE,GACnBmD,IAAShB,GAASnC,KAEbmD,I,gBCdT,IAAIwlJ,EAAanqJ,EAAQ,KASrB6E,EAHczE,OAAOiC,UAGQwC,eAgFjC/E,EAAOC,QAjEP,SAAsBgC,EAAQgF,EAAOC,EAASC,EAAY+C,EAAW9C,GACnE,IAAI+C,EAtBqB,EAsBTjD,EACZojJ,EAAWD,EAAWpoJ,GACtBsoJ,EAAYD,EAAS3oJ,OAIzB,GAAI4oJ,GAHWF,EAAWpjJ,GACDtF,SAEMwI,EAC7B,OAAO,EAGT,IADA,IAAItG,EAAQ0mJ,EACL1mJ,KAAS,CACd,IAAI3B,EAAMooJ,EAASzmJ,GACnB,KAAMsG,EAAYjI,KAAO+E,EAAQlC,EAAetC,KAAKwE,EAAO/E,IAC1D,OAAO,EAIX,IAAIsoJ,EAAapjJ,EAAMlD,IAAIjC,GACvBsI,EAAanD,EAAMlD,IAAI+C,GAC3B,GAAIujJ,GAAcjgJ,EAChB,OAAOigJ,GAAcvjJ,GAASsD,GAActI,EAE9C,IAAI4C,GAAS,EACbuC,EAAMnD,IAAIhC,EAAQgF,GAClBG,EAAMnD,IAAIgD,EAAOhF,GAGjB,IADA,IAAIwoJ,EAAWtgJ,IACNtG,EAAQ0mJ,GAAW,CAE1B,IAAIG,EAAWzoJ,EADfC,EAAMooJ,EAASzmJ,IAEX6G,EAAWzD,EAAM/E,GAErB,GAAIiF,EACF,IAAIwD,EAAWR,EACXhD,EAAWuD,EAAUggJ,EAAUxoJ,EAAK+E,EAAOhF,EAAQmF,GACnDD,EAAWujJ,EAAUhgJ,EAAUxI,EAAKD,EAAQgF,EAAOG,GAGzD,UAAmBhG,IAAbuJ,EACG+/I,IAAahgJ,GAAYR,EAAUwgJ,EAAUhgJ,EAAUxD,EAASC,EAAYC,GAC7EuD,GACD,CACL9F,GAAS,EACT,MAEF4lJ,IAAaA,EAAkB,eAAPvoJ,GAE1B,GAAI2C,IAAW4lJ,EAAU,CACvB,IAAIE,EAAU1oJ,EAAOU,YACjBioJ,EAAU3jJ,EAAMtE,YAGhBgoJ,GAAWC,KACV,gBAAiB3oJ,MAAU,gBAAiBgF,IACzB,mBAAX0jJ,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvD/lJ,GAAS,GAKb,OAFAuC,EAAK,OAAWnF,GAChBmF,EAAK,OAAWH,GACTpC,I,gBCtFT,IAAIgmJ,EAAiB3qJ,EAAQ,KACzB4qJ,EAAa5qJ,EAAQ,KACrB6F,EAAO7F,EAAQ,IAanBF,EAAOC,QAJP,SAAoBgC,GAClB,OAAO4oJ,EAAe5oJ,EAAQ8D,EAAM+kJ,K,gBCZtC,IAAIC,EAAY7qJ,EAAQ,KACpBO,EAAUP,EAAQ,GAkBtBF,EAAOC,QALP,SAAwBgC,EAAQ+oJ,EAAUC,GACxC,IAAIpmJ,EAASmmJ,EAAS/oJ,GACtB,OAAOxB,EAAQwB,GAAU4C,EAASkmJ,EAAUlmJ,EAAQomJ,EAAYhpJ,M,cCGlEjC,EAAOC,QAXP,SAAmBoE,EAAO8Q,GAKxB,IAJA,IAAItR,GAAS,EACTlC,EAASwT,EAAOxT,OAChBi/C,EAASv8C,EAAM1C,SAEVkC,EAAQlC,GACf0C,EAAMu8C,EAAS/8C,GAASsR,EAAOtR,GAEjC,OAAOQ,I,gBChBT,IAAI6mJ,EAAchrJ,EAAQ,KACtBirJ,EAAYjrJ,EAAQ,KAMpB+E,EAHc3E,OAAOiC,UAGc0C,qBAGnCmmJ,EAAmB9qJ,OAAOwE,sBAS1BgmJ,EAAcM,EAA+B,SAASnpJ,GACxD,OAAc,MAAVA,EACK,IAETA,EAAS3B,OAAO2B,GACTipJ,EAAYE,EAAiBnpJ,IAAS,SAAS+nE,GACpD,OAAO/kE,EAAqBxC,KAAKR,EAAQ+nE,QANRmhF,EAUrCnrJ,EAAOC,QAAU6qJ,G,cCLjB9qJ,EAAOC,QAfP,SAAqBoE,EAAOulJ,GAM1B,IALA,IAAI/lJ,GAAS,EACTlC,EAAkB,MAAT0C,EAAgB,EAAIA,EAAM1C,OACnC0pJ,EAAW,EACXxmJ,EAAS,KAEJhB,EAAQlC,GAAQ,CACvB,IAAID,EAAQ2C,EAAMR,GACd+lJ,EAAUloJ,EAAOmC,EAAOQ,KAC1BQ,EAAOwmJ,KAAc3pJ,GAGzB,OAAOmD,I,cCCT7E,EAAOC,QAJP,WACE,MAAO,K,gBCnBT,IAAIqrJ,EAAYprJ,EAAQ,KACpB6K,EAAc7K,EAAQ,IACtBO,EAAUP,EAAQ,GAClBmL,EAAWnL,EAAQ,IACnBqrJ,EAAUrrJ,EAAQ,IAClByL,EAAezL,EAAQ,IAMvB6E,EAHczE,OAAOiC,UAGQwC,eAqCjC/E,EAAOC,QA3BP,SAAuByB,EAAO8pJ,GAC5B,IAAIC,EAAQhrJ,EAAQiB,GAChBgqJ,GAASD,GAAS1gJ,EAAYrJ,GAC9BiqJ,GAAUF,IAAUC,GAASrgJ,EAAS3J,GACtCkqJ,GAAUH,IAAUC,IAAUC,GAAUhgJ,EAAajK,GACrDmqJ,EAAcJ,GAASC,GAASC,GAAUC,EAC1C/mJ,EAASgnJ,EAAcP,EAAU5pJ,EAAMC,OAAQ2D,QAAU,GACzD3D,EAASkD,EAAOlD,OAEpB,IAAK,IAAIO,KAAOR,GACT8pJ,IAAazmJ,EAAetC,KAAKf,EAAOQ,IACvC2pJ,IAEQ,UAAP3pJ,GAECypJ,IAAkB,UAAPzpJ,GAA0B,UAAPA,IAE9B0pJ,IAAkB,UAAP1pJ,GAA0B,cAAPA,GAA8B,cAAPA,IAEtDqpJ,EAAQrpJ,EAAKP,KAElBkD,EAAOpD,KAAKS,GAGhB,OAAO2C,I,cC1BT7E,EAAOC,QAVP,SAAmBqC,EAAGwpJ,GAIpB,IAHA,IAAIjoJ,GAAS,EACTgB,EAASnE,MAAM4B,KAEVuB,EAAQvB,GACfuC,EAAOhB,GAASioJ,EAASjoJ,GAE3B,OAAOgB,I,gBChBT,IAAIqD,EAAahI,EAAQ,GACrB6G,EAAe7G,EAAQ,GAgB3BF,EAAOC,QAJP,SAAyByB,GACvB,OAAOqF,EAAarF,IAVR,sBAUkBwG,EAAWxG,K,cCG3C1B,EAAOC,QAJP,WACE,OAAO,I,gBCdT,IAAIiI,EAAahI,EAAQ,GACrB2L,EAAW3L,EAAQ,IACnB6G,EAAe7G,EAAQ,GA8BvB6rJ,EAAiB,GACrBA,EAZiB,yBAYYA,EAXZ,yBAYjBA,EAXc,sBAWYA,EAVX,uBAWfA,EAVe,uBAUYA,EATZ,uBAUfA,EATsB,8BASYA,EARlB,wBAShBA,EARgB,yBAQY,EAC5BA,EAjCc,sBAiCYA,EAhCX,kBAiCfA,EApBqB,wBAoBYA,EAhCnB,oBAiCdA,EApBkB,qBAoBYA,EAhChB,iBAiCdA,EAhCe,kBAgCYA,EA/Bb,qBAgCdA,EA/Ba,gBA+BYA,EA9BT,mBA+BhBA,EA9BgB,mBA8BYA,EA7BZ,mBA8BhBA,EA7Ba,gBA6BYA,EA5BT,mBA6BhBA,EA5BiB,qBA4BY,EAc7B/rJ,EAAOC,QALP,SAA0ByB,GACxB,OAAOqF,EAAarF,IAClBmK,EAASnK,EAAMC,WAAaoqJ,EAAe7jJ,EAAWxG,M,cC3C1D1B,EAAOC,QANP,SAAmB4J,GACjB,OAAO,SAASnI,GACd,OAAOmI,EAAKnI,M,iBCThB,gBAAIvB,EAAaD,EAAQ,IAGrB+K,EAA4ChL,IAAYA,EAAQiL,UAAYjL,EAG5EkL,EAAaF,GAAgC,iBAAVjL,GAAsBA,IAAWA,EAAOkL,UAAYlL,EAMvFgsJ,EAHgB7gJ,GAAcA,EAAWlL,UAAYgL,GAGtB9K,EAAWi2B,QAG1C3qB,EAAY,WACd,IAEE,IAAIunG,EAAQ7nG,GAAcA,EAAWjL,SAAWiL,EAAWjL,QAAQ,QAAQ8yG,MAE3E,OAAIA,GAKGg5C,GAAeA,EAAY9iF,SAAW8iF,EAAY9iF,QAAQ,QACjE,MAAOp/D,KAXK,GAchB9J,EAAOC,QAAUwL,I,qCC7BjB,IAAIwgJ,EAAc/rJ,EAAQ,KACtBgsJ,EAAahsJ,EAAQ,KAMrB6E,EAHczE,OAAOiC,UAGQwC,eAsBjC/E,EAAOC,QAbP,SAAkBgC,GAChB,IAAKgqJ,EAAYhqJ,GACf,OAAOiqJ,EAAWjqJ,GAEpB,IAAI4C,EAAS,GACb,IAAK,IAAI3C,KAAO5B,OAAO2B,GACjB8C,EAAetC,KAAKR,EAAQC,IAAe,eAAPA,GACtC2C,EAAOpD,KAAKS,GAGhB,OAAO2C,I,cCzBT,IAAIiG,EAAcxK,OAAOiC,UAgBzBvC,EAAOC,QAPP,SAAqByB,GACnB,IAAIyqJ,EAAOzqJ,GAASA,EAAMiB,YAG1B,OAAOjB,KAFqB,mBAARyqJ,GAAsBA,EAAK5pJ,WAAcuI,K,gBCZ/D,IAGIohJ,EAHUhsJ,EAAQ,IAGLksJ,CAAQ9rJ,OAAOyF,KAAMzF,QAEtCN,EAAOC,QAAUisJ,G,cCSjBlsJ,EAAOC,QANP,SAAiB4J,EAAMwiJ,GACrB,OAAO,SAAS5jJ,GACd,OAAOoB,EAAKwiJ,EAAU5jJ,O,gBCV1B,IAAI6jJ,EAAWpsJ,EAAQ,KACnBmH,EAAMnH,EAAQ,IACd0I,EAAU1I,EAAQ,KAClBiN,EAAMjN,EAAQ,KACd81D,EAAU91D,EAAQ,KAClBgI,EAAahI,EAAQ,GACrBuoJ,EAAWvoJ,EAAQ,IAGnBqsJ,EAAS,eAETC,EAAa,mBACbC,EAAS,eACTC,EAAa,mBAEbC,EAAc,oBAGdC,EAAqBnE,EAAS6D,GAC9BO,EAAgBpE,EAASphJ,GACzBylJ,EAAoBrE,EAAS7/I,GAC7BmkJ,EAAgBtE,EAASt7I,GACzB6/I,EAAoBvE,EAASzyF,GAS7BsxF,EAASp/I,GAGRokJ,GAAYhF,EAAO,IAAIgF,EAAS,IAAIW,YAAY,MAAQN,GACxDtlJ,GAAOigJ,EAAO,IAAIjgJ,IAAQklJ,GAC1B3jJ,GAAW0+I,EAAO1+I,EAAQP,YAAcmkJ,GACxCr/I,GAAOm6I,EAAO,IAAIn6I,IAAQs/I,GAC1Bz2F,GAAWsxF,EAAO,IAAItxF,IAAY02F,KACrCpF,EAAS,SAAS5lJ,GAChB,IAAImD,EAASqD,EAAWxG,GACpByqJ,EA/BQ,mBA+BDtnJ,EAAsBnD,EAAMiB,iBAAcvB,EACjD8rJ,EAAaf,EAAO1D,EAAS0D,GAAQ,GAEzC,GAAIe,EACF,OAAQA,GACN,KAAKN,EAAoB,OAAOD,EAChC,KAAKE,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAC/B,KAAKO,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAGnC,OAAO7nJ,IAIX7E,EAAOC,QAAUqnJ,G,gBCzDjB,IAIIgF,EAJYpsJ,EAAQ,EAITqE,CAHJrE,EAAQ,GAGY,YAE/BF,EAAOC,QAAUqsJ,G,gBCNjB,IAII1jJ,EAJY1I,EAAQ,EAIVqE,CAHHrE,EAAQ,GAGW,WAE9BF,EAAOC,QAAU2I,G,gBCNjB,IAIIuE,EAJYjN,EAAQ,EAIdqE,CAHCrE,EAAQ,GAGO,OAE1BF,EAAOC,QAAUkN,G,gBCNjB,IAII6oD,EAJY91D,EAAQ,EAIVqE,CAHHrE,EAAQ,GAGW,WAE9BF,EAAOC,QAAU+1D,G,gBCNjB,IAAIm3F,EAAkBjtJ,EAAQ,KA+B1BktJ,EA9BmBltJ,EAAQ,IA8BnBmtJ,EAAiB,SAASxoJ,EAAQnD,EAAOQ,GACnDirJ,EAAgBtoJ,EAAQ3C,EAAKR,MAG/B1B,EAAOC,QAAUmtJ,G,gBCnCjB,IAAIzmJ,EAAiBzG,EAAQ,KAwB7BF,EAAOC,QAbP,SAAyBgC,EAAQC,EAAKR,GACzB,aAAPQ,GAAsByE,EACxBA,EAAe1E,EAAQC,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASR,EACT,UAAY,IAGdO,EAAOC,GAAOR,I,gBCpBlB,IAAI6C,EAAYrE,EAAQ,GAEpByG,EAAkB,WACpB,IACE,IAAIkD,EAAOtF,EAAUjE,OAAQ,kBAE7B,OADAuJ,EAAK,GAAI,GAAI,IACNA,EACP,MAAOC,KALW,GAQtB9J,EAAOC,QAAU0G,G,gBCVjB,IAAI2mJ,EAAkBptJ,EAAQ,KAC1BqtJ,EAAiBrtJ,EAAQ,KACzBstJ,EAAettJ,EAAQ,KACvBO,EAAUP,EAAQ,GAmBtBF,EAAOC,QATP,SAA0BijJ,EAAQuK,GAChC,OAAO,SAASt5C,EAAY23C,GAC1B,IAAIjiJ,EAAOpJ,EAAQ0zG,GAAcm5C,EAAkBC,EAC/CG,EAAcD,EAAcA,IAAgB,GAEhD,OAAO5jJ,EAAKsqG,EAAY+uC,EAAQsK,EAAa1B,EAAU,GAAI4B,M,cCG/D1tJ,EAAOC,QAXP,SAAyBoE,EAAO6+I,EAAQ4I,EAAU4B,GAIhD,IAHA,IAAI7pJ,GAAS,EACTlC,EAAkB,MAAT0C,EAAgB,EAAIA,EAAM1C,SAE9BkC,EAAQlC,GAAQ,CACvB,IAAID,EAAQ2C,EAAMR,GAClBq/I,EAAOwK,EAAahsJ,EAAOoqJ,EAASpqJ,GAAQ2C,GAE9C,OAAOqpJ,I,gBClBT,IAAIC,EAAWztJ,EAAQ,KAoBvBF,EAAOC,QAPP,SAAwBk0G,EAAY+uC,EAAQ4I,EAAU4B,GAIpD,OAHAC,EAASx5C,GAAY,SAASzyG,EAAOQ,EAAKiyG,GACxC+uC,EAAOwK,EAAahsJ,EAAOoqJ,EAASpqJ,GAAQyyG,MAEvCu5C,I,gBCjBT,IAAIE,EAAa1tJ,EAAQ,KAWrBytJ,EAViBztJ,EAAQ,IAUd2tJ,CAAeD,GAE9B5tJ,EAAOC,QAAU0tJ,G,gBCbjB,IAAIG,EAAU5tJ,EAAQ,KAClB6F,EAAO7F,EAAQ,IAcnBF,EAAOC,QAJP,SAAoBgC,EAAQ6pJ,GAC1B,OAAO7pJ,GAAU6rJ,EAAQ7rJ,EAAQ6pJ,EAAU/lJ,K,gBCZ7C,IAaI+nJ,EAbgB5tJ,EAAQ,IAad6tJ,GAEd/tJ,EAAOC,QAAU6tJ,G,cCSjB9tJ,EAAOC,QAjBP,SAAuB+tJ,GACrB,OAAO,SAAS/rJ,EAAQ6pJ,EAAUd,GAMhC,IALA,IAAInnJ,GAAS,EACT6hE,EAAWplE,OAAO2B,GAClBuO,EAAQw6I,EAAS/oJ,GACjBN,EAAS6O,EAAM7O,OAEZA,KAAU,CACf,IAAIO,EAAMsO,EAAMw9I,EAAYrsJ,IAAWkC,GACvC,IAA+C,IAA3CioJ,EAASpmF,EAASxjE,GAAMA,EAAKwjE,GAC/B,MAGJ,OAAOzjE,K,gBCpBX,IAAI8F,EAAc7H,EAAQ,IA+B1BF,EAAOC,QArBP,SAAwBguJ,EAAUD,GAChC,OAAO,SAAS75C,EAAY23C,GAC1B,GAAkB,MAAd33C,EACF,OAAOA,EAET,IAAKpsG,EAAYosG,GACf,OAAO85C,EAAS95C,EAAY23C,GAM9B,IAJA,IAAInqJ,EAASwyG,EAAWxyG,OACpBkC,EAAQmqJ,EAAYrsJ,GAAU,EAC9B+jE,EAAWplE,OAAO6zG,IAEd65C,EAAYnqJ,MAAYA,EAAQlC,KACa,IAA/CmqJ,EAASpmF,EAAS7hE,GAAQA,EAAO6hE,KAIvC,OAAOyuC,K,gBC3BX,IAAI+5C,EAAchuJ,EAAQ,KACtBiuJ,EAAsBjuJ,EAAQ,KAC9BkuJ,EAAWluJ,EAAQ,KACnBO,EAAUP,EAAQ,GAClB2N,EAAW3N,EAAQ,KA0BvBF,EAAOC,QAjBP,SAAsByB,GAGpB,MAAoB,mBAATA,EACFA,EAEI,MAATA,EACK0sJ,EAEW,iBAAT1sJ,EACFjB,EAAQiB,GACXysJ,EAAoBzsJ,EAAM,GAAIA,EAAM,IACpCwsJ,EAAYxsJ,GAEXmM,EAASnM,K,gBC3BlB,IAAI2sJ,EAAcnuJ,EAAQ,KACtBouJ,EAAepuJ,EAAQ,KACvBquJ,EAA0BruJ,EAAQ,IAmBtCF,EAAOC,QAVP,SAAqBiG,GACnB,IAAIsoJ,EAAYF,EAAapoJ,GAC7B,OAAwB,GAApBsoJ,EAAU7sJ,QAAe6sJ,EAAU,GAAG,GACjCD,EAAwBC,EAAU,GAAG,GAAIA,EAAU,GAAG,IAExD,SAASvsJ,GACd,OAAOA,IAAWiE,GAAUmoJ,EAAYpsJ,EAAQiE,EAAQsoJ,M,gBCjB5D,IAAIjlJ,EAAQrJ,EAAQ,IAChB8G,EAAc9G,EAAQ,IA4D1BF,EAAOC,QA5CP,SAAqBgC,EAAQiE,EAAQsoJ,EAAWrnJ,GAC9C,IAAItD,EAAQ2qJ,EAAU7sJ,OAClBA,EAASkC,EACT4qJ,GAAgBtnJ,EAEpB,GAAc,MAAVlF,EACF,OAAQN,EAGV,IADAM,EAAS3B,OAAO2B,GACT4B,KAAS,CACd,IAAIa,EAAO8pJ,EAAU3qJ,GACrB,GAAK4qJ,GAAgB/pJ,EAAK,GAClBA,EAAK,KAAOzC,EAAOyC,EAAK,MACtBA,EAAK,KAAMzC,GAEnB,OAAO,EAGX,OAAS4B,EAAQlC,GAAQ,CAEvB,IAAIO,GADJwC,EAAO8pJ,EAAU3qJ,IACF,GACX6mJ,EAAWzoJ,EAAOC,GAClB4J,EAAWpH,EAAK,GAEpB,GAAI+pJ,GAAgB/pJ,EAAK,IACvB,QAAiBtD,IAAbspJ,KAA4BxoJ,KAAOD,GACrC,OAAO,MAEJ,CACL,IAAImF,EAAQ,IAAImC,EAChB,GAAIpC,EACF,IAAItC,EAASsC,EAAWujJ,EAAU5+I,EAAU5J,EAAKD,EAAQiE,EAAQkB,GAEnE,UAAiBhG,IAAXyD,EACEmC,EAAY8E,EAAU4+I,EAAUgE,EAA+CvnJ,EAAYC,GAC3FvC,GAEN,OAAO,GAIb,OAAO,I,gBC1DT,IAAI8pJ,EAAqBzuJ,EAAQ,IAC7B6F,EAAO7F,EAAQ,IAsBnBF,EAAOC,QAbP,SAAsBgC,GAIpB,IAHA,IAAI4C,EAASkB,EAAK9D,GACdN,EAASkD,EAAOlD,OAEbA,KAAU,CACf,IAAIO,EAAM2C,EAAOlD,GACbD,EAAQO,EAAOC,GAEnB2C,EAAOlD,GAAU,CAACO,EAAKR,EAAOitJ,EAAmBjtJ,IAEnD,OAAOmD,I,gBCpBT,IAAImC,EAAc9G,EAAQ,IACtBgE,EAAMhE,EAAQ,KACd0uJ,EAAQ1uJ,EAAQ,KAChBgM,EAAQhM,EAAQ,IAChByuJ,EAAqBzuJ,EAAQ,IAC7BquJ,EAA0BruJ,EAAQ,IAClC8L,EAAQ9L,EAAQ,IA0BpBF,EAAOC,QAZP,SAA6BgM,EAAMH,GACjC,OAAII,EAAMD,IAAS0iJ,EAAmB7iJ,GAC7ByiJ,EAAwBviJ,EAAMC,GAAOH,GAEvC,SAAS7J,GACd,IAAIyoJ,EAAWxmJ,EAAIjC,EAAQgK,GAC3B,YAAqB7K,IAAbspJ,GAA0BA,IAAa5+I,EAC3C8iJ,EAAM3sJ,EAAQgK,GACdjF,EAAY8E,EAAU4+I,EAAUgE,M,gBC5BxC,IAAIG,EAAU3uJ,EAAQ,IAgCtBF,EAAOC,QALP,SAAagC,EAAQgK,EAAMs7B,GACzB,IAAI1iC,EAAmB,MAAV5C,OAAiBb,EAAYytJ,EAAQ5sJ,EAAQgK,GAC1D,YAAkB7K,IAAXyD,EAAuB0iC,EAAe1iC,I,gBC7B/C,IAAIiqJ,EAAgB5uJ,EAAQ,KAGxB6uJ,EAAa,mGAGbC,EAAe,WASf7iJ,EAAe2iJ,GAAc,SAASh/I,GACxC,IAAIjL,EAAS,GAOb,OAN6B,KAAzBiL,EAAOm/I,WAAW,IACpBpqJ,EAAOpD,KAAK,IAEdqO,EAAO/B,QAAQghJ,GAAY,SAAS/oH,EAAOjM,EAAQm1H,EAAOC,GACxDtqJ,EAAOpD,KAAKytJ,EAAQC,EAAUphJ,QAAQihJ,EAAc,MAASj1H,GAAUiM,MAElEnhC,KAGT7E,EAAOC,QAAUkM,G,gBC1BjB,IAAIijJ,EAAUlvJ,EAAQ,KAyBtBF,EAAOC,QAZP,SAAuB4J,GACrB,IAAIhF,EAASuqJ,EAAQvlJ,GAAM,SAAS3H,GAIlC,OAfmB,MAYfgiG,EAAM16F,MACR06F,EAAMngG,QAED7B,KAGLgiG,EAAQr/F,EAAOq/F,MACnB,OAAOr/F,I,gBCtBT,IAAI+C,EAAW1H,EAAQ,IAiDvB,SAASkvJ,EAAQvlJ,EAAMwlJ,GACrB,GAAmB,mBAARxlJ,GAAmC,MAAZwlJ,GAAuC,mBAAZA,EAC3D,MAAM,IAAIvtJ,UAhDQ,uBAkDpB,IAAIwtJ,EAAW,SAAXA,IACF,IAAItmJ,EAAO1C,UACPpE,EAAMmtJ,EAAWA,EAASpmJ,MAAMnF,KAAMkF,GAAQA,EAAK,GACnDk7F,EAAQorD,EAASprD,MAErB,GAAIA,EAAM//F,IAAIjC,GACZ,OAAOgiG,EAAMhgG,IAAIhC,GAEnB,IAAI2C,EAASgF,EAAKZ,MAAMnF,KAAMkF,GAE9B,OADAsmJ,EAASprD,MAAQA,EAAMjgG,IAAI/B,EAAK2C,IAAWq/F,EACpCr/F,GAGT,OADAyqJ,EAASprD,MAAQ,IAAKkrD,EAAQG,OAAS3nJ,GAChC0nJ,EAITF,EAAQG,MAAQ3nJ,EAEhB5H,EAAOC,QAAUmvJ,G,gBCxEjB,IAAII,EAAetvJ,EAAQ,KA2B3BF,EAAOC,QAJP,SAAkByB,GAChB,OAAgB,MAATA,EAAgB,GAAK8tJ,EAAa9tJ,K,gBCxB3C,IAAIZ,EAASZ,EAAQ,IACjBuvJ,EAAWvvJ,EAAQ,KACnBO,EAAUP,EAAQ,GAClB0E,EAAW1E,EAAQ,IAMnB8pJ,EAAclpJ,EAASA,EAAOyB,eAAYnB,EAC1CsuJ,EAAiB1F,EAAcA,EAAYxnJ,cAAWpB,EA0B1DpB,EAAOC,QAhBP,SAASuvJ,EAAa9tJ,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIjB,EAAQiB,GAEV,OAAO+tJ,EAAS/tJ,EAAO8tJ,GAAgB,GAEzC,GAAI5qJ,EAASlD,GACX,OAAOguJ,EAAiBA,EAAejtJ,KAAKf,GAAS,GAEvD,IAAImD,EAAUnD,EAAQ,GACtB,MAAkB,KAAVmD,GAAkB,EAAInD,IA3BjB,SA2BwC,KAAOmD,I,cCb9D7E,EAAOC,QAXP,SAAkBoE,EAAOynJ,GAKvB,IAJA,IAAIjoJ,GAAS,EACTlC,EAAkB,MAAT0C,EAAgB,EAAIA,EAAM1C,OACnCkD,EAASnE,MAAMiB,KAEVkC,EAAQlC,GACfkD,EAAOhB,GAASioJ,EAASznJ,EAAMR,GAAQA,EAAOQ,GAEhD,OAAOQ,I,gBCjBT,IAAI8qJ,EAAYzvJ,EAAQ,KACpB0vJ,EAAU1vJ,EAAQ,KAgCtBF,EAAOC,QAJP,SAAegC,EAAQgK,GACrB,OAAiB,MAAVhK,GAAkB2tJ,EAAQ3tJ,EAAQgK,EAAM0jJ,K,cClBjD3vJ,EAAOC,QAJP,SAAmBgC,EAAQC,GACzB,OAAiB,MAAVD,GAAkBC,KAAO5B,OAAO2B,K,gBCTzC,IAAI8J,EAAW7L,EAAQ,IACnB6K,EAAc7K,EAAQ,IACtBO,EAAUP,EAAQ,GAClBqrJ,EAAUrrJ,EAAQ,IAClB2L,EAAW3L,EAAQ,IACnB8L,EAAQ9L,EAAQ,IAiCpBF,EAAOC,QAtBP,SAAiBgC,EAAQgK,EAAM4jJ,GAO7B,IAJA,IAAIhsJ,GAAS,EACTlC,GAHJsK,EAAOF,EAASE,EAAMhK,IAGJN,OACdkD,GAAS,IAEJhB,EAAQlC,GAAQ,CACvB,IAAIO,EAAM8J,EAAMC,EAAKpI,IACrB,KAAMgB,EAAmB,MAAV5C,GAAkB4tJ,EAAQ5tJ,EAAQC,IAC/C,MAEFD,EAASA,EAAOC,GAElB,OAAI2C,KAAYhB,GAASlC,EAChBkD,KAETlD,EAAmB,MAAVM,EAAiB,EAAIA,EAAON,SAClBkK,EAASlK,IAAW4pJ,EAAQrpJ,EAAKP,KACjDlB,EAAQwB,IAAW8I,EAAY9I,M,cCfpCjC,EAAOC,QAJP,SAAkByB,GAChB,OAAOA,I,gBCjBT,IAAIouJ,EAAe5vJ,EAAQ,KACvB6vJ,EAAmB7vJ,EAAQ,KAC3BgM,EAAQhM,EAAQ,IAChB8L,EAAQ9L,EAAQ,IA4BpBF,EAAOC,QAJP,SAAkBgM,GAChB,OAAOC,EAAMD,GAAQ6jJ,EAAa9jJ,EAAMC,IAAS8jJ,EAAiB9jJ,K,cCfpEjM,EAAOC,QANP,SAAsBiC,GACpB,OAAO,SAASD,GACd,OAAiB,MAAVA,OAAiBb,EAAYa,EAAOC,M,gBCT/C,IAAI2sJ,EAAU3uJ,EAAQ,IAetBF,EAAOC,QANP,SAA0BgM,GACxB,OAAO,SAAShK,GACd,OAAO4sJ,EAAQ5sJ,EAAQgK,M,6BCHd/L,EAAQ,IAAiB,IAAIoZ,EAAEpZ,EAAQ,GAAS8+B,EAAE,MAA6B,GAAvB/+B,EAAQ28B,SAAS,MAAS,oBAAoB97B,QAAQA,OAAOs8B,IAAI,CAAC,IAAI2B,EAAEj+B,OAAOs8B,IAAI4B,EAAED,EAAE,iBAAiB9+B,EAAQ28B,SAASmC,EAAE,kBAAkB,IAAIE,EAAE3lB,EAAEsnB,mDAAmDP,kBAAkB/9B,EAAEhC,OAAOiC,UAAUwC,eAAeiJ,EAAE,CAAC9L,KAAI,EAAG03B,KAAI,EAAGgF,QAAO,EAAGC,UAAS,GACrW,SAAS9B,EAAEQ,EAAEtwB,EAAE2T,GAAG,IAAI1T,EAAE2T,EAAE,GAAG/W,EAAE,KAAKjD,EAAE,KAAiF,IAAIqG,UAAhF,IAAS0T,IAAI9W,EAAE,GAAG8W,QAAG,IAAS3T,EAAE/K,MAAM4H,EAAE,GAAGmD,EAAE/K,UAAK,IAAS+K,EAAE2sB,MAAM/yB,EAAEoG,EAAE2sB,KAAc3sB,EAAE3K,EAAEG,KAAKwK,EAAEC,KAAKc,EAAEjJ,eAAemI,KAAK2T,EAAE3T,GAAGD,EAAEC,IAAI,GAAGqwB,GAAGA,EAAE/tB,aAAa,IAAItC,KAAKD,EAAEswB,EAAE/tB,kBAAe,IAASqR,EAAE3T,KAAK2T,EAAE3T,GAAGD,EAAEC,IAAI,MAAM,CAACgyB,SAASF,EAAE13B,KAAKi2B,EAAEr7B,IAAI4H,EAAE8vB,IAAI/yB,EAAE2J,MAAMqQ,EAAEse,OAAOF,EAAEpsB,SAAS5S,EAAQ+vJ,IAAIjzH,EAAE98B,EAAQgwJ,KAAKlzH,G,8BCPvVz8B,OAAOqG,eAAe1G,EAAS,aAAc,CAC3CyB,OAAO,IAETzB,EAAQiwJ,QAAUjwJ,EAAQkwJ,iBAAc/uJ,EAExC,IAEIgvJ,EAAat7H,EAFD50B,EAAQ,MAMpBmwJ,EAASv7H,EAFD50B,EAAQ,MAIpB,SAAS40B,EAAuBzoB,GAAO,OAAOA,GAAOA,EAAIuD,WAAavD,EAAM,CAAE4oB,QAAS5oB,GAErEpM,EAAQkwJ,YAAcC,EAAWn7H,QACrCh1B,EAAQiwJ,QAAUG,EAAOp7H,S,6BChBvC30B,OAAOqG,eAAe1G,EAAS,aAAc,CAC3CyB,OAAO,IAGT,IAUgC2K,EAV5BuE,EAAe,WAAc,SAASolB,EAAiB/vB,EAAQuK,GAAS,IAAK,IAAI3P,EAAI,EAAGA,EAAI2P,EAAM7O,OAAQd,IAAK,CAAE,IAAI4P,EAAaD,EAAM3P,GAAI4P,EAAW7J,WAAa6J,EAAW7J,aAAc,EAAO6J,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAMrQ,OAAOqG,eAAeV,EAAQwK,EAAWvO,IAAKuO,IAAiB,OAAO,SAAUH,EAAaO,EAAYC,GAAiJ,OAA9HD,GAAYmlB,EAAiB1lB,EAAY/N,UAAWsO,GAAiBC,GAAaklB,EAAiB1lB,EAAaQ,GAAqBR,GAA7gB,GAEfZ,EAASxP,EAAQ,GAEjBowJ,GAM4BjkJ,EANKqD,IAMgBrD,EAAIuD,WAAavD,EAAM,CAAE4oB,QAAS5oB,GAJnFkkJ,EAAQrwJ,EAAQ,IAEhBswJ,EAAatwJ,EAAQ,IAUzB,IAIIiwJ,EAAc,SAAU75H,GAG1B,SAAS65H,EAAY3/I,IAbvB,SAAyBH,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIxO,UAAU,qCAc5GsO,CAAgBtM,KAAMqsJ,GAEtB,IAAI35H,EAdR,SAAoCn2B,EAAMoC,GAAQ,IAAKpC,EAAQ,MAAM,IAAIoR,eAAe,6DAAgE,OAAOhP,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BpC,EAAPoC,EAclN+O,CAA2B1N,MAAOqsJ,EAAYl/I,WAAa3Q,OAAOiR,eAAe4+I,IAAc1tJ,KAAKqB,KAAM0M,IAGtH,OADAgmB,EAAM1I,MAAQ,GACP0I,EAmCT,OAlDF,SAAmBrlB,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAItP,UAAU,kEAAoEsP,GAAeD,EAAS5O,UAAYjC,OAAO+Q,OAAOD,GAAcA,EAAW7O,UAAW,CAAEI,YAAa,CAAEjB,MAAOyP,EAAUvK,YAAY,EAAO+J,UAAU,EAAMD,cAAc,KAAeU,IAAY9Q,OAAO0Q,eAAiB1Q,OAAO0Q,eAAeG,EAAUC,GAAcD,EAASF,UAAYG,GAO/dF,CAAUi/I,EAAa75H,GAWvB1lB,EAAau/I,EAAa,CAAC,CACzBjuJ,IAAK,WACLR,MAAO,WACL,OAAO6uJ,EAAM1hJ,SAAS5F,WAAM7H,EAAWkF,aAExC,CACDpE,IAAK,oBACLR,MAAO,WACL,IAAI+uJ,EAAS3sJ,KAAK0M,MACd9L,EAAO+rJ,EAAO/rJ,KACd6I,EAAUkjJ,EAAOljJ,QACjBc,EAAYoiJ,EAAOpiJ,UACnBC,EAAqBmiJ,EAAOniJ,mBAC5BQ,EAAQ2hJ,EAAO3hJ,MACf7I,EAASwqJ,EAAOxqJ,OAChByqJ,EAAQD,EAAOC,MACf3iJ,EAAU0iJ,EAAO1iJ,QAErBjK,KAAKgqB,MAAM6iI,KAAOvhJ,OAAO4E,KAAKlQ,KAAK+K,SAASnK,EAAMoK,EAAOvB,EAASc,EAAWC,GAAqBrI,EAAQyqJ,EAAO3iJ,KAElH,CACD7L,IAAK,YACLR,MAAO,WACL,OAAOoC,KAAKgqB,MAAM6iI,OAEnB,CACDzuJ,IAAK,SACLR,MAAO,WACL,OAAO,SAIJyuJ,EA5CS,CA6ChBG,EAAQr7H,QAAQ6E,WAElBq2H,EAAY3gJ,aAAelP,OAAO8E,OAAOorJ,EAAWhhJ,aAnDjC,CACjBvJ,OAAQ,WAmDVkqJ,EAAY1gJ,UAAY+gJ,EAAW/gJ,UACnCxP,EAAQg1B,QAAUk7H,G,6BC3ElB7vJ,OAAOqG,eAAe1G,EAAS,aAAc,CAC3CyB,OAAO,IAGT,IAYgC2K,EAZ5B6oB,EAAW50B,OAAO8E,QAAU,SAAUa,GAAU,IAAK,IAAIpF,EAAI,EAAGA,EAAIyF,UAAU3E,OAAQd,IAAK,CAAE,IAAIqF,EAASI,UAAUzF,GAAI,IAAK,IAAIqB,KAAOgE,EAAc5F,OAAOiC,UAAUwC,eAAetC,KAAKyD,EAAQhE,KAAQ+D,EAAO/D,GAAOgE,EAAOhE,IAAY,OAAO+D,GAEnP2K,EAAe,WAAc,SAASolB,EAAiB/vB,EAAQuK,GAAS,IAAK,IAAI3P,EAAI,EAAGA,EAAI2P,EAAM7O,OAAQd,IAAK,CAAE,IAAI4P,EAAaD,EAAM3P,GAAI4P,EAAW7J,WAAa6J,EAAW7J,aAAc,EAAO6J,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAMrQ,OAAOqG,eAAeV,EAAQwK,EAAWvO,IAAKuO,IAAiB,OAAO,SAAUH,EAAaO,EAAYC,GAAiJ,OAA9HD,GAAYmlB,EAAiB1lB,EAAY/N,UAAWsO,GAAiBC,GAAaklB,EAAiB1lB,EAAaQ,GAAqBR,GAA7gB,GAEfZ,EAASxP,EAAQ,GAEjBowJ,GAM4BjkJ,EANKqD,IAMgBrD,EAAIuD,WAAavD,EAAM,CAAE4oB,QAAS5oB,GAJnFkkJ,EAAQrwJ,EAAQ,IAEhBswJ,EAAatwJ,EAAQ,IAYzB,IAAIgwJ,EAAU,SAAU55H,GAGtB,SAAS45H,EAAQ1/I,IATnB,SAAyBH,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIxO,UAAU,qCAU5GsO,CAAgBtM,KAAMosJ,GAEtB,IAAI15H,EAVR,SAAoCn2B,EAAMoC,GAAQ,IAAKpC,EAAQ,MAAM,IAAIoR,eAAe,6DAAgE,OAAOhP,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BpC,EAAPoC,EAUlN+O,CAA2B1N,MAAOosJ,EAAQj/I,WAAa3Q,OAAOiR,eAAe2+I,IAAUztJ,KAAKqB,KAAM0M,IAI9G,OAFAgmB,EAAM3nB,SAAW2nB,EAAM3nB,SAAS0yB,KAAK/K,GACrCA,EAAM1I,MAAQ,CAAEszB,KAAM,IACf5qB,EA6HT,OAzIF,SAAmBrlB,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAItP,UAAU,kEAAoEsP,GAAeD,EAAS5O,UAAYjC,OAAO+Q,OAAOD,GAAcA,EAAW7O,UAAW,CAAEI,YAAa,CAAEjB,MAAOyP,EAAUvK,YAAY,EAAO+J,UAAU,EAAMD,cAAc,KAAeU,IAAY9Q,OAAO0Q,eAAiB1Q,OAAO0Q,eAAeG,EAAUC,GAAcD,EAASF,UAAYG,GAG/dF,CAAUg/I,EAAS55H,GAYnB1lB,EAAas/I,EAAS,CAAC,CACrBhuJ,IAAK,oBACLR,MAAO,WACL,IAAI+uJ,EAAS3sJ,KAAK0M,MACd9L,EAAO+rJ,EAAO/rJ,KACd6I,EAAUkjJ,EAAOljJ,QACjBc,EAAYoiJ,EAAOpiJ,UACnBS,EAAQ2hJ,EAAO3hJ,MACfR,EAAqBmiJ,EAAOniJ,mBAEhCxK,KAAKw6B,SAAS,CAAE8iB,KAAMt9C,KAAK+K,SAASnK,EAAMoK,EAAOvB,EAASc,EAAWC,OAEtE,CACDpM,IAAK,qBACLR,MAAO,SAA4BkvJ,GACjC,GAAI9sJ,KAAK0M,QAAUogJ,EAAW,CAC5B,IAAIC,EAAU/sJ,KAAK0M,MACf9L,EAAOmsJ,EAAQnsJ,KACf6I,EAAUsjJ,EAAQtjJ,QAClBc,EAAYwiJ,EAAQxiJ,UACpBS,EAAQ+hJ,EAAQ/hJ,MAEpBhL,KAAKw6B,SAAS,CAAE8iB,KAAMt9C,KAAK+K,SAASnK,EAAMoK,EAAOvB,EAASc,QAG7D,CACDnM,IAAK,WACLR,MAAO,WACL,OAAO6uJ,EAAM1hJ,SAAS5F,WAAM7H,EAAWkF,aAExC,CACDpE,IAAK,eACLR,MAAO,SAAsB+0B,GAC3B,GAAIrnB,OAAO5C,UAAUskJ,iBAAkB,CACrCr6H,EAAM4gB,iBAEN,IAAI05G,EAAUjtJ,KAAK0M,MACf9L,EAAOqsJ,EAAQrsJ,KACf6I,EAAUwjJ,EAAQxjJ,QAClBc,EAAY0iJ,EAAQ1iJ,UACpB2B,EAAW+gJ,EAAQ/gJ,SACnB1B,EAAqByiJ,EAAQziJ,mBAC7BQ,EAAQiiJ,EAAQjiJ,MAGhBE,EAAO,IAAIC,KAAK,CAACH,EAAQ,SAAW,IAAI,EAAIyhJ,EAAM3hJ,OAAOlK,EAAM6I,EAASc,EAAWC,KAGvF,OAFAc,OAAO5C,UAAUwkJ,WAAWhiJ,EAAMgB,IAE3B,KAGV,CACD9N,IAAK,mBACLR,MAAO,SAA0B+0B,GAC/B,IAAI8B,EAASz0B,KAUbA,KAAK0M,MAAMN,QAAQumB,GARR,SAAcw6H,IACP,IAAZA,EAIJ14H,EAAO24H,aAAaz6H,GAHlBA,EAAM4gB,sBAQX,CACDn1C,IAAK,kBACLR,MAAO,SAAyB+0B,IACgB,IAA9B3yB,KAAK0M,MAAMN,QAAQumB,GAEjCA,EAAM4gB,iBAGRvzC,KAAKotJ,aAAaz6H,KAEnB,CACDv0B,IAAK,cACLR,MAAO,WACL,IAAI+2B,EAAS30B,KAEb,OAAO,SAAU2yB,GACf,GAAoC,oBAAzBgC,EAAOjoB,MAAMN,QACtB,OAAOuoB,EAAOjoB,MAAML,aAAesoB,EAAO04H,iBAAiB16H,GAASgC,EAAO24H,gBAAgB36H,GAE7FgC,EAAOy4H,aAAaz6H,MAGvB,CACDv0B,IAAK,SACLR,MAAO,WACL,IAAIg5B,EAAS52B,KAETutJ,EAAUvtJ,KAAK0M,MAIfR,GAHOqhJ,EAAQ3sJ,KACL2sJ,EAAQ9jJ,QACN8jJ,EAAQhjJ,UACTgjJ,EAAQrhJ,UAEnBtJ,GADQ2qJ,EAAQviJ,MACLuiJ,EAAQ3qJ,UAInB0yB,GAHUi4H,EAAQnhJ,QACHmhJ,EAAQlhJ,aACFkhJ,EAAQ/iJ,mBA3HvC,SAAkCjC,EAAKtG,GAAQ,IAAIE,EAAS,GAAI,IAAK,IAAIpF,KAAKwL,EAAWtG,EAAKuvB,QAAQz0B,IAAM,GAAkBP,OAAOiC,UAAUwC,eAAetC,KAAK4J,EAAKxL,KAAcoF,EAAOpF,GAAKwL,EAAIxL,IAAM,OAAOoF,EA4HlMkvB,CAAyBk8H,EAAS,CAAC,OAAQ,UAAW,YAAa,WAAY,QAAS,WAAY,UAAW,eAAgB,wBAE1I,OAAOf,EAAQr7H,QAAQ0E,cACrB,IACAzE,EAAS,CACPo8H,SAAUthJ,GACTopB,EAAM,CACPQ,IAAK,SAAa4T,GAChB,OAAO9S,EAAO8S,KAAOA,GAEvBvnC,OAAQ,QACRm7C,KAAMt9C,KAAKgqB,MAAMszB,KACjBlxC,QAASpM,KAAKytJ,gBAEhB7qJ,OAKCwpJ,EAvIK,CAwIZI,EAAQr7H,QAAQ6E,WAElBo2H,EAAQ1gJ,aAAeghJ,EAAWhhJ,aAClC0gJ,EAAQzgJ,UAAY+gJ,EAAW/gJ,UAC/BxP,EAAQg1B,QAAUi7H","file":"static/js/2.f36208de.chunk.js","sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar isSafari = exports.isSafari = function isSafari() {\n return (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)\n );\n};\n\nvar isJsons = exports.isJsons = function isJsons(array) {\n return Array.isArray(array) && array.every(function (row) {\n return (typeof row === \"undefined\" ? \"undefined\" : _typeof(row)) === 'object' && !(row instanceof Array);\n });\n};\n\nvar isArrays = exports.isArrays = function isArrays(array) {\n return Array.isArray(array) && array.every(function (row) {\n return Array.isArray(row);\n });\n};\n\nvar jsonsHeaders = exports.jsonsHeaders = function jsonsHeaders(array) {\n return Array.from(array.map(function (json) {\n return Object.keys(json);\n }).reduce(function (a, b) {\n return new Set([].concat(_toConsumableArray(a), _toConsumableArray(b)));\n }, []));\n};\n\nvar jsons2arrays = exports.jsons2arrays = function jsons2arrays(jsons, headers) {\n headers = headers || jsonsHeaders(jsons);\n\n var headerLabels = headers;\n var headerKeys = headers;\n if (isJsons(headers)) {\n headerLabels = headers.map(function (header) {\n return header.label;\n });\n headerKeys = headers.map(function (header) {\n return header.key;\n });\n }\n\n var data = jsons.map(function (object) {\n return headerKeys.map(function (header) {\n return getHeaderValue(header, object);\n });\n });\n return [headerLabels].concat(_toConsumableArray(data));\n};\n\nvar getHeaderValue = exports.getHeaderValue = function getHeaderValue(property, obj) {\n var foundValue = property.replace(/\\[([^\\]]+)]/g, \".$1\").split(\".\").reduce(function (o, p, i, arr) {\n if (o[p] === undefined) {\n arr.splice(1);\n } else {\n return o[p];\n }\n }, obj);\n\n return foundValue === undefined ? property in obj ? obj[property] : '' : foundValue;\n};\n\nvar elementOrEmpty = exports.elementOrEmpty = function elementOrEmpty(element) {\n return element || element === 0 ? element : '';\n};\n\nvar joiner = exports.joiner = function joiner(data) {\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';\n var enclosingCharacter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '\"';\n\n return data.filter(function (e) {\n return e;\n }).map(function (row) {\n return row.map(function (element) {\n return elementOrEmpty(element);\n }).map(function (column) {\n return \"\" + enclosingCharacter + column + enclosingCharacter;\n }).join(separator);\n }).join(\"\\n\");\n};\n\nvar arrays2csv = exports.arrays2csv = function arrays2csv(data, headers, separator, enclosingCharacter) {\n return joiner(headers ? [headers].concat(_toConsumableArray(data)) : data, separator, enclosingCharacter);\n};\n\nvar jsons2csv = exports.jsons2csv = function jsons2csv(data, headers, separator, enclosingCharacter) {\n return joiner(jsons2arrays(data, headers), separator, enclosingCharacter);\n};\n\nvar string2csv = exports.string2csv = function string2csv(data, headers, separator, enclosingCharacter) {\n return headers ? headers.join(separator) + \"\\n\" + data : data;\n};\n\nvar toCSV = exports.toCSV = function toCSV(data, headers, separator, enclosingCharacter) {\n if (isJsons(data)) return jsons2csv(data, headers, separator, enclosingCharacter);\n if (isArrays(data)) return arrays2csv(data, headers, separator, enclosingCharacter);\n if (typeof data === 'string') return string2csv(data, headers, separator);\n throw new TypeError(\"Data should be a \\\"String\\\", \\\"Array of arrays\\\" OR \\\"Array of objects\\\" \");\n};\n\nvar buildURI = exports.buildURI = function buildURI(data, uFEFF, headers, separator, enclosingCharacter) {\n var csv = toCSV(data, headers, separator, enclosingCharacter);\n var type = isSafari() ? 'application/csv' : 'text/csv';\n var blob = new Blob([uFEFF ? \"\\uFEFF\" : '', csv], { type: type });\n var dataURI = \"data:\" + type + \";charset=utf-8,\" + (uFEFF ? \"\\uFEFF\" : '') + csv;\n\n var URL = window.URL || window.webkitURL;\n\n return typeof URL.createObjectURL === 'undefined' ? dataURI : URL.createObjectURL(blob);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PropsNotForwarded = exports.defaultProps = exports.propTypes = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar propTypes = exports.propTypes = {\n data: (0, _propTypes.oneOfType)([_propTypes.string, _propTypes.array]).isRequired,\n headers: _propTypes.array,\n target: _propTypes.string,\n separator: _propTypes.string,\n filename: _propTypes.string,\n uFEFF: _propTypes.bool,\n onClick: _propTypes.func,\n asyncOnClick: _propTypes.bool\n};\n\nvar defaultProps = exports.defaultProps = {\n separator: ',',\n filename: 'generatedBy_react-csv.csv',\n uFEFF: true,\n asyncOnClick: false\n};\n\nvar PropsNotForwarded = exports.PropsNotForwarded = ['data', 'headers'];","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","class Item {\n constructor(data, prev, next) {\n this.next = next;\n if (next)\n next.prev = this;\n this.prev = prev;\n if (prev)\n prev.next = this;\n this.data = data;\n }\n}\nexport class LinkedList {\n constructor() {\n this._length = 0;\n }\n get head() {\n return this._head && this._head.data;\n }\n get tail() {\n return this._tail && this._tail.data;\n }\n get current() {\n return this._current && this._current.data;\n }\n get length() {\n return this._length;\n }\n push(data) {\n this._tail = new Item(data, this._tail);\n if (this._length === 0) {\n this._head = this._tail;\n this._current = this._head;\n this._next = this._head;\n }\n this._length++;\n }\n pop() {\n var tail = this._tail;\n if (this._length === 0) {\n return;\n }\n this._length--;\n if (this._length === 0) {\n this._head = this._tail = this._current = this._next = undefined;\n return tail.data;\n }\n this._tail = tail.prev;\n this._tail.next = undefined;\n if (this._current === tail) {\n this._current = this._tail;\n this._next = undefined;\n }\n return tail.data;\n }\n shift() {\n var head = this._head;\n if (this._length === 0) {\n return;\n }\n this._length--;\n if (this._length === 0) {\n this._head = this._tail = this._current = this._next = undefined;\n return head.data;\n }\n this._head = this._head.next;\n if (this._current === head) {\n this._current = this._head;\n this._next = this._current.next;\n }\n return head.data;\n }\n unshift(data) {\n this._head = new Item(data, undefined, this._head);\n if (this._length === 0) {\n this._tail = this._head;\n this._next = this._head;\n }\n this._length++;\n }\n unshiftCurrent() {\n var current = this._current;\n if (current === this._head || this._length < 2) {\n return current && current.data;\n }\n // remove\n if (current === this._tail) {\n this._tail = current.prev;\n this._tail.next = undefined;\n this._current = this._tail;\n }\n else {\n current.next.prev = current.prev;\n current.prev.next = current.next;\n this._current = current.prev;\n }\n this._next = this._current.next;\n // unshift\n current.next = this._head;\n current.prev = undefined;\n this._head.prev = current;\n this._head = current;\n return current.data;\n }\n removeCurrent() {\n var current = this._current;\n if (this._length === 0) {\n return;\n }\n this._length--;\n if (this._length === 0) {\n this._head = this._tail = this._current = this._next = undefined;\n return current.data;\n }\n if (current === this._tail) {\n this._tail = current.prev;\n this._tail.next = undefined;\n this._current = this._tail;\n }\n else if (current === this._head) {\n this._head = current.next;\n this._head.prev = undefined;\n this._current = this._head;\n }\n else {\n current.next.prev = current.prev;\n current.prev.next = current.next;\n this._current = current.prev;\n }\n this._next = this._current.next;\n return current.data;\n }\n resetCursor() {\n this._current = this._next = this._head;\n return this;\n }\n next() {\n var next = this._next;\n if (next !== undefined) {\n this._next = next.next;\n this._current = next;\n return next.data;\n }\n }\n}\n","/**\n * Created by AAravindan on 5/7/16.\n */\nimport { LinkedList } from './LinkedList';\nexport default class FixedSizeLinkedList extends LinkedList {\n constructor(size, maintainHigh, maintainLow, maintainSum) {\n super();\n this.size = size;\n this.maintainHigh = maintainHigh;\n this.maintainLow = maintainLow;\n this.maintainSum = maintainSum;\n this.totalPushed = 0;\n this.periodHigh = 0;\n this.periodLow = Infinity;\n this.periodSum = 0;\n if (!size || typeof size !== 'number') {\n throw ('Size required and should be a number.');\n }\n this._push = this.push;\n this.push = function (data) {\n this.add(data);\n this.totalPushed++;\n };\n }\n add(data) {\n if (this.length === this.size) {\n this.lastShift = this.shift();\n this._push(data);\n //TODO: FInd a better way\n if (this.maintainHigh)\n if (this.lastShift == this.periodHigh)\n this.calculatePeriodHigh();\n if (this.maintainLow)\n if (this.lastShift == this.periodLow)\n this.calculatePeriodLow();\n if (this.maintainSum) {\n this.periodSum = this.periodSum - this.lastShift;\n }\n }\n else {\n this._push(data);\n }\n //TODO: FInd a better way\n if (this.maintainHigh)\n if (this.periodHigh <= data)\n (this.periodHigh = data);\n if (this.maintainLow)\n if (this.periodLow >= data)\n (this.periodLow = data);\n if (this.maintainSum) {\n this.periodSum = this.periodSum + data;\n }\n }\n *iterator() {\n this.resetCursor();\n while (this.next()) {\n yield this.current;\n }\n }\n calculatePeriodHigh() {\n this.resetCursor();\n if (this.next())\n this.periodHigh = this.current;\n while (this.next()) {\n if (this.periodHigh <= this.current) {\n this.periodHigh = this.current;\n }\n ;\n }\n ;\n }\n calculatePeriodLow() {\n this.resetCursor();\n if (this.next())\n this.periodLow = this.current;\n while (this.next()) {\n if (this.periodLow >= this.current) {\n this.periodLow = this.current;\n }\n ;\n }\n ;\n }\n}\n","export default class StockData {\n constructor(open, high, low, close, reversedInput) {\n this.open = open;\n this.high = high;\n this.low = low;\n this.close = close;\n this.reversedInput = reversedInput;\n }\n}\nexport class CandleData {\n}\nexport class CandleList {\n constructor() {\n this.open = [];\n this.high = [];\n this.low = [];\n this.close = [];\n this.volume = [];\n this.timestamp = [];\n }\n}\n","let config = {};\nexport function setConfig(key, value) {\n config[key] = value;\n}\nexport function getConfig(key) {\n return config[key];\n}\n","import { getConfig } from '../config';\nexport function format(v) {\n let precision = getConfig('precision');\n if (precision) {\n return parseFloat(v.toPrecision(precision));\n }\n return v;\n}\n","import { format as nf } from '../Utils/NumberFormatter';\nexport class IndicatorInput {\n}\nexport class AllInputs {\n}\nexport class Indicator {\n constructor(input) {\n this.format = input.format || nf;\n }\n static reverseInputs(input) {\n if (input.reversedInput) {\n input.values ? input.values.reverse() : undefined;\n input.open ? input.open.reverse() : undefined;\n input.high ? input.high.reverse() : undefined;\n input.low ? input.low.reverse() : undefined;\n input.close ? input.close.reverse() : undefined;\n input.volume ? input.volume.reverse() : undefined;\n input.timestamp ? input.timestamp.reverse() : undefined;\n }\n }\n getResult() {\n return this.result;\n }\n}\n","//STEP 1. Import Necessary indicator or rather last step\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { LinkedList } from '../Utils/LinkedList';\n//STEP 2. Create the input for the indicator, mandatory should be in the constructor\nexport class MAInput extends IndicatorInput {\n constructor(period, values) {\n super();\n this.period = period;\n this.values = values;\n }\n}\n//STEP3. Add class based syntax with export\nexport class SMA extends Indicator {\n constructor(input) {\n super(input);\n this.period = input.period;\n this.price = input.values;\n var genFn = (function* (period) {\n var list = new LinkedList();\n var sum = 0;\n var counter = 1;\n var current = yield;\n var result;\n list.push(0);\n while (true) {\n if (counter < period) {\n counter++;\n list.push(current);\n sum = sum + current;\n }\n else {\n sum = sum - list.shift() + current;\n result = ((sum) / period);\n list.push(current);\n }\n current = yield result;\n }\n });\n this.generator = genFn(this.period);\n this.generator.next();\n this.result = [];\n this.price.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value !== undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n if (result != undefined)\n return this.format(result);\n }\n ;\n}\nSMA.calculate = sma;\nexport function sma(input) {\n Indicator.reverseInputs(input);\n var result = new SMA(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n//STEP 6. Run the tests\n","import { Indicator } from '../indicator/indicator';\nimport { SMA } from './SMA';\nexport class EMA extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var priceArray = input.values;\n var exponent = (2 / (period + 1));\n var sma;\n this.result = [];\n sma = new SMA({ period: period, values: [] });\n var genFn = (function* () {\n var tick = yield;\n var prevEma;\n while (true) {\n if (prevEma !== undefined && tick !== undefined) {\n prevEma = ((tick - prevEma) * exponent) + prevEma;\n tick = yield prevEma;\n }\n else {\n tick = yield;\n prevEma = sma.nextValue(tick);\n if (prevEma)\n tick = yield prevEma;\n }\n }\n });\n this.generator = genFn();\n this.generator.next();\n this.generator.next();\n priceArray.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n if (result != undefined)\n return this.format(result);\n }\n ;\n}\nEMA.calculate = ema;\nexport function ema(input) {\n Indicator.reverseInputs(input);\n var result = new EMA(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n","\"use strict\";\nimport { Indicator } from '../indicator/indicator';\nimport { LinkedList } from '../Utils/LinkedList';\nexport class WMA extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var priceArray = input.values;\n this.result = [];\n this.generator = (function* () {\n let data = new LinkedList();\n let denominator = period * (period + 1) / 2;\n while (true) {\n if ((data.length) < period) {\n data.push(yield);\n }\n else {\n data.resetCursor();\n let result = 0;\n for (let i = 1; i <= period; i++) {\n result = result + (data.next() * i / (denominator));\n }\n var next = yield result;\n data.shift();\n data.push(next);\n }\n }\n })();\n this.generator.next();\n priceArray.forEach((tick, index) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n //STEP 5. REMOVE GET RESULT FUNCTION\n nextValue(price) {\n var result = this.generator.next(price).value;\n if (result != undefined)\n return this.format(result);\n }\n ;\n}\nWMA.calculate = wma;\n;\nexport function wma(input) {\n Indicator.reverseInputs(input);\n var result = new WMA(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n","import { Indicator } from '../indicator/indicator';\nimport { SMA } from './SMA';\nexport class WEMA extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var priceArray = input.values;\n var exponent = 1 / period;\n var sma;\n this.result = [];\n sma = new SMA({ period: period, values: [] });\n var genFn = (function* () {\n var tick = yield;\n var prevEma;\n while (true) {\n if (prevEma !== undefined && tick !== undefined) {\n prevEma = ((tick - prevEma) * exponent) + prevEma;\n tick = yield prevEma;\n }\n else {\n tick = yield;\n prevEma = sma.nextValue(tick);\n if (prevEma !== undefined)\n tick = yield prevEma;\n }\n }\n });\n this.generator = genFn();\n this.generator.next();\n this.generator.next();\n priceArray.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n if (result != undefined)\n return this.format(result);\n }\n ;\n}\nWEMA.calculate = wema;\nexport function wema(input) {\n Indicator.reverseInputs(input);\n var result = new WEMA(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n","/**\n * Created by AAravindan on 5/4/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { SMA } from './SMA';\nimport { EMA } from './EMA';\nexport class MACDInput extends IndicatorInput {\n constructor(values) {\n super();\n this.values = values;\n this.SimpleMAOscillator = true;\n this.SimpleMASignal = true;\n }\n}\nexport class MACDOutput {\n}\nexport class MACD extends Indicator {\n constructor(input) {\n super(input);\n var oscillatorMAtype = input.SimpleMAOscillator ? SMA : EMA;\n var signalMAtype = input.SimpleMASignal ? SMA : EMA;\n var fastMAProducer = new oscillatorMAtype({ period: input.fastPeriod, values: [], format: (v) => { return v; } });\n var slowMAProducer = new oscillatorMAtype({ period: input.slowPeriod, values: [], format: (v) => { return v; } });\n var signalMAProducer = new signalMAtype({ period: input.signalPeriod, values: [], format: (v) => { return v; } });\n var format = this.format;\n this.result = [];\n this.generator = (function* () {\n var index = 0;\n var tick;\n var MACD, signal, histogram, fast, slow;\n while (true) {\n if (index < input.slowPeriod) {\n tick = yield;\n fast = fastMAProducer.nextValue(tick);\n slow = slowMAProducer.nextValue(tick);\n index++;\n continue;\n }\n if (fast && slow) { //Just for typescript to be happy\n MACD = fast - slow;\n signal = signalMAProducer.nextValue(MACD);\n }\n histogram = MACD - signal;\n tick = yield ({\n //fast : fast,\n //slow : slow,\n MACD: format(MACD),\n signal: signal ? format(signal) : undefined,\n histogram: isNaN(histogram) ? undefined : format(histogram)\n });\n fast = fastMAProducer.nextValue(tick);\n slow = slowMAProducer.nextValue(tick);\n }\n })();\n this.generator.next();\n input.values.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n return result;\n }\n ;\n}\nMACD.calculate = macd;\nexport function macd(input) {\n Indicator.reverseInputs(input);\n var result = new MACD(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class AvgGainInput extends IndicatorInput {\n}\nexport class AverageGain extends Indicator {\n constructor(input) {\n super(input);\n let values = input.values;\n let period = input.period;\n let format = this.format;\n this.generator = (function* (period) {\n var currentValue = yield;\n var counter = 1;\n var gainSum = 0;\n var avgGain;\n var gain;\n var lastValue = currentValue;\n currentValue = yield;\n while (true) {\n gain = currentValue - lastValue;\n gain = gain > 0 ? gain : 0;\n if (gain > 0) {\n gainSum = gainSum + gain;\n }\n if (counter < period) {\n counter++;\n }\n else if (avgGain === undefined) {\n avgGain = gainSum / period;\n }\n else {\n avgGain = ((avgGain * (period - 1)) + gain) / period;\n }\n lastValue = currentValue;\n avgGain = (avgGain !== undefined) ? format(avgGain) : undefined;\n currentValue = yield avgGain;\n }\n })(period);\n this.generator.next();\n this.result = [];\n values.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nAverageGain.calculate = averagegain;\nexport function averagegain(input) {\n Indicator.reverseInputs(input);\n var result = new AverageGain(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class AvgLossInput extends IndicatorInput {\n}\nexport class AverageLoss extends Indicator {\n constructor(input) {\n super(input);\n let values = input.values;\n let period = input.period;\n let format = this.format;\n this.generator = (function* (period) {\n var currentValue = yield;\n var counter = 1;\n var lossSum = 0;\n var avgLoss;\n var loss;\n var lastValue = currentValue;\n currentValue = yield;\n while (true) {\n loss = lastValue - currentValue;\n loss = loss > 0 ? loss : 0;\n if (loss > 0) {\n lossSum = lossSum + loss;\n }\n if (counter < period) {\n counter++;\n }\n else if (avgLoss === undefined) {\n avgLoss = lossSum / period;\n }\n else {\n avgLoss = ((avgLoss * (period - 1)) + loss) / period;\n }\n lastValue = currentValue;\n avgLoss = (avgLoss !== undefined) ? format(avgLoss) : undefined;\n currentValue = yield avgLoss;\n }\n })(period);\n this.generator.next();\n this.result = [];\n values.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nAverageLoss.calculate = averageloss;\nexport function averageloss(input) {\n Indicator.reverseInputs(input);\n var result = new AverageLoss(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","/**\n * Created by AAravindan on 5/5/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { AverageGain } from '../Utils/AverageGain';\nimport { AverageLoss } from '../Utils/AverageLoss';\nexport class RSIInput extends IndicatorInput {\n}\nexport class RSI extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var values = input.values;\n var GainProvider = new AverageGain({ period: period, values: [] });\n var LossProvider = new AverageLoss({ period: period, values: [] });\n let count = 1;\n this.generator = (function* (period) {\n var current = yield;\n var lastAvgGain, lastAvgLoss, RS, currentRSI;\n while (true) {\n lastAvgGain = GainProvider.nextValue(current);\n lastAvgLoss = LossProvider.nextValue(current);\n if ((lastAvgGain !== undefined) && (lastAvgLoss !== undefined)) {\n if (lastAvgLoss === 0) {\n currentRSI = 100;\n }\n else if (lastAvgGain === 0) {\n currentRSI = 0;\n }\n else {\n RS = lastAvgGain / lastAvgLoss;\n RS = isNaN(RS) ? 0 : RS;\n currentRSI = parseFloat((100 - (100 / (1 + RS))).toFixed(2));\n }\n }\n count++;\n current = yield currentRSI;\n }\n })(period);\n this.generator.next();\n this.result = [];\n values.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nRSI.calculate = rsi;\nexport function rsi(input) {\n Indicator.reverseInputs(input);\n var result = new RSI(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import { IndicatorInput, Indicator } from '../indicator/indicator';\nimport { SMA } from '../moving_averages/SMA';\nimport LinkedList from '../Utils/FixedSizeLinkedList';\n/**\n * Created by AAravindan on 5/7/16.\n */\n\"use strict\";\nexport class SDInput extends IndicatorInput {\n}\n;\nexport class SD extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var priceArray = input.values;\n var sma = new SMA({ period: period, values: [], format: (v) => { return v; } });\n this.result = [];\n this.generator = (function* () {\n var tick;\n var mean;\n var currentSet = new LinkedList(period);\n ;\n tick = yield;\n var sd;\n while (true) {\n currentSet.push(tick);\n mean = sma.nextValue(tick);\n if (mean) {\n let sum = 0;\n for (let x of currentSet.iterator()) {\n sum = sum + (Math.pow((x - mean), 2));\n }\n sd = Math.sqrt(sum / (period));\n }\n tick = yield sd;\n }\n })();\n this.generator.next();\n priceArray.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n nextValue(price) {\n var nextResult = this.generator.next(price);\n if (nextResult.value != undefined)\n return this.format(nextResult.value);\n }\n ;\n}\nSD.calculate = sd;\nexport function sd(input) {\n Indicator.reverseInputs(input);\n var result = new SD(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","\"use strict\";\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { SMA } from '../moving_averages/SMA';\nimport { SD } from '../Utils/SD';\nexport class BollingerBandsInput extends IndicatorInput {\n}\n;\nexport class BollingerBandsOutput extends IndicatorInput {\n}\n;\nexport class BollingerBands extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var priceArray = input.values;\n var stdDev = input.stdDev;\n var format = this.format;\n var sma, sd;\n this.result = [];\n sma = new SMA({ period: period, values: [], format: (v) => { return v; } });\n sd = new SD({ period: period, values: [], format: (v) => { return v; } });\n this.generator = (function* () {\n var result;\n var tick;\n var calcSMA;\n var calcsd;\n tick = yield;\n while (true) {\n calcSMA = sma.nextValue(tick);\n calcsd = sd.nextValue(tick);\n if (calcSMA) {\n let middle = format(calcSMA);\n let upper = format(calcSMA + (calcsd * stdDev));\n let lower = format(calcSMA - (calcsd * stdDev));\n let pb = format((tick - lower) / (upper - lower));\n result = {\n middle: middle,\n upper: upper,\n lower: lower,\n pb: pb\n };\n }\n tick = yield result;\n }\n })();\n this.generator.next();\n priceArray.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nBollingerBands.calculate = bollingerbands;\nexport function bollingerbands(input) {\n Indicator.reverseInputs(input);\n var result = new BollingerBands(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator } from '../indicator/indicator';\nimport { LinkedList } from '../Utils/LinkedList';\n//STEP3. Add class based syntax with export\nexport class WilderSmoothing extends Indicator {\n constructor(input) {\n super(input);\n this.period = input.period;\n this.price = input.values;\n var genFn = (function* (period) {\n var list = new LinkedList();\n var sum = 0;\n var counter = 1;\n var current = yield;\n var result = 0;\n while (true) {\n if (counter < period) {\n counter++;\n sum = sum + current;\n result = undefined;\n }\n else if (counter == period) {\n counter++;\n sum = sum + current;\n result = sum;\n }\n else {\n result = result - (result / period) + current;\n }\n current = yield result;\n }\n });\n this.generator = genFn(this.period);\n this.generator.next();\n this.result = [];\n this.price.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n if (result != undefined)\n return this.format(result);\n }\n ;\n}\nWilderSmoothing.calculate = wildersmoothing;\nexport function wildersmoothing(input) {\n Indicator.reverseInputs(input);\n var result = new WilderSmoothing(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n//STEP 6. Run the tests\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/8/16.\n */\n\"use strict\";\nexport class MDMInput extends IndicatorInput {\n}\n;\nexport class MDM extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var format = this.format;\n if (lows.length != highs.length) {\n throw ('Inputs(low,high) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var minusDm;\n var current = yield;\n var last;\n while (true) {\n if (last) {\n let upMove = (current.high - last.high);\n let downMove = (last.low - current.low);\n minusDm = format((downMove > upMove && downMove > 0) ? downMove : 0);\n }\n last = current;\n current = yield minusDm;\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index]\n });\n if (result.value !== undefined)\n this.result.push(result.value);\n });\n }\n ;\n static calculate(input) {\n Indicator.reverseInputs(input);\n var result = new MDM(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n }\n ;\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/8/16.\n */\nexport class PDMInput extends IndicatorInput {\n}\n;\nexport class PDM extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var format = this.format;\n if (lows.length != highs.length) {\n throw ('Inputs(low,high) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var plusDm;\n var current = yield;\n var last;\n while (true) {\n if (last) {\n let upMove = (current.high - last.high);\n let downMove = (last.low - current.low);\n plusDm = format((upMove > downMove && upMove > 0) ? upMove : 0);\n }\n last = current;\n current = yield plusDm;\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index]\n });\n if (result.value !== undefined)\n this.result.push(result.value);\n });\n }\n ;\n static calculate(input) {\n Indicator.reverseInputs(input);\n var result = new PDM(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n }\n ;\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/8/16.\n */\n/**\n * Created by AAravindan on 5/8/16.\n */\n\"use strict\";\nexport class TrueRangeInput extends IndicatorInput {\n}\n;\nexport class TrueRange extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var closes = input.close;\n var format = this.format;\n if (lows.length != highs.length) {\n throw ('Inputs(low,high) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var current = yield;\n var previousClose, result;\n while (true) {\n if (previousClose === undefined) {\n previousClose = current.close;\n current = yield result;\n }\n result = Math.max(current.high - current.low, isNaN(Math.abs(current.high - previousClose)) ? 0 : Math.abs(current.high - previousClose), isNaN(Math.abs(current.low - previousClose)) ? 0 : Math.abs(current.low - previousClose));\n previousClose = current.close;\n if (result != undefined) {\n result = format(result);\n }\n current = yield result;\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index]\n });\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nTrueRange.calculate = truerange;\nexport function truerange(input) {\n Indicator.reverseInputs(input);\n var result = new TrueRange(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { WilderSmoothing } from '../moving_averages/WilderSmoothing';\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { MDM } from './MinusDM';\nimport { PDM } from './PlusDM';\nimport { TrueRange } from './TrueRange';\nimport { WEMA } from '../moving_averages/WEMA';\nexport class ADXInput extends IndicatorInput {\n}\n;\nexport class ADXOutput extends IndicatorInput {\n}\n;\nexport class ADX extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var closes = input.close;\n var period = input.period;\n var format = this.format;\n var plusDM = new PDM({\n high: [],\n low: []\n });\n var minusDM = new MDM({\n high: [],\n low: []\n });\n var emaPDM = new WilderSmoothing({ period: period, values: [], format: (v) => { return v; } });\n var emaMDM = new WilderSmoothing({ period: period, values: [], format: (v) => { return v; } });\n var emaTR = new WilderSmoothing({ period: period, values: [], format: (v) => { return v; } });\n var emaDX = new WEMA({ period: period, values: [], format: (v) => { return v; } });\n var tr = new TrueRange({\n low: [],\n high: [],\n close: [],\n });\n if (!((lows.length === highs.length) && (highs.length === closes.length))) {\n throw ('Inputs(low,high, close) not of equal size');\n }\n this.result = [];\n ADXOutput;\n this.generator = (function* () {\n var tick = yield;\n var index = 0;\n var lastATR, lastAPDM, lastAMDM, lastPDI, lastMDI, lastDX, smoothedDX;\n lastATR = 0;\n lastAPDM = 0;\n lastAMDM = 0;\n while (true) {\n let calcTr = tr.nextValue(tick);\n let calcPDM = plusDM.nextValue(tick);\n let calcMDM = minusDM.nextValue(tick);\n if (calcTr === undefined) {\n tick = yield;\n continue;\n }\n let lastATR = emaTR.nextValue(calcTr);\n let lastAPDM = emaPDM.nextValue(calcPDM);\n let lastAMDM = emaMDM.nextValue(calcMDM);\n if ((lastATR != undefined) && (lastAPDM != undefined) && (lastAMDM != undefined)) {\n lastPDI = (lastAPDM) * 100 / lastATR;\n lastMDI = (lastAMDM) * 100 / lastATR;\n let diDiff = Math.abs(lastPDI - lastMDI);\n let diSum = (lastPDI + lastMDI);\n lastDX = (diDiff / diSum) * 100;\n smoothedDX = emaDX.nextValue(lastDX);\n // console.log(tick.high.toFixed(2), tick.low.toFixed(2), tick.close.toFixed(2) , calcTr.toFixed(2), calcPDM.toFixed(2), calcMDM.toFixed(2), lastATR.toFixed(2), lastAPDM.toFixed(2), lastAMDM.toFixed(2), lastPDI.toFixed(2), lastMDI.toFixed(2), diDiff.toFixed(2), diSum.toFixed(2), lastDX.toFixed(2));\n }\n tick = yield { adx: smoothedDX, pdi: lastPDI, mdi: lastMDI };\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index]\n });\n if (result.value != undefined && result.value.adx != undefined) {\n this.result.push({ adx: format(result.value.adx), pdi: format(result.value.pdi), mdi: format(result.value.mdi) });\n }\n });\n }\n ;\n ;\n nextValue(price) {\n let result = this.generator.next(price).value;\n if (result != undefined && result.adx != undefined) {\n return { adx: this.format(result.adx), pdi: this.format(result.pdi), mdi: this.format(result.mdi) };\n }\n }\n ;\n}\nADX.calculate = adx;\nexport function adx(input) {\n Indicator.reverseInputs(input);\n var result = new ADX(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/8/16.\n */\n\"use strict\";\nimport { WEMA } from '../moving_averages/WEMA';\nimport { TrueRange } from './TrueRange';\nexport class ATRInput extends IndicatorInput {\n}\n;\nexport class ATR extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var closes = input.close;\n var period = input.period;\n var format = this.format;\n if (!((lows.length === highs.length) && (highs.length === closes.length))) {\n throw ('Inputs(low,high, close) not of equal size');\n }\n var trueRange = new TrueRange({\n low: [],\n high: [],\n close: []\n });\n var wema = new WEMA({ period: period, values: [], format: (v) => { return v; } });\n this.result = [];\n this.generator = (function* () {\n var tick = yield;\n var avgTrueRange, trange;\n ;\n while (true) {\n trange = trueRange.nextValue({\n low: tick.low,\n high: tick.high,\n close: tick.close\n });\n if (trange === undefined) {\n avgTrueRange = undefined;\n }\n else {\n avgTrueRange = wema.nextValue(trange);\n }\n tick = yield avgTrueRange;\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index]\n });\n if (result.value !== undefined) {\n this.result.push(format(result.value));\n }\n });\n }\n ;\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nATR.calculate = atr;\nexport function atr(input) {\n Indicator.reverseInputs(input);\n var result = new ATR(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport LinkedList from '../Utils/FixedSizeLinkedList';\nexport class ROCInput extends IndicatorInput {\n}\nexport class ROC extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var priceArray = input.values;\n this.result = [];\n this.generator = (function* () {\n let index = 1;\n var pastPeriods = new LinkedList(period);\n ;\n var tick = yield;\n var roc;\n while (true) {\n pastPeriods.push(tick);\n if (index < period) {\n index++;\n }\n else {\n roc = ((tick - pastPeriods.lastShift) / (pastPeriods.lastShift)) * 100;\n }\n tick = yield roc;\n }\n })();\n this.generator.next();\n priceArray.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined && (!isNaN(result.value))) {\n this.result.push(this.format(result.value));\n }\n });\n }\n nextValue(price) {\n var nextResult = this.generator.next(price);\n if (nextResult.value != undefined && (!isNaN(nextResult.value))) {\n return this.format(nextResult.value);\n }\n }\n ;\n}\nROC.calculate = roc;\n;\nexport function roc(input) {\n Indicator.reverseInputs(input);\n var result = new ROC(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { SMA } from '../moving_averages/SMA';\nimport { ROC } from './ROC';\nexport class KSTInput extends IndicatorInput {\n}\nexport class KSTOutput {\n}\nexport class KST extends Indicator {\n constructor(input) {\n super(input);\n let priceArray = input.values;\n let rocPer1 = input.ROCPer1;\n let rocPer2 = input.ROCPer2;\n let rocPer3 = input.ROCPer3;\n let rocPer4 = input.ROCPer4;\n let smaPer1 = input.SMAROCPer1;\n let smaPer2 = input.SMAROCPer2;\n let smaPer3 = input.SMAROCPer3;\n let smaPer4 = input.SMAROCPer4;\n let signalPeriod = input.signalPeriod;\n let roc1 = new ROC({ period: rocPer1, values: [] });\n let roc2 = new ROC({ period: rocPer2, values: [] });\n let roc3 = new ROC({ period: rocPer3, values: [] });\n let roc4 = new ROC({ period: rocPer4, values: [] });\n let sma1 = new SMA({ period: smaPer1, values: [], format: (v) => { return v; } });\n let sma2 = new SMA({ period: smaPer2, values: [], format: (v) => { return v; } });\n let sma3 = new SMA({ period: smaPer3, values: [], format: (v) => { return v; } });\n let sma4 = new SMA({ period: smaPer4, values: [], format: (v) => { return v; } });\n let signalSMA = new SMA({ period: signalPeriod, values: [], format: (v) => { return v; } });\n var format = this.format;\n this.result = [];\n let firstResult = Math.max(rocPer1 + smaPer1, rocPer2 + smaPer2, rocPer3 + smaPer3, rocPer4 + smaPer4);\n this.generator = (function* () {\n let index = 1;\n let tick = yield;\n let kst;\n let RCMA1, RCMA2, RCMA3, RCMA4, signal, result;\n while (true) {\n let roc1Result = roc1.nextValue(tick);\n let roc2Result = roc2.nextValue(tick);\n let roc3Result = roc3.nextValue(tick);\n let roc4Result = roc4.nextValue(tick);\n RCMA1 = (roc1Result !== undefined) ? sma1.nextValue(roc1Result) : undefined;\n RCMA2 = (roc2Result !== undefined) ? sma2.nextValue(roc2Result) : undefined;\n RCMA3 = (roc3Result !== undefined) ? sma3.nextValue(roc3Result) : undefined;\n RCMA4 = (roc4Result !== undefined) ? sma4.nextValue(roc4Result) : undefined;\n if (index < firstResult) {\n index++;\n }\n else {\n kst = (RCMA1 * 1) + (RCMA2 * 2) + (RCMA3 * 3) + (RCMA4 * 4);\n }\n signal = (kst !== undefined) ? signalSMA.nextValue(kst) : undefined;\n result = kst !== undefined ? {\n kst: format(kst),\n signal: signal ? format(signal) : undefined\n } : undefined;\n tick = yield result;\n }\n })();\n this.generator.next();\n priceArray.forEach((tick) => {\n let result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n let nextResult = this.generator.next(price);\n if (nextResult.value != undefined)\n return nextResult.value;\n }\n ;\n}\nKST.calculate = kst;\nexport function kst(input) {\n Indicator.reverseInputs(input);\n var result = new KST(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { IndicatorInput, Indicator } from '../indicator/indicator';\n\"use strict\";\n/*\n There seems to be a few interpretations of the rules for this regarding which prices.\n I mean the english from which periods are included. The wording does seem to\n introduce some discrepancy so maybe that is why. I want to put the author's\n own description here to reassess this later.\n ----------------------------------------------------------------------------------------\n For the first day of entry the SAR is the previous Significant Point\n\n If long the SP is the lowest price reached while in the previous short trade\n If short the SP is the highest price reached while in the previous long trade\n\n If long:\n Find the difference between the highest price made while in the trade and the SAR for today.\n Multiple the difference by the AF and ADD the result to today's SAR to obtain the SAR for tomorrow.\n Use 0.02 for the first AF and increase it by 0.02 on every day that a new high for the trade is made.\n If a new high is not made continue to use the AF as last increased. Do not increase the AF above .20\n\n Never move the SAR for tomorrow ABOVE the previous day's LOW or today's LOW.\n If the SAR is calculated to be ABOVE the previous day's LOW or today's LOW then use the lower low between today and the previous day as the new SAR.\n Make the next day's calculations based on this SAR.\n\n If short:\n Find the difference between the lowest price made while in the trade and the SAR for today.\n Multiple the difference by the AF and SUBTRACT the result to today's SAR to obtain the SAR for tomorrow.\n Use 0.02 for the first AF and increase it by 0.02 on every day that a new high for the trade is made.\n If a new high is not made continue to use the AF as last increased. Do not increase the AF above .20\n\n Never move the SAR for tomorrow BELOW the previous day's HIGH or today's HIGH.\n If the SAR is calculated to be BELOW the previous day's HIGH or today's HIGH then use the higher high between today and the previous day as the new SAR. Make the next day's calculations based on this SAR.\n ----------------------------------------------------------------------------------------\n*/\nexport class PSARInput extends IndicatorInput {\n}\n;\nexport class PSAR extends Indicator {\n constructor(input) {\n super(input);\n let highs = input.high || [];\n let lows = input.low || [];\n var genFn = function* (step, max) {\n let curr, extreme, sar, furthest;\n let up = true;\n let accel = step;\n let prev = yield;\n while (true) {\n if (curr) {\n sar = sar + accel * (extreme - sar);\n if (up) {\n sar = Math.min(sar, furthest.low, prev.low);\n if (curr.high > extreme) {\n extreme = curr.high;\n accel = Math.min(accel + step, max);\n }\n ;\n }\n else {\n sar = Math.max(sar, furthest.high, prev.high);\n if (curr.low < extreme) {\n extreme = curr.low;\n accel = Math.min(accel + step, max);\n }\n }\n if ((up && curr.low < sar) || (!up && curr.high > sar)) {\n accel = step;\n sar = extreme;\n up = !up;\n extreme = !up ? curr.low : curr.high;\n }\n }\n else {\n // Randomly setup start values? What is the trend on first tick??\n sar = prev.low;\n extreme = prev.high;\n }\n furthest = prev;\n if (curr)\n prev = curr;\n curr = yield sar;\n }\n };\n this.result = [];\n this.generator = genFn(input.step, input.max);\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n });\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(input) {\n let nextResult = this.generator.next(input);\n if (nextResult.value !== undefined)\n return nextResult.value;\n }\n ;\n}\nPSAR.calculate = psar;\nexport function psar(input) {\n Indicator.reverseInputs(input);\n var result = new PSAR(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { IndicatorInput, Indicator } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/10/16.\n */\n\"use strict\";\nimport LinkedList from '../Utils/FixedSizeLinkedList';\nimport { SMA } from '../moving_averages/SMA';\nexport class StochasticInput extends IndicatorInput {\n}\n;\nexport class StochasticOutput {\n}\n;\nexport class Stochastic extends Indicator {\n constructor(input) {\n super(input);\n let lows = input.low;\n let highs = input.high;\n let closes = input.close;\n let period = input.period;\n let signalPeriod = input.signalPeriod;\n let format = this.format;\n if (!((lows.length === highs.length) && (highs.length === closes.length))) {\n throw ('Inputs(low,high, close) not of equal size');\n }\n this.result = [];\n //%K = (Current Close - Lowest Low)/(Highest High - Lowest Low) * 100\n //%D = 3-day SMA of %K\n //\n //Lowest Low = lowest low for the look-back period\n //Highest High = highest high for the look-back period\n //%K is multiplied by 100 to move the decimal point two places\n this.generator = (function* () {\n let index = 1;\n let pastHighPeriods = new LinkedList(period, true, false);\n let pastLowPeriods = new LinkedList(period, false, true);\n let dSma = new SMA({\n period: signalPeriod,\n values: [],\n format: (v) => { return v; }\n });\n let k, d;\n var tick = yield;\n while (true) {\n pastHighPeriods.push(tick.high);\n pastLowPeriods.push(tick.low);\n if (index < period) {\n index++;\n tick = yield;\n continue;\n }\n let periodLow = pastLowPeriods.periodLow;\n k = (tick.close - periodLow) / (pastHighPeriods.periodHigh - periodLow) * 100;\n k = isNaN(k) ? 0 : k; //This happens when the close, high and low are same for the entire period; Bug fix for \n d = dSma.nextValue(k);\n tick = yield {\n k: format(k),\n d: (d !== undefined) ? format(d) : undefined\n };\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index]\n });\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(input) {\n let nextResult = this.generator.next(input);\n if (nextResult.value !== undefined)\n return nextResult.value;\n }\n ;\n}\nStochastic.calculate = stochastic;\nexport function stochastic(input) {\n Indicator.reverseInputs(input);\n var result = new Stochastic(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { IndicatorInput, Indicator } from '../indicator/indicator';\nimport LinkedList from '../Utils/FixedSizeLinkedList';\nexport class WilliamsRInput extends IndicatorInput {\n}\n;\nexport class WilliamsR extends Indicator {\n constructor(input) {\n super(input);\n let lows = input.low;\n let highs = input.high;\n let closes = input.close;\n let period = input.period;\n let format = this.format;\n if (!((lows.length === highs.length) && (highs.length === closes.length))) {\n throw ('Inputs(low,high, close) not of equal size');\n }\n this.result = [];\n //%R = (Highest High - Close)/(Highest High - Lowest Low) * -100\n //Lowest Low = lowest low for the look-back period\n //Highest High = highest high for the look-back period\n //%R is multiplied by -100 correct the inversion and move the decimal.\n this.generator = (function* () {\n let index = 1;\n let pastHighPeriods = new LinkedList(period, true, false);\n let pastLowPeriods = new LinkedList(period, false, true);\n let periodLow;\n let periodHigh;\n var tick = yield;\n let williamsR;\n while (true) {\n pastHighPeriods.push(tick.high);\n pastLowPeriods.push(tick.low);\n if (index < period) {\n index++;\n tick = yield;\n continue;\n }\n periodLow = pastLowPeriods.periodLow;\n periodHigh = pastHighPeriods.periodHigh;\n williamsR = format((periodHigh - tick.close) / (periodHigh - periodLow) * -100);\n tick = yield williamsR;\n }\n })();\n this.generator.next();\n lows.forEach((low, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index]\n });\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n var nextResult = this.generator.next(price);\n if (nextResult.value != undefined)\n return this.format(nextResult.value);\n }\n ;\n}\nWilliamsR.calculate = williamsr;\nexport function williamsr(input) {\n Indicator.reverseInputs(input);\n var result = new WilliamsR(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","/**\n * Created by AAravindan on 5/17/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class ADLInput extends IndicatorInput {\n}\nexport class ADL extends Indicator {\n constructor(input) {\n super(input);\n var highs = input.high;\n var lows = input.low;\n var closes = input.close;\n var volumes = input.volume;\n if (!((lows.length === highs.length) && (highs.length === closes.length) && (highs.length === volumes.length))) {\n throw ('Inputs(low,high, close, volumes) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var result = 0;\n var tick;\n tick = yield;\n while (true) {\n let moneyFlowMultiplier = ((tick.close - tick.low) - (tick.high - tick.close)) / (tick.high - tick.low);\n moneyFlowMultiplier = isNaN(moneyFlowMultiplier) ? 1 : moneyFlowMultiplier;\n let moneyFlowVolume = moneyFlowMultiplier * tick.volume;\n result = result + moneyFlowVolume;\n tick = yield Math.round(result);\n }\n })();\n this.generator.next();\n highs.forEach((tickHigh, index) => {\n var tickInput = {\n high: tickHigh,\n low: lows[index],\n close: closes[index],\n volume: volumes[index]\n };\n var result = this.generator.next(tickInput);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nADL.calculate = adl;\nexport function adl(input) {\n Indicator.reverseInputs(input);\n var result = new ADL(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/17/16.\n */\n\"use strict\";\nexport class OBVInput extends IndicatorInput {\n}\nexport class OBV extends Indicator {\n constructor(input) {\n super(input);\n var closes = input.close;\n var volumes = input.volume;\n this.result = [];\n this.generator = (function* () {\n var result = 0;\n var tick;\n var lastClose;\n tick = yield;\n if (tick.close && (typeof tick.close === 'number')) {\n lastClose = tick.close;\n tick = yield;\n }\n while (true) {\n if (lastClose < tick.close) {\n result = result + tick.volume;\n }\n else if (tick.close < lastClose) {\n result = result - tick.volume;\n }\n lastClose = tick.close;\n tick = yield result;\n }\n })();\n this.generator.next();\n closes.forEach((close, index) => {\n let tickInput = {\n close: closes[index],\n volume: volumes[index]\n };\n let result = this.generator.next(tickInput);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nOBV.calculate = obv;\nexport function obv(input) {\n Indicator.reverseInputs(input);\n var result = new OBV(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","/**\n * Created by AAravindan on 5/9/16.\n */\n\"use strict\";\nimport { ROC } from './ROC.js';\nimport { EMA } from '../moving_averages/EMA.js';\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class TRIXInput extends IndicatorInput {\n}\n;\nexport class TRIX extends Indicator {\n constructor(input) {\n super(input);\n let priceArray = input.values;\n let period = input.period;\n let format = this.format;\n let ema = new EMA({ period: period, values: [], format: (v) => { return v; } });\n let emaOfema = new EMA({ period: period, values: [], format: (v) => { return v; } });\n let emaOfemaOfema = new EMA({ period: period, values: [], format: (v) => { return v; } });\n let trixROC = new ROC({ period: 1, values: [], format: (v) => { return v; } });\n this.result = [];\n this.generator = (function* () {\n let tick = yield;\n while (true) {\n let initialema = ema.nextValue(tick);\n let smoothedResult = initialema ? emaOfema.nextValue(initialema) : undefined;\n let doubleSmoothedResult = smoothedResult ? emaOfemaOfema.nextValue(smoothedResult) : undefined;\n let result = doubleSmoothedResult ? trixROC.nextValue(doubleSmoothedResult) : undefined;\n tick = yield result ? format(result) : undefined;\n }\n })();\n this.generator.next();\n priceArray.forEach((tick) => {\n let result = this.generator.next(tick);\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n let nextResult = this.generator.next(price);\n if (nextResult.value !== undefined)\n return nextResult.value;\n }\n ;\n}\nTRIX.calculate = trix;\nexport function trix(input) {\n Indicator.reverseInputs(input);\n var result = new TRIX(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { EMA } from '../moving_averages/EMA';\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class ForceIndexInput extends IndicatorInput {\n constructor() {\n super(...arguments);\n this.period = 1;\n }\n}\n;\nexport class ForceIndex extends Indicator {\n constructor(input) {\n super(input);\n var closes = input.close;\n var volumes = input.volume;\n var period = input.period || 1;\n if (!((volumes.length === closes.length))) {\n throw ('Inputs(volume, close) not of equal size');\n }\n let emaForceIndex = new EMA({ values: [], period: period });\n this.result = [];\n this.generator = (function* () {\n var previousTick = yield;\n var tick = yield;\n let forceIndex;\n while (true) {\n forceIndex = (tick.close - previousTick.close) * tick.volume;\n previousTick = tick;\n tick = yield emaForceIndex.nextValue(forceIndex);\n }\n })();\n this.generator.next();\n volumes.forEach((tick, index) => {\n var result = this.generator.next({\n close: closes[index],\n volume: volumes[index]\n });\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n ;\n nextValue(price) {\n let result = this.generator.next(price).value;\n if (result != undefined) {\n return result;\n }\n }\n ;\n}\nForceIndex.calculate = forceindex;\nexport function forceindex(input) {\n Indicator.reverseInputs(input);\n var result = new ForceIndex(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { SMA } from '../moving_averages/SMA';\nimport LinkedList from '../Utils/FixedSizeLinkedList';\nexport class CCIInput extends IndicatorInput {\n}\n;\nexport class CCI extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var closes = input.close;\n var period = input.period;\n var format = this.format;\n let constant = .015;\n var currentTpSet = new LinkedList(period);\n ;\n var tpSMACalculator = new SMA({ period: period, values: [], format: (v) => { return v; } });\n if (!((lows.length === highs.length) && (highs.length === closes.length))) {\n throw ('Inputs(low,high, close) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var tick = yield;\n while (true) {\n let tp = (tick.high + tick.low + tick.close) / 3;\n currentTpSet.push(tp);\n let smaTp = tpSMACalculator.nextValue(tp);\n let meanDeviation = null;\n let cci;\n let sum = 0;\n if (smaTp != undefined) {\n //First, subtract the most recent 20-period average of the typical price from each period's typical price. \n //Second, take the absolute values of these numbers.\n //Third,sum the absolute values. \n for (let x of currentTpSet.iterator()) {\n sum = sum + (Math.abs(x - smaTp));\n }\n //Fourth, divide by the total number of periods (20). \n meanDeviation = sum / period;\n cci = (tp - smaTp) / (constant * meanDeviation);\n }\n tick = yield cci;\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index]\n });\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n ;\n nextValue(price) {\n let result = this.generator.next(price).value;\n if (result != undefined) {\n return result;\n }\n }\n ;\n}\nCCI.calculate = cci;\nexport function cci(input) {\n Indicator.reverseInputs(input);\n var result = new CCI(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { SMA } from '../moving_averages/SMA';\nexport class AwesomeOscillatorInput extends IndicatorInput {\n}\nexport class AwesomeOscillator extends Indicator {\n constructor(input) {\n super(input);\n var highs = input.high;\n var lows = input.low;\n var fastPeriod = input.fastPeriod;\n var slowPeriod = input.slowPeriod;\n var slowSMA = new SMA({ values: [], period: slowPeriod });\n var fastSMA = new SMA({ values: [], period: fastPeriod });\n this.result = [];\n this.generator = (function* () {\n var result;\n var tick;\n var medianPrice;\n var slowSmaValue;\n var fastSmaValue;\n tick = yield;\n while (true) {\n medianPrice = (tick.high + tick.low) / 2;\n slowSmaValue = slowSMA.nextValue(medianPrice);\n fastSmaValue = fastSMA.nextValue(medianPrice);\n if (slowSmaValue !== undefined && fastSmaValue !== undefined) {\n result = fastSmaValue - slowSmaValue;\n }\n tick = yield result;\n }\n })();\n this.generator.next();\n highs.forEach((tickHigh, index) => {\n var tickInput = {\n high: tickHigh,\n low: lows[index],\n };\n var result = this.generator.next(tickInput);\n if (result.value != undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return this.format(result.value);\n }\n }\n ;\n}\nAwesomeOscillator.calculate = awesomeoscillator;\nexport function awesomeoscillator(input) {\n Indicator.reverseInputs(input);\n var result = new AwesomeOscillator(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class VWAPInput extends IndicatorInput {\n}\n;\nexport class VWAP extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var closes = input.close;\n var volumes = input.volume;\n var format = this.format;\n if (!((lows.length === highs.length) && (highs.length === closes.length))) {\n throw ('Inputs(low,high, close) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var tick = yield;\n let cumulativeTotal = 0;\n let cumulativeVolume = 0;\n while (true) {\n let typicalPrice = (tick.high + tick.low + tick.close) / 3;\n let total = tick.volume * typicalPrice;\n cumulativeTotal = cumulativeTotal + total;\n cumulativeVolume = cumulativeVolume + tick.volume;\n tick = yield cumulativeTotal / cumulativeVolume;\n ;\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index],\n volume: volumes[index]\n });\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n ;\n nextValue(price) {\n let result = this.generator.next(price).value;\n if (result != undefined) {\n return result;\n }\n }\n ;\n}\nVWAP.calculate = vwap;\nexport function vwap(input) {\n Indicator.reverseInputs(input);\n var result = new VWAP(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class VolumeProfileInput extends IndicatorInput {\n}\nexport class VolumeProfileOutput {\n}\nexport function priceFallsBetweenBarRange(low, high, low1, high1) {\n return (low <= low1 && high >= low1) || (low1 <= low && high1 >= low);\n}\nexport class VolumeProfile extends Indicator {\n constructor(input) {\n super(input);\n var highs = input.high;\n var lows = input.low;\n var closes = input.close;\n var opens = input.open;\n var volumes = input.volume;\n var bars = input.noOfBars;\n if (!((lows.length === highs.length) && (highs.length === closes.length) && (highs.length === volumes.length))) {\n throw ('Inputs(low,high, close, volumes) not of equal size');\n }\n this.result = [];\n var max = Math.max(...highs, ...lows, ...closes, ...opens);\n var min = Math.min(...highs, ...lows, ...closes, ...opens);\n var barRange = (max - min) / bars;\n var lastEnd = min;\n for (let i = 0; i < bars; i++) {\n let rangeStart = lastEnd;\n let rangeEnd = rangeStart + barRange;\n lastEnd = rangeEnd;\n let bullishVolume = 0;\n let bearishVolume = 0;\n let totalVolume = 0;\n for (let priceBar = 0; priceBar < highs.length; priceBar++) {\n let priceBarStart = lows[priceBar];\n let priceBarEnd = highs[priceBar];\n let priceBarOpen = opens[priceBar];\n let priceBarClose = closes[priceBar];\n let priceBarVolume = volumes[priceBar];\n if (priceFallsBetweenBarRange(rangeStart, rangeEnd, priceBarStart, priceBarEnd)) {\n totalVolume = totalVolume + priceBarVolume;\n if (priceBarOpen > priceBarClose) {\n bearishVolume = bearishVolume + priceBarVolume;\n }\n else {\n bullishVolume = bullishVolume + priceBarVolume;\n }\n }\n }\n this.result.push({\n rangeStart, rangeEnd, bullishVolume, bearishVolume, totalVolume\n });\n }\n }\n ;\n nextValue(price) {\n throw ('Next value not supported for volume profile');\n }\n ;\n}\nVolumeProfile.calculate = volumeprofile;\nexport function volumeprofile(input) {\n Indicator.reverseInputs(input);\n var result = new VolumeProfile(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","/**\n * Created by AAravindan on 5/4/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class TypicalPriceInput extends IndicatorInput {\n}\nexport class TypicalPrice extends Indicator {\n constructor(input) {\n super(input);\n this.result = [];\n this.generator = (function* () {\n let priceInput = yield;\n while (true) {\n priceInput = yield (priceInput.high + priceInput.low + priceInput.close) / 3;\n }\n })();\n this.generator.next();\n input.low.forEach((tick, index) => {\n var result = this.generator.next({\n high: input.high[index],\n low: input.low[index],\n close: input.close[index],\n });\n this.result.push(result.value);\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n return result;\n }\n ;\n}\nTypicalPrice.calculate = typicalprice;\nexport function typicalprice(input) {\n Indicator.reverseInputs(input);\n var result = new TypicalPrice(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","/**\n * Created by AAravindan on 5/17/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { TypicalPrice } from '../chart_types/TypicalPrice';\nimport FixedSizeLinkedList from '../Utils/FixedSizeLinkedList';\nexport class MFIInput extends IndicatorInput {\n}\nexport class MFI extends Indicator {\n constructor(input) {\n super(input);\n var highs = input.high;\n var lows = input.low;\n var closes = input.close;\n var volumes = input.volume;\n var period = input.period;\n var typicalPrice = new TypicalPrice({ low: [], high: [], close: [] });\n var positiveFlow = new FixedSizeLinkedList(period, false, false, true);\n var negativeFlow = new FixedSizeLinkedList(period, false, false, true);\n if (!((lows.length === highs.length) && (highs.length === closes.length) && (highs.length === volumes.length))) {\n throw ('Inputs(low,high, close, volumes) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var result;\n var tick;\n var lastClose;\n var positiveFlowForPeriod;\n var rawMoneyFlow = 0;\n var moneyFlowRatio;\n var negativeFlowForPeriod;\n let typicalPriceValue = null;\n let prevousTypicalPrice = null;\n tick = yield;\n lastClose = tick.close; //Fist value \n tick = yield;\n while (true) {\n var { high, low, close, volume } = tick;\n var positionMoney = 0;\n var negativeMoney = 0;\n typicalPriceValue = typicalPrice.nextValue({ high, low, close });\n rawMoneyFlow = typicalPriceValue * volume;\n if ((typicalPriceValue != null) && (prevousTypicalPrice != null)) {\n typicalPriceValue > prevousTypicalPrice ? positionMoney = rawMoneyFlow : negativeMoney = rawMoneyFlow;\n positiveFlow.push(positionMoney);\n negativeFlow.push(negativeMoney);\n positiveFlowForPeriod = positiveFlow.periodSum;\n negativeFlowForPeriod = negativeFlow.periodSum;\n if ((positiveFlow.totalPushed >= period) && (positiveFlow.totalPushed >= period)) {\n moneyFlowRatio = positiveFlowForPeriod / negativeFlowForPeriod;\n result = 100 - 100 / (1 + moneyFlowRatio);\n }\n }\n prevousTypicalPrice = typicalPriceValue;\n tick = yield result;\n }\n })();\n this.generator.next();\n highs.forEach((tickHigh, index) => {\n var tickInput = {\n high: tickHigh,\n low: lows[index],\n close: closes[index],\n volume: volumes[index]\n };\n var result = this.generator.next(tickInput);\n if (result.value != undefined) {\n this.result.push(parseFloat(result.value.toFixed(2)));\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return (parseFloat(result.value.toFixed(2)));\n }\n }\n ;\n}\nMFI.calculate = mfi;\nexport function mfi(input) {\n Indicator.reverseInputs(input);\n var result = new MFI(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { IndicatorInput, Indicator } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/10/16.\n */\n\"use strict\";\nimport { SMA } from '../moving_averages/SMA';\nimport { RSI } from '../oscillators/RSI';\nimport { Stochastic } from '../momentum/Stochastic';\nexport class StochasticRsiInput extends IndicatorInput {\n}\n;\nexport class StochasticRSIOutput {\n}\n;\nexport class StochasticRSI extends Indicator {\n constructor(input) {\n super(input);\n let closes = input.values;\n let rsiPeriod = input.rsiPeriod;\n let stochasticPeriod = input.stochasticPeriod;\n let kPeriod = input.kPeriod;\n let dPeriod = input.dPeriod;\n let format = this.format;\n this.result = [];\n this.generator = (function* () {\n let index = 1;\n let rsi = new RSI({ period: rsiPeriod, values: [] });\n let stochastic = new Stochastic({ period: stochasticPeriod, high: [], low: [], close: [], signalPeriod: kPeriod });\n let dSma = new SMA({\n period: dPeriod,\n values: [],\n format: (v) => { return v; }\n });\n let lastRSI, stochasticRSI, d, result;\n var tick = yield;\n while (true) {\n lastRSI = rsi.nextValue(tick);\n if (lastRSI !== undefined) {\n var stochasticInput = { high: lastRSI, low: lastRSI, close: lastRSI };\n stochasticRSI = stochastic.nextValue(stochasticInput);\n if (stochasticRSI !== undefined && stochasticRSI.d !== undefined) {\n d = dSma.nextValue(stochasticRSI.d);\n if (d !== undefined)\n result = {\n stochRSI: stochasticRSI.k,\n k: stochasticRSI.d,\n d: d\n };\n }\n }\n tick = yield result;\n }\n })();\n this.generator.next();\n closes.forEach((tick, index) => {\n var result = this.generator.next(tick);\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(input) {\n let nextResult = this.generator.next(input);\n if (nextResult.value !== undefined)\n return nextResult.value;\n }\n ;\n}\nStochasticRSI.calculate = stochasticrsi;\nexport function stochasticrsi(input) {\n Indicator.reverseInputs(input);\n var result = new StochasticRSI(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport FixedSizedLinkedList from './FixedSizeLinkedList';\nexport class HighestInput extends IndicatorInput {\n}\nexport class Highest extends Indicator {\n constructor(input) {\n super(input);\n var values = input.values;\n var period = input.period;\n this.result = [];\n var periodList = new FixedSizedLinkedList(period, true, false, false);\n this.generator = (function* () {\n var result;\n var tick;\n var high;\n tick = yield;\n while (true) {\n periodList.push(tick);\n if (periodList.totalPushed >= period) {\n high = periodList.periodHigh;\n }\n tick = yield high;\n }\n })();\n this.generator.next();\n values.forEach((value, index) => {\n var result = this.generator.next(value);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return result.value;\n }\n }\n ;\n}\nHighest.calculate = highest;\nexport function highest(input) {\n Indicator.reverseInputs(input);\n var result = new Highest(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport FixedSizedLinkedList from './FixedSizeLinkedList';\nexport class LowestInput extends IndicatorInput {\n}\nexport class Lowest extends Indicator {\n constructor(input) {\n super(input);\n var values = input.values;\n var period = input.period;\n this.result = [];\n var periodList = new FixedSizedLinkedList(period, false, true, false);\n this.generator = (function* () {\n var result;\n var tick;\n var high;\n tick = yield;\n while (true) {\n periodList.push(tick);\n if (periodList.totalPushed >= period) {\n high = periodList.periodLow;\n }\n tick = yield high;\n }\n })();\n this.generator.next();\n values.forEach((value, index) => {\n var result = this.generator.next(value);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return result.value;\n }\n }\n ;\n}\nLowest.calculate = lowest;\nexport function lowest(input) {\n Indicator.reverseInputs(input);\n var result = new Lowest(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport FixedSizedLinkedList from './FixedSizeLinkedList';\nexport class SumInput extends IndicatorInput {\n}\nexport class Sum extends Indicator {\n constructor(input) {\n super(input);\n var values = input.values;\n var period = input.period;\n this.result = [];\n var periodList = new FixedSizedLinkedList(period, false, false, true);\n this.generator = (function* () {\n var result;\n var tick;\n var high;\n tick = yield;\n while (true) {\n periodList.push(tick);\n if (periodList.totalPushed >= period) {\n high = periodList.periodSum;\n }\n tick = yield high;\n }\n })();\n this.generator.next();\n values.forEach((value, index) => {\n var result = this.generator.next(value);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return result.value;\n }\n }\n ;\n}\nSum.calculate = sum;\nexport function sum(input) {\n Indicator.reverseInputs(input);\n var result = new Sum(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { CandleList } from '../StockData';\nimport { atr } from '../directionalmovement/ATR';\n/**\n * Created by AAravindan on 5/4/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class RenkoInput extends IndicatorInput {\n}\nclass Renko extends Indicator {\n constructor(input) {\n super(input);\n var format = this.format;\n let useATR = input.useATR;\n let brickSize = input.brickSize || 0;\n if (useATR) {\n let atrResult = atr(Object.assign({}, input));\n brickSize = atrResult[atrResult.length - 1];\n }\n this.result = new CandleList();\n ;\n if (brickSize === 0) {\n console.error('Not enough data to calculate brickSize for renko when using ATR');\n return;\n }\n let lastOpen = 0;\n let lastHigh = 0;\n let lastLow = Infinity;\n let lastClose = 0;\n let lastVolume = 0;\n let lastTimestamp = 0;\n this.generator = (function* () {\n let candleData = yield;\n while (true) {\n //Calculating first bar\n if (lastOpen === 0) {\n lastOpen = candleData.close;\n lastHigh = candleData.high;\n lastLow = candleData.low;\n lastClose = candleData.close;\n lastVolume = candleData.volume;\n lastTimestamp = candleData.timestamp;\n candleData = yield;\n continue;\n }\n let absoluteMovementFromClose = Math.abs(candleData.close - lastClose);\n let absoluteMovementFromOpen = Math.abs(candleData.close - lastOpen);\n if ((absoluteMovementFromClose >= brickSize) && (absoluteMovementFromOpen >= brickSize)) {\n let reference = absoluteMovementFromClose > absoluteMovementFromOpen ? lastOpen : lastClose;\n let calculated = {\n open: reference,\n high: lastHigh > candleData.high ? lastHigh : candleData.high,\n low: lastLow < candleData.Low ? lastLow : candleData.low,\n close: reference > candleData.close ? (reference - brickSize) : (reference + brickSize),\n volume: lastVolume + candleData.volume,\n timestamp: candleData.timestamp\n };\n lastOpen = calculated.open;\n lastHigh = calculated.close;\n lastLow = calculated.close;\n lastClose = calculated.close;\n lastVolume = 0;\n candleData = yield calculated;\n }\n else {\n lastHigh = lastHigh > candleData.high ? lastHigh : candleData.high;\n lastLow = lastLow < candleData.Low ? lastLow : candleData.low;\n lastVolume = lastVolume + candleData.volume;\n lastTimestamp = candleData.timestamp;\n candleData = yield;\n }\n }\n })();\n this.generator.next();\n input.low.forEach((tick, index) => {\n var result = this.generator.next({\n open: input.open[index],\n high: input.high[index],\n low: input.low[index],\n close: input.close[index],\n volume: input.volume[index],\n timestamp: input.timestamp[index]\n });\n if (result.value) {\n this.result.open.push(result.value.open);\n this.result.high.push(result.value.high);\n this.result.low.push(result.value.low);\n this.result.close.push(result.value.close);\n this.result.volume.push(result.value.volume);\n this.result.timestamp.push(result.value.timestamp);\n }\n });\n }\n nextValue(price) {\n console.error('Cannot calculate next value on Renko, Every value has to be recomputed for every change, use calcualte method');\n return null;\n }\n ;\n}\nRenko.calculate = renko;\nexport function renko(input) {\n Indicator.reverseInputs(input);\n var result = new Renko(input).result;\n if (input.reversedInput) {\n result.open.reverse();\n result.high.reverse();\n result.low.reverse();\n result.close.reverse();\n result.volume.reverse();\n result.timestamp.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { CandleList } from '../StockData';\n/**\n * Created by AAravindan on 5/4/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class HeikinAshiInput extends IndicatorInput {\n}\nexport class HeikinAshi extends Indicator {\n constructor(input) {\n super(input);\n var format = this.format;\n this.result = new CandleList();\n let lastOpen = null;\n let lastHigh = 0;\n let lastLow = Infinity;\n let lastClose = 0;\n let lastVolume = 0;\n let lastTimestamp = 0;\n this.generator = (function* () {\n let candleData = yield;\n let calculated = null;\n while (true) {\n if (lastOpen === null) {\n lastOpen = (candleData.close + candleData.open) / 2;\n lastHigh = candleData.high;\n lastLow = candleData.low;\n lastClose = (candleData.close + candleData.open + candleData.high + candleData.low) / 4;\n lastVolume = (candleData.volume || 0);\n lastTimestamp = (candleData.timestamp || 0);\n calculated = {\n open: lastOpen,\n high: lastHigh,\n low: lastLow,\n close: lastClose,\n volume: candleData.volume || 0,\n timestamp: (candleData.timestamp || 0)\n };\n }\n else {\n let newClose = (candleData.close + candleData.open + candleData.high + candleData.low) / 4;\n let newOpen = (lastOpen + lastClose) / 2;\n let newHigh = Math.max(newOpen, newClose, candleData.high);\n let newLow = Math.min(candleData.low, newOpen, newClose);\n calculated = {\n close: newClose,\n open: newOpen,\n high: newHigh,\n low: newLow,\n volume: (candleData.volume || 0),\n timestamp: (candleData.timestamp || 0)\n };\n lastClose = newClose;\n lastOpen = newOpen;\n lastHigh = newHigh;\n lastLow = newLow;\n }\n candleData = yield calculated;\n }\n })();\n this.generator.next();\n input.low.forEach((tick, index) => {\n var result = this.generator.next({\n open: input.open[index],\n high: input.high[index],\n low: input.low[index],\n close: input.close[index],\n volume: input.volume ? input.volume[index] : input.volume,\n timestamp: input.timestamp ? input.timestamp[index] : input.timestamp\n });\n if (result.value) {\n this.result.open.push(result.value.open);\n this.result.high.push(result.value.high);\n this.result.low.push(result.value.low);\n this.result.close.push(result.value.close);\n this.result.volume.push(result.value.volume);\n this.result.timestamp.push(result.value.timestamp);\n }\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n return result;\n }\n ;\n}\nHeikinAshi.calculate = heikinashi;\nexport function heikinashi(input) {\n Indicator.reverseInputs(input);\n var result = new HeikinAshi(input).result;\n if (input.reversedInput) {\n result.open.reverse();\n result.high.reverse();\n result.low.reverse();\n result.close.reverse();\n result.volume.reverse();\n result.timestamp.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","export default class CandlestickFinder {\n constructor() {\n // if (new.target === Abstract) {\n // throw new TypeError(\"Abstract class\");\n // }\n }\n approximateEqual(a, b) {\n let left = parseFloat(Math.abs(a - b).toPrecision(4)) * 1;\n let right = parseFloat((a * 0.001).toPrecision(4)) * 1;\n return left <= right;\n }\n logic(data) {\n throw \"this has to be implemented\";\n }\n getAllPatternIndex(data) {\n if (data.close.length < this.requiredCount) {\n console.warn('Data count less than data required for the strategy ', this.name);\n return [];\n }\n if (data.reversedInput) {\n data.open.reverse();\n data.high.reverse();\n data.low.reverse();\n data.close.reverse();\n }\n let strategyFn = this.logic;\n return this._generateDataForCandleStick(data)\n .map((current, index) => {\n return strategyFn.call(this, current) ? index : undefined;\n }).filter((hasIndex) => {\n return hasIndex;\n });\n }\n hasPattern(data) {\n if (data.close.length < this.requiredCount) {\n console.warn('Data count less than data required for the strategy ', this.name);\n return false;\n }\n if (data.reversedInput) {\n data.open.reverse();\n data.high.reverse();\n data.low.reverse();\n data.close.reverse();\n }\n let strategyFn = this.logic;\n return strategyFn.call(this, this._getLastDataForCandleStick(data));\n }\n _getLastDataForCandleStick(data) {\n let requiredCount = this.requiredCount;\n if (data.close.length === requiredCount) {\n return data;\n }\n else {\n let returnVal = {\n open: [],\n high: [],\n low: [],\n close: []\n };\n let i = 0;\n let index = data.close.length - requiredCount;\n while (i < requiredCount) {\n returnVal.open.push(data.open[index + i]);\n returnVal.high.push(data.high[index + i]);\n returnVal.low.push(data.low[index + i]);\n returnVal.close.push(data.close[index + i]);\n i++;\n }\n return returnVal;\n }\n }\n _generateDataForCandleStick(data) {\n let requiredCount = this.requiredCount;\n let generatedData = data.close.map(function (currentData, index) {\n let i = 0;\n let returnVal = {\n open: [],\n high: [],\n low: [],\n close: []\n };\n while (i < requiredCount) {\n returnVal.open.push(data.open[index + i]);\n returnVal.high.push(data.high[index + i]);\n returnVal.low.push(data.low[index + i]);\n returnVal.close.push(data.close[index + i]);\n i++;\n }\n return returnVal;\n }).filter((val, index) => { return (index <= (data.close.length - requiredCount)); });\n return generatedData;\n }\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class MorningStar extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'MorningStar';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let firstdaysMidpoint = ((firstdaysOpen + firstdaysClose) / 2);\n let isFirstBearish = firstdaysClose < firstdaysOpen;\n let isSmallBodyExists = ((firstdaysLow > seconddaysLow) &&\n (firstdaysLow > seconddaysHigh));\n let isThirdBullish = thirddaysOpen < thirddaysClose;\n let gapExists = ((seconddaysHigh < firstdaysLow) &&\n (seconddaysLow < firstdaysLow) &&\n (thirddaysOpen > seconddaysHigh) &&\n (seconddaysClose < thirddaysOpen));\n let doesCloseAboveFirstMidpoint = thirddaysClose > firstdaysMidpoint;\n return (isFirstBearish && isSmallBodyExists && gapExists && isThirdBullish && doesCloseAboveFirstMidpoint);\n }\n}\nexport function morningstar(data) {\n return new MorningStar().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishEngulfingPattern extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BullishEngulfingPattern';\n this.requiredCount = 2;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let isBullishEngulfing = ((firstdaysClose < firstdaysOpen) &&\n (firstdaysOpen > seconddaysOpen) &&\n (firstdaysClose > seconddaysOpen) &&\n (firstdaysOpen < seconddaysClose));\n return (isBullishEngulfing);\n }\n}\nexport function bullishengulfingpattern(data) {\n return new BullishEngulfingPattern().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishHarami extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 2;\n this.name = \"BullishHarami\";\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let isBullishHaramiPattern = ((firstdaysOpen > seconddaysOpen) &&\n (firstdaysClose < seconddaysOpen) &&\n (firstdaysClose < seconddaysClose) &&\n (firstdaysOpen > seconddaysLow) &&\n (firstdaysHigh > seconddaysHigh));\n return (isBullishHaramiPattern);\n }\n}\nexport function bullishharami(data) {\n return new BullishHarami().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishHaramiCross extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 2;\n this.name = 'BullishHaramiCross';\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let isBullishHaramiCrossPattern = ((firstdaysOpen > seconddaysOpen) &&\n (firstdaysClose < seconddaysOpen) &&\n (firstdaysClose < seconddaysClose) &&\n (firstdaysOpen > seconddaysLow) &&\n (firstdaysHigh > seconddaysHigh));\n let isSecondDayDoji = this.approximateEqual(seconddaysOpen, seconddaysClose);\n return (isBullishHaramiCrossPattern && isSecondDayDoji);\n }\n}\nexport function bullishharamicross(data) {\n return new BullishHaramiCross().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class Doji extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'Doji';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isOpenEqualsClose = this.approximateEqual(daysOpen, daysClose);\n let isHighEqualsOpen = isOpenEqualsClose && this.approximateEqual(daysOpen, daysHigh);\n let isLowEqualsClose = isOpenEqualsClose && this.approximateEqual(daysClose, daysLow);\n return (isOpenEqualsClose && isHighEqualsOpen == isLowEqualsClose);\n }\n}\nexport function doji(data) {\n return new Doji().hasPattern(data);\n}\n","import Doji from './Doji';\nimport CandlestickFinder from './CandlestickFinder';\nexport default class MorningDojiStar extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'MorningDojiStar';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let firstdaysMidpoint = ((firstdaysOpen + firstdaysClose) / 2);\n let isFirstBearish = firstdaysClose < firstdaysOpen;\n let dojiExists = new Doji().hasPattern({\n \"open\": [seconddaysOpen],\n \"close\": [seconddaysClose],\n \"high\": [seconddaysHigh],\n \"low\": [seconddaysLow]\n });\n let isThirdBullish = thirddaysOpen < thirddaysClose;\n let gapExists = ((seconddaysHigh < firstdaysLow) &&\n (seconddaysLow < firstdaysLow) &&\n (thirddaysOpen > seconddaysHigh) &&\n (seconddaysClose < thirddaysOpen));\n let doesCloseAboveFirstMidpoint = thirddaysClose > firstdaysMidpoint;\n return (isFirstBearish && dojiExists && isThirdBullish && gapExists &&\n doesCloseAboveFirstMidpoint);\n }\n}\nexport function morningdojistar(data) {\n return new MorningDojiStar().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class DownsideTasukiGap extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 3;\n this.name = 'DownsideTasukiGap';\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let isFirstBearish = firstdaysClose < firstdaysOpen;\n let isSecondBearish = seconddaysClose < seconddaysOpen;\n let isThirdBullish = thirddaysClose > thirddaysOpen;\n let isFirstGapExists = seconddaysHigh < firstdaysLow;\n let isDownsideTasukiGap = ((seconddaysOpen > thirddaysOpen) &&\n (seconddaysClose < thirddaysOpen) &&\n (thirddaysClose > seconddaysOpen) &&\n (thirddaysClose < firstdaysClose));\n return (isFirstBearish && isSecondBearish && isThirdBullish && isFirstGapExists && isDownsideTasukiGap);\n }\n}\nexport function downsidetasukigap(data) {\n return new DownsideTasukiGap().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishMarubozu extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BullishMarubozu';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isBullishMarbozu = this.approximateEqual(daysClose, daysHigh) &&\n this.approximateEqual(daysLow, daysOpen) &&\n daysOpen < daysClose &&\n daysOpen < daysHigh;\n return (isBullishMarbozu);\n }\n}\nexport function bullishmarubozu(data) {\n return new BullishMarubozu().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class PiercingLine extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 2;\n this.name = 'PiercingLine';\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let firstdaysMidpoint = ((firstdaysOpen + firstdaysClose) / 2);\n let isDowntrend = seconddaysLow < firstdaysLow;\n let isFirstBearish = firstdaysClose < firstdaysOpen;\n let isSecondBullish = seconddaysClose > seconddaysOpen;\n let isPiercingLinePattern = ((firstdaysLow > seconddaysOpen) &&\n (seconddaysClose > firstdaysMidpoint));\n return (isDowntrend && isFirstBearish && isPiercingLinePattern && isSecondBullish);\n }\n}\nexport function piercingline(data) {\n return new PiercingLine().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class ThreeWhiteSoldiers extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'ThreeWhiteSoldiers';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let isUpTrend = seconddaysHigh > firstdaysHigh &&\n thirddaysHigh > seconddaysHigh;\n let isAllBullish = firstdaysOpen < firstdaysClose &&\n seconddaysOpen < seconddaysClose &&\n thirddaysOpen < thirddaysClose;\n let doesOpenWithinPreviousBody = firstdaysClose > seconddaysOpen &&\n seconddaysOpen < firstdaysHigh &&\n seconddaysHigh > thirddaysOpen &&\n thirddaysOpen < seconddaysClose;\n return (isUpTrend && isAllBullish && doesOpenWithinPreviousBody);\n }\n}\nexport function threewhitesoldiers(data) {\n return new ThreeWhiteSoldiers().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishHammerStick extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BullishHammerStick';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isBullishHammer = daysClose > daysOpen;\n isBullishHammer = isBullishHammer && this.approximateEqual(daysClose, daysHigh);\n isBullishHammer = isBullishHammer && (daysClose - daysOpen) <= 2 * (daysOpen - daysLow);\n return isBullishHammer;\n }\n}\nexport function bullishhammerstick(data) {\n return new BullishHammerStick().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishInvertedHammerStick extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BullishInvertedHammerStick';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isBullishInvertedHammer = daysClose > daysOpen;\n isBullishInvertedHammer = isBullishInvertedHammer && this.approximateEqual(daysOpen, daysLow);\n isBullishInvertedHammer = isBullishInvertedHammer && (daysClose - daysOpen) <= 2 * (daysHigh - daysClose);\n return isBullishInvertedHammer;\n }\n}\nexport function bullishinvertedhammerstick(data) {\n return new BullishInvertedHammerStick().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishHammerStick extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BearishHammerStick';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isBearishHammer = daysOpen > daysClose;\n isBearishHammer = isBearishHammer && this.approximateEqual(daysOpen, daysHigh);\n isBearishHammer = isBearishHammer && (daysOpen - daysClose) <= 2 * (daysClose - daysLow);\n return isBearishHammer;\n }\n}\nexport function bearishhammerstick(data) {\n return new BearishHammerStick().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishInvertedHammerStick extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BearishInvertedHammerStick';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isBearishInvertedHammer = daysOpen > daysClose;\n isBearishInvertedHammer = isBearishInvertedHammer && this.approximateEqual(daysClose, daysLow);\n isBearishInvertedHammer = isBearishInvertedHammer && (daysOpen - daysClose) <= 2 * (daysHigh - daysOpen);\n return isBearishInvertedHammer;\n }\n}\nexport function bearishinvertedhammerstick(data) {\n return new BearishInvertedHammerStick().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nimport { averageloss } from '../Utils/AverageLoss';\nimport { averagegain } from '../Utils/AverageGain';\nimport { bearishhammerstick } from './BearishHammerStick';\nimport { bearishinvertedhammerstick } from './BearishInvertedHammerStick';\nimport { bullishhammerstick } from './BullishHammerStick';\nimport { bullishinvertedhammerstick } from './BullishInvertedHammerStick';\nexport default class HammerPattern extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'HammerPattern';\n this.requiredCount = 5;\n }\n logic(data) {\n let isPattern = this.downwardTrend(data);\n isPattern = isPattern && this.includesHammer(data);\n isPattern = isPattern && this.hasConfirmation(data);\n return isPattern;\n }\n downwardTrend(data, confirm = true) {\n let end = confirm ? 3 : 4;\n // Analyze trends in closing prices of the first three or four candlesticks\n let gains = averagegain({ values: data.close.slice(0, end), period: end - 1 });\n let losses = averageloss({ values: data.close.slice(0, end), period: end - 1 });\n // Downward trend, so more losses than gains\n return losses > gains;\n }\n includesHammer(data, confirm = true) {\n let start = confirm ? 3 : 4;\n let end = confirm ? 4 : undefined;\n let possibleHammerData = {\n open: data.open.slice(start, end),\n close: data.close.slice(start, end),\n low: data.low.slice(start, end),\n high: data.high.slice(start, end),\n };\n let isPattern = bearishhammerstick(possibleHammerData);\n isPattern = isPattern || bearishinvertedhammerstick(possibleHammerData);\n isPattern = isPattern || bullishhammerstick(possibleHammerData);\n isPattern = isPattern || bullishinvertedhammerstick(possibleHammerData);\n return isPattern;\n }\n hasConfirmation(data) {\n let possibleHammer = {\n open: data.open[3],\n close: data.close[3],\n low: data.low[3],\n high: data.high[3],\n };\n let possibleConfirmation = {\n open: data.open[4],\n close: data.close[4],\n low: data.low[4],\n high: data.high[4],\n };\n // Confirmation candlestick is bullish\n let isPattern = possibleConfirmation.open < possibleConfirmation.close;\n return isPattern && possibleHammer.close < possibleConfirmation.close;\n }\n}\nexport function hammerpattern(data) {\n return new HammerPattern().hasPattern(data);\n}\n","import HammerPattern from './HammerPattern';\nexport default class HammerPatternUnconfirmed extends HammerPattern {\n constructor() {\n super();\n this.name = 'HammerPatternUnconfirmed';\n }\n logic(data) {\n let isPattern = this.downwardTrend(data, false);\n isPattern = isPattern && this.includesHammer(data, false);\n return isPattern;\n }\n}\nexport function hammerpatternunconfirmed(data) {\n return new HammerPatternUnconfirmed().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nimport { averageloss } from '../Utils/AverageLoss';\nimport { averagegain } from '../Utils/AverageGain';\nexport default class TweezerBottom extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'TweezerBottom';\n this.requiredCount = 5;\n }\n logic(data) {\n return this.downwardTrend(data) && data.low[3] == data.low[4];\n }\n downwardTrend(data) {\n // Analyze trends in closing prices of the first three or four candlesticks\n let gains = averagegain({ values: data.close.slice(0, 3), period: 2 });\n let losses = averageloss({ values: data.close.slice(0, 3), period: 2 });\n // Downward trend, so more losses than gains\n return losses > gains;\n }\n}\nexport function tweezerbottom(data) {\n return new TweezerBottom().hasPattern(data);\n}\n","import MorningStar from './MorningStar';\nimport BullishEngulfingPattern from './BullishEngulfingPattern';\nimport BullishHarami from './BullishHarami';\nimport BullishHaramiCross from './BullishHaramiCross';\nimport MorningDojiStar from './MorningDojiStar';\nimport DownsideTasukiGap from './DownsideTasukiGap';\nimport BullishMarubozu from './BullishMarubozu';\nimport PiercingLine from './PiercingLine';\nimport ThreeWhiteSoldiers from './ThreeWhiteSoldiers';\nimport BullishHammerStick from './BullishHammerStick';\nimport BullishInvertedHammerStick from './BullishInvertedHammerStick';\nimport HammerPattern from './HammerPattern';\nimport HammerPatternUnconfirmed from './HammerPatternUnconfirmed';\nimport CandlestickFinder from './CandlestickFinder';\nimport TweezerBottom from './TweezerBottom';\nlet bullishPatterns = [\n new BullishEngulfingPattern(),\n new DownsideTasukiGap(),\n new BullishHarami(),\n new BullishHaramiCross(),\n new MorningDojiStar(),\n new MorningStar(),\n new BullishMarubozu(),\n new PiercingLine(),\n new ThreeWhiteSoldiers(),\n new BullishHammerStick(),\n new BullishInvertedHammerStick(),\n new HammerPattern(),\n new HammerPatternUnconfirmed(),\n new TweezerBottom()\n];\nexport default class BullishPatterns extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'Bullish Candlesticks';\n }\n hasPattern(data) {\n return bullishPatterns.reduce(function (state, pattern) {\n let result = pattern.hasPattern(data);\n return state || result;\n }, false);\n }\n}\nexport function bullish(data) {\n return new BullishPatterns().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishEngulfingPattern extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BearishEngulfingPattern';\n this.requiredCount = 2;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let isBearishEngulfing = ((firstdaysClose > firstdaysOpen) &&\n (firstdaysOpen < seconddaysOpen) &&\n (firstdaysClose < seconddaysOpen) &&\n (firstdaysOpen > seconddaysClose));\n return (isBearishEngulfing);\n }\n}\nexport function bearishengulfingpattern(data) {\n return new BearishEngulfingPattern().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishHarami extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 2;\n this.name = 'BearishHarami';\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let isBearishHaramiPattern = ((firstdaysOpen < seconddaysOpen) &&\n (firstdaysClose > seconddaysOpen) &&\n (firstdaysClose > seconddaysClose) &&\n (firstdaysOpen < seconddaysLow) &&\n (firstdaysHigh > seconddaysHigh));\n return (isBearishHaramiPattern);\n }\n}\nexport function bearishharami(data) {\n return new BearishHarami().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishHaramiCross extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 2;\n this.name = 'BearishHaramiCross';\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let isBearishHaramiCrossPattern = ((firstdaysOpen < seconddaysOpen) &&\n (firstdaysClose > seconddaysOpen) &&\n (firstdaysClose > seconddaysClose) &&\n (firstdaysOpen < seconddaysLow) &&\n (firstdaysHigh > seconddaysHigh));\n let isSecondDayDoji = this.approximateEqual(seconddaysOpen, seconddaysClose);\n return (isBearishHaramiCrossPattern && isSecondDayDoji);\n }\n}\nexport function bearishharamicross(data) {\n return new BearishHaramiCross().hasPattern(data);\n}\n","import Doji from './Doji';\nimport CandlestickFinder from './CandlestickFinder';\nexport default class EveningDojiStar extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'EveningDojiStar';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let firstdaysMidpoint = ((firstdaysOpen + firstdaysClose) / 2);\n let isFirstBullish = firstdaysClose > firstdaysOpen;\n let dojiExists = new Doji().hasPattern({\n \"open\": [seconddaysOpen],\n \"close\": [seconddaysClose],\n \"high\": [seconddaysHigh],\n \"low\": [seconddaysLow]\n });\n let isThirdBearish = thirddaysOpen > thirddaysClose;\n let gapExists = ((seconddaysHigh > firstdaysHigh) &&\n (seconddaysLow > firstdaysHigh) &&\n (thirddaysOpen < seconddaysLow) &&\n (seconddaysClose > thirddaysOpen));\n let doesCloseBelowFirstMidpoint = thirddaysClose < firstdaysMidpoint;\n return (isFirstBullish && dojiExists && gapExists && isThirdBearish && doesCloseBelowFirstMidpoint);\n }\n}\nexport function eveningdojistar(data) {\n return new EveningDojiStar().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class EveningStar extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'EveningStar';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let firstdaysMidpoint = ((firstdaysOpen + firstdaysClose) / 2);\n let isFirstBullish = firstdaysClose > firstdaysOpen;\n let isSmallBodyExists = ((firstdaysHigh < seconddaysLow) &&\n (firstdaysHigh < seconddaysHigh));\n let isThirdBearish = thirddaysOpen > thirddaysClose;\n let gapExists = ((seconddaysHigh > firstdaysHigh) &&\n (seconddaysLow > firstdaysHigh) &&\n (thirddaysOpen < seconddaysLow) &&\n (seconddaysClose > thirddaysOpen));\n let doesCloseBelowFirstMidpoint = thirddaysClose < firstdaysMidpoint;\n return (isFirstBullish && isSmallBodyExists && gapExists && isThirdBearish && doesCloseBelowFirstMidpoint);\n }\n}\nexport function eveningstar(data) {\n return new EveningStar().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishMarubozu extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BearishMarubozu';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isBearishMarbozu = this.approximateEqual(daysOpen, daysHigh) &&\n this.approximateEqual(daysLow, daysClose) &&\n daysOpen > daysClose &&\n daysOpen > daysLow;\n return (isBearishMarbozu);\n }\n}\nexport function bearishmarubozu(data) {\n return new BearishMarubozu().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class ThreeBlackCrows extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'ThreeBlackCrows';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let isDownTrend = firstdaysLow > seconddaysLow &&\n seconddaysLow > thirddaysLow;\n let isAllBearish = firstdaysOpen > firstdaysClose &&\n seconddaysOpen > seconddaysClose &&\n thirddaysOpen > thirddaysClose;\n let doesOpenWithinPreviousBody = firstdaysOpen > seconddaysOpen &&\n seconddaysOpen > firstdaysClose &&\n seconddaysOpen > thirddaysOpen &&\n thirddaysOpen > seconddaysClose;\n return (isDownTrend && isAllBearish && doesOpenWithinPreviousBody);\n }\n}\nexport function threeblackcrows(data) {\n return new ThreeBlackCrows().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nimport { averageloss } from '../Utils/AverageLoss';\nimport { averagegain } from '../Utils/AverageGain';\nimport { bearishhammerstick } from './BearishHammerStick';\nimport { bullishhammerstick } from './BullishHammerStick';\nexport default class HangingMan extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'HangingMan';\n this.requiredCount = 5;\n }\n logic(data) {\n let isPattern = this.upwardTrend(data);\n isPattern = isPattern && this.includesHammer(data);\n isPattern = isPattern && this.hasConfirmation(data);\n return isPattern;\n }\n upwardTrend(data, confirm = true) {\n let end = confirm ? 3 : 4;\n // Analyze trends in closing prices of the first three or four candlesticks\n let gains = averagegain({ values: data.close.slice(0, end), period: end - 1 });\n let losses = averageloss({ values: data.close.slice(0, end), period: end - 1 });\n // Upward trend, so more gains than losses\n return gains > losses;\n }\n includesHammer(data, confirm = true) {\n let start = confirm ? 3 : 4;\n let end = confirm ? 4 : undefined;\n let possibleHammerData = {\n open: data.open.slice(start, end),\n close: data.close.slice(start, end),\n low: data.low.slice(start, end),\n high: data.high.slice(start, end),\n };\n let isPattern = bearishhammerstick(possibleHammerData);\n isPattern = isPattern || bullishhammerstick(possibleHammerData);\n return isPattern;\n }\n hasConfirmation(data) {\n let possibleHammer = {\n open: data.open[3],\n close: data.close[3],\n low: data.low[3],\n high: data.high[3],\n };\n let possibleConfirmation = {\n open: data.open[4],\n close: data.close[4],\n low: data.low[4],\n high: data.high[4],\n };\n // Confirmation candlestick is bearish\n let isPattern = possibleConfirmation.open > possibleConfirmation.close;\n return isPattern && possibleHammer.close > possibleConfirmation.close;\n }\n}\nexport function hangingman(data) {\n return new HangingMan().hasPattern(data);\n}\n","import HangingMan from './HangingMan';\nexport default class HangingManUnconfirmed extends HangingMan {\n constructor() {\n super();\n this.name = 'HangingManUnconfirmed';\n }\n logic(data) {\n let isPattern = this.upwardTrend(data, false);\n isPattern = isPattern && this.includesHammer(data, false);\n return isPattern;\n }\n}\nexport function hangingmanunconfirmed(data) {\n return new HangingManUnconfirmed().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nimport { averageloss } from '../Utils/AverageLoss';\nimport { averagegain } from '../Utils/AverageGain';\nimport { bearishinvertedhammerstick } from './BearishInvertedHammerStick';\nimport { bullishinvertedhammerstick } from './BullishInvertedHammerStick';\nexport default class ShootingStar extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'ShootingStar';\n this.requiredCount = 5;\n }\n logic(data) {\n let isPattern = this.upwardTrend(data);\n isPattern = isPattern && this.includesHammer(data);\n isPattern = isPattern && this.hasConfirmation(data);\n return isPattern;\n }\n upwardTrend(data, confirm = true) {\n let end = confirm ? 3 : 4;\n // Analyze trends in closing prices of the first three or four candlesticks\n let gains = averagegain({ values: data.close.slice(0, end), period: end - 1 });\n let losses = averageloss({ values: data.close.slice(0, end), period: end - 1 });\n // Upward trend, so more gains than losses\n return gains > losses;\n }\n includesHammer(data, confirm = true) {\n let start = confirm ? 3 : 4;\n let end = confirm ? 4 : undefined;\n let possibleHammerData = {\n open: data.open.slice(start, end),\n close: data.close.slice(start, end),\n low: data.low.slice(start, end),\n high: data.high.slice(start, end),\n };\n let isPattern = bearishinvertedhammerstick(possibleHammerData);\n isPattern = isPattern || bullishinvertedhammerstick(possibleHammerData);\n return isPattern;\n }\n hasConfirmation(data) {\n let possibleHammer = {\n open: data.open[3],\n close: data.close[3],\n low: data.low[3],\n high: data.high[3],\n };\n let possibleConfirmation = {\n open: data.open[4],\n close: data.close[4],\n low: data.low[4],\n high: data.high[4],\n };\n // Confirmation candlestick is bearish\n let isPattern = possibleConfirmation.open > possibleConfirmation.close;\n return isPattern && possibleHammer.close > possibleConfirmation.close;\n }\n}\nexport function shootingstar(data) {\n return new ShootingStar().hasPattern(data);\n}\n","import ShootingStar from './ShootingStar';\nexport default class ShootingStarUnconfirmed extends ShootingStar {\n constructor() {\n super();\n this.name = 'ShootingStarUnconfirmed';\n }\n logic(data) {\n let isPattern = this.upwardTrend(data, false);\n isPattern = isPattern && this.includesHammer(data, false);\n return isPattern;\n }\n}\nexport function shootingstarunconfirmed(data) {\n return new ShootingStarUnconfirmed().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nimport { averageloss } from '../Utils/AverageLoss';\nimport { averagegain } from '../Utils/AverageGain';\nexport default class TweezerTop extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'TweezerTop';\n this.requiredCount = 5;\n }\n logic(data) {\n return this.upwardTrend(data) && data.high[3] == data.high[4];\n }\n upwardTrend(data) {\n // Analyze trends in closing prices of the first three or four candlesticks\n let gains = averagegain({ values: data.close.slice(0, 3), period: 2 });\n let losses = averageloss({ values: data.close.slice(0, 3), period: 2 });\n // Upward trend, so more gains than losses\n return gains > losses;\n }\n}\nexport function tweezertop(data) {\n return new TweezerTop().hasPattern(data);\n}\n","import BearishEngulfingPattern from './BearishEngulfingPattern';\nimport BearishHarami from './BearishHarami';\nimport BearishHaramiCross from './BearishHaramiCross';\nimport EveningDojiStar from './EveningDojiStar';\nimport EveningStar from './EveningStar';\nimport BearishMarubozu from './BearishMarubozu';\nimport ThreeBlackCrows from './ThreeBlackCrows';\nimport BearishHammerStick from './BearishHammerStick';\nimport BearishInvertedHammerStick from './BearishInvertedHammerStick';\nimport HangingMan from './HangingMan';\nimport HangingManUnconfirmed from './HangingManUnconfirmed';\nimport ShootingStar from './ShootingStar';\nimport ShootingStarUnconfirmed from './ShootingStarUnconfirmed';\nimport TweezerTop from './TweezerTop';\nimport CandlestickFinder from './CandlestickFinder';\nlet bearishPatterns = [\n new BearishEngulfingPattern(),\n new BearishHarami(),\n new BearishHaramiCross(),\n new EveningDojiStar(),\n new EveningStar(),\n new BearishMarubozu(),\n new ThreeBlackCrows(),\n new BearishHammerStick(),\n new BearishInvertedHammerStick(),\n new HangingMan(),\n new HangingManUnconfirmed(),\n new ShootingStar(),\n new ShootingStarUnconfirmed(),\n new TweezerTop()\n];\nexport default class BearishPatterns extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'Bearish Candlesticks';\n }\n hasPattern(data) {\n return bearishPatterns.reduce(function (state, pattern) {\n return state || pattern.hasPattern(data);\n }, false);\n }\n}\nexport function bearish(data) {\n return new BearishPatterns().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nimport Doji from './Doji';\nexport default class AbandonedBaby extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'AbandonedBaby';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let isFirstBearish = firstdaysClose < firstdaysOpen;\n let dojiExists = new Doji().hasPattern({\n \"open\": [seconddaysOpen],\n \"close\": [seconddaysClose],\n \"high\": [seconddaysHigh],\n \"low\": [seconddaysLow]\n });\n let gapExists = ((seconddaysHigh < firstdaysLow) &&\n (thirddaysLow > seconddaysHigh) &&\n (thirddaysClose > thirddaysOpen));\n let isThirdBullish = (thirddaysHigh < firstdaysOpen);\n return (isFirstBearish && dojiExists && gapExists && isThirdBullish);\n }\n}\nexport function abandonedbaby(data) {\n return new AbandonedBaby().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class DarkCloudCover extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'DarkCloudCover';\n this.requiredCount = 2;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let firstdayMidpoint = ((firstdaysClose + firstdaysOpen) / 2);\n let isFirstBullish = firstdaysClose > firstdaysOpen;\n let isSecondBearish = seconddaysClose < seconddaysOpen;\n let isDarkCloudPattern = ((seconddaysOpen > firstdaysHigh) &&\n (seconddaysClose < firstdayMidpoint) &&\n (seconddaysClose > firstdaysOpen));\n return (isFirstBullish && isSecondBearish && isDarkCloudPattern);\n }\n}\nexport function darkcloudcover(data) {\n return new DarkCloudCover().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class DragonFlyDoji extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 1;\n this.name = 'DragonFlyDoji';\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isOpenEqualsClose = this.approximateEqual(daysOpen, daysClose);\n let isHighEqualsOpen = isOpenEqualsClose && this.approximateEqual(daysOpen, daysHigh);\n let isLowEqualsClose = isOpenEqualsClose && this.approximateEqual(daysClose, daysLow);\n return (isOpenEqualsClose && isHighEqualsOpen && !isLowEqualsClose);\n }\n}\nexport function dragonflydoji(data) {\n return new DragonFlyDoji().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class GraveStoneDoji extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 1;\n this.name = 'GraveStoneDoji';\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isOpenEqualsClose = this.approximateEqual(daysOpen, daysClose);\n let isHighEqualsOpen = isOpenEqualsClose && this.approximateEqual(daysOpen, daysHigh);\n let isLowEqualsClose = isOpenEqualsClose && this.approximateEqual(daysClose, daysLow);\n return (isOpenEqualsClose && isLowEqualsClose && !isHighEqualsOpen);\n }\n}\nexport function gravestonedoji(data) {\n return new GraveStoneDoji().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishSpinningTop extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BullishSpinningTop';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let bodyLength = Math.abs(daysClose - daysOpen);\n let upperShadowLength = Math.abs(daysHigh - daysClose);\n let lowerShadowLength = Math.abs(daysOpen - daysLow);\n let isBullishSpinningTop = bodyLength < upperShadowLength &&\n bodyLength < lowerShadowLength;\n return isBullishSpinningTop;\n }\n}\nexport function bullishspinningtop(data) {\n return new BullishSpinningTop().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishSpinningTop extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BearishSpinningTop';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let bodyLength = Math.abs(daysClose - daysOpen);\n let upperShadowLength = Math.abs(daysHigh - daysOpen);\n let lowerShadowLength = Math.abs(daysHigh - daysLow);\n let isBearishSpinningTop = bodyLength < upperShadowLength &&\n bodyLength < lowerShadowLength;\n return isBearishSpinningTop;\n }\n}\nexport function bearishspinningtop(data) {\n return new BearishSpinningTop().hasPattern(data);\n}\n","/**\n * Calcaultes the fibonacci retracements for given start and end points\n *\n * If calculating for up trend start should be low and end should be high and vice versa\n *\n * returns an array of retracements level containing [0 , 23.6, 38.2, 50, 61.8, 78.6, 100, 127.2, 161.8, 261.8, 423.6]\n *\n * @export\n * @param {number} start\n * @param {number} end\n * @returns {number[]}\n */\nexport function fibonacciretracement(start, end) {\n let levels = [0, 23.6, 38.2, 50, 61.8, 78.6, 100, 127.2, 161.8, 261.8, 423.6];\n let retracements;\n if (start < end) {\n retracements = levels.map(function (level) {\n let calculated = end - Math.abs(start - end) * (level) / 100;\n return calculated > 0 ? calculated : 0;\n });\n }\n else {\n retracements = levels.map(function (level) {\n let calculated = end + Math.abs(start - end) * (level) / 100;\n return calculated > 0 ? calculated : 0;\n });\n }\n return retracements;\n}\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport LinkedList from '../Utils/FixedSizeLinkedList';\nexport class IchimokuCloudInput extends IndicatorInput {\n constructor() {\n super(...arguments);\n this.conversionPeriod = 9;\n this.basePeriod = 26;\n this.spanPeriod = 52;\n this.displacement = 26;\n }\n}\nexport class IchimokuCloudOutput {\n}\nexport class IchimokuCloud extends Indicator {\n constructor(input) {\n super(input);\n this.result = [];\n var defaults = {\n conversionPeriod: 9,\n basePeriod: 26,\n spanPeriod: 52,\n displacement: 26\n };\n var params = Object.assign({}, defaults, input);\n var currentConversionData = new LinkedList(params.conversionPeriod * 2, true, true, false);\n var currentBaseData = new LinkedList(params.basePeriod * 2, true, true, false);\n var currenSpanData = new LinkedList(params.spanPeriod * 2, true, true, false);\n this.generator = (function* () {\n let result;\n let tick;\n let period = Math.max(params.conversionPeriod, params.basePeriod, params.spanPeriod, params.displacement);\n let periodCounter = 1;\n tick = yield;\n while (true) {\n // Keep a list of lows/highs for the max period\n currentConversionData.push(tick.high);\n currentConversionData.push(tick.low);\n currentBaseData.push(tick.high);\n currentBaseData.push(tick.low);\n currenSpanData.push(tick.high);\n currenSpanData.push(tick.low);\n if (periodCounter < period) {\n periodCounter++;\n }\n else {\n // Tenkan-sen (ConversionLine): (9-period high + 9-period low)/2))\n let conversionLine = (currentConversionData.periodHigh + currentConversionData.periodLow) / 2;\n // Kijun-sen (Base Line): (26-period high + 26-period low)/2))\n let baseLine = (currentBaseData.periodHigh + currentBaseData.periodLow) / 2;\n // Senkou Span A (Leading Span A): (Conversion Line + Base Line)/2))\n let spanA = (conversionLine + baseLine) / 2;\n // Senkou Span B (Leading Span B): (52-period high + 52-period low)/2))\n let spanB = (currenSpanData.periodHigh + currenSpanData.periodLow) / 2;\n // Senkou Span A / Senkou Span B offset by 26 periods\n // if(spanCounter < params.displacement) {\n // \tspanCounter++\n // } else {\n // \tspanA = spanAs.shift()\n // \tspanB = spanBs.shift()\n // }\n result = {\n conversion: conversionLine,\n base: baseLine,\n spanA: spanA,\n spanB: spanB\n };\n }\n tick = yield result;\n }\n })();\n this.generator.next();\n input.low.forEach((tick, index) => {\n var result = this.generator.next({\n high: input.high[index],\n low: input.low[index],\n });\n if (result.value) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n return this.generator.next(price).value;\n }\n}\nIchimokuCloud.calculate = ichimokucloud;\nexport function ichimokucloud(input) {\n Indicator.reverseInputs(input);\n var result = new IchimokuCloud(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { SMA } from '../moving_averages/SMA';\nimport { EMA } from '../moving_averages/EMA';\nimport { ATR } from '../directionalmovement/ATR';\nexport class KeltnerChannelsInput extends IndicatorInput {\n constructor() {\n super(...arguments);\n this.maPeriod = 20;\n this.atrPeriod = 10;\n this.useSMA = false;\n this.multiplier = 1;\n }\n}\nexport class KeltnerChannelsOutput extends IndicatorInput {\n}\n;\nexport class KeltnerChannels extends Indicator {\n constructor(input) {\n super(input);\n var maType = input.useSMA ? SMA : EMA;\n var maProducer = new maType({ period: input.maPeriod, values: [], format: (v) => { return v; } });\n var atrProducer = new ATR({ period: input.atrPeriod, high: [], low: [], close: [], format: (v) => { return v; } });\n var tick;\n this.result = [];\n this.generator = (function* () {\n var KeltnerChannelsOutput;\n var result;\n tick = yield;\n while (true) {\n var { close } = tick;\n var ma = maProducer.nextValue(close);\n var atr = atrProducer.nextValue(tick);\n if (ma != undefined && atr != undefined) {\n result = {\n middle: ma,\n upper: ma + (input.multiplier * (atr)),\n lower: ma - (input.multiplier * (atr))\n };\n }\n tick = yield result;\n }\n })();\n this.generator.next();\n var highs = input.high;\n highs.forEach((tickHigh, index) => {\n var tickInput = {\n high: tickHigh,\n low: input.low[index],\n close: input.close[index],\n };\n var result = this.generator.next(tickInput);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return result.value;\n }\n }\n ;\n}\nKeltnerChannels.calculate = keltnerchannels;\nexport function keltnerchannels(input) {\n Indicator.reverseInputs(input);\n var result = new KeltnerChannels(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { ATR } from '../directionalmovement/ATR';\nimport LinkedList from '../Utils/FixedSizeLinkedList';\nexport class ChandelierExitInput extends IndicatorInput {\n constructor() {\n super(...arguments);\n this.period = 22;\n this.multiplier = 3;\n }\n}\nexport class ChandelierExitOutput extends IndicatorInput {\n}\n;\nexport class ChandelierExit extends Indicator {\n constructor(input) {\n super(input);\n var highs = input.high;\n var lows = input.low;\n var closes = input.close;\n this.result = [];\n var atrProducer = new ATR({ period: input.period, high: [], low: [], close: [], format: (v) => { return v; } });\n var dataCollector = new LinkedList(input.period * 2, true, true, false);\n this.generator = (function* () {\n var result;\n var tick = yield;\n var atr;\n while (true) {\n var { high, low } = tick;\n dataCollector.push(high);\n dataCollector.push(low);\n atr = atrProducer.nextValue(tick);\n if ((dataCollector.totalPushed >= (2 * input.period)) && atr != undefined) {\n result = {\n exitLong: dataCollector.periodHigh - atr * input.multiplier,\n exitShort: dataCollector.periodLow + atr * input.multiplier\n };\n }\n tick = yield result;\n }\n })();\n this.generator.next();\n highs.forEach((tickHigh, index) => {\n var tickInput = {\n high: tickHigh,\n low: lows[index],\n close: closes[index],\n };\n var result = this.generator.next(tickInput);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return result.value;\n }\n }\n ;\n}\nChandelierExit.calculate = chandelierexit;\nexport function chandelierexit(input) {\n Indicator.reverseInputs(input);\n var result = new ChandelierExit(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class CrossInput extends IndicatorInput {\n constructor(lineA, lineB) {\n super();\n this.lineA = lineA;\n this.lineB = lineB;\n }\n}\nexport class CrossUp extends Indicator {\n constructor(input) {\n super(input);\n this.lineA = input.lineA;\n this.lineB = input.lineB;\n var currentLineA = [];\n var currentLineB = [];\n const genFn = (function* () {\n var current = yield;\n var result = false;\n while (true) {\n currentLineA.unshift(current.valueA);\n currentLineB.unshift(current.valueB);\n result = current.valueA > current.valueB;\n var pointer = 1;\n while (result === true && currentLineA[pointer] >= currentLineB[pointer]) {\n if (currentLineA[pointer] > currentLineB[pointer]) {\n result = false;\n }\n else if (currentLineA[pointer] < currentLineB[pointer]) {\n result = true;\n }\n else if (currentLineA[pointer] === currentLineB[pointer]) {\n pointer += 1;\n }\n }\n if (result === true) {\n currentLineA = [current.valueA];\n currentLineB = [current.valueB];\n }\n current = yield result;\n }\n });\n this.generator = genFn();\n this.generator.next();\n this.result = [];\n this.lineA.forEach((value, index) => {\n var result = this.generator.next({\n valueA: this.lineA[index],\n valueB: this.lineB[index]\n });\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n static reverseInputs(input) {\n if (input.reversedInput) {\n input.lineA ? input.lineA.reverse() : undefined;\n input.lineB ? input.lineB.reverse() : undefined;\n }\n }\n nextValue(valueA, valueB) {\n return this.generator.next({\n valueA: valueA,\n valueB: valueB\n }).value;\n }\n ;\n}\nCrossUp.calculate = crossUp;\nexport function crossUp(input) {\n Indicator.reverseInputs(input);\n var result = new CrossUp(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class CrossInput extends IndicatorInput {\n constructor(lineA, lineB) {\n super();\n this.lineA = lineA;\n this.lineB = lineB;\n }\n}\nexport class CrossDown extends Indicator {\n constructor(input) {\n super(input);\n this.lineA = input.lineA;\n this.lineB = input.lineB;\n var currentLineA = [];\n var currentLineB = [];\n const genFn = (function* () {\n var current = yield;\n var result = false;\n while (true) {\n currentLineA.unshift(current.valueA);\n currentLineB.unshift(current.valueB);\n result = current.valueA < current.valueB;\n var pointer = 1;\n while (result === true && currentLineA[pointer] <= currentLineB[pointer]) {\n if (currentLineA[pointer] < currentLineB[pointer]) {\n result = false;\n }\n else if (currentLineA[pointer] > currentLineB[pointer]) {\n result = true;\n }\n else if (currentLineA[pointer] === currentLineB[pointer]) {\n pointer += 1;\n }\n }\n if (result === true) {\n currentLineA = [current.valueA];\n currentLineB = [current.valueB];\n }\n current = yield result;\n }\n });\n this.generator = genFn();\n this.generator.next();\n this.result = [];\n this.lineA.forEach((value, index) => {\n var result = this.generator.next({\n valueA: this.lineA[index],\n valueB: this.lineB[index]\n });\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n static reverseInputs(input) {\n if (input.reversedInput) {\n input.lineA ? input.lineA.reverse() : undefined;\n input.lineB ? input.lineB.reverse() : undefined;\n }\n }\n nextValue(valueA, valueB) {\n return this.generator.next({\n valueA: valueA,\n valueB: valueB\n }).value;\n }\n ;\n}\nCrossDown.calculate = crossDown;\nexport function crossDown(input) {\n Indicator.reverseInputs(input);\n var result = new CrossDown(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Chart\", {\n enumerable: true,\n get: function get() {\n return _chart[\"default\"];\n }\n});\nexports.defaults = exports.Scatter = exports.Bubble = exports.Polar = exports.Radar = exports.HorizontalBar = exports.Bar = exports.Line = exports.Pie = exports.Doughnut = exports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _chart = _interopRequireDefault(require(\"chart.js\"));\n\nvar _isEqual = _interopRequireDefault(require(\"lodash/isEqual\"));\n\nvar _keyBy = _interopRequireDefault(require(\"lodash/keyBy\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar NODE_ENV = typeof process !== 'undefined' && process.env && process.env.NODE_ENV;\n\nvar ChartComponent = /*#__PURE__*/function (_React$Component) {\n _inherits(ChartComponent, _React$Component);\n\n var _super = _createSuper(ChartComponent);\n\n function ChartComponent() {\n var _this;\n\n _classCallCheck(this, ChartComponent);\n\n _this = _super.call(this);\n\n _defineProperty(_assertThisInitialized(_this), \"handleOnClick\", function (event) {\n var instance = _this.chartInstance;\n var _this$props = _this.props,\n getDatasetAtEvent = _this$props.getDatasetAtEvent,\n getElementAtEvent = _this$props.getElementAtEvent,\n getElementsAtEvent = _this$props.getElementsAtEvent,\n onElementsClick = _this$props.onElementsClick;\n getDatasetAtEvent && getDatasetAtEvent(instance.getDatasetAtEvent(event), event);\n getElementAtEvent && getElementAtEvent(instance.getElementAtEvent(event), event);\n getElementsAtEvent && getElementsAtEvent(instance.getElementsAtEvent(event), event);\n onElementsClick && onElementsClick(instance.getElementsAtEvent(event), event); // Backward compatibility\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (element) {\n _this.element = element;\n });\n\n _this.chartInstance = undefined;\n return _this;\n }\n\n _createClass(ChartComponent, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.renderChart();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.props.redraw) {\n this.destroyChart();\n this.renderChart();\n return;\n }\n\n this.updateChart();\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n var _this$props2 = this.props,\n redraw = _this$props2.redraw,\n type = _this$props2.type,\n options = _this$props2.options,\n plugins = _this$props2.plugins,\n legend = _this$props2.legend,\n height = _this$props2.height,\n width = _this$props2.width;\n\n if (nextProps.redraw === true) {\n return true;\n }\n\n if (height !== nextProps.height || width !== nextProps.width) {\n return true;\n }\n\n if (type !== nextProps.type) {\n return true;\n }\n\n if (!(0, _isEqual[\"default\"])(legend, nextProps.legend)) {\n return true;\n }\n\n if (!(0, _isEqual[\"default\"])(options, nextProps.options)) {\n return true;\n }\n\n var nextData = this.transformDataProp(nextProps);\n\n if (!(0, _isEqual[\"default\"])(this.shadowDataProp, nextData)) {\n return true;\n }\n\n return !(0, _isEqual[\"default\"])(plugins, nextProps.plugins);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyChart();\n }\n }, {\n key: \"transformDataProp\",\n value: function transformDataProp(props) {\n var data = props.data;\n\n if (typeof data == 'function') {\n var node = this.element;\n return data(node);\n } else {\n return data;\n }\n } // Chart.js directly mutates the data.dataset objects by adding _meta proprerty\n // this makes impossible to compare the current and next data changes\n // therefore we memoize the data prop while sending a fake to Chart.js for mutation.\n // see https://github.com/chartjs/Chart.js/blob/master/src/core/core.controller.js#L615-L617\n\n }, {\n key: \"memoizeDataProps\",\n value: function memoizeDataProps() {\n if (!this.props.data) {\n return;\n }\n\n var data = this.transformDataProp(this.props);\n this.shadowDataProp = _objectSpread(_objectSpread({}, data), {}, {\n datasets: data.datasets && data.datasets.map(function (set) {\n return _objectSpread({}, set);\n })\n });\n this.saveCurrentDatasets(); // to remove the dataset metadata from this chart when the chart is destroyed\n\n return data;\n }\n }, {\n key: \"checkDatasets\",\n value: function checkDatasets(datasets) {\n var isDev = NODE_ENV !== 'production' && NODE_ENV !== 'prod';\n var usingCustomKeyProvider = this.props.datasetKeyProvider !== ChartComponent.getLabelAsKey;\n var multipleDatasets = datasets.length > 1;\n\n if (isDev && multipleDatasets && !usingCustomKeyProvider) {\n var shouldWarn = false;\n datasets.forEach(function (dataset) {\n if (!dataset.label) {\n shouldWarn = true;\n }\n });\n\n if (shouldWarn) {\n console.error('[react-chartjs-2] Warning: Each dataset needs a unique key. By default, the \"label\" property on each dataset is used. Alternatively, you may provide a \"datasetKeyProvider\" as a prop that returns a unique key.');\n }\n }\n }\n }, {\n key: \"getCurrentDatasets\",\n value: function getCurrentDatasets() {\n return this.chartInstance && this.chartInstance.config.data && this.chartInstance.config.data.datasets || [];\n }\n }, {\n key: \"saveCurrentDatasets\",\n value: function saveCurrentDatasets() {\n var _this2 = this;\n\n this.datasets = this.datasets || {};\n var currentDatasets = this.getCurrentDatasets();\n currentDatasets.forEach(function (d) {\n _this2.datasets[_this2.props.datasetKeyProvider(d)] = d;\n });\n }\n }, {\n key: \"updateChart\",\n value: function updateChart() {\n var _this3 = this;\n\n var options = this.props.options;\n var data = this.memoizeDataProps(this.props);\n if (!this.chartInstance) return;\n\n if (options) {\n this.chartInstance.options = _chart[\"default\"].helpers.configMerge(this.chartInstance.options, options);\n } // Pipe datasets to chart instance datasets enabling\n // seamless transitions\n\n\n var currentDatasets = this.getCurrentDatasets();\n var nextDatasets = data.datasets || [];\n this.checkDatasets(currentDatasets);\n var currentDatasetsIndexed = (0, _keyBy[\"default\"])(currentDatasets, this.props.datasetKeyProvider); // We can safely replace the dataset array, as long as we retain the _meta property\n // on each dataset.\n\n this.chartInstance.config.data.datasets = nextDatasets.map(function (next) {\n var current = currentDatasetsIndexed[_this3.props.datasetKeyProvider(next)];\n\n if (current && current.type === next.type && next.data) {\n // Be robust to no data. Relevant for other update mechanisms as in chartjs-plugin-streaming.\n // The data array must be edited in place. As chart.js adds listeners to it.\n current.data.splice(next.data.length);\n next.data.forEach(function (point, pid) {\n current.data[pid] = next.data[pid];\n });\n\n var _data = next.data,\n otherProps = _objectWithoutProperties(next, [\"data\"]); // Merge properties. Notice a weakness here. If a property is removed\n // from next, it will be retained by current and never disappears.\n // Workaround is to set value to null or undefined in next.\n\n\n return _objectSpread(_objectSpread({}, current), otherProps);\n } else {\n return next;\n }\n });\n\n var datasets = data.datasets,\n rest = _objectWithoutProperties(data, [\"datasets\"]);\n\n this.chartInstance.config.data = _objectSpread(_objectSpread({}, this.chartInstance.config.data), rest);\n this.chartInstance.update();\n }\n }, {\n key: \"renderChart\",\n value: function renderChart() {\n var _this$props3 = this.props,\n options = _this$props3.options,\n legend = _this$props3.legend,\n type = _this$props3.type,\n plugins = _this$props3.plugins;\n var node = this.element;\n var data = this.memoizeDataProps();\n\n if (typeof legend !== 'undefined' && !(0, _isEqual[\"default\"])(ChartComponent.defaultProps.legend, legend)) {\n options.legend = legend;\n }\n\n this.chartInstance = new _chart[\"default\"](node, {\n type: type,\n data: data,\n options: options,\n plugins: plugins\n });\n }\n }, {\n key: \"destroyChart\",\n value: function destroyChart() {\n if (!this.chartInstance) {\n return;\n } // Put all of the datasets that have existed in the chart back on the chart\n // so that the metadata associated with this chart get destroyed.\n // This allows the datasets to be used in another chart. This can happen,\n // for example, in a tabbed UI where the chart gets created each time the\n // tab gets switched to the chart and uses the same data).\n\n\n this.saveCurrentDatasets();\n var datasets = Object.values(this.datasets);\n this.chartInstance.config.data.datasets = datasets;\n this.chartInstance.destroy();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n height = _this$props4.height,\n width = _this$props4.width,\n id = _this$props4.id;\n return /*#__PURE__*/_react[\"default\"].createElement(\"canvas\", {\n ref: this.ref,\n height: height,\n width: width,\n id: id,\n onClick: this.handleOnClick\n });\n }\n }]);\n\n return ChartComponent;\n}(_react[\"default\"].Component);\n\n_defineProperty(ChartComponent, \"getLabelAsKey\", function (d) {\n return d.label;\n});\n\n_defineProperty(ChartComponent, \"propTypes\", {\n data: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].object, _propTypes[\"default\"].func]).isRequired,\n getDatasetAtEvent: _propTypes[\"default\"].func,\n getElementAtEvent: _propTypes[\"default\"].func,\n getElementsAtEvent: _propTypes[\"default\"].func,\n height: _propTypes[\"default\"].number,\n legend: _propTypes[\"default\"].object,\n onElementsClick: _propTypes[\"default\"].func,\n options: _propTypes[\"default\"].object,\n plugins: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].object),\n redraw: _propTypes[\"default\"].bool,\n type: function type(props, propName, componentName) {\n if (!_chart[\"default\"].controllers[props[propName]]) {\n return new Error('Invalid chart type `' + props[propName] + '` supplied to' + ' `' + componentName + '`.');\n }\n },\n width: _propTypes[\"default\"].number,\n datasetKeyProvider: _propTypes[\"default\"].func\n});\n\n_defineProperty(ChartComponent, \"defaultProps\", {\n legend: {\n display: true,\n position: 'bottom'\n },\n type: 'doughnut',\n height: 150,\n width: 300,\n redraw: false,\n options: {},\n datasetKeyProvider: ChartComponent.getLabelAsKey\n});\n\nvar _default = ChartComponent;\nexports[\"default\"] = _default;\n\nvar Doughnut = /*#__PURE__*/function (_React$Component2) {\n _inherits(Doughnut, _React$Component2);\n\n var _super2 = _createSuper(Doughnut);\n\n function Doughnut() {\n _classCallCheck(this, Doughnut);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(Doughnut, [{\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref) {\n return _this4.chartInstance = _ref && _ref.chartInstance;\n },\n type: \"doughnut\"\n }));\n }\n }]);\n\n return Doughnut;\n}(_react[\"default\"].Component);\n\nexports.Doughnut = Doughnut;\n\nvar Pie = /*#__PURE__*/function (_React$Component3) {\n _inherits(Pie, _React$Component3);\n\n var _super3 = _createSuper(Pie);\n\n function Pie() {\n _classCallCheck(this, Pie);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(Pie, [{\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref2) {\n return _this5.chartInstance = _ref2 && _ref2.chartInstance;\n },\n type: \"pie\"\n }));\n }\n }]);\n\n return Pie;\n}(_react[\"default\"].Component);\n\nexports.Pie = Pie;\n\nvar Line = /*#__PURE__*/function (_React$Component4) {\n _inherits(Line, _React$Component4);\n\n var _super4 = _createSuper(Line);\n\n function Line() {\n _classCallCheck(this, Line);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(Line, [{\n key: \"render\",\n value: function render() {\n var _this6 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref3) {\n return _this6.chartInstance = _ref3 && _ref3.chartInstance;\n },\n type: \"line\"\n }));\n }\n }]);\n\n return Line;\n}(_react[\"default\"].Component);\n\nexports.Line = Line;\n\nvar Bar = /*#__PURE__*/function (_React$Component5) {\n _inherits(Bar, _React$Component5);\n\n var _super5 = _createSuper(Bar);\n\n function Bar() {\n _classCallCheck(this, Bar);\n\n return _super5.apply(this, arguments);\n }\n\n _createClass(Bar, [{\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref4) {\n return _this7.chartInstance = _ref4 && _ref4.chartInstance;\n },\n type: \"bar\"\n }));\n }\n }]);\n\n return Bar;\n}(_react[\"default\"].Component);\n\nexports.Bar = Bar;\n\nvar HorizontalBar = /*#__PURE__*/function (_React$Component6) {\n _inherits(HorizontalBar, _React$Component6);\n\n var _super6 = _createSuper(HorizontalBar);\n\n function HorizontalBar() {\n _classCallCheck(this, HorizontalBar);\n\n return _super6.apply(this, arguments);\n }\n\n _createClass(HorizontalBar, [{\n key: \"render\",\n value: function render() {\n var _this8 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref5) {\n return _this8.chartInstance = _ref5 && _ref5.chartInstance;\n },\n type: \"horizontalBar\"\n }));\n }\n }]);\n\n return HorizontalBar;\n}(_react[\"default\"].Component);\n\nexports.HorizontalBar = HorizontalBar;\n\nvar Radar = /*#__PURE__*/function (_React$Component7) {\n _inherits(Radar, _React$Component7);\n\n var _super7 = _createSuper(Radar);\n\n function Radar() {\n _classCallCheck(this, Radar);\n\n return _super7.apply(this, arguments);\n }\n\n _createClass(Radar, [{\n key: \"render\",\n value: function render() {\n var _this9 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref6) {\n return _this9.chartInstance = _ref6 && _ref6.chartInstance;\n },\n type: \"radar\"\n }));\n }\n }]);\n\n return Radar;\n}(_react[\"default\"].Component);\n\nexports.Radar = Radar;\n\nvar Polar = /*#__PURE__*/function (_React$Component8) {\n _inherits(Polar, _React$Component8);\n\n var _super8 = _createSuper(Polar);\n\n function Polar() {\n _classCallCheck(this, Polar);\n\n return _super8.apply(this, arguments);\n }\n\n _createClass(Polar, [{\n key: \"render\",\n value: function render() {\n var _this10 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref7) {\n return _this10.chartInstance = _ref7 && _ref7.chartInstance;\n },\n type: \"polarArea\"\n }));\n }\n }]);\n\n return Polar;\n}(_react[\"default\"].Component);\n\nexports.Polar = Polar;\n\nvar Bubble = /*#__PURE__*/function (_React$Component9) {\n _inherits(Bubble, _React$Component9);\n\n var _super9 = _createSuper(Bubble);\n\n function Bubble() {\n _classCallCheck(this, Bubble);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(Bubble, [{\n key: \"render\",\n value: function render() {\n var _this11 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref8) {\n return _this11.chartInstance = _ref8 && _ref8.chartInstance;\n },\n type: \"bubble\"\n }));\n }\n }]);\n\n return Bubble;\n}(_react[\"default\"].Component);\n\nexports.Bubble = Bubble;\n\nvar Scatter = /*#__PURE__*/function (_React$Component10) {\n _inherits(Scatter, _React$Component10);\n\n var _super10 = _createSuper(Scatter);\n\n function Scatter() {\n _classCallCheck(this, Scatter);\n\n return _super10.apply(this, arguments);\n }\n\n _createClass(Scatter, [{\n key: \"render\",\n value: function render() {\n var _this12 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref9) {\n return _this12.chartInstance = _ref9 && _ref9.chartInstance;\n },\n type: \"scatter\"\n }));\n }\n }]);\n\n return Scatter;\n}(_react[\"default\"].Component);\n\nexports.Scatter = Scatter;\nvar defaults = _chart[\"default\"].defaults;\nexports.defaults = defaults;","module.exports = require('./lib/index.js');\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/*!\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