{"version":3,"sources":["../node_modules/recharts/node_modules/core-js/modules/_export.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/isNil.js","../node_modules/lodash/_root.js","../node_modules/lodash/isObject.js","../node_modules/recharts/node_modules/core-js/modules/_global.js","../node_modules/lodash/isObjectLike.js","../node_modules/recharts/node_modules/core-js/modules/_fails.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_getNative.js","../node_modules/recharts/node_modules/core-js/modules/_is-object.js","../node_modules/recharts/node_modules/core-js/modules/_descriptors.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/identity.js","../node_modules/recharts/node_modules/core-js/modules/_core.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/isEqual.js","../node_modules/recharts/es6/polyfill.js","../node_modules/recharts/es6/util/DataUtils.js","../node_modules/recharts/es6/util/ShallowEqual.js","../node_modules/recharts/es6/util/ReactUtils.js","../node_modules/recharts/es6/container/Surface.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/symbol/circle.js","../node_modules/d3-shape/src/symbol/cross.js","../node_modules/d3-shape/src/symbol/diamond.js","../node_modules/d3-shape/src/symbol/square.js","../node_modules/d3-shape/src/symbol/star.js","../node_modules/d3-shape/src/symbol/triangle.js","../node_modules/d3-shape/src/symbol/wye.js","../node_modules/d3-path/src/path.js","../node_modules/d3-shape/src/constant.js","../node_modules/recharts/es6/shape/Symbols.js","../node_modules/d3-shape/src/symbol.js","../node_modules/recharts/es6/component/DefaultLegendContent.js","../node_modules/recharts/es6/component/Legend.js","../node_modules/react-smooth/es6/setRafTimeout.js","../node_modules/react-smooth/es6/AnimateManager.js","../node_modules/react-smooth/es6/util.js","../node_modules/react-smooth/es6/easing.js","../node_modules/react-smooth/es6/configUpdate.js","../node_modules/react-smooth/es6/Animate.js","../node_modules/react-smooth/es6/AnimateGroupChild.js","../node_modules/react-smooth/es6/AnimateGroup.js","../node_modules/react-smooth/es6/index.js","../node_modules/recharts/es6/component/DefaultTooltipContent.js","../node_modules/recharts/es6/component/Tooltip.js","../node_modules/recharts/es6/component/ResponsiveContainer.js","../node_modules/recharts/es6/component/Cell.js","../node_modules/recharts/es6/container/Layer.js","../node_modules/recharts-scale/es6/util/utils.js","../node_modules/recharts-scale/es6/util/arithmetic.js","../node_modules/recharts-scale/es6/getNiceTickValues.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-array/src/cross.js","../node_modules/d3-array/src/number.js","../node_modules/d3-array/src/array.js","../node_modules/d3-array/src/range.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-array/src/threshold/sturges.js","../node_modules/d3-array/src/quantile.js","../node_modules/d3-scale/src/init.js","../node_modules/d3-collection/src/map.js","../node_modules/d3-collection/src/set.js","../node_modules/d3-scale/src/array.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-scale/src/band.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-scale/src/identity.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale/src/log.js","../node_modules/d3-scale/src/symlog.js","../node_modules/d3-scale/src/pow.js","../node_modules/d3-scale/src/quantile.js","../node_modules/d3-scale/src/quantize.js","../node_modules/d3-scale/src/threshold.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/utcWeek.js","../node_modules/d3-time/src/utcDay.js","../node_modules/d3-time/src/utcYear.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-time/src/utcMonth.js","../node_modules/d3-time/src/utcHour.js","../node_modules/d3-time/src/utcMinute.js","../node_modules/d3-scale/src/utcTime.js","../node_modules/d3-scale/src/sequential.js","../node_modules/d3-scale/src/sequentialQuantile.js","../node_modules/d3-scale/src/diverging.js","../node_modules/d3-shape/src/offset/none.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/order/none.js","../node_modules/d3-shape/src/stack.js","../node_modules/recharts/es6/cartesian/ErrorBar.js","../node_modules/recharts/es6/util/ChartUtils.js","../node_modules/d3-shape/src/offset/expand.js","../node_modules/d3-shape/src/offset/silhouette.js","../node_modules/d3-shape/src/offset/wiggle.js","../node_modules/recharts/es6/util/PolarUtils.js","../node_modules/recharts/es6/shape/Sector.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/area.js","../node_modules/recharts/es6/shape/Curve.js","../node_modules/recharts/es6/util/DOMUtils.js","../node_modules/recharts/es6/component/Text.js","../node_modules/recharts/es6/component/Label.js","../node_modules/recharts/es6/component/LabelList.js","../node_modules/recharts/es6/polar/Pie.js","../node_modules/recharts/es6/cartesian/CartesianGrid.js","../node_modules/recharts/es6/shape/Dot.js","../node_modules/recharts/es6/cartesian/Line.js","../node_modules/recharts/es6/shape/Rectangle.js","../node_modules/recharts/es6/cartesian/Bar.js","../node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/recharts/es6/cartesian/YAxis.js","../node_modules/recharts/es6/shape/Cross.js","../node_modules/recharts/es6/cartesian/CartesianAxis.js","../node_modules/recharts/es6/util/CssPrefixUtils.js","../node_modules/recharts/es6/cartesian/Brush.js","../node_modules/recharts/es6/util/IfOverflowMatches.js","../node_modules/recharts/es6/util/CartesianUtils.js","../node_modules/recharts/es6/cartesian/ReferenceDot.js","../node_modules/recharts/es6/cartesian/ReferenceLine.js","../node_modules/recharts/es6/cartesian/ReferenceArea.js","../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../node_modules/recharts/es6/util/Events.js","../node_modules/recharts/es6/chart/generateCategoricalChart.js","../node_modules/recharts/es6/chart/LineChart.js","../node_modules/recharts/es6/chart/BarChart.js","../node_modules/recharts/es6/shape/Polygon.js","../node_modules/recharts/es6/polar/PolarAngleAxis.js","../node_modules/recharts/es6/polar/PolarRadiusAxis.js","../node_modules/recharts/es6/chart/PieChart.js","../node_modules/recharts/node_modules/core-js/modules/_an-object.js","../node_modules/recharts/node_modules/core-js/modules/_has.js","../node_modules/recharts/node_modules/core-js/modules/_to-integer.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/keys.js","../node_modules/lodash/get.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/_baseExtremum.js","../node_modules/recharts/node_modules/core-js/modules/_object-dp.js","../node_modules/recharts/node_modules/core-js/modules/_to-primitive.js","../node_modules/recharts/node_modules/core-js/modules/_math-sign.js","../node_modules/recharts/node_modules/core-js/modules/_math-expm1.js","../node_modules/recharts/node_modules/core-js/modules/_cof.js","../node_modules/recharts/node_modules/core-js/modules/_to-iobject.js","../node_modules/recharts/node_modules/core-js/modules/_defined.js","../node_modules/recharts/node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/recharts/node_modules/core-js/modules/_string-trim.js","../node_modules/recharts/node_modules/core-js/modules/_string-ws.js","../node_modules/lodash/eq.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isLength.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/isString.js","../node_modules/lodash/isNumber.js","../node_modules/lodash/sortBy.js","../node_modules/recharts/node_modules/core-js/modules/_hide.js","../node_modules/recharts/node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/recharts/node_modules/core-js/modules/_dom-create.js","../node_modules/recharts/node_modules/core-js/modules/_property-desc.js","../node_modules/recharts/node_modules/core-js/modules/_redefine.js","../node_modules/recharts/node_modules/core-js/modules/_uid.js","../node_modules/recharts/node_modules/core-js/modules/_shared.js","../node_modules/recharts/node_modules/core-js/modules/_ctx.js","../node_modules/recharts/node_modules/core-js/modules/_math-log1p.js","../node_modules/recharts/node_modules/core-js/modules/_object-gopd.js","../node_modules/recharts/node_modules/core-js/modules/_object-keys-internal.js","../node_modules/recharts/node_modules/core-js/modules/_shared-key.js","../node_modules/recharts/node_modules/core-js/modules/_a-number-value.js","../node_modules/recharts/node_modules/core-js/modules/_is-integer.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/uniqBy.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/isBuffer.js","../node_modules/webpack/buildin/module.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/isNaN.js","../node_modules/raf/index.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_baseForOwn.js","../node_modules/react-transition-group/index.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/debounce.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/_baseGt.js","../node_modules/lodash/_baseLt.js","../node_modules/decimal.js-light/decimal.js","../node_modules/lodash/every.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/range.js","../node_modules/recharts/node_modules/core-js/es6/math.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.acosh.js","../node_modules/recharts/node_modules/core-js/modules/_function-to-string.js","../node_modules/recharts/node_modules/core-js/modules/_library.js","../node_modules/recharts/node_modules/core-js/modules/_a-function.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.asinh.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.atanh.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.cbrt.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.clz32.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.cosh.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.expm1.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.fround.js","../node_modules/recharts/node_modules/core-js/modules/_math-fround.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.hypot.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.imul.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.log10.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.log1p.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.log2.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.sign.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.sinh.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.tanh.js","../node_modules/recharts/node_modules/core-js/modules/es6.math.trunc.js","../node_modules/recharts/node_modules/core-js/es6/number.js","../node_modules/recharts/node_modules/core-js/modules/es6.number.constructor.js","../node_modules/recharts/node_modules/core-js/modules/_inherit-if-required.js","../node_modules/recharts/node_modules/core-js/modules/_set-proto.js","../node_modules/recharts/node_modules/core-js/modules/_object-pie.js","../node_modules/recharts/node_modules/core-js/modules/_iobject.js","../node_modules/recharts/node_modules/core-js/modules/_object-gopn.js","../node_modules/recharts/node_modules/core-js/modules/_array-includes.js","../node_modules/recharts/node_modules/core-js/modules/_to-length.js","../node_modules/recharts/node_modules/core-js/modules/_to-absolute-index.js","../node_modules/recharts/node_modules/core-js/modules/_object-create.js","../node_modules/recharts/node_modules/core-js/modules/_object-dps.js","../node_modules/recharts/node_modules/core-js/modules/_object-keys.js","../node_modules/recharts/node_modules/core-js/modules/_html.js","../node_modules/recharts/node_modules/core-js/modules/es6.number.to-fixed.js","../node_modules/recharts/node_modules/core-js/modules/_string-repeat.js","../node_modules/recharts/node_modules/core-js/modules/es6.number.to-precision.js","../node_modules/recharts/node_modules/core-js/modules/es6.number.epsilon.js","../node_modules/recharts/node_modules/core-js/modules/es6.number.is-finite.js","../node_modules/recharts/node_modules/core-js/modules/es6.number.is-integer.js","../node_modules/recharts/node_modules/core-js/modules/es6.number.is-nan.js","../node_modules/recharts/node_modules/core-js/modules/es6.number.is-safe-integer.js","../node_modules/recharts/node_modules/core-js/modules/es6.number.max-safe-integer.js","../node_modules/recharts/node_modules/core-js/modules/es6.number.min-safe-integer.js","../node_modules/recharts/node_modules/core-js/modules/es6.number.parse-float.js","../node_modules/recharts/node_modules/core-js/modules/_parse-float.js","../node_modules/recharts/node_modules/core-js/modules/es6.number.parse-int.js","../node_modules/recharts/node_modules/core-js/modules/_parse-int.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.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/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/_baseIsEqualDeep.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_getSymbols.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/_nodeUtil.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.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/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/noop.js","../../src/performance-now.coffee","../node_modules/process/browser.js","../node_modules/lodash/intersection.js","../node_modules/lodash/_baseIntersection.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/constant.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_castArrayLikeObject.js","../node_modules/lodash/isArrayLikeObject.js","../node_modules/lodash/filter.js","../node_modules/lodash/_baseFilter.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createBaseEach.js","../node_modules/react-transition-group/CSSTransition.js","../node_modules/dom-helpers/class/addClass.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/dom-helpers/class/hasClass.js","../node_modules/dom-helpers/class/removeClass.js","../node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/now.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/react-resize-detector/lib/index.js","../node_modules/react-resize-detector/lib/components/ResizeDetector.js","../node_modules/lodash.throttle/index.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/max.js","../node_modules/lodash/min.js","../node_modules/lodash/flatMap.js","../node_modules/lodash/map.js","../node_modules/reduce-css-calc/index.js","../node_modules/reduce-css-calc/node_modules/balanced-match/index.js","../node_modules/reduce-function-call/index.js","../node_modules/balanced-match/index.js","../node_modules/math-expression-evaluator/src/formula_evaluator.js","../node_modules/math-expression-evaluator/src/postfix_evaluator.js","../node_modules/math-expression-evaluator/src/postfix.js","../node_modules/math-expression-evaluator/src/lexer.js","../node_modules/math-expression-evaluator/src/math_function.js","../node_modules/lodash/last.js","../node_modules/lodash/_arrayEvery.js","../node_modules/lodash/_baseEvery.js","../node_modules/lodash/find.js","../node_modules/lodash/_createFind.js","../node_modules/lodash/findIndex.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/throttle.js","../node_modules/lodash/some.js","../node_modules/lodash/_baseSome.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/events/events.js","../node_modules/lodash/minBy.js","../node_modules/lodash/maxBy.js"],"names":["global","require","core","hide","redefine","ctx","$export","type","name","source","key","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_PROTO","P","IS_BIND","B","target","S","exports","expProto","undefined","Function","call","U","W","R","module","isArray","Array","baseGetTag","isObject","value","tag","baseMatches","baseMatchesProperty","identity","property","freeGlobal","freeSelf","self","Object","root","window","Math","__g","exec","e","Symbol","getRawTag","objectToString","symToStringTag","toStringTag","baseIsNative","getValue","object","it","defineProperty","get","a","isFunction","isLength","length","isObjectLike","version","__e","array","iteratee","index","result","baseIsEqual","other","setPrototypeOf","__proto__","nativeGetPrototypeOf","getPrototypeOf","mathSign","isPercent","_isString","indexOf","isNumber","_isNumber","_isNaN","isNumOrStr","idCounter","uniqueId","prefix","id","concat","getPercentValue","percent","totalValue","defaultValue","arguments","validate","parseFloat","slice","getAnyElementOfObject","obj","keys","interpolateNumber","numberA","numberB","t","findEntryInArray","ary","specifiedKey","specifiedValue","find","entry","_get","shallowEqual","b","hasOwnProperty","_key","_toConsumableArray","arr","i","arr2","_arrayWithoutHoles","iter","iterator","prototype","toString","from","_iterableToArray","TypeError","_nonIterableSpread","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","PRESENTATION_ATTRIBUTES","PropTypes","string","any","alignmentBaseline","angle","number","baselineShift","clip","clipPath","clipRule","color","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","cursor","direction","oneOf","display","dominantBaseline","enableBackground","fill","fillOpacity","oneOfType","fillRule","filter","floodColor","floodOpacity","font","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphOrientationHorizontal","glyphOrientationVertical","imageRendering","kerning","letterSpacing","lightingColor","lineHeight","markerEnd","markerMid","markerStart","mask","opacity","overflow","pointerEvents","shapeRendering","stopColor","stopOpacity","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","unicodeBidi","visibility","wordSpacing","writingMode","transform","role","focusable","tabIndex","style","width","height","dx","dy","x","y","r","radius","EVENT_ATTRIBUTES","onClick","func","onMouseDown","onMouseUp","onMouseOver","onMouseMove","onMouseOut","onMouseEnter","onMouseLeave","onTouchEnd","onTouchMove","onTouchStart","onTouchCancel","REACT_BROWSER_EVENT_MAP","click","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","SCALE_TYPES","LEGEND_TYPES","TOOLTIP_TYPES","getDisplayName","Comp","displayName","findAllByType","children","types","_isArray","map","React","Children","forEach","child","childType","push","findChildByType","getPresentationAttributes","el","_isFunction","props","isValidElement","_isObject","getEventHandlerOfElement","originalHandler","filterEventAttributes","newHandler","wrapCallback","getEventHandlerOfChild","data","filterEventsOfChild","validateWidthHeight","_el$props","isSsr","document","createElement","setTimeout","SVG_TAGS","isSingleChildEqual","nextChild","prevChild","_isNil","_ref","nextChildren","nextProps","_ref2","prevChildren","prevProps","isChildrenEqual","count","_i","renderByOrder","renderMap","elements","record","isSvgElement","_renderMap$displayNam","handler","once","results","parseChildIndex","_extends","assign","apply","this","propTypes","isRequired","viewBox","shape","className","arrayOf","node","Surface","others","svgView","layerClass","classNames","attrs","pi","abs","atan2","cos","max","min","sin","sqrt","PI","tau","draw","context","size","moveTo","arc","lineTo","closePath","tan30","tan30_2","w","rect","kr","kx","ky","c","s","sqrt3","k","x0","y0","x1","y1","x2","y2","epsilon","tauEpsilon","Path","_x0","_y0","_x1","_y1","_","path","constructor","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","Error","x20","y20","l21_2","l20_2","l21","l01","l","tan","acos","t01","t21","a0","a1","ccw","cw","da","h","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","enumerable","_defineProperty","configurable","writable","_typeof","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","_getPrototypeOf","o","_setPrototypeOf","p","SYMBOL_FACTORIES","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","RADIAN","Symbols","_PureComponent","protoProps","staticProps","subClass","superClass","create","_inherits","_this$props","sizeType","symbolFactory","toUpperCase","getSymbolFactory","constant","circle","symbol","buffer","shapeSymbol","pow","calculateAreaSize","_this$props2","cx","cy","d","getPath","PureComponent","getOwnPropertyDescriptors","defineProperties","_objectSpread","defaultProps","SIZE","ICON_TYPES","DefaultLegendContent","inactiveColor","halfSize","sixthSize","thirdSize","inactive","payload","_this","iconSize","layout","formatter","itemStyle","marginRight","svgStyle","verticalAlign","_classNames","finalFormatter","renderIcon","align","finalStyle","padding","margin","textAlign","renderItems","content","element","iconType","defaultUniqBy","getUniqPaylod","option","_uniqBy","Legend","_getPrototypeOf2","_len","args","state","boxWidth","boxHeight","item","chartWidth","updateBBox","_this$state","hPos","vPos","chartHeight","left","right","getBBox","top","bottom","_this$state2","onBBoxUpdate","wrapperNode","getBoundingClientRect","box","setState","_this2","wrapperStyle","paylodUniqBy","outerStyle","position","getDefaultPosition","ref","cloneElement","renderContent","bool","setRafTimeout","callback","timeout","currTime","shouldUpdate","now","raf","_toArray","_arrayWithHoles","_nonIterableRest","createAnimateManager","handleChange","shouldStop","setStyle","_style","_styles","curr","restStyles","bind","stop","start","subscribe","_handleChange","PREFIX_LIST","IN_LINE_PREFIX_LIST","IN_COMPATIBLE_PROPERTY","param","mapObject","fn","reduce","res","translateStyle","isTransition","camelName","replace","v","styleVal","generatePrefixStyle","getTransitionVal","duration","easing","prop","toLowerCase","join","_slicedToArray","_arr","_n","_d","_e","_s","next","done","err","_iterableToArrayLimit","ACCURACY","cubicBezierFactor","c1","c2","multyTime","params","pre","cubicBezier","derivativeCubicBezier","newParams","configBezier","split","_easing$1$split$0$spl","_easing$1$split$0$spl2","every","num","curveX","curveY","derCurveX","rangeValue","bezier","_t","evalT","derVal","isStepper","configSpring","config","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","currX","destX","currV","newV","newX","alpha","begin","end","needContinue","to","calStepperVals","preVals","steps","nextStepVals","val","_easing2","velocity","render","preObj","nextObj","preTime","beginTime","interKeys","_intersection","timingStyle","stepperStyle","cafId","update","_filter","currStyle","caf","Animate","isActive","attributeName","handleStyleChange","changeStyle","canBegin","mounted","runAnimation","_this$props3","shouldReAnimate","_isEqual","isTriggered","manager","stopJSAnimation","_newState","newState","unSubscribe","onAnimationEnd","onAnimationStart","startAnimation","configUpdate","_len2","_key2","configEasing","_this3","_steps$","initialStyle","_steps$$duration","initialTime","sequence","nextItem","_nextItem$easing","nextProperties","properties","preItem","runJSAnimation","transition","newStyle","propsTo","runStepAnimation","_this$props4","onAnimationReStart","stateStyle","cloneContainer","container","_container$props","_container$props$styl","only","parseDurationOfSingleTransition","options","AnimateGroupChild","_Component","handleEnter","isAppearing","appearOptions","enterOptions","handleStyleActive","handleExit","leaveOptions","Transition","onEnter","onExit","parseTimeout","Component","AnimateGroup","component","appear","enter","leave","TransitionGroup","defaultFormatter","DefaultTooltipContent","separator","itemSorter","items","_sortBy","finalItemStyle","paddingTop","paddingBottom","formatted","_formatted","unit","wrapperClassName","contentStyle","labelClassName","labelStyle","label","labelFormatter","backgroundColor","border","whiteSpace","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","CLS_PREFIX","dataKey","allowEscapeViewBox","active","offset","coordinate","isAnimationActive","animationDuration","animationEasing","filterNull","useTranslate3d","cursorStyle","Tooltip","getTranslate","tooltipDimension","viewBoxDimension","restricted","unrestricted","translateX","translateY","finalPayload","hasPayload","cls","ResponsiveContainer","updateDimensionsImmediate","newSize","getContainerSize","oldWidth","containerWidth","oldHeight","containerHeight","handleResize","debounce","_debounce","clientWidth","clientHeight","aspect","maxHeight","minWidth","minHeight","calculatedWidth","calculatedHeight","renderChart","ReactResizeDetector","handleWidth","handleHeight","onResize","Cell","Layer","_arrayLikeToArray","minLen","n","test","_unsupportedIterableToArray","len","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curryN","argsLength","arg","restArgs","newArgs","shift","curry","range","compose","_len3","_key3","fns","reverse","firstFn","tailsFn","memoize","lastArgs","lastResult","_len4","_key4","rangeStep","step","Decimal","lt","toNumber","add","getDigitCount","floor","log","newA","uninterpolateNumber","diff","Infinity","uninterpolateTruncation","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","lte","digitCount","Arithmetic","digitCountValue","stepRatio","div","stepRatioScale","formatStep","ceil","mul","getTickOfSingleValue","tickCount","middle","isint","absVal","middleIndex","calculateStep","Number","isFinite","tickMin","tickMax","sub","mod","belowCount","upCount","scaleCount","getNiceTickValues","_ref3","_ref4","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","values","getTickValuesFixedDomain","_ref5","_ref6","_getValidInterval3","_getValidInterval4","_ref7","_ref8","_getValidInterval5","_getValidInterval6","NaN","compare","f","ascending","lo","hi","mid","ascendingBisect","bisector","bisectRight","e10","e5","e2","ticks","tickIncrement","power","LN10","error","tickStep","step0","step1","valueof","i0","value0","initRange","domain","initInterpolator","interpolator","Map","each","set","has","remove","clear","entries","empty","Set","proto","implicit","ordinal","unknown","scale","copy","band","bandwidth","ordinalRange","round","paddingInner","paddingOuter","rescale","rangeRound","pointish","point","factory","extend","parent","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","format","m","trim","parseInt","rgbn","Rgb","rgba","hsla","g","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","isNaN","Hsl","hslConvert","hsl2rgb","m1","m2","basis","t1","v0","v1","v2","v3","t2","t3","define","channels","displayable","formatHsl","linear","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","colors","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","Date","setTime","reA","reB","am","bm","bs","bi","lastIndex","q","one","zero","date","numberArray","valueOf","normalize","clamper","bimap","interpolate","d0","d1","r0","r1","polymap","j","bisect","clamp","transformer","untransform","piecewise","output","input","interpolateValue","invert","interpolateRound","u","continuous","re","formatSpecifier","specifier","match","FormatSpecifier","sign","comma","precision","formatDecimalParts","toExponential","coefficient","prefixExponent","locale","formatPrefix","exponent","toFixed","toLocaleString","toPrecision","formatRounded","prefixes","grouping","thousands","group","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","String","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","i1","formatTrim","charCodeAt","formatLocale","precisionPrefix","precisionRound","precisionFixed","linearish","tickFormat","nice","interval","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","base","E","log10","log2","logp","powp","z","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","quantile","thresholds","threshold","invertExtent","sort","quantiles","quantize","t0","newInterval","floori","offseti","field","previous","year","setMonth","setHours","setFullYear","getFullYear","month","setDate","getMonth","durationSecond","durationMinute","durationHour","durationDay","durationWeek","weekday","getDate","getDay","getTimezoneOffset","sunday","monday","tuesday","wednesday","thursday","friday","saturday","day","hour","getMilliseconds","getSeconds","getMinutes","getHours","minute","second","getUTCSeconds","millisecond","utcWeekday","setUTCDate","getUTCDate","getUTCDay","setUTCHours","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcDay","utcYear","setUTCMonth","setUTCFullYear","getUTCFullYear","localDate","H","M","L","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","names","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","V","parseWeekNumberMonday","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","timeDay","timeYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","timeSunday","dISO","timeThursday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","timeMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","getUTCHours","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","getUTCMonth","formatUTCMinutes","getUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","charAt","newParse","week","parse","X","utcParse","defaultLocale","durationMonth","durationYear","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","tickIntervals","tickInterval","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","timeMillisecond","utcMonth","utcHour","setUTCMinutes","utcMinute","setUTCSeconds","utcWeek","utcSecond","utcMillisecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","series","order","s0","s1","stackValue","ErrorBar","dataPointFormatter","xAxis","yAxis","xMid","yMid","xMin","yMin","xMax","yMax","coordsTop","coordsMid","coordsBot","lowBound","highBound","_dataPointFormatter","errorVal","_errorVal","renderErrorBars","getValueByDataKey","getDomainOfDataByKey","filterNil","flattenData","_flatMap","_min","_max","getMainColorOfGraphicItem","_item$props","getLegendProps","legendData","formatedGraphicalItems","legendWidth","legendContent","legendItem","sectors","legendType","_item$props2","getWithHeight","getDomainOfErrorBars","axisType","errorBars","errorBarChild","entryValue","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","getDomainOfItemsWithSameAxis","domains","isCategorialAxis","getCoordinatesOfGrid","hasMin","hasMax","getTicksOfAxis","axis","isGrid","isAll","duplicateDomain","niceTicks","scaleContent","isCategorial","categoricalDomain","combineEventHandlers","defaultHandler","parentHandler","childHandler","customizedHandler","arg1","arg2","arg3","arg4","parseScale","chartType","d3Scales","realScaleType","EPS","checkDomainOfScale","first","last","STACK_OFFSET_MAP","positive","negative","expand","none","stackOffsetNone","silhouette","wiggle","s2","si","sij0","s3","sk","getStackedData","stackItems","offsetType","dataKeys","orderNone","offsetNone","stack","oz","kz","sz","sij","ki","shapeStack","stackOrderNone","getTicksOfScale","opts","originalDomain","scaleType","tickValues","calculateDomainOfTicks","_domain","getCateCoordinateOfLine","bandSize","allowDuplicatedCategory","matchedTick","getCateCoordinateOfBar","getDomainOfStackGroups","stackGroups","startIndex","endIndex","stackId","stackedData","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","allowDataOverflow","_value","getBandSizeOfAxis","orderedTicks","cur","prev","parseDomainOfCategoryAxis","calculatedDomain","axisChild","radianToDegree","angleInRadian","polarToCartesian","getMaxRadius","getAngleOfPoint","anotherPoint","distanceBetweenPoints","reverseFormatAngleOfSetor","startAngle","endAngle","startCnt","endCnt","inRangeOfSector","sector","_getAngleOfPoint","innerRadius","outerRadius","inRange","_formatAngleOfSector","formatAngleOfSector","formatAngle","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","center","circleTangency","lineTangency","getSectorPath","getDeltaAngle","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","Sector","forceCornerRadius","deltaRadius","cr","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","that","_context","Basis","areaStart","_line","areaEnd","lineStart","_point","lineEnd","BasisClosed","noop","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","LinearClosed","Linear","slope3","h0","h1","slope2","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","_t0","_x","_y","px","py","Step","pointX","pointY","defined","curve","curveLinear","line","defined0","area","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","getX","getY","Curve","lineFunction","points","baseLine","connectNulls","curveFactory","getCurveFactory","formatPoints","formatBaseLine","areaPoints","shapeArea","shapeLine","pathRef","realPath","stringCache","widthCache","cacheCount","SPAN_STYLE","STYLE_LIST","MEASUREMENT_SPAN_ID","getStyleString","text","getStringSize","str","styleString","cacheKey","measurementSpan","getElementById","setAttribute","body","appendChild","measurementSpanStyle","styleKey","textContent","BREAKING_SPACES","Text","_props","getWordsWithoutCalculate","words","wordsByLines","getWordsByLines","updateWordsByLines","scaleToFit","needCalculate","wordWidths","wordsWithComputedWidth","word","spaceWidth","calculateWordWidths","calculateWordsByLines","lineWidth","currentLine","newLine","verticalAnchor","capHeight","textProps","startDy","reduceCSSCalc","transforms","cartesianViewBoxShape","polarViewBoxShape","renderRadialLabel","labelProps","labelAngle","clockWise","deltaAngle","startPoint","endPoint","xlinkHref","Label","_props$className","getLabel","isPolarLabel","isPolar","events","positionAttrs","midAngle","_polarToCartesian","_polarToCartesian2","getAttrsOfPolarLabel","getAttrsOfCartesianLabel","parseViewBox","parseLabel","renderCallByParent","parentProps","ckeckPropsLabel","parentViewBox","explicitChilren","implicitLabel","valueAccessor","_last","LabelList","idProps","parseLabelList","implicitLabelList","Pie","isAnimationFinished","cachePrevData","prevSectors","handleAnimationEnd","handleAnimationStart","_isPlainObject","animationId","activeIndex","labelLine","valueKey","pieProps","customLabelProps","customLabelLineProps","offsetRadius","labels","getTextAnchor","lineProps","realDataKey","renderLabelLineItem","renderLabelItem","activeShape","blendStroke","sectorOptions","isActiveIndex","sectorProps","renderSectorItem","_this4","animationBegin","stepData","curAngle","paddingAngle","angleIp","latest","interpolatorAngle","_latest","renderSectorsStatically","_this$props5","renderSectorsWithAnimation","_this$props6","renderSectors","renderLabels","nameKey","minAngle","tooltipType","maxRadius","parseDeltaAngle","getRealPieData","presentationProps","cells","cell","parseCoordinateOfPie","maxPieRadius","getComposedData","onItemMouseLeave","onItemMouseEnter","pieData","absDeltaAngle","realTotalAngle","sum","tempStartAngle","middleRadius","tooltipPayload","tooltipPosition","CartesianGrid","lineItem","horizontalPoints","horizontal","renderLineItem","verticalPoints","vertical","verticalFill","verticalPointsUpdated","unshift","colorIndex","horizontalFill","horizontalPointsUpdated","horizontalCoordinatesGenerator","verticalCoordinatesGenerator","_this$props7","renderBackground","renderHorizontal","renderVertical","renderHorizontalStripes","renderVerticalStripes","Dot","Line","totalLength","prevPoints","mainCurve","lines","linesUnit","dotItem","getTotalLength","curveDom","lineLength","remainLength","restLength","remainLines","emptyLines","repeat","errorBarItems","dataPoint","needClip","clipPathId","dot","customDotProps","dotEvents","dots","dotProps","renderDotItem","dotsProps","curveProps","prevPointsDiffFactor","prevPointIndex","interpolatorX","interpolatorY","animateNewValues","_interpolatorX","_interpolatorY","renderCurveStatically","currentStrokeDasharray","curLength","getStrokeDasharray","renderCurveWithAnimation","hasSinglePoint","renderCurve","renderErrorBar","renderDots","yAxisId","xAxisId","activeDot","xAxisTicks","yAxisTicks","displayedData","getRectangePath","ySign","xSign","newRadius","_newRadius","Rectangle","isUpdateAnimationActive","currWidth","currHeight","currY","Bar","prevData","baseProps","renderRectangle","interpolatorWidth","interpolatorHeight","_interpolatorHeight","renderRectanglesStatically","renderRectanglesWithAnimation","backgroundProps","background","rest","renderRectangles","barSize","minPointSize","maxBarSize","barPosition","dataStartIndex","pos","findPositionOfBar","numericAxis","stackedDomain","baseValue","getBaseValueOfBar","rects","truncateByDomain","delta","XAxis","mirror","orientation","tickFormatter","tick","axisLine","tickLine","minTickGap","tickSize","reversed","YAxis","Cross","CartesianAxis","getNumberIntervalTicks","getTicksStart","getTicksEnd","preserveEnd","sizeKey","unitSize","tail","tailContent","tailSize","tailGap","tickCoord","isShow","gap","_i2","restProps","viewBoxOld","restPropsOld","tx","ty","tickMargin","finalTickSize","needHeight","needWidth","finalTicks","getTicks","getTickTextAnchor","getTickVerticalAnchor","axisProps","customTickProps","tickLineProps","_this$getTickLineCoor","getTickLineCoord","lineCoord","tickProps","visibleTicksCount","renderTickItem","ticksGenerator","_this$props8","noTicksProps","renderAxisLine","renderTicks","Brush","handleDrag","leaveTimer","clearTimeout","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleTouchMove","changedTouches","handleDragEnd","handleLeaveWrapper","leaveTimeOut","handleEnterSlideOrTraveller","isTextActive","handleLeaveSlideOrTraveller","handleSlideDragStart","event","slideMoveStartX","pageX","travellerDragStartHandlers","startX","handleTravellerDragStart","endX","updateScale","travellerWidth","updateId","scaleValues","minIndex","getIndexInRange","maxIndex","onChange","newIndex","getIndex","movingTravellerId","brushMoveStartX","_this$setState","prevValue","isFullGap","scalePoint","_range","chartElement","compact","travellerX","lineY","_this$props9","_this$props10","_this$state3","getTextOfTick","_this$props11","alwaysShowText","_this$state4","isPanoramic","renderPanorama","renderSlide","renderTraveller","renderText","ifOverflowMatches","alwaysShow","ifOverflow","_createClass","formatAxisMap","axisMap","chartName","ids","leftMirror","rightMirror","topMirror","bottomMirror","needSpace","_axis$padding","offsetKey","_parseScale","finalAxis","rectWithPoints","ScaleHelper","bandAware","_offset","_offset2","LabeledScaleHelper","scales","_mapValues","coords","_every","isInRange","ReferenceDot","isX","isY","getCoordinate","renderDot","isFront","ReferenceLine","isFixedX","isFixedY","isSegment","_this$props$viewBox","yCoord","coord","xCoord","_orientation","_coord","_points","_points2","segment","_some","fixedX","fixedY","endPoints","getEndPoints","_endPoints","_endPoints$","_endPoints$2","renderLine","rectWithCoords","ReferenceArea","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","p1","rangeMin","p2","rangeMax","getRect","renderRect","detectReferenceElementsDomain","axisId","specifiedTicks","areas","idKey","finalDomain","key1","key2","value1","value2","eventCenter","EventEmitter","setMaxListeners","SYNC_EVENT","ORIENT_MAP","originCoordinate","generateCategoricalChart","GraphicalChild","_ref$eventType","eventType","axisComponents","CategoricalChartWrapper","handleLegendBBoxUpdate","legendInstance","dataEndIndex","updateStateOfAxisMapsOffsetAndStackGroups","handleReceiveSyncEvent","cId","chartId","syncId","uniqueChartId","activeTooltipIndex","chartX","chartY","tooltipTicks","validateChartX","validateChartY","activeLabel","activePayload","getTooltipContent","activeCoordinate","handleBrushChange","triggerSyncEvent","handleMouseEnter","mouse","getMouseInfo","nextState","isTooltipActive","triggeredAfterMouseMove","handleItemMouseEnter","activeItem","handleItemMouseLeave","handleMouseMove","persist","handleMouseLeave","handleOuterEvent","eventName","getReactEventByType","handleClick","handleMouseDown","handleMouseUp","handleTouchStart","handleTouchEnd","axesTicksGenerator","tooltipTicksGenerator","orderedTooltipTicks","tooltipAxis","tooltipAxisBandSize","renderCursor","cursorComp","getCursorRectangle","_this$getCursorPoints","getCursorPoints","cursorProps","renderPolarAxis","axisOption","renderXAxis","axisObj","xAxisMap","renderAxis","renderYAxis","yAxisMap","renderGrid","_find","renderPolarGrid","_this$state5","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","polarAngles","polarRadius","renderBrush","_this$state6","brushBottom","renderReferenceElement","_this$state7","_element$props","renderGraphicChild","filterFormatItem","graphicalItem","_this$state8","tooltipItem","isRange","_item$item$props","activePoint","basePoint","renderActivePoints","childIndex","renderCustomized","defaultState","createDefaultState","throttleDelay","_throttle","numericAxisName","cateAxisName","addListener","stackOffset","newUpdateId","prevState","removeListener","cancel","_ref5$axisType","AxisComp","graphicalItems","axisIdKey","axes","getAxisMapByAxes","getAxisMapByItems","Axis","_child$props","getDisplayedData","duplicate","cache","hasDuplicate","errorBarsDomain","parseErrorBarsOfAxis","hasStack","rangeObj","_angle","_radius","pageY","calculateChartCoordinate","html","ownerDocument","documentElement","pageYOffset","clientTop","pageXOffset","clientLeft","getOffset","_this$state9","xScale","yScale","xValue","yValue","_this$state10","unsortedTicks","before","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","calculateActiveTickIndex","calculateTooltipPos","getActiveCoordinate","_this$state11","_child$props2","currentState","barGap","barCategoryGap","globalMaxBarSize","_this$constructor$get","getAxisNameByLayout","hasBar","sizeList","globalSize","_ref4$stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","cateAxisId","barItems","selfSize","cateId","stackList","getBarSizeList","formatedItems","_objectSpread5","childMaxBarSize","numericAxisId","_objectSpread4","cateAxis","cateTicks","itemIndex","getStackedDataOfItem","_ref5$sizeList","realBarGap","useFull","fullBarSize","newRes","originalSize","getBarPosition","componsedFn","_this$state12","_this$state13","_cx","_cy","innerPoint","outerPoint","_this$state14","tooltipEvents","_this5","reverseStackOrder","_this$constructor$get2","_items","_item$props3","parentGroup","childGroup","getStackGroupsByAxisId","getAxisMap","calculateOffset","cateAxisMap","ticksObj","getFormatItems","on","_maxListeners","_ref9","_ref9$xAxisMap","_ref9$yAxisMap","brushItem","offsetH","offsetV","legendBox","legendHeight","legendProps","newOffset","appendOffsetOfLegend","emit","axisOptions","_this6","otherProps","legend","_this$state15","_ref10","_item$item$props2","renderActiveDot","_this$state$offset","_this7","Area","Radar","RadialBar","Scatter","Funnel","PolarGrid","PolarAngleAxis","PolarRadiusAxis","Customized","renderClipPath","parseEventsOfWrapper","renderLegend","renderTooltip","defaultShowTooltip","some","_ref11","itemsData","itemData","getPolygonPoints","Polygon","eps","tickLineSize","axisLineType","angleAxisId","maxRadiusTick","_maxBy","_minBy","extent","point0","point1","getTickValueCoord","getViewBox","radiusAxisId","_range2","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","eq","nativeCreate","getNative","isKeyable","__data__","arrayLikeKeys","baseKeys","isArrayLike","baseGet","isSymbol","baseForOwn","baseEach","createBaseEach","isIndex","comparator","current","computed","anObject","IE8_DOM_DEFINE","toPrimitive","dP","O","Attributes","$expm1","IObject","fails","spaces","space","ltrim","rtrim","exporter","KEY","ALIAS","FORCE","TYPE","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","baseIsEqualDeep","bitmask","customizer","setCacheAdd","setCacheHas","SetCache","baseIsArguments","objectProto","isArguments","reIsUint","castPath","toKey","reIsDeepProp","reIsPlainProp","baseFlatten","baseOrderBy","baseRest","isIterateeCall","sortBy","collection","iteratees","createDesc","is","bitmap","SRC","$toString","TO_STRING","TPL","inspectSource","safe","random","SHARED","store","mode","copyright","aFunction","pIE","toIObject","gOPD","arrayIndexOf","IE_PROTO","shared","uid","cof","msg","baseIteratee","baseUniq","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","funcToString","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","predicate","resIndex","stubFalse","freeExports","nodeType","freeModule","Buffer","isBuffer","webpackPolyfill","deprecate","paths","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","srcValue","isKey","stringToPath","baseIndexOf","fromIndex","fromRight","vendors","queue","_now","cp","cancelled","handle","polyfill","requestAnimationFrame","cancelAnimationFrame","overRest","setToString","baseFor","_CSSTransition","_interopRequireDefault","_ReplaceTransition","_TransitionGroup","_Transition","__esModule","default","ReplaceTransition","CSSTransition","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","newObj","desc","_interopRequireWildcard","_react","_reactDom","_reactLifecyclesCompat","_React$Component","initialStatus","transitionGroup","isMounting","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","_proto","getChildContext","getDerivedStateFromProps","componentDidMount","updateStatus","componentDidUpdate","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","mounting","findDOMNode","performEnter","performExit","appearing","timeouts","enterTimeout","safeSetState","onEntering","onTransitionEnd","onEntered","onExiting","onExited","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","childProps","contextTypes","childContextTypes","_default","classNamesShape","timeoutsShape","_propTypes","_ChildMapping","handleExited","firstRender","appeared","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","childFactory","arrayPush","isFlattenable","depth","isStrict","nativeMax","nativeMin","wait","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","flush","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","globalScope","ONE","MAX_DIGITS","rounding","toExpNeg","toExpPos","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","BASE","MAX_SAFE_INTEGER","MAX_E","carry","xd","yd","Ctor","pr","pop","checkInt32","digitsToString","ws","indexOfLastWord","getZeroString","absoluteValue","comparedTo","cmp","xdL","ydL","decimalPlaces","dp","dividedBy","divide","dividedToIntegerBy","idiv","equals","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isInteger","isNegative","isneg","isPositive","ispos","isZero","lessThan","lessThanOrEqualTo","logarithm","wpr","ln","subtract","modulo","times","naturalExponential","naturalLogarithm","negated","neg","plus","sd","squareRoot","rL","toDecimalPlaces","todp","rm","toInteger","toint","toPower","yIsInt","yn","truncate","toSignificantDigits","tosd","toJSON","multiplyInteger","temp","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","getLn10","zs","c0","numerator","parseDecimal","search","rd","doRound","xdi","xe","xLTy","isExp","ps","clone","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","arrayEvery","baseEvery","guard","INFINITY","createRange","$acosh","acosh","MAX_VALUE","LN2","$asinh","asinh","$atanh","atanh","cbrt","clz32","LOG2E","cosh","fround","EPSILON","EPSILON32","MAX32","MIN32","$abs","$sign","hypot","aLen","larg","$imul","imul","UINT16","xn","xl","yl","LOG10E","sinh","tanh","trunc","inheritIfRequired","gOPN","$trim","NUMBER","$Number","Base","BROKEN_COF","TRIM","argument","third","radix","maxCode","code","digits","C","check","buggy","$keys","hiddenKeys","getOwnPropertyNames","toLength","toAbsoluteIndex","IS_INCLUDES","$this","dPs","enumBugKeys","Empty","createDict","iframeDocument","iframe","src","contentWindow","open","write","close","Properties","getKeys","aNumberValue","$toFixed","ERROR","ZERO","multiply","numToString","acc","fractionDigits","RangeError","$fails","$toPrecision","_isFinite","isSafeInteger","MIN_SAFE_INTEGER","$parseFloat","$parseInt","nativeObjectToString","isOwn","unmasked","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","objValue","COMPARE_PARTIAL_FLAG","assocIndexOf","splice","pairs","LARGE_ARRAY_SIZE","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","coreJsData","maskSrcKey","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","Uint8Array","mapToArray","setToArray","symbolProto","symbolValueOf","byteLength","byteOffset","message","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseGetAllKeys","getSymbols","keysFunc","symbolsFunc","arrayFilter","stubArray","nativeGetSymbols","baseTimes","inherited","isArr","isArg","isBuff","isType","skipIndexes","typedArrayTags","freeProcess","process","binding","isPrototype","nativeKeys","overArg","Promise","WeakMap","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","resolve","ctorString","isStrictComparable","hasIn","memoizeCapped","rePropName","reEscapeChar","quote","subString","resolver","memoized","Cache","baseToString","arrayMap","symbolToString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep","arrayIncludes","arrayIncludesWith","createSet","includes","isCommon","outer","seenIndex","baseFindIndex","baseIsNaN","strictIndexOf","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","title","browser","env","argv","versions","off","removeAllListeners","prependListener","prependOnceListener","listeners","cwd","chdir","dir","umask","baseIntersection","castArrayLikeObject","intersection","arrays","mapped","caches","maxLength","otherArgs","baseSetToString","shortOut","nativeNow","lastCalled","stamp","remaining","isArrayLikeObject","baseFilter","createBaseFor","iterable","eachFunc","_addClass","_removeClass","addClass","classes","removeClass","getClassNames","removeClasses","activeClassName","reflowAndAddClass","appearClassName","doneClassName","enterClassName","isStringClassNames","_this$getClassNames6","scrollTop","classList","_hasClass","baseVal","contains","replaceClassName","origClass","classToRemove","_args","handleLifecycle","handleEntering","handleEntered","_len5","_key5","handleExiting","_len6","_key6","_len7","_key7","idx","originalArgs","toArray","inProp","_React$Children$toArr","mergeChildMappings","getProp","nextChildMapping","hasPrev","hasNext","isLeaving","mapFn","mapper","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","spreadableSymbol","isConcatSpreadable","baseMap","baseSortBy","compareMultiple","orders","comparer","compareAscending","objCriteria","criteria","othCriteria","ordersLength","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","trimmedEndIndex","reTrimStart","reWhitespace","_ResizeDetector","_ResizeDetector2","_react2","_propTypes2","_resizeObserverPolyfill2","_lodash2","_lodash4","listMode","throttle","styles","ResizeDetector","createResizeObserver","_entry$contentRect","contentRect","notifyWidth","notifyHeight","skipOnMount","refreshMode","refreshRate","resizeObserver","ro","resizableElementId","resizableElement","parentElement","observe","unobserve","FUNC_ERROR_TEXT","reTrim","getPrototype","objectCtorString","baseExtremum","baseGt","baseLt","balanced","reduceFunctionCall","mexp","NESTED_CALC_RE","decimalPrecision","evaluateExpression","expression","functionIdentifier","units","uniqueUnits","uniqueLowerCaseUnits","unitRegEx","matches","getUnitsInExpression","evaluatedPart","nonEvaluatedPart","balancedExpr","evaluated","post","evaluateNestedExpression","toEvaluate","eval","maybeMatch","reg","begs","beg","ai","functionRE","expressions","fnRE","searchMatch","SyntaxError","getFunctionCalls","evalFunctionCall","Mexp","formulaEval","pop1","pop2","pop3","disp","show","postfixEval","UserDefined","Exception","tokens","lex","toPostfix","elem","popped","prep","ele","flag","inc","token","eva","math","anchor","atan","fact","sigma","Pi","preced","type0","type1","type1Asterick","type3Asterick","type6","newAr","str1","str2","addToken","inp","changeSignObj","changeSign","closingParObj","openingParObj","ptc","inpStr","allowed","bracToClose","asterick","nodes","precedence","tokenize","cToken","cType","cEv","cPre","cShow","hasDec","parsed","isDegree","pro","choice","toRadian","inverse","low","high","ex","pow10x","sinha","cosha","createFind","findIndexFunc","toFinite","remainder","baseRange","nativeCeil","baseSome","baseAssignValue","ReflectOwnKeys","Reflect","ReflectApply","receiver","NumberIsNaN","init","emitter","reject","errorListener","eventTargetAgnosticAddListener","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","existing","warning","newListener","warned","console","warn","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","ret","unwrapListeners","arrayClone","listenerCount","addEventListener","wrapListener","removeEventListener","getMaxListeners","doError","er","list","originalListener","spliceOne","rawListeners","eventNames"],"mappings":";+FAAA,IAAIA,EAASC,EAAQ,KACjBC,EAAOD,EAAQ,KACfE,EAAOF,EAAQ,KACfG,EAAWH,EAAQ,KACnBI,EAAMJ,EAAQ,KAGdK,EAAU,SAAVA,EAAoBC,EAAMC,EAAMC,GAClC,IAQIC,EAAKC,EAAKC,EAAKC,EARfC,EAAYP,EAAOD,EAAQS,EAC3BC,EAAYT,EAAOD,EAAQW,EAE3BC,EAAWX,EAAOD,EAAQa,EAC1BC,EAAUb,EAAOD,EAAQe,EACzBC,EAASN,EAAYhB,EAHTO,EAAOD,EAAQiB,EAGevB,EAAOQ,KAAUR,EAAOQ,GAAQ,KAAOR,EAAOQ,IAAS,IAAjB,UAChFgB,EAAUR,EAAYd,EAAOA,EAAKM,KAAUN,EAAKM,GAAQ,IACzDiB,EAAWD,EAAO,YAAgBA,EAAO,UAAc,IAG3D,IAAKd,KADDM,IAAWP,EAASD,GACZC,EAIVG,IAFAD,GAAOG,GAAaQ,QAA0BI,IAAhBJ,EAAOZ,IAExBY,EAASb,GAAQC,GAE9BG,EAAMO,GAAWT,EAAMN,EAAIO,EAAKZ,GAAUkB,GAA0B,mBAAPN,EAAoBP,EAAIsB,SAASC,KAAMhB,GAAOA,EAEvGU,GAAQlB,EAASkB,EAAQZ,EAAKE,EAAKL,EAAOD,EAAQuB,GAElDL,EAAQd,IAAQE,GAAKT,EAAKqB,EAASd,EAAKG,GACxCK,GAAYO,EAASf,IAAQE,IAAKa,EAASf,GAAOE,IAG1DZ,EAAOE,KAAOA,EAEdI,EAAQS,EAAI,EACZT,EAAQW,EAAI,EACZX,EAAQiB,EAAI,EACZjB,EAAQa,EAAI,EACZb,EAAQe,EAAI,GACZf,EAAQwB,EAAI,GACZxB,EAAQuB,EAAI,GACZvB,EAAQyB,EAAI,IACZC,EAAOR,QAAUlB,G,cCnBjB,IAAI2B,EAAUC,MAAMD,QAEpBD,EAAOR,QAAUS,G,gBCzBjB,IAAIE,EAAalC,EAAQ,KACrBmC,EAAWnC,EAAQ,KAmCvB+B,EAAOR,QAVP,SAAoBa,GAClB,IAAKD,EAASC,GACZ,OAAO,EAIT,IAAIC,EAAMH,EAAWE,GACrB,MA5BY,qBA4BLC,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,I,iBCjC/D,IAAIC,EAActC,EAAQ,KACtBuC,EAAsBvC,EAAQ,KAC9BwC,EAAWxC,EAAQ,KACnBgC,EAAUhC,EAAQ,KAClByC,EAAWzC,EAAQ,KA0BvB+B,EAAOR,QAjBP,SAAsBa,GAGpB,MAAoB,mBAATA,EACFA,EAEI,MAATA,EACKI,EAEW,iBAATJ,EACFJ,EAAQI,GACXG,EAAoBH,EAAM,GAAIA,EAAM,IACpCE,EAAYF,GAEXK,EAASL,K,cCHlBL,EAAOR,QAJP,SAAea,GACb,OAAgB,MAATA,I,gBCrBT,IAAIM,EAAa1C,EAAQ,KAGrB2C,EAA0B,iBAARC,MAAoBA,MAAQA,KAAKC,SAAWA,QAAUD,KAGxEE,EAAOJ,GAAcC,GAAYjB,SAAS,cAATA,GAErCK,EAAOR,QAAUuB,G,cCsBjBf,EAAOR,QALP,SAAkBa,GAChB,IAAI9B,SAAc8B,EAClB,OAAgB,MAATA,IAA0B,UAAR9B,GAA4B,YAARA,K,cC1B/C,IAAIP,EAASgC,EAAOR,QAA2B,oBAAVwB,QAAyBA,OAAOC,MAAQA,KACzED,OAAwB,oBAARH,MAAuBA,KAAKI,MAAQA,KAAOJ,KAE3DlB,SAAS,cAATA,GACc,iBAAPuB,MAAiBA,IAAMlD,I,cCuBlCgC,EAAOR,QAJP,SAAsBa,GACpB,OAAgB,MAATA,GAAiC,iBAATA,I,gBCzBjCL,EAAOR,QAAU,SAAU2B,GACzB,IACE,QAASA,IACT,MAAOC,GACP,OAAO,K,gBCJX,IAAIC,EAASpD,EAAQ,KACjBqD,EAAYrD,EAAQ,KACpBsD,EAAiBtD,EAAQ,KAOzBuD,EAAiBH,EAASA,EAAOI,iBAAc/B,EAkBnDM,EAAOR,QATP,SAAoBa,GAClB,OAAa,MAATA,OACeX,IAAVW,EAdQ,qBADL,gBAiBJmB,GAAkBA,KAAkBV,OAAOT,GAC/CiB,EAAUjB,GACVkB,EAAelB,K,gBCxBrB,IAAIqB,EAAezD,EAAQ,KACvB0D,EAAW1D,EAAQ,KAevB+B,EAAOR,QALP,SAAmBoC,EAAQlD,GACzB,IAAI2B,EAAQsB,EAASC,EAAQlD,GAC7B,OAAOgD,EAAarB,GAASA,OAAQX,I,cCbvCM,EAAOR,QAAU,SAAUqC,GACzB,MAAqB,kBAAPA,EAAyB,OAAPA,EAA4B,oBAAPA,I,gBCAvD7B,EAAOR,SAAWvB,EAAQ,IAARA,EAAoB,WACpC,OAA+E,GAAxE6C,OAAOgB,eAAe,GAAI,IAAK,CAAEC,IAAK,WAAc,OAAO,KAAQC,M,gBCF5E,IAAIC,EAAahE,EAAQ,KACrBiE,EAAWjE,EAAQ,KA+BvB+B,EAAOR,QAJP,SAAqBa,GACnB,OAAgB,MAATA,GAAiB6B,EAAS7B,EAAM8B,UAAYF,EAAW5B,K,gBC7BhE,IAAIF,EAAalC,EAAQ,KACrBmE,EAAenE,EAAQ,KA2B3B+B,EAAOR,QALP,SAAkBa,GAChB,MAAuB,iBAATA,GACX+B,EAAa/B,IArBF,mBAqBYF,EAAWE,K,cCLvCL,EAAOR,QAJP,SAAkBa,GAChB,OAAOA,I,cCjBT,IAAInC,EAAO8B,EAAOR,QAAU,CAAE6C,QAAS,UACrB,iBAAPC,MAAiBA,IAAMpE,I,gBCDlC,IAGImD,EAHOpD,EAAQ,KAGDoD,OAElBrB,EAAOR,QAAU6B,G,cCejBrB,EAAOR,QAXP,SAAkB+C,EAAOC,GAKvB,IAJA,IAAIC,GAAS,EACTN,EAAkB,MAATI,EAAgB,EAAIA,EAAMJ,OACnCO,EAASxC,MAAMiC,KAEVM,EAAQN,GACfO,EAAOD,GAASD,EAASD,EAAME,GAAQA,EAAOF,GAEhD,OAAOG,I,gBCjBT,IAAIC,EAAc1E,EAAQ,KAkC1B+B,EAAOR,QAJP,SAAiBa,EAAOuC,GACtB,OAAOD,EAAYtC,EAAOuC,K,2wDCzB5B,IAAM9B,OAAO+B,iBAFI,GAEyBC,UAAY,CACpD,IAAIC,EAAuBjC,OAAOkC,eAElClC,OAAOkC,eAAiB,SAAUpB,GAChC,OAAIA,EAAOkB,UACFlB,EAAOkB,UAGTC,EAAqBnD,KAAKkB,OAAQc,I,wNCTlCqB,EAAW,SAAkB5C,GACtC,OAAc,IAAVA,EACK,EAGLA,EAAQ,EACH,GAGD,GAEC6C,EAAY,SAAmB7C,GACxC,OAAO8C,IAAU9C,IAAUA,EAAM+C,QAAQ,OAAS/C,EAAM8B,OAAS,GAExDkB,EAAW,SAAkBhD,GACtC,OAAOiD,IAAUjD,KAAWkD,IAAOlD,IAE1BmD,EAAa,SAAoBnD,GAC1C,OAAOgD,EAAShD,IAAU8C,IAAU9C,IAElCoD,EAAY,EACLC,EAAW,SAAkBC,GACtC,IAAIC,IAAOH,EACX,MAAO,GAAGI,OAAOF,GAAU,IAAIE,OAAOD,IAW7BE,EAAkB,SAAyBC,EAASC,GAC7D,IAOI3D,EAPA4D,EAAeC,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,GAAmBA,UAAU,GAAK,EACnFC,EAAWD,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,IAAmBA,UAAU,GAE9E,IAAKb,EAASU,KAAaZ,IAAUY,GACnC,OAAOE,EAKT,GAAIf,EAAUa,GAAU,CACtB,IAAItB,EAAQsB,EAAQX,QAAQ,KAC5B/C,EAAQ2D,EAAaI,WAAWL,EAAQM,MAAM,EAAG5B,IAAU,SAE3DpC,GAAS0D,EAWX,OARIR,IAAOlD,KACTA,EAAQ4D,GAGNE,GAAY9D,EAAQ2D,IACtB3D,EAAQ2D,GAGH3D,GAEEiE,EAAwB,SAA+BC,GAChE,IAAKA,EACH,OAAO,KAGT,IAAIC,EAAO1D,OAAO0D,KAAKD,GAEvB,OAAIC,GAAQA,EAAKrC,OACRoC,EAAIC,EAAK,IAGX,MAoBEC,EAAoB,SAA2BC,EAASC,GACjE,OAAItB,EAASqB,IAAYrB,EAASsB,GACzB,SAAUC,GACf,OAAOF,EAAUE,GAAKD,EAAUD,IAI7B,WACL,OAAOC,IAGAE,EAAmB,SAA0BC,EAAKC,EAAcC,GACzE,OAAKF,GAAQA,EAAI3C,OAIV2C,EAAIG,MAAK,SAAUC,GACxB,OAAOA,IAAkC,oBAAjBH,EAA8BA,EAAaG,GAASC,IAAKD,EAAOH,MAAmBC,KAJpG,MC9GJ,SAASI,EAAapD,EAAGqD,GAE9B,IAAK,IAAI3G,KAAOsD,EACd,GAAI,GAAGsD,eAAe1F,KAAKoC,EAAGtD,MAAU,GAAG4G,eAAe1F,KAAKyF,EAAG3G,IAAQsD,EAAEtD,KAAS2G,EAAE3G,IACrF,OAAO,EAIX,IAAK,IAAI6G,KAAQF,EACf,GAAI,GAAGC,eAAe1F,KAAKyF,EAAGE,KAAU,GAAGD,eAAe1F,KAAKoC,EAAGuD,GAChE,OAAO,EAIX,OAAO,ECRT,SAASC,EAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,CAAE,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIzF,MAAMuF,EAAItD,QAASuD,EAAID,EAAItD,OAAQuD,IAAOC,EAAKD,GAAKD,EAAIC,GAAM,OAAOC,GANnHC,CAAmBH,IAI7D,SAA0BI,GAAQ,GAAIxE,OAAOyE,YAAYhF,OAAO+E,IAAkD,uBAAzC/E,OAAOiF,UAAUC,SAASpG,KAAKiG,GAAgC,OAAO3F,MAAM+F,KAAKJ,GAJrFK,CAAiBT,IAEtF,WAAgC,MAAM,IAAIU,UAAU,mDAF0CC,GAQ9F,SAASC,EAAyB5H,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAAkEC,EAAKgH,EAAnEpG,EAEzF,SAAuCb,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAFxMkH,CAA8B/H,EAAQ6H,GAAuB,GAAIxF,OAAO2F,sBAAuB,CAAE,IAAIC,EAAmB5F,OAAO2F,sBAAsBhI,GAAS,IAAKiH,EAAI,EAAGA,EAAIgB,EAAiBvE,OAAQuD,IAAOhH,EAAMgI,EAAiBhB,GAAQY,EAASlD,QAAQ1E,IAAQ,GAAkBoC,OAAOiF,UAAUY,qBAAqB/G,KAAKnB,EAAQC,KAAgBY,EAAOZ,GAAOD,EAAOC,IAAU,OAAOY,EAQ5d,IAAIsH,EAA0B,CACnC,eAAgBC,IAAUC,OAE1B,eAAgBD,IAAUE,IAC1B,gBAAiBF,IAAUE,IAE3B,cAAeF,IAAUE,IAEzB,eAAgBF,IAAUE,IAE1B,oBAAqBF,IAAUE,IAC/B,aAAcF,IAAUE,IACxB,uBAAwBF,IAAUE,IAElC,oBAAqBF,IAAUE,IAC/B,eAAgBF,IAAUE,IAC1B,gBAAiBF,IAAUE,IAC3B,gBAAiBF,IAAUE,IAC3B,aAAcF,IAAUE,IACxB,aAAcF,IAAUE,IACxB,iBAAkBF,IAAUE,IAC5B,uBAAwBF,IAAUE,IAClC,mBAAoBF,IAAUE,IAC9B,mBAAoBF,IAAUE,IAC9B,eAAgBF,IAAUE,IAC1B,gBAAiBF,IAAUE,IAC3B,gBAAiBF,IAAUE,IAC3B,gBAAiBF,IAAUE,IAC3B,YAAaF,IAAUE,IACvB,gBAAiBF,IAAUE,IAC3B,gBAAiBF,IAAUE,IAC3B,gBAAiBF,IAAUE,IAC3B,iBAAkBF,IAAUE,IAE5B,cAAeF,IAAUE,IACzB,YAAaF,IAAUE,IACvB,YAAaF,IAAUE,IACvB,gBAAiBF,IAAUE,IAE3B,kBAAmBF,IAAUE,IAC7B,eAAgBF,IAAUE,IAE1B,wBAAyBF,IAAUE,IACnC,gBAAiBF,IAAUE,IAC3B,gBAAiBF,IAAUE,IAC3B,eAAgBF,IAAUE,IAC1B,gBAAiBF,IAAUE,IAC3B,mBAAoBF,IAAUE,IAC9B,oBAAqBF,IAAUE,IAC/B,cAAeF,IAAUE,IACzB,kBAAmBF,IAAUE,IAC7B,YAAaF,IAAUE,IACvB,gBAAiBF,IAAUE,IAC3B,gBAAiBF,IAAUE,IAC3B,gBAAiBF,IAAUE,IAC3B,eAAgBF,IAAUE,IAC1B,eAAgBF,IAAUE,IAC1BC,kBAAmBH,IAAUC,OAC7BG,MAAOJ,IAAUK,OACjBC,cAAeN,IAAUC,OACzBM,KAAMP,IAAUC,OAChBO,SAAUR,IAAUC,OACpBQ,SAAUT,IAAUC,OACpBS,MAAOV,IAAUC,OACjBU,mBAAoBX,IAAUC,OAC9BW,0BAA2BZ,IAAUC,OACrCY,aAAcb,IAAUC,OACxBa,eAAgBd,IAAUC,OAC1Bc,OAAQf,IAAUC,OAClBe,UAAWhB,IAAUiB,MAAM,CAAC,MAAO,MAAO,YAC1CC,QAASlB,IAAUC,OACnBkB,iBAAkBnB,IAAUC,OAC5BmB,iBAAkBpB,IAAUC,OAC5BoB,KAAMrB,IAAUC,OAChBqB,YAAatB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC9DmB,SAAUxB,IAAUiB,MAAM,CAAC,UAAW,UAAW,YACjDQ,OAAQzB,IAAUC,OAClByB,WAAY1B,IAAUC,OACtB0B,aAAc3B,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC/DuB,KAAM5B,IAAUC,OAChB4B,WAAY7B,IAAUC,OACtB6B,SAAU9B,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC3D8B,eAAgB/B,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACjE+B,YAAahC,IAAUiB,MAAM,CAAC,SAAU,QAAS,WAAY,kBAAmB,kBAAmB,YAAa,iBAAkB,gBAAiB,WAAY,iBAAkB,iBAAkB,YACnMgB,UAAWjC,IAAUiB,MAAM,CAAC,SAAU,SAAU,UAAW,YAC3DiB,YAAalC,IAAUiB,MAAM,CAAC,SAAU,aAAc,YACtDkB,WAAYnC,IAAUiB,MAAM,CAAC,SAAU,OAAQ,SAAU,UAAW,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,YACjHmB,2BAA4BpC,IAAUC,OACtCoC,yBAA0BrC,IAAUC,OACpCqC,eAAgBtC,IAAUiB,MAAM,CAAC,OAAQ,gBAAiB,kBAAmB,YAC7EsB,QAASvC,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC1DuC,cAAexC,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAChEwC,cAAezC,IAAUC,OACzByC,WAAY1C,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC7D0C,UAAW3C,IAAUC,OACrB2C,UAAW5C,IAAUC,OACrB4C,YAAa7C,IAAUC,OACvB6C,KAAM9C,IAAUC,OAChB8C,QAAS/C,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC1D+C,SAAUhD,IAAUiB,MAAM,CAAC,UAAW,SAAU,SAAU,OAAQ,YAClEgC,cAAejD,IAAUiB,MAAM,CAAC,iBAAkB,cAAe,gBAAiB,UAAW,UAAW,OAAQ,SAAU,MAAO,OAAQ,YACzIiC,eAAgBlD,IAAUiB,MAAM,CAAC,OAAQ,gBAAiB,aAAc,qBAAsB,YAC9FkC,UAAWnD,IAAUC,OACrBmD,YAAapD,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC9DoD,OAAQrD,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACzDqD,gBAAiBtD,IAAUC,OAC3BsD,iBAAkBvD,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACnEuD,cAAexD,IAAUiB,MAAM,CAAC,OAAQ,QAAS,SAAU,YAC3DwC,eAAgBzD,IAAUiB,MAAM,CAAC,QAAS,QAAS,QAAS,YAC5DyC,iBAAkB1D,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACnE0D,cAAe3D,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAChE2D,YAAa5D,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC9D4D,WAAY7D,IAAUiB,MAAM,CAAC,QAAS,SAAU,MAAO,YACvD6C,eAAgB9D,IAAUiB,MAAM,CAAC,OAAQ,YAAa,WAAY,eAAgB,QAAS,YAC3F8C,cAAe/D,IAAUiB,MAAM,CAAC,OAAQ,gBAAiB,qBAAsB,qBAAsB,YACrG+C,YAAahE,IAAUiB,MAAM,CAAC,SAAU,QAAS,gBAAiB,YAClEgD,WAAYjE,IAAUiB,MAAM,CAAC,UAAW,SAAU,WAAY,YAC9DiD,YAAalE,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC9DkE,YAAanE,IAAUiB,MAAM,CAAC,QAAS,QAAS,QAAS,KAAM,KAAM,KAAM,YAC3EmD,UAAWpE,IAAUC,OACrBoE,KAAMrE,IAAUC,OAChBqE,UAAWtE,IAAUC,OACrBsE,SAAUvE,IAAUC,OACpBuE,MAAOxE,IAAUjF,OACjB0J,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,OAClBsE,GAAI3E,IAAUK,OACduE,GAAI5E,IAAUK,OACdwE,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACb0E,EAAG/E,IAAUK,OAEb2E,OAAQhF,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUtE,SAEhDuJ,EAAmB,CAC5BC,QAASlF,IAAUmF,KACnBC,YAAapF,IAAUmF,KACvBE,UAAWrF,IAAUmF,KACrBG,YAAatF,IAAUmF,KACvBI,YAAavF,IAAUmF,KACvBK,WAAYxF,IAAUmF,KACtBM,aAAczF,IAAUmF,KACxBO,aAAc1F,IAAUmF,KACxBQ,WAAY3F,IAAUmF,KACtBS,YAAa5F,IAAUmF,KACvBU,aAAc7F,IAAUmF,KACxBW,cAAe9F,IAAUmF,MAEvBY,EAA0B,CAC5BC,MAAO,UACPC,UAAW,cACXC,QAAS,YACTC,UAAW,cACXC,UAAW,cACXC,SAAU,aACVC,WAAY,eACZC,WAAY,eACZC,YAAa,gBACbC,SAAU,aACVC,UAAW,cACXC,WAAY,gBAEHC,EAAc,CAAC,OAAQ,SAAU,MAAO,OAAQ,MAAO,WAAY,OAAQ,OAAQ,QAAS,UAAW,WAAY,WAAY,MAAO,aAAc,aACpJC,EAAe,CAAC,YAAa,OAAQ,SAAU,OAAQ,SAAU,QAAS,UAAW,OAAQ,WAAY,MAAO,QAChHC,EAAgB,CAAC,QAOjBC,EAAiB,SAAwBC,GAClD,MAAoB,kBAATA,EACFA,EAGJA,EAIEA,EAAKC,aAAeD,EAAKrP,MAAQ,YAH/B,IAUAuP,EAAgB,SAAuBC,EAAUzP,GAC1D,IAAImE,EAAS,GACTuL,EAAQ,GAiBZ,OAdEA,EADEC,IAAS3P,GACHA,EAAK4P,KAAI,SAAUvJ,GACzB,OAAOgJ,EAAehJ,MAGhB,CAACgJ,EAAerP,IAG1B6P,IAAMC,SAASC,QAAQN,GAAU,SAAUO,GACzC,IAAIC,EAAYD,GAASA,EAAMhQ,OAASgQ,EAAMhQ,KAAKuP,aAAeS,EAAMhQ,KAAKC,OAE3C,IAA9ByP,EAAM7K,QAAQoL,IAChB9L,EAAO+L,KAAKF,MAGT7L,GAOEgM,EAAkB,SAAyBV,EAAUzP,GAC9D,IAAImE,EAASqL,EAAcC,EAAUzP,GACrC,OAAOmE,GAAUA,EAAO,IAiCfiM,EAA4B,SAAmCC,GACxE,IAAKA,GAAMC,IAAYD,GACrB,OAAO,KAGT,IAAIE,EAAQV,IAAMW,eAAeH,GAAMA,EAAGE,MAAQF,EAElD,IAAKI,IAAUF,GACb,OAAO,KAGT,IAAIlQ,EAAM,KAEV,IAAK,IAAI8G,KAAKoJ,GACR,IAAGxJ,eAAe1F,KAAKkP,EAAOpJ,IAAMkB,EAAwBlB,KACzD9G,IAAKA,EAAM,IAChBA,EAAI8G,GAAKoJ,EAAMpJ,IAInB,OAAO9G,GAGLqQ,EAA2B,SAAkCC,EAAiBJ,GAChF,OAAO,SAAU1N,GAEf,OADA8N,EAAgBJ,EAAO1N,GAChB,OAYA+N,EAAwB,SAA+BP,EAAIQ,GACpE,IAAIC,EAAenL,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,IAAmBA,UAAU,GAElF,IAAK0K,GAAMC,IAAYD,GACrB,OAAO,KAGT,IAAIE,EAAQV,IAAMW,eAAeH,GAAMA,EAAGE,MAAQF,EAElD,IAAKI,IAAUF,GACb,OAAO,KAGT,IAAIlQ,EAAM,KAEV,IAAK,IAAI8G,KAAKoJ,GACR,IAAGxJ,eAAe1F,KAAKkP,EAAOpJ,IAAMoG,EAAiBpG,KAClD9G,IAAKA,EAAM,IAChBA,EAAI8G,GAAK0J,IAAeC,EAAeJ,EAAyBH,EAAMpJ,GAAIoJ,GAASA,EAAMpJ,KAI7F,OAAO9G,GAGL0Q,GAAyB,SAAgCJ,EAAiBK,EAAM9M,GAClF,OAAO,SAAUrB,GAEf,OADA8N,EAAgBK,EAAM9M,EAAOrB,GACtB,OAIAoO,GAAsB,SAA6BV,EAAOS,EAAM9M,GACzE,IAAKuM,IAAUF,GACb,OAAO,KAGT,IAAIlQ,EAAM,KAEV,IAAK,IAAI8G,KAAKoJ,GACR,IAAGxJ,eAAe1F,KAAKkP,EAAOpJ,IAAMoG,EAAiBpG,IAAMmJ,IAAYC,EAAMpJ,MAC1E9G,IAAKA,EAAM,IAChBA,EAAI8G,GAAK4J,GAAuBR,EAAMpJ,GAAI6J,EAAM9M,IAIpD,OAAO7D,GAQE6Q,GAAsB,SAA6Bb,GAC5D,IAAKA,IAAOA,EAAGE,MACb,OAAO,EAGT,IAAIY,EAAYd,EAAGE,MACfxD,EAAQoE,EAAUpE,MAClBC,EAASmE,EAAUnE,OAEvB,SAAKlI,EAASiI,IAAUA,GAAS,IAAMjI,EAASkI,IAAWA,GAAU,IAM5DoE,GAAQ,WACjB,QAA2B,qBAAX3O,QAA0BA,OAAO4O,UAAY5O,OAAO4O,SAASC,eAAiB7O,OAAO8O,aAEnGC,GAAW,CAAC,IAAK,WAAY,cAAe,eAAgB,UAAW,eAAgB,gBAAiB,mBAAoB,SAAU,WAAY,gBAAiB,SAAU,OAAQ,OAAQ,UAAW,UAAW,gBAAiB,sBAAuB,cAAe,mBAAoB,oBAAqB,oBAAqB,iBAAkB,UAAW,UAAW,UAAW,UAAW,UAAW,iBAAkB,UAAW,UAAW,cAAe,eAAgB,WAAY,eAAgB,qBAAsB,cAAe,SAAU,eAAgB,SAAU,OAAQ,YAAa,mBAAoB,iBAAkB,gBAAiB,gBAAiB,IAAK,QAAS,WAAY,QAAS,QAAS,OAAQ,eAAgB,SAAU,OAAQ,WAAY,gBAAiB,QAAS,OAAQ,UAAW,UAAW,WAAY,iBAAkB,OAAQ,SAAU,MAAO,OAAQ,QAAS,MAAO,SAAU,SAAU,OAAQ,WAAY,QAAS,OAAQ,QAAS,MAAO,OAAQ,SAqB78BC,GAAqB,SAA4BC,EAAWC,GACrE,GAAIC,IAAOF,IAAcE,IAAOD,GAC9B,OAAO,EAGT,IAAKC,IAAOF,KAAeE,IAAOD,GAAY,CAC5C,IAAIE,EAAOH,EAAUnB,OAAS,GAC1BuB,EAAeD,EAAKpC,SACpBsC,EAAYjK,EAAyB+J,EAAM,CAAC,aAE5CG,EAAQL,EAAUpB,OAAS,GAC3B0B,EAAeD,EAAMvC,SACrByC,EAAYpK,EAAyBkK,EAAO,CAAC,aAEjD,OAAIF,GAAgBG,EAEXpL,EAAakL,EAAWG,IAAcC,GAAgBL,EAAcG,IAGxEH,IAAiBG,GACbpL,EAAakL,EAAWG,GAMnC,OAAO,GASEC,GAAkB,SAASA,EAAgBL,EAAcG,GAClE,GAAIH,IAAiBG,EACnB,OAAO,EAGT,GAAInC,WAASsC,MAAMN,KAAkBhC,WAASsC,MAAMH,GAClD,OAAO,EAGT,IAAIG,EAAQtC,WAASsC,MAAMN,GAE3B,GAAc,IAAVM,EACF,OAAO,EAGT,GAAc,IAAVA,EACF,OAAOX,GAAmB9B,IAASmC,GAAgBA,EAAa,GAAKA,EAAcnC,IAASsC,GAAgBA,EAAa,GAAKA,GAGhI,IAAK,IAAII,EAAK,EAAGA,EAAKD,EAAOC,IAAM,CACjC,IAAIX,EAAYI,EAAaO,GACzBV,EAAYM,EAAaI,GAE7B,GAAI1C,IAAS+B,IAAc/B,IAASgC,IAClC,IAAKQ,EAAgBT,EAAWC,GAC9B,OAAO,OAEJ,IAAKF,GAAmBC,EAAWC,GACxC,OAAO,EAIX,OAAO,GAEEW,GAAgB,SAAuB7C,EAAU8C,GAC1D,IAAIC,EAAW,GACXC,EAAS,GAuBb,OAtBA3C,WAASC,QAAQN,GAAU,SAAUO,EAAO9L,GAC1C,GAAI8L,GA5FW,SAAsBA,GACvC,OAAOA,GAASA,EAAMhQ,MAAQ4E,IAAUoL,EAAMhQ,OAASwR,GAAS3M,QAAQmL,EAAMhQ,OAAS,EA2FxE0S,CAAa1C,GACxBwC,EAAStC,KAAKF,QACT,GAAIA,GAASuC,EAAUlD,EAAeW,EAAMhQ,OAAQ,CACzD,IAAIuP,EAAcF,EAAeW,EAAMhQ,MACnC2S,EAAwBJ,EAAUhD,GAClCqD,EAAUD,EAAsBC,QAChCC,EAAOF,EAAsBE,KAEjC,GAAIA,IAASJ,EAAOlD,KAAiBsD,EAAM,CACzC,IAAIC,EAAUF,EAAQ5C,EAAOT,EAAarL,GAEtCyL,IAASmD,GACXN,EAAW,CAACA,GAAUlN,OAAO2B,EAAmB6L,IAEhDN,EAAStC,KAAK4C,GAGhBL,EAAOlD,IAAe,OAIrBiD,GAWEO,GAAkB,SAAyB/C,EAAOP,GAC3D,IAAItL,GAAU,EAMd,OALA2L,WAASC,QAAQN,GAAU,SAAU9I,EAAOzC,GACtCyC,IAAUqJ,IACZ7L,EAASD,MAGNC,GCjgBT,SAAS6O,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASmC,GAAyB5H,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAAkEC,EAAKgH,EAAnEpG,EAEzF,SAAuCb,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAFxMkH,CAA8B/H,EAAQ6H,GAAuB,GAAIxF,OAAO2F,sBAAuB,CAAE,IAAIC,EAAmB5F,OAAO2F,sBAAsBhI,GAAS,IAAKiH,EAAI,EAAGA,EAAIgB,EAAiBvE,OAAQuD,IAAOhH,EAAMgI,EAAiBhB,GAAQY,EAASlD,QAAQ1E,IAAQ,GAAkBoC,OAAOiF,UAAUY,qBAAqB/G,KAAKnB,EAAQC,KAAgBY,EAAOZ,GAAOD,EAAOC,IAAU,OAAOY,EAWne,IAAIqS,GAAY,CACdrG,MAAOzE,IAAUK,OAAO0K,WACxBrG,OAAQ1E,IAAUK,OAAO0K,WACzBC,QAAShL,IAAUiL,MAAM,CACvBpG,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACboE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,SAEpB6K,UAAWlL,IAAUC,OACrBuE,MAAOxE,IAAUjF,OACjBoM,SAAUnH,IAAUuB,UAAU,CAACvB,IAAUmL,QAAQnL,IAAUoL,MAAOpL,IAAUoL,QAG9E,SAASC,GAAQpD,GACf,IAAId,EAAWc,EAAMd,SACjB1C,EAAQwD,EAAMxD,MACdC,EAASuD,EAAMvD,OACfsG,EAAU/C,EAAM+C,QAChBE,EAAYjD,EAAMiD,UAClB1G,EAAQyD,EAAMzD,MACd8G,EAAS9L,GAAyByI,EAAO,CAAC,WAAY,QAAS,SAAU,UAAW,YAAa,UAEjGsD,EAAUP,GAAW,CACvBvG,MAAOA,EACPC,OAAQA,EACRG,EAAG,EACHC,EAAG,GAED0G,EAAaC,IAAW,mBAAoBP,GAC5CQ,EAAQ5D,EAA0BwD,GACtC,OAAO/D,IAAMyB,cAAc,MAAO0B,GAAS,GAAIgB,EAAO,CACpDR,UAAWM,EACX/G,MAAOA,EACPC,OAAQA,EACRF,MAAOA,EACPwG,QAAS,GAAGhO,OAAOuO,EAAQ1G,EAAG,KAAK7H,OAAOuO,EAAQzG,EAAG,KAAK9H,OAAOuO,EAAQ9G,MAAO,KAAKzH,OAAOuO,EAAQ7G,QACpGlJ,QAAS,QACP2L,GAGNkE,GAAQP,UAAYA,GACLO,UC9CJM,IATMvR,KAAKwR,IACHxR,KAAKyR,MACPzR,KAAK0R,IACL1R,KAAK2R,IACL3R,KAAK4R,IACL5R,KAAK6R,IACJ7R,KAAK8R,KAGP9R,KAAK+R,IAEVC,GAAM,EAAIT,GCTN,QACbU,KAAM,SAASC,EAASC,GACtB,IAAIxH,EAAI3K,KAAK8R,KAAKK,EAAOZ,IACzBW,EAAQE,OAAOzH,EAAG,GAClBuH,EAAQG,IAAI,EAAG,EAAG1H,EAAG,EAAGqH,MCNb,IACbC,KAAM,SAASC,EAASC,GACtB,IAAIxH,EAAI3K,KAAK8R,KAAKK,EAAO,GAAK,EAC9BD,EAAQE,QAAQ,EAAIzH,GAAIA,GACxBuH,EAAQI,QAAQ3H,GAAIA,GACpBuH,EAAQI,QAAQ3H,GAAI,EAAIA,GACxBuH,EAAQI,OAAO3H,GAAI,EAAIA,GACvBuH,EAAQI,OAAO3H,GAAIA,GACnBuH,EAAQI,OAAO,EAAI3H,GAAIA,GACvBuH,EAAQI,OAAO,EAAI3H,EAAGA,GACtBuH,EAAQI,OAAO3H,EAAGA,GAClBuH,EAAQI,OAAO3H,EAAG,EAAIA,GACtBuH,EAAQI,QAAQ3H,EAAG,EAAIA,GACvBuH,EAAQI,QAAQ3H,EAAGA,GACnBuH,EAAQI,QAAQ,EAAI3H,EAAGA,GACvBuH,EAAQK,cCfRC,GAAQxS,KAAK8R,KAAK,EAAI,GACtBW,GAAkB,EAARD,GAEC,IACbP,KAAM,SAASC,EAASC,GACtB,IAAIzH,EAAI1K,KAAK8R,KAAKK,EAAOM,IACrBhI,EAAIC,EAAI8H,GACZN,EAAQE,OAAO,GAAI1H,GACnBwH,EAAQI,OAAO7H,EAAG,GAClByH,EAAQI,OAAO,EAAG5H,GAClBwH,EAAQI,QAAQ7H,EAAG,GACnByH,EAAQK,cCXG,IACbN,KAAM,SAASC,EAASC,GACtB,IAAIO,EAAI1S,KAAK8R,KAAKK,GACd1H,GAAKiI,EAAI,EACbR,EAAQS,KAAKlI,EAAGA,EAAGiI,EAAGA,KCDtBE,GAAK5S,KAAK6R,IAAIN,GAAK,IAAMvR,KAAK6R,IAAI,EAAIN,GAAK,IAC3CsB,GAAK7S,KAAK6R,IAAIG,GAAM,IAAMY,GAC1BE,IAAM9S,KAAK0R,IAAIM,GAAM,IAAMY,GAEhB,IACbX,KAAM,SAASC,EAASC,GACtB,IAAIxH,EAAI3K,KAAK8R,KAPR,kBAOaK,GACd1H,EAAIoI,GAAKlI,EACTD,EAAIoI,GAAKnI,EACbuH,EAAQE,OAAO,GAAIzH,GACnBuH,EAAQI,OAAO7H,EAAGC,GAClB,IAAK,IAAIjG,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,IAAI1D,EAAIiR,GAAMvN,EAAI,EACdsO,EAAI/S,KAAK0R,IAAI3Q,GACbiS,EAAIhT,KAAK6R,IAAI9Q,GACjBmR,EAAQI,OAAOU,EAAIrI,GAAIoI,EAAIpI,GAC3BuH,EAAQI,OAAOS,EAAItI,EAAIuI,EAAItI,EAAGsI,EAAIvI,EAAIsI,EAAIrI,GAE5CwH,EAAQK,cCrBRU,GAAQjT,KAAK8R,KAAK,GAEP,IACbG,KAAM,SAASC,EAASC,GACtB,IAAIzH,GAAK1K,KAAK8R,KAAKK,GAAgB,EAARc,KAC3Bf,EAAQE,OAAO,EAAO,EAAJ1H,GAClBwH,EAAQI,QAAQW,GAAQvI,GAAIA,GAC5BwH,EAAQI,OAAOW,GAAQvI,GAAIA,GAC3BwH,EAAQK,cCRRQ,IAAK,GACLC,GAAIhT,KAAK8R,KAAK,GAAK,EACnBoB,GAAI,EAAIlT,KAAK8R,KAAK,IAClB/Q,GAAkB,GAAbmS,GAAI,EAAI,GAEF,IACbjB,KAAM,SAASC,EAASC,GACtB,IAAIxH,EAAI3K,KAAK8R,KAAKK,EAAOpR,IACrBoS,EAAKxI,EAAI,EACTyI,EAAKzI,EAAIuI,GACTG,EAAKF,EACLG,EAAK3I,EAAIuI,GAAIvI,EACb4I,GAAMF,EACNG,EAAKF,EACTpB,EAAQE,OAAOe,EAAIC,GACnBlB,EAAQI,OAAOe,EAAIC,GACnBpB,EAAQI,OAAOiB,EAAIC,GACnBtB,EAAQI,OAAOS,GAAII,EAAKH,GAAII,EAAIJ,GAAIG,EAAKJ,GAAIK,GAC7ClB,EAAQI,OAAOS,GAAIM,EAAKL,GAAIM,EAAIN,GAAIK,EAAKN,GAAIO,GAC7CpB,EAAQI,OAAOS,GAAIQ,EAAKP,GAAIQ,EAAIR,GAAIO,EAAKR,GAAIS,GAC7CtB,EAAQI,OAAOS,GAAII,EAAKH,GAAII,EAAIL,GAAIK,EAAKJ,GAAIG,GAC7CjB,EAAQI,OAAOS,GAAIM,EAAKL,GAAIM,EAAIP,GAAIO,EAAKN,GAAIK,GAC7CnB,EAAQI,OAAOS,GAAIQ,EAAKP,GAAIQ,EAAIT,GAAIS,EAAKR,GAAIO,GAC7CrB,EAAQK,cCvBRhB,GAAKvR,KAAK+R,GACVC,GAAM,EAAIT,GACVkC,GAAU,KACVC,GAAa1B,GAAMyB,GAEvB,SAASE,KACPlD,KAAKmD,IAAMnD,KAAKoD,IAChBpD,KAAKqD,IAAMrD,KAAKsD,IAAM,KACtBtD,KAAKuD,EAAI,GAGX,SAASC,KACP,OAAO,IAAIN,GAGbA,GAAK7O,UAAYmP,GAAKnP,UAAY,CAChCoP,YAAaP,GACbvB,OAAQ,SAAS3H,EAAGC,GAClB+F,KAAKuD,GAAK,KAAOvD,KAAKmD,IAAMnD,KAAKqD,KAAOrJ,GAAK,KAAOgG,KAAKoD,IAAMpD,KAAKsD,KAAOrJ,IAE7E6H,UAAW,WACQ,OAAb9B,KAAKqD,MACPrD,KAAKqD,IAAMrD,KAAKmD,IAAKnD,KAAKsD,IAAMtD,KAAKoD,IACrCpD,KAAKuD,GAAK,MAGd1B,OAAQ,SAAS7H,EAAGC,GAClB+F,KAAKuD,GAAK,KAAOvD,KAAKqD,KAAOrJ,GAAK,KAAOgG,KAAKsD,KAAOrJ,IAEvDyJ,iBAAkB,SAASd,EAAIC,EAAI7I,EAAGC,GACpC+F,KAAKuD,GAAK,MAAQX,EAAM,MAAQC,EAAM,KAAO7C,KAAKqD,KAAOrJ,GAAK,KAAOgG,KAAKsD,KAAOrJ,IAEnF0J,cAAe,SAASf,EAAIC,EAAIC,EAAIC,EAAI/I,EAAGC,GACzC+F,KAAKuD,GAAK,MAAQX,EAAM,MAAQC,EAAM,MAAQC,EAAM,MAAQC,EAAM,KAAO/C,KAAKqD,KAAOrJ,GAAK,KAAOgG,KAAKsD,KAAOrJ,IAE/G2J,MAAO,SAAShB,EAAIC,EAAIC,EAAIC,EAAI7I,GAC9B0I,GAAMA,EAAIC,GAAMA,EAAIC,GAAMA,EAAIC,GAAMA,EAAI7I,GAAKA,EAC7C,IAAIwI,EAAK1C,KAAKqD,IACVV,EAAK3C,KAAKsD,IACVO,EAAMf,EAAKF,EACXkB,EAAMf,EAAKF,EACXkB,EAAMrB,EAAKE,EACXoB,EAAMrB,EAAKE,EACXoB,EAAQF,EAAMA,EAAMC,EAAMA,EAG9B,GAAI9J,EAAI,EAAG,MAAM,IAAIgK,MAAM,oBAAsBhK,GAGjD,GAAiB,OAAb8F,KAAKqD,IACPrD,KAAKuD,GAAK,KAAOvD,KAAKqD,IAAMT,GAAM,KAAO5C,KAAKsD,IAAMT,QAIjD,GAAMoB,EAAQjB,GAKd,GAAMzT,KAAKwR,IAAIiD,EAAMH,EAAMC,EAAMC,GAAOf,IAAa9I,EAKrD,CACH,IAAIiK,EAAMrB,EAAKJ,EACX0B,EAAMrB,EAAKJ,EACX0B,EAAQR,EAAMA,EAAMC,EAAMA,EAC1BQ,EAAQH,EAAMA,EAAMC,EAAMA,EAC1BG,EAAMhV,KAAK8R,KAAKgD,GAChBG,EAAMjV,KAAK8R,KAAK4C,GAChBQ,EAAIvK,EAAI3K,KAAKmV,KAAK5D,GAAKvR,KAAKoV,MAAMN,EAAQJ,EAAQK,IAAU,EAAIC,EAAMC,KAAS,GAC/EI,EAAMH,EAAID,EACVK,EAAMJ,EAAIF,EAGVhV,KAAKwR,IAAI6D,EAAM,GAAK5B,KACtBhD,KAAKuD,GAAK,KAAOX,EAAKgC,EAAMb,GAAO,KAAOlB,EAAK+B,EAAMZ,IAGvDhE,KAAKuD,GAAK,IAAMrJ,EAAI,IAAMA,EAAI,WAAa8J,EAAMG,EAAMJ,EAAMK,GAAQ,KAAOpE,KAAKqD,IAAMT,EAAKiC,EAAMhB,GAAO,KAAO7D,KAAKsD,IAAMT,EAAKgC,EAAMf,QApBtI9D,KAAKuD,GAAK,KAAOvD,KAAKqD,IAAMT,GAAM,KAAO5C,KAAKsD,IAAMT,UAuBxDjB,IAAK,SAAS5H,EAAGC,EAAGC,EAAG4K,EAAIC,EAAIC,GAC7BhL,GAAKA,EAAGC,GAAKA,EAAW+K,IAAQA,EAChC,IAAIlL,GADYI,GAAKA,GACR3K,KAAK0R,IAAI6D,GAClB/K,EAAKG,EAAI3K,KAAK6R,IAAI0D,GAClBpC,EAAK1I,EAAIF,EACT6I,EAAK1I,EAAIF,EACTkL,EAAK,EAAID,EACTE,EAAKF,EAAMF,EAAKC,EAAKA,EAAKD,EAG9B,GAAI5K,EAAI,EAAG,MAAM,IAAIgK,MAAM,oBAAsBhK,GAGhC,OAAb8F,KAAKqD,IACPrD,KAAKuD,GAAK,IAAMb,EAAK,IAAMC,GAIpBpT,KAAKwR,IAAIf,KAAKqD,IAAMX,GAAMM,IAAWzT,KAAKwR,IAAIf,KAAKsD,IAAMX,GAAMK,MACtEhD,KAAKuD,GAAK,IAAMb,EAAK,IAAMC,GAIxBzI,IAGDgL,EAAK,IAAGA,EAAKA,EAAK3D,GAAMA,IAGxB2D,EAAKjC,GACPjD,KAAKuD,GAAK,IAAMrJ,EAAI,IAAMA,EAAI,QAAU+K,EAAK,KAAOjL,EAAIF,GAAM,KAAOG,EAAIF,GAAM,IAAMG,EAAI,IAAMA,EAAI,QAAU+K,EAAK,KAAOjF,KAAKqD,IAAMX,GAAM,KAAO1C,KAAKsD,IAAMX,GAIrJuC,EAAKlC,KACZhD,KAAKuD,GAAK,IAAMrJ,EAAI,IAAMA,EAAI,SAAWgL,GAAMpE,IAAO,IAAMmE,EAAK,KAAOjF,KAAKqD,IAAMrJ,EAAIE,EAAI3K,KAAK0R,IAAI8D,IAAO,KAAO/E,KAAKsD,IAAMrJ,EAAIC,EAAI3K,KAAK6R,IAAI2D,OAGlJ7C,KAAM,SAASlI,EAAGC,EAAGgI,EAAGkD,GACtBnF,KAAKuD,GAAK,KAAOvD,KAAKmD,IAAMnD,KAAKqD,KAAOrJ,GAAK,KAAOgG,KAAKoD,IAAMpD,KAAKsD,KAAOrJ,GAAK,MAAQgI,EAAK,MAAQkD,EAAK,KAAQlD,EAAK,KAEzH3N,SAAU,WACR,OAAO0L,KAAKuD,IAIDC,UCjIA,YAASxJ,GACtB,OAAO,WACL,OAAOA,ICFX,SAASoL,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAI9U,SAAS4S,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASgT,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASsT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAUrK,IAAIC,GAAmB,CACrBC,aAAcA,GACdC,YAAaA,GACbC,cAAeA,GACfC,aAAcA,GACdC,WAAYA,GACZC,eAAgBA,GAChBC,UAAWA,IAETC,GAAS3X,KAAK+R,GAAK,IAuCnB6F,GAEJ,SAAUC,GAGR,SAASD,IAGP,OAFArB,GAAgB9F,KAAMmH,GAEfhB,GAA2BnG,KAAMsG,GAAgBa,GAASpH,MAAMC,KAAMxN,YA5EjF,IAAsBwT,EAAaqB,EAAYC,EAoH7C,OA5GF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GA+DjXE,CAAUP,EAASC,GAvECpB,EA+EPmB,GA/EoBE,EA+EX,CAAC,CACrBra,IAAK,UAML2B,MAAO,WACL,IAAIgZ,EAAc3H,KAAK5C,MACnBsE,EAAOiG,EAAYjG,KACnBkG,EAAWD,EAAYC,SACvB/a,EAAO8a,EAAY9a,KACnBgb,EA5Da,SAA0Bhb,GAC/C,IAAIC,EAAO,SAASqF,OAAOtF,EAAK8F,MAAM,EAAG,GAAGmV,eAAe3V,OAAOtF,EAAK8F,MAAM,IAC7E,OAAO+T,GAAiB5Z,IAAS6Z,GA0DToB,CAAiBlb,GAErC,OCvFS,WACb,IAAIA,EAAOmb,GAASC,IAChBvG,EAAOsG,GAAS,IAChBvG,EAAU,KAEd,SAASyG,IACP,IAAIC,EAGJ,GAFK1G,IAASA,EAAU0G,EAAS3E,MACjC3W,EAAKkT,MAAMC,KAAMxN,WAAWgP,KAAKC,GAAUC,EAAK3B,MAAMC,KAAMxN,YACxD2V,EAAQ,OAAO1G,EAAU,KAAM0G,EAAS,IAAM,KAepD,OAZAD,EAAOrb,KAAO,SAAS0W,GACrB,OAAO/Q,UAAU/B,QAAU5D,EAAoB,oBAAN0W,EAAmBA,EAAIyE,GAASzE,GAAI2E,GAAUrb,GAGzFqb,EAAOxG,KAAO,SAAS6B,GACrB,OAAO/Q,UAAU/B,QAAUiR,EAAoB,oBAAN6B,EAAmBA,EAAIyE,IAAUzE,GAAI2E,GAAUxG,GAG1FwG,EAAOzG,QAAU,SAAS8B,GACxB,OAAO/Q,UAAU/B,QAAUgR,EAAe,MAAL8B,EAAY,KAAOA,EAAG2E,GAAUzG,GAGhEyG,ED8DUE,GAAcvb,KAAKgb,GAAenG,KAxD7B,SAA2BA,EAAMkG,EAAU/a,GACjE,GAAiB,SAAb+a,EACF,OAAOlG,EAGT,OAAQ7U,GACN,IAAK,QACH,OAAO,EAAI6U,EAAOA,EAAO,EAE3B,IAAK,UACH,MAAO,GAAMA,EAAOA,EAAOnS,KAAK8R,KAAK,GAEvC,IAAK,SACH,OAAOK,EAAOA,EAEhB,IAAK,OAED,IAAInM,EAAQ,GAAK2R,GACjB,OAAO,KAAOxF,EAAOA,GAAQnS,KAAKmV,IAAInP,GAAShG,KAAKmV,IAAY,EAARnP,GAAahG,KAAK8Y,IAAI9Y,KAAKmV,IAAInP,GAAQ,IAGnG,IAAK,WACH,OAAOhG,KAAK8R,KAAK,GAAKK,EAAOA,EAAO,EAEtC,IAAK,MACH,OAAQ,GAAK,GAAKnS,KAAK8R,KAAK,IAAMK,EAAOA,EAAO,EAElD,QACE,OAAOnS,KAAK+R,GAAKI,EAAOA,EAAO,GA4BqB4G,CAAkB5G,EAAMkG,EAAU/a,GAC/Eqb,KAER,CACDlb,IAAK,SACL2B,MAAO,WACL,IAAI4Z,EAAevI,KAAK5C,MACpBiD,EAAYkI,EAAalI,UACzBmI,EAAKD,EAAaC,GAClBC,EAAKF,EAAaE,GAClB/G,EAAO6G,EAAa7G,KAExB,OAAI8G,KAAQA,GAAMC,KAAQA,GAAM/G,KAAUA,EACjChF,IAAMyB,cAAc,OAAQ0B,GAAS,GAAI5C,EAA0B+C,KAAK5C,OAAQK,EAAsBuC,KAAK5C,OAAQ,CACxHiD,UAAWO,IAAW,mBAAoBP,GAC1C9G,UAAW,aAAapH,OAAOqW,EAAI,MAAMrW,OAAOsW,EAAI,KACpDC,EAAG1I,KAAK2I,aAIL,UAhHiE1C,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GAoH3KH,EA9CT,CA+CEyB,iBAEFzB,GAAQ/K,YAAc,UACtB+K,GAAQlH,UApIR,SAAuBrS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAoIzemb,CAAc,GAAI7T,EAAyB,CAC7DmL,UAAWlL,IAAUC,OACrBvI,KAAMsI,IAAUiB,MAAM,CAAC,SAAU,QAAS,UAAW,SAAU,OAAQ,WAAY,QACnFoS,GAAIrT,IAAUK,OACdiT,GAAItT,IAAUK,OACdkM,KAAMvM,IAAUK,OAChBoS,SAAUzS,IAAUiB,MAAM,CAAC,OAAQ,eAErC+Q,GAAQ6B,aAAe,CACrBnc,KAAM,SACN6U,KAAM,GACNkG,SAAU,QAEGT,UEnJf,SAAStB,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASkT,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAWrK,IAAIwC,GAAO,GACPC,GAAalN,EAAapF,QAAO,SAAU/J,GAC7C,MAAgB,SAATA,KAGLsc,GAEJ,SAAU/B,GAGR,SAAS+B,IAGP,OAFArD,GAAgB9F,KAAMmJ,GAEfhD,GAA2BnG,KAAMsG,GAAgB6C,GAAsBpJ,MAAMC,KAAMxN,YAlC9F,IAAsBwT,EAAaqB,EAAYC,EA+K7C,OAvKF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAqBjXE,CAAUyB,EAAsB/B,GA7BZpB,EAqCPmD,GArCoB9B,EAqCE,CAAC,CAClCra,IAAK,aAOL2B,MAAO,SAAoBkP,GACzB,IAAIuL,EAAgBpJ,KAAK5C,MAAMgM,cAC3BC,EAAWJ,GACXK,EAAYL,GAAO,EACnBM,EAAYN,GAAO,EACnBpT,EAAQgI,EAAK2L,SAAWJ,EAAgBvL,EAAKhI,MAEjD,MAAkB,cAAdgI,EAAKhR,KACA6P,IAAMyB,cAAc,OAAQ,CACjCpF,YAAa,EACbvC,KAAM,OACNgC,OAAQ3C,EACR4C,gBAAiBoF,EAAK4L,QAAQhR,gBAC9BmK,GAAI,EACJC,GAAIwG,EACJvG,GAAImG,GACJlG,GAAIsG,EACJhJ,UAAW,yBAIG,SAAdxC,EAAKhR,KACA6P,IAAMyB,cAAc,OAAQ,CACjCpF,YAAa,EACbvC,KAAM,OACNgC,OAAQ3C,EACR6S,EAAG,MAAMvW,OAAOkX,EAAU,KAAKlX,OAAOoX,EAAW,mBAAmBpX,OAAOmX,EAAW,KAAKnX,OAAOmX,EAAW,WAAWnX,OAAO,EAAIoX,EAAW,KAAKpX,OAAOkX,EAAU,mBAAmBlX,OAAO8W,GAAM,KAAK9W,OAAO,EAAIoX,EAAW,KAAKpX,OAAOkX,EAAU,mBAAmBlX,OAAOmX,EAAW,KAAKnX,OAAOmX,EAAW,WAAWnX,OAAOoX,EAAW,KAAKpX,OAAOkX,GAC1VhJ,UAAW,yBAIG,SAAdxC,EAAKhR,KACA6P,IAAMyB,cAAc,OAAQ,CACjC3F,OAAQ,OACRhC,KAAMX,EACN6S,EAAG,MAAMvW,OAAO8W,EAAU,KAAK9W,OAAO8W,GAAM,KAAK9W,OAAO8W,GAAc,KAAK9W,QAAO,GAAO,KACzFkO,UAAW,yBAIR3D,IAAMyB,cAAcgJ,GAAS,CAClC3Q,KAAMX,EACN2S,GAAIa,EACJZ,GAAIY,EACJ3H,KAAMuH,GACNrB,SAAU,WACV/a,KAAMgR,EAAKhR,SAQd,CACDG,IAAK,cACL2B,MAAO,WACL,IAAI+a,EAAQ1J,KAER2H,EAAc3H,KAAK5C,MACnBqM,EAAU9B,EAAY8B,QACtBE,EAAWhC,EAAYgC,SACvBC,EAASjC,EAAYiC,OACrBC,EAAYlC,EAAYkC,UACxB1J,EAAU,CACZnG,EAAG,EACHC,EAAG,EACHL,MAAOqP,GACPpP,OAAQoP,IAENa,EAAY,CACdzT,QAAoB,eAAXuT,EAA0B,eAAiB,QACpDG,YAAa,IAEXC,EAAW,CACb3T,QAAS,eACT4T,cAAe,SACfF,YAAa,GAEf,OAAON,EAAQhN,KAAI,SAAUjJ,EAAOQ,GAClC,IAAIkW,EAEAC,EAAiB3W,EAAMqW,WAAaA,EACpCxJ,EAAYO,KAEb8E,GAFyBwE,EAAc,CACxC,wBAAwB,GACM,eAAe/X,OAAO6B,IAAI,GAAO0R,GAAgBwE,EAAa,WAAY1W,EAAMgW,UAAWU,IAE3H,MAAmB,SAAf1W,EAAM3G,KACD,KAGF6P,IAAMyB,cAAc,KAAM0B,GAAS,CACxCQ,UAAWA,EACX1G,MAAOmQ,EACP9c,IAAK,eAAemF,OAAO6B,IAE1B8J,GAAoB4L,EAAMtM,MAAO5J,EAAOQ,IAAK0I,IAAMyB,cAAcqC,GAAS,CAC3E5G,MAAO+P,EACP9P,OAAQ8P,EACRxJ,QAASA,EACTxG,MAAOqQ,GACNN,EAAMU,WAAW5W,IAASkJ,IAAMyB,cAAc,OAAQ,CACvDkC,UAAW,6BACV8J,EAAiBA,EAAe3W,EAAM7E,MAAO6E,EAAOQ,GAAKR,EAAM7E,aAGrE,CACD3B,IAAK,SACL2B,MAAO,WACL,IAAI4Z,EAAevI,KAAK5C,MACpBqM,EAAUlB,EAAakB,QACvBG,EAASrB,EAAaqB,OACtBS,EAAQ9B,EAAa8B,MAEzB,IAAKZ,IAAYA,EAAQhZ,OACvB,OAAO,KAGT,IAAI6Z,EAAa,CACfC,QAAS,EACTC,OAAQ,EACRC,UAAsB,eAAXb,EAA0BS,EAAQ,QAE/C,OAAO3N,IAAMyB,cAAc,KAAM,CAC/BkC,UAAW,0BACX1G,MAAO2Q,GACNtK,KAAK0K,oBA3KgEzE,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA+K3K6B,EAnJT,CAoJEP,iBAEFO,GAAqB/M,YAAc,SACnC+M,GAAqBlJ,UAAY,CAC/B0K,QAASxV,IAAUyV,QACnBjB,SAAUxU,IAAUK,OACpBqV,SAAU1V,IAAUiB,MAAM8S,IAC1BU,OAAQzU,IAAUiB,MAAM,CAAC,aAAc,aACvCiU,MAAOlV,IAAUiB,MAAM,CAAC,SAAU,OAAQ,UAC1C6T,cAAe9U,IAAUiB,MAAM,CAAC,MAAO,SAAU,WACjDqT,QAAStU,IAAUmL,QAAQnL,IAAUiL,MAAM,CACzCzR,MAAOwG,IAAUE,IACjBnD,GAAIiD,IAAUE,IACdxI,KAAMsI,IAAUiB,MAAM4F,MAExBoN,cAAejU,IAAUC,OACzByU,UAAW1U,IAAUmF,KACrBM,aAAczF,IAAUmF,KACxBO,aAAc1F,IAAUmF,KACxBD,QAASlF,IAAUmF,MAErB6O,GAAqBH,aAAe,CAClCW,SAAU,GACVC,OAAQ,aACRS,MAAO,SACPJ,cAAe,SACfb,cAAe,QAEFD,UCnNf,SAAStD,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASuS,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAWrK,IAAIqE,GAAgB,SAAuBtX,GACzC,OAAOA,EAAM7E,OAGXoc,GAAgB,SAAuBC,EAAQvB,GACjD,OAAe,IAAXuB,EACKC,IAAQxB,EAASqB,IAGtB3N,IAAY6N,GACPC,IAAQxB,EAASuB,GAGnBvB,GAgBLP,GAAalN,EAAapF,QAAO,SAAU/J,GAC7C,MAAgB,SAATA,KAGLqe,GAEJ,SAAU9D,GAGR,SAAS8D,IACP,IAAIC,EAEAzB,EAEJ5D,GAAgB9F,KAAMkL,GAEtB,IAAK,IAAIE,EAAO5Y,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAM4c,GAAOvX,EAAO,EAAGA,EAAOuX,EAAMvX,IAC/EwX,EAAKxX,GAAQrB,UAAUqB,GAQzB,OALA6V,EAAQvD,GAA2BnG,MAAOmL,EAAmB7E,GAAgB4E,IAAShd,KAAK6R,MAAMoL,EAAkB,CAACnL,MAAM7N,OAAOkZ,MAC3HC,MAAQ,CACZC,UAAW,EACXC,WAAY,GAEP9B,EA3EX,IAAsB1D,EAAaqB,EAAYC,EA2O7C,OAnOF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAiDjXE,CAAUwD,EAAQ9D,GAzDEpB,EA8EPkF,EA9EgC5D,EAsNzC,CAAC,CACHta,IAAK,gBACL2B,MAAO,SAAuB8c,EAAMC,GAClC,IAAI9B,EAAS6B,EAAKrO,MAAMwM,OAExB,MAAe,aAAXA,GAAyBjY,EAAS8Z,EAAKrO,MAAMvD,QACxC,CACLA,OAAQ4R,EAAKrO,MAAMvD,QAIR,eAAX+P,EACK,CACLhQ,MAAO6R,EAAKrO,MAAMxD,OAAS8R,GAIxB,SAvOsBrE,EA8EZ,CAAC,CACpBra,IAAK,oBACL2B,MAAO,WACLqR,KAAK2L,eAEN,CACD3e,IAAK,qBACL2B,MAAO,WACLqR,KAAK2L,eAEN,CACD3e,IAAK,UACL2B,MAAO,WACL,IAAIid,EAAc5L,KAAKsL,MACnBC,EAAWK,EAAYL,SACvBC,EAAYI,EAAYJ,UAE5B,OAAID,GAAY,GAAKC,GAAa,EACzB,CACL5R,MAAO2R,EACP1R,OAAQ2R,GAIL,OAER,CACDxe,IAAK,qBACL2B,MAAO,SAA4BgL,GACjC,IAOIkS,EAAMC,EAPNnE,EAAc3H,KAAK5C,MACnBwM,EAASjC,EAAYiC,OACrBS,EAAQ1C,EAAY0C,MACpBJ,EAAgBtC,EAAYsC,cAC5BO,EAAS7C,EAAY6C,OACrBkB,EAAa/D,EAAY+D,WACzBK,EAAcpE,EAAYoE,YAsC9B,OAnCKpS,SAAyB3L,IAAf2L,EAAMqS,MAAqC,OAAfrS,EAAMqS,WAAmChe,IAAhB2L,EAAMsS,OAAuC,OAAhBtS,EAAMsS,SAKnGJ,EAJY,WAAVxB,GAAiC,aAAXT,EAIjB,CACLoC,OAAQN,GAAc,IAJd1L,KAAKkM,WAAa,CAC1BtS,MAAO,IAGwBA,OAAS,GAGzB,UAAVyQ,EAAoB,CACzB4B,MAAOzB,GAAUA,EAAOyB,OAAS,GAC/B,CACFD,KAAMxB,GAAUA,EAAOwB,MAAQ,IAKhCrS,SAAwB3L,IAAd2L,EAAMwS,KAAmC,OAAdxS,EAAMwS,UAAmCne,IAAjB2L,EAAMyS,QAAyC,OAAjBzS,EAAMyS,UAMlGN,EALoB,WAAlB7B,EAKK,CACLkC,MAAOJ,GAAe,IALb/L,KAAKkM,WAAa,CAC3BrS,OAAQ,IAIwBA,QAAU,GAGnB,WAAlBoQ,EAA6B,CAClCmC,OAAQ5B,GAAUA,EAAO4B,QAAU,GACjC,CACFD,IAAK3B,GAAUA,EAAO2B,KAAO,IAK5BpD,GAAc,GAAI8C,EAAM,GAAIC,KAEpC,CACD9e,IAAK,aACL2B,MAAO,WACL,IAAI0d,EAAerM,KAAKsL,MACpBC,EAAWc,EAAad,SACxBC,EAAYa,EAAab,UACzBc,EAAetM,KAAK5C,MAAMkP,aAE9B,GAAItM,KAAKuM,aAAevM,KAAKuM,YAAYC,sBAAuB,CAC9D,IAAIC,EAAMzM,KAAKuM,YAAYC,yBAEvBjd,KAAKwR,IAAI0L,EAAI7S,MAAQ2R,GAnHvB,GAmH0Chc,KAAKwR,IAAI0L,EAAI5S,OAAS2R,GAnHhE,IAoHAxL,KAAK0M,SAAS,CACZnB,SAAUkB,EAAI7S,MACd4R,UAAWiB,EAAI5S,SACd,WACGyS,GACFA,EAAaG,WAII,IAAdlB,IAAkC,IAAfC,GAC5BxL,KAAK0M,SAAS,CACZnB,UAAW,EACXC,WAAY,IACX,WACGc,GACFA,EAAa,WAKpB,CACDtf,IAAK,SACL2B,MAAO,WACL,IAAIge,EAAS3M,KAETuI,EAAevI,KAAK5C,MACpBuN,EAAUpC,EAAaoC,QACvB/Q,EAAQ2O,EAAa3O,MACrBC,EAAS0O,EAAa1O,OACtB+S,EAAerE,EAAaqE,aAC5BC,EAAetE,EAAasE,aAC5BpD,EAAUlB,EAAakB,QAEvBqD,EAAa/D,GAAc,CAC7BgE,SAAU,WACVnT,MAAOA,GAAS,OAChBC,OAAQA,GAAU,QACjBmG,KAAKgN,mBAAmBJ,GAAe,GAAIA,GAE9C,OAAOlQ,IAAMyB,cAAc,MAAO,CAChCkC,UAAW,0BACX1G,MAAOmT,EACPG,IAAK,SAAa1M,GAChBoM,EAAOJ,YAAchM,IA3KX,SAAuBoK,EAASvN,GAClD,OAAIV,IAAMW,eAAesN,GAChBjO,IAAMwQ,aAAavC,EAASvN,GAGjCD,IAAYwN,GACPA,EAAQvN,GAGVV,IAAMyB,cAAcgL,GAAsB/L,GAoK1C+P,CAAcxC,EAAS5B,GAAc,GAAI/I,KAAK5C,MAAO,CACtDqM,QAASsB,GAAc8B,EAAcpD,YAnNiCxD,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA2O3K4D,EAnLT,CAoLEtC,iBAEFsC,GAAO9O,YAAc,SACrB8O,GAAOjL,UAAY,CACjB0K,QAASxV,IAAUuB,UAAU,CAACvB,IAAUyV,QAASzV,IAAUmF,OAC3DsS,aAAczX,IAAUjF,OACxBwb,WAAYvW,IAAUK,OACtBuW,YAAa5W,IAAUK,OACvBoE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,OAClBmU,SAAUxU,IAAUK,OACpBqV,SAAU1V,IAAUiB,MAAM8S,IAC1BU,OAAQzU,IAAUiB,MAAM,CAAC,aAAc,aACvCiU,MAAOlV,IAAUiB,MAAM,CAAC,SAAU,OAAQ,UAC1C6T,cAAe9U,IAAUiB,MAAM,CAAC,MAAO,SAAU,WACjDoU,OAAQrV,IAAUiL,MAAM,CACtB+L,IAAKhX,IAAUK,OACfwW,KAAM7W,IAAUK,OAChB4W,OAAQjX,IAAUK,OAClByW,MAAO9W,IAAUK,SAEnBiU,QAAStU,IAAUmL,QAAQnL,IAAUiL,MAAM,CACzCzR,MAAOwG,IAAUE,IACjBnD,GAAIiD,IAAUE,IACdxI,KAAMsI,IAAUiB,MAAM4F,MAExB6Q,aAAc1X,IAAUuB,UAAU,CAACvB,IAAUmF,KAAMnF,IAAUiY,OAC7DvD,UAAW1U,IAAUmF,KACrBM,aAAczF,IAAUmF,KACxBO,aAAc1F,IAAUmF,KACxBD,QAASlF,IAAUmF,KACnBgS,aAAcnX,IAAUmF,MAE1B4Q,GAAOlC,aAAe,CACpBW,SAAU,GACVC,OAAQ,aACRS,MAAO,SACPJ,cAAe,UAEFiB,U,0CCjSA,SAASmC,GAAcC,GACpC,IAAIC,EAAU/a,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,GAAmBA,UAAU,GAAK,EAC9Egb,GAAY,EAEZC,EAAe,SAASA,EAAaC,GACnCF,EAAW,IACbA,EAAWE,GAGTA,EAAMF,EAAWD,GACnBD,EAASI,GACTF,GAAY,GAEZG,KAAIF,IAIRE,KAAIF,GClBN,SAAS5H,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAAS+a,GAAS7Z,GAAO,OAMzB,SAAyBA,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,OAAOA,EAN/B8Z,CAAgB9Z,IAIhD,SAA0BI,GAAQ,GAAIxE,OAAOyE,YAAYhF,OAAO+E,IAAkD,uBAAzC/E,OAAOiF,UAAUC,SAASpG,KAAKiG,GAAgC,OAAO3F,MAAM+F,KAAKJ,GAJlGK,CAAiBT,IAEzE,WAA8B,MAAM,IAAIU,UAAU,wDAF+BqZ,GASlE,SAASC,KACtB,IAEIC,EAAe,WACjB,OAAO,MAGLC,GAAa,EAEbC,EAAW,SAASA,EAASC,GAC/B,IAAIF,EAAJ,CAIA,GAAIzf,MAAMD,QAAQ4f,GAAS,CACzB,IAAKA,EAAO1d,OACV,OAGF,IAEI2d,EAAUR,GAFDO,GAGTE,EAAOD,EAAQ,GACfE,EAAaF,EAAQzb,MAAM,GAE/B,MAAoB,kBAAT0b,OACThB,GAAca,EAASK,KAAK,KAAMD,GAAaD,IAIjDH,EAASG,QACThB,GAAca,EAASK,KAAK,KAAMD,KAIZ,WAApBzI,GAAQsI,IAEVH,EADYG,GAIQ,oBAAXA,GACTA,MAIJ,MAAO,CACLK,KAAM,WACJP,GAAa,GAEfQ,MAAO,SAAe9U,GACpBsU,GAAa,EACbC,EAASvU,IAEX+U,UAAW,SAAmBC,GAE5B,OADAX,EAAeW,EACR,WACLX,EAAe,WACb,OAAO,S,yBClEjB,SAASjF,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQoR,EAAUhW,OAAO0D,KAAK/F,GAAqD,oBAAjCqC,OAAO2F,wBAAwCqQ,EAAUA,EAAQjT,OAAO/C,OAAO2F,sBAAsBhI,GAAQ6J,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBzY,EAAQwY,GAAKE,gBAAmBL,EAAQxI,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAa,OAAOY,EAExd,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAG3M,IAAI+b,GAAc,CAAC,SAAU,MAAO,IAAK,MACrCC,GAAsB,CAAC,WAAY,QAAS,MAAO,QACnDC,GAAyB,CAAC,YAAa,kBAAmB,cAInD/f,GAAW,SAAkBggB,GACtC,OAAOA,GA0EEC,GAAY,SAAmBC,EAAIpc,GAC5C,OAAOzD,OAAO0D,KAAKD,GAAKqc,QAAO,SAAUC,EAAKniB,GAC5C,OAAO+b,GAAc,GAAIoG,EAAKzJ,GAAgB,GAAI1Y,EAAKiiB,EAAGjiB,EAAK6F,EAAI7F,QAClE,KAOMoiB,GAAiB,SAAwBzV,GAClD,OAAOvK,OAAO0D,KAAK6G,GAAOuV,QAAO,SAAUC,EAAKniB,GAC9C,OAAO+b,GAAc,GAAIoG,EArEI,SAA6BriB,EAAM6B,GAClE,IAA8C,IAA1CmgB,GAAuBpd,QAAQ5E,GACjC,OAAO4Y,GAAgB,GAAI5Y,EAAM6B,GAGnC,IAAI0gB,EAAwB,eAATviB,EACfwiB,EAAYxiB,EAAKyiB,QAAQ,QAAQ,SAAUC,GAC7C,OAAOA,EAAE1H,iBAEP2H,EAAW9gB,EACf,OAAOigB,GAAYM,QAAO,SAAUle,EAAQhC,EAAUgF,GAKpD,OAJIqb,IACFI,EAAW9gB,EAAM4gB,QAAQ,kCAAmC,GAAGpd,OAAO0c,GAAoB7a,GAAI,QAGzF+U,GAAc,GAAI/X,EAAQ0U,GAAgB,GAAI1W,EAAWsgB,EAAWG,MAC1E,IAqD6BC,CAAoB1iB,EAAKmiB,EAAIniB,OAC1D2M,IAqBMgW,GAAmB,SAA0BvS,EAAOwS,EAAUC,GACvE,OAAOzS,EAAMX,KAAI,SAAUqT,GACzB,MAAO,GAAG3d,QAvGgCrF,EAuGbgjB,EAtGxBhjB,EAAKyiB,QAAQ,YAAY,SAAUC,GACxC,MAAO,IAAIrd,OAAOqd,EAAEO,mBAqGgB,KAAK5d,OAAOyd,EAAU,OAAOzd,OAAO0d,GAvGnD,IAAqB/iB,KAwGzCkjB,KAAK,MC7HV,SAASC,GAAelc,EAAKC,GAAK,OAMlC,SAAyBD,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,OAAOA,EANtB8Z,CAAgB9Z,IAIzD,SAA+BA,EAAKC,GAAK,IAAIkc,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKriB,EAAW,IAAM,IAAK,IAAiCsiB,EAA7BpR,EAAKnL,EAAIpE,OAAOyE,cAAmB+b,GAAMG,EAAKpR,EAAGqR,QAAQC,QAAoBN,EAAKnT,KAAKuT,EAAG3hB,QAAYqF,GAAKkc,EAAKzf,SAAWuD,GAA3Dmc,GAAK,IAAoE,MAAOM,GAAOL,GAAK,EAAMC,EAAKI,EAAtL,QAAuM,IAAWN,GAAsB,MAAhBjR,EAAE,QAAoBA,EAAE,SAAzC,QAAmE,GAAIkR,EAAI,MAAMC,GAAQ,OAAOH,EAJjVQ,CAAsB3c,EAAKC,IAE5F,WAA8B,MAAM,IAAIS,UAAU,wDAFgDqZ,GAQlG,SAASha,GAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,CAAE,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIzF,MAAMuF,EAAItD,QAASuD,EAAID,EAAItD,OAAQuD,IAAOC,EAAKD,GAAKD,EAAIC,GAAM,OAAOC,GANnHC,CAAmBH,IAI7D,SAA0BI,GAAQ,GAAIxE,OAAOyE,YAAYhF,OAAO+E,IAAkD,uBAAzC/E,OAAOiF,UAAUC,SAASpG,KAAKiG,GAAgC,OAAO3F,MAAM+F,KAAKJ,GAJrFK,CAAiBT,IAEtF,WAAgC,MAAM,IAAIU,UAAU,mDAF0CC,GAS9F,IAAIic,GAAW,KAEXC,GAAoB,SAA2BC,EAAIC,GACrD,MAAO,CAAC,EAAG,EAAID,EAAI,EAAIC,EAAK,EAAID,EAAI,EAAIA,EAAK,EAAIC,EAAK,IAGpDC,GAAY,SAAmBC,EAAQ9d,GACzC,OAAO8d,EAAOvU,KAAI,SAAUsS,EAAO/a,GACjC,OAAO+a,EAAQxf,KAAK8Y,IAAInV,EAAGc,MAC1Bkb,QAAO,SAAU+B,EAAK5C,GACvB,OAAO4C,EAAM5C,MAIb6C,GAAc,SAAqBL,EAAIC,GACzC,OAAO,SAAU5d,GACf,IAAI8d,EAASJ,GAAkBC,EAAIC,GACnC,OAAOC,GAAUC,EAAQ9d,KAIzBie,GAAwB,SAA+BN,EAAIC,GAC7D,OAAO,SAAU5d,GACf,IAEIke,EAAYtd,GAFH8c,GAAkBC,EAAIC,GAEOrU,KAAI,SAAUsS,EAAO/a,GAC7D,OAAO+a,EAAQ/a,KACdrB,MAAM,IAAIR,OAAO,CAAC,IAErB,OAAO4e,GAAUK,EAAWle,KAKrBme,GAAe,WACxB,IAAK,IAAIjG,EAAO5Y,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAM4c,GAAOvX,EAAO,EAAGA,EAAOuX,EAAMvX,IAC/EwX,EAAKxX,GAAQrB,UAAUqB,GAGzB,IAAI+O,EAAKyI,EAAK,GACVxI,EAAKwI,EAAK,GACVvI,EAAKuI,EAAK,GACVtI,EAAKsI,EAAK,GAEd,GAAoB,IAAhBA,EAAK5a,OACP,OAAQ4a,EAAK,IACX,IAAK,SACHzI,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EACL,MAEF,IAAK,OACHH,EAAK,IACLC,EAAK,GACLC,EAAK,IACLC,EAAK,EACL,MAEF,IAAK,UACHH,EAAK,IACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EACL,MAEF,IAAK,WACHH,EAAK,IACLC,EAAK,EACLC,EAAK,IACLC,EAAK,EACL,MAEF,IAAK,cACHH,EAAK,EACLC,EAAK,EACLC,EAAK,IACLC,EAAK,EACL,MAEF,QAEI,IAAI8M,EAASxE,EAAK,GAAGiG,MAAM,KAE3B,GAAkB,iBAAdzB,EAAO,IAAuE,IAA9CA,EAAO,GAAGyB,MAAM,KAAK,GAAGA,MAAM,KAAK7gB,OAAc,CACnF,IAAI8gB,EAAwB1B,EAAO,GAAGyB,MAAM,KAAK,GAAGA,MAAM,KAAK7U,KAAI,SAAUzC,GAC3E,OAAOtH,WAAWsH,MAGhBwX,EAAyBvB,GAAesB,EAAuB,GAEnE3O,EAAK4O,EAAuB,GAC5B3O,EAAK2O,EAAuB,GAC5B1O,EAAK0O,EAAuB,GAC5BzO,EAAKyO,EAAuB,IAQjC,CAAC5O,EAAIE,EAAID,EAAIE,GAAI0O,OAAM,SAAUC,GACpC,MAAsB,kBAARA,GAAoBA,GAAO,GAAKA,GAAO,KAEvD,IAAIC,EAAST,GAAYtO,EAAIE,GACzB8O,EAASV,GAAYrO,EAAIE,GACzB8O,EAAYV,GAAsBvO,EAAIE,GAEtCgP,EAAa,SAAoBnjB,GACnC,OAAIA,EAAQ,EACH,EACEA,EAAQ,EACV,EAGFA,GAGLojB,EAAS,SAAgBC,GAI3B,IAHA,IAAI9e,EAAI8e,EAAK,EAAI,EAAIA,EACjBhY,EAAI9G,EAECc,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,IAAIie,EAAQN,EAAO3X,GAAK9G,EACpBgf,EAASL,EAAU7X,GAEvB,GAAIzK,KAAKwR,IAAIkR,EAAQ/e,GAAKyd,IAAYuB,EAASvB,GAC7C,OAAOiB,EAAO5X,GAGhBA,EAAI8X,EAAW9X,EAAIiY,EAAQC,GAG7B,OAAON,EAAO5X,IAIhB,OADA+X,EAAOI,WAAY,EACZJ,GAEEK,GAAe,WACxB,IAAIC,EAAS7f,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,GAAmBA,UAAU,GAAK,GAC7E8f,EAAgBD,EAAOE,MACvBA,OAA0B,IAAlBD,EAA2B,IAAMA,EACzCE,EAAkBH,EAAOI,QACzBA,OAA8B,IAApBD,EAA6B,EAAIA,EAC3CE,EAAaL,EAAOM,GACpBA,OAAoB,IAAfD,EAAwB,GAAKA,EAElCE,EAAU,SAAiBC,EAAOC,EAAOC,GAC3C,IAEIC,EAAOD,KAFKF,EAAQC,GAASP,EAClBQ,EAAQN,GACmBE,EAAK,IAC3CM,EAAOF,EAAQJ,EAAK,IAAOE,EAE/B,OAAItjB,KAAKwR,IAAIkS,EAAOH,GAASnC,IAAYphB,KAAKwR,IAAIiS,GAAQrC,GACjD,CAACmC,EAAO,GAGV,CAACG,EAAMD,IAKhB,OAFAJ,EAAQT,WAAY,EACpBS,EAAQD,GAAKA,EACNC,G,qBCpLT,SAAS9e,GAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,CAAE,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIzF,MAAMuF,EAAItD,QAASuD,EAAID,EAAItD,OAAQuD,IAAOC,EAAKD,GAAKD,EAAIC,GAAM,OAAOC,GANnHC,CAAmBH,IAI7D,SAA0BI,GAAQ,GAAIxE,OAAOyE,YAAYhF,OAAO+E,IAAkD,uBAAzC/E,OAAOiF,UAAUC,SAASpG,KAAKiG,GAAgC,OAAO3F,MAAM+F,KAAKJ,GAJrFK,CAAiBT,IAEtF,WAAgC,MAAM,IAAIU,UAAU,mDAF0CC,GAQ9F,SAASqU,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQoR,EAAUhW,OAAO0D,KAAK/F,GAAqD,oBAAjCqC,OAAO2F,wBAAwCqQ,EAAUA,EAAQjT,OAAO/C,OAAO2F,sBAAsBhI,GAAQ6J,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBzY,EAAQwY,GAAKE,gBAAmBL,EAAQxI,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAa,OAAOY,EAExd,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASod,GAAelc,EAAKC,GAAK,OAMlC,SAAyBD,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,OAAOA,EANtB8Z,CAAgB9Z,IAIzD,SAA+BA,EAAKC,GAAK,IAAIkc,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKriB,EAAW,IAAM,IAAK,IAAiCsiB,EAA7BpR,EAAKnL,EAAIpE,OAAOyE,cAAmB+b,GAAMG,EAAKpR,EAAGqR,QAAQC,QAAoBN,EAAKnT,KAAKuT,EAAG3hB,QAAYqF,GAAKkc,EAAKzf,SAAWuD,GAA3Dmc,GAAK,IAAoE,MAAOM,GAAOL,GAAK,EAAMC,EAAKI,EAAtL,QAAuM,IAAWN,GAAsB,MAAhBjR,EAAE,QAAoBA,EAAE,SAAzC,QAAmE,GAAIkR,EAAI,MAAMC,GAAQ,OAAOH,EAJjVQ,CAAsB3c,EAAKC,IAE5F,WAA8B,MAAM,IAAIS,UAAU,wDAFgDqZ,GAWlG,IAAIoF,GAAQ,SAAeC,EAAOC,EAAK3Q,GACrC,OAAO0Q,GAASC,EAAMD,GAAS1Q,GAG7B4Q,GAAe,SAAsB3U,GAGvC,OAFWA,EAAKnK,OACPmK,EAAK4U,IASZC,GAAiB,SAASA,EAAe1D,EAAQ2D,EAASC,GAC5D,IAAIC,EAAe1E,IAAU,SAAUhiB,EAAK2mB,GAC1C,GAAIN,GAAaM,GAAM,CACrB,IACIC,EAAW3D,GADDJ,EAAO8D,EAAIpf,KAAMof,EAAIL,GAAIK,EAAIE,UACJ,GAIvC,OAAO9K,GAAc,GAAI4K,EAAK,CAC5Bpf,KAJSqf,EAAS,GAKlBC,SAJSD,EAAS,KAQtB,OAAOD,IACNH,GAEH,OAAIC,EAAQ,EACHzE,IAAU,SAAUhiB,EAAK2mB,GAC9B,OAAIN,GAAaM,GACR5K,GAAc,GAAI4K,EAAK,CAC5BE,SAAUX,GAAMS,EAAIE,SAAUH,EAAa1mB,GAAK6mB,SAAUJ,GAC1Dlf,KAAM2e,GAAMS,EAAIpf,KAAMmf,EAAa1mB,GAAKuH,KAAMkf,KAI3CE,IACNH,GAGED,EAAe1D,EAAQ6D,EAAcD,EAAQ,IAItC,YAAUlf,EAAM+e,EAAIzD,EAAQD,EAAUkE,GACpD,IFjE4DC,EAAQC,EE6EhEC,EACAC,EAbAC,GFjEwDJ,EEiExBxf,EFjEgCyf,EEiE1BV,EFhEnCc,KAAchlB,OAAO0D,KAAKihB,GAAS3kB,OAAO0D,KAAKkhB,KEiElDK,EAAcF,EAAUjF,QAAO,SAAUC,EAAKniB,GAChD,OAAO+b,GAAc,GAAIoG,EAAKzJ,GAAgB,GAAI1Y,EAAK,CAACuH,EAAKvH,GAAMsmB,EAAGtmB,QACrE,IACCsnB,EAAeH,EAAUjF,QAAO,SAAUC,EAAKniB,GACjD,OAAO+b,GAAc,GAAIoG,EAAKzJ,GAAgB,GAAI1Y,EAAK,CACrDuH,KAAMA,EAAKvH,GACX6mB,SAAU,EACVP,GAAIA,EAAGtmB,QAER,IACCunB,GAAS,EAITC,EAAS,WACX,OAAO,MAwDT,OAFAA,EAAS3E,EAAOsC,UAxCI,SAAuBzE,GACpCuG,IACHA,EAAUvG,GAGZ,IACI+F,GADY/F,EAAMuG,GACEpE,EAAO8C,GAC/B2B,EAAef,GAAe1D,EAAQyE,EAAcb,GAEpDK,EAAO/K,GAAc,GAAIxU,EAAM+e,EAnBxBtE,IAAU,SAAUhiB,EAAK2mB,GAC9B,OAAOA,EAAIpf,OACV+f,KAkBHL,EAAUvG,EAdF+G,KAAQH,EAAcjB,IAAc5iB,SAiB1C8jB,EAAQ5G,KAAI6G,KAKG,SAAsB9G,GAClCwG,IACHA,EAAYxG,GAGd,IAAIxa,GAAKwa,EAAMwG,GAAatE,EACxB8E,EAAY1F,IAAU,SAAUhiB,EAAK2mB,GACvC,OAAOT,GAAMnT,WAAM,EAAQjM,GAAmB6f,GAAKxhB,OAAO,CAAC0d,EAAO3c,QACjEmhB,GAIH,GAFAP,EAAO/K,GAAc,GAAIxU,EAAM+e,EAAIoB,IAE/BxhB,EAAI,EACNqhB,EAAQ5G,KAAI6G,OACP,CACL,IAAIlK,EAAa0E,IAAU,SAAUhiB,EAAK2mB,GACxC,OAAOT,GAAMnT,WAAM,EAAQjM,GAAmB6f,GAAKxhB,OAAO,CAAC0d,EAAO,QACjEwE,GACHP,EAAO/K,GAAc,GAAIxU,EAAM+e,EAAIhJ,MAMhC,WAGL,OAFAqD,KAAI6G,GAEG,WACLG,kBAAIJ,MCrJV,SAAS1O,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAAS8B,GAAyB5H,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAAkEC,EAAKgH,EAAnEpG,EAEzF,SAAuCb,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAFxMkH,CAA8B/H,EAAQ6H,GAAuB,GAAIxF,OAAO2F,sBAAuB,CAAE,IAAIC,EAAmB5F,OAAO2F,sBAAsBhI,GAAS,IAAKiH,EAAI,EAAGA,EAAIgB,EAAiBvE,OAAQuD,IAAOhH,EAAMgI,EAAiBhB,GAAQY,EAASlD,QAAQ1E,IAAQ,GAAkBoC,OAAOiF,UAAUY,qBAAqB/G,KAAKnB,EAAQC,KAAgBY,EAAOZ,GAAOD,EAAOC,IAAU,OAAOY,EAIne,SAASkG,GAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,CAAE,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIzF,MAAMuF,EAAItD,QAASuD,EAAID,EAAItD,OAAQuD,IAAOC,EAAKD,GAAKD,EAAIC,GAAM,OAAOC,GANnHC,CAAmBH,IAI7D,SAA0BI,GAAQ,GAAIxE,OAAOyE,YAAYhF,OAAO+E,IAAkD,uBAAzC/E,OAAOiF,UAAUC,SAASpG,KAAKiG,GAAgC,OAAO3F,MAAM+F,KAAKJ,GAJrFK,CAAiBT,IAEtF,WAAgC,MAAM,IAAIU,UAAU,mDAF0CC,GAQ9F,SAASqU,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQoR,EAAUhW,OAAO0D,KAAK/F,GAAqD,oBAAjCqC,OAAO2F,wBAAwCqQ,EAAUA,EAAQjT,OAAO/C,OAAO2F,sBAAsBhI,GAAQ6J,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBzY,EAAQwY,GAAKE,gBAAmBL,EAAQxI,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAa,OAAOY,EAExd,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAI3M,SAASoT,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAA8CmY,GAAuBlX,GAAtCjB,EAEnI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAErK,SAASJ,GAAuBlX,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAS/J,IAAIylB,GAEJ,SAAUxN,GAGR,SAASwN,EAAQxX,EAAOqE,GACtB,IAAIiI,GA7BR,SAAyB3D,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCA+B5GqR,CAAgB9F,KAAM4U,GAGtB,IAAIjN,GADJ+B,EAAQvD,GAA2BnG,KAAMsG,GAAgBsO,GAAS1mB,KAAK8R,KAAM5C,EAAOqE,KAC5DrE,MACpByX,EAAWlN,EAAYkN,SACvBC,EAAgBnN,EAAYmN,cAC5BvgB,EAAOoT,EAAYpT,KACnB+e,EAAK3L,EAAY2L,GACjBG,EAAQ9L,EAAY8L,MACpBnX,EAAWqL,EAAYrL,SAI3B,GAHAoN,EAAMqL,kBAAoBrL,EAAMqL,kBAAkBxG,KAAKlI,GAAuBA,GAAuBqD,KACrGA,EAAMsL,YAActL,EAAMsL,YAAYzG,KAAKlI,GAAuBA,GAAuBqD,MAEpFmL,EAWH,OAVAnL,EAAM4B,MAAQ,CACZ3R,MAAO,IAGe,oBAAb2C,IACToN,EAAM4B,MAAQ,CACZ3R,MAAO2Z,IAIJnN,GAA2BuD,GAGpC,GAAI+J,GAASA,EAAMhjB,OACjBiZ,EAAM4B,MAAQ,CACZ3R,MAAO8Z,EAAM,GAAG9Z,YAEb,GAAIpF,EAAM,CACf,GAAwB,oBAAb+H,EAIT,OAHAoN,EAAM4B,MAAQ,CACZ3R,MAAOpF,GAEF4R,GAA2BuD,GAGpCA,EAAM4B,MAAQ,CACZ3R,MAAOmb,EAAgBpP,GAAgB,GAAIoP,EAAevgB,GAAQA,QAGpEmV,EAAM4B,MAAQ,CACZ3R,MAAO,IAIX,OAAO+P,EA3EX,IAAsB1D,EAAaqB,EAAYC,EAkV7C,OA5UF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAgBjXE,CAAUkN,EAASxN,GAtBCpB,EA8EP4O,GA9EoBvN,EA8EX,CAAC,CACrBra,IAAK,oBACL2B,MAAO,WACL,IAAI4Z,EAAevI,KAAK5C,MACpByX,EAAWtM,EAAasM,SACxBI,EAAW1M,EAAa0M,SAC5BjV,KAAKkV,SAAU,EAEVL,GAAaI,GAIlBjV,KAAKmV,aAAanV,KAAK5C,SAExB,CACDpQ,IAAK,qBACL2B,MAAO,SAA4BoQ,GACjC,IAAIqW,EAAepV,KAAK5C,MACpByX,EAAWO,EAAaP,SACxBI,EAAWG,EAAaH,SACxBH,EAAgBM,EAAaN,cAC7BO,EAAkBD,EAAaC,gBAEnC,GAAKJ,EAIL,GAAKJ,GAeL,KAAIS,KAASvW,EAAUuU,GAAItT,KAAK5C,MAAMkW,KAAOvU,EAAUkW,UAAYlW,EAAU8V,UAA7E,CAIA,IAAIU,GAAexW,EAAUkW,WAAalW,EAAU8V,SAEhD7U,KAAKwV,SACPxV,KAAKwV,QAAQhH,OAGXxO,KAAKyV,iBACPzV,KAAKyV,kBAGP,IAAIlhB,EAAOghB,GAAeF,EAAkBrV,KAAK5C,MAAM7I,KAAOwK,EAAUuU,GAExE,GAAItT,KAAKsL,OAAStL,KAAKsL,MAAM3R,MAAO,CAClC,IAAI+b,EAAY,CACd/b,MAAOmb,EAAgBpP,GAAgB,GAAIoP,EAAevgB,GAAQA,IAGhEugB,GAAiB9U,KAAKsL,MAAM3R,MAAMmb,KAAmBvgB,IAASugB,GAAiB9U,KAAKsL,MAAM3R,QAAUpF,IAEtGyL,KAAK0M,SAASgJ,GAIlB1V,KAAKmV,aAAapM,GAAc,GAAI/I,KAAK5C,MAAO,CAC9C7I,KAAMA,EACN4e,MAAO,UA5CT,CACE,IAAIwC,EAAW,CACbhc,MAAOmb,EAAgBpP,GAAgB,GAAIoP,EAAe9U,KAAK5C,MAAMkW,IAAMtT,KAAK5C,MAAMkW,IAGpFtT,KAAKsL,OAAStL,KAAKsL,MAAM3R,QACvBmb,GAAiB9U,KAAKsL,MAAM3R,MAAMmb,KAAmB9U,KAAK5C,MAAMkW,KAAOwB,GAAiB9U,KAAKsL,MAAM3R,QAAUqG,KAAK5C,MAAMkW,KAE1HtT,KAAK0M,SAASiJ,MAuCrB,CACD3oB,IAAK,uBACL2B,MAAO,WACLqR,KAAKkV,SAAU,EAEXlV,KAAK4V,aACP5V,KAAK4V,cAGH5V,KAAKwV,UACPxV,KAAKwV,QAAQhH,OACbxO,KAAKwV,QAAU,MAGbxV,KAAKyV,iBACPzV,KAAKyV,oBAGR,CACDzoB,IAAK,iBACL2B,MAAO,SAAwByO,GAC7B,IAAIuP,EAAS3M,KAETzL,EAAO6I,EAAM7I,KACb+e,EAAKlW,EAAMkW,GACX1D,EAAWxS,EAAMwS,SACjBC,EAASzS,EAAMyS,OACfsD,EAAQ/V,EAAM+V,MACd0C,EAAiBzY,EAAMyY,eACvBC,EAAmB1Y,EAAM0Y,iBACzBC,EAAiBC,GAAazhB,EAAM+e,EFtBpB,WACxB,IAAK,IAAI2C,EAAQzjB,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAMynB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF7K,EAAK6K,GAAS1jB,UAAU0jB,GAG1B,IAAIrG,EAASxE,EAAK,GAElB,GAAsB,kBAAXwE,EACT,OAAQA,GACN,IAAK,OACL,IAAK,cACL,IAAK,WACL,IAAK,UACL,IAAK,SACH,OAAOwB,GAAaxB,GAEtB,IAAK,SACH,OAAOuC,KAET,QACE,GAA6B,iBAAzBvC,EAAOyB,MAAM,KAAK,GACpB,OAAOD,GAAaxB,GAO5B,MAAsB,oBAAXA,EACFA,EAIF,KEXyCsG,CAAatG,GAASD,EAAU5P,KAAKgV,aAMjFhV,KAAKwV,QAAQ/G,MAAM,CAACqH,EAAkB3C,EAJZ,WACxBxG,EAAO8I,gBAAkBM,KAGuCnG,EAAUiG,MAE7E,CACD7oB,IAAK,mBACL2B,MAAO,SAA0ByO,GAC/B,IAAIgZ,EAASpW,KAETyT,EAAQrW,EAAMqW,MACdN,EAAQ/V,EAAM+V,MACd2C,EAAmB1Y,EAAM0Y,iBACzBO,EAAU5C,EAAM,GAChB6C,EAAeD,EAAQ1c,MACvB4c,EAAmBF,EAAQzG,SAC3B4G,OAAmC,IAArBD,EAA8B,EAAIA,EAkCpD,OAAOvW,KAAKwV,QAAQ/G,MAAM,CAACqH,GAAkB3jB,OAAO2B,GAAmB2f,EAAMvE,QAhC9D,SAAkBuH,EAAUC,EAAU3lB,GACnD,GAAc,IAAVA,EACF,OAAO0lB,EAGT,IAAI7G,EAAW8G,EAAS9G,SACpB+G,EAAmBD,EAAS7G,OAC5BA,OAA8B,IAArB8G,EAA8B,OAASA,EAChDhd,EAAQ+c,EAAS/c,MACjBid,EAAiBF,EAASG,WAC1BhB,EAAiBa,EAASb,eAC1BiB,EAAU/lB,EAAQ,EAAI0iB,EAAM1iB,EAAQ,GAAK2lB,EACzCG,EAAaD,GAAkBxnB,OAAO0D,KAAK6G,GAE/C,GAAsB,oBAAXkW,GAAoC,WAAXA,EAClC,OAAO/b,GAAmB2iB,GAAUtkB,OAAO,CAACikB,EAAOW,eAAexI,KAAK6H,EAAQ,CAC7E7hB,KAAMuiB,EAAQnd,MACd2Z,GAAI3Z,EACJiW,SAAUA,EACVC,OAAQA,IACND,IAGN,IAAIoH,EAAarH,GAAiBkH,EAAYjH,EAAUC,GAEpDoH,EAAWlO,GAAc,GAAI+N,EAAQnd,MAAOA,EAAO,CACrDqd,WAAYA,IAGd,OAAOljB,GAAmB2iB,GAAUtkB,OAAO,CAAC8kB,EAAUrH,EAAUiG,IAAiBjf,OAAO7H,MAGI,CAACunB,EAAc/mB,KAAK2R,IAAIsV,EAAarD,MAAW,CAAC/V,EAAMyY,oBAEtJ,CACD7oB,IAAK,eACL2B,MAAO,SAAsByO,GACtB4C,KAAKwV,UACRxV,KAAKwV,QAAUzH,MAGjB,IAAIoF,EAAQ/V,EAAM+V,MACdvD,EAAWxS,EAAMwS,SACjBkF,EAAgB1X,EAAM0X,cACtBoC,EAAU9Z,EAAMkW,GAChBzD,EAASzS,EAAMyS,OACfiG,EAAmB1Y,EAAM0Y,iBACzBD,EAAiBzY,EAAMyY,eACvBpC,EAAQrW,EAAMqW,MACdnX,EAAWc,EAAMd,SACjBkZ,EAAUxV,KAAKwV,QAGnB,GAFAxV,KAAK4V,YAAcJ,EAAQ9G,UAAU1O,KAAK+U,mBAEpB,oBAAXlF,GAA6C,oBAAbvT,GAAsC,WAAXuT,EAKtE,GAAI4D,EAAMhjB,OAAS,EACjBuP,KAAKmX,iBAAiB/Z,OADxB,CAKA,IAAIkW,EAAKwB,EAAgBpP,GAAgB,GAAIoP,EAAeoC,GAAWA,EACnEF,EAAarH,GAAiBvgB,OAAO0D,KAAKwgB,GAAK1D,EAAUC,GAC7D2F,EAAQ/G,MAAM,CAACqH,EAAkB3C,EAAOpK,GAAc,GAAIuK,EAAI,CAC5D0D,WAAYA,IACVpH,EAAUiG,SAbZ7V,KAAK+W,eAAe3Z,KAevB,CACDpQ,IAAK,oBACL2B,MAAO,SAA2BgL,GAChCqG,KAAKgV,YAAYrb,KAElB,CACD3M,IAAK,cACL2B,MAAO,SAAqBgL,GACtBqG,KAAKkV,SACPlV,KAAK0M,SAAS,CACZ/S,MAAOA,MAIZ,CACD3M,IAAK,SACL2B,MAAO,WACL,IAAIyoB,EAAepX,KAAK5C,MACpBd,EAAW8a,EAAa9a,SAKxBuY,GAJQuC,EAAajE,MACViE,EAAaxH,SACRwH,EAAatC,cACpBsC,EAAavH,OACXuH,EAAavC,UAQxBpU,GAPQ2W,EAAa3D,MACd2D,EAAa7iB,KACf6iB,EAAa9D,GACP8D,EAAanC,SACPmC,EAAavB,eACZuB,EAAa/B,gBACV+B,EAAaC,mBACzB1iB,GAAyByiB,EAAc,CAAC,WAAY,QAAS,WAAY,gBAAiB,SAAU,WAAY,QAAS,OAAQ,KAAM,WAAY,iBAAkB,kBAAmB,wBAEjMnY,EAAQtC,WAASsC,MAAM3C,GACvBgb,EAAalI,GAAepP,KAAKsL,MAAM3R,OAE3C,GAAwB,oBAAb2C,EACT,OAAOA,EAASgb,GAGlB,IAAKzC,GAAsB,IAAV5V,EACf,OAAO3C,EAGT,IAAIib,EAAiB,SAAwBC,GAC3C,IAAIC,EAAmBD,EAAUpa,MAC7Bsa,EAAwBD,EAAiB9d,MACzCA,OAAkC,IAA1B+d,EAAmC,GAAKA,EAChDrX,EAAYoX,EAAiBpX,UAKjC,OAJU6M,uBAAasK,EAAWzO,GAAc,GAAItI,EAAQ,CAC1D9G,MAAOoP,GAAc,GAAIpP,EAAO2d,GAChCjX,UAAWA,MAKf,OAAc,IAAVpB,EACKsY,EAAe5a,WAASgb,KAAKrb,IAG/BI,IAAMyB,cAAc,MAAO,KAAMxB,WAASF,IAAIH,GAAU,SAAUO,GACvE,OAAO0a,EAAe1a,YA7UgDoJ,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GAkV3KsN,EA7TT,CA8TEhM,iBAEFgM,GAAQxY,YAAc,UACtBwY,GAAQ3U,UAAY,CAClB1L,KAAMY,IAAUuB,UAAU,CAACvB,IAAUjF,OAAQiF,IAAUC,SACvDke,GAAIne,IAAUuB,UAAU,CAACvB,IAAUjF,OAAQiF,IAAUC,SACrD0f,cAAe3f,IAAUC,OAEzBwa,SAAUza,IAAUK,OACpB2d,MAAOhe,IAAUK,OACjBqa,OAAQ1a,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUmF,OACzDmZ,MAAOte,IAAUmL,QAAQnL,IAAUiL,MAAM,CACvCwP,SAAUza,IAAUK,OAAO0K,WAC3BvG,MAAOxE,IAAUjF,OAAOgQ,WACxB2P,OAAQ1a,IAAUuB,UAAU,CAACvB,IAAUiB,MAAM,CAAC,OAAQ,UAAW,WAAY,cAAe,WAAYjB,IAAUmF,OAElHuc,WAAY1hB,IAAUmL,QAAQ,UAC9BuV,eAAgB1gB,IAAUmF,QAE5BgC,SAAUnH,IAAUuB,UAAU,CAACvB,IAAUoL,KAAMpL,IAAUmF,OACzDua,SAAU1f,IAAUiY,KACpB6H,SAAU9f,IAAUiY,KACpByI,eAAgB1gB,IAAUmF,KAE1B+a,gBAAiBlgB,IAAUiY,KAC3B0I,iBAAkB3gB,IAAUmF,KAC5B+c,mBAAoBliB,IAAUmF,MAEhCsa,GAAQ5L,aAAe,CACrBmK,MAAO,EACPvD,SAAU,IACVrb,KAAM,GACN+e,GAAI,GACJwB,cAAe,GACfjF,OAAQ,OACRgF,UAAU,EACVI,UAAU,EACVxB,MAAO,GACPoC,eAAgB,aAChBC,iBAAkB,cAELlB,U,UClZf,SAAS/O,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASmC,GAAyB5H,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAAkEC,EAAKgH,EAAnEpG,EAEzF,SAAuCb,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAFxMkH,CAA8B/H,EAAQ6H,GAAuB,GAAIxF,OAAO2F,sBAAuB,CAAE,IAAIC,EAAmB5F,OAAO2F,sBAAsBhI,GAAS,IAAKiH,EAAI,EAAGA,EAAIgB,EAAiBvE,OAAQuD,IAAOhH,EAAMgI,EAAiBhB,GAAQY,EAASlD,QAAQ1E,IAAQ,GAAkBoC,OAAOiF,UAAUY,qBAAqB/G,KAAKnB,EAAQC,KAAgBY,EAAOZ,GAAOD,EAAOC,IAAU,OAAOY,EAMne,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAOrK,IAAImR,GAAkC,WACpC,IAAIC,EAAUrlB,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,GAAmBA,UAAU,GAAK,GAC9EihB,EAAQoE,EAAQpE,MAChB7D,EAAWiI,EAAQjI,SAEvB,OAAI6D,GAASA,EAAMhjB,OACVgjB,EAAMvE,QAAO,SAAUle,EAAQwC,GACpC,OAAOxC,GAAUY,IAAU4B,EAAMoc,WAAapc,EAAMoc,SAAW,EAAIpc,EAAMoc,SAAW,KACnF,GAGDhe,IAAUge,GACLA,EAGF,GAGLkI,GAEJ,SAAUC,GAGR,SAASD,IACP,IAAI3M,EAEAzB,EAEJ5D,GAAgB9F,KAAM8X,GAEtB,IAAK,IAAI1M,EAAO5Y,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAM4c,GAAOvX,EAAO,EAAGA,EAAOuX,EAAMvX,IAC/EwX,EAAKxX,GAAQrB,UAAUqB,GAoBzB,OAjBA6V,EAAQvD,GAA2BnG,MAAOmL,EAAmB7E,GAAgBwR,IAAoB5pB,KAAK6R,MAAMoL,EAAkB,CAACnL,MAAM7N,OAAOkZ,MACtIC,MAAQ,CACZuJ,UAAU,GAGZnL,EAAMsO,YAAc,SAAUzX,EAAM0X,GAClC,IAAItQ,EAAc+B,EAAMtM,MACpB8a,EAAgBvQ,EAAYuQ,cAC5BC,EAAexQ,EAAYwQ,aAE/BzO,EAAM0O,kBAAkBH,EAAcC,EAAgBC,IAGxDzO,EAAM2O,WAAa,WACjB3O,EAAM0O,kBAAkB1O,EAAMtM,MAAMkb,eAG/B5O,EApEX,IAAsB1D,EAAaqB,EAAYC,EAmH7C,OA3GF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GA8BjXE,CAAUoQ,EAAmBC,GAtCT/R,EAuEP8R,GAvEoBzQ,EAuED,CAAC,CAC/Bra,IAAK,oBACL2B,MAAO,SAA2BgL,GAChC,GAAIA,EAAO,CACT,IAAIkc,EAAiBlc,EAAMkc,eAAiB,WAC1Clc,EAAMkc,kBACJ,KACJ7V,KAAK0M,SAtFb,SAAuB9e,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQoR,EAAUhW,OAAO0D,KAAK/F,GAAqD,oBAAjCqC,OAAO2F,wBAAwCqQ,EAAUA,EAAQjT,OAAO/C,OAAO2F,sBAAsBhI,GAAQ6J,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBzY,EAAQwY,GAAKE,gBAAmBL,EAAQxI,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAa,OAAOY,EAsFlcmb,CAAc,GAAIpP,EAAO,CACrCkc,eAAgBA,EAChBhB,UAAU,QAIf,CACD7nB,IAAK,eACL2B,MAAO,WACL,IAAI4Z,EAAevI,KAAK5C,MACpB8a,EAAgB3P,EAAa2P,cAC7BC,EAAe5P,EAAa4P,aAC5BG,EAAe/P,EAAa+P,aAChC,OAAOV,GAAgCM,GAAiBN,GAAgCO,GAAgBP,GAAgCU,KAEzI,CACDtrB,IAAK,SACL2B,MAAO,WACL,IAAIge,EAAS3M,KAEToV,EAAepV,KAAK5C,MACpBd,EAAW8Y,EAAa9Y,SAIxBc,GAHgBgY,EAAa8C,cACd9C,EAAa+C,aACb/C,EAAakD,aACpB3jB,GAAyBygB,EAAc,CAAC,WAAY,gBAAiB,eAAgB,kBAEjG,OAAO1Y,IAAMyB,cAAcoa,cAAY1Y,GAAS,GAAIzC,EAAO,CACzDob,QAASxY,KAAKgY,YACdS,OAAQzY,KAAKqY,WACb9K,QAASvN,KAAK0Y,kBACZ,WACF,OAAOhc,IAAMyB,cAAcyW,GAASjI,EAAOrB,MAAO3O,WAASgb,KAAKrb,YA9GM2J,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GAmH3KwQ,EA9ET,CA+EEa,aAEFb,GAAkB7X,UAAY,CAC5BiY,cAAe/iB,IAAUjF,OACzBioB,aAAchjB,IAAUjF,OACxBooB,aAAcnjB,IAAUjF,OACxBoM,SAAUnH,IAAUyV,SAEPkN,UCzIf,SAASc,GAAaxb,GACpB,IAAIyb,EAAYzb,EAAMyb,UAClBvc,EAAWc,EAAMd,SACjBwc,EAAS1b,EAAM0b,OACfC,EAAQ3b,EAAM2b,MACdC,EAAQ5b,EAAM4b,MAClB,OAAOtc,IAAMyB,cAAc8a,mBAAiB,CAC1CJ,UAAWA,GACVlc,WAASF,IAAIH,GAAU,SAAUO,EAAO9L,GACzC,OAAO2L,IAAMyB,cAAc2Z,GAAmB,CAC5CI,cAAeY,EACfX,aAAcY,EACdT,aAAcU,EACdhsB,IAAK,SAASmF,OAAOpB,IACpB8L,OAIP+b,GAAa3Y,UAAY,CACvB6Y,OAAQ3jB,IAAUjF,OAClB6oB,MAAO5jB,IAAUjF,OACjB8oB,MAAO7jB,IAAUjF,OACjBoM,SAAUnH,IAAUuB,UAAU,CAACvB,IAAUtE,MAAOsE,IAAUyV,UAC1DiO,UAAW1jB,IAAUE,KAEvBujB,GAAa5P,aAAe,CAC1B6P,UAAW,QAEED,IC5BAhE,M,qBCFf,SAAS/O,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASod,GAAelc,EAAKC,GAAK,OAMlC,SAAyBD,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,OAAOA,EANtB8Z,CAAgB9Z,IAIzD,SAA+BA,EAAKC,GAAK,KAAMrE,OAAOyE,YAAYhF,OAAO2E,KAAgD,uBAAxC3E,OAAOiF,UAAUC,SAASpG,KAAK6F,GAAkC,OAAU,IAAImc,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKriB,EAAW,IAAM,IAAK,IAAiCsiB,EAA7BpR,EAAKnL,EAAIpE,OAAOyE,cAAmB+b,GAAMG,EAAKpR,EAAGqR,QAAQC,QAAoBN,EAAKnT,KAAKuT,EAAG3hB,QAAYqF,GAAKkc,EAAKzf,SAAWuD,GAA3Dmc,GAAK,IAAoE,MAAOM,GAAOL,GAAK,EAAMC,EAAKI,EAAtL,QAAuM,IAAWN,GAAsB,MAAhBjR,EAAE,QAAoBA,EAAE,SAAzC,QAAmE,GAAIkR,EAAI,MAAMC,GAAQ,OAAOH,EAJpcQ,CAAsB3c,EAAKC,IAE5F,WAA8B,MAAM,IAAIS,UAAU,wDAFgDqZ,GAQlG,SAAS1I,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAOrK,IAAIyS,GAAmB,SAA0BvqB,GAC/C,OAAO6N,IAAS7N,IAAUmD,EAAWnD,EAAM,KAAOmD,EAAWnD,EAAM,IAAMA,EAAMqhB,KAAK,OAASrhB,GAG3FwqB,GAEJ,SAAU/R,GAGR,SAAS+R,IAGP,OAFArT,GAAgB9F,KAAMmZ,GAEfhT,GAA2BnG,KAAMsG,GAAgB6S,GAAuBpZ,MAAMC,KAAMxN,YA7B/F,IAAsBwT,EAAaqB,EAAYC,EA8I7C,OAtIF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAgBjXE,CAAUyR,EAAuB/R,GAxBbpB,EAgCPmT,GAhCoB9R,EAgCG,CAAC,CACnCra,IAAK,gBACL2B,MAAO,WACL,IAAIgZ,EAAc3H,KAAK5C,MACnBqM,EAAU9B,EAAY8B,QACtB2P,EAAYzR,EAAYyR,UACxBvP,EAAYlC,EAAYkC,UACxBC,EAAYnC,EAAYmC,UACxBuP,EAAa1R,EAAY0R,WAE7B,GAAI5P,GAAWA,EAAQhZ,OAAQ,CAC7B,IAII6oB,GAASD,EAAaE,KAAQ9P,EAAS4P,GAAc5P,GAAShN,KAAI,SAAUjJ,EAAOQ,GACrF,GAAmB,SAAfR,EAAM3G,KACR,OAAO,KAGT,IAAI2sB,EAAiBzQ,GAAc,CACjC1S,QAAS,QACTojB,WAAY,EACZC,cAAe,EACf7jB,MAAOrC,EAAMqC,OAAS,QACrBiU,GAECK,EAAiB3W,EAAMqW,WAAaA,GAAaqP,GACjDpsB,EAAO0G,EAAM1G,KACb6B,EAAQ6E,EAAM7E,MAElB,GAAIwb,EAAgB,CAClB,IAAIwP,EAAYxP,EAAexb,EAAO7B,EAAM0G,EAAOQ,GAEnD,GAAIxF,MAAMD,QAAQorB,GAAY,CAC5B,IAAIC,EAAa3J,GAAe0J,EAAW,GAE3ChrB,EAAQirB,EAAW,GACnB9sB,EAAO8sB,EAAW,QAElBjrB,EAAQgrB,EAIZ,OACEjd,IAAMyB,cAAc,KAAM,CACxBkC,UAAW,wBACXrT,IAAK,gBAAgBmF,OAAO6B,GAC5B2F,MAAO6f,GACN1nB,EAAWhF,GAAQ4P,IAAMyB,cAAc,OAAQ,CAChDkC,UAAW,8BACVvT,GAAQ,KAAMgF,EAAWhF,GAAQ4P,IAAMyB,cAAc,OAAQ,CAC9DkC,UAAW,mCACV+Y,GAAa,KAAM1c,IAAMyB,cAAc,OAAQ,CAChDkC,UAAW,+BACV1R,GAAQ+N,IAAMyB,cAAc,OAAQ,CACrCkC,UAAW,8BACV7M,EAAMqmB,MAAQ,QAGrB,OAAOnd,IAAMyB,cAAc,KAAM,CAC/BkC,UAAW,6BACX1G,MAnDc,CACd4Q,QAAS,EACTC,OAAQ,IAkDP8O,GAGL,OAAO,OAER,CACDtsB,IAAK,SACL2B,MAAO,WACL,IAAI4Z,EAAevI,KAAK5C,MACpB0c,EAAmBvR,EAAauR,iBAChCC,EAAexR,EAAawR,aAC5BC,EAAiBzR,EAAayR,eAC9BC,EAAa1R,EAAa0R,WAC1BC,EAAQ3R,EAAa2R,MACrBC,EAAiB5R,EAAa4R,eAE9B7P,EAAavB,GAAc,CAC7ByB,OAAQ,EACRD,QAAS,GACT6P,gBAAiB,OACjBC,OAAQ,iBACRC,WAAY,UACXP,GAECQ,EAAkBxR,GAAc,CAClCyB,OAAQ,GACPyP,GAECO,EAAW1oB,EAAWooB,GACtBO,EAAaD,EAAWN,EAAQ,GAChCQ,EAAY9Z,IAAW,2BAA4BkZ,GACnDa,EAAU/Z,IAAW,yBAA0BoZ,GAMnD,OAJIQ,GAAYL,IACdM,EAAaN,EAAeD,IAGvBxd,IAAMyB,cAAc,MAAO,CAChCkC,UAAWqa,EACX/gB,MAAO2Q,GACN5N,IAAMyB,cAAc,IAAK,CAC1BkC,UAAWsa,EACXhhB,MAAO4gB,GACNE,GAAaza,KAAKmN,sBA1ImDlH,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA8I3K6R,EAvHT,CAwHEvQ,iBAEFuQ,GAAsB/c,YAAc,wBACpC+c,GAAsBlZ,UAAY,CAChCmZ,UAAWjkB,IAAUC,OACrB0kB,iBAAkB3kB,IAAUC,OAC5B4kB,eAAgB7kB,IAAUC,OAC1ByU,UAAW1U,IAAUmF,KACrByf,aAAc5kB,IAAUjF,OACxB4Z,UAAW3U,IAAUjF,OACrB+pB,WAAY9kB,IAAUjF,OACtBiqB,eAAgBhlB,IAAUmF,KAC1B4f,MAAO/kB,IAAUE,IACjBoU,QAAStU,IAAUmL,QAAQnL,IAAUiL,MAAM,CACzCtT,KAAMqI,IAAUE,IAChB1G,MAAOwG,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,OAAQD,IAAUtE,QAC1EgpB,KAAM1kB,IAAUE,OAElBgkB,WAAYlkB,IAAUmF,MAExB6e,GAAsBnQ,aAAe,CACnCoQ,UAAW,MACXW,aAAc,GACdjQ,UAAW,GACXmQ,WAAY,IAECd,UC5Lf,SAAStT,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASuS,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAYrK,IAAImU,GAAa,2BAGb9P,GAAgB,SAAuBtX,GACzC,OAAOA,EAAMqnB,SAeX5a,GAAY,CACd6a,mBAAoB3lB,IAAUiL,MAAM,CAClCpG,EAAG7E,IAAS,QACZ8E,EAAG9E,IAAS,UAEdwV,QAASxV,IAAUuB,UAAU,CAACvB,IAAUyV,QAASzV,IAAUmF,OAC3D6F,QAAShL,IAAUiL,MAAM,CACvBpG,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACboE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,SAEpBulB,OAAQ5lB,IAAUiY,KAClBgM,UAAWjkB,IAAUC,OACrByU,UAAW1U,IAAUmF,KACrB0gB,OAAQ7lB,IAAUK,OAClBsU,UAAW3U,IAAUjF,OACrB+pB,WAAY9kB,IAAUjF,OACtB0c,aAAczX,IAAUjF,OACxB6pB,aAAc5kB,IAAUjF,OACxBgG,OAAQf,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUyV,QAASzV,IAAUjF,SAC1E+qB,WAAY9lB,IAAUiL,MAAM,CAC1BpG,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,SAEfuX,SAAU5X,IAAUiL,MAAM,CACxBpG,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,SAEf0kB,MAAO/kB,IAAUE,IACjBoU,QAAStU,IAAUmL,QAAQnL,IAAUiL,MAAM,CACzCtT,KAAMqI,IAAUE,IAChB1G,MAAOwG,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,OAAQD,IAAUtE,QAC1EgpB,KAAM1kB,IAAUE,IAChBxI,KAAMsI,IAAUiB,MAAM6F,MAExB4Q,aAAc1X,IAAUuB,UAAU,CAACvB,IAAUmF,KAAMnF,IAAUiY,OAC7D8N,kBAAmB/lB,IAAUiY,KAC7B+N,kBAAmBhmB,IAAUK,OAC7B4lB,gBAAiBjmB,IAAUiB,MAAM,CAAC,OAAQ,UAAW,WAAY,cAAe,WAChFijB,WAAYlkB,IAAUmF,KACtB+gB,WAAYlmB,IAAUiY,KACtBkO,eAAgBnmB,IAAUiY,MAExBpE,GAAe,CACjB+R,QAAQ,EACRD,mBAAoB,CAClB9gB,GAAG,EACHC,GAAG,GAEL+gB,OAAQ,GACR7a,QAAS,CACPyC,GAAI,EACJE,GAAI,EACJD,GAAI,EACJE,GAAI,GAENkY,WAAY,CACVjhB,EAAG,EACHC,EAAG,GAELshB,YAAa,GACbnC,UAAW,MACXxM,aAAc,GACdmN,aAAc,GACdjQ,UAAW,GACXmQ,WAAY,GACZ/jB,QAAQ,EACRglB,mBAAoBjd,KACpBmd,gBAAiB,OACjBD,kBAAmB,IACnBE,YAAY,EACZC,gBAAgB,GAedE,GAEJ,SAAUpU,GAGR,SAASoU,IACP,IAAIrQ,EAEAzB,EAEJ5D,GAAgB9F,KAAMwb,GAEtB,IAAK,IAAIpQ,EAAO5Y,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAM4c,GAAOvX,EAAO,EAAGA,EAAOuX,EAAMvX,IAC/EwX,EAAKxX,GAAQrB,UAAUqB,GAyCzB,OAtCA6V,EAAQvD,GAA2BnG,MAAOmL,EAAmB7E,GAAgBkV,IAAUttB,KAAK6R,MAAMoL,EAAkB,CAACnL,MAAM7N,OAAOkZ,MAC5HC,MAAQ,CACZC,UAAW,EACXC,WAAY,GAGd9B,EAAM+R,aAAe,SAAU/c,GAC7B,IAAI1R,EAAM0R,EAAK1R,IACX0uB,EAAmBhd,EAAKgd,iBACxBC,EAAmBjd,EAAKid,iBACxBhU,EAAc+B,EAAMtM,MACpB0d,EAAqBnT,EAAYmT,mBACjCG,EAAatT,EAAYsT,WACzBD,EAASrT,EAAYqT,OACrBjO,EAAWpF,EAAYoF,SACvB5M,EAAUwH,EAAYxH,QAE1B,GAAI4M,GAAYpb,EAASob,EAAS/f,IAChC,OAAO+f,EAAS/f,GAGlB,IAAI4uB,EAAaX,EAAWjuB,GAAO0uB,EAAmBV,EAClDa,EAAeZ,EAAWjuB,GAAOguB,EAErC,OAAIF,EAAmB9tB,GACd6uB,EAGaZ,EAAWjuB,GAAO0uB,EAAmBV,EACrC7a,EAAQnT,GAAO2uB,EAG5BpsB,KAAK2R,IAAI0a,EAAYzb,EAAQnT,IAG/BuC,KAAK2R,IAAI2a,EAAc1b,EAAQnT,KAGjC0c,EAtLX,IAAsB1D,EAAaqB,EAAYC,EA2S7C,OAnSF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GA2HjXE,CAAU8T,EAASpU,GAnICpB,EAyLPwV,GAzLoBnU,EAyLX,CAAC,CACrBra,IAAK,oBACL2B,MAAO,WACLqR,KAAK2L,eAEN,CACD3e,IAAK,qBACL2B,MAAO,WACLqR,KAAK2L,eAEN,CACD3e,IAAK,aACL2B,MAAO,WACL,IAAIid,EAAc5L,KAAKsL,MACnBC,EAAWK,EAAYL,SACvBC,EAAYI,EAAYJ,UAE5B,GAAIxL,KAAKuM,aAAevM,KAAKuM,YAAYC,sBAAuB,CAC9D,IAAIC,EAAMzM,KAAKuM,YAAYC,yBAEvBjd,KAAKwR,IAAI0L,EAAI7S,MAAQ2R,GAtLvB,GAsL0Chc,KAAKwR,IAAI0L,EAAI5S,OAAS2R,GAtLhE,IAuLAxL,KAAK0M,SAAS,CACZnB,SAAUkB,EAAI7S,MACd4R,UAAWiB,EAAI5S,cAGI,IAAd0R,IAAkC,IAAfC,GAC5BxL,KAAK0M,SAAS,CACZnB,UAAW,EACXC,WAAY,MAIjB,CACDxe,IAAK,SACL2B,MAAO,WACL,IAAIub,EA6BA4R,EAAYC,EA5BZpP,EAAS3M,KAETuI,EAAevI,KAAK5C,MACpBqM,EAAUlB,EAAakB,QACvByR,EAAoB3S,EAAa2S,kBACjCC,EAAoB5S,EAAa4S,kBACjCC,EAAkB7S,EAAa6S,gBAC/BC,EAAa9S,EAAa8S,WAE1BW,EA1MU,SAAuBhR,EAAQvB,GACjD,OAAe,IAAXuB,EACKC,IAAQxB,EAASqB,IAGtB3N,IAAY6N,GACPC,IAAQxB,EAASuB,GAGnBvB,EAiMgBsB,CADAxC,EAAasE,aACewO,GAAc5R,GAAWA,EAAQhZ,OAASgZ,EAAQ7S,QAAO,SAAUpD,GAChH,OAAQiL,IAAOjL,EAAM7E,UAClB8a,GACDwS,EAAaD,GAAgBA,EAAavrB,OAC1C2kB,EAAepV,KAAK5C,MACpBuN,EAAUyK,EAAazK,QACvBxK,EAAUiV,EAAajV,QACvB8a,EAAa7F,EAAa6F,WAC1BlO,EAAWqI,EAAarI,SACxBgO,EAAS3F,EAAa2F,OAGtBjO,EAAa/D,GAAc,CAC7B3Q,cAAe,OACfgB,WAAY2hB,GAAUkB,EAAa,UAAY,SAC/ClP,SAAU,WACVZ,IAAK,GANYiJ,EAAaxI,cAWhC,GAAIG,GAAYpb,EAASob,EAAS/S,IAAMrI,EAASob,EAAS9S,GACxD6hB,EAAa/O,EAAS/S,EACtB+hB,EAAahP,EAAS9S,MACjB,CACL,IAAIoS,EAAerM,KAAKsL,MACpBC,EAAWc,EAAad,SACxBC,EAAYa,EAAab,UAEzBD,EAAW,GAAKC,EAAY,GAAKyP,GACnCa,EAAa9b,KAAKyb,aAAa,CAC7BzuB,IAAK,IACL0uB,iBAAkBnQ,EAClBoQ,iBAAkBxb,EAAQvG,QAE5BmiB,EAAa/b,KAAKyb,aAAa,CAC7BzuB,IAAK,IACL0uB,iBAAkBlQ,EAClBmQ,iBAAkBxb,EAAQtG,UAG5BiT,EAAW1T,WAAa,SAI5B0T,EAAa/D,GAAc,GAAIqG,GAAe,CAC5C7V,UAAWyG,KAAK5C,MAAMke,eAAiB,eAAenpB,OAAO2pB,EAAY,QAAQ3pB,OAAO4pB,EAAY,UAAY,aAAa5pB,OAAO2pB,EAAY,QAAQ3pB,OAAO4pB,EAAY,SACzK,GAAIjP,GAEJoO,GAAqBH,IACvBjO,EAAa/D,GAAc,GAAIqG,GAAe,CAC5C4H,WAAY,aAAa7kB,OAAOgpB,EAAmB,OAAOhpB,OAAOipB,KAC/D,GAAItO,IAGV,IAAIoP,EAAMtb,IAAWga,IAA+BlV,GAAlBwE,EAAc,GAAiC,GAAG/X,OAAOyoB,GAAY,UAAWjpB,EAASmqB,IAAeb,GAActpB,EAASspB,EAAWjhB,IAAM8hB,GAAcb,EAAWjhB,GAAI0L,GAAgBwE,EAAa,GAAG/X,OAAOyoB,GAAY,SAAUjpB,EAASmqB,IAAeb,GAActpB,EAASspB,EAAWjhB,IAAM8hB,EAAab,EAAWjhB,GAAI0L,GAAgBwE,EAAa,GAAG/X,OAAOyoB,GAAY,WAAYjpB,EAASoqB,IAAed,GAActpB,EAASspB,EAAWhhB,IAAM8hB,GAAcd,EAAWhhB,GAAIyL,GAAgBwE,EAAa,GAAG/X,OAAOyoB,GAAY,QAASjpB,EAASoqB,IAAed,GAActpB,EAASspB,EAAWhhB,IAAM8hB,EAAad,EAAWhhB,GAAIiQ,IAC5pB,OAAOxN,IAAMyB,cAAc,MAAO,CAChCkC,UAAW6b,EACXviB,MAAOmT,EACPG,IAAK,SAAa1M,GAChBoM,EAAOJ,YAAchM,IA/KX,SAAuBoK,EAASvN,GAClD,OAAIV,IAAMW,eAAesN,GAChBjO,IAAMwQ,aAAavC,EAASvN,GAGjCD,IAAYwN,GACPA,EAAQvN,GAGVV,IAAMyB,cAAcgb,GAAuB/b,GAwK3C+P,CAAcxC,EAAS5B,GAAc,GAAI/I,KAAK5C,MAAO,CACtDqM,QAASuS,WAtS6D/V,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA2S3KkU,EAzKT,CA0KE5S,iBAEF4S,GAAQpf,YAAc,UACtBof,GAAQvb,UAAYA,GACpBub,GAAQxS,aAAeA,GACRwS,U,0CC/Tf,SAAS3V,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAIxV,SAASoT,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAYrK,IAAI0V,GAEJ,SAAUpE,GAGR,SAASoE,EAAoB/e,GAC3B,IAAIsM,EAkCJ,OAlEJ,SAAyB3D,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAkC5GqR,CAAgB9F,KAAMmc,IAEtBzS,EAAQvD,GAA2BnG,KAAMsG,GAAgB6V,GAAqBjuB,KAAK8R,KAAM5C,KAEnFgf,0BAA4B,WAChC,GAAK1S,EAAMwL,QAAX,CAIA,IAAImH,EAAU3S,EAAM4S,mBAEpB,GAAID,EAAS,CACX,IAAIzQ,EAAclC,EAAM4B,MACpBiR,EAAW3Q,EAAY4Q,eACvBC,EAAY7Q,EAAY8Q,gBACxBF,EAAiBH,EAAQG,eACzBE,EAAkBL,EAAQK,gBAE1BF,IAAmBD,GAAYG,IAAoBD,GACrD/S,EAAMgD,SAAS,CACb8P,eAAgBA,EAChBE,gBAAiBA,OAMzBhT,EAAM4B,MAAQ,CACZkR,gBAAiB,EACjBE,iBAAkB,GAEpBhT,EAAMiT,aAAevf,EAAMwf,SAAW,EAAIC,KAAUnT,EAAM0S,0BAA2Bhf,EAAMwf,UAAYlT,EAAM0S,0BACtG1S,EA9DX,IAAsB1D,EAAaqB,EAAYC,EA+K7C,OAvKF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAiBjXE,CAAUyU,EAAqBpE,GAzBX/R,EAmEPmW,GAnEoB9U,EAmEC,CAAC,CACjCra,IAAK,oBACL2B,MAAO,WACLqR,KAAKkV,SAAU,EACf,IAAIxT,EAAO1B,KAAKsc,mBAEZ5a,GACF1B,KAAK0M,SAAShL,KAGjB,CACD1U,IAAK,uBACL2B,MAAO,WACLqR,KAAKkV,SAAU,IAEhB,CACDloB,IAAK,mBACL2B,MAAO,WACL,OAAKqR,KAAKwX,UAIH,CACLgF,eAAgBxc,KAAKwX,UAAUsF,YAC/BJ,gBAAiB1c,KAAKwX,UAAUuF,cALzB,OAQV,CACD/vB,IAAK,cACL2B,MAAO,WACL,IAAI0d,EAAerM,KAAKsL,MACpBkR,EAAiBnQ,EAAamQ,eAC9BE,EAAkBrQ,EAAaqQ,gBAEnC,GAAIF,EAAiB,GAAKE,EAAkB,EAC1C,OAAO,KAGT,IAAI/U,EAAc3H,KAAK5C,MACnB4f,EAASrV,EAAYqV,OACrBpjB,EAAQ+N,EAAY/N,MACpBC,EAAS8N,EAAY9N,OAGrBojB,GAFWtV,EAAYuV,SACXvV,EAAYwV,UACZxV,EAAYsV,WACxB3gB,EAAWqL,EAAYrL,SACtB9K,EAAUoI,IAAUpI,EAAUqI,GAEnC,IAAIujB,EAAkB5rB,EAAUoI,GAAS4iB,EAAiB5iB,EACtDyjB,EAAmB7rB,EAAUqI,GAAU6iB,EAAkB7iB,EAmB7D,OAjBImjB,GAAUA,EAAS,IAEjBI,EAEFC,EAAmBD,EAAkBJ,EAC5BK,IAETD,EAAkBC,EAAmBL,GAInCC,GAAaI,EAAmBJ,IAClCI,EAAmBJ,IAKhBvgB,IAAMwQ,aAAa5Q,EAAU,CAClC1C,MAAOwjB,EACPvjB,OAAQwjB,MAGX,CACDrwB,IAAK,SACL2B,MAAO,WACL,IAAIge,EAAS3M,KAETuI,EAAevI,KAAK5C,MACpB8f,EAAW3U,EAAa2U,SACxBC,EAAY5U,EAAa4U,UACzBvjB,EAAQ2O,EAAa3O,MACrBC,EAAS0O,EAAa1O,OACtBojB,EAAY1U,EAAa0U,UACzB/qB,EAAKqW,EAAarW,GAClBmO,EAAYkI,EAAalI,UACzB1G,EAAQ,CACVC,MAAOA,EACPC,OAAQA,EACRqjB,SAAUA,EACVC,UAAWA,EACXF,UAAWA,GAEb,OAAOvgB,IAAMyB,cAAc,MAAO,CAChCjM,GAAIA,EACJmO,UAAWO,IAAW,gCAAiCP,GACvD1G,MAAOA,EACPsT,IAAK,SAAa1M,GAChBoM,EAAO6K,UAAYjX,IAEpBP,KAAKsd,cAAe5gB,IAAMyB,cAAcof,KAAqB,CAC9DC,aAAa,EACbC,cAAc,EACdC,SAAU1d,KAAK2c,qBA1KuD1W,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA+K3K6U,EAvJT,CAwJExD,aAEFwD,GAAoB/f,YAAc,sBAClC+f,GAAoBlc,UAAY,CAC9B+c,OAAQ7nB,IAAUK,OAClBoE,MAAOzE,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SACxDqE,OAAQ1E,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SACzD2nB,UAAWhoB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC5D0nB,SAAU/nB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC3DynB,UAAW9nB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC5D8G,SAAUnH,IAAUoL,KAAKL,WACzB0c,SAAUznB,IAAUK,OACpBtD,GAAIiD,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SACrD6K,UAAWlL,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,UAE9D2mB,GAAoBnT,aAAe,CACjCpP,MAAO,OACPC,OAAQ,OACR+iB,SAAU,GAEGT,UC5Mf,SAAS/W,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAI9U,SAAS4S,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAO3M,SAAS8qB,KACP,OAAO,KAGTA,GAAK1d,UAbL,SAAuBrS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAa5emb,CAAc,GAAI7T,GACnCyoB,GAAKvhB,YAAc,OACJuhB,U,qBCjBf,SAAS9d,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASmC,GAAyB5H,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAAkEC,EAAKgH,EAAnEpG,EAEzF,SAAuCb,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAFxMkH,CAA8B/H,EAAQ6H,GAAuB,GAAIxF,OAAO2F,sBAAuB,CAAE,IAAIC,EAAmB5F,OAAO2F,sBAAsBhI,GAAS,IAAKiH,EAAI,EAAGA,EAAIgB,EAAiBvE,OAAQuD,IAAOhH,EAAMgI,EAAiBhB,GAAQY,EAASlD,QAAQ1E,IAAQ,GAAkBoC,OAAOiF,UAAUY,qBAAqB/G,KAAKnB,EAAQC,KAAgBY,EAAOZ,GAAOD,EAAOC,IAAU,OAAOY,EAUne,IAAIqS,GAAY,CACdI,UAAWlL,IAAUC,OACrBkH,SAAUnH,IAAUuB,UAAU,CAACvB,IAAUmL,QAAQnL,IAAUoL,MAAOpL,IAAUoL,QAG9E,SAASqd,GAAMxgB,GACb,IAAId,EAAWc,EAAMd,SACjB+D,EAAYjD,EAAMiD,UAClBI,EAAS9L,GAAyByI,EAAO,CAAC,WAAY,cAEtDuD,EAAaC,IAAW,iBAAkBP,GAC9C,OAAO3D,IAAMyB,cAAc,IAAK0B,GAAS,CACvCQ,UAAWM,GACVF,GAASnE,GAGdshB,GAAM3d,UAAYA,GACH2d,U,oFC7Bf,SAAS9pB,GAAmBC,GAAO,OAQnC,SAA4BA,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,OAAO8pB,GAAkB9pB,GAR1CG,CAAmBH,IAM7D,SAA0BI,GAAQ,GAAsB,qBAAXxE,QAA0BA,OAAOyE,YAAYhF,OAAO+E,GAAO,OAAO3F,MAAM+F,KAAKJ,GANrDK,CAAiBT,IAItF,SAAqCwS,EAAGuX,GAAU,IAAKvX,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOsX,GAAkBtX,EAAGuX,GAAS,IAAIC,EAAI3uB,OAAOiF,UAAUC,SAASpG,KAAKqY,GAAG5T,MAAM,GAAI,GAAc,WAANorB,GAAkBxX,EAAE9C,cAAasa,EAAIxX,EAAE9C,YAAY3W,MAAM,GAAU,QAANixB,GAAqB,QAANA,EAAa,OAAOvvB,MAAM+F,KAAKgS,GAAI,GAAU,cAANwX,GAAqB,2CAA2CC,KAAKD,GAAI,OAAOF,GAAkBtX,EAAGuX,GAJxTG,CAA4BlqB,IAE1H,WAAgC,MAAM,IAAIU,UAAU,wIAF8EC,GAUlI,SAASmpB,GAAkB9pB,EAAKmqB,IAAkB,MAAPA,GAAeA,EAAMnqB,EAAItD,UAAQytB,EAAMnqB,EAAItD,QAAQ,IAAK,IAAIuD,EAAI,EAAGC,EAAO,IAAIzF,MAAM0vB,GAAMlqB,EAAIkqB,EAAKlqB,IAAOC,EAAKD,GAAKD,EAAIC,GAAM,OAAOC,EAEhL,IAAIlF,GAAW,SAAkBiF,GAC/B,OAAOA,GAGEmqB,GAAe,CACxB,4BAA4B,GAG1BC,GAAgB,SAAuBzK,GACzC,OAAOA,IAAQwK,IAGbE,GAAS,SAAgBpP,GAC3B,OAAO,SAASqP,IACd,OAAyB,IAArB9rB,UAAU/B,QAAqC,IAArB+B,UAAU/B,QAAgB2tB,GAAc5rB,UAAU/B,QAAU,OAAIzC,EAAYwE,UAAU,IAC3G8rB,EAGFrP,EAAGlP,WAAM,EAAQvN,aAIxB+rB,GAAS,SAASA,EAAOR,EAAG9O,GAC9B,OAAU,IAAN8O,EACK9O,EAGFoP,IAAO,WACZ,IAAK,IAAIjT,EAAO5Y,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAM4c,GAAOvX,EAAO,EAAGA,EAAOuX,EAAMvX,IAC/EwX,EAAKxX,GAAQrB,UAAUqB,GAGzB,IAAI2qB,EAAanT,EAAKzU,QAAO,SAAU6nB,GACrC,OAAOA,IAAQN,MACd1tB,OAEH,OAAI+tB,GAAcT,EACT9O,EAAGlP,WAAM,EAAQsL,GAGnBkT,EAAOR,EAAIS,EAAYH,IAAO,WACnC,IAAK,IAAIpI,EAAQzjB,UAAU/B,OAAQiuB,EAAW,IAAIlwB,MAAMynB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACxFwI,EAASxI,GAAS1jB,UAAU0jB,GAG9B,IAAIyI,EAAUtT,EAAK5O,KAAI,SAAUgiB,GAC/B,OAAOL,GAAcK,GAAOC,EAASE,QAAUH,KAEjD,OAAOxP,EAAGlP,WAAM,EAAQjM,GAAmB6qB,GAASxsB,OAAOusB,YAKtDG,GAAQ,SAAe5P,GAChC,OAAOsP,GAAOtP,EAAGxe,OAAQwe,IAEhB6P,GAAQ,SAAe3L,EAAOC,GAGvC,IAFA,IAAIrf,EAAM,GAEDC,EAAImf,EAAOnf,EAAIof,IAAOpf,EAC7BD,EAAIC,EAAImf,GAASnf,EAGnB,OAAOD,GAEE0I,GAAMoiB,IAAM,SAAU5P,EAAIlb,GACnC,OAAIvF,MAAMD,QAAQwF,GACTA,EAAI0I,IAAIwS,GAGV7f,OAAO0D,KAAKiB,GAAK0I,KAAI,SAAUzP,GACpC,OAAO+G,EAAI/G,MACVyP,IAAIwS,MAEE8P,GAAU,WACnB,IAAK,IAAIC,EAAQxsB,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAMwwB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF5T,EAAK4T,GAASzsB,UAAUysB,GAG1B,IAAK5T,EAAK5a,OACR,OAAO1B,GAGT,IAAImwB,EAAM7T,EAAK8T,UAEXC,EAAUF,EAAI,GACdG,EAAUH,EAAIvsB,MAAM,GACxB,OAAO,WACL,OAAO0sB,EAAQnQ,QAAO,SAAUC,EAAKF,GACnC,OAAOA,EAAGE,KACTiQ,EAAQrf,WAAM,EAAQvN,cAGlB2sB,GAAU,SAAiBprB,GACpC,OAAIvF,MAAMD,QAAQwF,GACTA,EAAIorB,UAINprB,EAAIud,MAAM,IAAI6N,QAAQnP,KAAK,KAEzBsP,GAAU,SAAiBrQ,GACpC,IAAIsQ,EAAW,KACXC,EAAa,KACjB,OAAO,WACL,IAAK,IAAIC,EAAQjtB,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAMixB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFrU,EAAKqU,GAASltB,UAAUktB,GAG1B,OAAIH,GAAYlU,EAAKoG,OAAM,SAAUkC,EAAK3f,GACxC,OAAO2f,IAAQ4L,EAASvrB,MAEjBwrB,GAGTD,EAAWlU,EACXmU,EAAavQ,EAAGlP,WAAM,EAAQsL,MClElC,IAkCe,IACbsU,UA1DF,SAAmBlR,EAAO2E,EAAKwM,GAK7B,IAJA,IAAIlO,EAAM,IAAImO,KAAQpR,GAClBza,EAAI,EACJhD,EAAS,GAEN0gB,EAAIoO,GAAG1M,IAAQpf,EAAI,KACxBhD,EAAO+L,KAAK2U,EAAIqO,YAChBrO,EAAMA,EAAIsO,IAAIJ,GACd5rB,IAGF,OAAOhD,GAgDPivB,cAjFF,SAAuBtxB,GASrB,OANc,IAAVA,EACO,EAEAY,KAAK2wB,MAAM,IAAIL,KAAQlxB,GAAOoS,MAAMof,IAAI,IAAIJ,YAAc,GA4ErEhtB,kBArCsB8rB,IAAM,SAAUvuB,EAAGqD,EAAGT,GAC5C,IAAIktB,GAAQ9vB,EAEZ,OAAO8vB,EAAOltB,IADFS,EACcysB,MAmC1BC,oBAxBwBxB,IAAM,SAAUvuB,EAAGqD,EAAGqG,GAC9C,IAAIsmB,EAAO3sB,GAAKrD,EAEhB,OAAQ0J,EAAI1J,IADZgwB,EAAOA,GAAQC,QAuBfC,wBAV4B3B,IAAM,SAAUvuB,EAAGqD,EAAGqG,GAClD,IAAIsmB,EAAO3sB,GAAKrD,EAEhB,OADAgwB,EAAOA,GAAQC,IACRhxB,KAAK2R,IAAI,EAAG3R,KAAK4R,IAAI,GAAInH,EAAI1J,GAAKgwB,QC9F3C,SAASxsB,GAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,OAAO8pB,GAAkB9pB,GAN1CG,CAAmBH,IAI7D,SAA0BI,GAAQ,GAAsB,qBAAXxE,QAA0BA,OAAOyE,YAAYhF,OAAO+E,GAAO,OAAO3F,MAAM+F,KAAKJ,GAJrDK,CAAiBT,IAAQkqB,GAA4BlqB,IAE1H,WAAgC,MAAM,IAAIU,UAAU,wIAF8EC,GAQlI,SAASub,GAAelc,EAAKC,GAAK,OAUlC,SAAyBD,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,OAAOA,EAVtB8Z,CAAgB9Z,IAQzD,SAA+BA,EAAKC,GAAK,GAAsB,qBAAXrE,UAA4BA,OAAOyE,YAAYhF,OAAO2E,IAAO,OAAQ,IAAImc,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKriB,EAAW,IAAM,IAAK,IAAiCsiB,EAA7BpR,EAAKnL,EAAIpE,OAAOyE,cAAmB+b,GAAMG,EAAKpR,EAAGqR,QAAQC,QAAoBN,EAAKnT,KAAKuT,EAAG3hB,QAAYqF,GAAKkc,EAAKzf,SAAWuD,GAA3Dmc,GAAK,IAAoE,MAAOM,GAAOL,GAAK,EAAMC,EAAKI,EAAtL,QAAuM,IAAWN,GAAsB,MAAhBjR,EAAE,QAAoBA,EAAE,SAAzC,QAAmE,GAAIkR,EAAI,MAAMC,GAAQ,OAAOH,EARjaQ,CAAsB3c,EAAKC,IAAMiqB,GAA4BlqB,EAAKC,IAEnI,WAA8B,MAAM,IAAIS,UAAU,6IAFuFqZ,GAIzI,SAASmQ,GAA4B1X,EAAGuX,GAAU,GAAKvX,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOsX,GAAkBtX,EAAGuX,GAAS,IAAIC,EAAI3uB,OAAOiF,UAAUC,SAASpG,KAAKqY,GAAG5T,MAAM,GAAI,GAAiE,MAAnD,WAANorB,GAAkBxX,EAAE9C,cAAasa,EAAIxX,EAAE9C,YAAY3W,MAAgB,QAANixB,GAAqB,QAANA,EAAoBvvB,MAAM+F,KAAKgS,GAAc,cAANwX,GAAqB,2CAA2CC,KAAKD,GAAWF,GAAkBtX,EAAGuX,QAAzG,GAE7S,SAASD,GAAkB9pB,EAAKmqB,IAAkB,MAAPA,GAAeA,EAAMnqB,EAAItD,UAAQytB,EAAMnqB,EAAItD,QAAQ,IAAK,IAAIuD,EAAI,EAAGC,EAAO,IAAIzF,MAAM0vB,GAAMlqB,EAAIkqB,EAAKlqB,IAAOC,EAAKD,GAAKD,EAAIC,GAAM,OAAOC,EAsBhL,SAASwsB,GAAiB/hB,GACxB,IAAIG,EAAQoR,GAAevR,EAAM,GAC7ByC,EAAMtC,EAAM,GACZqC,EAAMrC,EAAM,GAEZ6hB,EAAWvf,EACXwf,EAAWzf,EAOf,OALIC,EAAMD,IACRwf,EAAWxf,EACXyf,EAAWxf,GAGN,CAACuf,EAAUC,GAapB,SAASC,GAAcC,EAAWC,EAAeC,GAC/C,GAAIF,EAAUG,IAAI,GAChB,OAAO,IAAInB,KAAQ,GAGrB,IAAIoB,EAAaC,GAAWjB,cAAcY,EAAUd,YAGhDoB,EAAkB,IAAItB,KAAQ,IAAIxX,IAAI4Y,GACtCG,EAAYP,EAAUQ,IAAIF,GAE1BG,EAAgC,IAAfL,EAAmB,IAAO,GAE3CM,EADiB,IAAI1B,KAAQtwB,KAAKiyB,KAAKJ,EAAUC,IAAIC,GAAgBvB,aAAaC,IAAIe,GAAkBU,IAAIH,GAChFG,IAAIN,GACpC,OAAOL,EAAgBS,EAAa,IAAI1B,KAAQtwB,KAAKiyB,KAAKD,IAY5D,SAASG,GAAqB/yB,EAAOgzB,EAAWb,GAC9C,IAAIlB,EAAO,EAEPgC,EAAS,IAAI/B,KAAQlxB,GAEzB,IAAKizB,EAAOC,SAAWf,EAAe,CACpC,IAAIgB,EAASvyB,KAAKwR,IAAIpS,GAElBmzB,EAAS,GAEXlC,EAAO,IAAIC,KAAQ,IAAIxX,IAAI6Y,GAAWjB,cAActxB,GAAS,GAC7DizB,EAAS,IAAI/B,KAAQtwB,KAAK2wB,MAAM0B,EAAOP,IAAIzB,GAAMG,aAAa0B,IAAI7B,IACzDkC,EAAS,IAElBF,EAAS,IAAI/B,KAAQtwB,KAAK2wB,MAAMvxB,UAEf,IAAVA,EACTizB,EAAS,IAAI/B,KAAQtwB,KAAK2wB,OAAOyB,EAAY,GAAK,IACxCb,IACVc,EAAS,IAAI/B,KAAQtwB,KAAK2wB,MAAMvxB,KAGlC,IAAIozB,EAAcxyB,KAAK2wB,OAAOyB,EAAY,GAAK,GAI/C,OAHS5C,GAAQtiB,IAAI,SAAUshB,GAC7B,OAAO6D,EAAO5B,IAAI,IAAIH,KAAQ9B,EAAIgE,GAAaN,IAAI7B,IAAOG,cACxDjB,GACG7P,CAAG,EAAG0S,GAcf,SAASK,GAAc7gB,EAAKD,EAAKygB,EAAWb,GAC1C,IAAIC,EAAmBvuB,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,GAAmBA,UAAU,GAAK,EAG3F,IAAKyvB,OAAOC,UAAUhhB,EAAMC,IAAQwgB,EAAY,IAC9C,MAAO,CACL/B,KAAM,IAAIC,KAAQ,GAClBsC,QAAS,IAAItC,KAAQ,GACrBuC,QAAS,IAAIvC,KAAQ,IAKzB,IAEI+B,EAFAhC,EAAOgB,GAAc,IAAIf,KAAQ3e,GAAKmhB,IAAIlhB,GAAKkgB,IAAIM,EAAY,GAAIb,EAAeC,GAKpFa,EADEzgB,GAAO,GAAKD,GAAO,EACZ,IAAI2e,KAAQ,IAGrB+B,EAAS,IAAI/B,KAAQ1e,GAAK6e,IAAI9e,GAAKmgB,IAAI,IAEvBgB,IAAI,IAAIxC,KAAQ+B,GAAQU,IAAI1C,IAG9C,IAAI2C,EAAahzB,KAAKiyB,KAAKI,EAAOS,IAAIlhB,GAAKkgB,IAAIzB,GAAMG,YACjDyC,EAAUjzB,KAAKiyB,KAAK,IAAI3B,KAAQ3e,GAAKmhB,IAAIT,GAAQP,IAAIzB,GAAMG,YAC3D0C,EAAaF,EAAaC,EAAU,EAExC,OAAIC,EAAad,EAERK,GAAc7gB,EAAKD,EAAKygB,EAAWb,EAAeC,EAAmB,IAG1E0B,EAAad,IAEfa,EAAUthB,EAAM,EAAIshB,GAAWb,EAAYc,GAAcD,EACzDD,EAAarhB,EAAM,EAAIqhB,EAAaA,GAAcZ,EAAYc,IAGzD,CACL7C,KAAMA,EACNuC,QAASP,EAAOS,IAAI,IAAIxC,KAAQ0C,GAAYd,IAAI7B,IAChDwC,QAASR,EAAO5B,IAAI,IAAIH,KAAQ2C,GAASf,IAAI7B,MAmI1C,IAAI8C,GAAoBpD,IAtH/B,SAA6BqD,GAC3B,IAAIC,EAAQ3S,GAAe0S,EAAO,GAC9BxhB,EAAMyhB,EAAM,GACZ1hB,EAAM0hB,EAAM,GAEZjB,EAAYnvB,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,GAAmBA,UAAU,GAAK,EAChFsuB,IAAgBtuB,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,KAAmBA,UAAU,GAE/EyM,EAAQ1P,KAAK2R,IAAIygB,EAAW,GAE5BkB,EAAoBpC,GAAiB,CAACtf,EAAKD,IAC3C4hB,EAAqB7S,GAAe4S,EAAmB,GACvDE,EAASD,EAAmB,GAC5BE,EAASF,EAAmB,GAEhC,GAAIC,KAAYxC,KAAYyC,IAAWzC,IAAU,CAC/C,IAAI0C,EAAUD,IAAWzC,IAAW,CAACwC,GAAQ5wB,OAAO2B,GAAmBgrB,GAAM,EAAG6C,EAAY,GAAGllB,KAAI,WACjG,OAAO8jB,SACF,GAAGpuB,OAAO2B,GAAmBgrB,GAAM,EAAG6C,EAAY,GAAGllB,KAAI,WAC9D,OAAQ8jB,QACL,CAACyC,IAEN,OAAO7hB,EAAMD,EAAMie,GAAQ8D,GAAWA,EAGxC,GAAIF,IAAWC,EACb,OAAOtB,GAAqBqB,EAAQpB,EAAWb,GAIjD,IAAIoC,EAAiBlB,GAAce,EAAQC,EAAQ/jB,EAAO6hB,GACtDlB,EAAOsD,EAAetD,KACtBuC,EAAUe,EAAef,QACzBC,EAAUc,EAAed,QAEzBe,EAASjC,GAAWvB,UAAUwC,EAASC,EAAQpC,IAAI,IAAIH,KAAQ,IAAK4B,IAAI7B,IAAQA,GACpF,OAAOze,EAAMD,EAAMie,GAAQgE,GAAUA,KAoF5BC,IADgB9D,IAvE3B,SAAyB+D,GACvB,IAAIC,EAAQrT,GAAeoT,EAAO,GAC9BliB,EAAMmiB,EAAM,GACZpiB,EAAMoiB,EAAM,GAEZ3B,EAAYnvB,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,GAAmBA,UAAU,GAAK,EAChFsuB,IAAgBtuB,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,KAAmBA,UAAU,GAE/EyM,EAAQ1P,KAAK2R,IAAIygB,EAAW,GAE5B4B,EAAqB9C,GAAiB,CAACtf,EAAKD,IAC5CsiB,EAAqBvT,GAAesT,EAAoB,GACxDR,EAASS,EAAmB,GAC5BR,EAASQ,EAAmB,GAEhC,GAAIT,KAAYxC,KAAYyC,IAAWzC,IACrC,MAAO,CAACpf,EAAKD,GAGf,GAAI6hB,IAAWC,EACb,OAAOtB,GAAqBqB,EAAQpB,EAAWb,GAGjD,IAAIlB,EAAOgB,GAAc,IAAIf,KAAQmD,GAAQX,IAAIU,GAAQ1B,IAAIpiB,EAAQ,GAAI6hB,EAAe,GACpF7R,EAAK8P,GAAQtiB,IAAI,SAAUshB,GAC7B,OAAO,IAAI8B,KAAQkD,GAAQ/C,IAAI,IAAIH,KAAQ9B,GAAG0D,IAAI7B,IAAOG,cACvDjB,IACAqE,EAASlU,EAAG,EAAGhQ,GAAOrI,QAAO,SAAUpD,GACzC,OAAOA,GAASuvB,GAAUvvB,GAASwvB,KAErC,OAAO7hB,EAAMD,EAAMie,GAAQgE,GAAUA,KA0CD7D,IA7BtC,SAAoCmE,EAAO9B,GACzC,IAAI+B,EAAQzT,GAAewT,EAAO,GAC9BtiB,EAAMuiB,EAAM,GACZxiB,EAAMwiB,EAAM,GAEZ5C,IAAgBtuB,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,KAAmBA,UAAU,GAG/EmxB,EAAqBlD,GAAiB,CAACtf,EAAKD,IAC5C0iB,EAAqB3T,GAAe0T,EAAoB,GACxDZ,EAASa,EAAmB,GAC5BZ,EAASY,EAAmB,GAEhC,GAAIb,KAAYxC,KAAYyC,IAAWzC,IACrC,MAAO,CAACpf,EAAKD,GAGf,GAAI6hB,IAAWC,EACb,MAAO,CAACD,GAGV,IAAI9jB,EAAQ1P,KAAK2R,IAAIygB,EAAW,GAC5B/B,EAAOgB,GAAc,IAAIf,KAAQmD,GAAQX,IAAIU,GAAQ1B,IAAIpiB,EAAQ,GAAI6hB,EAAe,GACpFqC,EAAS,GAAGhxB,OAAO2B,GAAmBotB,GAAWvB,UAAU,IAAIE,KAAQkD,GAAS,IAAIlD,KAAQmD,GAAQX,IAAI,IAAIxC,KAAQ,KAAM4B,IAAI7B,IAAQA,IAAQ,CAACoD,IACnJ,OAAO7hB,EAAMD,EAAMie,GAAQgE,GAAUA,MC5SxB,YAAS7yB,EAAGqD,GACzB,OAAOrD,EAAIqD,GAAK,EAAIrD,EAAIqD,EAAI,EAAIrD,GAAKqD,EAAI,EAAIkwB,KCChC,YAASC,GA0BxB,IAA6BC,EAxB3B,OADuB,IAAnBD,EAAQrzB,SAyBeszB,EAzB6BD,EAA9BA,EA0BnB,SAASpb,EAAG1O,GACjB,OAAOgqB,GAAUD,EAAErb,GAAI1O,KA1BlB,CACLgS,KAAM,SAAS1b,EAAG0J,EAAGiqB,EAAIC,GAGvB,IAFU,MAAND,IAAYA,EAAK,GACX,MAANC,IAAYA,EAAK5zB,EAAEG,QAChBwzB,EAAKC,GAAI,CACd,IAAIC,EAAMF,EAAKC,IAAO,EAClBJ,EAAQxzB,EAAE6zB,GAAMnqB,GAAK,EAAGiqB,EAAKE,EAAM,EAClCD,EAAKC,EAEZ,OAAOF,GAEThY,MAAO,SAAS3b,EAAG0J,EAAGiqB,EAAIC,GAGxB,IAFU,MAAND,IAAYA,EAAK,GACX,MAANC,IAAYA,EAAK5zB,EAAEG,QAChBwzB,EAAKC,GAAI,CACd,IAAIC,EAAMF,EAAKC,IAAO,EAClBJ,EAAQxzB,EAAE6zB,GAAMnqB,GAAK,EAAGkqB,EAAKC,EAC5BF,EAAKE,EAAM,EAElB,OAAOF,KCpBb,IAAIG,GAAkBC,GAASL,IACpBM,GAAcF,GAAgBnY,MAE1BqY,IADSF,GAAgBpY,KACzBsY,ICJA,ICFA,YAAStqB,GACtB,OAAa,OAANA,EAAa6pB,KAAO7pB,GCDzBnJ,GAAQrC,MAAM6F,UCAH,IDEIxD,GAAM8B,MACR9B,GAAM4L,ICHR,SAASgS,EAAOD,EAAMoR,GACnCnR,GAASA,EAAOD,GAAQA,EAAMoR,GAAQ7B,EAAIvrB,UAAU/B,QAAU,GAAK+d,EAAOC,EAAOA,EAAQ,EAAG,GAAKsP,EAAI,EAAI,GAAK6B,EAM9G,IAJA,IAAI5rB,GAAK,EACL+pB,EAAoD,EAAhDxuB,KAAK2R,IAAI,EAAG3R,KAAKiyB,MAAMhT,EAAOC,GAASmR,IAC3Cd,EAAQ,IAAItwB,MAAMuvB,KAEb/pB,EAAI+pB,GACXe,EAAM9qB,GAAKya,EAAQza,EAAI4rB,EAGzB,OAAOd,ICXLyF,GAAMh1B,KAAK8R,KAAK,IAChBmjB,GAAKj1B,KAAK8R,KAAK,IACfojB,GAAKl1B,KAAK8R,KAAK,GAEJ,YAASoN,EAAOD,EAAMvP,GACnC,IAAIkgB,EAEApB,EACA2G,EACA9E,EAHA5rB,GAAK,EAMT,GAD8BiL,GAASA,GAAzBwP,GAASA,MAAvBD,GAAQA,IACcvP,EAAQ,EAAG,MAAO,CAACwP,GAEzC,IADI0Q,EAAU3Q,EAAOC,KAAOsP,EAAItP,EAAOA,EAAQD,EAAMA,EAAOuP,GACT,KAA9C6B,EAAO+E,GAAclW,EAAOD,EAAMvP,MAAkBijB,SAAStC,GAAO,MAAO,GAEhF,GAAIA,EAAO,EAIT,IAHAnR,EAAQlf,KAAKiyB,KAAK/S,EAAQmR,GAC1BpR,EAAOjf,KAAK2wB,MAAM1R,EAAOoR,GACzB8E,EAAQ,IAAIl2B,MAAMuvB,EAAIxuB,KAAKiyB,KAAKhT,EAAOC,EAAQ,MACtCza,EAAI+pB,GAAG2G,EAAM1wB,IAAMya,EAAQza,GAAK4rB,OAKzC,IAHAnR,EAAQlf,KAAK2wB,MAAMzR,EAAQmR,GAC3BpR,EAAOjf,KAAKiyB,KAAKhT,EAAOoR,GACxB8E,EAAQ,IAAIl2B,MAAMuvB,EAAIxuB,KAAKiyB,KAAK/S,EAAQD,EAAO,MACtCxa,EAAI+pB,GAAG2G,EAAM1wB,IAAMya,EAAQza,GAAK4rB,EAK3C,OAFIT,GAASuF,EAAMvF,UAEZuF,GAGF,SAASC,GAAclW,EAAOD,EAAMvP,GACzC,IAAI2gB,GAAQpR,EAAOC,GAASlf,KAAK2R,IAAI,EAAGjC,GACpC2lB,EAAQr1B,KAAK2wB,MAAM3wB,KAAK4wB,IAAIP,GAAQrwB,KAAKs1B,MACzCC,EAAQlF,EAAOrwB,KAAK8Y,IAAI,GAAIuc,GAChC,OAAOA,GAAS,GACTE,GAASP,GAAM,GAAKO,GAASN,GAAK,EAAIM,GAASL,GAAK,EAAI,GAAKl1B,KAAK8Y,IAAI,GAAIuc,IAC1Er1B,KAAK8Y,IAAI,IAAKuc,IAAUE,GAASP,GAAM,GAAKO,GAASN,GAAK,EAAIM,GAASL,GAAK,EAAI,GAGlF,SAASM,GAAStW,EAAOD,EAAMvP,GACpC,IAAI+lB,EAAQz1B,KAAKwR,IAAIyN,EAAOC,GAASlf,KAAK2R,IAAI,EAAGjC,GAC7CgmB,EAAQ11B,KAAK8Y,IAAI,GAAI9Y,KAAK2wB,MAAM3wB,KAAK4wB,IAAI6E,GAASz1B,KAAKs1B,OACvDC,EAAQE,EAAQC,EAIpB,OAHIH,GAASP,GAAKU,GAAS,GAClBH,GAASN,GAAIS,GAAS,EACtBH,GAASL,KAAIQ,GAAS,GACxBzW,EAAOC,GAASwW,EAAQA,ECjDlB,ICEA,YAAS9B,EAAQ1c,EAAGye,GAEjC,GADe,MAAXA,IAAiBA,EAAU1vB,IACzBuoB,EAAIoF,EAAO1yB,OAAjB,CACA,IAAKgW,GAAKA,IAAM,GAAKsX,EAAI,EAAG,OAAQmH,EAAQ/B,EAAO,GAAI,EAAGA,GAC1D,GAAI1c,GAAK,EAAG,OAAQye,EAAQ/B,EAAOpF,EAAI,GAAIA,EAAI,EAAGoF,GAClD,IAAIpF,EACA/pB,GAAK+pB,EAAI,GAAKtX,EACd0e,EAAK51B,KAAK2wB,MAAMlsB,GAChBoxB,GAAUF,EAAQ/B,EAAOgC,GAAKA,EAAIhC,GAEtC,OAAOiC,IADOF,EAAQ/B,EAAOgC,EAAK,GAAIA,EAAK,EAAGhC,GACpBiC,IAAWpxB,EAAImxB,KCZpC,SAASE,GAAUC,EAAQxG,GAChC,OAAQtsB,UAAU/B,QAChB,KAAK,EAAG,MACR,KAAK,EAAGuP,KAAK8e,MAAMwG,GAAS,MAC5B,QAAStlB,KAAK8e,MAAMA,GAAOwG,OAAOA,GAEpC,OAAOtlB,KAGF,SAASulB,GAAiBD,EAAQE,GACvC,OAAQhzB,UAAU/B,QAChB,KAAK,EAAG,MACR,KAAK,EAAGuP,KAAKwlB,aAAaF,GAAS,MACnC,QAAStlB,KAAKwlB,aAAaA,GAAcF,OAAOA,GAElD,OAAOtlB,KCfF,IAAI/N,GAAS,IAEpB,SAASwzB,MAkDT,SAAShpB,GAAIvM,EAAQ6zB,GACnB,IAAItnB,EAAM,IAAIgpB,GAGd,GAAIv1B,aAAkBu1B,GAAKv1B,EAAOw1B,MAAK,SAAS/2B,EAAO3B,GAAOyP,EAAIkpB,IAAI34B,EAAK2B,WAGtE,GAAIH,MAAMD,QAAQ2B,GAAS,CAC9B,IAEIqW,EAFAvS,GAAK,EACL+pB,EAAI7tB,EAAOO,OAGf,GAAS,MAALszB,EAAW,OAAS/vB,EAAI+pB,GAAGthB,EAAIkpB,IAAI3xB,EAAG9D,EAAO8D,SAC5C,OAASA,EAAI+pB,GAAGthB,EAAIkpB,IAAI5B,EAAExd,EAAIrW,EAAO8D,GAAIA,EAAG9D,GAASqW,QAIvD,GAAIrW,EAAQ,IAAK,IAAIlD,KAAOkD,EAAQuM,EAAIkpB,IAAI34B,EAAKkD,EAAOlD,IAE7D,OAAOyP,EAnETgpB,GAAIpxB,UAAYoI,GAAIpI,UAAY,CAC9BoP,YAAagiB,GACbG,IAAK,SAAS54B,GACZ,OAAQiF,GAASjF,KAAQgT,MAE3B3P,IAAK,SAASrD,GACZ,OAAOgT,KAAK/N,GAASjF,IAEvB24B,IAAK,SAAS34B,EAAK2B,GAEjB,OADAqR,KAAK/N,GAASjF,GAAO2B,EACdqR,MAET6lB,OAAQ,SAAS74B,GACf,IAAIgC,EAAWiD,GAASjF,EACxB,OAAOgC,KAAYgR,aAAeA,KAAKhR,IAEzC82B,MAAO,WACL,IAAK,IAAI92B,KAAYgR,KAAUhR,EAAS,KAAOiD,WAAe+N,KAAKhR,IAErE8D,KAAM,WACJ,IAAIA,EAAO,GACX,IAAK,IAAI9D,KAAYgR,KAAUhR,EAAS,KAAOiD,IAAQa,EAAKiK,KAAK/N,EAAS2D,MAAM,IAChF,OAAOG,GAETqwB,OAAQ,WACN,IAAIA,EAAS,GACb,IAAK,IAAIn0B,KAAYgR,KAAUhR,EAAS,KAAOiD,IAAQkxB,EAAOpmB,KAAKiD,KAAKhR,IACxE,OAAOm0B,GAET4C,QAAS,WACP,IAAIA,EAAU,GACd,IAAK,IAAI/2B,KAAYgR,KAAUhR,EAAS,KAAOiD,IAAQ8zB,EAAQhpB,KAAK,CAAC/P,IAAKgC,EAAS2D,MAAM,GAAIhE,MAAOqR,KAAKhR,KACzG,OAAO+2B,GAETrkB,KAAM,WACJ,IAAIA,EAAO,EACX,IAAK,IAAI1S,KAAYgR,KAAUhR,EAAS,KAAOiD,MAAUyP,EACzD,OAAOA,GAETskB,MAAO,WACL,IAAK,IAAIh3B,KAAYgR,KAAM,GAAIhR,EAAS,KAAOiD,GAAQ,OAAO,EAC9D,OAAO,GAETyzB,KAAM,SAAS3B,GACb,IAAK,IAAI/0B,KAAYgR,KAAUhR,EAAS,KAAOiD,IAAQ8xB,EAAE/jB,KAAKhR,GAAWA,EAAS2D,MAAM,GAAIqN,QA0BjFvD,UCxEf,SAASwpB,MAET,IAAIC,GAAQzpB,GAAIpI,UAkBhB,SAASsxB,GAAIz1B,EAAQ6zB,GACnB,IAAI4B,EAAM,IAAIM,GAGd,GAAI/1B,aAAkB+1B,GAAK/1B,EAAOw1B,MAAK,SAAS/2B,GAASg3B,EAAI3F,IAAIrxB,WAG5D,GAAIuB,EAAQ,CACf,IAAI8D,GAAK,EAAG+pB,EAAI7tB,EAAOO,OACvB,GAAS,MAALszB,EAAW,OAAS/vB,EAAI+pB,GAAG4H,EAAI3F,IAAI9vB,EAAO8D,SACzC,OAASA,EAAI+pB,GAAG4H,EAAI3F,IAAI+D,EAAE7zB,EAAO8D,GAAIA,EAAG9D,IAG/C,OAAOy1B,EA7BTM,GAAI5xB,UAAYsxB,GAAItxB,UAAY,CAC9BoP,YAAawiB,GACbL,IAAKM,GAAMN,IACX5F,IAAK,SAASrxB,GAGZ,OADAqR,KAAK/N,IADLtD,GAAS,KACcA,EAChBqR,MAET6lB,OAAQK,GAAML,OACdC,MAAOI,GAAMJ,MACb3C,OAAQ+C,GAAMpzB,KACd4O,KAAMwkB,GAAMxkB,KACZskB,MAAOE,GAAMF,MACbN,KAAMQ,GAAMR,MAmBCC,ICtCX90B,GAAQrC,MAAM6F,UAEPoI,GAAM5L,GAAM4L,IACZ9J,GAAQ9B,GAAM8B,MCCdwzB,GAAW,CAACr5B,KAAM,YAEd,SAASs5B,KACtB,IAAIr1B,EAAQ0L,KACR6oB,EAAS,GACTxG,EAAQ,GACRuH,EAAUF,GAEd,SAASG,EAAM5d,GACb,IAAI1b,EAAM0b,EAAI,GAAI1U,EAAIjD,EAAMV,IAAIrD,GAChC,IAAKgH,EAAG,CACN,GAAIqyB,IAAYF,GAAU,OAAOE,EACjCt1B,EAAM40B,IAAI34B,EAAKgH,EAAIsxB,EAAOvoB,KAAK2L,IAEjC,OAAOoW,GAAO9qB,EAAI,GAAK8qB,EAAMruB,QAyB/B,OAtBA61B,EAAMhB,OAAS,SAAS/hB,GACtB,IAAK/Q,UAAU/B,OAAQ,OAAO60B,EAAO3yB,QACrC2yB,EAAS,GAAIv0B,EAAQ0L,KAErB,IADA,IAA0BiM,EAAG1b,EAAzBgH,GAAK,EAAG+pB,EAAIxa,EAAE9S,SACTuD,EAAI+pB,GAAQhtB,EAAM60B,IAAI54B,GAAO0b,EAAInF,EAAEvP,IAAM,KAAKjD,EAAM40B,IAAI34B,EAAKs4B,EAAOvoB,KAAK2L,IAClF,OAAO4d,GAGTA,EAAMxH,MAAQ,SAASvb,GACrB,OAAO/Q,UAAU/B,QAAUquB,EAAQnsB,GAAMzE,KAAKqV,GAAI+iB,GAASxH,EAAMnsB,SAGnE2zB,EAAMD,QAAU,SAAS9iB,GACvB,OAAO/Q,UAAU/B,QAAU41B,EAAU9iB,EAAG+iB,GAASD,GAGnDC,EAAMC,KAAO,WACX,OAAOH,GAAQd,EAAQxG,GAAOuH,QAAQA,IAGxChB,GAAUtlB,MAAMumB,EAAO9zB,WAEhB8zB,ECvCM,SAASE,KACtB,IAII5G,EACA6G,EALAH,EAAQF,KAAUC,aAAQr4B,GAC1Bs3B,EAASgB,EAAMhB,OACfoB,EAAeJ,EAAMxH,MACrBA,EAAQ,CAAC,EAAG,GAGZ6H,GAAQ,EACRC,EAAe,EACfC,EAAe,EACfxc,EAAQ,GAIZ,SAASyc,IACP,IAAI/I,EAAIuH,IAAS70B,OACb0uB,EAAUL,EAAM,GAAKA,EAAM,GAC3BrQ,EAAQqQ,EAAMK,EAAU,GACxB3Q,EAAOsQ,EAAM,EAAIK,GACrBS,GAAQpR,EAAOC,GAASlf,KAAK2R,IAAI,EAAG6c,EAAI6I,EAA8B,EAAfC,GACnDF,IAAO/G,EAAOrwB,KAAK2wB,MAAMN,IAC7BnR,IAAUD,EAAOC,EAAQmR,GAAQ7B,EAAI6I,IAAiBvc,EACtDoc,EAAY7G,GAAQ,EAAIgH,GACpBD,IAAOlY,EAAQlf,KAAKo3B,MAAMlY,GAAQgY,EAAYl3B,KAAKo3B,MAAMF,IAC7D,IAAItD,EAAS1M,GAASsH,GAAGthB,KAAI,SAASzI,GAAK,OAAOya,EAAQmR,EAAO5rB,KACjE,OAAO0yB,EAAavH,EAAUgE,EAAOhE,UAAYgE,GAmDnD,cAhEOmD,EAAMD,QAgBbC,EAAMhB,OAAS,SAAS/hB,GACtB,OAAO/Q,UAAU/B,QAAU60B,EAAO/hB,GAAIujB,KAAaxB,KAGrDgB,EAAMxH,MAAQ,SAASvb,GACrB,OAAO/Q,UAAU/B,QAAUquB,EAAQ,EAAEvb,EAAE,IAAKA,EAAE,IAAKujB,KAAahI,EAAMnsB,SAGxE2zB,EAAMS,WAAa,SAASxjB,GAC1B,OAAOub,EAAQ,EAAEvb,EAAE,IAAKA,EAAE,IAAKojB,GAAQ,EAAMG,KAG/CR,EAAMG,UAAY,WAChB,OAAOA,GAGTH,EAAM1G,KAAO,WACX,OAAOA,GAGT0G,EAAMK,MAAQ,SAASpjB,GACrB,OAAO/Q,UAAU/B,QAAUk2B,IAAUpjB,EAAGujB,KAAaH,GAGvDL,EAAM/b,QAAU,SAAShH,GACvB,OAAO/Q,UAAU/B,QAAUm2B,EAAer3B,KAAK4R,IAAI,EAAG0lB,GAAgBtjB,GAAIujB,KAAaF,GAGzFN,EAAMM,aAAe,SAASrjB,GAC5B,OAAO/Q,UAAU/B,QAAUm2B,EAAer3B,KAAK4R,IAAI,EAAGoC,GAAIujB,KAAaF,GAGzEN,EAAMO,aAAe,SAAStjB,GAC5B,OAAO/Q,UAAU/B,QAAUo2B,GAAgBtjB,EAAGujB,KAAaD,GAG7DP,EAAMjc,MAAQ,SAAS9G,GACrB,OAAO/Q,UAAU/B,QAAU4Z,EAAQ9a,KAAK2R,IAAI,EAAG3R,KAAK4R,IAAI,EAAGoC,IAAKujB,KAAazc,GAG/Eic,EAAMC,KAAO,WACX,OAAOC,GAAKlB,IAAUxG,GACjB6H,MAAMA,GACNC,aAAaA,GACbC,aAAaA,GACbxc,MAAMA,IAGNgb,GAAUtlB,MAAM+mB,IAAWt0B,WAGpC,SAASw0B,GAASV,GAChB,IAAIC,EAAOD,EAAMC,KAUjB,OARAD,EAAM/b,QAAU+b,EAAMO,oBACfP,EAAMM,oBACNN,EAAMO,aAEbP,EAAMC,KAAO,WACX,OAAOS,GAAST,MAGXD,EAGF,SAASW,KACd,OAAOD,GAASR,GAAKzmB,MAAM,KAAMvN,WAAWo0B,aAAa,IClG5C,gBAASnjB,EAAayjB,EAAS7yB,GAC5CoP,EAAYpP,UAAY6yB,EAAQ7yB,UAAYA,EAC5CA,EAAUoP,YAAcA,GAGnB,SAAS0jB,GAAOC,EAAQC,GAC7B,IAAIhzB,EAAYjF,OAAOqY,OAAO2f,EAAO/yB,WACrC,IAAK,IAAIrH,KAAOq6B,EAAYhzB,EAAUrH,GAAOq6B,EAAWr6B,GACxD,OAAOqH,ECNF,SAASizB,MAET,IAAIC,GAAS,GACTC,GAAW,EAAID,GAEtBE,GAAM,sBACNC,GAAM,gDACNC,GAAM,iDACNC,GAAQ,qBACRC,GAAe,IAAIC,OAAO,UAAY,CAACL,GAAKA,GAAKA,IAAO,QACxDM,GAAe,IAAID,OAAO,UAAY,CAACH,GAAKA,GAAKA,IAAO,QACxDK,GAAgB,IAAIF,OAAO,WAAa,CAACL,GAAKA,GAAKA,GAAKC,IAAO,QAC/DO,GAAgB,IAAIH,OAAO,WAAa,CAACH,GAAKA,GAAKA,GAAKD,IAAO,QAC/DQ,GAAe,IAAIJ,OAAO,UAAY,CAACJ,GAAKC,GAAKA,IAAO,QACxDQ,GAAgB,IAAIL,OAAO,WAAa,CAACJ,GAAKC,GAAKA,GAAKD,IAAO,QAE/DU,GAAQ,CACVC,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChBC,KAAM,IACNC,WAAY,QACZC,MAAO,SACPC,UAAW,SACXC,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNC,MAAO,MACPC,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACfC,IAAK,SACLC,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXnsB,IAAK,SACLosB,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAiBf,SAASC,KACP,OAAOxxB,KAAKyxB,MAAMC,YAOpB,SAASC,KACP,OAAO3xB,KAAKyxB,MAAMG,YAGL,SAAS/7B,GAAMg8B,GAC5B,IAAIC,EAAGrtB,EAEP,OADAotB,GAAUA,EAAS,IAAIE,OAAOhiB,eACtB+hB,EAAIlK,GAAMn4B,KAAKoiC,KAAYptB,EAAIqtB,EAAE,GAAGrhC,OAAQqhC,EAAIE,SAASF,EAAE,GAAI,IAAW,IAANrtB,EAAUwtB,GAAKH,GAC/E,IAANrtB,EAAU,IAAIytB,GAAKJ,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,GAAiB,GAAJA,IAAY,EAAU,GAAJA,EAAU,GACzG,IAANrtB,EAAU0tB,GAAKL,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAW,IAAJA,GAAY,KACrE,IAANrtB,EAAU0tB,GAAML,GAAK,GAAK,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,IAAkB,GAAJA,IAAY,EAAU,GAAJA,GAAY,KAClJ,OACCA,EAAIjK,GAAap4B,KAAKoiC,IAAW,IAAIK,GAAIJ,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAC3DA,EAAI/J,GAAat4B,KAAKoiC,IAAW,IAAIK,GAAW,IAAPJ,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAK,IAC/FA,EAAI9J,GAAcv4B,KAAKoiC,IAAWM,GAAKL,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC3DA,EAAI7J,GAAcx4B,KAAKoiC,IAAWM,GAAY,IAAPL,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAKA,EAAE,KAC/FA,EAAI5J,GAAaz4B,KAAKoiC,IAAWO,GAAKN,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAK,IACpEA,EAAI3J,GAAc14B,KAAKoiC,IAAWO,GAAKN,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAKA,EAAE,IACxE1J,GAAMx0B,eAAei+B,GAAUI,GAAK7J,GAAMyJ,IAC/B,gBAAXA,EAA2B,IAAIK,GAAIrO,IAAKA,IAAKA,IAAK,GAClD,KAGR,SAASoO,GAAKlU,GACZ,OAAO,IAAImU,GAAInU,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EAAU,GAG1D,SAASoU,GAAKj4B,EAAGm4B,EAAG1+B,EAAGrD,GAErB,OADIA,GAAK,IAAG4J,EAAIm4B,EAAI1+B,EAAIkwB,KACjB,IAAIqO,GAAIh4B,EAAGm4B,EAAG1+B,EAAGrD,GAGnB,SAASgiC,GAAW/rB,GAEzB,OADMA,aAAa+gB,KAAQ/gB,EAAI1Q,GAAM0Q,IAChCA,EAEE,IAAI2rB,IADX3rB,EAAIA,EAAEkrB,OACWv3B,EAAGqM,EAAE8rB,EAAG9rB,EAAE5S,EAAG4S,EAAErO,SAFjB,IAAIg6B,GAKd,SAAST,GAAIv3B,EAAGm4B,EAAG1+B,EAAGuE,GAC3B,OAA4B,IAArB1F,UAAU/B,OAAe6hC,GAAWp4B,GAAK,IAAIg4B,GAAIh4B,EAAGm4B,EAAG1+B,EAAc,MAAXuE,EAAkB,EAAIA,GAGlF,SAASg6B,GAAIh4B,EAAGm4B,EAAG1+B,EAAGuE,GAC3B8H,KAAK9F,GAAKA,EACV8F,KAAKqyB,GAAKA,EACVryB,KAAKrM,GAAKA,EACVqM,KAAK9H,SAAWA,EA2BlB,SAASq6B,KACP,MAAO,IAAMC,GAAIxyB,KAAK9F,GAAKs4B,GAAIxyB,KAAKqyB,GAAKG,GAAIxyB,KAAKrM,GAGpD,SAAS8+B,KACP,IAAIniC,EAAI0P,KAAK9H,QACb,OAAc,KADQ5H,EAAIoiC,MAAMpiC,GAAK,EAAIf,KAAK2R,IAAI,EAAG3R,KAAK4R,IAAI,EAAG7Q,KAC/C,OAAS,SACrBf,KAAK2R,IAAI,EAAG3R,KAAK4R,IAAI,IAAK5R,KAAKo3B,MAAM3mB,KAAK9F,IAAM,IAAM,KACtD3K,KAAK2R,IAAI,EAAG3R,KAAK4R,IAAI,IAAK5R,KAAKo3B,MAAM3mB,KAAKqyB,IAAM,IAAM,KACtD9iC,KAAK2R,IAAI,EAAG3R,KAAK4R,IAAI,IAAK5R,KAAKo3B,MAAM3mB,KAAKrM,IAAM,KACzC,IAANrD,EAAU,IAAM,KAAOA,EAAI,KAGpC,SAASkiC,GAAI7jC,GAEX,QADAA,EAAQY,KAAK2R,IAAI,EAAG3R,KAAK4R,IAAI,IAAK5R,KAAKo3B,MAAMh4B,IAAU,KACvC,GAAK,IAAM,IAAMA,EAAM2F,SAAS,IAGlD,SAAS89B,GAAKjtB,EAAG5C,EAAGkC,EAAGnU,GAIrB,OAHIA,GAAK,EAAG6U,EAAI5C,EAAIkC,EAAIof,IACfpf,GAAK,GAAKA,GAAK,EAAGU,EAAI5C,EAAIshB,IAC1BthB,GAAK,IAAG4C,EAAI0e,KACd,IAAI8O,GAAIxtB,EAAG5C,EAAGkC,EAAGnU,GAGnB,SAASsiC,GAAWrsB,GACzB,GAAIA,aAAaosB,GAAK,OAAO,IAAIA,GAAIpsB,EAAEpB,EAAGoB,EAAEhE,EAAGgE,EAAE9B,EAAG8B,EAAErO,SAEtD,GADMqO,aAAa+gB,KAAQ/gB,EAAI1Q,GAAM0Q,KAChCA,EAAG,OAAO,IAAIosB,GACnB,GAAIpsB,aAAaosB,GAAK,OAAOpsB,EAE7B,IAAIrM,GADJqM,EAAIA,EAAEkrB,OACIv3B,EAAI,IACVm4B,EAAI9rB,EAAE8rB,EAAI,IACV1+B,EAAI4S,EAAE5S,EAAI,IACVwN,EAAM5R,KAAK4R,IAAIjH,EAAGm4B,EAAG1+B,GACrBuN,EAAM3R,KAAK2R,IAAIhH,EAAGm4B,EAAG1+B,GACrBwR,EAAI0e,IACJthB,EAAIrB,EAAMC,EACVsD,GAAKvD,EAAMC,GAAO,EAUtB,OATIoB,GACa4C,EAAXjL,IAAMgH,GAAUmxB,EAAI1+B,GAAK4O,EAAc,GAAT8vB,EAAI1+B,GAC7B0+B,IAAMnxB,GAAUvN,EAAIuG,GAAKqI,EAAI,GAC5BrI,EAAIm4B,GAAK9vB,EAAI,EACvBA,GAAKkC,EAAI,GAAMvD,EAAMC,EAAM,EAAID,EAAMC,EACrCgE,GAAK,IAEL5C,EAAIkC,EAAI,GAAKA,EAAI,EAAI,EAAIU,EAEpB,IAAIwtB,GAAIxtB,EAAG5C,EAAGkC,EAAG8B,EAAErO,SAO5B,SAASy6B,GAAIxtB,EAAG5C,EAAGkC,EAAGvM,GACpB8H,KAAKmF,GAAKA,EACVnF,KAAKuC,GAAKA,EACVvC,KAAKyE,GAAKA,EACVzE,KAAK9H,SAAWA,EAyClB,SAAS26B,GAAQ1tB,EAAG2tB,EAAIC,GACtB,OAGY,KAHJ5tB,EAAI,GAAK2tB,GAAMC,EAAKD,GAAM3tB,EAAI,GAChCA,EAAI,IAAM4tB,EACV5tB,EAAI,IAAM2tB,GAAMC,EAAKD,IAAO,IAAM3tB,GAAK,GACvC2tB,GCjXD,SAASE,GAAMC,EAAIC,EAAIC,EAAIC,EAAIC,GACpC,IAAIC,EAAKL,EAAKA,EAAIM,EAAKD,EAAKL,EAC5B,QAAS,EAAI,EAAIA,EAAK,EAAIK,EAAKC,GAAML,GAC9B,EAAI,EAAII,EAAK,EAAIC,GAAMJ,GACvB,EAAI,EAAIF,EAAK,EAAIK,EAAK,EAAIC,GAAMH,EACjCG,EAAKF,GAAM,EDoKnBG,GAAOlM,GAAOzxB,GAAO,CACnB0wB,KAAM,SAASkN,GACb,OAAOrkC,OAAO0Q,OAAO,IAAIE,KAAKyD,YAAazD,KAAMyzB,IAEnDC,YAAa,WACX,OAAO1zB,KAAKyxB,MAAMiC,eAEpBlB,IAAKhB,GACLE,UAAWF,GACXmC,UASF,WACE,OAAOf,GAAW5yB,MAAM2zB,aATxB/B,UAAWD,GACXr9B,SAAUq9B,KA6DZ6B,GAAOtB,GAAKT,GAAKtK,GAAOG,GAAO,CAC7BE,SAAU,SAAS/kB,GAEjB,OADAA,EAAS,MAALA,EAAY+kB,GAAWj4B,KAAK8Y,IAAImf,GAAU/kB,GACvC,IAAIyvB,GAAIlyB,KAAK9F,EAAIuI,EAAGzC,KAAKqyB,EAAI5vB,EAAGzC,KAAKrM,EAAI8O,EAAGzC,KAAK9H,UAE1DqvB,OAAQ,SAAS9kB,GAEf,OADAA,EAAS,MAALA,EAAY8kB,GAASh4B,KAAK8Y,IAAIkf,GAAQ9kB,GACnC,IAAIyvB,GAAIlyB,KAAK9F,EAAIuI,EAAGzC,KAAKqyB,EAAI5vB,EAAGzC,KAAKrM,EAAI8O,EAAGzC,KAAK9H,UAE1Du5B,IAAK,WACH,OAAOzxB,MAET0zB,YAAa,WACX,OAAS,IAAO1zB,KAAK9F,GAAK8F,KAAK9F,EAAI,QAC1B,IAAO8F,KAAKqyB,GAAKryB,KAAKqyB,EAAI,QAC1B,IAAOryB,KAAKrM,GAAKqM,KAAKrM,EAAI,OAC3B,GAAKqM,KAAK9H,SAAW8H,KAAK9H,SAAW,GAE/Cs6B,IAAKD,GACLb,UAAWa,GACXX,UAAWa,GACXn+B,SAAUm+B,MAiEZe,GAAOb,IAXA,SAAaxtB,EAAG5C,EAAGkC,EAAGvM,GAC3B,OAA4B,IAArB1F,UAAU/B,OAAemiC,GAAWztB,GAAK,IAAIwtB,GAAIxtB,EAAG5C,EAAGkC,EAAc,MAAXvM,EAAkB,EAAIA,KAUxEivB,GAAOG,GAAO,CAC7BE,SAAU,SAAS/kB,GAEjB,OADAA,EAAS,MAALA,EAAY+kB,GAAWj4B,KAAK8Y,IAAImf,GAAU/kB,GACvC,IAAIkwB,GAAI3yB,KAAKmF,EAAGnF,KAAKuC,EAAGvC,KAAKyE,EAAIhC,EAAGzC,KAAK9H,UAElDqvB,OAAQ,SAAS9kB,GAEf,OADAA,EAAS,MAALA,EAAY8kB,GAASh4B,KAAK8Y,IAAIkf,GAAQ9kB,GACnC,IAAIkwB,GAAI3yB,KAAKmF,EAAGnF,KAAKuC,EAAGvC,KAAKyE,EAAIhC,EAAGzC,KAAK9H,UAElDu5B,IAAK,WACH,IAAItsB,EAAInF,KAAKmF,EAAI,IAAqB,KAAdnF,KAAKmF,EAAI,GAC7B5C,EAAImwB,MAAMvtB,IAAMutB,MAAM1yB,KAAKuC,GAAK,EAAIvC,KAAKuC,EACzCkC,EAAIzE,KAAKyE,EACTsuB,EAAKtuB,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAKlC,EACjCuwB,EAAK,EAAIruB,EAAIsuB,EACjB,OAAO,IAAIb,GACTW,GAAQ1tB,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAK2tB,EAAIC,GAC1CF,GAAQ1tB,EAAG2tB,EAAIC,GACfF,GAAQ1tB,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAK2tB,EAAIC,GACzC/yB,KAAK9H,UAGTw7B,YAAa,WACX,OAAQ,GAAK1zB,KAAKuC,GAAKvC,KAAKuC,GAAK,GAAKmwB,MAAM1yB,KAAKuC,KACzC,GAAKvC,KAAKyE,GAAKzE,KAAKyE,GAAK,GACzB,GAAKzE,KAAK9H,SAAW8H,KAAK9H,SAAW,GAE/Cy7B,UAAW,WACT,IAAIrjC,EAAI0P,KAAK9H,QACb,OAAc,KADQ5H,EAAIoiC,MAAMpiC,GAAK,EAAIf,KAAK2R,IAAI,EAAG3R,KAAK4R,IAAI,EAAG7Q,KAC/C,OAAS,UACpB0P,KAAKmF,GAAK,GAAK,KACA,KAAfnF,KAAKuC,GAAK,GAAW,MACN,KAAfvC,KAAKyE,GAAK,GAAW,KACf,IAANnU,EAAU,IAAM,KAAOA,EAAI,SChWvB,ICRA,YAAS0J,GACtB,OAAO,WACL,OAAOA,ICAX,SAAS45B,GAAOtjC,EAAGoY,GACjB,OAAO,SAASxV,GACd,OAAO5C,EAAI4C,EAAIwV,GAeZ,SAASmrB,GAAM55B,GACpB,OAAoB,KAAZA,GAAKA,GAAW65B,GAAU,SAASxjC,EAAGqD,GAC5C,OAAOA,EAAIrD,EAbf,SAAqBA,EAAGqD,EAAGsG,GACzB,OAAO3J,EAAIf,KAAK8Y,IAAI/X,EAAG2J,GAAItG,EAAIpE,KAAK8Y,IAAI1U,EAAGsG,GAAK3J,EAAG2J,EAAI,EAAIA,EAAG,SAAS/G,GACrE,OAAO3D,KAAK8Y,IAAI/X,EAAI4C,EAAIS,EAAGsG,IAWZ85B,CAAYzjC,EAAGqD,EAAGsG,GAAK+N,GAAS0qB,MAAMpiC,GAAKqD,EAAIrD,IAInD,SAASwjC,GAAQxjC,EAAGqD,GACjC,IAAI+U,EAAI/U,EAAIrD,EACZ,OAAOoY,EAAIkrB,GAAOtjC,EAAGoY,GAAKV,GAAS0qB,MAAMpiC,GAAKqD,EAAIrD,GCtBrC,gBAAU0jC,EAAS/5B,GAChC,IAAIpE,EAAQg+B,GAAM55B,GAElB,SAASw3B,EAAIhjB,EAAO2E,GAClB,IAAIlZ,EAAIrE,GAAO4Y,EAAQwlB,GAASxlB,IAAQvU,GAAIkZ,EAAM6gB,GAAS7gB,IAAMlZ,GAC7Dm4B,EAAIx8B,EAAM4Y,EAAM4jB,EAAGjf,EAAIif,GACvB1+B,EAAIkC,EAAM4Y,EAAM9a,EAAGyf,EAAIzf,GACvBuE,EAAU47B,GAAQrlB,EAAMvW,QAASkb,EAAIlb,SACzC,OAAO,SAAShF,GAKd,OAJAub,EAAMvU,EAAIA,EAAEhH,GACZub,EAAM4jB,EAAIA,EAAEn/B,GACZub,EAAM9a,EAAIA,EAAET,GACZub,EAAMvW,QAAUA,EAAQhF,GACjBub,EAAQ,IAMnB,OAFAgjB,EAAIoC,MAAQG,EAELvC,EAnBM,CAoBZ,GAEH,SAASyC,GAAUC,GACjB,OAAO,SAASC,GACd,IAIIpgC,EAAG6B,EAJHkoB,EAAIqW,EAAO3jC,OACXyJ,EAAI,IAAI1L,MAAMuvB,GACdsU,EAAI,IAAI7jC,MAAMuvB,GACdpqB,EAAI,IAAInF,MAAMuvB,GAElB,IAAK/pB,EAAI,EAAGA,EAAI+pB,IAAK/pB,EACnB6B,EAAQo+B,GAASG,EAAOpgC,IACxBkG,EAAElG,GAAK6B,EAAMqE,GAAK,EAClBm4B,EAAEr+B,GAAK6B,EAAMw8B,GAAK,EAClB1+B,EAAEK,GAAK6B,EAAMlC,GAAK,EAMpB,OAJAuG,EAAIi6B,EAAOj6B,GACXm4B,EAAI8B,EAAO9B,GACX1+B,EAAIwgC,EAAOxgC,GACXkC,EAAMqC,QAAU,EACT,SAAShF,GAId,OAHA2C,EAAMqE,EAAIA,EAAEhH,GACZ2C,EAAMw8B,EAAIA,EAAEn/B,GACZ2C,EAAMlC,EAAIA,EAAET,GACL2C,EAAQ,KAKCq+B,IH7CP,SAAS/Q,GACtB,IAAIpF,EAAIoF,EAAO1yB,OAAS,EACxB,OAAO,SAASyC,GACd,IAAIc,EAAId,GAAK,EAAKA,EAAI,EAAKA,GAAK,GAAKA,EAAI,EAAG6qB,EAAI,GAAKxuB,KAAK2wB,MAAMhtB,EAAI6qB,GAChEoV,EAAKhQ,EAAOnvB,GACZo/B,EAAKjQ,EAAOnvB,EAAI,GAChBk/B,EAAKl/B,EAAI,EAAImvB,EAAOnvB,EAAI,GAAK,EAAIm/B,EAAKC,EACtCC,EAAKr/B,EAAI+pB,EAAI,EAAIoF,EAAOnvB,EAAI,GAAK,EAAIo/B,EAAKD,EAC9C,OAAOH,IAAO9/B,EAAIc,EAAI+pB,GAAKA,EAAGmV,EAAIC,EAAIC,EAAIC,OGsClBa,ICpDb,SAAS/Q,GACtB,IAAIpF,EAAIoF,EAAO1yB,OACf,OAAO,SAASyC,GACd,IAAIc,EAAIzE,KAAK2wB,QAAQhtB,GAAK,GAAK,IAAMA,EAAIA,GAAK6qB,GAC1CmV,EAAK/P,GAAQnvB,EAAI+pB,EAAI,GAAKA,GAC1BoV,EAAKhQ,EAAOnvB,EAAI+pB,GAChBqV,EAAKjQ,GAAQnvB,EAAI,GAAK+pB,GACtBsV,EAAKlQ,GAAQnvB,EAAI,GAAK+pB,GAC1B,OAAOiV,IAAO9/B,EAAIc,EAAI+pB,GAAKA,EAAGmV,EAAIC,EAAIC,EAAIC,OD2CvC,IErDQ,YAAS/iC,EAAGqD,GACpBA,IAAGA,EAAI,IACZ,IAEIK,EAFA+pB,EAAIztB,EAAIf,KAAK4R,IAAIxN,EAAElD,OAAQH,EAAEG,QAAU,EACvC6R,EAAI3O,EAAEhB,QAEV,OAAO,SAASO,GACd,IAAKc,EAAI,EAAGA,EAAI+pB,IAAK/pB,EAAGsO,EAAEtO,GAAK1D,EAAE0D,IAAM,EAAId,GAAKS,EAAEK,GAAKd,EACvD,OAAOoP,IAIJ,SAAS+xB,GAAcr6B,GAC5B,OAAOs6B,YAAYC,OAAOv6B,MAAQA,aAAaw6B,UCL1C,SAASC,GAAankC,EAAGqD,GAC9B,IAIIK,EAJA0gC,EAAK/gC,EAAIA,EAAElD,OAAS,EACpBkkC,EAAKrkC,EAAIf,KAAK4R,IAAIuzB,EAAIpkC,EAAEG,QAAU,EAClCuJ,EAAI,IAAIxL,MAAMmmC,GACdryB,EAAI,IAAI9T,MAAMkmC,GAGlB,IAAK1gC,EAAI,EAAGA,EAAI2gC,IAAM3gC,EAAGgG,EAAEhG,GAAKrF,GAAM2B,EAAE0D,GAAIL,EAAEK,IAC9C,KAAOA,EAAI0gC,IAAM1gC,EAAGsO,EAAEtO,GAAKL,EAAEK,GAE7B,OAAO,SAASd,GACd,IAAKc,EAAI,EAAGA,EAAI2gC,IAAM3gC,EAAGsO,EAAEtO,GAAKgG,EAAEhG,GAAGd,GACrC,OAAOoP,GCnBI,gBAAShS,EAAGqD,GACzB,IAAI+U,EAAI,IAAIksB,KACZ,OAAOtkC,GAAKA,EAAGqD,GAAKA,EAAG,SAAST,GAC9B,OAAOwV,EAAEmsB,QAAQvkC,GAAK,EAAI4C,GAAKS,EAAIT,GAAIwV,ICH5B,YAASpY,EAAGqD,GACzB,OAAOrD,GAAKA,EAAGqD,GAAKA,EAAG,SAAST,GAC9B,OAAO5C,GAAK,EAAI4C,GAAKS,EAAIT,ICAd,YAAS5C,EAAGqD,GACzB,IAEI8O,EAFAzO,EAAI,GACJsO,EAAI,GAMR,IAAKG,KAHK,OAANnS,GAA2B,kBAANA,IAAgBA,EAAI,IACnC,OAANqD,GAA2B,kBAANA,IAAgBA,EAAI,IAEnCA,EACJ8O,KAAKnS,EACP0D,EAAEyO,GAAK9T,GAAM2B,EAAEmS,GAAI9O,EAAE8O,IAErBH,EAAEG,GAAK9O,EAAE8O,GAIb,OAAO,SAASvP,GACd,IAAKuP,KAAKzO,EAAGsO,EAAEG,GAAKzO,EAAEyO,GAAGvP,GACzB,OAAOoP,IClBPwyB,GAAM,8CACNC,GAAM,IAAIjN,OAAOgN,GAAI/nC,OAAQ,KAclB,gBAASuD,EAAGqD,GACzB,IACIqhC,EACAC,EACAC,EAHAC,EAAKL,GAAIM,UAAYL,GAAIK,UAAY,EAIrCphC,GAAK,EACLuO,EAAI,GACJ8yB,EAAI,GAMR,IAHA/kC,GAAQ,GAAIqD,GAAQ,IAGZqhC,EAAKF,GAAIrlC,KAAKa,MACd2kC,EAAKF,GAAItlC,KAAKkE,MACfuhC,EAAKD,EAAGlkC,OAASokC,IACpBD,EAAKvhC,EAAEhB,MAAMwiC,EAAID,GACb3yB,EAAEvO,GAAIuO,EAAEvO,IAAMkhC,EACb3yB,IAAIvO,GAAKkhC,IAEXF,EAAKA,EAAG,OAASC,EAAKA,EAAG,IACxB1yB,EAAEvO,GAAIuO,EAAEvO,IAAMihC,EACb1yB,IAAIvO,GAAKihC,GAEd1yB,IAAIvO,GAAK,KACTqhC,EAAEt4B,KAAK,CAAC/I,EAAGA,EAAGgG,EAAGxE,GAAOw/B,EAAIC,MAE9BE,EAAKJ,GAAIK,UAYX,OARID,EAAKxhC,EAAElD,SACTykC,EAAKvhC,EAAEhB,MAAMwiC,GACT5yB,EAAEvO,GAAIuO,EAAEvO,IAAMkhC,EACb3yB,IAAIvO,GAAKkhC,GAKT3yB,EAAE9R,OAAS,EAAK4kC,EAAE,GA7C3B,SAAa1hC,GACX,OAAO,SAAST,GACd,OAAOS,EAAET,GAAK,IA4CVoiC,CAAID,EAAE,GAAGr7B,GApDjB,SAAcrG,GACZ,OAAO,WACL,OAAOA,GAmDH4hC,CAAK5hC,IACJA,EAAI0hC,EAAE5kC,OAAQ,SAASyC,GACtB,IAAK,IAAWqT,EAAPvS,EAAI,EAAMA,EAAIL,IAAKK,EAAGuO,GAAGgE,EAAI8uB,EAAErhC,IAAIA,GAAKuS,EAAEvM,EAAE9G,GACrD,OAAOqP,EAAEyN,KAAK,OCnDT,YAAS1f,EAAGqD,GACzB,IAAkB2O,EAAdpP,SAAWS,EACf,OAAY,MAALA,GAAmB,YAANT,EAAkB8U,GAASrU,IAClC,WAANT,EAAiBsC,GACZ,WAANtC,GAAmBoP,EAAIzM,GAAMlC,KAAOA,EAAI2O,EAAGmvB,IAAOr8B,GAClDzB,aAAakC,GAAQ47B,GACrB99B,aAAaihC,KAAOY,GACpBnB,GAAc1gC,GAAK8hC,GACnBjnC,MAAMD,QAAQoF,GAAK8gC,GACE,oBAAd9gC,EAAE+hC,SAAgD,oBAAf/hC,EAAEW,UAA2Bo+B,MAAM/+B,GAAKzD,GAClFsF,IAAQlF,EAAGqD,ICpBJ,YAASrD,EAAGqD,GACzB,OAAOrD,GAAKA,EAAGqD,GAAKA,EAAG,SAAST,GAC9B,OAAO3D,KAAKo3B,MAAMr2B,GAAK,EAAI4C,GAAKS,EAAIT,KCFzB,YAAS8G,GACtB,OAAQA,GCKN6f,GAAO,CAAC,EAAG,GAER,SAAS9qB,GAASiL,GACvB,OAAOA,EAGT,SAAS27B,GAAUrlC,EAAGqD,GACpB,OAAQA,GAAMrD,GAAKA,GACb,SAAS0J,GAAK,OAAQA,EAAI1J,GAAKqD,ICdfqG,EDeP04B,MAAM/+B,GAAKkwB,IAAM,GCdzB,WACL,OAAO7pB,IAFI,IAASA,EDkBxB,SAAS47B,GAAQtQ,GACf,IAAkDpyB,EAA9C5C,EAAIg1B,EAAO,GAAI3xB,EAAI2xB,EAAOA,EAAO70B,OAAS,GAE9C,OADIH,EAAIqD,IAAGT,EAAI5C,EAAGA,EAAIqD,EAAGA,EAAIT,GACtB,SAAS8G,GAAK,OAAOzK,KAAK2R,IAAI5Q,EAAGf,KAAK4R,IAAIxN,EAAGqG,KAKtD,SAAS67B,GAAMvQ,EAAQxG,EAAOgX,GAC5B,IAAIC,EAAKzQ,EAAO,GAAI0Q,EAAK1Q,EAAO,GAAI2Q,EAAKnX,EAAM,GAAIoX,EAAKpX,EAAM,GAG9D,OAFIkX,EAAKD,GAAIA,EAAKJ,GAAUK,EAAID,GAAKE,EAAKH,EAAYI,EAAID,KACrDF,EAAKJ,GAAUI,EAAIC,GAAKC,EAAKH,EAAYG,EAAIC,IAC3C,SAASl8B,GAAK,OAAOi8B,EAAGF,EAAG/7B,KAGpC,SAASm8B,GAAQ7Q,EAAQxG,EAAOgX,GAC9B,IAAIM,EAAI7mC,KAAK4R,IAAImkB,EAAO70B,OAAQquB,EAAMruB,QAAU,EAC5CiY,EAAI,IAAIla,MAAM4nC,GACdl8B,EAAI,IAAI1L,MAAM4nC,GACdpiC,GAAK,EAQT,IALIsxB,EAAO8Q,GAAK9Q,EAAO,KACrBA,EAASA,EAAO3yB,QAAQwsB,UACxBL,EAAQA,EAAMnsB,QAAQwsB,aAGfnrB,EAAIoiC,GACX1tB,EAAE1U,GAAK2hC,GAAUrQ,EAAOtxB,GAAIsxB,EAAOtxB,EAAI,IACvCkG,EAAElG,GAAK8hC,EAAYhX,EAAM9qB,GAAI8qB,EAAM9qB,EAAI,IAGzC,OAAO,SAASgG,GACd,IAAIhG,EAAIqiC,GAAO/Q,EAAQtrB,EAAG,EAAGo8B,GAAK,EAClC,OAAOl8B,EAAElG,GAAG0U,EAAE1U,GAAGgG,KAId,SAASusB,GAAKx5B,EAAQa,GAC3B,OAAOA,EACF03B,OAAOv4B,EAAOu4B,UACdxG,MAAM/xB,EAAO+xB,SACbgX,YAAY/oC,EAAO+oC,eACnBQ,MAAMvpC,EAAOupC,SACbjQ,QAAQt5B,EAAOs5B,WAGf,SAASkQ,KACd,IAGIh9B,EACAi9B,EACAnQ,EAEAoQ,EACAC,EACAC,EATArR,EAASzL,GACTiF,EAAQjF,GACRic,EAAcc,GAIdN,EAAQvnC,GAKZ,SAAS+3B,IAGP,OAFA2P,EAAYlnC,KAAK4R,IAAImkB,EAAO70B,OAAQquB,EAAMruB,QAAU,EAAI0lC,GAAUN,GAClEa,EAASC,EAAQ,KACVrQ,EAGT,SAASA,EAAMtsB,GACb,OAAO04B,MAAM14B,GAAKA,GAAKqsB,GAAWqQ,IAAWA,EAASD,EAAUnR,EAAO7oB,IAAIlD,GAAYulB,EAAOgX,KAAev8B,EAAU+8B,EAAMt8B,KA+B/H,OA5BAssB,EAAMuQ,OAAS,SAAS58B,GACtB,OAAOq8B,EAAME,GAAaG,IAAUA,EAAQF,EAAU3X,EAAOwG,EAAO7oB,IAAIlD,GAAYxG,MAAqBkH,MAG3GqsB,EAAMhB,OAAS,SAAS/hB,GACtB,OAAO/Q,UAAU/B,QAAU60B,EAAS7oB,GAAIvO,KAAKqV,EAAG/N,IAAS8gC,IAAUvnC,KAAaunC,EAAQV,GAAQtQ,IAAUwB,KAAaxB,EAAO3yB,SAGhI2zB,EAAMxH,MAAQ,SAASvb,GACrB,OAAO/Q,UAAU/B,QAAUquB,EAAQnsB,GAAMzE,KAAKqV,GAAIujB,KAAahI,EAAMnsB,SAGvE2zB,EAAMS,WAAa,SAASxjB,GAC1B,OAAOub,EAAQnsB,GAAMzE,KAAKqV,GAAIuyB,EAAcgB,GAAkBhQ,KAGhER,EAAMgQ,MAAQ,SAAS/yB,GACrB,OAAO/Q,UAAU/B,QAAU6lC,EAAQ/yB,EAAIqyB,GAAQtQ,GAAUv2B,GAAUu3B,GAASgQ,IAAUvnC,IAGxFu3B,EAAMwP,YAAc,SAASvyB,GAC3B,OAAO/Q,UAAU/B,QAAUqlC,EAAcvyB,EAAGujB,KAAagP,GAG3DxP,EAAMD,QAAU,SAAS9iB,GACvB,OAAO/Q,UAAU/B,QAAU41B,EAAU9iB,EAAG+iB,GAASD,GAG5C,SAASnzB,EAAG6jC,GAEjB,OADAx9B,EAAYrG,EAAGsjC,EAAcO,EACtBjQ,KAII,SAASkQ,GAAWz9B,EAAWi9B,GAC5C,OAAOD,KAAch9B,EAAWi9B,GEzHlC,IAAIS,GAAK,2EAEM,SAASC,GAAgBC,GACtC,KAAMC,EAAQH,GAAGxnC,KAAK0nC,IAAa,MAAM,IAAIjzB,MAAM,mBAAqBizB,GACxE,IAAIC,EACJ,OAAO,IAAIC,GAAgB,CACzB7gC,KAAM4gC,EAAM,GACZ/sB,MAAO+sB,EAAM,GACbE,KAAMF,EAAM,GACZlvB,OAAQkvB,EAAM,GACd7B,KAAM6B,EAAM,GACZx9B,MAAOw9B,EAAM,GACbG,MAAOH,EAAM,GACbI,UAAWJ,EAAM,IAAMA,EAAM,GAAGzkC,MAAM,GACtCo/B,KAAMqF,EAAM,GACZvqC,KAAMuqC,EAAM,MAMT,SAASC,GAAgBF,GAC9Bn3B,KAAKxJ,UAA0BxI,IAAnBmpC,EAAU3gC,KAAqB,IAAM2gC,EAAU3gC,KAAO,GAClEwJ,KAAKqK,WAA4Brc,IAApBmpC,EAAU9sB,MAAsB,IAAM8sB,EAAU9sB,MAAQ,GACrErK,KAAKs3B,UAA0BtpC,IAAnBmpC,EAAUG,KAAqB,IAAMH,EAAUG,KAAO,GAClEt3B,KAAKkI,YAA8Bla,IAArBmpC,EAAUjvB,OAAuB,GAAKivB,EAAUjvB,OAAS,GACvElI,KAAKu1B,OAAS4B,EAAU5B,KACxBv1B,KAAKpG,WAA4B5L,IAApBmpC,EAAUv9B,WAAsB5L,GAAampC,EAAUv9B,MACpEoG,KAAKu3B,QAAUJ,EAAUI,MACzBv3B,KAAKw3B,eAAoCxpC,IAAxBmpC,EAAUK,eAA0BxpC,GAAampC,EAAUK,UAC5Ex3B,KAAK+xB,OAASoF,EAAUpF,KACxB/xB,KAAKnT,UAA0BmB,IAAnBmpC,EAAUtqC,KAAqB,GAAKsqC,EAAUtqC,KAAO,GAZnEqqC,GAAgB7iC,UAAYgjC,GAAgBhjC,UAe5CgjC,GAAgBhjC,UAAUC,SAAW,WACnC,OAAO0L,KAAKxJ,KACNwJ,KAAKqK,MACLrK,KAAKs3B,KACLt3B,KAAKkI,QACJlI,KAAKu1B,KAAO,IAAM,UACHvnC,IAAfgS,KAAKpG,MAAsB,GAAKrK,KAAK2R,IAAI,EAAgB,EAAblB,KAAKpG,SACjDoG,KAAKu3B,MAAQ,IAAM,UACAvpC,IAAnBgS,KAAKw3B,UAA0B,GAAK,IAAMjoC,KAAK2R,IAAI,EAAoB,EAAjBlB,KAAKw3B,aAC3Dx3B,KAAK+xB,KAAO,IAAM,IACnB/xB,KAAKnT,MCpCN,SAAS4qC,GAAmBz9B,EAAGyM,GACpC,IAAKzS,GAAKgG,EAAIyM,EAAIzM,EAAE09B,cAAcjxB,EAAI,GAAKzM,EAAE09B,iBAAiBhmC,QAAQ,MAAQ,EAAG,OAAO,KACxF,IAAIsC,EAAG2jC,EAAc39B,EAAErH,MAAM,EAAGqB,GAIhC,MAAO,CACL2jC,EAAYlnC,OAAS,EAAIknC,EAAY,GAAKA,EAAYhlC,MAAM,GAAKglC,GAChE39B,EAAErH,MAAMqB,EAAI,ICfF,ICAJ4jC,GCAPC,GACOhG,GACAiG,GFFI,YAAS99B,GACtB,OAAOA,EAAIy9B,GAAmBloC,KAAKwR,IAAI/G,KAASA,EAAE,GAAK6pB,KGD1C,YAAS7pB,EAAGyM,GACzB,IAAIiC,EAAI+uB,GAAmBz9B,EAAGyM,GAC9B,IAAKiC,EAAG,OAAO1O,EAAI,GACnB,IAAI29B,EAAcjvB,EAAE,GAChBqvB,EAAWrvB,EAAE,GACjB,OAAOqvB,EAAW,EAAI,KAAO,IAAIvpC,OAAOupC,GAAU/nB,KAAK,KAAO2nB,EACxDA,EAAYlnC,OAASsnC,EAAW,EAAIJ,EAAYhlC,MAAM,EAAGolC,EAAW,GAAK,IAAMJ,EAAYhlC,MAAMolC,EAAW,GAC5GJ,EAAc,IAAInpC,MAAMupC,EAAWJ,EAAYlnC,OAAS,GAAGuf,KAAK,MCLzD,IACb,IAAK,SAAShW,EAAGyM,GAAK,OAAY,IAAJzM,GAASg+B,QAAQvxB,IAC/C,EAAK,SAASzM,GAAK,OAAOzK,KAAKo3B,MAAM3sB,GAAG1F,SAAS,IACjD,EAAK,SAAS0F,GAAK,OAAOA,EAAI,IAC9B,ELRa,SAASA,GACtB,OAAOzK,KAAKwR,IAAI/G,EAAIzK,KAAKo3B,MAAM3sB,KAAO,KAChCA,EAAEi+B,eAAe,MAAM1oB,QAAQ,KAAM,IACrCvV,EAAE1F,SAAS,KKMjB,EAAK,SAAS0F,EAAGyM,GAAK,OAAOzM,EAAE09B,cAAcjxB,IAC7C,EAAK,SAASzM,EAAGyM,GAAK,OAAOzM,EAAEg+B,QAAQvxB,IACvC,EAAK,SAASzM,EAAGyM,GAAK,OAAOzM,EAAEk+B,YAAYzxB,IAC3C,EAAK,SAASzM,GAAK,OAAOzK,KAAKo3B,MAAM3sB,GAAG1F,SAAS,IACjD,EAAK,SAAS0F,EAAGyM,GAAK,OAAO0xB,GAAkB,IAAJn+B,EAASyM,IACpD,EAAK0xB,GACL,EHXa,SAASn+B,EAAGyM,GACzB,IAAIiC,EAAI+uB,GAAmBz9B,EAAGyM,GAC9B,IAAKiC,EAAG,OAAO1O,EAAI,GACnB,IAAI29B,EAAcjvB,EAAE,GAChBqvB,EAAWrvB,EAAE,GACb1U,EAAI+jC,GAAYH,GAAuE,EAAtDroC,KAAK2R,KAAK,EAAG3R,KAAK4R,IAAI,EAAG5R,KAAK2wB,MAAM6X,EAAW,MAAY,EAC5Fha,EAAI4Z,EAAYlnC,OACpB,OAAOuD,IAAM+pB,EAAI4Z,EACX3jC,EAAI+pB,EAAI4Z,EAAc,IAAInpC,MAAMwF,EAAI+pB,EAAI,GAAG/N,KAAK,KAChDhc,EAAI,EAAI2jC,EAAYhlC,MAAM,EAAGqB,GAAK,IAAM2jC,EAAYhlC,MAAMqB,GAC1D,KAAO,IAAIxF,MAAM,EAAIwF,GAAGgc,KAAK,KAAOynB,GAAmBz9B,EAAGzK,KAAK2R,IAAI,EAAGuF,EAAIzS,EAAI,IAAI,IGExF,EAAK,SAASgG,GAAK,OAAOzK,KAAKo3B,MAAM3sB,GAAG1F,SAAS,IAAIwT,eACrD,EAAK,SAAS9N,GAAK,OAAOzK,KAAKo3B,MAAM3sB,GAAG1F,SAAS,MCjBpC,YAAS0F,GACtB,OAAOA,GCQLyC,GAAMjO,MAAM6F,UAAUoI,IACtB27B,GAAW,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KJK7EP,GIHa,SAASA,GACtB,ICbsBQ,EAAUC,EDa5BC,OAA4BvqC,IAApB6pC,EAAOQ,eAA+CrqC,IAArB6pC,EAAOS,UAA0BvpC,ICbxDspC,EDa+E57B,GAAIvO,KAAK2pC,EAAOQ,SAAUpW,QCb/FqW,EDawGT,EAAOS,UAAY,GCZpJ,SAAS3pC,EAAOiL,GAOrB,IANA,IAAI5F,EAAIrF,EAAM8B,OACVyC,EAAI,GACJkjC,EAAI,EACJ/D,EAAIgG,EAAS,GACb5nC,EAAS,EAENuD,EAAI,GAAKq+B,EAAI,IACd5hC,EAAS4hC,EAAI,EAAIz4B,IAAOy4B,EAAI9iC,KAAK2R,IAAI,EAAGtH,EAAQnJ,IACpDyC,EAAE6J,KAAKpO,EAAM6pC,UAAUxkC,GAAKq+B,EAAGr+B,EAAIq+B,OAC9B5hC,GAAU4hC,EAAI,GAAKz4B,KACxBy4B,EAAIgG,EAASjC,GAAKA,EAAI,GAAKiC,EAAS5nC,QAGtC,OAAOyC,EAAEisB,UAAUnP,KAAKsoB,KDDtBG,OAAqCzqC,IAApB6pC,EAAOa,SAAyB,GAAKb,EAAOa,SAAS,GAAK,GAC3EC,OAAqC3qC,IAApB6pC,EAAOa,SAAyB,GAAKb,EAAOa,SAAS,GAAK,GAC3EE,OAA6B5qC,IAAnB6pC,EAAOe,QAAwB,IAAMf,EAAOe,QAAU,GAChEC,OAA+B7qC,IAApB6pC,EAAOgB,SAAyB9pC,GEjBlC,SAAS8pC,GACtB,OAAO,SAASlqC,GACd,OAAOA,EAAM4gB,QAAQ,UAAU,SAASvb,GACtC,OAAO6kC,GAAU7kC,OFcqC8kC,CAAer8B,GAAIvO,KAAK2pC,EAAOgB,SAAUE,SAC/F1mC,OAA6BrE,IAAnB6pC,EAAOxlC,QAAwB,IAAMwlC,EAAOxlC,QAAU,GAChE2mC,OAAyBhrC,IAAjB6pC,EAAOmB,MAAsB,IAAMnB,EAAOmB,MAAQ,GAC1DC,OAAqBjrC,IAAf6pC,EAAOoB,IAAoB,MAAQpB,EAAOoB,IAAM,GAE1D,SAASC,EAAU/B,GAGjB,IAAI3gC,GAFJ2gC,EAAYD,GAAgBC,IAEP3gC,KACjB6T,EAAQ8sB,EAAU9sB,MAClBitB,EAAOH,EAAUG,KACjBpvB,EAASivB,EAAUjvB,OACnBqtB,EAAO4B,EAAU5B,KACjB37B,EAAQu9B,EAAUv9B,MAClB29B,EAAQJ,EAAUI,MAClBC,EAAYL,EAAUK,UACtBzF,EAAOoF,EAAUpF,KACjBllC,EAAOsqC,EAAUtqC,KAGR,MAATA,GAAc0qC,GAAQ,EAAM1qC,EAAO,KAG7BssC,GAAYtsC,UAAqBmB,IAAdwpC,IAA4BA,EAAY,IAAKzF,GAAO,EAAMllC,EAAO,MAG1F0oC,GAAkB,MAAT/+B,GAA0B,MAAV6T,KAAgBkrB,GAAO,EAAM/+B,EAAO,IAAK6T,EAAQ,KAI9E,IAAIpY,EAAoB,MAAXiW,EAAiBuwB,EAA4B,MAAXvwB,GAAkB,SAAS8V,KAAKnxB,GAAQ,IAAMA,EAAKkjB,cAAgB,GAC9GqpB,EAAoB,MAAXlxB,EAAiBywB,EAAiB,OAAO3a,KAAKnxB,GAAQwF,EAAU,GAKzEgnC,EAAaF,GAAYtsC,GACzBysC,EAAc,aAAatb,KAAKnxB,GAUpC,SAASglC,EAAOljC,GACd,IAEIqF,EAAG+pB,EAAGzb,EAFNi3B,EAActnC,EACdunC,EAAcJ,EAGlB,GAAa,MAATvsC,EACF2sC,EAAcH,EAAW1qC,GAAS6qC,EAClC7qC,EAAQ,OACH,CAIL,IAAI8qC,GAHJ9qC,GAASA,GAGmB,GAAK,EAAIA,EAAQ,EAiB7C,GAdAA,EAAQ+jC,MAAM/jC,GAASsqC,EAAMI,EAAW9pC,KAAKwR,IAAIpS,GAAQ6oC,GAGrDzF,IAAMpjC,EGjFH,SAAS4T,GACtBrV,EAAK,IAAK,IAAkCwsC,EAA9B3b,EAAIxb,EAAE9R,OAAQuD,EAAI,EAAGmxB,GAAM,EAAOnxB,EAAI+pB,IAAK/pB,EACvD,OAAQuO,EAAEvO,IACR,IAAK,IAAKmxB,EAAKuU,EAAK1lC,EAAG,MACvB,IAAK,IAAgB,IAAPmxB,IAAUA,EAAKnxB,GAAG0lC,EAAK1lC,EAAG,MACxC,QAAS,KAAMuO,EAAEvO,GAAI,MAAM9G,EAASi4B,EAAK,IAAGA,EAAK,GAGrD,OAAOA,EAAK,EAAI5iB,EAAE5P,MAAM,EAAGwyB,GAAM5iB,EAAE5P,MAAM+mC,EAAK,GAAKn3B,EHyE3Bo3B,CAAWhrC,IAGzB8qC,GAA4B,KAAV9qC,GAAwB,MAAT2oC,IAAcmC,GAAgB,GAGnEF,GAAeE,EAA0B,MAATnC,EAAeA,EAAO0B,EAAkB,MAAT1B,GAAyB,MAATA,EAAe,GAAKA,GAAQiC,EAC3GC,GAAwB,MAAT3sC,EAAeurC,GAAS,EAAIR,GAAiB,GAAK,IAAM4B,GAAeC,GAA0B,MAATnC,EAAe,IAAM,IAIxHgC,EAEF,IADAtlC,GAAK,EAAG+pB,EAAIpvB,EAAM8B,SACTuD,EAAI+pB,GACX,GAA6B,IAAzBzb,EAAI3T,EAAMirC,WAAW5lC,KAAcsO,EAAI,GAAI,CAC7Ck3B,GAAqB,KAANl3B,EAAWs2B,EAAUjqC,EAAMgE,MAAMqB,EAAI,GAAKrF,EAAMgE,MAAMqB,IAAMwlC,EAC3E7qC,EAAQA,EAAMgE,MAAM,EAAGqB,GACvB,OAOJujC,IAAUhC,IAAM5mC,EAAQ4pC,EAAM5pC,EAAO4xB,MAGzC,IAAI9vB,EAAS8oC,EAAY9oC,OAAS9B,EAAM8B,OAAS+oC,EAAY/oC,OACzD8Z,EAAU9Z,EAASmJ,EAAQ,IAAIpL,MAAMoL,EAAQnJ,EAAS,GAAGuf,KAAKxZ,GAAQ,GAM1E,OAHI+gC,GAAShC,IAAM5mC,EAAQ4pC,EAAMhuB,EAAU5b,EAAO4b,EAAQ9Z,OAASmJ,EAAQ4/B,EAAY/oC,OAAS8vB,KAAWhW,EAAU,IAG7GF,GACN,IAAK,IAAK1b,EAAQ4qC,EAAc5qC,EAAQ6qC,EAAcjvB,EAAS,MAC/D,IAAK,IAAK5b,EAAQ4qC,EAAchvB,EAAU5b,EAAQ6qC,EAAa,MAC/D,IAAK,IAAK7qC,EAAQ4b,EAAQ5X,MAAM,EAAGlC,EAAS8Z,EAAQ9Z,QAAU,GAAK8oC,EAAc5qC,EAAQ6qC,EAAcjvB,EAAQ5X,MAAMlC,GAAS,MAC9H,QAAS9B,EAAQ4b,EAAUgvB,EAAc5qC,EAAQ6qC,EAGnD,OAAOX,EAASlqC,GAOlB,OAtEA6oC,OAA0BxpC,IAAdwpC,EAA0B,EAChC,SAASxZ,KAAKnxB,GAAQ0C,KAAK2R,IAAI,EAAG3R,KAAK4R,IAAI,GAAIq2B,IAC/CjoC,KAAK2R,IAAI,EAAG3R,KAAK4R,IAAI,GAAIq2B,IAgE/B3F,EAAOv9B,SAAW,WAChB,OAAO6iC,EAAY,IAGdtF,EAaT,MAAO,CACLA,OAAQqH,EACRpB,aAZF,SAAsBX,EAAWxoC,GAC/B,IAAIo1B,EAAImV,IAAW/B,EAAYD,GAAgBC,IAAsBtqC,KAAO,IAAKsqC,IAC7EznC,EAAiE,EAA7DH,KAAK2R,KAAK,EAAG3R,KAAK4R,IAAI,EAAG5R,KAAK2wB,MAAM6X,GAASppC,GAAS,KAC1D8T,EAAIlT,KAAK8Y,IAAI,IAAK3Y,GAClBuC,EAASmmC,GAAS,EAAI1oC,EAAI,GAC9B,OAAO,SAASf,GACd,OAAOo1B,EAAEthB,EAAI9T,GAASsD,KJ5HjB4nC,CATG,CACZjB,QAAS,IACTN,UAAW,IACXD,SAAU,CAAC,GACXK,SAAU,CAAC,IAAK,IAChBM,MAAO,MAKPnH,GAASgG,GAAOhG,OAChBiG,GAAeD,GAAOC,aQfT,ICCA,YAASrpB,EAAOD,EAAMvP,EAAOk4B,GAC1C,IACIK,EADA5X,EAAOmF,GAAStW,EAAOD,EAAMvP,GAGjC,QADAk4B,EAAYD,GAA6B,MAAbC,EAAoB,KAAOA,IACrCtqC,MAChB,IAAK,IACH,IAAI8B,EAAQY,KAAK2R,IAAI3R,KAAKwR,IAAI0N,GAAQlf,KAAKwR,IAAIyN,IAE/C,OAD2B,MAAvB2oB,EAAUK,WAAsB9E,MAAM8E,ECRjC,SAAS5X,EAAMjxB,GAC5B,OAAOY,KAAK2R,IAAI,EAAgE,EAA7D3R,KAAK2R,KAAK,EAAG3R,KAAK4R,IAAI,EAAG5R,KAAK2wB,MAAM6X,GAASppC,GAAS,KAAWopC,GAASxoC,KAAKwR,IAAI6e,KDO5Cka,CAAgBla,EAAMjxB,MAASwoC,EAAUK,UAAYA,GACpGM,GAAaX,EAAWxoC,GAEjC,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACwB,MAAvBwoC,EAAUK,WAAsB9E,MAAM8E,EDhBjC,SAAS5X,EAAM1e,GAE5B,OADA0e,EAAOrwB,KAAKwR,IAAI6e,GAAO1e,EAAM3R,KAAKwR,IAAIG,GAAO0e,EACtCrwB,KAAK2R,IAAI,EAAG62B,GAAS72B,GAAO62B,GAASnY,IAAS,ECcKma,CAAena,EAAMrwB,KAAK2R,IAAI3R,KAAKwR,IAAI0N,GAAQlf,KAAKwR,IAAIyN,QAAU2oB,EAAUK,UAAYA,GAAgC,MAAnBL,EAAUtqC,OACrK,MAEF,IAAK,IACL,IAAK,IACwB,MAAvBsqC,EAAUK,WAAsB9E,MAAM8E,EErBjC,SAAS5X,GACtB,OAAOrwB,KAAK2R,IAAI,GAAI62B,GAASxoC,KAAKwR,IAAI6e,KFoBoBoa,CAAepa,MAAQuX,EAAUK,UAAYA,EAAuC,GAAP,MAAnBL,EAAUtqC,OAI9H,OAAOglC,GAAOsF,IGtBT,SAAS8C,GAAU3T,GACxB,IAAIhB,EAASgB,EAAMhB,OAoDnB,OAlDAgB,EAAM5B,MAAQ,SAASzlB,GACrB,IAAIyJ,EAAI4c,IACR,OAAOZ,GAAMhc,EAAE,GAAIA,EAAEA,EAAEjY,OAAS,GAAa,MAATwO,EAAgB,GAAKA,IAG3DqnB,EAAM4T,WAAa,SAASj7B,EAAOk4B,GACjC,IAAIzuB,EAAI4c,IACR,OAAO4U,GAAWxxB,EAAE,GAAIA,EAAEA,EAAEjY,OAAS,GAAa,MAATwO,EAAgB,GAAKA,EAAOk4B,IAGvE7Q,EAAM6T,KAAO,SAASl7B,GACP,MAATA,IAAeA,EAAQ,IAE3B,IAKI2gB,EALAlX,EAAI4c,IACJH,EAAK,EACLuU,EAAKhxB,EAAEjY,OAAS,EAChBge,EAAQ/F,EAAEyc,GACV3W,EAAO9F,EAAEgxB,GA8Bb,OA3BIlrB,EAAOC,IACTmR,EAAOnR,EAAOA,EAAQD,EAAMA,EAAOoR,EACnCA,EAAOuF,EAAIA,EAAKuU,EAAIA,EAAK9Z,IAG3BA,EAAO+E,GAAclW,EAAOD,EAAMvP,IAEvB,EAGT2gB,EAAO+E,GAFPlW,EAAQlf,KAAK2wB,MAAMzR,EAAQmR,GAAQA,EACnCpR,EAAOjf,KAAKiyB,KAAKhT,EAAOoR,GAAQA,EACE3gB,GACzB2gB,EAAO,IAGhBA,EAAO+E,GAFPlW,EAAQlf,KAAKiyB,KAAK/S,EAAQmR,GAAQA,EAClCpR,EAAOjf,KAAK2wB,MAAM1R,EAAOoR,GAAQA,EACC3gB,IAGhC2gB,EAAO,GACTlX,EAAEyc,GAAM51B,KAAK2wB,MAAMzR,EAAQmR,GAAQA,EACnClX,EAAEgxB,GAAMnqC,KAAKiyB,KAAKhT,EAAOoR,GAAQA,EACjC0F,EAAO5c,IACEkX,EAAO,IAChBlX,EAAEyc,GAAM51B,KAAKiyB,KAAK/S,EAAQmR,GAAQA,EAClClX,EAAEgxB,GAAMnqC,KAAK2wB,MAAM1R,EAAOoR,GAAQA,EAClC0F,EAAO5c,IAGF4d,GAGFA,EAGM,SAASsN,KACtB,IAAItN,EAAQ0Q,GAAWjoC,GAAUA,IAQjC,OANAu3B,EAAMC,KAAO,WACX,OAAOA,GAAKD,EAAOsN,OAGrBvO,GAAUtlB,MAAMumB,EAAO9zB,WAEhBynC,GAAU3T,GClEJ,SAASv3B,GAASu2B,GAC/B,IAAIe,EAEJ,SAASC,EAAMtsB,GACb,OAAO04B,MAAM14B,GAAKA,GAAKqsB,EAAUrsB,EAmBnC,OAhBAssB,EAAMuQ,OAASvQ,EAEfA,EAAMhB,OAASgB,EAAMxH,MAAQ,SAASvb,GACpC,OAAO/Q,UAAU/B,QAAU60B,EAAS7oB,GAAIvO,KAAKqV,EAAG/N,IAAS8wB,GAAShB,EAAO3yB,SAG3E2zB,EAAMD,QAAU,SAAS9iB,GACvB,OAAO/Q,UAAU/B,QAAU41B,EAAU9iB,EAAG+iB,GAASD,GAGnDC,EAAMC,KAAO,WACX,OAAOx3B,GAASu2B,GAAQe,QAAQA,IAGlCf,EAAS9yB,UAAU/B,OAASgM,GAAIvO,KAAKo3B,EAAQ9vB,IAAU,CAAC,EAAG,GAEpDykC,GAAU3T,GC3BJ,gBAAShB,EAAQ8U,GAG9B,IAIIlnC,EAJAiyB,EAAK,EACLuU,GAHJpU,EAASA,EAAO3yB,SAGAlC,OAAS,EACrBiS,EAAK4iB,EAAOH,GACZviB,EAAK0iB,EAAOoU,GAUhB,OAPI92B,EAAKF,IACPxP,EAAIiyB,EAAIA,EAAKuU,EAAIA,EAAKxmC,EACtBA,EAAIwP,EAAIA,EAAKE,EAAIA,EAAK1P,GAGxBoyB,EAAOH,GAAMiV,EAASla,MAAMxd,GAC5B4iB,EAAOoU,GAAMU,EAAS5Y,KAAK5e,GACpB0iB,GCVT,SAAS+U,GAAargC,GACpB,OAAOzK,KAAK4wB,IAAInmB,GAGlB,SAASsgC,GAAatgC,GACpB,OAAOzK,KAAKpC,IAAI6M,GAGlB,SAASugC,GAAcvgC,GACrB,OAAQzK,KAAK4wB,KAAKnmB,GAGpB,SAASwgC,GAAcxgC,GACrB,OAAQzK,KAAKpC,KAAK6M,GAGpB,SAASygC,GAAMzgC,GACb,OAAOkoB,SAASloB,KAAO,KAAOA,GAAKA,EAAI,EAAI,EAAIA,EAgBjD,SAAS0gC,GAAQ3W,GACf,OAAO,SAAS/pB,GACd,OAAQ+pB,GAAG/pB,IAIR,SAAS2gC,GAAQphC,GACtB,IAGIqhC,EACAC,EAJAvU,EAAQ/sB,EAAU8gC,GAAcC,IAChChV,EAASgB,EAAMhB,OACfwV,EAAO,GAIX,SAAShU,IAQP,OAPA8T,EArBJ,SAAcE,GACZ,OAAOA,IAASvrC,KAAKwrC,EAAIxrC,KAAK4wB,IACf,KAAT2a,GAAevrC,KAAKyrC,OACV,IAATF,GAAcvrC,KAAK0rC,OAClBH,EAAOvrC,KAAK4wB,IAAI2a,GAAO,SAAS9gC,GAAK,OAAOzK,KAAK4wB,IAAInmB,GAAK8gC,IAiBzDI,CAAKJ,GAAOD,EA3BvB,SAAcC,GACZ,OAAgB,KAATA,EAAcL,GACfK,IAASvrC,KAAKwrC,EAAIxrC,KAAKpC,IACvB,SAAS6M,GAAK,OAAOzK,KAAK8Y,IAAIyyB,EAAM9gC,IAwBdmhC,CAAKL,GAC3BxV,IAAS,GAAK,GAChBsV,EAAOF,GAAQE,GAAOC,EAAOH,GAAQG,GACrCthC,EAAUghC,GAAeC,KAEzBjhC,EAAU8gC,GAAcC,IAEnBhU,EAuET,OApEAA,EAAMwU,KAAO,SAASv3B,GACpB,OAAO/Q,UAAU/B,QAAUqqC,GAAQv3B,EAAGujB,KAAagU,GAGrDxU,EAAMhB,OAAS,SAAS/hB,GACtB,OAAO/Q,UAAU/B,QAAU60B,EAAO/hB,GAAIujB,KAAaxB,KAGrDgB,EAAM5B,MAAQ,SAASzlB,GACrB,IAGI/E,EAHAwO,EAAI4c,IACJyR,EAAIruB,EAAE,GACN8G,EAAI9G,EAAEA,EAAEjY,OAAS,IAGjByJ,EAAIsV,EAAIunB,KAAG/iC,EAAI+iC,EAAGA,EAAIvnB,EAAGA,EAAIxb,GAEjC,IAEIyS,EACAhE,EACAvP,EAJAc,EAAI4mC,EAAK7D,GACTX,EAAIwE,EAAKprB,GAITuO,EAAa,MAAT9e,EAAgB,IAAMA,EAC1Bm8B,EAAI,GAER,KAAMN,EAAO,IAAM1E,EAAIpiC,EAAI+pB,GAEzB,GADA/pB,EAAIzE,KAAKo3B,MAAM3yB,GAAK,EAAGoiC,EAAI7mC,KAAKo3B,MAAMyP,GAAK,EACvCW,EAAI,GAAG,KAAO/iC,EAAIoiC,IAAKpiC,EACzB,IAAKyO,EAAI,EAAGgE,EAAIo0B,EAAK7mC,GAAIyO,EAAIq4B,IAAQr4B,EAEnC,MADAvP,EAAIuT,EAAIhE,GACAs0B,GAAR,CACA,GAAI7jC,EAAIsc,EAAG,MACX4rB,EAAEr+B,KAAK7J,SAEJ,KAAOc,EAAIoiC,IAAKpiC,EACrB,IAAKyO,EAAIq4B,EAAO,EAAGr0B,EAAIo0B,EAAK7mC,GAAIyO,GAAK,IAAKA,EAExC,MADAvP,EAAIuT,EAAIhE,GACAs0B,GAAR,CACA,GAAI7jC,EAAIsc,EAAG,MACX4rB,EAAEr+B,KAAK7J,SAIXkoC,EAAI1W,GAAM1wB,EAAGoiC,EAAG7mC,KAAK4R,IAAIi1B,EAAIpiC,EAAG+pB,IAAIthB,IAAIo+B,GAG1C,OAAO3gC,EAAIkhC,EAAEjc,UAAYic,GAG3B9U,EAAM4T,WAAa,SAASj7B,EAAOk4B,GAGjC,GAFiB,MAAbA,IAAmBA,EAAqB,KAAT2D,EAAc,MAAQ,KAChC,oBAAd3D,IAA0BA,EAAYtF,GAAOsF,IACpDl4B,IAAUshB,IAAU,OAAO4W,EAClB,MAATl4B,IAAeA,EAAQ,IAC3B,IAAIwD,EAAIlT,KAAK2R,IAAI,EAAG45B,EAAO77B,EAAQqnB,EAAM5B,QAAQj0B,QACjD,OAAO,SAASiY,GACd,IAAI1U,EAAI0U,EAAImyB,EAAKtrC,KAAKo3B,MAAMiU,EAAKlyB,KAEjC,OADI1U,EAAI8mC,EAAOA,EAAO,KAAK9mC,GAAK8mC,GACzB9mC,GAAKyO,EAAI00B,EAAUzuB,GAAK,KAInC4d,EAAM6T,KAAO,WACX,OAAO7U,EAAO6U,GAAK7U,IAAU,CAC3BpF,MAAO,SAASlmB,GAAK,OAAO6gC,EAAKtrC,KAAK2wB,MAAM0a,EAAK5gC,MACjDwnB,KAAM,SAASxnB,GAAK,OAAO6gC,EAAKtrC,KAAKiyB,KAAKoZ,EAAK5gC,UAI5CssB,EAGM,SAASnG,KACtB,IAAImG,EAAQqU,GAAQpE,MAAejR,OAAO,CAAC,EAAG,KAQ9C,OANAgB,EAAMC,KAAO,WACX,OAAOA,GAAKD,EAAOnG,MAAO2a,KAAKxU,EAAMwU,SAGvCzV,GAAUtlB,MAAMumB,EAAO9zB,WAEhB8zB,EC3IT,SAAS+U,GAAgB/4B,GACvB,OAAO,SAAStI,GACd,OAAOzK,KAAK+nC,KAAKt9B,GAAKzK,KAAK+rC,MAAM/rC,KAAKwR,IAAI/G,EAAIsI,KAIlD,SAASi5B,GAAgBj5B,GACvB,OAAO,SAAStI,GACd,OAAOzK,KAAK+nC,KAAKt9B,GAAKzK,KAAKisC,MAAMjsC,KAAKwR,IAAI/G,IAAMsI,GAI7C,SAASm5B,GAAUliC,GACxB,IAAI+I,EAAI,EAAGgkB,EAAQ/sB,EAAU8hC,GAAgB/4B,GAAIi5B,GAAgBj5B,IAMjE,OAJAgkB,EAAMte,SAAW,SAASzE,GACxB,OAAO/Q,UAAU/B,OAAS8I,EAAU8hC,GAAgB/4B,GAAKiB,GAAIg4B,GAAgBj5B,IAAMA,GAG9E23B,GAAU3T,GAGJ,SAASoV,KACtB,IAAIpV,EAAQmV,GAAUlF,MAMtB,OAJAjQ,EAAMC,KAAO,WACX,OAAOA,GAAKD,EAAOoV,MAAU1zB,SAASse,EAAMte,aAGvCqd,GAAUtlB,MAAMumB,EAAO9zB,WC7BhC,SAASmpC,GAAa5D,GACpB,OAAO,SAAS/9B,GACd,OAAOA,EAAI,GAAKzK,KAAK8Y,KAAKrO,EAAG+9B,GAAYxoC,KAAK8Y,IAAIrO,EAAG+9B,IAIzD,SAAS6D,GAAc5hC,GACrB,OAAOA,EAAI,GAAKzK,KAAK8R,MAAMrH,GAAKzK,KAAK8R,KAAKrH,GAG5C,SAAS6hC,GAAgB7hC,GACvB,OAAOA,EAAI,GAAKA,EAAIA,EAAIA,EAAIA,EAGvB,SAAS8hC,GAAOviC,GACrB,IAAI+sB,EAAQ/sB,EAAUxK,GAAUA,IAC5BgpC,EAAW,EAEf,SAASjR,IACP,OAAoB,IAAbiR,EAAiBx+B,EAAUxK,GAAUA,IACzB,KAAbgpC,EAAmBx+B,EAAUqiC,GAAeC,IAC5CtiC,EAAUoiC,GAAa5D,GAAW4D,GAAa,EAAI5D,IAO3D,OAJAzR,EAAMyR,SAAW,SAASx0B,GACxB,OAAO/Q,UAAU/B,QAAUsnC,GAAYx0B,EAAGujB,KAAaiR,GAGlDkC,GAAU3T,GAGJ,SAASje,KACtB,IAAIie,EAAQwV,GAAOvF,MAQnB,OANAjQ,EAAMC,KAAO,WACX,OAAOA,GAAKD,EAAOje,MAAO0vB,SAASzR,EAAMyR,aAG3C1S,GAAUtlB,MAAMumB,EAAO9zB,WAEhB8zB,EAGF,SAASjlB,KACd,OAAOgH,GAAItI,MAAM,KAAMvN,WAAWulC,SAAS,IC5C9B,SAASgE,KACtB,IAGI1V,EAHAf,EAAS,GACTxG,EAAQ,GACRkd,EAAa,GAGjB,SAASlV,IACP,IAAI9yB,EAAI,EAAG+pB,EAAIxuB,KAAK2R,IAAI,EAAG4d,EAAMruB,QAEjC,IADAurC,EAAa,IAAIxtC,MAAMuvB,EAAI,KAClB/pB,EAAI+pB,GAAGie,EAAWhoC,EAAI,GAAKioC,GAAU3W,EAAQtxB,EAAI+pB,GAC1D,OAAOuI,EAGT,SAASA,EAAMtsB,GACb,OAAO04B,MAAM14B,GAAKA,GAAKqsB,EAAUvH,EAAMuX,GAAO2F,EAAYhiC,IAsC5D,OAnCAssB,EAAM4V,aAAe,SAASjiC,GAC5B,IAAIjG,EAAI8qB,EAAMptB,QAAQuI,GACtB,OAAOjG,EAAI,EAAI,CAAC6vB,IAAKA,KAAO,CAC1B7vB,EAAI,EAAIgoC,EAAWhoC,EAAI,GAAKsxB,EAAO,GACnCtxB,EAAIgoC,EAAWvrC,OAASurC,EAAWhoC,GAAKsxB,EAAOA,EAAO70B,OAAS,KAInE61B,EAAMhB,OAAS,SAAS/hB,GACtB,IAAK/Q,UAAU/B,OAAQ,OAAO60B,EAAO3yB,QACrC2yB,EAAS,GACT,IAAK,IAAyB5c,EAArB1U,EAAI,EAAG+pB,EAAIxa,EAAE9S,OAAWuD,EAAI+pB,IAAK/pB,EAAsB,OAAf0U,EAAInF,EAAEvP,KAAkB0+B,MAAMhqB,GAAKA,IAAI4c,EAAOvoB,KAAK2L,GAEpG,OADA4c,EAAO6W,KAAKnY,IACL8C,KAGTR,EAAMxH,MAAQ,SAASvb,GACrB,OAAO/Q,UAAU/B,QAAUquB,EAAQnsB,GAAMzE,KAAKqV,GAAIujB,KAAahI,EAAMnsB,SAGvE2zB,EAAMD,QAAU,SAAS9iB,GACvB,OAAO/Q,UAAU/B,QAAU41B,EAAU9iB,EAAG+iB,GAASD,GAGnDC,EAAM8V,UAAY,WAChB,OAAOJ,EAAWrpC,SAGpB2zB,EAAMC,KAAO,WACX,OAAOwV,KACFzW,OAAOA,GACPxG,MAAMA,GACNuH,QAAQA,IAGRhB,GAAUtlB,MAAMumB,EAAO9zB,WCnDjB,SAAS6pC,KACtB,IAKIhW,EALA3jB,EAAK,EACLE,EAAK,EACLmb,EAAI,EACJuH,EAAS,CAAC,IACVxG,EAAQ,CAAC,EAAG,GAGhB,SAASwH,EAAMtsB,GACb,OAAOA,GAAKA,EAAI8kB,EAAMuX,GAAO/Q,EAAQtrB,EAAG,EAAG+jB,IAAMsI,EAGnD,SAASS,IACP,IAAI9yB,GAAK,EAET,IADAsxB,EAAS,IAAI92B,MAAMuvB,KACV/pB,EAAI+pB,GAAGuH,EAAOtxB,KAAOA,EAAI,GAAK4O,GAAM5O,EAAI+pB,GAAKrb,IAAOqb,EAAI,GACjE,OAAOuI,EAkCT,OA/BAA,EAAMhB,OAAS,SAAS/hB,GACtB,OAAO/Q,UAAU/B,QAAUiS,GAAMa,EAAE,GAAIX,GAAMW,EAAE,GAAIujB,KAAa,CAACpkB,EAAIE,IAGvE0jB,EAAMxH,MAAQ,SAASvb,GACrB,OAAO/Q,UAAU/B,QAAUstB,GAAKe,EAAQnsB,GAAMzE,KAAKqV,IAAI9S,OAAS,EAAGq2B,KAAahI,EAAMnsB,SAGxF2zB,EAAM4V,aAAe,SAASjiC,GAC5B,IAAIjG,EAAI8qB,EAAMptB,QAAQuI,GACtB,OAAOjG,EAAI,EAAI,CAAC6vB,IAAKA,KACf7vB,EAAI,EAAI,CAAC0O,EAAI4iB,EAAO,IACpBtxB,GAAK+pB,EAAI,CAACuH,EAAOvH,EAAI,GAAInb,GACzB,CAAC0iB,EAAOtxB,EAAI,GAAIsxB,EAAOtxB,KAG/BsyB,EAAMD,QAAU,SAAS9iB,GACvB,OAAO/Q,UAAU/B,QAAU41B,EAAU9iB,EAAG+iB,GAASA,GAGnDA,EAAM0V,WAAa,WACjB,OAAO1W,EAAO3yB,SAGhB2zB,EAAMC,KAAO,WACX,OAAO8V,KACF/W,OAAO,CAAC5iB,EAAIE,IACZkc,MAAMA,GACNuH,QAAQA,IAGRhB,GAAUtlB,MAAMk6B,GAAU3T,GAAQ9zB,WCnD5B,SAASypC,KACtB,IAEI5V,EAFAf,EAAS,CAAC,IACVxG,EAAQ,CAAC,EAAG,GAEZf,EAAI,EAER,SAASuI,EAAMtsB,GACb,OAAOA,GAAKA,EAAI8kB,EAAMuX,GAAO/Q,EAAQtrB,EAAG,EAAG+jB,IAAMsI,EA2BnD,OAxBAC,EAAMhB,OAAS,SAAS/hB,GACtB,OAAO/Q,UAAU/B,QAAU60B,EAAS3yB,GAAMzE,KAAKqV,GAAIwa,EAAIxuB,KAAK4R,IAAImkB,EAAO70B,OAAQquB,EAAMruB,OAAS,GAAI61B,GAAShB,EAAO3yB,SAGpH2zB,EAAMxH,MAAQ,SAASvb,GACrB,OAAO/Q,UAAU/B,QAAUquB,EAAQnsB,GAAMzE,KAAKqV,GAAIwa,EAAIxuB,KAAK4R,IAAImkB,EAAO70B,OAAQquB,EAAMruB,OAAS,GAAI61B,GAASxH,EAAMnsB,SAGlH2zB,EAAM4V,aAAe,SAASjiC,GAC5B,IAAIjG,EAAI8qB,EAAMptB,QAAQuI,GACtB,MAAO,CAACqrB,EAAOtxB,EAAI,GAAIsxB,EAAOtxB,KAGhCsyB,EAAMD,QAAU,SAAS9iB,GACvB,OAAO/Q,UAAU/B,QAAU41B,EAAU9iB,EAAG+iB,GAASD,GAGnDC,EAAMC,KAAO,WACX,OAAO0V,KACF3W,OAAOA,GACPxG,MAAMA,GACNuH,QAAQA,IAGRhB,GAAUtlB,MAAMumB,EAAO9zB,WCtChC,IAAI8pC,GAAK,IAAI1H,KACT3B,GAAK,IAAI2B,KAEE,SAAS2H,GAAYC,EAAQC,EAASx9B,EAAOy9B,GAE1D,SAAStC,EAAS5E,GAChB,OAAOgH,EAAOhH,EAA4B,IAArBhjC,UAAU/B,OAAe,IAAImkC,KAAO,IAAIA,MAAMY,IAAQA,EA8D7E,OA3DA4E,EAASla,MAAQ,SAASsV,GACxB,OAAOgH,EAAOhH,EAAO,IAAIZ,MAAMY,IAAQA,GAGzC4E,EAAS5Y,KAAO,SAASgU,GACvB,OAAOgH,EAAOhH,EAAO,IAAIZ,KAAKY,EAAO,IAAKiH,EAAQjH,EAAM,GAAIgH,EAAOhH,GAAOA,GAG5E4E,EAASzT,MAAQ,SAAS6O,GACxB,IAAIO,EAAKqE,EAAS5E,GACdQ,EAAKoE,EAAS5Y,KAAKgU,GACvB,OAAOA,EAAOO,EAAKC,EAAKR,EAAOO,EAAKC,GAGtCoE,EAASpf,OAAS,SAASwa,EAAM5V,GAC/B,OAAO6c,EAAQjH,EAAO,IAAIZ,MAAMY,GAAe,MAAR5V,EAAe,EAAIrwB,KAAK2wB,MAAMN,IAAQ4V,GAG/E4E,EAAStb,MAAQ,SAASrQ,EAAOD,EAAMoR,GACrC,IAAgB+c,EAAZ7d,EAAQ,GAGZ,GAFArQ,EAAQ2rB,EAAS5Y,KAAK/S,GACtBmR,EAAe,MAARA,EAAe,EAAIrwB,KAAK2wB,MAAMN,KAC/BnR,EAAQD,MAAWoR,EAAO,GAAI,OAAOd,EAC3C,GAAGA,EAAM/hB,KAAK4/B,EAAW,IAAI/H,MAAMnmB,IAASguB,EAAQhuB,EAAOmR,GAAO4c,EAAO/tB,SAClEkuB,EAAWluB,GAASA,EAAQD,GACnC,OAAOsQ,GAGTsb,EAASxjC,OAAS,SAASonB,GACzB,OAAOue,IAAY,SAAS/G,GAC1B,GAAIA,GAAQA,EAAM,KAAOgH,EAAOhH,IAAQxX,EAAKwX,IAAOA,EAAKX,QAAQW,EAAO,MACvE,SAASA,EAAM5V,GAChB,GAAI4V,GAAQA,EACV,GAAI5V,EAAO,EAAG,OAASA,GAAQ,GAC7B,KAAO6c,EAAQjH,GAAO,IAAKxX,EAAKwX,UAC3B,OAAS5V,GAAQ,GACtB,KAAO6c,EAAQjH,EAAM,IAAMxX,EAAKwX,UAMpCv2B,IACFm7B,EAASn7B,MAAQ,SAASwP,EAAO2E,GAG/B,OAFAkpB,GAAGzH,SAASpmB,GAAQwkB,GAAG4B,SAASzhB,GAChCopB,EAAOF,IAAKE,EAAOvJ,IACZ1jC,KAAK2wB,MAAMjhB,EAAMq9B,GAAIrJ,MAG9BmH,EAAS3oB,MAAQ,SAASmO,GAExB,OADAA,EAAOrwB,KAAK2wB,MAAMN,GACVsC,SAAStC,IAAWA,EAAO,EAC3BA,EAAO,EACTwa,EAASxjC,OAAO8lC,EACZ,SAASh0B,GAAK,OAAOg0B,EAAMh0B,GAAKkX,IAAS,GACzC,SAASlX,GAAK,OAAO0xB,EAASn7B,MAAM,EAAGyJ,GAAKkX,IAAS,IAH3Cwa,EADoB,OAQrCA,EClET,IAAIwC,GAAOxC,IAAS,SAAS5E,GAC3BA,EAAKqH,SAAS,EAAG,GACjBrH,EAAKsH,SAAS,EAAG,EAAG,EAAG,MACtB,SAAStH,EAAM5V,GAChB4V,EAAKuH,YAAYvH,EAAKwH,cAAgBpd,MACrC,SAASnR,EAAO2E,GACjB,OAAOA,EAAI4pB,cAAgBvuB,EAAMuuB,iBAChC,SAASxH,GACV,OAAOA,EAAKwH,iBAIdJ,GAAKnrB,MAAQ,SAAShP,GACpB,OAAQyf,SAASzf,EAAIlT,KAAK2wB,MAAMzd,KAASA,EAAI,EAAY23B,IAAS,SAAS5E,GACzEA,EAAKuH,YAAYxtC,KAAK2wB,MAAMsV,EAAKwH,cAAgBv6B,GAAKA,GACtD+yB,EAAKqH,SAAS,EAAG,GACjBrH,EAAKsH,SAAS,EAAG,EAAG,EAAG,MACtB,SAAStH,EAAM5V,GAChB4V,EAAKuH,YAAYvH,EAAKwH,cAAgBpd,EAAOnd,MALG,MASrCm6B,UCtBXK,IDuBeL,GAAK9d,MCvBZsb,IAAS,SAAS5E,GAC5BA,EAAK0H,QAAQ,GACb1H,EAAKsH,SAAS,EAAG,EAAG,EAAG,MACtB,SAAStH,EAAM5V,GAChB4V,EAAKqH,SAASrH,EAAK2H,WAAavd,MAC/B,SAASnR,EAAO2E,GACjB,OAAOA,EAAI+pB,WAAa1uB,EAAM0uB,WAAyD,IAA3C/pB,EAAI4pB,cAAgBvuB,EAAMuuB,kBACrE,SAASxH,GACV,OAAOA,EAAK2H,eAGCF,MCbJG,IDcSH,GAAMne,MCdE,KACjBue,GAAiB,IACjBC,GAAe,KACfC,GAAc,MACdC,GAAe,OCD1B,SAASC,GAAQzpC,GACf,OAAOomC,IAAS,SAAS5E,GACvBA,EAAK0H,QAAQ1H,EAAKkI,WAAalI,EAAKmI,SAAW,EAAI3pC,GAAK,GACxDwhC,EAAKsH,SAAS,EAAG,EAAG,EAAG,MACtB,SAAStH,EAAM5V,GAChB4V,EAAK0H,QAAQ1H,EAAKkI,UAAmB,EAAP9d,MAC7B,SAASnR,EAAO2E,GACjB,OAAQA,EAAM3E,GAAS2E,EAAIwqB,oBAAsBnvB,EAAMmvB,qBAAuBP,IAAkBG,MAI7F,IAAIK,GAASJ,GAAQ,GACjBK,GAASL,GAAQ,GACjBM,GAAUN,GAAQ,GAClBO,GAAYP,GAAQ,GACpBQ,GAAWR,GAAQ,GACnBS,GAAST,GAAQ,GACjBU,GAAWV,GAAQ,GCjB1BW,IDmBiBP,GAAO/e,MACPgf,GAAOhf,MACNif,GAAQjf,MACNkf,GAAUlf,MACXmf,GAASnf,MACXof,GAAOpf,MACLqf,GAASrf,MCzBtBsb,IAAS,SAAS5E,GAC1BA,EAAKsH,SAAS,EAAG,EAAG,EAAG,MACtB,SAAStH,EAAM5V,GAChB4V,EAAK0H,QAAQ1H,EAAKkI,UAAY9d,MAC7B,SAASnR,EAAO2E,GACjB,OAAQA,EAAM3E,GAAS2E,EAAIwqB,oBAAsBnvB,EAAMmvB,qBAAuBP,IAAkBE,MAC/F,SAAS/H,GACV,OAAOA,EAAKkI,UAAY,MAGXU,MCVXC,IDWcD,GAAItf,MCXXsb,IAAS,SAAS5E,GAC3BA,EAAKX,QAAQW,EAAOA,EAAK8I,kBAAoB9I,EAAK+I,aAAenB,GAAiB5H,EAAKgJ,aAAenB,OACrG,SAAS7H,EAAM5V,GAChB4V,EAAKX,SAASW,EAAO5V,EAAO0d,OAC3B,SAAS7uB,EAAO2E,GACjB,OAAQA,EAAM3E,GAAS6uB,MACtB,SAAS9H,GACV,OAAOA,EAAKiJ,eAGCJ,MCVXK,IDWeL,GAAKvf,MCXXsb,IAAS,SAAS5E,GAC7BA,EAAKX,QAAQW,EAAOA,EAAK8I,kBAAoB9I,EAAK+I,aAAenB,OAChE,SAAS5H,EAAM5V,GAChB4V,EAAKX,SAASW,EAAO5V,EAAOyd,OAC3B,SAAS5uB,EAAO2E,GACjB,OAAQA,EAAM3E,GAAS4uB,MACtB,SAAS7H,GACV,OAAOA,EAAKgJ,iBAGCE,MCVXC,IDWiBD,GAAO5f,MCXfsb,IAAS,SAAS5E,GAC7BA,EAAKX,QAAQW,EAAOA,EAAK8I,sBACxB,SAAS9I,EAAM5V,GAChB4V,EAAKX,SAASW,EAAO5V,EAAOwd,OAC3B,SAAS3uB,EAAO2E,GACjB,OAAQA,EAAM3E,GAAS2uB,MACtB,SAAS5H,GACV,OAAOA,EAAKoJ,oBAGCD,MCXXE,IDYiBF,GAAO7f,MCZVsb,IAAS,eAExB,SAAS5E,EAAM5V,GAChB4V,EAAKX,SAASW,EAAO5V,MACpB,SAASnR,EAAO2E,GACjB,OAAOA,EAAM3E,MAIfowB,GAAYptB,MAAQ,SAAShP,GAE3B,OADAA,EAAIlT,KAAK2wB,MAAMzd,GACVyf,SAASzf,IAAQA,EAAI,EACpBA,EAAI,EACH23B,IAAS,SAAS5E,GACvBA,EAAKX,QAAQtlC,KAAK2wB,MAAMsV,EAAO/yB,GAAKA,MACnC,SAAS+yB,EAAM5V,GAChB4V,EAAKX,SAASW,EAAO5V,EAAOnd,MAC3B,SAASgM,EAAO2E,GACjB,OAAQA,EAAM3E,GAAShM,KANJo8B,GADgB,MAWxBA,UACWA,GAAY/f,MCtBtC,SAASggB,GAAW9qC,GAClB,OAAOomC,IAAS,SAAS5E,GACvBA,EAAKuJ,WAAWvJ,EAAKwJ,cAAgBxJ,EAAKyJ,YAAc,EAAIjrC,GAAK,GACjEwhC,EAAK0J,YAAY,EAAG,EAAG,EAAG,MACzB,SAAS1J,EAAM5V,GAChB4V,EAAKuJ,WAAWvJ,EAAKwJ,aAAsB,EAAPpf,MACnC,SAASnR,EAAO2E,GACjB,OAAQA,EAAM3E,GAAS+uB,MAIpB,IAAI2B,GAAYL,GAAW,GACvBM,GAAYN,GAAW,GACvBO,GAAaP,GAAW,GACxBQ,GAAeR,GAAW,GAC1BS,GAAcT,GAAW,GACzBU,GAAYV,GAAW,GACvBW,GAAcX,GAAW,GCjBhCY,IDmBoBP,GAAUrgB,MACVsgB,GAAUtgB,MACTugB,GAAWvgB,MACTwgB,GAAaxgB,MACdygB,GAAYzgB,MACd0gB,GAAU1gB,MACR2gB,GAAY3gB,MCzBzBsb,IAAS,SAAS5E,GAC7BA,EAAK0J,YAAY,EAAG,EAAG,EAAG,MACzB,SAAS1J,EAAM5V,GAChB4V,EAAKuJ,WAAWvJ,EAAKwJ,aAAepf,MACnC,SAASnR,EAAO2E,GACjB,OAAQA,EAAM3E,GAAS8uB,MACtB,SAAS/H,GACV,OAAOA,EAAKwJ,aAAe,MAGdU,MCXXC,IDYiBD,GAAO5gB,MCZdsb,IAAS,SAAS5E,GAC9BA,EAAKoK,YAAY,EAAG,GACpBpK,EAAK0J,YAAY,EAAG,EAAG,EAAG,MACzB,SAAS1J,EAAM5V,GAChB4V,EAAKqK,eAAerK,EAAKsK,iBAAmBlgB,MAC3C,SAASnR,EAAO2E,GACjB,OAAOA,EAAI0sB,iBAAmBrxB,EAAMqxB,oBACnC,SAAStK,GACV,OAAOA,EAAKsK,qBAIdH,GAAQluB,MAAQ,SAAShP,GACvB,OAAQyf,SAASzf,EAAIlT,KAAK2wB,MAAMzd,KAASA,EAAI,EAAY23B,IAAS,SAAS5E,GACzEA,EAAKqK,eAAetwC,KAAK2wB,MAAMsV,EAAKsK,iBAAmBr9B,GAAKA,GAC5D+yB,EAAKoK,YAAY,EAAG,GACpBpK,EAAK0J,YAAY,EAAG,EAAG,EAAG,MACzB,SAAS1J,EAAM5V,GAChB4V,EAAKqK,eAAerK,EAAKsK,iBAAmBlgB,EAAOnd,MALH,MASrCk9B,UACOA,GAAQ7gB,MCZ9B,SAASihB,GAAUr3B,GACjB,GAAI,GAAKA,EAAEzO,GAAKyO,EAAEzO,EAAI,IAAK,CACzB,IAAIu7B,EAAO,IAAIZ,MAAM,EAAGlsB,EAAEopB,EAAGppB,EAAEA,EAAGA,EAAEs3B,EAAGt3B,EAAEu3B,EAAGv3B,EAAE7a,EAAG6a,EAAEw3B,GAEnD,OADA1K,EAAKuH,YAAYr0B,EAAEzO,GACZu7B,EAET,OAAO,IAAIZ,KAAKlsB,EAAEzO,EAAGyO,EAAEopB,EAAGppB,EAAEA,EAAGA,EAAEs3B,EAAGt3B,EAAEu3B,EAAGv3B,EAAE7a,EAAG6a,EAAEw3B,GAGlD,SAASC,GAAQz3B,GACf,GAAI,GAAKA,EAAEzO,GAAKyO,EAAEzO,EAAI,IAAK,CACzB,IAAIu7B,EAAO,IAAIZ,KAAKA,KAAKwL,KAAK,EAAG13B,EAAEopB,EAAGppB,EAAEA,EAAGA,EAAEs3B,EAAGt3B,EAAEu3B,EAAGv3B,EAAE7a,EAAG6a,EAAEw3B,IAE5D,OADA1K,EAAKqK,eAAen3B,EAAEzO,GACfu7B,EAET,OAAO,IAAIZ,KAAKA,KAAKwL,IAAI13B,EAAEzO,EAAGyO,EAAEopB,EAAGppB,EAAEA,EAAGA,EAAEs3B,EAAGt3B,EAAEu3B,EAAGv3B,EAAE7a,EAAG6a,EAAEw3B,IAG3D,SAASG,GAAQpmC,EAAG63B,EAAGppB,GACrB,MAAO,CAACzO,EAAGA,EAAG63B,EAAGA,EAAGppB,EAAGA,EAAGs3B,EAAG,EAAGC,EAAG,EAAGpyC,EAAG,EAAGqyC,EAAG,GAmWjD,ICjYIrI,GACOyI,GAEAC,GD8XPC,GAAO,CAAC,IAAK,GAAI,EAAK,IAAK,EAAK,KAChCC,GAAW,UACXC,GAAY,KACZC,GAAY,sBAEhB,SAASC,GAAIjyC,EAAO6H,EAAMoD,GACxB,IAAI09B,EAAO3oC,EAAQ,EAAI,IAAM,GACzByG,GAAUkiC,GAAQ3oC,EAAQA,GAAS,GACnC8B,EAAS2E,EAAO3E,OACpB,OAAO6mC,GAAQ7mC,EAASmJ,EAAQ,IAAIpL,MAAMoL,EAAQnJ,EAAS,GAAGuf,KAAKxZ,GAAQpB,EAASA,GAGtF,SAASyrC,GAAQt+B,GACf,OAAOA,EAAEgN,QAAQoxB,GAAW,QAG9B,SAASG,GAASC,GAChB,OAAO,IAAIjZ,OAAO,OAASiZ,EAAMtkC,IAAIokC,IAAS7wB,KAAK,KAAO,IAAK,KAGjE,SAASgxB,GAAaD,GAEpB,IADA,IAAItkC,EAAM,GAAIzI,GAAK,EAAG+pB,EAAIgjB,EAAMtwC,SACvBuD,EAAI+pB,GAAGthB,EAAIskC,EAAM/sC,GAAG+b,eAAiB/b,EAC9C,OAAOyI,EAGT,SAASwkC,GAAyBv4B,EAAGtT,EAAQpB,GAC3C,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAEzG,GAAK8b,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG/C,SAASywC,GAAyBx4B,EAAGtT,EAAQpB,GAC3C,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAEquB,GAAKhZ,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG/C,SAAS0wC,GAAsBz4B,EAAGtT,EAAQpB,GACxC,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAEva,GAAK4vB,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG/C,SAAS2wC,GAAmB14B,EAAGtT,EAAQpB,GACrC,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAE24B,GAAKtjB,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG/C,SAAS6wC,GAAsB54B,EAAGtT,EAAQpB,GACxC,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAEta,GAAK2vB,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG/C,SAAS8wC,GAAc74B,EAAGtT,EAAQpB,GAChC,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAEzO,GAAK8jB,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG/C,SAAS+wC,GAAU94B,EAAGtT,EAAQpB,GAC5B,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAEzO,GAAK8jB,EAAE,KAAOA,EAAE,GAAK,GAAK,KAAO,KAAO/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG5E,SAASgxC,GAAU/4B,EAAGtT,EAAQpB,GAC5B,IAAI+pB,EAAI,+BAA+BtuB,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAChE,OAAO+pB,GAAKrV,EAAEg5B,EAAI3jB,EAAE,GAAK,IAAMA,EAAE,IAAMA,EAAE,IAAM,OAAQ/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG7E,SAASkxC,GAAaj5B,EAAGtT,EAAQpB,GAC/B,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAE2sB,EAAW,EAAPtX,EAAE,GAAS,EAAG/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAGtD,SAASmxC,GAAiBl5B,EAAGtT,EAAQpB,GACnC,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAEopB,EAAI/T,EAAE,GAAK,EAAG/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAGlD,SAASoxC,GAAgBn5B,EAAGtT,EAAQpB,GAClC,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAEA,GAAKqV,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG/C,SAASqxC,GAAep5B,EAAGtT,EAAQpB,GACjC,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAEopB,EAAI,EAAGppB,EAAEA,GAAKqV,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAGxD,SAASsxC,GAAYr5B,EAAGtT,EAAQpB,GAC9B,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAEs3B,GAAKjiB,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG/C,SAASuxC,GAAat5B,EAAGtT,EAAQpB,GAC/B,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAEu3B,GAAKliB,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG/C,SAASwxC,GAAav5B,EAAGtT,EAAQpB,GAC/B,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAE7a,GAAKkwB,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG/C,SAASyxC,GAAkBx5B,EAAGtT,EAAQpB,GACpC,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAEw3B,GAAKniB,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG/C,SAAS0xC,GAAkBz5B,EAAGtT,EAAQpB,GACpC,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC1C,OAAO+pB,GAAKrV,EAAEw3B,EAAI3wC,KAAK2wB,MAAMnC,EAAE,GAAK,KAAO/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAGjE,SAAS2xC,GAAoB15B,EAAGtT,EAAQpB,GACtC,IAAI+pB,EAAI2iB,GAAUjxC,KAAK2F,EAAOzC,MAAMqB,EAAGA,EAAI,IAC3C,OAAO+pB,EAAI/pB,EAAI+pB,EAAE,GAAGttB,QAAU,EAGhC,SAAS4xC,GAAmB35B,EAAGtT,EAAQpB,GACrC,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,IACnC,OAAO+pB,GAAKrV,EAAE45B,GAAKvkB,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG/C,SAAS8xC,GAA0B75B,EAAGtT,EAAQpB,GAC5C,IAAI+pB,EAAI0iB,GAAShxC,KAAK2F,EAAOzC,MAAMqB,IACnC,OAAO+pB,GAAKrV,EAAEnG,GAAKwb,EAAE,GAAI/pB,EAAI+pB,EAAE,GAAGttB,SAAW,EAG/C,SAAS+xC,GAAiB95B,EAAGjC,GAC3B,OAAOm6B,GAAIl4B,EAAEg1B,UAAWj3B,EAAG,GAG7B,SAASg8B,GAAa/5B,EAAGjC,GACvB,OAAOm6B,GAAIl4B,EAAE+1B,WAAYh4B,EAAG,GAG9B,SAASi8B,GAAah6B,EAAGjC,GACvB,OAAOm6B,GAAIl4B,EAAE+1B,WAAa,IAAM,GAAIh4B,EAAG,GAGzC,SAASk8B,GAAgBj6B,EAAGjC,GAC1B,OAAOm6B,GAAI,EAAIgC,GAAQ3jC,MAAM4jC,GAASn6B,GAAIA,GAAIjC,EAAG,GAGnD,SAASq8B,GAAmBp6B,EAAGjC,GAC7B,OAAOm6B,GAAIl4B,EAAE41B,kBAAmB73B,EAAG,GAGrC,SAASs8B,GAAmBr6B,EAAGjC,GAC7B,OAAOq8B,GAAmBp6B,EAAGjC,GAAK,MAGpC,SAASu8B,GAAkBt6B,EAAGjC,GAC5B,OAAOm6B,GAAIl4B,EAAEy0B,WAAa,EAAG12B,EAAG,GAGlC,SAASw8B,GAAcv6B,EAAGjC,GACxB,OAAOm6B,GAAIl4B,EAAE81B,aAAc/3B,EAAG,GAGhC,SAASy8B,GAAcx6B,EAAGjC,GACxB,OAAOm6B,GAAIl4B,EAAE61B,aAAc93B,EAAG,GAGhC,SAAS08B,GAA0Bz6B,GACjC,IAAI01B,EAAM11B,EAAEi1B,SACZ,OAAe,IAARS,EAAY,EAAIA,EAGzB,SAASgF,GAAuB16B,EAAGjC,GACjC,OAAOm6B,GAAIyC,GAAWpkC,MAAM4jC,GAASn6B,GAAK,EAAGA,GAAIjC,EAAG,GAGtD,SAAS68B,GAAK56B,GACZ,IAAI01B,EAAM11B,EAAEi1B,SACZ,OAAQS,GAAO,GAAa,IAARA,EAAamF,GAAa76B,GAAK66B,GAAa/hB,KAAK9Y,GAGvE,SAAS86B,GAAoB96B,EAAGjC,GAE9B,OADAiC,EAAI46B,GAAK56B,GACFk4B,GAAI2C,GAAatkC,MAAM4jC,GAASn6B,GAAIA,IAA+B,IAAzBm6B,GAASn6B,GAAGi1B,UAAiBl3B,EAAG,GAGnF,SAASg9B,GAA0B/6B,GACjC,OAAOA,EAAEi1B,SAGX,SAAS+F,GAAuBh7B,EAAGjC,GACjC,OAAOm6B,GAAI+C,GAAW1kC,MAAM4jC,GAASn6B,GAAK,EAAGA,GAAIjC,EAAG,GAGtD,SAASm9B,GAAWl7B,EAAGjC,GACrB,OAAOm6B,GAAIl4B,EAAEs0B,cAAgB,IAAKv2B,EAAG,GAGvC,SAASo9B,GAAcn7B,EAAGjC,GAExB,OAAOm6B,IADPl4B,EAAI46B,GAAK56B,IACIs0B,cAAgB,IAAKv2B,EAAG,GAGvC,SAASq9B,GAAep7B,EAAGjC,GACzB,OAAOm6B,GAAIl4B,EAAEs0B,cAAgB,IAAOv2B,EAAG,GAGzC,SAASs9B,GAAkBr7B,EAAGjC,GAC5B,IAAI23B,EAAM11B,EAAEi1B,SAEZ,OAAOiD,IADPl4B,EAAK01B,GAAO,GAAa,IAARA,EAAamF,GAAa76B,GAAK66B,GAAa/hB,KAAK9Y,IACrDs0B,cAAgB,IAAOv2B,EAAG,GAGzC,SAASu9B,GAAWt7B,GAClB,IAAI0yB,EAAI1yB,EAAEk1B,oBACV,OAAQxC,EAAI,EAAI,KAAOA,IAAM,EAAG,MAC1BwF,GAAIxF,EAAI,GAAK,EAAG,IAAK,GACrBwF,GAAIxF,EAAI,GAAI,IAAK,GAGzB,SAAS6I,GAAoBv7B,EAAGjC,GAC9B,OAAOm6B,GAAIl4B,EAAEs2B,aAAcv4B,EAAG,GAGhC,SAASy9B,GAAgBx7B,EAAGjC,GAC1B,OAAOm6B,GAAIl4B,EAAEy7B,cAAe19B,EAAG,GAGjC,SAAS29B,GAAgB17B,EAAGjC,GAC1B,OAAOm6B,GAAIl4B,EAAEy7B,cAAgB,IAAM,GAAI19B,EAAG,GAG5C,SAAS49B,GAAmB37B,EAAGjC,GAC7B,OAAOm6B,GAAI,EAAIlB,GAAOzgC,MAAM0gC,GAAQj3B,GAAIA,GAAIjC,EAAG,GAGjD,SAAS69B,GAAsB57B,EAAGjC,GAChC,OAAOm6B,GAAIl4B,EAAE67B,qBAAsB99B,EAAG,GAGxC,SAAS+9B,GAAsB97B,EAAGjC,GAChC,OAAO69B,GAAsB57B,EAAGjC,GAAK,MAGvC,SAASg+B,GAAqB/7B,EAAGjC,GAC/B,OAAOm6B,GAAIl4B,EAAEg8B,cAAgB,EAAGj+B,EAAG,GAGrC,SAASk+B,GAAiBj8B,EAAGjC,GAC3B,OAAOm6B,GAAIl4B,EAAEk8B,gBAAiBn+B,EAAG,GAGnC,SAASo+B,GAAiBn8B,EAAGjC,GAC3B,OAAOm6B,GAAIl4B,EAAEk2B,gBAAiBn4B,EAAG,GAGnC,SAASq+B,GAA6Bp8B,GACpC,IAAIq8B,EAAMr8B,EAAEu2B,YACZ,OAAe,IAAR8F,EAAY,EAAIA,EAGzB,SAASC,GAA0Bt8B,EAAGjC,GACpC,OAAOm6B,GAAIzB,GAAUlgC,MAAM0gC,GAAQj3B,GAAK,EAAGA,GAAIjC,EAAG,GAGpD,SAASw+B,GAAQv8B,GACf,IAAI01B,EAAM11B,EAAEu2B,YACZ,OAAQb,GAAO,GAAa,IAARA,EAAamB,GAAY72B,GAAK62B,GAAY/d,KAAK9Y,GAGrE,SAASw8B,GAAuBx8B,EAAGjC,GAEjC,OADAiC,EAAIu8B,GAAQv8B,GACLk4B,GAAIrB,GAAYtgC,MAAM0gC,GAAQj3B,GAAIA,IAAiC,IAA3Bi3B,GAAQj3B,GAAGu2B,aAAoBx4B,EAAG,GAGnF,SAAS0+B,GAA6Bz8B,GACpC,OAAOA,EAAEu2B,YAGX,SAASmG,GAA0B18B,EAAGjC,GACpC,OAAOm6B,GAAIxB,GAAUngC,MAAM0gC,GAAQj3B,GAAK,EAAGA,GAAIjC,EAAG,GAGpD,SAAS4+B,GAAc38B,EAAGjC,GACxB,OAAOm6B,GAAIl4B,EAAEo3B,iBAAmB,IAAKr5B,EAAG,GAG1C,SAAS6+B,GAAiB58B,EAAGjC,GAE3B,OAAOm6B,IADPl4B,EAAIu8B,GAAQv8B,IACCo3B,iBAAmB,IAAKr5B,EAAG,GAG1C,SAAS8+B,GAAkB78B,EAAGjC,GAC5B,OAAOm6B,GAAIl4B,EAAEo3B,iBAAmB,IAAOr5B,EAAG,GAG5C,SAAS++B,GAAqB98B,EAAGjC,GAC/B,IAAI23B,EAAM11B,EAAEu2B,YAEZ,OAAO2B,IADPl4B,EAAK01B,GAAO,GAAa,IAARA,EAAamB,GAAY72B,GAAK62B,GAAY/d,KAAK9Y,IACnDo3B,iBAAmB,IAAOr5B,EAAG,GAG5C,SAASg/B,KACP,MAAO,QAGT,SAASC,KACP,MAAO,IAGT,SAASC,GAAoBj9B,GAC3B,OAAQA,EAGV,SAASk9B,GAA2Bl9B,GAClC,OAAOnZ,KAAK2wB,OAAOxX,EAAI,MCtqBV,SAAuB2e,GACpCwQ,GDea,SAAsBA,GACnC,IAAIgO,EAAkBhO,EAAOiO,SACzBC,EAAclO,EAAOrC,KACrBwQ,EAAcnO,EAAOoO,KACrBC,EAAiBrO,EAAOsO,QACxBC,EAAkBvO,EAAOwO,KACzBC,EAAuBzO,EAAO0O,UAC9BC,EAAgB3O,EAAO4O,OACvBC,EAAqB7O,EAAO8O,YAE5BC,EAAW9F,GAASoF,GACpBW,EAAe7F,GAAakF,GAC5BY,EAAYhG,GAASsF,GACrBW,EAAgB/F,GAAaoF,GAC7BY,EAAiBlG,GAASwF,GAC1BW,EAAqBjG,GAAasF,GAClCY,EAAUpG,GAAS0F,GACnBW,EAAcnG,GAAawF,GAC3BY,EAAetG,GAAS4F,GACxBW,EAAmBrG,GAAa0F,GAEhCY,EAAU,CACZ,EAkQF,SAA4B5+B,GAC1B,OAAO49B,EAAqB59B,EAAEi1B,WAlQ9B,EAqQF,SAAuBj1B,GACrB,OAAO09B,EAAgB19B,EAAEi1B,WArQzB,EAwQF,SAA0Bj1B,GACxB,OAAOg+B,EAAmBh+B,EAAEy0B,aAxQ5B,EA2QF,SAAqBz0B,GACnB,OAAO89B,EAAc99B,EAAEy0B,aA3QvB,EAAK,KACL,EAAKqF,GACL,EAAKA,GACL,EAAKO,GACL,EAAKc,GACL,EAAKE,GACL,EAAKtB,GACL,EAAKC,GACL,EAAKC,GACL,EAAKG,GACL,EAAKE,GACL,EAAKC,GACL,EAkQF,SAAsBv6B,GACpB,OAAOw9B,IAAiBx9B,EAAE+1B,YAAc,MAlQxC,EAqQF,SAAuB/1B,GACrB,OAAO,KAAOA,EAAEy0B,WAAa,IArQ7B,EAAKwI,GACL,EAAKC,GACL,EAAK1C,GACL,EAAKC,GACL,EAAKC,GACL,EAAKI,GACL,EAAKC,GACL,EAAKC,GACL,EAAK,KACL,EAAK,KACL,EAAKE,GACL,EAAKE,GACL,EAAKE,GACL,IAAK0B,IAGH6B,EAAa,CACf,EAuPF,SAA+B7+B,GAC7B,OAAO49B,EAAqB59B,EAAEu2B,cAvP9B,EA0PF,SAA0Bv2B,GACxB,OAAO09B,EAAgB19B,EAAEu2B,cA1PzB,EA6PF,SAA6Bv2B,GAC3B,OAAOg+B,EAAmBh+B,EAAEg8B,gBA7P5B,EAgQF,SAAwBh8B,GACtB,OAAO89B,EAAc99B,EAAEg8B,gBAhQvB,EAAK,KACL,EAAKT,GACL,EAAKA,GACL,EAAKO,GACL,EAAKc,GACL,EAAKE,GACL,EAAKtB,GACL,EAAKE,GACL,EAAKC,GACL,EAAKC,GACL,EAAKG,GACL,EAAKE,GACL,EAuPF,SAAyBj8B,GACvB,OAAOw9B,IAAiBx9B,EAAEy7B,eAAiB,MAvP3C,EA0PF,SAA0Bz7B,GACxB,OAAO,KAAOA,EAAEg8B,cAAgB,IA1PhC,EAAKiB,GACL,EAAKC,GACL,EAAKf,GACL,EAAKC,GACL,EAAKE,GACL,EAAKE,GACL,EAAKC,GACL,EAAKC,GACL,EAAK,KACL,EAAK,KACL,EAAKC,GACL,EAAKE,GACL,EAAKE,GACL,IAAKC,IAGH8B,EAAS,CACX,EA4JF,SAA2B9+B,EAAGtT,EAAQpB,GACpC,IAAI+pB,EAAIipB,EAAev3C,KAAK2F,EAAOzC,MAAMqB,IACzC,OAAO+pB,GAAKrV,EAAEzG,EAAIglC,EAAmBlpB,EAAE,GAAGhO,eAAgB/b,EAAI+pB,EAAE,GAAGttB,SAAW,GA7J9E,EAgKF,SAAsBiY,EAAGtT,EAAQpB,GAC/B,IAAI+pB,EAAI+oB,EAAUr3C,KAAK2F,EAAOzC,MAAMqB,IACpC,OAAO+pB,GAAKrV,EAAEzG,EAAI8kC,EAAchpB,EAAE,GAAGhO,eAAgB/b,EAAI+pB,EAAE,GAAGttB,SAAW,GAjKzE,EAoKF,SAAyBiY,EAAGtT,EAAQpB,GAClC,IAAI+pB,EAAIqpB,EAAa33C,KAAK2F,EAAOzC,MAAMqB,IACvC,OAAO+pB,GAAKrV,EAAEopB,EAAIuV,EAAiBtpB,EAAE,GAAGhO,eAAgB/b,EAAI+pB,EAAE,GAAGttB,SAAW,GArK5E,EAwKF,SAAoBiY,EAAGtT,EAAQpB,GAC7B,IAAI+pB,EAAImpB,EAAQz3C,KAAK2F,EAAOzC,MAAMqB,IAClC,OAAO+pB,GAAKrV,EAAEopB,EAAIqV,EAAYppB,EAAE,GAAGhO,eAAgB/b,EAAI+pB,EAAE,GAAGttB,SAAW,GAzKvE,EA4KF,SAA6BiY,EAAGtT,EAAQpB,GACtC,OAAOyzC,EAAe/+B,EAAGm9B,EAAiBzwC,EAAQpB,IA5KlD,EAAK6tC,GACL,EAAKA,GACL,EAAKM,GACL,EAAKX,GACL,EAAKD,GACL,EAAKQ,GACL,EAAKA,GACL,EAAKD,GACL,EAAKI,GACL,EAAKN,GACL,EAAKI,GACL,EAuIF,SAAqBt5B,EAAGtT,EAAQpB,GAC9B,IAAI+pB,EAAI6oB,EAASn3C,KAAK2F,EAAOzC,MAAMqB,IACnC,OAAO+pB,GAAKrV,EAAEjC,EAAIogC,EAAa9oB,EAAE,GAAGhO,eAAgB/b,EAAI+pB,EAAE,GAAGttB,SAAW,GAxIxE,EAAKkxC,GACL,EAAKU,GACL,EAAKE,GACL,EAAKN,GACL,EAAKf,GACL,EAAKC,GACL,EAAKC,GACL,EAAKH,GACL,EAAKK,GACL,EA0JF,SAAyB54B,EAAGtT,EAAQpB,GAClC,OAAOyzC,EAAe/+B,EAAGq9B,EAAa3wC,EAAQpB,IA1J9C,EA6JF,SAAyB0U,EAAGtT,EAAQpB,GAClC,OAAOyzC,EAAe/+B,EAAGs9B,EAAa5wC,EAAQpB,IA7J9C,EAAKwtC,GACL,EAAKD,GACL,EAAKE,GACL,IAAKW,IAWP,SAASlJ,EAAU/B,EAAWmQ,GAC5B,OAAO,SAAS9R,GACd,IAIIlzB,EACAs+B,EACA/O,EANAz8B,EAAS,GACTpB,GAAK,EACLoiC,EAAI,EACJrY,EAAIoZ,EAAU1mC,OAOlB,IAFM+kC,aAAgBZ,OAAOY,EAAO,IAAIZ,MAAMY,MAErCxhC,EAAI+pB,GACqB,KAA5BoZ,EAAUyC,WAAW5lC,KACvBoB,EAAO2H,KAAKo6B,EAAUxkC,MAAMyjC,EAAGpiC,IACgB,OAA1C4sC,EAAMJ,GAAKl+B,EAAI60B,EAAUuQ,SAAS1zC,KAAcsO,EAAI60B,EAAUuQ,SAAS1zC,GACvE4sC,EAAY,MAANt+B,EAAY,IAAM,KACzBuvB,EAASyV,EAAQhlC,MAAIA,EAAIuvB,EAAO2D,EAAMoL,IAC1CxrC,EAAO2H,KAAKuF,GACZ8zB,EAAIpiC,EAAI,GAKZ,OADAoB,EAAO2H,KAAKo6B,EAAUxkC,MAAMyjC,EAAGpiC,IACxBoB,EAAO4a,KAAK,KAIvB,SAAS23B,EAASxQ,EAAWuK,GAC3B,OAAO,SAAStsC,GACd,IAEIwyC,EAAMxJ,EAFN11B,EAAI23B,GAAQ,UAAMryC,EAAW,GAGjC,GAFQy5C,EAAe/+B,EAAGyuB,EAAW/hC,GAAU,GAAI,IAE1CA,EAAO3E,OAAQ,OAAO,KAG/B,GAAI,MAAOiY,EAAG,OAAO,IAAIksB,KAAKlsB,EAAE45B,GAChC,GAAI,MAAO55B,EAAG,OAAO,IAAIksB,KAAW,IAANlsB,EAAEnG,GAAY,MAAOmG,EAAIA,EAAEw3B,EAAI,IAY7D,GATIwB,KAAO,MAAOh5B,KAAIA,EAAEg5B,EAAI,GAGxB,MAAOh5B,IAAGA,EAAEs3B,EAAIt3B,EAAEs3B,EAAI,GAAW,GAANt3B,EAAEjC,QAGrBzY,IAAR0a,EAAEopB,IAAiBppB,EAAEopB,EAAI,MAAOppB,EAAIA,EAAE2sB,EAAI,GAG1C,MAAO3sB,EAAG,CACZ,GAAIA,EAAE24B,EAAI,GAAK34B,EAAE24B,EAAI,GAAI,OAAO,KAC1B,MAAO34B,IAAIA,EAAEzG,EAAI,GACnB,MAAOyG,GAC2B01B,GAApCwJ,EAAOzH,GAAQE,GAAQ33B,EAAEzO,EAAG,EAAG,KAAgBglC,YAC/C2I,EAAOxJ,EAAM,GAAa,IAARA,EAAYgB,GAAU5d,KAAKomB,GAAQxI,GAAUwI,GAC/DA,EAAOlI,GAAO1kB,OAAO4sB,EAAkB,GAAXl/B,EAAE24B,EAAI,IAClC34B,EAAEzO,EAAI2tC,EAAK9H,iBACXp3B,EAAEopB,EAAI8V,EAAKlD,cACXh8B,EAAEA,EAAIk/B,EAAK5I,cAAgBt2B,EAAEzG,EAAI,GAAK,IAEAm8B,GAAtCwJ,EAAO7H,GAAUM,GAAQ33B,EAAEzO,EAAG,EAAG,KAAgB0jC,SACjDiK,EAAOxJ,EAAM,GAAa,IAARA,EAAYuF,GAAWniB,KAAKomB,GAAQjE,GAAWiE,GACjEA,EAAOhF,GAAQ5nB,OAAO4sB,EAAkB,GAAXl/B,EAAE24B,EAAI,IACnC34B,EAAEzO,EAAI2tC,EAAK5K,cACXt0B,EAAEopB,EAAI8V,EAAKzK,WACXz0B,EAAEA,EAAIk/B,EAAKlK,WAAah1B,EAAEzG,EAAI,GAAK,QAE5B,MAAOyG,GAAK,MAAOA,KACtB,MAAOA,IAAIA,EAAEzG,EAAI,MAAOyG,EAAIA,EAAEquB,EAAI,EAAI,MAAOruB,EAAI,EAAI,GAC3D01B,EAAM,MAAO11B,EAAIy3B,GAAQE,GAAQ33B,EAAEzO,EAAG,EAAG,IAAIglC,YAAcc,GAAUM,GAAQ33B,EAAEzO,EAAG,EAAG,IAAI0jC,SACzFj1B,EAAEopB,EAAI,EACNppB,EAAEA,EAAI,MAAOA,GAAKA,EAAEzG,EAAI,GAAK,EAAU,EAANyG,EAAEta,GAASgwC,EAAM,GAAK,EAAI11B,EAAEzG,EAAU,EAANyG,EAAEva,GAASiwC,EAAM,GAAK,GAKzF,MAAI,MAAO11B,GACTA,EAAEs3B,GAAKt3B,EAAEg5B,EAAI,IAAM,EACnBh5B,EAAEu3B,GAAKv3B,EAAEg5B,EAAI,IACNvB,GAAQz3B,IAIVq3B,GAAUr3B,IAIrB,SAAS++B,EAAe/+B,EAAGyuB,EAAW/hC,EAAQghC,GAO5C,IANA,IAGI9zB,EACAulC,EAJA7zC,EAAI,EACJ+pB,EAAIoZ,EAAU1mC,OACdqhC,EAAI18B,EAAO3E,OAIRuD,EAAI+pB,GAAG,CACZ,GAAIqY,GAAKtE,EAAG,OAAQ,EAEpB,GAAU,MADVxvB,EAAI60B,EAAUyC,WAAW5lC,OAIvB,GAFAsO,EAAI60B,EAAUuQ,OAAO1zC,OACrB6zC,EAAQL,EAAOllC,KAAKk+B,GAAOrJ,EAAUuQ,OAAO1zC,KAAOsO,MACnC8zB,EAAIyR,EAAMn/B,EAAGtT,EAAQghC,IAAM,EAAI,OAAQ,OAClD,GAAI9zB,GAAKlN,EAAOwkC,WAAWxD,KAChC,OAAQ,EAIZ,OAAOA,EAwFT,OAzMAkR,EAAQttC,EAAIk/B,EAAU6M,EAAauB,GACnCA,EAAQQ,EAAI5O,EAAU8M,EAAasB,GACnCA,EAAQhlC,EAAI42B,EAAU2M,EAAiByB,GACvCC,EAAWvtC,EAAIk/B,EAAU6M,EAAawB,GACtCA,EAAWO,EAAI5O,EAAU8M,EAAauB,GACtCA,EAAWjlC,EAAI42B,EAAU2M,EAAiB0B,GAoMnC,CACL1V,OAAQ,SAASsF,GACf,IAAIpT,EAAImV,EAAU/B,GAAa,GAAImQ,GAEnC,OADAvjB,EAAEzvB,SAAW,WAAa,OAAO6iC,GAC1BpT,GAET8jB,MAAO,SAAS1Q,GACd,IAAI1wB,EAAIkhC,EAASxQ,GAAa,IAAI,GAElC,OADA1wB,EAAEnS,SAAW,WAAa,OAAO6iC,GAC1B1wB,GAET85B,UAAW,SAASpJ,GAClB,IAAIpT,EAAImV,EAAU/B,GAAa,GAAIoQ,GAEnC,OADAxjB,EAAEzvB,SAAW,WAAa,OAAO6iC,GAC1BpT,GAETgkB,SAAU,SAAS5Q,GACjB,IAAI1wB,EAAIkhC,EAASxQ,GAAa,IAAI,GAElC,OADA1wB,EAAEnS,SAAW,WAAa,OAAO6iC,GAC1B1wB,IC1WFozB,CAAaxS,GACtBiZ,GAAazI,GAAOhG,OACRgG,GAAOgQ,MACnBtH,GAAY1I,GAAO0I,UACR1I,GAAOkQ,SAhBpBC,CAAc,CACZlC,SAAU,SACVtQ,KAAM,aACNyQ,KAAM,eACNE,QAAS,CAAC,KAAM,MAChBE,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YACzEE,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDE,OAAQ,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACvHE,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,SCR7F,IAAIvJ,GAAiB,IACjBC,GAAiBD,IACjBE,GAAeD,KACfE,GAAcD,MAEd2K,GAAgB1K,OAChB2K,GAAe3K,QAEnB,SAAS/H,GAAKtiC,GACZ,OAAO,IAAI0hC,KAAK1hC,GAGlB,SAASsC,GAAOtC,GACd,OAAOA,aAAa0hC,MAAQ1hC,GAAK,IAAI0hC,MAAM1hC,GAGtC,SAASi1C,GAASvL,EAAMK,EAAO2K,EAAMxJ,EAAKC,EAAMK,EAAQC,EAAQE,EAAahN,GAClF,IAAIvL,EAAQ0Q,GAAWjoC,GAAUA,IAC7B8nC,EAASvQ,EAAMuQ,OACfvR,EAASgB,EAAMhB,OAEf8iB,EAAoBvW,EAAO,OAC3BwW,EAAexW,EAAO,OACtByW,EAAezW,EAAO,SACtB0W,EAAa1W,EAAO,SACpB2W,EAAY3W,EAAO,SACnB4W,EAAa5W,EAAO,SACpB6W,EAAc7W,EAAO,MACrB+R,EAAa/R,EAAO,MAEpB8W,EAAgB,CAClB,CAAChK,EAAS,EAAQvB,IAClB,CAACuB,EAAS,EAAI,KACd,CAACA,EAAQ,GAAI,MACb,CAACA,EAAQ,GAAI,KACb,CAACD,EAAS,EAAQrB,IAClB,CAACqB,EAAS,EAAI,KACd,CAACA,EAAQ,GAAI,KACb,CAACA,EAAQ,GAAI,MACb,CAAGL,EAAO,EAAQf,IAClB,CAAGe,EAAO,EAAI,OACd,CAAGA,EAAO,EAAI,OACd,CAAGA,EAAM,GAAI,OACb,CAAID,EAAM,EAAQb,IAClB,CAAIa,EAAM,EAAI,QACd,CAAGwJ,EAAO,EAzCKrK,QA0Cf,CAAEN,EAAQ,EAAQgL,IAClB,CAAEhL,EAAQ,EAAI,QACd,CAAGL,EAAO,EAAQsL,KAGpB,SAAShO,EAAW1E,GAClB,OAAQmJ,EAAOnJ,GAAQA,EAAO4S,EACxB1J,EAAOlJ,GAAQA,EAAO6S,EACtBhK,EAAK7I,GAAQA,EAAO8S,EACpBlK,EAAI5I,GAAQA,EAAO+S,EACnBtL,EAAMzH,GAAQA,EAAQoS,EAAKpS,GAAQA,EAAOgT,EAAYC,EACtD7L,EAAKpH,GAAQA,EAAOkT,EACpB9E,GAAYpO,GAGpB,SAASoT,EAAaxO,EAAU3rB,EAAOD,EAAMoR,GAM3C,GALgB,MAAZwa,IAAkBA,EAAW,IAKT,kBAAbA,EAAuB,CAChC,IAAIxsC,EAAS2B,KAAKwR,IAAIyN,EAAOC,GAAS2rB,EAClCpmC,EAAIqwB,IAAS,SAASrwB,GAAK,OAAOA,EAAE,MAAOiY,MAAM08B,EAAe/6C,GAChEoG,IAAM20C,EAAcl4C,QACtBmvB,EAAOmF,GAAStW,EAAQy5B,GAAc15B,EAAO05B,GAAc9N,GAC3DA,EAAWwC,GACF5oC,GAET4rB,GADA5rB,EAAI20C,EAAc/6C,EAAS+6C,EAAc30C,EAAI,GAAG,GAAK20C,EAAc30C,GAAG,GAAKpG,EAASoG,EAAI,EAAIA,IACnF,GACTomC,EAAWpmC,EAAE,KAEb4rB,EAAOrwB,KAAK2R,IAAI6jB,GAAStW,EAAOD,EAAM4rB,GAAW,GACjDA,EAAWyE,GAIf,OAAe,MAARjf,EAAewa,EAAWA,EAAS3oB,MAAMmO,GAsClD,OAnCA0G,EAAMuQ,OAAS,SAAS58B,GACtB,OAAO,IAAI26B,KAAKiC,EAAO58B,KAGzBqsB,EAAMhB,OAAS,SAAS/hB,GACtB,OAAO/Q,UAAU/B,OAAS60B,EAAO7oB,GAAIvO,KAAKqV,EAAG/N,KAAW8vB,IAAS7oB,IAAI+4B,KAGvElP,EAAM5B,MAAQ,SAAS0V,EAAUxa,GAC/B,IAII1sB,EAJAwV,EAAI4c,IACJgX,EAAK5zB,EAAE,GACPuqB,EAAKvqB,EAAEA,EAAEjY,OAAS,GAClByJ,EAAI+4B,EAAKqJ,EAKb,OAHIpiC,IAAGhH,EAAIopC,EAAIA,EAAKrJ,EAAIA,EAAK//B,GAE7BA,GADAA,EAAI01C,EAAaxO,EAAUkC,EAAIrJ,EAAIrT,IAC3B1sB,EAAE4rB,MAAMwd,EAAIrJ,EAAK,GAAK,GACvB/4B,EAAIhH,EAAEisB,UAAYjsB,GAG3BozB,EAAM4T,WAAa,SAASj7B,EAAOk4B,GACjC,OAAoB,MAAbA,EAAoB+C,EAAarI,EAAOsF,IAGjD7Q,EAAM6T,KAAO,SAASC,EAAUxa,GAC9B,IAAIlX,EAAI4c,IACR,OAAQ8U,EAAWwO,EAAaxO,EAAU1xB,EAAE,GAAIA,EAAEA,EAAEjY,OAAS,GAAImvB,IAC3D0F,EAAO6U,GAAKzxB,EAAG0xB,IACf9T,GAGRA,EAAMC,KAAO,WACX,OAAOA,GAAKD,EAAO6hB,GAASvL,EAAMK,EAAO2K,EAAMxJ,EAAKC,EAAMK,EAAQC,EAAQE,EAAahN,KAGlFvL,EAGM,kBACb,OAAOjB,GAAUtlB,MAAMooC,GAAStF,GAAUgG,GAAWC,GAAUlG,GAASmG,GAAUC,GAAYC,GAAYC,GAAiB5I,IAAYhb,OAAO,CAAC,IAAIsP,KAAK,IAAM,EAAG,GAAI,IAAIA,KAAK,IAAM,EAAG,KAAMpiC,YCnI3L22C,GAAW/O,IAAS,SAAS5E,GAC/BA,EAAKuJ,WAAW,GAChBvJ,EAAK0J,YAAY,EAAG,EAAG,EAAG,MACzB,SAAS1J,EAAM5V,GAChB4V,EAAKoK,YAAYpK,EAAKkP,cAAgB9kB,MACrC,SAASnR,EAAO2E,GACjB,OAAOA,EAAIsxB,cAAgBj2B,EAAMi2B,cAAkE,IAAjDtxB,EAAI0sB,iBAAmBrxB,EAAMqxB,qBAC9E,SAAStK,GACV,OAAOA,EAAKkP,iBAGCyE,MCVXC,IDWmBD,GAASrqB,MCXlBsb,IAAS,SAAS5E,GAC9BA,EAAK6T,cAAc,EAAG,EAAG,MACxB,SAAS7T,EAAM5V,GAChB4V,EAAKX,SAASW,EAAO5V,EAAO0d,OAC3B,SAAS7uB,EAAO2E,GACjB,OAAQA,EAAM3E,GAAS6uB,MACtB,SAAS9H,GACV,OAAOA,EAAK2O,kBAGCiF,MCVXE,IDWkBF,GAAQtqB,MCXdsb,IAAS,SAAS5E,GAChCA,EAAK+T,cAAc,EAAG,MACrB,SAAS/T,EAAM5V,GAChB4V,EAAKX,SAASW,EAAO5V,EAAOyd,OAC3B,SAAS5uB,EAAO2E,GACjB,OAAQA,EAAM3E,GAAS4uB,MACtB,SAAS7H,GACV,OAAOA,EAAKoP,oBAGC0E,MCRA,IDSSA,GAAUxqB,MCTnB,WACb,OAAOuG,GAAUtlB,MAAMooC,GAASxI,GAASwJ,GAAUK,GAAS9J,GAAQ0J,GAASE,GAAWG,GAAWC,GAAgBnJ,IAAWjb,OAAO,CAACsP,KAAKwL,IAAI,IAAM,EAAG,GAAIxL,KAAKwL,IAAI,IAAM,EAAG,KAAM5tC,aCCtL,SAAS+jC,KACP,IAEI+F,EACArJ,EACA0W,EACApwC,EAGA8sB,EARA3jB,EAAK,EACLE,EAAK,EAKL4iB,EAAez2B,GACfunC,GAAQ,EAGZ,SAAShQ,EAAMtsB,GACb,OAAO04B,MAAM14B,GAAKA,GAAKqsB,EAAUb,EAAqB,IAARmkB,EAAY,IAAO3vC,GAAKT,EAAUS,GAAKsiC,GAAMqN,EAAKrT,EAAQ/mC,KAAK2R,IAAI,EAAG3R,KAAK4R,IAAI,EAAGnH,IAAMA,IAmBxI,OAhBAssB,EAAMhB,OAAS,SAAS/hB,GACtB,OAAO/Q,UAAU/B,QAAU6rC,EAAK/iC,EAAUmJ,GAAMa,EAAE,IAAK0vB,EAAK15B,EAAUqJ,GAAMW,EAAE,IAAKomC,EAAMrN,IAAOrJ,EAAK,EAAI,GAAKA,EAAKqJ,GAAKhW,GAAS,CAAC5jB,EAAIE,IAGxI0jB,EAAMgQ,MAAQ,SAAS/yB,GACrB,OAAO/Q,UAAU/B,QAAU6lC,IAAU/yB,EAAG+iB,GAASgQ,GAGnDhQ,EAAMd,aAAe,SAASjiB,GAC5B,OAAO/Q,UAAU/B,QAAU+0B,EAAejiB,EAAG+iB,GAASd,GAGxDc,EAAMD,QAAU,SAAS9iB,GACvB,OAAO/Q,UAAU/B,QAAU41B,EAAU9iB,EAAG+iB,GAASD,GAG5C,SAASnzB,GAEd,OADAqG,EAAYrG,EAAGopC,EAAKppC,EAAEwP,GAAKuwB,EAAK//B,EAAE0P,GAAK+mC,EAAMrN,IAAOrJ,EAAK,EAAI,GAAKA,EAAKqJ,GAChEhW,GAIJ,SAASC,GAAKx5B,EAAQa,GAC3B,OAAOA,EACF03B,OAAOv4B,EAAOu4B,UACdE,aAAaz4B,EAAOy4B,gBACpB8Q,MAAMvpC,EAAOupC,SACbjQ,QAAQt5B,EAAOs5B,WAGP,SAASujB,KACtB,IAAItjB,EAAQ2T,GAAU1D,KAAcxnC,KAMpC,OAJAu3B,EAAMC,KAAO,WACX,OAAOA,GAAKD,EAAOsjB,OAGdrkB,GAAiBxlB,MAAMumB,EAAO9zB,WAGhC,SAASq3C,KACd,IAAIvjB,EAAQqU,GAAQpE,MAAejR,OAAO,CAAC,EAAG,KAM9C,OAJAgB,EAAMC,KAAO,WACX,OAAOA,GAAKD,EAAOujB,MAAiB/O,KAAKxU,EAAMwU,SAG1CvV,GAAiBxlB,MAAMumB,EAAO9zB,WAGhC,SAASs3C,KACd,IAAIxjB,EAAQmV,GAAUlF,MAMtB,OAJAjQ,EAAMC,KAAO,WACX,OAAOA,GAAKD,EAAOwjB,MAAoB9hC,SAASse,EAAMte,aAGjDud,GAAiBxlB,MAAMumB,EAAO9zB,WAGhC,SAASu3C,KACd,IAAIzjB,EAAQwV,GAAOvF,MAMnB,OAJAjQ,EAAMC,KAAO,WACX,OAAOA,GAAKD,EAAOyjB,MAAiBhS,SAASzR,EAAMyR,aAG9CxS,GAAiBxlB,MAAMumB,EAAO9zB,WAGhC,SAASw3C,KACd,OAAOD,GAAchqC,MAAM,KAAMvN,WAAWulC,SAAS,ICzFxC,SAASkS,KACtB,IAAI3kB,EAAS,GACTE,EAAez2B,GAEnB,SAASu3B,EAAMtsB,GACb,IAAK04B,MAAM14B,GAAKA,GAAI,OAAOwrB,GAAc6Q,GAAO/Q,EAAQtrB,GAAK,IAAMsrB,EAAO70B,OAAS,IAmBrF,OAhBA61B,EAAMhB,OAAS,SAAS/hB,GACtB,IAAK/Q,UAAU/B,OAAQ,OAAO60B,EAAO3yB,QACrC2yB,EAAS,GACT,IAAK,IAAyB5c,EAArB1U,EAAI,EAAG+pB,EAAIxa,EAAE9S,OAAWuD,EAAI+pB,IAAK/pB,EAAsB,OAAf0U,EAAInF,EAAEvP,KAAkB0+B,MAAMhqB,GAAKA,IAAI4c,EAAOvoB,KAAK2L,GAEpG,OADA4c,EAAO6W,KAAKnY,IACLsC,GAGTA,EAAMd,aAAe,SAASjiB,GAC5B,OAAO/Q,UAAU/B,QAAU+0B,EAAejiB,EAAG+iB,GAASd,GAGxDc,EAAMC,KAAO,WACX,OAAO0jB,GAAmBzkB,GAAcF,OAAOA,IAG1CC,GAAiBxlB,MAAMumB,EAAO9zB,WCpBvC,SAAS+jC,KACP,IAGI+F,EACArJ,EACAK,EACAqW,EACAO,EAEA3wC,EAEA8sB,EAXA3jB,EAAK,EACLE,EAAK,GACLE,EAAK,EAML0iB,EAAez2B,GAEfunC,GAAQ,EAGZ,SAAShQ,EAAMtsB,GACb,OAAO04B,MAAM14B,GAAKA,GAAKqsB,GAAWrsB,EAAI,KAAQA,GAAKT,EAAUS,IAAMi5B,IAAOj5B,EAAIi5B,EAAK0W,EAAMO,GAAM1kB,EAAa8Q,EAAQ/mC,KAAK2R,IAAI,EAAG3R,KAAK4R,IAAI,EAAGnH,IAAMA,IAmBpJ,OAhBAssB,EAAMhB,OAAS,SAAS/hB,GACtB,OAAO/Q,UAAU/B,QAAU6rC,EAAK/iC,EAAUmJ,GAAMa,EAAE,IAAK0vB,EAAK15B,EAAUqJ,GAAMW,EAAE,IAAK+vB,EAAK/5B,EAAUuJ,GAAMS,EAAE,IAAKomC,EAAMrN,IAAOrJ,EAAK,EAAI,IAAOA,EAAKqJ,GAAK4N,EAAMjX,IAAOK,EAAK,EAAI,IAAOA,EAAKL,GAAK3M,GAAS,CAAC5jB,EAAIE,EAAIE,IAGjNwjB,EAAMgQ,MAAQ,SAAS/yB,GACrB,OAAO/Q,UAAU/B,QAAU6lC,IAAU/yB,EAAG+iB,GAASgQ,GAGnDhQ,EAAMd,aAAe,SAASjiB,GAC5B,OAAO/Q,UAAU/B,QAAU+0B,EAAejiB,EAAG+iB,GAASd,GAGxDc,EAAMD,QAAU,SAAS9iB,GACvB,OAAO/Q,UAAU/B,QAAU41B,EAAU9iB,EAAG+iB,GAASD,GAG5C,SAASnzB,GAEd,OADAqG,EAAYrG,EAAGopC,EAAKppC,EAAEwP,GAAKuwB,EAAK//B,EAAE0P,GAAK0wB,EAAKpgC,EAAE4P,GAAK6mC,EAAMrN,IAAOrJ,EAAK,EAAI,IAAOA,EAAKqJ,GAAK4N,EAAMjX,IAAOK,EAAK,EAAI,IAAOA,EAAKL,GACrH3M,GAII,SAAS6jB,KACtB,IAAI7jB,EAAQ2T,GAAU1D,KAAcxnC,KAMpC,OAJAu3B,EAAMC,KAAO,WACX,OAAOA,GAAKD,EAAO6jB,OAGd5kB,GAAiBxlB,MAAMumB,EAAO9zB,WAGhC,SAAS43C,KACd,IAAI9jB,EAAQqU,GAAQpE,MAAejR,OAAO,CAAC,GAAK,EAAG,KAMnD,OAJAgB,EAAMC,KAAO,WACX,OAAOA,GAAKD,EAAO8jB,MAAgBtP,KAAKxU,EAAMwU,SAGzCvV,GAAiBxlB,MAAMumB,EAAO9zB,WAGhC,SAAS63C,KACd,IAAI/jB,EAAQmV,GAAUlF,MAMtB,OAJAjQ,EAAMC,KAAO,WACX,OAAOA,GAAKD,EAAO+jB,MAAmBriC,SAASse,EAAMte,aAGhDud,GAAiBxlB,MAAMumB,EAAO9zB,WAGhC,SAAS83C,KACd,IAAIhkB,EAAQwV,GAAOvF,MAMnB,OAJAjQ,EAAMC,KAAO,WACX,OAAOA,GAAKD,EAAOgkB,MAAgBvS,SAASzR,EAAMyR,aAG7CxS,GAAiBxlB,MAAMumB,EAAO9zB,WAGhC,SAAS+3C,KACd,OAAOD,GAAavqC,MAAM,KAAMvN,WAAWulC,SAAS,ICzFvC,gBAASyS,EAAQC,GAC9B,IAAO1sB,EAAIysB,EAAO/5C,QAAU,EAC5B,IAAK,IAAW2lC,EAAGsU,EAA2B3sB,EAArC/pB,EAAI,EAAU22C,EAAKH,EAAOC,EAAM,IAAQ3Y,EAAI6Y,EAAGl6C,OAAQuD,EAAI+pB,IAAK/pB,EAEvE,IADA02C,EAAKC,EAAIA,EAAKH,EAAOC,EAAMz2C,IACtBoiC,EAAI,EAAGA,EAAItE,IAAKsE,EACnBuU,EAAGvU,GAAG,IAAMuU,EAAGvU,GAAG,GAAK1D,MAAMgY,EAAGtU,GAAG,IAAMsU,EAAGtU,GAAG,GAAKsU,EAAGtU,GAAG,ICLrDzjC,GAAQnE,MAAM6F,UAAU1B,MCApB,YAAS63C,GAEtB,IADA,IAAIzsB,EAAIysB,EAAO/5C,OAAQ8V,EAAI,IAAI/X,MAAMuvB,KAC5BA,GAAK,GAAGxX,EAAEwX,GAAKA,EACxB,OAAOxX,GCET,SAASqkC,GAAWliC,EAAG1b,GACrB,OAAO0b,EAAE1b,GCNX,SAAS6Y,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASyd,GAAelc,EAAKC,GAAK,OAMlC,SAAyBD,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,OAAOA,EANtB8Z,CAAgB9Z,IAIzD,SAA+BA,EAAKC,GAAK,KAAMrE,OAAOyE,YAAYhF,OAAO2E,KAAgD,uBAAxC3E,OAAOiF,UAAUC,SAASpG,KAAK6F,GAAkC,OAAU,IAAImc,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKriB,EAAW,IAAM,IAAK,IAAiCsiB,EAA7BpR,EAAKnL,EAAIpE,OAAOyE,cAAmB+b,GAAMG,EAAKpR,EAAGqR,QAAQC,QAAoBN,EAAKnT,KAAKuT,EAAG3hB,QAAYqF,GAAKkc,EAAKzf,SAAWuD,GAA3Dmc,GAAK,IAAoE,MAAOM,GAAOL,GAAK,EAAMC,EAAKI,EAAtL,QAAuM,IAAWN,GAAsB,MAAhBjR,EAAE,QAAoBA,EAAE,SAAzC,QAAmE,GAAIkR,EAAI,MAAMC,GAAQ,OAAOH,EAJpcQ,CAAsB3c,EAAKC,IAE5F,WAA8B,MAAM,IAAIS,UAAU,wDAFgDqZ,GAQlG,SAASnZ,GAAyB5H,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAAkEC,EAAKgH,EAAnEpG,EAEzF,SAAuCb,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAFxMkH,CAA8B/H,EAAQ6H,GAAuB,GAAIxF,OAAO2F,sBAAuB,CAAE,IAAIC,EAAmB5F,OAAO2F,sBAAsBhI,GAAS,IAAKiH,EAAI,EAAGA,EAAIgB,EAAiBvE,OAAQuD,IAAOhH,EAAMgI,EAAiBhB,GAAQY,EAASlD,QAAQ1E,IAAQ,GAAkBoC,OAAOiF,UAAUY,qBAAqB/G,KAAKnB,EAAQC,KAAgBY,EAAOZ,GAAOD,EAAOC,IAAU,OAAOY,EAIne,SAASkY,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAUrK,IAAIokC,GAEJ,SAAU9yB,GAGR,SAAS8yB,IAGP,OAFA/kC,GAAgB9F,KAAM6qC,GAEf1kC,GAA2BnG,KAAMsG,GAAgBukC,GAAU9qC,MAAMC,KAAMxN,YA5BlF,IAAsBwT,EAAaqB,EAAYC,EA2I7C,OAnIF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAejXE,CAAUmjC,EAAU9yB,GAvBA/R,EA+BP6kC,GA/BoBxjC,EA+BV,CAAC,CACtBra,IAAK,kBACL2B,MAAO,WACL,IAAIgZ,EAAc3H,KAAK5C,MACnB4d,EAASrT,EAAYqT,OACrBpR,EAASjC,EAAYiC,OACrBhQ,EAAQ+N,EAAY/N,MACpBihB,EAAUlT,EAAYkT,QACtBhd,EAAO8J,EAAY9J,KACnBitC,EAAqBnjC,EAAYmjC,mBACjCC,EAAQpjC,EAAYojC,MACpBC,EAAQrjC,EAAYqjC,MACpBvqC,EAAS9L,GAAyBgT,EAAa,CAAC,SAAU,SAAU,QAAS,UAAW,OAAQ,qBAAsB,QAAS,UAE/HvK,EAAQH,EAA0BwD,GACtC,OAAO5C,EAAKpB,KAAI,SAAUjJ,EAAOQ,GAC/B,IAUIi3C,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMhlB,EAAOilB,EAAWC,EAAWC,EAAWC,EAAUC,EAVtFC,EAAsBd,EAAmBt3C,EAAOqnB,GAChD7gB,EAAI4xC,EAAoB5xC,EACxBC,EAAI2xC,EAAoB3xC,EACxBtL,EAAQi9C,EAAoBj9C,MAC5Bk9C,EAAWD,EAAoBC,SAEnC,IAAKA,EACH,OAAO,KAKT,GAAIr9C,MAAMD,QAAQs9C,GAAW,CAC3B,IAAIC,EAAY77B,GAAe47B,EAAU,GAEzCH,EAAWI,EAAU,GACrBH,EAAYG,EAAU,QAEtBJ,EAAWC,EAAYE,EAyDzB,MAtDe,aAAXjiC,GACF0c,EAAQykB,EAAMzkB,MAEd4kB,EAAOjxC,EAAI+gB,EACXmwB,EAAO7kB,GAFP2kB,EAAOt8C,GAEa+8C,GACpBN,EAAOF,EAAOtxC,EAGd2xC,EAAY,CACV3oC,GAHFyoC,EAAO/kB,EAAM2kB,EAAOU,GAIlB9oC,GAAIuoC,EACJtoC,GAAIuoC,EACJtoC,GALFuoC,EAAOJ,EAAOtxC,GAOd4xC,EAAY,CACV5oC,GAAIuoC,EACJtoC,GAAIqoC,EACJpoC,GAAIuoC,EACJtoC,GAAImoC,GAENO,EAAY,CACV7oC,GAAIuoC,EACJtoC,GAAIuoC,EACJtoC,GAAIqoC,EACJpoC,GAAIuoC,IAEc,eAAX1hC,IACT0c,EAAQ0kB,EAAM1kB,MAGd6kB,GAFAF,EAAOjxC,EAAIghB,GAEGphB,EACdyxC,EAAOJ,EAAOrxC,EACdwxC,EAAO9kB,GAHP4kB,EAAOv8C,GAGa+8C,GAEpBH,EAAY,CACV3oC,GAAIuoC,EACJtoC,GAHFyoC,EAAOhlB,EAAM4kB,EAAOS,GAIlB7oC,GAAIuoC,EACJtoC,GAAIuoC,GAENE,EAAY,CACV5oC,GAAIqoC,EACJpoC,GAAIuoC,EACJtoC,GAAImoC,EACJloC,GAAIuoC,GAENG,EAAY,CACV7oC,GAAIuoC,EACJtoC,GAAIuoC,EACJtoC,GAAIuoC,EACJtoC,GAAIqoC,IAKN1uC,IAAMyB,cAAcyf,GAAO/d,GAAS,CAClCQ,UAAW,oBACXrT,IAAK,OAAOmF,OAAO6B,IAClBoJ,GAAQV,IAAMyB,cAAc,OAAQotC,GAAY7uC,IAAMyB,cAAc,OAAQqtC,GAAY9uC,IAAMyB,cAAc,OAAQstC,SAI5H,CACDz+C,IAAK,SACL2B,MAAO,WACL,OAAO+N,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAW,sBACVL,KAAK+rC,wBAvIgE9lC,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA2I3KujC,EArHT,CAsHElyB,aAEFkyB,GAAS5qC,UAAY,CACnB4a,QAAS1lB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,OAAQL,IAAUmF,OAAO4F,WACnFrC,KAAM1I,IAAUtE,MAChBk6C,MAAO51C,IAAUjF,OACjB86C,MAAO71C,IAAUjF,OACjB0Z,OAAQzU,IAAUC,OAClB01C,mBAAoB31C,IAAUmF,KAC9B9B,OAAQrD,IAAUC,OAClB2D,YAAa5D,IAAUK,OACvBoE,MAAOzE,IAAUK,OACjBwlB,OAAQ7lB,IAAUK,QAEpBq1C,GAAS7hC,aAAe,CACtBxQ,OAAQ,QACRO,YAAa,IACba,MAAO,EACPohB,OAAQ,EACRpR,OAAQ,cAEKihC,UCzKf,SAAS/2C,GAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,CAAE,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIzF,MAAMuF,EAAItD,QAASuD,EAAID,EAAItD,OAAQuD,IAAOC,EAAKD,GAAKD,EAAIC,GAAM,OAAOC,GANnHC,CAAmBH,IAI7D,SAA0BI,GAAQ,GAAIxE,OAAOyE,YAAYhF,OAAO+E,IAAkD,uBAAzC/E,OAAOiF,UAAUC,SAASpG,KAAKiG,GAAgC,OAAO3F,MAAM+F,KAAKJ,GAJrFK,CAAiBT,IAEtF,WAAgC,MAAM,IAAIU,UAAU,mDAF0CC,GAQ9F,SAAS0Q,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EASpM,IAAIm5C,GAAoB,SAA2Bn5C,EAAKgoB,EAAStoB,GACtE,OAAIkM,IAAO5L,IAAQ4L,IAAOoc,GACjBtoB,EAGLT,EAAW+oB,GACNpnB,IAAKZ,EAAKgoB,EAAStoB,GAGxB4K,IAAY0d,GACPA,EAAQhoB,GAGVN,GAWE05C,GAAuB,SAA8BpuC,EAAM7Q,EAAKH,EAAMq/C,GAC/E,IAAIC,EAAcC,KAASvuC,GAAM,SAAUrK,GACzC,OAAOw4C,GAAkBx4C,EAAOxG,MAGlC,GAAa,WAATH,EAAmB,CACrB,IAAIy4B,EAAS6mB,EAAYv1C,QAAO,SAAUpD,GACxC,OAAO7B,EAAS6B,IAAUd,WAAWc,EAAO,OAE9C,OAAO8xB,EAAO70B,OAAS,CAAC47C,KAAK/mB,GAASgnB,KAAKhnB,IAAW,CAAC/E,KAAWA,KAMpE,OAHmB2rB,EAAYC,EAAYv1C,QAAO,SAAUpD,GAC1D,OAAQiL,IAAOjL,MACZ24C,GACe1vC,KAAI,SAAUjJ,GAChC,OAAO1B,EAAW0B,GAASA,EAAQ,OAqE5B+4C,GAA4B,SAAmC9gC,GACxE,IAIIza,EAJAoL,EAAcqP,EAAK5e,KAAKuP,YACxBowC,EAAc/gC,EAAKrO,MACnB5E,EAASg0C,EAAYh0C,OACrBhC,EAAOg2C,EAAYh2C,KAGvB,OAAQ4F,GACN,IAAK,OACHpL,EAASwH,EACT,MAEF,IAAK,OACL,IAAK,QACHxH,EAASwH,GAAqB,SAAXA,EAAoBA,EAAShC,EAChD,MAEF,QACExF,EAASwF,EAIb,OAAOxF,GAEEy7C,GAAiB,SAAwB/tC,GAClD,IAUIguC,EAVApwC,EAAWoC,EAAKpC,SAChBqwC,EAAyBjuC,EAAKiuC,uBAC9BC,EAAcluC,EAAKkuC,YACnBC,EAAgBnuC,EAAKmuC,cACrBC,EAAa9vC,EAAgBV,EAAU4O,IAE3C,OAAK4hC,GAOHJ,EADEI,EAAW1vC,OAAS0vC,EAAW1vC,MAAMqM,QAC1BqjC,EAAW1vC,OAAS0vC,EAAW1vC,MAAMqM,QACvB,aAAlBojC,GACKF,GAA0B,IAAIz9B,QAAO,SAAUle,EAAQ6N,GACnE,IAAI4M,EAAO5M,EAAM4M,KACbrO,EAAQyB,EAAMzB,MACdS,EAAOT,EAAM2vC,SAAW3vC,EAAMS,MAAQ,GAC1C,OAAO7M,EAAOmB,OAAO0L,EAAKpB,KAAI,SAAUjJ,GACtC,MAAO,CACL3G,KAAMigD,EAAW1vC,MAAMyN,UAAYY,EAAKrO,MAAM4vC,WAC9Cr+C,MAAO6E,EAAM1G,KACb+I,MAAOrC,EAAMgD,KACbiT,QAASjW,SAGZ,KAEWm5C,GAA0B,IAAIlwC,KAAI,SAAUkmB,GACxD,IAAIlX,EAAOkX,EAAMlX,KACbwhC,EAAexhC,EAAKrO,MACpByd,EAAUoyB,EAAapyB,QACvB/tB,EAAOmgD,EAAangD,KACpBkgD,EAAaC,EAAaD,WAE9B,MAAO,CACLxjC,SAFSyjC,EAAaxgD,KAGtBouB,QAASA,EACThuB,KAAMigD,EAAW1vC,MAAMyN,UAAYmiC,GAAc,SACjDn3C,MAAO02C,GAA0B9gC,GACjC9c,MAAO7B,GAAQ+tB,EACfpR,QAASgC,EAAKrO,UAKb2L,GAAc,GAAI+jC,EAAW1vC,MAAO,GAAI8N,GAAOgiC,cAAcJ,EAAYF,GAAc,CAC5FnjC,QAASijC,EACTjhC,KAAMqhC,KA1CC,MAqOAK,GAAuB,SAA8BtvC,EAAM4N,EAAMoP,EAASuyB,GACnF,IAAI9wC,EAAWmP,EAAKrO,MAAMd,SACtB+wC,EAAYhxC,EAAcC,EAAUuuC,IAAUj0C,QAAO,SAAU02C,GACjE,IAAIn3C,EAAYm3C,EAAclwC,MAAMjH,UACpC,SAAOsI,IAAOtI,KAAcsI,IAAO2uC,KAAmBA,EAAS17C,QAAQyE,IAAc,KAGvF,GAAIk3C,GAAaA,EAAU58C,OAAQ,CACjC,IAAIqC,EAAOu6C,EAAU5wC,KAAI,SAAU6wC,GACjC,OAAOA,EAAclwC,MAAMyd,WAE7B,OAAOhd,EAAKqR,QAAO,SAAUle,EAAQwC,GACnC,IAAI+5C,EAAavB,GAAkBx4C,EAAOqnB,EAAS,GAC/C2yB,EAAYhxC,IAAS+wC,GAAc,CAAClB,KAAKkB,GAAajB,KAAKiB,IAAe,CAACA,EAAYA,GACvFE,EAAc36C,EAAKoc,QAAO,SAAUw+B,EAAcjrC,GACpD,IAAIkrC,EAAa3B,GAAkBx4C,EAAOiP,EAAG,GACzCmrC,EAAaJ,EAAU,GAAKj+C,KAAKwR,IAAIvE,IAASmxC,GAAcA,EAAW,GAAKA,GAC5EE,EAAaL,EAAU,GAAKj+C,KAAKwR,IAAIvE,IAASmxC,GAAcA,EAAW,GAAKA,GAChF,MAAO,CAACp+C,KAAK4R,IAAIysC,EAAYF,EAAa,IAAKn+C,KAAK2R,IAAI2sC,EAAYH,EAAa,OAChF,CAACntB,KAAWA,MACf,MAAO,CAAChxB,KAAK4R,IAAIssC,EAAY,GAAIz8C,EAAO,IAAKzB,KAAK2R,IAAIusC,EAAY,GAAIz8C,EAAO,OAC5E,CAACuvB,KAAWA,MAGjB,OAAO,MA0BEutB,GAA+B,SAAsCjwC,EAAMyb,EAAOzsB,EAAMq/C,GACjG,IAAI6B,EAAUz0B,EAAM7c,KAAI,SAAUgP,GAChC,IAAIoP,EAAUpP,EAAKrO,MAAMyd,QAEzB,MAAa,WAAThuB,GAAqBguB,GAChBsyB,GAAqBtvC,EAAM4N,EAAMoP,IAGnCoxB,GAAqBpuC,EAAMgd,EAAShuB,EAAMq/C,MAGnD,GAAa,WAATr/C,EAEF,OAAOkhD,EAAQ7+B,QAAO,SAAUle,EAAQwC,GACtC,MAAO,CAACjE,KAAK4R,IAAInQ,EAAO,GAAIwC,EAAM,IAAKjE,KAAK2R,IAAIlQ,EAAO,GAAIwC,EAAM,OAChE,CAAC+sB,KAAWA,MAGjB,IAAI3xB,EAAM,GAEV,OAAOm/C,EAAQ7+B,QAAO,SAAUle,EAAQwC,GACtC,IAAK,IAAIQ,EAAI,EAAGkqB,EAAM1qB,EAAM/C,OAAQuD,EAAIkqB,EAAKlqB,IACtCpF,EAAI4E,EAAMQ,MACbpF,EAAI4E,EAAMQ,KAAM,EAChBhD,EAAO+L,KAAKvJ,EAAMQ,KAItB,OAAOhD,IACN,KAEMg9C,GAAmB,SAA0BpkC,EAAQwjC,GAC9D,MAAkB,eAAXxjC,GAAwC,UAAbwjC,GAAmC,aAAXxjC,GAAsC,UAAbwjC,GAAmC,YAAXxjC,GAAqC,cAAbwjC,GAAuC,WAAXxjC,GAAoC,eAAbwjC,GAU7Ka,GAAuB,SAA8BvpB,EAAOvjB,EAAKD,GAC1E,IAAIgtC,EAAQC,EACRhrB,EAASuB,EAAMjoB,KAAI,SAAUjJ,GAS/B,OARIA,EAAMynB,aAAe9Z,IACvB+sC,GAAS,GAGP16C,EAAMynB,aAAe/Z,IACvBitC,GAAS,GAGJ36C,EAAMynB,cAWf,OARKizB,GACH/qB,EAAOpmB,KAAKoE,GAGTgtC,GACHhrB,EAAOpmB,KAAKmE,GAGPiiB,GAUEirB,GAAiB,SAAwBC,EAAMC,EAAQC,GAChE,IAAKF,EAAM,OAAO,KAClB,IAAI/nB,EAAQ+nB,EAAK/nB,MACbkoB,EAAkBH,EAAKG,gBACvB3hD,EAAOwhD,EAAKxhD,KACZiyB,EAAQuvB,EAAKvvB,MACb9D,GAAUszB,GAAUC,IAAmB,aAAT1hD,GAAuBy5B,EAAMG,UAAYH,EAAMG,YAAc,EAAI,EAGnG,OAFAzL,EAA2B,cAAlBqzB,EAAKjB,SAA2D,EAAhC77C,EAASutB,EAAM,GAAKA,EAAM,IAAU9D,EAASA,EAElFszB,IAAWD,EAAK3pB,OAAS2pB,EAAKI,YACxBJ,EAAK3pB,OAAS2pB,EAAKI,WAAWhyC,KAAI,SAAUjJ,GAClD,IAAIk7C,EAAeF,EAAkBA,EAAgB98C,QAAQ8B,GAASA,EACtE,MAAO,CACLynB,WAAYqL,EAAMooB,GAAgB1zB,EAClCrsB,MAAO6E,EACPwnB,OAAQA,MAKVqzB,EAAKM,cAAgBN,EAAKO,kBACrBP,EAAKO,kBAAkBnyC,KAAI,SAAUjJ,EAAOzC,GACjD,MAAO,CACLkqB,WAAYqL,EAAM9yB,GAClB7E,MAAO6E,EACPzC,MAAOA,EACPiqB,OAAQA,MAKVsL,EAAM5B,QAAU6pB,EACXjoB,EAAM5B,MAAM2pB,EAAK1sB,WAAWllB,KAAI,SAAUjJ,GAC/C,MAAO,CACLynB,WAAYqL,EAAM9yB,GAASwnB,EAC3BrsB,MAAO6E,EACPwnB,OAAQA,MAMPsL,EAAMhB,SAAS7oB,KAAI,SAAUjJ,EAAOzC,GACzC,MAAO,CACLkqB,WAAYqL,EAAM9yB,GAASwnB,EAC3BrsB,MAAO6/C,EAAkBA,EAAgBh7C,GAASA,EAClDzC,MAAOA,EACPiqB,OAAQA,OAYH6zB,GAAuB,SAA8BC,EAAgBC,EAAeC,GAC7F,IAAIC,EAQJ,OANI9xC,IAAY6xC,GACdC,EAAoBD,EACX7xC,IAAY4xC,KACrBE,EAAoBF,GAGlB5xC,IAAY2xC,IAAmBG,EAC1B,SAAUC,EAAMC,EAAMC,EAAMC,GAC7BlyC,IAAY2xC,IACdA,EAAeI,EAAMC,EAAMC,EAAMC,GAG/BlyC,IAAY8xC,IACdA,EAAkBC,EAAMC,EAAMC,EAAMC,IAKnC,MASEC,GAAa,SAAoBjB,EAAMkB,GAChD,IAAIjpB,EAAQ+nB,EAAK/nB,MACbz5B,EAAOwhD,EAAKxhD,KACZ+c,EAASykC,EAAKzkC,OACdwjC,EAAWiB,EAAKjB,SAEpB,GAAc,SAAV9mB,EACF,MAAe,WAAX1c,GAAoC,eAAbwjC,EAClB,CACL9mB,MAAOkpB,KACPC,cAAe,QAIJ,WAAX7lC,GAAoC,cAAbwjC,EAClB,CACL9mB,MAAOkpB,KACPC,cAAe,UAIN,aAAT5iD,GAAuB0iD,IAAcA,EAAU79C,QAAQ,cAAgB,GAAK69C,EAAU79C,QAAQ,cAAgB,GACzG,CACL40B,MAAOkpB,KACPC,cAAe,SAIN,aAAT5iD,EACK,CACLy5B,MAAOkpB,KACPC,cAAe,QAIZ,CACLnpB,MAAOkpB,KACPC,cAAe,UAInB,GAAIh+C,IAAU60B,GAAQ,CACpB,IAAIx5B,EAAO,QAAQqF,OAAOm0B,EAAM3zB,MAAM,EAAG,GAAGmV,eAAe3V,OAAOm0B,EAAM3zB,MAAM,IAC9E,MAAO,CACL2zB,OAAQkpB,EAAS1iD,IAAS0iD,MAC1BC,cAAeD,EAAS1iD,GAAQA,EAAO,SAI3C,OAAOqQ,IAAYmpB,GAAS,CAC1BA,MAAOA,GACL,CACFA,MAAOkpB,KACPC,cAAe,UAGfC,GAAM,KACCC,GAAqB,SAA4BrpB,GAC1D,IAAIhB,EAASgB,EAAMhB,SAEnB,GAAKA,KAAUA,EAAO70B,QAAU,GAAhC,CAIA,IAAIytB,EAAMoH,EAAO70B,OACbquB,EAAQwH,EAAMxH,QACd3d,EAAM5R,KAAK4R,IAAI2d,EAAM,GAAIA,EAAM,IAAM4wB,GACrCxuC,EAAM3R,KAAK2R,IAAI4d,EAAM,GAAIA,EAAM,IAAM4wB,GACrCE,EAAQtpB,EAAMhB,EAAO,IACrBuqB,EAAOvpB,EAAMhB,EAAOpH,EAAM,KAE1B0xB,EAAQzuC,GAAOyuC,EAAQ1uC,GAAO2uC,EAAO1uC,GAAO0uC,EAAO3uC,IACrDolB,EAAMhB,OAAO,CAACA,EAAO,GAAIA,EAAOpH,EAAM,OA0EtC4xB,GAAmB,CACrBxY,KA9BsB,SAAoBkT,GAC1C,IAAIzsB,EAAIysB,EAAO/5C,OAEf,KAAIstB,GAAK,GAIT,IAAK,IAAIqY,EAAI,EAAGtE,EAAI0Y,EAAO,GAAG/5C,OAAQ2lC,EAAItE,IAAKsE,EAI7C,IAHA,IAAI2Z,EAAW,EACXC,EAAW,EAENh8C,EAAI,EAAGA,EAAI+pB,IAAK/pB,EAAG,CAC1B,IAAIrF,EAAQkD,IAAO24C,EAAOx2C,GAAGoiC,GAAG,IAAMoU,EAAOx2C,GAAGoiC,GAAG,GAAKoU,EAAOx2C,GAAGoiC,GAAG,GAGjEznC,GAAS,GACX67C,EAAOx2C,GAAGoiC,GAAG,GAAK2Z,EAClBvF,EAAOx2C,GAAGoiC,GAAG,GAAK2Z,EAAWphD,EAC7BohD,EAAWvF,EAAOx2C,GAAGoiC,GAAG,KAExBoU,EAAOx2C,GAAGoiC,GAAG,GAAK4Z,EAClBxF,EAAOx2C,GAAGoiC,GAAG,GAAK4Z,EAAWrhD,EAC7BqhD,EAAWxF,EAAOx2C,GAAGoiC,GAAG,MAS9B6Z,OC1vBa,SAASzF,EAAQC,GAC9B,IAAO1sB,EAAIysB,EAAO/5C,QAAU,EAA5B,CACA,IAAK,IAAIuD,EAAG+pB,EAAgC9jB,EAA7Bm8B,EAAI,EAAGtE,EAAI0Y,EAAO,GAAG/5C,OAAW2lC,EAAItE,IAAKsE,EAAG,CACzD,IAAKn8B,EAAIjG,EAAI,EAAGA,EAAI+pB,IAAK/pB,EAAGiG,GAAKuwC,EAAOx2C,GAAGoiC,GAAG,IAAM,EACpD,GAAIn8B,EAAG,IAAKjG,EAAI,EAAGA,EAAI+pB,IAAK/pB,EAAGw2C,EAAOx2C,GAAGoiC,GAAG,IAAMn8B,EAEpDi2C,GAAK1F,EAAQC,KDqvBbyF,KAAMC,GACNC,WE5vBa,SAAS5F,EAAQC,GAC9B,IAAO1sB,EAAIysB,EAAO/5C,QAAU,EAA5B,CACA,IAAK,IAAkCstB,EAA9BqY,EAAI,EAAGsU,EAAKF,EAAOC,EAAM,IAAQ3Y,EAAI4Y,EAAGj6C,OAAQ2lC,EAAItE,IAAKsE,EAAG,CACnE,IAAK,IAAIpiC,EAAI,EAAGiG,EAAI,EAAGjG,EAAI+pB,IAAK/pB,EAAGiG,GAAKuwC,EAAOx2C,GAAGoiC,GAAG,IAAM,EAC3DsU,EAAGtU,GAAG,IAAMsU,EAAGtU,GAAG,IAAMn8B,EAAI,EAE9Bi2C,GAAK1F,EAAQC,KFuvBb4F,OG7vBa,SAAS7F,EAAQC,GAC9B,IAAO1sB,EAAIysB,EAAO/5C,QAAU,IAASqhC,GAAK4Y,EAAKF,EAAOC,EAAM,KAAKh6C,QAAU,EAA3E,CACA,IAAK,IAAkBi6C,EAAI5Y,EAAG/T,EAArB9jB,EAAI,EAAGm8B,EAAI,EAAaA,EAAItE,IAAKsE,EAAG,CAC3C,IAAK,IAAIpiC,EAAI,EAAG22C,EAAK,EAAG2F,EAAK,EAAGt8C,EAAI+pB,IAAK/pB,EAAG,CAK1C,IAJA,IAAIu8C,EAAK/F,EAAOC,EAAMz2C,IAClBw8C,EAAOD,EAAGna,GAAG,IAAM,EAEnBqa,GAAMD,GADCD,EAAGna,EAAI,GAAG,IAAM,IACF,EAChB3zB,EAAI,EAAGA,EAAIzO,IAAKyO,EAAG,CAC1B,IAAIiuC,EAAKlG,EAAOC,EAAMhoC,IAGtBguC,IAFWC,EAAGta,GAAG,IAAM,IACZsa,EAAGta,EAAI,GAAG,IAAM,GAG7BuU,GAAM6F,EAAMF,GAAMG,EAAKD,EAEzB9F,EAAGtU,EAAI,GAAG,IAAMsU,EAAGtU,EAAI,GAAG,GAAKn8B,EAC3B0wC,IAAI1wC,GAAKq2C,EAAK3F,GAEpBD,EAAGtU,EAAI,GAAG,IAAMsU,EAAGtU,EAAI,GAAG,GAAKn8B,EAC/Bi2C,GAAK1F,EAAQC,MH2uBJkG,GAAiB,SAAwB9yC,EAAM+yC,EAAYC,GACpE,IAAIC,EAAWF,EAAWn0C,KAAI,SAAUgP,GACtC,OAAOA,EAAKrO,MAAMyd,WAKpB,OF/vBa,WACb,IAAI/nB,EAAOkV,GAAS,IAChByiC,EAAQsG,GACR/1B,EAASg2B,GACTriD,EAAQi8C,GAEZ,SAASqG,EAAMpzC,GACb,IACI7J,EAIAk9C,EALAC,EAAKr+C,EAAKiN,MAAMC,KAAMxN,WAEtBs/B,EAAIj0B,EAAKpN,OACTstB,EAAIozB,EAAG1gD,OACP2gD,EAAK,IAAI5iD,MAAMuvB,GAGnB,IAAK/pB,EAAI,EAAGA,EAAI+pB,IAAK/pB,EAAG,CACtB,IAAK,IAAkDq9C,EAA9CC,EAAKH,EAAGn9C,GAAIu8C,EAAKa,EAAGp9C,GAAK,IAAIxF,MAAMsjC,GAAIsE,EAAI,EAAQA,EAAItE,IAAKsE,EACnEma,EAAGna,GAAKib,EAAM,CAAC,GAAI1iD,EAAMkP,EAAKu4B,GAAIkb,EAAIlb,EAAGv4B,IACzCwzC,EAAIxzC,KAAOA,EAAKu4B,GAElBma,EAAGvjD,IAAMskD,EAGX,IAAKt9C,EAAI,EAAGk9C,EAAKzG,EAAM2G,GAAKp9C,EAAI+pB,IAAK/pB,EACnCo9C,EAAGF,EAAGl9C,IAAIjD,MAAQiD,EAIpB,OADAgnB,EAAOo2B,EAAIF,GACJE,EAmBT,OAhBAH,EAAMn+C,KAAO,SAASyQ,GACpB,OAAO/Q,UAAU/B,QAAUqC,EAAoB,oBAANyQ,EAAmBA,EAAIyE,GAASrV,GAAMzE,KAAKqV,IAAK0tC,GAASn+C,GAGpGm+C,EAAMtiD,MAAQ,SAAS4U,GACrB,OAAO/Q,UAAU/B,QAAU9B,EAAqB,oBAAN4U,EAAmBA,EAAIyE,IAAUzE,GAAI0tC,GAAStiD,GAG1FsiD,EAAMxG,MAAQ,SAASlnC,GACrB,OAAO/Q,UAAU/B,QAAUg6C,EAAa,MAALlnC,EAAYwtC,GAAyB,oBAANxtC,EAAmBA,EAAIyE,GAASrV,GAAMzE,KAAKqV,IAAK0tC,GAASxG,GAG7HwG,EAAMj2B,OAAS,SAASzX,GACtB,OAAO/Q,UAAU/B,QAAUuqB,EAAc,MAALzX,EAAYytC,GAAaztC,EAAG0tC,GAASj2B,GAGpEi2B,EE8sBKM,GAAaz+C,KAAKg+C,GAAUniD,OAAM,SAAU+Z,EAAG1b,GACzD,OAAQg/C,GAAkBtjC,EAAG1b,EAAK,MACjCy9C,MAAM+G,IAAgBx2B,OAAO80B,GAAiBe,GAC1CI,CAAMpzC,IAkFJ4zC,GAAkB,SAAyBnrB,EAAOorB,GAC3D,IAAIjC,EAAgBiC,EAAKjC,cACrB5iD,EAAO6kD,EAAK7kD,KACZ80B,EAAY+vB,EAAK/vB,UACjBgwB,EAAiBD,EAAKC,eACtB7wB,EAAgB4wB,EAAK5wB,cACrB8wB,EAAYnC,GAAiBiC,EAAKprB,MAEtC,GAAkB,SAAdsrB,GAAsC,WAAdA,EAC1B,OAAO,KAGT,GAAIjwB,GAAsB,WAAT90B,GAAqB8kD,IAAyC,SAAtBA,EAAe,IAAuC,SAAtBA,EAAe,IAAgB,CAEtH,IAAIrsB,EAASgB,EAAMhB,SACfusB,EAAanvB,GAAkB4C,EAAQ3D,EAAWb,GAEtD,OADAwF,EAAMhB,OA9B0B,SAAgCZ,EAAO73B,GACzE,MAAa,WAATA,EACK,CAACw/C,KAAK3nB,GAAQ4nB,KAAK5nB,IAGrBA,EAyBQotB,CAAuBD,EAAYhlD,IACzC,CACL4hD,UAAWoD,GAIf,GAAIlwB,GAAsB,WAAT90B,EAAmB,CAClC,IAAIklD,EAAUzrB,EAAMhB,SAIpB,MAAO,CACLmpB,UAHgBrrB,GAAyB2uB,EAASpwB,EAAWb,IAOjE,OAAO,MAEEkxB,GAA0B,SAAiC1uB,GACpE,IAAI+qB,EAAO/qB,EAAM+qB,KACb3pB,EAAQpB,EAAMoB,MACdutB,EAAW3uB,EAAM2uB,SACjBz+C,EAAQ8vB,EAAM9vB,MACdzC,EAAQuyB,EAAMvyB,MACd8pB,EAAUyI,EAAMzI,QAEpB,GAAkB,aAAdwzB,EAAKxhD,KAAqB,CAE5B,IAAKwhD,EAAK6D,yBAA2B7D,EAAKxzB,UAAYpc,IAAOjL,EAAM66C,EAAKxzB,UAAW,CACjF,IAAIs3B,EAAch/C,EAAiBuxB,EAAO,QAASlxB,EAAM66C,EAAKxzB,UAE9D,GAAIs3B,EACF,OAAOA,EAAYl3B,WAAag3B,EAAW,EAI/C,OAAOvtB,EAAM3zB,GAAS2zB,EAAM3zB,GAAOkqB,WAAag3B,EAAW,EAAI,KAGjE,IAAItjD,EAAQq9C,GAAkBx4C,EAAQiL,IAAOoc,GAAqBwzB,EAAKxzB,QAAfA,GACxD,OAAQpc,IAAO9P,GAA6B,KAApB0/C,EAAK/nB,MAAM33B,IAE1ByjD,GAAyB,SAAgC3uB,GAClE,IAAI4qB,EAAO5qB,EAAM4qB,KACb3pB,EAAQjB,EAAMiB,MACd1J,EAASyI,EAAMzI,OACfi3B,EAAWxuB,EAAMwuB,SACjBz+C,EAAQiwB,EAAMjwB,MACdzC,EAAQ0yB,EAAM1yB,MAElB,GAAkB,aAAds9C,EAAKxhD,KACP,OAAO63B,EAAM3zB,GAAS2zB,EAAM3zB,GAAOkqB,WAAaD,EAAS,KAG3D,IAAIrsB,EAAQq9C,GAAkBx4C,EAAO66C,EAAKxzB,QAASwzB,EAAK/oB,OAAOv0B,IAC/D,OAAQ0N,IAAO9P,GAAqD,KAA5C0/C,EAAK/nB,MAAM33B,GAASsjD,EAAW,EAAIj3B,GAoDlDq3B,GAAyB,SAAgCC,EAAaC,EAAYC,GAC3F,OAAOpjD,OAAO0D,KAAKw/C,GAAapjC,QAAO,SAAUle,EAAQyhD,GACvD,IAEIntB,EAFQgtB,EAAYG,GACAC,YACCxjC,QAAO,SAAUC,EAAK3b,GAC7C,IAAI+O,EAAsB/O,EAAMb,MAAM4/C,EAAYC,EAAW,GAVrDtjC,QAAO,SAAUle,EAAQwC,GACnC,MAAO,CAAC64C,KAAK74C,EAAMrB,OAAO,CAACnB,EAAO,KAAK4F,OAAOjF,IAAY26C,KAAK94C,EAAMrB,OAAO,CAACnB,EAAO,KAAK4F,OAAOjF,OAC/F,CAAC4uB,KAAU,MASV,MAAO,CAAChxB,KAAK4R,IAAIgO,EAAI,GAAI5M,EAAE,IAAKhT,KAAK2R,IAAIiO,EAAI,GAAI5M,EAAE,OAClD,CAACge,KAAWA,MACf,MAAO,CAAChxB,KAAK4R,IAAImkB,EAAO,GAAIt0B,EAAO,IAAKzB,KAAK2R,IAAIokB,EAAO,GAAIt0B,EAAO,OAClE,CAACuvB,KAAWA,MAAW9jB,KAAI,SAAUzL,GACtC,OAAOA,IAAWuvB,KAAYvvB,KAAYuvB,IAAW,EAAIvvB,MAGlD2hD,GAAgB,kDAChBC,GAAgB,mDAChBC,GAAuB,SAA8BC,EAAiBC,EAAYC,GAC3F,IAAKx2C,IAASs2C,GACZ,OAAOC,EAGT,IAAIztB,EAAS,GAGb,GAAI3zB,EAASmhD,EAAgB,IAC3BxtB,EAAO,GAAK0tB,EAAoBF,EAAgB,GAAKvjD,KAAK4R,IAAI2xC,EAAgB,GAAIC,EAAW,SACxF,GAAIJ,GAAc30B,KAAK80B,EAAgB,IAAK,CACjD,IAAInkD,GAASgkD,GAAcljD,KAAKqjD,EAAgB,IAAI,GACpDxtB,EAAO,GAAKytB,EAAW,GAAKpkD,OACnBwO,IAAY21C,EAAgB,IACrCxtB,EAAO,GAAKwtB,EAAgB,GAAGC,EAAW,IAE1CztB,EAAO,GAAKytB,EAAW,GAGzB,GAAIphD,EAASmhD,EAAgB,IAC3BxtB,EAAO,GAAK0tB,EAAoBF,EAAgB,GAAKvjD,KAAK2R,IAAI4xC,EAAgB,GAAIC,EAAW,SACxF,GAAIH,GAAc50B,KAAK80B,EAAgB,IAAK,CACjD,IAAIG,GAAUL,GAAcnjD,KAAKqjD,EAAgB,IAAI,GAErDxtB,EAAO,GAAKytB,EAAW,GAAKE,OACnB91C,IAAY21C,EAAgB,IACrCxtB,EAAO,GAAKwtB,EAAgB,GAAGC,EAAW,IAE1CztB,EAAO,GAAKytB,EAAW,GAKzB,OAAOztB,GASE4tB,GAAoB,SAA2B7E,EAAM3pB,GAC9D,GAAI2pB,GAAQA,EAAK/nB,OAAS+nB,EAAK/nB,MAAMG,UACnC,OAAO4nB,EAAK/nB,MAAMG,YAGpB,GAAI4nB,GAAQ3pB,GAASA,EAAMj0B,QAAU,EAAG,CAOtC,IANA,IAAI0iD,EAAe55B,KAAQmL,GAAO,SAAUne,GAC1C,OAAOA,EAAE0U,cAGPg3B,EAAW1xB,IAENvsB,EAAI,EAAGkqB,EAAMi1B,EAAa1iD,OAAQuD,EAAIkqB,EAAKlqB,IAAK,CACvD,IAAIo/C,EAAMD,EAAan/C,GACnBq/C,EAAOF,EAAan/C,EAAI,GAC5Bi+C,EAAW1iD,KAAK4R,KAAKiyC,EAAIn4B,YAAc,IAAMo4B,EAAKp4B,YAAc,GAAIg3B,GAGtE,OAAOA,IAAa1xB,IAAW,EAAI0xB,EAGrC,OAAO,GAUEqB,GAA4B,SAAmCR,EAAiBS,EAAkBC,GAC3G,OAAKV,GAAoBA,EAAgBriD,OAIrC6kB,KAASw9B,EAAiBr/C,IAAK+/C,EAAW,6BACrCD,EAGFT,EAPES,GI7iCX,SAASnuC,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASod,GAAelc,EAAKC,GAAK,OAMlC,SAAyBD,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,OAAOA,EANtB8Z,CAAgB9Z,IAIzD,SAA+BA,EAAKC,GAAK,KAAMrE,OAAOyE,YAAYhF,OAAO2E,KAAgD,uBAAxC3E,OAAOiF,UAAUC,SAASpG,KAAK6F,GAAkC,OAAU,IAAImc,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKriB,EAAW,IAAM,IAAK,IAAiCsiB,EAA7BpR,EAAKnL,EAAIpE,OAAOyE,cAAmB+b,GAAMG,EAAKpR,EAAGqR,QAAQC,QAAoBN,EAAKnT,KAAKuT,EAAG3hB,QAAYqF,GAAKkc,EAAKzf,SAAWuD,GAA3Dmc,GAAK,IAAoE,MAAOM,GAAOL,GAAK,EAAMC,EAAKI,EAAtL,QAAuM,IAAWN,GAAsB,MAAhBjR,EAAE,QAAoBA,EAAE,SAAzC,QAAmE,GAAIkR,EAAI,MAAMC,GAAQ,OAAOH,EAJpcQ,CAAsB3c,EAAKC,IAE5F,WAA8B,MAAM,IAAIS,UAAU,wDAFgDqZ,GAU3F,IAAI5G,GAAS3X,KAAK+R,GAAK,IAInBmyC,GAAiB,SAAwBC,GAClD,OAAuB,IAAhBA,EAAsBnkD,KAAK+R,IAEzBqyC,GAAmB,SAA0BnrC,EAAIC,EAAItO,EAAQ5E,GACtE,MAAO,CACLyE,EAAGwO,EAAKjZ,KAAK0R,KAAKiG,GAAS3R,GAAS4E,EACpCF,EAAGwO,EAAKlZ,KAAK6R,KAAK8F,GAAS3R,GAAS4E,IAG7By5C,GAAe,SAAsBh6C,EAAOC,GACrD,IAAImhB,EAASxoB,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,GAAmBA,UAAU,GAAK,CAC/E2Z,IAAK,EACLF,MAAO,EACPG,OAAQ,EACRJ,KAAM,GAER,OAAOzc,KAAK4R,IAAI5R,KAAKwR,IAAInH,GAASohB,EAAOhP,MAAQ,IAAMgP,EAAO/O,OAAS,IAAK1c,KAAKwR,IAAIlH,GAAUmhB,EAAO7O,KAAO,IAAM6O,EAAO5O,QAAU,KAAO,GAkFlIynC,GAAkB,SAAyBn1C,EAAMG,GAC1D,IAAI7E,EAAI0E,EAAK1E,EACTC,EAAIyE,EAAKzE,EACTuO,EAAK3J,EAAM2J,GACXC,EAAK5J,EAAM4J,GACXtO,EAZ6B,SAA+B8sB,EAAO6sB,GACvE,IAAIlxC,EAAKqkB,EAAMjtB,EACX6I,EAAKokB,EAAMhtB,EACX6I,EAAKgxC,EAAa95C,EAClB+I,EAAK+wC,EAAa75C,EACtB,OAAO1K,KAAK8R,KAAK9R,KAAK8Y,IAAIzF,EAAKE,EAAI,GAAKvT,KAAK8Y,IAAIxF,EAAKE,EAAI,IAO7CgxC,CAAsB,CACjC/5C,EAAGA,EACHC,EAAGA,GACF,CACDD,EAAGwO,EACHvO,EAAGwO,IAGL,GAAItO,GAAU,EACZ,MAAO,CACLA,OAAQA,GAIZ,IAAI8G,GAAOjH,EAAIwO,GAAMrO,EACjBu5C,EAAgBnkD,KAAKoV,KAAK1D,GAM9B,OAJIhH,EAAIwO,IACNirC,EAAgB,EAAInkD,KAAK+R,GAAKoyC,GAGzB,CACLv5C,OAAQA,EACR5E,MAAOk+C,GAAeC,GACtBA,cAAeA,IAefM,GAA4B,SAAmCz+C,EAAOqtB,GACxE,IAAIqxB,EAAarxB,EAAMqxB,WACnBC,EAAWtxB,EAAMsxB,SACjBC,EAAW5kD,KAAK2wB,MAAM+zB,EAAa,KACnCG,EAAS7kD,KAAK2wB,MAAMg0B,EAAW,KAEnC,OAAO3+C,EAAc,IADXhG,KAAK4R,IAAIgzC,EAAUC,IAIpBC,GAAkB,SAAyBhxB,EAAOixB,GAC3D,IAAIt6C,EAAIqpB,EAAMrpB,EACVC,EAAIopB,EAAMppB,EAEVs6C,EAAmBV,GAAgB,CACrC75C,EAAGA,EACHC,EAAGA,GACFq6C,GACCn6C,EAASo6C,EAAiBp6C,OAC1B5E,EAAQg/C,EAAiBh/C,MAEzBi/C,EAAcF,EAAOE,YACrBC,EAAcH,EAAOG,YAEzB,GAAIt6C,EAASq6C,GAAer6C,EAASs6C,EACnC,OAAO,EAGT,GAAe,IAAXt6C,EACF,OAAO,EAGT,IAKIu6C,EALAC,EA3C2B,SAA6BhyB,GAC5D,IAAIsxB,EAAatxB,EAAMsxB,WACnBC,EAAWvxB,EAAMuxB,SACjBC,EAAW5kD,KAAK2wB,MAAM+zB,EAAa,KACnCG,EAAS7kD,KAAK2wB,MAAMg0B,EAAW,KAC/B/yC,EAAM5R,KAAK4R,IAAIgzC,EAAUC,GAC7B,MAAO,CACLH,WAAYA,EAAmB,IAAN9yC,EACzB+yC,SAAUA,EAAiB,IAAN/yC,GAmCIyzC,CAAoBN,GAC3CL,EAAaU,EAAqBV,WAClCC,EAAWS,EAAqBT,SAEhCW,EAAct/C,EAGlB,GAAI0+C,GAAcC,EAAU,CAC1B,KAAOW,EAAcX,GACnBW,GAAe,IAGjB,KAAOA,EAAcZ,GACnBY,GAAe,IAGjBH,EAAUG,GAAeZ,GAAcY,GAAeX,MACjD,CACL,KAAOW,EAAcZ,GACnBY,GAAe,IAGjB,KAAOA,EAAcX,GACnBW,GAAe,IAGjBH,EAAUG,GAAeX,GAAYW,GAAeZ,EAGtD,OAAIS,EACK3rC,GAAc,GAAIurC,EAAQ,CAC/Bn6C,OAAQA,EACR5E,MAAOy+C,GAA0Ba,EAAaP,KAI3C,MCvOT,SAASlvC,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAI9U,SAAS4S,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASgT,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASsT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAYrK,IAMIquC,GAAmB,SAA0Bp2C,GAC/C,IAAI8J,EAAK9J,EAAK8J,GACVC,EAAK/J,EAAK+J,GACVtO,EAASuE,EAAKvE,OACd5E,EAAQmJ,EAAKnJ,MACb+hC,EAAO54B,EAAK44B,KACZyd,EAAar2C,EAAKq2C,WAClBC,EAAet2C,EAAKs2C,aACpBC,EAAmBv2C,EAAKu2C,iBACxBC,EAAeF,GAAgBD,EAAa,GAAK,GAAK56C,EACtDg7C,EAAQ5lD,KAAK6lD,KAAKJ,EAAeE,GAAgBhuC,GACjDmuC,EAAcJ,EAAmB1/C,EAAQA,EAAQ+hC,EAAO6d,EAKxDG,EAAoBL,EAAmB1/C,EAAQ+hC,EAAO6d,EAAQ5/C,EAElE,MAAO,CACLggD,OAPW5B,GAAiBnrC,EAAIC,EAAIysC,EAAcG,GAQlDG,eANmB7B,GAAiBnrC,EAAIC,EAAItO,EAAQk7C,GAOpDI,aAJiB9B,GAAiBnrC,EAAIC,EAAIysC,EAAe3lD,KAAK0R,IAAIk0C,EAAQjuC,IAASouC,GAKnFH,MAAOA,IAIPO,GAAgB,SAAuB72C,GACzC,IAAI2J,EAAK3J,EAAM2J,GACXC,EAAK5J,EAAM4J,GACX+rC,EAAc31C,EAAM21C,YACpBC,EAAc51C,EAAM41C,YACpBR,EAAap1C,EAAMo1C,WAEnB1+C,EAvCc,SAAuB0+C,EAAYC,GAGrD,OAFW3iD,EAAS2iD,EAAWD,GACd1kD,KAAK4R,IAAI5R,KAAKwR,IAAImzC,EAAWD,GAAa,SAqC/C0B,CAAc1B,EADXp1C,EAAMq1C,UAGjB0B,EAAe3B,EAAa1+C,EAC5BsgD,EAAkBlC,GAAiBnrC,EAAIC,EAAIgsC,EAAaR,GACxD6B,EAAgBnC,GAAiBnrC,EAAIC,EAAIgsC,EAAamB,GACtDpyC,EAAO,KAAKrR,OAAO0jD,EAAgB77C,EAAG,KAAK7H,OAAO0jD,EAAgB57C,EAAG,YAAY9H,OAAOsiD,EAAa,KAAKtiD,OAAOsiD,EAAa,aAAatiD,SAAS5C,KAAKwR,IAAIxL,GAAS,KAAM,KAAKpD,SAAS8hD,EAAa2B,GAAe,WAAWzjD,OAAO2jD,EAAc97C,EAAG,KAAK7H,OAAO2jD,EAAc77C,EAAG,QAE1R,GAAIu6C,EAAc,EAAG,CACnB,IAAIuB,EAAkBpC,GAAiBnrC,EAAIC,EAAI+rC,EAAaP,GACxD+B,EAAgBrC,GAAiBnrC,EAAIC,EAAI+rC,EAAaoB,GAC1DpyC,GAAQ,KAAKrR,OAAO6jD,EAAch8C,EAAG,KAAK7H,OAAO6jD,EAAc/7C,EAAG,oBAAoB9H,OAAOqiD,EAAa,KAAKriD,OAAOqiD,EAAa,qBAAqBriD,SAAS5C,KAAKwR,IAAIxL,GAAS,KAAM,KAAKpD,SAAS8hD,GAAc2B,GAAe,mBAAmBzjD,OAAO4jD,EAAgB/7C,EAAG,KAAK7H,OAAO4jD,EAAgB97C,EAAG,WAEhTuJ,GAAQ,KAAKrR,OAAOqW,EAAI,KAAKrW,OAAOsW,EAAI,MAG1C,OAAOjF,GAuGLyyC,GAEJ,SAAU7uC,GAGR,SAAS6uC,IAGP,OAFAnwC,GAAgB9F,KAAMi2C,GAEf9vC,GAA2BnG,KAAMsG,GAAgB2vC,GAAQl2C,MAAMC,KAAMxN,YA3LhF,IAAsBwT,EAAaqB,EAAYC,EAoP7C,OA5OF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GA8KjXE,CAAUuuC,EAAQ7uC,GAtLEpB,EA8LPiwC,GA9LoB5uC,EA8LZ,CAAC,CACpBra,IAAK,SACL2B,MAAO,WACL,IAAIgZ,EAAc3H,KAAK5C,MACnBoL,EAAKb,EAAYa,GACjBC,EAAKd,EAAYc,GACjB+rC,EAAc7sC,EAAY6sC,YAC1BC,EAAc9sC,EAAY8sC,YAC1BO,EAAertC,EAAYqtC,aAC3BkB,EAAoBvuC,EAAYuuC,kBAChCjB,EAAmBttC,EAAYstC,iBAC/BhB,EAAatsC,EAAYssC,WACzBC,EAAWvsC,EAAYusC,SACvB7zC,EAAYsH,EAAYtH,UAE5B,GAAIo0C,EAAcD,GAAeP,IAAeC,EAC9C,OAAO,KAGT,IAGI1wC,EAHA7C,EAAaC,IAAW,kBAAmBP,GAC3C81C,EAAc1B,EAAcD,EAC5B4B,EAAKhkD,EAAgB4iD,EAAcmB,EAAa,GAAG,GA0BvD,OAtBE3yC,EADE4yC,EAAK,GAAK7mD,KAAKwR,IAAIkzC,EAAaC,GAAY,IAvI5B,SAA6BvxB,GACrD,IAAIna,EAAKma,EAAMna,GACXC,EAAKka,EAAMla,GACX+rC,EAAc7xB,EAAM6xB,YACpBC,EAAc9xB,EAAM8xB,YACpBO,EAAeryB,EAAMqyB,aACrBkB,EAAoBvzB,EAAMuzB,kBAC1BjB,EAAmBtyB,EAAMsyB,iBACzBhB,EAAatxB,EAAMsxB,WACnBC,EAAWvxB,EAAMuxB,SACjB5c,EAAO/lC,EAAS2iD,EAAWD,GAE3BoC,EAAoBvB,GAAiB,CACvCtsC,GAAIA,EACJC,GAAIA,EACJtO,OAAQs6C,EACRl/C,MAAO0+C,EACP3c,KAAMA,EACN0d,aAAcA,EACdC,iBAAkBA,IAEhBqB,EAAOD,EAAkBb,eACzBe,EAAOF,EAAkBZ,aACzBe,EAAMH,EAAkBlB,MAExBsB,EAAqB3B,GAAiB,CACxCtsC,GAAIA,EACJC,GAAIA,EACJtO,OAAQs6C,EACRl/C,MAAO2+C,EACP5c,MAAOA,EACP0d,aAAcA,EACdC,iBAAkBA,IAEhByB,EAAOD,EAAmBjB,eAC1BmB,EAAOF,EAAmBhB,aAC1BmB,EAAMH,EAAmBtB,MAEzB0B,EAAgBtnD,KAAKwR,IAAIkzC,EAAaC,GAAYsC,EAAMI,EAE5D,GAAIC,EAAgB,EAClB,OAAIX,EACK,KAAK/jD,OAAOokD,EAAKv8C,EAAG,KAAK7H,OAAOokD,EAAKt8C,EAAG,eAAe9H,OAAO6iD,EAAc,KAAK7iD,OAAO6iD,EAAc,WAAW7iD,OAAsB,EAAf6iD,EAAkB,iBAAiB7iD,OAAO6iD,EAAc,KAAK7iD,OAAO6iD,EAAc,WAAW7iD,OAAuB,GAAf6iD,EAAkB,cAGjPU,GAAc,CACnBltC,GAAIA,EACJC,GAAIA,EACJ+rC,YAAaA,EACbC,YAAaA,EACbR,WAAYA,EACZC,SAAUA,IAId,IAAI1wC,EAAO,KAAKrR,OAAOokD,EAAKv8C,EAAG,KAAK7H,OAAOokD,EAAKt8C,EAAG,WAAW9H,OAAO6iD,EAAc,KAAK7iD,OAAO6iD,EAAc,SAAS7iD,SAASmlC,EAAO,GAAI,KAAKnlC,OAAOmkD,EAAKt8C,EAAG,KAAK7H,OAAOmkD,EAAKr8C,EAAG,WAAW9H,OAAOsiD,EAAa,KAAKtiD,OAAOsiD,EAAa,OAAOtiD,SAAS0kD,EAAgB,KAAM,KAAK1kD,SAASmlC,EAAO,GAAI,KAAKnlC,OAAOukD,EAAK18C,EAAG,KAAK7H,OAAOukD,EAAKz8C,EAAG,WAAW9H,OAAO6iD,EAAc,KAAK7iD,OAAO6iD,EAAc,SAAS7iD,SAASmlC,EAAO,GAAI,KAAKnlC,OAAOwkD,EAAK38C,EAAG,KAAK7H,OAAOwkD,EAAK18C,EAAG,QAEhd,GAAIu6C,EAAc,EAAG,CACnB,IAAIsC,EAAqBhC,GAAiB,CACxCtsC,GAAIA,EACJC,GAAIA,EACJtO,OAAQq6C,EACRj/C,MAAO0+C,EACP3c,KAAMA,EACNyd,YAAY,EACZC,aAAcA,EACdC,iBAAkBA,IAEhB8B,EAAOD,EAAmBtB,eAC1BwB,EAAOF,EAAmBrB,aAC1BwB,EAAMH,EAAmB3B,MAEzB+B,EAAqBpC,GAAiB,CACxCtsC,GAAIA,EACJC,GAAIA,EACJtO,OAAQq6C,EACRj/C,MAAO2+C,EACP5c,MAAOA,EACPyd,YAAY,EACZC,aAAcA,EACdC,iBAAkBA,IAEhBkC,EAAOD,EAAmB1B,eAC1B4B,EAAOF,EAAmBzB,aAC1B4B,EAAMH,EAAmB/B,MAEzBmC,EAAgB/nD,KAAKwR,IAAIkzC,EAAaC,GAAY+C,EAAMI,EAE5D,GAAIC,EAAgB,EAClB,MAAO,GAAGnlD,OAAOqR,EAAM,KAAKrR,OAAOqW,EAAI,KAAKrW,OAAOsW,EAAI,KAGzDjF,GAAQ,IAAIrR,OAAOilD,EAAKp9C,EAAG,KAAK7H,OAAOilD,EAAKn9C,EAAG,aAAa9H,OAAO6iD,EAAc,KAAK7iD,OAAO6iD,EAAc,SAAS7iD,SAASmlC,EAAO,GAAI,KAAKnlC,OAAOglD,EAAKn9C,EAAG,KAAK7H,OAAOglD,EAAKl9C,EAAG,aAAa9H,OAAOqiD,EAAa,KAAKriD,OAAOqiD,EAAa,OAAOriD,SAASmlD,EAAgB,KAAM,KAAKnlD,SAASmlC,EAAO,GAAI,KAAKnlC,OAAO4kD,EAAK/8C,EAAG,KAAK7H,OAAO4kD,EAAK98C,EAAG,aAAa9H,OAAO6iD,EAAc,KAAK7iD,OAAO6iD,EAAc,SAAS7iD,SAASmlC,EAAO,GAAI,KAAKnlC,OAAO6kD,EAAKh9C,EAAG,KAAK7H,OAAO6kD,EAAK/8C,EAAG,UAElduJ,GAAQ,IAAIrR,OAAOqW,EAAI,KAAKrW,OAAOsW,EAAI,KAGzC,OAAOjF,EAuCM+zC,CAAoB,CACzB/uC,GAAIA,EACJC,GAAIA,EACJ+rC,YAAaA,EACbC,YAAaA,EACbO,aAAczlD,KAAK4R,IAAIi1C,EAAID,EAAc,GACzCD,kBAAmBA,EACnBjB,iBAAkBA,EAClBhB,WAAYA,EACZC,SAAUA,IAGLwB,GAAc,CACnBltC,GAAIA,EACJC,GAAIA,EACJ+rC,YAAaA,EACbC,YAAaA,EACbR,WAAYA,EACZC,SAAUA,IAIPx3C,IAAMyB,cAAc,OAAQ0B,GAAS,GAAI5C,EAA0B+C,KAAK5C,OAAQK,EAAsBuC,KAAK5C,OAAQ,CACxHiD,UAAWM,EACX+H,EAAGlF,UA/OmEyC,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GAoP3K2uC,EA/DT,CAgEErtC,iBAEFqtC,GAAO75C,YAAc,SACrB65C,GAAOh2C,UApQP,SAAuBrS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAoQ1emb,CAAc,GAAI7T,EAAyB,CAC5DmL,UAAWlL,IAAUC,OACrBoT,GAAIrT,IAAUK,OACdiT,GAAItT,IAAUK,OACdg/C,YAAar/C,IAAUK,OACvBi/C,YAAat/C,IAAUK,OACvBy+C,WAAY9+C,IAAUK,OACtB0+C,SAAU/+C,IAAUK,OACpBw/C,aAAc7/C,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC/D8gD,kBAAmB/gD,IAAUiY,KAC7B6nC,iBAAkB9/C,IAAUiY,OAE9B6oC,GAAOjtC,aAAe,CACpBR,GAAI,EACJC,GAAI,EACJ+rC,YAAa,EACbC,YAAa,EACbR,WAAY,EACZC,SAAU,EACVc,aAAc,EACdkB,mBAAmB,EACnBjB,kBAAkB,GAELgB,UC7RA,gBCAR,SAAShvB,GAAMuwB,EAAMx9C,EAAGC,GAC7Bu9C,EAAKC,SAAS9zC,eACX,EAAI6zC,EAAKr0C,IAAMq0C,EAAKn0C,KAAO,GAC3B,EAAIm0C,EAAKp0C,IAAMo0C,EAAKl0C,KAAO,GAC3Bk0C,EAAKr0C,IAAM,EAAIq0C,EAAKn0C,KAAO,GAC3Bm0C,EAAKp0C,IAAM,EAAIo0C,EAAKl0C,KAAO,GAC3Bk0C,EAAKr0C,IAAM,EAAIq0C,EAAKn0C,IAAMrJ,GAAK,GAC/Bw9C,EAAKp0C,IAAM,EAAIo0C,EAAKl0C,IAAMrJ,GAAK,GAI7B,SAASy9C,GAAMj2C,GACpBzB,KAAKy3C,SAAWh2C,EAGlBi2C,GAAMrjD,UAAY,CAChBsjD,UAAW,WACT33C,KAAK43C,MAAQ,GAEfC,QAAS,WACP73C,KAAK43C,MAAQ/zB,KAEfi0B,UAAW,WACT93C,KAAKmD,IAAMnD,KAAKqD,IAChBrD,KAAKoD,IAAMpD,KAAKsD,IAAMugB,IACtB7jB,KAAK+3C,OAAS,GAEhBC,QAAS,WACP,OAAQh4C,KAAK+3C,QACX,KAAK,EAAG9wB,GAAMjnB,KAAMA,KAAKqD,IAAKrD,KAAKsD,KACnC,KAAK,EAAGtD,KAAKy3C,SAAS51C,OAAO7B,KAAKqD,IAAKrD,KAAKsD,MAE1CtD,KAAK43C,OAAyB,IAAf53C,KAAK43C,OAA+B,IAAhB53C,KAAK+3C,SAAe/3C,KAAKy3C,SAAS31C,YACzE9B,KAAK43C,MAAQ,EAAI53C,KAAK43C,OAExB3wB,MAAO,SAASjtB,EAAGC,GAEjB,OADAD,GAAKA,EAAGC,GAAKA,EACL+F,KAAK+3C,QACX,KAAK,EAAG/3C,KAAK+3C,OAAS,EAAG/3C,KAAK43C,MAAQ53C,KAAKy3C,SAAS51C,OAAO7H,EAAGC,GAAK+F,KAAKy3C,SAAS91C,OAAO3H,EAAGC,GAAI,MAC/F,KAAK,EAAG+F,KAAK+3C,OAAS,EAAG,MACzB,KAAK,EAAG/3C,KAAK+3C,OAAS,EAAG/3C,KAAKy3C,SAAS51C,QAAQ,EAAI7B,KAAKmD,IAAMnD,KAAKqD,KAAO,GAAI,EAAIrD,KAAKoD,IAAMpD,KAAKsD,KAAO,GACzG,QAAS2jB,GAAMjnB,KAAMhG,EAAGC,GAE1B+F,KAAKmD,IAAMnD,KAAKqD,IAAKrD,KAAKqD,IAAMrJ,EAChCgG,KAAKoD,IAAMpD,KAAKsD,IAAKtD,KAAKsD,IAAMrJ,ICzCpC,SAASg+C,GAAYx2C,GACnBzB,KAAKy3C,SAAWh2C,EAGlBw2C,GAAY5jD,UAAY,CACtBsjD,UAAWO,GACXL,QAASK,GACTJ,UAAW,WACT93C,KAAKmD,IAAMnD,KAAKqD,IAAMrD,KAAKm4C,IAAMn4C,KAAKo4C,IAAMp4C,KAAKq4C,IACjDr4C,KAAKoD,IAAMpD,KAAKsD,IAAMtD,KAAKs4C,IAAMt4C,KAAKu4C,IAAMv4C,KAAKw4C,IAAM30B,IACvD7jB,KAAK+3C,OAAS,GAEhBC,QAAS,WACP,OAAQh4C,KAAK+3C,QACX,KAAK,EACH/3C,KAAKy3C,SAAS91C,OAAO3B,KAAKm4C,IAAKn4C,KAAKs4C,KACpCt4C,KAAKy3C,SAAS31C,YACd,MAEF,KAAK,EACH9B,KAAKy3C,SAAS91C,QAAQ3B,KAAKm4C,IAAM,EAAIn4C,KAAKo4C,KAAO,GAAIp4C,KAAKs4C,IAAM,EAAIt4C,KAAKu4C,KAAO,GAChFv4C,KAAKy3C,SAAS51C,QAAQ7B,KAAKo4C,IAAM,EAAIp4C,KAAKm4C,KAAO,GAAIn4C,KAAKu4C,IAAM,EAAIv4C,KAAKs4C,KAAO,GAChFt4C,KAAKy3C,SAAS31C,YACd,MAEF,KAAK,EACH9B,KAAKinB,MAAMjnB,KAAKm4C,IAAKn4C,KAAKs4C,KAC1Bt4C,KAAKinB,MAAMjnB,KAAKo4C,IAAKp4C,KAAKu4C,KAC1Bv4C,KAAKinB,MAAMjnB,KAAKq4C,IAAKr4C,KAAKw4C,OAKhCvxB,MAAO,SAASjtB,EAAGC,GAEjB,OADAD,GAAKA,EAAGC,GAAKA,EACL+F,KAAK+3C,QACX,KAAK,EAAG/3C,KAAK+3C,OAAS,EAAG/3C,KAAKm4C,IAAMn+C,EAAGgG,KAAKs4C,IAAMr+C,EAAG,MACrD,KAAK,EAAG+F,KAAK+3C,OAAS,EAAG/3C,KAAKo4C,IAAMp+C,EAAGgG,KAAKu4C,IAAMt+C,EAAG,MACrD,KAAK,EAAG+F,KAAK+3C,OAAS,EAAG/3C,KAAKq4C,IAAMr+C,EAAGgG,KAAKw4C,IAAMv+C,EAAG+F,KAAKy3C,SAAS91C,QAAQ3B,KAAKmD,IAAM,EAAInD,KAAKqD,IAAMrJ,GAAK,GAAIgG,KAAKoD,IAAM,EAAIpD,KAAKsD,IAAMrJ,GAAK,GAAI,MACjJ,QAASgtB,GAAMjnB,KAAMhG,EAAGC,GAE1B+F,KAAKmD,IAAMnD,KAAKqD,IAAKrD,KAAKqD,IAAMrJ,EAChCgG,KAAKoD,IAAMpD,KAAKsD,IAAKtD,KAAKsD,IAAMrJ,IC3CpC,SAASw+C,GAAUh3C,GACjBzB,KAAKy3C,SAAWh2C,EAGlBg3C,GAAUpkD,UAAY,CACpBsjD,UAAW,WACT33C,KAAK43C,MAAQ,GAEfC,QAAS,WACP73C,KAAK43C,MAAQ/zB,KAEfi0B,UAAW,WACT93C,KAAKmD,IAAMnD,KAAKqD,IAChBrD,KAAKoD,IAAMpD,KAAKsD,IAAMugB,IACtB7jB,KAAK+3C,OAAS,GAEhBC,QAAS,YACHh4C,KAAK43C,OAAyB,IAAf53C,KAAK43C,OAA+B,IAAhB53C,KAAK+3C,SAAe/3C,KAAKy3C,SAAS31C,YACzE9B,KAAK43C,MAAQ,EAAI53C,KAAK43C,OAExB3wB,MAAO,SAASjtB,EAAGC,GAEjB,OADAD,GAAKA,EAAGC,GAAKA,EACL+F,KAAK+3C,QACX,KAAK,EAAG/3C,KAAK+3C,OAAS,EAAG,MACzB,KAAK,EAAG/3C,KAAK+3C,OAAS,EAAG,MACzB,KAAK,EAAG/3C,KAAK+3C,OAAS,EAAG,IAAIr1C,GAAM1C,KAAKmD,IAAM,EAAInD,KAAKqD,IAAMrJ,GAAK,EAAG2I,GAAM3C,KAAKoD,IAAM,EAAIpD,KAAKsD,IAAMrJ,GAAK,EAAG+F,KAAK43C,MAAQ53C,KAAKy3C,SAAS51C,OAAOa,EAAIC,GAAM3C,KAAKy3C,SAAS91C,OAAOe,EAAIC,GAAK,MACvL,KAAK,EAAG3C,KAAK+3C,OAAS,EACtB,QAAS9wB,GAAMjnB,KAAMhG,EAAGC,GAE1B+F,KAAKmD,IAAMnD,KAAKqD,IAAKrD,KAAKqD,IAAMrJ,EAChCgG,KAAKoD,IAAMpD,KAAKsD,IAAKtD,KAAKsD,IAAMrJ,IC9BpC,SAASy+C,GAAaj3C,GACpBzB,KAAKy3C,SAAWh2C,EAGlBi3C,GAAarkD,UAAY,CACvBsjD,UAAWO,GACXL,QAASK,GACTJ,UAAW,WACT93C,KAAK+3C,OAAS,GAEhBC,QAAS,WACHh4C,KAAK+3C,QAAQ/3C,KAAKy3C,SAAS31C,aAEjCmlB,MAAO,SAASjtB,EAAGC,GACjBD,GAAKA,EAAGC,GAAKA,EACT+F,KAAK+3C,OAAQ/3C,KAAKy3C,SAAS51C,OAAO7H,EAAGC,IACpC+F,KAAK+3C,OAAS,EAAG/3C,KAAKy3C,SAAS91C,OAAO3H,EAAGC,MClBlD,SAAS0+C,GAAOl3C,GACdzB,KAAKy3C,SAAWh2C,EAGlBk3C,GAAOtkD,UAAY,CACjBsjD,UAAW,WACT33C,KAAK43C,MAAQ,GAEfC,QAAS,WACP73C,KAAK43C,MAAQ/zB,KAEfi0B,UAAW,WACT93C,KAAK+3C,OAAS,GAEhBC,QAAS,YACHh4C,KAAK43C,OAAyB,IAAf53C,KAAK43C,OAA+B,IAAhB53C,KAAK+3C,SAAe/3C,KAAKy3C,SAAS31C,YACzE9B,KAAK43C,MAAQ,EAAI53C,KAAK43C,OAExB3wB,MAAO,SAASjtB,EAAGC,GAEjB,OADAD,GAAKA,EAAGC,GAAKA,EACL+F,KAAK+3C,QACX,KAAK,EAAG/3C,KAAK+3C,OAAS,EAAG/3C,KAAK43C,MAAQ53C,KAAKy3C,SAAS51C,OAAO7H,EAAGC,GAAK+F,KAAKy3C,SAAS91C,OAAO3H,EAAGC,GAAI,MAC/F,KAAK,EAAG+F,KAAK+3C,OAAS,EACtB,QAAS/3C,KAAKy3C,SAAS51C,OAAO7H,EAAGC,MAKxB,gBAASwH,GACtB,OAAO,IAAIk3C,GAAOl3C,IC7BpB,SAAS61B,GAAKt9B,GACZ,OAAOA,EAAI,GAAK,EAAI,EAOtB,SAAS4+C,GAAOpB,EAAM10C,EAAIC,GACxB,IAAI81C,EAAKrB,EAAKn0C,IAAMm0C,EAAKr0C,IACrB21C,EAAKh2C,EAAK00C,EAAKn0C,IACfqnC,GAAM8M,EAAKl0C,IAAMk0C,EAAKp0C,MAAQy1C,GAAMC,EAAK,IAAM,GAC/CnO,GAAM5nC,EAAKy0C,EAAKl0C,MAAQw1C,GAAMD,EAAK,IAAM,GACzCpyC,GAAKikC,EAAKoO,EAAKnO,EAAKkO,IAAOA,EAAKC,GACpC,OAAQxhB,GAAKoT,GAAMpT,GAAKqT,IAAOp7C,KAAK4R,IAAI5R,KAAKwR,IAAI2pC,GAAKn7C,KAAKwR,IAAI4pC,GAAK,GAAMp7C,KAAKwR,IAAI0F,KAAO,EAI5F,SAASsyC,GAAOvB,EAAMtkD,GACpB,IAAIiS,EAAIqyC,EAAKn0C,IAAMm0C,EAAKr0C,IACxB,OAAOgC,GAAK,GAAKqyC,EAAKl0C,IAAMk0C,EAAKp0C,KAAO+B,EAAIjS,GAAK,EAAIA,EAMvD,SAAS+zB,GAAMuwB,EAAMlb,EAAIrJ,GACvB,IAAIvwB,EAAK80C,EAAKr0C,IACVR,EAAK60C,EAAKp0C,IACVR,EAAK40C,EAAKn0C,IACVR,EAAK20C,EAAKl0C,IACVxJ,GAAM8I,EAAKF,GAAM,EACrB80C,EAAKC,SAAS9zC,cAAcjB,EAAK5I,EAAI6I,EAAK7I,EAAKwiC,EAAI15B,EAAK9I,EAAI+I,EAAK/I,EAAKm5B,EAAIrwB,EAAIC,GAGhF,SAASm2C,GAAUv3C,GACjBzB,KAAKy3C,SAAWh2C,EA0ClB,SAASw3C,GAAUx3C,GACjBzB,KAAKy3C,SAAW,IAAIyB,GAAez3C,GAOrC,SAASy3C,GAAez3C,GACtBzB,KAAKy3C,SAAWh2C,ECvFlB,SAAS03C,GAAQ13C,GACfzB,KAAKy3C,SAAWh2C,EA2ClB,SAAS23C,GAAcp/C,GACrB,IAAIhG,EAEA89B,EADA/T,EAAI/jB,EAAEvJ,OAAS,EAEfH,EAAI,IAAI9B,MAAMuvB,GACdpqB,EAAI,IAAInF,MAAMuvB,GACd7jB,EAAI,IAAI1L,MAAMuvB,GAElB,IADAztB,EAAE,GAAK,EAAGqD,EAAE,GAAK,EAAGuG,EAAE,GAAKF,EAAE,GAAK,EAAIA,EAAE,GACnChG,EAAI,EAAGA,EAAI+pB,EAAI,IAAK/pB,EAAG1D,EAAE0D,GAAK,EAAGL,EAAEK,GAAK,EAAGkG,EAAElG,GAAK,EAAIgG,EAAEhG,GAAK,EAAIgG,EAAEhG,EAAI,GAE5E,IADA1D,EAAEytB,EAAI,GAAK,EAAGpqB,EAAEoqB,EAAI,GAAK,EAAG7jB,EAAE6jB,EAAI,GAAK,EAAI/jB,EAAE+jB,EAAI,GAAK/jB,EAAE+jB,GACnD/pB,EAAI,EAAGA,EAAI+pB,IAAK/pB,EAAG89B,EAAIxhC,EAAE0D,GAAKL,EAAEK,EAAI,GAAIL,EAAEK,IAAM89B,EAAG53B,EAAElG,IAAM89B,EAAI53B,EAAElG,EAAI,GAE1E,IADA1D,EAAEytB,EAAI,GAAK7jB,EAAE6jB,EAAI,GAAKpqB,EAAEoqB,EAAI,GACvB/pB,EAAI+pB,EAAI,EAAG/pB,GAAK,IAAKA,EAAG1D,EAAE0D,IAAMkG,EAAElG,GAAK1D,EAAE0D,EAAI,IAAML,EAAEK,GAE1D,IADAL,EAAEoqB,EAAI,IAAM/jB,EAAE+jB,GAAKztB,EAAEytB,EAAI,IAAM,EAC1B/pB,EAAI,EAAGA,EAAI+pB,EAAI,IAAK/pB,EAAGL,EAAEK,GAAK,EAAIgG,EAAEhG,EAAI,GAAK1D,EAAE0D,EAAI,GACxD,MAAO,CAAC1D,EAAGqD,GDpBbqlD,GAAU3kD,UAAY,CACpBsjD,UAAW,WACT33C,KAAK43C,MAAQ,GAEfC,QAAS,WACP73C,KAAK43C,MAAQ/zB,KAEfi0B,UAAW,WACT93C,KAAKmD,IAAMnD,KAAKqD,IAChBrD,KAAKoD,IAAMpD,KAAKsD,IAChBtD,KAAKq5C,IAAMx1B,IACX7jB,KAAK+3C,OAAS,GAEhBC,QAAS,WACP,OAAQh4C,KAAK+3C,QACX,KAAK,EAAG/3C,KAAKy3C,SAAS51C,OAAO7B,KAAKqD,IAAKrD,KAAKsD,KAAM,MAClD,KAAK,EAAG2jB,GAAMjnB,KAAMA,KAAKq5C,IAAKN,GAAO/4C,KAAMA,KAAKq5C,OAE9Cr5C,KAAK43C,OAAyB,IAAf53C,KAAK43C,OAA+B,IAAhB53C,KAAK+3C,SAAe/3C,KAAKy3C,SAAS31C,YACzE9B,KAAK43C,MAAQ,EAAI53C,KAAK43C,OAExB3wB,MAAO,SAASjtB,EAAGC,GACjB,IAAIg5B,EAAKpP,IAGT,GADQ5pB,GAAKA,GAAbD,GAAKA,KACKgG,KAAKqD,KAAOpJ,IAAM+F,KAAKsD,IAAjC,CACA,OAAQtD,KAAK+3C,QACX,KAAK,EAAG/3C,KAAK+3C,OAAS,EAAG/3C,KAAK43C,MAAQ53C,KAAKy3C,SAAS51C,OAAO7H,EAAGC,GAAK+F,KAAKy3C,SAAS91C,OAAO3H,EAAGC,GAAI,MAC/F,KAAK,EAAG+F,KAAK+3C,OAAS,EAAG,MACzB,KAAK,EAAG/3C,KAAK+3C,OAAS,EAAG9wB,GAAMjnB,KAAM+4C,GAAO/4C,KAAMizB,EAAK2lB,GAAO54C,KAAMhG,EAAGC,IAAKg5B,GAAK,MACjF,QAAShM,GAAMjnB,KAAMA,KAAKq5C,IAAKpmB,EAAK2lB,GAAO54C,KAAMhG,EAAGC,IAGtD+F,KAAKmD,IAAMnD,KAAKqD,IAAKrD,KAAKqD,IAAMrJ,EAChCgG,KAAKoD,IAAMpD,KAAKsD,IAAKtD,KAAKsD,IAAMrJ,EAChC+F,KAAKq5C,IAAMpmB,MAQdgmB,GAAU5kD,UAAYjF,OAAOqY,OAAOuxC,GAAU3kD,YAAY4yB,MAAQ,SAASjtB,EAAGC,GAC7E++C,GAAU3kD,UAAU4yB,MAAM/4B,KAAK8R,KAAM/F,EAAGD,IAO1Ck/C,GAAe7kD,UAAY,CACzBsN,OAAQ,SAAS3H,EAAGC,GAAK+F,KAAKy3C,SAAS91C,OAAO1H,EAAGD,IACjD8H,UAAW,WAAa9B,KAAKy3C,SAAS31C,aACtCD,OAAQ,SAAS7H,EAAGC,GAAK+F,KAAKy3C,SAAS51C,OAAO5H,EAAGD,IACjD2J,cAAe,SAASf,EAAIC,EAAIC,EAAIC,EAAI/I,EAAGC,GAAK+F,KAAKy3C,SAAS9zC,cAAcd,EAAID,EAAIG,EAAID,EAAI7I,EAAGD,KC1FjGm/C,GAAQ9kD,UAAY,CAClBsjD,UAAW,WACT33C,KAAK43C,MAAQ,GAEfC,QAAS,WACP73C,KAAK43C,MAAQ/zB,KAEfi0B,UAAW,WACT93C,KAAKs5C,GAAK,GACVt5C,KAAKu5C,GAAK,IAEZvB,QAAS,WACP,IAAIh+C,EAAIgG,KAAKs5C,GACTr/C,EAAI+F,KAAKu5C,GACTx7B,EAAI/jB,EAAEvJ,OAEV,GAAIstB,EAEF,GADA/d,KAAK43C,MAAQ53C,KAAKy3C,SAAS51C,OAAO7H,EAAE,GAAIC,EAAE,IAAM+F,KAAKy3C,SAAS91C,OAAO3H,EAAE,GAAIC,EAAE,IACnE,IAAN8jB,EACF/d,KAAKy3C,SAAS51C,OAAO7H,EAAE,GAAIC,EAAE,SAI7B,IAFA,IAAIu/C,EAAKJ,GAAcp/C,GACnBy/C,EAAKL,GAAcn/C,GACdkrB,EAAK,EAAGuU,EAAK,EAAGA,EAAK3b,IAAKoH,IAAMuU,EACvC15B,KAAKy3C,SAAS9zC,cAAc61C,EAAG,GAAGr0B,GAAKs0B,EAAG,GAAGt0B,GAAKq0B,EAAG,GAAGr0B,GAAKs0B,EAAG,GAAGt0B,GAAKnrB,EAAE0/B,GAAKz/B,EAAEy/B,KAKnF15B,KAAK43C,OAAyB,IAAf53C,KAAK43C,OAAqB,IAAN75B,IAAU/d,KAAKy3C,SAAS31C,YAC/D9B,KAAK43C,MAAQ,EAAI53C,KAAK43C,MACtB53C,KAAKs5C,GAAKt5C,KAAKu5C,GAAK,MAEtBtyB,MAAO,SAASjtB,EAAGC,GACjB+F,KAAKs5C,GAAGv8C,MAAM/C,GACdgG,KAAKu5C,GAAGx8C,MAAM9C,KCvClB,SAASy/C,GAAKj4C,EAASvO,GACrB8M,KAAKy3C,SAAWh2C,EAChBzB,KAAKgS,GAAK9e,EAGZwmD,GAAKrlD,UAAY,CACfsjD,UAAW,WACT33C,KAAK43C,MAAQ,GAEfC,QAAS,WACP73C,KAAK43C,MAAQ/zB,KAEfi0B,UAAW,WACT93C,KAAKs5C,GAAKt5C,KAAKu5C,GAAK11B,IACpB7jB,KAAK+3C,OAAS,GAEhBC,QAAS,WACH,EAAIh4C,KAAKgS,IAAMhS,KAAKgS,GAAK,GAAqB,IAAhBhS,KAAK+3C,QAAc/3C,KAAKy3C,SAAS51C,OAAO7B,KAAKs5C,GAAIt5C,KAAKu5C,KACpFv5C,KAAK43C,OAAyB,IAAf53C,KAAK43C,OAA+B,IAAhB53C,KAAK+3C,SAAe/3C,KAAKy3C,SAAS31C,YACrE9B,KAAK43C,OAAS,IAAG53C,KAAKgS,GAAK,EAAIhS,KAAKgS,GAAIhS,KAAK43C,MAAQ,EAAI53C,KAAK43C,QAEpE3wB,MAAO,SAASjtB,EAAGC,GAEjB,OADAD,GAAKA,EAAGC,GAAKA,EACL+F,KAAK+3C,QACX,KAAK,EAAG/3C,KAAK+3C,OAAS,EAAG/3C,KAAK43C,MAAQ53C,KAAKy3C,SAAS51C,OAAO7H,EAAGC,GAAK+F,KAAKy3C,SAAS91C,OAAO3H,EAAGC,GAAI,MAC/F,KAAK,EAAG+F,KAAK+3C,OAAS,EACtB,QACE,GAAI/3C,KAAKgS,IAAM,EACbhS,KAAKy3C,SAAS51C,OAAO7B,KAAKs5C,GAAIr/C,GAC9B+F,KAAKy3C,SAAS51C,OAAO7H,EAAGC,OACnB,CACL,IAAI2I,EAAK5C,KAAKs5C,IAAM,EAAIt5C,KAAKgS,IAAMhY,EAAIgG,KAAKgS,GAC5ChS,KAAKy3C,SAAS51C,OAAOe,EAAI5C,KAAKu5C,IAC9Bv5C,KAAKy3C,SAAS51C,OAAOe,EAAI3I,IAK/B+F,KAAKs5C,GAAKt/C,EAAGgG,KAAKu5C,GAAKt/C,ICtCpB,SAASD,GAAEyM,GAChB,OAAOA,EAAE,GAGJ,SAASxM,GAAEwM,GAChB,OAAOA,EAAE,GCAI,kBACb,IAAIzM,EAAI2/C,GACJ1/C,EAAI2/C,GACJC,EAAU7xC,IAAS,GACnBvG,EAAU,KACVq4C,EAAQC,GACRrjB,EAAS,KAEb,SAASsjB,EAAKn8C,GACZ,IAAI7J,EAEA0U,EAEAP,EAHA4V,EAAIlgB,EAAKpN,OAETwpD,GAAW,EAKf,IAFe,MAAXx4C,IAAiBi1B,EAASojB,EAAM3xC,EAAS3E,OAExCxP,EAAI,EAAGA,GAAK+pB,IAAK/pB,IACdA,EAAI+pB,GAAK87B,EAAQnxC,EAAI7K,EAAK7J,GAAIA,EAAG6J,MAAWo8C,KAC5CA,GAAYA,GAAUvjB,EAAOohB,YAC5BphB,EAAOshB,WAEViC,GAAUvjB,EAAOzP,OAAOjtB,EAAE0O,EAAG1U,EAAG6J,IAAQ5D,EAAEyO,EAAG1U,EAAG6J,IAGtD,GAAIsK,EAAQ,OAAOuuB,EAAS,KAAMvuB,EAAS,IAAM,KAuBnD,OApBA6xC,EAAKhgD,EAAI,SAASuJ,GAChB,OAAO/Q,UAAU/B,QAAUuJ,EAAiB,oBAANuJ,EAAmBA,EAAIyE,IAAUzE,GAAIy2C,GAAQhgD,GAGrFggD,EAAK//C,EAAI,SAASsJ,GAChB,OAAO/Q,UAAU/B,QAAUwJ,EAAiB,oBAANsJ,EAAmBA,EAAIyE,IAAUzE,GAAIy2C,GAAQ//C,GAGrF+/C,EAAKH,QAAU,SAASt2C,GACtB,OAAO/Q,UAAU/B,QAAUopD,EAAuB,oBAANt2C,EAAmBA,EAAIyE,KAAWzE,GAAIy2C,GAAQH,GAG5FG,EAAKF,MAAQ,SAASv2C,GACpB,OAAO/Q,UAAU/B,QAAUqpD,EAAQv2C,EAAc,MAAX9B,IAAoBi1B,EAASojB,EAAMr4C,IAAWu4C,GAAQF,GAG9FE,EAAKv4C,QAAU,SAAS8B,GACtB,OAAO/Q,UAAU/B,QAAe,MAAL8S,EAAY9B,EAAUi1B,EAAS,KAAOA,EAASojB,EAAMr4C,EAAU8B,GAAIy2C,GAAQv4C,GAGjGu4C,GC/CM,cACb,IAAIt3C,EAAKi3C,GACL/2C,EAAK,KACLD,EAAKqF,GAAS,GACdnF,EAAK+2C,GACLC,EAAU7xC,IAAS,GACnBvG,EAAU,KACVq4C,EAAQC,GACRrjB,EAAS,KAEb,SAASwjB,EAAKr8C,GACZ,IAAI7J,EACAoiC,EACA3zB,EAEAiG,EAEAP,EAHA4V,EAAIlgB,EAAKpN,OAETwpD,GAAW,EAEXE,EAAM,IAAI3rD,MAAMuvB,GAChBq8B,EAAM,IAAI5rD,MAAMuvB,GAIpB,IAFe,MAAXtc,IAAiBi1B,EAASojB,EAAM3xC,EAAS3E,OAExCxP,EAAI,EAAGA,GAAK+pB,IAAK/pB,EAAG,CACvB,KAAMA,EAAI+pB,GAAK87B,EAAQnxC,EAAI7K,EAAK7J,GAAIA,EAAG6J,MAAWo8C,EAChD,GAAIA,GAAYA,EACd7jB,EAAIpiC,EACJ0iC,EAAOihB,YACPjhB,EAAOohB,gBACF,CAGL,IAFAphB,EAAOshB,UACPthB,EAAOohB,YACFr1C,EAAIzO,EAAI,EAAGyO,GAAK2zB,IAAK3zB,EACxBi0B,EAAOzP,MAAMkzB,EAAI13C,GAAI23C,EAAI33C,IAE3Bi0B,EAAOshB,UACPthB,EAAOmhB,UAGPoC,IACFE,EAAInmD,IAAM0O,EAAGgG,EAAG1U,EAAG6J,GAAOu8C,EAAIpmD,IAAM2O,EAAG+F,EAAG1U,EAAG6J,GAC7C64B,EAAOzP,MAAMrkB,GAAMA,EAAG8F,EAAG1U,EAAG6J,GAAQs8C,EAAInmD,GAAI6O,GAAMA,EAAG6F,EAAG1U,EAAG6J,GAAQu8C,EAAIpmD,KAI3E,GAAImU,EAAQ,OAAOuuB,EAAS,KAAMvuB,EAAS,IAAM,KAGnD,SAASkyC,IACP,OAAOL,KAAOH,QAAQA,GAASC,MAAMA,GAAOr4C,QAAQA,GAoDtD,OAjDAy4C,EAAKlgD,EAAI,SAASuJ,GAChB,OAAO/Q,UAAU/B,QAAUiS,EAAkB,oBAANa,EAAmBA,EAAIyE,IAAUzE,GAAIX,EAAK,KAAMs3C,GAAQx3C,GAGjGw3C,EAAKx3C,GAAK,SAASa,GACjB,OAAO/Q,UAAU/B,QAAUiS,EAAkB,oBAANa,EAAmBA,EAAIyE,IAAUzE,GAAI22C,GAAQx3C,GAGtFw3C,EAAKt3C,GAAK,SAASW,GACjB,OAAO/Q,UAAU/B,QAAUmS,EAAU,MAALW,EAAY,KAAoB,oBAANA,EAAmBA,EAAIyE,IAAUzE,GAAI22C,GAAQt3C,GAGzGs3C,EAAKjgD,EAAI,SAASsJ,GAChB,OAAO/Q,UAAU/B,QAAUkS,EAAkB,oBAANY,EAAmBA,EAAIyE,IAAUzE,GAAIV,EAAK,KAAMq3C,GAAQv3C,GAGjGu3C,EAAKv3C,GAAK,SAASY,GACjB,OAAO/Q,UAAU/B,QAAUkS,EAAkB,oBAANY,EAAmBA,EAAIyE,IAAUzE,GAAI22C,GAAQv3C,GAGtFu3C,EAAKr3C,GAAK,SAASU,GACjB,OAAO/Q,UAAU/B,QAAUoS,EAAU,MAALU,EAAY,KAAoB,oBAANA,EAAmBA,EAAIyE,IAAUzE,GAAI22C,GAAQr3C,GAGzGq3C,EAAKI,OACLJ,EAAKK,OAAS,WACZ,OAAOF,IAAWrgD,EAAE0I,GAAIzI,EAAE0I,IAG5Bu3C,EAAKM,OAAS,WACZ,OAAOH,IAAWrgD,EAAE0I,GAAIzI,EAAE4I,IAG5Bq3C,EAAKO,OAAS,WACZ,OAAOJ,IAAWrgD,EAAE4I,GAAI3I,EAAE0I,IAG5Bu3C,EAAKL,QAAU,SAASt2C,GACtB,OAAO/Q,UAAU/B,QAAUopD,EAAuB,oBAANt2C,EAAmBA,EAAIyE,KAAWzE,GAAI22C,GAAQL,GAG5FK,EAAKJ,MAAQ,SAASv2C,GACpB,OAAO/Q,UAAU/B,QAAUqpD,EAAQv2C,EAAc,MAAX9B,IAAoBi1B,EAASojB,EAAMr4C,IAAWy4C,GAAQJ,GAG9FI,EAAKz4C,QAAU,SAAS8B,GACtB,OAAO/Q,UAAU/B,QAAe,MAAL8S,EAAY9B,EAAUi1B,EAAS,KAAOA,EAASojB,EAAMr4C,EAAU8B,GAAI22C,GAAQz4C,GAGjGy4C,GCxGT,SAASr0C,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAAS4S,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAWrK,IAAIi0C,GAAkB,CACpBC,iBVUa,SAASl5C,GACtB,OAAO,IAAIw2C,GAAYx2C,IUVvBm5C,eTJa,SAASn5C,GACtB,OAAO,IAAIg3C,GAAUh3C,ISIrBo5C,WXOa,SAASp5C,GACtB,OAAO,IAAIi2C,GAAMj2C,IWPjBq5C,kBRpBa,SAASr5C,GACtB,OAAO,IAAIi3C,GAAaj3C,IQoBxBs4C,YAAaA,GACbgB,eNqDK,SAAmBt5C,GACxB,OAAO,IAAIu3C,GAAUv3C,IMrDrBu5C,eNwDK,SAAmBv5C,GACxB,OAAO,IAAIw3C,GAAUx3C,IMxDrBw5C,aLgBa,SAASx5C,GACtB,OAAO,IAAI03C,GAAQ13C,IKhBnBy5C,UJLa,SAASz5C,GACtB,OAAO,IAAIi4C,GAAKj4C,EAAS,KIKzB05C,eJEK,SAAmB15C,GACxB,OAAO,IAAIi4C,GAAKj4C,EAAS,IIFzB25C,gBJHK,SAAoB35C,GACzB,OAAO,IAAIi4C,GAAKj4C,EAAS,KIKvBo4C,GAAU,SAAiBpzC,GAC7B,OAAOA,EAAEzM,KAAOyM,EAAEzM,GAAKyM,EAAExM,KAAOwM,EAAExM,GAGhCohD,GAAO,SAAc50C,GACvB,OAAOA,EAAEzM,GAGPshD,GAAO,SAAc70C,GACvB,OAAOA,EAAExM,GAiBPshD,GAEJ,SAAUn0C,GAGR,SAASm0C,IAGP,OAFAz1C,GAAgB9F,KAAMu7C,GAEfp1C,GAA2BnG,KAAMsG,GAAgBi1C,GAAOx7C,MAAMC,KAAMxN,YArE/E,IAAsBwT,EAAaqB,EAAYC,EAqJ7C,OA7IF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAwDjXE,CAAU6zC,EAAOn0C,GAhEGpB,EAwEPu1C,GAxEoBl0C,EAwEb,CAAC,CACnBra,IAAK,UAML2B,MAAO,WACL,IAUI6sD,EAVA7zC,EAAc3H,KAAK5C,MACnBvQ,EAAO8a,EAAY9a,KACnB4uD,EAAS9zC,EAAY8zC,OACrBC,EAAW/zC,EAAY+zC,SACvB9xC,EAASjC,EAAYiC,OACrB+xC,EAAeh0C,EAAYg0C,aAC3BC,EAvCY,SAAyB/uD,EAAM+c,GACnD,GAAIzM,IAAYtQ,GACd,OAAOA,EAGT,IAAIC,EAAO,QAAQqF,OAAOtF,EAAK8F,MAAM,EAAG,GAAGmV,eAAe3V,OAAOtF,EAAK8F,MAAM,IAE5E,MAAa,kBAAT7F,GAA4B8c,EACvB8wC,GAAgB,GAAGvoD,OAAOrF,GAAMqF,OAAkB,aAAXyX,EAAwB,IAAM,MAGvE8wC,GAAgB5tD,IAASitD,GA4BT8B,CAAgBhvD,EAAM+c,GACrCkyC,EAAeH,EAAeF,EAAO7kD,QAAO,SAAUpD,GACxD,OAAOqmD,GAAQrmD,MACZioD,EAGL,GAAIj/C,IAASk/C,GAAW,CACtB,IAAIK,EAAiBJ,EAAeD,EAAS9kD,QAAO,SAAUkkC,GAC5D,OAAO+e,GAAQ/e,MACZ4gB,EACDM,EAAaF,EAAar/C,KAAI,SAAUjJ,EAAOzC,GACjD,OAAOgY,GAAc,GAAIvV,EAAO,CAC9BsnC,KAAMihB,EAAehrD,QAezB,OAVEyqD,EADa,aAAX5xC,EACaqyC,KAAYhiD,EAAEqhD,IAAM14C,GAAGy4C,IAAM34C,IAAG,SAAUgG,GACvD,OAAOA,EAAEoyB,KAAK9gC,KAGDiiD,KAAYjiD,EAAEqhD,IAAMx4C,GAAGy4C,IAAM34C,IAAG,SAAU+F,GACvD,OAAOA,EAAEoyB,KAAK7gC,MAIL4/C,QAAQA,IAASC,MAAM8B,GAC7BJ,EAAaQ,GAYtB,OARER,EADa,aAAX5xC,GAAyBjY,EAAS+pD,GACrBO,KAAYhiD,EAAEqhD,IAAM14C,GAAGy4C,IAAM34C,GAAGg5C,GACtC/pD,EAAS+pD,GACHO,KAAYjiD,EAAEqhD,IAAMx4C,GAAGy4C,IAAM34C,GAAG+4C,GAEhCQ,KAAYliD,EAAEqhD,IAAMphD,EAAEqhD,KAG1BzB,QAAQA,IAASC,MAAM8B,GAC7BJ,EAAaM,KAErB,CACD9uD,IAAK,SACL2B,MAAO,WACL,IAAI4Z,EAAevI,KAAK5C,MACpBiD,EAAYkI,EAAalI,UACzBo7C,EAASlzC,EAAakzC,OACtBj4C,EAAO+E,EAAa/E,KACpB24C,EAAU5zC,EAAa4zC,QAE3B,KAAMV,IAAWA,EAAOhrD,UAAY+S,EAClC,OAAO,KAGT,IAAI44C,EAAWX,GAAUA,EAAOhrD,OAASuP,KAAK2I,UAAYnF,EAC1D,OAAO9G,IAAMyB,cAAc,OAAQ0B,GAAS,GAAI5C,EAA0B+C,KAAK5C,OAAQK,EAAsBuC,KAAK5C,MAAO,MAAM,GAAO,CACpIiD,UAAWO,IAAW,iBAAkBP,GACxCqI,EAAG0zC,EACHnvC,IAAKkvC,UAhJiEl2C,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GAqJ3Ki0C,EAtFT,CAuFE3yC,iBAEF2yC,GAAMn/C,YAAc,QACpBm/C,GAAMt7C,UAAY8I,GAAc,GAAI7T,EAAyB,CAC3DmL,UAAWlL,IAAUC,OACrBvI,KAAMsI,IAAUuB,UAAU,CAACvB,IAAUiB,MAAM,CAAC,QAAS,cAAe,YAAa,SAAU,eAAgB,UAAW,YAAa,YAAa,WAAY,OAAQ,aAAc,cAAejB,IAAUmF,OAC3MsP,OAAQzU,IAAUiB,MAAM,CAAC,aAAc,aACvCslD,SAAUvmD,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUtE,QAC3D4qD,OAAQtmD,IAAUmL,QAAQnL,IAAUjF,QACpCyrD,aAAcxmD,IAAUiY,KACxB5J,KAAMrO,IAAUC,OAChB+mD,QAAShnD,IAAUmF,OAErBihD,GAAMvyC,aAAe,CACnBnc,KAAM,SACN4uD,OAAQ,GACRE,cAAc,GAEDJ,U,qBCzLf,SAASn2C,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiB,GAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,CAAE,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIzF,MAAMuF,EAAItD,QAASuD,EAAID,EAAItD,OAAQuD,IAAOC,EAAKD,GAAKD,EAAIC,GAAM,OAAOC,GANnHC,CAAmBH,IAI7D,SAA0BI,GAAQ,GAAIxE,OAAOyE,YAAYhF,OAAO+E,IAAkD,uBAAzC/E,OAAOiF,UAAUC,SAASpG,KAAKiG,GAAgC,OAAO3F,MAAM+F,KAAKJ,GAJrFK,CAAiBT,IAEtF,WAAgC,MAAM,IAAIU,UAAU,mDAF0CC,GAS9F,IAAI2nD,GAAc,CAChBC,WAAY,GACZC,WAAY,GAGVC,GAAa,CACfzvC,SAAU,WACVZ,IAAK,WACLH,KAAM,EACNzB,QAAS,EACTC,OAAQ,EACR6P,OAAQ,OACRC,WAAY,OAEVmiC,GAAa,CAAC,WAAY,WAAY,QAAS,YAAa,YAAa,SAAU,MAAO,OAAQ,WAAY,aAAc,UAAW,SAAU,cAAe,eAAgB,aAAc,gBAAiB,aAAc,cAAe,YAAa,gBACzPC,GAAsB,4BAsBnB,IAAIC,GAAiB,SAAwBhjD,GAClD,OAAOvK,OAAO0D,KAAK6G,GAAOuV,QAAO,SAAUle,EAAQuR,GACjD,MAAO,GAAGpQ,OAAOnB,GAAQmB,QAdFyqD,EAc2Br6C,EAbzCq6C,EAAKtrC,MAAM,IACApC,QAAO,SAAUle,EAAQwC,GAC7C,OAAIA,IAAUA,EAAMsU,cACX,GAAG3V,OAAO2B,GAAmB9C,GAAS,CAAC,IAAKwC,EAAMuc,gBAGpD,GAAG5d,OAAO2B,GAAmB9C,GAAS,CAACwC,MAC7C,IACewc,KAAK,KAKiC,KAAK7d,QAtBpCrF,EAsB6DyV,EAtBvD5T,EAsB0DgL,EAAM4I,GArB3Fk6C,GAAW/qD,QAAQ5E,IAAS,GAAK6B,KAAWA,EACvC,GAAGwD,OAAOxD,EAAO,MAGnBA,GAiB6F,KAtBtG,IAA2B7B,EAAM6B,EAQNiuD,IAetB,KAEMC,GAAgB,SAAuBD,GAChD,IAAIjjD,EAAQnH,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,GAAmBA,UAAU,GAAK,GAEhF,QAAaxE,IAAT4uD,GAA+B,OAATA,GAAiB3+C,KACzC,MAAO,CACLrE,MAAO,EACPC,OAAQ,GAIZ,IAAIijD,EAAM,GAAG3qD,OAAOyqD,GAChBG,EAAcJ,GAAehjD,GAC7BqjD,EAAW,GAAG7qD,OAAO2qD,EAAK,KAAK3qD,OAAO4qD,GAE1C,GAAIV,GAAYC,WAAWU,GACzB,OAAOX,GAAYC,WAAWU,GAGhC,IACE,IAAIC,EAAkB/+C,SAASg/C,eAAeR,IAEzCO,KACHA,EAAkB/+C,SAASC,cAAc,SACzBg/C,aAAa,KAAMT,IACnCx+C,SAASk/C,KAAKC,YAAYJ,IAK5B,IAAIK,EAAuBv0C,GAAc,GAAIyzC,GAAY,GAAI7iD,GAE7DvK,OAAO0D,KAAKwqD,GAAsB7gD,KAAI,SAAU8gD,GAE9C,OADAN,EAAgBtjD,MAAM4jD,GAAYD,EAAqBC,GAChDA,KAETN,EAAgBO,YAAcV,EAC9B,IAAI56C,EAAO+6C,EAAgBzwC,wBACvBxb,EAAS,CACX4I,MAAOsI,EAAKtI,MACZC,OAAQqI,EAAKrI,QASf,OAPAwiD,GAAYC,WAAWU,GAAYhsD,IAE7BqrD,GAAYE,WAjFF,MAkFdF,GAAYE,WAAa,EACzBF,GAAYC,WAAa,IAGpBtrD,EACP,MAAOtB,GACP,MAAO,CACLkK,MAAO,EACPC,OAAQ,KC3Gd,SAASuL,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAI9U,SAAS4S,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASgT,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASmC,GAAyB5H,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAAkEC,EAAKgH,EAAnEpG,EAEzF,SAAuCb,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAFxMkH,CAA8B/H,EAAQ6H,GAAuB,GAAIxF,OAAO2F,sBAAuB,CAAE,IAAIC,EAAmB5F,OAAO2F,sBAAsBhI,GAAS,IAAKiH,EAAI,EAAGA,EAAIgB,EAAiBvE,OAAQuD,IAAOhH,EAAMgI,EAAiBhB,GAAQY,EAASlD,QAAQ1E,IAAQ,GAAkBoC,OAAOiF,UAAUY,qBAAqB/G,KAAKnB,EAAQC,KAAgBY,EAAOZ,GAAOD,EAAOC,IAAU,OAAOY,EAMne,SAASqY,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GASrK,IAAIg3C,GAAkB,6BAqBlBC,GAEJ,SAAU3lC,GAGR,SAAS2lC,EAAKC,GACZ,IAAIj0C,EAgBJ,OAlEJ,SAAyB3D,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAoD5GqR,CAAgB9F,KAAM09C,IAEtBh0C,EAAQvD,GAA2BnG,KAAMsG,GAAgBo3C,GAAMxvD,KAAK8R,KAAM29C,KAEpEC,yBAA2B,SAAUxgD,GAEzC,MAAO,CAAC,CACNygD,MAFWp/C,IAAOrB,EAAMd,UAA+D,GAAnDc,EAAMd,SAAShI,WAAWgd,MAAMmsC,OAMxE/zC,EAAM4B,MAAQ,CACZwyC,aAAcp0C,EAAMq0C,gBAAgBJ,GAAQ,IAEvCj0C,EA9DX,IAAsB1D,EAAaqB,EAAYC,EA4M7C,OApMF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAmCjXE,CAAUg2C,EAAM3lC,GA3CI/R,EAiEP03C,GAjEoBr2C,EAiEd,CAAC,CAClBra,IAAK,oBACL2B,MAAO,WACLqR,KAAKg+C,mBAAmBh+C,KAAK5C,OAAO,KAErC,CACDpQ,IAAK,qBACL2B,MAAO,SAA4BoQ,GACjC,GAAIA,EAAUnF,QAAUoG,KAAK5C,MAAMxD,OAASmF,EAAUk/C,aAAej+C,KAAK5C,MAAM6gD,YAAcl/C,EAAUzC,WAAa0D,KAAK5C,MAAMd,UAAYyC,EAAUpF,QAAUqG,KAAK5C,MAAMzD,MAAO,CAChL,IAAIukD,EAAgBl+C,KAAK5C,MAAMd,WAAayC,EAAUzC,UAAY0D,KAAK5C,MAAMzD,QAAUoF,EAAUpF,MACjGqG,KAAKg+C,mBAAmBh+C,KAAK5C,MAAO8gD,MAGvC,CACDlxD,IAAK,qBACL2B,MAAO,SAA4ByO,EAAO8gD,GACxCl+C,KAAK0M,SAAS,CACZoxC,aAAc99C,KAAK+9C,gBAAgB3gD,EAAO8gD,OAG7C,CACDlxD,IAAK,kBACL2B,MAAO,SAAyByO,EAAO8gD,GAErC,IAAK9gD,EAAMxD,OAASwD,EAAM6gD,cAAgBhgD,KAAS,CACjD,GAAIigD,EAAe,CACjB,IAAIC,EAtEY,SAA6B/gD,GACrD,IASE,MAAO,CACLghD,wBATW3/C,IAAOrB,EAAMd,UAA+D,GAAnDc,EAAMd,SAAShI,WAAWgd,MAAMmsC,KACnChhD,KAAI,SAAU4hD,GAC/C,MAAO,CACLA,KAAMA,EACNzkD,MAAOijD,GAAcwB,EAAMjhD,EAAMzD,OAAOC,UAM1C0kD,WAHezB,GAAc,OAAQz/C,EAAMzD,OAAOC,OAKpD,MAAOlK,GACP,OAAO,MAuDgB6uD,CAAoBnhD,GAErC,IAAI+gD,EAMF,OAAOn+C,KAAK49C,yBAAyBxgD,GALrC,IAAIghD,EAAyBD,EAAWC,uBACpCE,EAAaH,EAAWG,WAC5Bt+C,KAAKo+C,uBAAyBA,EAC9Bp+C,KAAKs+C,WAAaA,EAMtB,OAAOt+C,KAAKw+C,sBAAsBx+C,KAAKo+C,uBAAwBp+C,KAAKs+C,WAAYlhD,EAAMxD,OAGxF,OAAOoG,KAAK49C,yBAAyBxgD,KAEtC,CACDpQ,IAAK,wBACL2B,MAAO,SAA+ByvD,EAAwBE,EAAYG,GACxE,IAAIR,EAAaj+C,KAAK5C,MAAM6gD,WAC5B,OAAQG,GAA0B,IAAIlvC,QAAO,SAAUle,EAAQ0N,GAC7D,IAAI2/C,EAAO3/C,EAAK2/C,KACZzkD,EAAQ8E,EAAK9E,MACb8kD,EAAc1tD,EAAOA,EAAOP,OAAS,GAEzC,GAAIiuD,IAA6B,MAAbD,GAAqBR,GAAcS,EAAY9kD,MAAQA,EAAQ0kD,EAAaG,GAE9FC,EAAYb,MAAM9gD,KAAKshD,GACvBK,EAAY9kD,OAASA,EAAQ0kD,MACxB,CAEL,IAAIK,EAAU,CACZd,MAAO,CAACQ,GACRzkD,MAAOA,GAET5I,EAAO+L,KAAK4hD,GAGd,OAAO3tD,IACN,MAEJ,CACDhE,IAAK,SACL2B,MAAO,WACL,IAAIgZ,EAAc3H,KAAK5C,MACnBtD,EAAK6N,EAAY7N,GACjBC,EAAK4N,EAAY5N,GACjBf,EAAa2O,EAAY3O,WACzB4lD,EAAiBj3C,EAAYi3C,eAC7BX,EAAat2C,EAAYs2C,WACzB1oD,EAAQoS,EAAYpS,MACpBsC,EAAa8P,EAAY9P,WACzBgnD,EAAYl3C,EAAYk3C,UACxBx+C,EAAYsH,EAAYtH,UACxBy+C,EAAYnqD,GAAyBgT,EAAa,CAAC,KAAM,KAAM,aAAc,iBAAkB,aAAc,QAAS,aAAc,YAAa,cAEjJm2C,EAAe99C,KAAKsL,MAAMwyC,aAE9B,IAAKhsD,EAAWgtD,EAAU9kD,KAAOlI,EAAWgtD,EAAU7kD,GACpD,OAAO,KAGT,IAEI8kD,EAFA/kD,EAAI8kD,EAAU9kD,GAAKrI,EAASmI,GAAMA,EAAK,GACvCG,EAAI6kD,EAAU7kD,GAAKtI,EAASoI,GAAMA,EAAK,GAG3C,OAAQ6kD,GACN,IAAK,QACHG,EAAUC,KAAc,QAAQ7sD,OAAO0sD,EAAW,MAClD,MAEF,IAAK,SACHE,EAAUC,KAAc,QAAQ7sD,QAAQ2rD,EAAartD,OAAS,GAAK,EAAG,QAAQ0B,OAAO0F,EAAY,QAAQ1F,OAAO0sD,EAAW,WAC3H,MAEF,QACEE,EAAUC,KAAc,QAAQ7sD,OAAO2rD,EAAartD,OAAS,EAAG,QAAQ0B,OAAO0F,EAAY,MAI/F,IAAIonD,EAAa,GAEjB,GAAIhB,EAAY,CACd,IAAIQ,EAAYX,EAAa,GAAGlkD,MAChCqlD,EAAWliD,KAAK,SAAS5K,OAAO6N,KAAK5C,MAAMxD,MAAQ6kD,EAAW,MAWhE,OARIlpD,GACF0pD,EAAWliD,KAAK,UAAU5K,OAAOoD,EAAO,MAAMpD,OAAO6H,EAAG,MAAM7H,OAAO8H,EAAG,MAGtEglD,EAAWxuD,SACbquD,EAAUvlD,UAAY0lD,EAAWjvC,KAAK,MAGjCtT,IAAMyB,cAAc,OAAQ0B,GAAS,GAAI5C,EAA0B6hD,GAAYrhD,EAAsBqhD,GAAY,CACtH9kD,EAAGA,EACHC,EAAGA,EACHoG,UAAWO,IAAW,gBAAiBP,GACvCrH,WAAYA,IACV8kD,EAAarhD,KAAI,SAAUu9C,EAAMjpD,GACnC,OACE2L,IAAMyB,cAAc,QAAS,CAC3BnE,EAAGA,EACHD,GAAc,IAAVhJ,EAAcguD,EAAUlnD,EAC5B7K,IAAK+D,GACJipD,EAAK6D,MAAM7tC,KAAK,eAtMiD/J,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA4M3Ko2C,EAlKT,CAmKE/kC,aAEF+kC,GAAKz9C,UA/NL,SAAuBrS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EA+N5emb,CAAc,GAAI7T,EAAyB,CAC1D+oD,WAAY9oD,IAAUiY,KACtB7X,MAAOJ,IAAUK,OACjBwD,WAAY7D,IAAUiB,MAAM,CAAC,QAAS,SAAU,MAAO,YACvDwoD,eAAgBzpD,IAAUiB,MAAM,CAAC,QAAS,SAAU,QACpDuD,MAAOxE,IAAUjF,SAEnBwtD,GAAK10C,aAAe,CAClBhP,EAAG,EACHC,EAAG,EACHpC,WAAY,MACZgnD,UAAW,SAEXZ,YAAY,EACZjlD,WAAY,QACZ4lD,eAAgB,OAGHlB,UCjPf,SAAS5pD,GAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,CAAE,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIzF,MAAMuF,EAAItD,QAASuD,EAAID,EAAItD,OAAQuD,IAAOC,EAAKD,GAAKD,EAAIC,GAAM,OAAOC,GANnHC,CAAmBH,IAI7D,SAA0BI,GAAQ,GAAIxE,OAAOyE,YAAYhF,OAAO+E,IAAkD,uBAAzC/E,OAAOiF,UAAUC,SAASpG,KAAKiG,GAAgC,OAAO3F,MAAM+F,KAAKJ,GAJrFK,CAAiBT,IAEtF,WAAgC,MAAM,IAAIU,UAAU,mDAF0CC,GAQ9F,SAASmL,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAAS4S,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAI9U,SAAS4S,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAS3M,IAAIqsD,GAAwB/pD,IAAUiL,MAAM,CAC1CpG,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACboE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,SAEhB2pD,GAAoBhqD,IAAUiL,MAAM,CACtCoI,GAAIrT,IAAUK,OACdiT,GAAItT,IAAUK,OACdg/C,YAAar/C,IAAUK,OACvBi/C,YAAat/C,IAAUK,OACvBy+C,WAAY9+C,IAAUK,OACtB0+C,SAAU/+C,IAAUK,SAGlByK,GA1BJ,SAAuBrS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EA0B7emb,CAAc,GAAI7T,EAAyB,CACzDiL,QAAShL,IAAUuB,UAAU,CAACwoD,GAAuBC,KACrDt1C,UAAW1U,IAAUmF,KACrB3L,MAAOwG,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACxD4lB,OAAQ7lB,IAAUK,OAClBuX,SAAU5X,IAAUiB,MAAM,CAAC,MAAO,OAAQ,QAAS,SAAU,SAAU,UAAW,aAAc,cAAe,YAAa,eAAgB,gBAAiB,mBAAoB,iBAAkB,oBAAqB,cAAe,YAAa,MAAO,SAAU,YAAa,iBAClRkG,SAAUnH,IAAUuB,UAAU,CAACvB,IAAUmL,QAAQnL,IAAUoL,MAAOpL,IAAUoL,OAC5EF,UAAWlL,IAAUC,OACrBuV,QAASxV,IAAUuB,UAAU,CAACvB,IAAUyV,QAASzV,IAAUmF,SAyBzD8kD,GAAoB,SAA2BC,EAAYnlC,EAAOrZ,GACpE,IAcIy+C,EAAYnpD,EAdZ4W,EAAWsyC,EAAWtyC,SACtB5M,EAAUk/C,EAAWl/C,QACrB6a,EAASqkC,EAAWrkC,OACpB3a,EAAYg/C,EAAWh/C,UACvBmI,EAAKrI,EAAQqI,GACbC,EAAKtI,EAAQsI,GACb+rC,EAAcr0C,EAAQq0C,YACtBC,EAAct0C,EAAQs0C,YACtBR,EAAa9zC,EAAQ8zC,WACrBC,EAAW/zC,EAAQ+zC,SACnBqL,EAAYp/C,EAAQo/C,UACpBplD,GAAUq6C,EAAcC,GAAe,EACvC+K,EAnBc,SAAuBvL,EAAYC,GAGrD,OAFW3iD,EAAS2iD,EAAWD,GACd1kD,KAAK4R,IAAI5R,KAAKwR,IAAImzC,EAAWD,GAAa,KAiB1C0B,CAAc1B,EAAYC,GACvC5c,EAAOkoB,GAAc,EAAI,GAAK,EAGjB,gBAAbzyC,GACFuyC,EAAarL,EAAa3c,EAAOtc,EACjC7kB,EAAYopD,GACU,cAAbxyC,GACTuyC,EAAapL,EAAW5c,EAAOtc,EAC/B7kB,GAAaopD,GACS,QAAbxyC,IACTuyC,EAAapL,EAAW5c,EAAOtc,EAC/B7kB,EAAYopD,GAGdppD,EAAYqpD,GAAc,EAAIrpD,GAAaA,EAC3C,IAAIspD,EAAa9L,GAAiBnrC,EAAIC,EAAItO,EAAQmlD,GAC9CI,EAAW/L,GAAiBnrC,EAAIC,EAAItO,EAAQmlD,EAAoC,KAAtBnpD,EAAY,GAAK,IAC3EqN,EAAO,IAAIrR,OAAOstD,EAAWzlD,EAAG,KAAK7H,OAAOstD,EAAWxlD,EAAG,WAAW9H,OAAOgI,EAAQ,KAAKhI,OAAOgI,EAAQ,SAAShI,OAAOgE,EAAY,EAAI,EAAG,WAAWhE,OAAOutD,EAAS1lD,EAAG,KAAK7H,OAAOutD,EAASzlD,GAC9L/H,EAAKuM,IAAO4gD,EAAWntD,IAAMF,EAAS,yBAA2BqtD,EAAWntD,GAChF,OAAOwK,IAAMyB,cAAc,OAAQ0B,GAAS,GAAIgB,EAAO,CACrDvK,iBAAkB,UAClB+J,UAAWO,IAAW,4BAA6BP,KACjD3D,IAAMyB,cAAc,OAAQ,KAAMzB,IAAMyB,cAAc,OAAQ,CAChEjM,GAAIA,EACJwW,EAAGlF,KACA9G,IAAMyB,cAAc,WAAY,CACnCwhD,UAAW,IAAIxtD,OAAOD,IACrBgoB,KAgNL,SAAS0lC,GAAMxiD,GACb,IAgBI8c,EAhBA/Z,EAAU/C,EAAM+C,QAChB4M,EAAW3P,EAAM2P,SACjBpe,EAAQyO,EAAMzO,MACd2N,EAAWc,EAAMd,SACjBqO,EAAUvN,EAAMuN,QAChBk1C,EAAmBziD,EAAMiD,UACzBA,OAAiC,IAArBw/C,EAA8B,GAAKA,EAEnD,IAAK1/C,GAAW1B,IAAO9P,IAAU8P,IAAOnC,KAAce,yBAAesN,KAAaxN,IAAYwN,GAC5F,OAAO,KAGT,GAAItN,yBAAesN,GACjB,OAAOuC,uBAAavC,EAASvN,GAK/B,GAAID,IAAYwN,IAGd,GAFAuP,EAAQvP,EAAQvN,GAEZC,yBAAe6c,GACjB,OAAOA,OAGTA,EArSW,SAAkB9c,GAC/B,IAAIzO,EAAQyO,EAAMzO,MACdkb,EAAYzM,EAAMyM,UAClBqQ,EAAQzb,IAAOrB,EAAMd,UAAY3N,EAAQyO,EAAMd,SAEnD,OAAIa,IAAY0M,GACPA,EAAUqQ,GAGZA,EA4RG4lC,CAAS1iD,GAGnB,IAAI2iD,EAjCQ,SAAiB5/C,GAC7B,OAAOxO,EAASwO,EAAQqI,IAgCLw3C,CAAQ7/C,GACvBU,EAAQ5D,EAA0BG,GAClC6iD,EAASxiD,EAAsBL,GAEnC,GAAI2iD,IAA8B,gBAAbhzC,GAA2C,cAAbA,GAAyC,QAAbA,GAC7E,OAAOqyC,GAAkBhiD,EAAO8c,EAAOrZ,GAGzC,IAAIq/C,EAAgBH,EAlPK,SAA8B3iD,GACvD,IAAI+C,EAAU/C,EAAM+C,QAChB6a,EAAS5d,EAAM4d,OACfjO,EAAW3P,EAAM2P,SACjBvE,EAAKrI,EAAQqI,GACbC,EAAKtI,EAAQsI,GACb+rC,EAAcr0C,EAAQq0C,YACtBC,EAAct0C,EAAQs0C,YAGtB0L,GAFahgD,EAAQ8zC,WACV9zC,EAAQ+zC,UACkB,EAEzC,GAAiB,YAAbnnC,EAAwB,CAC1B,IAAIqzC,EAAoBzM,GAAiBnrC,EAAIC,EAAIgsC,EAAcz5B,EAAQmlC,GACnE7G,EAAK8G,EAAkBpmD,EAG3B,MAAO,CACLA,EAAGs/C,EACHr/C,EAJOmmD,EAAkBnmD,EAKzBjB,WAAYsgD,GAAM9wC,EAAK,QAAU,MACjCo2C,eAAgB,UAIpB,GAAiB,WAAb7xC,EACF,MAAO,CACL/S,EAAGwO,EACHvO,EAAGwO,EACHzP,WAAY,SACZ4lD,eAAgB,UAIpB,GAAiB,cAAb7xC,EACF,MAAO,CACL/S,EAAGwO,EACHvO,EAAGwO,EACHzP,WAAY,SACZ4lD,eAAgB,SAIpB,GAAiB,iBAAb7xC,EACF,MAAO,CACL/S,EAAGwO,EACHvO,EAAGwO,EACHzP,WAAY,SACZ4lD,eAAgB,OAIpB,IAEIyB,EAAqB1M,GAAiBnrC,EAAIC,GAFrC+rC,EAAcC,GAAe,EAEe0L,GAIrD,MAAO,CACLnmD,EAJMqmD,EAAmBrmD,EAKzBC,EAJMomD,EAAmBpmD,EAKzBjB,WAAY,SACZ4lD,eAAgB,UAoLiB0B,CAAqBljD,GAhL3B,SAAkCA,GAC/D,IAAI+C,EAAU/C,EAAM+C,QAChB6a,EAAS5d,EAAM4d,OACfjO,EAAW3P,EAAM2P,SACjB/S,EAAImG,EAAQnG,EACZC,EAAIkG,EAAQlG,EACZL,EAAQuG,EAAQvG,MAChBC,EAASsG,EAAQtG,OACjBy9B,EAAOz9B,GAAU,EAAI,GAAK,EAE9B,MAAiB,QAAbkT,EACK,CACL/S,EAAGA,EAAIJ,EAAQ,EACfK,EAAGA,EAAIq9B,EAAOtc,EACdhiB,WAAY,SACZ4lD,eAAgBtnB,EAAO,EAAI,MAAQ,SAItB,WAAbvqB,EACK,CACL/S,EAAGA,EAAIJ,EAAQ,EACfK,EAAGA,EAAIJ,EAASy9B,EAAOtc,EACvBhiB,WAAY,SACZ4lD,eAAgB,SAIH,SAAb7xC,EACK,CACL/S,EAAGA,EAAIghB,EACP/gB,EAAGA,EAAIJ,EAAS,EAChBb,WAAY,MACZ4lD,eAAgB,UAIH,UAAb7xC,EACK,CACL/S,EAAGA,EAAIJ,EAAQohB,EACf/gB,EAAGA,EAAIJ,EAAS,EAChBb,WAAY,QACZ4lD,eAAgB,UAIH,eAAb7xC,EACK,CACL/S,EAAGA,EAAIghB,EACP/gB,EAAGA,EAAIJ,EAAS,EAChBb,WAAY,QACZ4lD,eAAgB,UAIH,gBAAb7xC,EACK,CACL/S,EAAGA,EAAIJ,EAAQohB,EACf/gB,EAAGA,EAAIJ,EAAS,EAChBb,WAAY,MACZ4lD,eAAgB,UAIH,cAAb7xC,EACK,CACL/S,EAAGA,EAAIJ,EAAQ,EACfK,EAAGA,EAAIq9B,EAAOtc,EACdhiB,WAAY,SACZ4lD,eAAgB,SAIH,iBAAb7xC,EACK,CACL/S,EAAGA,EAAIJ,EAAQ,EACfK,EAAGA,EAAIJ,EAASy9B,EAAOtc,EACvBhiB,WAAY,SACZ4lD,eAAgB,OAIH,kBAAb7xC,EACK,CACL/S,EAAGA,EAAIghB,EACP/gB,EAAGA,EAAIq9B,EAAOtc,EACdhiB,WAAY,QACZ4lD,eAAgB,SAIH,mBAAb7xC,EACK,CACL/S,EAAGA,EAAIJ,EAAQohB,EACf/gB,EAAGA,EAAIq9B,EAAOtc,EACdhiB,WAAY,MACZ4lD,eAAgB,SAIH,qBAAb7xC,EACK,CACL/S,EAAGA,EAAIghB,EACP/gB,EAAGA,EAAIJ,EAASy9B,EAAOtc,EACvBhiB,WAAY,QACZ4lD,eAAgB,OAIH,sBAAb7xC,EACK,CACL/S,EAAGA,EAAIJ,EAAQohB,EACf/gB,EAAGA,EAAIJ,EAASy9B,EAAOtc,EACvBhiB,WAAY,MACZ4lD,eAAgB,OAIhBthD,IAAUyP,KAAcpb,EAASob,EAAS/S,IAAMxI,EAAUub,EAAS/S,MAAQrI,EAASob,EAAS9S,IAAMzI,EAAUub,EAAS9S,IACjH,CACLD,EAAGA,EAAI5H,EAAgB2a,EAAS/S,EAAGJ,GACnCK,EAAGA,EAAI7H,EAAgB2a,EAAS9S,EAAGJ,GACnCb,WAAY,MACZ4lD,eAAgB,OAIb,CACL5kD,EAAGA,EAAIJ,EAAQ,EACfK,EAAGA,EAAIJ,EAAS,EAChBb,WAAY,SACZ4lD,eAAgB,UA6C+C2B,CAAyBnjD,GAC1F,OAAOV,IAAMyB,cAAcu/C,GAAM79C,GAAS,CACxCQ,UAAWO,IAAW,iBAAkBP,IACvCQ,EAAOq/C,EAAeD,GAAS/lC,GAGpC0lC,GAAMxjD,YAAc,QACpBwjD,GAAM52C,aA3Ta,CACjBgS,OAAQ,GA2TV4kC,GAAM3/C,UAAYA,GAElB,IAAIugD,GAAe,SAAsBpjD,GACvC,IAAIoL,EAAKpL,EAAMoL,GACXC,EAAKrL,EAAMqL,GACXlT,EAAQ6H,EAAM7H,MACd0+C,EAAa72C,EAAM62C,WACnBC,EAAW92C,EAAM82C,SACjBh6C,EAAIkD,EAAMlD,EACVC,EAASiD,EAAMjD,OACfq6C,EAAcp3C,EAAMo3C,YACpBC,EAAcr3C,EAAMq3C,YACpBz6C,EAAIoD,EAAMpD,EACVC,EAAImD,EAAMnD,EACVkS,EAAM/O,EAAM+O,IACZH,EAAO5O,EAAM4O,KACbpS,EAAQwD,EAAMxD,MACdC,EAASuD,EAAMvD,OACf0lD,EAAYniD,EAAMmiD,UAEtB,GAAI5tD,EAASiI,IAAUjI,EAASkI,GAAS,CACvC,GAAIlI,EAASqI,IAAMrI,EAASsI,GAC1B,MAAO,CACLD,EAAGA,EACHC,EAAGA,EACHL,MAAOA,EACPC,OAAQA,GAIZ,GAAIlI,EAASwa,IAAQxa,EAASqa,GAC5B,MAAO,CACLhS,EAAGmS,EACHlS,EAAG+R,EACHpS,MAAOA,EACPC,OAAQA,GAKd,OAAIlI,EAASqI,IAAMrI,EAASsI,GACnB,CACLD,EAAGA,EACHC,EAAGA,EACHL,MAAO,EACPC,OAAQ,GAIRlI,EAAS6W,IAAO7W,EAAS8W,GACpB,CACLD,GAAIA,EACJC,GAAIA,EACJwrC,WAAYA,GAAc1+C,GAAS,EACnC2+C,SAAUA,GAAY3+C,GAAS,EAC/Bi/C,YAAaA,GAAe,EAC5BC,YAAaA,GAAet6C,GAAUD,GAAK,EAC3CqlD,UAAWA,GAIXniD,EAAM+C,QACD/C,EAAM+C,QAGR,IAGLsgD,GAAa,SAAoBvmC,EAAO/Z,GAC1C,OAAK+Z,GAIS,IAAVA,EACKxd,IAAMyB,cAAcyhD,GAAO,CAChC5yD,IAAK,iBACLmT,QAASA,IAITrO,EAAWooB,GACNxd,IAAMyB,cAAcyhD,GAAO,CAChC5yD,IAAK,iBACLmT,QAASA,EACTxR,MAAOurB,IAIP7c,yBAAe6c,GACbA,EAAMrtB,OAAS+yD,GACV1yC,uBAAagN,EAAO,CACzBltB,IAAK,iBACLmT,QAASA,IAINzD,IAAMyB,cAAcyhD,GAAO,CAChC5yD,IAAK,iBACL2d,QAASuP,EACT/Z,QAASA,IAIThD,IAAY+c,GACPxd,IAAMyB,cAAcyhD,GAAO,CAChC5yD,IAAK,iBACL2d,QAASuP,EACT/Z,QAASA,IAIT7C,IAAU4c,GACLxd,IAAMyB,cAAcyhD,GAAO//C,GAAS,CACzCM,QAASA,GACR+Z,EAAO,CACRltB,IAAK,oBAIF,KAjDE,MA4EX4yD,GAAMY,aAAeA,GACrBZ,GAAMc,mBAzBmB,SAA4BC,EAAaxgD,GAChE,IAAIygD,IAAkBpuD,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,KAAmBA,UAAU,GAErF,IAAKmuD,IAAgBA,EAAYrkD,UAAYskD,IAAoBD,EAAYzmC,MAC3E,OAAO,KAGT,IAAI5d,EAAWqkD,EAAYrkD,SACvBukD,EAAgBL,GAAaG,GAC7BG,EAAkBzkD,EAAcC,EAAUsjD,IAAOnjD,KAAI,SAAUI,EAAO9L,GACxE,OAAOmc,uBAAarQ,EAAO,CACzBsD,QAASA,GAAW0gD,EACpB7zD,IAAK,SAASmF,OAAOpB,QAIzB,IAAK6vD,EACH,OAAOE,EAGT,IAAIC,EAAgBN,GAAWE,EAAYzmC,MAAO/Z,GAAW0gD,GAC7D,MAAO,CAACE,GAAe5uD,OAAO2B,GAAmBgtD,KAKpClB,U,qBC/ff,SAAS9rD,GAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,CAAE,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIzF,MAAMuF,EAAItD,QAASuD,EAAID,EAAItD,OAAQuD,IAAOC,EAAKD,GAAKD,EAAIC,GAAM,OAAOC,GANnHC,CAAmBH,IAI7D,SAA0BI,GAAQ,GAAIxE,OAAOyE,YAAYhF,OAAO+E,IAAkD,uBAAzC/E,OAAOiF,UAAUC,SAASpG,KAAKiG,GAAgC,OAAO3F,MAAM+F,KAAKJ,GAJrFK,CAAiBT,IAEtF,WAAgC,MAAM,IAAIU,UAAU,mDAF0CC,GAQ9F,SAASmL,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAAS4S,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAAS8B,GAAyB5H,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAAkEC,EAAKgH,EAAnEpG,EAEzF,SAAuCb,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAFxMkH,CAA8B/H,EAAQ6H,GAAuB,GAAIxF,OAAO2F,sBAAuB,CAAE,IAAIC,EAAmB5F,OAAO2F,sBAAsBhI,GAAS,IAAKiH,EAAI,EAAGA,EAAIgB,EAAiBvE,OAAQuD,IAAOhH,EAAMgI,EAAiBhB,GAAQY,EAASlD,QAAQ1E,IAAQ,GAAkBoC,OAAOiF,UAAUY,qBAAqB/G,KAAKnB,EAAQC,KAAgBY,EAAOZ,GAAOD,EAAOC,IAAU,OAAOY,EAUne,IAAIqS,GAAY,CACd/N,GAAIiD,IAAUC,OACdyI,KAAM1I,IAAUmL,QAAQnL,IAAUjF,QAClC8wD,cAAe7rD,IAAUmF,KACzBilD,UAAWpqD,IAAUiY,KACrByN,QAAS1lB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,OAAQL,IAAUmF,QAE1E0O,GAAe,CACjBg4C,cAAe,SAAuBxtD,GACpC,OAAOgJ,IAAShJ,EAAM7E,OAASsyD,KAAMztD,EAAM7E,OAAS6E,EAAM7E,QAI9D,SAASuyD,GAAU9jD,GACjB,IAAIS,EAAOT,EAAMS,KACbmjD,EAAgB5jD,EAAM4jD,cACtBnmC,EAAUzd,EAAMyd,QAChB0kC,EAAYniD,EAAMmiD,UAClBrtD,EAAKkL,EAAMlL,GACXuO,EAAS9L,GAAyByI,EAAO,CAAC,OAAQ,gBAAiB,UAAW,YAAa,OAE/F,OAAKS,GAASA,EAAKpN,OAIZiM,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAW,uBACVxC,EAAKpB,KAAI,SAAUjJ,EAAOzC,GAC3B,IAAIpC,EAAQ8P,IAAOoc,GAAWmmC,EAAcxtD,EAAOzC,GAASi7C,GAAkBx4C,GAASA,EAAMiW,QAASoR,GAClGsmC,EAAU1iD,IAAOvM,GAAM,GAAK,CAC9BA,GAAI,GAAGC,OAAOD,EAAI,KAAKC,OAAOpB,IAEhC,OAAO2L,IAAMyB,cAAcyhD,GAAO//C,GAAS,GAAI5C,EAA0BzJ,GAAQiN,EAAQ0gD,EAAS,CAChGpwD,MAAOA,EACPpC,MAAOA,EACPwR,QAASy/C,GAAMY,aAAa/hD,IAAO8gD,GAAa/rD,EAAQuV,GAAc,GAAIvV,EAAO,CAC/E+rD,UAAWA,KAEbvyD,IAAK,SAASmF,OAAOpB,UAhBhB,KAsBXmwD,GAAUjhD,UAAYA,GACtBihD,GAAU9kD,YAAc,YAExB,IAAIglD,GAAiB,SAAwBlnC,EAAOrc,GAClD,OAAKqc,GAIS,IAAVA,EACKxd,IAAMyB,cAAc+iD,GAAW,CACpCl0D,IAAK,qBACL6Q,KAAMA,IAINnB,IAAMW,eAAe6c,IAAU/c,IAAY+c,GACtCxd,IAAMyB,cAAc+iD,GAAW,CACpCl0D,IAAK,qBACL6Q,KAAMA,EACN8M,QAASuP,IAIT5c,IAAU4c,GACLxd,IAAMyB,cAAc+iD,GAAWrhD,GAAS,CAC7ChC,KAAMA,GACLqc,EAAO,CACRltB,IAAK,wBAIF,KA1BE,MAoDXk0D,GAAUR,mBAvBe,SAA4BC,EAAa9iD,GAChE,IAAI+iD,IAAkBpuD,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,KAAmBA,UAAU,GAErF,IAAKmuD,IAAgBA,EAAYrkD,UAAYskD,IAAoBD,EAAYzmC,MAC3E,OAAO,KAGT,IAAI5d,EAAWqkD,EAAYrkD,SACvBwkD,EAAkBzkD,EAAcC,EAAU4kD,IAAWzkD,KAAI,SAAUI,EAAO9L,GAC5E,OAAOmc,uBAAarQ,EAAO,CACzBgB,KAAMA,EACN7Q,IAAK,aAAamF,OAAOpB,QAI7B,IAAK6vD,EACH,OAAOE,EAGT,IAAIO,EAAoBD,GAAeT,EAAYzmC,MAAOrc,GAC1D,MAAO,CAACwjD,GAAmBlvD,OAAO2B,GAAmBgtD,KAIvDI,GAAUl4C,aAAeA,GACVk4C,UCjIf,SAASr7C,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAAS4S,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAsBrK,IAAI66C,GAEJ,SAAUl6C,GAGR,SAASk6C,IACP,IAAIn2C,EAEAzB,EAEJ5D,GAAgB9F,KAAMshD,GAEtB,IAAK,IAAIl2C,EAAO5Y,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAM4c,GAAOvX,EAAO,EAAGA,EAAOuX,EAAMvX,IAC/EwX,EAAKxX,GAAQrB,UAAUqB,GAuCzB,OApCA6V,EAAQvD,GAA2BnG,MAAOmL,EAAmB7E,GAAgBg7C,IAAMpzD,KAAK6R,MAAMoL,EAAkB,CAACnL,MAAM7N,OAAOkZ,MACxHC,MAAQ,CACZi2C,qBAAqB,GAEvB73C,EAAMxX,GAAKF,EAAS,iBAEpB0X,EAAM83C,cAAgB,SAAUzU,GAC9BrjC,EAAMgD,SAAS,CACb+0C,YAAa1U,KAIjBrjC,EAAMg4C,mBAAqB,WACzB,IAAI7rC,EAAiBnM,EAAMtM,MAAMyY,eAEjCnM,EAAMgD,SAAS,CACb60C,qBAAqB,IAGnBpkD,IAAY0Y,IACdA,KAIJnM,EAAMi4C,qBAAuB,WAC3B,IAAI7rC,EAAmBpM,EAAMtM,MAAM0Y,iBAEnCpM,EAAMgD,SAAS,CACb60C,qBAAqB,IAGnBpkD,IAAY2Y,IACdA,KAIGpM,EApFX,IAAsB1D,EAAaqB,EAAYC,EA6W7C,OArWF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GA2BjXE,CAAU45C,EAAKl6C,GAnCKpB,EAuFPs7C,EAvFgCh6C,EAuSzC,CAAC,CACHta,IAAK,gBACL2B,MAAO,SAAuBqL,EAAGwO,GAC/B,OAAIxO,EAAIwO,EACC,QAGLxO,EAAIwO,EACC,MAGF,WAER,CACDxb,IAAK,sBACL2B,MAAO,SAA6Bqc,EAAQ5N,GAC1C,OAAIV,IAAMW,eAAe2N,GAChBtO,IAAMwQ,aAAalC,EAAQ5N,GAGhCD,IAAY6N,GACPA,EAAO5N,GAGTV,IAAMyB,cAAco9C,GAAO17C,GAAS,GAAIzC,EAAO,CACpDvQ,KAAM,SACNwT,UAAW,+BAGd,CACDrT,IAAK,kBACL2B,MAAO,SAAyBqc,EAAQ5N,EAAOzO,GAC7C,GAAI+N,IAAMW,eAAe2N,GACvB,OAAOtO,IAAMwQ,aAAalC,EAAQ5N,GAGpC,IAAI8c,EAAQvrB,EAEZ,OAAIwO,IAAY6N,KACdkP,EAAQlP,EAAO5N,GAEXV,IAAMW,eAAe6c,IAChBA,EAIJxd,IAAMyB,cAAcu/C,GAAM79C,GAAS,GAAIzC,EAAO,CACnD9H,kBAAmB,SACnB+K,UAAW,4BACT6Z,KAEL,CACDltB,IAAK,mBACL2B,MAAO,SAA0Bqc,EAAQ5N,GACvC,OAAIV,IAAMW,eAAe2N,GAChBtO,IAAMwQ,aAAalC,EAAQ5N,GAGhCD,IAAY6N,GACPA,EAAO5N,GAGZwkD,KAAe52C,GACVtO,IAAMyB,cAAc83C,GAAQp2C,GAAS,GAAIzC,EAAO4N,IAGlDtO,IAAMyB,cAAc83C,GAAQ74C,OAzWNiK,EAuFf,CAAC,CACjBra,IAAK,4BAEL2B,MAAO,SAAmCiQ,GACxC,IAAI+I,EAAc3H,KAAK5C,MACnBykD,EAAcl6C,EAAYk6C,YAC1B9U,EAAUplC,EAAYolC,QAEtBnuC,EAAUsc,oBAAsBlb,KAAK5C,MAAM8d,kBAC7Clb,KAAKwhD,cAAc,IACV5iD,EAAUijD,cAAgBA,GACnC7hD,KAAKwhD,cAAczU,KAGtB,CACD//C,IAAK,gBACL2B,MAAO,SAAuBqF,GAC5B,IAAI8tD,EAAc9hD,KAAK5C,MAAM0kD,YAE7B,OAAItzD,MAAMD,QAAQuzD,IACmB,IAA5BA,EAAYpwD,QAAQsC,GAGtBA,IAAM8tD,IAEd,CACD90D,IAAK,eACL2B,MAAO,SAAsBo+C,GAC3B,IAAIpgC,EAAS3M,KAIb,GAFwBA,KAAK5C,MAAM8d,oBAETlb,KAAKsL,MAAMi2C,oBACnC,OAAO,KAGT,IAAIh5C,EAAevI,KAAK5C,MACpB8c,EAAQ3R,EAAa2R,MACrB6nC,EAAYx5C,EAAaw5C,UACzBlnC,EAAUtS,EAAasS,QACvBmnC,EAAWz5C,EAAay5C,SACxBC,EAAWhlD,EAA0B+C,KAAK5C,OAC1C8kD,EAAmBjlD,EAA0Bid,GAC7CioC,EAAuBllD,EAA0B8kD,GACjDK,EAAeloC,GAASA,EAAMkoC,cAAgB,GAC9CC,EAAStV,EAAQtwC,KAAI,SAAUjJ,EAAOQ,GACxC,IAAImsD,GAAY3sD,EAAMygD,WAAazgD,EAAM0gD,UAAY,EACjDwL,EAAW/L,GAAiBngD,EAAMgV,GAAIhV,EAAMiV,GAAIjV,EAAMihD,YAAc2N,EAAcjC,GAElFd,EAAat2C,GAAc,GAAIk5C,EAAU,GAAIzuD,EAAO,CACtDgF,OAAQ,QACP0pD,EAAkB,CACnBnxD,MAAOiD,EACPgF,WAAY2T,EAAOlJ,YAAY6+C,cAAc5C,EAAS1lD,EAAGxG,EAAMgV,KAC9Dk3C,GAEC6C,EAAYx5C,GAAc,GAAIk5C,EAAU,GAAIzuD,EAAO,CACrDgD,KAAM,OACNgC,OAAQhF,EAAMgD,MACb2rD,EAAsB,CACvBpxD,MAAOiD,EACPynD,OAAQ,CAAC9H,GAAiBngD,EAAMgV,GAAIhV,EAAMiV,GAAIjV,EAAMihD,YAAa0L,GAAWT,GAC5E1yD,IAAK,SAGHw1D,EAAc3nC,EAQlB,OANIpc,IAAOoc,IAAYpc,IAAOujD,GAC5BQ,EAAc,QACL/jD,IAAOoc,KAChB2nC,EAAcR,GAIdtlD,IAAMyB,cAAcyf,GAAO,CACzB5wB,IAAK,SAASmF,OAAO6B,IACpB+tD,GAAap1C,EAAOlJ,YAAYg/C,oBAAoBV,EAAWQ,GAAY51C,EAAOlJ,YAAYi/C,gBAAgBxoC,EAAOmlC,EAAYrT,GAAkBx4C,EAAOgvD,QAGjK,OAAO9lD,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAW,uBACVgiD,KAEJ,CACDr1D,IAAK,0BACL2B,MAAO,SAAiCo+C,GACtC,IAAI32B,EAASpW,KAEToV,EAAepV,KAAK5C,MACpBulD,EAAcvtC,EAAautC,YAC3BC,EAAcxtC,EAAawtC,YAC/B,OAAO7V,EAAQtwC,KAAI,SAAUjJ,EAAOQ,GAClC,IAAI6uD,EAAgBzsC,EAAO0sC,cAAc9uD,GAAK2uD,EAAc,KAExDI,EAAch6C,GAAc,GAAIvV,EAAO,CACzCgF,OAAQoqD,EAAcpvD,EAAMgD,KAAOhD,EAAMgF,SAG3C,OAAOkE,IAAMyB,cAAcyf,GAAO/d,GAAS,CACzCQ,UAAW,uBACVvC,GAAoBsY,EAAOhZ,MAAO5J,EAAOQ,GAAI,CAC9ChH,IAAK,UAAUmF,OAAO6B,KAEpBoiB,EAAO3S,YAAYu/C,iBAAiBH,EAAeE,SAG1D,CACD/1D,IAAK,6BACL2B,MAAO,WACL,IAAIs0D,EAASjjD,KAEToX,EAAepX,KAAK5C,MACpB2vC,EAAU31B,EAAa21B,QACvB7xB,EAAoB9D,EAAa8D,kBACjCgoC,EAAiB9rC,EAAa8rC,eAC9B/nC,EAAoB/D,EAAa+D,kBACjCC,EAAkBhE,EAAagE,gBAC/BymC,EAAczqC,EAAayqC,YAC3BJ,EAAczhD,KAAKsL,MAAMm2C,YAC7B,OAAO/kD,IAAMyB,cAAcyW,GAAS,CAClCzB,MAAO+vC,EACPtzC,SAAUuL,EACVtG,SAAUqG,EACVrL,OAAQuL,EACR7mB,KAAM,CACJrB,EAAG,GAELogB,GAAI,CACFpgB,EAAG,GAELlG,IAAK,OAAOmF,OAAO0vD,GACnB/rC,iBAAkB9V,KAAK2hD,qBACvB9rC,eAAgB7V,KAAK0hD,qBACpB,SAAUhjD,GACX,IAAIxL,EAAIwL,EAAKxL,EACTiwD,EAAW,GAEXC,GADQrW,GAAWA,EAAQ,IACVkH,WA8BrB,OA7BAlH,EAAQnwC,SAAQ,SAAUpJ,EAAOzC,GAC/B,IAAIsiD,EAAOoO,GAAeA,EAAY1wD,GAClCsyD,EAAetyD,EAAQ,EAAI0C,IAAKD,EAAO,eAAgB,GAAK,EAEhE,GAAI6/C,EAAM,CACR,IAAIiQ,EAAUvwD,EAAkBsgD,EAAKa,SAAWb,EAAKY,WAAYzgD,EAAM0gD,SAAW1gD,EAAMygD,YAEpFsP,EAASx6C,GAAc,GAAIvV,EAAO,CACpCygD,WAAYmP,EAAWC,EACvBnP,SAAUkP,EAAWE,EAAQpwD,GAAKmwD,IAGpCF,EAASpmD,KAAKwmD,GACdH,EAAWG,EAAOrP,aACb,CACL,IAAIA,EAAW1gD,EAAM0gD,SACjBD,EAAazgD,EAAMygD,WAEnBuL,EADoBzsD,EAAkB,EAAGmhD,EAAWD,EACvCuP,CAAkBtwD,GAE/BuwD,EAAU16C,GAAc,GAAIvV,EAAO,CACrCygD,WAAYmP,EAAWC,EACvBnP,SAAUkP,EAAW5D,EAAa6D,IAGpCF,EAASpmD,KAAK0mD,GACdL,EAAWK,EAAQvP,aAGhBx3C,IAAMyB,cAAcyf,GAAO,KAAMqlC,EAAOS,wBAAwBP,SAG1E,CACDn2D,IAAK,gBACL2B,MAAO,WACL,IAAIg1D,EAAe3jD,KAAK5C,MACpB2vC,EAAU4W,EAAa5W,QACvB7xB,EAAoByoC,EAAazoC,kBACjCumC,EAAczhD,KAAKsL,MAAMm2C,YAE7B,QAAIvmC,GAAqB6xB,GAAWA,EAAQt8C,SAAYgxD,GAAgBnsC,KAASmsC,EAAa1U,GAIvF/sC,KAAK0jD,wBAAwB3W,GAH3B/sC,KAAK4jD,+BAKf,CACD52D,IAAK,SACL2B,MAAO,WACL,IAAIk1D,EAAe7jD,KAAK5C,MACpB3Q,EAAOo3D,EAAap3D,KACpBsgD,EAAU8W,EAAa9W,QACvB1sC,EAAYwjD,EAAaxjD,UACzB6Z,EAAQ2pC,EAAa3pC,MACrB1R,EAAKq7C,EAAar7C,GAClBC,EAAKo7C,EAAap7C,GAClB+rC,EAAcqP,EAAarP,YAC3BC,EAAcoP,EAAapP,YAC3Bv5B,EAAoB2oC,EAAa3oC,kBACjCumC,EAAcoC,EAAapC,YAE/B,GAAIh1D,IAASsgD,IAAYA,EAAQt8C,SAAWkB,EAAS6W,KAAQ7W,EAAS8W,KAAQ9W,EAAS6iD,KAAiB7iD,EAAS8iD,GAC/G,OAAO,KAGT,IAAI9zC,EAAaC,IAAW,eAAgBP,GAC5C,OAAO3D,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAWM,GACVX,KAAK8jD,gBAAiB5pC,GAASla,KAAK+jD,aAAahX,GAAU6S,GAAMc,mBAAmB1gD,KAAK5C,MAAO,MAAM,KAAU8d,GAAqBumC,GAAensC,KAASmsC,EAAa1U,KAAamU,GAAUR,mBAAmB1gD,KAAK5C,MAAO2vC,GAAS,SArSpK9mC,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA6W3Kg6C,EA3UT,CA4UE14C,iBAEF04C,GAAIllD,YAAc,MAClBklD,GAAIrhD,UAAY8I,GAAc,GAAI7T,EAAyB,GAAIkF,EAAkB,CAC/EiG,UAAWlL,IAAUC,OACrBysD,YAAa1sD,IAAUK,OACvBgT,GAAIrT,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACrDqT,GAAItT,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACrD6+C,WAAY9+C,IAAUK,OACtB0+C,SAAU/+C,IAAUK,OACpB6tD,aAAcluD,IAAUK,OACxBg/C,YAAar/C,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC9Dq/C,YAAat/C,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC9D4/C,aAAc7/C,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC/DylB,QAAS1lB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,OAAQL,IAAUmF,OAAO4F,WACnF8jD,QAAS7uD,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,OAAQL,IAAUmF,OAC5E0nD,SAAU7sD,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,OAAQL,IAAUmF,OAC7EuD,KAAM1I,IAAUmL,QAAQnL,IAAUjF,QAClC0yD,YAAaztD,IAAUiY,KACvB62C,SAAU9uD,IAAUK,OACpBw3C,WAAY73C,IAAUiB,MAAM4F,GAC5BkoD,YAAa/uD,IAAUiB,MAAM6F,GAC7BkoD,UAAWhvD,IAAUK,OACrBu3C,QAAS53C,IAAUmL,QAAQnL,IAAUjF,QACrCzD,KAAM0I,IAAUiY,KAChB20C,UAAW5sD,IAAUuB,UAAU,CAACvB,IAAUjF,OAAQiF,IAAUmF,KAAMnF,IAAUyV,QAASzV,IAAUiY,OAC/F8M,MAAO/kB,IAAUuB,UAAU,CAACvB,IAAUiL,MAAM,CAC1CgiD,aAAcjtD,IAAUK,SACtBL,IAAUmF,KAAMnF,IAAUyV,QAASzV,IAAUiY,OACjDu1C,YAAaxtD,IAAUuB,UAAU,CAACvB,IAAUjF,OAAQiF,IAAUmF,KAAMnF,IAAUyV,UAC9Ek3C,YAAa3sD,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUmL,QAAQnL,IAAUK,UAChFsgB,iBAAkB3gB,IAAUmF,KAC5Bub,eAAgB1gB,IAAUmF,KAC1B4gB,kBAAmB/lB,IAAUiY,KAC7B81C,eAAgB/tD,IAAUK,OAC1B2lB,kBAAmBhmB,IAAUK,OAC7B4lB,gBAAiBjmB,IAAUiB,MAAM,CAAC,OAAQ,UAAW,WAAY,cAAe,SAAU,WAC1FlE,GAAIiD,IAAUC,SAEhBksD,GAAIt4C,aAAe,CACjBxQ,OAAQ,OACRhC,KAAM,UACNw2C,WAAY,OAEZxkC,GAAI,MAEJC,GAAI,MAEJwrC,WAAY,EAEZC,SAAU,IAEVM,YAAa,EAEbC,YAAa,MACb4O,aAAc,EACdtB,WAAW,EACXt1D,MAAM,EACNw3D,SAAU,EACV/oC,mBAAoBjd,KACpBilD,eAAgB,IAChB/nC,kBAAmB,KACnBC,gBAAiB,OACjB4oC,QAAS,OAETpB,aAAa,GAGftB,GAAI8C,gBAAkB,SAAUvlD,GAC9B,IAAIo1C,EAAap1C,EAAMo1C,WACnBC,EAAWr1C,EAAMq1C,SAGrB,OAFW3iD,EAAS2iD,EAAWD,GACd1kD,KAAK4R,IAAI5R,KAAKwR,IAAImzC,EAAWD,GAAa,MAI7DqN,GAAI+C,eAAiB,SAAU54C,GAC7B,IAAI+gC,EAAc/gC,EAAKrO,MACnBS,EAAO2uC,EAAY3uC,KACnBvB,EAAWkwC,EAAYlwC,SACvBgoD,EAAoBrnD,EAA0BwO,EAAKrO,OACnDmnD,EAAQloD,EAAcC,EAAUqhB,IAEpC,OAAI9f,GAAQA,EAAKpN,OACRoN,EAAKpB,KAAI,SAAUjJ,EAAOzC,GAC/B,OAAOgY,GAAc,CACnBU,QAASjW,GACR8wD,EAAmB,GAAI9wD,EAAO,GAAI+wD,GAASA,EAAMxzD,IAAUwzD,EAAMxzD,GAAOqM,UAI3EmnD,GAASA,EAAM9zD,OACV8zD,EAAM9nD,KAAI,SAAU+nD,GACzB,OAAOz7C,GAAc,GAAIu7C,EAAmB,GAAIE,EAAKpnD,UAIlD,IAGTkkD,GAAImD,qBAAuB,SAAUh5C,EAAMuP,GACzC,IAAI7O,EAAM6O,EAAO7O,IACbH,EAAOgP,EAAOhP,KACdpS,EAAQohB,EAAOphB,MACfC,EAASmhB,EAAOnhB,OAChB6qD,EAAe9Q,GAAah6C,EAAOC,GAMvC,MAAO,CACL2O,GANOwD,EAAO5Z,EAAgBqZ,EAAKrO,MAAMoL,GAAI5O,EAAOA,EAAQ,GAO5D6O,GANO0D,EAAM/Z,EAAgBqZ,EAAKrO,MAAMqL,GAAI5O,EAAQA,EAAS,GAO7D26C,YANgBpiD,EAAgBqZ,EAAKrO,MAAMo3C,YAAakQ,EAAc,GAOtEjQ,YANgBriD,EAAgBqZ,EAAKrO,MAAMq3C,YAAaiQ,EAA6B,GAAfA,GAOtEP,UANc14C,EAAKrO,MAAM+mD,WAAa50D,KAAK8R,KAAKzH,EAAQA,EAAQC,EAASA,GAAU,IAUvFynD,GAAIqD,gBAAkB,SAAUhiC,GAC9B,IAAIlX,EAAOkX,EAAMlX,KACbuP,EAAS2H,EAAM3H,OACf4pC,EAAmBjiC,EAAMiiC,iBACzBC,EAAmBliC,EAAMkiC,iBACzBC,EAAUxD,GAAI+C,eAAe54C,GAEjC,IAAKq5C,IAAYA,EAAQr0D,OACvB,MAAO,GAGT,IAAIw8C,EAAexhC,EAAKrO,MACpB43C,EAAe/H,EAAa+H,aAC5Bf,EAAahH,EAAagH,WAC1BC,EAAWjH,EAAaiH,SACxBmP,EAAepW,EAAaoW,aAC5BxoC,EAAUoyB,EAAapyB,QACvBmpC,EAAU/W,EAAa+W,QACvBhC,EAAW/U,EAAa+U,SACxBkC,EAAcjX,EAAaiX,YAC3BD,EAAW10D,KAAKwR,IAAI0K,EAAKrO,MAAM6mD,UAC/BhpC,EAAaqmC,GAAImD,qBAAqBh5C,EAAMuP,GAC5CkD,EAAM4mC,EAAQr0D,OACd+uD,EAAa8B,GAAI8C,gBAAgB,CACnCnQ,WAAYA,EACZC,SAAUA,IAER6Q,EAAgBx1D,KAAKwR,IAAIy+C,GAEzBwF,EAAiBD,EAAgB7mC,EAAM+lC,GADnBc,GAAiB,IAAM7mC,EAAMA,EAAM,GAAKmlC,EAE5Db,EAAc3nC,EAEdpc,IAAOoc,IAAYpc,IAAOujD,GAE5BQ,EAAc,QACL/jD,IAAOoc,KAEhB2nC,EAAcR,GAGhB,IAIIjV,EAGEsG,EAPF4R,EAAMH,EAAQ51C,QAAO,SAAUle,EAAQwC,GACzC,IAAImgB,EAAMq4B,GAAkBx4C,EAAOgvD,EAAa,GAChD,OAAOxxD,GAAUW,EAASgiB,GAAOA,EAAM,KACtC,GAGCsxC,EAAM,IAERlY,EAAU+X,EAAQroD,KAAI,SAAUjJ,EAAOQ,GACrC,IAGIkxD,EAHAvxC,EAAMq4B,GAAkBx4C,EAAOgvD,EAAa,GAC5C11D,EAAOk/C,GAAkBx4C,EAAOwwD,EAAShwD,GACzC3B,GAAWV,EAASgiB,GAAOA,EAAM,GAAKsxC,EAStCrP,GALFsP,EADElxD,EACeq/C,EAAKa,SAAW3iD,EAASiuD,GAAc6D,EAEvCpP,GAGiB1iD,EAASiuD,IAAeyE,EAAW5xD,EAAU2yD,GAC7E7E,GAAY+E,EAAiBtP,GAAgB,EAC7CuP,GAAgBlqC,EAAWu5B,YAAcv5B,EAAWw5B,aAAe,EACnE2Q,EAAiB,CAAC,CACpBt4D,KAAMA,EACN6B,MAAOglB,EACPlK,QAASjW,EACTqnB,QAAS2nC,EACT31D,KAAMq3D,IAEJmB,EAAkB1R,GAAiB14B,EAAWzS,GAAIyS,EAAWxS,GAAI08C,EAAchF,GAgBnF,OAfA9M,EAAOtqC,GAAc,CACnB1W,QAASA,EACT2iD,aAAcA,EACdloD,KAAMA,EACNs4D,eAAgBA,EAChBjF,SAAUA,EACVgF,aAAcA,EACdE,gBAAiBA,GAChB7xD,EAAO,GAAIynB,EAAY,CACxBtsB,MAAOq9C,GAAkBx4C,EAAOgvD,GAChCvO,WAAYiR,EACZhR,SAAU0B,EACVnsC,QAASjW,EACT6vD,aAAc9xD,EAASiuD,GAAc6D,QAM3C,OAAOt6C,GAAc,GAAIkS,EAAY,CACnC8xB,QAASA,EACTlvC,KAAMinD,EACNjqD,aAAc+pD,EACdhqD,aAAciqD,KAIHvD,UC1lBf,SAASz7C,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASmC,GAAyB5H,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAAkEC,EAAKgH,EAAnEpG,EAEzF,SAAuCb,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAFxMkH,CAA8B/H,EAAQ6H,GAAuB,GAAIxF,OAAO2F,sBAAuB,CAAE,IAAIC,EAAmB5F,OAAO2F,sBAAsBhI,GAAS,IAAKiH,EAAI,EAAGA,EAAIgB,EAAiBvE,OAAQuD,IAAOhH,EAAMgI,EAAiBhB,GAAQY,EAASlD,QAAQ1E,IAAQ,GAAkBoC,OAAOiF,UAAUY,qBAAqB/G,KAAKnB,EAAQC,KAAgBY,EAAOZ,GAAOD,EAAOC,IAAU,OAAOY,EAIne,SAASwX,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAUrK,IAAI6+C,GAEJ,SAAUl+C,GAGR,SAASk+C,IAGP,OAFAx/C,GAAgB9F,KAAMslD,GAEfn/C,GAA2BnG,KAAMsG,GAAgBg/C,GAAevlD,MAAMC,KAAMxN,YA5BvF,IAAsBwT,EAAaqB,EAAYC,EA6T7C,OArTF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAejXE,CAAU49C,EAAel+C,GAvBLpB,EA+BPs/C,EA/BgCh+C,EA8RzC,CAAC,CACHta,IAAK,iBACL2B,MAAO,SAAwBqc,EAAQ5N,GACrC,IAAImoD,EAEJ,GAAI7oD,IAAMW,eAAe2N,GACvBu6C,EAAW7oD,IAAMwQ,aAAalC,EAAQ5N,QACjC,GAAID,IAAY6N,GACrBu6C,EAAWv6C,EAAO5N,OACb,CACL,IAAIwF,EAAKxF,EAAMwF,GACXC,EAAKzF,EAAMyF,GACXC,EAAK1F,EAAM0F,GACXC,EAAK3F,EAAM2F,GACX/V,EAAMoQ,EAAMpQ,IACZyT,EAAS9L,GAAyByI,EAAO,CAAC,KAAM,KAAM,KAAM,KAAM,QAEtEmoD,EAAW7oD,IAAMyB,cAAc,OAAQ0B,GAAS,GAAI5C,EAA0BwD,GAAS,CACrFmC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJvM,KAAM,OACNxJ,IAAKA,KAIT,OAAOu4D,MAzTsBl+C,EA+BL,CAAC,CAC3Bra,IAAK,mBAOL2B,MAAO,SAA0B62D,GAC/B,IAAI97C,EAAQ1J,KAER2H,EAAc3H,KAAK5C,MACnBpD,EAAI2N,EAAY3N,EAChBJ,EAAQ+N,EAAY/N,MACpB6rD,EAAa99C,EAAY89C,WAE7B,IAAKD,IAAqBA,EAAiB/0D,OACzC,OAAO,KAGT,IAAI6oB,EAAQksC,EAAiB/oD,KAAI,SAAUjJ,EAAOQ,GAChD,IAAIoJ,EAAQ2L,GAAc,GAAIW,EAAMtM,MAAO,CACzCwF,GAAI5I,EACJ6I,GAAIrP,EACJsP,GAAI9I,EAAIJ,EACRmJ,GAAIvP,EACJxG,IAAK,QAAQmF,OAAO6B,GACpBjD,MAAOiD,IAGT,OAAO0V,EAAMjG,YAAYiiD,eAAeD,EAAYroD,MAEtD,OAAOV,IAAMyB,cAAc,IAAK,CAC9BkC,UAAW,sCACViZ,KAQJ,CACDtsB,IAAK,iBACL2B,MAAO,SAAwBg3D,GAC7B,IAAIh5C,EAAS3M,KAETuI,EAAevI,KAAK5C,MACpBnD,EAAIsO,EAAatO,EACjBJ,EAAS0O,EAAa1O,OACtB+rD,EAAWr9C,EAAaq9C,SAE5B,IAAKD,IAAmBA,EAAel1D,OACrC,OAAO,KAGT,IAAI6oB,EAAQqsC,EAAelpD,KAAI,SAAUjJ,EAAOQ,GAC9C,IAAIoJ,EAAQ2L,GAAc,GAAI4D,EAAOvP,MAAO,CAC1CwF,GAAIpP,EACJqP,GAAI5I,EACJ6I,GAAItP,EACJuP,GAAI9I,EAAIJ,EACR7M,IAAK,QAAQmF,OAAO6B,GACpBjD,MAAOiD,IAGT,OAAO2Y,EAAOlJ,YAAYiiD,eAAeE,EAAUxoD,MAErD,OAAOV,IAAMyB,cAAc,IAAK,CAC9BkC,UAAW,oCACViZ,KAQJ,CACDtsB,IAAK,wBACL2B,MAAO,SAA+Bg3D,GACpC,IAAIE,EAAe7lD,KAAK5C,MAAMyoD,aAE9B,IAAKA,IAAiBA,EAAap1D,OACjC,OAAO,KAGT,IAAI2kB,EAAepV,KAAK5C,MACpB3G,EAAc2e,EAAa3e,YAC3BuD,EAAIob,EAAapb,EACjBC,EAAImb,EAAanb,EACjBL,EAAQwb,EAAaxb,MACrBC,EAASub,EAAavb,OACtBisD,EAAwBH,EAAehzD,QAAQwpC,MAAK,SAAU7rC,EAAGqD,GACnE,OAAOrD,EAAIqD,KAGTqG,IAAM8rD,EAAsB,IAC9BA,EAAsBC,QAAQ,GAGhC,IAAIzsC,EAAQwsC,EAAsBrpD,KAAI,SAAUjJ,EAAOQ,GACrD,IAAIyqD,EAAYqH,EAAsB9xD,EAAI,GAAK8xD,EAAsB9xD,EAAI,GAAKR,EAAQwG,EAAIJ,EAAQpG,EAElG,GAAIirD,GAAa,EACf,OAAO,KAGT,IAAIuH,EAAahyD,EAAI6xD,EAAap1D,OAClC,OAAOiM,IAAMyB,cAAc,OAAQ,CACjCnR,IAAK,SAASmF,OAAO6B,GAErBgG,EAAGzK,KAAKo3B,MAAMnzB,EAAQwG,EAAIA,GAC1BC,EAAGA,EACHL,MAAO6kD,EACP5kD,OAAQA,EACRrB,OAAQ,OACRhC,KAAMqvD,EAAaG,GACnBvvD,YAAaA,EACb4J,UAAW,kCAGf,OAAO3D,IAAMyB,cAAc,IAAK,CAC9BkC,UAAW,2CACViZ,KAQJ,CACDtsB,IAAK,0BACL2B,MAAO,SAAiC62D,GACtC,IAAIS,EAAiBjmD,KAAK5C,MAAM6oD,eAEhC,IAAKA,IAAmBA,EAAex1D,OACrC,OAAO,KAGT,IAAI2mB,EAAepX,KAAK5C,MACpB3G,EAAc2gB,EAAa3gB,YAC3BuD,EAAIod,EAAapd,EACjBC,EAAImd,EAAand,EACjBL,EAAQwd,EAAaxd,MACrBC,EAASud,EAAavd,OACtBqsD,EAA0BV,EAAiB7yD,QAAQwpC,MAAK,SAAU7rC,EAAGqD,GACvE,OAAOrD,EAAIqD,KAGTsG,IAAMisD,EAAwB,IAChCA,EAAwBH,QAAQ,GAGlC,IAAIzsC,EAAQ4sC,EAAwBzpD,KAAI,SAAUjJ,EAAOQ,GACvD,IAAI6D,EAAaquD,EAAwBlyD,EAAI,GAAKkyD,EAAwBlyD,EAAI,GAAKR,EAAQyG,EAAIJ,EAASrG,EAExG,GAAIqE,GAAc,EAChB,OAAO,KAGT,IAAImuD,EAAahyD,EAAIiyD,EAAex1D,OACpC,OAAOiM,IAAMyB,cAAc,OAAQ,CACjCnR,IAAK,SAASmF,OAAO6B,GAErBiG,EAAG1K,KAAKo3B,MAAMnzB,EAAQyG,EAAIA,GAC1BD,EAAGA,EACHH,OAAQhC,EACR+B,MAAOA,EACPpB,OAAQ,OACRhC,KAAMyvD,EAAeD,GACrBvvD,YAAaA,EACb4J,UAAW,kCAGf,OAAO3D,IAAMyB,cAAc,IAAK,CAC9BkC,UAAW,6CACViZ,KAEJ,CACDtsB,IAAK,mBACL2B,MAAO,WACL,IAAI6H,EAAOwJ,KAAK5C,MAAM5G,KAEtB,IAAKA,GAAiB,SAATA,EACX,OAAO,KAGT,IAAImtD,EAAe3jD,KAAK5C,MACpB3G,EAAcktD,EAAaltD,YAC3BuD,EAAI2pD,EAAa3pD,EACjBC,EAAI0pD,EAAa1pD,EACjBL,EAAQ+pD,EAAa/pD,MACrBC,EAAS8pD,EAAa9pD,OAC1B,OAAO6C,IAAMyB,cAAc,OAAQ,CACjCnE,EAAGA,EACHC,EAAGA,EACHL,MAAOA,EACPC,OAAQA,EACRrB,OAAQ,OACRhC,KAAMA,EACNC,YAAaA,EACb4J,UAAW,iCAGd,CACDrT,IAAK,SACL2B,MAAO,WACL,IAAIk1D,EAAe7jD,KAAK5C,MACpBpD,EAAI6pD,EAAa7pD,EACjBC,EAAI4pD,EAAa5pD,EACjBL,EAAQiqD,EAAajqD,MACrBC,EAASgqD,EAAahqD,OACtB4rD,EAAa5B,EAAa4B,WAC1BG,EAAW/B,EAAa+B,SACxBO,EAAiCtC,EAAasC,+BAC9CC,EAA+BvC,EAAauC,6BAC5Crb,EAAQ8Y,EAAa9Y,MACrBC,EAAQ6Y,EAAa7Y,MACrBhwB,EAAS6oC,EAAa7oC,OACtBtP,EAAam4C,EAAan4C,WAC1BK,EAAc83C,EAAa93C,YAE/B,IAAKpa,EAASiI,IAAUA,GAAS,IAAMjI,EAASkI,IAAWA,GAAU,IAAMlI,EAASqI,IAAMA,KAAOA,IAAMrI,EAASsI,IAAMA,KAAOA,EAC3H,OAAO,KAGT,IAAIosD,EAAermD,KAAK5C,MACpBooD,EAAmBa,EAAab,iBAChCG,EAAiBU,EAAaV,eAqBlC,OAnBMH,GAAqBA,EAAiB/0D,SAAW0M,IAAYgpD,KACjEX,EAAmBW,EAA+B,CAChDnb,MAAOA,EACPpxC,MAAO8R,EACP7R,OAAQkS,EACRiP,OAAQA,KAKN2qC,GAAmBA,EAAel1D,SAAW0M,IAAYipD,KAC7DT,EAAiBS,EAA6B,CAC5Crb,MAAOA,EACPnxC,MAAO8R,EACP7R,OAAQkS,EACRiP,OAAQA,KAILte,IAAMyB,cAAc,IAAK,CAC9BkC,UAAW,2BACVL,KAAKsmD,mBAAoBb,GAAczlD,KAAKumD,iBAAiBf,GAAmBI,GAAY5lD,KAAKwmD,eAAeb,GAAiBF,GAAczlD,KAAKymD,wBAAwBjB,GAAmBI,GAAY5lD,KAAK0mD,sBAAsBf,SA5RjK1/C,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA6T3Kg+C,EAvST,CAwSE18C,iBAEF08C,GAAclpD,YAAc,gBAC5BkpD,GAAcrlD,UAAY8I,GAAc,GAAI7T,EAAyB,CACnE8E,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACboE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,OAClBiwD,WAAYtwD,IAAUuB,UAAU,CAACvB,IAAUjF,OAAQiF,IAAUyV,QAASzV,IAAUmF,KAAMnF,IAAUiY,OAChGw4C,SAAUzwD,IAAUuB,UAAU,CAACvB,IAAUjF,OAAQiF,IAAUyV,QAASzV,IAAUmF,KAAMnF,IAAUiY,OAC9Fo4C,iBAAkBrwD,IAAUmL,QAAQnL,IAAUK,QAC9CmwD,eAAgBxwD,IAAUmL,QAAQnL,IAAUK,QAC5C2wD,+BAAgChxD,IAAUmF,KAC1C8rD,6BAA8BjxD,IAAUmF,KACxCywC,MAAO51C,IAAUjF,OACjB86C,MAAO71C,IAAUjF,OACjB8qB,OAAQ7lB,IAAUjF,OAClBwb,WAAYvW,IAAUK,OACtBuW,YAAa5W,IAAUK,OACvBqwD,aAAc1wD,IAAUmL,QAAQnL,IAAUC,QAC1C6wD,eAAgB9wD,IAAUmL,QAAQnL,IAAUC,UAE9CkwD,GAAct8C,aAAe,CAC3By8C,YAAY,EACZG,UAAU,EAEVJ,iBAAkB,GAElBG,eAAgB,GAChBntD,OAAQ,OACRhC,KAAM,OAENqvD,aAAc,GACdI,eAAgB,IAEHX,UCrXf,SAASz/C,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASsT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAUrK,IAAIkgD,GAEJ,SAAUv/C,GAGR,SAASu/C,IAGP,OAFA7gD,GAAgB9F,KAAM2mD,GAEfxgD,GAA2BnG,KAAMsG,GAAgBqgD,GAAK5mD,MAAMC,KAAMxN,YA5B7E,IAAsBwT,EAAaqB,EAAYC,EAsD7C,OA9CF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAejXE,CAAUi/C,EAAKv/C,GAvBKpB,EA+BP2gD,GA/BoBt/C,EA+Bf,CAAC,CACjBra,IAAK,SACL2B,MAAO,WACL,IAAIgZ,EAAc3H,KAAK5C,MACnBoL,EAAKb,EAAYa,GACjBC,EAAKd,EAAYc,GACjBvO,EAAIyN,EAAYzN,EAChBmG,EAAYsH,EAAYtH,UACxBM,EAAaC,IAAW,eAAgBP,GAE5C,OAAImI,KAAQA,GAAMC,KAAQA,GAAMvO,KAAOA,EAC9BwC,IAAMyB,cAAc,SAAU0B,GAAS,GAAI5C,EAA0B+C,KAAK5C,OAAQK,EAAsBuC,KAAK5C,MAAO,MAAM,GAAO,CACtIiD,UAAWM,EACX6H,GAAIA,EACJC,GAAIA,EACJvO,EAAGA,KAIA,UAlDiE+L,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GAsD3Kq/C,EAhCT,CAiCE/9C,iBAEF+9C,GAAIvqD,YAAc,MAClBuqD,GAAI1mD,UAAY,CACdI,UAAWlL,IAAUC,OACrBoT,GAAIrT,IAAUK,OACdiT,GAAItT,IAAUK,OACd0E,EAAG/E,IAAUK,QAEAmxD,UCpEf,SAAS9gD,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAAS4S,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiB,GAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,CAAE,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIzF,MAAMuF,EAAItD,QAASuD,EAAID,EAAItD,OAAQuD,IAAOC,EAAKD,GAAKD,EAAIC,GAAM,OAAOC,GANnHC,CAAmBH,IAI7D,SAA0BI,GAAQ,GAAIxE,OAAOyE,YAAYhF,OAAO+E,IAAkD,uBAAzC/E,OAAOiF,UAAUC,SAASpG,KAAKiG,GAAgC,OAAO3F,MAAM+F,KAAKJ,GAJrFK,CAAiBT,IAEtF,WAAgC,MAAM,IAAIU,UAAU,mDAF0CC,GAQ9F,SAASoR,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAkBrK,IAAImgD,GAEJ,SAAUx/C,GAGR,SAASw/C,IACP,IAAIz7C,EAEAzB,EAEJ5D,GAAgB9F,KAAM4mD,GAEtB,IAAK,IAAIx7C,EAAO5Y,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAM4c,GAAOvX,EAAO,EAAGA,EAAOuX,EAAMvX,IAC/EwX,EAAKxX,GAAQrB,UAAUqB,GAoCzB,OAjCA6V,EAAQvD,GAA2BnG,MAAOmL,EAAmB7E,GAAgBsgD,IAAO14D,KAAK6R,MAAMoL,EAAkB,CAACnL,MAAM7N,OAAOkZ,MACzHC,MAAQ,CACZi2C,qBAAqB,EACrBsF,YAAa,GAEfn9C,EAAMxX,GAAKF,EAAS,kBAEpB0X,EAAM83C,cAAgB,SAAU/F,GAC9B/xC,EAAMgD,SAAS,CACbo6C,WAAYrL,KAIhB/xC,EAAMyyC,QAAU,SAAU57C,GACxBmJ,EAAMq9C,UAAYxmD,GAGpBmJ,EAAMg4C,mBAAqB,WACzBh4C,EAAMgD,SAAS,CACb60C,qBAAqB,IAGvB73C,EAAMtM,MAAMyY,kBAGdnM,EAAMi4C,qBAAuB,WAC3Bj4C,EAAMgD,SAAS,CACb60C,qBAAqB,IAGvB73C,EAAMtM,MAAM0Y,oBAGPpM,EA7EX,IAAsB1D,EAAaqB,EAAYC,EAia7C,OAzZF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAuBjXE,CAAUk/C,EAAMx/C,GA/BIpB,EAgFP4gD,EAhFgCt/C,EAiYzC,CAAC,CACHta,IAAK,SACL2B,MAAO,SAAgBq4D,EAAO/nD,GAI5B,IAHA,IAAIgoD,EAAYD,EAAMv2D,OAAS,IAAM,EAAI,GAAG0B,OAAO2B,GAAmBkzD,GAAQ,CAAC,IAAMA,EACjFh2D,EAAS,GAEJgD,EAAI,EAAGA,EAAIiL,IAASjL,EAC3BhD,EAAS,GAAGmB,OAAO2B,GAAmB9C,GAAS8C,GAAmBmzD,IAGpE,OAAOj2D,IAER,CACDhE,IAAK,gBACL2B,MAAO,SAAuBqc,EAAQ5N,GACpC,IAAI8pD,EAEJ,GAAIxqD,IAAMW,eAAe2N,GACvBk8C,EAAUxqD,IAAMwQ,aAAalC,EAAQ5N,QAChC,GAAID,IAAY6N,GACrBk8C,EAAUl8C,EAAO5N,OACZ,CACL,IAAIiD,EAAYO,IAAW,oBAAqBoK,EAASA,EAAO3K,UAAY,IAC5E6mD,EAAUxqD,IAAMyB,cAAcwoD,GAAK9mD,GAAS,GAAIzC,EAAO,CACrDiD,UAAWA,KAIf,OAAO6mD,MA7ZsB7/C,EAgFd,CAAC,CAClBra,IAAK,oBAGL2B,MAAO,WACL,GAAKqR,KAAK5C,MAAM8d,kBAAhB,CAIA,IAAI2rC,EAAc7mD,KAAKmnD,iBACvBnnD,KAAK0M,SAAS,CACZm6C,YAAaA,OAIhB,CACD75D,IAAK,4BACL2B,MAAO,SAAmCiQ,GACxC,IAAI+I,EAAc3H,KAAK5C,MACnBykD,EAAcl6C,EAAYk6C,YAC1BpG,EAAS9zC,EAAY8zC,OAErB78C,EAAUijD,cAAgBA,GAC5B7hD,KAAKwhD,cAAc/F,KAGtB,CACDzuD,IAAK,iBACL2B,MAAO,WACL,IAAIy4D,EAAWpnD,KAAK+mD,UAEpB,IACE,OAAOK,GAAYA,EAASD,gBAAkBC,EAASD,kBAAoB,EAC3E,MAAO12C,GACP,OAAO,KAGV,CACDzjB,IAAK,qBACL2B,MAAO,SAA4B8B,EAAQo2D,EAAaG,GAStD,IARA,IAAIK,EAAaL,EAAM93C,QAAO,SAAU+B,EAAKV,GAC3C,OAAOU,EAAMV,KAEXtR,EAAQ+yB,SAASvhC,EAAS42D,EAAY,IACtCC,EAAe72D,EAAS42D,EACxBE,EAAaV,EAAcp2D,EAC3B+2D,EAAc,GAETxzD,EAAI,EAAGixD,EAAM,GAAIA,GAAO+B,EAAMhzD,KAAMA,EAC3C,GAAIixD,EAAM+B,EAAMhzD,GAAKszD,EAAc,CACjCE,EAAc,GAAGr1D,OAAO2B,GAAmBkzD,EAAMr0D,MAAM,EAAGqB,IAAK,CAACszD,EAAerC,IAC/E,MAIJ,IAAIwC,EAAaD,EAAY/2D,OAAS,IAAM,EAAI,CAAC,EAAG82D,GAAc,CAACA,GACnE,MAAO,GAAGp1D,OAAO2B,GAAmBkM,KAAKyD,YAAYikD,OAAOV,EAAO/nD,IAASnL,GAAmB0zD,GAAcC,GAAYhrD,KAAI,SAAUu9C,GACrI,MAAO,GAAG7nD,OAAO6nD,EAAM,SACtBhqC,KAAK,QAET,CACDhjB,IAAK,iBACL2B,MAAO,WACL,GAAIqR,KAAK5C,MAAM8d,oBAAsBlb,KAAKsL,MAAMi2C,oBAC9C,OAAO,KAGT,IAAIh5C,EAAevI,KAAK5C,MACpBq+C,EAASlzC,EAAakzC,OACtB1Q,EAAQxiC,EAAawiC,MACrBC,EAAQziC,EAAayiC,MACrBphC,EAASrB,EAAaqB,OACtBtN,EAAWiM,EAAajM,SACxBqrD,EAAgBtrD,EAAcC,EAAUuuC,IAE5C,IAAK8c,EACH,OAAO,KAGT,SAAS7c,EAAmB8c,EAAW/sC,GACrC,MAAO,CACL7gB,EAAG4tD,EAAU5tD,EACbC,EAAG2tD,EAAU3tD,EACbtL,MAAOi5D,EAAUj5D,MACjBk9C,SAAUG,GAAkB4b,EAAUn+C,QAASoR,IAInD,OAAO8sC,EAAclrD,KAAI,SAAUgP,EAAMzX,GACvC,OAAO0I,IAAMwQ,aAAazB,EAAM,CAC9Bze,IAAKgH,EAEL6J,KAAM49C,EACN1Q,MAAOA,EACPC,MAAOA,EACPphC,OAAQA,EACRkhC,mBAAoBA,SAIzB,CACD99C,IAAK,aACL2B,MAAO,SAAoBk5D,EAAUC,GACnC,IAAIn7C,EAAS3M,KAIb,GAFwBA,KAAK5C,MAAM8d,oBAETlb,KAAKsL,MAAMi2C,oBACnC,OAAO,KAGT,IAAInsC,EAAepV,KAAK5C,MACpB2qD,EAAM3yC,EAAa2yC,IACnBtM,EAASrmC,EAAaqmC,OACtB5gC,EAAUzF,EAAayF,QACvB0nC,EAAYtlD,EAA0B+C,KAAK5C,OAC3C4qD,EAAiB/qD,EAA0B8qD,GAC3CE,EAAYxqD,EAAsBsqD,GAClCG,EAAOzM,EAAOh/C,KAAI,SAAUjJ,EAAOQ,GACrC,IAAIm0D,EAAWp/C,GAAc,CAC3B/b,IAAK,OAAOmF,OAAO6B,GACnBkG,EAAG,GACFqoD,EAAW,GAAIyF,EAAgB,GAAIC,EAAW,CAC/Ct5D,MAAO6E,EAAM7E,MACbksB,QAASA,EACTrS,GAAIhV,EAAMwG,EACVyO,GAAIjV,EAAMyG,EACVlJ,MAAOiD,EACPyV,QAASjW,EAAMiW,UAGjB,OAAOkD,EAAOlJ,YAAY2kD,cAAcL,EAAKI,MAE3CE,EAAY,CACd1yD,SAAUkyD,EAAW,iBAAiB11D,OAAO21D,EAAY,KAAO,MAElE,OAAOprD,IAAMyB,cAAcyf,GAAO/d,GAAS,CACzCQ,UAAW,qBACXrT,IAAK,QACJq7D,GAAYH,KAEhB,CACDl7D,IAAK,wBACL2B,MAAO,SAA+B8sD,EAAQoM,EAAUC,EAAY1qD,GAClE,IAAIga,EAAepX,KAAK5C,MACpBvQ,EAAOuqB,EAAavqB,KACpB+c,EAASwN,EAAaxN,OACtB+xC,EAAevkC,EAAaukC,aAE5B2M,EAAav/C,GAAc,GAAI9L,EAA0B+C,KAAK5C,OAAQ,GAAIK,EAAsBuC,KAAK5C,OAAQ,CAC/G5G,KAAM,OACN6J,UAAW,sBACX1K,SAAUkyD,EAAW,iBAAiB11D,OAAO21D,EAAY,KAAO,KAChErM,OAAQA,GACPr+C,EAAO,CACRvQ,KAAMA,EACN+c,OAAQA,EACR+xC,aAAcA,IAGhB,OAAOj/C,IAAMyB,cAAco9C,GAAO17C,GAAS,GAAIyoD,EAAY,CACzDnM,QAASn8C,KAAKm8C,aAGjB,CACDnvD,IAAK,2BACL2B,MAAO,SAAkCk5D,EAAUC,GACjD,IAAI1xC,EAASpW,KAET2jD,EAAe3jD,KAAK5C,MACpBq+C,EAASkI,EAAalI,OACtBhjD,EAAkBkrD,EAAalrD,gBAC/ByiB,EAAoByoC,EAAazoC,kBACjCgoC,EAAiBS,EAAaT,eAC9B/nC,EAAoBwoC,EAAaxoC,kBACjCC,EAAkBuoC,EAAavoC,gBAC/BymC,EAAc8B,EAAa9B,YAC3BjoD,EAAQ+pD,EAAa/pD,MACrBC,EAAS8pD,EAAa9pD,OACtB+R,EAAc5L,KAAKsL,MACnBw7C,EAAal7C,EAAYk7C,WACzBD,EAAcj7C,EAAYi7C,YAC9B,OAAOnqD,IAAMyB,cAAcyW,GAAS,CAClCzB,MAAO+vC,EACPtzC,SAAUuL,EACVtG,SAAUqG,EACVrL,OAAQuL,EACR7mB,KAAM,CACJrB,EAAG,GAELogB,GAAI,CACFpgB,EAAG,GAELlG,IAAK,QAAQmF,OAAO0vD,GACpBhsC,eAAgB7V,KAAK0hD,mBACrB5rC,iBAAkB9V,KAAK2hD,uBACtB,SAAUjjD,GACX,IAAIxL,EAAIwL,EAAKxL,EAEb,GAAI4zD,EAAY,CACd,IAAIyB,EAAuBzB,EAAWr2D,OAASgrD,EAAOhrD,OAClD0yD,EAAW1H,EAAOh/C,KAAI,SAAUjJ,EAAOzC,GACzC,IAAIy3D,EAAiBj5D,KAAK2wB,MAAMnvB,EAAQw3D,GAExC,GAAIzB,EAAW0B,GAAiB,CAC9B,IAAInV,EAAOyT,EAAW0B,GAClBC,EAAgB11D,EAAkBsgD,EAAKr5C,EAAGxG,EAAMwG,GAChD0uD,EAAgB31D,EAAkBsgD,EAAKp5C,EAAGzG,EAAMyG,GACpD,OAAO8O,GAAc,GAAIvV,EAAO,CAC9BwG,EAAGyuD,EAAcv1D,GACjB+G,EAAGyuD,EAAcx1D,KAKrB,GAAIkjB,EAAOuyC,iBAAkB,CAC3B,IAAIC,EAAiB71D,EAA0B,EAAR6G,EAAWpG,EAAMwG,GAEpD6uD,EAAiB91D,EAAkB8G,EAAS,EAAGrG,EAAMyG,GAEzD,OAAO8O,GAAc,GAAIvV,EAAO,CAC9BwG,EAAG4uD,EAAe11D,GAClB+G,EAAG4uD,EAAe31D,KAItB,OAAO6V,GAAc,GAAIvV,EAAO,CAC9BwG,EAAGxG,EAAMwG,EACTC,EAAGzG,EAAMyG,OAGb,OAAOmc,EAAO0yC,sBAAsB3F,EAAU0E,EAAUC,GAG1D,IAEIiB,EADAC,EADej2D,EAAkB,EAAG8zD,EACxBrhC,CAAatyB,GAG7B,GAAIuF,EAAiB,CACnB,IAAIuuD,EAAQvuD,EAAgB6Y,MAAM,aAAa7U,KAAI,SAAUiV,GAC3D,OAAOhf,WAAWgf,MAEpBq3C,EAAyB3yC,EAAO6yC,mBAAmBD,EAAWnC,EAAaG,QAE3E+B,EAAyB,GAAG52D,OAAO62D,EAAW,OAAO72D,OAAO00D,EAAcmC,EAAW,MAGvF,OAAO5yC,EAAO0yC,sBAAsBrN,EAAQoM,EAAUC,EAAY,CAChErvD,gBAAiBswD,SAItB,CACD/7D,IAAK,cACL2B,MAAO,SAAqBk5D,EAAUC,GACpC,IAAIjE,EAAe7jD,KAAK5C,MACpBq+C,EAASoI,EAAapI,OACtBvgC,EAAoB2oC,EAAa3oC,kBACjC7O,EAAerM,KAAKsL,MACpBw7C,EAAaz6C,EAAay6C,WAC1BD,EAAcx6C,EAAaw6C,YAE/B,OAAI3rC,GAAqBugC,GAAUA,EAAOhrD,UAAYq2D,GAAcD,EAAc,IAAMvxC,KAASwxC,EAAYrL,IACpGz7C,KAAKkpD,yBAAyBrB,EAAUC,GAG1C9nD,KAAK8oD,sBAAsBrN,EAAQoM,EAAUC,KAErD,CACD96D,IAAK,SACL2B,MAAO,WACL,IAAI03D,EAAermD,KAAK5C,MACpB3Q,EAAO45D,EAAa55D,KACpBs7D,EAAM1B,EAAa0B,IACnBtM,EAAS4K,EAAa5K,OACtBp7C,EAAYgmD,EAAahmD,UACzB0qC,EAAQsb,EAAatb,MACrBC,EAAQqb,EAAarb,MACrB7+B,EAAMk6C,EAAal6C,IACnBH,EAAOq6C,EAAar6C,KACpBpS,EAAQysD,EAAazsD,MACrBC,EAASwsD,EAAaxsD,OACtBqhB,EAAoBmrC,EAAanrC,kBACjChpB,EAAKm0D,EAAan0D,GAEtB,GAAIzF,IAASgvD,IAAWA,EAAOhrD,OAC7B,OAAO,KAGT,IAAI8wD,EAAsBvhD,KAAKsL,MAAMi2C,oBACjC4H,EAAmC,IAAlB1N,EAAOhrD,OACxBkQ,EAAaC,IAAW,gBAAiBP,GACzCwnD,EAAW9c,GAASA,EAAMiI,mBAAqBhI,GAASA,EAAMgI,kBAC9D8U,EAAarpD,IAAOvM,GAAM8N,KAAK9N,GAAKA,EACxC,OAAOwK,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAWM,GACVknD,EAAWnrD,IAAMyB,cAAc,OAAQ,KAAMzB,IAAMyB,cAAc,WAAY,CAC9EjM,GAAI,YAAYC,OAAO21D,IACtBprD,IAAMyB,cAAc,OAAQ,CAC7BnE,EAAGgS,EACH/R,EAAGkS,EACHvS,MAAOA,EACPC,OAAQA,MACH,MAAOsvD,GAAkBnpD,KAAKopD,YAAYvB,EAAUC,GAAa9nD,KAAKqpD,kBAAmBF,GAAkBpB,IAAQ/nD,KAAKspD,WAAWzB,EAAUC,KAAe5sC,GAAqBqmC,IAAwBL,GAAUR,mBAAmB1gD,KAAK5C,MAAOq+C,SA/XjLx1C,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GAia3Ks/C,EAnYT,CAoYEh+C,iBAEFg+C,GAAKxqD,YAAc,OACnBwqD,GAAK3mD,UAAY8I,GAAc,GAAI7T,EAAyB,GAAIkF,EAAkB,CAChFiG,UAAWlL,IAAUC,OACrBvI,KAAMsI,IAAUuB,UAAU,CAACvB,IAAUiB,MAAM,CAAC,QAAS,cAAe,YAAa,SAAU,eAAgB,UAAW,YAAa,YAAa,WAAY,OAAQ,aAAc,cAAejB,IAAUmF,OAC3Muf,KAAM1kB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SACvD1I,KAAMqI,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SACvD+zD,QAASp0D,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC1Dg0D,QAASr0D,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC1Dw1C,MAAO71C,IAAUjF,OACjB66C,MAAO51C,IAAUjF,OACjB88C,WAAY73C,IAAUiB,MAAM4F,GAC5BkoD,YAAa/uD,IAAUiB,MAAM6F,GAC7B2N,OAAQzU,IAAUiB,MAAM,CAAC,aAAc,aACvCulD,aAAcxmD,IAAUiY,KACxB3gB,KAAM0I,IAAUiY,KAEhBq8C,UAAWt0D,IAAUuB,UAAU,CAACvB,IAAUjF,OAAQiF,IAAUyV,QAASzV,IAAUmF,KAAMnF,IAAUiY,OAC/F26C,IAAK5yD,IAAUuB,UAAU,CAACvB,IAAUjF,OAAQiF,IAAUyV,QAASzV,IAAUmF,KAAMnF,IAAUiY,OACzFjB,IAAKhX,IAAUK,OACfwW,KAAM7W,IAAUK,OAChBoE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,OAClBimD,OAAQtmD,IAAUmL,QAAQnL,IAAUiL,MAAM,CACxCpG,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACb7G,MAAOwG,IAAUxG,SAEnBmnB,iBAAkB3gB,IAAUmF,KAC5Bub,eAAgB1gB,IAAUmF,KAC1B4gB,kBAAmB/lB,IAAUiY,KAC7Bu7C,iBAAkBxzD,IAAUiY,KAC5B81C,eAAgB/tD,IAAUK,OAC1B2lB,kBAAmBhmB,IAAUK,OAC7B4lB,gBAAiBjmB,IAAUiB,MAAM,CAAC,OAAQ,UAAW,WAAY,cAAe,WAChFyrD,YAAa1sD,IAAUK,OACvBtD,GAAIiD,IAAUC,SAEhBwxD,GAAK59C,aAAe,CAClBwgD,QAAS,EACTD,QAAS,EACT5N,cAAc,EACd8N,WAAW,EACX1B,KAAK,EACL/a,WAAY,OACZx0C,OAAQ,UACRO,YAAa,EACbvC,KAAM,OACNilD,OAAQ,GACRvgC,mBAAoBjd,KACpB0qD,kBAAkB,EAClBzF,eAAgB,EAChB/nC,kBAAmB,KACnBC,gBAAiB,OACjB3uB,MAAM,EACNqpB,iBAAkB,aAClBD,eAAgB,cAGlB+wC,GAAKjC,gBAAkB,SAAU9lD,GAC/B,IAAIzB,EAAQyB,EAAMzB,MACd2tC,EAAQlsC,EAAMksC,MACdC,EAAQnsC,EAAMmsC,MACd0e,EAAa7qD,EAAM6qD,WACnBC,EAAa9qD,EAAM8qD,WACnB9uC,EAAUhc,EAAMgc,QAChBo3B,EAAWpzC,EAAMozC,SACjB2X,EAAgB/qD,EAAM+qD,cACtB5uC,EAASnc,EAAMmc,OACfpR,EAASxM,EAAMwM,OAgCnB,OAAOb,GAAc,CACnB0yC,OAhCWmO,EAAcntD,KAAI,SAAUjJ,EAAOzC,GAC9C,IAAIpC,EAAQq9C,GAAkBx4C,EAAOqnB,GAErC,MAAe,eAAXjR,EACK,CACL5P,EAAGg4C,GAAwB,CACzB3D,KAAMtD,EACNrmB,MAAOglC,EACPzX,SAAUA,EACVz+C,MAAOA,EACPzC,MAAOA,IAETkJ,EAAGwE,IAAO9P,GAAS,KAAOq8C,EAAM1kB,MAAM33B,GACtCA,MAAOA,EACP8a,QAASjW,GAIN,CACLwG,EAAGyE,IAAO9P,GAAS,KAAOo8C,EAAMzkB,MAAM33B,GACtCsL,EAAG+3C,GAAwB,CACzB3D,KAAMrD,EACNtmB,MAAOilC,EACP1X,SAAUA,EACVz+C,MAAOA,EACPzC,MAAOA,IAETpC,MAAOA,EACP8a,QAASjW,MAKXoW,OAAQA,GACPoR,IAGU4rC,UCxiBf,SAASxhD,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAI9U,SAAS4S,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASgT,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASsT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAWrK,IAAIojD,GAAkB,SAAyB7vD,EAAGC,EAAGL,EAAOC,EAAQM,GAClE,IAIIqJ,EAJA2gD,EAAY50D,KAAK4R,IAAI5R,KAAKwR,IAAInH,GAAS,EAAGrK,KAAKwR,IAAIlH,GAAU,GAC7DiwD,EAAQjwD,GAAU,EAAI,GAAK,EAC3BkwD,EAAQnwD,GAAS,EAAI,GAAK,EAC1B2lD,EAAY1lD,GAAU,GAAKD,GAAS,GAAKC,EAAS,GAAKD,EAAQ,EAAI,EAAI,EAG3E,GAAIuqD,EAAY,GAAKhqD,aAAkB3L,MAAO,CAG5C,IAFA,IAAIw7D,EAAY,GAEPh2D,EAAI,EAAYA,EAAH,EAAYA,IAChCg2D,EAAUh2D,GAAKmG,EAAOnG,GAAKmwD,EAAYA,EAAYhqD,EAAOnG,GAG5DwP,EAAO,IAAIrR,OAAO6H,EAAG,KAAK7H,OAAO8H,EAAI6vD,EAAQE,EAAU,IAEnDA,EAAU,GAAK,IACjBxmD,GAAQ,KAAKrR,OAAO63D,EAAU,GAAI,KAAK73D,OAAO63D,EAAU,GAAI,SAAS73D,OAAOotD,EAAW,KAAKptD,OAAO6H,EAAI+vD,EAAQC,EAAU,GAAI,KAAK73D,OAAO8H,IAG3IuJ,GAAQ,KAAKrR,OAAO6H,EAAIJ,EAAQmwD,EAAQC,EAAU,GAAI,KAAK73D,OAAO8H,GAE9D+vD,EAAU,GAAK,IACjBxmD,GAAQ,KAAKrR,OAAO63D,EAAU,GAAI,KAAK73D,OAAO63D,EAAU,GAAI,SAAS73D,OAAOotD,EAAW,eAAeptD,OAAO6H,EAAIJ,EAAO,KAAKzH,OAAO8H,EAAI6vD,EAAQE,EAAU,KAG5JxmD,GAAQ,KAAKrR,OAAO6H,EAAIJ,EAAO,KAAKzH,OAAO8H,EAAIJ,EAASiwD,EAAQE,EAAU,IAEtEA,EAAU,GAAK,IACjBxmD,GAAQ,KAAKrR,OAAO63D,EAAU,GAAI,KAAK73D,OAAO63D,EAAU,GAAI,SAAS73D,OAAOotD,EAAW,eAAeptD,OAAO6H,EAAIJ,EAAQmwD,EAAQC,EAAU,GAAI,KAAK73D,OAAO8H,EAAIJ,IAGjK2J,GAAQ,KAAKrR,OAAO6H,EAAI+vD,EAAQC,EAAU,GAAI,KAAK73D,OAAO8H,EAAIJ,GAE1DmwD,EAAU,GAAK,IACjBxmD,GAAQ,KAAKrR,OAAO63D,EAAU,GAAI,KAAK73D,OAAO63D,EAAU,GAAI,SAAS73D,OAAOotD,EAAW,eAAeptD,OAAO6H,EAAG,KAAK7H,OAAO8H,EAAIJ,EAASiwD,EAAQE,EAAU,KAG7JxmD,GAAQ,SACH,GAAI2gD,EAAY,GAAKhqD,KAAYA,GAAUA,EAAS,EAAG,CAC5D,IAAI8vD,EAAa16D,KAAK4R,IAAIgjD,EAAWhqD,GAErCqJ,EAAO,KAAKrR,OAAO6H,EAAG,KAAK7H,OAAO8H,EAAI6vD,EAAQG,EAAY,oBAAoB93D,OAAO83D,EAAY,KAAK93D,OAAO83D,EAAY,SAAS93D,OAAOotD,EAAW,KAAKptD,OAAO6H,EAAI+vD,EAAQE,EAAY,KAAK93D,OAAO8H,EAAG,oBAAoB9H,OAAO6H,EAAIJ,EAAQmwD,EAAQE,EAAY,KAAK93D,OAAO8H,EAAG,oBAAoB9H,OAAO83D,EAAY,KAAK93D,OAAO83D,EAAY,SAAS93D,OAAOotD,EAAW,KAAKptD,OAAO6H,EAAIJ,EAAO,KAAKzH,OAAO8H,EAAI6vD,EAAQG,EAAY,oBAAoB93D,OAAO6H,EAAIJ,EAAO,KAAKzH,OAAO8H,EAAIJ,EAASiwD,EAAQG,EAAY,oBAAoB93D,OAAO83D,EAAY,KAAK93D,OAAO83D,EAAY,SAAS93D,OAAOotD,EAAW,KAAKptD,OAAO6H,EAAIJ,EAAQmwD,EAAQE,EAAY,KAAK93D,OAAO8H,EAAIJ,EAAQ,oBAAoB1H,OAAO6H,EAAI+vD,EAAQE,EAAY,KAAK93D,OAAO8H,EAAIJ,EAAQ,oBAAoB1H,OAAO83D,EAAY,KAAK93D,OAAO83D,EAAY,SAAS93D,OAAOotD,EAAW,KAAKptD,OAAO6H,EAAG,KAAK7H,OAAO8H,EAAIJ,EAASiwD,EAAQG,EAAY,WAEx3BzmD,EAAO,KAAKrR,OAAO6H,EAAG,KAAK7H,OAAO8H,EAAG,OAAO9H,OAAOyH,EAAO,OAAOzH,OAAO0H,EAAQ,OAAO1H,QAAQyH,EAAO,MAGxG,OAAO4J,GAGL0mD,GAEJ,SAAU9iD,GAGR,SAAS8iD,IACP,IAAI/+C,EAEAzB,EAEJ5D,GAAgB9F,KAAMkqD,GAEtB,IAAK,IAAI9+C,EAAO5Y,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAM4c,GAAOvX,EAAO,EAAGA,EAAOuX,EAAMvX,IAC/EwX,EAAKxX,GAAQrB,UAAUqB,GAOzB,OAJA6V,EAAQvD,GAA2BnG,MAAOmL,EAAmB7E,GAAgB4jD,IAAYh8D,KAAK6R,MAAMoL,EAAkB,CAACnL,MAAM7N,OAAOkZ,MAC9HC,MAAQ,CACZu7C,aAAc,GAETn9C,EA3FX,IAAsB1D,EAAaqB,EAAYC,EA2L7C,OAnLF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAkEjXE,CAAUwiD,EAAW9iD,GA1EDpB,EA8FPkkD,GA9FoB7iD,EA8FT,CAAC,CACvBra,IAAK,oBAGL2B,MAAO,WACL,GAAIqR,KAAKO,MAAQP,KAAKO,KAAK4mD,eACzB,IACE,IAAIN,EAAc7mD,KAAKO,KAAK4mD,iBAExBN,GACF7mD,KAAK0M,SAAS,CACZm6C,YAAaA,IAGjB,MAAOp2C,OAIZ,CACDzjB,IAAK,SACL2B,MAAO,WACL,IAAIge,EAAS3M,KAET2H,EAAc3H,KAAK5C,MACnBpD,EAAI2N,EAAY3N,EAChBC,EAAI0N,EAAY1N,EAChBL,EAAQ+N,EAAY/N,MACpBC,EAAS8N,EAAY9N,OACrBM,EAASwN,EAAYxN,OACrBkG,EAAYsH,EAAYtH,UACxBwmD,EAAc7mD,KAAKsL,MAAMu7C,YACzBt+C,EAAevI,KAAK5C,MACpBge,EAAkB7S,EAAa6S,gBAC/BD,EAAoB5S,EAAa4S,kBACjC+nC,EAAiB36C,EAAa26C,eAC9BhoC,EAAoB3S,EAAa2S,kBACjCivC,EAA0B5hD,EAAa4hD,wBAE3C,GAAInwD,KAAOA,GAAKC,KAAOA,GAAKL,KAAWA,GAASC,KAAYA,GAAoB,IAAVD,GAA0B,IAAXC,EACnF,OAAO,KAGT,IAAI8G,EAAaC,IAAW,qBAAsBP,GAElD,OAAK8pD,EAOEztD,IAAMyB,cAAcyW,GAAS,CAClCK,SAAU4xC,EAAc,EACxBtyD,KAAM,CACJqF,MAAOA,EACPC,OAAQA,EACRG,EAAGA,EACHC,EAAGA,GAELqZ,GAAI,CACF1Z,MAAOA,EACPC,OAAQA,EACRG,EAAGA,EACHC,EAAGA,GAEL2V,SAAUuL,EACVC,gBAAiBA,EACjBvG,SAAUs1C,IACT,SAAUzrD,GACX,IAAI0rD,EAAY1rD,EAAK9E,MACjBywD,EAAa3rD,EAAK7E,OAClBgZ,EAAQnU,EAAK1E,EACbswD,EAAQ5rD,EAAKzE,EACjB,OAAOyC,IAAMyB,cAAcyW,GAAS,CAClCK,SAAU4xC,EAAc,EACxBtyD,KAAM,OAAOpC,QAAwB,IAAjB00D,EAAqB,EAAIA,EAAa,MAC1DvzC,GAAI,GAAGnhB,OAAO00D,EAAa,UAC3B/xC,cAAe,kBACf3B,MAAO+vC,EACPtzC,SAAUuL,EACVtG,SAAUqG,EACVrL,OAAQuL,GACP1e,IAAMyB,cAAc,OAAQ0B,GAAS,GAAI5C,EAA0B0P,EAAOvP,OAAQK,EAAsBkP,EAAOvP,OAAQ,CACxHiD,UAAWM,EACX+H,EAAGmhD,GAAgBh3C,EAAOy3C,EAAOF,EAAWC,EAAYlwD,GACxD8S,IAAK,SAAa1M,GAChBoM,EAAOpM,KAAOA,UAzCX7D,IAAMyB,cAAc,OAAQ0B,GAAS,GAAI5C,EAA0B+C,KAAK5C,OAAQK,EAAsBuC,KAAK5C,OAAQ,CACxHiD,UAAWM,EACX+H,EAAGmhD,GAAgB7vD,EAAGC,EAAGL,EAAOC,EAAQM,WA7I4B8L,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA2L3K4iD,EAlHT,CAmHEthD,iBAEFshD,GAAU9tD,YAAc,YACxB8tD,GAAUjqD,UA3MV,SAAuBrS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EA2Mvemb,CAAc,GAAI7T,EAAyB,GAAIkF,EAAkB,CACrFiG,UAAWlL,IAAUC,OACrB4E,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACboE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,OAClB2E,OAAQhF,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUtE,QACzDqqB,kBAAmB/lB,IAAUiY,KAC7B+8C,wBAAyBh1D,IAAUiY,KACnC81C,eAAgB/tD,IAAUK,OAC1B2lB,kBAAmBhmB,IAAUK,OAC7B4lB,gBAAiBjmB,IAAUiB,MAAM,CAAC,OAAQ,UAAW,WAAY,cAAe,aAElF8zD,GAAUlhD,aAAe,CACvBhP,EAAG,EACHC,EAAG,EACHL,MAAO,EACPC,OAAQ,EAIRM,OAAQ,EACR+gB,mBAAmB,EACnBivC,yBAAyB,EACzBjH,eAAgB,EAChB/nC,kBAAmB,KACnBC,gBAAiB,QAEJ8uC,UCpOf,SAASrkD,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAAS8B,GAAyB5H,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAAkEC,EAAKgH,EAAnEpG,EAEzF,SAAuCb,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAFxMkH,CAA8B/H,EAAQ6H,GAAuB,GAAIxF,OAAO2F,sBAAuB,CAAE,IAAIC,EAAmB5F,OAAO2F,sBAAsBhI,GAAS,IAAKiH,EAAI,EAAGA,EAAIgB,EAAiBvE,OAAQuD,IAAOhH,EAAMgI,EAAiBhB,GAAQY,EAASlD,QAAQ1E,IAAQ,GAAkBoC,OAAOiF,UAAUY,qBAAqB/G,KAAKnB,EAAQC,KAAgBY,EAAOZ,GAAOD,EAAOC,IAAU,OAAOY,EAIne,SAASiS,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAAS4S,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAkBrK,IAAI8jD,GAEJ,SAAUnjD,GAGR,SAASmjD,IACP,IAAIp/C,EAEAzB,EAEJ5D,GAAgB9F,KAAMuqD,GAEtB,IAAK,IAAIn/C,EAAO5Y,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAM4c,GAAOvX,EAAO,EAAGA,EAAOuX,EAAMvX,IAC/EwX,EAAKxX,GAAQrB,UAAUqB,GA+BzB,OA5BA6V,EAAQvD,GAA2BnG,MAAOmL,EAAmB7E,GAAgBikD,IAAMr8D,KAAK6R,MAAMoL,EAAkB,CAACnL,MAAM7N,OAAOkZ,MACxHC,MAAQ,CACZi2C,qBAAqB,GAEvB73C,EAAMxX,GAAKF,EAAS,iBAEpB0X,EAAM83C,cAAgB,SAAU3jD,GAC9B6L,EAAMgD,SAAS,CACb89C,SAAU3sD,KAId6L,EAAMg4C,mBAAqB,WACzBh4C,EAAMgD,SAAS,CACb60C,qBAAqB,IAGvB73C,EAAMtM,MAAMyY,kBAGdnM,EAAMi4C,qBAAuB,WAC3Bj4C,EAAMgD,SAAS,CACb60C,qBAAqB,IAGvB73C,EAAMtM,MAAM0Y,oBAGPpM,EAxEX,IAAsB1D,EAAaqB,EAAYC,EA0T7C,OAlTF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAuBjXE,CAAU6iD,EAAKnjD,GA/BKpB,EA2EPukD,EA3EgCjjD,EAySzC,CAAC,CACHta,IAAK,kBACL2B,MAAO,SAAyBqc,EAAQ5N,GAWtC,OARIV,IAAMW,eAAe2N,GACXtO,IAAMwQ,aAAalC,EAAQ5N,GAC9BD,IAAY6N,GACTA,EAAO5N,GAEPV,IAAMyB,cAAc+rD,GAAW9sD,OAnThBiK,EA2Ef,CAAC,CACjBra,IAAK,4BAEL2B,MAAO,SAAmCiQ,GACxC,IAAI+I,EAAc3H,KAAK5C,MACnBykD,EAAcl6C,EAAYk6C,YAC1BhkD,EAAO8J,EAAY9J,KAEnBe,EAAUijD,cAAgBA,GAC5B7hD,KAAKwhD,cAAc3jD,KAGtB,CACD7Q,IAAK,6BACL2B,MAAO,SAAoCkP,GACzC,IAAI8O,EAAS3M,KAETI,EAAQJ,KAAK5C,MAAMgD,MACnBqqD,EAAYxtD,EAA0B+C,KAAK5C,OAC/C,OAAOS,GAAQA,EAAKpB,KAAI,SAAUjJ,EAAOQ,GACvC,IAAIoJ,EAAQ2L,GAAc,GAAI0hD,EAAW,GAAIj3D,EAAO,CAClDzC,MAAOiD,IAGT,OAAO0I,IAAMyB,cAAcyf,GAAO/d,GAAS,CACzCQ,UAAW,0BACVvC,GAAoB6O,EAAOvP,MAAO5J,EAAOQ,GAAI,CAC9ChH,IAAK,aAAamF,OAAO6B,KAEvB2Y,EAAOlJ,YAAYinD,gBAAgBtqD,EAAOhD,SAGjD,CACDpQ,IAAK,gCACL2B,MAAO,WACL,IAAIynB,EAASpW,KAETuI,EAAevI,KAAK5C,MACpBS,EAAO0K,EAAa1K,KACpB+L,EAASrB,EAAaqB,OACtBsR,EAAoB3S,EAAa2S,kBACjCgoC,EAAiB36C,EAAa26C,eAC9B/nC,EAAoB5S,EAAa4S,kBACjCC,EAAkB7S,EAAa6S,gBAC/BymC,EAAct5C,EAAas5C,YAC3B2I,EAAWxqD,KAAKsL,MAAMk/C,SAC1B,OAAO9tD,IAAMyB,cAAcyW,GAAS,CAClCzB,MAAO+vC,EACPtzC,SAAUuL,EACVtG,SAAUqG,EACVrL,OAAQuL,EACR7mB,KAAM,CACJrB,EAAG,GAELogB,GAAI,CACFpgB,EAAG,GAELlG,IAAK,OAAOmF,OAAO0vD,GACnBhsC,eAAgB7V,KAAK0hD,mBACrB5rC,iBAAkB9V,KAAK2hD,uBACtB,SAAUjjD,GACX,IAAIxL,EAAIwL,EAAKxL,EACTiwD,EAAWtlD,EAAKpB,KAAI,SAAUjJ,EAAOzC,GACvC,IAAIsiD,EAAOmX,GAAYA,EAASz5D,GAEhC,GAAIsiD,EAAM,CACR,IAAIoV,EAAgB11D,EAAkBsgD,EAAKr5C,EAAGxG,EAAMwG,GAChD0uD,EAAgB31D,EAAkBsgD,EAAKp5C,EAAGzG,EAAMyG,GAChD0wD,EAAoB53D,EAAkBsgD,EAAKz5C,MAAOpG,EAAMoG,OACxDgxD,EAAqB73D,EAAkBsgD,EAAKx5C,OAAQrG,EAAMqG,QAC9D,OAAOkP,GAAc,GAAIvV,EAAO,CAC9BwG,EAAGyuD,EAAcv1D,GACjB+G,EAAGyuD,EAAcx1D,GACjB0G,MAAO+wD,EAAkBz3D,GACzB2G,OAAQ+wD,EAAmB13D,KAI/B,GAAe,eAAX0W,EAAyB,CAC3B,IAEIzE,EAFsBpS,EAAkB,EAAGS,EAAMqG,OAE7CgxD,CAAoB33D,GAE5B,OAAO6V,GAAc,GAAIvV,EAAO,CAC9ByG,EAAGzG,EAAMyG,EAAIzG,EAAMqG,OAASsL,EAC5BtL,OAAQsL,IAMZ,OAAO4D,GAAc,GAAIvV,EAAO,CAC9BoG,MAHiB7G,EAAkB,EAAGS,EAAMoG,MACtC4rB,CAAatyB,QAKvB,OAAOwJ,IAAMyB,cAAcyf,GAAO,KAAMxH,EAAO00C,2BAA2B3H,SAG7E,CACDn2D,IAAK,mBACL2B,MAAO,WACL,IAAIymB,EAAepV,KAAK5C,MACpBS,EAAOuX,EAAavX,KACpBqd,EAAoB9F,EAAa8F,kBACjCsvC,EAAWxqD,KAAKsL,MAAMk/C,SAE1B,QAAItvC,GAAqBrd,GAAQA,EAAKpN,SAAY+5D,GAAal1C,KAASk1C,EAAU3sD,GAI3EmC,KAAK8qD,2BAA2BjtD,GAH9BmC,KAAK+qD,kCAKf,CACD/9D,IAAK,mBACL2B,MAAO,WACL,IAAIs0D,EAASjjD,KAETnC,EAAOmC,KAAK5C,MAAMS,KAClBmtD,EAAkB/tD,EAA0B+C,KAAK5C,MAAM6tD,YAC3D,OAAOptD,EAAKpB,KAAI,SAAUjJ,EAAOQ,GAEnBR,EAAM7E,MAAlB,IACIs8D,EAAaz3D,EAAMy3D,WACnBC,EAAOv2D,GAAyBnB,EAAO,CAAC,QAAS,eAErD,IAAKy3D,EACH,OAAO,KAGT,IAAI7tD,EAAQ2L,GAAc,GAAImiD,EAAM,CAClC10D,KAAM,QACLy0D,EAAY,GAAID,EAAiB,GAAIltD,GAAoBmlD,EAAO7lD,MAAO5J,EAAOQ,GAAI,CACnFjD,MAAOiD,EACPhH,IAAK,kBAAkBmF,OAAO6B,GAC9BqM,UAAW,sCAGb,OAAO4iD,EAAOx/C,YAAYinD,gBAAgBzH,EAAO7lD,MAAM6tD,WAAY7tD,QAGtE,CACDpQ,IAAK,iBACL2B,MAAO,WACL,GAAIqR,KAAK5C,MAAM8d,oBAAsBlb,KAAKsL,MAAMi2C,oBAC9C,OAAO,KAGT,IAAInqC,EAAepX,KAAK5C,MACpBS,EAAOuZ,EAAavZ,KACpBktC,EAAQ3zB,EAAa2zB,MACrBC,EAAQ5zB,EAAa4zB,MACrBphC,EAASwN,EAAaxN,OACtBtN,EAAW8a,EAAa9a,SACxBqrD,EAAgBtrD,EAAcC,EAAUuuC,IAE5C,IAAK8c,EACH,OAAO,KAGT,IAAI3sC,EAAoB,aAAXpR,EAAwB/L,EAAK,GAAGhE,OAAS,EAAIgE,EAAK,GAAGjE,MAAQ,EAE1E,SAASkxC,EAAmB8c,EAAW/sC,GACrC,MAAO,CACL7gB,EAAG4tD,EAAU5tD,EACbC,EAAG2tD,EAAU3tD,EACbtL,MAAOi5D,EAAUj5D,MACjBk9C,SAAUG,GAAkB4b,EAAW/sC,IAI3C,OAAO8sC,EAAclrD,KAAI,SAAUgP,EAAMzX,GACvC,OAAO0I,IAAMwQ,aAAazB,EAAM,CAC9Bze,IAAK,aAAamF,OAAO6B,GAEzB6J,KAAMA,EACNktC,MAAOA,EACPC,MAAOA,EACPphC,OAAQA,EACRoR,OAAQA,EACR8vB,mBAAoBA,SAIzB,CACD99C,IAAK,SACL2B,MAAO,WACL,IAAIg1D,EAAe3jD,KAAK5C,MACpB3Q,EAAOk3D,EAAal3D,KACpBoR,EAAO8lD,EAAa9lD,KACpBwC,EAAYsjD,EAAatjD,UACzB0qC,EAAQ4Y,EAAa5Y,MACrBC,EAAQ2Y,EAAa3Y,MACrBh/B,EAAO23C,EAAa33C,KACpBG,EAAMw3C,EAAax3C,IACnBvS,EAAQ+pD,EAAa/pD,MACrBC,EAAS8pD,EAAa9pD,OACtBqhB,EAAoByoC,EAAazoC,kBACjC+vC,EAAatH,EAAasH,WAC1B/4D,EAAKyxD,EAAazxD,GAEtB,GAAIzF,IAASoR,IAASA,EAAKpN,OACzB,OAAO,KAGT,IAAI8wD,EAAsBvhD,KAAKsL,MAAMi2C,oBACjC5gD,EAAaC,IAAW,eAAgBP,GACxCwnD,EAAW9c,GAASA,EAAMiI,mBAAqBhI,GAASA,EAAMgI,kBAC9D8U,EAAarpD,IAAOvM,GAAM8N,KAAK9N,GAAKA,EACxC,OAAOwK,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAWM,GACVknD,EAAWnrD,IAAMyB,cAAc,OAAQ,KAAMzB,IAAMyB,cAAc,WAAY,CAC9EjM,GAAI,YAAYC,OAAO21D,IACtBprD,IAAMyB,cAAc,OAAQ,CAC7BnE,EAAGgS,EACH/R,EAAGkS,EACHvS,MAAOA,EACPC,OAAQA,MACH,KAAM6C,IAAMyB,cAAcyf,GAAO,CACtCvd,UAAW,0BACX1K,SAAUkyD,EAAW,iBAAiB11D,OAAO21D,EAAY,KAAO,MAC/DmD,EAAajrD,KAAKsmD,mBAAqB,KAAMtmD,KAAKmrD,oBAAqBnrD,KAAKqpD,mBAAoBnuC,GAAqBqmC,IAAwBL,GAAUR,mBAAmB1gD,KAAK5C,MAAOS,SAvSjHoI,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA0T3KijD,EA5RT,CA6RE3hD,iBAEF2hD,GAAInuD,YAAc,MAClBmuD,GAAItqD,UAAY8I,GAAc,GAAI7T,EAAyB,GAAIkF,EAAkB,CAC/EiG,UAAWlL,IAAUC,OACrBwU,OAAQzU,IAAUiB,MAAM,CAAC,WAAY,eACrCozD,QAASr0D,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC1Dm0D,QAASp0D,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC1D41C,MAAO71C,IAAUjF,OACjB66C,MAAO51C,IAAUjF,OACjBuiD,QAASt9C,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC1Dg2D,QAASj2D,IAAUK,OACnBqkB,KAAM1kB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SACvD1I,KAAMqI,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SACvDqlB,QAAS1lB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,OAAQL,IAAUmF,OAAO4F,WACnF8sC,WAAY73C,IAAUiB,MAAM4F,GAC5BkoD,YAAa/uD,IAAUiB,MAAM6F,GAC7BovD,aAAcl2D,IAAUK,OACxB81D,WAAYn2D,IAAUK,OACtB/I,KAAM0I,IAAUiY,KAChBhN,MAAOjL,IAAUuB,UAAU,CAACvB,IAAUmF,KAAMnF,IAAUyV,UACtD/M,KAAM1I,IAAUmL,QAAQnL,IAAUiL,MAAM,CACtCpG,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACboE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,OAClB2E,OAAQhF,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUtE,QACzDlC,MAAOwG,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,OAAQD,IAAUtE,WAE5EilB,iBAAkB3gB,IAAUmF,KAC5Bub,eAAgB1gB,IAAUmF,KAC1BunD,YAAa1sD,IAAUK,OACvB0lB,kBAAmB/lB,IAAUiY,KAC7B81C,eAAgB/tD,IAAUK,OAC1B2lB,kBAAmBhmB,IAAUK,OAC7B4lB,gBAAiBjmB,IAAUiB,MAAM,CAAC,OAAQ,UAAW,WAAY,cAAe,WAChFlE,GAAIiD,IAAUC,SAEhBm1D,GAAIvhD,aAAe,CACjBwgD,QAAS,EACTD,QAAS,EACTvc,WAAY,OACZqe,aAAc,EACd5+D,MAAM,EAENoR,KAAM,GACN+L,OAAQ,WACRsR,mBAAoBjd,KACpBilD,eAAgB,EAChB/nC,kBAAmB,IACnBC,gBAAiB,OACjBtF,iBAAkB,aAClBD,eAAgB,cAGlB00C,GAAI5F,gBAAkB,SAAU9lD,GAC9B,IAAIzB,EAAQyB,EAAMzB,MACdqO,EAAO5M,EAAM4M,KACb8/C,EAAc1sD,EAAM0sD,YACpBtZ,EAAWpzC,EAAMozC,SACjBlH,EAAQlsC,EAAMksC,MACdC,EAAQnsC,EAAMmsC,MACd0e,EAAa7qD,EAAM6qD,WACnBC,EAAa9qD,EAAM8qD,WACnBjX,EAAc7zC,EAAM6zC,YACpB8Y,EAAiB3sD,EAAM2sD,eACvB5B,EAAgB/qD,EAAM+qD,cACtB5uC,EAASnc,EAAMmc,OACfywC,E5B6RyB,SAA2BF,EAAa1uD,GACrE,IAAK0uD,EACH,OAAO,KAGT,IAAK,IAAIv3D,EAAI,EAAGkqB,EAAMqtC,EAAY96D,OAAQuD,EAAIkqB,EAAKlqB,IACjD,GAAIu3D,EAAYv3D,GAAGyX,OAAS5O,EAC1B,OAAO0uD,EAAYv3D,GAAG+Y,SAI1B,OAAO,K4BxSG2+C,CAAkBH,EAAa9/C,GAEzC,IAAKggD,EACH,MAAO,GAGT,IAAI7hD,EAASxM,EAAMwM,OACf4iC,EAAc/gC,EAAKrO,MACnByd,EAAU2xB,EAAY3xB,QACtBve,EAAWkwC,EAAYlwC,SACvB+uD,EAAe7e,EAAY6e,aAC3BM,EAAyB,eAAX/hD,EAA0BohC,EAAQD,EAChD6gB,EAAgBlZ,EAAciZ,EAAYrlC,MAAMhB,SAAW,KAC3DumC,E5BggByB,SAA2BnoC,GACxD,IAAIioC,EAAcjoC,EAAMioC,YACpBrmC,EAASqmC,EAAYrlC,MAAMhB,SAE/B,GAAyB,WAArBqmC,EAAY9+D,KAAmB,CACjC,IAAIsU,EAAM5R,KAAK4R,IAAImkB,EAAO,GAAIA,EAAO,IACjCpkB,EAAM3R,KAAK2R,IAAIokB,EAAO,GAAIA,EAAO,IAErC,OAAInkB,GAAO,GAAKD,GAAO,EACd,EAGLA,EAAM,EACDA,EAGFC,EAGT,OAAOmkB,EAAO,G4BnhBEwmC,CAAkB,CAChC1uD,MAAOA,EACPuuD,YAAaA,IAEXpH,EAAQloD,EAAcC,EAAUqhB,IAChCouC,EAAQnC,EAAcntD,KAAI,SAAUjJ,EAAOzC,GAC7C,IAAIpC,EAAOqL,EAAGC,EAAGL,EAAOC,EAAQoxD,EAYhC,GAVIvY,EACF/jD,E5BoRwB,SAA0BA,EAAO22B,GAC7D,IAAKA,GAA4B,IAAlBA,EAAO70B,SAAiBkB,EAAS2zB,EAAO,MAAQ3zB,EAAS2zB,EAAO,IAC7E,OAAO32B,EAGT,IAAIwS,EAAM5R,KAAK4R,IAAImkB,EAAO,GAAIA,EAAO,IACjCpkB,EAAM3R,KAAK2R,IAAIokB,EAAO,GAAIA,EAAO,IACjCt0B,EAAS,CAACrC,EAAM,GAAIA,EAAM,IAkB9B,QAhBKgD,EAAShD,EAAM,KAAOA,EAAM,GAAKwS,KACpCnQ,EAAO,GAAKmQ,KAGTxP,EAAShD,EAAM,KAAOA,EAAM,GAAKuS,KACpClQ,EAAO,GAAKkQ,GAGVlQ,EAAO,GAAKkQ,IACdlQ,EAAO,GAAKkQ,GAGVlQ,EAAO,GAAKmQ,IACdnQ,EAAO,GAAKmQ,GAGPnQ,E4B7SKg7D,CAAiBtZ,EAAY8Y,EAAiBz6D,GAAQ66D,IAE9Dj9D,EAAQq9C,GAAkBx4C,EAAOqnB,GAE5Bre,IAAS7N,KACZA,EAAQ,CAACk9D,EAAWl9D,KAIT,eAAXib,GAmBF,GAlBA5P,EAAIo4C,GAAuB,CACzB/D,KAAMtD,EACNrmB,MAAOglC,EACPzX,SAAUA,EACVj3B,OAAQywC,EAAIzwC,OACZxnB,MAAOA,EACPzC,MAAOA,IAETkJ,EAAI+wC,EAAM1kB,MAAM33B,EAAM,IACtBiL,EAAQ6xD,EAAI/pD,KACZ7H,EAASmxC,EAAM1kB,MAAM33B,EAAM,IAAMq8C,EAAM1kB,MAAM33B,EAAM,IACnDs8D,EAAa,CACXjxD,EAAGA,EACHC,EAAG+wC,EAAM/wC,EACTL,MAAOA,EACPC,OAAQmxC,EAAMnxC,QAGZtK,KAAKwR,IAAIsqD,GAAgB,GAAK97D,KAAKwR,IAAIlH,GAAUtK,KAAKwR,IAAIsqD,GAAe,CAC3E,IAAIY,EAAQ16D,EAASsI,GAAUwxD,IAAiB97D,KAAKwR,IAAIsqD,GAAgB97D,KAAKwR,IAAIlH,IAClFI,GAAKgyD,EACLpyD,GAAUoyD,QAGZjyD,EAAI+wC,EAAMzkB,MAAM33B,EAAM,IACtBsL,EAAIm4C,GAAuB,CACzB/D,KAAMrD,EACNtmB,MAAOilC,EACP1X,SAAUA,EACVj3B,OAAQywC,EAAIzwC,OACZxnB,MAAOA,EACPzC,MAAOA,IAET6I,EAAQmxC,EAAMzkB,MAAM33B,EAAM,IAAMo8C,EAAMzkB,MAAM33B,EAAM,IAClDkL,EAAS4xD,EAAI/pD,KACbupD,EAAa,CACXjxD,EAAG+wC,EAAM/wC,EACTC,EAAGA,EACHL,MAAOmxC,EAAMnxC,MACbC,OAAQA,GAGNtK,KAAKwR,IAAIsqD,GAAgB,GAAK97D,KAAKwR,IAAInH,GAASrK,KAAKwR,IAAIsqD,KAG3DzxD,GAFarI,EAASqI,GAASyxD,IAAiB97D,KAAKwR,IAAIsqD,GAAgB97D,KAAKwR,IAAInH,KAMtF,OAAOmP,GAAc,GAAIvV,EAAO,CAC9BwG,EAAGA,EACHC,EAAGA,EACHL,MAAOA,EACPC,OAAQA,EACRlL,MAAO+jD,EAAc/jD,EAAQA,EAAM,GACnC8a,QAASjW,EACTy3D,WAAYA,GACX1G,GAASA,EAAMxzD,IAAUwzD,EAAMxzD,GAAOqM,UAE3C,OAAO2L,GAAc,CACnBlL,KAAMkuD,EACNniD,OAAQA,GACPoR,IAGUuvC,UCvff,SAAS1kD,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GASrK,IAAIylD,GAEJ,SAAU9kD,GAGR,SAAS8kD,IAGP,OAFApmD,GAAgB9F,KAAMksD,GAEf/lD,GAA2BnG,KAAMsG,GAAgB4lD,GAAOnsD,MAAMC,KAAMxN,YA3B/E,IAAsBwT,EAAaqB,EAAYC,EAqC7C,OA7BF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAcjXE,CAAUwkD,EAAO9kD,GAtBGpB,EA8BPkmD,GA9BoB7kD,EA8Bb,CAAC,CACnBra,IAAK,SACL2B,MAAO,WACL,OAAO,UAjCiEsX,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GAqC3K4kD,EAhBT,CAiBEtjD,iBAEFsjD,GAAM9vD,YAAc,QACpB8vD,GAAMjsD,UAAY,CAChB6gB,cAAe3rB,IAAUiY,KACzB8kC,wBAAyB/8C,IAAUiY,KACnC3gB,KAAM0I,IAAUiY,KAEhBtgB,KAAMqI,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAEvDqkB,KAAM1kB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAEvDg0D,QAASr0D,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC1D8vB,OAAQnwB,IAAUmL,QAAQnL,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,OAAQL,IAAUmF,KAAMnF,IAAUiB,MAAM,CAAC,OAAQ,UAAW,eAEvIykB,QAAS1lB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,OAAQL,IAAUmF,OAE5EV,MAAOzE,IAAUK,OAEjBqE,OAAQ1E,IAAUK,OAClB22D,OAAQh3D,IAAUiY,KAElBg/C,YAAaj3D,IAAUiB,MAAM,CAAC,MAAO,WACrCvJ,KAAMsI,IAAUiB,MAAM,CAAC,SAAU,aAGjCsuB,MAAOvvB,IAAUtE,MAEjB8wB,UAAWxsB,IAAUK,OAErB62D,cAAel3D,IAAUmF,KACzBiQ,QAASpV,IAAUiL,MAAM,CACvB4L,KAAM7W,IAAUK,OAChByW,MAAO9W,IAAUK,SAEnBw9C,kBAAmB79C,IAAUiY,KAC7BkZ,MAAOnxB,IAAUuB,UAAU,CAACvB,IAAUiB,MAAM2F,GAAc5G,IAAUmF,OACpEgyD,KAAMn3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUmF,KAAMnF,IAAUjF,OAAQiF,IAAUyV,UACvF2hD,SAAUp3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUjF,SACzDs8D,SAAUr3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUjF,SACzDu8D,WAAYt3D,IAAUK,OACtBk3D,SAAUv3D,IAAUK,OACpB4kC,SAAUjlC,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUiB,MAAM,CAAC,gBAAiB,cAAe,uBAClGu2D,SAAUx3D,IAAUiY,MAEtB8+C,GAAMljD,aAAe,CACnB8X,eAAe,EACfr0B,MAAM,EACN2/D,YAAa,SACbxyD,MAAO,EACPC,OAAQ,GACRsyD,QAAQ,EACR3C,QAAS,EACT7nC,UAAW,EACX90B,KAAM,WACNy4B,OAAQ,CAAC,EAAG,QACZ/a,QAAS,CACPyB,KAAM,EACNC,MAAO,GAET+mC,mBAAmB,EACnB1sB,MAAO,OACPqmC,UAAU,EACVza,yBAAyB,GAEZga,UC7Gf,SAASrmD,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAQrK,IAAImmD,GAEJ,SAAUxlD,GAGR,SAASwlD,IAGP,OAFA9mD,GAAgB9F,KAAM4sD,GAEfzmD,GAA2BnG,KAAMsG,GAAgBsmD,GAAO7sD,MAAMC,KAAMxN,YA1B/E,IAAsBwT,EAAaqB,EAAYC,EAoC7C,OA5BF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAajXE,CAAUklD,EAAOxlD,GArBGpB,EA6BP4mD,GA7BoBvlD,EA6Bb,CAAC,CACnBra,IAAK,SACL2B,MAAO,WACL,OAAO,UAhCiEsX,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GAoC3KslD,EAhBT,CAiBEhkD,iBAEFgkD,GAAMxwD,YAAc,QACpBwwD,GAAM3sD,UAAY,CAChB6gB,cAAe3rB,IAAUiY,KACzB8kC,wBAAyB/8C,IAAUiY,KACnC3gB,KAAM0I,IAAUiY,KAEhBtgB,KAAMqI,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAEvDqkB,KAAM1kB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAEvD+zD,QAASp0D,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC1D8vB,OAAQnwB,IAAUmL,QAAQnL,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,OAAQL,IAAUmF,KAAMnF,IAAUiB,MAAM,CAAC,OAAQ,UAAW,eAEvIykB,QAAS1lB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,OAAQL,IAAUmF,OAG5EoqB,MAAOvvB,IAAUtE,MAEjB8wB,UAAWxsB,IAAUK,OAErB62D,cAAel3D,IAAUmF,KAEzBV,MAAOzE,IAAUK,OAEjBqE,OAAQ1E,IAAUK,OAClB22D,OAAQh3D,IAAUiY,KAElBg/C,YAAaj3D,IAAUiB,MAAM,CAAC,OAAQ,UACtCvJ,KAAMsI,IAAUiB,MAAM,CAAC,SAAU,aACjCmU,QAASpV,IAAUiL,MAAM,CACvB+L,IAAKhX,IAAUK,OACf4W,OAAQjX,IAAUK,SAEpBw9C,kBAAmB79C,IAAUiY,KAC7BkZ,MAAOnxB,IAAUuB,UAAU,CAACvB,IAAUiB,MAAM,CAAC,OAAQ,SAAU,MAAO,OAAQ,MAAO,WAAY,OAAQ,OAAQ,QAAS,UAAW,WAAY,WAAY,MAAO,aAAc,cAAejB,IAAUmF,OAC3MgyD,KAAMn3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUmF,KAAMnF,IAAUjF,OAAQiF,IAAUyV,UACvF2hD,SAAUp3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUjF,SACzDs8D,SAAUr3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUjF,SACzDu8D,WAAYt3D,IAAUK,OACtBk3D,SAAUv3D,IAAUK,OACpB4kC,SAAUjlC,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUiB,MAAM,CAAC,gBAAiB,cAAe,uBAClGu2D,SAAUx3D,IAAUiY,MAEtBw/C,GAAM5jD,aAAe,CACnBkpC,yBAAyB,EACzBpxB,eAAe,EACfr0B,MAAM,EACN2/D,YAAa,OACbxyD,MAAO,GACPC,OAAQ,EACRsyD,QAAQ,EACR5C,QAAS,EACT5nC,UAAW,EACX90B,KAAM,SACNy4B,OAAQ,CAAC,EAAG,QACZ/a,QAAS,CACP4B,IAAK,EACLC,OAAQ,GAEV4mC,mBAAmB,EACnB1sB,MAAO,OACPqmC,UAAU,GAEGC,U,oFC5Gf,SAASxnD,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAI9U,SAAS4S,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASgT,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASsT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAWrK,IAAIomD,GAEJ,SAAUzlD,GAGR,SAASylD,IAGP,OAFA/mD,GAAgB9F,KAAM6sD,GAEf1mD,GAA2BnG,KAAMsG,GAAgBumD,GAAO9sD,MAAMC,KAAMxN,YA7B/E,IAAsBwT,EAAaqB,EAAYC,EA4D7C,OApDF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAgBjXE,CAAUmlD,EAAOzlD,GAxBGpB,EAgCP6mD,EAhCgCvlD,EAqDzC,CAAC,CACHta,IAAK,UACL2B,MAAO,SAAiBqL,EAAGC,EAAGL,EAAOC,EAAQsS,EAAKH,GAChD,MAAO,IAAI7Z,OAAO6H,EAAG,KAAK7H,OAAOga,EAAK,KAAKha,OAAO0H,EAAQ,KAAK1H,OAAO6Z,EAAM,KAAK7Z,OAAO8H,EAAG,KAAK9H,OAAOyH,OAxD1EyN,EAgCb,CAAC,CACnBra,IAAK,SACL2B,MAAO,WACL,IAAIgZ,EAAc3H,KAAK5C,MACnBpD,EAAI2N,EAAY3N,EAChBC,EAAI0N,EAAY1N,EAChBL,EAAQ+N,EAAY/N,MACpBC,EAAS8N,EAAY9N,OACrBsS,EAAMxE,EAAYwE,IAClBH,EAAOrE,EAAYqE,KACnB3L,EAAYsH,EAAYtH,UAE5B,OAAK1O,EAASqI,IAAOrI,EAASsI,IAAOtI,EAASiI,IAAWjI,EAASkI,IAAYlI,EAASwa,IAASxa,EAASqa,GAIlGtP,IAAMyB,cAAc,OAAQ0B,GAAS,GAAI5C,EAA0B+C,KAAK5C,OAAQ,CACrFiD,UAAWO,IAAW,iBAAkBP,GACxCqI,EAAG1I,KAAKyD,YAAYkF,QAAQ3O,EAAGC,EAAGL,EAAOC,EAAQsS,EAAKH,MAL/C,UA7C+D/F,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA4D3KulD,EArCT,CAsCEjkD,iBAEFikD,GAAMzwD,YAAc,QACpBywD,GAAM5sD,UA5EN,SAAuBrS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EA4E3emb,CAAc,GAAI7T,EAAyB,CAC3D8E,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACboE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,OAClB2W,IAAKhX,IAAUK,OACfwW,KAAM7W,IAAUK,OAChB6K,UAAWlL,IAAUC,SAEvBy3D,GAAM7jD,aAAe,CACnBhP,EAAG,EACHC,EAAG,EACHkS,IAAK,EACLH,KAAM,EACNpS,MAAO,EACPC,OAAQ,GAEKgzD,UC7Ff,SAAShnD,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAAS4S,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAAS8B,GAAyB5H,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAAkEC,EAAKgH,EAAnEpG,EAEzF,SAAuCb,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAFxMkH,CAA8B/H,EAAQ6H,GAAuB,GAAIxF,OAAO2F,sBAAuB,CAAE,IAAIC,EAAmB5F,OAAO2F,sBAAsBhI,GAAS,IAAKiH,EAAI,EAAGA,EAAIgB,EAAiBvE,OAAQuD,IAAOhH,EAAMgI,EAAiBhB,GAAQY,EAASlD,QAAQ1E,IAAQ,GAAkBoC,OAAOiF,UAAUY,qBAAqB/G,KAAKnB,EAAQC,KAAgBY,EAAOZ,GAAOD,EAAOC,IAAU,OAAOY,EAIne,SAASkY,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAgBrK,IAAIqmD,GAEJ,SAAU/0C,GAGR,SAAS+0C,IAGP,OAFAhnD,GAAgB9F,KAAM8sD,GAEf3mD,GAA2BnG,KAAMsG,GAAgBwmD,GAAe/sD,MAAMC,KAAMxN,YAlCvF,IAAsBwT,EAAaqB,EAAYC,EAogB7C,OA5fF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAqBjXE,CAAUolD,EAAe/0C,GA7BL/R,EAqCP8mD,EArCgCxlD,EA4SzC,CAAC,CACHta,IAAK,WACL2B,MAAO,SAAkByO,GACvB,IAAIkvD,EAAOlvD,EAAMkvD,KACb5nC,EAAQtnB,EAAMsnB,MACdvkB,EAAU/C,EAAM+C,QAChBssD,EAAarvD,EAAMqvD,WACnBL,EAAchvD,EAAMgvD,YACpBhyB,EAAWh9B,EAAMg9B,SACjBiyB,EAAgBjvD,EAAMivD,cACtBxyC,EAAOzc,EAAMyc,KAEjB,OAAK6K,GAAUA,EAAMj0B,QAAW67D,EAI5B36D,EAASyoC,IAAan8B,KACjB6uD,EAAcC,uBAAuBroC,EAAO/yB,EAASyoC,GAAYA,EAAW,GAGpE,qBAAbA,EACK0yB,EAAcE,cAAc,CACjCtoC,MAAOA,EACP2nC,cAAeA,EACflsD,QAASA,EACTisD,YAAaA,EACbK,WAAYA,EACZ5yC,KAAMA,IACL,GAGY,kBAAbugB,EACK0yB,EAAcE,cAAc,CACjCtoC,MAAOA,EACP2nC,cAAeA,EACflsD,QAASA,EACTisD,YAAaA,EACbK,WAAYA,EACZ5yC,KAAMA,IAIHizC,EAAcG,YAAY,CAC/BvoC,MAAOA,EACP2nC,cAAeA,EACflsD,QAASA,EACTisD,YAAaA,EACbK,WAAYA,EACZ5yC,KAAMA,IAnCC,KAsCV,CACD7sB,IAAK,yBACL2B,MAAO,SAAgC+1B,EAAO0V,GAC5C,OAAO1V,EAAM9tB,QAAO,SAAUpD,EAAOQ,GACnC,OAAOA,GAAKomC,EAAW,KAAO,OAGjC,CACDptC,IAAK,gBACL2B,MAAO,SAAuBkQ,EAAOquD,GACnC,IAgBIz+C,EAAO2E,EAhBPsR,EAAQ7lB,EAAM6lB,MACd2nC,EAAgBxtD,EAAMwtD,cACtBlsD,EAAUtB,EAAMsB,QAChBisD,EAAcvtD,EAAMutD,YACpBK,EAAa5tD,EAAM4tD,WACnB5yC,EAAOhb,EAAMgb,KACb7f,EAAImG,EAAQnG,EACZC,EAAIkG,EAAQlG,EACZL,EAAQuG,EAAQvG,MAChBC,EAASsG,EAAQtG,OACjBszD,EAA0B,QAAhBf,GAAyC,WAAhBA,EAA2B,QAAU,SACxEp7D,GAAU0zB,GAAS,IAAI/xB,QAEvBy6D,EAAWvzC,GAAoB,UAAZszC,EAAsBtQ,GAAchjC,GAAMszC,GAAW,EACxEjvC,EAAMltB,EAAOP,OACb6mC,EAAOpZ,GAAO,EAAI3sB,EAASP,EAAO,GAAGiqB,WAAajqB,EAAO,GAAGiqB,YAAc,EAW9E,GARa,IAATqc,GACF7oB,EAAoB,UAAZ0+C,EAAsBnzD,EAAIC,EAClCmZ,EAAkB,UAAZ+5C,EAAsBnzD,EAAIJ,EAAQK,EAAIJ,IAE5C4U,EAAoB,UAAZ0+C,EAAsBnzD,EAAIJ,EAAQK,EAAIJ,EAC9CuZ,EAAkB,UAAZ+5C,EAAsBnzD,EAAIC,GAG9BizD,EAAa,CAEf,IAAIG,EAAO3oC,EAAMxG,EAAM,GACnBovC,EAAcnwD,IAAYkvD,GAAiBA,EAAcgB,EAAK1+D,OAAS0+D,EAAK1+D,MAC5E4+D,EAAW1Q,GAAcyQ,GAAaH,GAAWC,EACjDI,EAAUl2B,GAAQ+1B,EAAKpyC,WAAaqc,EAAOi2B,EAAW,EAAIn6C,GAC9DpiB,EAAOktB,EAAM,GAAKmvC,EAAOtkD,GAAc,GAAIskD,EAAM,CAC/CI,UAAWD,EAAU,EAAIH,EAAKpyC,WAAauyC,EAAUl2B,EAAO+1B,EAAKpyC,aAElDqc,GAAQ+1B,EAAKI,UAAYn2B,EAAOi2B,EAAW,EAAI9+C,IAAU,GAAK6oB,GAAQ+1B,EAAKI,UAAYn2B,EAAOi2B,EAAW,EAAIn6C,IAAQ,IAGpIA,EAAMi6C,EAAKI,UAAYn2B,GAAQi2B,EAAW,EAAId,GAC9Cz7D,EAAOktB,EAAM,GAAKnV,GAAc,GAAIskD,EAAM,CACxCK,QAAQ,KAOd,IAFA,IAAIzuD,EAAQiuD,EAAchvC,EAAM,EAAIA,EAE3Bhf,EAAK,EAAGA,EAAKD,EAAOC,IAAM,CACjC,IAAI1L,EAAQxC,EAAOkO,GACfyL,EAAUxN,IAAYkvD,GAAiBA,EAAc74D,EAAM7E,OAAS6E,EAAM7E,MAC1E+S,EAAOm7C,GAAclyC,GAASwiD,GAAWC,EAE7C,GAAW,IAAPluD,EAAU,CACZ,IAAIyuD,EAAMr2B,GAAQ9jC,EAAMynB,WAAaqc,EAAO51B,EAAO,EAAI+M,GACvDzd,EAAOkO,GAAM1L,EAAQuV,GAAc,GAAIvV,EAAO,CAC5Ci6D,UAAWE,EAAM,EAAIn6D,EAAMynB,WAAa0yC,EAAMr2B,EAAO9jC,EAAMynB,kBAG7DjqB,EAAOkO,GAAM1L,EAAQuV,GAAc,GAAIvV,EAAO,CAC5Ci6D,UAAWj6D,EAAMynB,aAIRqc,GAAQ9jC,EAAMi6D,UAAYn2B,EAAO51B,EAAO,EAAI+M,IAAU,GAAK6oB,GAAQ9jC,EAAMi6D,UAAYn2B,EAAO51B,EAAO,EAAI0R,IAAQ,IAG1H3E,EAAQjb,EAAMi6D,UAAYn2B,GAAQ51B,EAAO,EAAI+qD,GAC7Cz7D,EAAOkO,GAAM6J,GAAc,GAAIvV,EAAO,CACpCk6D,QAAQ,KAKd,OAAO18D,EAAO4F,QAAO,SAAUpD,GAC7B,OAAOA,EAAMk6D,YAGhB,CACD1gE,IAAK,cACL2B,MAAO,SAAqBg0B,GAC1B,IAgBIlU,EAAO2E,EAhBPsR,EAAQ/B,EAAM+B,MACd2nC,EAAgB1pC,EAAM0pC,cACtBlsD,EAAUwiB,EAAMxiB,QAChBisD,EAAczpC,EAAMypC,YACpBK,EAAa9pC,EAAM8pC,WACnB5yC,EAAO8I,EAAM9I,KACb7f,EAAImG,EAAQnG,EACZC,EAAIkG,EAAQlG,EACZL,EAAQuG,EAAQvG,MAChBC,EAASsG,EAAQtG,OACjBszD,EAA0B,QAAhBf,GAAyC,WAAhBA,EAA2B,QAAU,SAExEgB,EAAWvzC,GAAoB,UAAZszC,EAAsBtQ,GAAchjC,GAAMszC,GAAW,EACxEn8D,GAAU0zB,GAAS,IAAI/xB,QACvBurB,EAAMltB,EAAOP,OACb6mC,EAAOpZ,GAAO,EAAI3sB,EAASP,EAAO,GAAGiqB,WAAajqB,EAAO,GAAGiqB,YAAc,EAGjE,IAATqc,GACF7oB,EAAoB,UAAZ0+C,EAAsBnzD,EAAIC,EAClCmZ,EAAkB,UAAZ+5C,EAAsBnzD,EAAIJ,EAAQK,EAAIJ,IAE5C4U,EAAoB,UAAZ0+C,EAAsBnzD,EAAIJ,EAAQK,EAAIJ,EAC9CuZ,EAAkB,UAAZ+5C,EAAsBnzD,EAAIC,GAGlC,IAAK,IAAI2zD,EAAM1vC,EAAM,EAAG0vC,GAAO,EAAGA,IAAO,CACvC,IAAIp6D,EAAQxC,EAAO48D,GACfjjD,EAAUxN,IAAYkvD,GAAiBA,EAAc74D,EAAM7E,OAAS6E,EAAM7E,MAC1E+S,EAAOm7C,GAAclyC,GAASwiD,GAAWC,EAE7C,GAAIQ,IAAQ1vC,EAAM,EAAG,CACnB,IAAIyvC,EAAMr2B,GAAQ9jC,EAAMynB,WAAaqc,EAAO51B,EAAO,EAAI0R,GACvDpiB,EAAO48D,GAAOp6D,EAAQuV,GAAc,GAAIvV,EAAO,CAC7Ci6D,UAAWE,EAAM,EAAIn6D,EAAMynB,WAAa0yC,EAAMr2B,EAAO9jC,EAAMynB,kBAG7DjqB,EAAO48D,GAAOp6D,EAAQuV,GAAc,GAAIvV,EAAO,CAC7Ci6D,UAAWj6D,EAAMynB,aAIRqc,GAAQ9jC,EAAMi6D,UAAYn2B,EAAO51B,EAAO,EAAI+M,IAAU,GAAK6oB,GAAQ9jC,EAAMi6D,UAAYn2B,EAAO51B,EAAO,EAAI0R,IAAQ,IAG1HA,EAAM5f,EAAMi6D,UAAYn2B,GAAQ51B,EAAO,EAAI+qD,GAC3Cz7D,EAAO48D,GAAO7kD,GAAc,GAAIvV,EAAO,CACrCk6D,QAAQ,KAKd,OAAO18D,EAAO4F,QAAO,SAAUpD,GAC7B,OAAOA,EAAMk6D,YAGhB,CACD1gE,IAAK,iBACL2B,MAAO,SAAwBqc,EAAQ5N,EAAOzO,GAa5C,OAVI+N,IAAMW,eAAe2N,GACZtO,IAAMwQ,aAAalC,EAAQ5N,GAC7BD,IAAY6N,GACVA,EAAO5N,GAEPV,IAAMyB,cAAcu/C,GAAM79C,GAAS,GAAIzC,EAAO,CACvDiD,UAAW,uCACT1R,OA7fuB0Y,EAqCL,CAAC,CAC3Bra,IAAK,wBACL2B,MAAO,SAA+B+P,EAAM4M,GAC1C,IAAInL,EAAUzB,EAAKyB,QACf0tD,EAAYl5D,GAAyB+J,EAAM,CAAC,YAI5CiJ,EAAc3H,KAAK5C,MACnB0wD,EAAanmD,EAAYxH,QACzB4tD,EAAep5D,GAAyBgT,EAAa,CAAC,YAE1D,OAAQjU,EAAayM,EAAS2tD,KAAgBp6D,EAAam6D,EAAWE,KAAkBr6D,EAAa4X,EAAOtL,KAAKsL,SASlH,CACDte,IAAK,mBACL2B,MAAO,SAA0BkP,GAC/B,IASI+E,EAAIE,EAAID,EAAIE,EAAIirD,EAAIC,EATpB1lD,EAAevI,KAAK5C,MACpBpD,EAAIuO,EAAavO,EACjBC,EAAIsO,EAAatO,EACjBL,EAAQ2O,EAAa3O,MACrBC,EAAS0O,EAAa1O,OACtBuyD,EAAc7jD,EAAa6jD,YAC3BM,EAAWnkD,EAAamkD,SACxBP,EAAS5jD,EAAa4jD,OACtB+B,EAAa3lD,EAAa2lD,WAE1B52B,EAAO60B,GAAU,EAAI,EACrBgC,EAAgBtwD,EAAK6uD,UAAYA,EACjCe,EAAY97D,EAASkM,EAAK4vD,WAAa5vD,EAAK4vD,UAAY5vD,EAAKod,WAEjE,OAAQmxC,GACN,IAAK,MACHxpD,EAAKE,EAAKjF,EAAKod,WAGfgzC,GADAprD,GADAE,EAAK9I,GAAKkyD,EAAStyD,GACTy9B,EAAO62B,GACP72B,EAAO42B,EACjBF,EAAKP,EACL,MAEF,IAAK,OACH5qD,EAAKE,EAAKlF,EAAKod,WAGf+yC,GADAprD,GADAE,EAAK9I,GAAKmyD,EAASvyD,GACT09B,EAAO62B,GACP72B,EAAO42B,EACjBD,EAAKR,EACL,MAEF,IAAK,QACH5qD,EAAKE,EAAKlF,EAAKod,WAGf+yC,GADAprD,GADAE,EAAK9I,EAAImyD,EAASvyD,GACR09B,EAAO62B,GACP72B,EAAO42B,EACjBD,EAAKR,EACL,MAEF,QACE7qD,EAAKE,EAAKjF,EAAKod,WAGfgzC,GADAprD,GADAE,EAAK9I,EAAIkyD,EAAStyD,GACRy9B,EAAO62B,GACP72B,EAAO42B,EACjBF,EAAKP,EAIT,MAAO,CACLzT,KAAM,CACJp3C,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,GAENupD,KAAM,CACJtyD,EAAGg0D,EACH/zD,EAAGg0D,MAIR,CACDjhE,IAAK,oBACL2B,MAAO,WACL,IAGIqK,EAHAoc,EAAepV,KAAK5C,MACpBgvD,EAAch3C,EAAag3C,YAC3BD,EAAS/2C,EAAa+2C,OAG1B,OAAQC,GACN,IAAK,OACHpzD,EAAamzD,EAAS,QAAU,MAChC,MAEF,IAAK,QACHnzD,EAAamzD,EAAS,MAAQ,QAC9B,MAEF,QACEnzD,EAAa,SAIjB,OAAOA,IAER,CACDhM,IAAK,wBACL2B,MAAO,WACL,IAAIyoB,EAAepX,KAAK5C,MACpBgvD,EAAch1C,EAAag1C,YAC3BD,EAAS/0C,EAAa+0C,OACtBvN,EAAiB,MAErB,OAAQwN,GACN,IAAK,OACL,IAAK,QACHxN,EAAiB,SACjB,MAEF,IAAK,MACHA,EAAiBuN,EAAS,QAAU,MACpC,MAEF,QACEvN,EAAiBuN,EAAS,MAAQ,QAItC,OAAOvN,IAER,CACD5xD,IAAK,iBACL2B,MAAO,WACL,IAAIg1D,EAAe3jD,KAAK5C,MACpBpD,EAAI2pD,EAAa3pD,EACjBC,EAAI0pD,EAAa1pD,EACjBL,EAAQ+pD,EAAa/pD,MACrBC,EAAS8pD,EAAa9pD,OACtBuyD,EAAczI,EAAayI,YAC3BG,EAAW5I,EAAa4I,SACxBJ,EAASxI,EAAawI,OAEtB/uD,EAAQ2L,GAAc,GAAI9L,EAA0B+C,KAAK5C,OAAQ,CACnE5G,KAAM,QACLyG,EAA0BsvD,IAE7B,GAAoB,QAAhBH,GAAyC,WAAhBA,EAA0B,CACrD,IAAIgC,EAA6B,QAAhBhC,IAA0BD,GAA0B,WAAhBC,GAA4BD,EACjF/uD,EAAQ2L,GAAc,GAAI3L,EAAO,CAC/BwF,GAAI5I,EACJ6I,GAAI5I,EAAIm0D,EAAav0D,EACrBiJ,GAAI9I,EAAIJ,EACRmJ,GAAI9I,EAAIm0D,EAAav0D,QAElB,CACL,IAAIw0D,EAA4B,SAAhBjC,IAA2BD,GAA0B,UAAhBC,GAA2BD,EAChF/uD,EAAQ2L,GAAc,GAAI3L,EAAO,CAC/BwF,GAAI5I,EAAIq0D,EAAYz0D,EACpBiJ,GAAI5I,EACJ6I,GAAI9I,EAAIq0D,EAAYz0D,EACpBmJ,GAAI9I,EAAIJ,IAIZ,OAAO6C,IAAMyB,cAAc,OAAQ0B,GAAS,CAC1CQ,UAAW,gCACVjD,MAEJ,CACDpQ,IAAK,cAOL2B,MAAO,SAAqB+1B,GAC1B,IAAIhb,EAAQ1J,KAER6jD,EAAe7jD,KAAK5C,MACpBovD,EAAW3I,EAAa2I,SACxBh0D,EAASqrD,EAAarrD,OACtB8zD,EAAOzI,EAAayI,KACpBD,EAAgBxI,EAAawI,cAC7BxyC,EAAOgqC,EAAahqC,KACpBy0C,EAAaxB,EAAcyB,SAASxlD,GAAc,GAAI/I,KAAK5C,MAAO,CACpEsnB,MAAOA,KAEL1rB,EAAagH,KAAKwuD,oBAClB5P,EAAiB5+C,KAAKyuD,wBACtBC,EAAYzxD,EAA0B+C,KAAK5C,OAC3CuxD,EAAkB1xD,EAA0BqvD,GAE5CsC,EAAgB7lD,GAAc,GAAI2lD,EAAW,CAC/Cl4D,KAAM,QACLyG,EAA0BuvD,IAEzBlzC,EAAQg1C,EAAW7xD,KAAI,SAAUjJ,EAAOQ,GAC1C,IAAI66D,EAAwBnlD,EAAMolD,iBAAiBt7D,GAC/Cu7D,EAAYF,EAAsB7U,KAClCyT,EAAYoB,EAAsBvC,KAElC0C,EAAYjmD,GAAc,CAC5B/P,WAAYA,EACZ4lD,eAAgBA,GACf8P,EAAW,CACZl2D,OAAQ,OACRhC,KAAMgC,GACLm2D,EAAiB,GAAIlB,EAAW,CACjC18D,MAAOiD,EACPyV,QAASjW,EACTy7D,kBAAmBX,EAAW79D,SAGhC,OAAOiM,IAAMyB,cAAcyf,GAAO/d,GAAS,CACzCQ,UAAW,+BACXrT,IAAK,QAAQmF,OAAO6B,IAEnB8J,GAAoB4L,EAAMtM,MAAO5J,EAAOQ,IAAKw4D,GAAY9vD,IAAMyB,cAAc,OAAQ0B,GAAS,CAC/FQ,UAAW,qCACVuuD,EAAeG,IAAazC,GAAQ5iD,EAAMjG,YAAYyrD,eAAe5C,EAAM0C,EAAW,GAAG78D,OAAOgL,IAAYkvD,GAAiBA,EAAc74D,EAAM7E,OAAS6E,EAAM7E,OAAOwD,OAAO0nB,GAAQ,SAE3L,OAAOnd,IAAMyB,cAAc,IAAK,CAC9BkC,UAAW,iCACViZ,KAEJ,CACDtsB,IAAK,SACL2B,MAAO,WACL,IAAI03D,EAAermD,KAAK5C,MACpBmvD,EAAWlG,EAAakG,SACxB3yD,EAAQysD,EAAazsD,MACrBC,EAASwsD,EAAaxsD,OACtBs1D,EAAiB9I,EAAa8I,eAC9B9uD,EAAYgmD,EAAahmD,UAG7B,GAFWgmD,EAAa55D,KAGtB,OAAO,KAGT,IAAI2iE,EAAepvD,KAAK5C,MACpBsnB,EAAQ0qC,EAAa1qC,MACrB2qC,EAAe16D,GAAyBy6D,EAAc,CAAC,UAEvDd,EAAa5pC,EAMjB,OAJIvnB,IAAYgyD,KACdb,EAAa5pC,GAASA,EAAMj0B,OAAS,EAAI0+D,EAAenvD,KAAK5C,OAAS+xD,EAAeE,IAGnFz1D,GAAS,GAAKC,GAAU,IAAMy0D,IAAeA,EAAW79D,OACnD,KAGFiM,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAWO,IAAW,0BAA2BP,IAChDksD,GAAYvsD,KAAKsvD,iBAAkBtvD,KAAKuvD,YAAYjB,GAAa1O,GAAMc,mBAAmB1gD,KAAK5C,aA1S1B6I,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GAogB3KwlD,EAxeT,CAyeEn0C,aAEFm0C,GAAc1wD,YAAc,gBAC5B0wD,GAAc7sD,UAAY8I,GAAc,GAAI7T,EAAyB,GAAIkF,EAAkB,CACzFiG,UAAWlL,IAAUC,OACrB4E,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACboE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,OAClB42D,YAAaj3D,IAAUiB,MAAM,CAAC,MAAO,SAAU,OAAQ,UAEvD+J,QAAShL,IAAUiL,MAAM,CACvBpG,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACboE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,SAEpB82D,KAAMn3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUmF,KAAMnF,IAAUjF,OAAQiF,IAAUyV,UACvF2hD,SAAUp3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUjF,SACzDs8D,SAAUr3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUjF,SACzDi8D,OAAQh3D,IAAUiY,KAClB8gD,WAAY/4D,IAAUK,OAAO0K,WAC7BusD,WAAYt3D,IAAUK,OACtBkvB,MAAOvvB,IAAUtE,MACjB67D,SAAUv3D,IAAUK,OACpBgD,OAAQrD,IAAUC,OAClBi3D,cAAel3D,IAAUmF,KACzB60D,eAAgBh6D,IAAUmF,KAC1B8/B,SAAUjlC,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUiB,MAAM,CAAC,gBAAiB,cAAe,yBAEpG02D,GAAc9jD,aAAe,CAC3BhP,EAAG,EACHC,EAAG,EACHL,MAAO,EACPC,OAAQ,EACRsG,QAAS,CACPnG,EAAG,EACHC,EAAG,EACHL,MAAO,EACPC,OAAQ,GAGVuyD,YAAa,SAEb1nC,MAAO,GACPlsB,OAAQ,OACRg0D,UAAU,EACVD,UAAU,EACVD,MAAM,EACNH,QAAQ,EACRM,WAAY,EAEZC,SAAU,EACVwB,WAAY,EACZ9zB,SAAU,eAEG0yB,UCjlBf,SAAS1nD,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAI9U,SAAS4S,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,IAAI+b,GAAc,CAAC,SAAU,MAAO,IAAK,MAC9Bc,GAAsB,SAA6B5iB,EAAM6B,GAClE,IAAK7B,EACH,OAAO,KAGT,IAAIwiB,EAAYxiB,EAAKyiB,QAAQ,QAAQ,SAAUC,GAC7C,OAAOA,EAAE1H,iBAEP9W,EAAS4d,GAAYM,QAAO,SAAUC,EAAK3b,GAC7C,OAdJ,SAAuB5F,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAclfmb,CAAc,GAAIoG,EAAKzJ,GAAgB,GAAIlS,EAAQ8b,EAAW3gB,MACpE,IAEH,OADAqC,EAAOlE,GAAQ6B,EACRqC,GChBT,SAAS6U,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASkT,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAI3M,SAASoT,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAM7S,SAASI,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAExM,SAASF,GAAuBlX,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAI/J,SAASqX,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAerK,IAAI+oD,GAEJ,SAAUpoD,GAGR,SAASooD,EAAMpyD,GACb,IAAIsM,EAiEJ,OApGJ,SAAyB3D,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAqC5GqR,CAAgB9F,KAAMwvD,IAEtB9lD,EAjCJ,SAAoCva,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAA8CmY,GAAuBlX,GAAtCjB,EAiCvHiY,CAA2BnG,KAAMsG,GAAgBkpD,GAAOthE,KAAK8R,KAAM5C,KAErEqyD,WAAa,SAAU//D,GACvBga,EAAMgmD,aACRC,aAAajmD,EAAMgmD,YACnBhmD,EAAMgmD,WAAa,MAGjBhmD,EAAM4B,MAAMskD,kBACdlmD,EAAMmmD,oBAAoBngE,GACjBga,EAAM4B,MAAMwkD,eACrBpmD,EAAMqmD,gBAAgBrgE,IAI1Bga,EAAMsmD,gBAAkB,SAAUtgE,GACR,MAApBA,EAAEugE,gBAA0BvgE,EAAEugE,eAAex/D,OAAS,GACxDiZ,EAAM+lD,WAAW//D,EAAEugE,eAAe,KAItCvmD,EAAMwmD,cAAgB,WACpBxmD,EAAMgD,SAAS,CACbkjD,mBAAmB,EACnBE,eAAe,KAInBpmD,EAAMymD,mBAAqB,YACrBzmD,EAAM4B,MAAMskD,mBAAqBlmD,EAAM4B,MAAMwkD,iBAC/CpmD,EAAMgmD,WAAatxD,WAAWsL,EAAMwmD,cAAexmD,EAAMtM,MAAMgzD,gBAInE1mD,EAAM2mD,4BAA8B,WAClC3mD,EAAMgD,SAAS,CACb4jD,cAAc,KAIlB5mD,EAAM6mD,4BAA8B,WAClC7mD,EAAMgD,SAAS,CACb4jD,cAAc,KAIlB5mD,EAAM8mD,qBAAuB,SAAU9gE,GACrC,IAAI+gE,EAAQ/gE,EAAEugE,gBAAkBvgE,EAAEugE,eAAex/D,OAASf,EAAEugE,eAAe,GAAKvgE,EAEhFga,EAAMgD,SAAS,CACbkjD,mBAAmB,EACnBE,eAAe,EACfY,gBAAiBD,EAAME,SAI3BjnD,EAAMknD,2BAA6B,CACjCC,OAAQnnD,EAAMonD,yBAAyBviD,KAAKlI,GAAuBqD,GAAQ,UAC3EqnD,KAAMrnD,EAAMonD,yBAAyBviD,KAAKlI,GAAuBqD,GAAQ,SAE3EA,EAAM4B,MAAQlO,EAAMS,MAAQT,EAAMS,KAAKpN,OAASiZ,EAAMsnD,YAAY5zD,GAAS,GACpEsM,EAhGX,IAAsB1D,EAAaqB,EAAYC,EA2e7C,OAneF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAoBjXE,CAAU8nD,EAAOpoD,GA5BGpB,EAoGPwpD,EApGgCloD,EAsdzC,CAAC,CACHta,IAAK,kBACL2B,MAAO,SAAyBmwB,EAAO9kB,GAKrC,IAJA,IACIyU,EAAQ,EACR2E,EAFM0L,EAAMruB,OAEA,EAET2iB,EAAM3E,EAAQ,GAAG,CACtB,IAAImT,EAASryB,KAAK2wB,OAAOzR,EAAQ2E,GAAO,GAEpC0L,EAAM8C,GAAU5nB,EAClBoZ,EAAMwO,EAENnT,EAAQmT,EAIZ,OAAO5nB,GAAK8kB,EAAM1L,GAAOA,EAAM3E,MAveFpH,EAoGb,CAAC,CACnBra,IAAK,4BACL2B,MAAO,SAAmCiQ,GACxC,IAAI+N,EAAS3M,KAET2H,EAAc3H,KAAK5C,MACnBS,EAAO8J,EAAY9J,KACnBjE,EAAQ+N,EAAY/N,MACpBI,EAAI2N,EAAY3N,EAChBi3D,EAAiBtpD,EAAYspD,eAC7BC,EAAWvpD,EAAYupD,UAEtBtyD,EAAUf,OAASA,GAAQe,EAAUsyD,WAAaA,IAAatyD,EAAUf,MAAQe,EAAUf,KAAKpN,OACnGuP,KAAK0M,SAAS1M,KAAKgxD,YAAYpyD,IACtBA,EAAUhF,QAAUA,GAASgF,EAAU5E,IAAMA,GAAK4E,EAAUqyD,iBAAmBA,IACxFjxD,KAAKsmB,MAAMxH,MAAM,CAAClgB,EAAU5E,EAAG4E,EAAU5E,EAAI4E,EAAUhF,MAAQgF,EAAUqyD,iBACzEjxD,KAAKmxD,YAAcnxD,KAAKsmB,MAAMhB,SAAS7oB,KAAI,SAAUjJ,GACnD,OAAOmZ,EAAO2Z,MAAM9yB,MAEtBwM,KAAK0M,SAAS,CACZmkD,OAAQ7wD,KAAKsmB,MAAM1nB,EAAU2zC,YAC7Bwe,KAAM/wD,KAAKsmB,MAAM1nB,EAAU4zC,eAIhC,CACDxlD,IAAK,uBACL2B,MAAO,WACLqR,KAAKsmB,MAAQ,KACbtmB,KAAKmxD,YAAc,KAEfnxD,KAAK0vD,aACPC,aAAa3vD,KAAK0vD,YAClB1vD,KAAK0vD,WAAa,QAGrB,CACD1iE,IAAK,WACL2B,MAAO,SAAkB+P,GACvB,IAAImyD,EAASnyD,EAAKmyD,OACdE,EAAOryD,EAAKqyD,KACZxoD,EAAevI,KAAK5C,MACpBuwD,EAAMplD,EAAaolD,IAEnBv4B,EADO7sB,EAAa1K,KACHpN,OAAS,EAC1B0Q,EAAM5R,KAAK4R,IAAI0vD,EAAQE,GACvB7vD,EAAM3R,KAAK2R,IAAI2vD,EAAQE,GACvBK,EAAWpxD,KAAKyD,YAAY4tD,gBAAgBrxD,KAAKmxD,YAAahwD,GAC9DmwD,EAAWtxD,KAAKyD,YAAY4tD,gBAAgBrxD,KAAKmxD,YAAajwD,GAClE,MAAO,CACLqxC,WAAY6e,EAAWA,EAAWzD,EAClCnb,SAAU8e,IAAal8B,EAAYA,EAAYk8B,EAAWA,EAAW3D,KAGxE,CACD3gE,IAAK,gBACL2B,MAAO,SAAuBoC,GAC5B,IAAIqkB,EAAepV,KAAK5C,MACpBS,EAAOuX,EAAavX,KACpBwuD,EAAgBj3C,EAAai3C,cAC7BxxC,EAAUzF,EAAayF,QACvB+hC,EAAO5Q,GAAkBnuC,EAAK9M,GAAQ8pB,EAAS9pB,GACnD,OAAOoM,IAAYkvD,GAAiBA,EAAczP,GAAQA,IAE3D,CACD5vD,IAAK,kBACL2B,MAAO,SAAyBe,GAC9B,IAAIkc,EAAc5L,KAAKsL,MACnBolD,EAAkB9kD,EAAY8kD,gBAC9BG,EAASjlD,EAAYilD,OACrBE,EAAOnlD,EAAYmlD,KACnB35C,EAAepX,KAAK5C,MACpBpD,EAAIod,EAAapd,EACjBJ,EAAQwd,EAAaxd,MACrBq3D,EAAiB75C,EAAa65C,eAC9B1e,EAAan7B,EAAam7B,WAC1BC,EAAWp7B,EAAao7B,SACxB+e,EAAWn6C,EAAam6C,SACxBtF,EAAQv8D,EAAEihE,MAAQD,EAElBzE,EAAQ,EACVA,EAAQ18D,KAAK4R,IAAI8qD,EAAOjyD,EAAIJ,EAAQq3D,EAAiBF,EAAM/2D,EAAIJ,EAAQq3D,EAAiBJ,GAC/E5E,EAAQ,IACjBA,EAAQ18D,KAAK2R,IAAI+qD,EAAOjyD,EAAI62D,EAAQ72D,EAAI+2D,IAG1C,IAAIS,EAAWxxD,KAAKyxD,SAAS,CAC3BZ,OAAQA,EAAS5E,EACjB8E,KAAMA,EAAO9E,IAGVuF,EAASjf,aAAeA,GAAcif,EAAShf,WAAaA,IAAa+e,GAC5EA,EAASC,GAGXxxD,KAAK0M,SAAS,CACZmkD,OAAQA,EAAS5E,EACjB8E,KAAMA,EAAO9E,EACbyE,gBAAiBhhE,EAAEihE,UAGtB,CACD3jE,IAAK,2BACL2B,MAAO,SAAkCuD,EAAIxC,GAC3C,IAAI+gE,EAAQ/gE,EAAEugE,gBAAkBvgE,EAAEugE,eAAex/D,OAASf,EAAEugE,eAAe,GAAKvgE,EAChFsQ,KAAK0M,SAAS,CACZojD,eAAe,EACfF,mBAAmB,EACnB8B,kBAAmBx/D,EACnBy/D,gBAAiBlB,EAAME,UAG1B,CACD3jE,IAAK,sBACL2B,MAAO,SAA6Be,GAClC,IAAIkiE,EAEAvlD,EAAerM,KAAKsL,MACpBqmD,EAAkBtlD,EAAaslD,gBAC/BD,EAAoBrlD,EAAaqlD,kBACjCX,EAAO1kD,EAAa0kD,KACpBF,EAASxkD,EAAawkD,OACtBgB,EAAY7xD,KAAKsL,MAAMomD,GACvB/N,EAAe3jD,KAAK5C,MACpBpD,EAAI2pD,EAAa3pD,EACjBJ,EAAQ+pD,EAAa/pD,MACrBq3D,EAAiBtN,EAAasN,eAC9BM,EAAW5N,EAAa4N,SACxB5D,EAAMhK,EAAagK,IACnB9vD,EAAO8lD,EAAa9lD,KACpBmT,EAAS,CACX6/C,OAAQ7wD,KAAKsL,MAAMulD,OACnBE,KAAM/wD,KAAKsL,MAAMylD,MAEf9E,EAAQv8D,EAAEihE,MAAQgB,EAElB1F,EAAQ,EACVA,EAAQ18D,KAAK4R,IAAI8qD,EAAOjyD,EAAIJ,EAAQq3D,EAAiBY,GAC5C5F,EAAQ,IACjBA,EAAQ18D,KAAK2R,IAAI+qD,EAAOjyD,EAAI63D,IAG9B7gD,EAAO0gD,GAAqBG,EAAY5F,EACxC,IAAIuF,EAAWxxD,KAAKyxD,SAASzgD,GACzBuhC,EAAaif,EAASjf,WACtBC,EAAWgf,EAAShf,SAYxBxyC,KAAK0M,UAA+BhH,GAArBksD,EAAiB,GAAoCF,EAAmBG,EAAY5F,GAAQvmD,GAAgBksD,EAAgB,kBAAmBliE,EAAEihE,OAAQiB,IAAiB,WACnLL,GAXU,WACd,IAAIn8B,EAAYv3B,EAAKpN,OAAS,EAE9B,MAA0B,WAAtBihE,IAAmCX,EAAOF,EAASte,EAAaob,IAAQ,EAAInb,EAAWmb,IAAQ,IAAMoD,EAAOF,GAAUre,IAAapd,GAAmC,SAAtBs8B,IAAiCX,EAAOF,EAASre,EAAWmb,IAAQ,EAAIpb,EAAaob,IAAQ,IAAMoD,EAAOF,GAAUre,IAAapd,EAS/Q08B,IACFP,EAASC,QAKhB,CACDxkE,IAAK,cACL2B,MAAO,SAAqByO,GAC1B,IAAIgZ,EAASpW,KAETnC,EAAOT,EAAMS,KACb00C,EAAan1C,EAAMm1C,WACnBC,EAAWp1C,EAAMo1C,SACjBx4C,EAAIoD,EAAMpD,EACVJ,EAAQwD,EAAMxD,MACdq3D,EAAiB7zD,EAAM6zD,eACvB/yC,EAAMrgB,EAAKpN,OAKf,OAJAuP,KAAKsmB,MAAQyrC,KAAazsC,OAAO0sC,KAAO,EAAG9zC,IAAMY,MAAM,CAAC9kB,EAAGA,EAAIJ,EAAQq3D,IACvEjxD,KAAKmxD,YAAcnxD,KAAKsmB,MAAMhB,SAAS7oB,KAAI,SAAUjJ,GACnD,OAAO4iB,EAAOkQ,MAAM9yB,MAEf,CACL88D,cAAc,EACdR,eAAe,EACfF,mBAAmB,EACnBiB,OAAQ7wD,KAAKsmB,MAAMisB,GACnBwe,KAAM/wD,KAAKsmB,MAAMksB,MAGpB,CACDxlD,IAAK,mBACL2B,MAAO,WACL,IAAIk1D,EAAe7jD,KAAK5C,MACpBpD,EAAI6pD,EAAa7pD,EACjBC,EAAI4pD,EAAa5pD,EACjBL,EAAQiqD,EAAajqD,MACrBC,EAASgqD,EAAahqD,OACtBrD,EAAOqtD,EAAartD,KACpBgC,EAASqrD,EAAarrD,OAC1B,OAAOkE,IAAMyB,cAAc,OAAQ,CACjC3F,OAAQA,EACRhC,KAAMA,EACNwD,EAAGA,EACHC,EAAGA,EACHL,MAAOA,EACPC,OAAQA,MAGX,CACD7M,IAAK,iBACL2B,MAAO,WACL,IAAI03D,EAAermD,KAAK5C,MACpBpD,EAAIqsD,EAAarsD,EACjBC,EAAIosD,EAAapsD,EACjBL,EAAQysD,EAAazsD,MACrBC,EAASwsD,EAAaxsD,OACtBgE,EAAOwoD,EAAaxoD,KACpBvB,EAAW+pD,EAAa/pD,SACxBiO,EAAU87C,EAAa97C,QACvB0nD,EAAet1D,WAASgb,KAAKrb,GAEjC,OAAK21D,EAIEv1D,IAAMwQ,aAAa+kD,EAAc,CACtCj4D,EAAGA,EACHC,EAAGA,EACHL,MAAOA,EACPC,OAAQA,EACR2Q,OAAQD,EACR2nD,SAAS,EACTr0D,KAAMA,IAVC,OAaV,CACD7Q,IAAK,kBACL2B,MAAO,SAAyBwjE,EAAYjgE,GAC1C,IAAIk9D,EAAepvD,KAAK5C,MACpBnD,EAAIm1D,EAAan1D,EACjBg3D,EAAiB7B,EAAa6B,eAC9Bp3D,EAASu1D,EAAav1D,OACtBrB,EAAS42D,EAAa52D,OACtB45D,EAAQ7iE,KAAK2wB,MAAMjmB,EAAIJ,EAAS,GAAK,EACrCG,EAAIzK,KAAK2R,IAAIixD,EAAYnyD,KAAK5C,MAAMpD,GACxC,OAAO0C,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAW,2BACXzF,aAAcoF,KAAKqwD,4BACnBx1D,aAAcmF,KAAKuwD,4BACnBh2D,YAAayF,KAAK4wD,2BAA2B1+D,GAC7C8I,aAAcgF,KAAK4wD,2BAA2B1+D,GAC9CyH,MAAO,CACLzD,OAAQ,eAETwG,IAAMyB,cAAc,OAAQ,CAC7BnE,EAAGA,EACHC,EAAGA,EACHL,MAAOq3D,EACPp3D,OAAQA,EACRrD,KAAMgC,EACNA,OAAQ,SACNkE,IAAMyB,cAAc,OAAQ,CAC9ByE,GAAI5I,EAAI,EACR6I,GAAIuvD,EACJtvD,GAAI9I,EAAIi3D,EAAiB,EACzBluD,GAAIqvD,EACJ57D,KAAM,OACNgC,OAAQ,SACNkE,IAAMyB,cAAc,OAAQ,CAC9ByE,GAAI5I,EAAI,EACR6I,GAAIuvD,EAAQ,EACZtvD,GAAI9I,EAAIi3D,EAAiB,EACzBluD,GAAIqvD,EAAQ,EACZ57D,KAAM,OACNgC,OAAQ,YAGX,CACDxL,IAAK,cACL2B,MAAO,SAAqBkiE,EAAQE,GAClC,IAAIsB,EAAeryD,KAAK5C,MACpBnD,EAAIo4D,EAAap4D,EACjBJ,EAASw4D,EAAax4D,OACtBrB,EAAS65D,EAAa75D,OAC1B,OAAOkE,IAAMyB,cAAc,OAAQ,CACjCkC,UAAW,uBACXzF,aAAcoF,KAAKqwD,4BACnBx1D,aAAcmF,KAAKuwD,4BACnBh2D,YAAayF,KAAKwwD,qBAClBx1D,aAAcgF,KAAKwwD,qBACnB72D,MAAO,CACLzD,OAAQ,QAEVsC,OAAQ,OACRhC,KAAMgC,EACN/B,YAAa,GACbuD,EAAGzK,KAAK4R,IAAI0vD,EAAQE,GACpB92D,EAAGA,EACHL,MAAOrK,KAAKwR,IAAIgwD,EAAOF,GACvBh3D,OAAQA,MAGX,CACD7M,IAAK,aACL2B,MAAO,WACL,IAAI2jE,EAAgBtyD,KAAK5C,MACrBm1C,EAAa+f,EAAc/f,WAC3BC,EAAW8f,EAAc9f,SACzBv4C,EAAIq4D,EAAcr4D,EAClBJ,EAASy4D,EAAcz4D,OACvBo3D,EAAiBqB,EAAcrB,eAC/Bz4D,EAAS85D,EAAc95D,OACvB+5D,EAAevyD,KAAKsL,MACpBulD,EAAS0B,EAAa1B,OACtBE,EAAOwB,EAAaxB,KAEpBlwD,EAAQ,CACVzI,cAAe,OACf5B,KAAMgC,GAER,OAAOkE,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAW,wBACV3D,IAAMyB,cAAcu/C,GAAM79C,GAAS,CACpC7G,WAAY,MACZ4lD,eAAgB,SAChB5kD,EAAGzK,KAAK4R,IAAI0vD,EAAQE,GAVT,EAWX92D,EAAGA,EAAIJ,EAAS,GACfgH,GAAQb,KAAKwyD,cAAcjgB,IAAc71C,IAAMyB,cAAcu/C,GAAM79C,GAAS,CAC7E7G,WAAY,QACZ4lD,eAAgB,SAChB5kD,EAAGzK,KAAK2R,IAAI2vD,EAAQE,GAAQE,EAfjB,EAgBXh3D,EAAGA,EAAIJ,EAAS,GACfgH,GAAQb,KAAKwyD,cAAchgB,OAE/B,CACDxlD,IAAK,SACL2B,MAAO,WACL,IAAI8jE,EAAgBzyD,KAAK5C,MACrBS,EAAO40D,EAAc50D,KACrBwC,EAAYoyD,EAAcpyD,UAC1B/D,EAAWm2D,EAAcn2D,SACzBtC,EAAIy4D,EAAcz4D,EAClBC,EAAIw4D,EAAcx4D,EAClBL,EAAQ64D,EAAc74D,MACtBC,EAAS44D,EAAc54D,OACvB64D,EAAiBD,EAAcC,eAC/BC,EAAe3yD,KAAKsL,MACpBulD,EAAS8B,EAAa9B,OACtBE,EAAO4B,EAAa5B,KACpBT,EAAeqC,EAAarC,aAC5BR,EAAgB6C,EAAa7C,cAC7BF,EAAoB+C,EAAa/C,kBAErC,IAAK/xD,IAASA,EAAKpN,SAAWkB,EAASqI,KAAOrI,EAASsI,KAAOtI,EAASiI,KAAWjI,EAASkI,IAAWD,GAAS,GAAKC,GAAU,EAC5H,OAAO,KAGT,IAAI8G,EAAaC,IAAW,iBAAkBP,GAC1CuyD,EAAiD,IAAnCl2D,IAAMC,SAASsC,MAAM3C,GACnC3C,EAAQ+V,GAAoB,aAAc,QAC9C,OAAOhT,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAWM,EACXjG,YAAasF,KAAKyvD,WAClB50D,aAAcmF,KAAKmwD,mBACnB31D,UAAWwF,KAAKkwD,cAChBp1D,WAAYkF,KAAKkwD,cACjBn1D,YAAaiF,KAAKgwD,gBAClBr2D,MAAOA,GACNqG,KAAKsmD,mBAAoBsM,GAAe5yD,KAAK6yD,iBAAkB7yD,KAAK8yD,YAAYjC,EAAQE,GAAO/wD,KAAK+yD,gBAAgBlC,EAAQ,UAAW7wD,KAAK+yD,gBAAgBhC,EAAM,SAAUT,GAAgBR,GAAiBF,GAAqB8C,IAAmB1yD,KAAKgzD,mBApdrL/sD,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA2e3KkoD,EAhdT,CAidE5mD,iBAEF4mD,GAAMpzD,YAAc,QACpBozD,GAAMvvD,UAAY,CAChBI,UAAWlL,IAAUC,OACrBoB,KAAMrB,IAAUC,OAChBoD,OAAQrD,IAAUC,OAClB4E,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACboE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,OAAO0K,WACzB+wD,eAAgB97D,IAAUK,OAC1Bm4D,IAAKx4D,IAAUK,OACf+U,QAASpV,IAAUiL,MAAM,CACvB+L,IAAKhX,IAAUK,OACfyW,MAAO9W,IAAUK,OACjB4W,OAAQjX,IAAUK,OAClBwW,KAAM7W,IAAUK,SAElBqlB,QAAS1lB,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,OAAQL,IAAUmF,OAC5EuD,KAAM1I,IAAUtE,MAChB0hD,WAAYp9C,IAAUK,OACtBg9C,SAAUr9C,IAAUK,OACpB62D,cAAel3D,IAAUmF,KACzBgC,SAAUnH,IAAUoL,KACpBgxD,SAAUp8D,IAAUmF,KACpB42D,SAAU/7D,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC3D46D,aAAcj7D,IAAUK,OACxBk9D,eAAgBv9D,IAAUiY,MAE5BoiD,GAAMxmD,aAAe,CACnBnP,OAAQ,GACRo3D,eAAgB,EAChBtD,IAAK,EACLn3D,KAAM,OACNgC,OAAQ,OACR+R,QAAS,CACP4B,IAAK,EACLF,MAAO,EACPG,OAAQ,EACRJ,KAAM,GAERokD,aAAc,IACdsC,gBAAgB,GAEHlD,UCtiBJyD,GAAoB,SAA2B71D,EAAOzO,GAC/D,IAAIukE,EAAa91D,EAAM81D,WACnBC,EAAa/1D,EAAM+1D,WAMvB,OAJID,IACFC,EAAa,gBAGRA,IAAexkE,G,qBCLxB,SAASmX,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAE7S,SAASktD,GAAaptD,EAAaqB,EAAYC,GAAmJ,OAAhID,GAAYpB,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GAAqBtB,EAEzM,SAASZ,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAapM,IAAIwgE,GAAgB,SAAuBj2D,EAAOk2D,EAASt4C,EAAQoyB,EAAUmmB,GAClF,IAAI35D,EAAQwD,EAAMxD,MACdC,EAASuD,EAAMvD,OACf+P,EAASxM,EAAMwM,OACf4pD,EAAMpkE,OAAO0D,KAAKwgE,GAClB7/C,EAAQ,CACVzH,KAAMgP,EAAOhP,KACbynD,WAAYz4C,EAAOhP,KACnBC,MAAOrS,EAAQohB,EAAO/O,MACtBynD,YAAa95D,EAAQohB,EAAO/O,MAC5BE,IAAK6O,EAAO7O,IACZwnD,UAAW34C,EAAO7O,IAClBC,OAAQvS,EAASmhB,EAAO5O,OACxBwnD,aAAc/5D,EAASmhB,EAAO5O,QAEhC,OAAOonD,EAAItkD,QAAO,SAAUle,EAAQkB,GAClC,IAQI4sB,EAAO9kB,EAAGC,EAAG45D,EARbxlB,EAAOilB,EAAQphE,GACfk6D,EAAc/d,EAAK+d,YACnB9mC,EAAS+oB,EAAK/oB,OACdwuC,EAAgBzlB,EAAK9jC,QACrBA,OAA4B,IAAlBupD,EAA2B,GAAKA,EAC1C3H,EAAS9d,EAAK8d,OACdQ,EAAWte,EAAKse,SAChBoH,EAAY,GAAG5hE,OAAOi6D,GAAaj6D,OAAOg6D,EAAS,SAAW,IAIhErtC,EADe,UAAbsuB,EACM,CAACpyB,EAAOhP,MAAQzB,EAAQyB,MAAQ,GAAIgP,EAAOhP,KAAOgP,EAAOphB,OAAS2Q,EAAQ0B,OAAS,IACrE,UAAbmhC,EACU,eAAXxjC,EAA0B,CAACoR,EAAO7O,IAAM6O,EAAOnhB,QAAU0Q,EAAQ6B,QAAU,GAAI4O,EAAO7O,KAAO5B,EAAQ4B,KAAO,IAAM,CAAC6O,EAAO7O,KAAO5B,EAAQ4B,KAAO,GAAI6O,EAAO7O,IAAM6O,EAAOnhB,QAAU0Q,EAAQ6B,QAAU,IAEpMiiC,EAAKvvB,MAGX6tC,IACF7tC,EAAQ,CAACA,EAAM,GAAIA,EAAM,KAG3B,IAAIk1C,EAAc1kB,GAAWjB,EAAMklB,GAC/BjtC,EAAQ0tC,EAAY1tC,MACpBmpB,EAAgBukB,EAAYvkB,cAEhCnpB,EAAMhB,OAAOA,GAAQxG,MAAMA,GAC3B6wB,GAAmBrpB,GACnB,IAAI5B,EAAQ+sB,GAAgBnrB,EAAOvd,GAAc,GAAIslC,EAAM,CACzDoB,cAAeA,KAGA,UAAbrC,GACFymB,EAA4B,QAAhBzH,IAA0BD,GAA0B,WAAhBC,GAA4BD,EAC5EnyD,EAAIghB,EAAOhP,KACX/R,EAAIwZ,EAAMsgD,GAAaF,EAAYxlB,EAAKx0C,QAClB,UAAbuzC,IACTymB,EAA4B,SAAhBzH,IAA2BD,GAA0B,UAAhBC,GAA2BD,EAC5EnyD,EAAIyZ,EAAMsgD,GAAaF,EAAYxlB,EAAKz0C,MACxCK,EAAI+gB,EAAO7O,KAGb,IAAI8nD,EAAYlrD,GAAc,GAAIslC,EAAM,GAAI3pB,EAAO,CACjD+qB,cAAeA,EACfz1C,EAAGA,EACHC,EAAGA,EACHqsB,MAAOA,EACP1sB,MAAoB,UAAbwzC,EAAuBpyB,EAAOphB,MAAQy0C,EAAKz0C,MAClDC,OAAqB,UAAbuzC,EAAuBpyB,EAAOnhB,OAASw0C,EAAKx0C,SAWtD,OARAo6D,EAAUhiB,SAAWiB,GAAkB+gB,EAAWvvC,GAE7C2pB,EAAK5hD,MAAqB,UAAb2gD,EAENiB,EAAK5hD,OACfgnB,EAAMsgD,KAAeF,GAAa,EAAI,GAAKI,EAAUr6D,OAFrD6Z,EAAMsgD,KAAeF,GAAa,EAAI,GAAKI,EAAUp6D,OAKhDkP,GAAc,GAAI/X,EAAQ0U,GAAgB,GAAIxT,EAAI+hE,MACxD,KAEMC,GAAiB,SAAwBx1D,EAAMG,GACxD,IAAI+D,EAAKlE,EAAK1E,EACV6I,EAAKnE,EAAKzE,EACV6I,EAAKjE,EAAM7E,EACX+I,EAAKlE,EAAM5E,EACf,MAAO,CACLD,EAAGzK,KAAK4R,IAAIyB,EAAIE,GAChB7I,EAAG1K,KAAK4R,IAAI0B,EAAIE,GAChBnJ,MAAOrK,KAAKwR,IAAI+B,EAAKF,GACrB/I,OAAQtK,KAAKwR,IAAIgC,EAAKF,KAsBfsxD,GAEX,WAQE,SAASA,EAAY7tC,GACnBxgB,GAAgB9F,KAAMm0D,GAEtBn0D,KAAKsmB,MAAQA,EAoFf,OA9FA8sC,GAAae,EAAa,KAAM,CAAC,CAC/BnnE,IAAK,SACL2B,MAAO,SAAgBkE,GACrB,OAAO,IAAIshE,EAAYthE,OAU3BugE,GAAae,EAAa,CAAC,CACzBnnE,IAAK,QACL2B,MAAO,SAAeA,GACpB,IAAIi0B,EAAQpwB,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,GAAmBA,UAAU,GAAK,GAC5E4hE,EAAYxxC,EAAMwxC,UAClBrnD,EAAW6V,EAAM7V,SAErB,QAAc/e,IAAVW,EAAJ,CAIA,GAAIoe,EACF,OAAQA,GACN,IAAK,QAED,OAAO/M,KAAKsmB,MAAM33B,GAGtB,IAAK,SAED,IAAIqsB,EAAShb,KAAKymB,UAAYzmB,KAAKymB,YAAc,EAAI,EACrD,OAAOzmB,KAAKsmB,MAAM33B,GAASqsB,EAG/B,IAAK,MAED,IAAIq5C,EAAUr0D,KAAKymB,UAAYzmB,KAAKymB,YAAc,EAElD,OAAOzmB,KAAKsmB,MAAM33B,GAAS0lE,EAG/B,QAEI,OAAOr0D,KAAKsmB,MAAM33B,GAK1B,GAAIylE,EAAW,CACb,IAAIE,EAAWt0D,KAAKymB,UAAYzmB,KAAKymB,YAAc,EAAI,EAEvD,OAAOzmB,KAAKsmB,MAAM33B,GAAS2lE,EAG7B,OAAOt0D,KAAKsmB,MAAM33B,MAEnB,CACD3B,IAAK,YACL2B,MAAO,SAAmBA,GACxB,IAAImwB,EAAQ9e,KAAK8e,QACb8wB,EAAQ9wB,EAAM,GACd+wB,EAAO/wB,EAAMA,EAAMruB,OAAS,GAChC,OAAOm/C,GAASC,EAAOlhD,GAASihD,GAASjhD,GAASkhD,EAAOlhD,GAASkhD,GAAQlhD,GAASihD,IAEpF,CACD5iD,IAAK,SACLqD,IAAK,WACH,OAAO2P,KAAKsmB,MAAMhB,SAEnB,CACDt4B,IAAK,QACLqD,IAAK,WACH,OAAO2P,KAAKsmB,MAAMxH,QAEnB,CACD9xB,IAAK,WACLqD,IAAK,WACH,OAAO2P,KAAK8e,QAAQ,KAErB,CACD9xB,IAAK,WACLqD,IAAK,WACH,OAAO2P,KAAK8e,QAAQ,KAErB,CACD9xB,IAAK,YACLqD,IAAK,WACH,OAAO2P,KAAKsmB,MAAMG,cAIf0tC,EA/FT,GAiGAA,GAAYzkB,IAAM,KACX,IAAI6kB,GAEX,WAQE,SAASA,EAAmBC,GAC1B1uD,GAAgB9F,KAAMu0D,GAEtBv0D,KAAKw0D,OAASC,KAAWD,EAAQL,GAAY1sD,QAC7CrY,OAAO0Q,OAAOE,KAAMA,KAAKw0D,QA0B3B,OArCApB,GAAamB,EAAoB,KAAM,CAAC,CACtCvnE,IAAK,SACL2B,MAAO,SAAgBkE,GACrB,OAAO,IAAImN,KAAKnN,OAWpBugE,GAAamB,EAAoB,CAAC,CAChCvnE,IAAK,QACL2B,MAAO,SAAe+lE,GACpB,IAAIrxC,EAAQ7wB,UAAU/B,OAAS,QAAsBzC,IAAjBwE,UAAU,GAAmBA,UAAU,GAAK,GAC5E4hE,EAAY/wC,EAAM+wC,UAElBI,EAASx0D,KAAKw0D,OAClB,OAAOC,KAAWC,GAAQ,SAAU/lE,EAAOurB,GACzC,OAAOs6C,EAAOt6C,GAAOna,MAAMpR,EAAO,CAChCylE,UAAWA,SAIhB,CACDpnE,IAAK,YACL2B,MAAO,SAAmB+lE,GACxB,IAAIF,EAASx0D,KAAKw0D,OAClB,OAAOG,KAAOD,GAAQ,SAAU/lE,EAAOurB,GACrC,OAAOs6C,EAAOt6C,GAAO06C,UAAUjmE,UAK9B4lE,EAtCT,GC3OA,SAAS1uD,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAAS4S,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAiBrK,IAAIouD,GAEJ,SAAUztD,GAGR,SAASytD,IAGP,OAFA/uD,GAAgB9F,KAAM60D,GAEf1uD,GAA2BnG,KAAMsG,GAAgBuuD,GAAc90D,MAAMC,KAAMxN,YAnCtF,IAAsBwT,EAAaqB,EAAYC,EAkI7C,OA1HF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAsBjXE,CAAUmtD,EAAcztD,GA9BJpB,EAsCP6uD,EAtCgCvtD,EA6GzC,CAAC,CACHta,IAAK,YACL2B,MAAO,SAAmBqc,EAAQ5N,GAehC,OAZIV,IAAMW,eAAe2N,GACjBtO,IAAMwQ,aAAalC,EAAQ5N,GACxBD,IAAY6N,GACfA,EAAO5N,GAEPV,IAAMyB,cAAcwoD,GAAK9mD,GAAS,GAAIzC,EAAO,CACjDoL,GAAIpL,EAAMoL,GACVC,GAAIrL,EAAMqL,GACVpI,UAAW,oCA1HcgH,EAsCN,CAAC,CAC1Bra,IAAK,gBACL2B,MAAO,WACL,IAAIgZ,EAAc3H,KAAK5C,MACnBpD,EAAI2N,EAAY3N,EAChBC,EAAI0N,EAAY1N,EAChB8wC,EAAQpjC,EAAYojC,MACpBC,EAAQrjC,EAAYqjC,MACpBwpB,EAASD,GAAmB9sD,OAAO,CACrCzN,EAAG+wC,EAAMzkB,MACTrsB,EAAG+wC,EAAM1kB,QAEPt1B,EAASwjE,EAAOz0D,MAAM,CACxB/F,EAAGA,EACHC,EAAGA,GACF,CACDm6D,WAAW,IAGb,OAAInB,GAAkBjzD,KAAK5C,MAAO,aAAeo3D,EAAOI,UAAU5jE,GACzD,KAGFA,IAER,CACDhE,IAAK,SACL2B,MAAO,WACL,IAAI4Z,EAAevI,KAAK5C,MACpBpD,EAAIuO,EAAavO,EACjBC,EAAIsO,EAAatO,EACjBC,EAAIqO,EAAarO,EAEjB4tD,GADav/C,EAAa2qD,WACb3qD,EAAau/C,YAC1BgN,EAAMhjE,EAAWkI,GACjB+6D,EAAMjjE,EAAWmI,GAGrB,IAAK66D,IAAQC,EACX,OAAO,KAGT,IAAI95C,EAAajb,KAAKg1D,gBAEtB,IAAK/5C,EACH,OAAO,KAGT,IAAIzS,EAAKyS,EAAWjhB,EAChByO,EAAKwS,EAAWhhB,EAChBmb,EAAepV,KAAK5C,MACpBgD,EAAQgV,EAAahV,MACrBC,EAAY+U,EAAa/U,UAGzB8nD,EAAWp/C,GAAc,CAC3BpT,SAHas9D,GAAkBjzD,KAAK5C,MAAO,UAAY,QAAQjL,OAAO21D,EAAY,UAAO95D,GAIxFiP,EAA0B+C,KAAK5C,OAAQ,GAAIK,EAAsBuC,KAAK5C,OAAQ,CAC/EoL,GAAIA,EACJC,GAAIA,IAGN,OAAO/L,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAWO,IAAW,yBAA0BP,IAC/CL,KAAKyD,YAAYwxD,UAAU70D,EAAO+nD,GAAWvI,GAAMc,mBAAmB1gD,KAAK5C,MAAO,CACnFpD,EAAGwO,EAAKtO,EACRD,EAAGwO,EAAKvO,EACRN,MAAO,EAAIM,EACXL,OAAQ,EAAIK,UA1G0D+L,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GAkI3KutD,EArGT,CAsGEjsD,iBAEFisD,GAAaz4D,YAAc,eAC3By4D,GAAa50D,UAAY8I,GAAc,GAAI7T,EAAyB,GAAIkF,EAAkB,CACxFF,EAAG/E,IAAUK,OACbu1C,MAAO51C,IAAUiL,MAAM,CACrBkmB,MAAOnxB,IAAUmF,OAEnB0wC,MAAO71C,IAAUiL,MAAM,CACrBkmB,MAAOnxB,IAAUmF,OAEnB46D,QAAS//D,IAAUiY,KACnB8lD,WAAY/9D,IAAUiY,KACtB+lD,WAAYh+D,IAAUiB,MAAM,CAAC,SAAU,UAAW,UAAW,iBAC7D4D,EAAG7E,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACpD6E,EAAG9E,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACpDiL,UAAWlL,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC5Dm0D,QAASp0D,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC1Dg0D,QAASr0D,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC1D4K,MAAOjL,IAAUuB,UAAU,CAACvB,IAAUmF,KAAMnF,IAAUyV,UACtDk9C,WAAY3yD,IAAUC,SAExBy/D,GAAa7rD,aAAe,CAC1BksD,SAAS,EACT/B,WAAY,UACZ3J,QAAS,EACTD,QAAS,EACTrvD,EAAG,GACH1D,KAAM,OACNgC,OAAQ,OACR/B,YAAa,EACbsC,YAAa,GAEA87D,U,qBCjLf,SAAShvD,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASuS,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASod,GAAelc,EAAKC,GAAK,OAMlC,SAAyBD,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,OAAOA,EANtB8Z,CAAgB9Z,IAIzD,SAA+BA,EAAKC,GAAK,KAAMrE,OAAOyE,YAAYhF,OAAO2E,KAAgD,uBAAxC3E,OAAOiF,UAAUC,SAASpG,KAAK6F,GAAkC,OAAU,IAAImc,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWC,OAAKriB,EAAW,IAAM,IAAK,IAAiCsiB,EAA7BpR,EAAKnL,EAAIpE,OAAOyE,cAAmB+b,GAAMG,EAAKpR,EAAGqR,QAAQC,QAAoBN,EAAKnT,KAAKuT,EAAG3hB,QAAYqF,GAAKkc,EAAKzf,SAAWuD,GAA3Dmc,GAAK,IAAoE,MAAOM,GAAOL,GAAK,EAAMC,EAAKI,EAAtL,QAAuM,IAAWN,GAAsB,MAAhBjR,EAAE,QAAoBA,EAAE,SAAzC,QAAmE,GAAIkR,EAAI,MAAMC,GAAQ,OAAOH,EAJpcQ,CAAsB3c,EAAKC,IAE5F,WAA8B,MAAM,IAAIS,UAAU,wDAFgDqZ,GAQlG,SAAShI,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAErK,SAAS5G,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAgBhT,IAgBI2iE,GAEJ,SAAU/tD,GAGR,SAAS+tD,IAGP,OAFArvD,GAAgB9F,KAAMm1D,GAEfhvD,GAA2BnG,KAAMsG,GAAgB6uD,GAAep1D,MAAMC,KAAMxN,YApDvF,IAAsBwT,EAAaqB,EAAYC,EA4L7C,OApLF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAuCjXE,CAAUytD,EAAe/tD,GA/CLpB,EAuDPmvD,GAvDoB9tD,EAuDL,CAAC,CAC3Bra,IAAK,eACL2B,MAAO,SAAsB6lE,EAAQY,EAAUC,EAAUC,GACvD,IAAI3tD,EAAc3H,KAAK5C,MACnBm4D,EAAsB5tD,EAAYxH,QAClCnG,EAAIu7D,EAAoBv7D,EACxBC,EAAIs7D,EAAoBt7D,EACxBL,EAAQ27D,EAAoB37D,MAC5BC,EAAS07D,EAAoB17D,OAC7BkT,EAAWpF,EAAYoF,SAE3B,GAAIsoD,EAAU,CACZ,IAAI9sD,EAAevI,KAAK5C,MACpBo4D,EAASjtD,EAAatO,EACtBmyD,EAAc7jD,EAAayiC,MAAMohB,YACjCqJ,EAAQjB,EAAOv6D,EAAE8F,MAAMy1D,EAAQ,CACjCzoD,SAAUA,IAGZ,GAAIkmD,GAAkBjzD,KAAK5C,MAAO,aAAeo3D,EAAOv6D,EAAE26D,UAAUa,GAClE,OAAO,KAGT,IAAIha,EAAS,CAAC,CACZzhD,EAAGA,EAAIJ,EACPK,EAAGw7D,GACF,CACDz7D,EAAGA,EACHC,EAAGw7D,IAEL,MAAuB,SAAhBrJ,EAAyB3Q,EAAOt8B,UAAYs8B,EAGrD,GAAI2Z,EAAU,CACZ,IAAIhgD,EAAepV,KAAK5C,MACpBs4D,EAAStgD,EAAapb,EACtB27D,EAAevgD,EAAa21B,MAAMqhB,YAElCwJ,EAASpB,EAAOx6D,EAAE+F,MAAM21D,EAAQ,CAClC3oD,SAAUA,IAGZ,GAAIkmD,GAAkBjzD,KAAK5C,MAAO,aAAeo3D,EAAOx6D,EAAE46D,UAAUgB,GAClE,OAAO,KAGT,IAAIC,EAAU,CAAC,CACb77D,EAAG47D,EACH37D,EAAGA,EAAIJ,GACN,CACDG,EAAG47D,EACH37D,EAAGA,IAEL,MAAwB,QAAjB07D,EAAyBE,EAAQ12C,UAAY02C,EAGtD,GAAIP,EAAW,CACb,IAEIQ,EAFU91D,KAAK5C,MAAM24D,QAEFt5D,KAAI,SAAUgK,GACnC,OAAO+tD,EAAOz0D,MAAM0G,EAAG,CACrBsG,SAAUA,OAId,OAAIkmD,GAAkBjzD,KAAK5C,MAAO,YAAc44D,KAAMF,GAAU,SAAUrvD,GACxE,OAAQ+tD,EAAOI,UAAUnuD,MAElB,KAGFqvD,EAGT,OAAO,OAER,CACD9oE,IAAK,SACL2B,MAAO,WACL,IAAIyoB,EAAepX,KAAK5C,MACpB64D,EAAS7+C,EAAapd,EACtBk8D,EAAS9+C,EAAand,EACtB87D,EAAU3+C,EAAa2+C,QACvBhrB,EAAQ3zB,EAAa2zB,MACrBC,EAAQ5zB,EAAa4zB,MACrB5qC,EAAQgX,EAAahX,MACrBC,EAAY+W,EAAa/W,UAEzBynD,GADa1wC,EAAa87C,WACb97C,EAAa0wC,YAE1B0M,EAASD,GAAmB9sD,OAAO,CACrCzN,EAAG+wC,EAAMzkB,MACTrsB,EAAG+wC,EAAM1kB,QAEPwuC,EAAMhjE,EAAWmkE,GACjBlB,EAAMjjE,EAAWokE,GACjBZ,EAAYS,GAA8B,IAAnBA,EAAQtlE,OAC/B0lE,EAAYn2D,KAAKo2D,aAAa5B,EAAQM,EAAKC,EAAKO,GAEpD,IAAKa,EACH,OAAO,KAGT,IAAIE,EAAapmD,GAAekmD,EAAW,GACvCG,EAAcD,EAAW,GACzBzzD,EAAK0zD,EAAYt8D,EACjB6I,EAAKyzD,EAAYr8D,EACjBs8D,EAAeF,EAAW,GAC1BvzD,EAAKyzD,EAAav8D,EAClB+I,EAAKwzD,EAAat8D,EAIlBmD,EAAQ2L,GAAc,CACxBpT,SAHas9D,GAAkBjzD,KAAK5C,MAAO,UAAY,QAAQjL,OAAO21D,EAAY,UAAO95D,GAIxFiP,EAA0B+C,KAAK5C,OAAQ,GAAIK,EAAsBuC,KAAK5C,OAAQ,CAC/EwF,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,IAGN,OAAOrG,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAWO,IAAW,0BAA2BP,IAtJxC,SAAoB2K,EAAQ5N,GAa3C,OAVIV,IAAMW,eAAe2N,GAChBtO,IAAMwQ,aAAalC,EAAQ5N,GACzBD,IAAY6N,GACdA,EAAO5N,GAEPV,IAAMyB,cAAc,OAAQ0B,GAAS,GAAIzC,EAAO,CACrDiD,UAAW,kCA8IRm2D,CAAWp2D,EAAOhD,GAAQwiD,GAAMc,mBAAmB1gD,KAAK5C,MFhFrC,SAAwBulB,GAClD,IAAI/f,EAAK+f,EAAM/f,GACXC,EAAK8f,EAAM9f,GACXC,EAAK6f,EAAM7f,GACXC,EAAK4f,EAAM5f,GACf,OAAOmxD,GAAe,CACpBl6D,EAAG4I,EACH3I,EAAG4I,GACF,CACD7I,EAAG8I,EACH7I,EAAG8I,IEsEiE0zD,CAAe,CAC/E7zD,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,WAvLkEkD,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA4L3K6tD,EA9IT,CA+IEvsD,iBAEFusD,GAAc/4D,YAAc,gBAC5B+4D,GAAcl1D,UAAY8I,GAAc,GAAI7T,EAAyB,CACnEiL,QAAShL,IAAUiL,MAAM,CACvBpG,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACboE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,SAEpBu1C,MAAO51C,IAAUjF,OACjB86C,MAAO71C,IAAUjF,OACjBglE,QAAS//D,IAAUiY,KACnB8lD,WAAY/9D,IAAUiY,KACtB+lD,WAAYh+D,IAAUiB,MAAM,CAAC,SAAU,UAAW,UAAW,iBAC7D4D,EAAG7E,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACpD6E,EAAG9E,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACpD2gE,QAAS5gE,IAAUmL,QAAQnL,IAAUiL,MAAM,CACzCpG,EAAG7E,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACpD6E,EAAG9E,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,YAEtD2X,SAAU5X,IAAUiB,MAAM,CAAC,SAAU,QAAS,QAC9CiK,UAAWlL,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC5Dm0D,QAASp0D,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC1Dg0D,QAASr0D,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC1D4K,MAAOjL,IAAUmF,OAEnB66D,GAAcnsD,aAAe,CAC3BksD,SAAS,EACT/B,WAAY,UACZ3J,QAAS,EACTD,QAAS,EACT/yD,KAAM,OACNgC,OAAQ,OACR/B,YAAa,EACbsC,YAAa,EACbgU,SAAU,UAEGooD,UCxPf,SAAStvD,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAAS4S,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAiBrK,IAAIiwD,GAEJ,SAAUtvD,GAGR,SAASsvD,IAGP,OAFA5wD,GAAgB9F,KAAM02D,GAEfvwD,GAA2BnG,KAAMsG,GAAgBowD,GAAe32D,MAAMC,KAAMxN,YAnCvF,IAAsBwT,EAAaqB,EAAYC,EAyH7C,OAjHF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAsBjXE,CAAUgvD,EAAetvD,GA9BLpB,EAsCP0wD,EAtCgCpvD,EAsGzC,CAAC,CACHta,IAAK,aACL2B,MAAO,SAAoBqc,EAAQ5N,GAajC,OAVIV,IAAMW,eAAe2N,GAChBtO,IAAMwQ,aAAalC,EAAQ5N,GACzBD,IAAY6N,GACdA,EAAO5N,GAEPV,IAAMyB,cAAc+rD,GAAWrqD,GAAS,GAAIzC,EAAO,CACxDiD,UAAW,sCAjHcgH,EAsCL,CAAC,CAC3Bra,IAAK,UACL2B,MAAO,SAAiBgoE,EAAOC,EAAOC,EAAOC,GAC3C,IAAInvD,EAAc3H,KAAK5C,MACnB25D,EAAUpvD,EAAY/E,GACtBo0D,EAAUrvD,EAAY7E,GACtBm0D,EAAUtvD,EAAY9E,GACtBq0D,EAAUvvD,EAAY5E,GACtBgoC,EAAQpjC,EAAYojC,MACpBC,EAAQrjC,EAAYqjC,MACpB1kB,EAAQiuC,GAAmB9sD,OAAO,CACpCzN,EAAG+wC,EAAMzkB,MACTrsB,EAAG+wC,EAAM1kB,QAEP6wC,EAAK,CACPn9D,EAAG28D,EAAQrwC,EAAMtsB,EAAE+F,MAAMg3D,GAAWzwC,EAAMtsB,EAAEo9D,SAC5Cn9D,EAAG48D,EAAQvwC,EAAMrsB,EAAE8F,MAAMk3D,GAAW3wC,EAAMrsB,EAAEm9D,UAE1CC,EAAK,CACPr9D,EAAG48D,EAAQtwC,EAAMtsB,EAAE+F,MAAMi3D,GAAW1wC,EAAMtsB,EAAEs9D,SAC5Cr9D,EAAG68D,EAAQxwC,EAAMrsB,EAAE8F,MAAMm3D,GAAW5wC,EAAMrsB,EAAEq9D,UAG9C,OAAIrE,GAAkBjzD,KAAK5C,MAAO,YAAgBkpB,EAAMsuC,UAAUuC,IAAQ7wC,EAAMsuC,UAAUyC,GAInFnD,GAAeiD,EAAIE,GAHjB,OAKV,CACDrqE,IAAK,SACL2B,MAAO,WACL,IAAI4Z,EAAevI,KAAK5C,MACpBwF,EAAK2F,EAAa3F,GAClBE,EAAKyF,EAAazF,GAClBD,EAAK0F,EAAa1F,GAClBE,EAAKwF,EAAaxF,GAClB1C,EAAYkI,EAAalI,UAEzBynD,GADav/C,EAAa2qD,WACb3qD,EAAau/C,YAE1B6O,EAAQ7kE,EAAW8Q,GACnBg0D,EAAQ9kE,EAAWgR,GACnB+zD,EAAQ/kE,EAAW+Q,GACnBi0D,EAAQhlE,EAAWiR,GACnB3C,EAAQJ,KAAK5C,MAAMgD,MAEvB,IAAKu2D,IAAUC,IAAUC,IAAUC,IAAU12D,EAC3C,OAAO,KAGT,IAAI8B,EAAOlC,KAAKu3D,QAAQZ,EAAOC,EAAOC,EAAOC,GAE7C,IAAK50D,IAAS9B,EACZ,OAAO,KAGT,IAAIzK,EAAWs9D,GAAkBjzD,KAAK5C,MAAO,UAAY,QAAQjL,OAAO21D,EAAY,UAAO95D,EAC3F,OAAO0O,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAWO,IAAW,0BAA2BP,IAChDL,KAAKyD,YAAY+zD,WAAWp3D,EAAO2I,GAAc,CAClDpT,SAAUA,GACTqK,KAAK5C,MAAO,GAAI8E,IAAQ09C,GAAMc,mBAAmB1gD,KAAK5C,MAAO8E,SApGQ+D,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GAyH3KovD,EA5FT,CA6FE9tD,iBAEF8tD,GAAct6D,YAAc,gBAC5Bs6D,GAAcz2D,UAAY8I,GAAc,GAAI7T,EAAyB,CACnEiL,QAAShL,IAAUiL,MAAM,CACvBpG,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,OACboE,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,SAEpBu1C,MAAO51C,IAAUjF,OACjB86C,MAAO71C,IAAUjF,OACjBglE,QAAS//D,IAAUiY,KACnB8lD,WAAY/9D,IAAUiY,KACtB+lD,WAAYh+D,IAAUiB,MAAM,CAAC,SAAU,UAAW,UAAW,iBAC7DwM,GAAIzN,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACrD0N,GAAI3N,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACrDyN,GAAI1N,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACrD2N,GAAI5N,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACrDiL,UAAWlL,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC5Dm0D,QAASp0D,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC1Dg0D,QAASr0D,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC1D4K,MAAOjL,IAAUuB,UAAU,CAACvB,IAAUmF,KAAMnF,IAAUyV,YAExD8rD,GAAc1tD,aAAe,CAC3BksD,SAAS,EACT/B,WAAY,UACZ3J,QAAS,EACTD,QAAS,EACTrvD,EAAG,GACH1D,KAAM,OACNC,YAAa,GACb+B,OAAQ,OACRO,YAAa,GAEA29D,UCvKJe,GAAgC,SAAuCn7D,EAAUgpB,EAAQoyC,EAAQtqB,EAAUuqB,GACpH,IAAI3Q,EAAQ3qD,EAAcC,EAAU64D,IAChCjN,EAAO7rD,EAAcC,EAAUu4D,IAC/Bx1D,EAAW2nD,EAAM70D,OAAO+1D,GACxB0P,EAAQv7D,EAAcC,EAAUo6D,IAChCmB,EAAQ,GAAG1lE,OAAOi7C,EAAU,MAC5B4U,EAAW5U,EAAS,GACpB0qB,EAAcxyC,EAalB,GAXIjmB,EAAS5O,SACXqnE,EAAcz4D,EAAS6P,QAAO,SAAUle,EAAQkM,GAC9C,GAAIA,EAAGE,MAAMy6D,KAAWH,GAAUzE,GAAkB/1D,EAAGE,MAAO,iBAAmBzL,EAASuL,EAAGE,MAAM4kD,IAAY,CAC7G,IAAIrzD,EAAQuO,EAAGE,MAAM4kD,GACrB,MAAO,CAACzyD,KAAK4R,IAAInQ,EAAO,GAAIrC,GAAQY,KAAK2R,IAAIlQ,EAAO,GAAIrC,IAG1D,OAAOqC,IACN8mE,IAGDF,EAAMnnE,OAAQ,CAChB,IAAIsnE,EAAO,GAAG5lE,OAAO6vD,EAAU,KAC3BgW,EAAO,GAAG7lE,OAAO6vD,EAAU,KAC/B8V,EAAcF,EAAM1oD,QAAO,SAAUle,EAAQkM,GAC3C,GAAIA,EAAGE,MAAMy6D,KAAWH,GAAUzE,GAAkB/1D,EAAGE,MAAO,iBAAmBzL,EAASuL,EAAGE,MAAM26D,KAAUpmE,EAASuL,EAAGE,MAAM46D,IAAQ,CACrI,IAAIC,EAAS/6D,EAAGE,MAAM26D,GAClBG,EAASh7D,EAAGE,MAAM46D,GACtB,MAAO,CAACzoE,KAAK4R,IAAInQ,EAAO,GAAIinE,EAAQC,GAAS3oE,KAAK2R,IAAIlQ,EAAO,GAAIinE,EAAQC,IAG3E,OAAOlnE,IACN8mE,GAaL,OAVIH,GAAkBA,EAAelnE,SACnCqnE,EAAcH,EAAezoD,QAAO,SAAUle,EAAQs7D,GACpD,OAAI36D,EAAS26D,GACJ,CAAC/8D,KAAK4R,IAAInQ,EAAO,GAAIs7D,GAAO/8D,KAAK2R,IAAIlQ,EAAO,GAAIs7D,IAGlDt7D,IACN8mE,IAGEA,G,UCjDLK,GAAc,I,QAAIC,GAElBD,GAAYE,iBACdF,GAAYE,gBAAgB,IAIvB,IAAIC,GAAa,2BCAxB,SAASzyD,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAAS8B,GAAyB5H,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAAkEC,EAAKgH,EAAnEpG,EAEzF,SAAuCb,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAFxMkH,CAA8B/H,EAAQ6H,GAAuB,GAAIxF,OAAO2F,sBAAuB,CAAE,IAAIC,EAAmB5F,OAAO2F,sBAAsBhI,GAAS,IAAKiH,EAAI,EAAGA,EAAIgB,EAAiBvE,OAAQuD,IAAOhH,EAAMgI,EAAiBhB,GAAQY,EAASlD,QAAQ1E,IAAQ,GAAkBoC,OAAOiF,UAAUY,qBAAqB/G,KAAKnB,EAAQC,KAAgBY,EAAOZ,GAAOD,EAAOC,IAAU,OAAOY,EAIne,SAASiS,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASsB,GAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIvF,MAAMD,QAAQwF,GAAM,CAAE,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIzF,MAAMuF,EAAItD,QAASuD,EAAID,EAAItD,OAAQuD,IAAOC,EAAKD,GAAKD,EAAIC,GAAM,OAAOC,GANnHC,CAAmBH,IAI7D,SAA0BI,GAAQ,GAAIxE,OAAOyE,YAAYhF,OAAO+E,IAAkD,uBAAzC/E,OAAOiF,UAAUC,SAASpG,KAAKiG,GAAgC,OAAO3F,MAAM+F,KAAKJ,GAJrFK,CAAiBT,IAEtF,WAAgC,MAAM,IAAIU,UAAU,mDAF0CC,GAQ9F,SAAS0Q,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAI3M,SAASoT,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAM7S,SAASI,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAExM,SAASF,GAAuBlX,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAI/J,SAASqX,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAwBrK,IAAI8xD,GAAa,CACfxtB,MAAO,CAAC,SAAU,OAClBC,MAAO,CAAC,OAAQ,UAEdwtB,GAAmB,CACrBx+D,EAAG,EACHC,EAAG,GAs5DUw+D,GAn5DgB,SAAkC/5D,GAC/D,IAAI60D,EAAY70D,EAAK60D,UACjBmF,EAAiBh6D,EAAKg6D,eACtBC,EAAiBj6D,EAAKk6D,UACtBA,OAA+B,IAAnBD,EAA4B,OAASA,EACjDE,EAAiBn6D,EAAKm6D,eACtBhsB,EAAgBnuC,EAAKmuC,cACrBwmB,EAAgB30D,EAAK20D,cACrBrqD,EAAetK,EAAKsK,aACpB/I,EAAYvB,EAAKuB,UAEjB64D,EAEJ,SAAU/gD,GAQR,SAAS+gD,EAAwBnb,GAC/B,IAAIj0C,GArEV,SAAyB3D,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAuE1GqR,CAAgB9F,KAAM84D,IAEtBpvD,EAnEN,SAAoCva,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAA8CmY,GAAuBlX,GAAtCjB,EAmErHiY,CAA2BnG,KAAMsG,GAAgBwyD,GAAyB5qE,KAAK8R,KAAM29C,KAEvFob,uBAAyB,SAAUtsD,GACvC,GAAIA,GAAO/C,EAAMsvD,eAAgB,CAC/B,IAAIptD,EAAclC,EAAM4B,MACpBkgD,EAAiB5/C,EAAY4/C,eAC7ByN,EAAertD,EAAYqtD,aAC3B/H,EAAWtlD,EAAYslD,SAE3BxnD,EAAMgD,SAAShD,EAAMwvD,0CAA0C,CAC7D97D,MAAOsM,EAAMtM,MACbouD,eAAgBA,EAChByN,aAAcA,EACd/H,SAAUA,OAKhBxnD,EAAMyvD,uBAAyB,SAAUC,EAAKC,EAASx7D,GACrD,IAAI8J,EAAc+B,EAAMtM,MACpBk8D,EAAS3xD,EAAY2xD,OACrB1vD,EAASjC,EAAYiC,OACrBsnD,EAAWxnD,EAAM4B,MAAM4lD,SAE3B,GAAIoI,IAAWF,GAAOC,IAAY3vD,EAAM6vD,cAAe,CACrD,IAAI/N,EAAiB3tD,EAAK2tD,eACtByN,EAAep7D,EAAKo7D,aAExB,GAAKx6D,IAAOZ,EAAK2tD,iBAAoB/sD,IAAOZ,EAAKo7D,cAU1C,GAAKx6D,IAAOZ,EAAK27D,oBAoCtB9vD,EAAMgD,SAAS7O,OApC4B,CAC3C,IAAI47D,EAAS57D,EAAK47D,OACdC,EAAS77D,EAAK67D,OACdF,EAAqB37D,EAAK27D,mBAC1BntD,EAAe3C,EAAM4B,MACrB0P,EAAS3O,EAAa2O,OACtB2+C,EAAettD,EAAastD,aAEhC,IAAK3+C,EACH,OAGF,IAAI7a,EAAU4I,GAAc,GAAIiS,EAAQ,CACtChhB,EAAGghB,EAAOhP,KACV/R,EAAG+gB,EAAO7O,MAKRytD,EAAiBrqE,KAAK4R,IAAIs4D,EAAQt5D,EAAQnG,EAAImG,EAAQvG,OACtDigE,EAAiBtqE,KAAK4R,IAAIu4D,EAAQv5D,EAAQlG,EAAIkG,EAAQtG,QACtDigE,EAAcH,EAAaH,IAAuBG,EAAaH,GAAoB7qE,MAEnForE,EAAgBrwD,EAAMswD,kBAAkBR,GAExCS,EAAmBN,EAAaH,GAAsB,CACxDx/D,EAAc,eAAX4P,EAA0B+vD,EAAaH,GAAoBv+C,WAAa2+C,EAC3E3/D,EAAc,eAAX2P,EAA0BiwD,EAAiBF,EAAaH,GAAoBv+C,YAC7Eu9C,GAEJ9uD,EAAMgD,SAAS3D,GAAc,GAAIlL,EAAM,CACrCi8D,YAAaA,EACbG,iBAAkBA,EAClBF,cAAeA,UA1CjBrwD,EAAMgD,SAAS3D,GAAc,CAC3ByiD,eAAgBA,EAChByN,aAAcA,GACbvvD,EAAMwvD,0CAA0C,CACjD97D,MAAOsM,EAAMtM,MACbouD,eAAgBA,EAChByN,aAAcA,EACd/H,SAAUA,QA2ClBxnD,EAAMwwD,kBAAoB,SAAUr7D,GAClC,IAAI0zC,EAAa1zC,EAAM0zC,WACnBC,EAAW3zC,EAAM2zC,SAGrB,GAAID,IAAe7oC,EAAM4B,MAAMkgD,gBAAkBhZ,IAAa9oC,EAAM4B,MAAM2tD,aAAc,CACtF,IAAI/H,EAAWxnD,EAAM4B,MAAM4lD,SAE3BxnD,EAAMgD,UAAS,WACb,OAAO3D,GAAc,CACnByiD,eAAgBjZ,EAChB0mB,aAAczmB,GACb9oC,EAAMwvD,0CAA0C,CACjD97D,MAAOsM,EAAMtM,MACbouD,eAAgBjZ,EAChB0mB,aAAczmB,EACd0e,SAAUA,QAIdxnD,EAAMywD,iBAAiB,CACrB3O,eAAgBjZ,EAChB0mB,aAAczmB,MAKpB9oC,EAAM0wD,iBAAmB,SAAU1qE,GACjC,IAAIkL,EAAe8O,EAAMtM,MAAMxC,aAE3By/D,EAAQ3wD,EAAM4wD,aAAa5qE,GAE/B,GAAI2qE,EAAO,CACT,IAAIE,EAAYxxD,GAAc,GAAIsxD,EAAO,CACvCG,iBAAiB,IAGnB9wD,EAAMgD,SAAS6tD,GAEf7wD,EAAMywD,iBAAiBI,GAEnBp9D,IAAYvC,IACdA,EAAa2/D,EAAW7qE,KAK9Bga,EAAM+wD,wBAA0B,SAAU/qE,GACxC,IAAIgL,EAAcgP,EAAMtM,MAAM1C,YAE1B2/D,EAAQ3wD,EAAM4wD,aAAa5qE,GAE3B6qE,EAAYF,EAAQtxD,GAAc,GAAIsxD,EAAO,CAC/CG,iBAAiB,IACd,CACHA,iBAAiB,GAGnB9wD,EAAMgD,SAAS6tD,GAEf7wD,EAAMywD,iBAAiBI,GAEnBp9D,IAAYzC,IACdA,EAAY6/D,EAAW7qE,IAI3Bga,EAAMgxD,qBAAuB,SAAUx9D,GACrCwM,EAAMgD,UAAS,WACb,MAAO,CACL8tD,iBAAiB,EACjBG,WAAYz9D,EACZ68D,cAAe78D,EAAGkoD,eAClB6U,iBAAkB/8D,EAAGmoD,iBAAmB,CACtCrrD,EAAGkD,EAAGsL,GACNvO,EAAGiD,EAAGuL,SAMdiB,EAAMkxD,qBAAuB,WAC3BlxD,EAAMgD,UAAS,WACb,MAAO,CACL8tD,iBAAiB,OAKvB9wD,EAAMmxD,gBAAkB,SAAUnrE,GAC5BA,GAAKyN,IAAYzN,EAAEorE,UACrBprE,EAAEorE,UAGJpxD,EAAM+wD,wBAAwB/qE,IAGhCga,EAAMqxD,iBAAmB,SAAUrrE,GACjC,IAAImL,EAAe6O,EAAMtM,MAAMvC,aAC3B0/D,EAAY,CACdC,iBAAiB,GAGnB9wD,EAAMgD,SAAS6tD,GAEf7wD,EAAMywD,iBAAiBI,GAEnBp9D,IAAYtC,IACdA,EAAa0/D,EAAW7qE,IAI5Bga,EAAMsxD,iBAAmB,SAAUtrE,GACjC,IAAIurE,ElK0MqB,SAA6BvrE,GAC5D,IAAI7C,EAAO6C,GAAKA,EAAE7C,KAElB,OAAIA,GAAQqO,EAAwBrO,GAC3BqO,EAAwBrO,GAG1B,KkKjNequE,CAAoBxrE,GAEpC,GAAIurE,GAAa99D,IAAYuM,EAAMtM,MAAM69D,IAAa,CACpD,IAAIZ,EAAQ3wD,EAAM4wD,aAAa5qE,IAG/B+P,EADciK,EAAMtM,MAAM69D,IAClBZ,EAAO3qE,KAInBga,EAAMyxD,YAAc,SAAUzrE,GAC5B,IAAI2K,EAAUqP,EAAMtM,MAAM/C,QAEtB8C,IAAY9C,IAGdA,EAFYqP,EAAM4wD,aAAa5qE,GAEhBA,IAInBga,EAAM0xD,gBAAkB,SAAU1rE,GAChC,IAAI6K,EAAcmP,EAAMtM,MAAM7C,YAE1B4C,IAAY5C,IAGdA,EAFYmP,EAAM4wD,aAAa5qE,GAEZA,IAIvBga,EAAM2xD,cAAgB,SAAU3rE,GAC9B,IAAI8K,EAAYkP,EAAMtM,MAAM5C,UAExB2C,IAAY3C,IAGdA,EAFYkP,EAAM4wD,aAAa5qE,GAEdA,IAIrBga,EAAMsmD,gBAAkB,SAAUtgE,GACR,MAApBA,EAAEugE,gBAA0BvgE,EAAEugE,eAAex/D,OAAS,GACxDiZ,EAAMmxD,gBAAgBnrE,EAAEugE,eAAe,KAI3CvmD,EAAM4xD,iBAAmB,SAAU5rE,GACT,MAApBA,EAAEugE,gBAA0BvgE,EAAEugE,eAAex/D,OAAS,GACxDiZ,EAAM0xD,gBAAgB1rE,EAAEugE,eAAe,KAI3CvmD,EAAM6xD,eAAiB,SAAU7rE,GACP,MAApBA,EAAEugE,gBAA0BvgE,EAAEugE,eAAex/D,OAAS,GACxDiZ,EAAM2xD,cAAc3rE,EAAEugE,eAAe,KAIzCvmD,EAAM08C,6BAA+B,SAAUzjC,GAC7C,IAAIooB,EAAQpoB,EAAMooB,MACdnxC,EAAQ+oB,EAAM/oB,MACdC,EAAS8oB,EAAM9oB,OACfmhB,EAAS2H,EAAM3H,OACnB,OAAOizB,GAAqB6e,GAAcyB,SAASxlD,GAAc,GAAI+jD,GAAc9jD,aAAc,GAAI+hC,EAAO,CAC1GrmB,MAAO0pB,GAAerD,GAAO,GAC7B5qC,QAAS,CACPnG,EAAG,EACHC,EAAG,EACHL,MAAOA,EACPC,OAAQA,MAEPmhB,EAAOhP,KAAMgP,EAAOhP,KAAOgP,EAAOphB,QAGzC8P,EAAMy8C,+BAAiC,SAAUvjC,GAC/C,IAAIooB,EAAQpoB,EAAMooB,MACdpxC,EAAQgpB,EAAMhpB,MACdC,EAAS+oB,EAAM/oB,OACfmhB,EAAS4H,EAAM5H,OACnB,OAAOizB,GAAqB6e,GAAcyB,SAASxlD,GAAc,GAAI+jD,GAAc9jD,aAAc,GAAIgiC,EAAO,CAC1GtmB,MAAO0pB,GAAepD,GAAO,GAC7B7qC,QAAS,CACPnG,EAAG,EACHC,EAAG,EACHL,MAAOA,EACPC,OAAQA,MAEPmhB,EAAO7O,IAAK6O,EAAO7O,IAAM6O,EAAOnhB,SAGvC6P,EAAM8xD,mBAAqB,SAAUntB,GACnC,OAAOD,GAAeC,GAAM,IAG9B3kC,EAAM+xD,sBAAwB,SAAUnI,GACtC,IAAIjlB,EAAOz7C,EAAsB0gE,GAC7BqG,EAAevrB,GAAeC,GAAM,GAAO,GAC/C,MAAO,CACLsrB,aAAcA,EACd+B,oBAAqBniD,KAAQogD,GAAc,SAAUpzD,GACnD,OAAOA,EAAE0U,cAEX0gD,YAAattB,EACbutB,oBAAqB1oB,GAAkB7E,KAI3C3kC,EAAMmyD,aAAe,SAAUjxD,GAC7B,IAAI2nD,EAAe7oD,EAAM4B,MACrBkvD,EAAkBjI,EAAaiI,gBAC/BP,EAAmB1H,EAAa0H,iBAChCF,EAAgBxH,EAAawH,cAC7B/+C,EAASu3C,EAAav3C,OAE1B,IAAKpQ,IAAYA,EAAQxN,MAAMlH,SAAWskE,IAAoBP,EAC5D,OAAO,KAGT,IACIpM,EADAjkD,EAASF,EAAMtM,MAAMwM,OAErBkyD,EAAavgB,GAEjB,GAAkB,iBAAdgY,EACF1F,EAAYoM,EACZ6B,EAAajP,QACR,GAAkB,aAAd0G,EACT1F,EAAYnkD,EAAMqyD,qBAClBD,EAAa5R,QACR,GAAe,WAAXtgD,EAAqB,CAC9B,IAAIoyD,EAAwBtyD,EAAMuyD,kBAC9BzzD,EAAKwzD,EAAsBxzD,GAC3BC,EAAKuzD,EAAsBvzD,GAC3BtO,EAAS6hE,EAAsB7hE,OAInC0zD,EAAY,CACVrlD,GAAIA,EACJC,GAAIA,EACJwrC,WANe+nB,EAAsB/nB,WAOrCC,SANa8nB,EAAsB9nB,SAOnCM,YAAar6C,EACbs6C,YAAat6C,GAEf2hE,EAAa7lB,QAEb4X,EAAY,CACVpS,OAAQ/xC,EAAMuyD,mBAEhBH,EAAavgB,GAGf,IAAIvuD,EAAM4d,EAAQ5d,KAAO,mBAErBkvE,EAAcnzD,GAAc,CAC9BvQ,OAAQ,OACRJ,cAAe,QACd4iB,EAAQ,GAAI6yC,EAAW,GAAI5wD,EAA0B2N,EAAQxN,MAAMlH,QAAS,CAC7EuT,QAASswD,EACT/sE,IAAKA,EACLqT,UAAW,4BAGb,OAAOhD,yBAAeuN,EAAQxN,MAAMlH,QAAUgX,uBAAatC,EAAQxN,MAAMlH,OAAQgmE,GAAe/9D,wBAAc29D,EAAYI,IAG5HxyD,EAAMyyD,gBAAkB,SAAUvxD,EAASxO,EAAarL,GACtD,IAAIq8C,EAAWxiC,EAAQ/d,KAAKugD,SAIxBgvB,EAFU1yD,EAAM4B,MAAM,GAAGnZ,OAAOi7C,EAAU,QAErBxiC,EAAQxN,MAAM,GAAGjL,OAAOi7C,EAAU,QAC3D,OAAOlgC,uBAAatC,EAAS7B,GAAc,GAAIqzD,EAAY,CACzD/7D,UAAW+sC,EACXpgD,IAAK4d,EAAQ5d,KAAO,GAAGmF,OAAOiK,EAAa,KAAKjK,OAAOpB,GACvD2zB,MAAO0pB,GAAeguB,GAAY,OAItC1yD,EAAM2yD,YAAc,SAAUzxD,EAASxO,EAAarL,GAClD,IACIurE,EADW5yD,EAAM4B,MAAMixD,SACJ3xD,EAAQxN,MAAMosD,SACrC,OAAO9/C,EAAM8yD,WAAWF,EAAS1xD,EAASxO,EAAarL,IAGzD2Y,EAAM+yD,YAAc,SAAU7xD,EAASxO,EAAarL,GAClD,IACIurE,EADW5yD,EAAM4B,MAAMoxD,SACJ9xD,EAAQxN,MAAMmsD,SACrC,OAAO7/C,EAAM8yD,WAAWF,EAAS1xD,EAASxO,EAAarL,IAGzD2Y,EAAMizD,WAAa,SAAU/xD,GAC3B,IAAI+nD,EAAejpD,EAAM4B,MACrBixD,EAAW5J,EAAa4J,SACxBG,EAAW/J,EAAa+J,SACxB1hD,EAAS23C,EAAa33C,OACtBzS,EAAemB,EAAMtM,MACrBxD,EAAQ2O,EAAa3O,MACrBC,EAAS0O,EAAa1O,OACtBkxC,EAAQn4C,EAAsB2pE,GAM9BvxB,EAJwB4xB,KAAMF,GAAU,SAAUruB,GACpD,OAAOsmB,KAAOtmB,EAAK/oB,OAAQrD,OAAOC,cAGCtvB,EAAsB8pE,GACvDt/D,EAAQwN,EAAQxN,OAAS,GAC7B,OAAO8P,uBAAatC,EAAS,CAC3B5d,IAAK4d,EAAQ5d,KAAO,OACpBgN,EAAGrI,EAASyL,EAAMpD,GAAKoD,EAAMpD,EAAIghB,EAAOhP,KACxC/R,EAAGtI,EAASyL,EAAMnD,GAAKmD,EAAMnD,EAAI+gB,EAAO7O,IACxCvS,MAAOjI,EAASyL,EAAMxD,OAASwD,EAAMxD,MAAQohB,EAAOphB,MACpDC,OAAQlI,EAASyL,EAAMvD,QAAUuD,EAAMvD,OAASmhB,EAAOnhB,OACvDkxC,MAAOA,EACPC,MAAOA,EACPhwB,OAAQA,EACRtP,WAAY9R,EACZmS,YAAalS,EACbusD,6BAA8BhpD,EAAMgpD,8BAAgC18C,EAAM08C,6BAC1ED,+BAAgC/oD,EAAM+oD,gCAAkCz8C,EAAMy8C,kCAIlFz8C,EAAMmzD,gBAAkB,SAAUjyD,GAChC,IAAIkyD,EAAepzD,EAAM4B,MACrByxD,EAAgBD,EAAaC,cAC7BC,EAAeF,EAAaE,aAC5BC,EAAarqE,EAAsBmqE,GACnCG,EAAYtqE,EAAsBoqE,GAClCx0D,EAAK00D,EAAU10D,GACfC,EAAKy0D,EAAUz0D,GACf+rC,EAAc0oB,EAAU1oB,YACxBC,EAAcyoB,EAAUzoB,YAC5B,OAAOvnC,uBAAatC,EAAS,CAC3BuyD,YAAa/uB,GAAe8uB,GAAW,GAAMzgE,KAAI,SAAUjJ,GACzD,OAAOA,EAAMynB,cAEfmiD,YAAahvB,GAAe6uB,GAAY,GAAMxgE,KAAI,SAAUjJ,GAC1D,OAAOA,EAAMynB,cAEfzS,GAAIA,EACJC,GAAIA,EACJ+rC,YAAaA,EACbC,YAAaA,EACbznD,IAAK4d,EAAQ5d,KAAO,gBAIxB0c,EAAM2zD,YAAc,SAAUzyD,GAC5B,IAAIwK,EAAe1L,EAAMtM,MACrBoN,EAAS4K,EAAa5K,OACtB3M,EAAOuX,EAAavX,KACpBy/D,EAAe5zD,EAAM4B,MACrB0P,EAASsiD,EAAatiD,OACtBwwC,EAAiB8R,EAAa9R,eAC9ByN,EAAeqE,EAAarE,aAC5B/H,EAAWoM,EAAapM,SAE5B,OAAOhkD,uBAAatC,EAAS,CAC3B5d,IAAK4d,EAAQ5d,KAAO,kBACpBukE,SAAU1iB,GAAqBnlC,EAAMwwD,kBAAmB,KAAMtvD,EAAQxN,MAAMm0D,UAC5E1zD,KAAMA,EACN7D,EAAGrI,EAASiZ,EAAQxN,MAAMpD,GAAK4Q,EAAQxN,MAAMpD,EAAIghB,EAAOhP,KACxD/R,EAAGtI,EAASiZ,EAAQxN,MAAMnD,GAAK2Q,EAAQxN,MAAMnD,EAAI+gB,EAAO7O,IAAM6O,EAAOnhB,OAASmhB,EAAOuiD,aAAe/yD,EAAO4B,QAAU,GACrHxS,MAAOjI,EAASiZ,EAAQxN,MAAMxD,OAASgR,EAAQxN,MAAMxD,MAAQohB,EAAOphB,MACpE24C,WAAYiZ,EACZhZ,SAAUymB,EACV/H,SAAU,SAAS/+D,OAAO++D,MAI9BxnD,EAAM8zD,uBAAyB,SAAU5yD,EAASxO,EAAarL,GAC7D,IAAK6Z,EACH,OAAO,KAGT,IACIk9C,EADwBzhD,GAAuBqD,GACZo+C,WAEnC2V,EAAe/zD,EAAM4B,MACrBixD,EAAWkB,EAAalB,SACxBG,EAAWe,EAAaf,SACxB1hD,EAASyiD,EAAaziD,OACtB0iD,EAAiB9yD,EAAQxN,MACzBosD,EAAUkU,EAAelU,QACzBD,EAAUmU,EAAenU,QAC7B,OAAOr8C,uBAAatC,EAAS,CAC3B5d,IAAK4d,EAAQ5d,KAAO,GAAGmF,OAAOiK,EAAa,KAAKjK,OAAOpB,GACvDg6C,MAAOwxB,EAAS/S,GAChBxe,MAAO0xB,EAASnT,GAChBppD,QAAS,CACPnG,EAAGghB,EAAOhP,KACV/R,EAAG+gB,EAAO7O,IACVvS,MAAOohB,EAAOphB,MACdC,OAAQmhB,EAAOnhB,QAEjBiuD,WAAYA,KAIhBp+C,EAAMi0D,mBAAqB,SAAU/yD,EAASxO,EAAarL,GACzD,IAAI0a,EAAO/B,EAAMk0D,iBAAiBhzD,EAASxO,EAAarL,GAExD,IAAK0a,EACH,OAAO,KAGT,IAAIoyD,EAAgB3wD,uBAAatC,EAASa,EAAKrO,OAC3C0gE,EAAep0D,EAAM4B,MACrBkvD,EAAkBsD,EAAatD,gBAC/BmB,EAAcmC,EAAanC,YAC3BnC,EAAqBsE,EAAatE,mBAClCM,EAAcgE,EAAahE,YAC3Bx9D,EAAWoN,EAAMtM,MAAMd,SACvByhE,EAAc/gE,EAAgBV,EAAUkf,IACxCgxB,EAAc/gC,EAAKrO,MACnBq+C,EAASjP,EAAYiP,OACrBuiB,EAAUxxB,EAAYwxB,QACtBtiB,EAAWlP,EAAYkP,SACvBuiB,EAAmBxyD,EAAKA,KAAKrO,MAC7BqsD,EAAYwU,EAAiBxU,UAQjC,IAPWwU,EAAiBxxE,MACH+tE,GAAmBuD,GAAetU,GAAa+P,GAAsB,EAM/E,CACb,IAAI0E,EAAaC,EAEjB,GAAIxC,EAAY9gD,UAAY8gD,EAAYzpB,wBAAyB,CAC/D,IAAI7+C,EAA8C,oBAAxBsoE,EAAY9gD,QAR1C,SAAyBrnB,GACvB,OAAOmoE,EAAY9gD,QAAQrnB,EAAMiW,UAOkD,WAAWtX,OAAOwpE,EAAY9gD,SAC/GqjD,EAAc/qE,EAAiBsoD,EAAQpoD,EAAcymE,GACrDqE,EAAYH,GAAWtiB,GAAYvoD,EAAiBuoD,EAAUroD,EAAcymE,QAE5EoE,EAAcziB,EAAO+d,GACrB2E,EAAYH,GAAWtiB,GAAYA,EAAS8d,GAG9C,IAAK/6D,IAAOy/D,GACV,MAAO,CAACL,GAAe1rE,OAAO2B,GAAmB4V,EAAM00D,mBAAmB,CACxE3yD,KAAMA,EACNyyD,YAAaA,EACbC,UAAWA,EACXE,WAAY7E,EACZwE,QAASA,MAKf,OAAIA,EACK,CAACH,EAAe,KAAM,MAGxB,CAACA,EAAe,OAGzBn0D,EAAM40D,iBAAmB,SAAU1zD,GACjC,OAAOsC,uBAAatC,EAAS7B,GAAc,GAAIW,EAAMtM,MAAO,GAAIsM,EAAM4B,SAGxE,IAAIizD,EAAe70D,EAAMjG,YAAY+6D,mBAAmB7gB,GAiBxD,OAdAj0C,EAAM4B,MAAQvC,GAAc,GAAIw1D,EAAc,CAC5CrN,SAAU,GACTxnD,EAAMwvD,0CAA0CnwD,GAAc,CAC/D3L,MAAOugD,GACN4gB,EAAc,CACfrN,SANc,MAQhBxnD,EAAM6vD,cAAgB96D,IAAOk/C,EAAOzrD,IAAMF,EAAS,YAAc2rD,EAAOzrD,GACxEwX,EAAMo+C,WAAa,GAAG31D,OAAOuX,EAAM6vD,cAAe,SAE9C5b,EAAO8gB,gBACT/0D,EAAM+wD,wBAA0BiE,KAAUh1D,EAAM+wD,wBAAyB9c,EAAO8gB,gBAG3E/0D,EAhoBb,IAAsB1D,EAAaqB,EAAYC,EA+0D3C,OAv0DJ,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAiD/WE,CAAUoxD,EAAyB/gD,GAzDjB/R,EAqoBL8yD,EAroB8BxxD,EA8xDvC,CAAC,CACHta,IAAK,sBACL2B,MAAO,SAA6Bib,GAClC,MAAe,eAAXA,EACK,CACL+0D,gBAAiB,QACjBC,aAAc,SAIH,aAAXh1D,EACK,CACL+0D,gBAAiB,QACjBC,aAAc,SAIH,YAAXh1D,EACK,CACL+0D,gBAAiB,aACjBC,aAAc,aAIX,CACLD,gBAAiB,YACjBC,aAAc,gBAGjB,CACD5xE,IAAK,kBACL2B,MAAO,SAAyBqc,EAAQ5N,GACtC,IAAI2qD,EAUJ,OAPEA,EADE1qD,yBAAe2N,GACXkC,uBAAalC,EAAQ5N,GAClBD,IAAY6N,GACfA,EAAO5N,GAEPV,IAAMyB,cAAcwoD,GAAKvpD,GAG1BV,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAW,sBACXrT,IAAKoQ,EAAMpQ,KACV+6D,OA30DwB1gD,EAqoBO,CAAC,CACrCra,IAAK,oBACL2B,MAAO,WACA8P,IAAOuB,KAAK5C,MAAMk8D,SACrBt5D,KAAK6+D,gBAIR,CACD7xE,IAAK,4BACL2B,MAAO,SAAmCiQ,GACxC,IAAI+N,EAAS3M,KAEToX,EAAepX,KAAK5C,MACpBS,EAAOuZ,EAAavZ,KACpBvB,EAAW8a,EAAa9a,SACxB1C,EAAQwd,EAAaxd,MACrBC,EAASud,EAAavd,OACtB+P,EAASwN,EAAaxN,OACtBk1D,EAAc1nD,EAAa0nD,YAC3Bt0D,EAAS4M,EAAa5M,OACtB0mD,EAAWlxD,KAAKsL,MAAM4lD,SAE1B,GAAItyD,EAAUf,OAASA,GAAQe,EAAUhF,QAAUA,GAASgF,EAAU/E,SAAWA,GAAU+E,EAAUgL,SAAWA,GAAUhL,EAAUkgE,cAAgBA,GAAgBprE,EAAakL,EAAU4L,OAAQA,IAS5L,IAAKxL,GAAgBJ,EAAUtC,SAAUA,GAAW,CAEzD,IACIyiE,EADiBtgE,IAAOG,EAAUf,MACOqzD,EAAW,EAAtBA,EAClClxD,KAAK0M,UAAS,SAAUsyD,GACtB,OAAOj2D,GAAc,CACnBmoD,SAAU6N,GACTpyD,EAAOusD,0CAA0CnwD,GAAc,CAChE3L,MAAOwB,GACNogE,EAAW,CACZ9N,SAAU6N,cAnB4L,CAC1M,IAAIR,EAAev+D,KAAKyD,YAAY+6D,mBAAmB5/D,GACvDoB,KAAK0M,SAAS3D,GAAc,GAAIw1D,EAAc,CAC5CrN,SAAUA,EAAW,GACpBlxD,KAAKk5D,0CAA0CnwD,GAAc,CAC9D3L,MAAOwB,GACN2/D,EAAc,CACfrN,SAAUA,EAAW,OAkBrBzyD,IAAOuB,KAAK5C,MAAMk8D,UAAY76D,IAAOG,EAAU06D,SACjDt5D,KAAK6+D,eAIFpgE,IAAOuB,KAAK5C,MAAMk8D,SAAW76D,IAAOG,EAAU06D,SACjDt5D,KAAKi/D,mBAGR,CACDjyE,IAAK,uBACL2B,MAAO,WACA8P,IAAOuB,KAAK5C,MAAMk8D,SACrBt5D,KAAKi/D,iBAG4C,oBAAxCj/D,KAAKy6D,wBAAwByE,QACtCl/D,KAAKy6D,wBAAwByE,WAchC,CACDlyE,IAAK,aACL2B,MAAO,SAAoByO,EAAOimB,GAChC,IAAI87C,EAAiB97C,EAAM+pB,SACvBA,OAA8B,IAAnB+xB,EAA4B,QAAUA,EACjDC,EAAW/7C,EAAM+7C,SACjBC,EAAiBh8C,EAAMg8C,eACvB/sB,EAAcjvB,EAAMivB,YACpBkZ,EAAiBnoC,EAAMmoC,eACvByN,EAAe51C,EAAM41C,aACrB38D,EAAWc,EAAMd,SACjBgjE,EAAY,GAAGntE,OAAOi7C,EAAU,MAEhCmyB,EAAOljE,EAAcC,EAAU8iE,GAC/B9L,EAAU,GAwBd,OAtBIiM,GAAQA,EAAK9uE,OACf6iE,EAAUtzD,KAAKw/D,iBAAiBpiE,EAAO,CACrCmiE,KAAMA,EACNF,eAAgBA,EAChBjyB,SAAUA,EACVkyB,UAAWA,EACXhtB,YAAaA,EACbkZ,eAAgBA,EAChByN,aAAcA,IAEPoG,GAAkBA,EAAe5uE,SAC1C6iE,EAAUtzD,KAAKy/D,kBAAkBriE,EAAO,CACtCsiE,KAAMN,EACNC,eAAgBA,EAChBjyB,SAAUA,EACVkyB,UAAWA,EACXhtB,YAAaA,EACbkZ,eAAgBA,EAChByN,aAAcA,KAIX3F,IAeR,CACDtmE,IAAK,mBACL2B,MAAO,SAA0ByO,EAAOkmB,GACtC,IAAIlN,EAASpW,KAETu/D,EAAOj8C,EAAMi8C,KACbF,EAAiB/7C,EAAM+7C,eACvBjyB,EAAW9pB,EAAM8pB,SACjBkyB,EAAYh8C,EAAMg8C,UAClBhtB,EAAchvB,EAAMgvB,YACpBkZ,EAAiBloC,EAAMkoC,eACvByN,EAAe31C,EAAM21C,aACrBrvD,EAASxM,EAAMwM,OACftN,EAAWc,EAAMd,SACjBwiE,EAAc1hE,EAAM0hE,YACpBnwB,EAAeX,GAAiBpkC,EAAQwjC,GAkG5C,OAhGcmyB,EAAKrwD,QAAO,SAAUle,EAAQ6L,GAC1C,IAAI8iE,EAAe9iE,EAAMO,MACrBvQ,EAAO8yE,EAAa9yE,KACpBguB,EAAU8kD,EAAa9kD,QACvBm4B,EAAoB2sB,EAAa3sB,kBACjCd,EAA0BytB,EAAaztB,wBACvC5rB,EAAQq5C,EAAar5C,MACrB5B,EAAQi7C,EAAaj7C,MACrBgzC,EAAS76D,EAAMO,MAAMkiE,GAErB1V,EAAgBxzC,EAAO3S,YAAYm8D,iBAAiBxiE,EAAO,CAC7DiiE,eAAgBA,EAAezoE,QAAO,SAAU6U,GAC9C,OAAOA,EAAKrO,MAAMkiE,KAAe5H,KAEnClM,eAAgBA,EAChByN,aAAcA,IAGZ/6C,EAAM0rC,EAAcn5D,OAExB,IAAKO,EAAO0mE,GAAS,CACnB,IAAIpyC,EAAQkpB,EAAiBI,EAE7B,GAAI/zB,EAAS,CAGX,GAFAyK,EAAS2mB,GAAqB2d,EAAe/uC,EAAShuB,GAEzC,aAATA,GAAuB8hD,EAAc,CACvC,IAAIkxB,EpKxwBM,SAAsBzsE,GAC9C,IAAKoJ,IAASpJ,GACZ,OAAO,EAMT,IAHA,IAAI8qB,EAAM9qB,EAAI3C,OACVqvE,EAAQ,GAEH9rE,EAAI,EAAGA,EAAIkqB,EAAKlqB,IAAK,CAC5B,GAAK8rE,EAAM1sE,EAAIY,IAGb,OAAO,EAFP8rE,EAAM1sE,EAAIY,KAAM,EAMpB,OAAO,EoKwvBuB+rE,CAAaz6C,GAEzB4sB,GAA2B2tB,GAC7BrxB,EAAkBlpB,EAElBA,EAAS0sC,KAAO,EAAG9zC,IACTg0B,IAEV5sB,EAASguB,GAA0Bz2C,EAAMO,MAAMkoB,OAAQA,EAAQzoB,GAAOqS,QAAO,SAAU4oD,EAAatkE,GAClG,OAAOskE,EAAYpmE,QAAQ8B,IAAU,EAAIskE,EAAc,GAAG3lE,OAAO2B,GAAmBgkE,GAAc,CAACtkE,MAClG,UAEA,GAAa,aAAT3G,EAOPy4B,EANG4sB,EAMM5sB,EAAO1uB,QAAO,SAAUpD,GAC/B,MAAiB,KAAVA,IAAiBiL,IAAOjL,MANxB8/C,GAA0Bz2C,EAAMO,MAAMkoB,OAAQA,EAAQzoB,GAAOqS,QAAO,SAAU4oD,EAAatkE,GAClG,OAAOskE,EAAYpmE,QAAQ8B,IAAU,GAAe,KAAVA,GAAgBiL,IAAOjL,GAASskE,EAAc,GAAG3lE,OAAO2B,GAAmBgkE,GAAc,CAACtkE,MACnI,SAOA,GAAa,WAAT3G,EAAmB,CAC5B,IAAImzE,E1Clcc,SAA8BniE,EAAMyb,EAAOuB,EAASuyB,GACpF,IAAIW,EAAUz0B,EAAM7c,KAAI,SAAUgP,GAChC,OAAO0hC,GAAqBtvC,EAAM4N,EAAMoP,EAASuyB,MAChDx2C,QAAO,SAAUpD,GAClB,OAAQiL,IAAOjL,MAGjB,OAAIu6C,GAAWA,EAAQt9C,OACds9C,EAAQ7+B,QAAO,SAAUle,EAAQwC,GACtC,MAAO,CAACjE,KAAK4R,IAAInQ,EAAO,GAAIwC,EAAM,IAAKjE,KAAK2R,IAAIlQ,EAAO,GAAIwC,EAAM,OAChE,CAAC+sB,KAAU,MAGT,K0Cqb6B0/C,CAAqBrW,EAAeyV,EAAezoE,QAAO,SAAU6U,GACxF,OAAOA,EAAKrO,MAAMkiE,KAAe5H,IAAWjsD,EAAKrO,MAAM3Q,QACrDouB,EAASuyB,GAET4yB,IACF16C,EAAS06C,IAITrxB,GAA0B,WAAT9hD,GAA+B,SAAVy5B,IACxCsoB,EAAoB3C,GAAqB2d,EAAe/uC,EAAS,kBAGnEyK,EADSqpB,EACAqjB,KAAO,EAAG9zC,GACVo0B,GAAeA,EAAYolB,IAAWplB,EAAYolB,GAAQwI,UAAqB,WAATrzE,EAEtD,WAAhBiyE,EAA2B,CAAC,EAAG,GAAKzsB,GAAuBC,EAAYolB,GAAQplB,YAAakZ,EAAgByN,GAE5GnrB,GAA6B8b,EAAeyV,EAAezoE,QAAO,SAAU6U,GACnF,OAAOA,EAAKrO,MAAMkiE,KAAe5H,IAAWjsD,EAAKrO,MAAM3Q,QACrDI,GAAM,GAYZ,MATa,WAATA,IAEFy4B,EAASmyC,GAA8Bn7D,EAAUgpB,EAAQoyC,EAAQtqB,EAAU1oB,GAEvE7nB,EAAMO,MAAMkoB,SACdA,EAASutB,GAAqBh2C,EAAMO,MAAMkoB,OAAQA,EAAQ0tB,KAIvDjqC,GAAc,GAAI/X,EAAQ0U,GAAgB,GAAIgyD,EAAQ3uD,GAAc,GAAIlM,EAAMO,MAAO,CAC1FgwC,SAAUA,EACV9nB,OAAQA,EACRspB,kBAAmBA,EACnBJ,gBAAiBA,EACjBmD,eAAgB90C,EAAMO,MAAMkoB,OAC5BqpB,aAAcA,EACd/kC,OAAQA,MAIZ,OAAO5Y,IACN,MAiBJ,CACDhE,IAAK,oBACL2B,MAAO,SAA2ByO,EAAOqmB,GACvC,IAAI47C,EAAiB57C,EAAM47C,eACvBK,EAAOj8C,EAAMi8C,KACbtyB,EAAW3pB,EAAM2pB,SACjBkyB,EAAY77C,EAAM67C,UAClBhtB,EAAc7uB,EAAM6uB,YACpBkZ,EAAiB/nC,EAAM+nC,eACvByN,EAAex1C,EAAMw1C,aACrBrvD,EAASxM,EAAMwM,OACftN,EAAWc,EAAMd,SACjBstD,EAAgB5pD,KAAKyD,YAAYm8D,iBAAiBxiE,EAAO,CAC3DiiE,eAAgBA,EAChB7T,eAAgBA,EAChByN,aAAcA,IAEZ/6C,EAAM0rC,EAAcn5D,OACpBk+C,EAAeX,GAAiBpkC,EAAQwjC,GACxCr8C,GAAS,EAwCb,OAnCcsuE,EAAenwD,QAAO,SAAUle,EAAQ6L,GACpD,IAIMyoB,EAJFoyC,EAAS76D,EAAMO,MAAMkiE,GAEzB,OAAKtuE,EAAO0mE,GA8BL1mE,GA7BLD,IAGI49C,EACFrpB,EAAS0sC,KAAO,EAAG9zC,GACVo0B,GAAeA,EAAYolB,IAAWplB,EAAYolB,GAAQwI,UACnE56C,EAAS+sB,GAAuBC,EAAYolB,GAAQplB,YAAakZ,EAAgByN,GACjF3zC,EAASmyC,GAA8Bn7D,EAAUgpB,EAAQoyC,EAAQtqB,KAEjE9nB,EAASutB,GAAqB6sB,EAAK12D,aAAasc,OAAQwoB,GAA6B8b,EAAeyV,EAAezoE,QAAO,SAAU6U,GAClI,OAAOA,EAAKrO,MAAMkiE,KAAe5H,IAAWjsD,EAAKrO,MAAM3Q,QACrD,UAAWizE,EAAK12D,aAAagqC,mBACjC1tB,EAASmyC,GAA8Bn7D,EAAUgpB,EAAQoyC,EAAQtqB,IAG5DrkC,GAAc,GAAI/X,EAAQ0U,GAAgB,GAAIgyD,EAAQ3uD,GAAc,CACzEqkC,SAAUA,GACTsyB,EAAK12D,aAAc,CACpBvc,MAAM,EACN2/D,YAAamM,GAAWnrB,IAAamrB,GAAWnrB,GAAUr8C,EAAQ,GAClEu0B,OAAQA,EACRqsB,eAAgB+tB,EAAK12D,aAAasc,OAClCqpB,aAAcA,EACd/kC,OAAQA,SAOX,MAGJ,CACD5c,IAAK,sBACL2B,MAAO,SAA6BgrE,EAAc7X,EAAaqe,GAC7D,IAAIv2D,EAAS5J,KAAK5C,MAAMwM,OACpBpW,EAAQmmE,EAAapmE,MAAK,SAAU+4D,GACtC,OAAOA,GAAQA,EAAKv7D,QAAU+wD,KAGhC,GAAItuD,EAAO,CACT,GAAe,eAAXoW,EACF,MAAO,CACL5P,EAAGxG,EAAMynB,WACThhB,EAAGkmE,EAASlmE,GAIhB,GAAe,aAAX2P,EACF,MAAO,CACL5P,EAAGmmE,EAASnmE,EACZC,EAAGzG,EAAMynB,YAIb,GAAe,YAAXrR,EAAsB,CACxB,IAAIw2D,EAAS5sE,EAAMynB,WACfolD,EAAUF,EAAShmE,OACvB,OAAO4O,GAAc,GAAIo3D,EAAU,GAAIxsB,GAAiBwsB,EAAS33D,GAAI23D,EAAS13D,GAAI43D,EAASD,GAAS,CAClG7qE,MAAO6qE,EACPjmE,OAAQkmE,IAIZ,IAAIlmE,EAAS3G,EAAMynB,WACf1lB,EAAQ4qE,EAAS5qE,MACrB,OAAOwT,GAAc,GAAIo3D,EAAU,GAAIxsB,GAAiBwsB,EAAS33D,GAAI23D,EAAS13D,GAAItO,EAAQ5E,GAAQ,CAChGA,MAAOA,EACP4E,OAAQA,IAIZ,OAAOq+D,KAQR,CACDxrE,IAAK,eACL2B,MAAO,SAAsB8hE,GAC3B,IAAKzwD,KAAKwX,UACR,OAAO,KAGT,IACI9nB,EvBx5B0B,SAAkC+gE,EAAOz1C,GAC7E,MAAO,CACLy+C,OAAQlqE,KAAKo3B,MAAM8pC,EAAME,MAAQ31C,EAAOhP,MACxC0tD,OAAQnqE,KAAKo3B,MAAM8pC,EAAM6P,MAAQtlD,EAAO7O,MuBq5B5Bo0D,CAAyB9P,EvBh7BlB,SAAmBvzD,GACxC,IAAIsjE,EAAOtjE,EAAGujE,cAAcC,gBACxBj0D,EAAM,CACRN,IAAK,EACLH,KAAM,GAQR,MAJwC,qBAA7B9O,EAAGsP,wBACZC,EAAMvP,EAAGsP,yBAGJ,CACLL,IAAKM,EAAIN,IAAM7c,OAAOqxE,YAAcH,EAAKI,UACzC50D,KAAMS,EAAIT,KAAO1c,OAAOuxE,YAAcL,EAAKM,YuBi6BjBC,CAAU/gE,KAAKwX,YAEjC2oD,EAAWngE,KAAK00C,QAAQhlD,EAAE+pE,OAAQ/pE,EAAEgqE,QAExC,IAAKyG,EACH,OAAO,KAGT,IAAIa,EAAehhE,KAAKsL,MACpBixD,EAAWyE,EAAazE,SACxBG,EAAWsE,EAAatE,SAE5B,GAAkB,SAAd9D,GAAwB2D,GAAYG,EAAU,CAChD,IAAIuE,EAASruE,EAAsB2pE,GAAUj2C,MACzC46C,EAAStuE,EAAsB8pE,GAAUp2C,MAG7C,OAAOvd,GAAc,GAAIrZ,EAAG,CAC1ByxE,OAHWF,GAAUA,EAAOpqC,OAASoqC,EAAOpqC,OAAOnnC,EAAE+pE,QAAU,KAI/D2H,OAHWF,GAAUA,EAAOrqC,OAASqqC,EAAOrqC,OAAOnnC,EAAEgqE,QAAU,OAOnE,IAAI2H,EAAgBrhE,KAAKsL,MACrBoZ,EAAQ28C,EAAc3F,oBACtBrtB,EAAOgzB,EAAc1F,YACrBhC,EAAe0H,EAAc1H,aAE7B7X,E1Ch/B0B,SAAkC7mC,EAAYyJ,EAAO48C,EAAejzB,GACxG,IAAIt9C,GAAS,EACTmtB,EAAMwG,EAAMj0B,OAEhB,GAAIytB,EAAM,GACR,GAAImwB,GAA0B,cAAlBA,EAAKjB,UAA4B79C,KAAKwR,IAAIxR,KAAKwR,IAAIstC,EAAKvvB,MAAM,GAAKuvB,EAAKvvB,MAAM,IAAM,MAAQ,KAGtG,IAFA,IAAIA,EAAQuvB,EAAKvvB,MAER9qB,EAAI,EAAGA,EAAIkqB,EAAKlqB,IAAK,CAC5B,IAAIutE,EAASvtE,EAAI,EAAIstE,EAActtE,EAAI,GAAGinB,WAAaqmD,EAAcpjD,EAAM,GAAGjD,WAC1Em4B,EAAMkuB,EAActtE,GAAGinB,WACvBumD,EAAQxtE,GAAKkqB,EAAM,EAAIojD,EAAc,GAAGrmD,WAAaqmD,EAActtE,EAAI,GAAGinB,WAC1EwmD,OAAqB,EAEzB,GAAIlwE,EAAS6hD,EAAMmuB,KAAYhwE,EAASiwE,EAAQpuB,GAAM,CACpD,IAAIsuB,EAAe,GAEnB,GAAInwE,EAASiwE,EAAQpuB,KAAS7hD,EAASutB,EAAM,GAAKA,EAAM,IAAK,CAC3D2iD,EAAqBD,EACrB,IAAIG,EAAavuB,EAAMt0B,EAAM,GAAKA,EAAM,GACxC4iD,EAAa,GAAKnyE,KAAK4R,IAAIwgE,GAAaA,EAAaJ,GAAU,GAC/DG,EAAa,GAAKnyE,KAAK2R,IAAIygE,GAAaA,EAAaJ,GAAU,OAC1D,CACLE,EAAqBF,EACrB,IAAIK,EAAeJ,EAAQ1iD,EAAM,GAAKA,EAAM,GAC5C4iD,EAAa,GAAKnyE,KAAK4R,IAAIiyC,GAAMwuB,EAAexuB,GAAO,GACvDsuB,EAAa,GAAKnyE,KAAK2R,IAAIkyC,GAAMwuB,EAAexuB,GAAO,GAGzD,IAAIyuB,EAAe,CAACtyE,KAAK4R,IAAIiyC,GAAMquB,EAAqBruB,GAAO,GAAI7jD,KAAK2R,IAAIkyC,GAAMquB,EAAqBruB,GAAO,IAE9G,GAAIn4B,EAAa4mD,EAAa,IAAM5mD,GAAc4mD,EAAa,IAAM5mD,GAAcymD,EAAa,IAAMzmD,GAAcymD,EAAa,GAAI,CACnI3wE,EAAQuwE,EAActtE,GAAGjD,MACzB,WAEG,CACL,IAAIoQ,EAAM5R,KAAK4R,IAAIogE,EAAQC,GACvBtgE,EAAM3R,KAAK2R,IAAIqgE,EAAQC,GAE3B,GAAIvmD,GAAc9Z,EAAMiyC,GAAO,GAAKn4B,IAAe/Z,EAAMkyC,GAAO,EAAG,CACjEriD,EAAQuwE,EAActtE,GAAGjD,MACzB,aAMN,IAAK,IAAImO,EAAK,EAAGA,EAAKgf,EAAKhf,IACzB,GAAW,IAAPA,GAAY+b,IAAeyJ,EAAMxlB,GAAI+b,WAAayJ,EAAMxlB,EAAK,GAAG+b,YAAc,GAAK/b,EAAK,GAAKA,EAAKgf,EAAM,GAAKjD,GAAcyJ,EAAMxlB,GAAI+b,WAAayJ,EAAMxlB,EAAK,GAAG+b,YAAc,GAAKA,IAAeyJ,EAAMxlB,GAAI+b,WAAayJ,EAAMxlB,EAAK,GAAG+b,YAAc,GAAK/b,IAAOgf,EAAM,GAAKjD,GAAcyJ,EAAMxlB,GAAI+b,WAAayJ,EAAMxlB,EAAK,GAAG+b,YAAc,EAAG,CAClVlqB,EAAQ2zB,EAAMxlB,GAAInO,MAClB,YAKNA,EAAQ,EAGV,OAAOA,E0Cs7BiB+wE,CADR9hE,KAAK+hE,oBAAoB5B,GACaz7C,EAAOi1C,EAActrB,GAErE,GAAIyT,GAAe,GAAK6X,EAAc,CACpC,IAAIG,EAAcH,EAAa7X,IAAgB6X,EAAa7X,GAAanzD,MAGzE,OAAOoa,GAAc,GAAIrZ,EAAG,CAC1B8pE,mBAAoB1X,EACpBgY,YAAaA,EACbC,cALkB/5D,KAAKg6D,kBAAkBlY,EAAagY,GAMtDG,iBALqBj6D,KAAKgiE,oBAAoBt9C,EAAOo9B,EAAaqe,KAStE,OAAO,OASR,CACDnzE,IAAK,oBACL2B,MAAO,SAA2BmzD,EAAagY,GAC7C,IAAImI,EAAgBjiE,KAAKsL,MACrB+zD,EAAiB4C,EAAc5C,eAC/B1D,EAAcsG,EAActG,YAC5B/R,EAAgB5pD,KAAKyD,YAAYm8D,iBAAiB5/D,KAAK5C,MAAO4C,KAAKsL,OAEvE,OAAIw2C,EAAc,IAAMud,IAAmBA,EAAe5uE,QAAUqxD,GAAe8H,EAAcn5D,OACxF,KAIF4uE,EAAenwD,QAAO,SAAUle,EAAQ6L,GAG7C,GAFWA,EAAMO,MAAM3Q,KAGrB,OAAOuE,EAGT,IAOIyY,EAPAy4D,EAAgBrlE,EAAMO,MACtByd,EAAUqnD,EAAcrnD,QACxB/tB,EAAOo1E,EAAcp1E,KACrB+sB,EAAOqoD,EAAcroD,KACrBhQ,EAAYq4D,EAAcr4D,UAC1BhM,EAAOqkE,EAAcrkE,KACrBqmD,EAAcge,EAAche,YAUhC,OALEz6C,EAFEkyD,EAAY9gD,UAAY8gD,EAAYzpB,wBAE5B/+C,EAAiB0K,GAAQ+rD,EAAe+R,EAAY9gD,QAASi/C,GAE7Dj8D,GAAQA,EAAKikD,IAAgB8H,EAAc9H,IAOhD,GAAG3vD,OAAO2B,GAAmB9C,GAAS,CAAC+X,GAAc,GAAI9L,EAA0BJ,GAAQ,CAChGge,QAASA,EACThB,KAAMA,EACNhQ,UAAWA,EACX/c,KAAMA,GAAQ+tB,EACdhlB,MAAO02C,GAA0B1vC,GACjClO,MAAOq9C,GAAkBviC,EAASoR,GAClChuB,KAAMq3D,EACNz6C,QAASA,MAXFzY,IAaR,MAEJ,CACDhE,IAAK,iBACL2B,MAAO,SAAwByO,EAAO+kE,GACpC,IAAIlf,EAASjjD,KAETq/D,EAAiB8C,EAAa9C,eAC9B/sB,EAAc6vB,EAAa7vB,YAC3Bt3B,EAASmnD,EAAannD,OACtBk2C,EAAWiR,EAAajR,SACxB1F,EAAiB2W,EAAa3W,eAC9ByN,EAAekJ,EAAalJ,aAC5B7N,EAAUhuD,EAAMguD,QAChBxhD,EAASxM,EAAMwM,OACfw4D,EAAShlE,EAAMglE,OACfC,EAAiBjlE,EAAMilE,eACvBC,EAAmBllE,EAAMkuD,WAEzBiX,EAAwBviE,KAAKyD,YAAY++D,oBAAoB54D,GAC7D+0D,EAAkB4D,EAAsB5D,gBACxCC,EAAe2D,EAAsB3D,aAErC6D,EAASziE,KAAKyD,YAAYg/D,OAAOpD,GACjCqD,EAAWD,G1C57BK,SAAwB7/C,GAClD,IAAI+/C,EAAa//C,EAAMwoC,QACnBwX,EAAoBhgD,EAAM0vB,YAC1BA,OAAoC,IAAtBswB,EAA+B,GAAKA,EAEtD,IAAKtwB,EACH,MAAO,GAMT,IAHA,IAAIthD,EAAS,GACT6xE,EAAiBzzE,OAAO0D,KAAKw/C,GAExBt+C,EAAI,EAAGkqB,EAAM2kD,EAAepyE,OAAQuD,EAAIkqB,EAAKlqB,IAIpD,IAHA,IAAI8uE,EAAMxwB,EAAYuwB,EAAe7uE,IAAIs+C,YACrCywB,EAAW3zE,OAAO0D,KAAKgwE,GAElB1sC,EAAI,EAAG4sC,EAAOD,EAAStyE,OAAQ2lC,EAAI4sC,EAAM5sC,IAAK,CACrD,IAAI6sC,EAAkBH,EAAIC,EAAS3sC,IAC/B9c,EAAQ2pD,EAAgB3pD,MACxB4pD,EAAaD,EAAgBC,WAC7BC,EAAW7pD,EAAM1iB,QAAO,SAAU6U,GACpC,OAAOvP,EAAeuP,EAAK5e,MAAM6E,QAAQ,QAAU,KAGrD,GAAIyxE,GAAYA,EAAS1yE,OAAQ,CAC/B,IAAI2yE,EAAWD,EAAS,GAAG/lE,MAAMguD,QAC7BiY,EAASF,EAAS,GAAG/lE,MAAM8lE,GAE1BlyE,EAAOqyE,KACVryE,EAAOqyE,GAAU,IAGnBryE,EAAOqyE,GAAQtmE,KAAK,CAClB0O,KAAM03D,EAAS,GACfG,UAAWH,EAASxwE,MAAM,GAC1By4D,QAAS3sD,IAAO2kE,GAAYT,EAAaS,KAMjD,OAAOpyE,E0Cm5BwBuyE,CAAe,CACtCnY,QAASA,EACT9Y,YAAaA,IAEXkxB,EAAgB,GA4DpB,OA3DAnE,EAAeziE,SAAQ,SAAU6O,EAAM1a,GACrC,IAiCM0yE,EAjCF7Z,EAAgB3G,EAAOx/C,YAAYm8D,iBAAiBxiE,EAAO,CAC7DouD,eAAgBA,EAChByN,aAAcA,GACbxtD,GAECwhC,EAAexhC,EAAKrO,MACpByd,EAAUoyB,EAAapyB,QACvB6oD,EAAkBz2B,EAAaqe,WAC/BqY,EAAgBl4D,EAAKrO,MAAM,GAAGjL,OAAOwsE,EAAiB,OACtDuE,EAAaz3D,EAAKrO,MAAM,GAAGjL,OAAOysE,EAAc,OAChDtC,EAAUzD,EAAe3pD,QAAO,SAAUle,EAAQwC,GACpD,IAAIowE,EAEAtQ,EAAU6O,EAAa,GAAGhwE,OAAOqB,EAAM45C,SAAU,QACjDl7C,EAAKuZ,EAAKrO,MAAM,GAAGjL,OAAOqB,EAAM45C,SAAU,OAC1CiB,EAAOilB,GAAWA,EAAQphE,GAC9B,OAAO6W,GAAc,GAAI/X,GAA8B0U,GAArBk+D,EAAiB,GAAoCpwE,EAAM45C,SAAUiB,GAAO3oC,GAAgBk+D,EAAgB,GAAGzxE,OAAOqB,EAAM45C,SAAU,SAAUgB,GAAeC,IAAQu1B,MACxM,IACCC,EAAWvH,EAAQsC,GACnBkF,EAAYxH,EAAQ,GAAGnqE,OAAOysE,EAAc,UAC5ClsB,EAAcJ,GAAeA,EAAYqxB,IAAkBrxB,EAAYqxB,GAAezD,U1C/PlE,SAA8Bz0D,EAAM6mC,GACpE,IAAIG,EAAUhnC,EAAKrO,MAAMq1C,QAEzB,GAAI3gD,EAAW2gD,GAAU,CACvB,IAAIla,EAAQ+Z,EAAYG,GAExB,GAAIla,GAASA,EAAMjf,MAAM7oB,OAAQ,CAG/B,IAFA,IAAIszE,GAAa,EAER/vE,EAAI,EAAGkqB,EAAMqa,EAAMjf,MAAM7oB,OAAQuD,EAAIkqB,EAAKlqB,IACjD,GAAIukC,EAAMjf,MAAMtlB,KAAOyX,EAAM,CAC3Bs4D,EAAY/vE,EACZ,MAIJ,OAAO+vE,GAAa,EAAIxrC,EAAMma,YAAYqxB,GAAa,MAI3D,OAAO,K0C2OuGC,CAAqBv4D,EAAM6mC,EAAYqxB,GAAerxB,aACxJL,EAAWiB,GAAkB2wB,EAAUC,GACvCxY,EAAa7sD,IAAOilE,GAAmBpB,EAAmBoB,EAC1DnY,EAAckX,G1Ct6BA,SAAwBp/C,GAClD,IAAI++C,EAAS/+C,EAAM++C,OACfC,EAAiBh/C,EAAMg/C,eACvBpwB,EAAW5uB,EAAM4uB,SACjBgyB,EAAiB5gD,EAAMq/C,SACvBA,OAA8B,IAAnBuB,EAA4B,GAAKA,EAC5C3Y,EAAajoC,EAAMioC,WACnBptC,EAAMwkD,EAASjyE,OACnB,GAAIytB,EAAM,EAAG,OAAO,KACpB,IACIltB,EADAkzE,EAAa9xE,EAAgBgwE,EAAQnwB,EAAU,GAAG,GAGtD,GAAIywB,EAAS,GAAGtX,WAAasX,EAAS,GAAGtX,QAAS,CAChD,IAAI+Y,GAAU,EACVC,EAAcnyB,EAAW/zB,EACzB+mC,EAAMyd,EAASxzD,QAAO,SAAUC,EAAK3b,GACvC,OAAO2b,EAAM3b,EAAM43D,SAAW,IAC7B,IACHnG,IAAQ/mC,EAAM,GAAKgmD,IAERjyB,IACTgT,IAAQ/mC,EAAM,GAAKgmD,EACnBA,EAAa,GAGXjf,GAAOhT,GAAYmyB,EAAc,IACnCD,GAAU,EAEVlf,EAAM/mC,GADNkmD,GAAe,KAIjB,IACI/wB,EAAO,CACTr4B,SAFYi3B,EAAWgT,GAAO,GAAK,GAElBif,EACjBxiE,KAAM,GAER1Q,EAAS0xE,EAASxzD,QAAO,SAAUC,EAAK3b,GACtC,IAAI6wE,EAAS,GAAGlyE,OAAO2B,GAAmBqb,GAAM,CAAC,CAC/C1D,KAAMjY,EAAMiY,KACZsB,SAAU,CACRiO,OAAQq4B,EAAKr4B,OAASq4B,EAAK3xC,KAAOwiE,EAClCxiE,KAAMyiE,EAAUC,EAAc5wE,EAAM43D,YAcxC,OAXA/X,EAAOgxB,EAAOA,EAAO5zE,OAAS,GAAGsc,SAE7BvZ,EAAM8vE,WAAa9vE,EAAM8vE,UAAU7yE,QACrC+C,EAAM8vE,UAAU1mE,SAAQ,SAAU6O,GAChC44D,EAAOtnE,KAAK,CACV0O,KAAMA,EACNsB,SAAUsmC,OAKTgxB,IACN,QACE,CACL,IAAIhQ,EAAUjiE,EAAgBiwE,EAAgBpwB,EAAU,GAAG,GAEvDA,EAAW,EAAIoiB,GAAWn2C,EAAM,GAAKgmD,GAAc,IACrDA,EAAa,GAGf,IAAII,GAAgBryB,EAAW,EAAIoiB,GAAWn2C,EAAM,GAAKgmD,GAAchmD,EAEnEomD,EAAe,IACjBA,IAAiB,GAGnB,IAAI5iE,EAAO4pD,KAAgBA,EAAa/7D,KAAK4R,IAAImjE,EAAchZ,GAAcgZ,EAC7EtzE,EAAS0xE,EAASxzD,QAAO,SAAUC,EAAK3b,EAAOQ,GAC7C,IAAIqwE,EAAS,GAAGlyE,OAAO2B,GAAmBqb,GAAM,CAAC,CAC/C1D,KAAMjY,EAAMiY,KACZsB,SAAU,CACRiO,OAAQq5C,GAAWiQ,EAAeJ,GAAclwE,GAAKswE,EAAe5iE,GAAQ,EAC5EA,KAAMA,MAaV,OATIlO,EAAM8vE,WAAa9vE,EAAM8vE,UAAU7yE,QACrC+C,EAAM8vE,UAAU1mE,SAAQ,SAAU6O,GAChC44D,EAAOtnE,KAAK,CACV0O,KAAMA,EACNsB,SAAUs3D,EAAOA,EAAO5zE,OAAS,GAAGsc,cAKnCs3D,IACN,IAGL,OAAOrzE,E0Cy0B6BuzE,CAAe,CACzCnC,OAAQA,EACRC,eAAgBA,EAChBpwB,SAAUA,EACVywB,SAAUA,EAASQ,GACnB5X,WAAYA,IAEVkZ,EAAc/4D,GAAQA,EAAK5e,MAAQ4e,EAAK5e,KAAK83D,gBAE7C6f,GAGFhB,EAAczmE,KAAK,CACjBK,MAAO2L,GAAc,GAAIy7D,EAAYz7D,GAAc,GAAIuzD,EAAS,CAC9D1S,cAAeA,EACfxsD,MAAOA,EACPyd,QAASA,EACTpP,KAAMA,EACNwmC,SAAUA,EACVsZ,YAAaA,EACbvwC,OAAQA,EACR03B,YAAaA,EACb9oC,OAAQA,EACR4hD,eAAgBA,EAChByN,aAAcA,EACdrU,iBAAkB/V,GAAqBoU,EAAO2X,qBAAsB,KAAMnvD,EAAKrO,MAAMvC,cACrFgqD,iBAAkBhW,GAAqBoU,EAAOyX,qBAAsB,KAAMjvD,EAAKrO,MAAMxC,kBACjF6oE,EAAiB,CACrBz2E,IAAKye,EAAKze,KAAO,QAAQmF,OAAOpB,IAC/B2U,GAAgB+9D,EAAgB9E,EAAiBrC,EAAQqC,IAAmBj5D,GAAgB+9D,EAAgB7E,EAActC,EAAQsC,IAAgBl5D,GAAgB+9D,EAAgB,cAAevS,GAAWuS,IAC/MpF,WAAYz+D,GAAgB6L,EAAMrO,EAAMd,UACxCmP,KAAMA,OAIL+3D,IAER,CACDx2E,IAAK,qBACL2B,MAAO,WACL,IAAIib,EAAS5J,KAAK5C,MAAMwM,OACpB66D,EAAgBzkE,KAAKsL,MACrB2uD,EAAmBwK,EAAcxK,iBACjCj/C,EAASypD,EAAczpD,OACvB4gD,EAAsB6I,EAAc7I,oBACpCvyD,EAAWuyD,EAAsB,EACrC,MAAO,CACLpjE,OAAQ,OACRhC,KAAM,OACNwD,EAAc,eAAX4P,EAA0BqwD,EAAiBjgE,EAAIqP,EAAW2R,EAAOhP,KAAO,GAC3E/R,EAAc,eAAX2P,EAA0BoR,EAAO7O,IAAM,GAAM8tD,EAAiBhgE,EAAIoP,EACrEzP,MAAkB,eAAXgQ,EAA0BgyD,EAAsB5gD,EAAOphB,MAAQ,EACtEC,OAAmB,eAAX+P,EAA0BoR,EAAOnhB,OAAS,EAAI+hE,KAGzD,CACD5uE,IAAK,kBACL2B,MAAO,WACL,IAIIiU,EAAIC,EAAIC,EAAIC,EAJZ6G,EAAS5J,KAAK5C,MAAMwM,OACpB86D,EAAgB1kE,KAAKsL,MACrB2uD,EAAmByK,EAAczK,iBACjCj/C,EAAS0pD,EAAc1pD,OAG3B,GAAe,eAAXpR,EAEF9G,EADAF,EAAKq3D,EAAiBjgE,EAEtB6I,EAAKmY,EAAO7O,IACZpJ,EAAKiY,EAAO7O,IAAM6O,EAAOnhB,YACpB,GAAe,aAAX+P,EAET7G,EADAF,EAAKo3D,EAAiBhgE,EAEtB2I,EAAKoY,EAAOhP,KACZlJ,EAAKkY,EAAOhP,KAAOgP,EAAOphB,WACrB,IAAK6E,IAAOw7D,EAAiBzxD,MAAQ/J,IAAOw7D,EAAiBxxD,IAAK,CACvE,GAAe,YAAXmB,EAYG,CACL,IAAI+6D,EAAM1K,EAAiBzxD,GACvBo8D,EAAM3K,EAAiBxxD,GACvBtO,EAAS8/D,EAAiB9/D,OAC1B85C,EAAagmB,EAAiBhmB,WAC9BC,EAAW+lB,EAAiB/lB,SAGhC,MAAO,CACLuH,OAAQ,CAHO9H,GAAiBgxB,EAAKC,EAAKzqE,EAAQ85C,GACrCN,GAAiBgxB,EAAKC,EAAKzqE,EAAQ+5C,IAGhD1rC,GAAIm8D,EACJl8D,GAAIm8D,EACJzqE,OAAQA,EACR85C,WAAYA,EACZC,SAAUA,GAzBZ,IAAI1rC,EAAKyxD,EAAiBzxD,GACtBC,EAAKwxD,EAAiBxxD,GACtB+rC,EAAcylB,EAAiBzlB,YAC/BC,EAAcwlB,EAAiBxlB,YAC/Bl/C,EAAQ0kE,EAAiB1kE,MACzBsvE,EAAalxB,GAAiBnrC,EAAIC,EAAI+rC,EAAaj/C,GACnDuvE,EAAanxB,GAAiBnrC,EAAIC,EAAIgsC,EAAal/C,GACvDqN,EAAKiiE,EAAW7qE,EAChB6I,EAAKgiE,EAAW5qE,EAChB6I,EAAKgiE,EAAW9qE,EAChB+I,EAAK+hE,EAAW7qE,EAoBpB,MAAO,CAAC,CACND,EAAG4I,EACH3I,EAAG4I,GACF,CACD7I,EAAG8I,EACH7I,EAAG8I,MAGN,CACD/V,IAAK,sBACL2B,MAAO,SAA6BwxE,GAClC,IAAIv2D,EAAS5J,KAAK5C,MAAMwM,OAExB,MAAe,eAAXA,EACKu2D,EAASnmE,EAGH,aAAX4P,EACKu2D,EAASlmE,EAGH,YAAX2P,EACKu2D,EAAS5qE,MAGX4qE,EAAShmE,SAEjB,CACDnN,IAAK,UACL2B,MAAO,SAAiBqL,EAAGC,GACzB,IAAI2P,EAAS5J,KAAK5C,MAAMwM,OAExB,GAAe,eAAXA,GAAsC,aAAXA,EAAuB,CACpD,IAAIoR,EAAShb,KAAKsL,MAAM0P,OAExB,OADgBhhB,GAAKghB,EAAOhP,MAAQhS,GAAKghB,EAAOhP,KAAOgP,EAAOphB,OAASK,GAAK+gB,EAAO7O,KAAOlS,GAAK+gB,EAAO7O,IAAM6O,EAAOnhB,OAChG,CACjBG,EAAGA,EACHC,EAAGA,GACD,KAGN,IAAI8qE,EAAgB/kE,KAAKsL,MACrB0xD,EAAe+H,EAAc/H,aAC7BD,EAAgBgI,EAAchI,cAElC,GAAIC,GAAgBD,EAAe,CACjC,IAAIG,EAAYtqE,EAAsBoqE,GACtC,OAAO3oB,GAAgB,CACrBr6C,EAAGA,EACHC,EAAGA,GACFijE,GAGL,OAAO,OAER,CACDlwE,IAAK,uBACL2B,MAAO,WACL,IAAI2N,EAAW0D,KAAK5C,MAAMd,SAEtB0oE,EADchoE,EAAgBV,EAAUkf,KACK,SAAdo9C,EAAuB,CACxDh+D,aAAcoF,KAAKo6D,iBACnB1/D,YAAasF,KAAK66D,gBAClBhgE,aAAcmF,KAAK+6D,iBACnBhgE,YAAaiF,KAAKgwD,gBAClBh1D,aAAcgF,KAAKs7D,iBACnBxgE,WAAYkF,KAAKu7D,gBACf,GAEJ,OAAOxyD,GAAc,GADHtL,EAAsBuC,KAAK5C,MAAO4C,KAAKg7D,kBACnB,GAAIgK,KAgB3C,CACDh4E,IAAK,4CACL2B,MAAO,SAAmD+0B,GACxD,IAAIuhD,EAASjlE,KAET5C,EAAQsmB,EAAMtmB,MACdouD,EAAiB9nC,EAAM8nC,eACvByN,EAAev1C,EAAMu1C,aACrB/H,EAAWxtC,EAAMwtC,SAErB,IAAKnzD,GAAoB,CACvBX,MAAOA,IAEP,OAAO,KAGT,IAAId,EAAWc,EAAMd,SACjBsN,EAASxM,EAAMwM,OACfk1D,EAAc1hE,EAAM0hE,YACpBjhE,EAAOT,EAAMS,KACbqnE,EAAoB9nE,EAAM8nE,kBAE1BC,EAAyBnlE,KAAKyD,YAAY++D,oBAAoB54D,GAC9D+0D,EAAkBwG,EAAuBxG,gBACzCC,EAAeuG,EAAuBvG,aAEtCS,EAAiBhjE,EAAcC,EAAUo8D,GACzCpmB,E1C1oBwB,SAAgCz0C,EAAMunE,EAAQzB,EAAeT,EAAYryB,EAAYq0B,GACvH,IAAKrnE,EACH,OAAO,KAIT,IACIy0C,GADQ4yB,EAAoBE,EAAOjmD,UAAYimD,GAC3Bl2D,QAAO,SAAUle,EAAQya,GAC/C,IAAI45D,EAAe55D,EAAKrO,MACpBq1C,EAAU4yB,EAAa5yB,QAG3B,GAFW4yB,EAAa54E,KAGtB,OAAOuE,EAGT,IAAI0mE,EAASjsD,EAAKrO,MAAMumE,GACpB2B,EAAct0E,EAAO0mE,IAAW,CAClCwI,UAAU,EACV5tB,YAAa,IAGf,GAAIxgD,EAAW2gD,GAAU,CACvB,IAAI8yB,EAAaD,EAAYhzB,YAAYG,IAAY,CACnDkxB,cAAeA,EACfT,WAAYA,EACZ5pD,MAAO,IAETisD,EAAWjsD,MAAMvc,KAAK0O,GACtB65D,EAAYpF,UAAW,EACvBoF,EAAYhzB,YAAYG,GAAW8yB,OAEnCD,EAAYhzB,YAAYtgD,EAAS,cAAgB,CAC/C2xE,cAAeA,EACfT,WAAYA,EACZ5pD,MAAO,CAAC7N,IAIZ,OAAO1C,GAAc,GAAI/X,EAAQ0U,GAAgB,GAAIgyD,EAAQ4N,MAC5D,IACH,OAAOl2E,OAAO0D,KAAKw/C,GAAapjC,QAAO,SAAUle,EAAQ0mE,GACvD,IAAIn/B,EAAQ+Z,EAAYolB,GAcxB,OAZIn/B,EAAM2nC,WACR3nC,EAAM+Z,YAAcljD,OAAO0D,KAAKylC,EAAM+Z,aAAapjC,QAAO,SAAUC,EAAKsjC,GACvE,IAAIpgB,EAAIkG,EAAM+Z,YAAYG,GAC1B,OAAO1pC,GAAc,GAAIoG,EAAKzJ,GAAgB,GAAI+sC,EAAS,CACzDkxB,cAAeA,EACfT,WAAYA,EACZ5pD,MAAO+Y,EAAE/Y,MACTo5B,YAAa/B,GAAe9yC,EAAMw0B,EAAE/Y,MAAOu3B,QAE5C,KAGE9nC,GAAc,GAAI/X,EAAQ0U,GAAgB,GAAIgyD,EAAQn/B,MAC5D,I0CilBqBitC,CAAuB3nE,EAAMwhE,EAAgB,GAAGltE,OAAOwsE,EAAiB,MAAO,GAAGxsE,OAAOysE,EAAc,MAAOE,EAAaoG,GACzI5I,EAAUzD,EAAe3pD,QAAO,SAAUle,EAAQwC,GAEpD,OAAOuV,GAAc,GAAI/X,EAAQ0U,GAAgB,GADtC,GAAGvT,OAAOqB,EAAM45C,SAAU,OACsB63B,EAAOQ,WAAWroE,EAAO2L,GAAc,GAAIvV,EAAO,CAC3G6rE,eAAgBA,EAChB/sB,YAAa9+C,EAAM45C,WAAauxB,GAAmBrsB,EACnDkZ,eAAgBA,EAChByN,aAAcA,SAEf,IACCj+C,EAAShb,KAAK0lE,gBAAgB38D,GAAc,GAAIuzD,EAAS,CAC3Dl/D,MAAOA,EACPiiE,eAAgBA,KAElBjwE,OAAO0D,KAAKwpE,GAAS1/D,SAAQ,SAAU5P,GACrCsvE,EAAQtvE,GAAOqmE,EAAcj2D,EAAOk/D,EAAQtvE,GAAMguB,EAAQhuB,EAAIuiB,QAAQ,MAAO,IAAKgkD,MAEpF,IAAIoS,EAAcrJ,EAAQ,GAAGnqE,OAAOysE,EAAc,QAC9CgH,EAAW5lE,KAAKy7D,sBAAsBkK,GACtCh5B,EAAyB3sC,KAAK6lE,eAAezoE,EAAO2L,GAAc,GAAIuzD,EAAS,CACjF9Q,eAAgBA,EAChByN,aAAcA,EACd/H,SAAUA,EACVmO,eAAgBA,EAChB/sB,YAAaA,EACbt3B,OAAQA,KAEV,OAAOjS,GAAc,CACnB4jC,uBAAwBA,EACxB0yB,eAAgBA,EAChBrkD,OAAQA,EACRs3B,YAAaA,GACZszB,EAAU,GAAItJ,KAIlB,CACDtvE,IAAK,cACL2B,MAAO,WACLwpE,GAAY2N,GAAGxN,GAAYt4D,KAAKm5D,wBAE5BhB,GAAYE,iBAAmBF,GAAY4N,eAC7C5N,GAAYE,gBAAgBF,GAAY4N,cAAgB,KAG3D,CACD/4E,IAAK,iBACL2B,MAAO,WACLwpE,GAAY8G,eAAe3G,GAAYt4D,KAAKm5D,wBAExChB,GAAYE,iBAAmBF,GAAY4N,eAC7C5N,GAAYE,gBAAgBF,GAAY4N,cAAgB,KAY3D,CACD/4E,IAAK,kBACL2B,MAAO,SAAyBq3E,GAC9B,IAAI5oE,EAAQ4oE,EAAM5oE,MACdiiE,EAAiB2G,EAAM3G,eACvB4G,EAAiBD,EAAMzJ,SACvBA,OAA8B,IAAnB0J,EAA4B,GAAKA,EAC5CC,EAAiBF,EAAMtJ,SACvBA,OAA8B,IAAnBwJ,EAA4B,GAAKA,EAC5CtsE,EAAQwD,EAAMxD,MACdC,EAASuD,EAAMvD,OACfyC,EAAWc,EAAMd,SACjBkO,EAASpN,EAAMoN,QAAU,GACzB27D,EAAYnpE,EAAgBV,EAAUkzD,IACtC1iB,EAAa9vC,EAAgBV,EAAU4O,IACvCk7D,EAAUh3E,OAAO0D,KAAK4pE,GAAUxtD,QAAO,SAAUle,EAAQkB,GAC3D,IAAIsB,EAAQkpE,EAASxqE,GACjBk6D,EAAc54D,EAAM44D,YAExB,OAAK54D,EAAM24D,QAAW34D,EAAM/G,KAIrBuE,EAHE+X,GAAc,GAAI/X,EAAQ0U,GAAgB,GAAI0mD,EAAap7D,EAAOo7D,GAAe54D,EAAMoG,UAI/F,CACDoS,KAAMxB,EAAOwB,MAAQ,EACrBC,MAAOzB,EAAOyB,OAAS,IAErBo6D,EAAUj3E,OAAO0D,KAAKypE,GAAUrtD,QAAO,SAAUle,EAAQkB,GAC3D,IAAIsB,EAAQ+oE,EAASrqE,GACjBk6D,EAAc54D,EAAM44D,YAExB,OAAK54D,EAAM24D,QAAW34D,EAAM/G,KAIrBuE,EAHE+X,GAAc,GAAI/X,EAAQ0U,GAAgB,GAAI0mD,EAAap7D,EAAOo7D,GAAe54D,EAAMqG,WAI/F,CACDsS,IAAK3B,EAAO2B,KAAO,EACnBC,OAAQ5B,EAAO4B,QAAU,IAGvB4O,EAASjS,GAAc,GAAIs9D,EAAS,GAAID,GAExC7I,EAAcviD,EAAO5O,OAWzB,OATI+5D,IACFnrD,EAAO5O,QAAU+5D,EAAU/oE,MAAMvD,QAAU21D,GAAMxmD,aAAanP,QAG5DizC,GAAc9sC,KAAKg5D,iBAErBh+C,E1CppCwB,SAA8BA,EAAQ1B,EAAOlc,EAAOkpE,GACpF,IAAIhqE,EAAWc,EAAMd,SACjB1C,EAAQwD,EAAMxD,MACdC,EAASuD,EAAMvD,OACf2Q,EAASpN,EAAMoN,OACfoiC,EAAchzC,GAAS4Q,EAAOwB,MAAQ,IAAMxB,EAAOyB,OAAS,GAC5Ds6D,EAAe1sE,GAAU2Q,EAAO2B,KAAO,IAAM3B,EAAO4B,QAAU,GAC9Do6D,EAAc/5B,GAAe,CAC/BnwC,SAAUA,EACVgd,MAAOA,EACPszB,YAAaA,EACb25B,aAAcA,IAEZE,EAAYzrD,EAEhB,GAAIwrD,EAAa,CACf,IAAI/5D,EAAM65D,GAAa,GACnBj8D,EAAQm8D,EAAYn8D,MACpBJ,EAAgBu8D,EAAYv8D,cAC5BL,EAAS48D,EAAY58D,QAET,aAAXA,GAAoC,eAAXA,GAA6C,WAAlBK,IAA+BtY,EAASqpB,EAAO3Q,MACtGo8D,EAAY19D,GAAc,GAAIiS,EAAQtV,GAAgB,GAAI2E,EAAOo8D,EAAUp8D,IAAUoC,EAAI7S,OAAS,OAGpF,eAAXgQ,GAAsC,aAAXA,GAAmC,WAAVS,IAAuB1Y,EAASqpB,EAAO/Q,MAC9Fw8D,EAAY19D,GAAc,GAAIiS,EAAQtV,GAAgB,GAAIuE,EAAew8D,EAAUx8D,IAAkBwC,EAAI5S,QAAU,MAIvH,OAAO4sE,E0CsnCUC,CAAqB1rD,EAAQqkD,EAAgBjiE,EADtC4C,KAAKg5D,eAAe9sD,YAI/BnD,GAAc,CACnBw0D,YAAaA,GACZviD,EAAQ,CACTphB,MAAOA,EAAQohB,EAAOhP,KAAOgP,EAAO/O,MACpCpS,OAAQA,EAASmhB,EAAO7O,IAAM6O,EAAO5O,WAGxC,CACDpf,IAAK,mBACL2B,MAAO,SAA0BkP,GAC/B,IAAIy7D,EAASt5D,KAAK5C,MAAMk8D,OAEnB76D,IAAO66D,IACVnB,GAAYwO,KAAKrO,GAAYgB,EAAQt5D,KAAKu5D,cAAe17D,KAG5D,CACD7Q,IAAK,mBACL2B,MAAO,SAA0B8c,EAAMrP,EAAaiiE,GAGlD,IAFA,IAAI1xB,EAAyB3sC,KAAKsL,MAAMqhC,uBAE/B34C,EAAI,EAAGkqB,EAAMyuB,EAAuBl8C,OAAQuD,EAAIkqB,EAAKlqB,IAAK,CACjE,IAAIR,EAAQm5C,EAAuB34C,GAEnC,GAAIR,EAAMiY,OAASA,GAAQjY,EAAM4J,MAAMpQ,MAAQye,EAAKze,KAAOoP,IAAgBF,EAAe1I,EAAMiY,KAAK5e,OAASwxE,IAAe7qE,EAAM6qE,WACjI,OAAO7qE,EAIX,OAAO,OAER,CACDxG,IAAK,aAUL2B,MAAO,SAAoBi4E,EAAah8D,EAASxO,EAAarL,GAC5D,IAAI4yD,EAAe3jD,KAAK5C,MACpBxD,EAAQ+pD,EAAa/pD,MACrBC,EAAS8pD,EAAa9pD,OAC1B,OAAO6C,IAAMyB,cAAc2uD,GAAejtD,GAAS,GAAI+mE,EAAa,CAClEvmE,UAAW,YAAYlO,OAAOy0E,EAAYx5B,SAAU,KAAKj7C,OAAOy0E,EAAYx5B,UAC5EpgD,IAAK4d,EAAQ5d,KAAO,GAAGmF,OAAOiK,EAAa,KAAKjK,OAAOpB,GACvDoP,QAAS,CACPnG,EAAG,EACHC,EAAG,EACHL,MAAOA,EACPC,OAAQA,GAEVs1D,eAAgBnvD,KAAKw7D,wBASxB,CACDxuE,IAAK,eAML2B,MAAO,WACL,IAAIk4E,EAAS7mE,KAET2sC,EAAyB3sC,KAAKsL,MAAMqhC,uBACpCkX,EAAe7jD,KAAK5C,MACpBd,EAAWunD,EAAavnD,SACxB1C,EAAQiqD,EAAajqD,MACrBC,EAASgqD,EAAahqD,OACtB2Q,EAASxK,KAAK5C,MAAMoN,QAAU,GAC9BoiC,EAAchzC,GAAS4Q,EAAOwB,MAAQ,IAAMxB,EAAOyB,OAAS,GAC5Ds6D,EAAe1sE,GAAU2Q,EAAO2B,KAAO,IAAM3B,EAAO4B,QAAU,GAC9DhP,EAAQqvC,GAAe,CACzBnwC,SAAUA,EACVqwC,uBAAwBA,EACxBC,YAAaA,EACb25B,aAAcA,EACd15B,cAAeA,IAGjB,IAAKzvC,EACH,OAAO,KAGT,IAAIqO,EAAOrO,EAAMqO,KACbq7D,EAAanyE,GAAyByI,EAAO,CAAC,SAElD,OAAO8P,uBAAazB,EAAM1C,GAAc,GAAI+9D,EAAY,CACtDp7D,WAAY9R,EACZmS,YAAalS,EACb2Q,OAAQA,EACRyC,IAAK,SAAa85D,GAChBF,EAAO7N,eAAiB+N,GAE1Bz6D,aAActM,KAAK+4D,4BAQtB,CACD/rE,IAAK,gBACL2B,MAAO,WACL,IAAI2N,EAAW0D,KAAK5C,MAAMd,SACtByhE,EAAc/gE,EAAgBV,EAAUkf,IAE5C,IAAKuiD,EACH,OAAO,KAGT,IAAIiJ,EAAgBhnE,KAAKsL,MACrBkvD,EAAkBwM,EAAcxM,gBAChCP,EAAmB+M,EAAc/M,iBACjCF,EAAgBiN,EAAcjN,cAC9BD,EAAckN,EAAclN,YAC5B9+C,EAASgsD,EAAchsD,OAC3B,OAAO9N,uBAAa6wD,EAAa,CAC/B59D,QAAS4I,GAAc,GAAIiS,EAAQ,CACjChhB,EAAGghB,EAAOhP,KACV/R,EAAG+gB,EAAO7O,MAEZ4O,OAAQy/C,EACRtgD,MAAO4/C,EACPrwD,QAAS+wD,EAAkBT,EAAgB,GAC3C9+C,WAAYg/C,MAGf,CACDjtE,IAAK,qBACL2B,MAAO,SAA4Bs4E,GACjC,IAAIx7D,EAAOw7D,EAAOx7D,KACdyyD,EAAc+I,EAAO/I,YACrBC,EAAY8I,EAAO9I,UACnBE,EAAa4I,EAAO5I,WACpBL,EAAUiJ,EAAOjJ,QACjBhtE,EAAS,GACThE,EAAMye,EAAKrO,MAAMpQ,IACjBk6E,EAAoBz7D,EAAKA,KAAKrO,MAC9BqsD,EAAYyd,EAAkBzd,UAG9BtB,EAAWp/C,GAAc,CAC3BhY,MAAOstE,EACPxjD,QAJYqsD,EAAkBrsD,QAK9BrS,GAAI01D,EAAYlkE,EAChByO,GAAIy1D,EAAYjkE,EAChBC,EAAG,EACH1D,KAAM+1C,GAA0B9gC,EAAKA,MACrC1S,YAAa,EACbP,OAAQ,OACRiR,QAASy0D,EAAYz0D,QACrB9a,MAAOuvE,EAAYvvE,MACnB3B,IAAK,GAAGmF,OAAOnF,EAAK,iBAAiBmF,OAAOksE,IAC3CphE,EAA0BwsD,GAAY,GAAIhsD,EAAsBgsD,IAcnE,OAZAz4D,EAAO+L,KAAKiD,KAAKyD,YAAY0jE,gBAAgB1d,EAAWtB,EAAUkW,IAE9DF,EACFntE,EAAO+L,KAAKiD,KAAKyD,YAAY0jE,gBAAgB1d,EAAW1gD,GAAc,GAAIo/C,EAAU,CAClF3/C,GAAI21D,EAAUnkE,EACdyO,GAAI01D,EAAUlkE,EACdjN,IAAK,GAAGmF,OAAOnF,EAAK,eAAemF,OAAOksE,KACxCA,IACKL,GACThtE,EAAO+L,KAAK,MAGP/L,IAER,CACDhE,IAAK,iBACL2B,MAAO,WACL,IAAIm5D,EAAa9nD,KAAK8nD,WAClBsf,EAAqBpnE,KAAKsL,MAAM0P,OAChChP,EAAOo7D,EAAmBp7D,KAC1BG,EAAMi7D,EAAmBj7D,IACzBtS,EAASutE,EAAmBvtE,OAC5BD,EAAQwtE,EAAmBxtE,MAC/B,OAAO8C,IAAMyB,cAAc,OAAQ,KAAMzB,IAAMyB,cAAc,WAAY,CACvEjM,GAAI41D,GACHprD,IAAMyB,cAAc,OAAQ,CAC7BnE,EAAGgS,EACH/R,EAAGkS,EACHtS,OAAQA,EACRD,MAAOA,QAGV,CACD5M,IAAK,SACL2B,MAAO,WACL,IAAI04E,EAASrnE,KAEb,IAAKjC,GAAoBiC,MACvB,OAAO,KAGT,IAAIqmD,EAAermD,KAAK5C,MACpBd,EAAW+pD,EAAa/pD,SACxB+D,EAAYgmD,EAAahmD,UACzBzG,EAAQysD,EAAazsD,MACrBC,EAASwsD,EAAaxsD,OACtBF,EAAQ0sD,EAAa1sD,MACrBu4D,EAAU7L,EAAa6L,QACvBzxD,EAAS9L,GAAyB0xD,EAAc,CAAC,WAAY,YAAa,QAAS,SAAU,QAAS,YAEtGxlD,EAAQ5D,EAA0BwD,GAClChE,EAAM,CACR6oD,cAAe,CACb7lD,QAASO,KAAK28D,WACdj9D,MAAM,GAERg3D,cAAe,CACbj3D,QAASO,KAAKw9D,wBAEhBrI,cAAe,CACb11D,QAASO,KAAKw9D,wBAEhB3I,aAAc,CACZp1D,QAASO,KAAKw9D,wBAEhBtR,MAAO,CACLzsD,QAASO,KAAKq8D,aAEhBzP,MAAO,CACLntD,QAASO,KAAKy8D,aAEhBjN,MAAO,CACL/vD,QAASO,KAAKq9D,YACd39D,MAAM,GAER6qD,IAAK,CACH9qD,QAASO,KAAK29D,oBAEhB/W,KAAM,CACJnnD,QAASO,KAAK29D,oBAEhB2J,KAAM,CACJ7nE,QAASO,KAAK29D,oBAEhB4J,MAAO,CACL9nE,QAASO,KAAK29D,oBAEhB6J,UAAW,CACT/nE,QAASO,KAAK29D,oBAEhB8J,QAAS,CACPhoE,QAASO,KAAK29D,oBAEhBrc,IAAK,CACH7hD,QAASO,KAAK29D,oBAEhB+J,OAAQ,CACNjoE,QAASO,KAAK29D,oBAEhBniD,QAAS,CACP/b,QAASO,KAAK67D,aACdn8D,MAAM,GAERioE,UAAW,CACTloE,QAASO,KAAK68D,gBACdn9D,MAAM,GAERkoE,eAAgB,CACdnoE,QAASO,KAAKm8D,iBAEhB0L,gBAAiB,CACfpoE,QAASO,KAAKm8D,iBAEhB2L,WAAY,CACVroE,QAASO,KAAKs+D,mBAIlB,GAAIpM,EACF,OAAOx1D,IAAMyB,cAAcqC,GAASX,GAAS,GAAIgB,EAAO,CACtDjH,MAAOA,EACPC,OAAQA,IACNmG,KAAK+nE,iBAAkB5oE,GAAc7C,EAAUG,IAGrD,IAAIwjD,EAASjgD,KAAKgoE,uBAClB,OAAOtrE,IAAMyB,cAAc,MAAO0B,GAAS,CACzCQ,UAAWO,IAAW,mBAAoBP,GAC1C1G,MAAOoP,GAAc,CACnBgE,SAAU,WACV7W,OAAQ,UACR0D,MAAOA,EACPC,OAAQA,GACPF,IACFsmD,EAAQ,CACThzC,IAAK,SAAa1M,GAChB8mE,EAAO7vD,UAAYjX,KAEnB7D,IAAMyB,cAAcqC,GAASX,GAAS,GAAIgB,EAAO,CACnDjH,MAAOA,EACPC,OAAQA,IACNmG,KAAK+nE,iBAAkB5oE,GAAc7C,EAAUG,IAAOuD,KAAKioE,eAAgBjoE,KAAKkoE,sBA5xDdjiE,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA+0DzKwxD,EAvxDT,CAwxDEngD,aA2GF,OAzGAmgD,EAAwB18D,YAAcm3D,EACtCuF,EAAwB74D,UAAY8I,GAAc,CAChDuwD,OAAQnkE,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SACzD08D,QAAS/8D,IAAUiY,KACnBxT,MAAOzE,IAAUK,OACjBqE,OAAQ1E,IAAUK,OAClBqI,KAAM1I,IAAUmL,QAAQnL,IAAUjF,QAClC0Z,OAAQzU,IAAUiB,MAAM,CAAC,aAAc,aACvC0oE,YAAa3pE,IAAUiB,MAAM,CAAC,OAAQ,SAAU,OAAQ,SAAU,eAClEqoE,cAAetpE,IAAUK,OACzBgV,OAAQrV,IAAUiL,MAAM,CACtB+L,IAAKhX,IAAUK,OACfyW,MAAO9W,IAAUK,OACjB4W,OAAQjX,IAAUK,OAClBwW,KAAM7W,IAAUK,SAElB6sE,eAAgBltE,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACjEgtE,OAAQjtE,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACzDg2D,QAASj2D,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC1Dk2D,WAAYn2D,IAAUK,OACtBmE,MAAOxE,IAAUjF,OACjBmQ,UAAWlL,IAAUC,OACrBkH,SAAUnH,IAAUuB,UAAU,CAACvB,IAAUmL,QAAQnL,IAAUoL,MAAOpL,IAAUoL,OAC5E4nE,mBAAoBhzE,IAAUiY,KAC9B/S,QAASlF,IAAUmF,KACnBO,aAAc1F,IAAUmF,KACxBM,aAAczF,IAAUmF,KACxBI,YAAavF,IAAUmF,KACvBC,YAAapF,IAAUmF,KACvBE,UAAWrF,IAAUmF,KACrB4qE,kBAAmB/vE,IAAUiY,KAC7Blb,GAAIiD,IAAUC,QACb6K,GACH64D,EAAwB9vD,aAAeD,GAAc,CACnDa,OAAQ,aACRk1D,YAAa,OACbuD,eAAgB,MAChBD,OAAQ,EACR53D,OAAQ,CACN2B,IAAK,EACLF,MAAO,EACPG,OAAQ,EACRJ,KAAM,GAERk5D,mBAAmB,GAClBl8D,GAEH8vD,EAAwB0F,mBAAqB,SAAUphE,GACrD,IAAId,EAAWc,EAAMd,SACjB6rE,EAAqB/qE,EAAM+qE,mBAC3BhC,EAAYnpE,EAAgBV,EAAUkzD,IAG1C,MAAO,CACLiK,OAAQ,EACRC,OAAQ,EACRlO,eALe2a,GAAaA,EAAU/oE,OAAS+oE,EAAU/oE,MAAMm1C,YAAc,EAM7E0mB,aALakN,GAAaA,EAAU/oE,OAAS+oE,EAAU/oE,MAAMo1C,UAAYp1C,EAAMS,MAAQT,EAAMS,KAAKpN,OAAS,GAAK,EAMhH+oE,oBAAqB,EACrBgB,iBAAkB/7D,IAAO0pE,IAAsBA,IAInDrP,EAAwB2J,OAAS,SAAUpD,GACzC,SAAKA,IAAmBA,EAAe5uE,SAIhC4uE,EAAe+I,MAAK,SAAU38D,GACnC,IAAI3e,EAAOoP,EAAeuP,GAAQA,EAAK5e,MACvC,OAAOC,GAAQA,EAAK4E,QAAQ,QAAU,MAI1ConE,EAAwB8G,iBAAmB,SAAUxiE,EAAOirE,EAAQ58D,GAClE,IAAI4zD,EAAiBgJ,EAAOhJ,eACxB7T,EAAiB6c,EAAO7c,eACxByN,EAAeoP,EAAOpP,aACtBqP,GAAajJ,GAAkB,IAAInwD,QAAO,SAAUle,EAAQ6L,GAC9D,IAAI0rE,EAAW1rE,EAAMO,MAAMS,KAE3B,OAAI0qE,GAAYA,EAAS93E,OAChB,GAAG0B,OAAO2B,GAAmB9C,GAAS8C,GAAmBy0E,IAG3Dv3E,IACN,IAEH,GAAIs3E,GAAaA,EAAU73E,OAAS,EAClC,OAAO63E,EAGT,GAAI78D,GAAQA,EAAKrO,OAASqO,EAAKrO,MAAMS,MAAQ4N,EAAKrO,MAAMS,KAAKpN,OAAS,EACpE,OAAOgb,EAAKrO,MAAMS,KAGpB,IAAIA,EAAOT,EAAMS,KAEjB,OAAIA,GAAQA,EAAKpN,QAAUkB,EAAS65D,IAAmB75D,EAASsnE,GACvDp7D,EAAKlL,MAAM64D,EAAgByN,EAAe,GAG5C,IAGFH,GCr9DML,MAAyB,CACtClF,UAAW,YACXmF,eAAgB9R,GAChBiS,eAAgB,CAAC,CACfzrB,SAAU,QACVgyB,SAAUlT,IACT,CACD9e,SAAU,QACVgyB,SAAUxS,KAEZyG,cAAeA,KCVFoF,MAAyB,CACtClF,UAAW,WACXmF,eAAgBnO,GAChBsO,eAAgB,CAAC,CACfzrB,SAAU,QACVgyB,SAAUlT,IACT,CACD9e,SAAU,QACVgyB,SAAUxS,KAEZyG,cAAeA,KClBjB,SAASjuD,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAI9U,SAAS4S,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASgT,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAASsT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAUrK,IAAI+hE,GAAmB,SAA0B/sB,GAC/C,OAAOA,EAAOvsC,QAAO,SAAUle,EAAQwC,GAKrC,OAJIA,EAAMwG,KAAOxG,EAAMwG,GAAKxG,EAAMyG,KAAOzG,EAAMyG,GAC7CjJ,EAAO+L,KAAK,CAACvJ,EAAMwG,EAAGxG,EAAMyG,IAGvBjJ,IACN,IAAIgf,KAAK,MAGVy4D,GAEJ,SAAUrhE,GAGR,SAASqhE,IAGP,OAFA3iE,GAAgB9F,KAAMyoE,GAEftiE,GAA2BnG,KAAMsG,GAAgBmiE,GAAS1oE,MAAMC,KAAMxN,YAtCjF,IAAsBwT,EAAaqB,EAAYC,EA4D7C,OApDF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAyBjXE,CAAU+gE,EAASrhE,GAjCCpB,EAyCPyiE,GAzCoBphE,EAyCX,CAAC,CACrBra,IAAK,SACL2B,MAAO,WACL,IAAIgZ,EAAc3H,KAAK5C,MACnBq+C,EAAS9zC,EAAY8zC,OACrBp7C,EAAYsH,EAAYtH,UAE5B,IAAKo7C,IAAWA,EAAOhrD,OACrB,OAAO,KAGT,IAAIkQ,EAAaC,IAAW,mBAAoBP,GAChD,OAAO3D,IAAMyB,cAAc,UAAW0B,GAAS,GAAI5C,EAA0B+C,KAAK5C,OAAQK,EAAsBuC,KAAK5C,OAAQ,CAC3HiD,UAAWM,EACX86C,OAAQ+sB,GAAiB/sB,WAvD6Cx1C,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA4D3KmhE,EA5BT,CA6BE7/D,iBAEF6/D,GAAQrsE,YAAc,UACtBqsE,GAAQxoE,UA5ER,SAAuBrS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EA4Ezemb,CAAc,GAAI7T,EAAyB,CAC7DmL,UAAWlL,IAAUC,OACrBqmD,OAAQtmD,IAAUmL,QAAQnL,IAAUiL,MAAM,CACxCpG,EAAG7E,IAAUK,OACbyE,EAAG9E,IAAUK,YAGFizE,UCnFf,SAAS5iE,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAAS4S,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAASiT,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAarK,IAAIS,GAAS3X,KAAK+R,GAAK,IACnBonE,GAAM,KAENd,GAEJ,SAAUxgE,GAGR,SAASwgE,IAGP,OAFA9hE,GAAgB9F,KAAM4nE,GAEfzhE,GAA2BnG,KAAMsG,GAAgBshE,GAAgB7nE,MAAMC,KAAMxN,YAlCxF,IAAsBwT,EAAaqB,EAAYC,EA2M7C,OAnMF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAqBjXE,CAAUkgE,EAAgBxgE,GA7BNpB,EAqCP4hE,EArCgCtgE,EAwLzC,CAAC,CACHta,IAAK,iBACL2B,MAAO,SAAwBqc,EAAQ5N,EAAOzO,GAa5C,OAVI+N,IAAMW,eAAe2N,GACZtO,IAAMwQ,aAAalC,EAAQ5N,GAC7BD,IAAY6N,GACVA,EAAO5N,GAEPV,IAAMyB,cAAcu/C,GAAM79C,GAAS,GAAIzC,EAAO,CACvDiD,UAAW,yCACT1R,OApMuB0Y,EAqCJ,CAAC,CAC5Bra,IAAK,mBASL2B,MAAO,SAA0BkP,GAC/B,IAAI8J,EAAc3H,KAAK5C,MACnBoL,EAAKb,EAAYa,GACjBC,EAAKd,EAAYc,GACjBtO,EAASwN,EAAYxN,OACrBiyD,EAAczkD,EAAYykD,YAC1BI,EAAW7kD,EAAY6kD,SACvBmc,EAAenc,GAAYA,EAAS9qD,MAAQ,EAC5Cy1D,EAAKxjB,GAAiBnrC,EAAIC,EAAItO,EAAQ0D,EAAKod,YAC3Co8C,EAAK1jB,GAAiBnrC,EAAIC,EAAItO,GAA0B,UAAhBiyD,GAA2B,EAAI,GAAKuc,EAAc9qE,EAAKod,YACnG,MAAO,CACLrY,GAAIu0D,EAAGn9D,EACP6I,GAAIs0D,EAAGl9D,EACP6I,GAAIu0D,EAAGr9D,EACP+I,GAAIs0D,EAAGp9D,KASV,CACDjN,IAAK,oBACL2B,MAAO,SAA2BkP,GAChC,IAAIuuD,EAAcpsD,KAAK5C,MAAMgvD,YACzBnrD,EAAM1R,KAAK0R,KAAKpD,EAAKod,WAAa/T,IAWtC,OARIjG,EAAMynE,GACqB,UAAhBtc,EAA0B,QAAU,MACxCnrD,GAAOynE,GACa,UAAhBtc,EAA0B,MAAQ,QAElC,WAKhB,CACDp/D,IAAK,iBACL2B,MAAO,WACL,IAAI4Z,EAAevI,KAAK5C,MACpBoL,EAAKD,EAAaC,GAClBC,EAAKF,EAAaE,GAClBtO,EAASoO,EAAapO,OACtBoyD,EAAWhkD,EAAagkD,SACxBqc,EAAergE,EAAaqgE,aAE5BxrE,EAAQ2L,GAAc,GAAI9L,EAA0B+C,KAAK5C,OAAQ,CACnE5G,KAAM,QACLyG,EAA0BsvD,IAE7B,GAAqB,WAAjBqc,EACF,OAAOlsE,IAAMyB,cAAcwoD,GAAK9mD,GAAS,CACvCQ,UAAW,kCACVjD,EAAO,CACRoL,GAAIA,EACJC,GAAIA,EACJvO,EAAGC,KAIP,IACIshD,EADQz7C,KAAK5C,MAAMsnB,MACJjoB,KAAI,SAAUjJ,GAC/B,OAAOmgD,GAAiBnrC,EAAIC,EAAItO,EAAQ3G,EAAMynB,eAEhD,OAAOve,IAAMyB,cAAcsqE,GAAS5oE,GAAS,CAC3CQ,UAAW,kCACVjD,EAAO,CACRq+C,OAAQA,OAGX,CACDzuD,IAAK,cACL2B,MAAO,WACL,IAAI+a,EAAQ1J,KAERoV,EAAepV,KAAK5C,MACpBsnB,EAAQtP,EAAasP,MACrB4nC,EAAOl3C,EAAak3C,KACpBE,EAAWp3C,EAAao3C,SACxBH,EAAgBj3C,EAAai3C,cAC7B7zD,EAAS4c,EAAa5c,OACtBk2D,EAAYzxD,EAA0B+C,KAAK5C,OAC3CuxD,EAAkB1xD,EAA0BqvD,GAE5CsC,EAAgB7lD,GAAc,GAAI2lD,EAAW,CAC/Cl4D,KAAM,QACLyG,EAA0BuvD,IAEzBlzC,EAAQoL,EAAMjoB,KAAI,SAAUjJ,EAAOQ,GACrC,IAAI+6D,EAAYrlD,EAAMolD,iBAAiBt7D,GAInCw7D,EAAYjmD,GAAc,CAC5B/P,WAHe0Q,EAAM8kD,kBAAkBh7D,IAItCk7D,EAAW,CACZl2D,OAAQ,OACRhC,KAAMgC,GACLm2D,EAAiB,CAClB59D,MAAOiD,EACPyV,QAASjW,EACTwG,EAAG+0D,EAAUjsD,GACb7I,EAAG80D,EAAUhsD,KAGf,OAAOrG,IAAMyB,cAAcyf,GAAO/d,GAAS,CACzCQ,UAAW,iCACXrT,IAAK,QAAQmF,OAAO6B,IAEnB8J,GAAoB4L,EAAMtM,MAAO5J,EAAOQ,IAAKw4D,GAAY9vD,IAAMyB,cAAc,OAAQ0B,GAAS,CAC/FQ,UAAW,uCACVuuD,EAAeG,IAAazC,GAAQ5iD,EAAMjG,YAAYyrD,eAAe5C,EAAM0C,EAAW3C,EAAgBA,EAAc74D,EAAM7E,OAAS6E,EAAM7E,WAE9I,OAAO+N,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAW,mCACViZ,KAEJ,CACDtsB,IAAK,SACL2B,MAAO,WACL,IAAIyoB,EAAepX,KAAK5C,MACpBsnB,EAAQtN,EAAasN,MACrBvqB,EAASid,EAAajd,OACtBoyD,EAAWn1C,EAAam1C,SAE5B,OAAIpyD,GAAU,IAAMuqB,IAAUA,EAAMj0B,OAC3B,KAGFiM,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAW,6BACVksD,GAAYvsD,KAAKsvD,iBAAkBtvD,KAAKuvD,oBAtL6BtpD,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA2M3KsgE,EA/KT,CAgLEh/D,iBAEFg/D,GAAexrE,YAAc,iBAC7BwrE,GAAex6B,SAAW,YAC1Bw6B,GAAe3nE,UAAY8I,GAAc,GAAI7T,EAAyB,GAAIkF,EAAkB,CAC1FvN,KAAMsI,IAAUiB,MAAM,CAAC,SAAU,aACjCyyE,YAAa1zE,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC9DqlB,QAAS1lB,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,OAAQD,IAAUmF,OAC5EkO,GAAIrT,IAAUK,OACdiT,GAAItT,IAAUK,OACd2E,OAAQhF,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACzD3I,KAAM0I,IAAUiY,KAChBkZ,MAAOnxB,IAAUuB,UAAU,CAACvB,IAAUiB,MAAM2F,GAAc5G,IAAUmF,OACpEiyD,SAAUp3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUjF,SACzD04E,aAAczzE,IAAUiB,MAAM,CAAC,UAAW,WAC1Co2D,SAAUr3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUjF,SACzDo8D,KAAMn3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUmF,KAAMnF,IAAUjF,OAAQiF,IAAUyV,UACvF8Z,MAAOvvB,IAAUmL,QAAQnL,IAAUiL,MAAM,CACvCzR,MAAOwG,IAAUE,IACjB4lB,WAAY9lB,IAAUK,UAExBgD,OAAQrD,IAAUC,OAClBg3D,YAAaj3D,IAAUiB,MAAM,CAAC,QAAS,UACvCi2D,cAAel3D,IAAUmF,KACzB43C,wBAAyB/8C,IAAUiY,OAErCw6D,GAAe5+D,aAAe,CAC5Bnc,KAAM,WACNg8E,YAAa,EACbviD,MAAO,OACP9d,GAAI,EACJC,GAAI,EACJ6c,OAAQ,CAAC,EAAG,QACZ8mC,YAAa,QACbG,UAAU,EACVC,UAAU,EACVF,MAAM,EACN7/D,MAAM,EACNylD,yBAAyB,GAEZ01B,U,0CChQf,SAAS/hE,GAAQhT,GAAwT,OAAtOgT,GAArD,oBAAXlW,QAAoD,kBAApBA,OAAOyE,SAAmC,SAAiBvB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXlD,QAAyBkD,EAAI4Q,cAAgB9T,QAAUkD,IAAQlD,OAAO0E,UAAY,gBAAkBxB,IAAyBA,GAExV,SAASgN,KAA2Q,OAA9PA,GAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAEhT,SAAS4S,GAAQlV,EAAQmV,GAAkB,IAAIvS,EAAO1D,OAAO0D,KAAK5C,GAAS,GAAId,OAAO2F,sBAAuB,CAAE,IAAIuQ,EAAUlW,OAAO2F,sBAAsB7E,GAAamV,IAAgBC,EAAUA,EAAQ1O,QAAO,SAAU2O,GAAO,OAAOnW,OAAOoW,yBAAyBtV,EAAQqV,GAAKE,eAAgB3S,EAAKiK,KAAKgD,MAAMjN,EAAMwS,GAAY,OAAOxS,EAE9U,SAASiW,GAAcnb,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAAyB,MAAhByF,UAAUwB,GAAaxB,UAAUwB,GAAK,GAAQA,EAAI,EAAKoR,GAAQrY,GAAQ,GAAM6P,SAAQ,SAAU5P,GAAO0Y,GAAgB9X,EAAQZ,EAAKD,EAAOC,OAAsBoC,OAAOyZ,0BAA6BzZ,OAAO0Z,iBAAiBlb,EAAQwB,OAAOyZ,0BAA0B9b,IAAmBqY,GAAQrY,GAAQ6P,SAAQ,SAAU5P,GAAOoC,OAAOgB,eAAexC,EAAQZ,EAAKoC,OAAOoW,yBAAyBzY,EAAQC,OAAe,OAAOY,EAE7f,SAAS8X,GAAgB7S,EAAK7F,EAAK2B,GAAiK,OAApJ3B,KAAO6F,EAAOzD,OAAOgB,eAAeyC,EAAK7F,EAAK,CAAE2B,MAAOA,EAAO8W,YAAY,EAAME,cAAc,EAAMC,UAAU,IAAkB/S,EAAI7F,GAAO2B,EAAgBkE,EAE3M,SAAS8B,GAAyB5H,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAAkEC,EAAKgH,EAAnEpG,EAEzF,SAAuCb,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAFxMkH,CAA8B/H,EAAQ6H,GAAuB,GAAIxF,OAAO2F,sBAAuB,CAAE,IAAIC,EAAmB5F,OAAO2F,sBAAsBhI,GAAS,IAAKiH,EAAI,EAAGA,EAAIgB,EAAiBvE,OAAQuD,IAAOhH,EAAMgI,EAAiBhB,GAAQY,EAASlD,QAAQ1E,IAAQ,GAAkBoC,OAAOiF,UAAUY,qBAAqB/G,KAAKnB,EAAQC,KAAgBY,EAAOZ,GAAOD,EAAOC,IAAU,OAAOY,EAIne,SAASkY,GAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAEhH,SAASwR,GAAkBrY,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAI7S,SAASC,GAA2BhX,EAAMjB,GAAQ,OAAIA,GAA2B,WAAlB2X,GAAQ3X,IAAsC,oBAATA,EAEpG,SAAgCiB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAFbkX,CAAuBlX,GAAtCjB,EAInI,SAASoY,GAAgBC,GAAwJ,OAAnJD,GAAkBlX,OAAO+B,eAAiB/B,OAAOkC,eAAiB,SAAyBiV,GAAK,OAAOA,EAAEnV,WAAahC,OAAOkC,eAAeiV,KAA8BA,GAIxM,SAASC,GAAgBD,EAAGE,GAA+G,OAA1GD,GAAkBpX,OAAO+B,gBAAkB,SAAyBoV,EAAGE,GAAsB,OAAjBF,EAAEnV,UAAYqV,EAAUF,IAA6BA,EAAGE,GAarK,IAAIohE,GAEJ,SAAUzgE,GAGR,SAASygE,IAGP,OAFA/hE,GAAgB9F,KAAM6nE,GAEf1hE,GAA2BnG,KAAMsG,GAAgBuhE,GAAiB9nE,MAAMC,KAAMxN,YA/BzF,IAAsBwT,EAAaqB,EAAYC,EA4M7C,OApMF,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,sDAAyD8S,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU3B,UAAU,EAAMD,cAAc,KAAe6B,GAAYhB,GAAgBe,EAAUC,GAkBjXE,CAAUmgE,EAAiBzgE,GA1BPpB,EAkCP6hE,EAlCgCvgE,EAyLzC,CAAC,CACHta,IAAK,iBACL2B,MAAO,SAAwBqc,EAAQ5N,EAAOzO,GAa5C,OAVI+N,IAAMW,eAAe2N,GACZtO,IAAMwQ,aAAalC,EAAQ5N,GAC7BD,IAAY6N,GACVA,EAAO5N,GAEPV,IAAMyB,cAAcu/C,GAAM79C,GAAS,GAAIzC,EAAO,CACvDiD,UAAW,0CACT1R,OArMuB0Y,EAkCH,CAAC,CAC7Bra,IAAK,oBAOL2B,MAAO,SAA2B+P,GAChC,IAAIuc,EAAavc,EAAKuc,WAClBtT,EAAc3H,KAAK5C,MACnB7H,EAAQoS,EAAYpS,MACpBiT,EAAKb,EAAYa,GACjBC,EAAKd,EAAYc,GACrB,OAAOkrC,GAAiBnrC,EAAIC,EAAIwS,EAAY1lB,KAE7C,CACDvI,IAAK,oBACL2B,MAAO,WACL,IACIqK,EAEJ,OAHkBgH,KAAK5C,MAAMgvD,aAI3B,IAAK,OACHpzD,EAAa,MACb,MAEF,IAAK,QACHA,EAAa,QACb,MAEF,QACEA,EAAa,SAIjB,OAAOA,IAER,CACDhM,IAAK,aACL2B,MAAO,WACL,IAAI4Z,EAAevI,KAAK5C,MACpBoL,EAAKD,EAAaC,GAClBC,EAAKF,EAAaE,GAClBlT,EAAQgT,EAAahT,MACrBmvB,EAAQnc,EAAamc,MAErBokD,EAAgBC,KAAOrkD,GAAO,SAAUlxB,GAC1C,OAAOA,EAAMynB,YAAc,KAO7B,MAAO,CACLzS,GAAIA,EACJC,GAAIA,EACJwrC,WAAY1+C,EACZ2+C,SAAU3+C,EACVi/C,YATkBw0B,KAAOtkD,GAAO,SAAUlxB,GAC1C,OAAOA,EAAMynB,YAAc,KAQAA,YAAc,EACzCw5B,YAAaq0B,EAAc7tD,YAAc,KAG5C,CACDjuB,IAAK,iBACL2B,MAAO,WACL,IAAIymB,EAAepV,KAAK5C,MACpBoL,EAAK4M,EAAa5M,GAClBC,EAAK2M,EAAa3M,GAClBlT,EAAQ6f,EAAa7f,MACrBmvB,EAAQtP,EAAasP,MACrB6nC,EAAWn3C,EAAam3C,SACxB9rD,EAAS9L,GAAyBygB,EAAc,CAAC,KAAM,KAAM,QAAS,QAAS,aAE/E6zD,EAASvkD,EAAMxV,QAAO,SAAUle,EAAQwC,GAC1C,MAAO,CAACjE,KAAK4R,IAAInQ,EAAO,GAAIwC,EAAMynB,YAAa1rB,KAAK2R,IAAIlQ,EAAO,GAAIwC,EAAMynB,eACxE,CAACsF,KAAU,MACV2oD,EAASv1B,GAAiBnrC,EAAIC,EAAIwgE,EAAO,GAAI1zE,GAC7C4zE,EAASx1B,GAAiBnrC,EAAIC,EAAIwgE,EAAO,GAAI1zE,GAE7C6H,EAAQ2L,GAAc,GAAI9L,EAA0BwD,GAAS,CAC/DjK,KAAM,QACLyG,EAA0BsvD,GAAW,CACtC3pD,GAAIsmE,EAAOlvE,EACX6I,GAAIqmE,EAAOjvE,EACX6I,GAAIqmE,EAAOnvE,EACX+I,GAAIomE,EAAOlvE,IAGb,OAAOyC,IAAMyB,cAAc,OAAQ0B,GAAS,CAC1CQ,UAAW,mCACVjD,MAEJ,CACDpQ,IAAK,cACL2B,MAAO,WACL,IAAI+a,EAAQ1J,KAERoX,EAAepX,KAAK5C,MACpBsnB,EAAQtN,EAAasN,MACrB4nC,EAAOl1C,EAAak1C,KACpB/2D,EAAQ6hB,EAAa7hB,MACrB82D,EAAgBj1C,EAAai1C,cAC7B7zD,EAAS4e,EAAa5e,OACtBiI,EAAS9L,GAAyByiB,EAAc,CAAC,QAAS,OAAQ,QAAS,gBAAiB,WAE5Fpe,EAAagH,KAAKwuD,oBAClBE,EAAYzxD,EAA0BwD,GACtCkuD,EAAkB1xD,EAA0BqvD,GAC5ChzC,EAAQoL,EAAMjoB,KAAI,SAAUjJ,EAAOQ,GACrC,IAAIyhE,EAAQ/rD,EAAM0/D,kBAAkB51E,GAEhCw7D,EAAYjmD,GAAc,CAC5B/P,WAAYA,EACZO,UAAW,UAAUpH,OAAO,GAAKoD,EAAO,MAAMpD,OAAOsjE,EAAMz7D,EAAG,MAAM7H,OAAOsjE,EAAMx7D,EAAG,MACnFy0D,EAAW,CACZl2D,OAAQ,OACRhC,KAAMgC,GACLm2D,EAAiB,CAClB59D,MAAOiD,GACNyhE,EAAO,CACRhsD,QAASjW,IAGX,OAAOkJ,IAAMyB,cAAcyf,GAAO/d,GAAS,CACzCQ,UAAW,kCACXrT,IAAK,QAAQmF,OAAO6B,IAEnB8J,GAAoB4L,EAAMtM,MAAO5J,EAAOQ,IAAK0V,EAAMjG,YAAYyrD,eAAe5C,EAAM0C,EAAW3C,EAAgBA,EAAc74D,EAAM7E,OAAS6E,EAAM7E,WAEvJ,OAAO+N,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAW,oCACViZ,KAEJ,CACDtsB,IAAK,SACL2B,MAAO,WACL,IAAIg1D,EAAe3jD,KAAK5C,MACpBsnB,EAAQi/B,EAAaj/B,MACrB6nC,EAAW5I,EAAa4I,SACxBD,EAAO3I,EAAa2I,KAExB,OAAK5nC,GAAUA,EAAMj0B,OAIdiM,IAAMyB,cAAcyf,GAAO,CAChCvd,UAAW,8BACVksD,GAAYvsD,KAAKsvD,iBAAkBhD,GAAQtsD,KAAKuvD,cAAe3P,GAAMc,mBAAmB1gD,KAAK5C,MAAO4C,KAAKqpE,eALnG,UAlL+DpjE,GAAkBD,EAAY3R,UAAWgT,GAAiBC,GAAarB,GAAkBD,EAAasB,GA4M3KugE,EAnLT,CAoLEj/D,iBAEFi/D,GAAgBzrE,YAAc,kBAC9ByrE,GAAgBz6B,SAAW,aAC3By6B,GAAgB5nE,UAAY8I,GAAc,GAAI7T,EAAyB,GAAIkF,EAAkB,CAC3FvN,KAAMsI,IAAUiB,MAAM,CAAC,SAAU,aACjCoS,GAAIrT,IAAUK,OACdiT,GAAItT,IAAUK,OACd/I,KAAM0I,IAAUiY,KAChBk8D,aAAcn0E,IAAUuB,UAAU,CAACvB,IAAUC,OAAQD,IAAUK,SAC/DD,MAAOJ,IAAUK,OACjBmsB,UAAWxsB,IAAUK,OACrBkvB,MAAOvvB,IAAUmL,QAAQnL,IAAUiL,MAAM,CACvCzR,MAAOwG,IAAUE,IACjB4lB,WAAY9lB,IAAUK,UAExB42D,YAAaj3D,IAAUiB,MAAM,CAAC,OAAQ,QAAS,WAC/Cm2D,SAAUp3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUjF,SACzDo8D,KAAMn3D,IAAUuB,UAAU,CAACvB,IAAUiY,KAAMjY,IAAUjF,OAAQiF,IAAUyV,QAASzV,IAAUmF,OAC1F9B,OAAQrD,IAAUC,OAClBi3D,cAAel3D,IAAUmF,KACzBgrB,OAAQnwB,IAAUmL,QAAQnL,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUiB,MAAM,CAAC,OAAQ,UAAW,eACrGkwB,MAAOnxB,IAAUuB,UAAU,CAACvB,IAAUiB,MAAM,CAAC,OAAQ,SAAU,MAAO,OAAQ,MAAO,WAAY,OAAQ,OAAQ,QAAS,UAAW,WAAY,WAAY,MAAO,aAAc,cAAejB,IAAUmF,OAC3M04C,kBAAmB79C,IAAUiY,KAC7B8kC,wBAAyB/8C,IAAUiY,OAErCy6D,GAAgB7+D,aAAe,CAC7Bnc,KAAM,SACNy8E,aAAc,EACd9gE,GAAI,EACJC,GAAI,EACJlT,MAAO,EACP62D,YAAa,QACb5zD,OAAQ,OACR+zD,UAAU,EACVD,MAAM,EACN3qC,UAAW,EACX2D,OAAQ,CAAC,EAAG,QACZ0tB,mBAAmB,EACnB1sB,MAAO,OACP4rB,yBAAyB,GAEZ21B,ICpQApP,MAAyB,CACtClF,UAAW,WACXmF,eAAgBpX,GAChBsX,UAAW,OACX/rB,cAAe,WACfgsB,eAAgB,CAAC,CACfzrB,SAAU,YACVgyB,SAAUwI,IACT,CACDx6B,SAAU,aACVgyB,SD0PWyI,KCxPbxU,c5C6ByB,SAAuBj2D,EAAOk2D,EAASt4C,EAAQoyB,EAAUmmB,GAClF,IAAI35D,EAAQwD,EAAMxD,MACdC,EAASuD,EAAMvD,OACfo6C,EAAa72C,EAAM62C,WACnBC,EAAW92C,EAAM82C,SACjB1rC,EAAKpW,EAAgBgL,EAAMoL,GAAI5O,EAAOA,EAAQ,GAC9C6O,EAAKrW,EAAgBgL,EAAMqL,GAAI5O,EAAQA,EAAS,GAChDsqD,EAAYvQ,GAAah6C,EAAOC,EAAQmhB,GACxCw5B,EAAcpiD,EAAgBgL,EAAMo3C,YAAa2P,EAAW,GAC5D1P,EAAcriD,EAAgBgL,EAAMq3C,YAAa0P,EAAuB,GAAZA,GAEhE,OADU/0D,OAAO0D,KAAKwgE,GACXpkD,QAAO,SAAUle,EAAQkB,GAClC,IAGI4sB,EAHAuvB,EAAOilB,EAAQphE,GACfozB,EAAS+oB,EAAK/oB,OACdqnC,EAAWte,EAAKse,SAGpB,GAAIluD,IAAO4vC,EAAKvvB,OACG,cAAbsuB,EACFtuB,EAAQ,CAACm1B,EAAYC,GACC,eAAb9G,IACTtuB,EAAQ,CAAC01B,EAAaC,IAGpBkY,IACF7tC,EAAQ,CAACA,EAAM,GAAIA,EAAM,SAEtB,CAEL,IAEIyqD,EAAUt5D,GAHd6O,EAAQuvB,EAAKvvB,MAGwB,GAErCm1B,EAAas1B,EAAQ,GACrBr1B,EAAWq1B,EAAQ,GAGrB,IAAIvV,EAAc1kB,GAAWjB,EAAMklB,GAC/B9jB,EAAgBukB,EAAYvkB,cAC5BnpB,EAAQ0tC,EAAY1tC,MAExBA,EAAMhB,OAAOA,GAAQxG,MAAMA,GAC3B6wB,GAAmBrpB,GACnB,IAAI5B,EAAQ+sB,GAAgBnrB,EAAOvd,GAAc,GAAIslC,EAAM,CACzDoB,cAAeA,KAGbwkB,EAAYlrD,GAAc,GAAIslC,EAAM,GAAI3pB,EAAO,CACjD5F,MAAOA,EACP3kB,OAAQs6C,EACRhF,cAAeA,EACfnpB,MAAOA,EACP9d,GAAIA,EACJC,GAAIA,EACJ+rC,YAAaA,EACbC,YAAaA,EACbR,WAAYA,EACZC,SAAUA,IAGZ,OAAOnrC,GAAc,GAAI/X,EAAQ0U,GAAgB,GAAIxT,EAAI+hE,MACxD,K4CzFHjrD,aAAc,CACZY,OAAQ,UACRqqC,WAAY,EACZC,SAAU,IACV1rC,GAAI,MACJC,GAAI,MACJ+rC,YAAa,EACbC,YAAa,OAEfx0C,UAAW,CACT2J,OAAQzU,IAAUiB,MAAM,CAAC,YACzB69C,WAAY9+C,IAAUK,OACtB0+C,SAAU/+C,IAAUK,OACpBgT,GAAIrT,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACrDqT,GAAItT,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SACrDo/C,YAAar/C,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,SAC9Dq/C,YAAat/C,IAAUuB,UAAU,CAACvB,IAAUK,OAAQL,IAAUC,a,gBCtClE,IAAI1G,EAAWnC,EAAQ,KACvB+B,EAAOR,QAAU,SAAUqC,GACzB,IAAKzB,EAASyB,GAAK,MAAMsE,UAAUtE,EAAK,sBACxC,OAAOA,I,cCHT,IAAIyD,EAAiB,GAAGA,eACxBtF,EAAOR,QAAU,SAAUqC,EAAInD,GAC7B,OAAO4G,EAAe1F,KAAKiC,EAAInD,K,cCDjC,IAAIw0B,EAAOjyB,KAAKiyB,KACZtB,EAAQ3wB,KAAK2wB,MACjB5xB,EAAOR,QAAU,SAAUqC,GACzB,OAAOuiC,MAAMviC,GAAMA,GAAM,GAAKA,EAAK,EAAI+vB,EAAQsB,GAAMrxB,K,gBCJvD,IAAIq5E,EAAiBj9E,EAAQ,KACzBk9E,EAAkBl9E,EAAQ,KAC1Bm9E,EAAen9E,EAAQ,KACvBo9E,EAAep9E,EAAQ,KACvBq9E,EAAer9E,EAAQ,KAS3B,SAASs9E,EAAU9jD,GACjB,IAAIh1B,GAAS,EACTN,EAAoB,MAAXs1B,EAAkB,EAAIA,EAAQt1B,OAG3C,IADAuP,KAAK8lB,UACI/0B,EAAQN,GAAQ,CACvB,IAAI+C,EAAQuyB,EAAQh1B,GACpBiP,KAAK2lB,IAAInyB,EAAM,GAAIA,EAAM,KAK7Bq2E,EAAUx1E,UAAUyxB,MAAQ0jD,EAC5BK,EAAUx1E,UAAV,OAAgCo1E,EAChCI,EAAUx1E,UAAUhE,IAAMq5E,EAC1BG,EAAUx1E,UAAUuxB,IAAM+jD,EAC1BE,EAAUx1E,UAAUsxB,IAAMikD,EAE1Bt7E,EAAOR,QAAU+7E,G,gBC/BjB,IAAIC,EAAKv9E,EAAQ,KAoBjB+B,EAAOR,QAVP,SAAsB+C,EAAO7D,GAE3B,IADA,IAAIyD,EAASI,EAAMJ,OACZA,KACL,GAAIq5E,EAAGj5E,EAAMJ,GAAQ,GAAIzD,GACvB,OAAOyD,EAGX,OAAQ,I,gBCjBV,IAGIs5E,EAHYx9E,EAAQ,IAGLy9E,CAAU56E,OAAQ,UAErCd,EAAOR,QAAUi8E,G,gBCLjB,IAAIE,EAAY19E,EAAQ,KAiBxB+B,EAAOR,QAPP,SAAoB2O,EAAKzP,GACvB,IAAI6Q,EAAOpB,EAAIytE,SACf,OAAOD,EAAUj9E,GACb6Q,EAAmB,iBAAP7Q,EAAkB,SAAW,QACzC6Q,EAAKpB,M,gBCdX,IAAI0tE,EAAgB59E,EAAQ,KACxB69E,EAAW79E,EAAQ,KACnB89E,EAAc99E,EAAQ,KAkC1B+B,EAAOR,QAJP,SAAcoC,GACZ,OAAOm6E,EAAYn6E,GAAUi6E,EAAcj6E,GAAUk6E,EAASl6E,K,gBCjChE,IAAIo6E,EAAU/9E,EAAQ,KAgCtB+B,EAAOR,QALP,SAAaoC,EAAQsT,EAAMjR,GACzB,IAAIvB,EAAmB,MAAVd,OAAiBlC,EAAYs8E,EAAQp6E,EAAQsT,GAC1D,YAAkBxV,IAAXgD,EAAuBuB,EAAevB,I,gBC7B/C,IAAIu5E,EAAWh+E,EAAQ,KAoBvB+B,EAAOR,QARP,SAAea,GACb,GAAoB,iBAATA,GAAqB47E,EAAS57E,GACvC,OAAOA,EAET,IAAIqC,EAAUrC,EAAQ,GACtB,MAAkB,KAAVqC,GAAkB,EAAIrC,IAdjB,SAcwC,KAAOqC,I,gBCjB9D,IAAIw5E,EAAaj+E,EAAQ,KAWrBk+E,EAViBl+E,EAAQ,IAUdm+E,CAAeF,GAE9Bl8E,EAAOR,QAAU28E,G,gBCbjB,IAAIX,EAAKv9E,EAAQ,KACb89E,EAAc99E,EAAQ,KACtBo+E,EAAUp+E,EAAQ,KAClBmC,EAAWnC,EAAQ,KA0BvB+B,EAAOR,QAdP,SAAwBa,EAAOoC,EAAOb,GACpC,IAAKxB,EAASwB,GACZ,OAAO,EAET,IAAIrD,SAAckE,EAClB,SAAY,UAARlE,EACKw9E,EAAYn6E,IAAWy6E,EAAQ55E,EAAOb,EAAOO,QACrC,UAAR5D,GAAoBkE,KAASb,IAE7B45E,EAAG55E,EAAOa,GAAQpC,K,gBCxB7B,IAAI47E,EAAWh+E,EAAQ,KA+BvB+B,EAAOR,QAnBP,SAAsB+C,EAAOC,EAAU85E,GAIrC,IAHA,IAAI75E,GAAS,EACTN,EAASI,EAAMJ,SAEVM,EAAQN,GAAQ,CACvB,IAAI9B,EAAQkC,EAAME,GACd85E,EAAU/5E,EAASnC,GAEvB,GAAe,MAAXk8E,SAAiC78E,IAAb88E,EACfD,IAAYA,IAAYN,EAASM,GAClCD,EAAWC,EAASC,IAE1B,IAAIA,EAAWD,EACX75E,EAASrC,EAGjB,OAAOqC,I,gBC5BT,IAAI+5E,EAAWx+E,EAAQ,KACnBy+E,EAAiBz+E,EAAQ,KACzB0+E,EAAc1+E,EAAQ,KACtB2+E,EAAK97E,OAAOgB,eAEhBtC,EAAQi2B,EAAIx3B,EAAQ,KAAoB6C,OAAOgB,eAAiB,SAAwB+6E,EAAG19E,EAAG29E,GAI5F,GAHAL,EAASI,GACT19E,EAAIw9E,EAAYx9E,GAAG,GACnBs9E,EAASK,GACLJ,EAAgB,IAClB,OAAOE,EAAGC,EAAG19E,EAAG29E,GAChB,MAAO17E,IACT,GAAI,QAAS07E,GAAc,QAASA,EAAY,MAAM32E,UAAU,4BAEhE,MADI,UAAW22E,IAAYD,EAAE19E,GAAK29E,EAAWz8E,OACtCw8E,I,gBCbT,IAAIz8E,EAAWnC,EAAQ,KAGvB+B,EAAOR,QAAU,SAAUqC,EAAItC,GAC7B,IAAKa,EAASyB,GAAK,OAAOA,EAC1B,IAAI8e,EAAI0E,EACR,GAAI9lB,GAAkC,mBAArBohB,EAAK9e,EAAGmE,YAA4B5F,EAASilB,EAAM1E,EAAG/gB,KAAKiC,IAAM,OAAOwjB,EACzF,GAAgC,mBAApB1E,EAAK9e,EAAGulC,WAA2BhnC,EAASilB,EAAM1E,EAAG/gB,KAAKiC,IAAM,OAAOwjB,EACnF,IAAK9lB,GAAkC,mBAArBohB,EAAK9e,EAAGmE,YAA4B5F,EAASilB,EAAM1E,EAAG/gB,KAAKiC,IAAM,OAAOwjB,EAC1F,MAAMlf,UAAU,6C,cCTlBnG,EAAOR,QAAUyB,KAAK+nC,MAAQ,SAAct9B,GAE1C,OAAmB,IAAXA,GAAKA,IAAWA,GAAKA,EAAIA,EAAIA,EAAI,GAAK,EAAI,I,cCFpD,IAAIqxE,EAAS97E,KAAKisC,MAClBltC,EAAOR,SAAYu9E,GAEdA,EAAO,IAAM,oBAAsBA,EAAO,IAAM,qBAE7B,OAAnBA,GAAQ,OACT,SAAerxE,GACjB,OAAmB,IAAXA,GAAKA,GAAUA,EAAIA,GAAK,MAAQA,EAAI,KAAOA,EAAIA,EAAIA,EAAI,EAAIzK,KAAKpC,IAAI6M,GAAK,GAC/EqxE,G,cCTJ,IAAI/2E,EAAW,GAAGA,SAElBhG,EAAOR,QAAU,SAAUqC,GACzB,OAAOmE,EAASpG,KAAKiC,GAAIwC,MAAM,GAAI,K,gBCFrC,IAAI24E,EAAU/+E,EAAQ,KAClBstD,EAAUttD,EAAQ,KACtB+B,EAAOR,QAAU,SAAUqC,GACzB,OAAOm7E,EAAQzxB,EAAQ1pD,M,cCHzB7B,EAAOR,QAAU,SAAUqC,GACzB,QAAUnC,GAANmC,EAAiB,MAAMsE,UAAU,yBAA2BtE,GAChE,OAAOA,I,cCFT7B,EAAOR,QACL,gGACAwjB,MAAM,M,gBCHR,IAAI1kB,EAAUL,EAAQ,KAClBstD,EAAUttD,EAAQ,KAClBg/E,EAAQh/E,EAAQ,KAChBi/E,EAASj/E,EAAQ,KACjBk/E,EAAQ,IAAMD,EAAS,IAEvBE,EAAQ5jD,OAAO,IAAM2jD,EAAQA,EAAQ,KACrCE,EAAQ7jD,OAAO2jD,EAAQA,EAAQ,MAE/BG,EAAW,SAAUC,EAAKp8E,EAAMq8E,GAClC,IAAI3+E,EAAM,GACN4+E,EAAQR,GAAM,WAChB,QAASC,EAAOK,MAPV,2BAOwBA,QAE5B58D,EAAK9hB,EAAI0+E,GAAOE,EAAQt8E,EAAKsiC,GAAQy5C,EAAOK,GAC5CC,IAAO3+E,EAAI2+E,GAAS78D,GACxBriB,EAAQA,EAAQa,EAAIb,EAAQS,EAAI0+E,EAAO,SAAU5+E,IAM/C4kC,EAAO65C,EAAS75C,KAAO,SAAU38B,EAAQ42E,GAI3C,OAHA52E,EAAS2jC,OAAO8gB,EAAQzkD,IACb,EAAP42E,IAAU52E,EAASA,EAAOma,QAAQm8D,EAAO,KAClC,EAAPM,IAAU52E,EAASA,EAAOma,QAAQo8D,EAAO,KACtCv2E,GAGT9G,EAAOR,QAAU89E,G,cC7BjBt9E,EAAOR,QAAU,qI,cCoCjBQ,EAAOR,QAJP,SAAYa,EAAOuC,GACjB,OAAOvC,IAAUuC,GAAUvC,IAAUA,GAASuC,IAAUA,I,gBCjC1D,IAIIu0B,EAJYl5B,EAAQ,IAIdy9E,CAHCz9E,EAAQ,KAGO,OAE1B+B,EAAOR,QAAU23B,G,gBCNjB,IAAIwmD,EAAgB1/E,EAAQ,KACxB2/E,EAAiB3/E,EAAQ,KACzB4/E,EAAc5/E,EAAQ,KACtB6/E,EAAc7/E,EAAQ,KACtB8/E,EAAc9/E,EAAQ,KAS1B,SAAS+/E,EAASvmD,GAChB,IAAIh1B,GAAS,EACTN,EAAoB,MAAXs1B,EAAkB,EAAIA,EAAQt1B,OAG3C,IADAuP,KAAK8lB,UACI/0B,EAAQN,GAAQ,CACvB,IAAI+C,EAAQuyB,EAAQh1B,GACpBiP,KAAK2lB,IAAInyB,EAAM,GAAIA,EAAM,KAK7B84E,EAASj4E,UAAUyxB,MAAQmmD,EAC3BK,EAASj4E,UAAT,OAA+B63E,EAC/BI,EAASj4E,UAAUhE,IAAM87E,EACzBG,EAASj4E,UAAUuxB,IAAMwmD,EACzBE,EAASj4E,UAAUsxB,IAAM0mD,EAEzB/9E,EAAOR,QAAUw+E,G,gBC/BjB,IAAIC,EAAkBhgF,EAAQ,KAC1BmE,EAAenE,EAAQ,KA0B3B+B,EAAOR,QAVP,SAASmD,EAAYtC,EAAOuC,EAAOs7E,EAASC,EAAYx7B,GACtD,OAAItiD,IAAUuC,IAGD,MAATvC,GAA0B,MAATuC,IAAmBR,EAAa/B,KAAW+B,EAAaQ,GACpEvC,IAAUA,GAASuC,IAAUA,EAE/Bq7E,EAAgB59E,EAAOuC,EAAOs7E,EAASC,EAAYx7E,EAAaggD,M,gBCxBzE,IAAIq7B,EAAW//E,EAAQ,KACnBmgF,EAAcngF,EAAQ,KACtBogF,EAAcpgF,EAAQ,KAU1B,SAASqgF,EAASzpD,GAChB,IAAIpyB,GAAS,EACTN,EAAmB,MAAV0yB,EAAiB,EAAIA,EAAO1yB,OAGzC,IADAuP,KAAKkqE,SAAW,IAAIoC,IACXv7E,EAAQN,GACfuP,KAAKggB,IAAImD,EAAOpyB,IAKpB67E,EAASv4E,UAAU2rB,IAAM4sD,EAASv4E,UAAU0I,KAAO2vE,EACnDE,EAASv4E,UAAUuxB,IAAM+mD,EAEzBr+E,EAAOR,QAAU8+E,G,cCdjBt+E,EAAOR,QAJP,SAAkBgyE,EAAO9yE,GACvB,OAAO8yE,EAAMl6C,IAAI54B,K,cCQnBsB,EAAOR,QAVP,SAAoB63B,GAClB,IAAI50B,GAAS,EACTC,EAASxC,MAAMm3B,EAAIjkB,MAKvB,OAHAikB,EAAI/oB,SAAQ,SAASjO,GACnBqC,IAASD,GAASpC,KAEbqC,I,gBCdT,IAAI67E,EAAkBtgF,EAAQ,KAC1BmE,EAAenE,EAAQ,KAGvBugF,EAAc19E,OAAOiF,UAGrBT,EAAiBk5E,EAAYl5E,eAG7BqB,EAAuB63E,EAAY73E,qBAoBnC83E,EAAcF,EAAgB,WAAa,OAAOr6E,UAApB,IAAsCq6E,EAAkB,SAASl+E,GACjG,OAAO+B,EAAa/B,IAAUiF,EAAe1F,KAAKS,EAAO,YACtDsG,EAAqB/G,KAAKS,EAAO,WAGtCL,EAAOR,QAAUi/E,G,cClCjB,IAGIC,EAAW,mBAoBf1+E,EAAOR,QAVP,SAAiBa,EAAO8B,GACtB,IAAI5D,SAAc8B,EAGlB,SAFA8B,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAAR5D,GACU,UAARA,GAAoBmgF,EAAShvD,KAAKrvB,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQ8B,I,cCajDnC,EAAOR,QALP,SAAkBa,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,mB,cCYvBL,EAAOR,QANP,SAAmBwM,GACjB,OAAO,SAAS3L,GACd,OAAO2L,EAAK3L,M,gBCThB,IAAIs+E,EAAW1gF,EAAQ,KACnB2gF,EAAQ3gF,EAAQ,KAsBpB+B,EAAOR,QAZP,SAAiBoC,EAAQsT,GAMvB,IAHA,IAAIzS,EAAQ,EACRN,GAHJ+S,EAAOypE,EAASzpE,EAAMtT,IAGJO,OAED,MAAVP,GAAkBa,EAAQN,GAC/BP,EAASA,EAAOg9E,EAAM1pE,EAAKzS,OAE7B,OAAQA,GAASA,GAASN,EAAUP,OAASlC,I,gBCpB/C,IAAIO,EAAUhC,EAAQ,KAClBg+E,EAAWh+E,EAAQ,KAGnB4gF,EAAe,mDACfC,EAAgB,QAuBpB9+E,EAAOR,QAbP,SAAea,EAAOuB,GACpB,GAAI3B,EAAQI,GACV,OAAO,EAET,IAAI9B,SAAc8B,EAClB,QAAY,UAAR9B,GAA4B,UAARA,GAA4B,WAARA,GAC/B,MAAT8B,IAAiB47E,EAAS57E,MAGvBy+E,EAAcpvD,KAAKrvB,KAAWw+E,EAAanvD,KAAKrvB,IAC1C,MAAVuB,GAAkBvB,KAASS,OAAOc,M,gBCzBvC,IAAIzB,EAAalC,EAAQ,KACrBgC,EAAUhC,EAAQ,KAClBmE,EAAenE,EAAQ,KA2B3B+B,EAAOR,QALP,SAAkBa,GAChB,MAAuB,iBAATA,IACVJ,EAAQI,IAAU+B,EAAa/B,IArBrB,mBAqB+BF,EAAWE,K,gBC1B1D,IAAIF,EAAalC,EAAQ,KACrBmE,EAAenE,EAAQ,KAoC3B+B,EAAOR,QALP,SAAkBa,GAChB,MAAuB,iBAATA,GACX+B,EAAa/B,IA9BF,mBA8BYF,EAAWE,K,gBClCvC,IAAI0+E,EAAc9gF,EAAQ,KACtB+gF,EAAc/gF,EAAQ,KACtBghF,EAAWhhF,EAAQ,KACnBihF,EAAiBjhF,EAAQ,KA+BzBkhF,EAASF,GAAS,SAASG,EAAYC,GACzC,GAAkB,MAAdD,EACF,MAAO,GAET,IAAIj9E,EAASk9E,EAAUl9E,OAMvB,OALIA,EAAS,GAAK+8E,EAAeE,EAAYC,EAAU,GAAIA,EAAU,IACnEA,EAAY,GACHl9E,EAAS,GAAK+8E,EAAeG,EAAU,GAAIA,EAAU,GAAIA,EAAU,MAC5EA,EAAY,CAACA,EAAU,KAElBL,EAAYI,EAAYL,EAAYM,EAAW,GAAI,OAG5Dr/E,EAAOR,QAAU2/E,G,qBC/CjB,IAAIvC,EAAK3+E,EAAQ,KACbqhF,EAAarhF,EAAQ,KACzB+B,EAAOR,QAAUvB,EAAQ,KAAoB,SAAU2D,EAAQlD,EAAK2B,GAClE,OAAOu8E,EAAGnnD,EAAE7zB,EAAQlD,EAAK4gF,EAAW,EAAGj/E,KACrC,SAAUuB,EAAQlD,EAAK2B,GAEzB,OADAuB,EAAOlD,GAAO2B,EACPuB,I,gBCNT5B,EAAOR,SAAWvB,EAAQ,OAAsBA,EAAQ,IAARA,EAAoB,WAClE,OAA4G,GAArG6C,OAAOgB,eAAe7D,EAAQ,IAARA,CAAyB,OAAQ,IAAK,CAAE8D,IAAK,WAAc,OAAO,KAAQC,M,gBCDzG,IAAI5B,EAAWnC,EAAQ,KACnB2R,EAAW3R,EAAQ,KAAa2R,SAEhC2vE,EAAKn/E,EAASwP,IAAaxP,EAASwP,EAASC,eACjD7P,EAAOR,QAAU,SAAUqC,GACzB,OAAO09E,EAAK3vE,EAASC,cAAchO,GAAM,K,cCL3C7B,EAAOR,QAAU,SAAUggF,EAAQn/E,GACjC,MAAO,CACL8W,aAAuB,EAATqoE,GACdnoE,eAAyB,EAATmoE,GAChBloE,WAAqB,EAATkoE,GACZn/E,MAAOA,K,gBCLX,IAAIrC,EAASC,EAAQ,KACjBE,EAAOF,EAAQ,KACfq5B,EAAMr5B,EAAQ,KACdwhF,EAAMxhF,EAAQ,IAARA,CAAkB,OACxByhF,EAAYzhF,EAAQ,KACpB0hF,EAAY,WACZC,GAAO,GAAKF,GAAW18D,MAAM28D,GAEjC1hF,EAAQ,KAAW4hF,cAAgB,SAAUh+E,GAC3C,OAAO69E,EAAU9/E,KAAKiC,KAGvB7B,EAAOR,QAAU,SAAUq9E,EAAGn+E,EAAK2mB,EAAKy6D,GACvC,IAAI79E,EAA2B,mBAAPojB,EACpBpjB,IAAYq1B,EAAIjS,EAAK,SAAWlnB,EAAKknB,EAAK,OAAQ3mB,IAClDm+E,EAAEn+E,KAAS2mB,IACXpjB,IAAYq1B,EAAIjS,EAAKo6D,IAAQthF,EAAKknB,EAAKo6D,EAAK5C,EAAEn+E,GAAO,GAAKm+E,EAAEn+E,GAAOkhF,EAAIl+D,KAAK+oB,OAAO/rC,MACnFm+E,IAAM7+E,EACR6+E,EAAEn+E,GAAO2mB,EACCy6D,EAGDjD,EAAEn+E,GACXm+E,EAAEn+E,GAAO2mB,EAETlnB,EAAK0+E,EAAGn+E,EAAK2mB,WALNw3D,EAAEn+E,GACTP,EAAK0+E,EAAGn+E,EAAK2mB,OAOd1lB,SAASoG,UAAW45E,GAAW,WAChC,MAAsB,mBAARjuE,MAAsBA,KAAK+tE,IAAQC,EAAU9/E,KAAK8R,U,cC7BlE,IAAI9N,EAAK,EACLsnD,EAAKjqD,KAAK8+E,SACd//E,EAAOR,QAAU,SAAUd,GACzB,MAAO,UAAUmF,YAAenE,IAARhB,EAAoB,GAAKA,EAAK,QAASkF,EAAKsnD,GAAIllD,SAAS,O,gBCHnF,IAAI9H,EAAOD,EAAQ,KACfD,EAASC,EAAQ,KACjB+hF,EAAS,qBACTC,EAAQjiF,EAAOgiF,KAAYhiF,EAAOgiF,GAAU,KAE/ChgF,EAAOR,QAAU,SAAUd,EAAK2B,GAC/B,OAAO4/E,EAAMvhF,KAASuhF,EAAMvhF,QAAiBgB,IAAVW,EAAsBA,EAAQ,MAChE,WAAY,IAAIoO,KAAK,CACtBpM,QAASnE,EAAKmE,QACd69E,KAAMjiF,EAAQ,KAAgB,OAAS,SACvCkiF,UAAW,6C,gBCTb,IAAIC,EAAYniF,EAAQ,KACxB+B,EAAOR,QAAU,SAAUmhB,EAAIuoC,EAAM/mD,GAEnC,GADAi+E,EAAUz/D,QACGjhB,IAATwpD,EAAoB,OAAOvoC,EAC/B,OAAQxe,GACN,KAAK,EAAG,OAAO,SAAUH,GACvB,OAAO2e,EAAG/gB,KAAKspD,EAAMlnD,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAGqD,GAC1B,OAAOsb,EAAG/gB,KAAKspD,EAAMlnD,EAAGqD,IAE1B,KAAK,EAAG,OAAO,SAAUrD,EAAGqD,EAAG2O,GAC7B,OAAO2M,EAAG/gB,KAAKspD,EAAMlnD,EAAGqD,EAAG2O,IAG/B,OAAO,WACL,OAAO2M,EAAGlP,MAAMy3C,EAAMhlD,c,cChB1BlE,EAAOR,QAAUyB,KAAK+rC,OAAS,SAAethC,GAC5C,OAAQA,GAAKA,IAAM,MAAQA,EAAI,KAAOA,EAAIA,EAAIA,EAAI,EAAIzK,KAAK4wB,IAAI,EAAInmB,K,gBCFrE,IAAI20E,EAAMpiF,EAAQ,KACdqhF,EAAarhF,EAAQ,KACrBqiF,EAAYriF,EAAQ,KACpB0+E,EAAc1+E,EAAQ,KACtBq5B,EAAMr5B,EAAQ,KACdy+E,EAAiBz+E,EAAQ,KACzBsiF,EAAOz/E,OAAOoW,yBAElB1X,EAAQi2B,EAAIx3B,EAAQ,KAAoBsiF,EAAO,SAAkC1D,EAAG19E,GAGlF,GAFA09E,EAAIyD,EAAUzD,GACd19E,EAAIw9E,EAAYx9E,GAAG,GACfu9E,EAAgB,IAClB,OAAO6D,EAAK1D,EAAG19E,GACf,MAAOiC,IACT,GAAIk2B,EAAIulD,EAAG19E,GAAI,OAAOmgF,GAAYe,EAAI5qD,EAAE71B,KAAKi9E,EAAG19E,GAAI09E,EAAE19E,M,gBCdxD,IAAIm4B,EAAMr5B,EAAQ,KACdqiF,EAAYriF,EAAQ,KACpBuiF,EAAeviF,EAAQ,IAARA,EAA6B,GAC5CwiF,EAAWxiF,EAAQ,IAARA,CAAyB,YAExC+B,EAAOR,QAAU,SAAUoC,EAAQ6wC,GACjC,IAGI/zC,EAHAm+E,EAAIyD,EAAU1+E,GACd8D,EAAI,EACJhD,EAAS,GAEb,IAAKhE,KAAOm+E,EAAOn+E,GAAO+hF,GAAUnpD,EAAIulD,EAAGn+E,IAAQgE,EAAO+L,KAAK/P,GAE/D,KAAO+zC,EAAMtwC,OAASuD,GAAO4xB,EAAIulD,EAAGn+E,EAAM+zC,EAAM/sC,SAC7C86E,EAAa99E,EAAQhE,IAAQgE,EAAO+L,KAAK/P,IAE5C,OAAOgE,I,gBCfT,IAAIg+E,EAASziF,EAAQ,IAARA,CAAqB,QAC9B0iF,EAAM1iF,EAAQ,KAClB+B,EAAOR,QAAU,SAAUd,GACzB,OAAOgiF,EAAOhiF,KAASgiF,EAAOhiF,GAAOiiF,EAAIjiF,M,gBCH3C,IAAIkiF,EAAM3iF,EAAQ,KAClB+B,EAAOR,QAAU,SAAUqC,EAAIg/E,GAC7B,GAAiB,iBAANh/E,GAA6B,UAAX++E,EAAI/+E,GAAiB,MAAMsE,UAAU06E,GAClE,OAAQh/E,I,gBCFV,IAAIzB,EAAWnC,EAAQ,KACnB2zB,EAAQ3wB,KAAK2wB,MACjB5xB,EAAOR,QAAU,SAAmBqC,GAClC,OAAQzB,EAASyB,IAAO+xB,SAAS/xB,IAAO+vB,EAAM/vB,KAAQA,I,iBCJxD,YACA,IAAIlB,EAA8B,iBAAV3C,GAAsBA,GAAUA,EAAO8C,SAAWA,QAAU9C,EAEpFgC,EAAOR,QAAUmB,I,kCCHjB,IAAImgF,EAAe7iF,EAAQ,KACvB8iF,EAAW9iF,EAAQ,KA6BvB+B,EAAOR,QAJP,SAAgB+C,EAAOC,GACrB,OAAQD,GAASA,EAAMJ,OAAU4+E,EAASx+E,EAAOu+E,EAAat+E,EAAU,IAAM,K,gBC3BhF,IAAI+4E,EAAYt9E,EAAQ,KACpB+iF,EAAa/iF,EAAQ,KACrBgjF,EAAchjF,EAAQ,KACtBijF,EAAWjjF,EAAQ,KACnBkjF,EAAWljF,EAAQ,KACnBmjF,EAAWnjF,EAAQ,KASvB,SAASojF,EAAM5pD,GACb,IAAIloB,EAAOmC,KAAKkqE,SAAW,IAAIL,EAAU9jD,GACzC/lB,KAAK0B,KAAO7D,EAAK6D,KAInBiuE,EAAMt7E,UAAUyxB,MAAQwpD,EACxBK,EAAMt7E,UAAN,OAA4Bk7E,EAC5BI,EAAMt7E,UAAUhE,IAAMm/E,EACtBG,EAAMt7E,UAAUuxB,IAAM6pD,EACtBE,EAAMt7E,UAAUsxB,IAAM+pD,EAEtBphF,EAAOR,QAAU6hF,G,cCzBjB,IAGIC,EAHY3hF,SAASoG,UAGIC,SAqB7BhG,EAAOR,QAZP,SAAkBwM,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOs1E,EAAa1hF,KAAKoM,GACzB,MAAO5K,IACT,IACE,OAAQ4K,EAAO,GACf,MAAO5K,KAEX,MAAO,K,gBCtBT,IAAIk9E,EAAWrgF,EAAQ,KACnBsjF,EAAYtjF,EAAQ,KACpBujF,EAAWvjF,EAAQ,KAiFvB+B,EAAOR,QA9DP,SAAqB+C,EAAOK,EAAOs7E,EAASC,EAAYsD,EAAW9+B,GACjE,IAAI++B,EAjBqB,EAiBTxD,EACZyD,EAAYp/E,EAAMJ,OAClBy/E,EAAYh/E,EAAMT,OAEtB,GAAIw/E,GAAaC,KAAeF,GAAaE,EAAYD,GACvD,OAAO,EAGT,IAAIE,EAAal/B,EAAM5gD,IAAIQ,GACvBu/E,EAAan/B,EAAM5gD,IAAIa,GAC3B,GAAIi/E,GAAcC,EAChB,OAAOD,GAAcj/E,GAASk/E,GAAcv/E,EAE9C,IAAIE,GAAS,EACTC,GAAS,EACTq/E,EA/BuB,EA+Bf7D,EAAoC,IAAII,OAAW5+E,EAM/D,IAJAijD,EAAMtrB,IAAI90B,EAAOK,GACjB+/C,EAAMtrB,IAAIz0B,EAAOL,KAGRE,EAAQk/E,GAAW,CAC1B,IAAIK,EAAWz/E,EAAME,GACjBw/E,EAAWr/E,EAAMH,GAErB,GAAI07E,EACF,IAAI+D,EAAWR,EACXvD,EAAW8D,EAAUD,EAAUv/E,EAAOG,EAAOL,EAAOogD,GACpDw7B,EAAW6D,EAAUC,EAAUx/E,EAAOF,EAAOK,EAAO+/C,GAE1D,QAAiBjjD,IAAbwiF,EAAwB,CAC1B,GAAIA,EACF,SAEFx/E,GAAS,EACT,MAGF,GAAIq/E,GACF,IAAKR,EAAU3+E,GAAO,SAASq/E,EAAUE,GACnC,IAAKX,EAASO,EAAMI,KACfH,IAAaC,GAAYR,EAAUO,EAAUC,EAAU/D,EAASC,EAAYx7B,IAC/E,OAAOo/B,EAAKtzE,KAAK0zE,MAEjB,CACNz/E,GAAS,EACT,YAEG,GACDs/E,IAAaC,IACXR,EAAUO,EAAUC,EAAU/D,EAASC,EAAYx7B,GACpD,CACLjgD,GAAS,EACT,OAKJ,OAFAigD,EAAK,OAAWpgD,GAChBogD,EAAK,OAAW//C,GACTF,I,cC1DT1C,EAAOR,QAZP,SAAmB+C,EAAO6/E,GAIxB,IAHA,IAAI3/E,GAAS,EACTN,EAAkB,MAATI,EAAgB,EAAIA,EAAMJ,SAE9BM,EAAQN,GACf,GAAIigF,EAAU7/E,EAAME,GAAQA,EAAOF,GACjC,OAAO,EAGX,OAAO,I,cCATvC,EAAOR,QAXP,SAAmB+C,EAAOsyB,GAKxB,IAJA,IAAIpyB,GAAS,EACTN,EAAS0yB,EAAO1yB,OAChBuqB,EAASnqB,EAAMJ,SAEVM,EAAQN,GACfI,EAAMmqB,EAASjqB,GAASoyB,EAAOpyB,GAEjC,OAAOF,I,cCQTvC,EAAOR,QAfP,SAAqB+C,EAAO6/E,GAM1B,IALA,IAAI3/E,GAAS,EACTN,EAAkB,MAATI,EAAgB,EAAIA,EAAMJ,OACnCkgF,EAAW,EACX3/E,EAAS,KAEJD,EAAQN,GAAQ,CACvB,IAAI9B,EAAQkC,EAAME,GACd2/E,EAAU/hF,EAAOoC,EAAOF,KAC1BG,EAAO2/E,KAAchiF,GAGzB,OAAOqC,I,iBCrBT,gBAAI3B,EAAO9C,EAAQ,KACfqkF,EAAYrkF,EAAQ,KAGpBskF,EAA4C/iF,IAAYA,EAAQgjF,UAAYhjF,EAG5EijF,EAAaF,GAAgC,iBAAVviF,GAAsBA,IAAWA,EAAOwiF,UAAYxiF,EAMvF0iF,EAHgBD,GAAcA,EAAWjjF,UAAY+iF,EAG5BxhF,EAAK2hF,YAAShjF,EAsBvCijF,GAnBiBD,EAASA,EAAOC,cAAWjjF,IAmBf4iF,EAEjCtiF,EAAOR,QAAUmjF,I,oCCrCjB3iF,EAAOR,QAAU,SAASQ,GAoBzB,OAnBKA,EAAO4iF,kBACX5iF,EAAO6iF,UAAY,aACnB7iF,EAAO8iF,MAAQ,GAEV9iF,EAAOgO,WAAUhO,EAAOgO,SAAW,IACxClN,OAAOgB,eAAe9B,EAAQ,SAAU,CACvCmX,YAAY,EACZpV,IAAK,WACJ,OAAO/B,EAAOmW,KAGhBrV,OAAOgB,eAAe9B,EAAQ,KAAM,CACnCmX,YAAY,EACZpV,IAAK,WACJ,OAAO/B,EAAO0F,KAGhB1F,EAAO4iF,gBAAkB,GAEnB5iF,I,gBCpBR,IAAI+iF,EAAmB9kF,EAAQ,KAC3B+kF,EAAY/kF,EAAQ,KACpBglF,EAAWhlF,EAAQ,KAGnBilF,EAAmBD,GAAYA,EAASE,aAmBxCA,EAAeD,EAAmBF,EAAUE,GAAoBH,EAEpE/iF,EAAOR,QAAU2jF,G,cCZjBnjF,EAAOR,QANP,SAAiBwM,EAAMf,GACrB,OAAO,SAASklB,GACd,OAAOnkB,EAAKf,EAAUklB,O,gBCV1B,IAIIwH,EAJY15B,EAAQ,IAIdy9E,CAHCz9E,EAAQ,KAGO,OAE1B+B,EAAOR,QAAUm4B,G,gBCNjB,IAAIv3B,EAAWnC,EAAQ,KAcvB+B,EAAOR,QAJP,SAA4Ba,GAC1B,OAAOA,IAAUA,IAAUD,EAASC,K,cCQtCL,EAAOR,QAVP,SAAiCd,EAAK0kF,GACpC,OAAO,SAASxhF,GACd,OAAc,MAAVA,IAGGA,EAAOlD,KAAS0kF,SACP1jF,IAAb0jF,GAA2B1kF,KAAOoC,OAAOc,Q,gBCfhD,IAAI3B,EAAUhC,EAAQ,KAClBolF,EAAQplF,EAAQ,KAChBqlF,EAAerlF,EAAQ,KACvB+H,EAAW/H,EAAQ,KAiBvB+B,EAAOR,QAPP,SAAkBa,EAAOuB,GACvB,OAAI3B,EAAQI,GACHA,EAEFgjF,EAAMhjF,EAAOuB,GAAU,CAACvB,GAASijF,EAAat9E,EAAS3F,M,gBCjBhE,IAAIkjF,EAActlF,EAAQ,KAgB1B+B,EAAOR,QALP,SAAuB+C,EAAOlC,GAE5B,SADsB,MAATkC,EAAgB,EAAIA,EAAMJ,SACpBohF,EAAYhhF,EAAOlC,EAAO,IAAM,I,cCUrDL,EAAOR,QAZP,SAAuB+C,EAAO6/E,EAAWoB,EAAWC,GAIlD,IAHA,IAAIthF,EAASI,EAAMJ,OACfM,EAAQ+gF,GAAaC,EAAY,GAAK,GAElCA,EAAYhhF,MAAYA,EAAQN,GACtC,GAAIigF,EAAU7/E,EAAME,GAAQA,EAAOF,GACjC,OAAOE,EAGX,OAAQ,I,cCCVzC,EAAOR,QAZP,SAA2B+C,EAAOlC,EAAOi8E,GAIvC,IAHA,IAAI75E,GAAS,EACTN,EAAkB,MAATI,EAAgB,EAAIA,EAAMJ,SAE9BM,EAAQN,GACf,GAAIm6E,EAAWj8E,EAAOkC,EAAME,IAC1B,OAAO,EAGX,OAAO,I,gBClBT,IAAIY,EAAWpF,EAAQ,KAqCvB+B,EAAOR,QAPP,SAAea,GAIb,OAAOgD,EAAShD,IAAUA,IAAUA,I,iBClCtC,YAOA,IAPA,IAAI+e,EAAMnhB,EAAQ,KACd8C,EAAyB,qBAAXC,OAAyBhD,EAASgD,OAChD0iF,EAAU,CAAC,MAAO,UAClB54C,EAAS,iBACTzrB,EAAMte,EAAK,UAAY+pC,GACvBzkB,EAAMtlB,EAAK,SAAW+pC,IAAW/pC,EAAK,gBAAkB+pC,GAEpDplC,EAAI,GAAI2Z,GAAO3Z,EAAIg+E,EAAQvhF,OAAQuD,IACzC2Z,EAAMte,EAAK2iF,EAAQh+E,GAAK,UAAYolC,GACpCzkB,EAAMtlB,EAAK2iF,EAAQh+E,GAAK,SAAWolC,IAC5B/pC,EAAK2iF,EAAQh+E,GAAK,gBAAkBolC,GAI7C,IAAIzrB,IAAQgH,EAAK,CACf,IAAIk7B,EAAO,EACP39C,EAAK,EACL+/E,EAAQ,GAGZtkE,EAAM,SAASL,GACb,GAAoB,IAAjB2kE,EAAMxhF,OAAc,CACrB,IAAIyhF,EAAOxkE,IACP6C,EAAOhhB,KAAK2R,IAAI,EALJ,oBAKwBgxE,EAAOriC,IAC/CA,EAAOt/B,EAAO2hE,EACd9zE,YAAW,WACT,IAAI+zE,EAAKF,EAAMt/E,MAAM,GAIrBs/E,EAAMxhF,OAAS,EACf,IAAI,IAAIuD,EAAI,EAAGA,EAAIm+E,EAAG1hF,OAAQuD,IAC5B,IAAIm+E,EAAGn+E,GAAGo+E,UACR,IACED,EAAGn+E,GAAGsZ,SAASuiC,GACf,MAAMngD,GACN0O,YAAW,WAAa,MAAM1O,IAAK,MAIxCH,KAAKo3B,MAAMpW,IAOhB,OALA0hE,EAAMl1E,KAAK,CACTs1E,SAAUngF,EACVob,SAAUA,EACV8kE,WAAW,IAENlgF,GAGTyiB,EAAM,SAAS09D,GACb,IAAI,IAAIr+E,EAAI,EAAGA,EAAIi+E,EAAMxhF,OAAQuD,IAC5Bi+E,EAAMj+E,GAAGq+E,SAAWA,IACrBJ,EAAMj+E,GAAGo+E,WAAY,IAM7B9jF,EAAOR,QAAU,SAASmhB,GAIxB,OAAOtB,EAAIzf,KAAKmB,EAAM4f,IAExB3gB,EAAOR,QAAQoxE,OAAS,WACtBvqD,EAAI5U,MAAM1Q,EAAMmD,YAElBlE,EAAOR,QAAQwkF,SAAW,SAASpiF,GAC5BA,IACHA,EAASb,GAEXa,EAAOqiF,sBAAwB5kE,EAC/Bzd,EAAOsiF,qBAAuB79D,K,kCCzEhC,IAAI5lB,EAAWxC,EAAQ,KACnBkmF,EAAWlmF,EAAQ,KACnBmmF,EAAcnmF,EAAQ,KAc1B+B,EAAOR,QAJP,SAAkBwM,EAAMmU,GACtB,OAAOikE,EAAYD,EAASn4E,EAAMmU,EAAO1f,GAAWuL,EAAO,M,gBCb7D,IAAI0vE,EAAYz9E,EAAQ,KAEpB6D,EAAkB,WACpB,IACE,IAAIkK,EAAO0vE,EAAU56E,OAAQ,kBAE7B,OADAkL,EAAK,GAAI,GAAI,IACNA,EACP,MAAO5K,KALW,GAQtBpB,EAAOR,QAAUsC,G,gBCVjB,IAAIuiF,EAAUpmF,EAAQ,KAClBuG,EAAOvG,EAAQ,KAcnB+B,EAAOR,QAJP,SAAoBoC,EAAQY,GAC1B,OAAOZ,GAAUyiF,EAAQziF,EAAQY,EAAUgC,K,6BCV7C,IAAI8/E,EAAiBC,EAAuBtmF,EAAQ,MAEhDumF,EAAqBD,EAAuBtmF,EAAQ,MAEpDwmF,EAAmBF,EAAuBtmF,EAAQ,MAElDymF,EAAcH,EAAuBtmF,EAAQ,MAEjD,SAASsmF,EAAuBhgF,GAAO,OAAOA,GAAOA,EAAIogF,WAAapgF,EAAM,CAAEqgF,QAASrgF,GAEvFvE,EAAOR,QAAU,CACfyqB,WAAYy6D,EAAYE,QACxBj6D,gBAAiB85D,EAAiBG,QAClCC,kBAAmBL,EAAmBI,QACtCE,cAAeR,EAAeM,U,6BCdhCplF,EAAQmlF,YAAa,EACrBnlF,EAAQolF,QAAUplF,EAAQulF,QAAUvlF,EAAQwlF,QAAUxlF,EAAQylF,SAAWzlF,EAAQ0lF,OAAS1lF,EAAQ2lF,eAAY,EAE9G,IAAIt+E,EAYJ,SAAiCtC,GAAO,GAAIA,GAAOA,EAAIogF,WAAc,OAAOpgF,EAAc,IAAI6gF,EAAS,GAAI,GAAW,MAAP7gF,EAAe,IAAK,IAAI7F,KAAO6F,EAAO,GAAIzD,OAAOiF,UAAUT,eAAe1F,KAAK2E,EAAK7F,GAAM,CAAE,IAAI2mF,EAAOvkF,OAAOgB,gBAAkBhB,OAAOoW,yBAA2BpW,OAAOoW,yBAAyB3S,EAAK7F,GAAO,GAAQ2mF,EAAKtjF,KAAOsjF,EAAKhuD,IAAOv2B,OAAOgB,eAAesjF,EAAQ1mF,EAAK2mF,GAAgBD,EAAO1mF,GAAO6F,EAAI7F,GAAoC,OAAtB0mF,EAAOR,QAAUrgF,EAAY6gF,EAZ7bE,CAAwBrnF,EAAQ,KAE5CsnF,EAAShB,EAAuBtmF,EAAQ,IAExCunF,EAAYjB,EAAuBtmF,EAAQ,KAE3CwnF,EAAyBxnF,EAAQ,KAEpBA,EAAQ,KAEzB,SAASsmF,EAAuBhgF,GAAO,OAAOA,GAAOA,EAAIogF,WAAapgF,EAAM,CAAEqgF,QAASrgF,GAQvF,IAAI4gF,EAAY,YAChB3lF,EAAQ2lF,UAAYA,EACpB,IAAID,EAAS,SACb1lF,EAAQ0lF,OAASA,EACjB,IAAID,EAAW,WACfzlF,EAAQylF,SAAWA,EACnB,IAAID,EAAU,UACdxlF,EAAQwlF,QAAUA,EAClB,IAAID,EAAU,UA2FdvlF,EAAQulF,QAAUA,EAElB,IAAI96D,EAEJ,SAAUy7D,GAzGV,IAAwBzsE,EAAUC,EA4GhC,SAAS+Q,EAAWnb,EAAOqE,GACzB,IAAIiI,EAEJA,EAAQsqE,EAAiB9lF,KAAK8R,KAAM5C,EAAOqE,IAAYzB,KACvD,IAGIi0E,EAHA3O,EAAc7jE,EAAQyyE,gBAEtBp7D,EAASwsD,IAAgBA,EAAY6O,WAAa/2E,EAAM2b,MAAQ3b,EAAM0b,OAuB1E,OArBApP,EAAM0qE,aAAe,KAEjBh3E,EAAMi3E,GACJv7D,GACFm7D,EAAgBT,EAChB9pE,EAAM0qE,aAAeb,GAErBU,EAAgBX,EAIhBW,EADE72E,EAAMk3E,eAAiBl3E,EAAMm3E,aACfd,EAEAD,EAIpB9pE,EAAM4B,MAAQ,CACZkpE,OAAQP,GAEVvqE,EAAM+qE,aAAe,KACd/qE,EAzIuBlC,EA0GLwsE,GA1GLzsE,EA0GPgR,GA1GwClkB,UAAYjF,OAAOqY,OAAOD,EAAWnT,WAAYkT,EAASlT,UAAUoP,YAAc8D,EAAUA,EAASnW,UAAYoW,EA4IxK,IAAIktE,EAASn8D,EAAWlkB,UAqQxB,OAnQAqgF,EAAOC,gBAAkB,WACvB,MAAO,CACLT,gBAAiB,OAKrB37D,EAAWq8D,yBAA2B,SAAkCl2E,EAAMsgE,GAG5E,OAFatgE,EAAK21E,IAEJrV,EAAUwV,SAAWf,EAC1B,CACLe,OAAQhB,GAIL,MAmBTkB,EAAOG,kBAAoB,WACzB70E,KAAK80E,cAAa,EAAM90E,KAAKo0E,eAG/BM,EAAOK,mBAAqB,SAA4Bh2E,GACtD,IAAIi2E,EAAa,KAEjB,GAAIj2E,IAAciB,KAAK5C,MAAO,CAC5B,IAAIo3E,EAASx0E,KAAKsL,MAAMkpE,OAEpBx0E,KAAK5C,MAAMi3E,GACTG,IAAWjB,GAAYiB,IAAWlB,IACpC0B,EAAazB,GAGXiB,IAAWjB,GAAYiB,IAAWlB,IACpC0B,EAAa3B,GAKnBrzE,KAAK80E,cAAa,EAAOE,IAG3BN,EAAOO,qBAAuB,WAC5Bj1E,KAAKk1E,sBAGPR,EAAOS,YAAc,WACnB,IACIC,EAAMr8D,EAAOD,EADbvL,EAAUvN,KAAK5C,MAAMmQ,QAWzB,OATA6nE,EAAOr8D,EAAQD,EAASvL,EAET,MAAXA,GAAsC,kBAAZA,IAC5B6nE,EAAO7nE,EAAQ6nE,KACfr8D,EAAQxL,EAAQwL,MAEhBD,OAA4B9qB,IAAnBuf,EAAQuL,OAAuBvL,EAAQuL,OAASC,GAGpD,CACLq8D,KAAMA,EACNr8D,MAAOA,EACPD,OAAQA,IAIZ47D,EAAOI,aAAe,SAAsBO,EAAUL,GAKpD,QAJiB,IAAbK,IACFA,GAAW,GAGM,OAAfL,EAAqB,CAEvBh1E,KAAKk1E,qBAEL,IAAI30E,EAAOuzE,EAAUZ,QAAQoC,YAAYt1E,MAErCg1E,IAAezB,EACjBvzE,KAAKu1E,aAAah1E,EAAM80E,GAExBr1E,KAAKw1E,YAAYj1E,QAEVP,KAAK5C,MAAMk3E,eAAiBt0E,KAAKsL,MAAMkpE,SAAWhB,GAC3DxzE,KAAK0M,SAAS,CACZ8nE,OAAQf,KAKdiB,EAAOa,aAAe,SAAsBh1E,EAAM80E,GAChD,IAAI1oE,EAAS3M,KAET+Y,EAAQ/Y,KAAK5C,MAAM2b,MACnB08D,EAAYz1E,KAAKyB,QAAQyyE,gBAAkBl0E,KAAKyB,QAAQyyE,gBAAgBC,WAAakB,EACrFK,EAAW11E,KAAKm1E,cAChBQ,EAAeF,EAAYC,EAAS58D,OAAS48D,EAAS38D,MAGrDs8D,GAAat8D,GASlB/Y,KAAK5C,MAAMob,QAAQjY,EAAMk1E,GACzBz1E,KAAK41E,aAAa,CAChBpB,OAAQjB,IACP,WACD5mE,EAAOvP,MAAMy4E,WAAWt1E,EAAMk1E,GAE9B9oE,EAAOmpE,gBAAgBv1E,EAAMo1E,GAAc,WACzChpE,EAAOipE,aAAa,CAClBpB,OAAQlB,IACP,WACD3mE,EAAOvP,MAAM24E,UAAUx1E,EAAMk1E,aAlBjCz1E,KAAK41E,aAAa,CAChBpB,OAAQlB,IACP,WACD3mE,EAAOvP,MAAM24E,UAAUx1E,OAqB7Bm0E,EAAOc,YAAc,SAAqBj1E,GACxC,IAAI6V,EAASpW,KAETo1E,EAAOp1E,KAAK5C,MAAMg4E,KAClBM,EAAW11E,KAAKm1E,cAEfC,GASLp1E,KAAK5C,MAAMqb,OAAOlY,GAClBP,KAAK41E,aAAa,CAChBpB,OAAQnB,IACP,WACDj9D,EAAOhZ,MAAM44E,UAAUz1E,GAEvB6V,EAAO0/D,gBAAgBv1E,EAAMm1E,EAASN,MAAM,WAC1Ch/D,EAAOw/D,aAAa,CAClBpB,OAAQhB,IACP,WACDp9D,EAAOhZ,MAAM64E,SAAS11E,aAlB1BP,KAAK41E,aAAa,CAChBpB,OAAQhB,IACP,WACDp9D,EAAOhZ,MAAM64E,SAAS11E,OAqB5Bm0E,EAAOQ,mBAAqB,WACA,OAAtBl1E,KAAKy0E,eACPz0E,KAAKy0E,aAAavV,SAClBl/D,KAAKy0E,aAAe,OAIxBC,EAAOkB,aAAe,SAAsBrb,EAAWjtD,GAIrDA,EAAWtN,KAAKk2E,gBAAgB5oE,GAChCtN,KAAK0M,SAAS6tD,EAAWjtD,IAG3BonE,EAAOwB,gBAAkB,SAAyB5oE,GAChD,IAAI21C,EAASjjD,KAET+a,GAAS,EAcb,OAZA/a,KAAKy0E,aAAe,SAAUhkB,GACxB11C,IACFA,GAAS,EACTkoC,EAAOwxB,aAAe,KACtBnnE,EAASmjD,KAIbzwD,KAAKy0E,aAAavV,OAAS,WACzBnkD,GAAS,GAGJ/a,KAAKy0E,cAGdC,EAAOoB,gBAAkB,SAAyBv1E,EAAMgN,EAAS9N,GAC/DO,KAAKk2E,gBAAgBz2E,GACrB,IAAI02E,EAA0C,MAAX5oE,IAAoBvN,KAAK5C,MAAMg5E,eAE7D71E,IAAQ41E,GAKTn2E,KAAK5C,MAAMg5E,gBACbp2E,KAAK5C,MAAMg5E,eAAe71E,EAAMP,KAAKy0E,cAGxB,MAAXlnE,GACFnP,WAAW4B,KAAKy0E,aAAclnE,IAT9BnP,WAAW4B,KAAKy0E,aAAc,IAalCC,EAAO5gE,OAAS,WACd,IAAI0gE,EAASx0E,KAAKsL,MAAMkpE,OAExB,GAAIA,IAAWf,EACb,OAAO,KAGT,IAAI9rE,EAAc3H,KAAK5C,MACnBd,EAAWqL,EAAYrL,SACvB+5E,EAxXR,SAAuCtpF,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAwXrRkH,CAA8B6S,EAAa,CAAC,aAkB7D,UAfO0uE,EAAWhC,UACXgC,EAAW9B,oBACX8B,EAAW/B,qBACX+B,EAAWv9D,cACXu9D,EAAWt9D,aACXs9D,EAAWjB,YACXiB,EAAW9oE,eACX8oE,EAAWD,sBACXC,EAAW79D,eACX69D,EAAWR,kBACXQ,EAAWN,iBACXM,EAAW59D,cACX49D,EAAWL,iBACXK,EAAWJ,SAEM,oBAAb35E,EACT,OAAOA,EAASk4E,EAAQ6B,GAG1B,IAAIx5E,EAAQg3E,EAAOX,QAAQv2E,SAASgb,KAAKrb,GAEzC,OAAOu3E,EAAOX,QAAQhmE,aAAarQ,EAAOw5E,IAGrC99D,EAxST,CAySEs7D,EAAOX,QAAQv6D,WAiKjB,SAASu/B,KA/JT3/B,EAAW+9D,aAAe,CACxBpC,gBAAiB/+E,EAAUjF,QAE7BqoB,EAAWg+D,kBAAoB,CAC7BrC,gBAAiB,cAEnB37D,EAAWtY,UAuJP,GAIJsY,EAAWvP,aAAe,CACxBqrE,IAAI,EACJE,cAAc,EACdD,eAAe,EACfx7D,QAAQ,EACRC,OAAO,EACPq8D,MAAM,EACN58D,QAAS0/B,EACT29B,WAAY39B,EACZ69B,UAAW79B,EACXz/B,OAAQy/B,EACR89B,UAAW99B,EACX+9B,SAAU/9B,GAEZ3/B,EAAWk7D,UAAY,EACvBl7D,EAAWi7D,OAAS,EACpBj7D,EAAWg7D,SAAW,EACtBh7D,EAAW+6D,QAAU,EACrB/6D,EAAW86D,QAAU,EAErB,IAAImD,GAAW,EAAIzC,EAAuBzB,UAAU/5D,GAEpDzqB,EAAQolF,QAAUsD,G,6BC9lBlB1oF,EAAQmlF,YAAa,EACrBnlF,EAAQ2oF,gBAAkB3oF,EAAQ4oF,mBAAgB,EAElD,IAEgC7jF,KAFQtG,EAAQ,MAEKsG,EAAIogF,WAOzDnlF,EAAQ4oF,cADU,KAclB5oF,EAAQ2oF,gBADD,M,6BCxBP3oF,EAAQmlF,YAAa,EACrBnlF,EAAQolF,aAAU,EAElB,IAAIyD,EAAa9D,EAAuBtmF,EAAQ,KAE5CsnF,EAAShB,EAAuBtmF,EAAQ,IAExCwnF,EAAyBxnF,EAAQ,KAEjCqqF,EAAgBrqF,EAAQ,KAE5B,SAASsmF,EAAuBhgF,GAAO,OAAOA,GAAOA,EAAIogF,WAAapgF,EAAM,CAAEqgF,QAASrgF,GAIvF,SAASgN,IAA2Q,OAA9PA,EAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAIhT,SAAS6T,EAAuBlX,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIiX,eAAe,6DAAgE,OAAOjX,EAE/J,IAAIg0B,EAAS/zB,OAAO+zB,QAAU,SAAUtwB,GACtC,OAAOzD,OAAO0D,KAAKD,GAAK4J,KAAI,SAAUgG,GACpC,OAAO5P,EAAI4P,OA0BXwW,EAEJ,SAAU+6D,GAlCV,IAAwBzsE,EAAUC,EAqChC,SAASyR,EAAgB7b,EAAOqE,GAC9B,IAAIiI,EAIAmtE,GAFJntE,EAAQsqE,EAAiB9lF,KAAK8R,KAAM5C,EAAOqE,IAAYzB,MAE9B62E,aAAatoE,KAAKlI,EAAuBA,EAAuBqD,KAOzF,OAJAA,EAAM4B,MAAQ,CACZurE,aAAcA,EACdC,aAAa,GAERptE,EAjDuBlC,EAmCAwsE,GAnCVzsE,EAmCP0R,GAnCwC5kB,UAAYjF,OAAOqY,OAAOD,EAAWnT,WAAYkT,EAASlT,UAAUoP,YAAc8D,EAAUA,EAASnW,UAAYoW,EAoDxK,IAAIktE,EAASz7D,EAAgB5kB,UAmE7B,OAjEAqgF,EAAOC,gBAAkB,WACvB,MAAO,CACLT,gBAAiB,CACfC,YAAan0E,KAAK+2E,YAKxBrC,EAAOG,kBAAoB,WACzB70E,KAAK+2E,UAAW,EAChB/2E,KAAKkV,SAAU,GAGjBw/D,EAAOO,qBAAuB,WAC5Bj1E,KAAKkV,SAAU,GAGjB+D,EAAgB27D,yBAA2B,SAAkCh2E,EAAWF,GACtF,IAAIs4E,EAAmBt4E,EAAKpC,SACxBu6E,EAAen4E,EAAKm4E,aAExB,MAAO,CACLv6E,SAFgBoC,EAAKo4E,aAEG,EAAIF,EAAcK,wBAAwBr4E,EAAWi4E,IAAgB,EAAID,EAAcM,qBAAqBt4E,EAAWo4E,EAAkBH,GACjKC,aAAa,IAIjBpC,EAAOmC,aAAe,SAAsBh6E,EAAO0D,GACjD,IAAI42E,GAAsB,EAAIP,EAAcQ,iBAAiBp3E,KAAK5C,MAAMd,UACpEO,EAAM7P,OAAOmqF,IAEbt6E,EAAMO,MAAM64E,UACdp5E,EAAMO,MAAM64E,SAAS11E,GAGnBP,KAAKkV,SACPlV,KAAK0M,UAAS,SAAUpB,GACtB,IAAIhP,EAAWuD,EAAS,GAAIyL,EAAMhP,UAGlC,cADOA,EAASO,EAAM7P,KACf,CACLsP,SAAUA,QAMlBo4E,EAAO5gE,OAAS,WACd,IAAInM,EAAc3H,KAAK5C,MACnBub,EAAYhR,EAAYkR,UACxBw+D,EAAe1vE,EAAY0vE,aAC3Bj6E,EA7GR,SAAuCrQ,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EA6G1RkH,CAA8B6S,EAAa,CAAC,YAAa,iBAEjErL,EAAW6mB,EAAOnjB,KAAKsL,MAAMhP,UAAUG,IAAI46E,GAK/C,cAJOj6E,EAAM0b,cACN1b,EAAM2b,aACN3b,EAAMg4E,KAEK,OAAdz8D,EACKrc,EAGFu3E,EAAOX,QAAQ/0E,cAAcwa,EAAWvb,EAAOd,IAGjD2c,EArFT,CAsFE46D,EAAOX,QAAQv6D,WAEjBM,EAAgBs9D,kBAAoB,CAClCrC,gBAAiByC,EAAWzD,QAAQhjF,OAAOgQ,YAE7C+Y,EAAgBhZ,UAyDZ,GACJgZ,EAAgBjQ,aA7KG,CACjB6P,UAAW,MACXw+D,aAAc,SAAsBx6E,GAClC,OAAOA,IA4KX,IAAI25E,GAAW,EAAIzC,EAAuBzB,UAAUr5D,GAEpDnrB,EAAQolF,QAAUsD,EAClBloF,EAAOR,QAAUA,EAAO,S,gBC/MxB,IAAIwpF,EAAY/qF,EAAQ,KACpBgrF,EAAgBhrF,EAAQ,KAoC5B+B,EAAOR,QAvBP,SAASu/E,EAAYx8E,EAAO2mF,EAAO9G,EAAW+G,EAAUzmF,GACtD,IAAID,GAAS,EACTN,EAASI,EAAMJ,OAKnB,IAHAigF,IAAcA,EAAY6G,GAC1BvmF,IAAWA,EAAS,MAEXD,EAAQN,GAAQ,CACvB,IAAI9B,EAAQkC,EAAME,GACdymF,EAAQ,GAAK9G,EAAU/hF,GACrB6oF,EAAQ,EAEVnK,EAAY1+E,EAAO6oF,EAAQ,EAAG9G,EAAW+G,EAAUzmF,GAEnDsmF,EAAUtmF,EAAQrC,GAEV8oF,IACVzmF,EAAOA,EAAOP,QAAU9B,GAG5B,OAAOqC,I,gBClCT,IAAIy5E,EAAWl+E,EAAQ,KACnB89E,EAAc99E,EAAQ,KAoB1B+B,EAAOR,QAVP,SAAiB4/E,EAAY58E,GAC3B,IAAIC,GAAS,EACTC,EAASq5E,EAAYqD,GAAcl/E,MAAMk/E,EAAWj9E,QAAU,GAKlE,OAHAg6E,EAASiD,GAAY,SAAS/+E,EAAO3B,EAAK0gF,GACxC18E,IAASD,GAASD,EAASnC,EAAO3B,EAAK0gF,MAElC18E,I,gBClBT,IAAItC,EAAWnC,EAAQ,KACnBmhB,EAAMnhB,EAAQ,KACdwzB,EAAWxzB,EAAQ,KAMnBmrF,EAAYnoF,KAAK2R,IACjBy2E,EAAYpoF,KAAK4R,IAqLrB7S,EAAOR,QA7HP,SAAkBwM,EAAMs9E,EAAM//D,GAC5B,IAAI0H,EACAs4D,EACAC,EACA9mF,EACA+mF,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAAR99E,EACT,MAAM,IAAI7F,UAzEQ,uBAmFpB,SAAS4jF,EAAWpyC,GAClB,IAAI56B,EAAOkU,EACP+4D,EAAUT,EAKd,OAHAt4D,EAAWs4D,OAAW7pF,EACtBiqF,EAAiBhyC,EACjBj1C,EAASsJ,EAAKyF,MAAMu4E,EAASjtE,GAI/B,SAASktE,EAAYtyC,GAMnB,OAJAgyC,EAAiBhyC,EAEjB8xC,EAAU35E,WAAWo6E,EAAcZ,GAE5BM,EAAUG,EAAWpyC,GAAQj1C,EAatC,SAASynF,EAAaxyC,GACpB,IAAIyyC,EAAoBzyC,EAAO+xC,EAM/B,YAAyBhqF,IAAjBgqF,GAA+BU,GAAqBd,GACzDc,EAAoB,GAAOP,GANJlyC,EAAOgyC,GAM8BH,EAGjE,SAASU,IACP,IAAIvyC,EAAOv4B,IACX,GAAI+qE,EAAaxyC,GACf,OAAO0yC,EAAa1yC,GAGtB8xC,EAAU35E,WAAWo6E,EA3BvB,SAAuBvyC,GACrB,IAEI2yC,EAAchB,GAFM3xC,EAAO+xC,GAI/B,OAAOG,EACHR,EAAUiB,EAAad,GAJD7xC,EAAOgyC,IAK7BW,EAoB+BC,CAAc5yC,IAGnD,SAAS0yC,EAAa1yC,GAKpB,OAJA8xC,OAAU/pF,EAINoqF,GAAY74D,EACP84D,EAAWpyC,IAEpB1mB,EAAWs4D,OAAW7pF,EACfgD,GAeT,SAAS8nF,IACP,IAAI7yC,EAAOv4B,IACPqrE,EAAaN,EAAaxyC,GAM9B,GAJA1mB,EAAW/sB,UACXqlF,EAAW73E,KACXg4E,EAAe/xC,EAEX8yC,EAAY,CACd,QAAgB/qF,IAAZ+pF,EACF,OAAOQ,EAAYP,GAErB,GAAIG,EAIF,OAFAxoB,aAAaooB,GACbA,EAAU35E,WAAWo6E,EAAcZ,GAC5BS,EAAWL,GAMtB,YAHgBhqF,IAAZ+pF,IACFA,EAAU35E,WAAWo6E,EAAcZ,IAE9B5mF,EAIT,OA3GA4mF,EAAO73D,EAAS63D,IAAS,EACrBlpF,EAASmpB,KACXqgE,IAAYrgE,EAAQqgE,QAEpBJ,GADAK,EAAS,YAAatgE,GACH6/D,EAAU33D,EAASlI,EAAQigE,UAAY,EAAGF,GAAQE,EACrEM,EAAW,aAAcvgE,IAAYA,EAAQugE,SAAWA,GAoG1DU,EAAU5Z,OApCV,gBACkBlxE,IAAZ+pF,GACFpoB,aAAaooB,GAEfE,EAAiB,EACjB14D,EAAWy4D,EAAeH,EAAWE,OAAU/pF,GAgCjD8qF,EAAUE,MA7BV,WACE,YAAmBhrF,IAAZ+pF,EAAwB/mF,EAAS2nF,EAAajrE,MA6BhDorE,I,gBC3LT,IAAIG,EAAW1sF,EAAQ,KACnBmC,EAAWnC,EAAQ,KACnBg+E,EAAWh+E,EAAQ,KAMnB2sF,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAernD,SA8CnB1jC,EAAOR,QArBP,SAAkBa,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAI47E,EAAS57E,GACX,OA1CM,IA4CR,GAAID,EAASC,GAAQ,CACnB,IAAIuC,EAAgC,mBAAjBvC,EAAM+mC,QAAwB/mC,EAAM+mC,UAAY/mC,EACnEA,EAAQD,EAASwC,GAAUA,EAAQ,GAAMA,EAE3C,GAAoB,iBAATvC,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQsqF,EAAStqF,GACjB,IAAI2qF,EAAWH,EAAWn7D,KAAKrvB,GAC/B,OAAQ2qF,GAAYF,EAAUp7D,KAAKrvB,GAC/B0qF,EAAa1qF,EAAMgE,MAAM,GAAI2mF,EAAW,EAAI,GAC3CJ,EAAWl7D,KAAKrvB,GAvDb,KAuD6BA,I,cC/CvCL,EAAOR,QAJP,SAAgBa,EAAOuC,GACrB,OAAOvC,EAAQuC,I,cCGjB5C,EAAOR,QAJP,SAAgBa,EAAOuC,GACrB,OAAOvC,EAAQuC,I,gBCVjB,OACC,SAAWqoF,GACV,aAiBA,IA2DEC,EA3DEC,EAAa,IAIf55D,EAAU,CAOR2X,UAAW,GAkBXkiD,SAAU,EAIVC,UAAW,EAIXC,SAAW,GAIX/0D,KAAM,wHAORg1D,GAAW,EAEXC,EAAe,kBACfC,EAAkBD,EAAe,qBACjCE,EAAqBF,EAAe,0BAEpCG,EAAY1qF,KAAK2wB,MACjBg6D,EAAU3qF,KAAK8Y,IAEf8xE,EAAY,qCAGZC,EAAO,IAEPC,EAAmB,iBACnBC,EAAQL,EAAUI,oBAGlB5sF,EAAI,GAg0BN,SAASuyB,EAAIhmB,EAAGC,GACd,IAAIsgF,EAAO7xE,EAAGhZ,EAAGsE,EAAGyO,EAAGyb,EAAKs8D,EAAIC,EAC9BC,EAAO1gF,EAAEyJ,YACTk3E,EAAKD,EAAKljD,UAGZ,IAAKx9B,EAAEuI,IAAMtI,EAAEsI,EAKb,OADKtI,EAAEsI,IAAGtI,EAAI,IAAIygF,EAAK1gF,IAChB6/E,EAAWlzD,EAAM1sB,EAAG0gF,GAAM1gF,EAcnC,GAXAugF,EAAKxgF,EAAE0O,EACP+xE,EAAKxgF,EAAEyO,EAIPjG,EAAIzI,EAAEtK,EACNA,EAAIuK,EAAEvK,EACN8qF,EAAKA,EAAG7nF,QACRqB,EAAIyO,EAAI/S,EAGD,CAsBL,IArBIsE,EAAI,GACN0U,EAAI8xE,EACJxmF,GAAKA,EACLkqB,EAAMu8D,EAAGhqF,SAETiY,EAAI+xE,EACJ/qF,EAAI+S,EACJyb,EAAMs8D,EAAG/pF,QAOPuD,GAFJkqB,GADAzb,EAAIlT,KAAKiyB,KAAKm5D,EA12BL,IA22BCz8D,EAAMzb,EAAI,EAAIyb,EAAM,KAG5BlqB,EAAIkqB,EACJxV,EAAEjY,OAAS,GAIbiY,EAAEyW,UACKnrB,KAAM0U,EAAE3L,KAAK,GACpB2L,EAAEyW,UAeJ,KAZAjB,EAAMs8D,EAAG/pF,SACTuD,EAAIymF,EAAGhqF,QAGO,IACZuD,EAAIkqB,EACJxV,EAAI+xE,EACJA,EAAKD,EACLA,EAAK9xE,GAIF6xE,EAAQ,EAAGvmF,GACdumF,GAASC,IAAKxmF,GAAKwmF,EAAGxmF,GAAKymF,EAAGzmF,GAAKumF,GAASH,EAAO,EACnDI,EAAGxmF,IAAMomF,EAUX,IAPIG,IACFC,EAAGz0B,QAAQw0B,KACT7qF,GAKCwuB,EAAMs8D,EAAG/pF,OAAqB,GAAb+pF,IAAKt8D,IAAYs8D,EAAGI,MAK1C,OAHA3gF,EAAEyO,EAAI8xE,EACNvgF,EAAEvK,EAAIA,EAECmqF,EAAWlzD,EAAM1sB,EAAG0gF,GAAM1gF,EAInC,SAAS4gF,EAAW7mF,EAAGmN,EAAKD,GAC1B,GAAIlN,MAAQA,GAAKA,EAAImN,GAAOnN,EAAIkN,EAC9B,MAAMgD,MAAM61E,EAAkB/lF,GAKlC,SAAS8mF,EAAepyE,GACtB,IAAI1U,EAAGyO,EAAGs4E,EACRC,EAAkBtyE,EAAEjY,OAAS,EAC7BqsD,EAAM,GACN76C,EAAIyG,EAAE,GAER,GAAIsyE,EAAkB,EAAG,CAEvB,IADAl+B,GAAO76C,EACFjO,EAAI,EAAGA,EAAIgnF,EAAiBhnF,KAE/ByO,EA16BO,GAy6BPs4E,EAAKryE,EAAE1U,GAAK,IACMvD,UACXqsD,GAAOm+B,EAAcx4E,IAC5Bq6C,GAAOi+B,GAKTt4E,EAj7BS,GAg7BTs4E,GADA94E,EAAIyG,EAAE1U,IACG,IACSvD,UACXqsD,GAAOm+B,EAAcx4E,SACvB,GAAU,IAANR,EACT,MAAO,IAIT,KAAOA,EAAI,KAAO,GAAIA,GAAK,GAE3B,OAAO66C,EAAM76C,EAp4BfxU,EAAEytF,cAAgBztF,EAAEsT,IAAM,WACxB,IAAI/G,EAAI,IAAIgG,KAAKyD,YAAYzD,MAE7B,OADIhG,EAAEuI,IAAGvI,EAAEuI,EAAI,GACRvI,GAWTvM,EAAE0tF,WAAa1tF,EAAE2tF,IAAM,SAAUnhF,GAC/B,IAAIjG,EAAGoiC,EAAGilD,EAAKC,EACbthF,EAAIgG,KAKN,GAHA/F,EAAI,IAAID,EAAEyJ,YAAYxJ,GAGlBD,EAAEuI,IAAMtI,EAAEsI,EAAG,OAAOvI,EAAEuI,IAAMtI,EAAEsI,EAGlC,GAAIvI,EAAEtK,IAAMuK,EAAEvK,EAAG,OAAOsK,EAAEtK,EAAIuK,EAAEvK,EAAIsK,EAAEuI,EAAI,EAAI,GAAK,EAMnD,IAAKvO,EAAI,EAAGoiC,GAJZilD,EAAMrhF,EAAE0O,EAAEjY,SACV6qF,EAAMrhF,EAAEyO,EAAEjY,QAGkB4qF,EAAMC,EAAKtnF,EAAIoiC,IAAKpiC,EAC9C,GAAIgG,EAAE0O,EAAE1U,KAAOiG,EAAEyO,EAAE1U,GAAI,OAAOgG,EAAE0O,EAAE1U,GAAKiG,EAAEyO,EAAE1U,GAAKgG,EAAEuI,EAAI,EAAI,GAAK,EAIjE,OAAO84E,IAAQC,EAAM,EAAID,EAAMC,EAAMthF,EAAEuI,EAAI,EAAI,GAAK,GAQtD9U,EAAE8tF,cAAgB9tF,EAAE+tF,GAAK,WACvB,IAAIxhF,EAAIgG,KACNiC,EAAIjI,EAAE0O,EAAEjY,OAAS,EACjB+qF,EApGS,GAoGHv5E,EAAIjI,EAAEtK,GAId,GADAuS,EAAIjI,EAAE0O,EAAEzG,GACD,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAIu5E,IAEpC,OAAOA,EAAK,EAAI,EAAIA,GAStB/tF,EAAEguF,UAAYhuF,EAAE4zB,IAAM,SAAUpnB,GAC9B,OAAOyhF,EAAO17E,KAAM,IAAIA,KAAKyD,YAAYxJ,KAS3CxM,EAAEkuF,mBAAqBluF,EAAEmuF,KAAO,SAAU3hF,GACxC,IACEygF,EADM16E,KACGyD,YACX,OAAOkjB,EAAM+0D,EAFL17E,KAEe,IAAI06E,EAAKzgF,GAAI,EAAG,GAAIygF,EAAKljD,YAQlD/pC,EAAEouF,OAASpuF,EAAEq8E,GAAK,SAAU7vE,GAC1B,OAAQ+F,KAAKo7E,IAAInhF,IAQnBxM,EAAEsqC,SAAW,WACX,OAAO+jD,EAAkB97E,OAS3BvS,EAAEsuF,YAActuF,EAAEuuF,GAAK,SAAU/hF,GAC/B,OAAO+F,KAAKo7E,IAAInhF,GAAK,GASvBxM,EAAEwuF,qBAAuBxuF,EAAEyuF,IAAM,SAAUjiF,GACzC,OAAO+F,KAAKo7E,IAAInhF,IAAM,GAQxBxM,EAAE0uF,UAAY1uF,EAAEo0B,MAAQ,WACtB,OAAO7hB,KAAKtQ,EAAIsQ,KAAK0I,EAAEjY,OAAS,GAQlChD,EAAE2uF,WAAa3uF,EAAE4uF,MAAQ,WACvB,OAAOr8E,KAAKuC,EAAI,GAQlB9U,EAAE6uF,WAAa7uF,EAAE8uF,MAAQ,WACvB,OAAOv8E,KAAKuC,EAAI,GAQlB9U,EAAE+uF,OAAS,WACT,OAAkB,IAAXx8E,KAAKuC,GAQd9U,EAAEgvF,SAAWhvF,EAAEqyB,GAAK,SAAU7lB,GAC5B,OAAO+F,KAAKo7E,IAAInhF,GAAK,GAQvBxM,EAAEivF,kBAAoBjvF,EAAEuzB,IAAM,SAAU/mB,GACtC,OAAO+F,KAAKo7E,IAAInhF,GAAK,GAiBvBxM,EAAEkvF,UAAYlvF,EAAE0yB,IAAM,SAAU2a,GAC9B,IAAI5gC,EACFF,EAAIgG,KACJ06E,EAAO1gF,EAAEyJ,YACTk3E,EAAKD,EAAKljD,UACVolD,EAAMjC,EAAK,EAGb,QAAa,IAAT7/C,EACFA,EAAO,IAAI4/C,EAAK,SAOhB,IALA5/C,EAAO,IAAI4/C,EAAK5/C,IAKPv4B,EAAI,GAAKu4B,EAAKgvC,GAAG0P,GAAM,MAAMt1E,MAAM41E,EAAe,OAK7D,GAAI9/E,EAAEuI,EAAI,EAAG,MAAM2B,MAAM41E,GAAgB9/E,EAAEuI,EAAI,MAAQ,cAGvD,OAAIvI,EAAE8vE,GAAG0P,GAAa,IAAIkB,EAAK,IAE/Bb,GAAW,EACX3/E,EAAIwhF,EAAOmB,EAAG7iF,EAAG4iF,GAAMC,EAAG/hD,EAAM8hD,GAAMA,GACtC/C,GAAW,EAEJlzD,EAAMzsB,EAAGygF,KASlBltF,EAAEurC,MAAQvrC,EAAE40B,IAAM,SAAUpoB,GAC1B,IAAID,EAAIgG,KAER,OADA/F,EAAI,IAAID,EAAEyJ,YAAYxJ,GACfD,EAAEuI,GAAKtI,EAAEsI,EAAIu6E,EAAS9iF,EAAGC,GAAK+lB,EAAIhmB,GAAIC,EAAEsI,GAAKtI,EAAEsI,EAAGtI,KAS3DxM,EAAEsvF,OAAStvF,EAAE60B,IAAM,SAAUroB,GAC3B,IAAIo7B,EACFr7B,EAAIgG,KACJ06E,EAAO1gF,EAAEyJ,YACTk3E,EAAKD,EAAKljD,UAKZ,KAHAv9B,EAAI,IAAIygF,EAAKzgF,IAGNsI,EAAG,MAAM2B,MAAM41E,EAAe,OAGrC,OAAK9/E,EAAEuI,GAGPs3E,GAAW,EACXxkD,EAAIqmD,EAAO1hF,EAAGC,EAAG,EAAG,GAAG+iF,MAAM/iF,GAC7B4/E,GAAW,EAEJ7/E,EAAEg/B,MAAM3D,IAPE1O,EAAM,IAAI+zD,EAAK1gF,GAAI2gF,IAiBtCltF,EAAEwvF,mBAAqBxvF,EAAEN,IAAM,WAC7B,OAAOA,EAAI6S,OASbvS,EAAEyvF,iBAAmBzvF,EAAEovF,GAAK,WAC1B,OAAOA,EAAG78E,OASZvS,EAAE0vF,QAAU1vF,EAAE2vF,IAAM,WAClB,IAAIpjF,EAAI,IAAIgG,KAAKyD,YAAYzD,MAE7B,OADAhG,EAAEuI,GAAKvI,EAAEuI,GAAK,EACPvI,GASTvM,EAAE4vF,KAAO5vF,EAAEuyB,IAAM,SAAU/lB,GACzB,IAAID,EAAIgG,KAER,OADA/F,EAAI,IAAID,EAAEyJ,YAAYxJ,GACfD,EAAEuI,GAAKtI,EAAEsI,EAAIyd,EAAIhmB,EAAGC,GAAK6iF,EAAS9iF,GAAIC,EAAEsI,GAAKtI,EAAEsI,EAAGtI,KAU3DxM,EAAE+pC,UAAY/pC,EAAE6vF,GAAK,SAAUliD,GAC7B,IAAI1rC,EAAG4tF,EAAIr7E,EACTjI,EAAIgG,KAEN,QAAU,IAANo7B,GAAgBA,MAAQA,GAAW,IAANA,GAAiB,IAANA,EAAS,MAAMl3B,MAAM61E,EAAkB3+C,GAQnF,GANA1rC,EAAIosF,EAAkB9hF,GAAK,EAE3BsjF,EAlXW,GAiXXr7E,EAAIjI,EAAE0O,EAAEjY,OAAS,GACG,EACpBwR,EAAIjI,EAAE0O,EAAEzG,GAGD,CAGL,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAIq7E,IAG7B,IAAKr7E,EAAIjI,EAAE0O,EAAE,GAAIzG,GAAK,GAAIA,GAAK,GAAIq7E,IAGrC,OAAOliD,GAAK1rC,EAAI4tF,EAAK5tF,EAAI4tF,GAS3B7vF,EAAE8vF,WAAa9vF,EAAE4T,KAAO,WACtB,IAAI3R,EAAGquB,EAAG48D,EAAIzgF,EAAGqI,EAAGrP,EAAG0pF,EACrB5iF,EAAIgG,KACJ06E,EAAO1gF,EAAEyJ,YAGX,GAAIzJ,EAAEuI,EAAI,EAAG,CACX,IAAKvI,EAAEuI,EAAG,OAAO,IAAIm4E,EAAK,GAG1B,MAAMx2E,MAAM41E,EAAe,OAiC7B,IA9BApqF,EAAIosF,EAAkB9hF,GACtB6/E,GAAW,EAOF,IAJTt3E,EAAIhT,KAAK8R,MAAMrH,KAIDuI,GAAK,OACjBwb,EAAI+8D,EAAe9gF,EAAE0O,IACdjY,OAASf,GAAK,GAAK,IAAGquB,GAAK,KAClCxb,EAAIhT,KAAK8R,KAAK0c,GACdruB,EAAIuqF,GAAWvqF,EAAI,GAAK,IAAMA,EAAI,GAAKA,EAAI,GAS3CwK,EAAI,IAAIwgF,EANN38D,EADExb,GAAK,IACH,KAAO7S,GAEXquB,EAAIxb,EAAEm1B,iBACA/kC,MAAM,EAAGorB,EAAErsB,QAAQ,KAAO,GAAKhC,IAKvCwK,EAAI,IAAIwgF,EAAKn4E,EAAEjO,YAIjBiO,EAAIq6E,GADJjC,EAAKD,EAAKljD,WACK,IAOb,GAFAt9B,GADAhH,EAAIgH,GACEmjF,KAAK3B,EAAO1hF,EAAG9G,EAAG0pF,EAAM,IAAII,MAAM,IAEpClC,EAAe5nF,EAAEwV,GAAG/V,MAAM,EAAGiqF,MAAU7+D,EAAI+8D,EAAe5gF,EAAEwO,IAAI/V,MAAM,EAAGiqF,GAAM,CAKjF,GAJA7+D,EAAIA,EAAEprB,MAAMiqF,EAAM,EAAGA,EAAM,GAIvBr6E,GAAKq6E,GAAY,QAAL7+D,GAMd,GAFA4I,EAAMzzB,EAAGynF,EAAK,EAAG,GAEbznF,EAAE8pF,MAAM9pF,GAAG42E,GAAG9vE,GAAI,CACpBE,EAAIhH,EACJ,YAEG,GAAS,QAAL6qB,EACT,MAGF6+D,GAAO,EAMX,OAFA/C,GAAW,EAEJlzD,EAAMzsB,EAAGygF,IASlBltF,EAAEuvF,MAAQvvF,EAAEg0B,IAAM,SAAUxnB,GAC1B,IAAIsgF,EAAO7qF,EAAGsE,EAAGyO,EAAGvI,EAAGsjF,EAAItqF,EAAGmoF,EAAKC,EACjCthF,EAAIgG,KACJ06E,EAAO1gF,EAAEyJ,YACT+2E,EAAKxgF,EAAE0O,EACP+xE,GAAMxgF,EAAI,IAAIygF,EAAKzgF,IAAIyO,EAGzB,IAAK1O,EAAEuI,IAAMtI,EAAEsI,EAAG,OAAO,IAAIm4E,EAAK,GAoBlC,IAlBAzgF,EAAEsI,GAAKvI,EAAEuI,EACT7S,EAAIsK,EAAEtK,EAAIuK,EAAEvK,GACZ2rF,EAAMb,EAAG/pF,SACT6qF,EAAMb,EAAGhqF,UAIPyJ,EAAIsgF,EACJA,EAAKC,EACLA,EAAKvgF,EACLsjF,EAAKnC,EACLA,EAAMC,EACNA,EAAMkC,GAIRtjF,EAAI,GAEClG,EADLwpF,EAAKnC,EAAMC,EACEtnF,KAAMkG,EAAE6C,KAAK,GAG1B,IAAK/I,EAAIsnF,IAAOtnF,GAAK,GAAI,CAEvB,IADAumF,EAAQ,EACH93E,EAAI44E,EAAMrnF,EAAGyO,EAAIzO,GACpBd,EAAIgH,EAAEuI,GAAKg4E,EAAGzmF,GAAKwmF,EAAG/3E,EAAIzO,EAAI,GAAKumF,EACnCrgF,EAAEuI,KAAOvP,EAAIknF,EAAO,EACpBG,EAAQrnF,EAAIknF,EAAO,EAGrBlgF,EAAEuI,IAAMvI,EAAEuI,GAAK83E,GAASH,EAAO,EAIjC,MAAQlgF,IAAIsjF,IAAMtjF,EAAE0gF,MAQpB,OANIL,IAAS7qF,EACRwK,EAAE0kB,QAEP3kB,EAAEyO,EAAIxO,EACND,EAAEvK,EAAIA,EAECmqF,EAAWlzD,EAAM1sB,EAAGygF,EAAKljD,WAAav9B,GAc/CxM,EAAEgwF,gBAAkBhwF,EAAEiwF,KAAO,SAAUlC,EAAImC,GACzC,IAAI3jF,EAAIgG,KACN06E,EAAO1gF,EAAEyJ,YAGX,OADAzJ,EAAI,IAAI0gF,EAAK1gF,QACF,IAAPwhF,EAAsBxhF,GAE1B6gF,EAAWW,EAAI,EAAG/B,QAEP,IAAPkE,EAAeA,EAAKjD,EAAKhB,SACxBmB,EAAW8C,EAAI,EAAG,GAEhBh3D,EAAM3sB,EAAGwhF,EAAKM,EAAkB9hF,GAAK,EAAG2jF,KAYjDlwF,EAAEiqC,cAAgB,SAAU8jD,EAAImC,GAC9B,IAAI7gC,EACF9iD,EAAIgG,KACJ06E,EAAO1gF,EAAEyJ,YAcX,YAZW,IAAP+3E,EACF1+B,EAAMxoD,EAAS0F,GAAG,IAElB6gF,EAAWW,EAAI,EAAG/B,QAEP,IAAPkE,EAAeA,EAAKjD,EAAKhB,SACxBmB,EAAW8C,EAAI,EAAG,GAGvB7gC,EAAMxoD,EADN0F,EAAI2sB,EAAM,IAAI+zD,EAAK1gF,GAAIwhF,EAAK,EAAGmC,IACb,EAAMnC,EAAK,IAGxB1+B,GAoBTrvD,EAAEuqC,QAAU,SAAUwjD,EAAImC,GACxB,IAAI7gC,EAAK7iD,EACPD,EAAIgG,KACJ06E,EAAO1gF,EAAEyJ,YAEX,YAAW,IAAP+3E,EAAsBlnF,EAAS0F,IAEnC6gF,EAAWW,EAAI,EAAG/B,QAEP,IAAPkE,EAAeA,EAAKjD,EAAKhB,SACxBmB,EAAW8C,EAAI,EAAG,GAGvB7gC,EAAMxoD,GADN2F,EAAI0sB,EAAM,IAAI+zD,EAAK1gF,GAAIwhF,EAAKM,EAAkB9hF,GAAK,EAAG2jF,IACrC58E,OAAO,EAAOy6E,EAAKM,EAAkB7hF,GAAK,GAIpDD,EAAEqiF,UAAYriF,EAAEwiF,SAAW,IAAM1/B,EAAMA,IAShDrvD,EAAEmwF,UAAYnwF,EAAEowF,MAAQ,WACtB,IAAI7jF,EAAIgG,KACN06E,EAAO1gF,EAAEyJ,YACX,OAAOkjB,EAAM,IAAI+zD,EAAK1gF,GAAI8hF,EAAkB9hF,GAAK,EAAG0gF,EAAKhB,WAQ3DjsF,EAAEsyB,SAAW,WACX,OAAQ/f,MAiBVvS,EAAEqwF,QAAUrwF,EAAE4a,IAAM,SAAUpO,GAC5B,IAAIvK,EAAG+S,EAAGk4E,EAAIzgF,EAAGo9B,EAAMymD,EACrB/jF,EAAIgG,KACJ06E,EAAO1gF,EAAEyJ,YAETu6E,IAAO/jF,EAAI,IAAIygF,EAAKzgF,IAGtB,IAAKA,EAAEsI,EAAG,OAAO,IAAIm4E,EAAKlB,GAM1B,KAJAx/E,EAAI,IAAI0gF,EAAK1gF,IAINuI,EAAG,CACR,GAAItI,EAAEsI,EAAI,EAAG,MAAM2B,MAAM41E,EAAe,YACxC,OAAO9/E,EAIT,GAAIA,EAAE8vE,GAAG0P,GAAM,OAAOx/E,EAKtB,GAHA2gF,EAAKD,EAAKljD,UAGNv9B,EAAE6vE,GAAG0P,GAAM,OAAO7yD,EAAM3sB,EAAG2gF,GAO/B,GAHAoD,GAFAruF,EAAIuK,EAAEvK,KACN+S,EAAIxI,EAAEyO,EAAEjY,OAAS,GAEjB6mC,EAAOt9B,EAAEuI,EAEJw7E,GAME,IAAKt7E,EAAIu7E,EAAK,GAAKA,EAAKA,IAAO3D,EAAkB,CAStD,IARAngF,EAAI,IAAIwgF,EAAKlB,GAIb9pF,EAAIH,KAAKiyB,KAAKm5D,EAzrBL,EAyrBqB,GAE9Bd,GAAW,EAGLp3E,EAAI,GAENw7E,GADA/jF,EAAIA,EAAE8iF,MAAMhjF,IACD0O,EAAGhZ,GAIN,KADV+S,EAAIw3E,EAAUx3E,EAAI,KAIlBw7E,GADAjkF,EAAIA,EAAEgjF,MAAMhjF,IACD0O,EAAGhZ,GAKhB,OAFAmqF,GAAW,EAEJ5/E,EAAEsI,EAAI,EAAI,IAAIm4E,EAAKlB,GAAKn4D,IAAInnB,GAAKysB,EAAMzsB,EAAGygF,SA3BjD,GAAIrjD,EAAO,EAAG,MAAMpzB,MAAM41E,EAAe,OAwC3C,OATAxiD,EAAOA,EAAO,GAA2B,EAAtBr9B,EAAEyO,EAAEnZ,KAAK2R,IAAIxR,EAAG+S,KAAW,EAAI,EAElDzI,EAAEuI,EAAI,EACNs3E,GAAW,EACX3/E,EAAID,EAAE+iF,MAAMH,EAAG7iF,EAAG2gF,EAlER,KAmEVd,GAAW,GACX3/E,EAAI/M,EAAI+M,IACNqI,EAAI+0B,EAECp9B,GAeTzM,EAAEyqC,YAAc,SAAUolD,EAAIK,GAC5B,IAAIjuF,EAAGotD,EACL9iD,EAAIgG,KACJ06E,EAAO1gF,EAAEyJ,YAgBX,YAdW,IAAP65E,EAEFxgC,EAAMxoD,EAAS0F,GADftK,EAAIosF,EAAkB9hF,KACC0gF,EAAKf,UAAYjqF,GAAKgrF,EAAKd,WAElDiB,EAAWyC,EAAI,EAAG7D,QAEP,IAAPkE,EAAeA,EAAKjD,EAAKhB,SACxBmB,EAAW8C,EAAI,EAAG,GAIvB7gC,EAAMxoD,EAFN0F,EAAI2sB,EAAM,IAAI+zD,EAAK1gF,GAAIsjF,EAAIK,GAETL,IADlB5tF,EAAIosF,EAAkB9hF,KACOtK,GAAKgrF,EAAKf,SAAU2D,IAG5CxgC,GAaTrvD,EAAEywF,oBAAsBzwF,EAAE0wF,KAAO,SAAUb,EAAIK,GAC7C,IACEjD,EADM16E,KACGyD,YAYX,YAVW,IAAP65E,GACFA,EAAK5C,EAAKljD,UACVmmD,EAAKjD,EAAKhB,WAEVmB,EAAWyC,EAAI,EAAG7D,QAEP,IAAPkE,EAAeA,EAAKjD,EAAKhB,SACxBmB,EAAW8C,EAAI,EAAG,IAGlBh3D,EAAM,IAAI+zD,EAbT16E,MAakBs9E,EAAIK,IAWhClwF,EAAE6G,SAAW7G,EAAEioC,QAAUjoC,EAAEkmB,IAAMlmB,EAAE2wF,OAAS,WAC1C,IAAIpkF,EAAIgG,KACNtQ,EAAIosF,EAAkB9hF,GACtB0gF,EAAO1gF,EAAEyJ,YAEX,OAAOnP,EAAS0F,EAAGtK,GAAKgrF,EAAKf,UAAYjqF,GAAKgrF,EAAKd,WAwJrD,IAAI8B,EAAU,WAGZ,SAAS2C,EAAgBrkF,EAAGyI,GAC1B,IAAI67E,EACF/D,EAAQ,EACRvmF,EAAIgG,EAAEvJ,OAER,IAAKuJ,EAAIA,EAAErH,QAASqB,KAClBsqF,EAAOtkF,EAAEhG,GAAKyO,EAAI83E,EAClBvgF,EAAEhG,GAAKsqF,EAAOlE,EAAO,EACrBG,EAAQ+D,EAAOlE,EAAO,EAKxB,OAFIG,GAAOvgF,EAAE+rD,QAAQw0B,GAEdvgF,EAGT,SAAS8pB,EAAQxzB,EAAGqD,EAAG4qF,EAAIC,GACzB,IAAIxqF,EAAGkG,EAEP,GAAIqkF,GAAMC,EACRtkF,EAAIqkF,EAAKC,EAAK,GAAK,OAEnB,IAAKxqF,EAAIkG,EAAI,EAAGlG,EAAIuqF,EAAIvqF,IACtB,GAAI1D,EAAE0D,IAAML,EAAEK,GAAI,CAChBkG,EAAI5J,EAAE0D,GAAKL,EAAEK,GAAK,GAAK,EACvB,MAKN,OAAOkG,EAGT,SAAS4iF,EAASxsF,EAAGqD,EAAG4qF,GAItB,IAHA,IAAIvqF,EAAI,EAGDuqF,KACLjuF,EAAEiuF,IAAOvqF,EACTA,EAAI1D,EAAEiuF,GAAM5qF,EAAE4qF,GAAM,EAAI,EACxBjuF,EAAEiuF,GAAMvqF,EAAIomF,EAAO9pF,EAAEiuF,GAAM5qF,EAAE4qF,GAI/B,MAAQjuF,EAAE,IAAMA,EAAEG,OAAS,GAAIH,EAAEsuB,QAGnC,OAAO,SAAU5kB,EAAGC,EAAG0gF,EAAIa,GACzB,IAAIJ,EAAK1rF,EAAGsE,EAAGyO,EAAGg8E,EAAMC,EAAOrpD,EAAGspD,EAAIC,EAAKC,EAAMC,EAAMxB,EAAIpqF,EAAG6rF,EAAIC,EAAIC,EAAKC,EAAIC,EAC7EzE,EAAO1gF,EAAEyJ,YACT6zB,EAAOt9B,EAAEuI,GAAKtI,EAAEsI,EAAI,GAAK,EACzBi4E,EAAKxgF,EAAE0O,EACP+xE,EAAKxgF,EAAEyO,EAGT,IAAK1O,EAAEuI,EAAG,OAAO,IAAIm4E,EAAK1gF,GAC1B,IAAKC,EAAEsI,EAAG,MAAM2B,MAAM41E,EAAe,oBASrC,IAPApqF,EAAIsK,EAAEtK,EAAIuK,EAAEvK,EACZwvF,EAAKzE,EAAGhqF,OACRuuF,EAAKxE,EAAG/pF,OAERkuF,GADAtpD,EAAI,IAAIqlD,EAAKpjD,IACN5uB,EAAI,GAGN1U,EAAI,EAAGymF,EAAGzmF,KAAOwmF,EAAGxmF,IAAM,MAAQA,EAWvC,GAVIymF,EAAGzmF,IAAMwmF,EAAGxmF,IAAM,MAAMtE,GAG1B4tF,EADQ,MAAN3C,EACGA,EAAKD,EAAKljD,UACNgkD,EACJb,GAAMmB,EAAkB9hF,GAAK8hF,EAAkB7hF,IAAM,EAErD0gF,GAGE,EAAG,OAAO,IAAID,EAAK,GAO5B,GAJA4C,EAAKA,EAhhCI,EAghCY,EAAI,EACzBtpF,EAAI,EAGM,GAANkrF,EAMF,IALAz8E,EAAI,EACJg4E,EAAKA,EAAG,GACR6C,KAGQtpF,EAAIgrF,GAAMv8E,IAAM66E,IAAMtpF,IAC5Bd,EAAIuP,EAAI23E,GAAQI,EAAGxmF,IAAM,GACzB2qF,EAAG3qF,GAAKd,EAAIunF,EAAK,EACjBh4E,EAAIvP,EAAIunF,EAAK,MAIV,CAiBL,KAdAh4E,EAAI23E,GAAQK,EAAG,GAAK,GAAK,GAEjB,IACNA,EAAK4D,EAAgB5D,EAAIh4E,GACzB+3E,EAAK6D,EAAgB7D,EAAI/3E,GACzBy8E,EAAKzE,EAAGhqF,OACRuuF,EAAKxE,EAAG/pF,QAGVsuF,EAAKG,EAELL,GADAD,EAAMpE,EAAG7nF,MAAM,EAAGusF,IACPzuF,OAGJouF,EAAOK,GAAKN,EAAIC,KAAU,GAEjCM,EAAK1E,EAAG9nF,SACLozD,QAAQ,GACXk5B,EAAMxE,EAAG,GAELA,EAAG,IAAML,EAAO,KAAK6E,EAEzB,GACEx8E,EAAI,GAGJ24E,EAAMt3D,EAAQ22D,EAAImE,EAAKM,EAAIL,IAGjB,GAGRC,EAAOF,EAAI,GACPM,GAAML,IAAMC,EAAOA,EAAO1E,GAAQwE,EAAI,IAAM,KAGhDn8E,EAAIq8E,EAAOG,EAAM,GAUT,GACFx8E,GAAK23E,IAAM33E,EAAI23E,EAAO,GAWf,IAHXgB,EAAMt3D,EALN26D,EAAOJ,EAAgB5D,EAAIh4E,GAKPm8E,EAJpBF,EAAQD,EAAKhuF,OACbouF,EAAOD,EAAInuF,WAOTgS,IAGAq6E,EAAS2B,EAAMS,EAAKR,EAAQS,EAAK1E,EAAIiE,MAO9B,GAALj8E,IAAQ24E,EAAM34E,EAAI,GACtBg8E,EAAOhE,EAAG9nF,UAGZ+rF,EAAQD,EAAKhuF,QACDouF,GAAMJ,EAAK14B,QAAQ,GAG/B+2B,EAAS8B,EAAKH,EAAMI,IAGR,GAARzD,IAIFA,EAAMt3D,EAAQ22D,EAAImE,EAAKM,EAHvBL,EAAOD,EAAInuF,SAMD,IACRgS,IAGAq6E,EAAS8B,EAAKM,EAAKL,EAAOM,EAAK1E,EAAIoE,IAIvCA,EAAOD,EAAInuF,QACM,IAAR2qF,IACT34E,IACAm8E,EAAM,CAAC,IAITD,EAAG3qF,KAAOyO,EAGN24E,GAAOwD,EAAI,GACbA,EAAIC,KAAUrE,EAAGuE,IAAO,GAExBH,EAAM,CAACpE,EAAGuE,IACVF,EAAO,UAGDE,IAAOC,QAAiB,IAAXJ,EAAI,KAAkBtB,KAQ/C,OAJKqB,EAAG,IAAIA,EAAG//D,QAEfyW,EAAE3lC,EAAIA,EAECi3B,EAAM0O,EAAGmmD,EAAKb,EAAKmB,EAAkBzmD,GAAK,EAAIslD,IA9N3C,GAyPd,SAASxtF,EAAI6M,EAAGsjF,GACd,IAAI8B,EAAoB/2E,EAAK48C,EAAK/xD,EAAG0pF,EACnC5oF,EAAI,EACJyO,EAAI,EACJi4E,EAAO1gF,EAAEyJ,YACTk3E,EAAKD,EAAKljD,UAEZ,GAAIskD,EAAkB9hF,GAAK,GAAI,MAAMkK,MAAM81E,EAAqB8B,EAAkB9hF,IAGlF,IAAKA,EAAEuI,EAAG,OAAO,IAAIm4E,EAAKlB,GAW1B,IATU,MAAN8D,GACFzD,GAAW,EACX+C,EAAMjC,GAENiC,EAAMU,EAGRpqF,EAAI,IAAIwnF,EAAK,QAEN1gF,EAAE+G,MAAMm7E,IAAI,KACjBliF,EAAIA,EAAEgjF,MAAM9pF,GACZuP,GAAK,EASP,IAJAm6E,GADQrtF,KAAK4wB,IAAI+5D,EAAQ,EAAGz3E,IAAMlT,KAAKs1B,KAAO,EAAI,EAAI,EAEtDu6D,EAAc/2E,EAAM48C,EAAM,IAAIy1B,EAAKlB,GACnCkB,EAAKljD,UAAYolD,IAER,CAKP,GAJAv0E,EAAMse,EAAMte,EAAI20E,MAAMhjF,GAAI4iF,GAC1BwC,EAAcA,EAAYpC,QAAQhpF,GAG9B8mF,GAFJ5nF,EAAI+xD,EAAIo4B,KAAK3B,EAAOrzE,EAAK+2E,EAAaxC,KAEjBl0E,GAAG/V,MAAM,EAAGiqF,KAAS9B,EAAe71B,EAAIv8C,GAAG/V,MAAM,EAAGiqF,GAAM,CAC7E,KAAOn6E,KAAKwiD,EAAMt+B,EAAMs+B,EAAI+3B,MAAM/3B,GAAM23B,GAExC,OADAlC,EAAKljD,UAAYmjD,EACJ,MAAN2C,GAAczD,GAAW,EAAMlzD,EAAMs+B,EAAK01B,IAAO11B,EAG1DA,EAAM/xD,GAMV,SAAS4oF,EAAkB9hF,GAKzB,IAJA,IAAItK,EAzuCO,EAyuCHsK,EAAEtK,EACRuS,EAAIjI,EAAE0O,EAAE,GAGHzG,GAAK,GAAIA,GAAK,GAAIvS,IACzB,OAAOA,EAIT,SAAS2vF,EAAQ3E,EAAM4C,EAAI3C,GAEzB,GAAI2C,EAAK5C,EAAK71D,KAAKy4D,KAMjB,MAFAzD,GAAW,EACPc,IAAID,EAAKljD,UAAYmjD,GACnBz2E,MAAM41E,EAAe,iCAG7B,OAAOnzD,EAAM,IAAI+zD,EAAKA,EAAK71D,MAAOy4D,GAIpC,SAASrC,EAAcx4E,GAErB,IADA,IAAI68E,EAAK,GACF78E,KAAM68E,GAAM,IACnB,OAAOA,EAWT,SAASzC,EAAG5iF,EAAGqjF,GACb,IAAIh7E,EAAGi9E,EAAIH,EAAa1vF,EAAG8vF,EAAWv6B,EAAK/xD,EAAG0pF,EAAK95E,EACjDib,EAAI,EAEJ/jB,EAAIC,EACJugF,EAAKxgF,EAAE0O,EACPgyE,EAAO1gF,EAAEyJ,YACTk3E,EAAKD,EAAKljD,UAIZ,GAAIx9B,EAAEuI,EAAI,EAAG,MAAM2B,MAAM41E,GAAgB9/E,EAAEuI,EAAI,MAAQ,cAGvD,GAAIvI,EAAE8vE,GAAG0P,GAAM,OAAO,IAAIkB,EAAK,GAS/B,GAPU,MAAN4C,GACFzD,GAAW,EACX+C,EAAMjC,GAENiC,EAAMU,EAGJtjF,EAAE8vE,GAAG,IAEP,OADU,MAANwT,IAAYzD,GAAW,GACpBwF,EAAQ3E,EAAMkC,GASvB,GANAA,GAzBU,GA0BVlC,EAAKljD,UAAYolD,EAEjB2C,GADAj9E,EAAIw4E,EAAeN,IACZ9yC,OAAO,GACdh4C,EAAIosF,EAAkB9hF,KAElBzK,KAAKwR,IAAIrR,GAAK,OAqChB,OAJAwD,EAAImsF,EAAQ3E,EAAMkC,EAAM,EAAGjC,GAAIqC,MAAMttF,EAAI,IACzCsK,EAAI6iF,EAAG,IAAInC,EAAK6E,EAAK,IAAMj9E,EAAE3P,MAAM,IAAKiqF,EAjEhC,IAiE6CS,KAAKnqF,GAE1DwnF,EAAKljD,UAAYmjD,EACJ,MAAN2C,GAAczD,GAAW,EAAMlzD,EAAM3sB,EAAG2gF,IAAO3gF,EAxBtD,KAAOulF,EAAK,GAAW,GAANA,GAAiB,GAANA,GAAWj9E,EAAEolC,OAAO,GAAK,GAGnD63C,GADAj9E,EAAIw4E,GADJ9gF,EAAIA,EAAEgjF,MAAM/iF,IACSyO,IACdg/B,OAAO,GACd3pB,IAgCJ,IA7BEruB,EAAIosF,EAAkB9hF,GAElBulF,EAAK,GACPvlF,EAAI,IAAI0gF,EAAK,KAAOp4E,GACpB5S,KAEAsK,EAAI,IAAI0gF,EAAK6E,EAAK,IAAMj9E,EAAE3P,MAAM,IAmBpCsyD,EAAMu6B,EAAYxlF,EAAI0hF,EAAO1hF,EAAEg/B,MAAMwgD,GAAMx/E,EAAEqjF,KAAK7D,GAAMoD,GACxD95E,EAAK6jB,EAAM3sB,EAAEgjF,MAAMhjF,GAAI4iF,GACvBwC,EAAc,IAEL,CAIP,GAHAI,EAAY74D,EAAM64D,EAAUxC,MAAMl6E,GAAK85E,GAGnC9B,GAFJ5nF,EAAI+xD,EAAIo4B,KAAK3B,EAAO8D,EAAW,IAAI9E,EAAK0E,GAAcxC,KAEjCl0E,GAAG/V,MAAM,EAAGiqF,KAAS9B,EAAe71B,EAAIv8C,GAAG/V,MAAM,EAAGiqF,GAQvE,OAPA33B,EAAMA,EAAI+3B,MAAM,GAGN,IAANttF,IAASu1D,EAAMA,EAAIo4B,KAAKgC,EAAQ3E,EAAMkC,EAAM,EAAGjC,GAAIqC,MAAMttF,EAAI,MACjEu1D,EAAMy2B,EAAOz2B,EAAK,IAAIy1B,EAAK38D,GAAI6+D,GAE/BlC,EAAKljD,UAAYmjD,EACJ,MAAN2C,GAAczD,GAAW,EAAMlzD,EAAMs+B,EAAK01B,IAAO11B,EAG1DA,EAAM/xD,EACNksF,GAAe,GAQnB,SAASK,EAAazlF,EAAG8iD,GACvB,IAAIptD,EAAGsE,EAAGkqB,EAmBV,KAhBKxuB,EAAIotD,EAAIprD,QAAQ,OAAS,IAAGorD,EAAMA,EAAIvtC,QAAQ,IAAK,MAGnDvb,EAAI8oD,EAAI4iC,OAAO,OAAS,GAGvBhwF,EAAI,IAAGA,EAAIsE,GACftE,IAAMotD,EAAInqD,MAAMqB,EAAI,GACpB8oD,EAAMA,EAAItkB,UAAU,EAAGxkC,IACdtE,EAAI,IAGbA,EAAIotD,EAAIrsD,QAILuD,EAAI,EAAyB,KAAtB8oD,EAAIljB,WAAW5lC,MAAcA,EAGzC,IAAKkqB,EAAM4+B,EAAIrsD,OAAoC,KAA5BqsD,EAAIljB,WAAW1b,EAAM,MAAcA,EAG1D,GAFA4+B,EAAMA,EAAInqD,MAAMqB,EAAGkqB,GAEV,CAaP,GAZAA,GAAOlqB,EACPtE,EAAIA,EAAIsE,EAAI,EACZgG,EAAEtK,EAAIuqF,EAAUvqF,EAv5CP,GAw5CTsK,EAAE0O,EAAI,GAMN1U,GAAKtE,EAAI,GA95CA,EA+5CLA,EAAI,IAAGsE,GA/5CF,GAi6CLA,EAAIkqB,EAAK,CAEX,IADIlqB,GAAGgG,EAAE0O,EAAE3L,MAAM+/C,EAAInqD,MAAM,EAAGqB,IACzBkqB,GAn6CE,EAm6CelqB,EAAIkqB,GAAMlkB,EAAE0O,EAAE3L,MAAM+/C,EAAInqD,MAAMqB,EAAGA,GAn6ChD,IAq6CPA,EAr6CO,GAo6CP8oD,EAAMA,EAAInqD,MAAMqB,IACGvD,YAEnBuD,GAAKkqB,EAGP,KAAOlqB,KAAM8oD,GAAO,IAGpB,GAFA9iD,EAAE0O,EAAE3L,MAAM+/C,GAEN+8B,IAAa7/E,EAAEtK,EAAI4qF,GAAStgF,EAAEtK,GAAK4qF,GAAQ,MAAMp2E,MAAM81E,EAAqBtqF,QAIhFsK,EAAEuI,EAAI,EACNvI,EAAEtK,EAAI,EACNsK,EAAE0O,EAAI,CAAC,GAGT,OAAO1O,EAOR,SAAS2sB,EAAM3sB,EAAGsjF,EAAIK,GACrB,IAAI3pF,EAAGoiC,EAAG3zB,EAAGsb,EAAG4hE,EAAIC,EAAS39E,EAAG49E,EAC9BrF,EAAKxgF,EAAE0O,EAWT,IAAKqV,EAAI,EAAGtb,EAAI+3E,EAAG,GAAI/3E,GAAK,GAAIA,GAAK,GAAIsb,IAIzC,IAHA/pB,EAAIspF,EAAKv/D,GAGD,EACN/pB,GA/8CS,EAg9CToiC,EAAIknD,EACJr7E,EAAIu4E,EAAGqF,EAAM,OACR,CAGL,IAFAA,EAAMtwF,KAAKiyB,MAAMxtB,EAAI,GAn9CZ,MAo9CTyO,EAAI+3E,EAAG/pF,QACO,OAAOuJ,EAIrB,IAHAiI,EAAIQ,EAAI+3E,EAAGqF,GAGN9hE,EAAI,EAAGtb,GAAK,GAAIA,GAAK,GAAIsb,IAO9BqY,GAJApiC,GA59CS,KAg+CU+pB,EAyBrB,QAtBW,IAAP4/D,IAIFgC,EAAK19E,GAHLQ,EAAIy3E,EAAQ,GAAIn8D,EAAIqY,EAAI,IAGX,GAAK,EAGlBwpD,EAAUtC,EAAK,QAAqB,IAAhB9C,EAAGqF,EAAM,IAAiB59E,EAAIQ,EAMlDm9E,EAAUjC,EAAK,GACVgC,GAAMC,KAAmB,GAANjC,GAAWA,IAAO3jF,EAAEuI,EAAI,EAAI,EAAI,IACpDo9E,EAAK,GAAW,GAANA,IAAkB,GAANhC,GAAWiC,GAAiB,GAANjC,IAG1C3pF,EAAI,EAAIoiC,EAAI,EAAIn0B,EAAIi4E,EAAQ,GAAIn8D,EAAIqY,GAAK,EAAIokD,EAAGqF,EAAM,IAAM,GAAM,GAClElC,IAAO3jF,EAAEuI,EAAI,EAAI,EAAI,KAGzB+6E,EAAK,IAAM9C,EAAG,GAkBhB,OAjBIoF,GACFn9E,EAAIq5E,EAAkB9hF,GACtBwgF,EAAG/pF,OAAS,EAGZ6sF,EAAKA,EAAK76E,EAAI,EAGd+3E,EAAG,GAAKN,EAAQ,IAlgDT,EAkgDyBoD,EAlgDzB,MAmgDPtjF,EAAEtK,EAAIuqF,GAAWqD,EAngDV,IAmgD4B,IAEnC9C,EAAG/pF,OAAS,EAGZ+pF,EAAG,GAAKxgF,EAAEtK,EAAIsK,EAAEuI,EAAI,GAGfvI,EAiBT,GAbS,GAALhG,GACFwmF,EAAG/pF,OAASovF,EACZp9E,EAAI,EACJo9E,MAEArF,EAAG/pF,OAASovF,EAAM,EAClBp9E,EAAIy3E,EAAQ,GArhDH,EAqhDkBlmF,GAI3BwmF,EAAGqF,GAAOzpD,EAAI,GAAKn0B,EAAIi4E,EAAQ,GAAIn8D,EAAIqY,GAAK8jD,EAAQ,GAAI9jD,GAAK,GAAK3zB,EAAI,GAGpEm9E,EACF,OAAS,CAGP,GAAW,GAAPC,EAAU,EACPrF,EAAG,IAAM/3E,IAAM23E,IAClBI,EAAG,GAAK,IACNxgF,EAAEtK,GAGN,MAGA,GADA8qF,EAAGqF,IAAQp9E,EACP+3E,EAAGqF,IAAQzF,EAAM,MACrBI,EAAGqF,KAAS,EACZp9E,EAAI,EAMV,IAAKzO,EAAIwmF,EAAG/pF,OAAoB,IAAZ+pF,IAAKxmF,IAAWwmF,EAAGI,MAEvC,GAAIf,IAAa7/E,EAAEtK,EAAI4qF,GAAStgF,EAAEtK,GAAK4qF,GACrC,MAAMp2E,MAAM81E,EAAqB8B,EAAkB9hF,IAGrD,OAAOA,EAIT,SAAS8iF,EAAS9iF,EAAGC,GACnB,IAAIyO,EAAGhZ,EAAGsE,EAAGoiC,EAAG3zB,EAAGyb,EAAKs8D,EAAIsF,EAAIC,EAAMtF,EACpCC,EAAO1gF,EAAEyJ,YACTk3E,EAAKD,EAAKljD,UAIZ,IAAKx9B,EAAEuI,IAAMtI,EAAEsI,EAGb,OAFItI,EAAEsI,EAAGtI,EAAEsI,GAAKtI,EAAEsI,EACbtI,EAAI,IAAIygF,EAAK1gF,GACX6/E,EAAWlzD,EAAM1sB,EAAG0gF,GAAM1gF,EAcnC,GAXAugF,EAAKxgF,EAAE0O,EACP+xE,EAAKxgF,EAAEyO,EAIPhZ,EAAIuK,EAAEvK,EACNowF,EAAK9lF,EAAEtK,EACP8qF,EAAKA,EAAG7nF,QACR8P,EAAIq9E,EAAKpwF,EAGF,CAyBL,KAxBAqwF,EAAOt9E,EAAI,IAGTiG,EAAI8xE,EACJ/3E,GAAKA,EACLyb,EAAMu8D,EAAGhqF,SAETiY,EAAI+xE,EACJ/qF,EAAIowF,EACJ5hE,EAAMs8D,EAAG/pF,QAQPgS,GAFJzO,EAAIzE,KAAK2R,IAAI3R,KAAKiyB,KAAKm5D,EAnmDd,GAmmD8Bz8D,GAAO,KAG5Czb,EAAIzO,EACJ0U,EAAEjY,OAAS,GAIbiY,EAAEyW,UACGnrB,EAAIyO,EAAGzO,KAAM0U,EAAE3L,KAAK,GACzB2L,EAAEyW,cAGG,CASL,KAHA4gE,GAFA/rF,EAAIwmF,EAAG/pF,SACPytB,EAAMu8D,EAAGhqF,WAECytB,EAAMlqB,GAEXA,EAAI,EAAGA,EAAIkqB,EAAKlqB,IACnB,GAAIwmF,EAAGxmF,IAAMymF,EAAGzmF,GAAI,CAClB+rF,EAAOvF,EAAGxmF,GAAKymF,EAAGzmF,GAClB,MAIJyO,EAAI,EAcN,IAXIs9E,IACFr3E,EAAI8xE,EACJA,EAAKC,EACLA,EAAK/xE,EACLzO,EAAEsI,GAAKtI,EAAEsI,GAGX2b,EAAMs8D,EAAG/pF,OAIJuD,EAAIymF,EAAGhqF,OAASytB,EAAKlqB,EAAI,IAAKA,EAAGwmF,EAAGt8D,KAAS,EAGlD,IAAKlqB,EAAIymF,EAAGhqF,OAAQuD,EAAIyO,GAAI,CAC1B,GAAI+3E,IAAKxmF,GAAKymF,EAAGzmF,GAAI,CACnB,IAAKoiC,EAAIpiC,EAAGoiC,GAAiB,IAAZokD,IAAKpkD,IAAWokD,EAAGpkD,GAAKgkD,EAAO,IAC9CI,EAAGpkD,GACLokD,EAAGxmF,IAAMomF,EAGXI,EAAGxmF,IAAMymF,EAAGzmF,GAId,KAAqB,IAAdwmF,IAAKt8D,IAAas8D,EAAGI,MAG5B,KAAiB,IAAVJ,EAAG,GAAUA,EAAG57D,UAAWlvB,EAGlC,OAAK8qF,EAAG,IAERvgF,EAAEyO,EAAI8xE,EACNvgF,EAAEvK,EAAIA,EAGCmqF,EAAWlzD,EAAM1sB,EAAG0gF,GAAM1gF,GANd,IAAIygF,EAAK,GAU9B,SAASpmF,EAAS0F,EAAGgmF,EAAO1C,GAC1B,IAAI76E,EACF/S,EAAIosF,EAAkB9hF,GACtB8iD,EAAMg+B,EAAe9gF,EAAE0O,GACvBwV,EAAM4+B,EAAIrsD,OAwBZ,OAtBIuvF,GACE1C,IAAO76E,EAAI66E,EAAKp/D,GAAO,EACzB4+B,EAAMA,EAAIpV,OAAO,GAAK,IAAMoV,EAAInqD,MAAM,GAAKsoF,EAAcx4E,GAChDyb,EAAM,IACf4+B,EAAMA,EAAIpV,OAAO,GAAK,IAAMoV,EAAInqD,MAAM,IAGxCmqD,EAAMA,GAAOptD,EAAI,EAAI,IAAM,MAAQA,GAC1BA,EAAI,GACbotD,EAAM,KAAOm+B,GAAevrF,EAAI,GAAKotD,EACjCwgC,IAAO76E,EAAI66E,EAAKp/D,GAAO,IAAG4+B,GAAOm+B,EAAcx4E,KAC1C/S,GAAKwuB,GACd4+B,GAAOm+B,EAAcvrF,EAAI,EAAIwuB,GACzBo/D,IAAO76E,EAAI66E,EAAK5tF,EAAI,GAAK,IAAGotD,EAAMA,EAAM,IAAMm+B,EAAcx4E,OAE3DA,EAAI/S,EAAI,GAAKwuB,IAAK4+B,EAAMA,EAAInqD,MAAM,EAAG8P,GAAK,IAAMq6C,EAAInqD,MAAM8P,IAC3D66E,IAAO76E,EAAI66E,EAAKp/D,GAAO,IACrBxuB,EAAI,IAAMwuB,IAAK4+B,GAAO,KAC1BA,GAAOm+B,EAAcx4E,KAIlBzI,EAAEuI,EAAI,EAAI,IAAMu6C,EAAMA,EAK/B,SAASmhC,EAASlqF,EAAKmqB,GACrB,GAAInqB,EAAItD,OAASytB,EAEf,OADAnqB,EAAItD,OAASytB,GACN,EAkIX,SAAS7L,EAAOxf,GACd,IAAKA,GAAsB,kBAARA,EACjB,MAAMqR,MAAM41E,EAAe,mBAE7B,IAAI9lF,EAAGyS,EAAG+I,EACRywE,EAAK,CACH,YAAa,EAAGxG,EAChB,WAAY,EAAG,EACf,YAAY,IAAQ,EACpB,WAAY,EAAG,KAGnB,IAAKzlF,EAAI,EAAGA,EAAIisF,EAAGxvF,OAAQuD,GAAK,EAC9B,QAA6B,KAAxBwb,EAAI3c,EAAI4T,EAAIw5E,EAAGjsF,KAAiB,CACnC,KAAIimF,EAAUzqE,KAAOA,GAAKA,GAAKywE,EAAGjsF,EAAI,IAAMwb,GAAKywE,EAAGjsF,EAAI,IACnD,MAAMkQ,MAAM61E,EAAkBtzE,EAAI,KAAO+I,GADcxP,KAAKyG,GAAK+I,EAK1E,QAA8B,KAAzBA,EAAI3c,EAAI4T,EAAI,SAAqB,CAClC,GAAI+I,GAAKjgB,KAAKs1B,KACT,MAAM3gB,MAAM61E,EAAkBtzE,EAAI,KAAO+I,GAD1BxP,KAAKyG,GAAK,IAAIzG,KAAKwP,GAI3C,OAAOxP,MAKT6f,EA5IA,SAASqgE,EAAMrtF,GACb,IAAImB,EAAGyS,EAAGw5E,EASV,SAASpgE,EAAQlxB,GACf,IAAIqL,EAAIgG,KAGR,KAAMhG,aAAa6lB,GAAU,OAAO,IAAIA,EAAQlxB,GAOhD,GAHAqL,EAAEyJ,YAAcoc,EAGZlxB,aAAiBkxB,EAInB,OAHA7lB,EAAEuI,EAAI5T,EAAM4T,EACZvI,EAAEtK,EAAIf,EAAMe,OACZsK,EAAE0O,GAAK/Z,EAAQA,EAAM+Z,GAAK/Z,EAAMgE,QAAUhE,GAI5C,GAAqB,kBAAVA,EAAoB,CAG7B,GAAY,EAARA,IAAc,EAChB,MAAMuV,MAAM61E,EAAkBprF,GAGhC,GAAIA,EAAQ,EACVqL,EAAEuI,EAAI,MACD,MAAI5T,EAAQ,GAOjB,OAHAqL,EAAEuI,EAAI,EACNvI,EAAEtK,EAAI,OACNsK,EAAE0O,EAAI,CAAC,IALP/Z,GAASA,EACTqL,EAAEuI,GAAK,EAST,OAAI5T,MAAYA,GAASA,EAAQ,KAC/BqL,EAAEtK,EAAI,OACNsK,EAAE0O,EAAI,CAAC/Z,KAIF8wF,EAAazlF,EAAGrL,EAAM2F,YACxB,GAAqB,kBAAV3F,EAChB,MAAMuV,MAAM61E,EAAkBprF,GAWhC,GAP4B,KAAxBA,EAAMirC,WAAW,IACnBjrC,EAAQA,EAAMgE,MAAM,GACpBqH,EAAEuI,GAAK,GAEPvI,EAAEuI,EAAI,GAGJ43E,EAAUn8D,KAAKrvB,GACd,MAAMuV,MAAM61E,EAAkBprF,GADR8wF,EAAazlF,EAAGrL,GAoB7C,GAhBAkxB,EAAQxrB,UAAY5G,EAEpBoyB,EAAQsgE,SAAW,EACnBtgE,EAAQugE,WAAa,EACrBvgE,EAAQwgE,WAAa,EACrBxgE,EAAQygE,YAAc,EACtBzgE,EAAQ0gE,cAAgB,EACxB1gE,EAAQ2gE,gBAAkB,EAC1B3gE,EAAQ4gE,gBAAkB,EAC1B5gE,EAAQ6gE,gBAAkB,EAC1B7gE,EAAQ8gE,iBAAmB,EAE3B9gE,EAAQqgE,MAAQA,EAChBrgE,EAAQxN,OAASwN,EAAQ8F,IAAMtT,OAEnB,IAARxf,IAAgBA,EAAM,IACtBA,EAEF,IADAotF,EAAK,CAAC,YAAa,WAAY,WAAY,WAAY,QAClDjsF,EAAI,EAAGA,EAAIisF,EAAGxvF,QAAcoC,EAAIe,eAAe6S,EAAIw5E,EAAGjsF,QAAOnB,EAAI4T,GAAKzG,KAAKyG,IAKlF,OAFAoZ,EAAQxN,OAAOxf,GAERgtB,EA8CCqgE,CAAMrgE,IAET,QAAcA,EAAQA,QAAUA,EAGvC25D,EAAM,IAAI35D,EAAQ,QAQV,KAAN2T,aACE,OAAO3T,GADH,8BA38DT,I,gBCDD,IAAI+gE,EAAar0F,EAAQ,KACrBs0F,EAAYt0F,EAAQ,KACpB6iF,EAAe7iF,EAAQ,KACvBgC,EAAUhC,EAAQ,KAClBihF,EAAiBjhF,EAAQ,KAmD7B+B,EAAOR,QARP,SAAe4/E,EAAYgD,EAAWoQ,GACpC,IAAIxmF,EAAO/L,EAAQm/E,GAAckT,EAAaC,EAI9C,OAHIC,GAAStT,EAAeE,EAAYgD,EAAWoQ,KACjDpQ,OAAY1iF,GAEPsM,EAAKozE,EAAY0B,EAAasB,EAAW,M,gBCpDlD,IAAI3wD,EAAWxzB,EAAQ,KAGnBw0F,EAAW,IAsCfzyF,EAAOR,QAZP,SAAkBa,GAChB,OAAKA,GAGLA,EAAQoxB,EAASpxB,MACHoyF,GAAYpyF,KAAU,IA9BpB,uBA+BFA,EAAQ,GAAK,EAAI,GAGxBA,IAAUA,EAAQA,EAAQ,EAPd,IAAVA,EAAcA,EAAQ,I,gBC/BjC,IA2CImwB,EA3CcvyB,EAAQ,IA2Cdy0F,GAEZ1yF,EAAOR,QAAUgxB,G,qCC7CjBvyB,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACR+B,EAAOR,QAAUvB,EAAQ,KAAoBgD,M,gBChB7C,IAAI3C,EAAUL,EAAQ,KAClB+uC,EAAQ/uC,EAAQ,KAChB8U,EAAO9R,KAAK8R,KACZ4/E,EAAS1xF,KAAK2xF,MAElBt0F,EAAQA,EAAQiB,EAAIjB,EAAQS,IAAM4zF,GAEW,KAAxC1xF,KAAK2wB,MAAM+gE,EAAOh/D,OAAOk/D,aAEzBF,EAAO1gE,MAAaA,KACtB,OAAQ,CACT2gE,MAAO,SAAelnF,GACpB,OAAQA,GAAKA,GAAK,EAAI6pB,IAAM7pB,EAAI,kBAC5BzK,KAAK4wB,IAAInmB,GAAKzK,KAAK6xF,IACnB9lD,EAAMthC,EAAI,EAAIqH,EAAKrH,EAAI,GAAKqH,EAAKrH,EAAI,Q,gBCf7C1L,EAAOR,QAAUvB,EAAQ,IAARA,CAAqB,4BAA6B0B,SAASqG,W,cCA5EhG,EAAOR,SAAU,G,cCAjBQ,EAAOR,QAAU,SAAUqC,GACzB,GAAiB,mBAANA,EAAkB,MAAMsE,UAAUtE,EAAK,uBAClD,OAAOA,I,gBCDT,IAAIvD,EAAUL,EAAQ,KAClB80F,EAAS9xF,KAAK+xF,MAOlB10F,EAAQA,EAAQiB,EAAIjB,EAAQS,IAAMg0F,GAAU,EAAIA,EAAO,GAAK,GAAI,OAAQ,CAAEC,MAL1E,SAASA,EAAMtnF,GACb,OAAQkoB,SAASloB,GAAKA,IAAW,GAALA,EAAaA,EAAI,GAAKsnF,GAAOtnF,GAAKzK,KAAK4wB,IAAInmB,EAAIzK,KAAK8R,KAAKrH,EAAIA,EAAI,IAAxDA,M,gBCJvC,IAAIpN,EAAUL,EAAQ,KAClBg1F,EAAShyF,KAAKiyF,MAGlB50F,EAAQA,EAAQiB,EAAIjB,EAAQS,IAAMk0F,GAAU,EAAIA,GAAQ,GAAK,GAAI,OAAQ,CACvEC,MAAO,SAAexnF,GACpB,OAAmB,IAAXA,GAAKA,GAAUA,EAAIzK,KAAK4wB,KAAK,EAAInmB,IAAM,EAAIA,IAAM,M,gBCN7D,IAAIpN,EAAUL,EAAQ,KAClB+qC,EAAO/qC,EAAQ,KAEnBK,EAAQA,EAAQiB,EAAG,OAAQ,CACzB4zF,KAAM,SAAcznF,GAClB,OAAOs9B,EAAKt9B,GAAKA,GAAKzK,KAAK8Y,IAAI9Y,KAAKwR,IAAI/G,GAAI,EAAI,O,gBCLpD,IAAIpN,EAAUL,EAAQ,KAEtBK,EAAQA,EAAQiB,EAAG,OAAQ,CACzB6zF,MAAO,SAAe1nF,GACpB,OAAQA,KAAO,GAAK,GAAKzK,KAAK2wB,MAAM3wB,KAAK4wB,IAAInmB,EAAI,IAAOzK,KAAKoyF,OAAS,O,gBCJ1E,IAAI/0F,EAAUL,EAAQ,KAClBY,EAAMoC,KAAKpC,IAEfP,EAAQA,EAAQiB,EAAG,OAAQ,CACzB+zF,KAAM,SAAc5nF,GAClB,OAAQ7M,EAAI6M,GAAKA,GAAK7M,GAAK6M,IAAM,M,gBCLrC,IAAIpN,EAAUL,EAAQ,KAClB8+E,EAAS9+E,EAAQ,KAErBK,EAAQA,EAAQiB,EAAIjB,EAAQS,GAAKg+E,GAAU97E,KAAKisC,OAAQ,OAAQ,CAAEA,MAAO6vC,K,gBCHzE,IAAIz+E,EAAUL,EAAQ,KAEtBK,EAAQA,EAAQiB,EAAG,OAAQ,CAAEg0F,OAAQt1F,EAAQ,Q,gBCF7C,IAAI+qC,EAAO/qC,EAAQ,KACf8b,EAAM9Y,KAAK8Y,IACXy5E,EAAUz5E,EAAI,GAAI,IAClB05E,EAAY15E,EAAI,GAAI,IACpB25E,EAAQ35E,EAAI,EAAG,MAAQ,EAAI05E,GAC3BE,EAAQ55E,EAAI,GAAI,KAMpB/Z,EAAOR,QAAUyB,KAAKsyF,QAAU,SAAgB7nF,GAC9C,IAEI1J,EAAGU,EAFHkxF,EAAO3yF,KAAKwR,IAAI/G,GAChBmoF,EAAQ7qD,EAAKt9B,GAEjB,OAAIkoF,EAAOD,EAAcE,GAAwBD,EAAOD,EAAQF,EAPrD,EAAID,EAAU,EAAIA,GAOgDG,EAAQF,GAErF/wF,GADAV,GAAK,EAAIyxF,EAAYD,GAAWI,IAClB5xF,EAAI4xF,IAELF,GAAShxF,GAAUA,EAAemxF,GAAQ5hE,KAChD4hE,EAAQnxF,I,gBCpBjB,IAAIpE,EAAUL,EAAQ,KAClBwU,EAAMxR,KAAKwR,IAEfnU,EAAQA,EAAQiB,EAAG,OAAQ,CACzBu0F,MAAO,SAAenqB,EAAQC,GAM5B,IALA,IAIIz5C,EAAK4C,EAJL4jC,EAAM,EACNjxD,EAAI,EACJquF,EAAO7vF,UAAU/B,OACjB6xF,EAAO,EAEJtuF,EAAIquF,GAELC,GADJ7jE,EAAM1d,EAAIvO,UAAUwB,QAGlBixD,EAAMA,GADN5jC,EAAMihE,EAAO7jE,GACK4C,EAAM,EACxBihE,EAAO7jE,GAGPwmC,GAFSxmC,EAAM,GACf4C,EAAM5C,EAAM6jE,GACCjhE,EACD5C,EAEhB,OAAO6jE,IAAS/hE,IAAWA,IAAW+hE,EAAO/yF,KAAK8R,KAAK4jD,O,gBCrB3D,IAAIr4D,EAAUL,EAAQ,KAClBg2F,EAAQhzF,KAAKizF,KAGjB51F,EAAQA,EAAQiB,EAAIjB,EAAQS,EAAId,EAAQ,IAARA,EAAoB,WAClD,OAAgC,GAAzBg2F,EAAM,WAAY,IAA4B,GAAhBA,EAAM9xF,UACzC,OAAQ,CACV+xF,KAAM,SAAcxoF,EAAGC,GACrB,IAAIwoF,EAAS,MACTC,GAAM1oF,EACNgkF,GAAM/jF,EACN0oF,EAAKF,EAASC,EACdE,EAAKH,EAASzE,EAClB,OAAO,EAAI2E,EAAKC,IAAOH,EAASC,IAAO,IAAME,EAAKD,GAAMF,EAASzE,IAAO,KAAO,KAAO,O,gBCb1F,IAAIpxF,EAAUL,EAAQ,KAEtBK,EAAQA,EAAQiB,EAAG,OAAQ,CACzBmtC,MAAO,SAAehhC,GACpB,OAAOzK,KAAK4wB,IAAInmB,GAAKzK,KAAKszF,W,gBCJ9B,IAAIj2F,EAAUL,EAAQ,KAEtBK,EAAQA,EAAQiB,EAAG,OAAQ,CAAEytC,MAAO/uC,EAAQ,Q,gBCF5C,IAAIK,EAAUL,EAAQ,KAEtBK,EAAQA,EAAQiB,EAAG,OAAQ,CACzBotC,KAAM,SAAcjhC,GAClB,OAAOzK,KAAK4wB,IAAInmB,GAAKzK,KAAK6xF,Q,gBCJ9B,IAAIx0F,EAAUL,EAAQ,KAEtBK,EAAQA,EAAQiB,EAAG,OAAQ,CAAEypC,KAAM/qC,EAAQ,Q,gBCF3C,IAAIK,EAAUL,EAAQ,KAClBivC,EAAQjvC,EAAQ,KAChBY,EAAMoC,KAAKpC,IAGfP,EAAQA,EAAQiB,EAAIjB,EAAQS,EAAId,EAAQ,IAARA,EAAoB,WAClD,OAA8B,QAAtBgD,KAAKuzF,MAAM,UACjB,OAAQ,CACVA,KAAM,SAAc9oF,GAClB,OAAOzK,KAAKwR,IAAI/G,GAAKA,GAAK,GACrBwhC,EAAMxhC,GAAKwhC,GAAOxhC,IAAM,GACxB7M,EAAI6M,EAAI,GAAK7M,GAAK6M,EAAI,KAAOzK,KAAKwrC,EAAI,O,gBCX/C,IAAInuC,EAAUL,EAAQ,KAClBivC,EAAQjvC,EAAQ,KAChBY,EAAMoC,KAAKpC,IAEfP,EAAQA,EAAQiB,EAAG,OAAQ,CACzBk1F,KAAM,SAAc/oF,GAClB,IAAI1J,EAAIkrC,EAAMxhC,GAAKA,GACfrG,EAAI6nC,GAAOxhC,GACf,OAAO1J,GAAKiwB,IAAW,EAAI5sB,GAAK4sB,KAAY,GAAKjwB,EAAIqD,IAAMxG,EAAI6M,GAAK7M,GAAK6M,Q,gBCR7E,IAAIpN,EAAUL,EAAQ,KAEtBK,EAAQA,EAAQiB,EAAG,OAAQ,CACzBm1F,MAAO,SAAe7yF,GACpB,OAAQA,EAAK,EAAIZ,KAAK2wB,MAAQ3wB,KAAKiyB,MAAMrxB,O,gBCL7C5D,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACR+B,EAAOR,QAAUvB,EAAQ,KAAoB01B,Q,6BCX7C,IAAI31B,EAASC,EAAQ,KACjBq5B,EAAMr5B,EAAQ,KACd2iF,EAAM3iF,EAAQ,KACd02F,EAAoB12F,EAAQ,KAC5B0+E,EAAc1+E,EAAQ,KACtBg/E,EAAQh/E,EAAQ,KAChB22F,EAAO32F,EAAQ,KAAkBw3B,EACjC8qD,EAAOtiF,EAAQ,KAAkBw3B,EACjCmnD,EAAK3+E,EAAQ,KAAgBw3B,EAC7Bo/D,EAAQ52F,EAAQ,KAAkBwlC,KAClCqxD,EAAS,SACTC,EAAU/2F,EAAM,OAChBg3F,EAAOD,EACPn9D,EAAQm9D,EAAQhvF,UAEhBkvF,EAAarU,EAAI3iF,EAAQ,IAARA,CAA4B25B,KAAWk9D,EACxDI,EAAO,SAAUzqD,OAAO1kC,UAGxB0rB,EAAW,SAAU0jE,GACvB,IAAItzF,EAAK86E,EAAYwY,GAAU,GAC/B,GAAiB,iBAANtzF,GAAkBA,EAAGM,OAAS,EAAG,CAE1C,IACIizF,EAAOC,EAAOC,EADdh0C,GADJz/C,EAAKqzF,EAAOrzF,EAAG4hC,OAASoxD,EAAMhzF,EAAI,IACnBypC,WAAW,GAE1B,GAAc,KAAVgW,GAA0B,KAAVA,GAElB,GAAc,MADd8zC,EAAQvzF,EAAGypC,WAAW,KACQ,MAAV8pD,EAAe,OAAO7/D,SACrC,GAAc,KAAV+rB,EAAc,CACvB,OAAQz/C,EAAGypC,WAAW,IACpB,KAAK,GAAI,KAAK,GAAI+pD,EAAQ,EAAGC,EAAU,GAAI,MAC3C,KAAK,GAAI,KAAK,IAAKD,EAAQ,EAAGC,EAAU,GAAI,MAC5C,QAAS,OAAQzzF,EAEnB,IAAK,IAAoD0zF,EAAhDC,EAAS3zF,EAAGwC,MAAM,GAAIqB,EAAI,EAAGyQ,EAAIq/E,EAAOrzF,OAAcuD,EAAIyQ,EAAGzQ,IAIpE,IAHA6vF,EAAOC,EAAOlqD,WAAW5lC,IAGd,IAAM6vF,EAAOD,EAAS,OAAO//D,IACxC,OAAOmO,SAAS8xD,EAAQH,IAE5B,OAAQxzF,GAGZ,IAAKkzF,EAAQ,UAAYA,EAAQ,QAAUA,EAAQ,QAAS,CAC1DA,EAAU,SAAgB10F,GACxB,IAAIwB,EAAKqC,UAAU/B,OAAS,EAAI,EAAI9B,EAChC6oD,EAAOx3C,KACX,OAAOw3C,aAAgB6rC,IAEjBE,EAAahY,GAAM,WAAcrlD,EAAMwP,QAAQxnC,KAAKspD,MAAY03B,EAAI13B,IAAS4rC,GAC7EH,EAAkB,IAAIK,EAAKvjE,EAAS5vB,IAAMqnD,EAAM6rC,GAAWtjE,EAAS5vB,IAE5E,IAAK,IAMgBnD,EANZ8F,EAAOvG,EAAQ,KAAoB22F,EAAKI,GAAQ,6KAMvDhyE,MAAM,KAAM8kB,EAAI,EAAQtjC,EAAKrC,OAAS2lC,EAAGA,IACrCxQ,EAAI09D,EAAMt2F,EAAM8F,EAAKsjC,MAAQxQ,EAAIy9D,EAASr2F,IAC5Ck+E,EAAGmY,EAASr2F,EAAK6hF,EAAKyU,EAAMt2F,IAGhCq2F,EAAQhvF,UAAY6xB,EACpBA,EAAMziB,YAAc4/E,EACpB92F,EAAQ,IAARA,CAAuBD,EAAQ82F,EAAQC,K,gBCnEzC,IAAI30F,EAAWnC,EAAQ,KACnB4E,EAAiB5E,EAAQ,KAAgBo5B,IAC7Cr3B,EAAOR,QAAU,SAAU0pD,EAAM5pD,EAAQm2F,GACvC,IACIt2F,EADAI,EAAID,EAAO6V,YAIb,OAFE5V,IAAMk2F,GAAiB,mBAALl2F,IAAoBJ,EAAII,EAAEwG,aAAe0vF,EAAE1vF,WAAa3F,EAASjB,IAAM0D,GAC3FA,EAAeqmD,EAAM/pD,GACd+pD,I,gBCLX,IAAI9oD,EAAWnC,EAAQ,KACnBw+E,EAAWx+E,EAAQ,KACnBy3F,EAAQ,SAAU7Y,EAAGjlD,GAEvB,GADA6kD,EAASI,IACJz8E,EAASw3B,IAAoB,OAAVA,EAAgB,MAAMzxB,UAAUyxB,EAAQ,8BAElE53B,EAAOR,QAAU,CACf63B,IAAKv2B,OAAO+B,iBAAmB,aAAe,GAC5C,SAAU6sB,EAAMimE,EAAOt+D,GACrB,KACEA,EAAMp5B,EAAQ,IAARA,CAAkB0B,SAASC,KAAM3B,EAAQ,KAAkBw3B,EAAE30B,OAAOiF,UAAW,aAAasxB,IAAK,IACnG3H,EAAM,IACVimE,IAAUjmE,aAAgBxvB,OAC1B,MAAOkB,GAAKu0F,GAAQ,EACtB,OAAO,SAAwB9Y,EAAGjlD,GAIhC,OAHA89D,EAAM7Y,EAAGjlD,GACL+9D,EAAO9Y,EAAE/5E,UAAY80B,EACpBP,EAAIwlD,EAAGjlD,GACLilD,GAVX,CAYE,IAAI,QAASn9E,GACjBg2F,MAAOA,I,cCvBTl2F,EAAQi2B,EAAI,GAAG9uB,sB,gBCCf,IAAIi6E,EAAM3iF,EAAQ,KAElB+B,EAAOR,QAAUsB,OAAO,KAAK6F,qBAAqB,GAAK7F,OAAS,SAAUe,GACxE,MAAkB,UAAX++E,EAAI/+E,GAAkBA,EAAGmhB,MAAM,IAAMliB,OAAOe,K,gBCHrD,IAAI+zF,EAAQ33F,EAAQ,KAChB43F,EAAa53F,EAAQ,KAAoB4F,OAAO,SAAU,aAE9DrE,EAAQi2B,EAAI30B,OAAOg1F,qBAAuB,SAA6BjZ,GACrE,OAAO+Y,EAAM/Y,EAAGgZ,K,gBCHlB,IAAIvV,EAAYriF,EAAQ,KACpB83F,EAAW93F,EAAQ,KACnB+3F,EAAkB/3F,EAAQ,KAC9B+B,EAAOR,QAAU,SAAUy2F,GACzB,OAAO,SAAUC,EAAOtnF,EAAI40E,GAC1B,IAGInjF,EAHAw8E,EAAIyD,EAAU4V,GACd/zF,EAAS4zF,EAASlZ,EAAE16E,QACpBM,EAAQuzF,EAAgBxS,EAAWrhF,GAIvC,GAAI8zF,GAAernF,GAAMA,GAAI,KAAOzM,EAASM,GAG3C,IAFApC,EAAQw8E,EAAEp6E,OAEGpC,EAAO,OAAO,OAEtB,KAAM8B,EAASM,EAAOA,IAAS,IAAIwzF,GAAexzF,KAASo6E,IAC5DA,EAAEp6E,KAAWmM,EAAI,OAAOqnF,GAAexzF,GAAS,EACpD,OAAQwzF,IAAgB,K,gBCnB9B,IAAI3G,EAAYrxF,EAAQ,KACpB4U,EAAM5R,KAAK4R,IACf7S,EAAOR,QAAU,SAAUqC,GACzB,OAAOA,EAAK,EAAIgR,EAAIy8E,EAAUztF,GAAK,kBAAoB,I,gBCJzD,IAAIytF,EAAYrxF,EAAQ,KACpB2U,EAAM3R,KAAK2R,IACXC,EAAM5R,KAAK4R,IACf7S,EAAOR,QAAU,SAAUiD,EAAON,GAEhC,OADAM,EAAQ6sF,EAAU7sF,IACH,EAAImQ,EAAInQ,EAAQN,EAAQ,GAAK0Q,EAAIpQ,EAAON,K,gBCJzD,IAAIs6E,EAAWx+E,EAAQ,KACnBk4F,EAAMl4F,EAAQ,KACdm4F,EAAcn4F,EAAQ,KACtBwiF,EAAWxiF,EAAQ,IAARA,CAAyB,YACpCo4F,EAAQ,aAIRC,EAAa,WAEf,IAIIC,EAJAC,EAASv4F,EAAQ,IAARA,CAAyB,UAClCyH,EAAI0wF,EAAYj0F,OAcpB,IAVAq0F,EAAOnrF,MAAMtD,QAAU,OACvB9J,EAAQ,KAAW8wD,YAAYynC,GAC/BA,EAAOC,IAAM,eAGbF,EAAiBC,EAAOE,cAAc9mF,UACvB+mF,OACfJ,EAAeK,MAAMplE,uCACrB+kE,EAAeM,QACfP,EAAaC,EAAex3F,EACrB2G,YAAY4wF,EAAU,UAAYF,EAAY1wF,IACrD,OAAO4wF,KAGTt2F,EAAOR,QAAUsB,OAAOqY,QAAU,SAAgB0jE,EAAGia,GACnD,IAAIp0F,EAQJ,OAPU,OAANm6E,GACFwZ,EAAK,UAAc5Z,EAASI,GAC5Bn6E,EAAS,IAAI2zF,EACbA,EAAK,UAAc,KAEnB3zF,EAAO+9E,GAAY5D,GACdn6E,EAAS4zF,SACM52F,IAAfo3F,EAA2Bp0F,EAASyzF,EAAIzzF,EAAQo0F,K,gBCvCzD,IAAIla,EAAK3+E,EAAQ,KACbw+E,EAAWx+E,EAAQ,KACnB84F,EAAU94F,EAAQ,KAEtB+B,EAAOR,QAAUvB,EAAQ,KAAoB6C,OAAO0Z,iBAAmB,SAA0BqiE,EAAGia,GAClGra,EAASI,GAKT,IAJA,IAGI19E,EAHAqF,EAAOuyF,EAAQD,GACf30F,EAASqC,EAAKrC,OACduD,EAAI,EAEDvD,EAASuD,GAAGk3E,EAAGnnD,EAAEonD,EAAG19E,EAAIqF,EAAKkB,KAAMoxF,EAAW33F,IACrD,OAAO09E,I,gBCVT,IAAI+Y,EAAQ33F,EAAQ,KAChBm4F,EAAcn4F,EAAQ,KAE1B+B,EAAOR,QAAUsB,OAAO0D,MAAQ,SAAcq4E,GAC5C,OAAO+Y,EAAM/Y,EAAGuZ,K,gBCLlB,IAAIxmF,EAAW3R,EAAQ,KAAa2R,SACpC5P,EAAOR,QAAUoQ,GAAYA,EAASwiE,iB,6BCAtC,IAAI9zE,EAAUL,EAAQ,KAClBqxF,EAAYrxF,EAAQ,KACpB+4F,EAAe/4F,EAAQ,KACvBm7D,EAASn7D,EAAQ,KACjBg5F,EAAW,GAAIvtD,QACf9X,EAAQ3wB,KAAK2wB,MACbriB,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACvB2nF,EAAQ,wCACRC,EAAO,IAEPC,EAAW,SAAU3nE,EAAGzb,GAG1B,IAFA,IAAItO,GAAK,EACL8c,EAAKxO,IACAtO,EAAI,GACX8c,GAAMiN,EAAIlgB,EAAK7J,GACf6J,EAAK7J,GAAK8c,EAAK,IACfA,EAAKoP,EAAMpP,EAAK,MAGhB4qE,EAAS,SAAU39D,GAGrB,IAFA,IAAI/pB,EAAI,EACJsO,EAAI,IACCtO,GAAK,GACZsO,GAAKzE,EAAK7J,GACV6J,EAAK7J,GAAKksB,EAAM5d,EAAIyb,GACpBzb,EAAKA,EAAIyb,EAAK,KAGd4nE,EAAc,WAGhB,IAFA,IAAI3xF,EAAI,EACJuO,EAAI,KACCvO,GAAK,GACZ,GAAU,KAANuO,GAAkB,IAANvO,GAAuB,IAAZ6J,EAAK7J,GAAU,CACxC,IAAId,EAAI6lC,OAAOl7B,EAAK7J,IACpBuO,EAAU,KAANA,EAAWrP,EAAIqP,EAAImlD,EAAOx5D,KAAKu3F,EAAM,EAAIvyF,EAAEzC,QAAUyC,EAE3D,OAAOqP,GAEP8F,EAAM,SAANA,EAAgBrO,EAAG+jB,EAAG6nE,GACxB,OAAa,IAAN7nE,EAAU6nE,EAAM7nE,EAAI,IAAM,EAAI1V,EAAIrO,EAAG+jB,EAAI,EAAG6nE,EAAM5rF,GAAKqO,EAAIrO,EAAIA,EAAG+jB,EAAI,EAAG6nE,IAelFh5F,EAAQA,EAAQa,EAAIb,EAAQS,KAAOk4F,IACV,UAAvB,KAAQvtD,QAAQ,IACG,MAAnB,GAAIA,QAAQ,IACS,SAArB,MAAMA,QAAQ,IACuB,yBAArC,mBAAsBA,QAAQ,MAC1BzrC,EAAQ,IAARA,EAAoB,WAExBg5F,EAASr3F,KAAK,QACX,SAAU,CACb8pC,QAAS,SAAiB6tD,GACxB,IAIIn2F,EAAG0rC,EAAGhF,EAAG3zB,EAJTzI,EAAIsrF,EAAatlF,KAAMwlF,GACvBzhE,EAAI65D,EAAUiI,GACdtjF,EAAI,GACJuvB,EAAI2zD,EAER,GAAI1hE,EAAI,GAAKA,EAAI,GAAI,MAAM+hE,WAAWN,GAEtC,GAAIxrF,GAAKA,EAAG,MAAO,MACnB,GAAIA,IAAM,MAAQA,GAAK,KAAM,OAAO++B,OAAO/+B,GAK3C,GAJIA,EAAI,IACNuI,EAAI,IACJvI,GAAKA,GAEHA,EAAI,MAKN,GAHAohC,GADA1rC,EArCI,SAAUsK,GAGlB,IAFA,IAAI+jB,EAAI,EACJjb,EAAK9I,EACF8I,GAAM,MACXib,GAAK,GACLjb,GAAM,KAER,KAAOA,GAAM,GACXib,GAAK,EACLjb,GAAM,EACN,OAAOib,EA2BDoC,CAAInmB,EAAIqO,EAAI,EAAG,GAAI,IAAM,IACrB,EAAIrO,EAAIqO,EAAI,GAAI3Y,EAAG,GAAKsK,EAAIqO,EAAI,EAAG3Y,EAAG,GAC9C0rC,GAAK,kBACL1rC,EAAI,GAAKA,GACD,EAAG,CAGT,IAFAg2F,EAAS,EAAGtqD,GACZhF,EAAIrS,EACGqS,GAAK,GACVsvD,EAAS,IAAK,GACdtvD,GAAK,EAIP,IAFAsvD,EAASr9E,EAAI,GAAI+tB,EAAG,GAAI,GACxBA,EAAI1mC,EAAI,EACD0mC,GAAK,IACVslD,EAAO,GAAK,IACZtlD,GAAK,GAEPslD,EAAO,GAAKtlD,GACZsvD,EAAS,EAAG,GACZhK,EAAO,GACP5pD,EAAI6zD,SAEJD,EAAS,EAAGtqD,GACZsqD,EAAS,IAAMh2F,EAAG,GAClBoiC,EAAI6zD,IAAgBj+B,EAAOx5D,KAAKu3F,EAAM1hE,GAQxC,OAHA+N,EAFE/N,EAAI,EAEFxhB,IADJE,EAAIqvB,EAAErhC,SACQszB,EAAI,KAAO2jC,EAAOx5D,KAAKu3F,EAAM1hE,EAAIthB,GAAKqvB,EAAIA,EAAEn/B,MAAM,EAAG8P,EAAIshB,GAAK,IAAM+N,EAAEn/B,MAAM8P,EAAIshB,IAE1FxhB,EAAIuvB,M,6BC7Gd,IAAI8rD,EAAYrxF,EAAQ,KACpBstD,EAAUttD,EAAQ,KAEtB+B,EAAOR,QAAU,SAAgBmR,GAC/B,IAAI69C,EAAM/jB,OAAO8gB,EAAQ75C,OACrBmP,EAAM,GACN4O,EAAI6/D,EAAU3+E,GAClB,GAAI8e,EAAI,GAAKA,GAAKwC,IAAU,MAAMulE,WAAW,2BAC7C,KAAM/nE,EAAI,GAAIA,KAAO,KAAO++B,GAAOA,GAAc,EAAJ/+B,IAAO5O,GAAO2tC,GAC3D,OAAO3tC,I,6BCTT,IAAIviB,EAAUL,EAAQ,KAClBw5F,EAASx5F,EAAQ,KACjB+4F,EAAe/4F,EAAQ,KACvBy5F,EAAe,GAAI9tD,YAEvBtrC,EAAQA,EAAQa,EAAIb,EAAQS,GAAK04F,GAAO,WAEtC,MAA2C,MAApCC,EAAa93F,KAAK,OAAGF,QACvB+3F,GAAO,WAEZC,EAAa93F,KAAK,QACf,SAAU,CACbgqC,YAAa,SAAqBV,GAChC,IAAIggB,EAAO8tC,EAAatlF,KAAM,6CAC9B,YAAqBhS,IAAdwpC,EAA0BwuD,EAAa93F,KAAKspD,GAAQwuC,EAAa93F,KAAKspD,EAAMhgB,O,gBCdvF,IAAI5qC,EAAUL,EAAQ,KAEtBK,EAAQA,EAAQiB,EAAG,SAAU,CAAEi0F,QAASvyF,KAAK8Y,IAAI,GAAI,O,gBCFrD,IAAIzb,EAAUL,EAAQ,KAClB05F,EAAY15F,EAAQ,KAAa21B,SAErCt1B,EAAQA,EAAQiB,EAAG,SAAU,CAC3Bq0B,SAAU,SAAkB/xB,GAC1B,MAAoB,iBAANA,GAAkB81F,EAAU91F,O,gBCL9C,IAAIvD,EAAUL,EAAQ,KAEtBK,EAAQA,EAAQiB,EAAG,SAAU,CAAEsuF,UAAW5vF,EAAQ,Q,gBCFlD,IAAIK,EAAUL,EAAQ,KAEtBK,EAAQA,EAAQiB,EAAG,SAAU,CAC3B6kC,MAAO,SAAel9B,GAEpB,OAAOA,GAAUA,M,gBCLrB,IAAI5I,EAAUL,EAAQ,KAClB4vF,EAAY5vF,EAAQ,KACpBwU,EAAMxR,KAAKwR,IAEfnU,EAAQA,EAAQiB,EAAG,SAAU,CAC3Bq4F,cAAe,SAAuB1wF,GACpC,OAAO2mF,EAAU3mF,IAAWuL,EAAIvL,IAAW,qB,gBCN/C,IAAI5I,EAAUL,EAAQ,KAEtBK,EAAQA,EAAQiB,EAAG,SAAU,CAAEwsF,iBAAkB,oB,gBCFjD,IAAIztF,EAAUL,EAAQ,KAEtBK,EAAQA,EAAQiB,EAAG,SAAU,CAAEs4F,kBAAmB,oB,gBCHlD,IAAIv5F,EAAUL,EAAQ,KAClB65F,EAAc75F,EAAQ,KAE1BK,EAAQA,EAAQiB,EAAIjB,EAAQS,GAAK40B,OAAOvvB,YAAc0zF,GAAc,SAAU,CAAE1zF,WAAY0zF,K,gBCH5F,IAAIA,EAAc75F,EAAQ,KAAamG,WACnCywF,EAAQ52F,EAAQ,KAAkBwlC,KAEtCzjC,EAAOR,QAAU,EAAIs4F,EAAY75F,EAAQ,KAAkB,SAAWg0B,IAAW,SAAoBu8B,GACnG,IAAI1nD,EAAS+tF,EAAMpqD,OAAO+jB,GAAM,GAC5B9rD,EAASo1F,EAAYhxF,GACzB,OAAkB,IAAXpE,GAAoC,KAApBoE,EAAOsyC,OAAO,IAAa,EAAI12C,GACpDo1F,G,gBCPJ,IAAIx5F,EAAUL,EAAQ,KAClB85F,EAAY95F,EAAQ,KAExBK,EAAQA,EAAQiB,EAAIjB,EAAQS,GAAK40B,OAAO+P,UAAYq0D,GAAY,SAAU,CAAEr0D,SAAUq0D,K,gBCHtF,IAAIA,EAAY95F,EAAQ,KAAaylC,SACjCmxD,EAAQ52F,EAAQ,KAAkBwlC,KAClCgpD,EAAKxuF,EAAQ,KACbimC,EAAM,cAEVlkC,EAAOR,QAAmC,IAAzBu4F,EAAUtL,EAAK,OAA0C,KAA3BsL,EAAUtL,EAAK,QAAiB,SAAkBj+B,EAAK6mC,GACpG,IAAIvuF,EAAS+tF,EAAMpqD,OAAO+jB,GAAM,GAChC,OAAOupC,EAAUjxF,EAASuuF,IAAU,IAAOnxD,EAAIxU,KAAK5oB,GAAU,GAAK,MACjEixF,G,gBCRJ,IAAI12F,EAASpD,EAAQ,KAGjBugF,EAAc19E,OAAOiF,UAGrBT,EAAiBk5E,EAAYl5E,eAO7B0yF,EAAuBxZ,EAAYx4E,SAGnCxE,EAAiBH,EAASA,EAAOI,iBAAc/B,EA6BnDM,EAAOR,QApBP,SAAmBa,GACjB,IAAI43F,EAAQ3yF,EAAe1F,KAAKS,EAAOmB,GACnClB,EAAMD,EAAMmB,GAEhB,IACEnB,EAAMmB,QAAkB9B,EACxB,IAAIw4F,GAAW,EACf,MAAO92F,IAET,IAAIsB,EAASs1F,EAAqBp4F,KAAKS,GAQvC,OAPI63F,IACED,EACF53F,EAAMmB,GAAkBlB,SAEjBD,EAAMmB,IAGVkB,I,cCzCT,IAOIs1F,EAPcl3F,OAAOiF,UAOcC,SAavChG,EAAOR,QAJP,SAAwBa,GACtB,OAAO23F,EAAqBp4F,KAAKS,K,gBClBnC,IAAI83F,EAAcl6F,EAAQ,KACtBm6F,EAAen6F,EAAQ,KACvBo6F,EAA0Bp6F,EAAQ,KAmBtC+B,EAAOR,QAVP,SAAqBf,GACnB,IAAI65F,EAAYF,EAAa35F,GAC7B,OAAwB,GAApB65F,EAAUn2F,QAAem2F,EAAU,GAAG,GACjCD,EAAwBC,EAAU,GAAG,GAAIA,EAAU,GAAG,IAExD,SAAS12F,GACd,OAAOA,IAAWnD,GAAU05F,EAAYv2F,EAAQnD,EAAQ65F,M,gBCjB5D,IAAIjX,EAAQpjF,EAAQ,KAChB0E,EAAc1E,EAAQ,KA4D1B+B,EAAOR,QA5CP,SAAqBoC,EAAQnD,EAAQ65F,EAAWna,GAC9C,IAAI17E,EAAQ61F,EAAUn2F,OAClBA,EAASM,EACT81F,GAAgBpa,EAEpB,GAAc,MAAVv8E,EACF,OAAQO,EAGV,IADAP,EAASd,OAAOc,GACTa,KAAS,CACd,IAAI8M,EAAO+oF,EAAU71F,GACrB,GAAK81F,GAAgBhpF,EAAK,GAClBA,EAAK,KAAO3N,EAAO2N,EAAK,MACtBA,EAAK,KAAM3N,GAEnB,OAAO,EAGX,OAASa,EAAQN,GAAQ,CAEvB,IAAIzD,GADJ6Q,EAAO+oF,EAAU71F,IACF,GACX+1F,EAAW52F,EAAOlD,GAClB0kF,EAAW7zE,EAAK,GAEpB,GAAIgpF,GAAgBhpF,EAAK,IACvB,QAAiB7P,IAAb84F,KAA4B95F,KAAOkD,GACrC,OAAO,MAEJ,CACL,IAAI+gD,EAAQ,IAAI0+B,EAChB,GAAIlD,EACF,IAAIz7E,EAASy7E,EAAWqa,EAAUpV,EAAU1kF,EAAKkD,EAAQnD,EAAQkkD,GAEnE,UAAiBjjD,IAAXgD,EACEC,EAAYygF,EAAUoV,EAAUC,EAA+Cta,EAAYx7B,GAC3FjgD,GAEN,OAAO,GAIb,OAAO,I,cC9CT1C,EAAOR,QALP,WACEkS,KAAKkqE,SAAW,GAChBlqE,KAAK0B,KAAO,I,gBCTd,IAAIslF,EAAez6F,EAAQ,KAMvB06F,EAHaz4F,MAAM6F,UAGC4yF,OA4BxB34F,EAAOR,QAjBP,SAAyBd,GACvB,IAAI6Q,EAAOmC,KAAKkqE,SACZn5E,EAAQi2F,EAAanpF,EAAM7Q,GAE/B,QAAI+D,EAAQ,KAIRA,GADY8M,EAAKpN,OAAS,EAE5BoN,EAAK+8E,MAELqM,EAAO/4F,KAAK2P,EAAM9M,EAAO,KAEzBiP,KAAK0B,MACA,K,gBC/BT,IAAIslF,EAAez6F,EAAQ,KAkB3B+B,EAAOR,QAPP,SAAsBd,GACpB,IAAI6Q,EAAOmC,KAAKkqE,SACZn5E,EAAQi2F,EAAanpF,EAAM7Q,GAE/B,OAAO+D,EAAQ,OAAI/C,EAAY6P,EAAK9M,GAAO,K,gBCf7C,IAAIi2F,EAAez6F,EAAQ,KAe3B+B,EAAOR,QAJP,SAAsBd,GACpB,OAAOg6F,EAAahnF,KAAKkqE,SAAUl9E,IAAQ,I,gBCZ7C,IAAIg6F,EAAez6F,EAAQ,KAyB3B+B,EAAOR,QAbP,SAAsBd,EAAK2B,GACzB,IAAIkP,EAAOmC,KAAKkqE,SACZn5E,EAAQi2F,EAAanpF,EAAM7Q,GAQ/B,OANI+D,EAAQ,KACRiP,KAAK0B,KACP7D,EAAKd,KAAK,CAAC/P,EAAK2B,KAEhBkP,EAAK9M,GAAO,GAAKpC,EAEZqR,O,gBCtBT,IAAI6pE,EAAYt9E,EAAQ,KAcxB+B,EAAOR,QALP,WACEkS,KAAKkqE,SAAW,IAAIL,EACpB7pE,KAAK0B,KAAO,I,cCMdpT,EAAOR,QARP,SAAqBd,GACnB,IAAI6Q,EAAOmC,KAAKkqE,SACZl5E,EAAS6M,EAAI,OAAW7Q,GAG5B,OADAgT,KAAK0B,KAAO7D,EAAK6D,KACV1Q,I,cCDT1C,EAAOR,QAJP,SAAkBd,GAChB,OAAOgT,KAAKkqE,SAAS75E,IAAIrD,K,cCG3BsB,EAAOR,QAJP,SAAkBd,GAChB,OAAOgT,KAAKkqE,SAAStkD,IAAI54B,K,gBCV3B,IAAI68E,EAAYt9E,EAAQ,KACpBk5B,EAAMl5B,EAAQ,KACd+/E,EAAW//E,EAAQ,KA+BvB+B,EAAOR,QAhBP,SAAkBd,EAAK2B,GACrB,IAAIkP,EAAOmC,KAAKkqE,SAChB,GAAIrsE,aAAgBgsE,EAAW,CAC7B,IAAIqd,EAAQrpF,EAAKqsE,SACjB,IAAKzkD,GAAQyhE,EAAMz2F,OAAS02F,IAG1B,OAFAD,EAAMnqF,KAAK,CAAC/P,EAAK2B,IACjBqR,KAAK0B,OAAS7D,EAAK6D,KACZ1B,KAETnC,EAAOmC,KAAKkqE,SAAW,IAAIoC,EAAS4a,GAItC,OAFArpF,EAAK8nB,IAAI34B,EAAK2B,GACdqR,KAAK0B,KAAO7D,EAAK6D,KACV1B,O,gBC9BT,IAAIzP,EAAahE,EAAQ,KACrB66F,EAAW76F,EAAQ,KACnBmC,EAAWnC,EAAQ,KACnB86F,EAAW96F,EAAQ,KASnB+6F,EAAe,8BAGfC,EAAYt5F,SAASoG,UACrBy4E,EAAc19E,OAAOiF,UAGrBu7E,EAAe2X,EAAUjzF,SAGzBV,EAAiBk5E,EAAYl5E,eAG7B4zF,EAAa1/D,OAAO,IACtB8nD,EAAa1hF,KAAK0F,GAAgB2b,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhFjhB,EAAOR,QARP,SAAsBa,GACpB,SAAKD,EAASC,IAAUy4F,EAASz4F,MAGnB4B,EAAW5B,GAAS64F,EAAaF,GAChCtpE,KAAKqpE,EAAS14F,M,gBC3C/B,IAAI84F,EAAal7F,EAAQ,KAGrBm7F,EAAc,WAChB,IAAIzY,EAAM,SAASx/E,KAAKg4F,GAAcA,EAAW30F,MAAQ20F,EAAW30F,KAAKi8E,UAAY,IACrF,OAAOE,EAAO,iBAAmBA,EAAO,GAFxB,GAgBlB3gF,EAAOR,QAJP,SAAkBwM,GAChB,QAASotF,GAAeA,KAAcptF,I,gBChBxC,IAGImtF,EAHOl7F,EAAQ,KAGG,sBAEtB+B,EAAOR,QAAU25F,G,cCOjBn5F,EAAOR,QAJP,SAAkBoC,EAAQlD,GACxB,OAAiB,MAAVkD,OAAiBlC,EAAYkC,EAAOlD,K,gBCT7C,IAAI26F,EAAOp7F,EAAQ,KACfs9E,EAAYt9E,EAAQ,KACpBk5B,EAAMl5B,EAAQ,KAkBlB+B,EAAOR,QATP,WACEkS,KAAK0B,KAAO,EACZ1B,KAAKkqE,SAAW,CACd,KAAQ,IAAIyd,EACZ,IAAO,IAAKliE,GAAOokD,GACnB,OAAU,IAAI8d,K,gBChBlB,IAAIC,EAAYr7F,EAAQ,KACpBs7F,EAAat7F,EAAQ,KACrBu7F,EAAUv7F,EAAQ,KAClBw7F,EAAUx7F,EAAQ,KAClBy7F,EAAUz7F,EAAQ,KAStB,SAASo7F,EAAK5hE,GACZ,IAAIh1B,GAAS,EACTN,EAAoB,MAAXs1B,EAAkB,EAAIA,EAAQt1B,OAG3C,IADAuP,KAAK8lB,UACI/0B,EAAQN,GAAQ,CACvB,IAAI+C,EAAQuyB,EAAQh1B,GACpBiP,KAAK2lB,IAAInyB,EAAM,GAAIA,EAAM,KAK7Bm0F,EAAKtzF,UAAUyxB,MAAQ8hE,EACvBD,EAAKtzF,UAAL,OAA2BwzF,EAC3BF,EAAKtzF,UAAUhE,IAAMy3F,EACrBH,EAAKtzF,UAAUuxB,IAAMmiE,EACrBJ,EAAKtzF,UAAUsxB,IAAMqiE,EAErB15F,EAAOR,QAAU65F,G,gBC/BjB,IAAI5d,EAAex9E,EAAQ,KAc3B+B,EAAOR,QALP,WACEkS,KAAKkqE,SAAWH,EAAeA,EAAa,MAAQ,GACpD/pE,KAAK0B,KAAO,I,cCKdpT,EAAOR,QANP,SAAoBd,GAClB,IAAIgE,EAASgP,KAAK4lB,IAAI54B,WAAegT,KAAKkqE,SAASl9E,GAEnD,OADAgT,KAAK0B,MAAQ1Q,EAAS,EAAI,EACnBA,I,gBCbT,IAAI+4E,EAAex9E,EAAQ,KASvBqH,EAHcxE,OAAOiF,UAGQT,eAoBjCtF,EAAOR,QATP,SAAiBd,GACf,IAAI6Q,EAAOmC,KAAKkqE,SAChB,GAAIH,EAAc,CAChB,IAAI/4E,EAAS6M,EAAK7Q,GAClB,MArBiB,8BAqBVgE,OAA4BhD,EAAYgD,EAEjD,OAAO4C,EAAe1F,KAAK2P,EAAM7Q,GAAO6Q,EAAK7Q,QAAOgB,I,gBC1BtD,IAAI+7E,EAAex9E,EAAQ,KAMvBqH,EAHcxE,OAAOiF,UAGQT,eAgBjCtF,EAAOR,QALP,SAAiBd,GACf,IAAI6Q,EAAOmC,KAAKkqE,SAChB,OAAOH,OAA8B/7E,IAAd6P,EAAK7Q,GAAsB4G,EAAe1F,KAAK2P,EAAM7Q,K,gBCnB9E,IAAI+8E,EAAex9E,EAAQ,KAsB3B+B,EAAOR,QAPP,SAAiBd,EAAK2B,GACpB,IAAIkP,EAAOmC,KAAKkqE,SAGhB,OAFAlqE,KAAK0B,MAAQ1B,KAAK4lB,IAAI54B,GAAO,EAAI,EACjC6Q,EAAK7Q,GAAQ+8E,QAA0B/7E,IAAVW,EAfV,4BAekDA,EAC9DqR,O,gBCnBT,IAAIioF,EAAa17F,EAAQ,KAiBzB+B,EAAOR,QANP,SAAwBd,GACtB,IAAIgE,EAASi3F,EAAWjoF,KAAMhT,GAAjB,OAAgCA,GAE7C,OADAgT,KAAK0B,MAAQ1Q,EAAS,EAAI,EACnBA,I,cCAT1C,EAAOR,QAPP,SAAmBa,GACjB,IAAI9B,SAAc8B,EAClB,MAAgB,UAAR9B,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV8B,EACU,OAAVA,I,gBCXP,IAAIs5F,EAAa17F,EAAQ,KAezB+B,EAAOR,QAJP,SAAqBd,GACnB,OAAOi7F,EAAWjoF,KAAMhT,GAAKqD,IAAIrD,K,gBCZnC,IAAIi7F,EAAa17F,EAAQ,KAezB+B,EAAOR,QAJP,SAAqBd,GACnB,OAAOi7F,EAAWjoF,KAAMhT,GAAK44B,IAAI54B,K,gBCZnC,IAAIi7F,EAAa17F,EAAQ,KAqBzB+B,EAAOR,QATP,SAAqBd,EAAK2B,GACxB,IAAIkP,EAAOoqF,EAAWjoF,KAAMhT,GACxB0U,EAAO7D,EAAK6D,KAIhB,OAFA7D,EAAK8nB,IAAI34B,EAAK2B,GACdqR,KAAK0B,MAAQ7D,EAAK6D,MAAQA,EAAO,EAAI,EAC9B1B,O,gBClBT,IAAI2vE,EAAQpjF,EAAQ,KAChB27F,EAAc37F,EAAQ,KACtB47F,EAAa57F,EAAQ,KACrB67F,EAAe77F,EAAQ,KACvB87F,EAAS97F,EAAQ,KACjBgC,EAAUhC,EAAQ,KAClB0kF,EAAW1kF,EAAQ,KACnBklF,EAAellF,EAAQ,KAMvB+7F,EAAU,qBACVC,EAAW,iBACXC,EAAY,kBAMZ50F,EAHcxE,OAAOiF,UAGQT,eA6DjCtF,EAAOR,QA7CP,SAAyBoC,EAAQgB,EAAOs7E,EAASC,EAAYsD,EAAW9+B,GACtE,IAAIw3C,EAAWl6F,EAAQ2B,GACnBw4F,EAAWn6F,EAAQ2C,GACnBy3F,EAASF,EAAWF,EAAWF,EAAOn4F,GACtC04F,EAASF,EAAWH,EAAWF,EAAOn3F,GAKtC23F,GAHJF,EAASA,GAAUL,EAAUE,EAAYG,IAGhBH,EACrBM,GAHJF,EAASA,GAAUN,EAAUE,EAAYI,IAGhBJ,EACrBO,EAAYJ,GAAUC,EAE1B,GAAIG,GAAa9X,EAAS/gF,GAAS,CACjC,IAAK+gF,EAAS//E,GACZ,OAAO,EAETu3F,GAAW,EACXI,GAAW,EAEb,GAAIE,IAAcF,EAEhB,OADA53C,IAAUA,EAAQ,IAAI0+B,GACd8Y,GAAYhX,EAAavhF,GAC7Bg4F,EAAYh4F,EAAQgB,EAAOs7E,EAASC,EAAYsD,EAAW9+B,GAC3Dk3C,EAAWj4F,EAAQgB,EAAOy3F,EAAQnc,EAASC,EAAYsD,EAAW9+B,GAExE,KArDyB,EAqDnBu7B,GAAiC,CACrC,IAAIwc,EAAeH,GAAYj1F,EAAe1F,KAAKgC,EAAQ,eACvD+4F,EAAeH,GAAYl1F,EAAe1F,KAAKgD,EAAO,eAE1D,GAAI83F,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAe94F,EAAOvB,QAAUuB,EAC/Ci5F,EAAeF,EAAe/3F,EAAMvC,QAAUuC,EAGlD,OADA+/C,IAAUA,EAAQ,IAAI0+B,GACfI,EAAUmZ,EAAcC,EAAc3c,EAASC,EAAYx7B,IAGtE,QAAK83C,IAGL93C,IAAUA,EAAQ,IAAI0+B,GACfyY,EAAal4F,EAAQgB,EAAOs7E,EAASC,EAAYsD,EAAW9+B,M,cC7DrE3iD,EAAOR,QALP,SAAqBa,GAEnB,OADAqR,KAAKkqE,SAASvkD,IAAIh3B,EAbC,6BAcZqR,O,cCFT1R,EAAOR,QAJP,SAAqBa,GACnB,OAAOqR,KAAKkqE,SAAStkD,IAAIj3B,K,gBCV3B,IAAIgB,EAASpD,EAAQ,KACjB68F,EAAa78F,EAAQ,KACrBu9E,EAAKv9E,EAAQ,KACb27F,EAAc37F,EAAQ,KACtB88F,EAAa98F,EAAQ,KACrB+8F,EAAa/8F,EAAQ,KAqBrBg9F,EAAc55F,EAASA,EAAO0E,eAAYrG,EAC1Cw7F,EAAgBD,EAAcA,EAAY7zD,aAAU1nC,EAoFxDM,EAAOR,QAjEP,SAAoBoC,EAAQgB,EAAOtC,EAAK49E,EAASC,EAAYsD,EAAW9+B,GACtE,OAAQriD,GACN,IAzBc,oBA0BZ,GAAKsB,EAAOu5F,YAAcv4F,EAAMu4F,YAC3Bv5F,EAAOw5F,YAAcx4F,EAAMw4F,WAC9B,OAAO,EAETx5F,EAASA,EAAOiY,OAChBjX,EAAQA,EAAMiX,OAEhB,IAlCiB,uBAmCf,QAAKjY,EAAOu5F,YAAcv4F,EAAMu4F,aAC3B1Z,EAAU,IAAIqZ,EAAWl5F,GAAS,IAAIk5F,EAAWl4F,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAO44E,GAAI55E,GAASgB,GAEtB,IAxDW,iBAyDT,OAAOhB,EAAOpD,MAAQoE,EAAMpE,MAAQoD,EAAOy5F,SAAWz4F,EAAMy4F,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAOz5F,GAAWgB,EAAQ,GAE5B,IAjES,eAkEP,IAAI04F,EAAUP,EAEhB,IAjES,eAkEP,IAAIrZ,EA5EiB,EA4ELxD,EAGhB,GAFAod,IAAYA,EAAUN,GAElBp5F,EAAOwR,MAAQxQ,EAAMwQ,OAASsuE,EAChC,OAAO,EAGT,IAAI6Z,EAAU54C,EAAM5gD,IAAIH,GACxB,GAAI25F,EACF,OAAOA,GAAW34F,EAEpBs7E,GAtFuB,EAyFvBv7B,EAAMtrB,IAAIz1B,EAAQgB,GAClB,IAAIF,EAASk3F,EAAY0B,EAAQ15F,GAAS05F,EAAQ14F,GAAQs7E,EAASC,EAAYsD,EAAW9+B,GAE1F,OADAA,EAAK,OAAW/gD,GACTc,EAET,IAnFY,kBAoFV,GAAIw4F,EACF,OAAOA,EAAct7F,KAAKgC,IAAWs5F,EAAct7F,KAAKgD,GAG9D,OAAO,I,gBC5GT,IAGIk4F,EAHO78F,EAAQ,KAGG68F,WAEtB96F,EAAOR,QAAUs7F,G,cCYjB96F,EAAOR,QAVP,SAAoB2O,GAClB,IAAI1L,GAAS,EACTC,EAASxC,MAAMiO,EAAIiF,MAKvB,OAHAjF,EAAIG,SAAQ,SAASjO,EAAO3B,GAC1BgE,IAASD,GAAS,CAAC/D,EAAK2B,MAEnBqC,I,gBCdT,IAAI84F,EAAav9F,EAAQ,KASrBqH,EAHcxE,OAAOiF,UAGQT,eAgFjCtF,EAAOR,QAjEP,SAAsBoC,EAAQgB,EAAOs7E,EAASC,EAAYsD,EAAW9+B,GACnE,IAAI++B,EAtBqB,EAsBTxD,EACZud,EAAWD,EAAW55F,GACtB85F,EAAYD,EAASt5F,OAIzB,GAAIu5F,GAHWF,EAAW54F,GACDT,SAEMu/E,EAC7B,OAAO,EAGT,IADA,IAAIj/E,EAAQi5F,EACLj5F,KAAS,CACd,IAAI/D,EAAM+8F,EAASh5F,GACnB,KAAMi/E,EAAYhjF,KAAOkE,EAAQ0C,EAAe1F,KAAKgD,EAAOlE,IAC1D,OAAO,EAIX,IAAIi9F,EAAah5C,EAAM5gD,IAAIH,GACvBkgF,EAAan/B,EAAM5gD,IAAIa,GAC3B,GAAI+4F,GAAc7Z,EAChB,OAAO6Z,GAAc/4F,GAASk/E,GAAclgF,EAE9C,IAAIc,GAAS,EACbigD,EAAMtrB,IAAIz1B,EAAQgB,GAClB+/C,EAAMtrB,IAAIz0B,EAAOhB,GAGjB,IADA,IAAIg6F,EAAWla,IACNj/E,EAAQi5F,GAAW,CAE1B,IAAIlD,EAAW52F,EADflD,EAAM+8F,EAASh5F,IAEXw/E,EAAWr/E,EAAMlE,GAErB,GAAIy/E,EACF,IAAI+D,EAAWR,EACXvD,EAAW8D,EAAUuW,EAAU95F,EAAKkE,EAAOhB,EAAQ+gD,GACnDw7B,EAAWqa,EAAUvW,EAAUvjF,EAAKkD,EAAQgB,EAAO+/C,GAGzD,UAAmBjjD,IAAbwiF,EACGsW,IAAavW,GAAYR,EAAU+W,EAAUvW,EAAU/D,EAASC,EAAYx7B,GAC7Eu/B,GACD,CACLx/E,GAAS,EACT,MAEFk5F,IAAaA,EAAkB,eAAPl9F,GAE1B,GAAIgE,IAAWk5F,EAAU,CACvB,IAAIC,EAAUj6F,EAAOuT,YACjB2mF,EAAUl5F,EAAMuS,YAGhB0mF,GAAWC,KACV,gBAAiBl6F,MAAU,gBAAiBgB,IACzB,mBAAXi5F,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvDp5F,GAAS,GAKb,OAFAigD,EAAK,OAAW/gD,GAChB+gD,EAAK,OAAW//C,GACTF,I,gBCtFT,IAAIq5F,EAAiB99F,EAAQ,KACzB+9F,EAAa/9F,EAAQ,KACrBuG,EAAOvG,EAAQ,KAanB+B,EAAOR,QAJP,SAAoBoC,GAClB,OAAOm6F,EAAen6F,EAAQ4C,EAAMw3F,K,gBCZtC,IAAIhT,EAAY/qF,EAAQ,KACpBgC,EAAUhC,EAAQ,KAkBtB+B,EAAOR,QALP,SAAwBoC,EAAQq6F,EAAUC,GACxC,IAAIx5F,EAASu5F,EAASr6F,GACtB,OAAO3B,EAAQ2B,GAAUc,EAASsmF,EAAUtmF,EAAQw5F,EAAYt6F,M,gBChBlE,IAAIu6F,EAAcl+F,EAAQ,KACtBm+F,EAAYn+F,EAAQ,KAMpB0I,EAHc7F,OAAOiF,UAGcY,qBAGnC01F,EAAmBv7F,OAAO2F,sBAS1Bu1F,EAAcK,EAA+B,SAASz6F,GACxD,OAAc,MAAVA,EACK,IAETA,EAASd,OAAOc,GACTu6F,EAAYE,EAAiBz6F,IAAS,SAASgY,GACpD,OAAOjT,EAAqB/G,KAAKgC,EAAQgY,QANRwiF,EAUrCp8F,EAAOR,QAAUw8F,G,cCPjBh8F,EAAOR,QAJP,WACE,MAAO,K,gBCnBT,IAAI88F,EAAYr+F,EAAQ,KACpBwgF,EAAcxgF,EAAQ,KACtBgC,EAAUhC,EAAQ,KAClB0kF,EAAW1kF,EAAQ,KACnBo+E,EAAUp+E,EAAQ,KAClBklF,EAAellF,EAAQ,KAMvBqH,EAHcxE,OAAOiF,UAGQT,eAqCjCtF,EAAOR,QA3BP,SAAuBa,EAAOk8F,GAC5B,IAAIC,EAAQv8F,EAAQI,GAChBo8F,GAASD,GAAS/d,EAAYp+E,GAC9Bq8F,GAAUF,IAAUC,GAAS9Z,EAAStiF,GACtCs8F,GAAUH,IAAUC,IAAUC,GAAUvZ,EAAa9iF,GACrDu8F,EAAcJ,GAASC,GAASC,GAAUC,EAC1Cj6F,EAASk6F,EAAcN,EAAUj8F,EAAM8B,OAAQsoC,QAAU,GACzDtoC,EAASO,EAAOP,OAEpB,IAAK,IAAIzD,KAAO2B,GACTk8F,IAAaj3F,EAAe1F,KAAKS,EAAO3B,IACvCk+F,IAEQ,UAAPl+F,GAECg+F,IAAkB,UAAPh+F,GAA0B,UAAPA,IAE9Bi+F,IAAkB,UAAPj+F,GAA0B,cAAPA,GAA8B,cAAPA,IAEtD29E,EAAQ39E,EAAKyD,KAElBO,EAAO+L,KAAK/P,GAGhB,OAAOgE,I,cC1BT1C,EAAOR,QAVP,SAAmBiwB,EAAGjtB,GAIpB,IAHA,IAAIC,GAAS,EACTC,EAASxC,MAAMuvB,KAEVhtB,EAAQgtB,GACf/sB,EAAOD,GAASD,EAASC,GAE3B,OAAOC,I,gBChBT,IAAIvC,EAAalC,EAAQ,KACrBmE,EAAenE,EAAQ,KAgB3B+B,EAAOR,QAJP,SAAyBa,GACvB,OAAO+B,EAAa/B,IAVR,sBAUkBF,EAAWE,K,cCG3CL,EAAOR,QAJP,WACE,OAAO,I,gBCdT,IAAIW,EAAalC,EAAQ,KACrBiE,EAAWjE,EAAQ,KACnBmE,EAAenE,EAAQ,KA8BvB4+F,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,EAc7B78F,EAAOR,QALP,SAA0Ba,GACxB,OAAO+B,EAAa/B,IAClB6B,EAAS7B,EAAM8B,WAAa06F,EAAe18F,EAAWE,M,iBCxD1D,gBAAIM,EAAa1C,EAAQ,KAGrBskF,EAA4C/iF,IAAYA,EAAQgjF,UAAYhjF,EAG5EijF,EAAaF,GAAgC,iBAAVviF,GAAsBA,IAAWA,EAAOwiF,UAAYxiF,EAMvF88F,EAHgBra,GAAcA,EAAWjjF,UAAY+iF,GAGtB5hF,EAAWo8F,QAG1C9Z,EAAY,WACd,IAEE,IAAIh1E,EAAQw0E,GAAcA,EAAWxkF,SAAWwkF,EAAWxkF,QAAQ,QAAQgQ,MAE3E,OAAIA,GAKG6uF,GAAeA,EAAYE,SAAWF,EAAYE,QAAQ,QACjE,MAAO57F,KAXK,GAchBpB,EAAOR,QAAUyjF,I,sCC7BjB,IAAIga,EAAch/F,EAAQ,KACtBi/F,EAAaj/F,EAAQ,KAMrBqH,EAHcxE,OAAOiF,UAGQT,eAsBjCtF,EAAOR,QAbP,SAAkBoC,GAChB,IAAKq7F,EAAYr7F,GACf,OAAOs7F,EAAWt7F,GAEpB,IAAIc,EAAS,GACb,IAAK,IAAIhE,KAAOoC,OAAOc,GACjB0D,EAAe1F,KAAKgC,EAAQlD,IAAe,eAAPA,GACtCgE,EAAO+L,KAAK/P,GAGhB,OAAOgE,I,cCzBT,IAAI87E,EAAc19E,OAAOiF,UAgBzB/F,EAAOR,QAPP,SAAqBa,GACnB,IAAI+rF,EAAO/rF,GAASA,EAAM8U,YAG1B,OAAO9U,KAFqB,mBAAR+rF,GAAsBA,EAAKrmF,WAAcy4E,K,gBCZ/D,IAGI0e,EAHUj/F,EAAQ,IAGLk/F,CAAQr8F,OAAO0D,KAAM1D,QAEtCd,EAAOR,QAAU09F,G,gBCLjB,IAAIh3D,EAAWjoC,EAAQ,KACnBk5B,EAAMl5B,EAAQ,KACdm/F,EAAUn/F,EAAQ,KAClB05B,EAAM15B,EAAQ,KACdo/F,EAAUp/F,EAAQ,KAClBkC,EAAalC,EAAQ,KACrB86F,EAAW96F,EAAQ,KAGnBq/F,EAAS,eAETC,EAAa,mBACbC,EAAS,eACTC,EAAa,mBAEbC,EAAc,oBAGdC,EAAqB5E,EAAS7yD,GAC9B03D,EAAgB7E,EAAS5hE,GACzB0mE,EAAoB9E,EAASqE,GAC7BU,EAAgB/E,EAASphE,GACzBomE,EAAoBhF,EAASsE,GAS7BtD,EAAS55F,GAGR+lC,GAAY6zD,EAAO,IAAI7zD,EAAS,IAAIF,YAAY,MAAQ03D,GACxDvmE,GAAO4iE,EAAO,IAAI5iE,IAAQmmE,GAC1BF,GAAWrD,EAAOqD,EAAQY,YAAcT,GACxC5lE,GAAOoiE,EAAO,IAAIpiE,IAAQ6lE,GAC1BH,GAAWtD,EAAO,IAAIsD,IAAYI,KACrC1D,EAAS,SAAS15F,GAChB,IAAIqC,EAASvC,EAAWE,GACpB+rF,EA/BQ,mBA+BD1pF,EAAsBrC,EAAM8U,iBAAczV,EACjDu+F,EAAa7R,EAAO2M,EAAS3M,GAAQ,GAEzC,GAAI6R,EACF,OAAQA,GACN,KAAKN,EAAoB,OAAOD,EAChC,KAAKE,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAC/B,KAAKO,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAGnC,OAAO/6F,IAIX1C,EAAOR,QAAUu6F,G,gBCzDjB,IAII7zD,EAJYjoC,EAAQ,IAITy9E,CAHJz9E,EAAQ,KAGY,YAE/B+B,EAAOR,QAAU0mC,G,gBCNjB,IAIIk3D,EAJYn/F,EAAQ,IAIVy9E,CAHHz9E,EAAQ,KAGW,WAE9B+B,EAAOR,QAAU49F,G,gBCNjB,IAIIC,EAJYp/F,EAAQ,IAIVy9E,CAHHz9E,EAAQ,KAGW,WAE9B+B,EAAOR,QAAU69F,G,gBCNjB,IAAIa,EAAqBjgG,EAAQ,KAC7BuG,EAAOvG,EAAQ,KAsBnB+B,EAAOR,QAbP,SAAsBoC,GAIpB,IAHA,IAAIc,EAAS8B,EAAK5C,GACdO,EAASO,EAAOP,OAEbA,KAAU,CACf,IAAIzD,EAAMgE,EAAOP,GACb9B,EAAQuB,EAAOlD,GAEnBgE,EAAOP,GAAU,CAACzD,EAAK2B,EAAO69F,EAAmB79F,IAEnD,OAAOqC,I,gBCpBT,IAAIC,EAAc1E,EAAQ,KACtB8D,EAAM9D,EAAQ,KACdkgG,EAAQlgG,EAAQ,KAChBolF,EAAQplF,EAAQ,KAChBigG,EAAqBjgG,EAAQ,KAC7Bo6F,EAA0Bp6F,EAAQ,KAClC2gF,EAAQ3gF,EAAQ,KA0BpB+B,EAAOR,QAZP,SAA6B0V,EAAMkuE,GACjC,OAAIC,EAAMnuE,IAASgpF,EAAmB9a,GAC7BiV,EAAwBzZ,EAAM1pE,GAAOkuE,GAEvC,SAASxhF,GACd,IAAI42F,EAAWz2F,EAAIH,EAAQsT,GAC3B,YAAqBxV,IAAb84F,GAA0BA,IAAapV,EAC3C+a,EAAMv8F,EAAQsT,GACdvS,EAAYygF,EAAUoV,EAAUC,M,gBC5BxC,IAAI2F,EAAgBngG,EAAQ,KAGxBogG,EAAa,mGAGbC,EAAe,WASfhb,EAAe8a,GAAc,SAASt3F,GACxC,IAAIpE,EAAS,GAOb,OAN6B,KAAzBoE,EAAOwkC,WAAW,IACpB5oC,EAAO+L,KAAK,IAEd3H,EAAOma,QAAQo9E,GAAY,SAASv1D,EAAO5hC,EAAQq3F,EAAOC,GACxD97F,EAAO+L,KAAK8vF,EAAQC,EAAUv9E,QAAQq9E,EAAc,MAASp3F,GAAU4hC,MAElEpmC,KAGT1C,EAAOR,QAAU8jF,G,gBC1BjB,IAAItyD,EAAU/yB,EAAQ,KAyBtB+B,EAAOR,QAZP,SAAuBwM,GACrB,IAAItJ,EAASsuB,EAAQhlB,GAAM,SAAStN,GAIlC,OAfmB,MAYf8yE,EAAMp+D,MACRo+D,EAAMh6C,QAED94B,KAGL8yE,EAAQ9uE,EAAO8uE,MACnB,OAAO9uE,I,gBCtBT,IAAIs7E,EAAW//E,EAAQ,KAiDvB,SAAS+yB,EAAQhlB,EAAMyyF,GACrB,GAAmB,mBAARzyF,GAAmC,MAAZyyF,GAAuC,mBAAZA,EAC3D,MAAM,IAAIt4F,UAhDQ,uBAkDpB,IAAIu4F,EAAW,SAAXA,IACF,IAAI3hF,EAAO7Y,UACPxF,EAAM+/F,EAAWA,EAAShtF,MAAMC,KAAMqL,GAAQA,EAAK,GACnDy0D,EAAQktB,EAASltB,MAErB,GAAIA,EAAMl6C,IAAI54B,GACZ,OAAO8yE,EAAMzvE,IAAIrD,GAEnB,IAAIgE,EAASsJ,EAAKyF,MAAMC,KAAMqL,GAE9B,OADA2hF,EAASltB,MAAQA,EAAMn6C,IAAI34B,EAAKgE,IAAW8uE,EACpC9uE,GAGT,OADAg8F,EAASltB,MAAQ,IAAKxgD,EAAQ2tE,OAAS3gB,GAChC0gB,EAIT1tE,EAAQ2tE,MAAQ3gB,EAEhBh+E,EAAOR,QAAUwxB,G,gBCxEjB,IAAI4tE,EAAe3gG,EAAQ,KA2B3B+B,EAAOR,QAJP,SAAkBa,GAChB,OAAgB,MAATA,EAAgB,GAAKu+F,EAAav+F,K,gBCxB3C,IAAIgB,EAASpD,EAAQ,KACjB4gG,EAAW5gG,EAAQ,KACnBgC,EAAUhC,EAAQ,KAClBg+E,EAAWh+E,EAAQ,KAMnBg9F,EAAc55F,EAASA,EAAO0E,eAAYrG,EAC1Co/F,EAAiB7D,EAAcA,EAAYj1F,cAAWtG,EA0B1DM,EAAOR,QAhBP,SAASo/F,EAAav+F,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIJ,EAAQI,GAEV,OAAOw+F,EAASx+F,EAAOu+F,GAAgB,GAEzC,GAAI3iB,EAAS57E,GACX,OAAOy+F,EAAiBA,EAAel/F,KAAKS,GAAS,GAEvD,IAAIqC,EAAUrC,EAAQ,GACtB,MAAkB,KAAVqC,GAAkB,EAAIrC,IA3BjB,SA2BwC,KAAOqC,I,gBCjC9D,IAAIq8F,EAAY9gG,EAAQ,KACpB+gG,EAAU/gG,EAAQ,KAgCtB+B,EAAOR,QAJP,SAAeoC,EAAQsT,GACrB,OAAiB,MAAVtT,GAAkBo9F,EAAQp9F,EAAQsT,EAAM6pF,K,cClBjD/+F,EAAOR,QAJP,SAAmBoC,EAAQlD,GACzB,OAAiB,MAAVkD,GAAkBlD,KAAOoC,OAAOc,K,gBCTzC,IAAI+8E,EAAW1gF,EAAQ,KACnBwgF,EAAcxgF,EAAQ,KACtBgC,EAAUhC,EAAQ,KAClBo+E,EAAUp+E,EAAQ,KAClBiE,EAAWjE,EAAQ,KACnB2gF,EAAQ3gF,EAAQ,KAiCpB+B,EAAOR,QAtBP,SAAiBoC,EAAQsT,EAAM+pF,GAO7B,IAJA,IAAIx8F,GAAS,EACTN,GAHJ+S,EAAOypE,EAASzpE,EAAMtT,IAGJO,OACdO,GAAS,IAEJD,EAAQN,GAAQ,CACvB,IAAIzD,EAAMkgF,EAAM1pE,EAAKzS,IACrB,KAAMC,EAAmB,MAAVd,GAAkBq9F,EAAQr9F,EAAQlD,IAC/C,MAEFkD,EAASA,EAAOlD,GAElB,OAAIgE,KAAYD,GAASN,EAChBO,KAETP,EAAmB,MAAVP,EAAiB,EAAIA,EAAOO,SAClBD,EAASC,IAAWk6E,EAAQ39E,EAAKyD,KACjDlC,EAAQ2B,IAAW68E,EAAY78E,M,gBCnCpC,IAAIs9F,EAAejhG,EAAQ,KACvBkhG,EAAmBlhG,EAAQ,KAC3BolF,EAAQplF,EAAQ,KAChB2gF,EAAQ3gF,EAAQ,KA4BpB+B,EAAOR,QAJP,SAAkB0V,GAChB,OAAOmuE,EAAMnuE,GAAQgqF,EAAatgB,EAAM1pE,IAASiqF,EAAiBjqF,K,cCfpElV,EAAOR,QANP,SAAsBd,GACpB,OAAO,SAASkD,GACd,OAAiB,MAAVA,OAAiBlC,EAAYkC,EAAOlD,M,gBCT/C,IAAIs9E,EAAU/9E,EAAQ,KAetB+B,EAAOR,QANP,SAA0B0V,GACxB,OAAO,SAAStT,GACd,OAAOo6E,EAAQp6E,EAAQsT,M,gBCX3B,IAAIopE,EAAWrgF,EAAQ,KACnBmhG,EAAgBnhG,EAAQ,KACxBohG,EAAoBphG,EAAQ,KAC5BujF,EAAWvjF,EAAQ,KACnBqhG,EAAYrhG,EAAQ,KACpB+8F,EAAa/8F,EAAQ,KAkEzB+B,EAAOR,QApDP,SAAkB+C,EAAOC,EAAU85E,GACjC,IAAI75E,GAAS,EACT88F,EAAWH,EACXj9F,EAASI,EAAMJ,OACfq9F,GAAW,EACX98F,EAAS,GACTq/E,EAAOr/E,EAEX,GAAI45E,EACFkjB,GAAW,EACXD,EAAWF,OAER,GAAIl9F,GAvBY,IAuBgB,CACnC,IAAIk1B,EAAM70B,EAAW,KAAO88F,EAAU/8F,GACtC,GAAI80B,EACF,OAAO2jE,EAAW3jE,GAEpBmoE,GAAW,EACXD,EAAW/d,EACXO,EAAO,IAAIzD,OAGXyD,EAAOv/E,EAAW,GAAKE,EAEzB+8F,EACA,OAASh9F,EAAQN,GAAQ,CACvB,IAAI9B,EAAQkC,EAAME,GACd+5E,EAAWh6E,EAAWA,EAASnC,GAASA,EAG5C,GADAA,EAASi8E,GAAwB,IAAVj8E,EAAeA,EAAQ,EAC1Cm/F,GAAYhjB,IAAaA,EAAU,CAErC,IADA,IAAIkjB,EAAY3d,EAAK5/E,OACdu9F,KACL,GAAI3d,EAAK2d,KAAeljB,EACtB,SAASijB,EAGTj9F,GACFu/E,EAAKtzE,KAAK+tE,GAEZ95E,EAAO+L,KAAKpO,QAEJk/F,EAASxd,EAAMvF,EAAUF,KAC7ByF,IAASr/E,GACXq/E,EAAKtzE,KAAK+tE,GAEZ95E,EAAO+L,KAAKpO,IAGhB,OAAOqC,I,gBCpET,IAAIi9F,EAAgB1hG,EAAQ,KACxB2hG,EAAY3hG,EAAQ,KACpB4hG,EAAgB5hG,EAAQ,KAiB5B+B,EAAOR,QANP,SAAqB+C,EAAOlC,EAAOmjF,GACjC,OAAOnjF,IAAUA,EACbw/F,EAAct9F,EAAOlC,EAAOmjF,GAC5Bmc,EAAcp9F,EAAOq9F,EAAWpc,K,cCLtCxjF,EAAOR,QAJP,SAAmBa,GACjB,OAAOA,IAAUA,I,cCcnBL,EAAOR,QAZP,SAAuB+C,EAAOlC,EAAOmjF,GAInC,IAHA,IAAI/gF,EAAQ+gF,EAAY,EACpBrhF,EAASI,EAAMJ,SAEVM,EAAQN,GACf,GAAII,EAAME,KAAWpC,EACnB,OAAOoC,EAGX,OAAQ,I,gBCnBV,IAAIk1B,EAAM15B,EAAQ,KACd2rD,EAAO3rD,EAAQ,KACf+8F,EAAa/8F,EAAQ,KAYrBqhG,EAAc3nE,GAAQ,EAAIqjE,EAAW,IAAIrjE,EAAI,CAAC,EAAE,KAAK,IAT1C,IASoE,SAAS9C,GAC1F,OAAO,IAAI8C,EAAI9C,IAD2D+0B,EAI5E5pD,EAAOR,QAAU8/F,G,cCFjBt/F,EAAOR,QAJP,c,8BCZA,2BAAG,sDAAiB,YAApB,IACE,UAAiB,W,OAAG,mBACd,kCAAa,EAAhB,QACH,UAAiB,W,OAAI,IAAD,GAAoC,KACxD,EAAS,EAAQ,OAIjB,GAHA,EAAiB,WACf,M,OACA,KADA,EAAK,KACL,GAAc,EAAG,OAEnB,EAA4B,IAAnB,WACL,EAAW,EARZ,GASG,KAAH,KACH,UAAiB,W,OAAG,WAAa,GACjC,EAAW,KAFR,QAIC,EAAJ,QAAiB,W,OAAO,UAAJ,UAAuB,GACvC,GAAW,UALZ,a,8CCVL,IAOIsgG,EACAC,EARAhD,EAAU/8F,EAAOR,QAAU,GAU/B,SAASwgG,IACL,MAAM,IAAIpqF,MAAM,mCAEpB,SAASqqF,IACL,MAAM,IAAIrqF,MAAM,qCAsBpB,SAASsqF,EAAWC,GAChB,GAAIL,IAAqBhwF,WAErB,OAAOA,WAAWqwF,EAAK,GAG3B,IAAKL,IAAqBE,IAAqBF,IAAqBhwF,WAEhE,OADAgwF,EAAmBhwF,WACZA,WAAWqwF,EAAK,GAE3B,IAEI,OAAOL,EAAiBK,EAAK,GAC/B,MAAM/+F,GACJ,IAEI,OAAO0+F,EAAiBlgG,KAAK,KAAMugG,EAAK,GAC1C,MAAM/+F,GAEJ,OAAO0+F,EAAiBlgG,KAAK8R,KAAMyuF,EAAK,MAvCnD,WACG,IAEQL,EADsB,oBAAfhwF,WACYA,WAEAkwF,EAEzB,MAAO5+F,GACL0+F,EAAmBE,EAEvB,IAEQD,EADwB,oBAAjB1+B,aACcA,aAEA4+B,EAE3B,MAAO7+F,GACL2+F,EAAqBE,GAjB5B,GAwED,IAEIG,EAFAzc,EAAQ,GACR0c,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaD,IAGlBC,GAAW,EACPD,EAAaj+F,OACbwhF,EAAQyc,EAAav8F,OAAO8/E,GAE5B2c,GAAc,EAEd3c,EAAMxhF,QACNq+F,KAIR,SAASA,IACL,IAAIH,EAAJ,CAGA,IAAIphF,EAAUihF,EAAWK,GACzBF,GAAW,EAGX,IADA,IAAIzwE,EAAM+zD,EAAMxhF,OACVytB,GAAK,CAGP,IAFAwwE,EAAezc,EACfA,EAAQ,KACC2c,EAAa1wE,GACdwwE,GACAA,EAAaE,GAAYG,MAGjCH,GAAc,EACd1wE,EAAM+zD,EAAMxhF,OAEhBi+F,EAAe,KACfC,GAAW,EAnEf,SAAyBK,GACrB,GAAIX,IAAuB1+B,aAEvB,OAAOA,aAAaq/B,GAGxB,IAAKX,IAAuBE,IAAwBF,IAAuB1+B,aAEvE,OADA0+B,EAAqB1+B,aACdA,aAAaq/B,GAExB,IAEWX,EAAmBW,GAC5B,MAAOt/F,GACL,IAEI,OAAO2+F,EAAmBngG,KAAK,KAAM8gG,GACvC,MAAOt/F,GAGL,OAAO2+F,EAAmBngG,KAAK8R,KAAMgvF,KAgD7CC,CAAgB1hF,IAiBpB,SAAS2hF,EAAKT,EAAK59F,GACfmP,KAAKyuF,IAAMA,EACXzuF,KAAKnP,MAAQA,EAYjB,SAASqnD,KA5BTmzC,EAAQ8D,SAAW,SAAUV,GACzB,IAAIpjF,EAAO,IAAI7c,MAAMgE,UAAU/B,OAAS,GACxC,GAAI+B,UAAU/B,OAAS,EACnB,IAAK,IAAIuD,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAClCqX,EAAKrX,EAAI,GAAKxB,UAAUwB,GAGhCi+E,EAAMl1E,KAAK,IAAImyF,EAAKT,EAAKpjF,IACJ,IAAjB4mE,EAAMxhF,QAAiBk+F,GACvBH,EAAWM,IASnBI,EAAK76F,UAAU06F,IAAM,WACjB/uF,KAAKyuF,IAAI1uF,MAAM,KAAMC,KAAKnP,QAE9Bw6F,EAAQ+D,MAAQ,UAChB/D,EAAQgE,SAAU,EAClBhE,EAAQiE,IAAM,GACdjE,EAAQkE,KAAO,GACflE,EAAQ16F,QAAU,GAClB06F,EAAQmE,SAAW,GAInBnE,EAAQvlB,GAAK5tB,EACbmzC,EAAQxsB,YAAc3mB,EACtBmzC,EAAQ3rF,KAAOw4C,EACfmzC,EAAQoE,IAAMv3C,EACdmzC,EAAQpsB,eAAiB/mB,EACzBmzC,EAAQqE,mBAAqBx3C,EAC7BmzC,EAAQ1kB,KAAOzuB,EACfmzC,EAAQsE,gBAAkBz3C,EAC1BmzC,EAAQuE,oBAAsB13C,EAE9BmzC,EAAQwE,UAAY,SAAU/iG,GAAQ,MAAO,IAE7Cu+F,EAAQC,QAAU,SAAUx+F,GACxB,MAAM,IAAIoX,MAAM,qCAGpBmnF,EAAQyE,IAAM,WAAc,MAAO,KACnCzE,EAAQ0E,MAAQ,SAAUC,GACtB,MAAM,IAAI9rF,MAAM,mCAEpBmnF,EAAQ4E,MAAQ,WAAa,OAAO,I,gBCvLpC,IAAI9C,EAAW5gG,EAAQ,KACnB2jG,EAAmB3jG,EAAQ,KAC3BghF,EAAWhhF,EAAQ,KACnB4jG,EAAsB5jG,EAAQ,KAmB9B6jG,EAAe7iB,GAAS,SAAS8iB,GACnC,IAAIC,EAASnD,EAASkD,EAAQF,GAC9B,OAAQG,EAAO7/F,QAAU6/F,EAAO,KAAOD,EAAO,GAC1CH,EAAiBI,GACjB,MAGNhiG,EAAOR,QAAUsiG,G,gBC7BjB,IAAIxjB,EAAWrgF,EAAQ,KACnBmhG,EAAgBnhG,EAAQ,KACxBohG,EAAoBphG,EAAQ,KAC5B4gG,EAAW5gG,EAAQ,KACnB+kF,EAAY/kF,EAAQ,KACpBujF,EAAWvjF,EAAQ,KAGnBorF,EAAYpoF,KAAK4R,IAiErB7S,EAAOR,QArDP,SAA0BuiG,EAAQv/F,EAAU85E,GAS1C,IARA,IAAIijB,EAAWjjB,EAAa+iB,EAAoBD,EAC5Cj9F,EAAS4/F,EAAO,GAAG5/F,OACnBy/E,EAAYmgB,EAAO5/F,OACnBggF,EAAWP,EACXqgB,EAAS/hG,MAAM0hF,GACfsgB,EAAYjwE,IACZvvB,EAAS,GAENy/E,KAAY,CACjB,IAAI5/E,EAAQw/F,EAAO5f,GACfA,GAAY3/E,IACdD,EAAQs8F,EAASt8F,EAAOygF,EAAUxgF,KAEpC0/F,EAAY7Y,EAAU9mF,EAAMJ,OAAQ+/F,GACpCD,EAAO9f,IAAa7F,IAAe95E,GAAaL,GAAU,KAAOI,EAAMJ,QAAU,KAC7E,IAAIm8E,EAAS6D,GAAY5/E,QACzB7C,EAEN6C,EAAQw/F,EAAO,GAEf,IAAIt/F,GAAS,EACTs/E,EAAOkgB,EAAO,GAElBxC,EACA,OAASh9F,EAAQN,GAAUO,EAAOP,OAAS+/F,GAAW,CACpD,IAAI7hG,EAAQkC,EAAME,GACd+5E,EAAWh6E,EAAWA,EAASnC,GAASA,EAG5C,GADAA,EAASi8E,GAAwB,IAAVj8E,EAAeA,EAAQ,IACxC0hF,EACEP,EAASO,EAAMvF,GACf+iB,EAAS78F,EAAQ85E,EAAUF,IAC5B,CAEL,IADA6F,EAAWP,IACFO,GAAU,CACjB,IAAI3Q,EAAQywB,EAAO9f,GACnB,KAAM3Q,EACEgQ,EAAShQ,EAAOgL,GAChB+iB,EAASwC,EAAO5f,GAAW3F,EAAUF,IAE3C,SAASmjB,EAGT1d,GACFA,EAAKtzE,KAAK+tE,GAEZ95E,EAAO+L,KAAKpO,IAGhB,OAAOqC,I,gBCtET,IAAI+O,EAAQxT,EAAQ,KAGhBmrF,EAAYnoF,KAAK2R,IAgCrB5S,EAAOR,QArBP,SAAkBwM,EAAMmU,EAAOlV,GAE7B,OADAkV,EAAQipE,OAAoB1pF,IAAVygB,EAAuBnU,EAAK7J,OAAS,EAAKge,EAAO,GAC5D,WAML,IALA,IAAIpD,EAAO7Y,UACPzB,GAAS,EACTN,EAASinF,EAAUrsE,EAAK5a,OAASge,EAAO,GACxC5d,EAAQrC,MAAMiC,KAETM,EAAQN,GACfI,EAAME,GAASsa,EAAKoD,EAAQ1d,GAE9BA,GAAS,EAET,IADA,IAAI0/F,EAAYjiG,MAAMigB,EAAQ,KACrB1d,EAAQ0d,GACfgiF,EAAU1/F,GAASsa,EAAKta,GAG1B,OADA0/F,EAAUhiF,GAASlV,EAAU1I,GACtBkP,EAAMzF,EAAM0F,KAAMywF,M,cCX7BniG,EAAOR,QAVP,SAAewM,EAAMg+E,EAASjtE,GAC5B,OAAQA,EAAK5a,QACX,KAAK,EAAG,OAAO6J,EAAKpM,KAAKoqF,GACzB,KAAK,EAAG,OAAOh+E,EAAKpM,KAAKoqF,EAASjtE,EAAK,IACvC,KAAK,EAAG,OAAO/Q,EAAKpM,KAAKoqF,EAASjtE,EAAK,GAAIA,EAAK,IAChD,KAAK,EAAG,OAAO/Q,EAAKpM,KAAKoqF,EAASjtE,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAE3D,OAAO/Q,EAAKyF,MAAMu4E,EAASjtE,K,gBCjB7B,IAAIqlF,EAAkBnkG,EAAQ,KAW1BmmF,EAVWnmF,EAAQ,IAULokG,CAASD,GAE3BpiG,EAAOR,QAAU4kF,G,gBCbjB,IAAI1qE,EAAWzb,EAAQ,KACnB6D,EAAiB7D,EAAQ,KACzBwC,EAAWxC,EAAQ,KAUnBmkG,EAAmBtgG,EAA4B,SAASkK,EAAMlF,GAChE,OAAOhF,EAAekK,EAAM,WAAY,CACtC,cAAgB,EAChB,YAAc,EACd,MAAS0N,EAAS5S,GAClB,UAAY,KALwBrG,EASxCT,EAAOR,QAAU4iG,G,cCIjBpiG,EAAOR,QANP,SAAkBa,GAChB,OAAO,WACL,OAAOA,K,cCpBX,IAIIiiG,EAAYh8D,KAAKlnB,IA+BrBpf,EAAOR,QApBP,SAAkBwM,GAChB,IAAI2E,EAAQ,EACR4xF,EAAa,EAEjB,OAAO,WACL,IAAIC,EAAQF,IACRG,EApBO,IAoBiBD,EAAQD,GAGpC,GADAA,EAAaC,EACTC,EAAY,GACd,KAAM9xF,GAzBI,IA0BR,OAAOzM,UAAU,QAGnByM,EAAQ,EAEV,OAAO3E,EAAKyF,WAAM/R,EAAWwE,c,gBChCjC,IAAIw+F,EAAoBzkG,EAAQ,KAahC+B,EAAOR,QAJP,SAA6Ba,GAC3B,OAAOqiG,EAAkBriG,GAASA,EAAQ,K,gBCV5C,IAAI07E,EAAc99E,EAAQ,KACtBmE,EAAenE,EAAQ,KA+B3B+B,EAAOR,QAJP,SAA2Ba,GACzB,OAAO+B,EAAa/B,IAAU07E,EAAY17E,K,gBC7B5C,IAAI87F,EAAcl+F,EAAQ,KACtB0kG,EAAa1kG,EAAQ,KACrB6iF,EAAe7iF,EAAQ,KACvBgC,EAAUhC,EAAQ,KAgDtB+B,EAAOR,QALP,SAAgB4/E,EAAYgD,GAE1B,OADWniF,EAAQm/E,GAAc+c,EAAcwG,GACnCvjB,EAAY0B,EAAasB,EAAW,M,gBChDlD,IAAIjG,EAAWl+E,EAAQ,KAoBvB+B,EAAOR,QAVP,SAAoB4/E,EAAYgD,GAC9B,IAAI1/E,EAAS,GAMb,OALAy5E,EAASiD,GAAY,SAAS/+E,EAAOoC,EAAO28E,GACtCgD,EAAU/hF,EAAOoC,EAAO28E,IAC1B18E,EAAO+L,KAAKpO,MAGTqC,I,gBCjBT,IAaI2hF,EAbgBpmF,EAAQ,IAad2kG,GAEd5iG,EAAOR,QAAU6kF,G,cCSjBrkF,EAAOR,QAjBP,SAAuBikF,GACrB,OAAO,SAAS7hF,EAAQY,EAAUy5F,GAMhC,IALA,IAAIx5F,GAAS,EACTogG,EAAW/hG,OAAOc,GAClBkN,EAAQmtF,EAASr6F,GACjBO,EAAS2M,EAAM3M,OAEZA,KAAU,CACf,IAAIzD,EAAMoQ,EAAM20E,EAAYthF,IAAWM,GACvC,IAA+C,IAA3CD,EAASqgG,EAASnkG,GAAMA,EAAKmkG,GAC/B,MAGJ,OAAOjhG,K,gBCpBX,IAAIm6E,EAAc99E,EAAQ,KA+B1B+B,EAAOR,QArBP,SAAwBsjG,EAAUrf,GAChC,OAAO,SAASrE,EAAY58E,GAC1B,GAAkB,MAAd48E,EACF,OAAOA,EAET,IAAKrD,EAAYqD,GACf,OAAO0jB,EAAS1jB,EAAY58E,GAM9B,IAJA,IAAIL,EAASi9E,EAAWj9E,OACpBM,EAAQghF,EAAYthF,GAAU,EAC9B0gG,EAAW/hG,OAAOs+E,IAEdqE,EAAYhhF,MAAYA,EAAQN,KACa,IAA/CK,EAASqgG,EAASpgG,GAAQA,EAAOogG,KAIvC,OAAOzjB,K,6BCzBX5/E,EAAQmlF,YAAa,EACrBnlF,EAAQolF,aAAU,GAgBlB,SAAiCrgF,GAAO,GAAIA,GAAOA,EAAIogF,WAAc,OAAOpgF,EAAc,IAAI6gF,EAAS,GAAI,GAAW,MAAP7gF,EAAe,IAAK,IAAI7F,KAAO6F,EAAO,GAAIzD,OAAOiF,UAAUT,eAAe1F,KAAK2E,EAAK7F,GAAM,CAAE,IAAI2mF,EAAOvkF,OAAOgB,gBAAkBhB,OAAOoW,yBAA2BpW,OAAOoW,yBAAyB3S,EAAK7F,GAAO,GAAQ2mF,EAAKtjF,KAAOsjF,EAAKhuD,IAAOv2B,OAAOgB,eAAesjF,EAAQ1mF,EAAK2mF,GAAgBD,EAAO1mF,GAAO6F,EAAI7F,GAAc0mF,EAAOR,QAAUrgF,EAdjb+gF,CAAwBrnF,EAAQ,KAAhD,IAEI8kG,EAAYxe,EAAuBtmF,EAAQ,MAE3C+kG,EAAeze,EAAuBtmF,EAAQ,MAE9CsnF,EAAShB,EAAuBtmF,EAAQ,IAExCymF,EAAcH,EAAuBtmF,EAAQ,MAEhCA,EAAQ,KAEzB,SAASsmF,EAAuBhgF,GAAO,OAAOA,GAAOA,EAAIogF,WAAapgF,EAAM,CAAEqgF,QAASrgF,GAIvF,SAASgN,IAA2Q,OAA9PA,EAAWzQ,OAAO0Q,QAAU,SAAUlS,GAAU,IAAK,IAAIoG,EAAI,EAAGA,EAAIxB,UAAU/B,OAAQuD,IAAK,CAAE,IAAIjH,EAASyF,UAAUwB,GAAI,IAAK,IAAIhH,KAAOD,EAAcqC,OAAOiF,UAAUT,eAAe1F,KAAKnB,EAAQC,KAAQY,EAAOZ,GAAOD,EAAOC,IAAY,OAAOY,IAA2BmS,MAAMC,KAAMxN,WAIhT,IAAI++F,EAAW,SAAkBhxF,EAAMixF,GACrC,OAAOjxF,GAAQixF,GAAWA,EAAQlgF,MAAM,KAAK1U,SAAQ,SAAU0F,GAC7D,OAAO,EAAI+uF,EAAUne,SAAS3yE,EAAM+B,OAIpCmvF,EAAc,SAAqBlxF,EAAMixF,GAC3C,OAAOjxF,GAAQixF,GAAWA,EAAQlgF,MAAM,KAAK1U,SAAQ,SAAU0F,GAC7D,OAAO,EAAIgvF,EAAape,SAAS3yE,EAAM+B,OAiEvC8wE,EAEJ,SAAUY,GA7EV,IAAwBzsE,EAAUC,EAgFhC,SAAS4rE,IAGP,IAFA,IAAI1pE,EAEK0B,EAAO5Y,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAM4c,GAAOvX,EAAO,EAAGA,EAAOuX,EAAMvX,IAC/EwX,EAAKxX,GAAQrB,UAAUqB,GAkGzB,OA/FA6V,EAAQsqE,EAAiB9lF,KAAK6R,MAAMi0E,EAAkB,CAACh0E,MAAM7N,OAAOkZ,KAAUrL,MAExEwY,QAAU,SAAUjY,EAAMk1E,GAC9B,IACIp1E,EADsBqJ,EAAMgoF,cAAcjc,EAAY,SAAW,SACjCp1E,UAEpCqJ,EAAMioF,cAAcpxF,EAAM,QAE1BgxF,EAAShxF,EAAMF,GAEXqJ,EAAMtM,MAAMob,SACd9O,EAAMtM,MAAMob,QAAQjY,EAAMk1E,IAI9B/rE,EAAMmsE,WAAa,SAAUt1E,EAAMk1E,GACjC,IACImc,EADuBloF,EAAMgoF,cAAcjc,EAAY,SAAW,SAC3Bmc,gBAE3CloF,EAAMmoF,kBAAkBtxF,EAAMqxF,GAE1BloF,EAAMtM,MAAMy4E,YACdnsE,EAAMtM,MAAMy4E,WAAWt1E,EAAMk1E,IAIjC/rE,EAAMqsE,UAAY,SAAUx1E,EAAMk1E,GAChC,IAAIqc,EAAkBpoF,EAAMgoF,cAAc,UAAUK,cAEhDC,EAAiBtoF,EAAMgoF,cAAc,SAASK,cAE9CA,EAAgBtc,EAAYqc,EAAkB,IAAME,EAAiBA,EAEzEtoF,EAAMioF,cAAcpxF,EAAMk1E,EAAY,SAAW,SAEjD8b,EAAShxF,EAAMwxF,GAEXroF,EAAMtM,MAAM24E,WACdrsE,EAAMtM,MAAM24E,UAAUx1E,EAAMk1E,IAIhC/rE,EAAM+O,OAAS,SAAUlY,GACvB,IACIF,EADuBqJ,EAAMgoF,cAAc,QACVrxF,UAErCqJ,EAAMioF,cAAcpxF,EAAM,UAE1BmJ,EAAMioF,cAAcpxF,EAAM,SAE1BgxF,EAAShxF,EAAMF,GAEXqJ,EAAMtM,MAAMqb,QACd/O,EAAMtM,MAAMqb,OAAOlY,IAIvBmJ,EAAMssE,UAAY,SAAUz1E,GAC1B,IACIqxF,EADuBloF,EAAMgoF,cAAc,QACJE,gBAE3CloF,EAAMmoF,kBAAkBtxF,EAAMqxF,GAE1BloF,EAAMtM,MAAM44E,WACdtsE,EAAMtM,MAAM44E,UAAUz1E,IAI1BmJ,EAAMusE,SAAW,SAAU11E,GACzB,IACIwxF,EADuBroF,EAAMgoF,cAAc,QACNK,cAEzCroF,EAAMioF,cAAcpxF,EAAM,QAE1BgxF,EAAShxF,EAAMwxF,GAEXroF,EAAMtM,MAAM64E,UACdvsE,EAAMtM,MAAM64E,SAAS11E,IAIzBmJ,EAAMgoF,cAAgB,SAAU7kG,GAC9B,IAAI+T,EAAa8I,EAAMtM,MAAMwD,WACzBqxF,EAA2C,kBAAfrxF,EAE5BP,EAAY4xF,GADHA,GAAsBrxF,EAAaA,EAAa,IAAM,IACrB/T,EAAO+T,EAAW/T,GAGhE,MAAO,CACLwT,UAAWA,EACXuxF,gBAJoBK,EAAqB5xF,EAAY,UAAYO,EAAW/T,EAAO,UAKnFklG,cAJkBE,EAAqB5xF,EAAY,QAAUO,EAAW/T,EAAO,UAQ5E6c,EAtLuBlC,EA8EFwsE,GA9ERzsE,EA8EP6rE,GA9EwC/+E,UAAYjF,OAAOqY,OAAOD,EAAWnT,WAAYkT,EAASlT,UAAUoP,YAAc8D,EAAUA,EAASnW,UAAYoW,EAyLxK,IAAIktE,EAAStB,EAAc/+E,UAuC3B,OArCAqgF,EAAOid,cAAgB,SAAuBpxF,EAAM1T,GAClD,IAAIqlG,EAAuBlyF,KAAK0xF,cAAc7kG,GAC1CwT,EAAY6xF,EAAqB7xF,UACjCuxF,EAAkBM,EAAqBN,gBACvCG,EAAgBG,EAAqBH,cAEzC1xF,GAAaoxF,EAAYlxF,EAAMF,GAC/BuxF,GAAmBH,EAAYlxF,EAAMqxF,GACrCG,GAAiBN,EAAYlxF,EAAMwxF,IAGrCrd,EAAOmd,kBAAoB,SAA2BtxF,EAAMF,GAGtDA,IAEFE,GAAQA,EAAK4xF,UAGbZ,EAAShxF,EAAMF,KAInBq0E,EAAO5gE,OAAS,WACd,IAAI1W,EAAQyC,EAAS,GAAIG,KAAK5C,OAG9B,cADOA,EAAMwD,WACNizE,EAAOX,QAAQ/0E,cAAc60E,EAAYE,QAASrzE,EAAS,GAAIzC,EAAO,CAC3Eob,QAASxY,KAAKwY,QACdu9D,UAAW/1E,KAAK+1E,UAChBF,WAAY71E,KAAK61E,WACjBp9D,OAAQzY,KAAKyY,OACbu9D,UAAWh2E,KAAKg2E,UAChBC,SAAUj2E,KAAKi2E,aAIZ7C,EAnJT,CAoJES,EAAOX,QAAQv6D,WAEjBy6D,EAAcpqE,aAAe,CAC3BpI,WAAY,IAEdwyE,EAAcnzE,UA2GT,GACL,IAAIu2E,EAAWpD,EACftlF,EAAQolF,QAAUsD,EAClBloF,EAAOR,QAAUA,EAAO,S,6BCzWxB,IAAI+kF,EAAyBtmF,EAAQ,KAErCuB,EAAQmlF,YAAa,EACrBnlF,EAAQolF,QAIR,SAAkBtoE,EAASvK,GACrBuK,EAAQwnF,UAAWxnF,EAAQwnF,UAAUpyE,IAAI3f,IAAqB,EAAIgyF,EAAUnf,SAAStoE,EAASvK,KAA6C,kBAAtBuK,EAAQvK,UAAwBuK,EAAQvK,UAAYuK,EAAQvK,UAAY,IAAMA,EAAeuK,EAAQuyC,aAAa,SAAUvyC,EAAQvK,WAAauK,EAAQvK,UAAUiyF,SAAW,IAAM,IAAMjyF,KAHrT,IAAIgyF,EAAYxf,EAAuBtmF,EAAQ,MAM/C+B,EAAOR,QAAUA,EAAO,S,cCPxBQ,EAAOR,QANP,SAAgC+E,GAC9B,OAAOA,GAAOA,EAAIogF,WAAapgF,EAAM,CACnC,QAAWA,K,6BCAf/E,EAAQmlF,YAAa,EACrBnlF,EAAQolF,QAER,SAAkBtoE,EAASvK,GACzB,OAAIuK,EAAQwnF,YAAoB/xF,GAAauK,EAAQwnF,UAAUG,SAASlyF,IAA0H,KAAlG,KAAOuK,EAAQvK,UAAUiyF,SAAW1nF,EAAQvK,WAAa,KAAK3O,QAAQ,IAAM2O,EAAY,MAG1L/R,EAAOR,QAAUA,EAAO,S,6BCPxB,SAAS0kG,EAAiBC,EAAWC,GACnC,OAAOD,EAAUljF,QAAQ,IAAIuY,OAAO,UAAY4qE,EAAgB,YAAa,KAAM,MAAMnjF,QAAQ,OAAQ,KAAKA,QAAQ,aAAc,IAGtIjhB,EAAOR,QAAU,SAAqB8c,EAASvK,GACzCuK,EAAQwnF,UAAWxnF,EAAQwnF,UAAUvsE,OAAOxlB,GAAiD,kBAAtBuK,EAAQvK,UAAwBuK,EAAQvK,UAAYmyF,EAAiB5nF,EAAQvK,UAAWA,GAAgBuK,EAAQuyC,aAAa,QAASq1C,EAAiB5nF,EAAQvK,WAAauK,EAAQvK,UAAUiyF,SAAW,GAAIjyF,M,6BCL1RvS,EAAQmlF,YAAa,EACrBnlF,EAAQolF,aAAU,EAEDL,EAAuBtmF,EAAQ,KAAhD,IAEIsnF,EAAShB,EAAuBtmF,EAAQ,IAExCunF,EAAYvnF,EAAQ,IAEpBwmF,EAAmBF,EAAuBtmF,EAAQ,MAEtD,SAASsmF,EAAuBhgF,GAAO,OAAOA,GAAOA,EAAIogF,WAAapgF,EAAM,CAAEqgF,QAASrgF,GAiBvF,IAAIsgF,EAEJ,SAAUa,GAfV,IAAwBzsE,EAAUC,EAkBhC,SAAS2rE,IAGP,IAFA,IAAIzpE,EAEK0B,EAAO5Y,UAAU/B,OAAQkiG,EAAQ,IAAInkG,MAAM4c,GAAOvX,EAAO,EAAGA,EAAOuX,EAAMvX,IAChF8+F,EAAM9+F,GAAQrB,UAAUqB,GAqD1B,OAlDA6V,EAAQsqE,EAAiB9lF,KAAK6R,MAAMi0E,EAAkB,CAACh0E,MAAM7N,OAAOwgG,KAAW3yF,MAEzEgY,YAAc,WAClB,IAAK,IAAI/B,EAAQzjB,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAMynB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF7K,EAAK6K,GAAS1jB,UAAU0jB,GAG1B,OAAOxM,EAAMkpF,gBAAgB,UAAW,EAAGvnF,IAG7C3B,EAAMmpF,eAAiB,WACrB,IAAK,IAAI7zE,EAAQxsB,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAMwwB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF5T,EAAK4T,GAASzsB,UAAUysB,GAG1B,OAAOvV,EAAMkpF,gBAAgB,aAAc,EAAGvnF,IAGhD3B,EAAMopF,cAAgB,WACpB,IAAK,IAAIrzE,EAAQjtB,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAMixB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFrU,EAAKqU,GAASltB,UAAUktB,GAG1B,OAAOhW,EAAMkpF,gBAAgB,YAAa,EAAGvnF,IAG/C3B,EAAM2O,WAAa,WACjB,IAAK,IAAI06E,EAAQvgG,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAMukG,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF3nF,EAAK2nF,GAASxgG,UAAUwgG,GAG1B,OAAOtpF,EAAMkpF,gBAAgB,SAAU,EAAGvnF,IAG5C3B,EAAMupF,cAAgB,WACpB,IAAK,IAAIC,EAAQ1gG,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAM0kG,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF9nF,EAAK8nF,GAAS3gG,UAAU2gG,GAG1B,OAAOzpF,EAAMkpF,gBAAgB,YAAa,EAAGvnF,IAG/C3B,EAAMmtE,aAAe,WACnB,IAAK,IAAIuc,EAAQ5gG,UAAU/B,OAAQ4a,EAAO,IAAI7c,MAAM4kG,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFhoF,EAAKgoF,GAAS7gG,UAAU6gG,GAG1B,OAAO3pF,EAAMkpF,gBAAgB,WAAY,EAAGvnF,IAGvC3B,EA3EuBlC,EAgBEwsE,GAhBZzsE,EAgBP4rE,GAhBwC9+E,UAAYjF,OAAOqY,OAAOD,EAAWnT,WAAYkT,EAASlT,UAAUoP,YAAc8D,EAAUA,EAASnW,UAAYoW,EA8ExK,IAAIktE,EAASvB,EAAkB9+E,UA0C/B,OAxCAqgF,EAAOke,gBAAkB,SAAyBnzF,EAAS6zF,EAAKC,GAC9D,IAAI5zB,EAEArjE,EAAW0D,KAAK5C,MAAMd,SAEtBO,EAAQg3E,EAAOX,QAAQv2E,SAAS62F,QAAQl3F,GAAUg3F,GAElDz2F,EAAMO,MAAMqC,KAAWkgE,EAAe9iE,EAAMO,OAAOqC,GAASM,MAAM4/D,EAAc4zB,GAChFvzF,KAAK5C,MAAMqC,IAAUO,KAAK5C,MAAMqC,IAAS,EAAIq0E,EAAUwB,aAAat1E,QAG1E00E,EAAO5gE,OAAS,WACd,IAAInM,EAAc3H,KAAK5C,MACnBd,EAAWqL,EAAYrL,SACvBm3F,EAAS9rF,EAAY0sE,GACrBj3E,EAjGR,SAAuCrQ,EAAQ6H,GAAY,GAAc,MAAV7H,EAAgB,MAAO,GAAI,IAA2DC,EAAKgH,EAA5DpG,EAAS,GAAQiH,EAAazF,OAAO0D,KAAK/F,GAAqB,IAAKiH,EAAI,EAAGA,EAAIa,EAAWpE,OAAQuD,IAAOhH,EAAM6H,EAAWb,GAAQY,EAASlD,QAAQ1E,IAAQ,IAAaY,EAAOZ,GAAOD,EAAOC,IAAQ,OAAOY,EAiG1RkH,CAA8B6S,EAAa,CAAC,WAAY,OAEhE+rF,EAAwB7f,EAAOX,QAAQv2E,SAAS62F,QAAQl3F,GACxDszC,EAAQ8jD,EAAsB,GAC9B/0D,EAAS+0D,EAAsB,GAQnC,cANOt2F,EAAMob,eACNpb,EAAMy4E,kBACNz4E,EAAM24E,iBACN34E,EAAMqb,cACNrb,EAAM44E,iBACN54E,EAAM64E,SACNpC,EAAOX,QAAQ/0E,cAAc40E,EAAiBG,QAAS91E,EAAOq2F,EAAS5f,EAAOX,QAAQhmE,aAAa0iC,EAAO,CAC/G5iD,IAAK,QACLwrB,QAASxY,KAAKgY,YACd69D,WAAY71E,KAAK6yF,eACjB9c,UAAW/1E,KAAK8yF,gBACbjf,EAAOX,QAAQhmE,aAAayxB,EAAQ,CACvC3xC,IAAK,SACLwrB,QAASxY,KAAKqY,WACdw9D,WAAY71E,KAAKizF,cACjBld,UAAW/1E,KAAK62E,iBAIb1D,EAzGT,CA0GEU,EAAOX,QAAQv6D,WAEjBw6D,EAAkBlzE,UAMd,GACJ,IAAIu2E,EAAWrD,EACfrlF,EAAQolF,QAAUsD,EAClBloF,EAAOR,QAAUA,EAAO,S,6BCnJxBA,EAAQmlF,YAAa,EACrBnlF,EAAQspF,gBAAkBA,EAC1BtpF,EAAQ6lG,mBAAqBA,EAC7B7lG,EAAQmpF,uBA8FR,SAAgC75E,EAAO64E,GACrC,OAAOmB,EAAgBh6E,EAAMd,UAAU,SAAUO,GAC/C,OAAO,EAAIg3E,EAAO3mE,cAAcrQ,EAAO,CACrCo5E,SAAUA,EAAS1nE,KAAK,KAAM1R,GAC9Bw3E,IAAI,EACJv7D,OAAQ86E,EAAQ/2F,EAAO,SAAUO,GACjC2b,MAAO66E,EAAQ/2F,EAAO,QAASO,GAC/Bg4E,KAAMwe,EAAQ/2F,EAAO,OAAQO,SApGnCtP,EAAQopF,oBAyGR,SAA6Bt4E,EAAWo4E,EAAkBf,GACxD,IAAI4d,EAAmBzc,EAAgBx4E,EAAUtC,UAC7CA,EAAWq3F,EAAmB3c,EAAkB6c,GAmCpD,OAlCAzkG,OAAO0D,KAAKwJ,GAAUM,SAAQ,SAAU5P,GACtC,IAAI6P,EAAQP,EAAStP,GACrB,IAAK,EAAI6mF,EAAOx2E,gBAAgBR,GAAhC,CACA,IAAIi3F,EAAU9mG,KAAOgqF,EACjB+c,EAAU/mG,KAAO6mG,EACjBr1F,EAAYw4E,EAAiBhqF,GAC7BgnG,GAAY,EAAIngB,EAAOx2E,gBAAgBmB,KAAeA,EAAUpB,MAAMi3E,IAEtE0f,GAAaD,IAAWE,EAQhBD,IAAWD,GAAYE,EAMxBD,GAAWD,IAAW,EAAIjgB,EAAOx2E,gBAAgBmB,KAI1DlC,EAAStP,IAAO,EAAI6mF,EAAO3mE,cAAcrQ,EAAO,CAC9Co5E,SAAUA,EAAS1nE,KAAK,KAAM1R,GAC9Bw3E,GAAI71E,EAAUpB,MAAMi3E,GACpBe,KAAMwe,EAAQ/2F,EAAO,OAAQ+B,GAC7Bma,MAAO66E,EAAQ/2F,EAAO,QAAS+B,MAXjCtC,EAAStP,IAAO,EAAI6mF,EAAO3mE,cAAcrQ,EAAO,CAC9Cw3E,IAAI,IAVN/3E,EAAStP,IAAO,EAAI6mF,EAAO3mE,cAAcrQ,EAAO,CAC9Co5E,SAAUA,EAAS1nE,KAAK,KAAM1R,GAC9Bw3E,IAAI,EACJe,KAAMwe,EAAQ/2F,EAAO,OAAQ+B,GAC7Bma,MAAO66E,EAAQ/2F,EAAO,QAAS+B,SAoB9BtC,GA5IT,IAAIu3E,EAAStnF,EAAQ,GAQrB,SAAS6qF,EAAgB96E,EAAU23F,GACjC,IAIIjjG,EAAS5B,OAAOqY,OAAO,MAO3B,OANInL,GAAUu3E,EAAOl3E,SAASF,IAAIH,GAAU,SAAUgG,GACpD,OAAOA,KACN1F,SAAQ,SAAUC,GAEnB7L,EAAO6L,EAAM7P,KATF,SAAgB6P,GAC3B,OAAOo3F,IAAS,EAAIpgB,EAAOx2E,gBAAgBR,GAASo3F,EAAMp3F,GAASA,EAQ/Cq3F,CAAOr3F,MAEtB7L,EAqBT,SAAS2iG,EAAmBtgD,EAAM9iC,GAIhC,SAAS4jF,EAAennG,GACtB,OAAOA,KAAOujB,EAAOA,EAAKvjB,GAAOqmD,EAAKrmD,GAJxCqmD,EAAOA,GAAQ,GACf9iC,EAAOA,GAAQ,GAQf,IAcIvc,EAdAogG,EAAkBhlG,OAAOqY,OAAO,MAChC4sF,EAAc,GAElB,IAAK,IAAIC,KAAWjhD,EACdihD,KAAW/jF,EACT8jF,EAAY5jG,SACd2jG,EAAgBE,GAAWD,EAC3BA,EAAc,IAGhBA,EAAYt3F,KAAKu3F,GAKrB,IAAIC,EAAe,GAEnB,IAAK,IAAIC,KAAWjkF,EAAM,CACxB,GAAI6jF,EAAgBI,GAClB,IAAKxgG,EAAI,EAAGA,EAAIogG,EAAgBI,GAAS/jG,OAAQuD,IAAK,CACpD,IAAIygG,EAAiBL,EAAgBI,GAASxgG,GAC9CugG,EAAaH,EAAgBI,GAASxgG,IAAMmgG,EAAeM,GAI/DF,EAAaC,GAAWL,EAAeK,GAIzC,IAAKxgG,EAAI,EAAGA,EAAIqgG,EAAY5jG,OAAQuD,IAClCugG,EAAaF,EAAYrgG,IAAMmgG,EAAeE,EAAYrgG,IAG5D,OAAOugG,EAGT,SAASX,EAAQ/2F,EAAOiT,EAAM1S,GAC5B,OAAsB,MAAfA,EAAM0S,GAAgB1S,EAAM0S,GAAQjT,EAAMO,MAAM0S,K,gBChGzD,IAAIngB,EAASpD,EAAQ,KACjBwgF,EAAcxgF,EAAQ,KACtBgC,EAAUhC,EAAQ,KAGlBmoG,EAAmB/kG,EAASA,EAAOglG,wBAAqB3mG,EAc5DM,EAAOR,QALP,SAAuBa,GACrB,OAAOJ,EAAQI,IAAUo+E,EAAYp+E,OAChC+lG,GAAoB/lG,GAASA,EAAM+lG,M,gBChB1C,IAAIvH,EAAW5gG,EAAQ,KACnB+9E,EAAU/9E,EAAQ,KAClB6iF,EAAe7iF,EAAQ,KACvBqoG,EAAUroG,EAAQ,KAClBsoG,EAAatoG,EAAQ,KACrB+kF,EAAY/kF,EAAQ,KACpBuoG,EAAkBvoG,EAAQ,KAC1BwC,EAAWxC,EAAQ,KACnBgC,EAAUhC,EAAQ,KAwCtB+B,EAAOR,QA7BP,SAAqB4/E,EAAYC,EAAWonB,GAExCpnB,EADEA,EAAUl9E,OACA08F,EAASxf,GAAW,SAAS78E,GACvC,OAAIvC,EAAQuC,GACH,SAASnC,GACd,OAAO27E,EAAQ37E,EAA2B,IAApBmC,EAASL,OAAeK,EAAS,GAAKA,IAGzDA,KAGG,CAAC/B,GAGf,IAAIgC,GAAS,EACb48E,EAAYwf,EAASxf,EAAW2D,EAAUlC,IAE1C,IAAIp+E,EAAS4jG,EAAQlnB,GAAY,SAAS/+E,EAAO3B,EAAK0gF,GAIpD,MAAO,CAAE,SAHMyf,EAASxf,GAAW,SAAS78E,GAC1C,OAAOA,EAASnC,MAEa,QAAWoC,EAAO,MAASpC,MAG5D,OAAOkmG,EAAW7jG,GAAQ,SAASd,EAAQgB,GACzC,OAAO4jG,EAAgB5kG,EAAQgB,EAAO6jG,Q,cCxB1CzmG,EAAOR,QAVP,SAAoB+C,EAAOmkG,GACzB,IAAIvkG,EAASI,EAAMJ,OAGnB,IADAI,EAAMsrC,KAAK64D,GACJvkG,KACLI,EAAMJ,GAAUI,EAAMJ,GAAQ9B,MAEhC,OAAOkC,I,gBCjBT,IAAIokG,EAAmB1oG,EAAQ,KA2C/B+B,EAAOR,QA3BP,SAAyBoC,EAAQgB,EAAO6jG,GAOtC,IANA,IAAIhkG,GAAS,EACTmkG,EAAchlG,EAAOilG,SACrBC,EAAclkG,EAAMikG,SACpB1kG,EAASykG,EAAYzkG,OACrB4kG,EAAeN,EAAOtkG,SAEjBM,EAAQN,GAAQ,CACvB,IAAIO,EAASikG,EAAiBC,EAAYnkG,GAAQqkG,EAAYrkG,IAC9D,GAAIC,EACF,OAAID,GAASskG,EACJrkG,EAGFA,GAAmB,QADd+jG,EAAOhkG,IACiB,EAAI,GAU5C,OAAOb,EAAOa,MAAQG,EAAMH,Q,gBCxC9B,IAAIw5E,EAAWh+E,EAAQ,KAwCvB+B,EAAOR,QA9BP,SAA0Ba,EAAOuC,GAC/B,GAAIvC,IAAUuC,EAAO,CACnB,IAAIokG,OAAyBtnG,IAAVW,EACf4mG,EAAsB,OAAV5mG,EACZ6mG,EAAiB7mG,IAAUA,EAC3B8mG,EAAclrB,EAAS57E,GAEvB+mG,OAAyB1nG,IAAVkD,EACfykG,EAAsB,OAAVzkG,EACZ0kG,EAAiB1kG,IAAUA,EAC3B2kG,EAActrB,EAASr5E,GAE3B,IAAMykG,IAAcE,IAAgBJ,GAAe9mG,EAAQuC,GACtDukG,GAAeC,GAAgBE,IAAmBD,IAAcE,GAChEN,GAAaG,GAAgBE,IAC5BN,GAAgBM,IACjBJ,EACH,OAAO,EAET,IAAMD,IAAcE,IAAgBI,GAAelnG,EAAQuC,GACtD2kG,GAAeP,GAAgBE,IAAmBD,IAAcE,GAChEE,GAAaL,GAAgBE,IAC5BE,GAAgBF,IACjBI,EACH,OAAQ,EAGZ,OAAO,I,gBCrCT,IAAIvmG,EAAO9C,EAAQ,KAsBnB+B,EAAOR,QAJG,WACR,OAAOuB,EAAKulC,KAAKlnB,Q,gBCnBnB,IAAIooF,EAAkBvpG,EAAQ,KAG1BwpG,EAAc,OAelBznG,EAAOR,QANP,SAAkBsH,GAChB,OAAOA,EACHA,EAAOzC,MAAM,EAAGmjG,EAAgB1gG,GAAU,GAAGma,QAAQwmF,EAAa,IAClE3gG,I,cCdN,IAAI4gG,EAAe,KAiBnB1nG,EAAOR,QAPP,SAAyBsH,GAGvB,IAFA,IAAIrE,EAAQqE,EAAO3E,OAEZM,KAAWilG,EAAah4E,KAAK5oB,EAAOsyC,OAAO32C,MAClD,OAAOA,I,6BCbT3B,OAAOgB,eAAetC,EAAS,aAAc,CAC3Ca,OAAO,IAGT,IAIgCkE,EAJ5BojG,EAAkB1pG,EAAQ,KAE1B2pG,GAE4BrjG,EAFcojG,IAEOpjG,EAAIogF,WAAapgF,EAAM,CAAEqgF,QAASrgF,GAEvF/E,EAAQolF,QAAUgjB,EAAiBhjB,S,6BCVnC9jF,OAAOgB,eAAetC,EAAS,aAAc,CAC3Ca,OAAO,IAGT,IAAIykE,EAAe,WAAc,SAAStqD,EAAiBlb,EAAQwP,GAAS,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAM3M,OAAQuD,IAAK,CAAE,IAAIkS,EAAa9I,EAAMpJ,GAAIkS,EAAWT,WAAaS,EAAWT,aAAc,EAAOS,EAAWP,cAAe,EAAU,UAAWO,IAAYA,EAAWN,UAAW,GAAMxW,OAAOgB,eAAexC,EAAQsY,EAAWlZ,IAAKkZ,IAAiB,OAAO,SAAUF,EAAaqB,EAAYC,GAAiJ,OAA9HD,GAAYyB,EAAiB9C,EAAY3R,UAAWgT,GAAiBC,GAAawB,EAAiB9C,EAAasB,GAAqBtB,GAA7gB,GAEf6tE,EAAStnF,EAAQ,GAEjB4pG,EAAUtjB,EAAuBgB,GAIjCuiB,EAAcvjB,EAFDtmF,EAAQ,KAMrB8pG,EAA2BxjB,EAFDtmF,EAAQ,MAMlC+pG,EAAWzjB,EAFDtmF,EAAQ,MAMlBgqG,EAAW1jB,EAFAtmF,EAAQ,MAIvB,SAASsmF,EAAuBhgF,GAAO,OAAOA,GAAOA,EAAIogF,WAAapgF,EAAM,CAAEqgF,QAASrgF,GAQvF,IAAI2jG,EAAW,CAAE55E,SAAU05E,EAASpjB,QAASujB,SAAUF,EAASrjB,SAE5DwjB,EAAS,CACX3pF,SAAU,WACVnT,MAAO,EACPC,OAAQ,EACRT,WAAY,SACZ/C,QAAS,QAGPsgG,EAAiB,SAAUvvF,GAG7B,SAASuvF,EAAev5F,IAnB1B,SAAyB2I,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIvR,UAAU,qCAoB5GqR,CAAgB9F,KAAM22F,GAEtB,IAAIjtF,EApBR,SAAoCva,EAAMjB,GAAQ,IAAKiB,EAAQ,MAAM,IAAIiX,eAAe,6DAAgE,OAAOlY,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BiB,EAAPjB,EAoBlNiY,CAA2BnG,MAAO22F,EAAevlG,WAAahC,OAAOkC,eAAeqlG,IAAiBzoG,KAAK8R,KAAM5C,IAE5HsM,EAAMktF,qBAAuB,SAAU7wE,GACrC,IAAIpe,EAAc+B,EAAMtM,MACpBogB,EAAc7V,EAAY6V,YAC1BC,EAAe9V,EAAY8V,aAC3BC,EAAW/V,EAAY+V,SAE3BqI,EAAQnpB,SAAQ,SAAUpJ,GACxB,IAAIqjG,EAAqBrjG,EAAMsjG,YAC3Bl9F,EAAQi9F,EAAmBj9F,MAC3BC,EAASg9F,EAAmBh9F,OAE5Bk9F,EAAcv5E,GAAe9T,EAAM9P,QAAUA,EAC7Co9F,EAAev5E,GAAgB/T,EAAM7P,SAAWA,EAC/C6P,EAAMutF,cAAgBF,IAAeC,GACxCt5E,EAAS9jB,EAAOC,GAElB6P,EAAM9P,MAAQA,EACd8P,EAAM7P,OAASA,EACf6P,EAAMutF,aAAc,MAIxB,IAAIA,EAAc75F,EAAM65F,YACpBC,EAAc95F,EAAM85F,YACpBC,EAAc/5F,EAAM+5F,YAGxBztF,EAAM9P,WAAQ5L,EACd0b,EAAM7P,YAAS7L,EACf0b,EAAMutF,YAAcA,EAEpB,IAAIG,EAAiBZ,EAASU,IAAgBV,EAASU,GAAaxtF,EAAMktF,qBAAsBO,IAAgBztF,EAAMktF,qBAGtH,OADAltF,EAAM2tF,GAAK,IAAIhB,EAAyBnjB,QAAQkkB,GACzC1tF,EAiCT,OAvFF,SAAmBnC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI/S,UAAU,kEAAoE+S,GAAeD,EAASlT,UAAYjF,OAAOqY,OAAOD,GAAcA,EAAWnT,UAAW,CAAEoP,YAAa,CAAE9U,MAAO4Y,EAAU9B,YAAY,EAAOG,UAAU,EAAMD,cAAc,KAAe6B,IAAYpY,OAAO+B,eAAiB/B,OAAO+B,eAAeoW,EAAUC,GAAcD,EAASnW,UAAYoW,GAa/dE,CAAUivF,EAAgBvvF,GA4C1BgsD,EAAaujC,EAAgB,CAAC,CAC5B3pG,IAAK,oBACL2B,MAAO,WACL,IAAI2oG,EAAqBt3F,KAAK5C,MAAMk6F,mBAEhCC,EAAmBD,EAAqBp5F,SAASg/C,eAAeo6C,GAAsBt3F,KAAK9C,GAAGs6F,cAClGx3F,KAAKq3F,GAAGI,QAAQF,KAEjB,CACDvqG,IAAK,uBACL2B,MAAO,WACL,IAAI2oG,EAAqBt3F,KAAK5C,MAAMk6F,mBAEhCC,EAAmBD,EAAqBp5F,SAASg/C,eAAeo6C,GAAsBt3F,KAAK9C,GAAGs6F,cAClGx3F,KAAKq3F,GAAGK,UAAUH,KAEnB,CACDvqG,IAAK,SACL2B,MAAO,WACL,IAAIge,EAAS3M,KAEb,OAAOm2F,EAAQjjB,QAAQ/0E,cAAc,MAAO,CAC1CxE,MAAO+8F,EACPzpF,IAAK,SAAa/P,GAChByP,EAAOzP,GAAKA,SAMby5F,EA3EY,CA4EnB9iB,EAAOjrE,eAET9a,EAAQolF,QAAUyjB,EAGlBA,EAAe12F,UAAY,CACzBud,YAAa44E,EAAYljB,QAAQ9lE,KACjCqQ,aAAc24E,EAAYljB,QAAQ9lE,KAClC6pF,YAAab,EAAYljB,QAAQ9lE,KACjC+pF,YAAaf,EAAYljB,QAAQ19E,OACjC0hG,YAAad,EAAYljB,QAAQ99E,OACjCkiG,mBAAoBlB,EAAYljB,QAAQ99E,OACxCsoB,SAAU04E,EAAYljB,QAAQ54E,MAGhCq8F,EAAe3tF,aAAe,CAC5BwU,aAAa,EACbC,cAAc,EACdw5E,aAAa,EACbE,YAAa,IACbD,iBAAalpG,EACbspG,mBAAoB,GACpB55E,SAAU,SAAkBhuB,GAC1B,OAAOA,K,iBCjJX,YAUA,IAAIioG,EAAkB,sBASlBC,EAAS,aAGT1e,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAernD,SAGf/iC,EAA8B,iBAAV3C,GAAsBA,GAAUA,EAAO8C,SAAWA,QAAU9C,EAGhF4C,EAA0B,iBAARC,MAAoBA,MAAQA,KAAKC,SAAWA,QAAUD,KAGxEE,EAAOJ,GAAcC,GAAYjB,SAAS,cAATA,GAUjC4B,EAPcT,OAAOiF,UAOQC,SAG7BojF,EAAYnoF,KAAK2R,IACjBy2E,EAAYpoF,KAAK4R,IAkBjBuM,EAAM,WACR,OAAOre,EAAKulC,KAAKlnB,OAyDnB,SAASkP,EAAStiB,EAAMs9E,EAAM//D,GAC5B,IAAI0H,EACAs4D,EACAC,EACA9mF,EACA+mF,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAAR99E,EACT,MAAM,IAAI7F,UAAUkjG,GAUtB,SAAStf,EAAWpyC,GAClB,IAAI56B,EAAOkU,EACP+4D,EAAUT,EAKd,OAHAt4D,EAAWs4D,OAAW7pF,EACtBiqF,EAAiBhyC,EACjBj1C,EAASsJ,EAAKyF,MAAMu4E,EAASjtE,GAI/B,SAASktE,EAAYtyC,GAMnB,OAJAgyC,EAAiBhyC,EAEjB8xC,EAAU35E,WAAWo6E,EAAcZ,GAE5BM,EAAUG,EAAWpyC,GAAQj1C,EAWtC,SAASynF,EAAaxyC,GACpB,IAAIyyC,EAAoBzyC,EAAO+xC,EAM/B,YAAyBhqF,IAAjBgqF,GAA+BU,GAAqBd,GACzDc,EAAoB,GAAOP,GANJlyC,EAAOgyC,GAM8BH,EAGjE,SAASU,IACP,IAAIvyC,EAAOv4B,IACX,GAAI+qE,EAAaxyC,GACf,OAAO0yC,EAAa1yC,GAGtB8xC,EAAU35E,WAAWo6E,EAzBvB,SAAuBvyC,GACrB,IAEIj1C,EAAS4mF,GAFW3xC,EAAO+xC,GAI/B,OAAOG,EAASR,EAAU3mF,EAAQ8mF,GAHR7xC,EAAOgyC,IAGkCjnF,EAoBhC6nF,CAAc5yC,IAGnD,SAAS0yC,EAAa1yC,GAKpB,OAJA8xC,OAAU/pF,EAINoqF,GAAY74D,EACP84D,EAAWpyC,IAEpB1mB,EAAWs4D,OAAW7pF,EACfgD,GAeT,SAAS8nF,IACP,IAAI7yC,EAAOv4B,IACPqrE,EAAaN,EAAaxyC,GAM9B,GAJA1mB,EAAW/sB,UACXqlF,EAAW73E,KACXg4E,EAAe/xC,EAEX8yC,EAAY,CACd,QAAgB/qF,IAAZ+pF,EACF,OAAOQ,EAAYP,GAErB,GAAIG,EAGF,OADAJ,EAAU35E,WAAWo6E,EAAcZ,GAC5BS,EAAWL,GAMtB,YAHgBhqF,IAAZ+pF,IACFA,EAAU35E,WAAWo6E,EAAcZ,IAE9B5mF,EAIT,OAxGA4mF,EAAO73D,EAAS63D,IAAS,EACrBlpF,EAASmpB,KACXqgE,IAAYrgE,EAAQqgE,QAEpBJ,GADAK,EAAS,YAAatgE,GACH6/D,EAAU33D,EAASlI,EAAQigE,UAAY,EAAGF,GAAQE,EACrEM,EAAW,aAAcvgE,IAAYA,EAAQugE,SAAWA,GAiG1DU,EAAU5Z,OAnCV,gBACkBlxE,IAAZ+pF,GACFpoB,aAAaooB,GAEfE,EAAiB,EACjB14D,EAAWy4D,EAAeH,EAAWE,OAAU/pF,GA+BjD8qF,EAAUE,MA5BV,WACE,YAAmBhrF,IAAZ+pF,EAAwB/mF,EAAS2nF,EAAajrE,MA4BhDorE,EA0FT,SAASpqF,EAASC,GAChB,IAAI9B,SAAc8B,EAClB,QAASA,IAAkB,UAAR9B,GAA4B,YAARA,GA4EzC,SAASkzB,EAASpxB,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAhCF,SAAkBA,GAChB,MAAuB,iBAATA,GAtBhB,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,EAsBtB+B,CAAa/B,IAvXF,mBAuXYkB,EAAe3B,KAAKS,GA8B1C47E,CAAS57E,GACX,OAzZM,IA2ZR,GAAID,EAASC,GAAQ,CACnB,IAAIuC,EAAgC,mBAAjBvC,EAAM+mC,QAAwB/mC,EAAM+mC,UAAY/mC,EACnEA,EAAQD,EAASwC,GAAUA,EAAQ,GAAMA,EAE3C,GAAoB,iBAATvC,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQA,EAAM4gB,QAAQqoF,EAAQ,IAC9B,IAAIte,EAAWH,EAAWn7D,KAAKrvB,GAC/B,OAAQ2qF,GAAYF,EAAUp7D,KAAKrvB,GAC/B0qF,EAAa1qF,EAAMgE,MAAM,GAAI2mF,EAAW,EAAI,GAC3CJ,EAAWl7D,KAAKrvB,GAtab,KAsa6BA,EAGvCL,EAAOR,QA9IP,SAAkBwM,EAAMs9E,EAAM//D,GAC5B,IAAIqgE,GAAU,EACVE,GAAW,EAEf,GAAmB,mBAAR99E,EACT,MAAM,IAAI7F,UAAUkjG,GAMtB,OAJIjpG,EAASmpB,KACXqgE,EAAU,YAAargE,IAAYA,EAAQqgE,QAAUA,EACrDE,EAAW,aAAcvgE,IAAYA,EAAQugE,SAAWA,GAEnDx7D,EAAStiB,EAAMs9E,EAAM,CAC1B,QAAWM,EACX,QAAWN,EACX,SAAYQ,O,kCCtThB,IAAI3pF,EAAalC,EAAQ,KACrBsrG,EAAetrG,EAAQ,KACvBmE,EAAenE,EAAQ,KAMvBg7F,EAAYt5F,SAASoG,UACrBy4E,EAAc19E,OAAOiF,UAGrBu7E,EAAe2X,EAAUjzF,SAGzBV,EAAiBk5E,EAAYl5E,eAG7BkkG,EAAmBloB,EAAa1hF,KAAKkB,QA2CzCd,EAAOR,QAbP,SAAuBa,GACrB,IAAK+B,EAAa/B,IA5CJ,mBA4CcF,EAAWE,GACrC,OAAO,EAET,IAAIu3B,EAAQ2xE,EAAalpG,GACzB,GAAc,OAAVu3B,EACF,OAAO,EAET,IAAIw0D,EAAO9mF,EAAe1F,KAAKg4B,EAAO,gBAAkBA,EAAMziB,YAC9D,MAAsB,mBAARi3E,GAAsBA,aAAgBA,GAClD9K,EAAa1hF,KAAKwsF,IAASod,I,gBC1D/B,IAGID,EAHUtrG,EAAQ,IAGHk/F,CAAQr8F,OAAOkC,eAAgBlC,QAElDd,EAAOR,QAAU+pG,G,gBCLjB,IAAIE,EAAexrG,EAAQ,KACvByrG,EAASzrG,EAAQ,KACjBwC,EAAWxC,EAAQ,KA0BvB+B,EAAOR,QANP,SAAa+C,GACX,OAAQA,GAASA,EAAMJ,OACnBsnG,EAAalnG,EAAO9B,EAAUipG,QAC9BhqG,I,gBCzBN,IAAI+pG,EAAexrG,EAAQ,KACvB0rG,EAAS1rG,EAAQ,KACjBwC,EAAWxC,EAAQ,KA0BvB+B,EAAOR,QANP,SAAa+C,GACX,OAAQA,GAASA,EAAMJ,OACnBsnG,EAAalnG,EAAO9B,EAAUkpG,QAC9BjqG,I,gBCzBN,IAAIq/E,EAAc9gF,EAAQ,KACtBkQ,EAAMlQ,EAAQ,KA2BlB+B,EAAOR,QAJP,SAAiB4/E,EAAY58E,GAC3B,OAAOu8E,EAAY5wE,EAAIixE,EAAY58E,GAAW,K,gBCzBhD,IAAIq8F,EAAW5gG,EAAQ,KACnB6iF,EAAe7iF,EAAQ,KACvBqoG,EAAUroG,EAAQ,KAClBgC,EAAUhC,EAAQ,KAiDtB+B,EAAOR,QALP,SAAa4/E,EAAY58E,GAEvB,OADWvC,EAAQm/E,GAAcyf,EAAWyH,GAChClnB,EAAY0B,EAAat+E,EAAU,M,gBC9CjD,IAaImgD,EAbAinD,EAAW3rG,EAAQ,KACnB4rG,EAAqB5rG,EAAQ,KAC7B6rG,EAAO7rG,EAAQ,KAMf8rG,EAAiB,kCAYrB/pG,EAAOR,QAOP,SAAuBa,EAAO2pG,GAa5B,SAASC,EAAoBC,EAAYC,EAAoBvqG,GAC3D,GAAI+iD,IAlCQ,IAoCV,MADAA,EAAQ,EACF,IAAI/sC,MAAM,2BAA6BhW,GAG/C,GAAmB,KAAfsqG,EACF,MAAM,IAAIt0F,MAAMu0F,EAAqB,QAAUvqG,EAAO,0CAKxD,IAAIwqG,EAwFR,SAA8BF,GAC5B,IAAIG,EAAc,GACdC,EAAuB,GACvBC,EAAY,qBACZC,EAAUD,EAAUppG,KAAK+oG,GAE7B,KAAOM,GACAA,GAAYA,EAAQ,MAIuC,IAA5DF,EAAqBlnG,QAAQonG,EAAQ,GAAG/oF,iBAC1C4oF,EAAY57F,KAAK+7F,EAAQ,IACzBF,EAAqB77F,KAAK+7F,EAAQ,GAAG/oF,gBAGvC+oF,EAAUD,EAAUppG,KAAK+oG,IAG3B,OAAOG,EA3GOI,CAFZP,EAsDF,SAAkCA,EAAYtqG,GAG5CsqG,EAAaA,EAAWjpF,QAAQ,yBAA0B,IAC1D,IAEIupF,EAFAE,EAAgB,GAChBC,EAAmBT,EAEvB,KAAQM,EAAUT,EAAe5oG,KAAKwpG,IAAoB,CACpDH,EAAQ,GAAG/nG,MAAQ,IACrBioG,GAAiBC,EAAiBzgE,UAAU,EAAGsgE,EAAQ,GAAG/nG,QAG5D,IAAImoG,EAAehB,EAAS,IAAK,IAAKe,EAAiBzgE,UAAU,CAAC,GAAGznC,QACrE,GAA0B,KAAtBmoG,EAAa97C,KACf,MAAM,IAAIl5C,MAAM,IAAMs0F,EAAa,0CAGrC,IAAIW,EAAYZ,EAAmBW,EAAa97C,KAAM,GAAIlvD,GAE1D8qG,GAAiBE,EAAajoF,IAAMkoF,EACpCF,EAAmBC,EAAaE,KAGlC,OAAOJ,EAAgBC,EA7EVI,CAAyBb,EAAYtqG,IAMlD,GAAIwqG,EAAMjoG,OAAS,GAAK+nG,EAAW9mG,QAAQ,SAAW,EACpD,OAAO+mG,EAAqB,IAAMD,EAAa,IAGjD,IAAI3+E,EAAO6+E,EAAM,IAAM,GAEV,MAAT7+E,IAGF2+E,EAAaA,EAAWjpF,QAAQ,gBAAgB,SAASld,GACvD,MAA0C,IAAnCK,WAAWL,EAAQM,MAAM,GAAI,QAKxC,IACI3B,EADAsoG,EAAad,EAAWjpF,QAAQ,IAAIuY,OAAOjO,EAAM,MAAO,IAG5D,IACE7oB,EAASonG,EAAKmB,KAAKD,GAErB,MAAO5pG,GACL,OAAO+oG,EAAqB,IAAMD,EAAa,IAiBjD,MAba,MAAT3+E,IACF7oB,GAAU,MAKRynG,EAAmBhoG,QAAmB,MAATopB,KAC/B7oB,EAASzB,KAAKo3B,MAAM31B,EAASsnG,GAAoBA,GAInDtnG,GAAU6oB,EAqCZ,OAtGAo3B,EAAQ,EACRqnD,EAAmB/oG,KAAK8Y,IAAI,QAAyBra,IAArBsqG,EAAiC,EAAIA,GAGrE3pG,EAAQA,EAAM4gB,QAAQ,OAAQ,KAkGvB4oF,EAAmBxpG,EAAO,0BAA2B4pG,K,cCpI9D,SAASL,EAAS5nG,EAAGqD,EAAGmpD,GAClBxsD,aAAaw3B,SAAQx3B,EAAIkpG,EAAWlpG,EAAGwsD,IACvCnpD,aAAam0B,SAAQn0B,EAAI6lG,EAAW7lG,EAAGmpD,IAE3C,IAAI5iD,EAAI4kB,EAAMxuB,EAAGqD,EAAGmpD,GAEpB,OAAO5iD,GAAK,CACVuU,MAAOvU,EAAE,GACTkZ,IAAKlZ,EAAE,GACP+W,IAAK6rC,EAAInqD,MAAM,EAAGuH,EAAE,IACpBkjD,KAAMN,EAAInqD,MAAMuH,EAAE,GAAK5J,EAAEG,OAAQyJ,EAAE,IACnCk/F,KAAMt8C,EAAInqD,MAAMuH,EAAE,GAAKvG,EAAElD,SAI7B,SAAS+oG,EAAWC,EAAK38C,GACvB,IAAIhrB,EAAIgrB,EAAI1lB,MAAMqiE,GAClB,OAAO3nE,EAAIA,EAAE,GAAK,KAIpB,SAAShT,EAAMxuB,EAAGqD,EAAGmpD,GACnB,IAAI48C,EAAMC,EAAK3tF,EAAMC,EAAOjb,EACxB4oG,EAAK98C,EAAIprD,QAAQpB,GACjB6kC,EAAK2nB,EAAIprD,QAAQiC,EAAGimG,EAAK,GACzB5lG,EAAI4lG,EAER,GAAIA,GAAM,GAAKzkE,EAAK,EAAG,CAIrB,IAHAukE,EAAO,GACP1tF,EAAO8wC,EAAIrsD,OAEJuD,GAAK,IAAMhD,GACZgD,GAAK4lG,GACPF,EAAK38F,KAAK/I,GACV4lG,EAAK98C,EAAIprD,QAAQpB,EAAG0D,EAAI,IACA,GAAf0lG,EAAKjpG,OACdO,EAAS,CAAE0oG,EAAK9e,MAAOzlD,KAEvBwkE,EAAMD,EAAK9e,OACD5uE,IACRA,EAAO2tF,EACP1tF,EAAQkpB,GAGVA,EAAK2nB,EAAIprD,QAAQiC,EAAGK,EAAI,IAG1BA,EAAI4lG,EAAKzkE,GAAMykE,GAAM,EAAIA,EAAKzkE,EAG5BukE,EAAKjpG,SACPO,EAAS,CAAEgb,EAAMC,IAIrB,OAAOjb,EAxDT1C,EAAOR,QAAUoqG,EAqBjBA,EAASp5E,MAAQA,G,gBClBjB,IAAIo5E,EAAW3rG,EAAQ,KAgBvB,SAAS4rG,EAAmB/iG,EAAQykG,EAAYvsF,GAC9C,IAAIpf,EAAOkH,EACX,OAaF,SAA0BlH,EAAM2rG,GAC9B,IAAIC,EAAc,GAEdC,EAA6B,kBAAfF,EAA0B,IAAI/xE,OAAO,OAAS+xE,EAAa,QAAUA,EACvF,EAAG,CACD,IAAIG,EAAcD,EAAKtqG,KAAKvB,GAC5B,IAAK8rG,EACH,OAAOF,EAET,QAAuB9rG,IAAnBgsG,EAAY,GACd,MAAM,IAAI91F,MAAM,6EAA+E21F,GAEjG,IAAI5qF,EAAK+qF,EAAY,GACjBznD,EAAaynD,EAAYjpG,MACzB+nG,EAAUZ,EAAS,IAAK,IAAKhqG,EAAKsqC,UAAU+Z,IAEhD,IAAKumD,GAAWA,EAAQrqF,QAAUurF,EAAY,GAAGvpG,OAAS,EACxD,MAAM,IAAIwpG,YAAYhrF,EAAK,yCAA2C/gB,EAAO,KAG/E4rG,EAAY/8F,KAAK,CAAC+7F,QAASA,EAASL,mBAAoBxpF,IACxD/gB,EAAO4qG,EAAQM,WAEVW,EAAK/7E,KAAK9vB,IAEjB,OAAO4rG,EAtCAI,CAAiB9kG,EAAQykG,GAAY3qF,QAAO,SAAS9Z,EAAQvC,GAClE,OAAOuC,EAAOma,QAAQ1c,EAAI4lG,mBAAqB,IAAM5lG,EAAIimG,QAAQ17C,KAAO,IAgD5E,SAA2BhoD,EAAQqjG,EAAoBnrF,EAAUpf,EAAM2rG,GAErE,OAAOvsF,EAAS6qF,EAAmB/iG,EAAQykG,EAAYvsF,GAAWmrF,EAAoBvqG,GAlDPisG,CAAiBtnG,EAAIimG,QAAQ17C,KAAMvqD,EAAI4lG,mBAAoBnrF,EAAUpf,EAAM2rG,MACvJzkG,GAbL9G,EAAOR,QAAUqqG,G,6BCRjB,SAASD,EAAS5nG,EAAGqD,EAAGmpD,GAClBxsD,aAAaw3B,SAAQx3B,EAAIkpG,EAAWlpG,EAAGwsD,IACvCnpD,aAAam0B,SAAQn0B,EAAI6lG,EAAW7lG,EAAGmpD,IAE3C,IAAI5iD,EAAI4kB,EAAMxuB,EAAGqD,EAAGmpD,GAEpB,OAAO5iD,GAAK,CACVuU,MAAOvU,EAAE,GACTkZ,IAAKlZ,EAAE,GACP+W,IAAK6rC,EAAInqD,MAAM,EAAGuH,EAAE,IACpBkjD,KAAMN,EAAInqD,MAAMuH,EAAE,GAAK5J,EAAEG,OAAQyJ,EAAE,IACnCk/F,KAAMt8C,EAAInqD,MAAMuH,EAAE,GAAKvG,EAAElD,SAI7B,SAAS+oG,EAAWC,EAAK38C,GACvB,IAAIhrB,EAAIgrB,EAAI1lB,MAAMqiE,GAClB,OAAO3nE,EAAIA,EAAE,GAAK,KAIpB,SAAShT,EAAMxuB,EAAGqD,EAAGmpD,GACnB,IAAI48C,EAAMC,EAAK3tF,EAAMC,EAAOjb,EACxB4oG,EAAK98C,EAAIprD,QAAQpB,GACjB6kC,EAAK2nB,EAAIprD,QAAQiC,EAAGimG,EAAK,GACzB5lG,EAAI4lG,EAER,GAAIA,GAAM,GAAKzkE,EAAK,EAAG,CACrB,GAAG7kC,IAAIqD,EACL,MAAO,CAACimG,EAAIzkE,GAKd,IAHAukE,EAAO,GACP1tF,EAAO8wC,EAAIrsD,OAEJuD,GAAK,IAAMhD,GACZgD,GAAK4lG,GACPF,EAAK38F,KAAK/I,GACV4lG,EAAK98C,EAAIprD,QAAQpB,EAAG0D,EAAI,IACA,GAAf0lG,EAAKjpG,OACdO,EAAS,CAAE0oG,EAAK9e,MAAOzlD,KAEvBwkE,EAAMD,EAAK9e,OACD5uE,IACRA,EAAO2tF,EACP1tF,EAAQkpB,GAGVA,EAAK2nB,EAAIprD,QAAQiC,EAAGK,EAAI,IAG1BA,EAAI4lG,EAAKzkE,GAAMykE,GAAM,EAAIA,EAAKzkE,EAG5BukE,EAAKjpG,SACPO,EAAS,CAAEgb,EAAMC,IAIrB,OAAOjb,EA3DT1C,EAAOR,QAAUoqG,EAqBjBA,EAASp5E,MAAQA,G,gBCtBjB,IAAIs7E,EAAK7tG,EAAQ,KACjB6tG,EAAK/lG,UAAUgmG,YAAc,WAC5B,aAKA,IAJA,IAAaC,EAAKC,EAAKC,EACnBC,EAAK,GAEL1mG,EAAIiM,KAAKrR,MACLqF,EAAE,EAAEA,EAAED,EAAItD,OAAOuD,IACP,IAAdD,EAAIC,GAAGnH,MAAwB,IAAdkH,EAAIC,GAAGnH,KAC1B4tG,EAAK19F,KAAK,CAACpO,MAAoB,IAAdoF,EAAIC,GAAGnH,KAASkH,EAAIC,GAAG0mG,KAAK3mG,EAAIC,GAAGrF,MAAM9B,KAAK,IAE1C,KAAdkH,EAAIC,GAAGnH,KACd4tG,EAAK19F,KAAK,CAACpO,MAAMoF,EAAIC,GAAG0mG,KAAK7tG,KAAK,IAEb,IAAdkH,EAAIC,GAAGnH,KACd4tG,EAAKA,EAAKhqG,OAAO,GAAG,CAAC9B,MAAMoF,EAAIC,GAAG0mG,MAAmB,KAAb3mG,EAAIC,GAAG0mG,KAAU,IAAI,IAAID,EAAKA,EAAKhqG,OAAO,GAAG9B,OAAoB,KAAboF,EAAIC,GAAG0mG,KAAU,IAAI,IAAI7tG,KAAK,GAErG,IAAdkH,EAAIC,GAAGnH,KACd4tG,EAAKA,EAAKhqG,OAAO,GAAG,CAAC9B,OAAiC,GAA1B8rG,EAAKA,EAAKhqG,OAAO,GAAG5D,KAAQ,IAAI,IAAI4tG,EAAKA,EAAKhqG,OAAO,GAAG9B,OAAiC,GAA1B8rG,EAAKA,EAAKhqG,OAAO,GAAG5D,KAAQ,IAAI,IAAIkH,EAAIC,GAAG0mG,KAAK7tG,KAAK,GAE3H,KAAdkH,EAAIC,GAAGnH,MACdytG,EAAKG,EAAK7f,MACV2f,EAAKE,EAAK7f,MACO,MAAd7mF,EAAIC,GAAG0mG,MAA0B,MAAd3mG,EAAIC,GAAG0mG,KAAWD,EAAK19F,KAAK,CAACpO,MAAM,QAAQ4rG,EAAK5rG,MAAM,SAASoF,EAAIC,GAAG0mG,KAAK,QAAQJ,EAAK3rG,MAAM,SAAS9B,KAAK,KAC7H4tG,EAAK19F,KAAK,CAACpO,OAAkB,GAAX4rG,EAAK1tG,KAAQ,IAAI,IAAI0tG,EAAK5rG,OAAkB,GAAX4rG,EAAK1tG,KAAQ,IAAI,IAAI,QAAQytG,EAAK3rG,MAAM,SAAS9B,KAAK,KAEzF,IAAdkH,EAAIC,GAAGnH,MAAwB,IAAdkH,EAAIC,GAAGnH,MAC/BytG,EAAKG,EAAK7f,MACV2f,EAAKE,EAAK7f,MACV6f,EAAK19F,KAAK,CAACpO,OAAkB,GAAX4rG,EAAK1tG,KAAQ,IAAI,IAAI0tG,EAAK5rG,OAAkB,GAAX4rG,EAAK1tG,KAAQ,IAAI,IAAIkH,EAAIC,GAAG0mG,MAAiB,GAAXJ,EAAKztG,KAAQ,IAAI,IAAIytG,EAAK3rG,OAAkB,GAAX2rG,EAAKztG,KAAQ,IAAI,IAAIA,KAAKkH,EAAIC,GAAGnH,QAElI,KAAdkH,EAAIC,GAAGnH,OACdytG,EAAKG,EAAK7f,MACV2f,EAAKE,EAAK7f,MACV4f,EAAKC,EAAK7f,MACV6f,EAAK19F,KAAK,CAACpO,MAAMoF,EAAIC,GAAG0mG,KAAK,IAAIF,EAAK7rG,MAAM,IAAI4rG,EAAK5rG,MAAM,IAAI2rG,EAAK3rG,MAAM,IAAI9B,KAAK,MAGrF,OAAO4tG,EAAK,GAAG9rG,OAEhBL,EAAOR,QAAQssG,G,gBCxCf,IAAIA,EAAK7tG,EAAQ,KACjB6tG,EAAK/lG,UAAUsmG,YAAc,SAAUC,GACtC,cACAA,EAAYA,GAAa,IACbt5F,GAAG/R,KAAK+R,GACpBs5F,EAAY7/D,EAAExrC,KAAKwrC,EAMnB,IALA,IAAau/D,EAAKC,EAAKC,EAAnBvpD,EAAM,GAGNl9C,EAAIiM,KAAKrR,MACTye,EAA6B,qBAAhBwtF,EAAY78E,EACrB/pB,EAAE,EAAEA,EAAED,EAAItD,OAAOuD,IACP,IAAdD,EAAIC,GAAGnH,KACTokD,EAAMl0C,KAAK,CAACpO,MAAMoF,EAAIC,GAAGrF,MAAM9B,KAAK,IAEf,IAAdkH,EAAIC,GAAGnH,KACdokD,EAAMl0C,KAAK,CAACpO,MAAMisG,EAAY7mG,EAAIC,GAAGrF,OAAO9B,KAAK,IAE5B,IAAdkH,EAAIC,GAAGnH,MAMO,IAAdkH,EAAIC,GAAGnH,KALyB,qBAA7BokD,EAAMA,EAAMxgD,OAAO,GAAG5D,KAC/BokD,EAAMA,EAAMxgD,OAAO,GAAG9B,MAAMoO,KAAKhJ,EAAIC,IAEjCi9C,EAAMA,EAAMxgD,OAAO,GAAG9B,MAAMoF,EAAIC,GAAGrF,MAAMsiD,EAAMA,EAAMxgD,OAAO,GAAG9B,OAQ/C,IAAdoF,EAAIC,GAAGnH,MACdytG,EAAKrpD,EAAM2pC,MACX2f,EAAKtpD,EAAM2pC,MACX3pC,EAAMl0C,KAAK,CAAClQ,KAAK,EAAE8B,MAAMoF,EAAIC,GAAGrF,MAAM4rG,EAAK5rG,MAAM2rG,EAAK3rG,UAEjC,KAAdoF,EAAIC,GAAGnH,MACdytG,EAAKrpD,EAAM2pC,MAEW,qBADtB2f,EAAKtpD,EAAM2pC,OACI/tF,MACd0tG,EAAK5rG,MAAM4rG,EAAKpoG,OAAOmoG,GACvBC,EAAK5rG,MAAMoO,KAAKhJ,EAAIC,IACpBi9C,EAAMl0C,KAAKw9F,IAEgB,qBAAZD,EAAKztG,MACpBytG,EAAKv0C,QAAQw0C,GACbD,EAAKv9F,KAAKhJ,EAAIC,IACdi9C,EAAMl0C,KAAKu9F,IAGXrpD,EAAMl0C,KAAK,CAAClQ,KAAK,EAAE8B,MAAMoF,EAAIC,GAAGrF,MAAM4rG,EAAK5rG,MAAM2rG,EAAK3rG,UAGlC,IAAdoF,EAAIC,GAAGnH,MAAwB,IAAdkH,EAAIC,GAAGnH,MAC/BytG,EAAKrpD,EAAM2pC,MAEW,qBADtB2f,EAAKtpD,EAAM2pC,OACI/tF,OACd0tG,EAAKA,EAAKpoG,OAAOmoG,IACZv9F,KAAKhJ,EAAIC,IACdi9C,EAAMl0C,KAAKw9F,IAEgB,qBAAZD,EAAKztG,MACpBytG,EAAKv0C,QAAQw0C,GACbD,EAAKv9F,KAAKhJ,EAAIC,IACdi9C,EAAMl0C,KAAKu9F,IAGXrpD,EAAMl0C,KAAK,CAAClQ,KAAK,EAAE8B,MAAMoF,EAAIC,GAAGrF,MAAM4rG,EAAK5rG,MAAM2rG,EAAK3rG,UAGlC,KAAdoF,EAAIC,GAAGnH,MAES,qBADvBytG,EAAKrpD,EAAM2pC,OACK/tF,OACfytG,EAAK,CAACA,IAEPC,EAAKtpD,EAAM2pC,MACX4f,EAAKvpD,EAAM2pC,MACX3pC,EAAMl0C,KAAK,CAAClQ,KAAK,EAAE8B,MAAMoF,EAAIC,GAAGrF,MAAM6rG,EAAK7rG,MAAM4rG,EAAK5rG,MAAM,IAAIyrG,EAAKE,OAEhD,KAAdvmG,EAAIC,GAAGnH,OACXugB,EACF6jC,EAAMl0C,KAAK,CAACpO,MAAMisG,EAAY7mG,EAAIC,GAAGrF,OAAO9B,KAAK,IAE7CokD,EAAMl0C,KAAK,CAAChJ,EAAIC,MAGvB,GAAIi9C,EAAMxgD,OAAO,EAChB,MAAM,IAAI2pG,EAAKS,UAAU,yBAE1B,OAAO5pD,EAAM,GAAGtiD,MAAM,KAAiB,WAAW+D,WAAWu+C,EAAM,GAAGtiD,MAAMqpC,QAAQ,MAErFoiE,EAAKb,KAAK,SAASz8C,EAAIg+C,EAAOjoG,GAC7B,MAAoB,qBAATioG,EACH96F,KAAK+6F,IAAIj+C,GAAKk+C,YAAYL,cAEZ,qBAAN9nG,EACY,qBAAhBioG,EAAOrqG,OACVuP,KAAK+6F,IAAIj+C,EAAIg+C,GAAQE,YAAYL,cAEjC36F,KAAK+6F,IAAIj+C,GAAKk+C,YAAYL,YAAYG,GAGvC96F,KAAK+6F,IAAIj+C,EAAIg+C,GAAQE,YAAYL,YAAY9nG,IAEtDvE,EAAOR,QAAQssG,G,gBCtGf,IAAIA,EAAO7tG,EAAQ,KAEnB6tG,EAAK/lG,UAAU2mG,UAAY,WAC1B,aAIA,IAHA,IAAeC,EAAMC,EAAQC,EAAMlqF,EAAKmqF,EAApChC,EAAO,GACPnoD,EAAQ,CAAC,CAAEtiD,MAAO,IAAK9B,KAAM,EAAGokB,IAAK,IACrCld,EAAMiM,KAAKrR,MACNqF,EAAI,EAAGA,EAAID,EAAItD,OAAQuD,IAC/B,GAAoB,IAAhBD,EAAIC,GAAGnH,MAA8B,IAAhBkH,EAAIC,GAAGnH,MAA8B,KAAhBkH,EAAIC,GAAGnH,KAChC,IAAhBkH,EAAIC,GAAGnH,OACVkH,EAAIC,GAAGrF,MAAQszB,OAAOluB,EAAIC,GAAGrF,QAC9ByqG,EAAKr8F,KAAKhJ,EAAIC,SAEV,GAAoB,IAAhBD,EAAIC,GAAGnH,KACfokD,EAAMl0C,KAAKhJ,EAAIC,SAEX,GAAoB,IAAhBD,EAAIC,GAAGnH,KACf,KAAuC,KAA/BquG,EAASjqD,EAAM2pC,OAAO/tF,MAC7BusG,EAAKr8F,KAAKm+F,QAGP,GAAoB,KAAhBnnG,EAAIC,GAAGnH,KAAa,CAC5B,KAAuC,KAA/BquG,EAASjqD,EAAM2pC,OAAO/tF,MAC7BusG,EAAKr8F,KAAKm+F,GAEXjqD,EAAMl0C,KAAKm+F,OAEP,CAEJjqF,GADAgqF,EAAOlnG,EAAIC,IACAid,IAEXkqF,GADAC,EAAMnqD,EAAMA,EAAMxgD,OAAS,IAChBwgB,IACX,IAAIoqF,EAAoB,YAAbD,EAAIzsG,OAAqC,YAAdssG,EAAKtsG,MAC3C,GAAIsiB,EAAMkqF,EAAMlqD,EAAMl0C,KAAKk+F,OACtB,CACJ,KAAOE,GAAQlqF,IAAQoqF,GAAQA,GAAQpqF,EAAMkqF,GAC5CD,EAASjqD,EAAM2pC,MACfwgB,EAAMnqD,EAAMA,EAAMxgD,OAAS,GAC3B2oG,EAAKr8F,KAAKm+F,GACVC,EAAOC,EAAInqF,IACXoqF,EAAqB,YAAdJ,EAAKtsG,OAAoC,YAAbysG,EAAIzsG,MAExCsiD,EAAMl0C,KAAKk+F,IAId,OAAO,IAAIb,EAAKhB,IAEjB9qG,EAAOR,QAAUssG,G,6BChDjB,IAAIA,EAAO7tG,EAAQ,KACnB,SAAS+uG,EAAKvnG,EAAK4f,GACjB,IAAK,IAAI3f,EAAI,EAAGA,EAAID,EAAItD,OAAQuD,IAC9BD,EAAIC,IAAM2f,EAEZ,OAAO5f,EAET,IAAIwnG,EAAQ,CACV,MACA,MACA,MACA,KACA,IACA,IACA,IACA,IACA,IACA,OACA,OACA,OACA,IACA,IACA,IACA,MACA,OACA,QACA,KACA,IACA,OACA,IACA,IACA,IACA,IACA,IACA,OACA,QACA,MACA,IACA,IACA,IACA,IACA,OACA,QACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,QACA,IACA,KACA,OAEEb,EAAO,CACT,MACA,MACA,MACA,OACA,IACA,IACA,IACA,IACA,IACA,OACA,OACA,OACA,IACA,IACA,IACA,MACA,OACA,QACA,MACA,IACA,OACA,IACA,IACA,IACA,WACA,IACA,OACA,QACA,QACA,IACA,IACA,IACA,UACA,OACA,QACA,IACA,OACA,IACA,IACA,IACA,IACA,IACA,UACA,IACA,OACA,OAEEc,EAAM,CACRpB,EAAKqB,KAAKr6F,IACVg5F,EAAKqB,KAAKx6F,IACVm5F,EAAKqB,KAAK/2F,IACV,KACA,IACA,IACA01F,EAAKqB,KAAKhuG,E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","file":"js/1.05c2cc3a.chunk.js","sourcesContent":["var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\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","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","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","/**\n * Checks if `value` is `null` or `undefined`.\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 nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\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 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","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\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","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\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","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","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\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 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","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.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 * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","import 'core-js/es6/math';\nimport 'core-js/es6/number';\n/* eslint no-proto: 0 */\n\nvar testObject = {};\n\nif (!(Object.setPrototypeOf || testObject.__proto__)) {\n var nativeGetPrototypeOf = Object.getPrototypeOf;\n\n Object.getPrototypeOf = function (object) {\n if (object.__proto__) {\n return object.__proto__;\n }\n\n return nativeGetPrototypeOf.call(Object, object);\n };\n}","import _get from \"lodash/get\";\nimport _isArray from \"lodash/isArray\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isNumber from \"lodash/isNumber\";\nimport _isString from \"lodash/isString\";\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n\n if (value > 0) {\n return 1;\n }\n\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return _isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return _isNumber(value) && !_isNaN(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || _isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n/**\n * Get percent value of a total value\n * @param {Number|String} percent A percent\n * @param {Number} totalValue Total value\n * @param {NUmber} defaultValue The value returned when percent is undefined or invalid\n * @param {Boolean} validate If set to be true, the result will be validated\n * @return {Number} value\n */\n\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n\n var value;\n\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n\n if (_isNaN(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n\n var keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n\n var len = ary.length;\n var cache = {};\n\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n\n return false;\n};\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n\n return function () {\n return numberB;\n };\n};\nexport var findEntryInArray = function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : _get(entry, specifiedKey)) === specifiedValue;\n });\n};\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\n\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n\n for (var i = 0; i < len; i++) {\n xsum += data[i].cx;\n ysum += data[i].cy;\n xysum += data[i].cx * data[i].cy;\n xxsum += data[i].cx * data[i].cx;\n xmin = Math.min(xmin, data[i].cx);\n xmax = Math.max(xmax, data[i].cx);\n }\n\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n\n return true;\n}","import _isNil from \"lodash/isNil\";\nimport _isString from \"lodash/isString\";\nimport _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\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\nimport React, { Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nexport var PRESENTATION_ATTRIBUTES = {\n 'aria-current': PropTypes.string,\n // state\n 'aria-details': PropTypes.any,\n 'aria-disabled': PropTypes.any,\n // state\n 'aria-hidden': PropTypes.any,\n // state\n 'aria-invalid': PropTypes.any,\n // state\n 'aria-keyshortcuts': PropTypes.any,\n 'aria-label': PropTypes.any,\n 'aria-roledescription': PropTypes.any,\n // Widget Attributes\n 'aria-autocomplete': PropTypes.any,\n 'aria-checked': PropTypes.any,\n 'aria-expanded': PropTypes.any,\n 'aria-haspopup': PropTypes.any,\n 'aria-level': PropTypes.any,\n 'aria-modal': PropTypes.any,\n 'aria-multiline': PropTypes.any,\n 'aria-multiselectable': PropTypes.any,\n 'aria-orientation': PropTypes.any,\n 'aria-placeholder': PropTypes.any,\n 'aria-pressed': PropTypes.any,\n 'aria-readonly': PropTypes.any,\n 'aria-required': PropTypes.any,\n 'aria-selected': PropTypes.any,\n 'aria-sort': PropTypes.any,\n 'aria-valuemax': PropTypes.any,\n 'aria-valuemin': PropTypes.any,\n 'aria-valuenow': PropTypes.any,\n 'aria-valuetext': PropTypes.any,\n // Live Region Attributes\n 'aria-atomic': PropTypes.any,\n 'aria-busy': PropTypes.any,\n 'aria-live': PropTypes.any,\n 'aria-relevant': PropTypes.any,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': PropTypes.any,\n 'aria-grabbed': PropTypes.any,\n // Relationship Attributes\n 'aria-activedescendant': PropTypes.any,\n 'aria-colcount': PropTypes.any,\n 'aria-colindex': PropTypes.any,\n 'aria-colspan': PropTypes.any,\n 'aria-controls': PropTypes.any,\n 'aria-describedby': PropTypes.any,\n 'aria-errormessage': PropTypes.any,\n 'aria-flowto': PropTypes.any,\n 'aria-labelledby': PropTypes.any,\n 'aria-owns': PropTypes.any,\n 'aria-posinset': PropTypes.any,\n 'aria-rowcount': PropTypes.any,\n 'aria-rowindex': PropTypes.any,\n 'aria-rowspan': PropTypes.any,\n 'aria-setsize': PropTypes.any,\n alignmentBaseline: PropTypes.string,\n angle: PropTypes.number,\n baselineShift: PropTypes.string,\n clip: PropTypes.string,\n clipPath: PropTypes.string,\n clipRule: PropTypes.string,\n color: PropTypes.string,\n colorInterpolation: PropTypes.string,\n colorInterpolationFilters: PropTypes.string,\n colorProfile: PropTypes.string,\n colorRendering: PropTypes.string,\n cursor: PropTypes.string,\n direction: PropTypes.oneOf(['ltr', 'rtl', 'inherit']),\n display: PropTypes.string,\n dominantBaseline: PropTypes.string,\n enableBackground: PropTypes.string,\n fill: PropTypes.string,\n fillOpacity: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n fillRule: PropTypes.oneOf(['nonzero', 'evenodd', 'inherit']),\n filter: PropTypes.string,\n floodColor: PropTypes.string,\n floodOpacity: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n font: PropTypes.string,\n fontFamily: PropTypes.string,\n fontSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n fontSizeAdjust: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n fontStretch: PropTypes.oneOf(['normal', 'wider', 'narrower', 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', 'inherit']),\n fontStyle: PropTypes.oneOf(['normal', 'italic', 'oblique', 'inherit']),\n fontVariant: PropTypes.oneOf(['normal', 'small-caps', 'inherit']),\n fontWeight: PropTypes.oneOf(['normal', 'bold', 'bolder', 'lighter', 100, 200, 300, 400, 500, 600, 700, 800, 900, 'inherit']),\n glyphOrientationHorizontal: PropTypes.string,\n glyphOrientationVertical: PropTypes.string,\n imageRendering: PropTypes.oneOf(['auto', 'optimizeSpeed', 'optimizeQuality', 'inherit']),\n kerning: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n letterSpacing: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n lightingColor: PropTypes.string,\n lineHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n markerEnd: PropTypes.string,\n markerMid: PropTypes.string,\n markerStart: PropTypes.string,\n mask: PropTypes.string,\n opacity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n overflow: PropTypes.oneOf(['visible', 'hidden', 'scroll', 'auto', 'inherit']),\n pointerEvents: PropTypes.oneOf(['visiblePainted', 'visibleFill', 'visibleStroke', 'visible', 'painted', 'fill', 'stroke', 'all', 'none', 'inherit']),\n shapeRendering: PropTypes.oneOf(['auto', 'optimizeSpeed', 'crispEdges', 'geometricPrecision', 'inherit']),\n stopColor: PropTypes.string,\n stopOpacity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n stroke: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeDasharray: PropTypes.string,\n strokeDashoffset: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeLinecap: PropTypes.oneOf(['butt', 'round', 'square', 'inherit']),\n strokeLinejoin: PropTypes.oneOf(['miter', 'round', 'bevel', 'inherit']),\n strokeMiterlimit: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeOpacity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n textAnchor: PropTypes.oneOf(['start', 'middle', 'end', 'inherit']),\n textDecoration: PropTypes.oneOf(['none', 'underline', 'overline', 'line-through', 'blink', 'inherit']),\n textRendering: PropTypes.oneOf(['auto', 'optimizeSpeed', 'optimizeLegibility', 'geometricPrecision', 'inherit']),\n unicodeBidi: PropTypes.oneOf(['normal', 'embed', 'bidi-override', 'inherit']),\n visibility: PropTypes.oneOf(['visible', 'hidden', 'collapse', 'inherit']),\n wordSpacing: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n writingMode: PropTypes.oneOf(['lr-tb', 'rl-tb', 'tb-rl', 'lr', 'rl', 'tb', 'inherit']),\n transform: PropTypes.string,\n role: PropTypes.string,\n focusable: PropTypes.string,\n tabIndex: PropTypes.string,\n style: PropTypes.object,\n width: PropTypes.number,\n height: PropTypes.number,\n dx: PropTypes.number,\n dy: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number,\n r: PropTypes.number,\n // The radius of Rectangle\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.array])\n};\nexport var EVENT_ATTRIBUTES = {\n onClick: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchMove: PropTypes.func,\n onTouchStart: PropTypes.func,\n onTouchCancel: PropTypes.func\n};\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\n\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n\n if (!Comp) {\n return '';\n }\n\n return Comp.displayName || Comp.name || 'Component';\n};\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\n\nexport var findAllByType = function findAllByType(children, type) {\n var result = [];\n var types = [];\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n React.Children.forEach(children, function (child) {\n var childType = child && child.type && (child.type.displayName || child.type.name);\n\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\n\nexport var findChildByType = function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n};\n/*\n * Create a new array of children excluding the ones matched the type\n */\n\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n React.Children.forEach(children, function (child) {\n if (child && child.type && child.type.displayName && types.indexOf(child.type.displayName) !== -1) {\n return;\n }\n\n newChildren.push(child);\n });\n return newChildren;\n};\n/**\n * get all the presentation attribute of svg element\n * @param {Object} el A react element or the props of a react element\n * @return {Object} attributes or null\n */\n\nexport var getPresentationAttributes = function getPresentationAttributes(el) {\n if (!el || _isFunction(el)) {\n return null;\n }\n\n var props = React.isValidElement(el) ? el.props : el;\n\n if (!_isObject(props)) {\n return null;\n }\n\n var out = null; // eslint-disable-next-line no-restricted-syntax\n\n for (var i in props) {\n if ({}.hasOwnProperty.call(props, i) && PRESENTATION_ATTRIBUTES[i]) {\n if (!out) out = {};\n out[i] = props[i];\n }\n }\n\n return out;\n};\n\nvar getEventHandlerOfElement = function getEventHandlerOfElement(originalHandler, props) {\n return function (e) {\n originalHandler(props, e);\n return null;\n };\n};\n/**\n * get all the event attribute of svg element\n * @param {Object} el A react element or the props of a react element\n * @param {Function} newHandler New handler of event\n * @param {Boolean} wrapCallback Wrap callback and return more parameters or not\n * @return {Object} attributes or null\n */\n\n\nexport var filterEventAttributes = function filterEventAttributes(el, newHandler) {\n var wrapCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!el || _isFunction(el)) {\n return null;\n }\n\n var props = React.isValidElement(el) ? el.props : el;\n\n if (!_isObject(props)) {\n return null;\n }\n\n var out = null; // eslint-disable-next-line no-restricted-syntax\n\n for (var i in props) {\n if ({}.hasOwnProperty.call(props, i) && EVENT_ATTRIBUTES[i]) {\n if (!out) out = {};\n out[i] = newHandler || (wrapCallback ? getEventHandlerOfElement(props[i], props) : props[i]);\n }\n }\n\n return out;\n};\n\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\n\nexport var filterEventsOfChild = function filterEventsOfChild(props, data, index) {\n if (!_isObject(props)) {\n return null;\n }\n\n var out = null; // eslint-disable-next-line no-restricted-syntax\n\n for (var i in props) {\n if ({}.hasOwnProperty.call(props, i) && EVENT_ATTRIBUTES[i] && _isFunction(props[i])) {\n if (!out) out = {};\n out[i] = getEventHandlerOfChild(props[i], data, index);\n }\n }\n\n return out;\n};\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\n\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n\n return true;\n};\nexport var isSsr = function isSsr() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\n\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\n\n\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n React.Children.forEach(children, function (entry) {\n if (entry && entry.type && _isString(entry.type) && SVG_TAGS.indexOf(entry.type) >= 0) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, [\"children\"]);\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n\n return false;\n }\n\n return false;\n};\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\n\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n\n if (Children.count(nextChildren) !== Children.count(prevChildren)) {\n return false;\n }\n\n var count = Children.count(nextChildren);\n\n if (count === 0) {\n return true;\n }\n\n if (count === 1) {\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n\n for (var _i = 0; _i < count; _i++) {\n var nextChild = nextChildren[_i];\n var prevChild = prevChildren[_i];\n\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n }\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n Children.forEach(children, function (child, index) {\n if (child && isSvgElement(child)) {\n elements.push(child);\n } else if (child && renderMap[getDisplayName(child.type)]) {\n var displayName = getDisplayName(child.type);\n var _renderMap$displayNam = renderMap[displayName],\n handler = _renderMap$displayNam.handler,\n once = _renderMap$displayNam.once;\n\n if (once && !record[displayName] || !once) {\n var results = handler(child, displayName, index);\n\n if (_isArray(results)) {\n elements = [elements].concat(_toConsumableArray(results));\n } else {\n elements.push(results);\n }\n\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n var result = -1;\n Children.forEach(children, function (entry, index) {\n if (entry === child) {\n result = index;\n }\n });\n return result;\n};","function _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 _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\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { getPresentationAttributes } from '../util/ReactUtils';\nvar propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n className: PropTypes.string,\n style: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nfunction Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n others = _objectWithoutProperties(props, [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"]);\n\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = classNames('recharts-surface', className);\n var attrs = getPresentationAttributes(others);\n return React.createElement(\"svg\", _extends({}, attrs, {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height),\n version: \"1.1\"\n }), children);\n}\n\nSurface.propTypes = propTypes;\nexport default Surface;","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { 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 _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 _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'd3-shape';\nimport classNames from 'classnames';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nvar SYMBOL_FACTORIES = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\n\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(type.slice(0, 1).toUpperCase()).concat(type.slice(1));\n return SYMBOL_FACTORIES[name] || symbolCircle;\n};\n\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n\n case 'square':\n return size * size;\n\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n\n default:\n return Math.PI * size * size / 4;\n }\n};\n\nvar Symbols =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Symbols, _PureComponent);\n\n function Symbols() {\n _classCallCheck(this, Symbols);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Symbols).apply(this, arguments));\n }\n\n _createClass(Symbols, [{\n key: \"getPath\",\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n value: function getPath() {\n var _this$props = this.props,\n size = _this$props.size,\n sizeType = _this$props.sizeType,\n type = _this$props.type;\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n size = _this$props2.size;\n\n if (cx === +cx && cy === +cy && size === +size) {\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n className: classNames('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: this.getPath()\n }));\n }\n\n return null;\n }\n }]);\n\n return Symbols;\n}(PureComponent);\n\nSymbols.displayName = 'Symbols';\nSymbols.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n className: PropTypes.string,\n type: PropTypes.oneOf(['circle', 'cross', 'diamond', 'square', 'star', 'triangle', 'wye']),\n cx: PropTypes.number,\n cy: PropTypes.number,\n size: PropTypes.number,\n sizeType: PropTypes.oneOf(['area', 'diameter'])\n});\nSymbols.defaultProps = {\n type: 'circle',\n size: 64,\n sizeType: 'area'\n};\nexport default Symbols;","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","function _typeof(obj) { 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 _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 _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Surface from '../container/Surface';\nimport Symbols from '../shape/Symbols';\nimport { filterEventsOfChild, LEGEND_TYPES } from '../util/ReactUtils';\nvar SIZE = 32;\nvar ICON_TYPES = LEGEND_TYPES.filter(function (type) {\n return type !== 'none';\n});\n\nvar DefaultLegendContent =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(DefaultLegendContent).apply(this, arguments));\n }\n\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n value: function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n\n if (data.type === 'plainline') {\n return React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'line') {\n return React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'rect') {\n return React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n\n return React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var _classNames;\n\n var finalFormatter = entry.formatter || formatter;\n var className = classNames((_classNames = {\n 'recharts-legend-item': true\n }, _defineProperty(_classNames, \"legend-item-\".concat(i), true), _defineProperty(_classNames, \"inactive\", entry.inactive), _classNames));\n\n if (entry.type === 'none') {\n return null;\n }\n\n return React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle,\n key: \"legend-item-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, filterEventsOfChild(_this.props, entry, i)), React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), React.createElement(\"span\", {\n className: \"recharts-legend-item-text\"\n }, finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n\n if (!payload || !payload.length) {\n return null;\n }\n\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n\n return DefaultLegendContent;\n}(PureComponent);\n\nDefaultLegendContent.displayName = 'Legend';\nDefaultLegendContent.propTypes = {\n content: PropTypes.element,\n iconSize: PropTypes.number,\n iconType: PropTypes.oneOf(ICON_TYPES),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n align: PropTypes.oneOf(['center', 'left', 'right']),\n verticalAlign: PropTypes.oneOf(['top', 'bottom', 'middle']),\n payload: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n id: PropTypes.any,\n type: PropTypes.oneOf(LEGEND_TYPES)\n })),\n inactiveColor: PropTypes.string,\n formatter: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func\n};\nDefaultLegendContent.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n};\nexport default DefaultLegendContent;","import _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction _typeof(obj) { 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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport DefaultLegendContent from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nimport { LEGEND_TYPES } from '../util/ReactUtils';\n\nvar defaultUniqBy = function defaultUniqBy(entry) {\n return entry.value;\n};\n\nvar getUniqPaylod = function getUniqPaylod(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n};\n\nvar renderContent = function renderContent(content, props) {\n if (React.isValidElement(content)) {\n return React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return content(props);\n }\n\n return React.createElement(DefaultLegendContent, props);\n};\n\nvar EPS = 1;\nvar ICON_TYPES = LEGEND_TYPES.filter(function (type) {\n return type !== 'none';\n});\n\nvar Legend =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Legend, _PureComponent);\n\n function Legend() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Legend);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Legend)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\n\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\n }\n\n return null;\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var box = this.getBBox() || {\n width: 0\n };\n hPos = {\n left: ((chartWidth || 0) - box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box = this.getBBox() || {\n height: 0\n };\n\n vPos = {\n top: ((chartHeight || 0) - _box.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n\n return _objectSpread({}, hPos, {}, vPos);\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n var onBBoxUpdate = this.props.onBBoxUpdate;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(box);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n paylodUniqBy = _this$props2.paylodUniqBy,\n payload = _this$props2.payload;\n\n var outerStyle = _objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle), {}, wrapperStyle);\n\n return React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread({}, this.props, {\n payload: getUniqPaylod(paylodUniqBy, payload)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n\n return null;\n }\n }]);\n\n return Legend;\n}(PureComponent);\n\nLegend.displayName = 'Legend';\nLegend.propTypes = {\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n wrapperStyle: PropTypes.object,\n chartWidth: PropTypes.number,\n chartHeight: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n iconSize: PropTypes.number,\n iconType: PropTypes.oneOf(ICON_TYPES),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n align: PropTypes.oneOf(['center', 'left', 'right']),\n verticalAlign: PropTypes.oneOf(['top', 'bottom', 'middle']),\n margin: PropTypes.shape({\n top: PropTypes.number,\n left: PropTypes.number,\n bottom: PropTypes.number,\n right: PropTypes.number\n }),\n payload: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n id: PropTypes.any,\n type: PropTypes.oneOf(LEGEND_TYPES)\n })),\n paylodUniqBy: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n formatter: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n onBBoxUpdate: PropTypes.func\n};\nLegend.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n};\nexport default Legend;","import raf from 'raf';\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n raf(shouldUpdate);\n }\n };\n\n raf(shouldUpdate);\n}","function _typeof(obj) { 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 _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n\n var handleChange = function handleChange() {\n return null;\n };\n\n var shouldStop = false;\n\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n\n var styles = _style;\n\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n\n if (typeof _style === 'function') {\n _style();\n }\n };\n\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","import _intersection from \"lodash/intersection\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\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\n/* eslint no-console: 0 */\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return _intersection(Object.keys(preObj), Object.keys(nextObj));\n};\nexport var identity = function identity(param) {\n return param;\n};\n/*\n * @description: convert camel case to dash case\n * string => string\n */\n\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\n/*\n * @description: add compatible style prefix\n * (string, string) => object\n */\n\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, value);\n }\n\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n return PREFIX_LIST.reduce(function (result, property, i) {\n if (isTransition) {\n styleVal = value.replace(/(transform|transform-origin)/gim, \"\".concat(IN_LINE_PREFIX_LIST[i], \"$1\"));\n }\n\n return _objectSpread({}, result, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\nexport var log = function log() {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n};\n/*\n * @description: log the value of a varible\n * string => any => any\n */\n\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\n\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\n\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread({}, res, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n/*\n * @description: add compatible prefix to style\n * object => object\n */\n\nexport var translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _objectSpread({}, res, generatePrefixStyle(key, res[key]));\n }, style);\n};\nexport var compose = function compose() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\n\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\n\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\n\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\n\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n\n var newParams = _toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)).concat([0]);\n\n return multyTime(newParams, t);\n };\n}; // calculate cubic-bezier using Newton's method\n\n\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n default:\n {\n var easing = args[0].split('(');\n\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + 'oneOf \\'linear\\', \\'ease\\', \\'ease-in\\', \\'ease-out\\', ' + '\\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', instead received %s', args);\n }\n }\n }\n }\n\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n } else if (value < 0) {\n return 0;\n }\n\n return value;\n };\n\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n\n x = rangeValue(x - evalT / derVal);\n }\n\n return curveY(x);\n };\n\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n\n return [newX, newV];\n };\n\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var easing = args[0];\n\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n\n case 'spring':\n return configSpring();\n\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n\n warn(false, '[configEasing]: first argument should be one of \\'ease\\', \\'ease-in\\', ' + '\\'ease-out\\', \\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', \\'linear\\' and \\'spring\\', instead received %s', args);\n }\n }\n\n if (typeof easing === 'function') {\n return easing;\n }\n\n warn(false, '[configEasing]: first argument type should be function or ' + 'string, instead received %s', args);\n return null;\n};","import _filter from \"lodash/filter\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport raf, { cancel as caf } from 'raf';\nimport { getIntersectionKeys, mapObject } from './util';\n\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\n\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\n\n\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n\n return _objectSpread({}, val, {\n from: newX,\n velocity: newV\n });\n }\n\n return val;\n }, preVals);\n\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread({}, val, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n\n return val;\n }, preVals);\n }\n\n return calStepperVals(easing, nextStepVals, steps - 1);\n}; // configure update function\n\n\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread({}, res, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread({}, res, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n\n var update = function update() {\n return null;\n };\n\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n\n var shouldStopAnimation = function shouldStopAnimation() {\n return !_filter(stepperStyle, needContinue).length;\n }; // stepper timing function like spring\n\n\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps); // get union set and add compatible prefix\n\n render(_objectSpread({}, from, to, getCurrStyle(stepperStyle)));\n preTime = now;\n\n if (!shouldStopAnimation()) {\n cafId = raf(update);\n }\n }; // t => val timing function like cubic-bezier\n\n\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle); // get union set and add compatible prefix\n\n render(_objectSpread({}, from, to, currStyle));\n\n if (t < 1) {\n cafId = raf(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread({}, from, to, finalStyle));\n }\n };\n\n update = easing.isStepper ? stepperUpdate : timingUpdate; // return start animation method\n\n return function () {\n raf(update); // return stop animation method\n\n return function () {\n caf(cafId);\n };\n };\n});","import _isEqual from \"lodash/isEqual\";\n\nfunction _typeof(obj) { 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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity, translateStyle } from './util';\n\nvar Animate =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Animate, _PureComponent);\n\n function Animate(props, context) {\n var _this;\n\n _classCallCheck(this, Animate);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Animate).call(this, props, context));\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n\n if (!isActive) {\n _this.state = {\n style: {}\n }; // if children is a function and animation is not active, set style to 'to'\n\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n\n return _possibleConstructorReturn(_this);\n }\n\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n\n return _this;\n }\n\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n\n if (!isActive || !canBegin) {\n return;\n }\n\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate;\n\n if (!canBegin) {\n return;\n }\n\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, this.props.to) : this.props.to\n };\n\n if (this.state && this.state.style) {\n if (attributeName && this.state.style[attributeName] !== this.props.to || !attributeName && this.state.style !== this.props.to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n\n return;\n }\n\n if (_isEqual(prevProps.to, this.props.to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n\n if (this.manager) {\n this.manager.stop();\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n\n var from = isTriggered || shouldReAnimate ? this.props.from : prevProps.to;\n\n if (this.state && this.state.style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n\n if (attributeName && this.state.style[attributeName] !== from || !attributeName && this.state.style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n\n this.runAnimation(_objectSpread({}, this.props, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n\n if (typeof easing === 'function' || easing === 'spring') {\n return _toConsumableArray(sequence).concat([_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n\n var transition = getTransitionVal(properties, duration, easing);\n\n var newStyle = _objectSpread({}, preItem.style, style, {\n transition: transition\n });\n\n return _toConsumableArray(sequence).concat([newStyle, duration, onAnimationEnd]).filter(identity);\n };\n\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread({}, to, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"]);\n\n var count = Children.count(children);\n var stateStyle = translateStyle(this.state.style);\n\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n\n if (!isActive || count === 0) {\n return children;\n }\n\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = cloneElement(container, _objectSpread({}, others, {\n style: _objectSpread({}, style, stateStyle),\n className: className\n }));\n return res;\n };\n\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n\n return React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n\n return Animate;\n}(PureComponent);\n\nAnimate.displayName = 'Animate';\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nexport default Animate;","import _isNumber from \"lodash/isNumber\";\n\nfunction _typeof(obj) { 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 _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 _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 _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\n\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (_isNumber(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n\n if (_isNumber(duration)) {\n return duration;\n }\n\n return 0;\n};\n\nvar AnimateGroupChild =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(AnimateGroupChild, _Component);\n\n function AnimateGroupChild() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, AnimateGroupChild);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(AnimateGroupChild)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isActive: false\n };\n\n _this.handleEnter = function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n };\n\n _this.handleExit = function () {\n _this.handleStyleActive(_this.props.leaveOptions);\n };\n\n return _this;\n }\n\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread({}, style, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"]);\n\n return React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n\n return AnimateGroupChild;\n}(Component);\n\nAnimateGroupChild.propTypes = {\n appearOptions: PropTypes.object,\n enterOptions: PropTypes.object,\n leaveOptions: PropTypes.object,\n children: PropTypes.element\n};\nexport default AnimateGroupChild;","import React, { Children } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport AnimateGroupChild from './AnimateGroupChild';\n\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index)\n }, child);\n }));\n}\n\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport { translateStyle } from './util';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup, translateStyle };\nexport default Animate;","import _sortBy from \"lodash/sortBy\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _typeof(obj) { 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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { isNumOrStr } from '../util/DataUtils';\n\nvar defaultFormatter = function defaultFormatter(value) {\n return _isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n};\n\nvar DefaultTooltipContent =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(DefaultTooltipContent, _PureComponent);\n\n function DefaultTooltipContent() {\n _classCallCheck(this, DefaultTooltipContent);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(DefaultTooltipContent).apply(this, arguments));\n }\n\n _createClass(DefaultTooltipContent, [{\n key: \"renderContent\",\n value: function renderContent() {\n var _this$props = this.props,\n payload = _this$props.payload,\n separator = _this$props.separator,\n formatter = _this$props.formatter,\n itemStyle = _this$props.itemStyle,\n itemSorter = _this$props.itemSorter;\n\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? _sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var name = entry.name,\n value = entry.value;\n\n if (finalFormatter) {\n var formatted = finalFormatter(value, name, entry, i);\n\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n\n value = _formatted[0];\n name = _formatted[1];\n } else {\n value = formatted;\n }\n }\n\n return (// eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(name) ? React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, name) : null, isNumOrStr(name) ? React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, value), React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n wrapperClassName = _this$props2.wrapperClassName,\n contentStyle = _this$props2.contentStyle,\n labelClassName = _this$props2.labelClassName,\n labelStyle = _this$props2.labelStyle,\n label = _this$props2.label,\n labelFormatter = _this$props2.labelFormatter;\n\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n\n var hasLabel = isNumOrStr(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = classNames('recharts-default-tooltip', wrapperClassName);\n var labelCN = classNames('recharts-tooltip-label', labelClassName);\n\n if (hasLabel && labelFormatter) {\n finalLabel = labelFormatter(label);\n }\n\n return React.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, finalLabel), this.renderContent());\n }\n }]);\n\n return DefaultTooltipContent;\n}(PureComponent);\n\nDefaultTooltipContent.displayName = 'DefaultTooltipContent';\nDefaultTooltipContent.propTypes = {\n separator: PropTypes.string,\n wrapperClassName: PropTypes.string,\n labelClassName: PropTypes.string,\n formatter: PropTypes.func,\n contentStyle: PropTypes.object,\n itemStyle: PropTypes.object,\n labelStyle: PropTypes.object,\n labelFormatter: PropTypes.func,\n label: PropTypes.any,\n payload: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.any,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array]),\n unit: PropTypes.any\n })),\n itemSorter: PropTypes.func\n};\nDefaultTooltipContent.defaultProps = {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {}\n};\nexport default DefaultTooltipContent;","import _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction _typeof(obj) { 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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { translateStyle } from 'react-smooth';\nimport classNames from 'classnames';\nimport DefaultTooltipContent from './DefaultTooltipContent';\nimport { TOOLTIP_TYPES, isSsr } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CLS_PREFIX = 'recharts-tooltip-wrapper';\nvar EPS = 1;\n\nvar defaultUniqBy = function defaultUniqBy(entry) {\n return entry.dataKey;\n};\n\nvar getUniqPaylod = function getUniqPaylod(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n};\n\nvar propTypes = {\n allowEscapeViewBox: PropTypes.shape({\n x: PropTypes[\"boolean\"],\n y: PropTypes[\"boolean\"]\n }),\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n active: PropTypes.bool,\n separator: PropTypes.string,\n formatter: PropTypes.func,\n offset: PropTypes.number,\n itemStyle: PropTypes.object,\n labelStyle: PropTypes.object,\n wrapperStyle: PropTypes.object,\n contentStyle: PropTypes.object,\n cursor: PropTypes.oneOfType([PropTypes.bool, PropTypes.element, PropTypes.object]),\n coordinate: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n label: PropTypes.any,\n payload: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.any,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array]),\n unit: PropTypes.any,\n type: PropTypes.oneOf(TOOLTIP_TYPES)\n })),\n paylodUniqBy: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n isAnimationActive: PropTypes.bool,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n itemSorter: PropTypes.func,\n filterNull: PropTypes.bool,\n useTranslate3d: PropTypes.bool\n};\nvar defaultProps = {\n active: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n offset: 10,\n viewBox: {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n },\n coordinate: {\n x: 0,\n y: 0\n },\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n isAnimationActive: !isSsr(),\n animationEasing: 'ease',\n animationDuration: 400,\n filterNull: true,\n useTranslate3d: false\n};\n\nvar renderContent = function renderContent(content, props) {\n if (React.isValidElement(content)) {\n return React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return content(props);\n }\n\n return React.createElement(DefaultTooltipContent, props);\n};\n\nvar Tooltip =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n\n function Tooltip() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Tooltip)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n\n _this.getTranslate = function (_ref) {\n var key = _ref.key,\n tooltipDimension = _ref.tooltipDimension,\n viewBoxDimension = _ref.viewBoxDimension;\n var _this$props = _this.props,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n coordinate = _this$props.coordinate,\n offset = _this$props.offset,\n position = _this$props.position,\n viewBox = _this$props.viewBox;\n\n if (position && isNumber(position[key])) {\n return position[key];\n }\n\n var restricted = coordinate[key] - tooltipDimension - offset;\n var unrestricted = coordinate[key] + offset;\n\n if (allowEscapeViewBox[key]) {\n return unrestricted;\n }\n\n var tooltipBoundary = coordinate[key] + tooltipDimension + offset;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(restricted, viewBox[key]);\n }\n\n return Math.max(unrestricted, viewBox[key]);\n };\n\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n isAnimationActive = _this$props2.isAnimationActive,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n filterNull = _this$props2.filterNull,\n paylodUniqBy = _this$props2.paylodUniqBy;\n var finalPayload = getUniqPaylod(paylodUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {\n return !_isNil(entry.value);\n }) : payload);\n var hasPayload = finalPayload && finalPayload.length;\n var _this$props3 = this.props,\n content = _this$props3.content,\n viewBox = _this$props3.viewBox,\n coordinate = _this$props3.coordinate,\n position = _this$props3.position,\n active = _this$props3.active,\n wrapperStyle = _this$props3.wrapperStyle;\n\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0\n }, wrapperStyle);\n\n var translateX, translateY;\n\n if (position && isNumber(position.x) && isNumber(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n\n if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = this.getTranslate({\n key: 'x',\n tooltipDimension: boxWidth,\n viewBoxDimension: viewBox.width\n });\n translateY = this.getTranslate({\n key: 'y',\n tooltipDimension: boxHeight,\n viewBoxDimension: viewBox.height\n });\n } else {\n outerStyle.visibility = 'hidden';\n }\n }\n\n outerStyle = _objectSpread({}, translateStyle({\n transform: this.props.useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n }), {}, outerStyle);\n\n if (isAnimationActive && active) {\n outerStyle = _objectSpread({}, translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n }), {}, outerStyle);\n }\n\n var cls = classNames(CLS_PREFIX, (_classNames = {}, _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y), _classNames));\n return React.createElement(\"div\", {\n className: cls,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread({}, this.props, {\n payload: finalPayload\n })));\n }\n }]);\n\n return Tooltip;\n}(PureComponent);\n\nTooltip.displayName = 'Tooltip';\nTooltip.propTypes = propTypes;\nTooltip.defaultProps = defaultProps;\nexport default Tooltip;","import _debounce from \"lodash/debounce\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport ReactResizeDetector from 'react-resize-detector';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\n\nvar ResponsiveContainer =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ResponsiveContainer, _Component);\n\n function ResponsiveContainer(props) {\n var _this;\n\n _classCallCheck(this, ResponsiveContainer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResponsiveContainer).call(this, props));\n\n _this.updateDimensionsImmediate = function () {\n if (!_this.mounted) {\n return;\n }\n\n var newSize = _this.getContainerSize();\n\n if (newSize) {\n var _this$state = _this.state,\n oldWidth = _this$state.containerWidth,\n oldHeight = _this$state.containerHeight;\n var containerWidth = newSize.containerWidth,\n containerHeight = newSize.containerHeight;\n\n if (containerWidth !== oldWidth || containerHeight !== oldHeight) {\n _this.setState({\n containerWidth: containerWidth,\n containerHeight: containerHeight\n });\n }\n }\n };\n\n _this.state = {\n containerWidth: -1,\n containerHeight: -1\n };\n _this.handleResize = props.debounce > 0 ? _debounce(_this.updateDimensionsImmediate, props.debounce) : _this.updateDimensionsImmediate;\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(ResponsiveContainer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true;\n var size = this.getContainerSize();\n\n if (size) {\n this.setState(size);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n }\n }, {\n key: \"getContainerSize\",\n value: function getContainerSize() {\n if (!this.container) {\n return null;\n }\n\n return {\n containerWidth: this.container.clientWidth,\n containerHeight: this.container.clientHeight\n };\n }\n }, {\n key: \"renderChart\",\n value: function renderChart() {\n var _this$state2 = this.state,\n containerWidth = _this$state2.containerWidth,\n containerHeight = _this$state2.containerHeight;\n\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n\n var _this$props = this.props,\n aspect = _this$props.aspect,\n width = _this$props.width,\n height = _this$props.height,\n minWidth = _this$props.minWidth,\n minHeight = _this$props.minHeight,\n maxHeight = _this$props.maxHeight,\n children = _this$props.children;\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n } // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n\n\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n return React.cloneElement(children, {\n width: calculatedWidth,\n height: calculatedHeight\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n minWidth = _this$props2.minWidth,\n minHeight = _this$props2.minHeight,\n width = _this$props2.width,\n height = _this$props2.height,\n maxHeight = _this$props2.maxHeight,\n id = _this$props2.id,\n className = _this$props2.className;\n var style = {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n };\n return React.createElement(\"div\", {\n id: id,\n className: classNames('recharts-responsive-container', className),\n style: style,\n ref: function ref(node) {\n _this2.container = node;\n }\n }, this.renderChart(), React.createElement(ReactResizeDetector, {\n handleWidth: true,\n handleHeight: true,\n onResize: this.handleResize\n }));\n }\n }]);\n\n return ResponsiveContainer;\n}(Component);\n\nResponsiveContainer.displayName = 'ResponsiveContainer';\nResponsiveContainer.propTypes = {\n aspect: PropTypes.number,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n children: PropTypes.node.isRequired,\n debounce: PropTypes.number,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nResponsiveContainer.defaultProps = {\n width: '100%',\n height: '100%',\n debounce: 0\n};\nexport default ResponsiveContainer;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\n/**\n * @fileOverview Cross\n */\nimport { PRESENTATION_ATTRIBUTES } from '../util/ReactUtils';\n\nfunction Cell() {\n return null;\n}\n\nCell.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES);\nCell.displayName = 'Cell';\nexport default Cell;","function _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 _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\n/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nvar propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nfunction Layer(props) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, [\"children\", \"className\"]);\n\n var layerClass = classNames('recharts-layer', className);\n return React.createElement(\"g\", _extends({\n className: layerClass\n }, others), children);\n}\n\nLayer.propTypes = propTypes;\nexport default Layer;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import {pair} from \"./pairs\";\n\nexport default function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","import number from \"./number\";\n\nexport default function(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.interpolator(domain); break;\n default: this.interpolator(interpolator).domain(domain); break;\n }\n return this;\n}\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal() {\n var index = map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(domain) {\n var a = domain[0], b = domain[domain.length - 1], t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map.call(_, number), clamp === identity || (clamp = clamper(domain)), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? clamper(domain) : identity, scale) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous(transform, untransform) {\n return transformer()(transform, untransform);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": formatDecimal,\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(identity, identity);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {map} from \"./array\";\nimport {linearish} from \"./linear\";\nimport number from \"./number\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map.call(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? map.call(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear\";\nimport {copy, identity, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile as threshold} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {linearish} from \"./linear\";\nimport {initRange} from \"./init\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = slice.call(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {bisector, tickStep} from \"d3-array\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(identity, identity),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import {calendar} from \"./time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\nimport {initRange} from \"./init\";\n\nexport default function() {\n return initRange.apply(calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect} from \"d3-array\";\nimport {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((bisect(domain, x) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {copy} from \"./sequential\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (x < t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), t2 = transform(x2 = +_[2]), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1);\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export var slice = Array.prototype.slice;\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","function _typeof(obj) { 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 _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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _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 _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Render a group of error bar\n*/\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Layer from '../container/Layer';\nimport { getPresentationAttributes } from '../util/ReactUtils';\n\nvar ErrorBar =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ErrorBar, _Component);\n\n function ErrorBar() {\n _classCallCheck(this, ErrorBar);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ErrorBar).apply(this, arguments));\n }\n\n _createClass(ErrorBar, [{\n key: \"renderErrorBars\",\n value: function renderErrorBars() {\n var _this$props = this.props,\n offset = _this$props.offset,\n layout = _this$props.layout,\n width = _this$props.width,\n dataKey = _this$props.dataKey,\n data = _this$props.data,\n dataPointFormatter = _this$props.dataPointFormatter,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n others = _objectWithoutProperties(_this$props, [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"]);\n\n var props = getPresentationAttributes(others);\n return data.map(function (entry, i) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n\n if (!errorVal) {\n return null;\n }\n\n var xMid, yMid, xMin, yMin, xMax, yMax, scale, coordsTop, coordsMid, coordsBot, lowBound, highBound;\n\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n\n if (layout === 'vertical') {\n scale = xAxis.scale;\n xMid = value;\n yMid = y + offset;\n xMin = scale(xMid - lowBound);\n yMin = yMid + width;\n xMax = scale(xMid + highBound);\n yMax = yMid - width;\n coordsTop = {\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n };\n coordsMid = {\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n };\n coordsBot = {\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n };\n } else if (layout === 'horizontal') {\n scale = yAxis.scale;\n xMid = x + offset;\n yMid = value;\n xMin = xMid - width;\n xMax = xMid + width;\n yMin = scale(yMid - lowBound);\n yMax = scale(yMid + highBound);\n coordsTop = {\n x1: xMin,\n y1: yMax,\n x2: xMax,\n y2: yMax\n };\n coordsMid = {\n x1: xMid,\n y1: yMin,\n x2: xMid,\n y2: yMax\n };\n coordsBot = {\n x1: xMin,\n y1: yMin,\n x2: xMax,\n y2: yMin\n };\n }\n\n return (// eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(i)\n }, props), React.createElement(\"line\", coordsTop), React.createElement(\"line\", coordsMid), React.createElement(\"line\", coordsBot))\n );\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, this.renderErrorBars());\n }\n }]);\n\n return ErrorBar;\n}(Component);\n\nErrorBar.propTypes = {\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n data: PropTypes.array,\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n layout: PropTypes.string,\n dataPointFormatter: PropTypes.func,\n stroke: PropTypes.string,\n strokeWidth: PropTypes.number,\n width: PropTypes.number,\n offset: PropTypes.number\n};\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nexport default ErrorBar;","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isString from \"lodash/isString\";\nimport _isArray from \"lodash/isArray\";\nimport _max from \"lodash/max\";\nimport _min from \"lodash/min\";\nimport _flatMap from \"lodash/flatMap\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport * as d3Scales from 'd3-scale';\nimport { stack as shapeStack, stackOrderNone, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { isNumOrStr, uniqueId, isNumber, getPercentValue, mathSign, findEntryInArray } from './DataUtils';\nimport ErrorBar from '../cartesian/ErrorBar';\nimport Legend from '../component/Legend';\nimport { findAllByType, findChildByType, getDisplayName } from './ReactUtils';\nexport var getValueByDataKey = function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\n\n return defaultValue;\n};\n/**\n * Get domain of data by key\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\n\nexport var getDomainOfDataByKey = function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry, 10);\n });\n return domain.length ? [_min(domain), _max(domain)] : [Infinity, -Infinity];\n }\n\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData;\n return validateData.map(function (entry) {\n return isNumOrStr(entry) ? entry : '';\n });\n};\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate, ticks, unsortedTicks, axis) {\n var index = -1;\n var len = ticks.length;\n\n if (len > 1) {\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range; // ticks are distributed in a circle\n\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var min = Math.min(before, after);\n var max = Math.max(before, after);\n\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n } else {\n index = 0;\n }\n\n return index;\n};\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\n\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var displayName = item.type.displayName;\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n\n default:\n result = fill;\n break;\n }\n\n return result;\n};\nexport var getLegendProps = function getLegendProps(_ref) {\n var children = _ref.children,\n formatedGraphicalItems = _ref.formatedGraphicalItems,\n legendWidth = _ref.legendWidth,\n legendContent = _ref.legendContent;\n var legendItem = findChildByType(children, Legend);\n\n if (!legendItem) {\n return null;\n }\n\n var legendData;\n\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formatedGraphicalItems || []).reduce(function (result, _ref2) {\n var item = _ref2.item,\n props = _ref2.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formatedGraphicalItems || []).map(function (_ref3) {\n var item = _ref3.item;\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n name = _item$props2.name,\n legendType = _item$props2.legendType,\n hide = _item$props2.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props\n };\n });\n }\n\n return _objectSpread({}, legendItem.props, {}, Legend.getWithHeight(legendItem, legendWidth), {\n payload: legendData,\n item: legendItem\n });\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\n\nexport var getBarSizeList = function getBarSizeList(_ref4) {\n var globalSize = _ref4.barSize,\n _ref4$stackGroups = _ref4.stackGroups,\n stackGroups = _ref4$stackGroups === void 0 ? {} : _ref4$stackGroups;\n\n if (!stackGroups) {\n return {};\n }\n\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\n\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n\n return result;\n};\n/**\n * Calculate the size of each bar and the gap between two bars\n * @param {Number} bandSize The size of each category\n * @param {sizeList} sizeList The size of all groups\n * @param {maxBarSize} maxBarSize The maximum size of bar\n * @return {Number} The size of each bar and the gap between two bars\n */\n\nexport var getBarPosition = function getBarPosition(_ref5) {\n var barGap = _ref5.barGap,\n barCategoryGap = _ref5.barCategoryGap,\n bandSize = _ref5.bandSize,\n _ref5$sizeList = _ref5.sizeList,\n sizeList = _ref5$sizeList === void 0 ? [] : _ref5$sizeList,\n maxBarSize = _ref5.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result; // whether or not is barSize setted by user\n\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize\n }\n }]);\n prev = newRes[newRes.length - 1].position;\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n\n return newRes;\n }, []);\n }\n\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {\n var children = props.children,\n width = props.width,\n height = props.height,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n var legendProps = getLegendProps({\n children: children,\n items: items,\n legendWidth: legendWidth,\n legendHeight: legendHeight\n });\n var newOffset = offset;\n\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && isNumber(offset[align])) {\n newOffset = _objectSpread({}, offset, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && isNumber(offset[verticalAlign])) {\n newOffset = _objectSpread({}, offset, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n\n return newOffset;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, ErrorBar).filter(function (errorBarChild) {\n var direction = errorBarChild.props.direction;\n return _isNil(direction) || _isNil(axisType) ? true : axisType.indexOf(direction) >= 0;\n });\n\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey, 0);\n var mainValue = _isArray(entryValue) ? [_min(entryValue), _max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(_isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(_isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\n\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\n\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n var tag = {}; // Get the union set of category axis\n\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n result.push(entry[i]);\n }\n }\n\n return result;\n }, []);\n};\nexport var isCategorialAxis = function isCategorialAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\n\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === min) {\n hasMin = true;\n }\n\n if (entry.coordinate === max) {\n hasMax = true;\n }\n\n return entry.coordinate;\n });\n\n if (!hasMin) {\n values.push(min);\n }\n\n if (!hasMax) {\n values.push(max);\n }\n\n return values;\n};\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\n\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / 2 : 0;\n offset = axis.axisType === 'angleAxis' ? mathSign(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line\n\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n }\n\n if (axis.isCategorial && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry),\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis has duplicated text, serial numbers are used to generate scale\n\n\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} parentHandler Handler function specified in parent component\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n\n if (_isFunction(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (_isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @return {Function} The scale funcion\n */\n\nexport var parseScale = function parseScale(axis, chartType) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (_isString(scale)) {\n var name = \"scale\".concat(scale.slice(0, 1).toUpperCase()).concat(scale.slice(1));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n\n return _isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n\n if (!domain || domain.length <= 2) {\n return;\n }\n\n var len = domain.length;\n var range = scale.range();\n var min = Math.min(range[0], range[1]) - EPS;\n var max = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n\n return null;\n};\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) {\n result[0] = max;\n }\n\n if (result[1] < min) {\n result[1] = min;\n }\n\n return result;\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var stack = shapeStack().keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone).offset(STACK_OFFSET_MAP[offsetType]);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n } // reversing items to affect render order (for layering)\n\n\n var items = reverseStackOrder ? _items.reverse() : _items;\n var stackGroups = items.reduce(function (result, item) {\n var _item$props3 = item.props,\n stackId = _item$props3.stackId,\n hide = _item$props3.hide;\n\n if (hide) {\n return result;\n }\n\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread({}, res, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, {});\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, group));\n }, {});\n};\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\n\nexport var calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {\n if (type === 'number') {\n return [_min(ticks), _max(ticks)];\n }\n\n return ticks;\n};\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\n\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain(calculateDomainOfTicks(tickValues, type));\n return {\n niceTicks: tickValues\n };\n }\n\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n\n return {\n niceTicks: _tickValues\n };\n }\n\n return null;\n};\nexport var getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref6) {\n var axis = _ref6.axis,\n ticks = _ref6.ticks,\n bandSize = _ref6.bandSize,\n entry = _ref6.entry,\n index = _ref6.index,\n dataKey = _ref6.dataKey;\n\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !_isNil(entry[axis.dataKey])) {\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n\n var value = getValueByDataKey(entry, !_isNil(dataKey) ? dataKey : axis.dataKey);\n return !_isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n offset = _ref7.offset,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index;\n\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !_isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref8) {\n var numericAxis = _ref8.numericAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) {\n return 0;\n }\n\n if (max < 0) {\n return max;\n }\n\n return min;\n }\n\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n\n if (group && group.items.length) {\n var itemIndex = -1;\n\n for (var i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\n\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [_min(entry.concat([result[0]]).filter(isNumber)), _max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\n\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n\n var domain = [];\n /* eslint-disable prefer-destructuring */\n\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (_isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n\n domain[1] = dataDomain[1] + _value;\n } else if (_isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n\n return domain;\n};\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @return {Number} Size\n */\n\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n return axis.scale.bandwidth();\n }\n\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n\n var bandSize = Infinity;\n\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n\n return bandSize === Infinity ? 0 : bandSize;\n }\n\n return 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\n\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n\n return specifiedDomain;\n};","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import _isNil from \"lodash/isNil\";\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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n\n var _range2 = _slicedToArray(_range, 2);\n\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread({}, axis, {\n realScaleType: realScaleType\n }));\n\n var finalAxis = _objectSpread({}, axis, {}, ticks, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n\n return _objectSpread({}, result, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\n\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\n\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) {\n return true;\n }\n\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n\n var formatAngle = angle;\n var inRange;\n\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n\n if (inRange) {\n return _objectSpread({}, sector, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n\n return null;\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { 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 _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 _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Sector\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\n\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle); // The coordinate of point which is tangent to the circle\n\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle); // The coordinate of point which is tangent to the radius line\n\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\n\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle); // When the angle of sector equals to 360, star point and end point coincide\n\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n\n return path;\n};\n\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n\n var outerArcAngle = Math.abs(startAngle - endAngle) - sot - eot;\n\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n\n var innerArcAngle = Math.abs(startAngle - endAngle) - sit - eit;\n\n if (innerArcAngle < 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n\n return path;\n};\n\nvar Sector =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Sector, _PureComponent);\n\n function Sector() {\n _classCallCheck(this, Sector);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Sector).apply(this, arguments));\n }\n\n _createClass(Sector, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n innerRadius = _this$props.innerRadius,\n outerRadius = _this$props.outerRadius,\n cornerRadius = _this$props.cornerRadius,\n forceCornerRadius = _this$props.forceCornerRadius,\n cornerIsExternal = _this$props.cornerIsExternal,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n className = _this$props.className;\n\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n\n var layerClass = classNames('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n className: layerClass,\n d: path\n }));\n }\n }]);\n\n return Sector;\n}(PureComponent);\n\nSector.displayName = 'Sector';\nSector.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n className: PropTypes.string,\n cx: PropTypes.number,\n cy: PropTypes.number,\n innerRadius: PropTypes.number,\n outerRadius: PropTypes.number,\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n cornerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n forceCornerRadius: PropTypes.bool,\n cornerIsExternal: PropTypes.bool\n});\nSector.defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};\nexport default Sector;","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import _isArray from \"lodash/isArray\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { 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 _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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'd3-shape';\nimport classNames from 'classnames';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\n\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\n\nvar getX = function getX(p) {\n return p.x;\n};\n\nvar getY = function getY(p) {\n return p.y;\n};\n\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (_isFunction(type)) {\n return type;\n }\n\n var name = \"curve\".concat(type.slice(0, 1).toUpperCase()).concat(type.slice(1));\n\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\nvar Curve =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Curve, _PureComponent);\n\n function Curve() {\n _classCallCheck(this, Curve);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Curve).apply(this, arguments));\n }\n\n _createClass(Curve, [{\n key: \"getPath\",\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n value: function getPath() {\n var _this$props = this.props,\n type = _this$props.type,\n points = _this$props.points,\n baseLine = _this$props.baseLine,\n layout = _this$props.layout,\n connectNulls = _this$props.connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n\n if (_isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread({}, entry, {\n base: formatBaseLine[index]\n });\n });\n\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n points = _this$props2.points,\n path = _this$props2.path,\n pathRef = _this$props2.pathRef;\n\n if ((!points || !points.length) && !path) {\n return null;\n }\n\n var realPath = points && points.length ? this.getPath() : path;\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props, null, true), {\n className: classNames('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n }\n }]);\n\n return Curve;\n}(PureComponent);\n\nCurve.displayName = 'Curve';\nCurve.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n className: PropTypes.string,\n type: PropTypes.oneOfType([PropTypes.oneOf(['basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural', 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter']), PropTypes.func]),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n baseLine: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n points: PropTypes.arrayOf(PropTypes.object),\n connectNulls: PropTypes.bool,\n path: PropTypes.string,\n pathRef: PropTypes.func\n});\nCurve.defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false\n};\nexport default Curve;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport { isSsr } from './ReactUtils';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n\n return value;\n}\n\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\n\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (text === undefined || text === null || isSsr()) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n document.body.appendChild(measurementSpan);\n } // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n\n\n var measurementSpanStyle = _objectSpread({}, SPAN_STYLE, {}, style);\n\n Object.keys(measurementSpanStyle).map(function (styleKey) {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n measurementSpan.textContent = str;\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(el) {\n var html = el.ownerDocument.documentElement;\n var box = {\n top: 0,\n left: 0\n }; // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\n };\n};\n/**\n * Calculate coordinate of cursor in chart\n * @param {Object} event Event object\n * @param {Object} offset The offset of main part in the svg element\n * @return {Object} {chartX, chartY}\n */\n\nexport var calculateChartCoordinate = function calculateChartCoordinate(event, offset) {\n return {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top)\n };\n};","import _isNil from \"lodash/isNil\";\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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { 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 _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 _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 _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport classNames from 'classnames';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, isSsr, filterEventAttributes } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\nvar calculateWordWidths = function calculateWordWidths(props) {\n try {\n var words = !_isNil(props.children) ? props.children.toString().split(BREAKING_SPACES) : [];\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, props.style).width\n };\n });\n var spaceWidth = getStringSize(\"\\xA0\", props.style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\n\nvar Text =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Text, _Component);\n\n function Text(_props) {\n var _this;\n\n _classCallCheck(this, Text);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Text).call(this, _props));\n\n _this.getWordsWithoutCalculate = function (props) {\n var words = !_isNil(props.children) ? props.children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n };\n\n _this.state = {\n wordsByLines: _this.getWordsByLines(_props, true)\n };\n return _this;\n }\n\n _createClass(Text, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateWordsByLines(this.props, true);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.width !== this.props.width || prevProps.scaleToFit !== this.props.scaleToFit || prevProps.children !== this.props.children || prevProps.style !== this.props.style) {\n var needCalculate = this.props.children !== prevProps.children || this.props.style !== prevProps.style;\n this.updateWordsByLines(this.props, needCalculate);\n }\n }\n }, {\n key: \"updateWordsByLines\",\n value: function updateWordsByLines(props, needCalculate) {\n this.setState({\n wordsByLines: this.getWordsByLines(props, needCalculate)\n });\n }\n }, {\n key: \"getWordsByLines\",\n value: function getWordsByLines(props, needCalculate) {\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((props.width || props.scaleToFit) && !isSsr()) {\n if (needCalculate) {\n var wordWidths = calculateWordWidths(props);\n\n if (wordWidths) {\n var wordsWithComputedWidth = wordWidths.wordsWithComputedWidth,\n spaceWidth = wordWidths.spaceWidth;\n this.wordsWithComputedWidth = wordsWithComputedWidth;\n this.spaceWidth = spaceWidth;\n } else {\n return this.getWordsWithoutCalculate(props);\n }\n }\n\n return this.calculateWordsByLines(this.wordsWithComputedWidth, this.spaceWidth, props.width);\n }\n\n return this.getWordsWithoutCalculate(props);\n }\n }, {\n key: \"calculateWordsByLines\",\n value: function calculateWordsByLines(wordsWithComputedWidth, spaceWidth, lineWidth) {\n var scaleToFit = this.props.scaleToFit;\n return (wordsWithComputedWidth || []).reduce(function (result, _ref) {\n var word = _ref.word,\n width = _ref.width;\n var currentLine = result[result.length - 1];\n\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < lineWidth)) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n\n return result;\n }, []);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n dx = _this$props.dx,\n dy = _this$props.dy,\n textAnchor = _this$props.textAnchor,\n verticalAnchor = _this$props.verticalAnchor,\n scaleToFit = _this$props.scaleToFit,\n angle = _this$props.angle,\n lineHeight = _this$props.lineHeight,\n capHeight = _this$props.capHeight,\n className = _this$props.className,\n textProps = _objectWithoutProperties(_this$props, [\"dx\", \"dy\", \"textAnchor\", \"verticalAnchor\", \"scaleToFit\", \"angle\", \"lineHeight\", \"capHeight\", \"className\"]);\n\n var wordsByLines = this.state.wordsByLines;\n\n if (!isNumOrStr(textProps.x) || !isNumOrStr(textProps.y)) {\n return null;\n }\n\n var x = textProps.x + (isNumber(dx) ? dx : 0);\n var y = textProps.y + (isNumber(dy) ? dy : 0);\n var startDy;\n\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n\n var transforms = [];\n\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n transforms.push(\"scale(\".concat(this.props.width / lineWidth, \")\"));\n }\n\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n\n return React.createElement(\"text\", _extends({}, getPresentationAttributes(textProps), filterEventAttributes(textProps), {\n x: x,\n y: y,\n className: classNames('recharts-text', className),\n textAnchor: textAnchor\n }), wordsByLines.map(function (line, index) {\n return (// eslint-disable-next-line react/no-array-index-key\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: index\n }, line.words.join(' '))\n );\n }));\n }\n }]);\n\n return Text;\n}(Component);\n\nText.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n scaleToFit: PropTypes.bool,\n angle: PropTypes.number,\n textAnchor: PropTypes.oneOf(['start', 'middle', 'end', 'inherit']),\n verticalAnchor: PropTypes.oneOf(['start', 'middle', 'end']),\n style: PropTypes.object\n});\nText.defaultProps = {\n x: 0,\n y: 0,\n lineHeight: '1em',\n capHeight: '0.71em',\n // Magic number from d3\n scaleToFit: false,\n textAnchor: 'start',\n verticalAnchor: 'end' // Maintain compat with existing charts / default SVG behavior\n\n};\nexport default Text;","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport React, { cloneElement, isValidElement } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Text from './Text';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, findAllByType, filterEventAttributes } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar cartesianViewBoxShape = PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n});\nvar polarViewBoxShape = PropTypes.shape({\n cx: PropTypes.number,\n cy: PropTypes.number,\n innerRadius: PropTypes.number,\n outerRadius: PropTypes.number,\n startAngle: PropTypes.number,\n endAngle: PropTypes.number\n});\n\nvar propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n viewBox: PropTypes.oneOfType([cartesianViewBoxShape, polarViewBoxShape]),\n formatter: PropTypes.func,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n offset: PropTypes.number,\n position: PropTypes.oneOf(['top', 'left', 'right', 'bottom', 'inside', 'outside', 'insideLeft', 'insideRight', 'insideTop', 'insideBottom', 'insideTopLeft', 'insideBottomLeft', 'insideTopRight', 'insideBottomRight', 'insideStart', 'insideEnd', 'end', 'center', 'centerTop', 'centerBottom']),\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n className: PropTypes.string,\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func])\n});\n\nvar defaultProps = {\n offset: 5\n};\n\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\n\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var cx = viewBox.cx,\n cy = viewBox.cy,\n innerRadius = viewBox.innerRadius,\n outerRadius = viewBox.outerRadius,\n startAngle = viewBox.startAngle,\n endAngle = viewBox.endAngle,\n clockWise = viewBox.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = _isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: classNames('recharts-radial-bar-label', className)\n }), React.createElement(\"defs\", null, React.createElement(\"path\", {\n id: id,\n d: path\n })), React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\n\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var cx = viewBox.cx,\n cy = viewBox.cy,\n innerRadius = viewBox.innerRadius,\n outerRadius = viewBox.outerRadius,\n startAngle = viewBox.startAngle,\n endAngle = viewBox.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n var r = (innerRadius + outerRadius) / 2;\n\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sign = height >= 0 ? 1 : -1;\n\n if (position === 'top') {\n return {\n x: x + width / 2,\n y: y - sign * offset,\n textAnchor: 'middle',\n verticalAnchor: sign > 0 ? 'end' : 'start'\n };\n }\n\n if (position === 'bottom') {\n return {\n x: x + width / 2,\n y: y + height + sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'left') {\n return {\n x: x - offset,\n y: y + height / 2,\n textAnchor: 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'right') {\n return {\n x: x + width + offset,\n y: y + height / 2,\n textAnchor: 'start',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'insideLeft') {\n return {\n x: x + offset,\n y: y + height / 2,\n textAnchor: 'start',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'insideRight') {\n return {\n x: x + width - offset,\n y: y + height / 2,\n textAnchor: 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'insideTop') {\n return {\n x: x + width / 2,\n y: y + sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'insideBottom') {\n return {\n x: x + width / 2,\n y: y + height - sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n if (position === 'insideTopLeft') {\n return {\n x: x + offset,\n y: y + sign * offset,\n textAnchor: 'start',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'insideTopRight') {\n return {\n x: x + width - offset,\n y: y + sign * offset,\n textAnchor: 'end',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'insideBottomLeft') {\n return {\n x: x + offset,\n y: y + height - sign * offset,\n textAnchor: 'start',\n verticalAnchor: 'end'\n };\n }\n\n if (position === 'insideBottomRight') {\n return {\n x: x + width - offset,\n y: y + height - sign * offset,\n textAnchor: 'end',\n verticalAnchor: 'end'\n };\n }\n\n if (_isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return {\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n };\n }\n\n return {\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar isPolar = function isPolar(viewBox) {\n return isNumber(viewBox.cx);\n};\n\nfunction Label(props) {\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className;\n\n if (!viewBox || _isNil(value) && _isNil(children) && !isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n\n if (isValidElement(content)) {\n return cloneElement(content, props);\n }\n\n var label;\n\n if (_isFunction(content)) {\n label = content(props);\n\n if (isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n var isPolarLabel = isPolar(viewBox);\n var attrs = getPresentationAttributes(props);\n var events = filterEventAttributes(props);\n\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return React.createElement(Text, _extends({\n className: classNames('recharts-label', className)\n }, attrs, positionAttrs, events), label);\n}\n\nLabel.displayName = 'Label';\nLabel.defaultProps = defaultProps;\nLabel.propTypes = propTypes;\n\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise;\n\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n\n if (isNumOrStr(label)) {\n return React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n\n if (isValidElement(label)) {\n if (label.type === Label) {\n return cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n\n return React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isFunction(label)) {\n return React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isObject(label)) {\n return React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChilren = findAllByType(children, Label).map(function (child, index) {\n return cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n key: \"label-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChilren));\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;\nexport default Label;","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _last from \"lodash/last\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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\nimport React, { cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport Label from './Label';\nimport Layer from '../container/Layer';\nimport { getPresentationAttributes, findAllByType } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar propTypes = {\n id: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.object),\n valueAccessor: PropTypes.func,\n clockWise: PropTypes.bool,\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func])\n};\nvar defaultProps = {\n valueAccessor: function valueAccessor(entry) {\n return _isArray(entry.value) ? _last(entry.value) : entry.value;\n }\n};\n\nfunction LabelList(props) {\n var data = props.data,\n valueAccessor = props.valueAccessor,\n dataKey = props.dataKey,\n clockWise = props.clockWise,\n id = props.id,\n others = _objectWithoutProperties(props, [\"data\", \"valueAccessor\", \"dataKey\", \"clockWise\", \"id\"]);\n\n if (!data || !data.length) {\n return null;\n }\n\n return React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = _isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = _isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return React.createElement(Label, _extends({}, getPresentationAttributes(entry), others, idProps, {\n index: index,\n value: value,\n viewBox: Label.parseViewBox(_isNil(clockWise) ? entry : _objectSpread({}, entry, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n\n }));\n }));\n}\n\nLabelList.propTypes = propTypes;\nLabelList.displayName = 'LabelList';\n\nvar parseLabelList = function parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n\n if (React.isValidElement(label) || _isFunction(label)) {\n return React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n\n if (_isObject(label)) {\n return React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, data) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var explicitChilren = findAllByType(children, LabelList).map(function (child, index) {\n return cloneElement(child, {\n data: data,\n key: \"labelList-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChilren));\n};\n\nLabelList.renderCallByParent = renderCallByParent;\nLabelList.defaultProps = defaultProps;\nexport default LabelList;","import _isEqual from \"lodash/isEqual\";\nimport _get from \"lodash/get\";\nimport _isPlainObject from \"lodash/isPlainObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _typeof(obj) { 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 _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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Render sectors of a pie\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport Layer from '../container/Layer';\nimport Sector from '../shape/Sector';\nimport Curve from '../shape/Curve';\nimport Text from '../component/Text';\nimport Label from '../component/Label';\nimport LabelList from '../component/LabelList';\nimport Cell from '../component/Cell';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, getPresentationAttributes, findAllByType, filterEventsOfChild, isSsr } from '../util/ReactUtils';\nimport { polarToCartesian, getMaxRadius } from '../util/PolarUtils';\nimport { isNumber, getPercentValue, mathSign, interpolateNumber, uniqueId } from '../util/DataUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { warn } from '../util/LogUtils';\n\nvar Pie =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Pie, _PureComponent);\n\n function Pie() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Pie);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Pie)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n _this.id = uniqueId('recharts-pie-');\n\n _this.cachePrevData = function (sectors) {\n _this.setState({\n prevSectors: sectors\n });\n };\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (_isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (_isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Pie, [{\n key: \"componentWillReceiveProps\",\n // eslint-disable-next-line camelcase\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n sectors = _this$props.sectors;\n\n if (nextProps.isAnimationActive !== this.props.isAnimationActive) {\n this.cachePrevData([]);\n } else if (nextProps.animationId !== animationId) {\n this.cachePrevData(sectors);\n }\n }\n }, {\n key: \"isActiveIndex\",\n value: function isActiveIndex(i) {\n var activeIndex = this.props.activeIndex;\n\n if (Array.isArray(activeIndex)) {\n return activeIndex.indexOf(i) !== -1;\n }\n\n return i === activeIndex;\n }\n }, {\n key: \"renderLabels\",\n value: function renderLabels(sectors) {\n var _this2 = this;\n\n var isAnimationActive = this.props.isAnimationActive;\n\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props2 = this.props,\n label = _this$props2.label,\n labelLine = _this$props2.labelLine,\n dataKey = _this$props2.dataKey,\n valueKey = _this$props2.valueKey;\n var pieProps = getPresentationAttributes(this.props);\n var customLabelProps = getPresentationAttributes(label);\n var customLabelLineProps = getPresentationAttributes(labelLine);\n var offsetRadius = label && label.offsetRadius || 20;\n var labels = sectors.map(function (entry, i) {\n var midAngle = (entry.startAngle + entry.endAngle) / 2;\n var endPoint = polarToCartesian(entry.cx, entry.cy, entry.outerRadius + offsetRadius, midAngle);\n\n var labelProps = _objectSpread({}, pieProps, {}, entry, {\n stroke: 'none'\n }, customLabelProps, {\n index: i,\n textAnchor: _this2.constructor.getTextAnchor(endPoint.x, entry.cx)\n }, endPoint);\n\n var lineProps = _objectSpread({}, pieProps, {}, entry, {\n fill: 'none',\n stroke: entry.fill\n }, customLabelLineProps, {\n index: i,\n points: [polarToCartesian(entry.cx, entry.cy, entry.outerRadius, midAngle), endPoint],\n key: 'line'\n });\n\n var realDataKey = dataKey; // TODO: compatible to lower versions\n\n if (_isNil(dataKey) && _isNil(valueKey)) {\n realDataKey = 'value';\n } else if (_isNil(dataKey)) {\n realDataKey = valueKey;\n }\n\n return (// eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, {\n key: \"label-\".concat(i)\n }, labelLine && _this2.constructor.renderLabelLineItem(labelLine, lineProps), _this2.constructor.renderLabelItem(label, labelProps, getValueByDataKey(entry, realDataKey)))\n );\n });\n return React.createElement(Layer, {\n className: \"recharts-pie-labels\"\n }, labels);\n }\n }, {\n key: \"renderSectorsStatically\",\n value: function renderSectorsStatically(sectors) {\n var _this3 = this;\n\n var _this$props3 = this.props,\n activeShape = _this$props3.activeShape,\n blendStroke = _this$props3.blendStroke;\n return sectors.map(function (entry, i) {\n var sectorOptions = _this3.isActiveIndex(i) ? activeShape : null;\n\n var sectorProps = _objectSpread({}, entry, {\n stroke: blendStroke ? entry.fill : entry.stroke\n });\n\n return React.createElement(Layer, _extends({\n className: \"recharts-pie-sector\"\n }, filterEventsOfChild(_this3.props, entry, i), {\n key: \"sector-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }), _this3.constructor.renderSectorItem(sectorOptions, sectorProps));\n });\n }\n }, {\n key: \"renderSectorsWithAnimation\",\n value: function renderSectorsWithAnimation() {\n var _this4 = this;\n\n var _this$props4 = this.props,\n sectors = _this$props4.sectors,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId;\n var prevSectors = this.state.prevSectors;\n return React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"pie-\".concat(animationId),\n onAnimationStart: this.handleAnimationStart,\n onAnimationEnd: this.handleAnimationEnd\n }, function (_ref) {\n var t = _ref.t;\n var stepData = [];\n var first = sectors && sectors[0];\n var curAngle = first.startAngle;\n sectors.forEach(function (entry, index) {\n var prev = prevSectors && prevSectors[index];\n var paddingAngle = index > 0 ? _get(entry, 'paddingAngle', 0) : 0;\n\n if (prev) {\n var angleIp = interpolateNumber(prev.endAngle - prev.startAngle, entry.endAngle - entry.startAngle);\n\n var latest = _objectSpread({}, entry, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + angleIp(t) + paddingAngle\n });\n\n stepData.push(latest);\n curAngle = latest.endAngle;\n } else {\n var endAngle = entry.endAngle,\n startAngle = entry.startAngle;\n var interpolatorAngle = interpolateNumber(0, endAngle - startAngle);\n var deltaAngle = interpolatorAngle(t);\n\n var _latest = _objectSpread({}, entry, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + deltaAngle + paddingAngle\n });\n\n stepData.push(_latest);\n curAngle = _latest.endAngle;\n }\n });\n return React.createElement(Layer, null, _this4.renderSectorsStatically(stepData));\n });\n }\n }, {\n key: \"renderSectors\",\n value: function renderSectors() {\n var _this$props5 = this.props,\n sectors = _this$props5.sectors,\n isAnimationActive = _this$props5.isAnimationActive;\n var prevSectors = this.state.prevSectors;\n\n if (isAnimationActive && sectors && sectors.length && (!prevSectors || !_isEqual(prevSectors, sectors))) {\n return this.renderSectorsWithAnimation();\n }\n\n return this.renderSectorsStatically(sectors);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n sectors = _this$props6.sectors,\n className = _this$props6.className,\n label = _this$props6.label,\n cx = _this$props6.cx,\n cy = _this$props6.cy,\n innerRadius = _this$props6.innerRadius,\n outerRadius = _this$props6.outerRadius,\n isAnimationActive = _this$props6.isAnimationActive,\n prevSectors = _this$props6.prevSectors;\n\n if (hide || !sectors || !sectors.length || !isNumber(cx) || !isNumber(cy) || !isNumber(innerRadius) || !isNumber(outerRadius)) {\n return null;\n }\n\n var layerClass = classNames('recharts-pie', className);\n return React.createElement(Layer, {\n className: layerClass\n }, this.renderSectors(), label && this.renderLabels(sectors), Label.renderCallByParent(this.props, null, false), (!isAnimationActive || prevSectors && _isEqual(prevSectors, sectors)) && LabelList.renderCallByParent(this.props, sectors, false));\n }\n }], [{\n key: \"getTextAnchor\",\n value: function getTextAnchor(x, cx) {\n if (x > cx) {\n return 'start';\n }\n\n if (x < cx) {\n return 'end';\n }\n\n return 'middle';\n }\n }, {\n key: \"renderLabelLineItem\",\n value: function renderLabelLineItem(option, props) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n }\n\n if (_isFunction(option)) {\n return option(props);\n }\n\n return React.createElement(Curve, _extends({}, props, {\n type: \"linear\",\n className: \"recharts-pie-label-line\"\n }));\n }\n }, {\n key: \"renderLabelItem\",\n value: function renderLabelItem(option, props, value) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n }\n\n var label = value;\n\n if (_isFunction(option)) {\n label = option(props);\n\n if (React.isValidElement(label)) {\n return label;\n }\n }\n\n return React.createElement(Text, _extends({}, props, {\n alignmentBaseline: \"middle\",\n className: \"recharts-pie-label-text\"\n }), label);\n }\n }, {\n key: \"renderSectorItem\",\n value: function renderSectorItem(option, props) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n }\n\n if (_isFunction(option)) {\n return option(props);\n }\n\n if (_isPlainObject(option)) {\n return React.createElement(Sector, _extends({}, props, option));\n }\n\n return React.createElement(Sector, props);\n }\n }]);\n\n return Pie;\n}(PureComponent);\n\nPie.displayName = 'Pie';\nPie.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n animationId: PropTypes.number,\n cx: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cy: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n paddingAngle: PropTypes.number,\n innerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n outerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cornerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n nameKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n valueKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n data: PropTypes.arrayOf(PropTypes.object),\n blendStroke: PropTypes.bool,\n minAngle: PropTypes.number,\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n maxRadius: PropTypes.number,\n sectors: PropTypes.arrayOf(PropTypes.object),\n hide: PropTypes.bool,\n labelLine: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.element, PropTypes.bool]),\n label: PropTypes.oneOfType([PropTypes.shape({\n offsetRadius: PropTypes.number\n }), PropTypes.func, PropTypes.element, PropTypes.bool]),\n activeShape: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.element]),\n activeIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n onAnimationStart: PropTypes.func,\n onAnimationEnd: PropTypes.func,\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'spring', 'linear']),\n id: PropTypes.string\n});\nPie.defaultProps = {\n stroke: '#fff',\n fill: '#808080',\n legendType: 'rect',\n // The abscissa of pole\n cx: '50%',\n // The ordinate of pole\n cy: '50%',\n // The start angle of first sector\n startAngle: 0,\n // The direction of drawing sectors\n endAngle: 360,\n // The inner radius of sectors\n innerRadius: 0,\n // The outer radius of sectors\n outerRadius: '80%',\n paddingAngle: 0,\n labelLine: true,\n hide: false,\n minAngle: 0,\n isAnimationActive: !isSsr(),\n animationBegin: 400,\n animationDuration: 1500,\n animationEasing: 'ease',\n nameKey: 'name',\n // Match each sector's stroke color to it's fill color\n blendStroke: false\n};\n\nPie.parseDeltaAngle = function (_ref2) {\n var startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\n\nPie.getRealPieData = function (item) {\n var _item$props = item.props,\n data = _item$props.data,\n children = _item$props.children;\n var presentationProps = getPresentationAttributes(item.props);\n var cells = findAllByType(children, Cell);\n\n if (data && data.length) {\n return data.map(function (entry, index) {\n return _objectSpread({\n payload: entry\n }, presentationProps, {}, entry, {}, cells && cells[index] && cells[index].props);\n });\n }\n\n if (cells && cells.length) {\n return cells.map(function (cell) {\n return _objectSpread({}, presentationProps, {}, cell.props);\n });\n }\n\n return [];\n};\n\nPie.parseCoordinateOfPie = function (item, offset) {\n var top = offset.top,\n left = offset.left,\n width = offset.width,\n height = offset.height;\n var maxPieRadius = getMaxRadius(width, height);\n var cx = left + getPercentValue(item.props.cx, width, width / 2);\n var cy = top + getPercentValue(item.props.cy, height, height / 2);\n var innerRadius = getPercentValue(item.props.innerRadius, maxPieRadius, 0);\n var outerRadius = getPercentValue(item.props.outerRadius, maxPieRadius, maxPieRadius * 0.8);\n var maxRadius = item.props.maxRadius || Math.sqrt(width * width + height * height) / 2;\n return {\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n maxRadius: maxRadius\n };\n};\n\nPie.getComposedData = function (_ref3) {\n var item = _ref3.item,\n offset = _ref3.offset,\n onItemMouseLeave = _ref3.onItemMouseLeave,\n onItemMouseEnter = _ref3.onItemMouseEnter;\n var pieData = Pie.getRealPieData(item);\n\n if (!pieData || !pieData.length) {\n return [];\n }\n\n var _item$props2 = item.props,\n cornerRadius = _item$props2.cornerRadius,\n startAngle = _item$props2.startAngle,\n endAngle = _item$props2.endAngle,\n paddingAngle = _item$props2.paddingAngle,\n dataKey = _item$props2.dataKey,\n nameKey = _item$props2.nameKey,\n valueKey = _item$props2.valueKey,\n tooltipType = _item$props2.tooltipType;\n var minAngle = Math.abs(item.props.minAngle);\n var coordinate = Pie.parseCoordinateOfPie(item, offset);\n var len = pieData.length;\n var deltaAngle = Pie.parseDeltaAngle({\n startAngle: startAngle,\n endAngle: endAngle\n });\n var absDeltaAngle = Math.abs(deltaAngle);\n var totalPadingAngle = (absDeltaAngle >= 360 ? len : len - 1) * paddingAngle;\n var realTotalAngle = absDeltaAngle - len * minAngle - totalPadingAngle;\n var realDataKey = dataKey;\n\n if (_isNil(dataKey) && _isNil(valueKey)) {\n warn(false, \"Use \\\"dataKey\\\" to specify the value of pie,\\n the props \\\"valueKey\\\" will be deprecated in 1.1.0\");\n realDataKey = 'value';\n } else if (_isNil(dataKey)) {\n warn(false, \"Use \\\"dataKey\\\" to specify the value of pie,\\n the props \\\"valueKey\\\" will be deprecated in 1.1.0\");\n realDataKey = valueKey;\n }\n\n var sum = pieData.reduce(function (result, entry) {\n var val = getValueByDataKey(entry, realDataKey, 0);\n return result + (isNumber(val) ? val : 0);\n }, 0);\n var sectors;\n\n if (sum > 0) {\n var prev;\n sectors = pieData.map(function (entry, i) {\n var val = getValueByDataKey(entry, realDataKey, 0);\n var name = getValueByDataKey(entry, nameKey, i);\n var percent = (isNumber(val) ? val : 0) / sum;\n var tempStartAngle;\n\n if (i) {\n tempStartAngle = prev.endAngle + mathSign(deltaAngle) * paddingAngle;\n } else {\n tempStartAngle = startAngle;\n }\n\n var tempEndAngle = tempStartAngle + mathSign(deltaAngle) * (minAngle + percent * realTotalAngle);\n var midAngle = (tempStartAngle + tempEndAngle) / 2;\n var middleRadius = (coordinate.innerRadius + coordinate.outerRadius) / 2;\n var tooltipPayload = [{\n name: name,\n value: val,\n payload: entry,\n dataKey: realDataKey,\n type: tooltipType\n }];\n var tooltipPosition = polarToCartesian(coordinate.cx, coordinate.cy, middleRadius, midAngle);\n prev = _objectSpread({\n percent: percent,\n cornerRadius: cornerRadius,\n name: name,\n tooltipPayload: tooltipPayload,\n midAngle: midAngle,\n middleRadius: middleRadius,\n tooltipPosition: tooltipPosition\n }, entry, {}, coordinate, {\n value: getValueByDataKey(entry, realDataKey),\n startAngle: tempStartAngle,\n endAngle: tempEndAngle,\n payload: entry,\n paddingAngle: mathSign(deltaAngle) * paddingAngle\n });\n return prev;\n });\n }\n\n return _objectSpread({}, coordinate, {\n sectors: sectors,\n data: pieData,\n onMouseLeave: onItemMouseLeave,\n onMouseEnter: onItemMouseEnter\n });\n};\n\nexport default Pie;","import _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { 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 _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 _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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Cartesian Grid\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\n\nvar CartesianGrid =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(CartesianGrid, _PureComponent);\n\n function CartesianGrid() {\n _classCallCheck(this, CartesianGrid);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CartesianGrid).apply(this, arguments));\n }\n\n _createClass(CartesianGrid, [{\n key: \"renderHorizontal\",\n\n /**\n * Draw the horizontal grid lines\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal lines\n */\n value: function renderHorizontal(horizontalPoints) {\n var _this = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n width = _this$props.width,\n horizontal = _this$props.horizontal;\n\n if (!horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n\n var items = horizontalPoints.map(function (entry, i) {\n var props = _objectSpread({}, _this.props, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n\n return _this.constructor.renderLineItem(horizontal, props);\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n }\n /**\n * Draw vertical grid lines\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical lines\n */\n\n }, {\n key: \"renderVertical\",\n value: function renderVertical(verticalPoints) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n y = _this$props2.y,\n height = _this$props2.height,\n vertical = _this$props2.vertical;\n\n if (!verticalPoints || !verticalPoints.length) {\n return null;\n }\n\n var items = verticalPoints.map(function (entry, i) {\n var props = _objectSpread({}, _this2.props, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n\n return _this2.constructor.renderLineItem(vertical, props);\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n }\n /**\n * Draw vertical grid stripes filled by colors\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical stripes\n */\n\n }, {\n key: \"renderVerticalStripes\",\n value: function renderVerticalStripes(verticalPoints) {\n var verticalFill = this.props.verticalFill;\n\n if (!verticalFill || !verticalFill.length) {\n return null;\n }\n\n var _this$props3 = this.props,\n fillOpacity = _this$props3.fillOpacity,\n x = _this$props3.x,\n y = _this$props3.y,\n width = _this$props3.width,\n height = _this$props3.height;\n var verticalPointsUpdated = verticalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (x !== verticalPointsUpdated[0]) {\n verticalPointsUpdated.unshift(0);\n }\n\n var items = verticalPointsUpdated.map(function (entry, i) {\n var lineWidth = verticalPointsUpdated[i + 1] ? verticalPointsUpdated[i + 1] - entry : x + width - entry;\n\n if (lineWidth <= 0) {\n return null;\n }\n\n var colorIndex = i % verticalFill.length;\n return React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n x: Math.round(entry + x - x),\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n }\n /**\n * Draw horizontal grid stripes filled by colors\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal stripes\n */\n\n }, {\n key: \"renderHorizontalStripes\",\n value: function renderHorizontalStripes(horizontalPoints) {\n var horizontalFill = this.props.horizontalFill;\n\n if (!horizontalFill || !horizontalFill.length) {\n return null;\n }\n\n var _this$props4 = this.props,\n fillOpacity = _this$props4.fillOpacity,\n x = _this$props4.x,\n y = _this$props4.y,\n width = _this$props4.width,\n height = _this$props4.height;\n var horizontalPointsUpdated = horizontalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (y !== horizontalPointsUpdated[0]) {\n horizontalPointsUpdated.unshift(0);\n }\n\n var items = horizontalPointsUpdated.map(function (entry, i) {\n var lineHeight = horizontalPointsUpdated[i + 1] ? horizontalPointsUpdated[i + 1] - entry : y + height - entry;\n\n if (lineHeight <= 0) {\n return null;\n }\n\n var colorIndex = i % horizontalFill.length;\n return React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n y: Math.round(entry + y - y),\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var fill = this.props.fill;\n\n if (!fill || fill === 'none') {\n return null;\n }\n\n var _this$props5 = this.props,\n fillOpacity = _this$props5.fillOpacity,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height;\n return React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n horizontal = _this$props6.horizontal,\n vertical = _this$props6.vertical,\n horizontalCoordinatesGenerator = _this$props6.horizontalCoordinatesGenerator,\n verticalCoordinatesGenerator = _this$props6.verticalCoordinatesGenerator,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n offset = _this$props6.offset,\n chartWidth = _this$props6.chartWidth,\n chartHeight = _this$props6.chartHeight;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0 || !isNumber(x) || x !== +x || !isNumber(y) || y !== +y) {\n return null;\n }\n\n var _this$props7 = this.props,\n horizontalPoints = _this$props7.horizontalPoints,\n verticalPoints = _this$props7.verticalPoints; // No horizontal points are specified\n\n if ((!horizontalPoints || !horizontalPoints.length) && _isFunction(horizontalCoordinatesGenerator)) {\n horizontalPoints = horizontalCoordinatesGenerator({\n yAxis: yAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n } // No vertical points are specified\n\n\n if ((!verticalPoints || !verticalPoints.length) && _isFunction(verticalCoordinatesGenerator)) {\n verticalPoints = verticalCoordinatesGenerator({\n xAxis: xAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n }\n\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, this.renderBackground(), horizontal && this.renderHorizontal(horizontalPoints), vertical && this.renderVertical(verticalPoints), horizontal && this.renderHorizontalStripes(horizontalPoints), vertical && this.renderVerticalStripes(verticalPoints));\n }\n }], [{\n key: \"renderLineItem\",\n value: function renderLineItem(option, props) {\n var lineItem;\n\n if (React.isValidElement(option)) {\n lineItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n lineItem = option(props);\n } else {\n var x1 = props.x1,\n y1 = props.y1,\n x2 = props.x2,\n y2 = props.y2,\n key = props.key,\n others = _objectWithoutProperties(props, [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"]);\n\n lineItem = React.createElement(\"line\", _extends({}, getPresentationAttributes(others), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n\n return lineItem;\n }\n }]);\n\n return CartesianGrid;\n}(PureComponent);\n\nCartesianGrid.displayName = 'CartesianGrid';\nCartesianGrid.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n horizontal: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n vertical: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n horizontalPoints: PropTypes.arrayOf(PropTypes.number),\n verticalPoints: PropTypes.arrayOf(PropTypes.number),\n horizontalCoordinatesGenerator: PropTypes.func,\n verticalCoordinatesGenerator: PropTypes.func,\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n offset: PropTypes.object,\n chartWidth: PropTypes.number,\n chartHeight: PropTypes.number,\n verticalFill: PropTypes.arrayOf(PropTypes.string),\n horizontalFill: PropTypes.arrayOf(PropTypes.string)\n});\nCartesianGrid.defaultProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: []\n};\nexport default CartesianGrid;","function _typeof(obj) { 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 _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 _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Dot\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\n\nvar Dot =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Dot, _PureComponent);\n\n function Dot() {\n _classCallCheck(this, Dot);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Dot).apply(this, arguments));\n }\n\n _createClass(Dot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n r = _this$props.r,\n className = _this$props.className;\n var layerClass = classNames('recharts-dot', className);\n\n if (cx === +cx && cy === +cy && r === +r) {\n return React.createElement(\"circle\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props, null, true), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n\n return null;\n }\n }]);\n\n return Dot;\n}(PureComponent);\n\nDot.displayName = 'Dot';\nDot.propTypes = {\n className: PropTypes.string,\n cx: PropTypes.number,\n cy: PropTypes.number,\n r: PropTypes.number\n};\nexport default Dot;","import _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _typeof(obj) { 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 _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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Line\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport Curve from '../shape/Curve';\nimport Dot from '../shape/Dot';\nimport Layer from '../container/Layer';\nimport LabelList from '../component/LabelList';\nimport ErrorBar from './ErrorBar';\nimport { uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, filterEventAttributes, getPresentationAttributes, isSsr, findAllByType } from '../util/ReactUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\n\nvar Line =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Line, _PureComponent);\n\n function Line() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Line);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Line)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: true,\n totalLength: 0\n };\n _this.id = uniqueId('recharts-line-');\n\n _this.cachePrevData = function (points) {\n _this.setState({\n prevPoints: points\n });\n };\n\n _this.pathRef = function (node) {\n _this.mainCurve = node;\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n\n _this.props.onAnimationEnd();\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n\n _this.props.onAnimationStart();\n };\n\n return _this;\n }\n\n _createClass(Line, [{\n key: \"componentDidMount\",\n\n /* eslint-disable react/no-did-mount-set-state */\n value: function componentDidMount() {\n if (!this.props.isAnimationActive) {\n return;\n }\n\n var totalLength = this.getTotalLength();\n this.setState({\n totalLength: totalLength\n });\n } // eslint-disable-next-line camelcase\n\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n points = _this$props.points;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(points);\n }\n }\n }, {\n key: \"getTotalLength\",\n value: function getTotalLength() {\n var curveDom = this.mainCurve;\n\n try {\n return curveDom && curveDom.getTotalLength && curveDom.getTotalLength() || 0;\n } catch (err) {\n return 0;\n }\n }\n }, {\n key: \"getStrokeDasharray\",\n value: function getStrokeDasharray(length, totalLength, lines) {\n var lineLength = lines.reduce(function (pre, next) {\n return pre + next;\n });\n var count = parseInt(length / lineLength, 10);\n var remainLength = length % lineLength;\n var restLength = totalLength - length;\n var remainLines = [];\n\n for (var i = 0, sum = 0;; sum += lines[i], ++i) {\n if (sum + lines[i] > remainLength) {\n remainLines = [].concat(_toConsumableArray(lines.slice(0, i)), [remainLength - sum]);\n break;\n }\n }\n\n var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n return [].concat(_toConsumableArray(this.constructor.repeat(lines, count)), _toConsumableArray(remainLines), emptyLines).map(function (line) {\n return \"\".concat(line, \"px\");\n }).join(', ');\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props2 = this.props,\n points = _this$props2.points,\n xAxis = _this$props2.xAxis,\n yAxis = _this$props2.yAxis,\n layout = _this$props2.layout,\n children = _this$props2.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n\n if (!errorBarItems) {\n return null;\n }\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint.payload, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return React.cloneElement(item, {\n key: i,\n // eslint-disable-line react/no-array-index-key\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n dataPointFormatter: dataPointFormatter\n });\n });\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipPathId) {\n var _this2 = this;\n\n var isAnimationActive = this.props.isAnimationActive;\n\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props3 = this.props,\n dot = _this$props3.dot,\n points = _this$props3.points,\n dataKey = _this$props3.dataKey;\n var lineProps = getPresentationAttributes(this.props);\n var customDotProps = getPresentationAttributes(dot);\n var dotEvents = filterEventAttributes(dot);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, lineProps, {}, customDotProps, {}, dotEvents, {\n value: entry.value,\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n payload: entry.payload\n });\n\n return _this2.constructor.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return React.createElement(Layer, _extends({\n className: \"recharts-line-dots\",\n key: \"dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderCurveStatically\",\n value: function renderCurveStatically(points, needClip, clipPathId, props) {\n var _this$props4 = this.props,\n type = _this$props4.type,\n layout = _this$props4.layout,\n connectNulls = _this$props4.connectNulls;\n\n var curveProps = _objectSpread({}, getPresentationAttributes(this.props), {}, filterEventAttributes(this.props), {\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null,\n points: points\n }, props, {\n type: type,\n layout: layout,\n connectNulls: connectNulls\n });\n\n return React.createElement(Curve, _extends({}, curveProps, {\n pathRef: this.pathRef\n }));\n }\n }, {\n key: \"renderCurveWithAnimation\",\n value: function renderCurveWithAnimation(needClip, clipPathId) {\n var _this3 = this;\n\n var _this$props5 = this.props,\n points = _this$props5.points,\n strokeDasharray = _this$props5.strokeDasharray,\n isAnimationActive = _this$props5.isAnimationActive,\n animationBegin = _this$props5.animationBegin,\n animationDuration = _this$props5.animationDuration,\n animationEasing = _this$props5.animationEasing,\n animationId = _this$props5.animationId,\n width = _this$props5.width,\n height = _this$props5.height;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n totalLength = _this$state.totalLength;\n return React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"line-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n } // magic number of faking previous x and y location\n\n\n if (_this3.animateNewValues) {\n var _interpolatorX = interpolateNumber(width * 2, entry.x);\n\n var _interpolatorY = interpolateNumber(height / 2, entry.y);\n\n return _objectSpread({}, entry, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n\n return _objectSpread({}, entry, {\n x: entry.x,\n y: entry.y\n });\n });\n return _this3.renderCurveStatically(stepData, needClip, clipPathId);\n }\n\n var interpolator = interpolateNumber(0, totalLength);\n var curLength = interpolator(t);\n var currentStrokeDasharray;\n\n if (strokeDasharray) {\n var lines = strokeDasharray.split(/[,\\s]+/gim).map(function (num) {\n return parseFloat(num);\n });\n currentStrokeDasharray = _this3.getStrokeDasharray(curLength, totalLength, lines);\n } else {\n currentStrokeDasharray = \"\".concat(curLength, \"px \").concat(totalLength - curLength, \"px\");\n }\n\n return _this3.renderCurveStatically(points, needClip, clipPathId, {\n strokeDasharray: currentStrokeDasharray\n });\n });\n }\n }, {\n key: \"renderCurve\",\n value: function renderCurve(needClip, clipPathId) {\n var _this$props6 = this.props,\n points = _this$props6.points,\n isAnimationActive = _this$props6.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n totalLength = _this$state2.totalLength;\n\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !_isEqual(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n hide = _this$props7.hide,\n dot = _this$props7.dot,\n points = _this$props7.points,\n className = _this$props7.className,\n xAxis = _this$props7.xAxis,\n yAxis = _this$props7.yAxis,\n top = _this$props7.top,\n left = _this$props7.left,\n width = _this$props7.width,\n height = _this$props7.height,\n isAnimationActive = _this$props7.isAnimationActive,\n id = _this$props7.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = classNames('recharts-line', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return React.createElement(Layer, {\n className: layerClass\n }, needClip ? React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(), (hasSinglePoint || dot) && this.renderDots(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"repeat\",\n value: function repeat(lines, count) {\n var linesUnit = lines.length % 2 !== 0 ? [].concat(_toConsumableArray(lines), [0]) : lines;\n var result = [];\n\n for (var i = 0; i < count; ++i) {\n result = [].concat(_toConsumableArray(result), _toConsumableArray(linesUnit));\n }\n\n return result;\n }\n }, {\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n\n if (React.isValidElement(option)) {\n dotItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dotItem = option(props);\n } else {\n var className = classNames('recharts-line-dot', option ? option.className : '');\n dotItem = React.createElement(Dot, _extends({}, props, {\n className: className\n }));\n }\n\n return dotItem;\n }\n }]);\n\n return Line;\n}(PureComponent);\n\nLine.displayName = 'Line';\nLine.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n type: PropTypes.oneOfType([PropTypes.oneOf(['basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural', 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter']), PropTypes.func]),\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxis: PropTypes.object,\n xAxis: PropTypes.object,\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n connectNulls: PropTypes.bool,\n hide: PropTypes.bool,\n // whether have dot in line\n activeDot: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n dot: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n top: PropTypes.number,\n left: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n value: PropTypes.value\n })),\n onAnimationStart: PropTypes.func,\n onAnimationEnd: PropTypes.func,\n isAnimationActive: PropTypes.bool,\n animateNewValues: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n animationId: PropTypes.number,\n id: PropTypes.string\n});\nLine.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n connectNulls: false,\n activeDot: true,\n dot: true,\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n fill: '#fff',\n points: [],\n isAnimationActive: !isSsr(),\n animateNewValues: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n hide: false,\n onAnimationStart: function onAnimationStart() {},\n onAnimationEnd: function onAnimationEnd() {}\n};\n\nLine.getComposedData = function (_ref2) {\n var props = _ref2.props,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n dataKey = _ref2.dataKey,\n bandSize = _ref2.bandSize,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var layout = props.layout;\n var points = displayedData.map(function (entry, index) {\n var value = getValueByDataKey(entry, dataKey);\n\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: _isNil(value) ? null : yAxis.scale(value),\n value: value,\n payload: entry\n };\n }\n\n return {\n x: _isNil(value) ? null : xAxis.scale(value),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n return _objectSpread({\n points: points,\n layout: layout\n }, offset);\n};\n\nexport default Line;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { 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 _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 _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Rectangle\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\n\nvar getRectangePath = function getRectangePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [];\n\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n\n return path;\n};\n\nvar Rectangle =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Rectangle, _PureComponent);\n\n function Rectangle() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Rectangle);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Rectangle)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n totalLength: -1\n };\n return _this;\n }\n\n _createClass(Rectangle, [{\n key: \"componentDidMount\",\n\n /* eslint-disable react/no-did-mount-set-state */\n value: function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n radius = _this$props.radius,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isAnimationActive = _this$props2.isAnimationActive,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-rectangle', className);\n\n if (!isUpdateAnimationActive) {\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n className: layerClass,\n d: getRectangePath(x, y, width, height, radius)\n }));\n }\n\n return React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, React.createElement(\"path\", _extends({}, getPresentationAttributes(_this2.props), filterEventAttributes(_this2.props), {\n className: layerClass,\n d: getRectangePath(currX, currY, currWidth, currHeight, radius),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Rectangle;\n}(PureComponent);\n\nRectangle.displayName = 'Rectangle';\nRectangle.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n isAnimationActive: PropTypes.bool,\n isUpdateAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n});\nRectangle.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport default Rectangle;","import _isNil from \"lodash/isNil\";\nimport _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _typeof(obj) { 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 _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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport Rectangle from '../shape/Rectangle';\nimport Layer from '../container/Layer';\nimport ErrorBar from './ErrorBar';\nimport Cell from '../component/Cell';\nimport LabelList from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, findAllByType, getPresentationAttributes, filterEventsOfChild, isSsr } from '../util/ReactUtils';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar } from '../util/ChartUtils';\n\nvar Bar =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Bar, _PureComponent);\n\n function Bar() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Bar);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Bar)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n _this.id = uniqueId('recharts-bar-');\n\n _this.cachePrevData = function (data) {\n _this.setState({\n prevData: data\n });\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n\n _this.props.onAnimationEnd();\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n\n _this.props.onAnimationStart();\n };\n\n return _this;\n }\n\n _createClass(Bar, [{\n key: \"componentWillReceiveProps\",\n // eslint-disable-next-line camelcase\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n data = _this$props.data;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(data);\n }\n }\n }, {\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n\n var shape = this.props.shape;\n var baseProps = getPresentationAttributes(this.props);\n return data && data.map(function (entry, i) {\n var props = _objectSpread({}, baseProps, {}, entry, {\n index: i\n });\n\n return React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, filterEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }), _this2.constructor.renderRectangle(shape, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n\n var _this$props2 = this.props,\n data = _this$props2.data,\n layout = _this$props2.layout,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevData = this.state.prevData;\n return React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n\n var h = _interpolatorHeight(t);\n\n return _objectSpread({}, entry, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread({}, entry, {\n width: w\n });\n });\n return React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props3 = this.props,\n data = _this$props3.data,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevData = this.state.prevData;\n\n if (isAnimationActive && data && data.length && (!prevData || !_isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n\n var data = this.props.data;\n var backgroundProps = getPresentationAttributes(this.props.background);\n return data.map(function (entry, i) {\n // eslint-disable-next-line no-unused-vars\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, [\"value\", \"background\"]);\n\n if (!background) {\n return null;\n }\n\n var props = _objectSpread({}, rest, {\n fill: '#eee'\n }, background, {}, backgroundProps, {}, filterEventsOfChild(_this4.props, entry, i), {\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n\n return _this4.constructor.renderRectangle(_this4.props.background, props);\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props4 = this.props,\n data = _this$props4.data,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n layout = _this$props4.layout,\n children = _this$props4.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n\n if (!errorBarItems) {\n return null;\n }\n\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return React.cloneElement(item, {\n key: \"error-bar-\".concat(i),\n // eslint-disable-line react/no-array-index-key\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n hide = _this$props5.hide,\n data = _this$props5.data,\n className = _this$props5.className,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n left = _this$props5.left,\n top = _this$props5.top,\n width = _this$props5.width,\n height = _this$props5.height,\n isAnimationActive = _this$props5.isAnimationActive,\n background = _this$props5.background,\n id = _this$props5.id;\n\n if (hide || !data || !data.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = classNames('recharts-bar', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return React.createElement(Layer, {\n className: layerClass\n }, needClip ? React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"renderRectangle\",\n value: function renderRectangle(option, props) {\n var rectangle;\n\n if (React.isValidElement(option)) {\n rectangle = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = React.createElement(Rectangle, props);\n }\n\n return rectangle;\n }\n }]);\n\n return Bar;\n}(PureComponent);\n\nBar.displayName = 'Bar';\nBar.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n layout: PropTypes.oneOf(['vertical', 'horizontal']),\n xAxisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxis: PropTypes.object,\n xAxis: PropTypes.object,\n stackId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n barSize: PropTypes.number,\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n minPointSize: PropTypes.number,\n maxBarSize: PropTypes.number,\n hide: PropTypes.bool,\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),\n data: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array])\n })),\n onAnimationStart: PropTypes.func,\n onAnimationEnd: PropTypes.func,\n animationId: PropTypes.number,\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n id: PropTypes.string\n});\nBar.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n // data of bar\n data: [],\n layout: 'vertical',\n isAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease',\n onAnimationStart: function onAnimationStart() {},\n onAnimationEnd: function onAnimationEnd() {}\n};\n\nBar.getComposedData = function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n\n if (!pos) {\n return [];\n }\n\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSize = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n props: props,\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n }\n }\n\n if (layout === 'horizontal') {\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = yAxis.scale(value[1]);\n width = pos.size;\n height = yAxis.scale(value[0]) - yAxis.scale(value[1]);\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n x = xAxis.scale(value[0]);\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = xAxis.scale(value[1]) - xAxis.scale(value[0]);\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n\n width += _delta;\n }\n }\n\n return _objectSpread({}, entry, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props);\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n};\n\nexport default Bar;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview X Axis\n */\nimport { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { SCALE_TYPES } from '../util/ReactUtils';\n\nvar XAxis =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(XAxis, _PureComponent);\n\n function XAxis() {\n _classCallCheck(this, XAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(XAxis).apply(this, arguments));\n }\n\n _createClass(XAxis, [{\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return XAxis;\n}(PureComponent);\n\nXAxis.displayName = 'XAxis';\nXAxis.propTypes = {\n allowDecimals: PropTypes.bool,\n allowDuplicatedCategory: PropTypes.bool,\n hide: PropTypes.bool,\n // The name of data displayed in the axis\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unit of data displayed in the axis\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unique id of x-axis\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n domain: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func, PropTypes.oneOf(['auto', 'dataMin', 'dataMax'])])),\n // The key of data displayed in the axis\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n // The width of axis which is usually calculated internally\n width: PropTypes.number,\n // The height of axis, which need to be setted by user\n height: PropTypes.number,\n mirror: PropTypes.bool,\n // The orientation of axis\n orientation: PropTypes.oneOf(['top', 'bottom']),\n type: PropTypes.oneOf(['number', 'category']),\n // Ticks can be any type when the axis is the type of category\n // Ticks must be numbers when the axis is the type of number\n ticks: PropTypes.array,\n // The count of ticks\n tickCount: PropTypes.number,\n // The formatter function of tick\n tickFormatter: PropTypes.func,\n padding: PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number\n }),\n allowDataOverflow: PropTypes.bool,\n scale: PropTypes.oneOfType([PropTypes.oneOf(SCALE_TYPES), PropTypes.func]),\n tick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n minTickGap: PropTypes.number,\n tickSize: PropTypes.number,\n interval: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['preserveStart', 'preserveEnd', 'preserveStartEnd'])]),\n reversed: PropTypes.bool\n};\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n domain: [0, 'auto'],\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};\nexport default XAxis;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Y Axis\n */\nimport { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nvar YAxis =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(YAxis, _PureComponent);\n\n function YAxis() {\n _classCallCheck(this, YAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(YAxis).apply(this, arguments));\n }\n\n _createClass(YAxis, [{\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return YAxis;\n}(PureComponent);\n\nYAxis.displayName = 'YAxis';\nYAxis.propTypes = {\n allowDecimals: PropTypes.bool,\n allowDuplicatedCategory: PropTypes.bool,\n hide: PropTypes.bool,\n // The name of data displayed in the axis\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unit of data displayed in the axis\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unique id of y-axis\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n domain: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func, PropTypes.oneOf(['auto', 'dataMin', 'dataMax'])])),\n // The key of data displayed in the axis\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n // Ticks can be any type when the axis is the type of category\n // Ticks must be numbers when the axis is the type of number\n ticks: PropTypes.array,\n // The count of ticks\n tickCount: PropTypes.number,\n // The formatter function of tick\n tickFormatter: PropTypes.func,\n // The width of axis, which need to be setted by user\n width: PropTypes.number,\n // The height of axis which is usually calculated in Chart\n height: PropTypes.number,\n mirror: PropTypes.bool,\n // The orientation of axis\n orientation: PropTypes.oneOf(['left', 'right']),\n type: PropTypes.oneOf(['number', 'category']),\n padding: PropTypes.shape({\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n allowDataOverflow: PropTypes.bool,\n scale: PropTypes.oneOfType([PropTypes.oneOf(['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold']), PropTypes.func]),\n tick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n minTickGap: PropTypes.number,\n tickSize: PropTypes.number,\n interval: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['preserveStart', 'preserveEnd', 'preserveStartEnd'])]),\n reversed: PropTypes.bool\n};\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n domain: [0, 'auto'],\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};\nexport default YAxis;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { 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 _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 _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Cross\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { isNumber } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes } from '../util/ReactUtils';\n\nvar Cross =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Cross, _PureComponent);\n\n function Cross() {\n _classCallCheck(this, Cross);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Cross).apply(this, arguments));\n }\n\n _createClass(Cross, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n top = _this$props.top,\n left = _this$props.left,\n className = _this$props.className;\n\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), {\n className: classNames('recharts-cross', className),\n d: this.constructor.getPath(x, y, width, height, top, left)\n }));\n }\n }], [{\n key: \"getPath\",\n value: function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n }\n }]);\n\n return Cross;\n}(PureComponent);\n\nCross.displayName = 'Cross';\nCross.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n top: PropTypes.number,\n left: PropTypes.number,\n className: PropTypes.string\n});\nCross.defaultProps = {\n x: 0,\n y: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0\n};\nexport default Cross;","import _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { 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 _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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { getStringSize } from '../util/DOMUtils';\nimport Layer from '../container/Layer';\nimport Text from '../component/Text';\nimport Label from '../component/Label';\nimport { isSsr, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes, filterEventsOfChild } from '../util/ReactUtils';\nimport { isNumber, mathSign } from '../util/DataUtils';\n\nvar CartesianAxis =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(CartesianAxis, _Component);\n\n function CartesianAxis() {\n _classCallCheck(this, CartesianAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CartesianAxis).apply(this, arguments));\n }\n\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, state) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, [\"viewBox\"]);\n\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, [\"viewBox\"]);\n\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(state, this.state);\n }\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + !mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + !mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n\n default:\n x1 = x2 = data.coordinate;\n y2 = y + mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\n\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n axisLine = _this$props5.axisLine,\n mirror = _this$props5.mirror;\n\n var props = _objectSpread({}, getPresentationAttributes(this.props), {\n fill: 'none'\n }, getPresentationAttributes(axisLine));\n\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n props = _objectSpread({}, props, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n props = _objectSpread({}, props, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n\n return React.createElement(\"line\", _extends({\n className: \"recharts-cartesian-axis-line\"\n }, props));\n }\n }, {\n key: \"renderTicks\",\n\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @return {ReactComponent} renderedTicks\n */\n value: function renderTicks(ticks) {\n var _this = this;\n\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = CartesianAxis.getTicks(_objectSpread({}, this.props, {\n ticks: ticks\n }));\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = getPresentationAttributes(this.props);\n var customTickProps = getPresentationAttributes(tick);\n\n var tickLineProps = _objectSpread({}, axisProps, {\n fill: 'none'\n }, getPresentationAttributes(tickLine));\n\n var items = finalTicks.map(function (entry, i) {\n var _this$getTickLineCoor = _this.getTickLineCoord(entry),\n lineCoord = _this$getTickLineCoor.line,\n tickCoord = _this$getTickLineCoor.tick;\n\n var tickProps = _objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps, {\n stroke: 'none',\n fill: stroke\n }, customTickProps, {}, tickCoord, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length\n });\n\n return React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, filterEventsOfChild(_this.props, entry, i)), tickLine && React.createElement(\"line\", _extends({\n className: \"recharts-cartesian-axis-tick-line\"\n }, tickLineProps, lineCoord)), tick && _this.constructor.renderTickItem(tick, tickProps, \"\".concat(_isFunction(tickFormatter) ? tickFormatter(entry.value) : entry.value).concat(unit || '')));\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n\n if (hide) {\n return null;\n }\n\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, [\"ticks\"]);\n\n var finalTicks = ticks;\n\n if (_isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n\n return React.createElement(Layer, {\n className: classNames('recharts-cartesian-axis', className)\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"getTicks\",\n value: function getTicks(props) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit;\n\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n\n if (isNumber(interval) || isSsr()) {\n return CartesianAxis.getNumberIntervalTicks(ticks, isNumber(interval) ? interval : 0);\n }\n\n if (interval === 'preserveStartEnd') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n }, true);\n }\n\n if (interval === 'preserveStart') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n\n return CartesianAxis.getTicksEnd({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n }, {\n key: \"getNumberIntervalTicks\",\n value: function getNumberIntervalTicks(ticks, interval) {\n return ticks.filter(function (entry, i) {\n return i % (interval + 1) === 0;\n });\n }\n }, {\n key: \"getTicksStart\",\n value: function getTicksStart(_ref2, preserveEnd) {\n var ticks = _ref2.ticks,\n tickFormatter = _ref2.tickFormatter,\n viewBox = _ref2.viewBox,\n orientation = _ref2.orientation,\n minTickGap = _ref2.minTickGap,\n unit = _ref2.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var result = (ticks || []).slice(); // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailContent = _isFunction(tickFormatter) ? tickFormatter(tail.value) : tail.value;\n var tailSize = getStringSize(tailContent)[sizeKey] + unitSize;\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread({}, tail, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0 && sign * (tail.tickCoord + sign * tailSize / 2 - end) <= 0;\n\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread({}, tail, {\n isShow: true\n });\n }\n }\n\n var count = preserveEnd ? len - 1 : len;\n\n for (var _i = 0; _i < count; _i++) {\n var entry = result[_i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (_i === 0) {\n var gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[_i] = entry = _objectSpread({}, entry, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[_i] = entry = _objectSpread({}, entry, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[_i] = _objectSpread({}, entry, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"getTicksEnd\",\n value: function getTicksEnd(_ref3) {\n var ticks = _ref3.ticks,\n tickFormatter = _ref3.tickFormatter,\n viewBox = _ref3.viewBox,\n orientation = _ref3.orientation,\n minTickGap = _ref3.minTickGap,\n unit = _ref3.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height'; // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var result = (ticks || []).slice();\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n for (var _i2 = len - 1; _i2 >= 0; _i2--) {\n var entry = result[_i2];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (_i2 === len - 1) {\n var gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[_i2] = entry = _objectSpread({}, entry, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[_i2] = entry = _objectSpread({}, entry, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[_i2] = _objectSpread({}, entry, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if (React.isValidElement(option)) {\n tickItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return CartesianAxis;\n}(Component);\n\nCartesianAxis.displayName = 'CartesianAxis';\nCartesianAxis.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n orientation: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n // The viewBox of svg\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n tick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n mirror: PropTypes.bool,\n tickMargin: PropTypes.number.isRequired,\n minTickGap: PropTypes.number,\n ticks: PropTypes.array,\n tickSize: PropTypes.number,\n stroke: PropTypes.string,\n tickFormatter: PropTypes.func,\n ticksGenerator: PropTypes.func,\n interval: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['preserveStart', 'preserveEnd', 'preserveStartEnd'])])\n});\nCartesianAxis.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n};\nexport default CartesianAxis;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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 PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread({}, res, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","import _range from \"lodash/range\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { 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 _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 _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { scalePoint } from 'd3-scale';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport Layer from '../container/Layer';\nimport Text from '../component/Text';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\n\nvar Brush =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Brush, _PureComponent);\n\n function Brush(props) {\n var _this;\n\n _classCallCheck(this, Brush);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Brush).call(this, props));\n\n _this.handleDrag = function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n };\n\n _this.handleDragEnd = function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n });\n };\n\n _this.handleLeaveWrapper = function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n };\n\n _this.handleEnterSlideOrTraveller = function () {\n _this.setState({\n isTextActive: true\n });\n };\n\n _this.handleLeaveSlideOrTraveller = function () {\n _this.setState({\n isTextActive: false\n });\n };\n\n _this.handleSlideDragStart = function (e) {\n var event = e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : e;\n\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n };\n\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = props.data && props.data.length ? _this.updateScale(props) : {};\n return _this;\n } // eslint-disable-next-line camelcase\n\n\n _createClass(Brush, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n var _this$props = this.props,\n data = _this$props.data,\n width = _this$props.width,\n x = _this$props.x,\n travellerWidth = _this$props.travellerWidth,\n updateId = _this$props.updateId;\n\n if ((nextProps.data !== data || nextProps.updateId !== updateId) && nextProps.data && nextProps.data.length) {\n this.setState(this.updateScale(nextProps));\n } else if (nextProps.width !== width || nextProps.x !== x || nextProps.travellerWidth !== travellerWidth) {\n this.scale.range([nextProps.x, nextProps.x + nextProps.width - nextProps.travellerWidth]);\n this.scaleValues = this.scale.domain().map(function (entry) {\n return _this2.scale(entry);\n });\n this.setState({\n startX: this.scale(nextProps.startIndex),\n endX: this.scale(nextProps.endIndex)\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.scale = null;\n this.scaleValues = null;\n\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref) {\n var startX = _ref.startX,\n endX = _ref.endX;\n var _this$props2 = this.props,\n gap = _this$props2.gap,\n data = _this$props2.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = this.constructor.getIndexInRange(this.scaleValues, min);\n var maxIndex = this.constructor.getIndexInRange(this.scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n tickFormatter = _this$props3.tickFormatter,\n dataKey = _this$props3.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return _isFunction(tickFormatter) ? tickFormatter(text) : text;\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n startIndex = _this$props4.startIndex,\n endIndex = _this$props4.endIndex,\n onChange = _this$props4.onChange;\n var delta = e.pageX - slideMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$setState;\n\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props5 = this.props,\n x = _this$props5.x,\n width = _this$props5.width,\n travellerWidth = _this$props5.travellerWidth,\n onChange = _this$props5.onChange,\n gap = _this$props5.gap,\n data = _this$props5.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n\n return false;\n };\n\n this.setState((_this$setState = {}, _defineProperty(_this$setState, movingTravellerId, prevValue + delta), _defineProperty(_this$setState, \"brushMoveStartX\", e.pageX), _this$setState), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"updateScale\",\n value: function updateScale(props) {\n var _this3 = this;\n\n var data = props.data,\n startIndex = props.startIndex,\n endIndex = props.endIndex,\n x = props.x,\n width = props.width,\n travellerWidth = props.travellerWidth;\n var len = data.length;\n this.scale = scalePoint().domain(_range(0, len)).range([x, x + width - travellerWidth]);\n this.scaleValues = this.scale.domain().map(function (entry) {\n return _this3.scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n startX: this.scale(startIndex),\n endX: this.scale(endIndex)\n };\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n fill = _this$props6.fill,\n stroke = _this$props6.stroke;\n return React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props7 = this.props,\n x = _this$props7.x,\n y = _this$props7.y,\n width = _this$props7.width,\n height = _this$props7.height,\n data = _this$props7.data,\n children = _this$props7.children,\n padding = _this$props7.padding;\n var chartElement = Children.only(children);\n\n if (!chartElement) {\n return null;\n }\n\n return React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(travellerX, id) {\n var _this$props8 = this.props,\n y = _this$props8.y,\n travellerWidth = _this$props8.travellerWidth,\n height = _this$props8.height,\n stroke = _this$props8.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n var x = Math.max(travellerX, this.props.x);\n return React.createElement(Layer, {\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n style: {\n cursor: 'col-resize'\n }\n }, React.createElement(\"rect\", {\n x: x,\n y: y,\n width: travellerWidth,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + travellerWidth - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + travellerWidth - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props9 = this.props,\n y = _this$props9.y,\n height = _this$props9.height,\n stroke = _this$props9.stroke;\n return React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: Math.min(startX, endX),\n y: y,\n width: Math.abs(endX - startX),\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props10 = this.props,\n startIndex = _this$props10.startIndex,\n endIndex = _this$props10.endIndex,\n y = _this$props10.y,\n height = _this$props10.height,\n travellerWidth = _this$props10.travellerWidth,\n stroke = _this$props10.stroke;\n var _this$state3 = this.state,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n data = _this$props11.data,\n className = _this$props11.className,\n children = _this$props11.children,\n x = _this$props11.x,\n y = _this$props11.y,\n width = _this$props11.width,\n height = _this$props11.height,\n alwaysShowText = _this$props11.alwaysShowText;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX,\n isTextActive = _this$state4.isTextActive,\n isSlideMoving = _this$state4.isSlideMoving,\n isTravellerMoving = _this$state4.isTravellerMoving;\n\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return React.createElement(Layer, {\n className: layerClass,\n onMouseMove: this.handleDrag,\n onMouseLeave: this.handleLeaveWrapper,\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTraveller(startX, 'startX'), this.renderTraveller(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"getIndexInRange\",\n value: function getIndexInRange(range, x) {\n var len = range.length;\n var start = 0;\n var end = len - 1;\n\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n\n return x >= range[end] ? end : start;\n }\n }]);\n\n return Brush;\n}(PureComponent);\n\nBrush.displayName = 'Brush';\nBrush.propTypes = {\n className: PropTypes.string,\n fill: PropTypes.string,\n stroke: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number.isRequired,\n travellerWidth: PropTypes.number,\n gap: PropTypes.number,\n padding: PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number\n }),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n data: PropTypes.array,\n startIndex: PropTypes.number,\n endIndex: PropTypes.number,\n tickFormatter: PropTypes.func,\n children: PropTypes.node,\n onChange: PropTypes.func,\n updateId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n leaveTimeOut: PropTypes.number,\n alwaysShowText: PropTypes.bool\n};\nBrush.defaultProps = {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n};\nexport default Brush;","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n\n return ifOverflow === value;\n};","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var range, x, y, needSpace;\n\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0), offset.left + offset.width - (padding.right || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0), offset.top + offset.height - (padding.bottom || 0)];\n } else {\n range = axis.range;\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n var _parseScale = parseScale(axis, chartName),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread({}, axis, {\n realScaleType: realScaleType\n }));\n\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n\n var finalAxis = _objectSpread({}, axis, {}, ticks, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n\n return _objectSpread({}, result, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\n\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper =\n/*#__PURE__*/\nfunction () {\n _createClass(ScaleHelper, null, [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n\n this.scale = scale;\n }\n\n _createClass(ScaleHelper, [{\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n\n if (value === undefined) {\n return undefined;\n }\n\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n\n return this.scale(value) + _offset;\n }\n\n default:\n {\n return this.scale(value);\n }\n }\n }\n\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n\n return this.scale(value) + _offset2;\n }\n\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }, {\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }]);\n\n return ScaleHelper;\n}();\nScaleHelper.EPS = 1e-4;\nexport var LabeledScaleHelper =\n/*#__PURE__*/\nfunction () {\n _createClass(LabeledScaleHelper, null, [{\n key: \"create\",\n value: function create(obj) {\n return new this(obj);\n }\n }]);\n\n function LabeledScaleHelper(scales) {\n _classCallCheck(this, LabeledScaleHelper);\n\n this.scales = _mapValues(scales, ScaleHelper.create);\n Object.assign(this, this.scales);\n }\n\n _createClass(LabeledScaleHelper, [{\n key: \"apply\",\n value: function apply(coords) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware;\n\n var scales = this.scales;\n return _mapValues(coords, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware\n });\n });\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(coords) {\n var scales = this.scales;\n return _every(coords, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n }]);\n\n return LabeledScaleHelper;\n}();","import _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { 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 _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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Reference Dot\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Layer from '../container/Layer';\nimport Dot from '../shape/Dot';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nimport Label from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { LabeledScaleHelper } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\n\nvar ReferenceDot =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(ReferenceDot, _PureComponent);\n\n function ReferenceDot() {\n _classCallCheck(this, ReferenceDot);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReferenceDot).apply(this, arguments));\n }\n\n _createClass(ReferenceDot, [{\n key: \"getCoordinate\",\n value: function getCoordinate() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis;\n var scales = LabeledScaleHelper.create({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n\n if (ifOverflowMatches(this.props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n\n return result;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n r = _this$props2.r,\n alwaysShow = _this$props2.alwaysShow,\n clipPathId = _this$props2.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n\n if (!isX || !isY) {\n return null;\n }\n\n var coordinate = this.getCoordinate();\n\n if (!coordinate) {\n return null;\n }\n\n var cx = coordinate.x,\n cy = coordinate.y;\n var _this$props3 = this.props,\n shape = _this$props3.shape,\n className = _this$props3.className;\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var dotProps = _objectSpread({\n clipPath: clipPath\n }, getPresentationAttributes(this.props), {}, filterEventAttributes(this.props), {\n cx: cx,\n cy: cy\n });\n\n return React.createElement(Layer, {\n className: classNames('recharts-reference-dot', className)\n }, this.constructor.renderDot(shape, dotProps), Label.renderCallByParent(this.props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n }\n }], [{\n key: \"renderDot\",\n value: function renderDot(option, props) {\n var dot;\n\n if (React.isValidElement(option)) {\n dot = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n\n return dot;\n }\n }]);\n\n return ReferenceDot;\n}(PureComponent);\n\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n r: PropTypes.number,\n xAxis: PropTypes.shape({\n scale: PropTypes.func\n }),\n yAxis: PropTypes.shape({\n scale: PropTypes.func\n }),\n isFront: PropTypes.bool,\n alwaysShow: PropTypes.bool,\n ifOverflow: PropTypes.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),\n clipPathId: PropTypes.string\n});\nReferenceDot.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n};\nexport default ReferenceDot;","import _some from \"lodash/some\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { 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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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\n/**\n * @fileOverview Reference Line\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Layer from '../container/Layer';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nimport Label from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { LabeledScaleHelper, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\n\nvar renderLine = function renderLine(option, props) {\n var line;\n\n if (React.isValidElement(option)) {\n line = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n line = option(props);\n } else {\n line = React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n\n return line;\n};\n\nvar ReferenceLine =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(ReferenceLine, _PureComponent);\n\n function ReferenceLine() {\n _classCallCheck(this, ReferenceLine);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReferenceLine).apply(this, arguments));\n }\n\n _createClass(ReferenceLine, [{\n key: \"getEndPoints\",\n value: function getEndPoints(scales, isFixedX, isFixedY, isSegment) {\n var _this$props = this.props,\n _this$props$viewBox = _this$props.viewBox,\n x = _this$props$viewBox.x,\n y = _this$props$viewBox.y,\n width = _this$props$viewBox.width,\n height = _this$props$viewBox.height,\n position = _this$props.position;\n\n if (isFixedY) {\n var _this$props2 = this.props,\n yCoord = _this$props2.y,\n orientation = _this$props2.yAxis.orientation;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n\n if (ifOverflowMatches(this.props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return orientation === 'left' ? points.reverse() : points;\n }\n\n if (isFixedX) {\n var _this$props3 = this.props,\n xCoord = _this$props3.x,\n _orientation = _this$props3.xAxis.orientation;\n\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n\n if (ifOverflowMatches(this.props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return _orientation === 'top' ? _points.reverse() : _points;\n }\n\n if (isSegment) {\n var segment = this.props.segment;\n\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n\n if (ifOverflowMatches(this.props, 'discard') && _some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n\n return _points2;\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n fixedX = _this$props4.x,\n fixedY = _this$props4.y,\n segment = _this$props4.segment,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n shape = _this$props4.shape,\n className = _this$props4.className,\n alwaysShow = _this$props4.alwaysShow,\n clipPathId = _this$props4.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = LabeledScaleHelper.create({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = this.getEndPoints(scales, isX, isY, isSegment);\n\n if (!endPoints) {\n return null;\n }\n\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var props = _objectSpread({\n clipPath: clipPath\n }, getPresentationAttributes(this.props), {}, filterEventAttributes(this.props), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n\n return React.createElement(Layer, {\n className: classNames('recharts-reference-line', className)\n }, renderLine(shape, props), Label.renderCallByParent(this.props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n }\n }]);\n\n return ReferenceLine;\n}(PureComponent);\n\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n isFront: PropTypes.bool,\n alwaysShow: PropTypes.bool,\n ifOverflow: PropTypes.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n segment: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n })),\n position: PropTypes.oneOf(['middle', 'start', 'end']),\n className: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n shape: PropTypes.func\n});\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};\nexport default ReferenceLine;","import _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { 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 _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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Reference Line\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Layer from '../container/Layer';\nimport Label from '../component/Label';\nimport { LabeledScaleHelper, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { PRESENTATION_ATTRIBUTES } from '../util/ReactUtils';\nimport Rectangle from '../shape/Rectangle';\n\nvar ReferenceArea =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(ReferenceArea, _PureComponent);\n\n function ReferenceArea() {\n _classCallCheck(this, ReferenceArea);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReferenceArea).apply(this, arguments));\n }\n\n _createClass(ReferenceArea, [{\n key: \"getRect\",\n value: function getRect(hasX1, hasX2, hasY1, hasY2) {\n var _this$props = this.props,\n xValue1 = _this$props.x1,\n xValue2 = _this$props.x2,\n yValue1 = _this$props.y1,\n yValue2 = _this$props.y2,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis;\n var scale = LabeledScaleHelper.create({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scale.x.apply(xValue1) : scale.x.rangeMin,\n y: hasY1 ? scale.y.apply(yValue1) : scale.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scale.x.apply(xValue2) : scale.x.rangeMax,\n y: hasY2 ? scale.y.apply(yValue2) : scale.y.rangeMax\n };\n\n if (ifOverflowMatches(this.props, 'discard') && (!scale.isInRange(p1) || !scale.isInRange(p2))) {\n return null;\n }\n\n return rectWithPoints(p1, p2);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n x1 = _this$props2.x1,\n x2 = _this$props2.x2,\n y1 = _this$props2.y1,\n y2 = _this$props2.y2,\n className = _this$props2.className,\n alwaysShow = _this$props2.alwaysShow,\n clipPathId = _this$props2.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = this.props.shape;\n\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n\n var rect = this.getRect(hasX1, hasX2, hasY1, hasY2);\n\n if (!rect && !shape) {\n return null;\n }\n\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return React.createElement(Layer, {\n className: classNames('recharts-reference-area', className)\n }, this.constructor.renderRect(shape, _objectSpread({\n clipPath: clipPath\n }, this.props, {}, rect)), Label.renderCallByParent(this.props, rect));\n }\n }], [{\n key: \"renderRect\",\n value: function renderRect(option, props) {\n var rect;\n\n if (React.isValidElement(option)) {\n rect = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rect = option(props);\n } else {\n rect = React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n\n return rect;\n }\n }]);\n\n return ReferenceArea;\n}(PureComponent);\n\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n isFront: PropTypes.bool,\n alwaysShow: PropTypes.bool,\n ifOverflow: PropTypes.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x1: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n x2: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y1: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y2: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element])\n});\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\nexport default ReferenceArea;","import ReferenceDot from '../cartesian/ReferenceDot';\nimport ReferenceLine from '../cartesian/ReferenceLine';\nimport ReferenceArea from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine);\n var dots = findAllByType(children, ReferenceDot);\n var elements = lines.concat(dots);\n var areas = findAllByType(children, ReferenceArea);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n\n return result;\n }, finalDomain);\n }\n\n return finalDomain;\n};","import EventEmitter from 'events';\nvar eventCenter = new EventEmitter();\n\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\n\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';","import _every from \"lodash/every\";\nimport _find from \"lodash/find\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isFunction from \"lodash/isFunction\";\nimport _range from \"lodash/range\";\nimport _throttle from \"lodash/throttle\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _typeof(obj) { 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 _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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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\nimport React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Surface from '../container/Surface';\nimport Layer from '../container/Layer';\nimport Tooltip from '../component/Tooltip';\nimport Legend from '../component/Legend';\nimport Curve from '../shape/Curve';\nimport Cross from '../shape/Cross';\nimport Sector from '../shape/Sector';\nimport Dot from '../shape/Dot';\nimport Rectangle from '../shape/Rectangle';\nimport { findAllByType, findChildByType, getDisplayName, parseChildIndex, getPresentationAttributes, validateWidthHeight, isChildrenEqual, renderByOrder, getReactEventByType, filterEventAttributes } from '../util/ReactUtils';\nimport CartesianAxis from '../cartesian/CartesianAxis';\nimport Brush from '../cartesian/Brush';\nimport { getOffset, calculateChartCoordinate } from '../util/DOMUtils';\nimport { getAnyElementOfObject, hasDuplicate, uniqueId, isNumber, findEntryInArray } from '../util/DataUtils';\nimport { calculateActiveTickIndex, getMainColorOfGraphicItem, getBarSizeList, getBarPosition, appendOffsetOfLegend, getLegendProps, combineEventHandlers, getTicksOfAxis, getCoordinatesOfGrid, getStackedDataOfItem, parseErrorBarsOfAxis, getBandSizeOfAxis, getStackGroupsByAxisId, getValueByDataKey, isCategorialAxis, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getDomainOfDataByKey, parseSpecifiedDomain, parseDomainOfCategoryAxis } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\nvar generateCategoricalChart = function generateCategoricalChart(_ref) {\n var chartName = _ref.chartName,\n GraphicalChild = _ref.GraphicalChild,\n _ref$eventType = _ref.eventType,\n eventType = _ref$eventType === void 0 ? 'axis' : _ref$eventType,\n axisComponents = _ref.axisComponents,\n legendContent = _ref.legendContent,\n formatAxisMap = _ref.formatAxisMap,\n defaultProps = _ref.defaultProps,\n propTypes = _ref.propTypes;\n\n var CategoricalChartWrapper =\n /*#__PURE__*/\n function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n\n /**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\n function CategoricalChartWrapper(_props) {\n var _this;\n\n _classCallCheck(this, CategoricalChartWrapper);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(CategoricalChartWrapper).call(this, _props));\n\n _this.handleLegendBBoxUpdate = function (box) {\n if (box && _this.legendInstance) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n\n _this.setState(_this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }));\n }\n };\n\n _this.handleReceiveSyncEvent = function (cId, chartId, data) {\n var _this$props = _this.props,\n syncId = _this$props.syncId,\n layout = _this$props.layout;\n var updateId = _this.state.updateId;\n\n if (syncId === cId && chartId !== _this.uniqueChartId) {\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n\n if (!_isNil(data.dataStartIndex) || !_isNil(data.dataEndIndex)) {\n _this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, _this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n })));\n } else if (!_isNil(data.activeTooltipIndex)) {\n var chartX = data.chartX,\n chartY = data.chartY,\n activeTooltipIndex = data.activeTooltipIndex;\n var _this$state2 = _this.state,\n offset = _this$state2.offset,\n tooltipTicks = _this$state2.tooltipTicks;\n\n if (!offset) {\n return;\n }\n\n var viewBox = _objectSpread({}, offset, {\n x: offset.left,\n y: offset.top\n }); // When a categotical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n\n\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n\n var activePayload = _this.getTooltipContent(activeTooltipIndex);\n\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n\n _this.setState(_objectSpread({}, data, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload\n }));\n } else {\n _this.setState(data);\n }\n }\n };\n\n _this.handleBrushChange = function (_ref2) {\n var startIndex = _ref2.startIndex,\n endIndex = _ref2.endIndex;\n\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, _this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }));\n });\n\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n };\n\n _this.handleMouseEnter = function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var nextState = _objectSpread({}, mouse, {\n isTooltipActive: true\n });\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseEnter)) {\n onMouseEnter(nextState, e);\n }\n }\n };\n\n _this.triggeredAfterMouseMove = function (e) {\n var onMouseMove = _this.props.onMouseMove;\n\n var mouse = _this.getMouseInfo(e);\n\n var nextState = mouse ? _objectSpread({}, mouse, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n };\n\n _this.handleItemMouseEnter = function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n };\n\n _this.handleItemMouseLeave = function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n };\n\n _this.handleMouseMove = function (e) {\n if (e && _isFunction(e.persist)) {\n e.persist();\n }\n\n _this.triggeredAfterMouseMove(e);\n };\n\n _this.handleMouseLeave = function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n var nextState = {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n };\n\n _this.handleOuterEvent = function (e) {\n var eventName = getReactEventByType(e);\n\n if (eventName && _isFunction(_this.props[eventName])) {\n var mouse = _this.getMouseInfo(e);\n\n var handler = _this.props[eventName];\n handler(mouse, e);\n }\n };\n\n _this.handleClick = function (e) {\n var onClick = _this.props.onClick;\n\n if (_isFunction(onClick)) {\n var mouse = _this.getMouseInfo(e);\n\n onClick(mouse, e);\n }\n };\n\n _this.handleMouseDown = function (e) {\n var onMouseDown = _this.props.onMouseDown;\n\n if (_isFunction(onMouseDown)) {\n var mouse = _this.getMouseInfo(e);\n\n onMouseDown(mouse, e);\n }\n };\n\n _this.handleMouseUp = function (e) {\n var onMouseUp = _this.props.onMouseUp;\n\n if (_isFunction(onMouseUp)) {\n var mouse = _this.getMouseInfo(e);\n\n onMouseUp(mouse, e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseMove(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchStart = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchEnd = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n };\n\n _this.verticalCoordinatesGenerator = function (_ref3) {\n var xAxis = _ref3.xAxis,\n width = _ref3.width,\n height = _ref3.height,\n offset = _ref3.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread({}, CartesianAxis.defaultProps, {}, xAxis, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.left, offset.left + offset.width);\n };\n\n _this.horizontalCoordinatesGenerator = function (_ref4) {\n var yAxis = _ref4.yAxis,\n width = _ref4.width,\n height = _ref4.height,\n offset = _ref4.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread({}, CartesianAxis.defaultProps, {}, yAxis, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.top, offset.top + offset.height);\n };\n\n _this.axesTicksGenerator = function (axis) {\n return getTicksOfAxis(axis, true);\n };\n\n _this.tooltipTicksGenerator = function (axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: _sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis)\n };\n };\n\n _this.renderCursor = function (element) {\n var _this$state3 = _this.state,\n isTooltipActive = _this$state3.isTooltipActive,\n activeCoordinate = _this$state3.activeCoordinate,\n activePayload = _this$state3.activePayload,\n offset = _this$state3.offset;\n\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate) {\n return null;\n }\n\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = Curve;\n\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = _this.getCursorRectangle();\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _this$getCursorPoints = _this.getCursorPoints(),\n cx = _this$getCursorPoints.cx,\n cy = _this$getCursorPoints.cy,\n radius = _this$getCursorPoints.radius,\n startAngle = _this$getCursorPoints.startAngle,\n endAngle = _this$getCursorPoints.endAngle;\n\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: _this.getCursorPoints()\n };\n cursorComp = Curve;\n }\n\n var key = element.key || '_recharts-cursor';\n\n var cursorProps = _objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset, {}, restProps, {}, getPresentationAttributes(element.props.cursor), {\n payload: activePayload,\n key: key,\n className: 'recharts-tooltip-cursor'\n });\n\n return isValidElement(element.props.cursor) ? cloneElement(element.props.cursor, cursorProps) : createElement(cursorComp, cursorProps);\n };\n\n _this.renderPolarAxis = function (element, displayName, index) {\n var axisType = element.type.axisType;\n\n var axisMap = _this.state[\"\".concat(axisType, \"Map\")];\n\n var axisOption = axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return cloneElement(element, _objectSpread({}, axisOption, {\n className: axisType,\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n };\n\n _this.renderXAxis = function (element, displayName, index) {\n var xAxisMap = _this.state.xAxisMap;\n var axisObj = xAxisMap[element.props.xAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderYAxis = function (element, displayName, index) {\n var yAxisMap = _this.state.yAxisMap;\n var axisObj = yAxisMap[element.props.yAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderGrid = function (element) {\n var _this$state4 = _this.state,\n xAxisMap = _this$state4.xAxisMap,\n yAxisMap = _this$state4.yAxisMap,\n offset = _this$state4.offset;\n var _this$props2 = _this.props,\n width = _this$props2.width,\n height = _this$props2.height;\n var xAxis = getAnyElementOfObject(xAxisMap);\n\n var yAxisWithFiniteDomain = _find(yAxisMap, function (axis) {\n return _every(axis.domain, Number.isFinite);\n });\n\n var yAxis = yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n var props = element.props || {};\n return cloneElement(element, {\n key: element.key || 'grid',\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height,\n xAxis: xAxis,\n yAxis: yAxis,\n offset: offset,\n chartWidth: width,\n chartHeight: height,\n verticalCoordinatesGenerator: props.verticalCoordinatesGenerator || _this.verticalCoordinatesGenerator,\n horizontalCoordinatesGenerator: props.horizontalCoordinatesGenerator || _this.horizontalCoordinatesGenerator\n });\n };\n\n _this.renderPolarGrid = function (element) {\n var _this$state5 = _this.state,\n radiusAxisMap = _this$state5.radiusAxisMap,\n angleAxisMap = _this$state5.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return cloneElement(element, {\n polarAngles: getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid'\n });\n };\n\n _this.renderBrush = function (element) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n data = _this$props3.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId; // TODO: update brush when children update\n\n return cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, null, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n };\n\n _this.renderReferenceElement = function (element, displayName, index) {\n if (!element) {\n return null;\n }\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props = element.props,\n xAxisId = _element$props.xAxisId,\n yAxisId = _element$props.yAxisId;\n return cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n };\n\n _this.renderGraphicChild = function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n\n if (!item) {\n return null;\n }\n\n var graphicalItem = cloneElement(element, item.props);\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n var _item$props = item.props,\n points = _item$props.points,\n isRange = _item$props.isRange,\n baseLine = _item$props.baseLine;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n hide = _item$item$props.hide;\n var hasActive = !hide && isTooltipActive && tooltipItem && activeDot && activeTooltipIndex >= 0;\n\n function findWithPayload(entry) {\n return tooltipAxis.dataKey(entry.payload);\n }\n\n if (hasActive) {\n var activePoint, basePoint;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey);\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n\n if (!_isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n }\n\n if (isRange) {\n return [graphicalItem, null, null];\n }\n\n return [graphicalItem, null];\n };\n\n _this.renderCustomized = function (element) {\n return cloneElement(element, _objectSpread({}, _this.props, {}, _this.state));\n };\n\n var defaultState = _this.constructor.createDefaultState(_props);\n\n var _updateId = 0;\n _this.state = _objectSpread({}, defaultState, {\n updateId: 0\n }, _this.updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: _props\n }, defaultState, {\n updateId: _updateId\n })));\n _this.uniqueChartId = _isNil(_props.id) ? uniqueId('recharts') : _props.id;\n _this.clipPathId = \"\".concat(_this.uniqueChartId, \"-clip\");\n\n if (_props.throttleDelay) {\n _this.triggeredAfterMouseMove = _throttle(_this.triggeredAfterMouseMove, _props.throttleDelay);\n }\n\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_isNil(this.props.syncId)) {\n this.addListener();\n }\n } // eslint-disable-next-line camelcase\n\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n var _this$props4 = this.props,\n data = _this$props4.data,\n children = _this$props4.children,\n width = _this$props4.width,\n height = _this$props4.height,\n layout = _this$props4.layout,\n stackOffset = _this$props4.stackOffset,\n margin = _this$props4.margin;\n var updateId = this.state.updateId;\n\n if (nextProps.data !== data || nextProps.width !== width || nextProps.height !== height || nextProps.layout !== layout || nextProps.stackOffset !== stackOffset || !shallowEqual(nextProps.margin, margin)) {\n var defaultState = this.constructor.createDefaultState(nextProps);\n this.setState(_objectSpread({}, defaultState, {\n updateId: updateId + 1\n }, this.updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, defaultState, {\n updateId: updateId + 1\n }))));\n } else if (!isChildrenEqual(nextProps.children, children)) {\n // update configuration in chilren\n var hasGlobalData = !_isNil(nextProps.data);\n var newUpdateId = hasGlobalData ? updateId : updateId + 1;\n this.setState(function (prevState) {\n return _objectSpread({\n updateId: newUpdateId\n }, _this2.updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, prevState, {\n updateId: newUpdateId\n })));\n });\n } // add syncId\n\n\n if (_isNil(this.props.syncId) && !_isNil(nextProps.syncId)) {\n this.addListener();\n } // remove syncId\n\n\n if (!_isNil(this.props.syncId) && _isNil(nextProps.syncId)) {\n this.removeListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_isNil(this.props.syncId)) {\n this.removeListener();\n }\n\n if (typeof this.triggeredAfterMouseMove.cancel === 'function') {\n this.triggeredAfterMouseMove.cancel();\n }\n }\n /**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n }, {\n key: \"getAxisMap\",\n value: function getAxisMap(props, _ref5) {\n var _ref5$axisType = _ref5.axisType,\n axisType = _ref5$axisType === void 0 ? 'xAxis' : _ref5$axisType,\n AxisComp = _ref5.AxisComp,\n graphicalItems = _ref5.graphicalItems,\n stackGroups = _ref5.stackGroups,\n dataStartIndex = _ref5.dataStartIndex,\n dataEndIndex = _ref5.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\"); // Get all the instance of Axis\n\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n\n if (axes && axes.length) {\n axisMap = this.getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = this.getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n\n return axisMap;\n }\n /**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n }, {\n key: \"getAxisMapByAxes\",\n value: function getAxisMapByAxes(props, _ref6) {\n var _this3 = this;\n\n var axes = _ref6.axes,\n graphicalItems = _ref6.graphicalItems,\n axisType = _ref6.axisType,\n axisIdKey = _ref6.axisIdKey,\n stackGroups = _ref6.stackGroups,\n dataStartIndex = _ref6.dataStartIndex,\n dataEndIndex = _ref6.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorial = isCategorialAxis(layout, axisType); // Eliminate duplicated axes\n\n var axisMap = axes.reduce(function (result, child) {\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks;\n var axisId = child.props[axisIdKey];\n\n var displayedData = _this3.constructor.getDisplayedData(props, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n\n var len = displayedData.length;\n\n if (!result[axisId]) {\n var domain, duplicateDomain, categoricalDomain;\n\n if (dataKey) {\n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n\n if (type === 'category' && isCategorial) {\n var duplicate = hasDuplicate(domain);\n\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain; // When category axis has duplicated text, serial numbers are used to generate scale\n\n domain = _range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || _isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !_isNil(entry);\n });\n }\n } else if (type === 'number') {\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), dataKey, axisType);\n\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n\n if (isCategorial && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorial) {\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), type, true);\n }\n\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n\n if (child.props.domain) {\n domain = parseSpecifiedDomain(child.props.domain, domain, allowDataOverflow);\n }\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, _objectSpread({}, child.props, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: child.props.domain,\n isCategorial: isCategorial,\n layout: layout\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n }\n /**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n }, {\n key: \"getAxisMapByItems\",\n value: function getAxisMapByItems(props, _ref7) {\n var graphicalItems = _ref7.graphicalItems,\n Axis = _ref7.Axis,\n axisType = _ref7.axisType,\n axisIdKey = _ref7.axisIdKey,\n stackGroups = _ref7.stackGroups,\n dataStartIndex = _ref7.dataStartIndex,\n dataEndIndex = _ref7.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = this.constructor.getDisplayedData(props, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorial = isCategorialAxis(layout, axisType);\n var index = -1; // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n\n var axisMap = graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n\n if (!result[axisId]) {\n index++;\n var domain;\n\n if (isCategorial) {\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(Axis.defaultProps.domain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number'), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, _objectSpread({\n axisType: axisType\n }, Axis.defaultProps, {\n hide: true,\n orientation: ORIENT_MAP[axisType] && ORIENT_MAP[axisType][index % 2],\n domain: domain,\n originalDomain: Axis.defaultProps.domain,\n isCategorial: isCategorial,\n layout: layout // specify scale when no Axis\n // scale: isCategorial ? 'band' : 'linear',\n\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n }\n }, {\n key: \"getActiveCoordinate\",\n value: function getActiveCoordinate(tooltipTicks, activeIndex, rangeObj) {\n var layout = this.props.layout;\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread({}, rangeObj, {}, polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle), {\n angle: _angle,\n radius: _radius\n });\n }\n\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread({}, rangeObj, {}, polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle), {\n angle: angle,\n radius: radius\n });\n }\n\n return originCoordinate;\n }\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {Object} event The event object\n * @return {Object} Mouse data\n */\n\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n\n var containerOffset = getOffset(this.container);\n var e = calculateChartCoordinate(event, containerOffset);\n var rangeObj = this.inRange(e.chartX, e.chartY);\n\n if (!rangeObj) {\n return null;\n }\n\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n\n if (eventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread({}, e, {\n xValue: xValue,\n yValue: yValue\n });\n }\n\n var _this$state10 = this.state,\n ticks = _this$state10.orderedTooltipTicks,\n axis = _this$state10.tooltipAxis,\n tooltipTicks = _this$state10.tooltipTicks;\n var pos = this.calculateTooltipPos(rangeObj);\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = this.getTooltipContent(activeIndex, activeLabel);\n var activeCoordinate = this.getActiveCoordinate(ticks, activeIndex, rangeObj);\n return _objectSpread({}, e, {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n });\n }\n\n return null;\n }\n /**\n * Get the content to be displayed in the tooltip\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\n\n }, {\n key: \"getTooltipContent\",\n value: function getTooltipContent(activeIndex, activeLabel) {\n var _this$state11 = this.state,\n graphicalItems = _this$state11.graphicalItems,\n tooltipAxis = _this$state11.tooltipAxis;\n var displayedData = this.constructor.getDisplayedData(this.props, this.state);\n\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n } // get data by activeIndex when the axis don't allow duplicated category\n\n\n return graphicalItems.reduce(function (result, child) {\n var hide = child.props.hide;\n\n if (hide) {\n return result;\n }\n\n var _child$props2 = child.props,\n dataKey = _child$props2.dataKey,\n name = _child$props2.name,\n unit = _child$props2.unit,\n formatter = _child$props2.formatter,\n data = _child$props2.data,\n tooltipType = _child$props2.tooltipType;\n var payload;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n payload = findEntryInArray(data || displayedData, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n\n if (!payload) {\n return result;\n }\n\n return [].concat(_toConsumableArray(result), [_objectSpread({}, getPresentationAttributes(child), {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(child),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload\n })]);\n }, []);\n }\n }, {\n key: \"getFormatItems\",\n value: function getFormatItems(props, currentState) {\n var _this4 = this;\n\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n\n var _this$constructor$get = this.constructor.getAxisNameByLayout(layout),\n numericAxisName = _this$constructor$get.numericAxisName,\n cateAxisName = _this$constructor$get.cateAxisName;\n\n var hasBar = this.constructor.hasBar(graphicalItems);\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups\n });\n var formatedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = _this4.constructor.getDisplayedData(props, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, item);\n\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n childMaxBarSize = _item$props2.maxBarSize;\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _objectSpread4;\n\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n var axis = axisMap && axisMap[id];\n return _objectSpread({}, result, (_objectSpread4 = {}, _defineProperty(_objectSpread4, entry.axisType, axis), _defineProperty(_objectSpread4, \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)), _objectSpread4));\n }, {});\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var maxBarSize = _isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barPosition = hasBar && getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n var componsedFn = item && item.type && item.type.getComposedData;\n\n if (componsedFn) {\n var _objectSpread5;\n\n formatedItems.push({\n props: _objectSpread({}, componsedFn(_objectSpread({}, axisObj, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n onItemMouseLeave: combineEventHandlers(_this4.handleItemMouseLeave, null, item.props.onMouseLeave),\n onItemMouseEnter: combineEventHandlers(_this4.handleItemMouseEnter, null, item.props.onMouseEnter)\n })), (_objectSpread5 = {\n key: item.key || \"item-\".concat(index)\n }, _defineProperty(_objectSpread5, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread5, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread5, \"animationId\", updateId), _objectSpread5)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formatedItems;\n }\n }, {\n key: \"getCursorRectangle\",\n value: function getCursorRectangle() {\n var layout = this.props.layout;\n var _this$state12 = this.state,\n activeCoordinate = _this$state12.activeCoordinate,\n offset = _this$state12.offset,\n tooltipAxisBandSize = _this$state12.tooltipAxisBandSize;\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n }\n }, {\n key: \"getCursorPoints\",\n value: function getCursorPoints() {\n var layout = this.props.layout;\n var _this$state13 = this.state,\n activeCoordinate = _this$state13.activeCoordinate,\n offset = _this$state13.offset;\n var x1, y1, x2, y2;\n\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (!_isNil(activeCoordinate.cx) || !_isNil(activeCoordinate.cy)) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n var _cx = activeCoordinate.cx,\n _cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(_cx, _cy, radius, startAngle);\n var endPoint = polarToCartesian(_cx, _cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: _cx,\n cy: _cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n }\n\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n }\n }, {\n key: \"calculateTooltipPos\",\n value: function calculateTooltipPos(rangeObj) {\n var layout = this.props.layout;\n\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n\n return rangeObj.radius;\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var layout = this.props.layout;\n\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n return isInRange ? {\n x: x,\n y: y\n } : null;\n }\n\n var _this$state14 = this.state,\n angleAxisMap = _this$state14.angleAxisMap,\n radiusAxisMap = _this$state14.radiusAxisMap;\n\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: x,\n y: y\n }, angleAxis);\n }\n\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = tooltipItem && eventType === 'axis' ? {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n } : {};\n var outerEvents = filterEventAttributes(this.props, this.handleOuterEvent);\n return _objectSpread({}, outerEvents, {}, tooltipEvents);\n }\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @param {Number} updateId The update id\n * @return {Object} state New state to set\n */\n\n }, {\n key: \"updateStateOfAxisMapsOffsetAndStackGroups\",\n value: function updateStateOfAxisMapsOffsetAndStackGroups(_ref8) {\n var _this5 = this;\n\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n\n var _this$constructor$get2 = this.constructor.getAxisNameByLayout(layout),\n numericAxisName = _this$constructor$get2.numericAxisName,\n cateAxisName = _this$constructor$get2.cateAxisName;\n\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread({}, result, _defineProperty({}, name, _this5.getAxisMap(props, _objectSpread({}, entry, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = this.calculateOffset(_objectSpread({}, axisObj, {\n props: props,\n graphicalItems: graphicalItems\n }));\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = this.tooltipTicksGenerator(cateAxisMap);\n var formatedGraphicalItems = this.getFormatItems(props, _objectSpread({}, axisObj, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread({\n formatedGraphicalItems: formatedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj, {}, axisObj);\n }\n /* eslint-disable no-underscore-dangle */\n\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners + 1);\n }\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners - 1);\n }\n }\n /**\n * Calculate the offset of main part in the svg element\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {Object} xAxisMap The configuration of x-axis\n * @param {Object} yAxisMap The configuration of y-axis\n * @return {Object} The offset of main part in the svg element\n */\n\n }, {\n key: \"calculateOffset\",\n value: function calculateOffset(_ref9) {\n var props = _ref9.props,\n graphicalItems = _ref9.graphicalItems,\n _ref9$xAxisMap = _ref9.xAxisMap,\n xAxisMap = _ref9$xAxisMap === void 0 ? {} : _ref9$xAxisMap,\n _ref9$yAxisMap = _ref9.yAxisMap,\n yAxisMap = _ref9$yAxisMap === void 0 ? {} : _ref9$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush);\n var legendItem = findChildByType(children, Legend);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread({}, result, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread({}, result, _defineProperty({}, orientation, result[orientation] + entry.height));\n }\n\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n\n var offset = _objectSpread({}, offsetV, {}, offsetH);\n\n var brushBottom = offset.bottom;\n\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n\n if (legendItem && this.legendInstance) {\n var legendBox = this.legendInstance.getBBox();\n offset = appendOffsetOfLegend(offset, graphicalItems, props, legendBox);\n }\n\n return _objectSpread({\n brushBottom: brushBottom\n }, offset, {\n width: width - offset.left - offset.right,\n height: height - offset.top - offset.bottom\n });\n }\n }, {\n key: \"triggerSyncEvent\",\n value: function triggerSyncEvent(data) {\n var syncId = this.props.syncId;\n\n if (!_isNil(syncId)) {\n eventCenter.emit(SYNC_EVENT, syncId, this.uniqueChartId, data);\n }\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formatedGraphicalItems = this.state.formatedGraphicalItems;\n\n for (var i = 0, len = formatedGraphicalItems.length; i < len; i++) {\n var entry = formatedGraphicalItems[i];\n\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n\n return null;\n }\n }, {\n key: \"renderAxis\",\n\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n value: function renderAxis(axisOptions, element, displayName, index) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height;\n return React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: \"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: this.axesTicksGenerator\n }));\n }\n /**\n * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n\n }, {\n key: \"renderLegend\",\n\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n value: function renderLegend() {\n var _this6 = this;\n\n var formatedGraphicalItems = this.state.formatedGraphicalItems;\n var _this$props6 = this.props,\n children = _this$props6.children,\n width = _this$props6.width,\n height = _this$props6.height;\n var margin = this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n var props = getLegendProps({\n children: children,\n formatedGraphicalItems: formatedGraphicalItems,\n legendWidth: legendWidth,\n legendHeight: legendHeight,\n legendContent: legendContent\n });\n\n if (!props) {\n return null;\n }\n\n var item = props.item,\n otherProps = _objectWithoutProperties(props, [\"item\"]);\n\n return cloneElement(item, _objectSpread({}, otherProps, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n ref: function ref(legend) {\n _this6.legendInstance = legend;\n },\n onBBoxUpdate: this.handleLegendBBoxUpdate\n }));\n }\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n var children = this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$state15 = this.state,\n isTooltipActive = _this$state15.isTooltipActive,\n activeCoordinate = _this$state15.activeCoordinate,\n activePayload = _this$state15.activePayload,\n activeLabel = _this$state15.activeLabel,\n offset = _this$state15.offset;\n return cloneElement(tooltipItem, {\n viewBox: _objectSpread({}, offset, {\n x: offset.left,\n y: offset.top\n }),\n active: isTooltipActive,\n label: activeLabel,\n payload: isTooltipActive ? activePayload : [],\n coordinate: activeCoordinate\n });\n }\n }, {\n key: \"renderActivePoints\",\n value: function renderActivePoints(_ref10) {\n var item = _ref10.item,\n activePoint = _ref10.activePoint,\n basePoint = _ref10.basePoint,\n childIndex = _ref10.childIndex,\n isRange = _ref10.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n dataKey = _item$item$props2.dataKey;\n\n var dotProps = _objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, getPresentationAttributes(activeDot), {}, filterEventAttributes(activeDot));\n\n result.push(this.constructor.renderActiveDot(activeDot, dotProps, childIndex));\n\n if (basePoint) {\n result.push(this.constructor.renderActiveDot(activeDot, _objectSpread({}, dotProps, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n }), childIndex));\n } else if (isRange) {\n result.push(null);\n }\n\n return result;\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: clipPathId\n }, React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n if (!validateWidthHeight(this)) {\n return null;\n }\n\n var _this$props7 = this.props,\n children = _this$props7.children,\n className = _this$props7.className,\n width = _this$props7.width,\n height = _this$props7.height,\n style = _this$props7.style,\n compact = _this$props7.compact,\n others = _objectWithoutProperties(_this$props7, [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\"]);\n\n var attrs = getPresentationAttributes(others);\n var map = {\n CartesianGrid: {\n handler: this.renderGrid,\n once: true\n },\n ReferenceArea: {\n handler: this.renderReferenceElement\n },\n ReferenceLine: {\n handler: this.renderReferenceElement\n },\n ReferenceDot: {\n handler: this.renderReferenceElement\n },\n XAxis: {\n handler: this.renderXAxis\n },\n YAxis: {\n handler: this.renderYAxis\n },\n Brush: {\n handler: this.renderBrush,\n once: true\n },\n Bar: {\n handler: this.renderGraphicChild\n },\n Line: {\n handler: this.renderGraphicChild\n },\n Area: {\n handler: this.renderGraphicChild\n },\n Radar: {\n handler: this.renderGraphicChild\n },\n RadialBar: {\n handler: this.renderGraphicChild\n },\n Scatter: {\n handler: this.renderGraphicChild\n },\n Pie: {\n handler: this.renderGraphicChild\n },\n Funnel: {\n handler: this.renderGraphicChild\n },\n Tooltip: {\n handler: this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: this.renderPolarAxis\n },\n Customized: {\n handler: this.renderCustomized\n }\n }; // The \"compact\" mode is mainly used as the panorama within Brush\n\n if (compact) {\n return React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map));\n }\n\n var events = this.parseEventsOfWrapper();\n return React.createElement(\"div\", _extends({\n className: classNames('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this7.container = node;\n }\n }), React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map)), this.renderLegend(), this.renderTooltip());\n }\n }], [{\n key: \"getAxisNameByLayout\",\n value: function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n }\n }, {\n key: \"renderActiveDot\",\n value: function renderActiveDot(option, props) {\n var dot;\n\n if (isValidElement(option)) {\n dot = cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = React.createElement(Dot, props);\n }\n\n return React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }\n }]);\n\n return CategoricalChartWrapper;\n }(Component);\n\n CategoricalChartWrapper.displayName = chartName;\n CategoricalChartWrapper.propTypes = _objectSpread({\n syncId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n compact: PropTypes.bool,\n width: PropTypes.number,\n height: PropTypes.number,\n data: PropTypes.arrayOf(PropTypes.object),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n stackOffset: PropTypes.oneOf(['sign', 'expand', 'none', 'wiggle', 'silhouette']),\n throttleDelay: PropTypes.number,\n margin: PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number\n }),\n barCategoryGap: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n barGap: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n barSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n maxBarSize: PropTypes.number,\n style: PropTypes.object,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultShowTooltip: PropTypes.bool,\n onClick: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n reverseStackOrder: PropTypes.bool,\n id: PropTypes.string\n }, propTypes);\n CategoricalChartWrapper.defaultProps = _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false\n }, defaultProps);\n\n CategoricalChartWrapper.createDefaultState = function (props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush);\n var startIndex = brushItem && brushItem.props && brushItem.props.startIndex || 0;\n var endIndex = brushItem && brushItem.props && brushItem.props.endIndex || props.data && props.data.length - 1 || 0;\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: !_isNil(defaultShowTooltip) ? defaultShowTooltip : false\n };\n };\n\n CategoricalChartWrapper.hasBar = function (graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n };\n\n CategoricalChartWrapper.getDisplayedData = function (props, _ref11, item) {\n var graphicalItems = _ref11.graphicalItems,\n dataStartIndex = _ref11.dataStartIndex,\n dataEndIndex = _ref11.dataEndIndex;\n var itemsData = (graphicalItems || []).reduce(function (result, child) {\n var itemData = child.props.data;\n\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n\n return result;\n }, []);\n\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n\n var data = props.data;\n\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n\n return [];\n };\n\n return CategoricalChartWrapper;\n};\n\nexport default generateCategoricalChart;","/**\n * @fileOverview Line Chart\n */\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Line from '../cartesian/Line';\nimport XAxis from '../cartesian/XAxis';\nimport YAxis from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport default generateCategoricalChart({\n chartName: 'LineChart',\n GraphicalChild: Line,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","/**\n * @fileOverview Bar Chart\n */\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Bar from '../cartesian/Bar';\nimport XAxis from '../cartesian/XAxis';\nimport YAxis from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport default generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { 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 _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 _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Polygon\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\n\nvar getPolygonPoints = function getPolygonPoints(points) {\n return points.reduce(function (result, entry) {\n if (entry.x === +entry.x && entry.y === +entry.y) {\n result.push([entry.x, entry.y]);\n }\n\n return result;\n }, []).join(' ');\n};\n\nvar Polygon =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Polygon, _PureComponent);\n\n function Polygon() {\n _classCallCheck(this, Polygon);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Polygon).apply(this, arguments));\n }\n\n _createClass(Polygon, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n points = _this$props.points,\n className = _this$props.className;\n\n if (!points || !points.length) {\n return null;\n }\n\n var layerClass = classNames('recharts-polygon', className);\n return React.createElement(\"polygon\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n className: layerClass,\n points: getPolygonPoints(points)\n }));\n }\n }]);\n\n return Polygon;\n}(PureComponent);\n\nPolygon.displayName = 'Polygon';\nPolygon.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n className: PropTypes.string,\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }))\n});\nexport default Polygon;","import _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { 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 _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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview Axis of radial direction\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport Layer from '../container/Layer';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, SCALE_TYPES, getPresentationAttributes, filterEventsOfChild } from '../util/ReactUtils';\nimport Dot from '../shape/Dot';\nimport Polygon from '../shape/Polygon';\nimport Text from '../component/Text';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar RADIAN = Math.PI / 180;\nvar eps = 1e-5;\n\nvar PolarAngleAxis =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(PolarAngleAxis, _PureComponent);\n\n function PolarAngleAxis() {\n _classCallCheck(this, PolarAngleAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PolarAngleAxis).apply(this, arguments));\n }\n\n _createClass(PolarAngleAxis, [{\n key: \"getTickLineCoord\",\n\n /**\n * Calculate the coordinate of line endpoint\n * @param {Object} data The Data if ticks\n * @return {Object} (x0, y0): The start point of text,\n * (x1, y1): The end point close to text,\n * (x2, y2): The end point close to axis\n */\n value: function getTickLineCoord(data) {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n radius = _this$props.radius,\n orientation = _this$props.orientation,\n tickLine = _this$props.tickLine;\n var tickLineSize = tickLine && tickLine.size || 8;\n var p1 = polarToCartesian(cx, cy, radius, data.coordinate);\n var p2 = polarToCartesian(cx, cy, radius + (orientation === 'inner' ? -1 : 1) * tickLineSize, data.coordinate);\n return {\n x1: p1.x,\n y1: p1.y,\n x2: p2.x,\n y2: p2.y\n };\n }\n /**\n * Get the text-anchor of each tick\n * @param {Object} data Data of ticks\n * @return {String} text-anchor\n */\n\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor(data) {\n var orientation = this.props.orientation;\n var cos = Math.cos(-data.coordinate * RADIAN);\n var textAnchor;\n\n if (cos > eps) {\n textAnchor = orientation === 'outer' ? 'start' : 'end';\n } else if (cos < -eps) {\n textAnchor = orientation === 'outer' ? 'end' : 'start';\n } else {\n textAnchor = 'middle';\n }\n\n return textAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n radius = _this$props2.radius,\n axisLine = _this$props2.axisLine,\n axisLineType = _this$props2.axisLineType;\n\n var props = _objectSpread({}, getPresentationAttributes(this.props), {\n fill: 'none'\n }, getPresentationAttributes(axisLine));\n\n if (axisLineType === 'circle') {\n return React.createElement(Dot, _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, props, {\n cx: cx,\n cy: cy,\n r: radius\n }));\n }\n\n var ticks = this.props.ticks;\n var points = ticks.map(function (entry) {\n return polarToCartesian(cx, cy, radius, entry.coordinate);\n });\n return React.createElement(Polygon, _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, props, {\n points: points\n }));\n }\n }, {\n key: \"renderTicks\",\n value: function renderTicks() {\n var _this = this;\n\n var _this$props3 = this.props,\n ticks = _this$props3.ticks,\n tick = _this$props3.tick,\n tickLine = _this$props3.tickLine,\n tickFormatter = _this$props3.tickFormatter,\n stroke = _this$props3.stroke;\n var axisProps = getPresentationAttributes(this.props);\n var customTickProps = getPresentationAttributes(tick);\n\n var tickLineProps = _objectSpread({}, axisProps, {\n fill: 'none'\n }, getPresentationAttributes(tickLine));\n\n var items = ticks.map(function (entry, i) {\n var lineCoord = _this.getTickLineCoord(entry);\n\n var textAnchor = _this.getTickTextAnchor(entry);\n\n var tickProps = _objectSpread({\n textAnchor: textAnchor\n }, axisProps, {\n stroke: 'none',\n fill: stroke\n }, customTickProps, {\n index: i,\n payload: entry,\n x: lineCoord.x2,\n y: lineCoord.y2\n });\n\n return React.createElement(Layer, _extends({\n className: \"recharts-polar-angle-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, filterEventsOfChild(_this.props, entry, i)), tickLine && React.createElement(\"line\", _extends({\n className: \"recharts-polar-angle-axis-tick-line\"\n }, tickLineProps, lineCoord)), tick && _this.constructor.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value) : entry.value));\n });\n return React.createElement(Layer, {\n className: \"recharts-polar-angle-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n ticks = _this$props4.ticks,\n radius = _this$props4.radius,\n axisLine = _this$props4.axisLine;\n\n if (radius <= 0 || !ticks || !ticks.length) {\n return null;\n }\n\n return React.createElement(Layer, {\n className: \"recharts-polar-angle-axis\"\n }, axisLine && this.renderAxisLine(), this.renderTicks());\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if (React.isValidElement(option)) {\n tickItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = React.createElement(Text, _extends({}, props, {\n className: \"recharts-polar-angle-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return PolarAngleAxis;\n}(PureComponent);\n\nPolarAngleAxis.displayName = 'PolarAngleAxis';\nPolarAngleAxis.axisType = 'angleAxis';\nPolarAngleAxis.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n type: PropTypes.oneOf(['number', 'category']),\n angleAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n dataKey: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.func]),\n cx: PropTypes.number,\n cy: PropTypes.number,\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n hide: PropTypes.bool,\n scale: PropTypes.oneOfType([PropTypes.oneOf(SCALE_TYPES), PropTypes.func]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n axisLineType: PropTypes.oneOf(['polygon', 'circle']),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element]),\n ticks: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n coordinate: PropTypes.number\n })),\n stroke: PropTypes.string,\n orientation: PropTypes.oneOf(['inner', 'outer']),\n tickFormatter: PropTypes.func,\n allowDuplicatedCategory: PropTypes.bool\n});\nPolarAngleAxis.defaultProps = {\n type: 'category',\n angleAxisId: 0,\n scale: 'auto',\n cx: 0,\n cy: 0,\n domain: [0, 'auto'],\n orientation: 'outer',\n axisLine: true,\n tickLine: true,\n tick: true,\n hide: false,\n allowDuplicatedCategory: true\n};\nexport default PolarAngleAxis;","import _isFunction from \"lodash/isFunction\";\nimport _minBy from \"lodash/minBy\";\nimport _maxBy from \"lodash/maxBy\";\n\nfunction _typeof(obj) { 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 _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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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 _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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\n/**\n * @fileOverview The axis of polar coordinate system\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport Text from '../component/Text';\nimport Label from '../component/Label';\nimport Layer from '../container/Layer';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes, filterEventsOfChild } from '../util/ReactUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\n\nvar PolarRadiusAxis =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(PolarRadiusAxis, _PureComponent);\n\n function PolarRadiusAxis() {\n _classCallCheck(this, PolarRadiusAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(PolarRadiusAxis).apply(this, arguments));\n }\n\n _createClass(PolarRadiusAxis, [{\n key: \"getTickValueCoord\",\n\n /**\n * Calculate the coordinate of tick\n * @param {Number} coordinate The radius of tick\n * @return {Object} (x, y)\n */\n value: function getTickValueCoord(_ref) {\n var coordinate = _ref.coordinate;\n var _this$props = this.props,\n angle = _this$props.angle,\n cx = _this$props.cx,\n cy = _this$props.cy;\n return polarToCartesian(cx, cy, coordinate, angle);\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var orientation = this.props.orientation;\n var textAnchor;\n\n switch (orientation) {\n case 'left':\n textAnchor = 'end';\n break;\n\n case 'right':\n textAnchor = 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\n\n return textAnchor;\n }\n }, {\n key: \"getViewBox\",\n value: function getViewBox() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n angle = _this$props2.angle,\n ticks = _this$props2.ticks;\n\n var maxRadiusTick = _maxBy(ticks, function (entry) {\n return entry.coordinate || 0;\n });\n\n var minRadiusTick = _minBy(ticks, function (entry) {\n return entry.coordinate || 0;\n });\n\n return {\n cx: cx,\n cy: cy,\n startAngle: angle,\n endAngle: angle,\n innerRadius: minRadiusTick.coordinate || 0,\n outerRadius: maxRadiusTick.coordinate || 0\n };\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props3 = this.props,\n cx = _this$props3.cx,\n cy = _this$props3.cy,\n angle = _this$props3.angle,\n ticks = _this$props3.ticks,\n axisLine = _this$props3.axisLine,\n others = _objectWithoutProperties(_this$props3, [\"cx\", \"cy\", \"angle\", \"ticks\", \"axisLine\"]);\n\n var extent = ticks.reduce(function (result, entry) {\n return [Math.min(result[0], entry.coordinate), Math.max(result[1], entry.coordinate)];\n }, [Infinity, -Infinity]);\n var point0 = polarToCartesian(cx, cy, extent[0], angle);\n var point1 = polarToCartesian(cx, cy, extent[1], angle);\n\n var props = _objectSpread({}, getPresentationAttributes(others), {\n fill: 'none'\n }, getPresentationAttributes(axisLine), {\n x1: point0.x,\n y1: point0.y,\n x2: point1.x,\n y2: point1.y\n });\n\n return React.createElement(\"line\", _extends({\n className: \"recharts-polar-radius-axis-line\"\n }, props));\n }\n }, {\n key: \"renderTicks\",\n value: function renderTicks() {\n var _this = this;\n\n var _this$props4 = this.props,\n ticks = _this$props4.ticks,\n tick = _this$props4.tick,\n angle = _this$props4.angle,\n tickFormatter = _this$props4.tickFormatter,\n stroke = _this$props4.stroke,\n others = _objectWithoutProperties(_this$props4, [\"ticks\", \"tick\", \"angle\", \"tickFormatter\", \"stroke\"]);\n\n var textAnchor = this.getTickTextAnchor();\n var axisProps = getPresentationAttributes(others);\n var customTickProps = getPresentationAttributes(tick);\n var items = ticks.map(function (entry, i) {\n var coord = _this.getTickValueCoord(entry);\n\n var tickProps = _objectSpread({\n textAnchor: textAnchor,\n transform: \"rotate(\".concat(90 - angle, \", \").concat(coord.x, \", \").concat(coord.y, \")\")\n }, axisProps, {\n stroke: 'none',\n fill: stroke\n }, customTickProps, {\n index: i\n }, coord, {\n payload: entry\n });\n\n return React.createElement(Layer, _extends({\n className: \"recharts-polar-radius-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, filterEventsOfChild(_this.props, entry, i)), _this.constructor.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value) : entry.value));\n });\n return React.createElement(Layer, {\n className: \"recharts-polar-radius-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n ticks = _this$props5.ticks,\n axisLine = _this$props5.axisLine,\n tick = _this$props5.tick;\n\n if (!ticks || !ticks.length) {\n return null;\n }\n\n return React.createElement(Layer, {\n className: \"recharts-polar-radius-axis\"\n }, axisLine && this.renderAxisLine(), tick && this.renderTicks(), Label.renderCallByParent(this.props, this.getViewBox()));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if (React.isValidElement(option)) {\n tickItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = React.createElement(Text, _extends({}, props, {\n className: \"recharts-polar-radius-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return PolarRadiusAxis;\n}(PureComponent);\n\nPolarRadiusAxis.displayName = 'PolarRadiusAxis';\nPolarRadiusAxis.axisType = 'radiusAxis';\nPolarRadiusAxis.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n type: PropTypes.oneOf(['number', 'category']),\n cx: PropTypes.number,\n cy: PropTypes.number,\n hide: PropTypes.bool,\n radiusAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n angle: PropTypes.number,\n tickCount: PropTypes.number,\n ticks: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n coordinate: PropTypes.number\n })),\n orientation: PropTypes.oneOf(['left', 'right', 'middle']),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tick: PropTypes.oneOfType([PropTypes.bool, PropTypes.object, PropTypes.element, PropTypes.func]),\n stroke: PropTypes.string,\n tickFormatter: PropTypes.func,\n domain: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto', 'dataMin', 'dataMax'])])),\n scale: PropTypes.oneOfType([PropTypes.oneOf(['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold']), PropTypes.func]),\n allowDataOverflow: PropTypes.bool,\n allowDuplicatedCategory: PropTypes.bool\n});\nPolarRadiusAxis.defaultProps = {\n type: 'number',\n radiusAxisId: 0,\n cx: 0,\n cy: 0,\n angle: 0,\n orientation: 'right',\n stroke: '#ccc',\n axisLine: true,\n tick: true,\n tickCount: 5,\n domain: [0, 'auto'],\n allowDataOverflow: false,\n scale: 'auto',\n allowDuplicatedCategory: true\n};\nexport default PolarRadiusAxis;","/**\n * @fileOverview Pie Chart\n */\nimport PropTypes from 'prop-types';\nimport generateCategoricalChart from './generateCategoricalChart';\nimport PolarAngleAxis from '../polar/PolarAngleAxis';\nimport PolarRadiusAxis from '../polar/PolarRadiusAxis';\nimport { formatAxisMap } from '../util/PolarUtils';\nimport Pie from '../polar/Pie';\nexport default generateCategoricalChart({\n chartName: 'PieChart',\n GraphicalChild: Pie,\n eventType: 'item',\n legendContent: 'children',\n axisComponents: [{\n axisType: 'angleAxis',\n AxisComp: PolarAngleAxis\n }, {\n axisType: 'radiusAxis',\n AxisComp: PolarRadiusAxis\n }],\n formatAxisMap: formatAxisMap,\n defaultProps: {\n layout: 'centric',\n startAngle: 0,\n endAngle: 360,\n cx: '50%',\n cy: '50%',\n innerRadius: 0,\n outerRadius: '80%'\n },\n propTypes: {\n layout: PropTypes.oneOf(['centric']),\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n cx: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cy: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n innerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n outerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }\n});","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\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 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 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","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\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","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\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 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","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 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 MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\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","/** 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","/** 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","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\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 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 isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\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 number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\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","/** 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","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\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","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 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","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\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 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","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\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 `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\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 _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n *