{"version":3,"file":"dep-a4ce7eef.mjs","sources":["../../node_modules/zrender/lib/svg/SVGPathRebuilder.js","../../node_modules/zrender/lib/svg/mapStyleToAttrs.js","../../node_modules/zrender/lib/svg/core.js","../../node_modules/zrender/lib/svg/cssAnimation.js","../../node_modules/zrender/lib/svg/graphic.js","../../node_modules/zrender/lib/svg/domapi.js","../../node_modules/zrender/lib/svg/patch.js","../../node_modules/zrender/lib/svg/Painter.js","../../node_modules/echarts/lib/renderer/installSVGRenderer.js","../../node_modules/zrender/lib/canvas/Layer.js","../../node_modules/zrender/lib/canvas/Painter.js","../../node_modules/echarts/lib/renderer/installCanvasRenderer.js","../../node_modules/echarts/lib/export/renderers.js","../../node_modules/echarts/renderers.js","../../node_modules/echarts/lib/chart/line/LineSeries.js","../../node_modules/echarts/lib/chart/helper/labelHelper.js","../../node_modules/echarts/lib/chart/helper/Symbol.js","../../node_modules/echarts/lib/chart/helper/SymbolDraw.js","../../node_modules/echarts/lib/chart/line/helper.js","../../node_modules/echarts/lib/chart/line/lineAnimationDiff.js","../../node_modules/echarts/lib/chart/line/poly.js","../../node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js","../../node_modules/echarts/lib/coord/CoordinateSystem.js","../../node_modules/echarts/lib/chart/line/LineView.js","../../node_modules/echarts/lib/layout/points.js","../../node_modules/echarts/lib/processor/dataSample.js","../../node_modules/echarts/lib/chart/line/install.js","../../node_modules/echarts/lib/chart/bar/BaseBarSeries.js","../../node_modules/echarts/lib/chart/bar/BarSeries.js","../../node_modules/echarts/lib/util/shape/sausage.js","../../node_modules/echarts/lib/label/sectorLabel.js","../../node_modules/echarts/lib/chart/bar/BarView.js","../../node_modules/echarts/lib/chart/bar/install.js","../../node_modules/echarts/lib/chart/pie/pieLayout.js","../../node_modules/echarts/lib/processor/dataFilter.js","../../node_modules/echarts/lib/chart/pie/labelLayout.js","../../node_modules/echarts/lib/chart/helper/pieHelper.js","../../node_modules/echarts/lib/chart/pie/PieView.js","../../node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js","../../node_modules/echarts/lib/visual/LegendVisualProvider.js","../../node_modules/echarts/lib/chart/pie/PieSeries.js","../../node_modules/echarts/lib/processor/negativeDataFilter.js","../../node_modules/echarts/lib/chart/pie/install.js","../../node_modules/echarts/lib/chart/scatter/ScatterSeries.js","../../node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js","../../node_modules/echarts/lib/chart/scatter/ScatterView.js","../../node_modules/echarts/lib/coord/cartesian/GridModel.js","../../node_modules/echarts/lib/coord/cartesian/AxisModel.js","../../node_modules/echarts/lib/coord/axisDefault.js","../../node_modules/echarts/lib/coord/axisCommonTypes.js","../../node_modules/echarts/lib/coord/axisModelCreator.js","../../node_modules/echarts/lib/coord/cartesian/Cartesian.js","../../node_modules/echarts/lib/coord/cartesian/Cartesian2D.js","../../node_modules/echarts/lib/coord/cartesian/Axis2D.js","../../node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js","../../node_modules/echarts/lib/coord/axisAlignTicks.js","../../node_modules/echarts/lib/coord/cartesian/Grid.js","../../node_modules/echarts/lib/component/axis/AxisBuilder.js","../../node_modules/echarts/lib/component/axisPointer/modelHelper.js","../../node_modules/echarts/lib/component/axis/AxisView.js","../../node_modules/echarts/lib/component/axis/axisSplitHelper.js","../../node_modules/echarts/lib/component/axis/CartesianAxisView.js","../../node_modules/echarts/lib/component/grid/installSimple.js","../../node_modules/echarts/lib/chart/scatter/install.js","../../node_modules/echarts/lib/chart/radar/radarLayout.js","../../node_modules/echarts/lib/chart/radar/backwardCompat.js","../../node_modules/echarts/lib/chart/radar/RadarView.js","../../node_modules/echarts/lib/chart/radar/RadarSeries.js","../../node_modules/echarts/lib/coord/radar/RadarModel.js","../../node_modules/echarts/lib/component/radar/RadarView.js","../../node_modules/echarts/lib/coord/radar/IndicatorAxis.js","../../node_modules/echarts/lib/coord/radar/Radar.js","../../node_modules/echarts/lib/component/radar/install.js","../../node_modules/echarts/lib/chart/radar/install.js","../../node_modules/echarts/lib/component/helper/interactionMutex.js","../../node_modules/echarts/lib/component/helper/RoamController.js","../../node_modules/echarts/lib/component/helper/roamHelper.js","../../node_modules/echarts/lib/component/helper/cursorHelper.js","../../node_modules/zrender/lib/tool/parseXML.js","../../node_modules/zrender/lib/tool/parseSVG.js","../../node_modules/echarts/lib/coord/geo/GeoSVGResource.js","../../node_modules/echarts/lib/coord/geo/fix/nanhai.js","../../node_modules/echarts/lib/coord/geo/fix/textCoord.js","../../node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js","../../node_modules/echarts/lib/coord/geo/GeoJSONResource.js","../../node_modules/echarts/lib/coord/geo/geoSourceManager.js","../../node_modules/echarts/lib/component/helper/MapDraw.js","../../node_modules/echarts/lib/chart/map/MapView.js","../../node_modules/echarts/lib/chart/map/MapSeries.js","../../node_modules/echarts/lib/chart/map/mapDataStatistic.js","../../node_modules/echarts/lib/chart/map/mapSymbolLayout.js","../../node_modules/echarts/lib/coord/View.js","../../node_modules/echarts/lib/coord/geo/Geo.js","../../node_modules/echarts/lib/coord/geo/geoCreator.js","../../node_modules/echarts/lib/coord/geo/GeoModel.js","../../node_modules/echarts/lib/action/roamHelper.js","../../node_modules/echarts/lib/component/geo/GeoView.js","../../node_modules/echarts/lib/component/geo/install.js","../../node_modules/echarts/lib/chart/map/install.js","../../node_modules/echarts/lib/chart/tree/layoutHelper.js","../../node_modules/echarts/lib/chart/tree/TreeView.js","../../node_modules/echarts/lib/data/helper/linkSeriesData.js","../../node_modules/echarts/lib/data/Tree.js","../../node_modules/echarts/lib/chart/helper/treeHelper.js","../../node_modules/echarts/lib/chart/tree/TreeSeries.js","../../node_modules/echarts/lib/chart/tree/traversalHelper.js","../../node_modules/echarts/lib/chart/tree/treeLayout.js","../../node_modules/echarts/lib/chart/tree/treeVisual.js","../../node_modules/echarts/lib/chart/tree/treeAction.js","../../node_modules/echarts/lib/chart/tree/install.js","../../node_modules/echarts/lib/chart/treemap/treemapAction.js","../../node_modules/echarts/lib/chart/helper/enableAriaDecalForTree.js","../../node_modules/echarts/lib/chart/treemap/TreemapSeries.js","../../node_modules/echarts/lib/chart/treemap/Breadcrumb.js","../../node_modules/echarts/lib/util/animation.js","../../node_modules/echarts/lib/chart/treemap/TreemapView.js","../../node_modules/echarts/lib/visual/VisualMapping.js","../../node_modules/echarts/lib/chart/treemap/treemapVisual.js","../../node_modules/echarts/lib/chart/treemap/treemapLayout.js","../../node_modules/echarts/lib/chart/treemap/install.js","../../node_modules/echarts/lib/chart/graph/categoryFilter.js","../../node_modules/echarts/lib/chart/graph/categoryVisual.js","../../node_modules/echarts/lib/chart/graph/edgeVisual.js","../../node_modules/echarts/lib/chart/helper/multipleGraphEdgeHelper.js","../../node_modules/echarts/lib/chart/graph/simpleLayoutHelper.js","../../node_modules/echarts/lib/chart/graph/simpleLayout.js","../../node_modules/echarts/lib/chart/graph/graphHelper.js","../../node_modules/echarts/lib/chart/graph/circularLayoutHelper.js","../../node_modules/echarts/lib/chart/graph/circularLayout.js","../../node_modules/echarts/lib/chart/graph/forceHelper.js","../../node_modules/echarts/lib/chart/graph/forceLayout.js","../../node_modules/echarts/lib/chart/graph/createView.js","../../node_modules/echarts/lib/chart/helper/LinePath.js","../../node_modules/echarts/lib/chart/helper/Line.js","../../node_modules/echarts/lib/chart/helper/LineDraw.js","../../node_modules/echarts/lib/chart/graph/adjustEdge.js","../../node_modules/echarts/lib/chart/graph/GraphView.js","../../node_modules/echarts/lib/data/Graph.js","../../node_modules/echarts/lib/chart/helper/createGraphFromNodeEdge.js","../../node_modules/echarts/lib/chart/graph/GraphSeries.js","../../node_modules/echarts/lib/chart/graph/install.js","../../node_modules/echarts/lib/chart/gauge/PointerPath.js","../../node_modules/echarts/lib/chart/gauge/GaugeView.js","../../node_modules/echarts/lib/chart/gauge/GaugeSeries.js","../../node_modules/echarts/lib/chart/gauge/install.js","../../node_modules/echarts/lib/chart/funnel/FunnelView.js","../../node_modules/echarts/lib/chart/funnel/FunnelSeries.js","../../node_modules/echarts/lib/chart/funnel/funnelLayout.js","../../node_modules/echarts/lib/chart/funnel/install.js","../../node_modules/echarts/lib/chart/parallel/ParallelView.js","../../node_modules/echarts/lib/chart/parallel/ParallelSeries.js","../../node_modules/echarts/lib/chart/parallel/parallelVisual.js","../../node_modules/echarts/lib/coord/parallel/parallelPreprocessor.js","../../node_modules/echarts/lib/component/parallel/ParallelView.js","../../node_modules/echarts/lib/coord/parallel/ParallelModel.js","../../node_modules/echarts/lib/coord/parallel/ParallelAxis.js","../../node_modules/echarts/lib/component/helper/sliderMove.js","../../node_modules/echarts/lib/coord/parallel/Parallel.js","../../node_modules/echarts/lib/coord/parallel/parallelCreator.js","../../node_modules/echarts/lib/coord/parallel/AxisModel.js","../../node_modules/echarts/lib/component/helper/BrushController.js","../../node_modules/echarts/lib/component/helper/brushHelper.js","../../node_modules/echarts/lib/component/axis/ParallelAxisView.js","../../node_modules/echarts/lib/component/axis/parallelAxisAction.js","../../node_modules/echarts/lib/component/parallel/install.js","../../node_modules/echarts/lib/chart/parallel/install.js","../../node_modules/echarts/lib/chart/sankey/SankeyView.js","../../node_modules/echarts/lib/chart/sankey/SankeySeries.js","../../node_modules/echarts/lib/chart/sankey/sankeyLayout.js","../../node_modules/echarts/lib/chart/sankey/sankeyVisual.js","../../node_modules/echarts/lib/chart/sankey/install.js","../../node_modules/echarts/lib/chart/helper/whiskerBoxCommon.js","../../node_modules/echarts/lib/chart/boxplot/BoxplotSeries.js","../../node_modules/echarts/lib/chart/boxplot/BoxplotView.js","../../node_modules/echarts/lib/chart/boxplot/boxplotVisual.js","../../node_modules/echarts/lib/chart/boxplot/boxplotLayout.js","../../node_modules/echarts/lib/chart/boxplot/prepareBoxplotData.js","../../node_modules/echarts/lib/chart/boxplot/boxplotTransform.js","../../node_modules/echarts/lib/chart/boxplot/install.js","../../node_modules/echarts/lib/chart/candlestick/CandlestickView.js","../../node_modules/echarts/lib/chart/candlestick/CandlestickSeries.js","../../node_modules/echarts/lib/chart/candlestick/preprocessor.js","../../node_modules/echarts/lib/chart/candlestick/candlestickVisual.js","../../node_modules/echarts/lib/chart/candlestick/candlestickLayout.js","../../node_modules/echarts/lib/chart/candlestick/install.js","../../node_modules/echarts/lib/chart/helper/EffectSymbol.js","../../node_modules/echarts/lib/chart/effectScatter/EffectScatterView.js","../../node_modules/echarts/lib/chart/effectScatter/EffectScatterSeries.js","../../node_modules/echarts/lib/chart/effectScatter/install.js","../../node_modules/echarts/lib/chart/helper/EffectLine.js","../../node_modules/echarts/lib/chart/helper/Polyline.js","../../node_modules/echarts/lib/chart/helper/EffectPolyline.js","../../node_modules/echarts/lib/chart/helper/LargeLineDraw.js","../../node_modules/echarts/lib/chart/lines/linesLayout.js","../../node_modules/echarts/lib/chart/lines/LinesView.js","../../node_modules/echarts/lib/chart/lines/LinesSeries.js","../../node_modules/echarts/lib/chart/lines/linesVisual.js","../../node_modules/echarts/lib/chart/lines/install.js","../../node_modules/echarts/lib/chart/heatmap/HeatmapLayer.js","../../node_modules/echarts/lib/chart/heatmap/HeatmapView.js","../../node_modules/echarts/lib/chart/heatmap/HeatmapSeries.js","../../node_modules/echarts/lib/chart/heatmap/install.js","../../node_modules/echarts/lib/chart/bar/PictorialBarView.js","../../node_modules/echarts/lib/chart/bar/PictorialBarSeries.js","../../node_modules/echarts/lib/chart/bar/installPictorialBar.js","../../node_modules/echarts/lib/chart/themeRiver/ThemeRiverView.js","../../node_modules/echarts/lib/chart/themeRiver/ThemeRiverSeries.js","../../node_modules/echarts/lib/chart/themeRiver/themeRiverLayout.js","../../node_modules/echarts/lib/chart/themeRiver/install.js","../../node_modules/echarts/lib/chart/sunburst/SunburstPiece.js","../../node_modules/echarts/lib/chart/sunburst/sunburstAction.js","../../node_modules/echarts/lib/chart/sunburst/SunburstView.js","../../node_modules/echarts/lib/chart/sunburst/SunburstSeries.js","../../node_modules/echarts/lib/chart/sunburst/sunburstLayout.js","../../node_modules/echarts/lib/chart/sunburst/sunburstVisual.js","../../node_modules/echarts/lib/chart/sunburst/install.js","../../node_modules/echarts/lib/chart/custom/CustomSeries.js","../../node_modules/echarts/lib/coord/cartesian/prepareCustom.js","../../node_modules/echarts/lib/coord/geo/prepareCustom.js","../../node_modules/echarts/lib/coord/single/prepareCustom.js","../../node_modules/echarts/lib/coord/polar/prepareCustom.js","../../node_modules/echarts/lib/coord/calendar/prepareCustom.js","../../node_modules/echarts/lib/util/styleCompat.js","../../node_modules/echarts/lib/animation/customGraphicTransition.js","../../node_modules/echarts/lib/animation/customGraphicKeyframeAnimation.js","../../node_modules/echarts/lib/chart/custom/CustomView.js","../../node_modules/echarts/lib/chart/custom/install.js","../../node_modules/echarts/lib/export/charts.js","../../node_modules/echarts/charts.js","../../node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js","../../node_modules/echarts/lib/component/axisPointer/viewHelper.js","../../node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js","../../node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js","../../node_modules/echarts/lib/component/axisPointer/globalListener.js","../../node_modules/echarts/lib/component/axisPointer/AxisPointerView.js","../../node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js","../../node_modules/echarts/lib/component/axisPointer/axisTrigger.js","../../node_modules/echarts/lib/component/axisPointer/install.js","../../node_modules/echarts/lib/component/grid/install.js","../../node_modules/echarts/lib/component/axisPointer/PolarAxisPointer.js","../../node_modules/echarts/lib/coord/polar/PolarModel.js","../../node_modules/echarts/lib/coord/polar/AxisModel.js","../../node_modules/echarts/lib/coord/polar/RadiusAxis.js","../../node_modules/echarts/lib/coord/polar/AngleAxis.js","../../node_modules/echarts/lib/coord/polar/Polar.js","../../node_modules/echarts/lib/coord/polar/polarCreator.js","../../node_modules/echarts/lib/component/axis/AngleAxisView.js","../../node_modules/echarts/lib/component/axis/RadiusAxisView.js","../../node_modules/echarts/lib/layout/barPolar.js","../../node_modules/echarts/lib/component/polar/install.js","../../node_modules/echarts/lib/coord/single/singleAxisHelper.js","../../node_modules/echarts/lib/component/axis/SingleAxisView.js","../../node_modules/echarts/lib/coord/single/AxisModel.js","../../node_modules/echarts/lib/coord/single/SingleAxis.js","../../node_modules/echarts/lib/coord/single/Single.js","../../node_modules/echarts/lib/coord/single/singleCreator.js","../../node_modules/echarts/lib/component/axisPointer/SingleAxisPointer.js","../../node_modules/echarts/lib/component/singleAxis/install.js","../../node_modules/echarts/lib/coord/calendar/CalendarModel.js","../../node_modules/echarts/lib/component/calendar/CalendarView.js","../../node_modules/echarts/lib/coord/calendar/Calendar.js","../../node_modules/echarts/lib/component/calendar/install.js","../../node_modules/echarts/lib/component/graphic/GraphicModel.js","../../node_modules/echarts/lib/component/graphic/GraphicView.js","../../node_modules/echarts/lib/component/graphic/install.js","../../node_modules/echarts/lib/component/dataZoom/helper.js","../../node_modules/echarts/lib/component/dataZoom/DataZoomModel.js","../../node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js","../../node_modules/echarts/lib/component/dataZoom/DataZoomView.js","../../node_modules/echarts/lib/component/dataZoom/SelectZoomView.js","../../node_modules/echarts/lib/component/dataZoom/AxisProxy.js","../../node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js","../../node_modules/echarts/lib/component/dataZoom/dataZoomAction.js","../../node_modules/echarts/lib/component/dataZoom/installCommon.js","../../node_modules/echarts/lib/component/dataZoom/installDataZoomSelect.js","../../node_modules/echarts/lib/component/toolbox/featureManager.js","../../node_modules/echarts/lib/component/toolbox/ToolboxModel.js","../../node_modules/echarts/lib/component/helper/listComponent.js","../../node_modules/echarts/lib/component/toolbox/ToolboxView.js","../../node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js","../../node_modules/echarts/lib/component/toolbox/feature/MagicType.js","../../node_modules/echarts/lib/component/toolbox/feature/DataView.js","../../node_modules/echarts/lib/component/dataZoom/history.js","../../node_modules/echarts/lib/component/toolbox/feature/Restore.js","../../node_modules/echarts/lib/component/helper/BrushTargetManager.js","../../node_modules/echarts/lib/component/toolbox/feature/DataZoom.js","../../node_modules/echarts/lib/component/toolbox/install.js","../../node_modules/echarts/lib/component/tooltip/TooltipModel.js","../../node_modules/echarts/lib/component/tooltip/helper.js","../../node_modules/echarts/lib/component/tooltip/TooltipHTMLContent.js","../../node_modules/echarts/lib/component/tooltip/TooltipRichContent.js","../../node_modules/echarts/lib/component/tooltip/TooltipView.js","../../node_modules/echarts/lib/component/tooltip/install.js","../../node_modules/echarts/lib/component/brush/preprocessor.js","../../node_modules/echarts/lib/visual/visualSolution.js","../../node_modules/echarts/lib/component/brush/selector.js","../../node_modules/echarts/lib/component/brush/visualEncoding.js","../../node_modules/echarts/lib/component/brush/BrushView.js","../../node_modules/echarts/lib/component/brush/BrushModel.js","../../node_modules/echarts/lib/component/toolbox/feature/Brush.js","../../node_modules/echarts/lib/component/brush/install.js","../../node_modules/echarts/lib/component/title/install.js","../../node_modules/echarts/lib/component/timeline/TimelineModel.js","../../node_modules/echarts/lib/component/timeline/SliderTimelineModel.js","../../node_modules/echarts/lib/component/timeline/TimelineView.js","../../node_modules/echarts/lib/component/timeline/TimelineAxis.js","../../node_modules/echarts/lib/component/timeline/SliderTimelineView.js","../../node_modules/echarts/lib/component/timeline/timelineAction.js","../../node_modules/echarts/lib/component/timeline/preprocessor.js","../../node_modules/echarts/lib/component/timeline/install.js","../../node_modules/echarts/lib/component/marker/checkMarkerInSeries.js","../../node_modules/echarts/lib/component/marker/MarkerModel.js","../../node_modules/echarts/lib/component/marker/MarkPointModel.js","../../node_modules/echarts/lib/component/marker/markerHelper.js","../../node_modules/echarts/lib/component/marker/MarkerView.js","../../node_modules/echarts/lib/component/marker/MarkPointView.js","../../node_modules/echarts/lib/component/marker/installMarkPoint.js","../../node_modules/echarts/lib/component/marker/MarkLineModel.js","../../node_modules/echarts/lib/component/marker/MarkLineView.js","../../node_modules/echarts/lib/component/marker/installMarkLine.js","../../node_modules/echarts/lib/component/marker/MarkAreaModel.js","../../node_modules/echarts/lib/component/marker/MarkAreaView.js","../../node_modules/echarts/lib/component/marker/installMarkArea.js","../../node_modules/echarts/lib/component/legend/LegendModel.js","../../node_modules/echarts/lib/component/legend/LegendView.js","../../node_modules/echarts/lib/component/legend/legendFilter.js","../../node_modules/echarts/lib/component/legend/legendAction.js","../../node_modules/echarts/lib/component/legend/installLegendPlain.js","../../node_modules/echarts/lib/component/legend/ScrollableLegendModel.js","../../node_modules/echarts/lib/component/legend/ScrollableLegendView.js","../../node_modules/echarts/lib/component/legend/scrollableLegendAction.js","../../node_modules/echarts/lib/component/legend/installLegendScroll.js","../../node_modules/echarts/lib/component/legend/install.js","../../node_modules/echarts/lib/component/dataZoom/InsideZoomModel.js","../../node_modules/echarts/lib/component/dataZoom/roams.js","../../node_modules/echarts/lib/component/dataZoom/InsideZoomView.js","../../node_modules/echarts/lib/component/dataZoom/installDataZoomInside.js","../../node_modules/echarts/lib/component/dataZoom/SliderZoomModel.js","../../node_modules/echarts/lib/component/dataZoom/SliderZoomView.js","../../node_modules/echarts/lib/component/dataZoom/installDataZoomSlider.js","../../node_modules/echarts/lib/component/dataZoom/install.js","../../node_modules/echarts/lib/visual/visualDefault.js","../../node_modules/echarts/lib/component/visualMap/VisualMapModel.js","../../node_modules/echarts/lib/component/visualMap/ContinuousModel.js","../../node_modules/echarts/lib/component/visualMap/VisualMapView.js","../../node_modules/echarts/lib/component/visualMap/helper.js","../../node_modules/echarts/lib/component/visualMap/ContinuousView.js","../../node_modules/echarts/lib/component/visualMap/visualMapAction.js","../../node_modules/echarts/lib/component/visualMap/visualEncoding.js","../../node_modules/echarts/lib/component/visualMap/preprocessor.js","../../node_modules/echarts/lib/component/visualMap/installCommon.js","../../node_modules/echarts/lib/component/visualMap/installVisualMapContinuous.js","../../node_modules/echarts/lib/component/visualMap/PiecewiseModel.js","../../node_modules/echarts/lib/component/visualMap/PiecewiseView.js","../../node_modules/echarts/lib/component/visualMap/installVisualMapPiecewise.js","../../node_modules/echarts/lib/component/visualMap/install.js","../../node_modules/echarts/lib/visual/aria.js","../../node_modules/echarts/lib/component/aria/preprocessor.js","../../node_modules/echarts/lib/component/aria/install.js","../../node_modules/echarts/lib/util/conditionalExpression.js","../../node_modules/echarts/lib/component/transform/filterTransform.js","../../node_modules/echarts/lib/component/transform/sortTransform.js","../../node_modules/echarts/lib/component/transform/install.js","../../node_modules/echarts/lib/component/dataset/install.js","../../node_modules/echarts/lib/export/components.js","../../node_modules/echarts/components.js","../../src/chart/index.ts"],"sourcesContent":["import { isAroundZero } from './helper.js';\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nvar PI2 = Math.PI * 2;\nvar degree = 180 / PI;\nvar SVGPathRebuilder = (function () {\n    function SVGPathRebuilder() {\n    }\n    SVGPathRebuilder.prototype.reset = function (precision) {\n        this._start = true;\n        this._d = [];\n        this._str = '';\n        this._p = Math.pow(10, precision || 4);\n    };\n    SVGPathRebuilder.prototype.moveTo = function (x, y) {\n        this._add('M', x, y);\n    };\n    SVGPathRebuilder.prototype.lineTo = function (x, y) {\n        this._add('L', x, y);\n    };\n    SVGPathRebuilder.prototype.bezierCurveTo = function (x, y, x2, y2, x3, y3) {\n        this._add('C', x, y, x2, y2, x3, y3);\n    };\n    SVGPathRebuilder.prototype.quadraticCurveTo = function (x, y, x2, y2) {\n        this._add('Q', x, y, x2, y2);\n    };\n    SVGPathRebuilder.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        this.ellipse(cx, cy, r, r, 0, startAngle, endAngle, anticlockwise);\n    };\n    SVGPathRebuilder.prototype.ellipse = function (cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise) {\n        var dTheta = endAngle - startAngle;\n        var clockwise = !anticlockwise;\n        var dThetaPositive = Math.abs(dTheta);\n        var isCircle = isAroundZero(dThetaPositive - PI2)\n            || (clockwise ? dTheta >= PI2 : -dTheta >= PI2);\n        var unifiedTheta = dTheta > 0 ? dTheta % PI2 : (dTheta % PI2 + PI2);\n        var large = false;\n        if (isCircle) {\n            large = true;\n        }\n        else if (isAroundZero(dThetaPositive)) {\n            large = false;\n        }\n        else {\n            large = (unifiedTheta >= PI) === !!clockwise;\n        }\n        var x0 = cx + rx * mathCos(startAngle);\n        var y0 = cy + ry * mathSin(startAngle);\n        if (this._start) {\n            this._add('M', x0, y0);\n        }\n        var xRot = Math.round(psi * degree);\n        if (isCircle) {\n            var p = 1 / this._p;\n            var dTheta_1 = (clockwise ? 1 : -1) * (PI2 - p);\n            this._add('A', rx, ry, xRot, 1, +clockwise, cx + rx * mathCos(startAngle + dTheta_1), cy + ry * mathSin(startAngle + dTheta_1));\n            if (p > 1e-2) {\n                this._add('A', rx, ry, xRot, 0, +clockwise, x0, y0);\n            }\n        }\n        else {\n            var x = cx + rx * mathCos(endAngle);\n            var y = cy + ry * mathSin(endAngle);\n            this._add('A', rx, ry, xRot, +large, +clockwise, x, y);\n        }\n    };\n    SVGPathRebuilder.prototype.rect = function (x, y, w, h) {\n        this._add('M', x, y);\n        this._add('l', w, 0);\n        this._add('l', 0, h);\n        this._add('l', -w, 0);\n        this._add('Z');\n    };\n    SVGPathRebuilder.prototype.closePath = function () {\n        if (this._d.length > 0) {\n            this._add('Z');\n        }\n    };\n    SVGPathRebuilder.prototype._add = function (cmd, a, b, c, d, e, f, g, h) {\n        var vals = [];\n        var p = this._p;\n        for (var i = 1; i < arguments.length; i++) {\n            var val = arguments[i];\n            if (isNaN(val)) {\n                this._invalid = true;\n                return;\n            }\n            vals.push(Math.round(val * p) / p);\n        }\n        this._d.push(cmd + vals.join(' '));\n        this._start = cmd === 'Z';\n    };\n    SVGPathRebuilder.prototype.generateStr = function () {\n        this._str = this._invalid ? '' : this._d.join('');\n        this._d = [];\n    };\n    SVGPathRebuilder.prototype.getStr = function () {\n        return this._str;\n    };\n    return SVGPathRebuilder;\n}());\nexport default SVGPathRebuilder;\n","import { DEFAULT_PATH_STYLE } from '../graphic/Path.js';\nimport ZRImage from '../graphic/Image.js';\nimport { getLineDash } from '../canvas/dashStyle.js';\nimport { map } from '../core/util.js';\nimport { normalizeColor } from './helper.js';\nvar NONE = 'none';\nvar mathRound = Math.round;\nfunction pathHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== NONE;\n}\nfunction pathHasStroke(style) {\n    var stroke = style.stroke;\n    return stroke != null && stroke !== NONE;\n}\nvar strokeProps = ['lineCap', 'miterLimit', 'lineJoin'];\nvar svgStrokeProps = map(strokeProps, function (prop) { return \"stroke-\" + prop.toLowerCase(); });\nexport default function mapStyleToAttrs(updateAttr, style, el, forceUpdate) {\n    var opacity = style.opacity == null ? 1 : style.opacity;\n    if (el instanceof ZRImage) {\n        updateAttr('opacity', opacity);\n        return;\n    }\n    if (pathHasFill(style)) {\n        var fill = normalizeColor(style.fill);\n        updateAttr('fill', fill.color);\n        var fillOpacity = style.fillOpacity != null\n            ? style.fillOpacity * fill.opacity * opacity\n            : fill.opacity * opacity;\n        if (forceUpdate || fillOpacity < 1) {\n            updateAttr('fill-opacity', fillOpacity);\n        }\n    }\n    else {\n        updateAttr('fill', NONE);\n    }\n    if (pathHasStroke(style)) {\n        var stroke = normalizeColor(style.stroke);\n        updateAttr('stroke', stroke.color);\n        var strokeScale = style.strokeNoScale\n            ? el.getLineScale()\n            : 1;\n        var strokeWidth = (strokeScale ? (style.lineWidth || 0) / strokeScale : 0);\n        var strokeOpacity = style.strokeOpacity != null\n            ? style.strokeOpacity * stroke.opacity * opacity\n            : stroke.opacity * opacity;\n        var strokeFirst = style.strokeFirst;\n        if (forceUpdate || strokeWidth !== 1) {\n            updateAttr('stroke-width', strokeWidth);\n        }\n        if (forceUpdate || strokeFirst) {\n            updateAttr('paint-order', strokeFirst ? 'stroke' : 'fill');\n        }\n        if (forceUpdate || strokeOpacity < 1) {\n            updateAttr('stroke-opacity', strokeOpacity);\n        }\n        if (style.lineDash) {\n            var _a = getLineDash(el), lineDash = _a[0], lineDashOffset = _a[1];\n            if (lineDash) {\n                lineDashOffset = mathRound(lineDashOffset || 0);\n                updateAttr('stroke-dasharray', lineDash.join(','));\n                if (lineDashOffset || forceUpdate) {\n                    updateAttr('stroke-dashoffset', lineDashOffset);\n                }\n            }\n        }\n        else if (forceUpdate) {\n            updateAttr('stroke-dasharray', NONE);\n        }\n        for (var i = 0; i < strokeProps.length; i++) {\n            var propName = strokeProps[i];\n            if (forceUpdate || style[propName] !== DEFAULT_PATH_STYLE[propName]) {\n                var val = style[propName] || DEFAULT_PATH_STYLE[propName];\n                val && updateAttr(svgStrokeProps[i], val);\n            }\n        }\n    }\n    else if (forceUpdate) {\n        updateAttr('stroke', NONE);\n    }\n}\n","import { keys, map } from '../core/util.js';\nexport var SVGNS = 'http://www.w3.org/2000/svg';\nexport var XLINKNS = 'http://www.w3.org/1999/xlink';\nexport var XMLNS = 'http://www.w3.org/2000/xmlns/';\nexport var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\nexport function createElement(name) {\n    return document.createElementNS(SVGNS, name);\n}\n;\nexport function createVNode(tag, key, attrs, children, text) {\n    return {\n        tag: tag,\n        attrs: attrs || {},\n        children: children,\n        text: text,\n        key: key\n    };\n}\nfunction createElementOpen(name, attrs) {\n    var attrsStr = [];\n    if (attrs) {\n        for (var key in attrs) {\n            var val = attrs[key];\n            var part = key;\n            if (val === false) {\n                continue;\n            }\n            else if (val !== true && val != null) {\n                part += \"=\\\"\" + val + \"\\\"\";\n            }\n            attrsStr.push(part);\n        }\n    }\n    return \"<\" + name + \" \" + attrsStr.join(' ') + \">\";\n}\nfunction createElementClose(name) {\n    return \"</\" + name + \">\";\n}\nexport function vNodeToString(el, opts) {\n    opts = opts || {};\n    var S = opts.newline ? '\\n' : '';\n    function convertElToString(el) {\n        var children = el.children, tag = el.tag, attrs = el.attrs;\n        return createElementOpen(tag, attrs)\n            + (el.text || '')\n            + (children ? \"\" + S + map(children, function (child) { return convertElToString(child); }).join(S) + S : '')\n            + createElementClose(tag);\n    }\n    return convertElToString(el);\n}\nexport function getCssString(selectorNodes, animationNodes, opts) {\n    opts = opts || {};\n    var S = opts.newline ? '\\n' : '';\n    var bracketBegin = \" {\" + S;\n    var bracketEnd = S + \"}\";\n    var selectors = map(keys(selectorNodes), function (className) {\n        return className + bracketBegin + map(keys(selectorNodes[className]), function (attrName) {\n            return attrName + \":\" + selectorNodes[className][attrName] + \";\";\n        }).join(S) + bracketEnd;\n    }).join(S);\n    var animations = map(keys(animationNodes), function (animationName) {\n        return \"@keyframes \" + animationName + bracketBegin + map(keys(animationNodes[animationName]), function (percent) {\n            return percent + bracketBegin + map(keys(animationNodes[animationName][percent]), function (attrName) {\n                var val = animationNodes[animationName][percent][attrName];\n                if (attrName === 'd') {\n                    val = \"path(\\\"\" + val + \"\\\")\";\n                }\n                return attrName + \":\" + val + \";\";\n            }).join(S) + bracketEnd;\n        }).join(S) + bracketEnd;\n    }).join(S);\n    if (!selectors && !animations) {\n        return '';\n    }\n    return ['<![CDATA[', selectors, animations, ']]>'].join(S);\n}\nexport function createBrushScope(zrId) {\n    return {\n        zrId: zrId,\n        shadowCache: {},\n        patternCache: {},\n        gradientCache: {},\n        clipPathCache: {},\n        defs: {},\n        cssNodes: {},\n        cssAnims: {},\n        cssClassIdx: 0,\n        cssAnimIdx: 0,\n        shadowIdx: 0,\n        gradientIdx: 0,\n        patternIdx: 0,\n        clipPathIdx: 0\n    };\n}\nexport function createSVGVNode(width, height, children, useViewBox) {\n    return createVNode('svg', 'root', {\n        'width': width,\n        'height': height,\n        'xmlns': SVGNS,\n        'xmlns:xlink': XLINKNS,\n        'version': '1.1',\n        'baseProfile': 'full',\n        'viewBox': useViewBox ? \"0 0 \" + width + \" \" + height : false\n    }, children);\n}\n","import { copyTransform } from '../core/Transformable.js';\nimport { createBrushScope } from './core.js';\nimport SVGPathRebuilder from './SVGPathRebuilder.js';\nimport PathProxy from '../core/PathProxy.js';\nimport { getPathPrecision, getSRTTransformString } from './helper.js';\nimport { each, extend, filter, isNumber, isString, keys } from '../core/util.js';\nimport CompoundPath from '../graphic/CompoundPath.js';\nimport { createCubicEasingFunc } from '../animation/cubicEasing.js';\nexport var EASING_MAP = {\n    cubicIn: '0.32,0,0.67,0',\n    cubicOut: '0.33,1,0.68,1',\n    cubicInOut: '0.65,0,0.35,1',\n    quadraticIn: '0.11,0,0.5,0',\n    quadraticOut: '0.5,1,0.89,1',\n    quadraticInOut: '0.45,0,0.55,1',\n    quarticIn: '0.5,0,0.75,0',\n    quarticOut: '0.25,1,0.5,1',\n    quarticInOut: '0.76,0,0.24,1',\n    quinticIn: '0.64,0,0.78,0',\n    quinticOut: '0.22,1,0.36,1',\n    quinticInOut: '0.83,0,0.17,1',\n    sinusoidalIn: '0.12,0,0.39,0',\n    sinusoidalOut: '0.61,1,0.88,1',\n    sinusoidalInOut: '0.37,0,0.63,1',\n    exponentialIn: '0.7,0,0.84,0',\n    exponentialOut: '0.16,1,0.3,1',\n    exponentialInOut: '0.87,0,0.13,1',\n    circularIn: '0.55,0,1,0.45',\n    circularOut: '0,0.55,0.45,1',\n    circularInOut: '0.85,0,0.15,1'\n};\nvar transformOriginKey = 'transform-origin';\nfunction buildPathString(el, kfShape, path) {\n    var shape = extend({}, el.shape);\n    extend(shape, kfShape);\n    el.buildPath(path, shape);\n    var svgPathBuilder = new SVGPathRebuilder();\n    svgPathBuilder.reset(getPathPrecision(el));\n    path.rebuildPath(svgPathBuilder, 1);\n    svgPathBuilder.generateStr();\n    return svgPathBuilder.getStr();\n}\nfunction setTransformOrigin(target, transform) {\n    var originX = transform.originX, originY = transform.originY;\n    if (originX || originY) {\n        target[transformOriginKey] = originX + \"px \" + originY + \"px\";\n    }\n}\nexport var ANIMATE_STYLE_MAP = {\n    fill: 'fill',\n    opacity: 'opacity',\n    lineWidth: 'stroke-width',\n    lineDashOffset: 'stroke-dashoffset'\n};\nfunction addAnimation(cssAnim, scope) {\n    var animationName = scope.zrId + '-ani-' + scope.cssAnimIdx++;\n    scope.cssAnims[animationName] = cssAnim;\n    return animationName;\n}\nfunction createCompoundPathCSSAnimation(el, attrs, scope) {\n    var paths = el.shape.paths;\n    var composedAnim = {};\n    var cssAnimationCfg;\n    var cssAnimationName;\n    each(paths, function (path) {\n        var subScope = createBrushScope(scope.zrId);\n        subScope.animation = true;\n        createCSSAnimation(path, {}, subScope, true);\n        var cssAnims = subScope.cssAnims;\n        var cssNodes = subScope.cssNodes;\n        var animNames = keys(cssAnims);\n        var len = animNames.length;\n        if (!len) {\n            return;\n        }\n        cssAnimationName = animNames[len - 1];\n        var lastAnim = cssAnims[cssAnimationName];\n        for (var percent in lastAnim) {\n            var kf = lastAnim[percent];\n            composedAnim[percent] = composedAnim[percent] || { d: '' };\n            composedAnim[percent].d += kf.d || '';\n        }\n        for (var className in cssNodes) {\n            var val = cssNodes[className].animation;\n            if (val.indexOf(cssAnimationName) >= 0) {\n                cssAnimationCfg = val;\n            }\n        }\n    });\n    if (!cssAnimationCfg) {\n        return;\n    }\n    attrs.d = false;\n    var animationName = addAnimation(composedAnim, scope);\n    return cssAnimationCfg.replace(cssAnimationName, animationName);\n}\nfunction getEasingFunc(easing) {\n    return isString(easing)\n        ? EASING_MAP[easing]\n            ? \"cubic-bezier(\" + EASING_MAP[easing] + \")\"\n            : createCubicEasingFunc(easing) ? easing : ''\n        : '';\n}\nexport function createCSSAnimation(el, attrs, scope, onlyShape) {\n    var animators = el.animators;\n    var len = animators.length;\n    var cssAnimations = [];\n    if (el instanceof CompoundPath) {\n        var animationCfg = createCompoundPathCSSAnimation(el, attrs, scope);\n        if (animationCfg) {\n            cssAnimations.push(animationCfg);\n        }\n        else if (!len) {\n            return;\n        }\n    }\n    else if (!len) {\n        return;\n    }\n    var groupAnimators = {};\n    for (var i = 0; i < len; i++) {\n        var animator = animators[i];\n        var cfgArr = [animator.getMaxTime() / 1000 + 's'];\n        var easing = getEasingFunc(animator.getClip().easing);\n        var delay = animator.getDelay();\n        if (easing) {\n            cfgArr.push(easing);\n        }\n        else {\n            cfgArr.push('linear');\n        }\n        if (delay) {\n            cfgArr.push(delay / 1000 + 's');\n        }\n        if (animator.getLoop()) {\n            cfgArr.push('infinite');\n        }\n        var cfg = cfgArr.join(' ');\n        groupAnimators[cfg] = groupAnimators[cfg] || [cfg, []];\n        groupAnimators[cfg][1].push(animator);\n    }\n    function createSingleCSSAnimation(groupAnimator) {\n        var animators = groupAnimator[1];\n        var len = animators.length;\n        var transformKfs = {};\n        var shapeKfs = {};\n        var finalKfs = {};\n        var animationTimingFunctionAttrName = 'animation-timing-function';\n        function saveAnimatorTrackToCssKfs(animator, cssKfs, toCssAttrName) {\n            var tracks = animator.getTracks();\n            var maxTime = animator.getMaxTime();\n            for (var k = 0; k < tracks.length; k++) {\n                var track = tracks[k];\n                if (track.needsAnimate()) {\n                    var kfs = track.keyframes;\n                    var attrName = track.propName;\n                    toCssAttrName && (attrName = toCssAttrName(attrName));\n                    if (attrName) {\n                        for (var i = 0; i < kfs.length; i++) {\n                            var kf = kfs[i];\n                            var percent = Math.round(kf.time / maxTime * 100) + '%';\n                            var kfEasing = getEasingFunc(kf.easing);\n                            var rawValue = kf.rawValue;\n                            if (isString(rawValue) || isNumber(rawValue)) {\n                                cssKfs[percent] = cssKfs[percent] || {};\n                                cssKfs[percent][attrName] = kf.rawValue;\n                                if (kfEasing) {\n                                    cssKfs[percent][animationTimingFunctionAttrName] = kfEasing;\n                                }\n                            }\n                        }\n                    }\n                }\n            }\n        }\n        for (var i = 0; i < len; i++) {\n            var animator = animators[i];\n            var targetProp = animator.targetName;\n            if (!targetProp) {\n                !onlyShape && saveAnimatorTrackToCssKfs(animator, transformKfs);\n            }\n            else if (targetProp === 'shape') {\n                saveAnimatorTrackToCssKfs(animator, shapeKfs);\n            }\n        }\n        for (var percent in transformKfs) {\n            var transform = {};\n            copyTransform(transform, el);\n            extend(transform, transformKfs[percent]);\n            var str = getSRTTransformString(transform);\n            var timingFunction = transformKfs[percent][animationTimingFunctionAttrName];\n            finalKfs[percent] = str ? {\n                transform: str\n            } : {};\n            setTransformOrigin(finalKfs[percent], transform);\n            if (timingFunction) {\n                finalKfs[percent][animationTimingFunctionAttrName] = timingFunction;\n            }\n        }\n        ;\n        var path;\n        var canAnimateShape = true;\n        for (var percent in shapeKfs) {\n            finalKfs[percent] = finalKfs[percent] || {};\n            var isFirst = !path;\n            var timingFunction = shapeKfs[percent][animationTimingFunctionAttrName];\n            if (isFirst) {\n                path = new PathProxy();\n            }\n            var len_1 = path.len();\n            path.reset();\n            finalKfs[percent].d = buildPathString(el, shapeKfs[percent], path);\n            var newLen = path.len();\n            if (!isFirst && len_1 !== newLen) {\n                canAnimateShape = false;\n                break;\n            }\n            if (timingFunction) {\n                finalKfs[percent][animationTimingFunctionAttrName] = timingFunction;\n            }\n        }\n        ;\n        if (!canAnimateShape) {\n            for (var percent in finalKfs) {\n                delete finalKfs[percent].d;\n            }\n        }\n        if (!onlyShape) {\n            for (var i = 0; i < len; i++) {\n                var animator = animators[i];\n                var targetProp = animator.targetName;\n                if (targetProp === 'style') {\n                    saveAnimatorTrackToCssKfs(animator, finalKfs, function (propName) { return ANIMATE_STYLE_MAP[propName]; });\n                }\n            }\n        }\n        var percents = keys(finalKfs);\n        var allTransformOriginSame = true;\n        var transformOrigin;\n        for (var i = 1; i < percents.length; i++) {\n            var p0 = percents[i - 1];\n            var p1 = percents[i];\n            if (finalKfs[p0][transformOriginKey] !== finalKfs[p1][transformOriginKey]) {\n                allTransformOriginSame = false;\n                break;\n            }\n            transformOrigin = finalKfs[p0][transformOriginKey];\n        }\n        if (allTransformOriginSame && transformOrigin) {\n            for (var percent in finalKfs) {\n                if (finalKfs[percent][transformOriginKey]) {\n                    delete finalKfs[percent][transformOriginKey];\n                }\n            }\n            attrs[transformOriginKey] = transformOrigin;\n        }\n        if (filter(percents, function (percent) { return keys(finalKfs[percent]).length > 0; }).length) {\n            var animationName = addAnimation(finalKfs, scope);\n            return animationName + \" \" + groupAnimator[0] + \" both\";\n        }\n    }\n    for (var key in groupAnimators) {\n        var animationCfg = createSingleCSSAnimation(groupAnimators[key]);\n        if (animationCfg) {\n            cssAnimations.push(animationCfg);\n        }\n    }\n    if (cssAnimations.length) {\n        var className = scope.zrId + '-cls-' + scope.cssClassIdx++;\n        scope.cssNodes['.' + className] = {\n            animation: cssAnimations.join(',')\n        };\n        attrs[\"class\"] = className;\n    }\n}\n","import { adjustTextY, getIdURL, getMatrixStr, getPathPrecision, getShadowKey, getSRTTransformString, hasShadow, isAroundZero, isGradient, isImagePattern, isLinearGradient, isPattern, isRadialGradient, normalizeColor, round4, TEXT_ALIGN_TO_ANCHOR } from './helper.js';\nimport Path from '../graphic/Path.js';\nimport ZRImage from '../graphic/Image.js';\nimport { getLineHeight } from '../contain/text.js';\nimport TSpan from '../graphic/TSpan.js';\nimport SVGPathRebuilder from './SVGPathRebuilder.js';\nimport mapStyleToAttrs from './mapStyleToAttrs.js';\nimport { createVNode, vNodeToString } from './core.js';\nimport { assert, clone, isFunction, isString, logError, map, retrieve2 } from '../core/util.js';\nimport { createOrUpdateImage } from '../graphic/helper/image.js';\nimport { createCSSAnimation } from './cssAnimation.js';\nimport { hasSeparateFont, parseFontSize } from '../graphic/Text.js';\nimport { DEFAULT_FONT, DEFAULT_FONT_FAMILY } from '../core/platform.js';\nvar round = Math.round;\nfunction isImageLike(val) {\n    return val && isString(val.src);\n}\nfunction isCanvasLike(val) {\n    return val && isFunction(val.toDataURL);\n}\nfunction setStyleAttrs(attrs, style, el, scope) {\n    mapStyleToAttrs(function (key, val) {\n        var isFillStroke = key === 'fill' || key === 'stroke';\n        if (isFillStroke && isGradient(val)) {\n            setGradient(style, attrs, key, scope);\n        }\n        else if (isFillStroke && isPattern(val)) {\n            setPattern(el, attrs, key, scope);\n        }\n        else {\n            attrs[key] = val;\n        }\n    }, style, el, false);\n    setShadow(el, attrs, scope);\n}\nfunction noRotateScale(m) {\n    return isAroundZero(m[0] - 1)\n        && isAroundZero(m[1])\n        && isAroundZero(m[2])\n        && isAroundZero(m[3] - 1);\n}\nfunction noTranslate(m) {\n    return isAroundZero(m[4]) && isAroundZero(m[5]);\n}\nfunction setTransform(attrs, m, compress) {\n    if (m && !(noTranslate(m) && noRotateScale(m))) {\n        var mul = compress ? 10 : 1e4;\n        attrs.transform = noRotateScale(m)\n            ? \"translate(\" + round(m[4] * mul) / mul + \" \" + round(m[5] * mul) / mul + \")\" : getMatrixStr(m);\n    }\n}\nfunction convertPolyShape(shape, attrs, mul) {\n    var points = shape.points;\n    var strArr = [];\n    for (var i = 0; i < points.length; i++) {\n        strArr.push(round(points[i][0] * mul) / mul);\n        strArr.push(round(points[i][1] * mul) / mul);\n    }\n    attrs.points = strArr.join(' ');\n}\nfunction validatePolyShape(shape) {\n    return !shape.smooth;\n}\nfunction createAttrsConvert(desc) {\n    var normalizedDesc = map(desc, function (item) {\n        return (typeof item === 'string' ? [item, item] : item);\n    });\n    return function (shape, attrs, mul) {\n        for (var i = 0; i < normalizedDesc.length; i++) {\n            var item = normalizedDesc[i];\n            var val = shape[item[0]];\n            if (val != null) {\n                attrs[item[1]] = round(val * mul) / mul;\n            }\n        }\n    };\n}\nvar buitinShapesDef = {\n    circle: [createAttrsConvert(['cx', 'cy', 'r'])],\n    polyline: [convertPolyShape, validatePolyShape],\n    polygon: [convertPolyShape, validatePolyShape]\n};\nfunction hasShapeAnimation(el) {\n    var animators = el.animators;\n    for (var i = 0; i < animators.length; i++) {\n        if (animators[i].targetName === 'shape') {\n            return true;\n        }\n    }\n    return false;\n}\nexport function brushSVGPath(el, scope) {\n    var style = el.style;\n    var shape = el.shape;\n    var builtinShpDef = buitinShapesDef[el.type];\n    var attrs = {};\n    var needsAnimate = scope.animation;\n    var svgElType = 'path';\n    var strokePercent = el.style.strokePercent;\n    var precision = (scope.compress && getPathPrecision(el)) || 4;\n    if (builtinShpDef\n        && !scope.willUpdate\n        && !(builtinShpDef[1] && !builtinShpDef[1](shape))\n        && !(needsAnimate && hasShapeAnimation(el))\n        && !(strokePercent < 1)) {\n        svgElType = el.type;\n        var mul = Math.pow(10, precision);\n        builtinShpDef[0](shape, attrs, mul);\n    }\n    else {\n        if (!el.path) {\n            el.createPathProxy();\n        }\n        var path = el.path;\n        if (el.shapeChanged()) {\n            path.beginPath();\n            el.buildPath(path, el.shape);\n            el.pathUpdated();\n        }\n        var pathVersion = path.getVersion();\n        var elExt = el;\n        var svgPathBuilder = elExt.__svgPathBuilder;\n        if (elExt.__svgPathVersion !== pathVersion\n            || !svgPathBuilder\n            || strokePercent !== elExt.__svgPathStrokePercent) {\n            if (!svgPathBuilder) {\n                svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder();\n            }\n            svgPathBuilder.reset(precision);\n            path.rebuildPath(svgPathBuilder, strokePercent);\n            svgPathBuilder.generateStr();\n            elExt.__svgPathVersion = pathVersion;\n            elExt.__svgPathStrokePercent = strokePercent;\n        }\n        attrs.d = svgPathBuilder.getStr();\n    }\n    setTransform(attrs, el.transform);\n    setStyleAttrs(attrs, style, el, scope);\n    scope.animation && createCSSAnimation(el, attrs, scope);\n    return createVNode(svgElType, el.id + '', attrs);\n}\nexport function brushSVGImage(el, scope) {\n    var style = el.style;\n    var image = style.image;\n    if (image && !isString(image)) {\n        if (isImageLike(image)) {\n            image = image.src;\n        }\n        else if (isCanvasLike(image)) {\n            image = image.toDataURL();\n        }\n    }\n    if (!image) {\n        return;\n    }\n    var x = style.x || 0;\n    var y = style.y || 0;\n    var dw = style.width;\n    var dh = style.height;\n    var attrs = {\n        href: image,\n        width: dw,\n        height: dh\n    };\n    if (x) {\n        attrs.x = x;\n    }\n    if (y) {\n        attrs.y = y;\n    }\n    setTransform(attrs, el.transform);\n    setStyleAttrs(attrs, style, el, scope);\n    scope.animation && createCSSAnimation(el, attrs, scope);\n    return createVNode('image', el.id + '', attrs);\n}\n;\nexport function brushSVGTSpan(el, scope) {\n    var style = el.style;\n    var text = style.text;\n    text != null && (text += '');\n    if (!text || isNaN(style.x) || isNaN(style.y)) {\n        return;\n    }\n    var font = style.font || DEFAULT_FONT;\n    var x = style.x || 0;\n    var y = adjustTextY(style.y || 0, getLineHeight(font), style.textBaseline);\n    var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\n        || style.textAlign;\n    var attrs = {\n        'dominant-baseline': 'central',\n        'text-anchor': textAlign\n    };\n    if (hasSeparateFont(style)) {\n        var separatedFontStr = '';\n        var fontStyle = style.fontStyle;\n        var fontSize = parseFontSize(style.fontSize);\n        if (!parseFloat(fontSize)) {\n            return;\n        }\n        var fontFamily = style.fontFamily || DEFAULT_FONT_FAMILY;\n        var fontWeight = style.fontWeight;\n        separatedFontStr += \"font-size:\" + fontSize + \";font-family:\" + fontFamily + \";\";\n        if (fontStyle && fontStyle !== 'normal') {\n            separatedFontStr += \"font-style:\" + fontStyle + \";\";\n        }\n        if (fontWeight && fontWeight !== 'normal') {\n            separatedFontStr += \"font-weight:\" + fontWeight + \";\";\n        }\n        attrs.style = separatedFontStr;\n    }\n    else {\n        attrs.style = \"font: \" + font;\n    }\n    if (text.match(/\\s/)) {\n        attrs['xml:space'] = 'preserve';\n    }\n    if (x) {\n        attrs.x = x;\n    }\n    if (y) {\n        attrs.y = y;\n    }\n    setTransform(attrs, el.transform);\n    setStyleAttrs(attrs, style, el, scope);\n    scope.animation && createCSSAnimation(el, attrs, scope);\n    return createVNode('text', el.id + '', attrs, undefined, text);\n}\nexport function brush(el, scope) {\n    if (el instanceof Path) {\n        return brushSVGPath(el, scope);\n    }\n    else if (el instanceof ZRImage) {\n        return brushSVGImage(el, scope);\n    }\n    else if (el instanceof TSpan) {\n        return brushSVGTSpan(el, scope);\n    }\n}\nfunction setShadow(el, attrs, scope) {\n    var style = el.style;\n    if (hasShadow(style)) {\n        var shadowKey = getShadowKey(el);\n        var shadowCache = scope.shadowCache;\n        var shadowId = shadowCache[shadowKey];\n        if (!shadowId) {\n            var globalScale = el.getGlobalScale();\n            var scaleX = globalScale[0];\n            var scaleY = globalScale[1];\n            if (!scaleX || !scaleY) {\n                return;\n            }\n            var offsetX = style.shadowOffsetX || 0;\n            var offsetY = style.shadowOffsetY || 0;\n            var blur_1 = style.shadowBlur;\n            var _a = normalizeColor(style.shadowColor), opacity = _a.opacity, color = _a.color;\n            var stdDx = blur_1 / 2 / scaleX;\n            var stdDy = blur_1 / 2 / scaleY;\n            var stdDeviation = stdDx + ' ' + stdDy;\n            shadowId = scope.zrId + '-s' + scope.shadowIdx++;\n            scope.defs[shadowId] = createVNode('filter', shadowId, {\n                'id': shadowId,\n                'x': '-100%',\n                'y': '-100%',\n                'width': '300%',\n                'height': '300%'\n            }, [\n                createVNode('feDropShadow', '', {\n                    'dx': offsetX / scaleX,\n                    'dy': offsetY / scaleY,\n                    'stdDeviation': stdDeviation,\n                    'flood-color': color,\n                    'flood-opacity': opacity\n                })\n            ]);\n            shadowCache[shadowKey] = shadowId;\n        }\n        attrs.filter = getIdURL(shadowId);\n    }\n}\nfunction setGradient(style, attrs, target, scope) {\n    var val = style[target];\n    var gradientTag;\n    var gradientAttrs = {\n        'gradientUnits': val.global\n            ? 'userSpaceOnUse'\n            : 'objectBoundingBox'\n    };\n    if (isLinearGradient(val)) {\n        gradientTag = 'linearGradient';\n        gradientAttrs.x1 = val.x;\n        gradientAttrs.y1 = val.y;\n        gradientAttrs.x2 = val.x2;\n        gradientAttrs.y2 = val.y2;\n    }\n    else if (isRadialGradient(val)) {\n        gradientTag = 'radialGradient';\n        gradientAttrs.cx = retrieve2(val.x, 0.5);\n        gradientAttrs.cy = retrieve2(val.y, 0.5);\n        gradientAttrs.r = retrieve2(val.r, 0.5);\n    }\n    else {\n        if (process.env.NODE_ENV !== 'production') {\n            logError('Illegal gradient type.');\n        }\n        return;\n    }\n    var colors = val.colorStops;\n    var colorStops = [];\n    for (var i = 0, len = colors.length; i < len; ++i) {\n        var offset = round4(colors[i].offset) * 100 + '%';\n        var stopColor = colors[i].color;\n        var _a = normalizeColor(stopColor), color = _a.color, opacity = _a.opacity;\n        var stopsAttrs = {\n            'offset': offset\n        };\n        stopsAttrs['stop-color'] = color;\n        if (opacity < 1) {\n            stopsAttrs['stop-opacity'] = opacity;\n        }\n        colorStops.push(createVNode('stop', i + '', stopsAttrs));\n    }\n    var gradientVNode = createVNode(gradientTag, '', gradientAttrs, colorStops);\n    var gradientKey = vNodeToString(gradientVNode);\n    var gradientCache = scope.gradientCache;\n    var gradientId = gradientCache[gradientKey];\n    if (!gradientId) {\n        gradientId = scope.zrId + '-g' + scope.gradientIdx++;\n        gradientCache[gradientKey] = gradientId;\n        gradientAttrs.id = gradientId;\n        scope.defs[gradientId] = createVNode(gradientTag, gradientId, gradientAttrs, colorStops);\n    }\n    attrs[target] = getIdURL(gradientId);\n}\nfunction setPattern(el, attrs, target, scope) {\n    var val = el.style[target];\n    var patternAttrs = {\n        'patternUnits': 'userSpaceOnUse'\n    };\n    var child;\n    if (isImagePattern(val)) {\n        var imageWidth_1 = val.imageWidth;\n        var imageHeight_1 = val.imageHeight;\n        var imageSrc = void 0;\n        var patternImage = val.image;\n        if (isString(patternImage)) {\n            imageSrc = patternImage;\n        }\n        else if (isImageLike(patternImage)) {\n            imageSrc = patternImage.src;\n        }\n        else if (isCanvasLike(patternImage)) {\n            imageSrc = patternImage.toDataURL();\n        }\n        if (typeof Image === 'undefined') {\n            var errMsg = 'Image width/height must been given explictly in svg-ssr renderer.';\n            assert(imageWidth_1, errMsg);\n            assert(imageHeight_1, errMsg);\n        }\n        else if (imageWidth_1 == null || imageHeight_1 == null) {\n            var setSizeToVNode_1 = function (vNode, img) {\n                if (vNode) {\n                    var svgEl = vNode.elm;\n                    var width = (vNode.attrs.width = imageWidth_1 || img.width);\n                    var height = (vNode.attrs.height = imageHeight_1 || img.height);\n                    if (svgEl) {\n                        svgEl.setAttribute('width', width);\n                        svgEl.setAttribute('height', height);\n                    }\n                }\n            };\n            var createdImage = createOrUpdateImage(imageSrc, null, el, function (img) {\n                setSizeToVNode_1(patternVNode, img);\n                setSizeToVNode_1(child, img);\n            });\n            if (createdImage && createdImage.width && createdImage.height) {\n                imageWidth_1 = imageWidth_1 || createdImage.width;\n                imageHeight_1 = imageHeight_1 || createdImage.height;\n            }\n        }\n        child = createVNode('image', 'img', {\n            href: imageSrc,\n            width: imageWidth_1,\n            height: imageHeight_1\n        });\n        patternAttrs.width = imageWidth_1;\n        patternAttrs.height = imageHeight_1;\n    }\n    else if (val.svgElement) {\n        child = clone(val.svgElement);\n        patternAttrs.width = val.svgWidth;\n        patternAttrs.height = val.svgHeight;\n    }\n    if (!child) {\n        return;\n    }\n    patternAttrs.patternTransform = getSRTTransformString(val);\n    var patternVNode = createVNode('pattern', '', patternAttrs, [child]);\n    var patternKey = vNodeToString(patternVNode);\n    var patternCache = scope.patternCache;\n    var patternId = patternCache[patternKey];\n    if (!patternId) {\n        patternId = scope.zrId + '-p' + scope.patternIdx++;\n        patternCache[patternKey] = patternId;\n        patternAttrs.id = patternId;\n        patternVNode = scope.defs[patternId] = createVNode('pattern', patternId, patternAttrs, [child]);\n    }\n    attrs[target] = getIdURL(patternId);\n}\nexport function setClipPath(clipPath, attrs, scope) {\n    var clipPathCache = scope.clipPathCache, defs = scope.defs;\n    var clipPathId = clipPathCache[clipPath.id];\n    if (!clipPathId) {\n        clipPathId = scope.zrId + '-c' + scope.clipPathIdx++;\n        var clipPathAttrs = {\n            id: clipPathId\n        };\n        clipPathCache[clipPath.id] = clipPathId;\n        defs[clipPathId] = createVNode('clipPath', clipPathId, clipPathAttrs, [brushSVGPath(clipPath, scope)]);\n    }\n    attrs['clip-path'] = getIdURL(clipPathId);\n}\n","export function createTextNode(text) {\n    return document.createTextNode(text);\n}\nexport function createComment(text) {\n    return document.createComment(text);\n}\nexport function insertBefore(parentNode, newNode, referenceNode) {\n    parentNode.insertBefore(newNode, referenceNode);\n}\nexport function removeChild(node, child) {\n    node.removeChild(child);\n}\nexport function appendChild(node, child) {\n    node.appendChild(child);\n}\nexport function parentNode(node) {\n    return node.parentNode;\n}\nexport function nextSibling(node) {\n    return node.nextSibling;\n}\nexport function tagName(elm) {\n    return elm.tagName;\n}\nexport function setTextContent(node, text) {\n    node.textContent = text;\n}\nexport function getTextContent(node) {\n    return node.textContent;\n}\nexport function isElement(node) {\n    return node.nodeType === 1;\n}\nexport function isText(node) {\n    return node.nodeType === 3;\n}\nexport function isComment(node) {\n    return node.nodeType === 8;\n}\n","import { isArray, isObject } from '../core/util.js';\nimport { createElement, createVNode, XMLNS, XML_NAMESPACE, XLINKNS } from './core.js';\nimport * as api from './domapi.js';\nvar colonChar = 58;\nvar xChar = 120;\nvar emptyNode = createVNode('', '');\nfunction isUndef(s) {\n    return s === undefined;\n}\nfunction isDef(s) {\n    return s !== undefined;\n}\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n    var map = {};\n    for (var i = beginIdx; i <= endIdx; ++i) {\n        var key = children[i].key;\n        if (key !== undefined) {\n            if (process.env.NODE_ENV !== 'production') {\n                if (map[key] != null) {\n                    console.error(\"Duplicate key \" + key);\n                }\n            }\n            map[key] = i;\n        }\n    }\n    return map;\n}\nfunction sameVnode(vnode1, vnode2) {\n    var isSameKey = vnode1.key === vnode2.key;\n    var isSameTag = vnode1.tag === vnode2.tag;\n    return isSameTag && isSameKey;\n}\nfunction createElm(vnode) {\n    var i;\n    var children = vnode.children;\n    var tag = vnode.tag;\n    if (isDef(tag)) {\n        var elm = (vnode.elm = createElement(tag));\n        updateAttrs(emptyNode, vnode);\n        if (isArray(children)) {\n            for (i = 0; i < children.length; ++i) {\n                var ch = children[i];\n                if (ch != null) {\n                    api.appendChild(elm, createElm(ch));\n                }\n            }\n        }\n        else if (isDef(vnode.text) && !isObject(vnode.text)) {\n            api.appendChild(elm, api.createTextNode(vnode.text));\n        }\n    }\n    else {\n        vnode.elm = api.createTextNode(vnode.text);\n    }\n    return vnode.elm;\n}\nfunction addVnodes(parentElm, before, vnodes, startIdx, endIdx) {\n    for (; startIdx <= endIdx; ++startIdx) {\n        var ch = vnodes[startIdx];\n        if (ch != null) {\n            api.insertBefore(parentElm, createElm(ch), before);\n        }\n    }\n}\nfunction removeVnodes(parentElm, vnodes, startIdx, endIdx) {\n    for (; startIdx <= endIdx; ++startIdx) {\n        var ch = vnodes[startIdx];\n        if (ch != null) {\n            if (isDef(ch.tag)) {\n                var parent_1 = api.parentNode(ch.elm);\n                api.removeChild(parent_1, ch.elm);\n            }\n            else {\n                api.removeChild(parentElm, ch.elm);\n            }\n        }\n    }\n}\nexport function updateAttrs(oldVnode, vnode) {\n    var key;\n    var elm = vnode.elm;\n    var oldAttrs = oldVnode && oldVnode.attrs || {};\n    var attrs = vnode.attrs || {};\n    if (oldAttrs === attrs) {\n        return;\n    }\n    for (key in attrs) {\n        var cur = attrs[key];\n        var old = oldAttrs[key];\n        if (old !== cur) {\n            if (cur === true) {\n                elm.setAttribute(key, '');\n            }\n            else if (cur === false) {\n                elm.removeAttribute(key);\n            }\n            else {\n                if (key.charCodeAt(0) !== xChar) {\n                    elm.setAttribute(key, cur);\n                }\n                else if (key === 'xmlns:xlink' || key === 'xmlns') {\n                    elm.setAttributeNS(XMLNS, key, cur);\n                }\n                else if (key.charCodeAt(3) === colonChar) {\n                    elm.setAttributeNS(XML_NAMESPACE, key, cur);\n                }\n                else if (key.charCodeAt(5) === colonChar) {\n                    elm.setAttributeNS(XLINKNS, key, cur);\n                }\n                else {\n                    elm.setAttribute(key, cur);\n                }\n            }\n        }\n    }\n    for (key in oldAttrs) {\n        if (!(key in attrs)) {\n            elm.removeAttribute(key);\n        }\n    }\n}\nfunction updateChildren(parentElm, oldCh, newCh) {\n    var oldStartIdx = 0;\n    var newStartIdx = 0;\n    var oldEndIdx = oldCh.length - 1;\n    var oldStartVnode = oldCh[0];\n    var oldEndVnode = oldCh[oldEndIdx];\n    var newEndIdx = newCh.length - 1;\n    var newStartVnode = newCh[0];\n    var newEndVnode = newCh[newEndIdx];\n    var oldKeyToIdx;\n    var idxInOld;\n    var elmToMove;\n    var before;\n    while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n        if (oldStartVnode == null) {\n            oldStartVnode = oldCh[++oldStartIdx];\n        }\n        else if (oldEndVnode == null) {\n            oldEndVnode = oldCh[--oldEndIdx];\n        }\n        else if (newStartVnode == null) {\n            newStartVnode = newCh[++newStartIdx];\n        }\n        else if (newEndVnode == null) {\n            newEndVnode = newCh[--newEndIdx];\n        }\n        else if (sameVnode(oldStartVnode, newStartVnode)) {\n            patchVnode(oldStartVnode, newStartVnode);\n            oldStartVnode = oldCh[++oldStartIdx];\n            newStartVnode = newCh[++newStartIdx];\n        }\n        else if (sameVnode(oldEndVnode, newEndVnode)) {\n            patchVnode(oldEndVnode, newEndVnode);\n            oldEndVnode = oldCh[--oldEndIdx];\n            newEndVnode = newCh[--newEndIdx];\n        }\n        else if (sameVnode(oldStartVnode, newEndVnode)) {\n            patchVnode(oldStartVnode, newEndVnode);\n            api.insertBefore(parentElm, oldStartVnode.elm, api.nextSibling(oldEndVnode.elm));\n            oldStartVnode = oldCh[++oldStartIdx];\n            newEndVnode = newCh[--newEndIdx];\n        }\n        else if (sameVnode(oldEndVnode, newStartVnode)) {\n            patchVnode(oldEndVnode, newStartVnode);\n            api.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n            oldEndVnode = oldCh[--oldEndIdx];\n            newStartVnode = newCh[++newStartIdx];\n        }\n        else {\n            if (isUndef(oldKeyToIdx)) {\n                oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n            }\n            idxInOld = oldKeyToIdx[newStartVnode.key];\n            if (isUndef(idxInOld)) {\n                api.insertBefore(parentElm, createElm(newStartVnode), oldStartVnode.elm);\n            }\n            else {\n                elmToMove = oldCh[idxInOld];\n                if (elmToMove.tag !== newStartVnode.tag) {\n                    api.insertBefore(parentElm, createElm(newStartVnode), oldStartVnode.elm);\n                }\n                else {\n                    patchVnode(elmToMove, newStartVnode);\n                    oldCh[idxInOld] = undefined;\n                    api.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm);\n                }\n            }\n            newStartVnode = newCh[++newStartIdx];\n        }\n    }\n    if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) {\n        if (oldStartIdx > oldEndIdx) {\n            before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].elm;\n            addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx);\n        }\n        else {\n            removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n        }\n    }\n}\nfunction patchVnode(oldVnode, vnode) {\n    var elm = (vnode.elm = oldVnode.elm);\n    var oldCh = oldVnode.children;\n    var ch = vnode.children;\n    if (oldVnode === vnode) {\n        return;\n    }\n    updateAttrs(oldVnode, vnode);\n    if (isUndef(vnode.text)) {\n        if (isDef(oldCh) && isDef(ch)) {\n            if (oldCh !== ch) {\n                updateChildren(elm, oldCh, ch);\n            }\n        }\n        else if (isDef(ch)) {\n            if (isDef(oldVnode.text)) {\n                api.setTextContent(elm, '');\n            }\n            addVnodes(elm, null, ch, 0, ch.length - 1);\n        }\n        else if (isDef(oldCh)) {\n            removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n        }\n        else if (isDef(oldVnode.text)) {\n            api.setTextContent(elm, '');\n        }\n    }\n    else if (oldVnode.text !== vnode.text) {\n        if (isDef(oldCh)) {\n            removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n        }\n        api.setTextContent(elm, vnode.text);\n    }\n}\nexport default function patch(oldVnode, vnode) {\n    if (sameVnode(oldVnode, vnode)) {\n        patchVnode(oldVnode, vnode);\n    }\n    else {\n        var elm = oldVnode.elm;\n        var parent_2 = api.parentNode(elm);\n        createElm(vnode);\n        if (parent_2 !== null) {\n            api.insertBefore(parent_2, vnode.elm, api.nextSibling(elm));\n            removeVnodes(parent_2, [oldVnode], 0, 0);\n        }\n    }\n    return vnode;\n}\n","import { brush, setClipPath } from './graphic.js';\nimport { createElement, createVNode, vNodeToString, getCssString, createBrushScope, createSVGVNode } from './core.js';\nimport { normalizeColor, encodeBase64 } from './helper.js';\nimport { extend, keys, logError, map, retrieve2 } from '../core/util.js';\nimport patch, { updateAttrs } from './patch.js';\nimport { getSize } from '../canvas/helper.js';\nvar svgId = 0;\nvar SVGPainter = (function () {\n    function SVGPainter(root, storage, opts) {\n        this.type = 'svg';\n        this.refreshHover = createMethodNotSupport('refreshHover');\n        this.configLayer = createMethodNotSupport('configLayer');\n        this.storage = storage;\n        this._opts = opts = extend({}, opts);\n        this.root = root;\n        this._id = 'zr' + svgId++;\n        this._oldVNode = createSVGVNode(opts.width, opts.height);\n        if (root && !opts.ssr) {\n            var viewport = this._viewport = document.createElement('div');\n            viewport.style.cssText = 'position:relative;overflow:hidden';\n            var svgDom = this._svgDom = this._oldVNode.elm = createElement('svg');\n            updateAttrs(null, this._oldVNode);\n            viewport.appendChild(svgDom);\n            root.appendChild(viewport);\n        }\n        this.resize(opts.width, opts.height);\n    }\n    SVGPainter.prototype.getType = function () {\n        return this.type;\n    };\n    SVGPainter.prototype.getViewportRoot = function () {\n        return this._viewport;\n    };\n    SVGPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    SVGPainter.prototype.getSvgDom = function () {\n        return this._svgDom;\n    };\n    SVGPainter.prototype.refresh = function () {\n        if (this.root) {\n            var vnode = this.renderToVNode({\n                willUpdate: true\n            });\n            vnode.attrs.style = 'position:absolute;left:0;top:0;user-select:none';\n            patch(this._oldVNode, vnode);\n            this._oldVNode = vnode;\n        }\n    };\n    SVGPainter.prototype.renderOneToVNode = function (el) {\n        return brush(el, createBrushScope(this._id));\n    };\n    SVGPainter.prototype.renderToVNode = function (opts) {\n        opts = opts || {};\n        var list = this.storage.getDisplayList(true);\n        var bgColor = this._backgroundColor;\n        var width = this._width;\n        var height = this._height;\n        var scope = createBrushScope(this._id);\n        scope.animation = opts.animation;\n        scope.willUpdate = opts.willUpdate;\n        scope.compress = opts.compress;\n        var children = [];\n        if (bgColor && bgColor !== 'none') {\n            var _a = normalizeColor(bgColor), color = _a.color, opacity = _a.opacity;\n            this._bgVNode = createVNode('rect', 'bg', {\n                width: width,\n                height: height,\n                x: '0',\n                y: '0',\n                id: '0',\n                fill: color,\n                'fill-opacity': opacity\n            });\n            children.push(this._bgVNode);\n        }\n        else {\n            this._bgVNode = null;\n        }\n        var mainVNode = !opts.compress\n            ? (this._mainVNode = createVNode('g', 'main', {}, [])) : null;\n        this._paintList(list, scope, mainVNode ? mainVNode.children : children);\n        mainVNode && children.push(mainVNode);\n        var defs = map(keys(scope.defs), function (id) { return scope.defs[id]; });\n        if (defs.length) {\n            children.push(createVNode('defs', 'defs', {}, defs));\n        }\n        if (opts.animation) {\n            var animationCssStr = getCssString(scope.cssNodes, scope.cssAnims, { newline: true });\n            if (animationCssStr) {\n                var styleNode = createVNode('style', 'stl', {}, [], animationCssStr);\n                children.push(styleNode);\n            }\n        }\n        return createSVGVNode(width, height, children, opts.useViewBox);\n    };\n    SVGPainter.prototype.renderToString = function (opts) {\n        opts = opts || {};\n        return vNodeToString(this.renderToVNode({\n            animation: retrieve2(opts.cssAnimation, true),\n            willUpdate: false,\n            compress: true,\n            useViewBox: retrieve2(opts.useViewBox, true)\n        }), { newline: true });\n    };\n    SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        this._backgroundColor = backgroundColor;\n        var bgVNode = this._bgVNode;\n        if (bgVNode && bgVNode.elm) {\n            var _a = normalizeColor(backgroundColor), color = _a.color, opacity = _a.opacity;\n            bgVNode.elm.setAttribute('fill', color);\n            if (opacity < 1) {\n                bgVNode.elm.setAttribute('fill-opacity', opacity);\n            }\n        }\n    };\n    SVGPainter.prototype.getSvgRoot = function () {\n        return this._mainVNode && this._mainVNode.elm;\n    };\n    SVGPainter.prototype._paintList = function (list, scope, out) {\n        var listLen = list.length;\n        var clipPathsGroupsStack = [];\n        var clipPathsGroupsStackDepth = 0;\n        var currentClipPathGroup;\n        var prevClipPaths;\n        var clipGroupNodeIdx = 0;\n        for (var i = 0; i < listLen; i++) {\n            var displayable = list[i];\n            if (!displayable.invisible) {\n                var clipPaths = displayable.__clipPaths;\n                var len = clipPaths && clipPaths.length || 0;\n                var prevLen = prevClipPaths && prevClipPaths.length || 0;\n                var lca = void 0;\n                for (lca = Math.max(len - 1, prevLen - 1); lca >= 0; lca--) {\n                    if (clipPaths && prevClipPaths\n                        && clipPaths[lca] === prevClipPaths[lca]) {\n                        break;\n                    }\n                }\n                for (var i_1 = prevLen - 1; i_1 > lca; i_1--) {\n                    clipPathsGroupsStackDepth--;\n                    currentClipPathGroup = clipPathsGroupsStack[clipPathsGroupsStackDepth - 1];\n                }\n                for (var i_2 = lca + 1; i_2 < len; i_2++) {\n                    var groupAttrs = {};\n                    setClipPath(clipPaths[i_2], groupAttrs, scope);\n                    var g = createVNode('g', 'clip-g-' + clipGroupNodeIdx++, groupAttrs, []);\n                    (currentClipPathGroup ? currentClipPathGroup.children : out).push(g);\n                    clipPathsGroupsStack[clipPathsGroupsStackDepth++] = g;\n                    currentClipPathGroup = g;\n                }\n                prevClipPaths = clipPaths;\n                var ret = brush(displayable, scope);\n                if (ret) {\n                    (currentClipPathGroup ? currentClipPathGroup.children : out).push(ret);\n                }\n            }\n        }\n    };\n    SVGPainter.prototype.resize = function (width, height) {\n        var opts = this._opts;\n        var root = this.root;\n        var viewport = this._viewport;\n        width != null && (opts.width = width);\n        height != null && (opts.height = height);\n        if (root && viewport) {\n            viewport.style.display = 'none';\n            width = getSize(root, 0, opts);\n            height = getSize(root, 1, opts);\n            viewport.style.display = '';\n        }\n        if (this._width !== width || this._height !== height) {\n            this._width = width;\n            this._height = height;\n            if (viewport) {\n                var viewportStyle = viewport.style;\n                viewportStyle.width = width + 'px';\n                viewportStyle.height = height + 'px';\n            }\n            var svgDom = this._svgDom;\n            if (svgDom) {\n                svgDom.setAttribute('width', width);\n                svgDom.setAttribute('height', height);\n            }\n        }\n    };\n    SVGPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    SVGPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    SVGPainter.prototype.dispose = function () {\n        if (this.root) {\n            this.root.innerHTML = '';\n        }\n        this._svgDom =\n            this._viewport =\n                this.storage =\n                    this._oldVNode =\n                        this._bgVNode =\n                            this._mainVNode = null;\n    };\n    SVGPainter.prototype.clear = function () {\n        if (this._svgDom) {\n            this._svgDom.innerHTML = null;\n        }\n        this._oldVNode = null;\n    };\n    SVGPainter.prototype.toDataURL = function (base64) {\n        var str = encodeURIComponent(this.renderToString());\n        var prefix = 'data:image/svg+xml;';\n        if (base64) {\n            str = encodeBase64(str);\n            return str && prefix + 'base64,' + str;\n        }\n        return prefix + 'charset=UTF-8,' + str;\n    };\n    return SVGPainter;\n}());\nfunction createMethodNotSupport(method) {\n    return function () {\n        if (process.env.NODE_ENV !== 'production') {\n            logError('In SVG mode painter not support method \"' + method + '\"');\n        }\n    };\n}\nexport default SVGPainter;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport SVGPainter from 'zrender/lib/svg/Painter.js';\nexport function install(registers) {\n  registers.registerPainter('svg', SVGPainter);\n}","import { __extends } from \"tslib\";\nimport * as util from '../core/util.js';\nimport { devicePixelRatio } from '../config.js';\nimport Eventful from '../core/Eventful.js';\nimport { getCanvasGradient } from './helper.js';\nimport { createCanvasPattern } from './graphic.js';\nimport BoundingRect from '../core/BoundingRect.js';\nimport { REDRAW_BIT } from '../graphic/constants.js';\nimport { platformApi } from '../core/platform.js';\nfunction createDom(id, painter, dpr) {\n    var newDom = platformApi.createCanvas();\n    var width = painter.getWidth();\n    var height = painter.getHeight();\n    var newDomStyle = newDom.style;\n    if (newDomStyle) {\n        newDomStyle.position = 'absolute';\n        newDomStyle.left = '0';\n        newDomStyle.top = '0';\n        newDomStyle.width = width + 'px';\n        newDomStyle.height = height + 'px';\n        newDom.setAttribute('data-zr-dom-id', id);\n    }\n    newDom.width = width * dpr;\n    newDom.height = height * dpr;\n    return newDom;\n}\n;\nvar Layer = (function (_super) {\n    __extends(Layer, _super);\n    function Layer(id, painter, dpr) {\n        var _this = _super.call(this) || this;\n        _this.motionBlur = false;\n        _this.lastFrameAlpha = 0.7;\n        _this.dpr = 1;\n        _this.virtual = false;\n        _this.config = {};\n        _this.incremental = false;\n        _this.zlevel = 0;\n        _this.maxRepaintRectCount = 5;\n        _this.__dirty = true;\n        _this.__firstTimePaint = true;\n        _this.__used = false;\n        _this.__drawIndex = 0;\n        _this.__startIndex = 0;\n        _this.__endIndex = 0;\n        _this.__prevStartIndex = null;\n        _this.__prevEndIndex = null;\n        var dom;\n        dpr = dpr || devicePixelRatio;\n        if (typeof id === 'string') {\n            dom = createDom(id, painter, dpr);\n        }\n        else if (util.isObject(id)) {\n            dom = id;\n            id = dom.id;\n        }\n        _this.id = id;\n        _this.dom = dom;\n        var domStyle = dom.style;\n        if (domStyle) {\n            util.disableUserSelect(dom);\n            dom.onselectstart = function () { return false; };\n            domStyle.padding = '0';\n            domStyle.margin = '0';\n            domStyle.borderWidth = '0';\n        }\n        _this.painter = painter;\n        _this.dpr = dpr;\n        return _this;\n    }\n    Layer.prototype.getElementCount = function () {\n        return this.__endIndex - this.__startIndex;\n    };\n    Layer.prototype.afterBrush = function () {\n        this.__prevStartIndex = this.__startIndex;\n        this.__prevEndIndex = this.__endIndex;\n    };\n    Layer.prototype.initContext = function () {\n        this.ctx = this.dom.getContext('2d');\n        this.ctx.dpr = this.dpr;\n    };\n    Layer.prototype.setUnpainted = function () {\n        this.__firstTimePaint = true;\n    };\n    Layer.prototype.createBackBuffer = function () {\n        var dpr = this.dpr;\n        this.domBack = createDom('back-' + this.id, this.painter, dpr);\n        this.ctxBack = this.domBack.getContext('2d');\n        if (dpr !== 1) {\n            this.ctxBack.scale(dpr, dpr);\n        }\n    };\n    Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n        if (this.__firstTimePaint) {\n            this.__firstTimePaint = false;\n            return null;\n        }\n        var mergedRepaintRects = [];\n        var maxRepaintRectCount = this.maxRepaintRectCount;\n        var full = false;\n        var pendingRect = new BoundingRect(0, 0, 0, 0);\n        function addRectToMergePool(rect) {\n            if (!rect.isFinite() || rect.isZero()) {\n                return;\n            }\n            if (mergedRepaintRects.length === 0) {\n                var boundingRect = new BoundingRect(0, 0, 0, 0);\n                boundingRect.copy(rect);\n                mergedRepaintRects.push(boundingRect);\n            }\n            else {\n                var isMerged = false;\n                var minDeltaArea = Infinity;\n                var bestRectToMergeIdx = 0;\n                for (var i = 0; i < mergedRepaintRects.length; ++i) {\n                    var mergedRect = mergedRepaintRects[i];\n                    if (mergedRect.intersect(rect)) {\n                        var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n                        pendingRect_1.copy(mergedRect);\n                        pendingRect_1.union(rect);\n                        mergedRepaintRects[i] = pendingRect_1;\n                        isMerged = true;\n                        break;\n                    }\n                    else if (full) {\n                        pendingRect.copy(rect);\n                        pendingRect.union(mergedRect);\n                        var aArea = rect.width * rect.height;\n                        var bArea = mergedRect.width * mergedRect.height;\n                        var pendingArea = pendingRect.width * pendingRect.height;\n                        var deltaArea = pendingArea - aArea - bArea;\n                        if (deltaArea < minDeltaArea) {\n                            minDeltaArea = deltaArea;\n                            bestRectToMergeIdx = i;\n                        }\n                    }\n                }\n                if (full) {\n                    mergedRepaintRects[bestRectToMergeIdx].union(rect);\n                    isMerged = true;\n                }\n                if (!isMerged) {\n                    var boundingRect = new BoundingRect(0, 0, 0, 0);\n                    boundingRect.copy(rect);\n                    mergedRepaintRects.push(boundingRect);\n                }\n                if (!full) {\n                    full = mergedRepaintRects.length >= maxRepaintRectCount;\n                }\n            }\n        }\n        for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n            var el = displayList[i];\n            if (el) {\n                var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n                var prevRect = el.__isRendered && ((el.__dirty & REDRAW_BIT) || !shouldPaint)\n                    ? el.getPrevPaintRect()\n                    : null;\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n                var curRect = shouldPaint && ((el.__dirty & REDRAW_BIT) || !el.__isRendered)\n                    ? el.getPaintRect()\n                    : null;\n                if (curRect) {\n                    addRectToMergePool(curRect);\n                }\n            }\n        }\n        for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n            var el = prevList[i];\n            var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n            if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n                var prevRect = el.getPrevPaintRect();\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n            }\n        }\n        var hasIntersections;\n        do {\n            hasIntersections = false;\n            for (var i = 0; i < mergedRepaintRects.length;) {\n                if (mergedRepaintRects[i].isZero()) {\n                    mergedRepaintRects.splice(i, 1);\n                    continue;\n                }\n                for (var j = i + 1; j < mergedRepaintRects.length;) {\n                    if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n                        hasIntersections = true;\n                        mergedRepaintRects[i].union(mergedRepaintRects[j]);\n                        mergedRepaintRects.splice(j, 1);\n                    }\n                    else {\n                        j++;\n                    }\n                }\n                i++;\n            }\n        } while (hasIntersections);\n        this._paintRects = mergedRepaintRects;\n        return mergedRepaintRects;\n    };\n    Layer.prototype.debugGetPaintRects = function () {\n        return (this._paintRects || []).slice();\n    };\n    Layer.prototype.resize = function (width, height) {\n        var dpr = this.dpr;\n        var dom = this.dom;\n        var domStyle = dom.style;\n        var domBack = this.domBack;\n        if (domStyle) {\n            domStyle.width = width + 'px';\n            domStyle.height = height + 'px';\n        }\n        dom.width = width * dpr;\n        dom.height = height * dpr;\n        if (domBack) {\n            domBack.width = width * dpr;\n            domBack.height = height * dpr;\n            if (dpr !== 1) {\n                this.ctxBack.scale(dpr, dpr);\n            }\n        }\n    };\n    Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n        var dom = this.dom;\n        var ctx = this.ctx;\n        var width = dom.width;\n        var height = dom.height;\n        clearColor = clearColor || this.clearColor;\n        var haveMotionBLur = this.motionBlur && !clearAll;\n        var lastFrameAlpha = this.lastFrameAlpha;\n        var dpr = this.dpr;\n        var self = this;\n        if (haveMotionBLur) {\n            if (!this.domBack) {\n                this.createBackBuffer();\n            }\n            this.ctxBack.globalCompositeOperation = 'copy';\n            this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n        }\n        var domBack = this.domBack;\n        function doClear(x, y, width, height) {\n            ctx.clearRect(x, y, width, height);\n            if (clearColor && clearColor !== 'transparent') {\n                var clearColorGradientOrPattern = void 0;\n                if (util.isGradientObject(clearColor)) {\n                    clearColorGradientOrPattern = clearColor.__canvasGradient\n                        || getCanvasGradient(ctx, clearColor, {\n                            x: 0,\n                            y: 0,\n                            width: width,\n                            height: height\n                        });\n                    clearColor.__canvasGradient = clearColorGradientOrPattern;\n                }\n                else if (util.isImagePatternObject(clearColor)) {\n                    clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n                        dirty: function () {\n                            self.setUnpainted();\n                            self.__painter.refresh();\n                        }\n                    });\n                }\n                ctx.save();\n                ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n                ctx.fillRect(x, y, width, height);\n                ctx.restore();\n            }\n            if (haveMotionBLur) {\n                ctx.save();\n                ctx.globalAlpha = lastFrameAlpha;\n                ctx.drawImage(domBack, x, y, width, height);\n                ctx.restore();\n            }\n        }\n        ;\n        if (!repaintRects || haveMotionBLur) {\n            doClear(0, 0, width, height);\n        }\n        else if (repaintRects.length) {\n            util.each(repaintRects, function (rect) {\n                doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n            });\n        }\n    };\n    return Layer;\n}(Eventful));\nexport default Layer;\n","import { devicePixelRatio } from '../config.js';\nimport * as util from '../core/util.js';\nimport Layer from './Layer.js';\nimport requestAnimationFrame from '../animation/requestAnimationFrame.js';\nimport env from '../core/env.js';\nimport { brush, brushSingle } from './graphic.js';\nimport { REDRAW_BIT } from '../graphic/constants.js';\nimport { getSize } from './helper.js';\nvar HOVER_LAYER_ZLEVEL = 1e5;\nvar CANVAS_ZLEVEL = 314159;\nvar EL_AFTER_INCREMENTAL_INC = 0.01;\nvar INCREMENTAL_INC = 0.001;\nfunction isLayerValid(layer) {\n    if (!layer) {\n        return false;\n    }\n    if (layer.__builtin__) {\n        return true;\n    }\n    if (typeof (layer.resize) !== 'function'\n        || typeof (layer.refresh) !== 'function') {\n        return false;\n    }\n    return true;\n}\nfunction createRoot(width, height) {\n    var domRoot = document.createElement('div');\n    domRoot.style.cssText = [\n        'position:relative',\n        'width:' + width + 'px',\n        'height:' + height + 'px',\n        'padding:0',\n        'margin:0',\n        'border-width:0'\n    ].join(';') + ';';\n    return domRoot;\n}\nvar CanvasPainter = (function () {\n    function CanvasPainter(root, storage, opts, id) {\n        this.type = 'canvas';\n        this._zlevelList = [];\n        this._prevDisplayList = [];\n        this._layers = {};\n        this._layerConfig = {};\n        this._needsManuallyCompositing = false;\n        this.type = 'canvas';\n        var singleCanvas = !root.nodeName\n            || root.nodeName.toUpperCase() === 'CANVAS';\n        this._opts = opts = util.extend({}, opts || {});\n        this.dpr = opts.devicePixelRatio || devicePixelRatio;\n        this._singleCanvas = singleCanvas;\n        this.root = root;\n        var rootStyle = root.style;\n        if (rootStyle) {\n            util.disableUserSelect(root);\n            root.innerHTML = '';\n        }\n        this.storage = storage;\n        var zlevelList = this._zlevelList;\n        this._prevDisplayList = [];\n        var layers = this._layers;\n        if (!singleCanvas) {\n            this._width = getSize(root, 0, opts);\n            this._height = getSize(root, 1, opts);\n            var domRoot = this._domRoot = createRoot(this._width, this._height);\n            root.appendChild(domRoot);\n        }\n        else {\n            var rootCanvas = root;\n            var width = rootCanvas.width;\n            var height = rootCanvas.height;\n            if (opts.width != null) {\n                width = opts.width;\n            }\n            if (opts.height != null) {\n                height = opts.height;\n            }\n            this.dpr = opts.devicePixelRatio || 1;\n            rootCanvas.width = width * this.dpr;\n            rootCanvas.height = height * this.dpr;\n            this._width = width;\n            this._height = height;\n            var mainLayer = new Layer(rootCanvas, this, this.dpr);\n            mainLayer.__builtin__ = true;\n            mainLayer.initContext();\n            layers[CANVAS_ZLEVEL] = mainLayer;\n            mainLayer.zlevel = CANVAS_ZLEVEL;\n            zlevelList.push(CANVAS_ZLEVEL);\n            this._domRoot = root;\n        }\n    }\n    CanvasPainter.prototype.getType = function () {\n        return 'canvas';\n    };\n    CanvasPainter.prototype.isSingleCanvas = function () {\n        return this._singleCanvas;\n    };\n    CanvasPainter.prototype.getViewportRoot = function () {\n        return this._domRoot;\n    };\n    CanvasPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    CanvasPainter.prototype.refresh = function (paintAll) {\n        var list = this.storage.getDisplayList(true);\n        var prevList = this._prevDisplayList;\n        var zlevelList = this._zlevelList;\n        this._redrawId = Math.random();\n        this._paintList(list, prevList, paintAll, this._redrawId);\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__ && layer.refresh) {\n                var clearColor = i === 0 ? this._backgroundColor : null;\n                layer.refresh(clearColor);\n            }\n        }\n        if (this._opts.useDirtyRect) {\n            this._prevDisplayList = list.slice();\n        }\n        return this;\n    };\n    CanvasPainter.prototype.refreshHover = function () {\n        this._paintHoverList(this.storage.getDisplayList(false));\n    };\n    CanvasPainter.prototype._paintHoverList = function (list) {\n        var len = list.length;\n        var hoverLayer = this._hoverlayer;\n        hoverLayer && hoverLayer.clear();\n        if (!len) {\n            return;\n        }\n        var scope = {\n            inHover: true,\n            viewWidth: this._width,\n            viewHeight: this._height\n        };\n        var ctx;\n        for (var i = 0; i < len; i++) {\n            var el = list[i];\n            if (el.__inHover) {\n                if (!hoverLayer) {\n                    hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\n                }\n                if (!ctx) {\n                    ctx = hoverLayer.ctx;\n                    ctx.save();\n                }\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        if (ctx) {\n            ctx.restore();\n        }\n    };\n    CanvasPainter.prototype.getHoverLayer = function () {\n        return this.getLayer(HOVER_LAYER_ZLEVEL);\n    };\n    CanvasPainter.prototype.paintOne = function (ctx, el) {\n        brushSingle(ctx, el);\n    };\n    CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\n        if (this._redrawId !== redrawId) {\n            return;\n        }\n        paintAll = paintAll || false;\n        this._updateLayerStatus(list);\n        var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\n        if (this._needsManuallyCompositing) {\n            this._compositeManually();\n        }\n        if (needsRefreshHover) {\n            this._paintHoverList(list);\n        }\n        if (!finished) {\n            var self_1 = this;\n            requestAnimationFrame(function () {\n                self_1._paintList(list, prevList, paintAll, redrawId);\n            });\n        }\n        else {\n            this.eachLayer(function (layer) {\n                layer.afterBrush && layer.afterBrush();\n            });\n        }\n    };\n    CanvasPainter.prototype._compositeManually = function () {\n        var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\n        var width = this._domRoot.width;\n        var height = this._domRoot.height;\n        ctx.clearRect(0, 0, width, height);\n        this.eachBuiltinLayer(function (layer) {\n            if (layer.virtual) {\n                ctx.drawImage(layer.dom, 0, 0, width, height);\n            }\n        });\n    };\n    CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\n        var _this = this;\n        var layerList = [];\n        var useDirtyRect = this._opts.useDirtyRect;\n        for (var zi = 0; zi < this._zlevelList.length; zi++) {\n            var zlevel = this._zlevelList[zi];\n            var layer = this._layers[zlevel];\n            if (layer.__builtin__\n                && layer !== this._hoverlayer\n                && (layer.__dirty || paintAll)) {\n                layerList.push(layer);\n            }\n        }\n        var finished = true;\n        var needsRefreshHover = false;\n        var _loop_1 = function (k) {\n            var layer = layerList[k];\n            var ctx = layer.ctx;\n            var repaintRects = useDirtyRect\n                && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\n            var start = paintAll ? layer.__startIndex : layer.__drawIndex;\n            var useTimer = !paintAll && layer.incremental && Date.now;\n            var startTime = useTimer && Date.now();\n            var clearColor = layer.zlevel === this_1._zlevelList[0]\n                ? this_1._backgroundColor : null;\n            if (layer.__startIndex === layer.__endIndex) {\n                layer.clear(false, clearColor, repaintRects);\n            }\n            else if (start === layer.__startIndex) {\n                var firstEl = list[start];\n                if (!firstEl.incremental || !firstEl.notClear || paintAll) {\n                    layer.clear(false, clearColor, repaintRects);\n                }\n            }\n            if (start === -1) {\n                console.error('For some unknown reason. drawIndex is -1');\n                start = layer.__startIndex;\n            }\n            var i;\n            var repaint = function (repaintRect) {\n                var scope = {\n                    inHover: false,\n                    allClipped: false,\n                    prevEl: null,\n                    viewWidth: _this._width,\n                    viewHeight: _this._height\n                };\n                for (i = start; i < layer.__endIndex; i++) {\n                    var el = list[i];\n                    if (el.__inHover) {\n                        needsRefreshHover = true;\n                    }\n                    _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\n                    if (useTimer) {\n                        var dTime = Date.now() - startTime;\n                        if (dTime > 15) {\n                            break;\n                        }\n                    }\n                }\n                if (scope.prevElClipPaths) {\n                    ctx.restore();\n                }\n            };\n            if (repaintRects) {\n                if (repaintRects.length === 0) {\n                    i = layer.__endIndex;\n                }\n                else {\n                    var dpr = this_1.dpr;\n                    for (var r = 0; r < repaintRects.length; ++r) {\n                        var rect = repaintRects[r];\n                        ctx.save();\n                        ctx.beginPath();\n                        ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n                        ctx.clip();\n                        repaint(rect);\n                        ctx.restore();\n                    }\n                }\n            }\n            else {\n                ctx.save();\n                repaint();\n                ctx.restore();\n            }\n            layer.__drawIndex = i;\n            if (layer.__drawIndex < layer.__endIndex) {\n                finished = false;\n            }\n        };\n        var this_1 = this;\n        for (var k = 0; k < layerList.length; k++) {\n            _loop_1(k);\n        }\n        if (env.wxa) {\n            util.each(this._layers, function (layer) {\n                if (layer && layer.ctx && layer.ctx.draw) {\n                    layer.ctx.draw();\n                }\n            });\n        }\n        return {\n            finished: finished,\n            needsRefreshHover: needsRefreshHover\n        };\n    };\n    CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\n        var ctx = currentLayer.ctx;\n        if (useDirtyRect) {\n            var paintRect = el.getPaintRect();\n            if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\n                brush(ctx, el, scope, isLast);\n                el.setPrevPaintRect(paintRect);\n            }\n        }\n        else {\n            brush(ctx, el, scope, isLast);\n        }\n    };\n    CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\n        if (this._singleCanvas && !this._needsManuallyCompositing) {\n            zlevel = CANVAS_ZLEVEL;\n        }\n        var layer = this._layers[zlevel];\n        if (!layer) {\n            layer = new Layer('zr_' + zlevel, this, this.dpr);\n            layer.zlevel = zlevel;\n            layer.__builtin__ = true;\n            if (this._layerConfig[zlevel]) {\n                util.merge(layer, this._layerConfig[zlevel], true);\n            }\n            else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\n                util.merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\n            }\n            if (virtual) {\n                layer.virtual = virtual;\n            }\n            this.insertLayer(zlevel, layer);\n            layer.initContext();\n        }\n        return layer;\n    };\n    CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\n        var layersMap = this._layers;\n        var zlevelList = this._zlevelList;\n        var len = zlevelList.length;\n        var domRoot = this._domRoot;\n        var prevLayer = null;\n        var i = -1;\n        if (layersMap[zlevel]) {\n            if (process.env.NODE_ENV !== 'production') {\n                util.logError('ZLevel ' + zlevel + ' has been used already');\n            }\n            return;\n        }\n        if (!isLayerValid(layer)) {\n            if (process.env.NODE_ENV !== 'production') {\n                util.logError('Layer of zlevel ' + zlevel + ' is not valid');\n            }\n            return;\n        }\n        if (len > 0 && zlevel > zlevelList[0]) {\n            for (i = 0; i < len - 1; i++) {\n                if (zlevelList[i] < zlevel\n                    && zlevelList[i + 1] > zlevel) {\n                    break;\n                }\n            }\n            prevLayer = layersMap[zlevelList[i]];\n        }\n        zlevelList.splice(i + 1, 0, zlevel);\n        layersMap[zlevel] = layer;\n        if (!layer.virtual) {\n            if (prevLayer) {\n                var prevDom = prevLayer.dom;\n                if (prevDom.nextSibling) {\n                    domRoot.insertBefore(layer.dom, prevDom.nextSibling);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n            else {\n                if (domRoot.firstChild) {\n                    domRoot.insertBefore(layer.dom, domRoot.firstChild);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n        }\n        layer.__painter = this;\n    };\n    CanvasPainter.prototype.eachLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            cb.call(context, this._layers[z], z);\n        }\n    };\n    CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.getLayers = function () {\n        return this._layers;\n    };\n    CanvasPainter.prototype._updateLayerStatus = function (list) {\n        this.eachBuiltinLayer(function (layer, z) {\n            layer.__dirty = layer.__used = false;\n        });\n        function updatePrevLayer(idx) {\n            if (prevLayer) {\n                if (prevLayer.__endIndex !== idx) {\n                    prevLayer.__dirty = true;\n                }\n                prevLayer.__endIndex = idx;\n            }\n        }\n        if (this._singleCanvas) {\n            for (var i_1 = 1; i_1 < list.length; i_1++) {\n                var el = list[i_1];\n                if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\n                    this._needsManuallyCompositing = true;\n                    break;\n                }\n            }\n        }\n        var prevLayer = null;\n        var incrementalLayerCount = 0;\n        var prevZlevel;\n        var i;\n        for (i = 0; i < list.length; i++) {\n            var el = list[i];\n            var zlevel = el.zlevel;\n            var layer = void 0;\n            if (prevZlevel !== zlevel) {\n                prevZlevel = zlevel;\n                incrementalLayerCount = 0;\n            }\n            if (el.incremental) {\n                layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\n                layer.incremental = true;\n                incrementalLayerCount = 1;\n            }\n            else {\n                layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\n            }\n            if (!layer.__builtin__) {\n                util.logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\n            }\n            if (layer !== prevLayer) {\n                layer.__used = true;\n                if (layer.__startIndex !== i) {\n                    layer.__dirty = true;\n                }\n                layer.__startIndex = i;\n                if (!layer.incremental) {\n                    layer.__drawIndex = i;\n                }\n                else {\n                    layer.__drawIndex = -1;\n                }\n                updatePrevLayer(i);\n                prevLayer = layer;\n            }\n            if ((el.__dirty & REDRAW_BIT) && !el.__inHover) {\n                layer.__dirty = true;\n                if (layer.incremental && layer.__drawIndex < 0) {\n                    layer.__drawIndex = i;\n                }\n            }\n        }\n        updatePrevLayer(i);\n        this.eachBuiltinLayer(function (layer, z) {\n            if (!layer.__used && layer.getElementCount() > 0) {\n                layer.__dirty = true;\n                layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\n            }\n            if (layer.__dirty && layer.__drawIndex < 0) {\n                layer.__drawIndex = layer.__startIndex;\n            }\n        });\n    };\n    CanvasPainter.prototype.clear = function () {\n        this.eachBuiltinLayer(this._clearLayer);\n        return this;\n    };\n    CanvasPainter.prototype._clearLayer = function (layer) {\n        layer.clear();\n    };\n    CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        this._backgroundColor = backgroundColor;\n        util.each(this._layers, function (layer) {\n            layer.setUnpainted();\n        });\n    };\n    CanvasPainter.prototype.configLayer = function (zlevel, config) {\n        if (config) {\n            var layerConfig = this._layerConfig;\n            if (!layerConfig[zlevel]) {\n                layerConfig[zlevel] = config;\n            }\n            else {\n                util.merge(layerConfig[zlevel], config, true);\n            }\n            for (var i = 0; i < this._zlevelList.length; i++) {\n                var _zlevel = this._zlevelList[i];\n                if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\n                    var layer = this._layers[_zlevel];\n                    util.merge(layer, layerConfig[zlevel], true);\n                }\n            }\n        }\n    };\n    CanvasPainter.prototype.delLayer = function (zlevel) {\n        var layers = this._layers;\n        var zlevelList = this._zlevelList;\n        var layer = layers[zlevel];\n        if (!layer) {\n            return;\n        }\n        layer.dom.parentNode.removeChild(layer.dom);\n        delete layers[zlevel];\n        zlevelList.splice(util.indexOf(zlevelList, zlevel), 1);\n    };\n    CanvasPainter.prototype.resize = function (width, height) {\n        if (!this._domRoot.style) {\n            if (width == null || height == null) {\n                return;\n            }\n            this._width = width;\n            this._height = height;\n            this.getLayer(CANVAS_ZLEVEL).resize(width, height);\n        }\n        else {\n            var domRoot = this._domRoot;\n            domRoot.style.display = 'none';\n            var opts = this._opts;\n            var root = this.root;\n            width != null && (opts.width = width);\n            height != null && (opts.height = height);\n            width = getSize(root, 0, opts);\n            height = getSize(root, 1, opts);\n            domRoot.style.display = '';\n            if (this._width !== width || height !== this._height) {\n                domRoot.style.width = width + 'px';\n                domRoot.style.height = height + 'px';\n                for (var id in this._layers) {\n                    if (this._layers.hasOwnProperty(id)) {\n                        this._layers[id].resize(width, height);\n                    }\n                }\n                this.refresh(true);\n            }\n            this._width = width;\n            this._height = height;\n        }\n        return this;\n    };\n    CanvasPainter.prototype.clearLayer = function (zlevel) {\n        var layer = this._layers[zlevel];\n        if (layer) {\n            layer.clear();\n        }\n    };\n    CanvasPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this.root =\n            this.storage =\n                this._domRoot =\n                    this._layers = null;\n    };\n    CanvasPainter.prototype.getRenderedCanvas = function (opts) {\n        opts = opts || {};\n        if (this._singleCanvas && !this._compositeManually) {\n            return this._layers[CANVAS_ZLEVEL].dom;\n        }\n        var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\n        imageLayer.initContext();\n        imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\n        var ctx = imageLayer.ctx;\n        if (opts.pixelRatio <= this.dpr) {\n            this.refresh();\n            var width_1 = imageLayer.dom.width;\n            var height_1 = imageLayer.dom.height;\n            this.eachLayer(function (layer) {\n                if (layer.__builtin__) {\n                    ctx.drawImage(layer.dom, 0, 0, width_1, height_1);\n                }\n                else if (layer.renderToCanvas) {\n                    ctx.save();\n                    layer.renderToCanvas(ctx);\n                    ctx.restore();\n                }\n            });\n        }\n        else {\n            var scope = {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            };\n            var displayList = this.storage.getDisplayList(true);\n            for (var i = 0, len = displayList.length; i < len; i++) {\n                var el = displayList[i];\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        return imageLayer.dom;\n    };\n    CanvasPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    CanvasPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    return CanvasPainter;\n}());\nexport default CanvasPainter;\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport CanvasPainter from 'zrender/lib/canvas/Painter.js';\nexport function install(registers) {\n  registers.registerPainter('canvas', CanvasPainter);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport { install as SVGRenderer } from '../renderer/installSVGRenderer.js';\nexport { install as CanvasRenderer } from '../renderer/installCanvasRenderer.js';","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nexport * from './lib/export/renderers.js';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport createSeriesData from '../helper/createSeriesData.js';\nimport SeriesModel from '../../model/Series.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport { Group } from '../../util/graphic.js';\n\nvar LineSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(LineSeriesModel, _super);\n\n  function LineSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LineSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  LineSeriesModel.prototype.getInitialData = function (option) {\n    if (process.env.NODE_ENV !== 'production') {\n      var coordSys = option.coordinateSystem;\n\n      if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\n        throw new Error('Line not support coordinateSystem besides cartesian and polar');\n      }\n    }\n\n    return createSeriesData(null, this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  LineSeriesModel.prototype.getLegendIcon = function (opt) {\n    var group = new Group();\n    var line = createSymbol('line', 0, opt.itemHeight / 2, opt.itemWidth, 0, opt.lineStyle.stroke, false);\n    group.add(line);\n    line.setStyle(opt.lineStyle);\n    var visualType = this.getData().getVisual('symbol');\n    var visualRotate = this.getData().getVisual('symbolRotate');\n    var symbolType = visualType === 'none' ? 'circle' : visualType; // Symbol size is 80% when there is a line\n\n    var size = opt.itemHeight * 0.8;\n    var symbol = createSymbol(symbolType, (opt.itemWidth - size) / 2, (opt.itemHeight - size) / 2, size, size, opt.itemStyle.fill);\n    group.add(symbol);\n    symbol.setStyle(opt.itemStyle);\n    var symbolRotate = opt.iconRotate === 'inherit' ? visualRotate : opt.iconRotate || 0;\n    symbol.rotation = symbolRotate * Math.PI / 180;\n    symbol.setOrigin([opt.itemWidth / 2, opt.itemHeight / 2]);\n\n    if (symbolType.indexOf('empty') > -1) {\n      symbol.style.stroke = symbol.style.fill;\n      symbol.style.fill = '#fff';\n      symbol.style.lineWidth = 2;\n    }\n\n    return group;\n  };\n\n  LineSeriesModel.type = 'series.line';\n  LineSeriesModel.dependencies = ['grid', 'polar'];\n  LineSeriesModel.defaultOption = {\n    // zlevel: 0,\n    z: 3,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    clip: true,\n    label: {\n      position: 'top'\n    },\n    // itemStyle: {\n    // },\n    endLabel: {\n      show: false,\n      valueAnimation: true,\n      distance: 8\n    },\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    emphasis: {\n      scale: true\n    },\n    // areaStyle: {\n    // origin of areaStyle. Valid values:\n    // `'auto'/null/undefined`: from axisLine to data\n    // `'start'`: from min to data\n    // `'end'`: from data to max\n    // origin: 'auto'\n    // },\n    // false, 'start', 'end', 'middle'\n    step: false,\n    // Disabled if step is true\n    smooth: false,\n    smoothMonotone: null,\n    symbol: 'emptyCircle',\n    symbolSize: 4,\n    symbolRotate: null,\n    showSymbol: true,\n    // `false`: follow the label interval strategy.\n    // `true`: show all symbols.\n    // `'auto'`: If possible, show all symbols, otherwise\n    //           follow the label interval strategy.\n    showAllSymbol: 'auto',\n    // Whether to connect break point.\n    connectNulls: false,\n    // Sampling for large data. Can be: 'average', 'max', 'min', 'sum', 'lttb'.\n    sampling: 'none',\n    animationEasing: 'linear',\n    // Disable progressive\n    progressive: 0,\n    hoverLayerThreshold: Infinity,\n    universalTransition: {\n      divideShape: 'clone'\n    },\n    triggerLineEvent: false\n  };\n  return LineSeriesModel;\n}(SeriesModel);\n\nexport default LineSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { retrieveRawValue } from '../../data/helper/dataProvider.js';\nimport { isArray } from 'zrender/lib/core/util.js';\n/**\n * @return label string. Not null/undefined\n */\n\nexport function getDefaultLabel(data, dataIndex) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n  var len = labelDims.length; // Simple optimization (in lots of cases, label dims length is 1)\n\n  if (len === 1) {\n    var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n    return rawVal != null ? rawVal + '' : null;\n  } else if (len) {\n    var vals = [];\n\n    for (var i = 0; i < labelDims.length; i++) {\n      vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n    }\n\n    return vals.join(' ');\n  }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n\n  if (!isArray(interpolatedValue)) {\n    return interpolatedValue + '';\n  }\n\n  var vals = [];\n\n  for (var i = 0; i < labelDims.length; i++) {\n    var dimIndex = data.getDimensionIndex(labelDims[i]);\n\n    if (dimIndex >= 0) {\n      vals.push(interpolatedValue[dimIndex]);\n    }\n  }\n\n  return vals.join(' ');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { createSymbol, normalizeSymbolOffset, normalizeSymbolSize } from '../../util/symbol.js';\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { enterEmphasis, leaveEmphasis, toggleHoverEmphasis } from '../../util/states.js';\nimport { getDefaultLabel } from './labelHelper.js';\nimport { extend, isNumber } from 'zrender/lib/core/util.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport ZRImage from 'zrender/lib/graphic/Image.js';\nimport { saveOldStyle } from '../../animation/basicTrasition.js';\n\nvar Symbol =\n/** @class */\nfunction (_super) {\n  __extends(Symbol, _super);\n\n  function Symbol(data, idx, seriesScope, opts) {\n    var _this = _super.call(this) || this;\n\n    _this.updateData(data, idx, seriesScope, opts);\n\n    return _this;\n  }\n\n  Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n    // Remove paths created before\n    this.removeAll(); // let symbolPath = createSymbol(\n    //     symbolType, -0.5, -0.5, 1, 1, color\n    // );\n    // If width/height are set too small (e.g., set to 1) on ios10\n    // and macOS Sierra, a circle stroke become a rect, no matter what\n    // the scale is set. So we set width/height as 2. See #4150.\n\n    var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\n    symbolPath.attr({\n      z2: 100,\n      culling: true,\n      scaleX: symbolSize[0] / 2,\n      scaleY: symbolSize[1] / 2\n    }); // Rewrite drift method\n\n    symbolPath.drift = driftSymbol;\n    this._symbolType = symbolType;\n    this.add(symbolPath);\n  };\n  /**\n   * Stop animation\n   * @param {boolean} toLastFrame\n   */\n\n\n  Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\n    this.childAt(0).stopAnimation(null, toLastFrame);\n  };\n\n  Symbol.prototype.getSymbolType = function () {\n    return this._symbolType;\n  };\n  /**\n   * FIXME:\n   * Caution: This method breaks the encapsulation of this module,\n   * but it indeed brings convenience. So do not use the method\n   * unless you detailedly know all the implements of `Symbol`,\n   * especially animation.\n   *\n   * Get symbol path element.\n   */\n\n\n  Symbol.prototype.getSymbolPath = function () {\n    return this.childAt(0);\n  };\n  /**\n   * Highlight symbol\n   */\n\n\n  Symbol.prototype.highlight = function () {\n    enterEmphasis(this.childAt(0));\n  };\n  /**\n   * Downplay symbol\n   */\n\n\n  Symbol.prototype.downplay = function () {\n    leaveEmphasis(this.childAt(0));\n  };\n  /**\n   * @param {number} zlevel\n   * @param {number} z\n   */\n\n\n  Symbol.prototype.setZ = function (zlevel, z) {\n    var symbolPath = this.childAt(0);\n    symbolPath.zlevel = zlevel;\n    symbolPath.z = z;\n  };\n\n  Symbol.prototype.setDraggable = function (draggable, hasCursorOption) {\n    var symbolPath = this.childAt(0);\n    symbolPath.draggable = draggable;\n    symbolPath.cursor = !hasCursorOption && draggable ? 'move' : symbolPath.cursor;\n  };\n  /**\n   * Update symbol properties\n   */\n\n\n  Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\n    this.silent = false;\n    var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n    var seriesModel = data.hostModel;\n    var symbolSize = Symbol.getSymbolSize(data, idx);\n    var isInit = symbolType !== this._symbolType;\n    var disableAnimation = opts && opts.disableAnimation;\n\n    if (isInit) {\n      var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n      this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n    } else {\n      var symbolPath = this.childAt(0);\n      symbolPath.silent = false;\n      var target = {\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2\n      };\n      disableAnimation ? symbolPath.attr(target) : graphic.updateProps(symbolPath, target, seriesModel, idx);\n      saveOldStyle(symbolPath);\n    }\n\n    this._updateCommon(data, idx, symbolSize, seriesScope, opts);\n\n    if (isInit) {\n      var symbolPath = this.childAt(0);\n\n      if (!disableAnimation) {\n        var target = {\n          scaleX: this._sizeX,\n          scaleY: this._sizeY,\n          style: {\n            // Always fadeIn. Because it has fadeOut animation when symbol is removed..\n            opacity: symbolPath.style.opacity\n          }\n        };\n        symbolPath.scaleX = symbolPath.scaleY = 0;\n        symbolPath.style.opacity = 0;\n        graphic.initProps(symbolPath, target, seriesModel, idx);\n      }\n    }\n\n    if (disableAnimation) {\n      // Must stop leave transition manually if don't call initProps or updateProps.\n      this.childAt(0).stopAnimation('leave');\n    }\n  };\n\n  Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = data.hostModel;\n    var emphasisItemStyle;\n    var blurItemStyle;\n    var selectItemStyle;\n    var focus;\n    var blurScope;\n    var emphasisDisabled;\n    var labelStatesModels;\n    var hoverScale;\n    var cursorStyle;\n\n    if (seriesScope) {\n      emphasisItemStyle = seriesScope.emphasisItemStyle;\n      blurItemStyle = seriesScope.blurItemStyle;\n      selectItemStyle = seriesScope.selectItemStyle;\n      focus = seriesScope.focus;\n      blurScope = seriesScope.blurScope;\n      labelStatesModels = seriesScope.labelStatesModels;\n      hoverScale = seriesScope.hoverScale;\n      cursorStyle = seriesScope.cursorStyle;\n      emphasisDisabled = seriesScope.emphasisDisabled;\n    }\n\n    if (!seriesScope || data.hasItemOption) {\n      var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx);\n      var emphasisModel = itemModel.getModel('emphasis');\n      emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n      blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n      focus = emphasisModel.get('focus');\n      blurScope = emphasisModel.get('blurScope');\n      emphasisDisabled = emphasisModel.get('disabled');\n      labelStatesModels = getLabelStatesModels(itemModel);\n      hoverScale = emphasisModel.getShallow('scale');\n      cursorStyle = itemModel.getShallow('cursor');\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n    var symbolOffset = normalizeSymbolOffset(data.getItemVisual(idx, 'symbolOffset'), symbolSize);\n\n    if (symbolOffset) {\n      symbolPath.x = symbolOffset[0];\n      symbolPath.y = symbolOffset[1];\n    }\n\n    cursorStyle && symbolPath.attr('cursor', cursorStyle);\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var visualColor = symbolStyle.fill;\n\n    if (symbolPath instanceof ZRImage) {\n      var pathStyle = symbolPath.style;\n      symbolPath.useStyle(extend({\n        // TODO other properties like x, y ?\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolStyle));\n    } else {\n      if (symbolPath.__isEmptyBrush) {\n        // fill and stroke will be swapped if it's empty.\n        // So we cloned a new style to avoid it affecting the original style in visual storage.\n        // TODO Better implementation. No empty logic!\n        symbolPath.useStyle(extend({}, symbolStyle));\n      } else {\n        symbolPath.useStyle(symbolStyle);\n      } // Disable decal because symbol scale will been applied on the decal.\n\n\n      symbolPath.style.decal = null;\n      symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\n      symbolPath.style.strokeNoScale = true;\n    }\n\n    var liftZ = data.getItemVisual(idx, 'liftZ');\n    var z2Origin = this._z2;\n\n    if (liftZ != null) {\n      if (z2Origin == null) {\n        this._z2 = symbolPath.z2;\n        symbolPath.z2 += liftZ;\n      }\n    } else if (z2Origin != null) {\n      symbolPath.z2 = z2Origin;\n      this._z2 = null;\n    }\n\n    var useNameLabel = opts && opts.useNameLabel;\n    setLabelStyle(symbolPath, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: idx,\n      defaultText: getLabelDefaultText,\n      inheritColor: visualColor,\n      defaultOpacity: symbolStyle.opacity\n    }); // Do not execute util needed.\n\n    function getLabelDefaultText(idx) {\n      return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n    }\n\n    this._sizeX = symbolSize[0] / 2;\n    this._sizeY = symbolSize[1] / 2;\n    var emphasisState = symbolPath.ensureState('emphasis');\n    emphasisState.style = emphasisItemStyle;\n    symbolPath.ensureState('select').style = selectItemStyle;\n    symbolPath.ensureState('blur').style = blurItemStyle;\n\n    if (hoverScale) {\n      var scaleRatio = Math.max(isNumber(hoverScale) ? hoverScale : 1.1, 3 / this._sizeY);\n      emphasisState.scaleX = this._sizeX * scaleRatio;\n      emphasisState.scaleY = this._sizeY * scaleRatio;\n    }\n\n    this.setSymbolScale(1);\n    toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled);\n  };\n\n  Symbol.prototype.setSymbolScale = function (scale) {\n    this.scaleX = this.scaleY = scale;\n  };\n\n  Symbol.prototype.fadeOut = function (cb, seriesModel, opt) {\n    var symbolPath = this.childAt(0);\n    var dataIndex = getECData(this).dataIndex;\n    var animationOpt = opt && opt.animation; // Avoid mistaken hover when fading out\n\n    this.silent = symbolPath.silent = true; // Not show text when animating\n\n    if (opt && opt.fadeLabel) {\n      var textContent = symbolPath.getTextContent();\n\n      if (textContent) {\n        graphic.removeElement(textContent, {\n          style: {\n            opacity: 0\n          }\n        }, seriesModel, {\n          dataIndex: dataIndex,\n          removeOpt: animationOpt,\n          cb: function () {\n            symbolPath.removeTextContent();\n          }\n        });\n      }\n    } else {\n      symbolPath.removeTextContent();\n    }\n\n    graphic.removeElement(symbolPath, {\n      style: {\n        opacity: 0\n      },\n      scaleX: 0,\n      scaleY: 0\n    }, seriesModel, {\n      dataIndex: dataIndex,\n      cb: cb,\n      removeOpt: animationOpt\n    });\n  };\n\n  Symbol.getSymbolSize = function (data, idx) {\n    return normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n  };\n\n  return Symbol;\n}(graphic.Group);\n\nfunction driftSymbol(dx, dy) {\n  this.parent.drift(dx, dy);\n}\n\nexport default Symbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as graphic from '../../util/graphic.js';\nimport SymbolClz from './Symbol.js';\nimport { isObject } from 'zrender/lib/core/util.js';\nimport { getLabelStatesModels } from '../../label/labelStyle.js';\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n  return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) // We do not set clipShape on group, because it will cut part of\n  // the symbol element shape. We use the same clip shape here as\n  // the line clip.\n  && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n\nfunction normalizeUpdateOpt(opt) {\n  if (opt != null && !isObject(opt)) {\n    opt = {\n      isIgnore: opt\n    };\n  }\n\n  return opt || {};\n}\n\nfunction makeSeriesScope(data) {\n  var seriesModel = data.hostModel;\n  var emphasisModel = seriesModel.getModel('emphasis');\n  return {\n    emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\n    blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\n    selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\n    focus: emphasisModel.get('focus'),\n    blurScope: emphasisModel.get('blurScope'),\n    emphasisDisabled: emphasisModel.get('disabled'),\n    hoverScale: emphasisModel.get('scale'),\n    labelStatesModels: getLabelStatesModels(seriesModel),\n    cursorStyle: seriesModel.get('cursor')\n  };\n}\n\nvar SymbolDraw =\n/** @class */\nfunction () {\n  function SymbolDraw(SymbolCtor) {\n    this.group = new graphic.Group();\n    this._SymbolCtor = SymbolCtor || SymbolClz;\n  }\n  /**\n   * Update symbols draw by new data\n   */\n\n\n  SymbolDraw.prototype.updateData = function (data, opt) {\n    // Remove progressive els.\n    this._progressiveEls = null;\n    opt = normalizeUpdateOpt(opt);\n    var group = this.group;\n    var seriesModel = data.hostModel;\n    var oldData = this._data;\n    var SymbolCtor = this._SymbolCtor;\n    var disableAnimation = opt.disableAnimation;\n    var seriesScope = makeSeriesScope(data);\n    var symbolUpdateOpt = {\n      disableAnimation: disableAnimation\n    };\n\n    var getSymbolPoint = opt.getSymbolPoint || function (idx) {\n      return data.getItemLayout(idx);\n    }; // There is no oldLineData only when first rendering or switching from\n    // stream mode to normal mode, where previous elements should be removed.\n\n\n    if (!oldData) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      var point = getSymbolPoint(newIdx);\n\n      if (symbolNeedsDraw(data, point, newIdx, opt)) {\n        var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n        symbolEl.setPosition(point);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n      var point = getSymbolPoint(newIdx);\n\n      if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      var newSymbolType = data.getItemVisual(newIdx, 'symbol') || 'circle';\n      var oldSymbolType = symbolEl && symbolEl.getSymbolType && symbolEl.getSymbolType();\n\n      if (!symbolEl // Create a new if symbol type changed.\n      || oldSymbolType && oldSymbolType !== newSymbolType) {\n        group.remove(symbolEl);\n        symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n        symbolEl.setPosition(point);\n      } else {\n        symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\n        var target = {\n          x: point[0],\n          y: point[1]\n        };\n        disableAnimation ? symbolEl.attr(target) : graphic.updateProps(symbolEl, target, seriesModel);\n      } // Add back\n\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && el.fadeOut(function () {\n        group.remove(el);\n      }, seriesModel);\n    }).execute();\n    this._getSymbolPoint = getSymbolPoint;\n    this._data = data;\n  };\n\n  ;\n\n  SymbolDraw.prototype.updateLayout = function () {\n    var _this = this;\n\n    var data = this._data;\n\n    if (data) {\n      // Not use animation\n      data.eachItemGraphicEl(function (el, idx) {\n        var point = _this._getSymbolPoint(idx);\n\n        el.setPosition(point);\n        el.markRedraw();\n      });\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this._seriesScope = makeSeriesScope(data);\n    this._data = null;\n    this.group.removeAll();\n  };\n\n  ;\n  /**\n   * Update symbols draw by new data\n   */\n\n  SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    // Clear\n    this._progressiveEls = [];\n    opt = normalizeUpdateOpt(opt);\n\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var point = data.getItemLayout(idx);\n\n      if (symbolNeedsDraw(data, point, idx, opt)) {\n        var el = new this._SymbolCtor(data, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        el.setPosition(point);\n        this.group.add(el);\n        data.setItemGraphicEl(idx, el);\n\n        this._progressiveEls.push(el);\n      }\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.eachRendered = function (cb) {\n    graphic.traverseElements(this._progressiveEls || this.group, cb);\n  };\n\n  SymbolDraw.prototype.remove = function (enableAnimation) {\n    var group = this.group;\n    var data = this._data; // Incremental model do not have this._data.\n\n    if (data && enableAnimation) {\n      data.eachItemGraphicEl(function (el) {\n        el.fadeOut(function () {\n          group.remove(el);\n        }, data.hostModel);\n      });\n    } else {\n      group.removeAll();\n    }\n  };\n\n  ;\n  return SymbolDraw;\n}();\n\nexport default SymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper.js';\nimport { isNumber, map } from 'zrender/lib/core/util.js';\nexport function prepareDataCoordInfo(coordSys, data, valueOrigin) {\n  var baseAxis = coordSys.getBaseAxis();\n  var valueAxis = coordSys.getOtherAxis(baseAxis);\n  var valueStart = getValueStart(valueAxis, valueOrigin);\n  var baseAxisDim = baseAxis.dim;\n  var valueAxisDim = valueAxis.dim;\n  var valueDim = data.mapDimension(valueAxisDim);\n  var baseDim = data.mapDimension(baseAxisDim);\n  var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n  var dims = map(coordSys.dimensions, function (coordDim) {\n    return data.mapDimension(coordDim);\n  });\n  var stacked = false;\n  var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n  if (isDimensionStacked(data, dims[0]\n  /*, dims[1]*/\n  )) {\n    // jshint ignore:line\n    stacked = true;\n    dims[0] = stackResultDim;\n  }\n\n  if (isDimensionStacked(data, dims[1]\n  /*, dims[0]*/\n  )) {\n    // jshint ignore:line\n    stacked = true;\n    dims[1] = stackResultDim;\n  }\n\n  return {\n    dataDimsForPoint: dims,\n    valueStart: valueStart,\n    valueAxisDim: valueAxisDim,\n    baseAxisDim: baseAxisDim,\n    stacked: !!stacked,\n    valueDim: valueDim,\n    baseDim: baseDim,\n    baseDataOffset: baseDataOffset,\n    stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\n  };\n}\n\nfunction getValueStart(valueAxis, valueOrigin) {\n  var valueStart = 0;\n  var extent = valueAxis.scale.getExtent();\n\n  if (valueOrigin === 'start') {\n    valueStart = extent[0];\n  } else if (valueOrigin === 'end') {\n    valueStart = extent[1];\n  } // If origin is specified as a number, use it as\n  // valueStart directly\n  else if (isNumber(valueOrigin) && !isNaN(valueOrigin)) {\n      valueStart = valueOrigin;\n    } // auto\n    else {\n        // Both positive\n        if (extent[0] > 0) {\n          valueStart = extent[0];\n        } // Both negative\n        else if (extent[1] < 0) {\n            valueStart = extent[1];\n          } // If is one positive, and one negative, onZero shall be true\n\n      }\n\n  return valueStart;\n}\n\nexport function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\n  var value = NaN;\n\n  if (dataCoordInfo.stacked) {\n    value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\n  }\n\n  if (isNaN(value)) {\n    value = dataCoordInfo.valueStart;\n  }\n\n  var baseDataOffset = dataCoordInfo.baseDataOffset;\n  var stackedData = [];\n  stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\n  stackedData[1 - baseDataOffset] = value;\n  return coordSys.dataToPoint(stackedData);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper.js';\nimport { createFloat32Array } from '../../util/vendor.js';\n\nfunction diffData(oldData, newData) {\n  var diffResult = [];\n  newData.diff(oldData).add(function (idx) {\n    diffResult.push({\n      cmd: '+',\n      idx: idx\n    });\n  }).update(function (newIdx, oldIdx) {\n    diffResult.push({\n      cmd: '=',\n      idx: oldIdx,\n      idx1: newIdx\n    });\n  }).remove(function (idx) {\n    diffResult.push({\n      cmd: '-',\n      idx: idx\n    });\n  }).execute();\n  return diffResult;\n}\n\nexport default function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n  var diff = diffData(oldData, newData); // let newIdList = newData.mapArray(newData.getId);\n  // let oldIdList = oldData.mapArray(oldData.getId);\n  // convertToIntId(newIdList, oldIdList);\n  // // FIXME One data ?\n  // diff = arrayDiff(oldIdList, newIdList);\n\n  var currPoints = [];\n  var nextPoints = []; // Points for stacking base line\n\n  var currStackedPoints = [];\n  var nextStackedPoints = [];\n  var status = [];\n  var sortedIndices = [];\n  var rawIndices = [];\n  var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin); // const oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n\n  var oldPoints = oldData.getLayout('points') || [];\n  var newPoints = newData.getLayout('points') || [];\n\n  for (var i = 0; i < diff.length; i++) {\n    var diffItem = diff[i];\n    var pointAdded = true;\n    var oldIdx2 = void 0;\n    var newIdx2 = void 0; // FIXME, animation is not so perfect when dataZoom window moves fast\n    // Which is in case remvoing or add more than one data in the tail or head\n\n    switch (diffItem.cmd) {\n      case '=':\n        oldIdx2 = diffItem.idx * 2;\n        newIdx2 = diffItem.idx1 * 2;\n        var currentX = oldPoints[oldIdx2];\n        var currentY = oldPoints[oldIdx2 + 1];\n        var nextX = newPoints[newIdx2];\n        var nextY = newPoints[newIdx2 + 1]; // If previous data is NaN, use next point directly\n\n        if (isNaN(currentX) || isNaN(currentY)) {\n          currentX = nextX;\n          currentY = nextY;\n        }\n\n        currPoints.push(currentX, currentY);\n        nextPoints.push(nextX, nextY);\n        currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(diffItem.idx1));\n        break;\n\n      case '+':\n        var newIdx = diffItem.idx;\n        var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\n        var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]);\n        newIdx2 = newIdx * 2;\n        currPoints.push(oldPt[0], oldPt[1]);\n        nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\n        var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\n        currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(newIdx));\n        break;\n\n      case '-':\n        pointAdded = false;\n    } // Original indices\n\n\n    if (pointAdded) {\n      status.push(diffItem);\n      sortedIndices.push(sortedIndices.length);\n    }\n  } // Diff result may be crossed if all items are changed\n  // Sort by data index\n\n\n  sortedIndices.sort(function (a, b) {\n    return rawIndices[a] - rawIndices[b];\n  });\n  var len = currPoints.length;\n  var sortedCurrPoints = createFloat32Array(len);\n  var sortedNextPoints = createFloat32Array(len);\n  var sortedCurrStackedPoints = createFloat32Array(len);\n  var sortedNextStackedPoints = createFloat32Array(len);\n  var sortedStatus = [];\n\n  for (var i = 0; i < sortedIndices.length; i++) {\n    var idx = sortedIndices[i];\n    var i2 = i * 2;\n    var idx2 = idx * 2;\n    sortedCurrPoints[i2] = currPoints[idx2];\n    sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\n    sortedNextPoints[i2] = nextPoints[idx2];\n    sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\n    sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\n    sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\n    sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\n    sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\n    sortedStatus[i] = status[idx];\n  }\n\n  return {\n    current: sortedCurrPoints,\n    next: sortedNextPoints,\n    stackedOnCurrent: sortedCurrStackedPoints,\n    stackedOnNext: sortedNextStackedPoints,\n    status: sortedStatus\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\"; // Poly path support NaN point\n\nimport Path from 'zrender/lib/graphic/Path.js';\nimport PathProxy from 'zrender/lib/core/PathProxy.js';\nimport { cubicRootAt, cubicAt } from 'zrender/lib/core/curve.js';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n/**\n * Draw smoothed line in non-monotone, in may cause undesired curve in extreme\n * situations. This should be used when points are non-monotone neither in x or\n * y dimension.\n */\n\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\n  var prevX;\n  var prevY;\n  var cpx0;\n  var cpy0;\n  var cpx1;\n  var cpy1;\n  var idx = start;\n  var k = 0;\n\n  for (; k < segLen; k++) {\n    var x = points[idx * 2];\n    var y = points[idx * 2 + 1];\n\n    if (idx >= allLen || idx < 0) {\n      break;\n    }\n\n    if (isPointNull(x, y)) {\n      if (connectNulls) {\n        idx += dir;\n        continue;\n      }\n\n      break;\n    }\n\n    if (idx === start) {\n      ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\n      cpx0 = x;\n      cpy0 = y;\n    } else {\n      var dx = x - prevX;\n      var dy = y - prevY; // Ignore tiny segment.\n\n      if (dx * dx + dy * dy < 0.5) {\n        idx += dir;\n        continue;\n      }\n\n      if (smooth > 0) {\n        var nextIdx = idx + dir;\n        var nextX = points[nextIdx * 2];\n        var nextY = points[nextIdx * 2 + 1]; // Ignore duplicate point\n\n        while (nextX === x && nextY === y && k < segLen) {\n          k++;\n          nextIdx += dir;\n          idx += dir;\n          nextX = points[nextIdx * 2];\n          nextY = points[nextIdx * 2 + 1];\n          x = points[idx * 2];\n          y = points[idx * 2 + 1];\n          dx = x - prevX;\n          dy = y - prevY;\n        }\n\n        var tmpK = k + 1;\n\n        if (connectNulls) {\n          // Find next point not null\n          while (isPointNull(nextX, nextY) && tmpK < segLen) {\n            tmpK++;\n            nextIdx += dir;\n            nextX = points[nextIdx * 2];\n            nextY = points[nextIdx * 2 + 1];\n          }\n        }\n\n        var ratioNextSeg = 0.5;\n        var vx = 0;\n        var vy = 0;\n        var nextCpx0 = void 0;\n        var nextCpy0 = void 0; // Is last point\n\n        if (tmpK >= segLen || isPointNull(nextX, nextY)) {\n          cpx1 = x;\n          cpy1 = y;\n        } else {\n          vx = nextX - prevX;\n          vy = nextY - prevY;\n          var dx0 = x - prevX;\n          var dx1 = nextX - x;\n          var dy0 = y - prevY;\n          var dy1 = nextY - y;\n          var lenPrevSeg = void 0;\n          var lenNextSeg = void 0;\n\n          if (smoothMonotone === 'x') {\n            lenPrevSeg = Math.abs(dx0);\n            lenNextSeg = Math.abs(dx1);\n            var dir_1 = vx > 0 ? 1 : -1;\n            cpx1 = x - dir_1 * lenPrevSeg * smooth;\n            cpy1 = y;\n            nextCpx0 = x + dir_1 * lenNextSeg * smooth;\n            nextCpy0 = y;\n          } else if (smoothMonotone === 'y') {\n            lenPrevSeg = Math.abs(dy0);\n            lenNextSeg = Math.abs(dy1);\n            var dir_2 = vy > 0 ? 1 : -1;\n            cpx1 = x;\n            cpy1 = y - dir_2 * lenPrevSeg * smooth;\n            nextCpx0 = x;\n            nextCpy0 = y + dir_2 * lenNextSeg * smooth;\n          } else {\n            lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\n            lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1); // Use ratio of seg length\n\n            ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n            cpx1 = x - vx * smooth * (1 - ratioNextSeg);\n            cpy1 = y - vy * smooth * (1 - ratioNextSeg); // cp0 of next segment\n\n            nextCpx0 = x + vx * smooth * ratioNextSeg;\n            nextCpy0 = y + vy * smooth * ratioNextSeg; // Smooth constraint between point and next point.\n            // Avoid exceeding extreme after smoothing.\n\n            nextCpx0 = mathMin(nextCpx0, mathMax(nextX, x));\n            nextCpy0 = mathMin(nextCpy0, mathMax(nextY, y));\n            nextCpx0 = mathMax(nextCpx0, mathMin(nextX, x));\n            nextCpy0 = mathMax(nextCpy0, mathMin(nextY, y)); // Reclaculate cp1 based on the adjusted cp0 of next seg.\n\n            vx = nextCpx0 - x;\n            vy = nextCpy0 - y;\n            cpx1 = x - vx * lenPrevSeg / lenNextSeg;\n            cpy1 = y - vy * lenPrevSeg / lenNextSeg; // Smooth constraint between point and prev point.\n            // Avoid exceeding extreme after smoothing.\n\n            cpx1 = mathMin(cpx1, mathMax(prevX, x));\n            cpy1 = mathMin(cpy1, mathMax(prevY, y));\n            cpx1 = mathMax(cpx1, mathMin(prevX, x));\n            cpy1 = mathMax(cpy1, mathMin(prevY, y)); // Adjust next cp0 again.\n\n            vx = x - cpx1;\n            vy = y - cpy1;\n            nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\n            nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\n          }\n        }\n\n        ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\n        cpx0 = nextCpx0;\n        cpy0 = nextCpy0;\n      } else {\n        ctx.lineTo(x, y);\n      }\n    }\n\n    prevX = x;\n    prevY = y;\n    idx += dir;\n  }\n\n  return k;\n}\n\nvar ECPolylineShape =\n/** @class */\nfunction () {\n  function ECPolylineShape() {\n    this.smooth = 0;\n    this.smoothConstraint = true;\n  }\n\n  return ECPolylineShape;\n}();\n\nvar ECPolyline =\n/** @class */\nfunction (_super) {\n  __extends(ECPolyline, _super);\n\n  function ECPolyline(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polyline';\n    return _this;\n  }\n\n  ECPolyline.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECPolyline.prototype.getDefaultShape = function () {\n    return new ECPolylineShape();\n  };\n\n  ECPolyline.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var i = 0;\n    var len = points.length / 2; // const result = getBoundingBox(points, shape.smoothConstraint);\n\n    if (shape.connectNulls) {\n      // Must remove first and last null values avoid draw error in polygon\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n    }\n  };\n\n  ECPolyline.prototype.getPointOn = function (xOrY, dim) {\n    if (!this.path) {\n      this.createPathProxy();\n      this.buildPath(this.path, this.shape);\n    }\n\n    var path = this.path;\n    var data = path.data;\n    var CMD = PathProxy.CMD;\n    var x0;\n    var y0;\n    var isDimX = dim === 'x';\n    var roots = [];\n\n    for (var i = 0; i < data.length;) {\n      var cmd = data[i++];\n      var x = void 0;\n      var y = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var x3 = void 0;\n      var y3 = void 0;\n      var t = void 0;\n\n      switch (cmd) {\n        case CMD.M:\n          x0 = data[i++];\n          y0 = data[i++];\n          break;\n\n        case CMD.L:\n          x = data[i++];\n          y = data[i++];\n          t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0);\n\n          if (t <= 1 && t >= 0) {\n            var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0;\n            return isDimX ? [xOrY, val] : [val, xOrY];\n          }\n\n          x0 = x;\n          y0 = y;\n          break;\n\n        case CMD.C:\n          x = data[i++];\n          y = data[i++];\n          x2 = data[i++];\n          y2 = data[i++];\n          x3 = data[i++];\n          y3 = data[i++];\n          var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots);\n\n          if (nRoot > 0) {\n            for (var i_1 = 0; i_1 < nRoot; i_1++) {\n              var t_1 = roots[i_1];\n\n              if (t_1 <= 1 && t_1 >= 0) {\n                var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1);\n                return isDimX ? [xOrY, val] : [val, xOrY];\n              }\n            }\n          }\n\n          x0 = x3;\n          y0 = y3;\n          break;\n      }\n    }\n  };\n\n  return ECPolyline;\n}(Path);\n\nexport { ECPolyline };\n\nvar ECPolygonShape =\n/** @class */\nfunction (_super) {\n  __extends(ECPolygonShape, _super);\n\n  function ECPolygonShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return ECPolygonShape;\n}(ECPolylineShape);\n\nvar ECPolygon =\n/** @class */\nfunction (_super) {\n  __extends(ECPolygon, _super);\n\n  function ECPolygon(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polygon';\n    return _this;\n  }\n\n  ECPolygon.prototype.getDefaultShape = function () {\n    return new ECPolygonShape();\n  };\n\n  ECPolygon.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var stackedOnPoints = shape.stackedOnPoints;\n    var i = 0;\n    var len = points.length / 2;\n    var smoothMonotone = shape.smoothMonotone;\n\n    if (shape.connectNulls) {\n      // Must remove first and last null values avoid draw error in polygon\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\n      drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n      i += k + 1;\n      ctx.closePath();\n    }\n  };\n\n  return ECPolygon;\n}(Path);\n\nexport { ECPolygon };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as graphic from '../../util/graphic.js';\nimport { round } from '../../util/number.js';\nimport { isFunction } from 'zrender/lib/core/util.js';\n\nfunction createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\n  var rect = cartesian.getArea();\n  var x = rect.x;\n  var y = rect.y;\n  var width = rect.width;\n  var height = rect.height;\n  var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2; // Expand the clip path a bit to avoid the border is clipped and looks thinner\n\n  x -= lineWidth / 2;\n  y -= lineWidth / 2;\n  width += lineWidth;\n  height += lineWidth; // fix: https://github.com/apache/incubator-echarts/issues/11369\n\n  x = Math.floor(x);\n  width = Math.round(width);\n  var clipPath = new graphic.Rect({\n    shape: {\n      x: x,\n      y: y,\n      width: width,\n      height: height\n    }\n  });\n\n  if (hasAnimation) {\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var isAxisInversed = baseAxis.inverse;\n\n    if (isHorizontal) {\n      if (isAxisInversed) {\n        clipPath.shape.x += width;\n      }\n\n      clipPath.shape.width = 0;\n    } else {\n      if (!isAxisInversed) {\n        clipPath.shape.y += height;\n      }\n\n      clipPath.shape.height = 0;\n    }\n\n    var duringCb = isFunction(during) ? function (percent) {\n      during(percent, clipPath);\n    } : null;\n    graphic.initProps(clipPath, {\n      shape: {\n        width: width,\n        height: height,\n        x: x,\n        y: y\n      }\n    }, seriesModel, null, done, duringCb);\n  }\n\n  return clipPath;\n}\n\nfunction createPolarClipPath(polar, hasAnimation, seriesModel) {\n  var sectorArea = polar.getArea(); // Avoid float number rounding error for symbol on the edge of axis extent.\n\n  var r0 = round(sectorArea.r0, 1);\n  var r = round(sectorArea.r, 1);\n  var clipPath = new graphic.Sector({\n    shape: {\n      cx: round(polar.cx, 1),\n      cy: round(polar.cy, 1),\n      r0: r0,\n      r: r,\n      startAngle: sectorArea.startAngle,\n      endAngle: sectorArea.endAngle,\n      clockwise: sectorArea.clockwise\n    }\n  });\n\n  if (hasAnimation) {\n    var isRadial = polar.getBaseAxis().dim === 'angle';\n\n    if (isRadial) {\n      clipPath.shape.endAngle = sectorArea.startAngle;\n    } else {\n      clipPath.shape.r = r0;\n    }\n\n    graphic.initProps(clipPath, {\n      shape: {\n        endAngle: sectorArea.endAngle,\n        r: r\n      }\n    }, seriesModel);\n  }\n\n  return clipPath;\n}\n\nfunction createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\n  if (!coordSys) {\n    return null;\n  } else if (coordSys.type === 'polar') {\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  } else if (coordSys.type === 'cartesian2d') {\n    return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\n  }\n\n  return null;\n}\n\nexport { createGridClipPath, createPolarClipPath, createClipPath };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport function isCoordinateSystemType(coordSys, type) {\n  return coordSys.type === type;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\"; // FIXME step not support polar\n\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport SymbolDraw from '../helper/SymbolDraw.js';\nimport SymbolClz from '../helper/Symbol.js';\nimport lineAnimationDiff from './lineAnimationDiff.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as modelUtil from '../../util/model.js';\nimport { ECPolyline, ECPolygon } from './poly.js';\nimport ChartView from '../../view/Chart.js';\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper.js';\nimport { createGridClipPath, createPolarClipPath } from '../helper/createClipPathFromCoordSys.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport { setStatesStylesFromModel, setStatesFlag, toggleHoverEmphasis, SPECIAL_STATES } from '../../util/states.js';\nimport { setLabelStyle, getLabelStatesModels, labelInner } from '../../label/labelStyle.js';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createFloat32Array } from '../../util/vendor.js';\nimport { convertToColorString } from '../../util/format.js';\nimport { lerp } from 'zrender/lib/tool/color.js';\n\nfunction isPointsSame(points1, points2) {\n  if (points1.length !== points2.length) {\n    return;\n  }\n\n  for (var i = 0; i < points1.length; i++) {\n    if (points1[i] !== points2[i]) {\n      return;\n    }\n  }\n\n  return true;\n}\n\nfunction bboxFromPoints(points) {\n  var minX = Infinity;\n  var minY = Infinity;\n  var maxX = -Infinity;\n  var maxY = -Infinity;\n\n  for (var i = 0; i < points.length;) {\n    var x = points[i++];\n    var y = points[i++];\n\n    if (!isNaN(x)) {\n      minX = Math.min(x, minX);\n      maxX = Math.max(x, maxX);\n    }\n\n    if (!isNaN(y)) {\n      minY = Math.min(y, minY);\n      maxY = Math.max(y, maxY);\n    }\n  }\n\n  return [[minX, minY], [maxX, maxY]];\n}\n\nfunction getBoundingDiff(points1, points2) {\n  var _a = bboxFromPoints(points1),\n      min1 = _a[0],\n      max1 = _a[1];\n\n  var _b = bboxFromPoints(points2),\n      min2 = _b[0],\n      max2 = _b[1]; // Get a max value from each corner of two boundings.\n\n\n  return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\n}\n\nfunction getSmooth(smooth) {\n  return zrUtil.isNumber(smooth) ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n  if (!dataCoordInfo.valueDim) {\n    return [];\n  }\n\n  var len = data.count();\n  var points = createFloat32Array(len * 2);\n\n  for (var idx = 0; idx < len; idx++) {\n    var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\n    points[idx * 2] = pt[0];\n    points[idx * 2 + 1] = pt[1];\n  }\n\n  return points;\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt, connectNulls) {\n  var baseAxis = coordSys.getBaseAxis();\n  var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n  var stepPoints = [];\n  var i = 0;\n  var stepPt = [];\n  var pt = [];\n  var nextPt = [];\n  var filteredPoints = [];\n\n  if (connectNulls) {\n    for (i = 0; i < points.length; i += 2) {\n      if (!isNaN(points[i]) && !isNaN(points[i + 1])) {\n        filteredPoints.push(points[i], points[i + 1]);\n      }\n    }\n\n    points = filteredPoints;\n  }\n\n  for (i = 0; i < points.length - 2; i += 2) {\n    nextPt[0] = points[i + 2];\n    nextPt[1] = points[i + 3];\n    pt[0] = points[i];\n    pt[1] = points[i + 1];\n    stepPoints.push(pt[0], pt[1]);\n\n    switch (stepTurnAt) {\n      case 'end':\n        stepPt[baseIndex] = nextPt[baseIndex];\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        break;\n\n      case 'middle':\n        var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n        var stepPt2 = [];\n        stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        stepPoints.push(stepPt2[0], stepPt2[1]);\n        break;\n\n      default:\n        // default is start\n        stepPt[baseIndex] = pt[baseIndex];\n        stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n    }\n  } // Last points\n\n\n  stepPoints.push(points[i++], points[i++]);\n  return stepPoints;\n}\n/**\n * Clip color stops to edge. Avoid creating too large gradients.\n * Which may lead to blurry when GPU acceleration is enabled. See #15680\n *\n * The stops has been sorted from small to large.\n */\n\n\nfunction clipColorStops(colorStops, maxSize) {\n  var newColorStops = [];\n  var len = colorStops.length; // coord will always < 0 in prevOutOfRangeColorStop.\n\n  var prevOutOfRangeColorStop;\n  var prevInRangeColorStop;\n\n  function lerpStop(stop0, stop1, clippedCoord) {\n    var coord0 = stop0.coord;\n    var p = (clippedCoord - coord0) / (stop1.coord - coord0);\n    var color = lerp(p, [stop0.color, stop1.color]);\n    return {\n      coord: clippedCoord,\n      color: color\n    };\n  }\n\n  for (var i = 0; i < len; i++) {\n    var stop_1 = colorStops[i];\n    var coord = stop_1.coord;\n\n    if (coord < 0) {\n      prevOutOfRangeColorStop = stop_1;\n    } else if (coord > maxSize) {\n      if (prevInRangeColorStop) {\n        newColorStops.push(lerpStop(prevInRangeColorStop, stop_1, maxSize));\n      } else if (prevOutOfRangeColorStop) {\n        // If there are two stops and coord range is between these two stops\n        newColorStops.push(lerpStop(prevOutOfRangeColorStop, stop_1, 0), lerpStop(prevOutOfRangeColorStop, stop_1, maxSize));\n      } // All following stop will be out of range. So just ignore them.\n\n\n      break;\n    } else {\n      if (prevOutOfRangeColorStop) {\n        newColorStops.push(lerpStop(prevOutOfRangeColorStop, stop_1, 0)); // Reset\n\n        prevOutOfRangeColorStop = null;\n      }\n\n      newColorStops.push(stop_1);\n      prevInRangeColorStop = stop_1;\n    }\n  }\n\n  return newColorStops;\n}\n\nfunction getVisualGradient(data, coordSys, api) {\n  var visualMetaList = data.getVisual('visualMeta');\n\n  if (!visualMetaList || !visualMetaList.length || !data.count()) {\n    // When data.count() is 0, gradient range can not be calculated.\n    return;\n  }\n\n  if (coordSys.type !== 'cartesian2d') {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style is only supported on cartesian2d.');\n    }\n\n    return;\n  }\n\n  var coordDim;\n  var visualMeta;\n\n  for (var i = visualMetaList.length - 1; i >= 0; i--) {\n    var dimInfo = data.getDimensionInfo(visualMetaList[i].dimension);\n    coordDim = dimInfo && dimInfo.coordDim; // Can only be x or y\n\n    if (coordDim === 'x' || coordDim === 'y') {\n      visualMeta = visualMetaList[i];\n      break;\n    }\n  }\n\n  if (!visualMeta) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style only support x or y dimension.');\n    }\n\n    return;\n  } // If the area to be rendered is bigger than area defined by LinearGradient,\n  // the canvas spec prescribes that the color of the first stop and the last\n  // stop should be used. But if two stops are added at offset 0, in effect\n  // browsers use the color of the second stop to render area outside\n  // LinearGradient. So we can only infinitesimally extend area defined in\n  // LinearGradient to render `outerColors`.\n\n\n  var axis = coordSys.getAxis(coordDim); // dataToCoord mapping may not be linear, but must be monotonic.\n\n  var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n    // offset will be calculated later.\n    return {\n      coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n      color: stop.color\n    };\n  });\n  var stopLen = colorStops.length;\n  var outerColors = visualMeta.outerColors.slice();\n\n  if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n    colorStops.reverse();\n    outerColors.reverse();\n  }\n\n  var colorStopsInRange = clipColorStops(colorStops, coordDim === 'x' ? api.getWidth() : api.getHeight());\n  var inRangeStopLen = colorStopsInRange.length;\n\n  if (!inRangeStopLen && stopLen) {\n    // All stops are out of range. All will be the same color.\n    return colorStops[0].coord < 0 ? outerColors[1] ? outerColors[1] : colorStops[stopLen - 1].color : outerColors[0] ? outerColors[0] : colorStops[0].color;\n  }\n\n  var tinyExtent = 10; // Arbitrary value: 10px\n\n  var minCoord = colorStopsInRange[0].coord - tinyExtent;\n  var maxCoord = colorStopsInRange[inRangeStopLen - 1].coord + tinyExtent;\n  var coordSpan = maxCoord - minCoord;\n\n  if (coordSpan < 1e-3) {\n    return 'transparent';\n  }\n\n  zrUtil.each(colorStopsInRange, function (stop) {\n    stop.offset = (stop.coord - minCoord) / coordSpan;\n  });\n  colorStopsInRange.push({\n    // NOTE: inRangeStopLen may still be 0 if stoplen is zero.\n    offset: inRangeStopLen ? colorStopsInRange[inRangeStopLen - 1].offset : 0.5,\n    color: outerColors[1] || 'transparent'\n  });\n  colorStopsInRange.unshift({\n    offset: inRangeStopLen ? colorStopsInRange[0].offset : 0.5,\n    color: outerColors[0] || 'transparent'\n  });\n  var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStopsInRange, true);\n  gradient[coordDim] = minCoord;\n  gradient[coordDim + '2'] = maxCoord;\n  return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n  var showAllSymbol = seriesModel.get('showAllSymbol');\n  var isAuto = showAllSymbol === 'auto';\n\n  if (showAllSymbol && !isAuto) {\n    return;\n  }\n\n  var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n  if (!categoryAxis) {\n    return;\n  } // Note that category label interval strategy might bring some weird effect\n  // in some scenario: users may wonder why some of the symbols are not\n  // displayed. So we show all symbols as possible as we can.\n\n\n  if (isAuto // Simplify the logic, do not determine label overlap here.\n  && canShowAllSymbolForCategory(categoryAxis, data)) {\n    return;\n  } // Otherwise follow the label interval strategy on category axis.\n\n\n  var categoryDataDim = data.mapDimension(categoryAxis.dim);\n  var labelMap = {};\n  zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n    var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue);\n    labelMap[ordinalNumber] = 1;\n  });\n  return function (dataIndex) {\n    return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n  };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n  // In mose cases, line is monotonous on category axis, and the label size\n  // is close with each other. So we check the symbol size and some of the\n  // label size alone with the category axis to estimate whether all symbol\n  // can be shown without overlap.\n  var axisExtent = categoryAxis.getExtent();\n  var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n  isNaN(availSize) && (availSize = 0); // 0/0 is NaN.\n  // Sampling some points, max 5.\n\n  var dataLen = data.count();\n  var step = Math.max(1, Math.round(dataLen / 5));\n\n  for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n    if (SymbolClz.getSymbolSize(data, dataIndex // Only for cartesian, where `isHorizontal` exists.\n    )[categoryAxis.isHorizontal() ? 1 : 0] // Empirical number\n    * 1.5 > availSize) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction getLastIndexNotNull(points) {\n  var len = points.length / 2;\n\n  for (; len > 0; len--) {\n    if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n      break;\n    }\n  }\n\n  return len - 1;\n}\n\nfunction getPointAtIndex(points, idx) {\n  return [points[idx * 2], points[idx * 2 + 1]];\n}\n\nfunction getIndexRange(points, xOrY, dim) {\n  var len = points.length / 2;\n  var dimIdx = dim === 'x' ? 0 : 1;\n  var a;\n  var b;\n  var prevIndex = 0;\n  var nextIndex = -1;\n\n  for (var i = 0; i < len; i++) {\n    b = points[i * 2 + dimIdx];\n\n    if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\n      continue;\n    }\n\n    if (i === 0) {\n      a = b;\n      continue;\n    }\n\n    if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\n      nextIndex = i;\n      break;\n    }\n\n    prevIndex = i;\n    a = b;\n  }\n\n  return {\n    range: [prevIndex, nextIndex],\n    t: (xOrY - a) / (b - a)\n  };\n}\n\nfunction anyStateShowEndLabel(seriesModel) {\n  if (seriesModel.get(['endLabel', 'show'])) {\n    return true;\n  }\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    if (seriesModel.get([SPECIAL_STATES[i], 'endLabel', 'show'])) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nfunction createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    var endLabelModel_1 = seriesModel.getModel('endLabel');\n    var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\n    var data_1 = seriesModel.getData();\n    var labelAnimationRecord_1 = {\n      lastFrameIndex: 0\n    };\n    var during = anyStateShowEndLabel(seriesModel) ? function (percent, clipRect) {\n      lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\n    } : null;\n    var isHorizontal = coordSys.getBaseAxis().isHorizontal();\n    var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\n      var endLabel = lineView._endLabel;\n\n      if (endLabel && hasAnimation) {\n        if (labelAnimationRecord_1.originalX != null) {\n          endLabel.attr({\n            x: labelAnimationRecord_1.originalX,\n            y: labelAnimationRecord_1.originalY\n          });\n        }\n      }\n    }, during); // Expand clip shape to avoid clipping when line value exceeds axis\n\n    if (!seriesModel.get('clip', true)) {\n      var rectShape = clipPath.shape;\n      var expandSize = Math.max(rectShape.width, rectShape.height);\n\n      if (isHorizontal) {\n        rectShape.y -= expandSize;\n        rectShape.height += expandSize * 2;\n      } else {\n        rectShape.x -= expandSize;\n        rectShape.width += expandSize * 2;\n      }\n    } // Set to the final frame. To make sure label layout is right.\n\n\n    if (during) {\n      during(1, clipPath);\n    }\n\n    return clipPath;\n  } else {\n    if (process.env.NODE_ENV !== 'production') {\n      if (seriesModel.get(['endLabel', 'show'])) {\n        console.warn('endLabel is not supported for lines in polar systems.');\n      }\n    }\n\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  }\n}\n\nfunction getEndLabelStateSpecified(endLabelModel, coordSys) {\n  var baseAxis = coordSys.getBaseAxis();\n  var isHorizontal = baseAxis.isHorizontal();\n  var isBaseInversed = baseAxis.inverse;\n  var align = isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center';\n  var verticalAlign = isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom';\n  return {\n    normal: {\n      align: endLabelModel.get('align') || align,\n      verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign\n    }\n  };\n}\n\nvar LineView =\n/** @class */\nfunction (_super) {\n  __extends(LineView, _super);\n\n  function LineView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  LineView.prototype.init = function () {\n    var lineGroup = new graphic.Group();\n    var symbolDraw = new SymbolDraw();\n    this.group.add(symbolDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineGroup = lineGroup;\n  };\n\n  LineView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var lineStyleModel = seriesModel.getModel('lineStyle');\n    var areaStyleModel = seriesModel.getModel('areaStyle');\n    var points = data.getLayout('points') || [];\n    var isCoordSysPolar = coordSys.type === 'polar';\n    var prevCoordSys = this._coordSys;\n    var symbolDraw = this._symbolDraw;\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var lineGroup = this._lineGroup;\n    var hasAnimation = seriesModel.get('animation');\n    var isAreaChart = !areaStyleModel.isEmpty();\n    var valueOrigin = areaStyleModel.get('origin');\n    var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n    var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\n    var showSymbol = seriesModel.get('showSymbol');\n    var connectNulls = seriesModel.get('connectNulls');\n    var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys); // Remove temporary symbols\n\n    var oldData = this._data;\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    }); // Remove previous created symbols if showSymbol changed to false\n\n    if (!showSymbol) {\n      symbolDraw.remove();\n    }\n\n    group.add(lineGroup); // FIXME step not support polar\n\n    var step = !isCoordSysPolar ? seriesModel.get('step') : false;\n    var clipShapeForSymbol;\n\n    if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\n      clipShapeForSymbol = coordSys.getArea(); // Avoid float number rounding error for symbol on the edge of axis extent.\n      // See #7913 and `test/dataZoom-clip.html`.\n\n      if (clipShapeForSymbol.width != null) {\n        clipShapeForSymbol.x -= 0.1;\n        clipShapeForSymbol.y -= 0.1;\n        clipShapeForSymbol.width += 0.2;\n        clipShapeForSymbol.height += 0.2;\n      } else if (clipShapeForSymbol.r0) {\n        clipShapeForSymbol.r0 -= 0.5;\n        clipShapeForSymbol.r += 0.5;\n      }\n    }\n\n    this._clipShapeForSymbol = clipShapeForSymbol;\n    var visualColor = getVisualGradient(data, coordSys, api) || data.getVisual('style')[data.getVisual('drawType')]; // Initialization animation or coordinate system changed\n\n    if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n      hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\n\n      if (step) {\n        // TODO If stacked series is not step\n        points = turnPointsIntoStep(points, coordSys, step, connectNulls);\n\n        if (stackedOnPoints) {\n          stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step, connectNulls);\n        }\n      }\n\n      polyline = this._newPolyline(points);\n\n      if (isAreaChart) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      } // If areaStyle is removed\n      else if (polygon) {\n          lineGroup.remove(polygon);\n          polygon = this._polygon = null;\n        } // NOTE: Must update _endLabel before setClipPath.\n\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys, convertToColorString(visualColor));\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n    } else {\n      if (isAreaChart && !polygon) {\n        // If areaStyle is added\n        polygon = this._newPolygon(points, stackedOnPoints);\n      } else if (polygon && !isAreaChart) {\n        // If areaStyle is removed\n        lineGroup.remove(polygon);\n        polygon = this._polygon = null;\n      } // NOTE: Must update _endLabel before setClipPath.\n\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys, convertToColorString(visualColor));\n      } // Update clipPath\n\n\n      var oldClipPath = lineGroup.getClipPath();\n\n      if (oldClipPath) {\n        var newClipPath = createLineClipPath(this, coordSys, false, seriesModel);\n        graphic.initProps(oldClipPath, {\n          shape: newClipPath.shape\n        }, seriesModel);\n      } else {\n        lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n      } // Always update, or it is wrong in the case turning on legend\n      // because points are not changed\n\n\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      }); // In the case data zoom triggerred refreshing frequently\n      // Data may not change if line has a category axis. So it should animate nothing\n\n      if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n        if (hasAnimation) {\n          this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin, connectNulls);\n        } else {\n          // Not do it in update with animation\n          if (step) {\n            // TODO If stacked series is not step\n            points = turnPointsIntoStep(points, coordSys, step, connectNulls);\n\n            if (stackedOnPoints) {\n              stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step, connectNulls);\n            }\n          }\n\n          polyline.setShape({\n            points: points\n          });\n          polygon && polygon.setShape({\n            points: points,\n            stackedOnPoints: stackedOnPoints\n          });\n        }\n      }\n    }\n\n    var emphasisModel = seriesModel.getModel('emphasis');\n    var focus = emphasisModel.get('focus');\n    var blurScope = emphasisModel.get('blurScope');\n    var emphasisDisabled = emphasisModel.get('disabled');\n    polyline.useStyle(zrUtil.defaults( // Use color in lineStyle first\n    lineStyleModel.getLineStyle(), {\n      fill: 'none',\n      stroke: visualColor,\n      lineJoin: 'bevel'\n    }));\n    setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\n\n    if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\n      var emphasisLineStyle = polyline.getState('emphasis').style;\n      emphasisLineStyle.lineWidth = +polyline.style.lineWidth + 1;\n    } // Needs seriesIndex for focus\n\n\n    getECData(polyline).seriesIndex = seriesModel.seriesIndex;\n    toggleHoverEmphasis(polyline, focus, blurScope, emphasisDisabled);\n    var smooth = getSmooth(seriesModel.get('smooth'));\n    var smoothMonotone = seriesModel.get('smoothMonotone');\n    polyline.setShape({\n      smooth: smooth,\n      smoothMonotone: smoothMonotone,\n      connectNulls: connectNulls\n    });\n\n    if (polygon) {\n      var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n      var stackedOnSmooth = 0;\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: visualColor,\n        opacity: 0.7,\n        lineJoin: 'bevel',\n        decal: data.getVisual('style').decal\n      }));\n\n      if (stackedOnSeries) {\n        stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n      }\n\n      polygon.setShape({\n        smooth: smooth,\n        stackedOnSmooth: stackedOnSmooth,\n        smoothMonotone: smoothMonotone,\n        connectNulls: connectNulls\n      });\n      setStatesStylesFromModel(polygon, seriesModel, 'areaStyle'); // Needs seriesIndex for focus\n\n      getECData(polygon).seriesIndex = seriesModel.seriesIndex;\n      toggleHoverEmphasis(polygon, focus, blurScope, emphasisDisabled);\n    }\n\n    var changePolyState = function (toState) {\n      _this._changePolyState(toState);\n    };\n\n    data.eachItemGraphicEl(function (el) {\n      // Switch polyline / polygon state if element changed its state.\n      el && (el.onHoverStateChange = changePolyState);\n    });\n    this._polyline.onHoverStateChange = changePolyState;\n    this._data = data; // Save the coordinate system for transition animation when data changed\n\n    this._coordSys = coordSys;\n    this._stackedOnPoints = stackedOnPoints;\n    this._points = points;\n    this._step = step;\n    this._valueOrigin = valueOrigin;\n\n    if (seriesModel.get('triggerLineEvent')) {\n      this.packEventData(seriesModel, polyline);\n      polygon && this.packEventData(seriesModel, polygon);\n    }\n  };\n\n  LineView.prototype.packEventData = function (seriesModel, el) {\n    getECData(el).eventData = {\n      componentType: 'series',\n      componentSubType: 'line',\n      componentIndex: seriesModel.componentIndex,\n      seriesIndex: seriesModel.seriesIndex,\n      seriesName: seriesModel.name,\n      seriesType: 'line'\n    };\n  };\n\n  LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('emphasis');\n\n    if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n      var points = data.getLayout('points');\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (!symbol) {\n        // Create a temporary symbol if it is not exists\n        var x = points[dataIndex * 2];\n        var y = points[dataIndex * 2 + 1];\n\n        if (isNaN(x) || isNaN(y)) {\n          // Null data\n          return;\n        } // fix #11360: should't draw symbol outside clipShapeForSymbol\n\n\n        if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\n          return;\n        }\n\n        var zlevel = seriesModel.get('zlevel');\n        var z = seriesModel.get('z');\n        symbol = new SymbolClz(data, dataIndex);\n        symbol.x = x;\n        symbol.y = y;\n        symbol.setZ(zlevel, z); // ensure label text of the temporary symbol is in front of line and area polygon\n\n        var symbolLabel = symbol.getSymbolPath().getTextContent();\n\n        if (symbolLabel) {\n          symbolLabel.zlevel = zlevel;\n          symbolLabel.z = z;\n          symbolLabel.z2 = this._polyline.z2 + 1;\n        }\n\n        symbol.__temp = true;\n        data.setItemGraphicEl(dataIndex, symbol); // Stop scale animation\n\n        symbol.stopSymbolAnimation(true);\n        this.group.add(symbol);\n      }\n\n      symbol.highlight();\n    } else {\n      // Highlight whole series\n      ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('normal');\n\n    if (dataIndex != null && dataIndex >= 0) {\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (symbol) {\n        if (symbol.__temp) {\n          data.setItemGraphicEl(dataIndex, null);\n          this.group.remove(symbol);\n        } else {\n          symbol.downplay();\n        }\n      }\n    } else {\n      // FIXME\n      // can not downplay completely.\n      // Downplay whole series\n      ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype._changePolyState = function (toState) {\n    var polygon = this._polygon;\n    setStatesFlag(this._polyline, toState);\n    polygon && setStatesFlag(polygon, toState);\n  };\n\n  LineView.prototype._newPolyline = function (points) {\n    var polyline = this._polyline; // Remove previous created polyline\n\n    if (polyline) {\n      this._lineGroup.remove(polyline);\n    }\n\n    polyline = new ECPolyline({\n      shape: {\n        points: points\n      },\n      segmentIgnoreThreshold: 2,\n      z2: 10\n    });\n\n    this._lineGroup.add(polyline);\n\n    this._polyline = polyline;\n    return polyline;\n  };\n\n  LineView.prototype._newPolygon = function (points, stackedOnPoints) {\n    var polygon = this._polygon; // Remove previous created polygon\n\n    if (polygon) {\n      this._lineGroup.remove(polygon);\n    }\n\n    polygon = new ECPolygon({\n      shape: {\n        points: points,\n        stackedOnPoints: stackedOnPoints\n      },\n      segmentIgnoreThreshold: 2\n    });\n\n    this._lineGroup.add(polygon);\n\n    this._polygon = polygon;\n    return polygon;\n  };\n\n  LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\n    var isHorizontalOrRadial;\n    var isCoordSysPolar;\n    var baseAxis = coordSys.getBaseAxis();\n    var isAxisInverse = baseAxis.inverse;\n\n    if (coordSys.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n      isCoordSysPolar = false;\n    } else if (coordSys.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n      isCoordSysPolar = true;\n    }\n\n    var seriesModel = data.hostModel;\n    var seriesDuration = seriesModel.get('animationDuration');\n\n    if (zrUtil.isFunction(seriesDuration)) {\n      seriesDuration = seriesDuration(null);\n    }\n\n    var seriesDalay = seriesModel.get('animationDelay') || 0;\n    var seriesDalayValue = zrUtil.isFunction(seriesDalay) ? seriesDalay(null) : seriesDalay;\n    data.eachItemGraphicEl(function (symbol, idx) {\n      var el = symbol;\n\n      if (el) {\n        var point = [symbol.x, symbol.y];\n        var start = void 0;\n        var end = void 0;\n        var current = void 0;\n\n        if (clipShape) {\n          if (isCoordSysPolar) {\n            var polarClip = clipShape;\n            var coord = coordSys.pointToCoord(point);\n\n            if (isHorizontalOrRadial) {\n              start = polarClip.startAngle;\n              end = polarClip.endAngle;\n              current = -coord[1] / 180 * Math.PI;\n            } else {\n              start = polarClip.r0;\n              end = polarClip.r;\n              current = coord[0];\n            }\n          } else {\n            var gridClip = clipShape;\n\n            if (isHorizontalOrRadial) {\n              start = gridClip.x;\n              end = gridClip.x + gridClip.width;\n              current = symbol.x;\n            } else {\n              start = gridClip.y + gridClip.height;\n              end = gridClip.y;\n              current = symbol.y;\n            }\n          }\n        }\n\n        var ratio = end === start ? 0 : (current - start) / (end - start);\n\n        if (isAxisInverse) {\n          ratio = 1 - ratio;\n        }\n\n        var delay = zrUtil.isFunction(seriesDalay) ? seriesDalay(idx) : seriesDuration * ratio + seriesDalayValue;\n        var symbolPath = el.getSymbolPath();\n        var text = symbolPath.getTextContent();\n        el.attr({\n          scaleX: 0,\n          scaleY: 0\n        });\n        el.animateTo({\n          scaleX: 1,\n          scaleY: 1\n        }, {\n          duration: 200,\n          setToFinal: true,\n          delay: delay\n        });\n\n        if (text) {\n          text.animateFrom({\n            style: {\n              opacity: 0\n            }\n          }, {\n            duration: 300,\n            delay: delay\n          });\n        }\n\n        symbolPath.disableLabelAnimation = true;\n      }\n    });\n  };\n\n  LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys, inheritColor) {\n    var endLabelModel = seriesModel.getModel('endLabel');\n\n    if (anyStateShowEndLabel(seriesModel)) {\n      var data_2 = seriesModel.getData();\n      var polyline = this._polyline; // series may be filtered.\n\n      var points = data_2.getLayout('points');\n\n      if (!points) {\n        polyline.removeTextContent();\n        this._endLabel = null;\n        return;\n      }\n\n      var endLabel = this._endLabel;\n\n      if (!endLabel) {\n        endLabel = this._endLabel = new graphic.Text({\n          z2: 200 // should be higher than item symbol\n\n        });\n        endLabel.ignoreClip = true;\n        polyline.setTextContent(this._endLabel);\n        polyline.disableLabelAnimation = true;\n      } // Find last non-NaN data to display data\n\n\n      var dataIndex = getLastIndexNotNull(points);\n\n      if (dataIndex >= 0) {\n        setLabelStyle(polyline, getLabelStatesModels(seriesModel, 'endLabel'), {\n          inheritColor: inheritColor,\n          labelFetcher: seriesModel,\n          labelDataIndex: dataIndex,\n          defaultText: function (dataIndex, opt, interpolatedValue) {\n            return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex);\n          },\n          enableTextSetter: true\n        }, getEndLabelStateSpecified(endLabelModel, coordSys));\n        polyline.textConfig.position = null;\n      }\n    } else if (this._endLabel) {\n      this._polyline.removeTextContent();\n\n      this._endLabel = null;\n    }\n  };\n\n  LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\n    var endLabel = this._endLabel;\n    var polyline = this._polyline;\n\n    if (endLabel) {\n      // NOTE: Don't remove percent < 1. percent === 1 means the first frame during render.\n      // The label is not prepared at this time.\n      if (percent < 1 && animationRecord.originalX == null) {\n        animationRecord.originalX = endLabel.x;\n        animationRecord.originalY = endLabel.y;\n      }\n\n      var points = data.getLayout('points');\n      var seriesModel = data.hostModel;\n      var connectNulls = seriesModel.get('connectNulls');\n      var precision = endLabelModel.get('precision');\n      var distance = endLabelModel.get('distance') || 0;\n      var baseAxis = coordSys.getBaseAxis();\n      var isHorizontal = baseAxis.isHorizontal();\n      var isBaseInversed = baseAxis.inverse;\n      var clipShape = clipRect.shape;\n      var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y;\n      var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1);\n      var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1);\n      var dim = isHorizontal ? 'x' : 'y';\n      var dataIndexRange = getIndexRange(points, xOrY, dim);\n      var indices = dataIndexRange.range;\n      var diff = indices[1] - indices[0];\n      var value = void 0;\n\n      if (diff >= 1) {\n        // diff > 1 && connectNulls, which is on the null data.\n        if (diff > 1 && !connectNulls) {\n          var pt = getPointAtIndex(points, indices[0]);\n          endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          valueAnimation && (value = seriesModel.getRawValue(indices[0]));\n        } else {\n          var pt = polyline.getPointOn(xOrY, dim);\n          pt && endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          var startValue = seriesModel.getRawValue(indices[0]);\n          var endValue = seriesModel.getRawValue(indices[1]);\n          valueAnimation && (value = modelUtil.interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\n        }\n\n        animationRecord.lastFrameIndex = indices[0];\n      } else {\n        // If diff <= 0, which is the range is not found(Include NaN)\n        // Choose the first point or last point.\n        var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0;\n        var pt = getPointAtIndex(points, idx);\n        valueAnimation && (value = seriesModel.getRawValue(idx));\n        endLabel.attr({\n          x: pt[0] + distanceX,\n          y: pt[1] + distanceY\n        });\n      }\n\n      if (valueAnimation) {\n        labelInner(endLabel).setLabelText(value);\n      }\n    }\n  };\n  /**\n   * @private\n   */\n  // FIXME Two value axis\n\n\n  LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin, connectNulls) {\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var seriesModel = data.hostModel;\n    var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n    var current = diff.current;\n    var stackedOnCurrent = diff.stackedOnCurrent;\n    var next = diff.next;\n    var stackedOnNext = diff.stackedOnNext;\n\n    if (step) {\n      // TODO If stacked series is not step\n      current = turnPointsIntoStep(diff.current, coordSys, step, connectNulls);\n      stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step, connectNulls);\n      next = turnPointsIntoStep(diff.next, coordSys, step, connectNulls);\n      stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step, connectNulls);\n    } // Don't apply animation if diff is large.\n    // For better result and avoid memory explosion problems like\n    // https://github.com/apache/incubator-echarts/issues/12229\n\n\n    if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) {\n      polyline.stopAnimation();\n      polyline.setShape({\n        points: next\n      });\n\n      if (polygon) {\n        polygon.stopAnimation();\n        polygon.setShape({\n          points: next,\n          stackedOnPoints: stackedOnNext\n        });\n      }\n\n      return;\n    }\n\n    polyline.shape.__points = diff.current;\n    polyline.shape.points = current;\n    var target = {\n      shape: {\n        points: next\n      }\n    }; // Also animate the original points.\n    // If points reference is changed when turning into step line.\n\n    if (diff.current !== current) {\n      target.shape.__points = diff.next;\n    } // Stop previous animation.\n\n\n    polyline.stopAnimation();\n    graphic.updateProps(polyline, target, seriesModel);\n\n    if (polygon) {\n      polygon.setShape({\n        // Reuse the points with polyline.\n        points: current,\n        stackedOnPoints: stackedOnCurrent\n      });\n      polygon.stopAnimation();\n      graphic.updateProps(polygon, {\n        shape: {\n          stackedOnPoints: stackedOnNext\n        }\n      }, seriesModel); // If use attr directly in updateProps.\n\n      if (polyline.shape.points !== polygon.shape.points) {\n        polygon.shape.points = polyline.shape.points;\n      }\n    }\n\n    var updatedDataInfo = [];\n    var diffStatus = diff.status;\n\n    for (var i = 0; i < diffStatus.length; i++) {\n      var cmd = diffStatus[i].cmd;\n\n      if (cmd === '=') {\n        var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n        if (el) {\n          updatedDataInfo.push({\n            el: el,\n            ptIdx: i // Index of points\n\n          });\n        }\n      }\n    }\n\n    if (polyline.animators && polyline.animators.length) {\n      polyline.animators[0].during(function () {\n        polygon && polygon.dirtyShape();\n        var points = polyline.shape.__points;\n\n        for (var i = 0; i < updatedDataInfo.length; i++) {\n          var el = updatedDataInfo[i].el;\n          var offset = updatedDataInfo[i].ptIdx * 2;\n          el.x = points[offset];\n          el.y = points[offset + 1];\n          el.markRedraw();\n        }\n      });\n    }\n  };\n\n  LineView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var oldData = this._data;\n\n    this._lineGroup.removeAll();\n\n    this._symbolDraw.remove(true); // Remove temporary created elements when highlighting\n\n\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n    this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null;\n  };\n\n  LineView.type = 'line';\n  return LineView;\n}(ChartView);\n\nexport default LineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { map } from 'zrender/lib/core/util.js';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner.js';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper.js';\nimport { createFloat32Array } from '../util/vendor.js';\nexport default function pointsLayout(seriesType, forceStoreInTypedArray) {\n  return {\n    seriesType: seriesType,\n    plan: createRenderPlanner(),\n    reset: function (seriesModel) {\n      var data = seriesModel.getData();\n      var coordSys = seriesModel.coordinateSystem;\n      var pipelineContext = seriesModel.pipelineContext;\n      var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\n\n      if (!coordSys) {\n        return;\n      }\n\n      var dims = map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }).slice(0, 2);\n      var dimLen = dims.length;\n      var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n      if (isDimensionStacked(data, dims[0])) {\n        dims[0] = stackResultDim;\n      }\n\n      if (isDimensionStacked(data, dims[1])) {\n        dims[1] = stackResultDim;\n      }\n\n      var store = data.getStore();\n      var dimIdx0 = data.getDimensionIndex(dims[0]);\n      var dimIdx1 = data.getDimensionIndex(dims[1]);\n      return dimLen && {\n        progress: function (params, data) {\n          var segCount = params.end - params.start;\n          var points = useTypedArray && createFloat32Array(segCount * dimLen);\n          var tmpIn = [];\n          var tmpOut = [];\n\n          for (var i = params.start, offset = 0; i < params.end; i++) {\n            var point = void 0;\n\n            if (dimLen === 1) {\n              var x = store.get(dimIdx0, i); // NOTE: Make sure the second parameter is null to use default strategy.\n\n              point = coordSys.dataToPoint(x, null, tmpOut);\n            } else {\n              tmpIn[0] = store.get(dimIdx0, i);\n              tmpIn[1] = store.get(dimIdx1, i); // Let coordinate system to handle the NaN data.\n\n              point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n            }\n\n            if (useTypedArray) {\n              points[offset++] = point[0];\n              points[offset++] = point[1];\n            } else {\n              data.setItemLayout(i, point.slice());\n            }\n          }\n\n          useTypedArray && data.setLayout('points', points);\n        }\n      };\n    }\n  };\n}\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isFunction, isString } from 'zrender/lib/core/util.js';\nvar samplers = {\n  average: function (frame) {\n    var sum = 0;\n    var count = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      if (!isNaN(frame[i])) {\n        sum += frame[i];\n        count++;\n      }\n    } // Return NaN if count is 0\n\n\n    return count === 0 ? NaN : sum / count;\n  },\n  sum: function (frame) {\n    var sum = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      // Ignore NaN\n      sum += frame[i] || 0;\n    }\n\n    return sum;\n  },\n  max: function (frame) {\n    var max = -Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] > max && (max = frame[i]);\n    } // NaN will cause illegal axis extent.\n\n\n    return isFinite(max) ? max : NaN;\n  },\n  min: function (frame) {\n    var min = Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] < min && (min = frame[i]);\n    } // NaN will cause illegal axis extent.\n\n\n    return isFinite(min) ? min : NaN;\n  },\n  // TODO\n  // Median\n  nearest: function (frame) {\n    return frame[0];\n  }\n};\n\nvar indexSampler = function (frame) {\n  return Math.round(frame.length / 2);\n};\n\nexport default function dataSample(seriesType) {\n  return {\n    seriesType: seriesType,\n    // FIXME:TS never used, so comment it\n    // modifyOutputEnd: true,\n    reset: function (seriesModel, ecModel, api) {\n      var data = seriesModel.getData();\n      var sampling = seriesModel.get('sampling');\n      var coordSys = seriesModel.coordinateSystem;\n      var count = data.count(); // Only cartesian2d support down sampling. Disable it when there is few data.\n\n      if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\n        var baseAxis = coordSys.getBaseAxis();\n        var valueAxis = coordSys.getOtherAxis(baseAxis);\n        var extent = baseAxis.getExtent();\n        var dpr = api.getDevicePixelRatio(); // Coordinste system has been resized\n\n        var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\n        var rate = Math.round(count / size);\n\n        if (isFinite(rate) && rate > 1) {\n          if (sampling === 'lttb') {\n            seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\n          }\n\n          var sampler = void 0;\n\n          if (isString(sampling)) {\n            sampler = samplers[sampling];\n          } else if (isFunction(sampling)) {\n            sampler = sampling;\n          }\n\n          if (sampler) {\n            // Only support sample the first dim mapped from value axis.\n            seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n          }\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport LineSeries from './LineSeries.js';\nimport LineView from './LineView.js'; // In case developer forget to include grid component\n\nimport layoutPoints from '../../layout/points.js';\nimport dataSample from '../../processor/dataSample.js';\nexport function install(registers) {\n  registers.registerChartView(LineView);\n  registers.registerSeriesModel(LineSeries);\n  registers.registerLayout(layoutPoints('line', true));\n  registers.registerVisual({\n    seriesType: 'line',\n    reset: function (seriesModel) {\n      var data = seriesModel.getData(); // Visual coding for legend\n\n      var lineStyle = seriesModel.getModel('lineStyle').getLineStyle();\n\n      if (lineStyle && !lineStyle.stroke) {\n        // Fill in visual should be palette color if\n        // has color callback\n        lineStyle.stroke = data.getVisual('style').fill;\n      }\n\n      data.setVisual('legendLineStyle', lineStyle);\n    }\n  }); // Down sample after filter\n\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport createSeriesData from '../helper/createSeriesData.js';\n\nvar BaseBarSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(BaseBarSeriesModel, _super);\n\n  function BaseBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BaseBarSeriesModel.type;\n    return _this;\n  }\n\n  BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createSeriesData(null, this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\n    var coordSys = this.coordinateSystem;\n\n    if (coordSys && coordSys.clampData) {\n      // PENDING if clamp ?\n      var pt = coordSys.dataToPoint(coordSys.clampData(value));\n      var data = this.getData();\n      var offset = data.getLayout('offset');\n      var size = data.getLayout('size');\n      var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n      pt[offsetIndex] += offset + size / 2;\n      return pt;\n    }\n\n    return [NaN, NaN];\n  };\n\n  BaseBarSeriesModel.type = 'series.__base_bar__';\n  BaseBarSeriesModel.defaultOption = {\n    // zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    // stack: null\n    // Cartesian coordinate system\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    barMinHeight: 0,\n    barMinAngle: 0,\n    // cursor: null,\n    large: false,\n    largeThreshold: 400,\n    progressive: 3e3,\n    progressiveChunkMode: 'mod'\n  };\n  return BaseBarSeriesModel;\n}(SeriesModel);\n\nSeriesModel.registerClass(BaseBarSeriesModel);\nexport default BaseBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries.js';\nimport createSeriesData from '../helper/createSeriesData.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar BarSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(BarSeriesModel, _super);\n\n  function BarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BarSeriesModel.type;\n    return _this;\n  }\n\n  BarSeriesModel.prototype.getInitialData = function () {\n    return createSeriesData(null, this, {\n      useEncodeDefaulter: true,\n      createInvertedIndices: !!this.get('realtimeSort', true) || null\n    });\n  };\n  /**\n   * @override\n   */\n\n\n  BarSeriesModel.prototype.getProgressive = function () {\n    // Do not support progressive in normal mode.\n    return this.get('large') ? this.get('progressive') : false;\n  };\n  /**\n   * @override\n   */\n\n\n  BarSeriesModel.prototype.getProgressiveThreshold = function () {\n    // Do not support progressive in normal mode.\n    var progressiveThreshold = this.get('progressiveThreshold');\n    var largeThreshold = this.get('largeThreshold');\n\n    if (largeThreshold > progressiveThreshold) {\n      progressiveThreshold = largeThreshold;\n    }\n\n    return progressiveThreshold;\n  };\n\n  BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.rect(data.getItemLayout(dataIndex));\n  };\n\n  BarSeriesModel.type = 'series.bar';\n  BarSeriesModel.dependencies = ['grid', 'polar'];\n  BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    // If clipped\n    // Only available on cartesian2d\n    clip: true,\n    roundCap: false,\n    showBackground: false,\n    backgroundStyle: {\n      color: 'rgba(180, 180, 180, 0.2)',\n      borderColor: null,\n      borderWidth: 0,\n      borderType: 'solid',\n      borderRadius: 0,\n      shadowBlur: 0,\n      shadowColor: null,\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    realtimeSort: false\n  });\n  return BarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default BarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { Path } from '../graphic.js';\n/**\n * Sausage: similar to sector, but have half circle on both sides\n */\n\nvar SausageShape =\n/** @class */\nfunction () {\n  function SausageShape() {\n    this.cx = 0;\n    this.cy = 0;\n    this.r0 = 0;\n    this.r = 0;\n    this.startAngle = 0;\n    this.endAngle = Math.PI * 2;\n    this.clockwise = true;\n  }\n\n  return SausageShape;\n}();\n\nvar SausagePath =\n/** @class */\nfunction (_super) {\n  __extends(SausagePath, _super);\n\n  function SausagePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'sausage';\n    return _this;\n  }\n\n  SausagePath.prototype.getDefaultShape = function () {\n    return new SausageShape();\n  };\n\n  SausagePath.prototype.buildPath = function (ctx, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var r0 = Math.max(shape.r0 || 0, 0);\n    var r = Math.max(shape.r, 0);\n    var dr = (r - r0) * 0.5;\n    var rCenter = r0 + dr;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var clockwise = shape.clockwise;\n    var PI2 = Math.PI * 2;\n    var lessThanCircle = clockwise ? endAngle - startAngle < PI2 : startAngle - endAngle < PI2;\n\n    if (!lessThanCircle) {\n      // Normalize angles\n      startAngle = endAngle - (clockwise ? PI2 : -PI2);\n    }\n\n    var unitStartX = Math.cos(startAngle);\n    var unitStartY = Math.sin(startAngle);\n    var unitEndX = Math.cos(endAngle);\n    var unitEndY = Math.sin(endAngle);\n\n    if (lessThanCircle) {\n      ctx.moveTo(unitStartX * r0 + cx, unitStartY * r0 + cy);\n      ctx.arc(unitStartX * rCenter + cx, unitStartY * rCenter + cy, dr, -Math.PI + startAngle, startAngle, !clockwise);\n    } else {\n      ctx.moveTo(unitStartX * r + cx, unitStartY * r + cy);\n    }\n\n    ctx.arc(cx, cy, r, startAngle, endAngle, !clockwise);\n    ctx.arc(unitEndX * rCenter + cx, unitEndY * rCenter + cy, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\n\n    if (r0 !== 0) {\n      ctx.arc(cx, cy, r0, endAngle, startAngle, clockwise);\n    } // ctx.closePath();\n\n  };\n\n  return SausagePath;\n}(Path);\n\nexport default SausagePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { calculateTextPosition } from 'zrender/lib/contain/text.js';\nimport { isArray, isNumber } from 'zrender/lib/core/util.js';\nexport function createSectorCalculateTextPosition(positionMapping, opts) {\n  opts = opts || {};\n  var isRoundCap = opts.isRoundCap;\n  return function (out, opts, boundingRect) {\n    var textPosition = opts.position;\n\n    if (!textPosition || textPosition instanceof Array) {\n      return calculateTextPosition(out, opts, boundingRect);\n    }\n\n    var mappedSectorPosition = positionMapping(textPosition);\n    var distance = opts.distance != null ? opts.distance : 5;\n    var sector = this.shape;\n    var cx = sector.cx;\n    var cy = sector.cy;\n    var r = sector.r;\n    var r0 = sector.r0;\n    var middleR = (r + r0) / 2;\n    var startAngle = sector.startAngle;\n    var endAngle = sector.endAngle;\n    var middleAngle = (startAngle + endAngle) / 2;\n    var extraDist = isRoundCap ? Math.abs(r - r0) / 2 : 0;\n    var mathCos = Math.cos;\n    var mathSin = Math.sin; // base position: top-left\n\n    var x = cx + r * mathCos(startAngle);\n    var y = cy + r * mathSin(startAngle);\n    var textAlign = 'left';\n    var textVerticalAlign = 'top';\n\n    switch (mappedSectorPosition) {\n      case 'startArc':\n        x = cx + (r0 - distance) * mathCos(middleAngle);\n        y = cy + (r0 - distance) * mathSin(middleAngle);\n        textAlign = 'center';\n        textVerticalAlign = 'top';\n        break;\n\n      case 'insideStartArc':\n        x = cx + (r0 + distance) * mathCos(middleAngle);\n        y = cy + (r0 + distance) * mathSin(middleAngle);\n        textAlign = 'center';\n        textVerticalAlign = 'bottom';\n        break;\n\n      case 'startAngle':\n        x = cx + middleR * mathCos(startAngle) + adjustAngleDistanceX(startAngle, distance + extraDist, false);\n        y = cy + middleR * mathSin(startAngle) + adjustAngleDistanceY(startAngle, distance + extraDist, false);\n        textAlign = 'right';\n        textVerticalAlign = 'middle';\n        break;\n\n      case 'insideStartAngle':\n        x = cx + middleR * mathCos(startAngle) + adjustAngleDistanceX(startAngle, -distance + extraDist, false);\n        y = cy + middleR * mathSin(startAngle) + adjustAngleDistanceY(startAngle, -distance + extraDist, false);\n        textAlign = 'left';\n        textVerticalAlign = 'middle';\n        break;\n\n      case 'middle':\n        x = cx + middleR * mathCos(middleAngle);\n        y = cy + middleR * mathSin(middleAngle);\n        textAlign = 'center';\n        textVerticalAlign = 'middle';\n        break;\n\n      case 'endArc':\n        x = cx + (r + distance) * mathCos(middleAngle);\n        y = cy + (r + distance) * mathSin(middleAngle);\n        textAlign = 'center';\n        textVerticalAlign = 'bottom';\n        break;\n\n      case 'insideEndArc':\n        x = cx + (r - distance) * mathCos(middleAngle);\n        y = cy + (r - distance) * mathSin(middleAngle);\n        textAlign = 'center';\n        textVerticalAlign = 'top';\n        break;\n\n      case 'endAngle':\n        x = cx + middleR * mathCos(endAngle) + adjustAngleDistanceX(endAngle, distance + extraDist, true);\n        y = cy + middleR * mathSin(endAngle) + adjustAngleDistanceY(endAngle, distance + extraDist, true);\n        textAlign = 'left';\n        textVerticalAlign = 'middle';\n        break;\n\n      case 'insideEndAngle':\n        x = cx + middleR * mathCos(endAngle) + adjustAngleDistanceX(endAngle, -distance + extraDist, true);\n        y = cy + middleR * mathSin(endAngle) + adjustAngleDistanceY(endAngle, -distance + extraDist, true);\n        textAlign = 'right';\n        textVerticalAlign = 'middle';\n        break;\n\n      default:\n        return calculateTextPosition(out, opts, boundingRect);\n    }\n\n    out = out || {};\n    out.x = x;\n    out.y = y;\n    out.align = textAlign;\n    out.verticalAlign = textVerticalAlign;\n    return out;\n  };\n}\nexport function setSectorTextRotation(sector, textPosition, positionMapping, rotateType) {\n  if (isNumber(rotateType)) {\n    // user-set rotation\n    sector.setTextConfig({\n      rotation: rotateType\n    });\n    return;\n  } else if (isArray(textPosition)) {\n    // user-set position, use 0 as auto rotation\n    sector.setTextConfig({\n      rotation: 0\n    });\n    return;\n  }\n\n  var shape = sector.shape;\n  var startAngle = shape.clockwise ? shape.startAngle : shape.endAngle;\n  var endAngle = shape.clockwise ? shape.endAngle : shape.startAngle;\n  var middleAngle = (startAngle + endAngle) / 2;\n  var anchorAngle;\n  var mappedSectorPosition = positionMapping(textPosition);\n\n  switch (mappedSectorPosition) {\n    case 'startArc':\n    case 'insideStartArc':\n    case 'middle':\n    case 'insideEndArc':\n    case 'endArc':\n      anchorAngle = middleAngle;\n      break;\n\n    case 'startAngle':\n    case 'insideStartAngle':\n      anchorAngle = startAngle;\n      break;\n\n    case 'endAngle':\n    case 'insideEndAngle':\n      anchorAngle = endAngle;\n      break;\n\n    default:\n      sector.setTextConfig({\n        rotation: 0\n      });\n      return;\n  }\n\n  var rotate = Math.PI * 1.5 - anchorAngle;\n  /**\n   * TODO: labels with rotate > Math.PI / 2 should be rotate another\n   * half round flipped to increase readability. However, only middle\n   * position supports this for now, because in other positions, the\n   * anchor point is not at the center of the text, so the positions\n   * after rotating is not as expected.\n   */\n\n  if (mappedSectorPosition === 'middle' && rotate > Math.PI / 2 && rotate < Math.PI * 1.5) {\n    rotate -= Math.PI;\n  }\n\n  sector.setTextConfig({\n    rotation: rotate\n  });\n}\n\nfunction adjustAngleDistanceX(angle, distance, isEnd) {\n  return distance * Math.sin(angle) * (isEnd ? -1 : 1);\n}\n\nfunction adjustAngleDistanceY(angle, distance, isEnd) {\n  return distance * Math.cos(angle) * (isEnd ? 1 : -1);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path.js';\nimport Group from 'zrender/lib/graphic/Group.js';\nimport { extend, each, map } from 'zrender/lib/core/util.js';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut, traverseElements } from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation, labelInner } from '../../label/labelStyle.js';\nimport { throttle } from '../../util/throttle.js';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys.js';\nimport Sausage from '../../util/shape/sausage.js';\nimport ChartView from '../../view/Chart.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper.js';\nimport { warn } from '../../util/log.js';\nimport { createSectorCalculateTextPosition, setSectorTextRotation } from '../../label/sectorLabel.js';\nimport { saveOldStyle } from '../../animation/basicTrasition.js';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n  var coordSysClipArea = coord.getArea && coord.getArea();\n\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var baseAxis = coord.getBaseAxis(); // When boundaryGap is false or using time axis. bar may exceed the grid.\n    // We should not clip this part.\n    // See test/bar2.html\n\n    if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n      var expandWidth = data.getLayout('bandWidth');\n\n      if (baseAxis.isHorizontal()) {\n        coordSysClipArea.x -= expandWidth;\n        coordSysClipArea.width += expandWidth * 2;\n      } else {\n        coordSysClipArea.y -= expandWidth;\n        coordSysClipArea.height += expandWidth * 2;\n      }\n    }\n  }\n\n  return coordSysClipArea;\n}\n\nvar BarView =\n/** @class */\nfunction (_super) {\n  __extends(BarView, _super);\n\n  function BarView() {\n    var _this = _super.call(this) || this;\n\n    _this.type = BarView.type;\n    _this._isFirstFrame = true;\n    return _this;\n  }\n\n  BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    this._model = seriesModel;\n\n    this._removeOnRenderedListener(api);\n\n    this._updateDrawMode(seriesModel);\n\n    var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n    if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n      // Clear previously rendered progressive elements.\n      this._progressiveEls = null;\n      this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warn('Only cartesian2d and polar supported for bar.');\n    }\n  };\n\n  BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel); // incremental also need to clip, otherwise might be overlow.\n    // But must not set clip in each frame, otherwise all of the children will be marked redraw.\n\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype.incrementalRender = function (params, seriesModel) {\n    // Reset\n    this._progressiveEls = []; // Do not support progressive in normal mode.\n\n    this._incrementalRenderLarge(params, seriesModel);\n  };\n\n  BarView.prototype.eachRendered = function (cb) {\n    traverseElements(this._progressiveEls || this.group, cb);\n  };\n\n  BarView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coord = seriesModel.coordinateSystem;\n    var baseAxis = coord.getBaseAxis();\n    var isHorizontalOrRadial;\n\n    if (coord.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n    } else if (coord.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n    }\n\n    var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n    var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n    if (realtimeSortCfg) {\n      this._enableRealtimeSort(realtimeSortCfg, data, api);\n    }\n\n    var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n    var coordSysClipArea = getClipArea(coord, data); // If there is clipPath created in large mode. Remove it.\n\n    group.removeClipPath(); // We don't use clipPath in normal mode because we needs a perfect animation\n    // And don't want the label are clipped.\n\n    var roundCap = seriesModel.get('roundCap', true);\n    var drawBackground = seriesModel.get('showBackground', true);\n    var backgroundModel = seriesModel.getModel('backgroundStyle');\n    var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n    var bgEls = [];\n    var oldBgEls = this._backgroundEls;\n    var isInitSort = payload && payload.isInitSort;\n    var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n    function createBackground(dataIndex) {\n      var bgLayout = getLayout[coord.type](data, dataIndex);\n      var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n      bgEl.useStyle(backgroundModel.getItemStyle()); // Only cartesian2d support borderRadius.\n\n      if (coord.type === 'cartesian2d') {\n        bgEl.setShape('r', barBorderRadius);\n      }\n\n      bgEls[dataIndex] = bgEl;\n      return bgEl;\n    }\n\n    ;\n    data.diff(oldData).add(function (dataIndex) {\n      var itemModel = data.getItemModel(dataIndex);\n      var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n      if (drawBackground) {\n        createBackground(dataIndex);\n      } // If dataZoom in filteMode: 'empty', the baseValue can be set as NaN in \"axisProxy\".\n\n\n      if (!data.hasValue(dataIndex) || !isValidLayout[coord.type](layout)) {\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        // Clip will modify the layout params.\n        // And return a boolean to determine if the shape are fully clipped.\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n      }\n\n      var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n\n      if (realtimeSortCfg) {\n        /**\n         * Force label animation because even if the element is\n         * ignored because it's clipped, it may not be clipped after\n         * changing order. Then, if not using forceLabelAnimation,\n         * the label animation was never started, in which case,\n         * the label will be the final value and doesn't have label\n         * animation.\n         */\n        el.forceLabelAnimation = true;\n      }\n\n      updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n      } else {\n        initProps(el, {\n          shape: layout\n        }, seriesModel, dataIndex);\n      }\n\n      data.setItemGraphicEl(dataIndex, el);\n      group.add(el);\n      el.ignore = isClipped;\n    }).update(function (newIndex, oldIndex) {\n      var itemModel = data.getItemModel(newIndex);\n      var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n      if (drawBackground) {\n        var bgEl = void 0;\n\n        if (oldBgEls.length === 0) {\n          bgEl = createBackground(oldIndex);\n        } else {\n          bgEl = oldBgEls[oldIndex];\n          bgEl.useStyle(backgroundModel.getItemStyle()); // Only cartesian2d support borderRadius.\n\n          if (coord.type === 'cartesian2d') {\n            bgEl.setShape('r', barBorderRadius);\n          }\n\n          bgEls[newIndex] = bgEl;\n        }\n\n        var bgLayout = getLayout[coord.type](data, newIndex);\n        var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n        updateProps(bgEl, {\n          shape: shape\n        }, animationModel, newIndex);\n      }\n\n      var el = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex) || !isValidLayout[coord.type](layout)) {\n        group.remove(el);\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n\n        if (isClipped) {\n          group.remove(el);\n        }\n      }\n\n      if (!el) {\n        el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n      } else {\n        saveOldStyle(el);\n      }\n\n      if (realtimeSortCfg) {\n        el.forceLabelAnimation = true;\n      }\n\n      if (isChangeOrder) {\n        var textEl = el.getTextContent();\n\n        if (textEl) {\n          var labelInnerStore = labelInner(textEl);\n\n          if (labelInnerStore.prevValue != null) {\n            /**\n             * Set preValue to be value so that no new label\n             * should be started, otherwise, it will take a full\n             * `animationDurationUpdate` time to finish the\n             * animation, which is not expected.\n             */\n            labelInnerStore.prevValue = labelInnerStore.value;\n          }\n        }\n      } // Not change anything if only order changed.\n      // Especially not change label.\n      else {\n          updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n        }\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n      } else {\n        updateProps(el, {\n          shape: layout\n        }, seriesModel, newIndex, null);\n      }\n\n      data.setItemGraphicEl(newIndex, el);\n      el.ignore = isClipped;\n      group.add(el);\n    }).remove(function (dataIndex) {\n      var el = oldData.getItemGraphicEl(dataIndex);\n      el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n    }).execute();\n    var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n    bgGroup.removeAll();\n\n    for (var i = 0; i < bgEls.length; ++i) {\n      bgGroup.add(bgEls[i]);\n    }\n\n    group.add(bgGroup);\n    this._backgroundEls = bgEls;\n    this._data = data;\n  };\n\n  BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    this._removeBackground();\n\n    createLarge(seriesModel, this.group, this._progressiveEls, true);\n  };\n\n  BarView.prototype._updateLargeClip = function (seriesModel) {\n    // Use clipPath in large mode.\n    var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\n    var group = this.group;\n\n    if (clipPath) {\n      group.setClipPath(clipPath);\n    } else {\n      group.removeClipPath();\n    }\n  };\n\n  BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n    var _this = this; // If no data in the first frame, wait for data to initSort\n\n\n    if (!data.count()) {\n      return;\n    }\n\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    if (this._isFirstFrame) {\n      this._dispatchInitSort(data, realtimeSortCfg, api);\n\n      this._isFirstFrame = false;\n    } else {\n      var orderMapping_1 = function (idx) {\n        var el = data.getItemGraphicEl(idx);\n        var shape = el && el.shape;\n        return shape && // The result should be consistent with the initial sort by data value.\n        // Do not support the case that both positive and negative exist.\n        Math.abs(baseAxis.isHorizontal() ? shape.height : shape.width) // If data is NaN, shape.xxx may be NaN, so use || 0 here in case\n        || 0;\n      };\n\n      this._onRendered = function () {\n        _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n      };\n\n      api.getZr().on('rendered', this._onRendered);\n    }\n  };\n\n  BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n    var info = [];\n    data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n      var mappedValue = orderMapping(dataIdx);\n      mappedValue = mappedValue == null ? NaN : mappedValue;\n      info.push({\n        dataIndex: dataIdx,\n        mappedValue: mappedValue,\n        ordinalNumber: ordinalNumber\n      });\n    });\n    info.sort(function (a, b) {\n      // If NaN, it will be treated as min val.\n      return b.mappedValue - a.mappedValue;\n    });\n    return {\n      ordinalNumbers: map(info, function (item) {\n        return item.ordinalNumber;\n      })\n    };\n  };\n\n  BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n    var scale = baseAxis.scale;\n    var ordinalDataDim = data.mapDimension(baseAxis.dim);\n    var lastValue = Number.MAX_VALUE;\n\n    for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n      var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n      var value = rawIdx < 0 // If some tick have no bar, the tick will be treated as min.\n      ? Number.MIN_VALUE // PENDING: if dataZoom on baseAxis exits, is it a performance issue?\n      : orderMapping(data.indexOfRawIndex(rawIdx));\n\n      if (value > lastValue) {\n        return true;\n      }\n\n      lastValue = value;\n    }\n\n    return false;\n  };\n  /*\n   * Consider the case when A and B changed order, whose representing\n   * bars are both out of sight, we don't wish to trigger reorder action\n   * as long as the order in the view doesn't change.\n   */\n\n\n  BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n    var scale = baseAxis.scale;\n    var extent = scale.getExtent();\n    var tickNum = Math.max(0, extent[0]);\n    var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n    for (; tickNum <= tickMax; ++tickNum) {\n      if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n        return true;\n      }\n    }\n  };\n\n  BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n    if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n      return;\n    }\n\n    var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n    if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n      this._removeOnRenderedListener(api);\n\n      api.dispatchAction({\n        type: 'changeAxisOrder',\n        componentType: baseAxis.dim + 'Axis',\n        axisId: baseAxis.index,\n        sortInfo: sortInfo\n      });\n    }\n  };\n\n  BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n      return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n    });\n\n    api.dispatchAction({\n      type: 'changeAxisOrder',\n      componentType: baseAxis.dim + 'Axis',\n      isInitSort: true,\n      axisId: baseAxis.index,\n      sortInfo: sortResult\n    });\n  };\n\n  BarView.prototype.remove = function (ecModel, api) {\n    this._clear(this._model);\n\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype.dispose = function (ecModel, api) {\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype._removeOnRenderedListener = function (api) {\n    if (this._onRendered) {\n      api.getZr().off('rendered', this._onRendered);\n      this._onRendered = null;\n    }\n  };\n\n  BarView.prototype._clear = function (model) {\n    var group = this.group;\n    var data = this._data;\n\n    if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n      this._removeBackground();\n\n      this._backgroundEls = [];\n      data.eachItemGraphicEl(function (el) {\n        removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n      });\n    } else {\n      group.removeAll();\n    }\n\n    this._data = null;\n    this._isFirstFrame = true;\n  };\n\n  BarView.prototype._removeBackground = function () {\n    this.group.remove(this._backgroundGroup);\n    this._backgroundGroup = null;\n  };\n\n  BarView.type = 'bar';\n  return BarView;\n}(ChartView);\n\nvar clip = {\n  cartesian2d: function (coordSysBoundingRect, layout) {\n    var signWidth = layout.width < 0 ? -1 : 1;\n    var signHeight = layout.height < 0 ? -1 : 1; // Needs positive width and height\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n    var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n    var x = mathMax(layout.x, coordSysBoundingRect.x);\n    var x2 = mathMin(layout.x + layout.width, coordSysX2);\n    var y = mathMax(layout.y, coordSysBoundingRect.y);\n    var y2 = mathMin(layout.y + layout.height, coordSysY2);\n    var xClipped = x2 < x;\n    var yClipped = y2 < y; // When xClipped or yClipped, the element will be marked as `ignore`.\n    // But we should also place the element at the edge of the coord sys bounding rect.\n    // Beause if data changed and the bar show again, its transition animaiton\n    // will begin at this place.\n\n    layout.x = xClipped && x > coordSysX2 ? x2 : x;\n    layout.y = yClipped && y > coordSysY2 ? y2 : y;\n    layout.width = xClipped ? 0 : x2 - x;\n    layout.height = yClipped ? 0 : y2 - y; // Reverse back\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    return xClipped || yClipped;\n  },\n  polar: function (coordSysClipArea, layout) {\n    var signR = layout.r0 <= layout.r ? 1 : -1; // Make sure r is larger than r0\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    var r = mathMin(layout.r, coordSysClipArea.r);\n    var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n    layout.r = r;\n    layout.r0 = r0;\n    var clipped = r - r0 < 0; // Reverse back\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    return clipped;\n  }\n};\nvar elementCreator = {\n  cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n    var rect = new Rect({\n      shape: extend({}, layout),\n      z2: 1\n    });\n    rect.__dataIndex = newIndex;\n    rect.name = 'item';\n\n    if (animationModel) {\n      var rectShape = rect.shape;\n      var animateProperty = isHorizontal ? 'height' : 'width';\n      rectShape[animateProperty] = 0;\n    }\n\n    return rect;\n  },\n  polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n    var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n    var sector = new ShapeClass({\n      shape: layout,\n      z2: 1\n    });\n    sector.name = 'item';\n    var positionMap = createPolarPositionMapping(isRadial);\n    sector.calculateTextPosition = createSectorCalculateTextPosition(positionMap, {\n      isRoundCap: ShapeClass === Sausage\n    }); // Animation\n\n    if (animationModel) {\n      var sectorShape = sector.shape;\n      var animateProperty = isRadial ? 'r' : 'endAngle';\n      var animateTarget = {};\n      sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n      animateTarget[animateProperty] = layout[animateProperty];\n      (isUpdate ? updateProps : initProps)(sector, {\n        shape: animateTarget // __value: typeof dataValue === 'string' ? parseInt(dataValue, 10) : dataValue\n\n      }, animationModel);\n    }\n\n    return sector;\n  }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n  var realtimeSortOption = seriesModel.get('realtimeSort', true);\n  var baseAxis = coordSys.getBaseAxis();\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (realtimeSortOption) {\n      if (baseAxis.type !== 'category') {\n        warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n      }\n\n      if (coordSys.type !== 'cartesian2d') {\n        warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n      }\n    }\n  }\n\n  if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n    return {\n      baseAxis: baseAxis,\n      otherAxis: coordSys.getOtherAxis(baseAxis)\n    };\n  }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n  var seriesTarget;\n  var axisTarget;\n\n  if (isHorizontal) {\n    axisTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n    seriesTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n  } else {\n    axisTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n    seriesTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n  }\n\n  if (!isChangeOrder) {\n    // Keep the original growth animation if only axis order changed.\n    // Not start a new animation.\n    (isUpdate ? updateProps : initProps)(el, {\n      shape: seriesTarget\n    }, seriesAnimationModel, newIndex, null);\n  }\n\n  var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n  (isUpdate ? updateProps : initProps)(el, {\n    shape: axisTarget\n  }, axisAnimationModel, newIndex);\n}\n\nfunction checkPropertiesNotValid(obj, props) {\n  for (var i = 0; i < props.length; i++) {\n    if (!isFinite(obj[props[i]])) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nvar rectPropties = ['x', 'y', 'width', 'height'];\nvar polarPropties = ['cx', 'cy', 'r', 'startAngle', 'endAngle'];\nvar isValidLayout = {\n  cartesian2d: function (layout) {\n    return !checkPropertiesNotValid(layout, rectPropties);\n  },\n  polar: function (layout) {\n    return !checkPropertiesNotValid(layout, polarPropties);\n  }\n};\nvar getLayout = {\n  // itemModel is only used to get borderWidth, which is not needed\n  // when calculating bar background layout.\n  cartesian2d: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0; // fix layout with lineWidth\n\n    var signX = layout.width > 0 ? 1 : -1;\n    var signY = layout.height > 0 ? 1 : -1;\n    return {\n      x: layout.x + signX * fixedLineWidth / 2,\n      y: layout.y + signY * fixedLineWidth / 2,\n      width: layout.width - signX * fixedLineWidth,\n      height: layout.height - signY * fixedLineWidth\n    };\n  },\n  polar: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    return {\n      cx: layout.cx,\n      cy: layout.cy,\n      r0: layout.r0,\n      r: layout.r,\n      startAngle: layout.startAngle,\n      endAngle: layout.endAngle,\n      clockwise: layout.clockwise\n    };\n  }\n};\n\nfunction isZeroOnPolar(layout) {\n  return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction createPolarPositionMapping(isRadial) {\n  return function (isRadial) {\n    var arcOrAngle = isRadial ? 'Arc' : 'Angle';\n    return function (position) {\n      switch (position) {\n        case 'start':\n        case 'insideStart':\n        case 'end':\n        case 'insideEnd':\n          return position + arcOrAngle;\n\n        default:\n          return position;\n      }\n    };\n  }(isRadial);\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, isPolar) {\n  var style = data.getItemVisual(dataIndex, 'style');\n\n  if (!isPolar) {\n    el.setShape('r', itemModel.get(['itemStyle', 'borderRadius']) || 0);\n  }\n\n  el.useStyle(style);\n  var cursorStyle = itemModel.getShallow('cursor');\n  cursorStyle && el.attr('cursor', cursorStyle);\n  var labelPositionOutside = isPolar ? isHorizontalOrRadial ? layout.r >= layout.r0 ? 'endArc' : 'startArc' : layout.endAngle >= layout.startAngle ? 'endAngle' : 'startAngle' : isHorizontalOrRadial ? layout.height >= 0 ? 'bottom' : 'top' : layout.width >= 0 ? 'right' : 'left';\n  var labelStatesModels = getLabelStatesModels(itemModel);\n  setLabelStyle(el, labelStatesModels, {\n    labelFetcher: seriesModel,\n    labelDataIndex: dataIndex,\n    defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n    inheritColor: style.fill,\n    defaultOpacity: style.opacity,\n    defaultOutsidePosition: labelPositionOutside\n  });\n  var label = el.getTextContent();\n\n  if (isPolar && label) {\n    var position = itemModel.get(['label', 'position']);\n    el.textConfig.inside = position === 'middle' ? true : null;\n    setSectorTextRotation(el, position === 'outside' ? labelPositionOutside : position, createPolarPositionMapping(isHorizontalOrRadial), itemModel.get(['label', 'rotate']));\n  }\n\n  setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n    return getDefaultInterpolatedLabel(data, value);\n  });\n  var emphasisModel = itemModel.getModel(['emphasis']);\n  toggleHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n  setStatesStylesFromModel(el, itemModel);\n\n  if (isZeroOnPolar(layout)) {\n    el.style.fill = 'none';\n    el.style.stroke = 'none';\n    each(el.states, function (state) {\n      if (state.style) {\n        state.style.fill = state.style.stroke = 'none';\n      }\n    });\n  }\n} // In case width or height are too small.\n\n\nfunction getLineWidth(itemModel, rawLayout) {\n  // Has no border.\n  var borderColor = itemModel.get(['itemStyle', 'borderColor']);\n\n  if (!borderColor || borderColor === 'none') {\n    return 0;\n  }\n\n  var lineWidth = itemModel.get(['itemStyle', 'borderWidth']) || 0; // width or height may be NaN for empty data\n\n  var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n  var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n  return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape =\n/** @class */\nfunction () {\n  function LagePathShape() {}\n\n  return LagePathShape;\n}();\n\nvar LargePath =\n/** @class */\nfunction (_super) {\n  __extends(LargePath, _super);\n\n  function LargePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeBar';\n    return _this;\n  }\n\n  LargePath.prototype.getDefaultShape = function () {\n    return new LagePathShape();\n  };\n\n  LargePath.prototype.buildPath = function (ctx, shape) {\n    // Drawing lines is more efficient than drawing\n    // a whole line or drawing rects.\n    var points = shape.points;\n    var baseDimIdx = this.baseDimIdx;\n    var valueDimIdx = 1 - this.baseDimIdx;\n    var startPoint = [];\n    var size = [];\n    var barWidth = this.barWidth;\n\n    for (var i = 0; i < points.length; i += 3) {\n      size[baseDimIdx] = barWidth;\n      size[valueDimIdx] = points[i + 2];\n      startPoint[baseDimIdx] = points[i + baseDimIdx];\n      startPoint[valueDimIdx] = points[i + valueDimIdx];\n      ctx.rect(startPoint[0], startPoint[1], size[0], size[1]);\n    }\n  };\n\n  return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, progressiveEls, incremental) {\n  // TODO support polar\n  var data = seriesModel.getData();\n  var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n  var largeDataIndices = data.getLayout('largeDataIndices');\n  var barWidth = data.getLayout('size');\n  var backgroundModel = seriesModel.getModel('backgroundStyle');\n  var bgPoints = data.getLayout('largeBackgroundPoints');\n\n  if (bgPoints) {\n    var bgEl = new LargePath({\n      shape: {\n        points: bgPoints\n      },\n      incremental: !!incremental,\n      silent: true,\n      z2: 0\n    });\n    bgEl.baseDimIdx = baseDimIdx;\n    bgEl.largeDataIndices = largeDataIndices;\n    bgEl.barWidth = barWidth;\n    bgEl.useStyle(backgroundModel.getItemStyle());\n    group.add(bgEl);\n    progressiveEls && progressiveEls.push(bgEl);\n  }\n\n  var el = new LargePath({\n    shape: {\n      points: data.getLayout('largePoints')\n    },\n    incremental: !!incremental,\n    z2: 1\n  });\n  el.baseDimIdx = baseDimIdx;\n  el.largeDataIndices = largeDataIndices;\n  el.barWidth = barWidth;\n  group.add(el);\n  el.useStyle(data.getVisual('style')); // Enable tooltip and user mouse/touch event handlers.\n\n  getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n  if (!seriesModel.get('silent')) {\n    el.on('mousedown', largePathUpdateDataIndex);\n    el.on('mousemove', largePathUpdateDataIndex);\n  }\n\n  progressiveEls && progressiveEls.push(el);\n} // Use throttle to avoid frequently traverse to find dataIndex.\n\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n  var largePath = this;\n  var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n  getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n  var baseDimIdx = largePath.baseDimIdx;\n  var valueDimIdx = 1 - baseDimIdx;\n  var points = largePath.shape.points;\n  var largeDataIndices = largePath.largeDataIndices;\n  var startPoint = [];\n  var size = [];\n  var barWidth = largePath.barWidth;\n\n  for (var i = 0, len = points.length / 3; i < len; i++) {\n    var ii = i * 3;\n    size[baseDimIdx] = barWidth;\n    size[valueDimIdx] = points[ii + 2];\n    startPoint[baseDimIdx] = points[ii + baseDimIdx];\n    startPoint[valueDimIdx] = points[ii + valueDimIdx];\n\n    if (size[valueDimIdx] < 0) {\n      startPoint[valueDimIdx] += size[valueDimIdx];\n      size[valueDimIdx] = -size[valueDimIdx];\n    }\n\n    if (x >= startPoint[0] && x <= startPoint[0] + size[0] && y >= startPoint[1] && y <= startPoint[1] + size[1]) {\n      return largeDataIndices[i];\n    }\n  }\n\n  return -1;\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var rectShape = layout;\n    var coordLayout = coord.getArea();\n    return {\n      x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n      y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n      width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n      height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n    };\n  } else {\n    var coordLayout = coord.getArea();\n    var sectorShape = layout;\n    return {\n      cx: coordLayout.cx,\n      cy: coordLayout.cy,\n      r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n      r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n      startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n      endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n    };\n  }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n  var ElementClz = coord.type === 'polar' ? Sector : Rect;\n  return new ElementClz({\n    shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n    silent: true,\n    z2: 0\n  });\n}\n\nexport default BarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { layout, createProgressiveLayout } from '../../layout/barGrid.js';\nimport dataSample from '../../processor/dataSample.js';\nimport BarSeries from './BarSeries.js';\nimport BarView from './BarView.js';\nexport function install(registers) {\n  registers.registerChartView(BarView);\n  registers.registerSeriesModel(BarSeries);\n  registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar')); // Do layout after other overall layout, which can preapre some informations.\n\n  registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, createProgressiveLayout('bar')); // Down sample after filter\n\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n  /**\n   * @payload\n   * @property {string} [componentType=series]\n   * @property {number} [dx]\n   * @property {number} [dy]\n   * @property {number} [zoom]\n   * @property {number} [originX]\n   * @property {number} [originY]\n   */\n\n  registers.registerAction({\n    type: 'changeAxisOrder',\n    event: 'changeAxisOrder',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      if (payload.sortInfo) {\n        componentModel.axis.setCategorySortInfo(payload.sortInfo);\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { parsePercent, linearMap } from '../../util/number.js';\nimport * as layout from '../../util/layout.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport function getBasicPieLayout(seriesModel, api) {\n  var viewRect = getViewRect(seriesModel, api);\n  var center = seriesModel.get('center');\n  var radius = seriesModel.get('radius');\n\n  if (!zrUtil.isArray(radius)) {\n    radius = [0, radius];\n  }\n\n  if (!zrUtil.isArray(center)) {\n    center = [center, center];\n  }\n\n  var width = parsePercent(viewRect.width, api.getWidth());\n  var height = parsePercent(viewRect.height, api.getHeight());\n  var size = Math.min(width, height);\n  var cx = parsePercent(center[0], width) + viewRect.x;\n  var cy = parsePercent(center[1], height) + viewRect.y;\n  var r0 = parsePercent(radius[0], size / 2);\n  var r = parsePercent(radius[1], size / 2);\n  return {\n    cx: cx,\n    cy: cy,\n    r0: r0,\n    r: r\n  };\n}\nexport default function pieLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var viewRect = getViewRect(seriesModel, api);\n\n    var _a = getBasicPieLayout(seriesModel, api),\n        cx = _a.cx,\n        cy = _a.cy,\n        r = _a.r,\n        r0 = _a.r0;\n\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var validDataCount = 0;\n    data.each(valueDim, function (value) {\n      !isNaN(value) && validDataCount++;\n    });\n    var sum = data.getSum(valueDim); // Sum may be 0\n\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var clockwise = seriesModel.get('clockwise');\n    var roseType = seriesModel.get('roseType');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum'); // [0...max]\n\n    var extent = data.getDataExtent(valueDim);\n    extent[0] = 0; // In the case some sector angle is smaller than minAngle\n\n    var restAngle = PI2;\n    var valueSumLargerThanMinAngle = 0;\n    var currentAngle = startAngle;\n    var dir = clockwise ? 1 : -1;\n    data.setLayout({\n      viewRect: viewRect,\n      r: r\n    });\n    data.each(valueDim, function (value, idx) {\n      var angle;\n\n      if (isNaN(value)) {\n        data.setItemLayout(idx, {\n          angle: NaN,\n          startAngle: NaN,\n          endAngle: NaN,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: r0,\n          r: roseType ? NaN : r\n        });\n        return;\n      } // FIXME 兼容 2.0 但是 roseType 是 area 的时候才是这样？\n\n\n      if (roseType !== 'area') {\n        angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n      } else {\n        angle = PI2 / validDataCount;\n      }\n\n      if (angle < minAngle) {\n        angle = minAngle;\n        restAngle -= minAngle;\n      } else {\n        valueSumLargerThanMinAngle += value;\n      }\n\n      var endAngle = currentAngle + dir * angle;\n      data.setItemLayout(idx, {\n        angle: angle,\n        startAngle: currentAngle,\n        endAngle: endAngle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: roseType ? linearMap(value, extent, [r0, r]) : r\n      });\n      currentAngle = endAngle;\n    }); // Some sector is constrained by minAngle\n    // Rest sectors needs recalculate angle\n\n    if (restAngle < PI2 && validDataCount) {\n      // Average the angle if rest angle is not enough after all angles is\n      // Constrained by minAngle\n      if (restAngle <= 1e-3) {\n        var angle_1 = PI2 / validDataCount;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_1 = data.getItemLayout(idx);\n            layout_1.angle = angle_1;\n            layout_1.startAngle = startAngle + dir * idx * angle_1;\n            layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\n          }\n        });\n      } else {\n        unitRadian = restAngle / valueSumLargerThanMinAngle;\n        currentAngle = startAngle;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_2 = data.getItemLayout(idx);\n            var angle = layout_2.angle === minAngle ? minAngle : value * unitRadian;\n            layout_2.startAngle = currentAngle;\n            layout_2.endAngle = currentAngle + dir * angle;\n            currentAngle += dir * angle;\n          }\n        });\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport default function dataFilter(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel) {\n      var legendModels = ecModel.findComponents({\n        mainType: 'legend'\n      });\n\n      if (!legendModels || !legendModels.length) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      data.filterSelf(function (idx) {\n        var name = data.getName(idx); // If in any legend component the status is not selected.\n\n        for (var i = 0; i < legendModels.length; i++) {\n          // @ts-ignore FIXME: LegendModel\n          if (!legendModels[i].isSelected(name)) {\n            return false;\n          }\n        }\n\n        return true;\n      });\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME emphasis label position is not same with normal label position\nimport { parsePercent } from '../../util/number.js';\nimport { Point } from '../../util/graphic.js';\nimport { each, isNumber } from 'zrender/lib/core/util.js';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper.js';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper.js';\nvar RADIAN = Math.PI / 180;\n\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n  if (list.length < 2) {\n    return;\n  }\n\n  ;\n\n  function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n    var rB = semi.rB;\n    var rB2 = rB * rB;\n\n    for (var i = 0; i < semi.list.length; i++) {\n      var item = semi.list[i];\n      var dy = Math.abs(item.label.y - cy); // horizontal r is always same with original r because x is not changed.\n\n      var rA = r + item.len;\n      var rA2 = rA * rA; // Use ellipse implicit function to calculate x\n\n      var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n      var newX = cx + (dx + item.len2) * dir;\n      var deltaX = newX - item.label.x;\n      var newTargetWidth = item.targetTextWidth - deltaX * dir; // text x is changed, so need to recalculate width.\n\n      constrainTextWidth(item, newTargetWidth, true);\n      item.label.x = newX;\n    }\n  } // Adjust X based on the shifted y. Make tight labels aligned on an ellipse curve.\n\n\n  function recalculateX(items) {\n    // Extremes of\n    var topSemi = {\n      list: [],\n      maxY: 0\n    };\n    var bottomSemi = {\n      list: [],\n      maxY: 0\n    };\n\n    for (var i = 0; i < items.length; i++) {\n      if (items[i].labelAlignTo !== 'none') {\n        continue;\n      }\n\n      var item = items[i];\n      var semi = item.label.y > cy ? bottomSemi : topSemi;\n      var dy = Math.abs(item.label.y - cy);\n\n      if (dy >= semi.maxY) {\n        var dx = item.label.x - cx - item.len2 * dir; // horizontal r is always same with original r because x is not changed.\n\n        var rA = r + item.len; // Canculate rB based on the topest / bottemest label.\n\n        var rB = Math.abs(dx) < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n        semi.rB = rB;\n        semi.maxY = dy;\n      }\n\n      semi.list.push(item);\n    }\n\n    recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n    recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n  }\n\n  var len = list.length;\n\n  for (var i = 0; i < len; i++) {\n    if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n      var dx = list[i].label.x - farthestX;\n      list[i].linePoints[1][0] += dx;\n      list[i].label.x = farthestX;\n    }\n  }\n\n  if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n    recalculateX(list);\n  }\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n  var leftList = [];\n  var rightList = [];\n  var leftmostX = Number.MAX_VALUE;\n  var rightmostX = -Number.MAX_VALUE;\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var label = labelLayoutList[i].label;\n\n    if (isPositionCenter(labelLayoutList[i])) {\n      continue;\n    }\n\n    if (label.x < cx) {\n      leftmostX = Math.min(leftmostX, label.x);\n      leftList.push(labelLayoutList[i]);\n    } else {\n      rightmostX = Math.max(rightmostX, label.x);\n      rightList.push(labelLayoutList[i]);\n    }\n  }\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n\n    if (!isPositionCenter(layout) && layout.linePoints) {\n      if (layout.labelStyleWidth != null) {\n        continue;\n      }\n\n      var label = layout.label;\n      var linePoints = layout.linePoints;\n      var targetTextWidth = void 0;\n\n      if (layout.labelAlignTo === 'edge') {\n        if (label.x < cx) {\n          targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n        }\n      } else if (layout.labelAlignTo === 'labelLine') {\n        if (label.x < cx) {\n          targetTextWidth = leftmostX - viewLeft - layout.bleedMargin;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - rightmostX - layout.bleedMargin;\n        }\n      } else {\n        if (label.x < cx) {\n          targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n        }\n      }\n\n      layout.targetTextWidth = targetTextWidth;\n      constrainTextWidth(layout, targetTextWidth);\n    }\n  }\n\n  adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n  adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n\n    if (!isPositionCenter(layout) && layout.linePoints) {\n      var label = layout.label;\n      var linePoints = layout.linePoints;\n      var isAlignToEdge = layout.labelAlignTo === 'edge';\n      var padding = label.style.padding;\n      var paddingH = padding ? padding[1] + padding[3] : 0; // textRect.width already contains paddingH if bgColor is set\n\n      var extraPaddingH = label.style.backgroundColor ? 0 : paddingH;\n      var realTextWidth = layout.rect.width + extraPaddingH;\n      var dist = linePoints[1][0] - linePoints[2][0];\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n        } else {\n          linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          linePoints[2][0] = label.x + layout.labelDistance;\n        } else {\n          linePoints[2][0] = label.x - layout.labelDistance;\n        }\n\n        linePoints[1][0] = linePoints[2][0] + dist;\n      }\n\n      linePoints[1][1] = linePoints[2][1] = label.y;\n    }\n  }\n}\n/**\n * Set max width of each label, and then wrap each label to the max width.\n *\n * @param layout label layout\n * @param availableWidth max width for the label to display\n * @param forceRecalculate recaculate the text layout even if the current width\n * is smaller than `availableWidth`. This is useful when the text was previously\n * wrapped by calling `constrainTextWidth` but now `availableWidth` changed, in\n * which case, previous wrapping should be redo.\n */\n\n\nfunction constrainTextWidth(layout, availableWidth, forceRecalculate) {\n  if (forceRecalculate === void 0) {\n    forceRecalculate = false;\n  }\n\n  if (layout.labelStyleWidth != null) {\n    // User-defined style.width has the highest priority.\n    return;\n  }\n\n  var label = layout.label;\n  var style = label.style;\n  var textRect = layout.rect;\n  var bgColor = style.backgroundColor;\n  var padding = style.padding;\n  var paddingH = padding ? padding[1] + padding[3] : 0;\n  var overflow = style.overflow; // textRect.width already contains paddingH if bgColor is set\n\n  var oldOuterWidth = textRect.width + (bgColor ? 0 : paddingH);\n\n  if (availableWidth < oldOuterWidth || forceRecalculate) {\n    var oldHeight = textRect.height;\n\n    if (overflow && overflow.match('break')) {\n      // Temporarily set background to be null to calculate\n      // the bounding box without backgroud.\n      label.setStyle('backgroundColor', null); // Set constraining width\n\n      label.setStyle('width', availableWidth - paddingH); // This is the real bounding box of the text without padding\n\n      var innerRect = label.getBoundingRect();\n      label.setStyle('width', Math.ceil(innerRect.width));\n      label.setStyle('backgroundColor', bgColor);\n    } else {\n      var availableInnerWidth = availableWidth - paddingH;\n      var newWidth = availableWidth < oldOuterWidth // Current text is too wide, use `availableWidth` as max width.\n      ? availableInnerWidth : // Current available width is enough, but the text may have\n      // already been wrapped with a smaller available width.\n      forceRecalculate ? availableInnerWidth > layout.unconstrainedWidth // Current available is larger than text width,\n      // so don't constrain width (otherwise it may have\n      // empty space in the background).\n      ? null // Current available is smaller than text width, so\n      // use the current available width as constraining\n      // width.\n      : availableInnerWidth : // Current available width is enough, so no need to\n      // constrain.\n      null;\n      label.setStyle('width', newWidth);\n    }\n\n    var newRect = label.getBoundingRect();\n    textRect.width = newRect.width;\n    var margin = (label.style.margin || 0) + 2.1;\n    textRect.height = newRect.height + margin;\n    textRect.y -= (textRect.height - oldHeight) / 2;\n  }\n}\n\nfunction isPositionCenter(sectorShape) {\n  // Not change x for center label\n  return sectorShape.position === 'center';\n}\n\nexport default function pieLabelLayout(seriesModel) {\n  var data = seriesModel.getData();\n  var labelLayoutList = [];\n  var cx;\n  var cy;\n  var hasLabelRotate = false;\n  var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n  var viewRect = data.getLayout('viewRect');\n  var r = data.getLayout('r');\n  var viewWidth = viewRect.width;\n  var viewLeft = viewRect.x;\n  var viewTop = viewRect.y;\n  var viewHeight = viewRect.height;\n\n  function setNotShow(el) {\n    el.ignore = true;\n  }\n\n  function isLabelShown(label) {\n    if (!label.ignore) {\n      return true;\n    }\n\n    for (var key in label.states) {\n      if (label.states[key].ignore === false) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  data.each(function (idx) {\n    var sector = data.getItemGraphicEl(idx);\n    var sectorShape = sector.shape;\n    var label = sector.getTextContent();\n    var labelLine = sector.getTextGuideLine();\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label'); // Use position in normal or emphasis\n\n    var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n    var labelDistance = labelModel.get('distanceToLabelLine');\n    var labelAlignTo = labelModel.get('alignTo');\n    var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n    var bleedMargin = labelModel.get('bleedMargin');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var labelLineLen = labelLineModel.get('length');\n    labelLineLen = parsePercent(labelLineLen, viewWidth);\n    var labelLineLen2 = labelLineModel.get('length2');\n    labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n\n    if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n      each(label.states, setNotShow);\n      label.ignore = true;\n      return;\n    }\n\n    if (!isLabelShown(label)) {\n      return;\n    }\n\n    var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n    var nx = Math.cos(midAngle);\n    var ny = Math.sin(midAngle);\n    var textX;\n    var textY;\n    var linePoints;\n    var textAlign;\n    cx = sectorShape.cx;\n    cy = sectorShape.cy;\n    var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n    if (labelPosition === 'center') {\n      textX = sectorShape.cx;\n      textY = sectorShape.cy;\n      textAlign = 'center';\n    } else {\n      var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n      var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n      textX = x1 + nx * 3;\n      textY = y1 + ny * 3;\n\n      if (!isLabelInside) {\n        // For roseType\n        var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n        var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n        var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n        var y3 = y2;\n\n        if (labelAlignTo === 'edge') {\n          // Adjust textX because text align of edge is opposite\n          textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n        } else {\n          textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n        }\n\n        textY = y3;\n        linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n      }\n\n      textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n    }\n\n    var PI = Math.PI;\n    var labelRotate = 0;\n    var rotate = labelModel.get('rotate');\n\n    if (isNumber(rotate)) {\n      labelRotate = rotate * (PI / 180);\n    } else if (labelPosition === 'center') {\n      labelRotate = 0;\n    } else if (rotate === 'radial' || rotate === true) {\n      var radialAngle = nx < 0 ? -midAngle + PI : -midAngle;\n      labelRotate = radialAngle;\n    } else if (rotate === 'tangential' && labelPosition !== 'outside' && labelPosition !== 'outer') {\n      var rad = Math.atan2(nx, ny);\n\n      if (rad < 0) {\n        rad = PI * 2 + rad;\n      }\n\n      var isDown = ny > 0;\n\n      if (isDown) {\n        rad = PI + rad;\n      }\n\n      labelRotate = rad - PI;\n    }\n\n    hasLabelRotate = !!labelRotate;\n    label.x = textX;\n    label.y = textY;\n    label.rotation = labelRotate;\n    label.setStyle({\n      verticalAlign: 'middle'\n    }); // Not sectorShape the inside label\n\n    if (!isLabelInside) {\n      var textRect = label.getBoundingRect().clone();\n      textRect.applyTransform(label.getComputedTransform()); // Text has a default 1px stroke. Exclude this.\n\n      var margin = (label.style.margin || 0) + 2.1;\n      textRect.y -= margin / 2;\n      textRect.height += margin;\n      labelLayoutList.push({\n        label: label,\n        labelLine: labelLine,\n        position: labelPosition,\n        len: labelLineLen,\n        len2: labelLineLen2,\n        minTurnAngle: labelLineModel.get('minTurnAngle'),\n        maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n        surfaceNormal: new Point(nx, ny),\n        linePoints: linePoints,\n        textAlign: textAlign,\n        labelDistance: labelDistance,\n        labelAlignTo: labelAlignTo,\n        edgeDistance: edgeDistance,\n        bleedMargin: bleedMargin,\n        rect: textRect,\n        unconstrainedWidth: textRect.width,\n        labelStyleWidth: label.style.width\n      });\n    } else {\n      label.setStyle({\n        align: textAlign\n      });\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    sector.setTextConfig({\n      inside: isLabelInside\n    });\n  });\n\n  if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n    avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n  }\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n    var labelLine = layout.labelLine;\n    var notShowLabel = isNaN(label.x) || isNaN(label.y);\n\n    if (label) {\n      label.setStyle({\n        align: layout.textAlign\n      });\n\n      if (notShowLabel) {\n        each(label.states, setNotShow);\n        label.ignore = true;\n      }\n\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    if (labelLine) {\n      var linePoints = layout.linePoints;\n\n      if (notShowLabel || !linePoints) {\n        each(labelLine.states, setNotShow);\n        labelLine.ignore = true;\n      } else {\n        limitTurnAngle(linePoints, layout.minTurnAngle);\n        limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n        labelLine.setShape({\n          points: linePoints\n        }); // Set the anchor to the midpoint of sector\n\n        label.__hostTarget.textGuideLineConfig = {\n          anchor: new Point(linePoints[0][0], linePoints[0][1])\n        };\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isArray, map } from 'zrender/lib/core/util.js';\nimport { parsePercent } from 'zrender/lib/contain/text.js';\nexport function getSectorCornerRadius(model, shape, zeroIfNull) {\n  var cornerRadius = model.get('borderRadius');\n\n  if (cornerRadius == null) {\n    return zeroIfNull ? {\n      cornerRadius: 0\n    } : null;\n  }\n\n  if (!isArray(cornerRadius)) {\n    cornerRadius = [cornerRadius, cornerRadius, cornerRadius, cornerRadius];\n  }\n\n  var dr = Math.abs(shape.r || 0 - shape.r0 || 0);\n  return {\n    cornerRadius: map(cornerRadius, function (cr) {\n      return parsePercent(cr, dr);\n    })\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport ChartView from '../../view/Chart.js';\nimport labelLayout from './labelLayout.js';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { getSectorCornerRadius } from '../helper/pieHelper.js';\nimport { saveOldStyle } from '../../animation/basicTrasition.js';\nimport { getBasicPieLayout } from './pieLayout.js';\n/**\n * Piece of pie including Sector, Label, LabelLine\n */\n\nvar PiePiece =\n/** @class */\nfunction (_super) {\n  __extends(PiePiece, _super);\n\n  function PiePiece(data, idx, startAngle) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = 2;\n    var text = new graphic.Text();\n\n    _this.setTextContent(text);\n\n    _this.updateData(data, idx, startAngle, true);\n\n    return _this;\n  }\n\n  PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n    var sector = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = data.getItemLayout(idx); // cornerRadius & innerCornerRadius doesn't exist in the item layout. Use `0` if null value is specified.\n    // see `setItemLayout` in `pieLayout.ts`.\n\n    var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout, true), layout); // Ignore NaN data.\n\n    if (isNaN(sectorShape.startAngle)) {\n      // Use NaN shape to avoid drawing shape.\n      sector.setShape(sectorShape);\n      return;\n    }\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      var animationType = seriesModel.getShallow('animationType');\n\n      if (seriesModel.ecModel.ssr) {\n        // Use scale animation in SSR mode(opacity?)\n        // Because CSS SVG animation doesn't support very customized shape animation.\n        graphic.initProps(sector, {\n          scaleX: 0,\n          scaleY: 0\n        }, seriesModel, {\n          dataIndex: idx,\n          isFrom: true\n        });\n        sector.originX = sectorShape.cx;\n        sector.originY = sectorShape.cy;\n      } else if (animationType === 'scale') {\n        sector.shape.r = layout.r0;\n        graphic.initProps(sector, {\n          shape: {\n            r: layout.r\n          }\n        }, seriesModel, idx);\n      } // Expansion\n      else {\n          if (startAngle != null) {\n            sector.setShape({\n              startAngle: startAngle,\n              endAngle: startAngle\n            });\n            graphic.initProps(sector, {\n              shape: {\n                startAngle: layout.startAngle,\n                endAngle: layout.endAngle\n              }\n            }, seriesModel, idx);\n          } else {\n            sector.shape.endAngle = layout.startAngle;\n            graphic.updateProps(sector, {\n              shape: {\n                endAngle: layout.endAngle\n              }\n            }, seriesModel, idx);\n          }\n        }\n    } else {\n      saveOldStyle(sector); // Transition animation from the old shape\n\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel, idx);\n    }\n\n    sector.useStyle(data.getItemVisual(idx, 'style'));\n    setStatesStylesFromModel(sector, itemModel);\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var offset = seriesModel.get('selectedOffset');\n    var dx = Math.cos(midAngle) * offset;\n    var dy = Math.sin(midAngle) * offset;\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n\n    this._updateLabel(seriesModel, data, idx);\n\n    sector.ensureState('emphasis').shape = extend({\n      r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n    }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n    extend(sector.ensureState('select'), {\n      x: dx,\n      y: dy,\n      shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n    });\n    extend(sector.ensureState('blur'), {\n      shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n    });\n    var labelLine = sector.getTextGuideLine();\n    var labelText = sector.getTextContent();\n    labelLine && extend(labelLine.ensureState('select'), {\n      x: dx,\n      y: dy\n    }); // TODO: needs dx, dy in zrender?\n\n    extend(labelText.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    toggleHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n  };\n\n  PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n    var sector = this;\n    var itemModel = data.getItemModel(idx);\n    var labelLineModel = itemModel.getModel('labelLine');\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style && style.fill;\n    var visualOpacity = style && style.opacity;\n    setLabelStyle(sector, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n    });\n    var labelText = sector.getTextContent(); // Set textConfig on sector.\n\n    sector.setTextConfig({\n      // reset position, rotation\n      position: null,\n      rotation: null\n    }); // Make sure update style on labelText after setLabelStyle.\n    // Because setLabelStyle will replace a new style on it.\n\n    labelText.attr({\n      z2: 10\n    });\n    var labelPosition = seriesModel.get(['label', 'position']);\n\n    if (labelPosition !== 'outside' && labelPosition !== 'outer') {\n      sector.removeTextGuideLine();\n    } else {\n      var polyline = this.getTextGuideLine();\n\n      if (!polyline) {\n        polyline = new graphic.Polyline();\n        this.setTextGuideLine(polyline);\n      } // Default use item visual color\n\n\n      setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n        stroke: visualColor,\n        opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n      });\n    }\n  };\n\n  return PiePiece;\n}(graphic.Sector); // Pie view\n\n\nvar PieView =\n/** @class */\nfunction (_super) {\n  __extends(PieView, _super);\n\n  function PieView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var startAngle; // First render\n\n    if (!oldData && data.count() > 0) {\n      var shape = data.getItemLayout(0);\n\n      for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n        shape = data.getItemLayout(s);\n      }\n\n      if (shape) {\n        startAngle = shape.startAngle;\n      }\n    } // remove empty-circle if it exists\n\n\n    if (this._emptyCircleSector) {\n      group.remove(this._emptyCircleSector);\n    } // when all data are filtered, show lightgray empty circle\n\n\n    if (data.count() === 0 && seriesModel.get('showEmptyCircle')) {\n      var sector = new graphic.Sector({\n        shape: getBasicPieLayout(seriesModel, api)\n      });\n      sector.useStyle(seriesModel.getModel('emptyCircleStyle').getItemStyle());\n      this._emptyCircleSector = sector;\n      group.add(sector);\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var piePiece = new PiePiece(data, idx, startAngle);\n      data.setItemGraphicEl(idx, piePiece);\n      group.add(piePiece);\n    }).update(function (newIdx, oldIdx) {\n      var piePiece = oldData.getItemGraphicEl(oldIdx);\n      piePiece.updateData(data, newIdx, startAngle);\n      piePiece.off('click');\n      group.add(piePiece);\n      data.setItemGraphicEl(newIdx, piePiece);\n    }).remove(function (idx) {\n      var piePiece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n    }).execute();\n    labelLayout(seriesModel); // Always use initial animation.\n\n    if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n      this._data = data;\n    }\n  };\n\n  PieView.prototype.dispose = function () {};\n\n  PieView.prototype.containPoint = function (point, seriesModel) {\n    var data = seriesModel.getData();\n    var itemLayout = data.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  PieView.type = 'pie';\n  return PieView;\n}(ChartView);\n\nexport default PieView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport prepareSeriesDataSchema from '../../data/helper/createDimensions.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport { extend, isArray } from 'zrender/lib/core/util.js';\n/**\n * [Usage]:\n * (1)\n * createListSimply(seriesModel, ['value']);\n * (2)\n * createListSimply(seriesModel, {\n *     coordDimensions: ['value'],\n *     dimensionsCount: 5\n * });\n */\n\nexport default function createSeriesDataSimply(seriesModel, opt, nameList) {\n  opt = isArray(opt) && {\n    coordDimensions: opt\n  } || extend({\n    encodeDefine: seriesModel.getEncode()\n  }, opt);\n  var source = seriesModel.getSource();\n  var dimensions = prepareSeriesDataSchema(source, opt).dimensions;\n  var list = new SeriesData(dimensions, seriesModel);\n  list.initData(source, nameList);\n  return list;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * LegendVisualProvider is an bridge that pick encoded color from data and\n * provide to the legend component.\n */\nvar LegendVisualProvider =\n/** @class */\nfunction () {\n  function LegendVisualProvider( // Function to get data after filtered. It stores all the encoding info\n  getDataWithEncodedVisual, // Function to get raw data before filtered.\n  getRawData) {\n    this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n    this._getRawData = getRawData;\n  }\n\n  LegendVisualProvider.prototype.getAllNames = function () {\n    var rawData = this._getRawData(); // We find the name from the raw data. In case it's filtered by the legend component.\n    // Normally, the name can be found in rawData, but can't be found in filtered data will display as gray.\n\n\n    return rawData.mapArray(rawData.getName);\n  };\n\n  LegendVisualProvider.prototype.containName = function (name) {\n    var rawData = this._getRawData();\n\n    return rawData.indexOfName(name) >= 0;\n  };\n\n  LegendVisualProvider.prototype.indexOfName = function (name) {\n    // Only get data when necessary.\n    // Because LegendVisualProvider constructor may be new in the stage that data is not prepared yet.\n    // Invoking Series#getData immediately will throw an error.\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.indexOfName(name);\n  };\n\n  LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n    // Get encoded visual properties from final filtered data.\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n  };\n\n  return LegendVisualProvider;\n}();\n\nexport default LegendVisualProvider;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport createSeriesDataSimply from '../helper/createSeriesDataSimply.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\nimport { getPercentWithPrecision } from '../../util/number.js';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper.js';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider.js';\nimport SeriesModel from '../../model/Series.js';\n\nvar PieSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(PieSeriesModel, _super);\n\n  function PieSeriesModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n  /**\n   * @overwrite\n   */\n\n\n  PieSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments); // Enable legend selection for each data item\n    // Use a function instead of direct access because data reference may changed\n\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n    this._defaultLabelLine(option);\n  };\n  /**\n   * @overwrite\n   */\n\n\n  PieSeriesModel.prototype.mergeOption = function () {\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n  /**\n   * @overwrite\n   */\n\n\n  PieSeriesModel.prototype.getInitialData = function () {\n    return createSeriesDataSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n  /**\n   * @overwrite\n   */\n\n\n  PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex); // FIXME toFixed?\n\n\n    var valueList = [];\n    data.each(data.mapDimension('value'), function (value) {\n      valueList.push(value);\n    });\n    params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n    params.$vars.push('percent');\n    return params;\n  };\n\n  PieSeriesModel.prototype._defaultLabelLine = function (option) {\n    // Extend labelLine emphasis\n    modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false`\n\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  };\n\n  PieSeriesModel.type = 'series.pie';\n  PieSeriesModel.defaultOption = {\n    // zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    colorBy: 'data',\n    // 默认全局居中\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    // 默认顺时针\n    clockwise: true,\n    startAngle: 90,\n    // 最小角度改为0\n    minAngle: 0,\n    // If the angle of a sector less than `minShowLabelAngle`,\n    // the label will not be displayed.\n    minShowLabelAngle: 0,\n    // 选中时扇区偏移量\n    selectedOffset: 10,\n    // 选择模式，默认关闭，可选single，multiple\n    // selectedMode: false,\n    // 南丁格尔玫瑰图模式，'radius'（半径） | 'area'（面积）\n    // roseType: null,\n    percentPrecision: 2,\n    // If still show when all data zero.\n    stillShowZeroSum: true,\n    // cursor: null,\n    left: 0,\n    top: 0,\n    right: 0,\n    bottom: 0,\n    width: null,\n    height: null,\n    label: {\n      // color: 'inherit',\n      // If rotate around circle\n      rotate: 0,\n      show: true,\n      overflow: 'truncate',\n      // 'outer', 'inside', 'center'\n      position: 'outer',\n      // 'none', 'labelLine', 'edge'. Works only when position is 'outer'\n      alignTo: 'none',\n      // Closest distance between label and chart edge.\n      // Works only position is 'outer' and alignTo is 'edge'.\n      edgeDistance: '25%',\n      // Works only position is 'outer' and alignTo is not 'edge'.\n      bleedMargin: 10,\n      // Distance between text and label line.\n      distanceToLabelLine: 5 // formatter: 标签文本格式器，同Tooltip.formatter，不支持异步回调\n      // 默认使用全局文本样式，详见TEXTSTYLE\n      // distance: 当position为inner时有效，为label位置到圆心的距离与圆半径(环状图为内外半径和)的比例系数\n\n    },\n    // Enabled when label.normal.position is 'outer'\n    labelLine: {\n      show: true,\n      // 引导线两段中的第一段长度\n      length: 15,\n      // 引导线两段中的第二段长度\n      length2: 15,\n      smooth: false,\n      minTurnAngle: 90,\n      maxSurfaceAngle: 90,\n      lineStyle: {\n        // color: 各异,\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      borderWidth: 1,\n      borderJoin: 'round'\n    },\n    showEmptyCircle: true,\n    emptyCircleStyle: {\n      color: 'lightgray',\n      opacity: 1\n    },\n    labelLayout: {\n      // Hide the overlapped label.\n      hideOverlap: true\n    },\n    emphasis: {\n      scale: true,\n      scaleSize: 5\n    },\n    // If use strategy to avoid label overlapping\n    avoidLabelOverlap: true,\n    // Animation type. Valid values: expansion, scale\n    animationType: 'expansion',\n    animationDuration: 1000,\n    // Animation type when update. Valid values: transition, expansion\n    animationTypeUpdate: 'transition',\n    animationEasingUpdate: 'cubicInOut',\n    animationDurationUpdate: 500,\n    animationEasing: 'cubicInOut'\n  };\n  return PieSeriesModel;\n}(SeriesModel);\n\nexport default PieSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isNumber } from 'zrender/lib/core/util.js';\nexport default function negativeDataFilter(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel) {\n      var data = seriesModel.getData();\n      data.filterSelf(function (idx) {\n        // handle negative value condition\n        var valueDim = data.mapDimension('value');\n        var curValue = data.get(valueDim, idx);\n\n        if (isNumber(curValue) && !isNaN(curValue) && curValue < 0) {\n          return false;\n        }\n\n        return true;\n      });\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction.js';\nimport pieLayout from '../pie/pieLayout.js';\nimport dataFilter from '../../processor/dataFilter.js';\nimport { curry } from 'zrender/lib/core/util.js';\nimport PieView from './PieView.js';\nimport PieSeriesModel from './PieSeries.js';\nimport negativeDataFilter from '../../processor/negativeDataFilter.js';\nexport function install(registers) {\n  registers.registerChartView(PieView);\n  registers.registerSeriesModel(PieSeriesModel);\n  createLegacyDataSelectAction('pie', registers.registerAction);\n  registers.registerLayout(curry(pieLayout, 'pie'));\n  registers.registerProcessor(dataFilter('pie'));\n  registers.registerProcessor(negativeDataFilter('pie'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport createSeriesData from '../helper/createSeriesData.js';\nimport SeriesModel from '../../model/Series.js';\n\nvar ScatterSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(ScatterSeriesModel, _super);\n\n  function ScatterSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createSeriesData(null, this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  ScatterSeriesModel.prototype.getProgressive = function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      // PENDING\n      return this.option.large ? 5e3 : this.get('progressive');\n    }\n\n    return progressive;\n  };\n\n  ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      // PENDING\n      return this.option.large ? 1e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  };\n\n  ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.point(data.getItemLayout(dataIndex));\n  };\n\n  ScatterSeriesModel.prototype.getZLevelKey = function () {\n    // Each progressive series has individual key.\n    return this.getData().count() > this.getProgressiveThreshold() ? this.id : '';\n  };\n\n  ScatterSeriesModel.type = 'series.scatter';\n  ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  ScatterSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    // zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    symbolSize: 10,\n    // symbolRotate: null,  // 图形旋转控制\n    large: false,\n    // Available when large is true\n    largeThreshold: 2000,\n    // cursor: null,\n    itemStyle: {\n      opacity: 0.8 // color: 各异\n\n    },\n    emphasis: {\n      scale: true\n    },\n    // If clip the overflow graphics\n    // Works on cartesian / polar series\n    clip: true,\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    universalTransition: {\n      divideShape: 'clone'\n    } // progressive: null\n\n  };\n  return ScatterSeriesModel;\n}(SeriesModel);\n\nexport default ScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/* global Float32Array */\n// TODO Batch by color\n\nimport * as graphic from '../../util/graphic.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport { getECData } from '../../util/innerStore.js';\nvar BOOST_SIZE_THRESHOLD = 4;\n\nvar LargeSymbolPathShape =\n/** @class */\nfunction () {\n  function LargeSymbolPathShape() {}\n\n  return LargeSymbolPathShape;\n}();\n\nvar LargeSymbolPath =\n/** @class */\nfunction (_super) {\n  __extends(LargeSymbolPath, _super);\n\n  function LargeSymbolPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this._off = 0;\n    _this.hoverDataIdx = -1;\n    return _this;\n  }\n\n  LargeSymbolPath.prototype.getDefaultShape = function () {\n    return new LargeSymbolPathShape();\n  };\n\n  LargeSymbolPath.prototype.reset = function () {\n    this.notClear = false;\n    this._off = 0;\n  };\n\n  LargeSymbolPath.prototype.buildPath = function (path, shape) {\n    var points = shape.points;\n    var size = shape.size;\n    var symbolProxy = this.symbolProxy;\n    var symbolProxyShape = symbolProxy.shape;\n    var ctx = path.getContext ? path.getContext() : path;\n    var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\n    var softClipShape = this.softClipShape;\n    var i; // Do draw in afterBrush.\n\n    if (canBoost) {\n      this._ctx = ctx;\n      return;\n    }\n\n    this._ctx = null;\n\n    for (i = this._off; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (softClipShape && !softClipShape.contain(x, y)) {\n        continue;\n      }\n\n      symbolProxyShape.x = x - size[0] / 2;\n      symbolProxyShape.y = y - size[1] / 2;\n      symbolProxyShape.width = size[0];\n      symbolProxyShape.height = size[1];\n      symbolProxy.buildPath(path, symbolProxyShape, true);\n    }\n\n    if (this.incremental) {\n      this._off = i;\n      this.notClear = true;\n    }\n  };\n\n  LargeSymbolPath.prototype.afterBrush = function () {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var ctx = this._ctx;\n    var softClipShape = this.softClipShape;\n    var i;\n\n    if (!ctx) {\n      return;\n    } // PENDING If style or other canvas status changed?\n\n\n    for (i = this._off; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (softClipShape && !softClipShape.contain(x, y)) {\n        continue;\n      } // fillRect is faster than building a rect path and draw.\n      // And it support light globalCompositeOperation.\n\n\n      ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\n    }\n\n    if (this.incremental) {\n      this._off = i;\n      this.notClear = true;\n    }\n  };\n\n  LargeSymbolPath.prototype.findDataIndex = function (x, y) {\n    // TODO ???\n    // Consider transform\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var w = Math.max(size[0], 4);\n    var h = Math.max(size[1], 4); // Not consider transform\n    // Treat each element as a rect\n    // top down traverse\n\n    for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\n      var i = idx * 2;\n      var x0 = points[i] - w / 2;\n      var y0 = points[i + 1] - h / 2;\n\n      if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\n        return idx;\n      }\n    }\n\n    return -1;\n  };\n\n  LargeSymbolPath.prototype.contain = function (x, y) {\n    var localPos = this.transformCoordToLocal(x, y);\n    var rect = this.getBoundingRect();\n    x = localPos[0];\n    y = localPos[1];\n\n    if (rect.contain(x, y)) {\n      // Cache found data index.\n      var dataIdx = this.hoverDataIdx = this.findDataIndex(x, y);\n      return dataIdx >= 0;\n    }\n\n    this.hoverDataIdx = -1;\n    return false;\n  };\n\n  LargeSymbolPath.prototype.getBoundingRect = function () {\n    // Ignore stroke for large symbol draw.\n    var rect = this._rect;\n\n    if (!rect) {\n      var shape = this.shape;\n      var points = shape.points;\n      var size = shape.size;\n      var w = size[0];\n      var h = size[1];\n      var minX = Infinity;\n      var minY = Infinity;\n      var maxX = -Infinity;\n      var maxY = -Infinity;\n\n      for (var i = 0; i < points.length;) {\n        var x = points[i++];\n        var y = points[i++];\n        minX = Math.min(x, minX);\n        maxX = Math.max(x, maxX);\n        minY = Math.min(y, minY);\n        maxY = Math.max(y, maxY);\n      }\n\n      rect = this._rect = new graphic.BoundingRect(minX - w / 2, minY - h / 2, maxX - minX + w, maxY - minY + h);\n    }\n\n    return rect;\n  };\n\n  return LargeSymbolPath;\n}(graphic.Path);\n\nvar LargeSymbolDraw =\n/** @class */\nfunction () {\n  function LargeSymbolDraw() {\n    this.group = new graphic.Group();\n  }\n  /**\n   * Update symbols draw by new data\n   */\n\n\n  LargeSymbolDraw.prototype.updateData = function (data, opt) {\n    this._clear();\n\n    var symbolEl = this._create();\n\n    symbolEl.setShape({\n      points: data.getLayout('points')\n    });\n\n    this._setCommon(symbolEl, data, opt);\n  };\n\n  LargeSymbolDraw.prototype.updateLayout = function (data) {\n    var points = data.getLayout('points');\n    this.group.eachChild(function (child) {\n      if (child.startIndex != null) {\n        var len = (child.endIndex - child.startIndex) * 2;\n        var byteOffset = child.startIndex * 4 * 2;\n        points = new Float32Array(points.buffer, byteOffset, len);\n      }\n\n      child.setShape('points', points); // Reset draw cursor.\n\n      child.reset();\n    });\n  };\n\n  LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this._clear();\n  };\n\n  LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    var lastAdded = this._newAdded[0];\n    var points = data.getLayout('points');\n    var oldPoints = lastAdded && lastAdded.shape.points; // Merging the exists. Each element has 1e4 points.\n    // Consider the performance balance between too much elements and too much points in one shape(may affect hover optimization)\n\n    if (oldPoints && oldPoints.length < 2e4) {\n      var oldLen = oldPoints.length;\n      var newPoints = new Float32Array(oldLen + points.length); // Concat two array\n\n      newPoints.set(oldPoints);\n      newPoints.set(points, oldLen); // Update endIndex\n\n      lastAdded.endIndex = taskParams.end;\n      lastAdded.setShape({\n        points: newPoints\n      });\n    } else {\n      // Clear\n      this._newAdded = [];\n\n      var symbolEl = this._create();\n\n      symbolEl.startIndex = taskParams.start;\n      symbolEl.endIndex = taskParams.end;\n      symbolEl.incremental = true;\n      symbolEl.setShape({\n        points: points\n      });\n\n      this._setCommon(symbolEl, data, opt);\n    }\n  };\n\n  LargeSymbolDraw.prototype.eachRendered = function (cb) {\n    this._newAdded[0] && cb(this._newAdded[0]);\n  };\n\n  LargeSymbolDraw.prototype._create = function () {\n    var symbolEl = new LargeSymbolPath({\n      cursor: 'default'\n    });\n    this.group.add(symbolEl);\n\n    this._newAdded.push(symbolEl);\n\n    return symbolEl;\n  };\n\n  LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, opt) {\n    var hostModel = data.hostModel;\n    opt = opt || {};\n    var size = data.getVisual('symbolSize');\n    symbolEl.setShape('size', size instanceof Array ? size : [size, size]);\n    symbolEl.softClipShape = opt.clipShape || null; // Create symbolProxy to build path for each data\n\n    symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0); // Use symbolProxy setColor method\n\n    symbolEl.setColor = symbolEl.symbolProxy.setColor;\n    var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\n    symbolEl.useStyle( // Draw shadow when doing fillRect is extremely slow.\n    hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\n    var globalStyle = data.getVisual('style');\n    var visualColor = globalStyle && globalStyle.fill;\n\n    if (visualColor) {\n      symbolEl.setColor(visualColor);\n    }\n\n    var ecData = getECData(symbolEl); // Enable tooltip\n    // PENDING May have performance issue when path is extremely large\n\n    ecData.seriesIndex = hostModel.seriesIndex;\n    symbolEl.on('mousemove', function (e) {\n      ecData.dataIndex = null;\n      var dataIndex = symbolEl.hoverDataIdx;\n\n      if (dataIndex >= 0) {\n        // Provide dataIndex for tooltip\n        ecData.dataIndex = dataIndex + (symbolEl.startIndex || 0);\n      }\n    });\n  };\n\n  LargeSymbolDraw.prototype.remove = function () {\n    this._clear();\n  };\n\n  LargeSymbolDraw.prototype._clear = function () {\n    this._newAdded = [];\n    this.group.removeAll();\n  };\n\n  return LargeSymbolDraw;\n}();\n\nexport default LargeSymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw.js';\nimport LargeSymbolDraw from '../helper/LargeSymbolDraw.js';\nimport pointsLayout from '../../layout/points.js';\nimport ChartView from '../../view/Chart.js';\n\nvar ScatterView =\n/** @class */\nfunction (_super) {\n  __extends(ScatterView, _super);\n\n  function ScatterView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterView.type;\n    return _this;\n  }\n\n  ScatterView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.updateData(data, {\n      // TODO\n      // If this parameter should be a shape or a bounding volume\n      // shape will be more general.\n      // But bounding volume like bounding rect will be much faster in the contain calculation\n      clipShape: this._getClipShape(seriesModel)\n    });\n    this._finished = true;\n  };\n\n  ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.incrementalPrepareUpdate(data);\n    this._finished = false;\n  };\n\n  ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\n      clipShape: this._getClipShape(seriesModel)\n    });\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  };\n\n  ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData(); // Must mark group dirty and make sure the incremental layer will be cleared\n    // PENDING\n\n    this.group.dirty();\n\n    if (!this._finished || data.count() > 1e4) {\n      return {\n        update: true\n      };\n    } else {\n      var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count(),\n          count: data.count()\n        }, data);\n      }\n\n      this._symbolDraw.updateLayout(data);\n    }\n  };\n\n  ScatterView.prototype.eachRendered = function (cb) {\n    this._symbolDraw && this._symbolDraw.eachRendered(cb);\n  };\n\n  ScatterView.prototype._getClipShape = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\n    return seriesModel.get('clip', true) ? clipArea : null;\n  };\n\n  ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\n    var symbolDraw = this._symbolDraw;\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\n      symbolDraw && symbolDraw.remove();\n      symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw();\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(symbolDraw.group);\n    return symbolDraw;\n  };\n\n  ScatterView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n    this._symbolDraw = null;\n  };\n\n  ScatterView.prototype.dispose = function () {};\n\n  ScatterView.type = 'scatter';\n  return ScatterView;\n}(ChartView);\n\nexport default ScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\n\nvar GridModel =\n/** @class */\nfunction (_super) {\n  __extends(GridModel, _super);\n\n  function GridModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GridModel.type = 'grid';\n  GridModel.dependencies = ['xAxis', 'yAxis'];\n  GridModel.layoutMode = 'box';\n  GridModel.defaultOption = {\n    show: false,\n    // zlevel: 0,\n    z: 0,\n    left: '10%',\n    top: 60,\n    right: '10%',\n    bottom: 70,\n    // If grid size contain label\n    containLabel: false,\n    // width: {totalWidth} - left - right,\n    // height: {totalHeight} - top - bottom,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderWidth: 1,\n    borderColor: '#ccc'\n  };\n  return GridModel;\n}(ComponentModel);\n\nexport default GridModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n\nvar CartesianAxisModel =\n/** @class */\nfunction (_super) {\n  __extends(CartesianAxisModel, _super);\n\n  function CartesianAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n  };\n\n  CartesianAxisModel.type = 'cartesian2dAxis';\n  return CartesianAxisModel;\n}(ComponentModel);\n\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar defaultOption = {\n  show: true,\n  // zlevel: 0,\n  z: 0,\n  // Inverse the axis.\n  inverse: false,\n  // Axis name displayed.\n  name: '',\n  // 'start' | 'middle' | 'end'\n  nameLocation: 'end',\n  // By degree. By default auto rotate by nameLocation.\n  nameRotate: null,\n  nameTruncate: {\n    maxWidth: null,\n    ellipsis: '...',\n    placeholder: '.'\n  },\n  // Use global text style by default.\n  nameTextStyle: {},\n  // The gap between axisName and axisLine.\n  nameGap: 15,\n  // Default `false` to support tooltip.\n  silent: false,\n  // Default `false` to avoid legacy user event listener fail.\n  triggerEvent: false,\n  tooltip: {\n    show: false\n  },\n  axisPointer: {},\n  axisLine: {\n    show: true,\n    onZero: true,\n    onZeroAxisIndex: null,\n    lineStyle: {\n      color: '#6E7079',\n      width: 1,\n      type: 'solid'\n    },\n    // The arrow at both ends the the axis.\n    symbol: ['none', 'none'],\n    symbolSize: [10, 15]\n  },\n  axisTick: {\n    show: true,\n    // Whether axisTick is inside the grid or outside the grid.\n    inside: false,\n    // The length of axisTick.\n    length: 5,\n    lineStyle: {\n      width: 1\n    }\n  },\n  axisLabel: {\n    show: true,\n    // Whether axisLabel is inside the grid or outside the grid.\n    inside: false,\n    rotate: 0,\n    // true | false | null/undefined (auto)\n    showMinLabel: null,\n    // true | false | null/undefined (auto)\n    showMaxLabel: null,\n    margin: 8,\n    // formatter: null,\n    fontSize: 12\n  },\n  splitLine: {\n    show: true,\n    lineStyle: {\n      color: ['#E0E6F1'],\n      width: 1,\n      type: 'solid'\n    }\n  },\n  splitArea: {\n    show: false,\n    areaStyle: {\n      color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n    }\n  }\n};\nvar categoryAxis = zrUtil.merge({\n  // The gap at both ends of the axis. For categoryAxis, boolean.\n  boundaryGap: true,\n  // Set false to faster category collection.\n  deduplication: null,\n  // splitArea: {\n  // show: false\n  // },\n  splitLine: {\n    show: false\n  },\n  axisTick: {\n    // If tick is align with label when boundaryGap is true\n    alignWithLabel: false,\n    interval: 'auto'\n  },\n  axisLabel: {\n    interval: 'auto'\n  }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n  boundaryGap: [0, 0],\n  axisLine: {\n    // Not shown when other axis is categoryAxis in cartesian\n    show: 'auto'\n  },\n  axisTick: {\n    // Not shown when other axis is categoryAxis in cartesian\n    show: 'auto'\n  },\n  // TODO\n  // min/max: [30, datamin, 60] or [20, datamin] or [datamin, 60]\n  splitNumber: 5,\n  minorTick: {\n    // Minor tick, not available for cateogry axis.\n    show: false,\n    // Split number of minor ticks. The value should be in range of (0, 100)\n    splitNumber: 5,\n    // Lenght of minor tick\n    length: 3,\n    // Line style\n    lineStyle: {// Default to be same with axisTick\n    }\n  },\n  minorSplitLine: {\n    show: false,\n    lineStyle: {\n      color: '#F4F7FD',\n      width: 1\n    }\n  }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n  splitNumber: 6,\n  axisLabel: {\n    // To eliminate labels that are not nice\n    showMinLabel: false,\n    showMaxLabel: false,\n    rich: {\n      primary: {\n        fontWeight: 'bold'\n      }\n    }\n  },\n  splitLine: {\n    show: false\n  }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n  logBase: 10\n}, valueAxis);\nexport default {\n  category: categoryAxis,\n  value: valueAxis,\n  time: timeAxis,\n  log: logAxis\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport var AXIS_TYPES = {\n  value: 1,\n  category: 1,\n  time: 1,\n  log: 1\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault.js';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout.js';\nimport OrdinalMeta from '../data/OrdinalMeta.js';\nimport { AXIS_TYPES } from './axisCommonTypes.js';\nimport { each, merge } from 'zrender/lib/core/util.js';\n/**\n * Generate sub axis model class\n * @param axisName 'x' 'y' 'radius' 'angle' 'parallel' ...\n */\n\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n  each(AXIS_TYPES, function (v, axisType) {\n    var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n\n    var AxisModel =\n    /** @class */\n    function (_super) {\n      __extends(AxisModel, _super);\n\n      function AxisModel() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n\n        _this.type = axisName + 'Axis.' + axisType;\n        return _this;\n      }\n\n      AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n        var layoutMode = fetchLayoutMode(this);\n        var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n        var themeModel = ecModel.getTheme();\n        merge(option, themeModel.get(axisType + 'Axis'));\n        merge(option, this.getDefaultOption());\n        option.type = getAxisType(option);\n\n        if (layoutMode) {\n          mergeLayoutParam(option, inputPositionParams, layoutMode);\n        }\n      };\n\n      AxisModel.prototype.optionUpdated = function () {\n        var thisOption = this.option;\n\n        if (thisOption.type === 'category') {\n          this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n        }\n      };\n      /**\n       * Should not be called before all of 'getInitailData' finished.\n       * Because categories are collected during initializing data.\n       */\n\n\n      AxisModel.prototype.getCategories = function (rawData) {\n        var option = this.option; // FIXME\n        // warning if called before all of 'getInitailData' finished.\n\n        if (option.type === 'category') {\n          if (rawData) {\n            return option.data;\n          }\n\n          return this.__ordinalMeta.categories;\n        }\n      };\n\n      AxisModel.prototype.getOrdinalMeta = function () {\n        return this.__ordinalMeta;\n      };\n\n      AxisModel.type = axisName + 'Axis.' + axisType;\n      AxisModel.defaultOption = defaultOption;\n      return AxisModel;\n    }(BaseAxisModelClass);\n\n    registers.registerComponentModel(AxisModel);\n  });\n  registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\n\nfunction getAxisType(option) {\n  // Default axis with data is category axis\n  return option.type || (option.data ? 'category' : 'value');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\n\nvar Cartesian =\n/** @class */\nfunction () {\n  function Cartesian(name) {\n    this.type = 'cartesian';\n    this._dimList = [];\n    this._axes = {};\n    this.name = name || '';\n  }\n\n  Cartesian.prototype.getAxis = function (dim) {\n    return this._axes[dim];\n  };\n\n  Cartesian.prototype.getAxes = function () {\n    return zrUtil.map(this._dimList, function (dim) {\n      return this._axes[dim];\n    }, this);\n  };\n\n  Cartesian.prototype.getAxesByScale = function (scaleType) {\n    scaleType = scaleType.toLowerCase();\n    return zrUtil.filter(this.getAxes(), function (axis) {\n      return axis.scale.type === scaleType;\n    });\n  };\n\n  Cartesian.prototype.addAxis = function (axis) {\n    var dim = axis.dim;\n    this._axes[dim] = axis;\n\n    this._dimList.push(dim);\n  };\n\n  return Cartesian;\n}();\n\n;\nexport default Cartesian;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport Cartesian from './Cartesian.js';\nimport { invert } from 'zrender/lib/core/matrix.js';\nimport { applyTransform } from 'zrender/lib/core/vector.js';\nexport var cartesian2DDimensions = ['x', 'y'];\n\nfunction canCalculateAffineTransform(scale) {\n  return scale.type === 'interval' || scale.type === 'time';\n}\n\nvar Cartesian2D =\n/** @class */\nfunction (_super) {\n  __extends(Cartesian2D, _super);\n\n  function Cartesian2D() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'cartesian2d';\n    _this.dimensions = cartesian2DDimensions;\n    return _this;\n  }\n  /**\n   * Calculate an affine transform matrix if two axes are time or value.\n   * It's mainly for accelartion on the large time series data.\n   */\n\n\n  Cartesian2D.prototype.calcAffineTransform = function () {\n    this._transform = this._invTransform = null;\n    var xAxisScale = this.getAxis('x').scale;\n    var yAxisScale = this.getAxis('y').scale;\n\n    if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n      return;\n    }\n\n    var xScaleExtent = xAxisScale.getExtent();\n    var yScaleExtent = yAxisScale.getExtent();\n    var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n    var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n    var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n    var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n\n    if (!xScaleSpan || !yScaleSpan) {\n      return;\n    } // Accelerate data to point calculation on the special large time series data.\n\n\n    var scaleX = (end[0] - start[0]) / xScaleSpan;\n    var scaleY = (end[1] - start[1]) / yScaleSpan;\n    var translateX = start[0] - xScaleExtent[0] * scaleX;\n    var translateY = start[1] - yScaleExtent[0] * scaleY;\n    var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n    this._invTransform = invert([], m);\n  };\n  /**\n   * Base axis will be used on stacking.\n   */\n\n\n  Cartesian2D.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n  };\n\n  Cartesian2D.prototype.containPoint = function (point) {\n    var axisX = this.getAxis('x');\n    var axisY = this.getAxis('y');\n    return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n  };\n\n  Cartesian2D.prototype.containData = function (data) {\n    return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n  };\n\n  Cartesian2D.prototype.containZone = function (data1, data2) {\n    var zoneDiag1 = this.dataToPoint(data1);\n    var zoneDiag2 = this.dataToPoint(data2);\n    var area = this.getArea();\n    var zone = new BoundingRect(zoneDiag1[0], zoneDiag1[1], zoneDiag2[0] - zoneDiag1[0], zoneDiag2[1] - zoneDiag1[1]);\n    return area.intersect(zone);\n  };\n\n  Cartesian2D.prototype.dataToPoint = function (data, clamp, out) {\n    out = out || [];\n    var xVal = data[0];\n    var yVal = data[1]; // Fast path\n\n    if (this._transform // It's supported that if data is like `[Inifity, 123]`, where only Y pixel calculated.\n    && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n      return applyTransform(out, data, this._transform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal, clamp));\n    out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal, clamp));\n    return out;\n  };\n\n  Cartesian2D.prototype.clampData = function (data, out) {\n    var xScale = this.getAxis('x').scale;\n    var yScale = this.getAxis('y').scale;\n    var xAxisExtent = xScale.getExtent();\n    var yAxisExtent = yScale.getExtent();\n    var x = xScale.parse(data[0]);\n    var y = yScale.parse(data[1]);\n    out = out || [];\n    out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n    out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.pointToData = function (point, clamp) {\n    var out = [];\n\n    if (this._invTransform) {\n      return applyTransform(out, point, this._invTransform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]), clamp);\n    out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]), clamp);\n    return out;\n  };\n\n  Cartesian2D.prototype.getOtherAxis = function (axis) {\n    return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n  };\n  /**\n   * Get rect area of cartesian.\n   * Area will have a contain function to determine if a point is in the coordinate system.\n   */\n\n\n  Cartesian2D.prototype.getArea = function () {\n    var xExtent = this.getAxis('x').getGlobalExtent();\n    var yExtent = this.getAxis('y').getGlobalExtent();\n    var x = Math.min(xExtent[0], xExtent[1]);\n    var y = Math.min(yExtent[0], yExtent[1]);\n    var width = Math.max(xExtent[0], xExtent[1]) - x;\n    var height = Math.max(yExtent[0], yExtent[1]) - y;\n    return new BoundingRect(x, y, width, height);\n  };\n\n  return Cartesian2D;\n}(Cartesian);\n\n;\nexport default Cartesian2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\n\nvar Axis2D =\n/** @class */\nfunction (_super) {\n  __extends(Axis2D, _super);\n\n  function Axis2D(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n    /**\n     * Index of axis, can be used as key\n     * Injected outside.\n     */\n\n\n    _this.index = 0;\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n\n  Axis2D.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n  /**\n   * Each item cooresponds to this.getExtent(), which\n   * means globalExtent[0] may greater than globalExtent[1],\n   * unless `asc` is input.\n   *\n   * @param {boolean} [asc]\n   * @return {Array.<number>}\n   */\n\n\n  Axis2D.prototype.getGlobalExtent = function (asc) {\n    var ret = this.getExtent();\n    ret[0] = this.toGlobalCoord(ret[0]);\n    ret[1] = this.toGlobalCoord(ret[1]);\n    asc && ret[0] > ret[1] && ret.reverse();\n    return ret;\n  };\n\n  Axis2D.prototype.pointToData = function (point, clamp) {\n    return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n  };\n  /**\n   * Set ordinalSortInfo\n   * @param info new OrdinalSortInfo\n   */\n\n\n  Axis2D.prototype.setCategorySortInfo = function (info) {\n    if (this.type !== 'category') {\n      return false;\n    }\n\n    this.model.option.categorySortInfo = info;\n    this.scale.setSortInfo(info);\n  };\n\n  return Axis2D;\n}(Axis);\n\nexport default Axis2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n/**\n * Can only be called after coordinate system creation stage.\n * (Can be called before coordinate system update stage).\n */\n\nexport function layout(gridModel, axisModel, opt) {\n  opt = opt || {};\n  var grid = gridModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n  var rawAxisPosition = axis.position;\n  var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n  var axisDim = axis.dim;\n  var rect = grid.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var idx = {\n    left: 0,\n    right: 1,\n    top: 0,\n    bottom: 1,\n    onZero: 2\n  };\n  var axisOffset = axisModel.get('offset') || 0;\n  var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n  if (otherAxisOnZeroOf) {\n    var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n    posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n  } // Axis position\n\n\n  layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]]; // Axis rotation\n\n  layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1); // Tick and label direction, x y is axisDim\n\n  var dirMap = {\n    top: -1,\n    bottom: 1,\n    left: -1,\n    right: 1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n  layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  } // Special label rotation\n\n\n  var labelRotate = axisModel.get(['axisLabel', 'rotate']);\n  layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate; // Over splitLine and splitArea\n\n  layout.z2 = 1;\n  return layout;\n}\nexport function isCartesian2DSeries(seriesModel) {\n  return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\nexport function findAxisModels(seriesModel) {\n  var axisModelMap = {\n    xAxisModel: null,\n    yAxisModel: null\n  };\n  zrUtil.each(axisModelMap, function (v, key) {\n    var axisType = key.replace(/Model$/, '');\n    var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!axisModel) {\n        throw new Error(axisType + ' \"' + zrUtil.retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\n      }\n    }\n\n    axisModelMap[key] = axisModel;\n  });\n  return axisModelMap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { getPrecisionSafe, round } from '../util/number.js';\nimport IntervalScale from '../scale/Interval.js';\nimport { getScaleExtent } from './axisHelper.js';\nimport { warn } from '../util/log.js';\nimport { increaseInterval, isValueNice } from '../scale/helper.js';\nvar mathLog = Math.log;\nexport function alignScaleTicks(scale, axisModel, alignToScale) {\n  var intervalScaleProto = IntervalScale.prototype; // NOTE: There is a precondition for log scale  here:\n  // In log scale we store _interval and _extent of exponent value.\n  // So if we use the method of InternalScale to set/get these data.\n  // It process the exponent value, which is linear and what we want here.\n\n  var alignToTicks = intervalScaleProto.getTicks.call(alignToScale);\n  var alignToNicedTicks = intervalScaleProto.getTicks.call(alignToScale, true);\n  var alignToSplitNumber = alignToTicks.length - 1;\n  var alignToInterval = intervalScaleProto.getInterval.call(alignToScale);\n  var scaleExtent = getScaleExtent(scale, axisModel);\n  var rawExtent = scaleExtent.extent;\n  var isMinFixed = scaleExtent.fixMin;\n  var isMaxFixed = scaleExtent.fixMax;\n\n  if (scale.type === 'log') {\n    var logBase = mathLog(scale.base);\n    rawExtent = [mathLog(rawExtent[0]) / logBase, mathLog(rawExtent[1]) / logBase];\n  }\n\n  scale.setExtent(rawExtent[0], rawExtent[1]);\n  scale.calcNiceExtent({\n    splitNumber: alignToSplitNumber,\n    fixMin: isMinFixed,\n    fixMax: isMaxFixed\n  });\n  var extent = intervalScaleProto.getExtent.call(scale); // Need to update the rawExtent.\n  // Because value in rawExtent may be not parsed. e.g. 'dataMin', 'dataMax'\n\n  if (isMinFixed) {\n    rawExtent[0] = extent[0];\n  }\n\n  if (isMaxFixed) {\n    rawExtent[1] = extent[1];\n  }\n\n  var interval = intervalScaleProto.getInterval.call(scale);\n  var min = rawExtent[0];\n  var max = rawExtent[1];\n\n  if (isMinFixed && isMaxFixed) {\n    // User set min, max, divide to get new interval\n    interval = (max - min) / alignToSplitNumber;\n  } else if (isMinFixed) {\n    max = rawExtent[0] + interval * alignToSplitNumber; // User set min, expand extent on the other side\n\n    while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1])) {\n      interval = increaseInterval(interval);\n      max = rawExtent[0] + interval * alignToSplitNumber;\n    }\n  } else if (isMaxFixed) {\n    // User set max, expand extent on the other side\n    min = rawExtent[1] - interval * alignToSplitNumber;\n\n    while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0])) {\n      interval = increaseInterval(interval);\n      min = rawExtent[1] - interval * alignToSplitNumber;\n    }\n  } else {\n    var nicedSplitNumber = scale.getTicks().length - 1;\n\n    if (nicedSplitNumber > alignToSplitNumber) {\n      interval = increaseInterval(interval);\n    }\n\n    var range = interval * alignToSplitNumber;\n    max = Math.ceil(rawExtent[1] / interval) * interval;\n    min = round(max - range); // Not change the result that crossing zero.\n\n    if (min < 0 && rawExtent[0] >= 0) {\n      min = 0;\n      max = round(range);\n    } else if (max > 0 && rawExtent[1] <= 0) {\n      max = 0;\n      min = -round(range);\n    }\n  } // Adjust min, max based on the extent of alignTo. When min or max is set in alignTo scale\n\n\n  var t0 = (alignToTicks[0].value - alignToNicedTicks[0].value) / alignToInterval;\n  var t1 = (alignToTicks[alignToSplitNumber].value - alignToNicedTicks[alignToSplitNumber].value) / alignToInterval; // NOTE: Must in setExtent -> setInterval -> setNiceExtent order.\n\n  intervalScaleProto.setExtent.call(scale, min + interval * t0, max + interval * t1);\n  intervalScaleProto.setInterval.call(scale, interval);\n\n  if (t0 || t1) {\n    intervalScaleProto.setNiceExtent.call(scale, min + interval, max - interval);\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    var ticks = intervalScaleProto.getTicks.call(scale);\n\n    if (ticks[1] && (!isValueNice(interval) || getPrecisionSafe(ticks[1].value) > getPrecisionSafe(interval))) {\n      warn( // eslint-disable-next-line\n      \"The ticks may be not readable when set min: \" + axisModel.get('min') + \", max: \" + axisModel.get('max') + \" and alignTicks: true\");\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Grid is a region which contains at most 4 cartesian systems\n *\n * TODO Default cartesian\n */\nimport { isObject, each, indexOf, retrieve3, keys } from 'zrender/lib/core/util.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper.js';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D.js';\nimport Axis2D from './Axis2D.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper.js';\nimport { isIntervalOrLogScale } from '../../scale/helper.js';\nimport { alignScaleTicks } from '../axisAlignTicks.js';\n\nvar Grid =\n/** @class */\nfunction () {\n  function Grid(gridModel, ecModel, api) {\n    // FIXME:TS where used (different from registered type 'cartesian2d')?\n    this.type = 'grid';\n    this._coordsMap = {};\n    this._coordsList = [];\n    this._axesMap = {};\n    this._axesList = [];\n    this.axisPointerEnabled = true;\n    this.dimensions = cartesian2DDimensions;\n\n    this._initCartesian(gridModel, ecModel, api);\n\n    this.model = gridModel;\n  }\n\n  Grid.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Grid.prototype.update = function (ecModel, api) {\n    var axesMap = this._axesMap;\n\n    this._updateScale(ecModel, this.model);\n\n    function updateAxisTicks(axes) {\n      var alignTo; // Axis is added in order of axisIndex.\n\n      var axesIndices = keys(axes);\n      var len = axesIndices.length;\n\n      if (!len) {\n        return;\n      }\n\n      var axisNeedsAlign = []; // Process once and calculate the ticks for those don't use alignTicks.\n\n      for (var i = len - 1; i >= 0; i--) {\n        var idx = +axesIndices[i]; // Convert to number.\n\n        var axis = axes[idx];\n        var model = axis.model;\n        var scale = axis.scale;\n\n        if ( // Only value and log axis without interval support alignTicks.\n        isIntervalOrLogScale(scale) && model.get('alignTicks') && model.get('interval') == null) {\n          axisNeedsAlign.push(axis);\n        } else {\n          niceScaleExtent(scale, model);\n\n          if (isIntervalOrLogScale(scale)) {\n            // Can only align to interval or log axis.\n            alignTo = axis;\n          }\n        }\n      }\n\n      ; // All axes has set alignTicks. Pick the first one.\n      // PENDING. Should we find the axis that both set interval, min, max and align to this one?\n\n      if (axisNeedsAlign.length) {\n        if (!alignTo) {\n          alignTo = axisNeedsAlign.pop();\n          niceScaleExtent(alignTo.scale, alignTo.model);\n        }\n\n        each(axisNeedsAlign, function (axis) {\n          alignScaleTicks(axis.scale, axis.model, alignTo.scale);\n        });\n      }\n    }\n\n    updateAxisTicks(axesMap.x);\n    updateAxisTicks(axesMap.y); // Key: axisDim_axisIndex, value: boolean, whether onZero target.\n\n    var onZeroRecords = {};\n    each(axesMap.x, function (xAxis) {\n      fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n    });\n    each(axesMap.y, function (yAxis) {\n      fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n    }); // Resize again if containLabel is enabled\n    // FIXME It may cause getting wrong grid size in data processing stage\n\n    this.resize(this.model, api);\n  };\n  /**\n   * Resize the grid\n   */\n\n\n  Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n    var boxLayoutParams = gridModel.getBoxLayoutParams();\n    var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n    var gridRect = getLayoutRect(boxLayoutParams, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    this._rect = gridRect;\n    var axesList = this._axesList;\n    adjustAxes(); // Minus label size\n\n    if (isContainLabel) {\n      each(axesList, function (axis) {\n        if (!axis.model.get(['axisLabel', 'inside'])) {\n          var labelUnionRect = estimateLabelUnionRect(axis);\n\n          if (labelUnionRect) {\n            var dim = axis.isHorizontal() ? 'height' : 'width';\n            var margin = axis.model.get(['axisLabel', 'margin']);\n            gridRect[dim] -= labelUnionRect[dim] + margin;\n\n            if (axis.position === 'top') {\n              gridRect.y += labelUnionRect.height + margin;\n            } else if (axis.position === 'left') {\n              gridRect.x += labelUnionRect.width + margin;\n            }\n          }\n        }\n      });\n      adjustAxes();\n    }\n\n    each(this._coordsList, function (coord) {\n      // Calculate affine matrix to accelerate the data to point transform.\n      // If all the axes scales are time or value.\n      coord.calcAffineTransform();\n    });\n\n    function adjustAxes() {\n      each(axesList, function (axis) {\n        var isHorizontal = axis.isHorizontal();\n        var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n        var idx = axis.inverse ? 1 : 0;\n        axis.setExtent(extent[idx], extent[1 - idx]);\n        updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n      });\n    }\n  };\n\n  Grid.prototype.getAxis = function (dim, axisIndex) {\n    var axesMapOnDim = this._axesMap[dim];\n\n    if (axesMapOnDim != null) {\n      return axesMapOnDim[axisIndex || 0];\n    }\n  };\n\n  Grid.prototype.getAxes = function () {\n    return this._axesList.slice();\n  };\n\n  Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n    if (xAxisIndex != null && yAxisIndex != null) {\n      var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n      return this._coordsMap[key];\n    }\n\n    if (isObject(xAxisIndex)) {\n      yAxisIndex = xAxisIndex.yAxisIndex;\n      xAxisIndex = xAxisIndex.xAxisIndex;\n    }\n\n    for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n      if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n        return coordList[i];\n      }\n    }\n  };\n\n  Grid.prototype.getCartesians = function () {\n    return this._coordsList.slice();\n  };\n  /**\n   * @implements\n   */\n\n\n  Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n  };\n  /**\n   * @implements\n   */\n\n\n  Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n  };\n\n  Grid.prototype._findConvertTarget = function (finder) {\n    var seriesModel = finder.seriesModel;\n    var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n    var gridModel = finder.gridModel;\n    var coordsList = this._coordsList;\n    var cartesian;\n    var axis;\n\n    if (seriesModel) {\n      cartesian = seriesModel.coordinateSystem;\n      indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n    } else if (xAxisModel && yAxisModel) {\n      cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    } else if (xAxisModel) {\n      axis = this.getAxis('x', xAxisModel.componentIndex);\n    } else if (yAxisModel) {\n      axis = this.getAxis('y', yAxisModel.componentIndex);\n    } // Lowest priority.\n    else if (gridModel) {\n        var grid = gridModel.coordinateSystem;\n\n        if (grid === this) {\n          cartesian = this._coordsList[0];\n        }\n      }\n\n    return {\n      cartesian: cartesian,\n      axis: axis\n    };\n  };\n  /**\n   * @implements\n   */\n\n\n  Grid.prototype.containPoint = function (point) {\n    var coord = this._coordsList[0];\n\n    if (coord) {\n      return coord.containPoint(point);\n    }\n  };\n  /**\n   * Initialize cartesian coordinate systems\n   */\n\n\n  Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n    var _this = this;\n\n    var grid = this;\n    var axisPositionUsed = {\n      left: false,\n      right: false,\n      top: false,\n      bottom: false\n    };\n    var axesMap = {\n      x: {},\n      y: {}\n    };\n    var axesCount = {\n      x: 0,\n      y: 0\n    }; /// Create axis\n\n    ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n    ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n    if (!axesCount.x || !axesCount.y) {\n      // Roll back when there no either x or y axis\n      this._axesMap = {};\n      this._axesList = [];\n      return;\n    }\n\n    this._axesMap = axesMap; /// Create cartesian2d\n\n    each(axesMap.x, function (xAxis, xAxisIndex) {\n      each(axesMap.y, function (yAxis, yAxisIndex) {\n        var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n        var cartesian = new Cartesian2D(key);\n        cartesian.master = _this;\n        cartesian.model = gridModel;\n        _this._coordsMap[key] = cartesian;\n\n        _this._coordsList.push(cartesian);\n\n        cartesian.addAxis(xAxis);\n        cartesian.addAxis(yAxis);\n      });\n    });\n\n    function createAxisCreator(dimName) {\n      return function (axisModel, idx) {\n        if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n          return;\n        }\n\n        var axisPosition = axisModel.get('position');\n\n        if (dimName === 'x') {\n          // Fix position\n          if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n            // Default bottom of X\n            axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n          }\n        } else {\n          // Fix position\n          if (axisPosition !== 'left' && axisPosition !== 'right') {\n            // Default left of Y\n            axisPosition = axisPositionUsed.left ? 'right' : 'left';\n          }\n        }\n\n        axisPositionUsed[axisPosition] = true;\n        var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n        var isCategory = axis.type === 'category';\n        axis.onBand = isCategory && axisModel.get('boundaryGap');\n        axis.inverse = axisModel.get('inverse'); // Inject axis into axisModel\n\n        axisModel.axis = axis; // Inject axisModel into axis\n\n        axis.model = axisModel; // Inject grid info axis\n\n        axis.grid = grid; // Index of axis, can be used as key\n\n        axis.index = idx;\n\n        grid._axesList.push(axis);\n\n        axesMap[dimName][idx] = axis;\n        axesCount[dimName]++;\n      };\n    }\n  };\n  /**\n   * Update cartesian properties from series.\n   */\n\n\n  Grid.prototype._updateScale = function (ecModel, gridModel) {\n    // Reset scale\n    each(this._axesList, function (axis) {\n      axis.scale.setExtent(Infinity, -Infinity);\n\n      if (axis.type === 'category') {\n        var categorySortInfo = axis.model.get('categorySortInfo');\n        axis.scale.setSortInfo(categorySortInfo);\n      }\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (isCartesian2DSeries(seriesModel)) {\n        var axesModelMap = findAxisModels(seriesModel);\n        var xAxisModel = axesModelMap.xAxisModel;\n        var yAxisModel = axesModelMap.yAxisModel;\n\n        if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n          return;\n        }\n\n        var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n        var data = seriesModel.getData();\n        var xAxis = cartesian.getAxis('x');\n        var yAxis = cartesian.getAxis('y');\n        unionExtent(data, xAxis);\n        unionExtent(data, yAxis);\n      }\n    }, this);\n\n    function unionExtent(data, axis) {\n      each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n        axis.scale.unionExtentFromData(data, dim);\n      });\n    }\n  };\n  /**\n   * @param dim 'x' or 'y' or 'auto' or null/undefined\n   */\n\n\n  Grid.prototype.getTooltipAxes = function (dim) {\n    var baseAxes = [];\n    var otherAxes = [];\n    each(this.getCartesians(), function (cartesian) {\n      var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n      var otherAxis = cartesian.getOtherAxis(baseAxis);\n      indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n      indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n    });\n    return {\n      baseAxes: baseAxes,\n      otherAxes: otherAxes\n    };\n  };\n\n  Grid.create = function (ecModel, api) {\n    var grids = [];\n    ecModel.eachComponent('grid', function (gridModel, idx) {\n      var grid = new Grid(gridModel, ecModel, api);\n      grid.name = 'grid_' + idx; // dataSampling requires axis extent, so resize\n      // should be performed in create stage.\n\n      grid.resize(gridModel, api, true);\n      gridModel.coordinateSystem = grid;\n      grids.push(grid);\n    }); // Inject the coordinateSystems into seriesModel\n\n    ecModel.eachSeries(function (seriesModel) {\n      if (!isCartesian2DSeries(seriesModel)) {\n        return;\n      }\n\n      var axesModelMap = findAxisModels(seriesModel);\n      var xAxisModel = axesModelMap.xAxisModel;\n      var yAxisModel = axesModelMap.yAxisModel;\n      var gridModel = xAxisModel.getCoordSysModel();\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!gridModel) {\n          throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n        }\n\n        if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n          throw new Error('xAxis and yAxis must use the same grid');\n        }\n      }\n\n      var grid = gridModel.coordinateSystem;\n      seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    });\n    return grids;\n  }; // For deciding which dimensions to use when creating list data\n\n\n  Grid.dimensions = cartesian2DDimensions;\n  return Grid;\n}();\n/**\n * Check if the axis is used in the specified grid.\n */\n\n\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n  return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis, // Key: see `getOnZeroRecordKey`\nonZeroRecords) {\n  axis.getAxesOnZeroOf = function () {\n    // TODO: onZero of multiple axes.\n    return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n  }; // onZero can not be enabled in these two situations:\n  // 1. When any other axis is a category axis.\n  // 2. When no axis is cross 0 point.\n\n\n  var otherAxes = axesMap[otherAxisDim];\n  var otherAxisOnZeroOf;\n  var axisModel = axis.model;\n  var onZero = axisModel.get(['axisLine', 'onZero']);\n  var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n\n  if (!onZero) {\n    return;\n  } // If target axis is specified.\n\n\n  if (onZeroAxisIndex != null) {\n    if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n      otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n    }\n  } else {\n    // Find the first available other axis.\n    for (var idx in otherAxes) {\n      if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) // Consider that two Y axes on one value axis,\n      // if both onZero, the two Y axes overlap.\n      && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n        otherAxisOnZeroOf = otherAxes[idx];\n        break;\n      }\n    }\n  }\n\n  if (otherAxisOnZeroOf) {\n    onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n  }\n\n  function getOnZeroRecordKey(axis) {\n    return axis.dim + '_' + axis.index;\n  }\n}\n\nfunction canOnZeroToAxis(axis) {\n  return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n\nfunction updateAxisTransform(axis, coordBase) {\n  var axisExtent = axis.getExtent();\n  var axisExtentSum = axisExtent[0] + axisExtent[1]; // Fast transform\n\n  axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n    return coord + coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n  axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n    return coord - coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n}\n\nexport default Grid;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { retrieve, defaults, extend, each, isObject, map, isString, isNumber, isFunction } from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport Model from '../../model/Model.js';\nimport { isRadianAroundZero, remRadian } from '../../util/number.js';\nimport { createSymbol, normalizeSymbolOffset } from '../../util/symbol.js';\nimport * as matrixUtil from 'zrender/lib/core/matrix.js';\nimport { applyTransform as v2ApplyTransform } from 'zrender/lib/core/vector.js';\nimport { shouldShowAllLabels } from '../../coord/axisHelper.js';\nimport { prepareLayoutList, hideOverlap } from '../../label/labelLayoutHelper.js';\nvar PI = Math.PI;\n/**\n * A final axis is translated and rotated from a \"standard axis\".\n * So opt.position and opt.rotation is required.\n *\n * A standard axis is and axis from [0, 0] to [0, axisExtent[1]],\n * for example: (0, 0) ------------> (0, 50)\n *\n * nameDirection or tickDirection or labelDirection is 1 means tick\n * or label is below the standard axis, whereas is -1 means above\n * the standard axis. labelOffset means offset between label and axis,\n * which is useful when 'onZero', where axisLabel is in the grid and\n * label in outside grid.\n *\n * Tips: like always,\n * positive rotation represents anticlockwise, and negative rotation\n * represents clockwise.\n * The direction of position coordinate is the same as the direction\n * of screen coordinate.\n *\n * Do not need to consider axis 'inverse', which is auto processed by\n * axis extent.\n */\n\nvar AxisBuilder =\n/** @class */\nfunction () {\n  function AxisBuilder(axisModel, opt) {\n    this.group = new graphic.Group();\n    this.opt = opt;\n    this.axisModel = axisModel; // Default value\n\n    defaults(opt, {\n      labelOffset: 0,\n      nameDirection: 1,\n      tickDirection: 1,\n      labelDirection: 1,\n      silent: true,\n      handleAutoShown: function () {\n        return true;\n      }\n    }); // FIXME Not use a seperate text group?\n\n    var transformGroup = new graphic.Group({\n      x: opt.position[0],\n      y: opt.position[1],\n      rotation: opt.rotation\n    }); // this.group.add(transformGroup);\n    // this._transformGroup = transformGroup;\n\n    transformGroup.updateTransform();\n    this._transformGroup = transformGroup;\n  }\n\n  AxisBuilder.prototype.hasBuilder = function (name) {\n    return !!builders[name];\n  };\n\n  AxisBuilder.prototype.add = function (name) {\n    builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\n  };\n\n  AxisBuilder.prototype.getGroup = function () {\n    return this.group;\n  };\n\n  AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n    var rotationDiff = remRadian(textRotation - axisRotation);\n    var textAlign;\n    var textVerticalAlign;\n\n    if (isRadianAroundZero(rotationDiff)) {\n      // Label is parallel with axis line.\n      textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n      textAlign = 'center';\n    } else if (isRadianAroundZero(rotationDiff - PI)) {\n      // Label is inverse parallel with axis line.\n      textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n      textAlign = 'center';\n    } else {\n      textVerticalAlign = 'middle';\n\n      if (rotationDiff > 0 && rotationDiff < PI) {\n        textAlign = direction > 0 ? 'right' : 'left';\n      } else {\n        textAlign = direction > 0 ? 'left' : 'right';\n      }\n    }\n\n    return {\n      rotation: rotationDiff,\n      textAlign: textAlign,\n      textVerticalAlign: textVerticalAlign\n    };\n  };\n\n  AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n    var eventData = {\n      componentType: axisModel.mainType,\n      componentIndex: axisModel.componentIndex\n    };\n    eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n    return eventData;\n  };\n\n  AxisBuilder.isLabelSilent = function (axisModel) {\n    var tooltipOpt = axisModel.get('tooltip');\n    return axisModel.get('silent') // Consider mouse cursor, add these restrictions.\n    || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n  };\n\n  return AxisBuilder;\n}();\n\n;\nvar builders = {\n  axisLine: function (opt, axisModel, group, transformGroup) {\n    var shown = axisModel.get(['axisLine', 'show']);\n\n    if (shown === 'auto' && opt.handleAutoShown) {\n      shown = opt.handleAutoShown('axisLine');\n    }\n\n    if (!shown) {\n      return;\n    }\n\n    var extent = axisModel.axis.getExtent();\n    var matrix = transformGroup.transform;\n    var pt1 = [extent[0], 0];\n    var pt2 = [extent[1], 0];\n\n    if (matrix) {\n      v2ApplyTransform(pt1, pt1, matrix);\n      v2ApplyTransform(pt2, pt2, matrix);\n    }\n\n    var lineStyle = extend({\n      lineCap: 'round'\n    }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\n    var line = new graphic.Line({\n      // Id for animation\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: lineStyle,\n      strokeContainThreshold: opt.strokeContainThreshold || 5,\n      silent: true,\n      z2: 1\n    });\n    line.anid = 'line';\n    group.add(line);\n    var arrows = axisModel.get(['axisLine', 'symbol']);\n\n    if (arrows != null) {\n      var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\n\n      if (isString(arrows)) {\n        // Use the same arrow for start and end point\n        arrows = [arrows, arrows];\n      }\n\n      if (isString(arrowSize) || isNumber(arrowSize)) {\n        // Use the same size for width and height\n        arrowSize = [arrowSize, arrowSize];\n      }\n\n      var arrowOffset = normalizeSymbolOffset(axisModel.get(['axisLine', 'symbolOffset']) || 0, arrowSize);\n      var symbolWidth_1 = arrowSize[0];\n      var symbolHeight_1 = arrowSize[1];\n      each([{\n        rotate: opt.rotation + Math.PI / 2,\n        offset: arrowOffset[0],\n        r: 0\n      }, {\n        rotate: opt.rotation - Math.PI / 2,\n        offset: arrowOffset[1],\n        r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n      }], function (point, index) {\n        if (arrows[index] !== 'none' && arrows[index] != null) {\n          var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true); // Calculate arrow position with offset\n\n          var r = point.r + point.offset;\n          symbol.attr({\n            rotation: point.rotate,\n            x: pt1[0] + r * Math.cos(opt.rotation),\n            y: pt1[1] - r * Math.sin(opt.rotation),\n            silent: true,\n            z2: 11\n          });\n          group.add(symbol);\n        }\n      });\n    }\n  },\n  axisTickLabel: function (opt, axisModel, group, transformGroup) {\n    var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\n    var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\n    fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n    buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection); // This bit fixes the label overlap issue for the time chart.\n    // See https://github.com/apache/echarts/issues/14266 for more.\n\n    if (axisModel.get(['axisLabel', 'hideOverlap'])) {\n      var labelList = prepareLayoutList(map(labelEls, function (label) {\n        return {\n          label: label,\n          priority: label.z2,\n          defaultAttr: {\n            ignore: label.ignore\n          }\n        };\n      }));\n      hideOverlap(labelList);\n    }\n  },\n  axisName: function (opt, axisModel, group, transformGroup) {\n    var name = retrieve(opt.axisName, axisModel.get('name'));\n\n    if (!name) {\n      return;\n    }\n\n    var nameLocation = axisModel.get('nameLocation');\n    var nameDirection = opt.nameDirection;\n    var textStyleModel = axisModel.getModel('nameTextStyle');\n    var gap = axisModel.get('nameGap') || 0;\n    var extent = axisModel.axis.getExtent();\n    var gapSignal = extent[0] > extent[1] ? -1 : 1;\n    var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, // Reuse labelOffset.\n    isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n    var labelLayout;\n    var nameRotation = axisModel.get('nameRotate');\n\n    if (nameRotation != null) {\n      nameRotation = nameRotation * PI / 180; // To radian.\n    }\n\n    var axisNameAvailableWidth;\n\n    if (isNameLocationCenter(nameLocation)) {\n      labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, // Adapt to axis.\n      nameDirection);\n    } else {\n      labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\n      axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n      if (axisNameAvailableWidth != null) {\n        axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n        !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n      }\n    }\n\n    var textFont = textStyleModel.getFont();\n    var truncateOpt = axisModel.get('nameTruncate', true) || {};\n    var ellipsis = truncateOpt.ellipsis;\n    var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\n    var textEl = new graphic.Text({\n      x: pos[0],\n      y: pos[1],\n      rotation: labelLayout.rotation,\n      silent: AxisBuilder.isLabelSilent(axisModel),\n      style: createTextStyle(textStyleModel, {\n        text: name,\n        font: textFont,\n        overflow: 'truncate',\n        width: maxWidth,\n        ellipsis: ellipsis,\n        fill: textStyleModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']),\n        align: textStyleModel.get('align') || labelLayout.textAlign,\n        verticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n      }),\n      z2: 1\n    });\n    graphic.setTooltipConfig({\n      el: textEl,\n      componentModel: axisModel,\n      itemName: name\n    });\n    textEl.__fullText = name; // Id for animation\n\n    textEl.anid = 'name';\n\n    if (axisModel.get('triggerEvent')) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisName';\n      eventData.name = name;\n      getECData(textEl).eventData = eventData;\n    } // FIXME\n\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    group.add(textEl);\n    textEl.decomposeTransform();\n  }\n};\n\nfunction endTextLayout(rotation, textPosition, textRotate, extent) {\n  var rotationDiff = remRadian(textRotate - rotation);\n  var textAlign;\n  var textVerticalAlign;\n  var inverse = extent[0] > extent[1];\n  var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n  if (isRadianAroundZero(rotationDiff - PI / 2)) {\n    textVerticalAlign = onLeft ? 'bottom' : 'top';\n    textAlign = 'center';\n  } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n    textVerticalAlign = onLeft ? 'top' : 'bottom';\n    textAlign = 'center';\n  } else {\n    textVerticalAlign = 'middle';\n\n    if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n      textAlign = onLeft ? 'left' : 'right';\n    } else {\n      textAlign = onLeft ? 'right' : 'left';\n    }\n  }\n\n  return {\n    rotation: rotationDiff,\n    textAlign: textAlign,\n    textVerticalAlign: textVerticalAlign\n  };\n}\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n  if (shouldShowAllLabels(axisModel.axis)) {\n    return;\n  } // If min or max are user set, we need to check\n  // If the tick on min(max) are overlap on their neighbour tick\n  // If they are overlapped, we need to hide the min(max) tick label\n\n\n  var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\n  var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']); // FIXME\n  // Have not consider onBand yet, where tick els is more than label els.\n\n  labelEls = labelEls || [];\n  tickEls = tickEls || [];\n  var firstLabel = labelEls[0];\n  var nextLabel = labelEls[1];\n  var lastLabel = labelEls[labelEls.length - 1];\n  var prevLabel = labelEls[labelEls.length - 2];\n  var firstTick = tickEls[0];\n  var nextTick = tickEls[1];\n  var lastTick = tickEls[tickEls.length - 1];\n  var prevTick = tickEls[tickEls.length - 2];\n\n  if (showMinLabel === false) {\n    ignoreEl(firstLabel);\n    ignoreEl(firstTick);\n  } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n    if (showMinLabel) {\n      ignoreEl(nextLabel);\n      ignoreEl(nextTick);\n    } else {\n      ignoreEl(firstLabel);\n      ignoreEl(firstTick);\n    }\n  }\n\n  if (showMaxLabel === false) {\n    ignoreEl(lastLabel);\n    ignoreEl(lastTick);\n  } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n    if (showMaxLabel) {\n      ignoreEl(prevLabel);\n      ignoreEl(prevTick);\n    } else {\n      ignoreEl(lastLabel);\n      ignoreEl(lastTick);\n    }\n  }\n}\n\nfunction ignoreEl(el) {\n  el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next) {\n  // current and next has the same rotation.\n  var firstRect = current && current.getBoundingRect().clone();\n  var nextRect = next && next.getBoundingRect().clone();\n\n  if (!firstRect || !nextRect) {\n    return;\n  } // When checking intersect of two rotated labels, we use mRotationBack\n  // to avoid that boundingRect is enlarge when using `boundingRect.applyTransform`.\n\n\n  var mRotationBack = matrixUtil.identity([]);\n  matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n  firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n  nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n  return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n  return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\n  var tickEls = [];\n  var pt1 = [];\n  var pt2 = [];\n\n  for (var i = 0; i < ticksCoords.length; i++) {\n    var tickCoord = ticksCoords[i].coord;\n    pt1[0] = tickCoord;\n    pt1[1] = 0;\n    pt2[0] = tickCoord;\n    pt2[1] = tickEndCoord;\n\n    if (tickTransform) {\n      v2ApplyTransform(pt1, pt1, tickTransform);\n      v2ApplyTransform(pt2, pt2, tickTransform);\n    } // Tick line, Not use group transform to have better line draw\n\n\n    var tickEl = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: tickLineStyle,\n      z2: 2,\n      autoBatch: true,\n      silent: true\n    });\n    tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\n    tickEls.push(tickEl);\n  }\n\n  return tickEls;\n}\n\nfunction buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var tickModel = axisModel.getModel('axisTick');\n  var shown = tickModel.get('show');\n\n  if (shown === 'auto' && opt.handleAutoShown) {\n    shown = opt.handleAutoShown('axisTick');\n  }\n\n  if (!shown || axis.scale.isBlank()) {\n    return;\n  }\n\n  var lineStyleModel = tickModel.getModel('lineStyle');\n  var tickEndCoord = opt.tickDirection * tickModel.get('length');\n  var ticksCoords = axis.getTicksCoords();\n  var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }), 'ticks');\n\n  for (var i = 0; i < ticksEls.length; i++) {\n    group.add(ticksEls[i]);\n  }\n\n  return ticksEls;\n}\n\nfunction buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\n  var axis = axisModel.axis;\n  var minorTickModel = axisModel.getModel('minorTick');\n\n  if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n    return;\n  }\n\n  var minorTicksCoords = axis.getMinorTicksCoords();\n\n  if (!minorTicksCoords.length) {\n    return;\n  }\n\n  var lineStyleModel = minorTickModel.getModel('lineStyle');\n  var tickEndCoord = tickDirection * minorTickModel.get('length');\n  var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }));\n\n  for (var i = 0; i < minorTicksCoords.length; i++) {\n    var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n\n    for (var k = 0; k < minorTicksEls.length; k++) {\n      group.add(minorTicksEls[k]);\n    }\n  }\n}\n\nfunction buildAxisLabel(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\n\n  if (!show || axis.scale.isBlank()) {\n    return;\n  }\n\n  var labelModel = axisModel.getModel('axisLabel');\n  var labelMargin = labelModel.get('margin');\n  var labels = axis.getViewLabels(); // Special label rotate.\n\n  var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n  var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n  var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n  var labelEls = [];\n  var silent = AxisBuilder.isLabelSilent(axisModel);\n  var triggerEvent = axisModel.get('triggerEvent');\n  each(labels, function (labelItem, index) {\n    var tickValue = axis.scale.type === 'ordinal' ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n    var formattedLabel = labelItem.formattedLabel;\n    var rawLabel = labelItem.rawLabel;\n    var itemLabelModel = labelModel;\n\n    if (rawCategoryData && rawCategoryData[tickValue]) {\n      var rawCategoryItem = rawCategoryData[tickValue];\n\n      if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n        itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\n      }\n    }\n\n    var textColor = itemLabelModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']);\n    var tickCoord = axis.dataToCoord(tickValue);\n    var textEl = new graphic.Text({\n      x: tickCoord,\n      y: opt.labelOffset + opt.labelDirection * labelMargin,\n      rotation: labelLayout.rotation,\n      silent: silent,\n      z2: 10 + (labelItem.level || 0),\n      style: createTextStyle(itemLabelModel, {\n        text: formattedLabel,\n        align: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n        verticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n        fill: isFunction(textColor) ? textColor( // (1) In category axis with data zoom, tick is not the original\n        // index of axis.data. So tick should not be exposed to user\n        // in category axis.\n        // (2) Compatible with previous version, which always use formatted label as\n        // input. But in interval scale the formatted label is like '223,445', which\n        // maked user repalce ','. So we modify it to return original val but remain\n        // it as 'string' to avoid error in replacing.\n        axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n      })\n    });\n    textEl.anid = 'label_' + tickValue; // Pack data for mouse event\n\n    if (triggerEvent) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisLabel';\n      eventData.value = rawLabel;\n      eventData.tickIndex = index;\n\n      if (axis.type === 'category') {\n        eventData.dataIndex = tickValue;\n      }\n\n      getECData(textEl).eventData = eventData;\n    } // FIXME\n\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    labelEls.push(textEl);\n    group.add(textEl);\n    textEl.decomposeTransform();\n  });\n  return labelEls;\n}\n\nexport default AxisBuilder;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport Model from '../../model/Model.js';\nimport { each, curry, clone, defaults, isArray, indexOf } from 'zrender/lib/core/util.js'; // Build axisPointerModel, mergin tooltip.axisPointer model for each axis.\n// allAxesInfo should be updated when setOption performed.\n\nexport function collect(ecModel, api) {\n  var result = {\n    /**\n     * key: makeKey(axis.model)\n     * value: {\n     *      axis,\n     *      coordSys,\n     *      axisPointerModel,\n     *      triggerTooltip,\n     *      involveSeries,\n     *      snap,\n     *      seriesModels,\n     *      seriesDataCount\n     * }\n     */\n    axesInfo: {},\n    seriesInvolved: false,\n\n    /**\n     * key: makeKey(coordSys.model)\n     * value: Object: key makeKey(axis.model), value: axisInfo\n     */\n    coordSysAxesInfo: {},\n    coordSysMap: {}\n  };\n  collectAxesInfo(result, ecModel, api); // Check seriesInvolved for performance, in case too many series in some chart.\n\n  result.seriesInvolved && collectSeriesInfo(result, ecModel);\n  return result;\n}\n\nfunction collectAxesInfo(result, ecModel, api) {\n  var globalTooltipModel = ecModel.getComponent('tooltip');\n  var globalAxisPointerModel = ecModel.getComponent('axisPointer'); // links can only be set on global.\n\n  var linksOption = globalAxisPointerModel.get('link', true) || [];\n  var linkGroups = []; // Collect axes info.\n\n  each(api.getCoordinateSystems(), function (coordSys) {\n    // Some coordinate system do not support axes, like geo.\n    if (!coordSys.axisPointerEnabled) {\n      return;\n    }\n\n    var coordSysKey = makeKey(coordSys.model);\n    var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n    result.coordSysMap[coordSysKey] = coordSys; // Set tooltip (like 'cross') is a convienent way to show axisPointer\n    // for user. So we enable seting tooltip on coordSys model.\n\n    var coordSysModel = coordSys.model;\n    var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n    each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null)); // If axis tooltip used, choose tooltip axis for each coordSys.\n    // Notice this case: coordSys is `grid` but not `cartesian2D` here.\n\n    if (coordSys.getTooltipAxes && globalTooltipModel // If tooltip.showContent is set as false, tooltip will not\n    // show but axisPointer will show as normal.\n    && baseTooltipModel.get('show')) {\n      // Compatible with previous logic. But series.tooltip.trigger: 'axis'\n      // or series.data[n].tooltip.trigger: 'axis' are not support any more.\n      var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n      var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\n      var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\n\n      if (triggerAxis || cross) {\n        each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n      }\n\n      if (cross) {\n        each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n      }\n    } // fromTooltip: true | false | 'cross'\n    // triggerTooltip: true | false | null\n\n\n    function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n      var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n      var axisPointerShow = axisPointerModel.get('show');\n\n      if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n        return;\n      }\n\n      if (triggerTooltip == null) {\n        triggerTooltip = axisPointerModel.get('triggerTooltip');\n      }\n\n      axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n      var snap = axisPointerModel.get('snap');\n      var axisKey = makeKey(axis.model);\n      var involveSeries = triggerTooltip || snap || axis.type === 'category'; // If result.axesInfo[key] exist, override it (tooltip has higher priority).\n\n      var axisInfo = result.axesInfo[axisKey] = {\n        key: axisKey,\n        axis: axis,\n        coordSys: coordSys,\n        axisPointerModel: axisPointerModel,\n        triggerTooltip: triggerTooltip,\n        involveSeries: involveSeries,\n        snap: snap,\n        useHandle: isHandleTrigger(axisPointerModel),\n        seriesModels: [],\n        linkGroup: null\n      };\n      axesInfoInCoordSys[axisKey] = axisInfo;\n      result.seriesInvolved = result.seriesInvolved || involveSeries;\n      var groupIndex = getLinkGroupIndex(linksOption, axis);\n\n      if (groupIndex != null) {\n        var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n          axesInfo: {}\n        });\n        linkGroup.axesInfo[axisKey] = axisInfo;\n        linkGroup.mapper = linksOption[groupIndex].mapper;\n        axisInfo.linkGroup = linkGroup;\n      }\n    }\n  });\n}\n\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n  var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n  var fields = ['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'];\n  var volatileOption = {};\n  each(fields, function (field) {\n    volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\n  }); // category axis do not auto snap, otherwise some tick that do not\n  // has value can not be hovered. value/time/log axis default snap if\n  // triggered from tooltip and trigger tooltip.\n\n  volatileOption.snap = axis.type !== 'category' && !!triggerTooltip; // Compatibel with previous behavior, tooltip axis do not show label by default.\n  // Only these properties can be overrided from tooltip to axisPointer.\n\n  if (tooltipAxisPointerModel.get('type') === 'cross') {\n    volatileOption.type = 'line';\n  }\n\n  var labelOption = volatileOption.label || (volatileOption.label = {}); // Follow the convention, do not show label when triggered by tooltip by default.\n\n  labelOption.show == null && (labelOption.show = false);\n\n  if (fromTooltip === 'cross') {\n    // When 'cross', both axes show labels.\n    var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\n    labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true; // If triggerTooltip, this is a base axis, which should better not use cross style\n    // (cross style is dashed by default)\n\n    if (!triggerTooltip) {\n      var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n      crossStyle && defaults(labelOption, crossStyle.textStyle);\n    }\n  }\n\n  return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\n\nfunction collectSeriesInfo(result, ecModel) {\n  // Prepare data for axis trigger\n  ecModel.eachSeries(function (seriesModel) {\n    // Notice this case: this coordSys is `cartesian2D` but not `grid`.\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\n    var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\n\n    if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get(['axisPointer', 'show'], true) === false) {\n      return;\n    }\n\n    each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n      var axis = axisInfo.axis;\n\n      if (coordSys.getAxis(axis.dim) === axis) {\n        axisInfo.seriesModels.push(seriesModel);\n        axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n        axisInfo.seriesDataCount += seriesModel.getData().count();\n      }\n    });\n  });\n}\n/**\n * For example:\n * {\n *     axisPointer: {\n *         links: [{\n *             xAxisIndex: [2, 4],\n *             yAxisIndex: 'all'\n *         }, {\n *             xAxisId: ['a5', 'a7'],\n *             xAxisName: 'xxx'\n *         }]\n *     }\n * }\n */\n\n\nfunction getLinkGroupIndex(linksOption, axis) {\n  var axisModel = axis.model;\n  var dim = axis.dim;\n\n  for (var i = 0; i < linksOption.length; i++) {\n    var linkOption = linksOption[i] || {};\n\n    if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n      return i;\n    }\n  }\n}\n\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n  return linkPropValue === 'all' || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\n\nexport function fixValue(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n\n  if (!axisInfo) {\n    return;\n  }\n\n  var axisPointerModel = axisInfo.axisPointerModel;\n  var scale = axisInfo.axis.scale;\n  var option = axisPointerModel.option;\n  var status = axisPointerModel.get('status');\n  var value = axisPointerModel.get('value'); // Parse init value for category and time axis.\n\n  if (value != null) {\n    value = scale.parse(value);\n  }\n\n  var useHandle = isHandleTrigger(axisPointerModel); // If `handle` used, `axisPointer` will always be displayed, so value\n  // and status should be initialized.\n\n  if (status == null) {\n    option.status = useHandle ? 'show' : 'hide';\n  }\n\n  var extent = scale.getExtent().slice();\n  extent[0] > extent[1] && extent.reverse();\n\n  if ( // Pick a value on axis when initializing.\n  value == null // If both `handle` and `dataZoom` are used, value may be out of axis extent,\n  // where we should re-pick a value to keep `handle` displaying normally.\n  || value > extent[1]) {\n    // Make handle displayed on the end of the axis when init, which looks better.\n    value = extent[1];\n  }\n\n  if (value < extent[0]) {\n    value = extent[0];\n  }\n\n  option.value = value;\n\n  if (useHandle) {\n    option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n  }\n}\nexport function getAxisInfo(axisModel) {\n  var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n  return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\nexport function getAxisPointerModel(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n  return axisInfo && axisInfo.axisPointerModel;\n}\n\nfunction isHandleTrigger(axisPointerModel) {\n  return !!axisPointerModel.get(['handle', 'show']);\n}\n/**\n * @param {module:echarts/model/Model} model\n * @return {string} unique key\n */\n\n\nexport function makeKey(model) {\n  return model.type + '||' + model.id;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as axisPointerModelHelper from '../axisPointer/modelHelper.js';\nimport ComponentView from '../../view/Component.js';\nvar axisPointerClazz = {};\n/**\n * Base class of AxisView.\n */\n\nvar AxisView =\n/** @class */\nfunction (_super) {\n  __extends(AxisView, _super);\n\n  function AxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisView.type;\n    return _this;\n  }\n  /**\n   * @override\n   */\n\n\n  AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    // FIXME\n    // This process should proformed after coordinate systems updated\n    // (axis scale updated), and should be performed each time update.\n    // So put it here temporarily, although it is not appropriate to\n    // put a model-writing procedure in `view`.\n    this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n\n    _super.prototype.render.apply(this, arguments);\n\n    this._doUpdateAxisPointerClass(axisModel, api, true);\n  };\n  /**\n   * Action handler.\n   */\n\n\n  AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\n    this._doUpdateAxisPointerClass(axisModel, api, false);\n  };\n  /**\n   * @override\n   */\n\n\n  AxisView.prototype.remove = function (ecModel, api) {\n    var axisPointer = this._axisPointer;\n    axisPointer && axisPointer.remove(api);\n  };\n  /**\n   * @override\n   */\n\n\n  AxisView.prototype.dispose = function (ecModel, api) {\n    this._disposeAxisPointer(api);\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\n    var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\n\n    if (!Clazz) {\n      return;\n    }\n\n    var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n    axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api);\n  };\n\n  AxisView.prototype._disposeAxisPointer = function (api) {\n    this._axisPointer && this._axisPointer.dispose(api);\n    this._axisPointer = null;\n  };\n\n  AxisView.registerAxisPointerClass = function (type, clazz) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (axisPointerClazz[type]) {\n        throw new Error('axisPointer ' + type + ' exists');\n      }\n    }\n\n    axisPointerClazz[type] = clazz;\n  };\n\n  ;\n\n  AxisView.getAxisPointerClass = function (type) {\n    return type && axisPointerClazz[type];\n  };\n\n  ;\n  AxisView.type = 'axis';\n  return AxisView;\n}(ComponentView);\n\nexport default AxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { makeInner } from '../../util/model.js';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n  var axis = axisModel.axis;\n\n  if (axis.scale.isBlank()) {\n    return;\n  } // TODO: TYPE\n\n\n  var splitAreaModel = axisModel.getModel('splitArea');\n  var areaStyleModel = splitAreaModel.getModel('areaStyle');\n  var areaColors = areaStyleModel.get('color');\n  var gridRect = gridModel.coordinateSystem.getRect();\n  var ticksCoords = axis.getTicksCoords({\n    tickModel: splitAreaModel,\n    clamp: true\n  });\n\n  if (!ticksCoords.length) {\n    return;\n  } // For Making appropriate splitArea animation, the color and anid\n  // should be corresponding to previous one if possible.\n\n\n  var areaColorsLen = areaColors.length;\n  var lastSplitAreaColors = inner(axisView).splitAreaColors;\n  var newSplitAreaColors = zrUtil.createHashMap();\n  var colorIndex = 0;\n\n  if (lastSplitAreaColors) {\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n      if (cIndex != null) {\n        colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n        break;\n      }\n    }\n  }\n\n  var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n  var areaStyle = areaStyleModel.getAreaStyle();\n  areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n  for (var i = 1; i < ticksCoords.length; i++) {\n    var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n    var x = void 0;\n    var y = void 0;\n    var width = void 0;\n    var height = void 0;\n\n    if (axis.isHorizontal()) {\n      x = prev;\n      y = gridRect.y;\n      width = tickCoord - x;\n      height = gridRect.height;\n      prev = x + width;\n    } else {\n      x = gridRect.x;\n      y = prev;\n      width = gridRect.width;\n      height = tickCoord - y;\n      prev = y + height;\n    }\n\n    var tickValue = ticksCoords[i - 1].tickValue;\n    tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n    axisGroup.add(new graphic.Rect({\n      anid: tickValue != null ? 'area_' + tickValue : null,\n      shape: {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      },\n      style: zrUtil.defaults({\n        fill: areaColors[colorIndex]\n      }, areaStyle),\n      autoBatch: true,\n      silent: true\n    }));\n    colorIndex = (colorIndex + 1) % areaColorsLen;\n  }\n\n  inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n  inner(axisView).splitAreaColors = null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport AxisBuilder from './AxisBuilder.js';\nimport AxisView from './AxisView.js';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper.js';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper.js';\nimport { isIntervalOrLogScale } from '../../scale/helper.js';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\n\nvar CartesianAxisView =\n/** @class */\nfunction (_super) {\n  __extends(CartesianAxisView, _super);\n\n  function CartesianAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianAxisView.type;\n    _this.axisPointerClass = 'CartesianAxisPointer';\n    return _this;\n  }\n  /**\n   * @override\n   */\n\n\n  CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var gridModel = axisModel.getCoordSysModel();\n    var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n      handleAutoShown: function (elementType) {\n        var cartesians = gridModel.coordinateSystem.getCartesians();\n\n        for (var i = 0; i < cartesians.length; i++) {\n          if (isIntervalOrLogScale(cartesians[i].getOtherAxis(axisModel.axis).scale)) {\n            // Still show axis tick or axisLine if other axis is value / log\n            return true;\n          }\n        } // Not show axisTick or axisLine if other axis is category / time\n\n\n        return false;\n      }\n    }, layout));\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n      }\n    }, this); // THIS is a special case for bar racing chart.\n    // Update the axis label from the natural initial layout to\n    // sorted layout should has no animation.\n\n    var isInitialSortFromBarRacing = payload && payload.type === 'changeAxisOrder' && payload.isInitSort;\n\n    if (!isInitialSortFromBarRacing) {\n      graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n    }\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  CartesianAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  CartesianAxisView.type = 'cartesianAxis';\n  return CartesianAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      var tickValue = ticksCoords[i].tickValue;\n      axisGroup.add(new graphic.Line({\n        anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n        subPixelOptimize: true,\n        autoBatch: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        style: zrUtil.defaults({\n          stroke: lineColors[colorIndex]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n    var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var minorTicksCoords = axis.getMinorTicksCoords();\n\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n        if (isHorizontal) {\n          p1[0] = tickCoord;\n          p1[1] = gridRect.y;\n          p2[0] = tickCoord;\n          p2[1] = gridRect.y + gridRect.height;\n        } else {\n          p1[0] = gridRect.x;\n          p1[1] = tickCoord;\n          p2[0] = gridRect.x + gridRect.width;\n          p2[1] = tickCoord;\n        }\n\n        axisGroup.add(new graphic.Line({\n          anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n          subPixelOptimize: true,\n          autoBatch: true,\n          shape: {\n            x1: p1[0],\n            y1: p1[1],\n            x2: p2[0],\n            y2: p2[1]\n          },\n          style: lineStyle,\n          silent: true\n        }));\n      }\n    }\n  },\n  splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n  }\n};\n\nvar CartesianXAxisView =\n/** @class */\nfunction (_super) {\n  __extends(CartesianXAxisView, _super);\n\n  function CartesianXAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianXAxisView.type = 'xAxis';\n  return CartesianXAxisView;\n}(CartesianAxisView);\n\nexport { CartesianXAxisView };\n\nvar CartesianYAxisView =\n/** @class */\nfunction (_super) {\n  __extends(CartesianYAxisView, _super);\n\n  function CartesianYAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianYAxisView.type = 'yAxis';\n  return CartesianYAxisView;\n}(CartesianAxisView);\n\nexport { CartesianYAxisView };\nexport default CartesianAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component.js';\nimport GridModel from '../../coord/cartesian/GridModel.js';\nimport { Rect } from '../../util/graphic.js';\nimport { defaults } from 'zrender/lib/core/util.js';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel.js';\nimport axisModelCreator from '../../coord/axisModelCreator.js';\nimport Grid from '../../coord/cartesian/Grid.js';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView.js'; // Grid view\n\nvar GridView =\n/** @class */\nfunction (_super) {\n  __extends(GridView, _super);\n\n  function GridView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'grid';\n    return _this;\n  }\n\n  GridView.prototype.render = function (gridModel, ecModel) {\n    this.group.removeAll();\n\n    if (gridModel.get('show')) {\n      this.group.add(new Rect({\n        shape: gridModel.coordinateSystem.getRect(),\n        style: defaults({\n          fill: gridModel.get('backgroundColor')\n        }, gridModel.getItemStyle()),\n        silent: true,\n        z2: -1\n      }));\n    }\n  };\n\n  GridView.type = 'grid';\n  return GridView;\n}(ComponentView);\n\nvar extraOption = {\n  // gridIndex: 0,\n  // gridId: '',\n  offset: 0\n};\nexport function install(registers) {\n  registers.registerComponentView(GridView);\n  registers.registerComponentModel(GridModel);\n  registers.registerCoordinateSystem('cartesian2d', Grid);\n  axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n  axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n  registers.registerComponentView(CartesianXAxisView);\n  registers.registerComponentView(CartesianYAxisView);\n  registers.registerPreprocessor(function (option) {\n    // Only create grid when need\n    if (option.xAxis && option.yAxis && !option.grid) {\n      option.grid = {};\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport ScatterSeriesModel from './ScatterSeries.js';\nimport ScatterView from './ScatterView.js';\nimport { install as installGridSimple } from '../../component/grid/installSimple.js';\nimport layoutPoints from '../../layout/points.js';\nexport function install(registers) {\n  // In case developer forget to include grid component\n  use(installGridSimple);\n  registers.registerSeriesModel(ScatterSeriesModel);\n  registers.registerChartView(ScatterView);\n  registers.registerLayout(layoutPoints('scatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport default function radarLayout(ecModel) {\n  ecModel.eachSeriesByType('radar', function (seriesModel) {\n    var data = seriesModel.getData();\n    var points = [];\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (!coordSys) {\n      return;\n    }\n\n    var axes = coordSys.getIndicatorAxes();\n    zrUtil.each(axes, function (axis, axisIndex) {\n      data.each(data.mapDimension(axes[axisIndex].dim), function (val, dataIndex) {\n        points[dataIndex] = points[dataIndex] || [];\n        var point = coordSys.dataToPoint(val, axisIndex);\n        points[dataIndex][axisIndex] = isValidPoint(point) ? point : getValueMissingPoint(coordSys);\n      });\n    }); // Close polygon\n\n    data.each(function (idx) {\n      // TODO\n      // Is it appropriate to connect to the next data when some data is missing?\n      // Or, should trade it like `connectNull` in line chart?\n      var firstPoint = zrUtil.find(points[idx], function (point) {\n        return isValidPoint(point);\n      }) || getValueMissingPoint(coordSys); // Copy the first actual point to the end of the array\n\n      points[idx].push(firstPoint.slice());\n      data.setItemLayout(idx, points[idx]);\n    });\n  });\n}\n\nfunction isValidPoint(point) {\n  return !isNaN(point[0]) && !isNaN(point[1]);\n}\n\nfunction getValueMissingPoint(coordSys) {\n  // It is error-prone to input [NaN, NaN] into polygon, polygon.\n  // (probably cause problem when refreshing or animating)\n  return [coordSys.cx, coordSys.cy];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\n// Backward compat for radar chart in 2\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport default function radarBackwardCompat(option) {\n  var polarOptArr = option.polar;\n\n  if (polarOptArr) {\n    if (!zrUtil.isArray(polarOptArr)) {\n      polarOptArr = [polarOptArr];\n    }\n\n    var polarNotRadar_1 = [];\n    zrUtil.each(polarOptArr, function (polarOpt, idx) {\n      if (polarOpt.indicator) {\n        if (polarOpt.type && !polarOpt.shape) {\n          polarOpt.shape = polarOpt.type;\n        }\n\n        option.radar = option.radar || [];\n\n        if (!zrUtil.isArray(option.radar)) {\n          option.radar = [option.radar];\n        }\n\n        option.radar.push(polarOpt);\n      } else {\n        polarNotRadar_1.push(polarOpt);\n      }\n    });\n    option.polar = polarNotRadar_1;\n  }\n\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) {\n      seriesOpt.radarIndex = seriesOpt.polarIndex;\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as symbolUtil from '../../util/symbol.js';\nimport ChartView from '../../view/Chart.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport ZRImage from 'zrender/lib/graphic/Image.js';\nimport { saveOldStyle } from '../../animation/basicTrasition.js';\n\nvar RadarView =\n/** @class */\nfunction (_super) {\n  __extends(RadarView, _super);\n\n  function RadarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarView.type;\n    return _this;\n  }\n\n  RadarView.prototype.render = function (seriesModel, ecModel, api) {\n    var polar = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n\n    function createSymbol(data, idx) {\n      var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n\n      if (symbolType === 'none') {\n        return;\n      }\n\n      var symbolSize = symbolUtil.normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n      var symbolPath = symbolUtil.createSymbol(symbolType, -1, -1, 2, 2);\n      var symbolRotate = data.getItemVisual(idx, 'symbolRotate') || 0;\n      symbolPath.attr({\n        style: {\n          strokeNoScale: true\n        },\n        z2: 100,\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2,\n        rotation: symbolRotate * Math.PI / 180 || 0\n      });\n      return symbolPath;\n    }\n\n    function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\n      // Simply rerender all\n      symbolGroup.removeAll();\n\n      for (var i = 0; i < newPoints.length - 1; i++) {\n        var symbolPath = createSymbol(data, idx);\n\n        if (symbolPath) {\n          symbolPath.__dimIdx = i;\n\n          if (oldPoints[i]) {\n            symbolPath.setPosition(oldPoints[i]);\n            graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\n              x: newPoints[i][0],\n              y: newPoints[i][1]\n            }, seriesModel, idx);\n          } else {\n            symbolPath.setPosition(newPoints[i]);\n          }\n\n          symbolGroup.add(symbolPath);\n        }\n      }\n    }\n\n    function getInitialPoints(points) {\n      return zrUtil.map(points, function (pt) {\n        return [polar.cx, polar.cy];\n      });\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var points = data.getItemLayout(idx);\n\n      if (!points) {\n        return;\n      }\n\n      var polygon = new graphic.Polygon();\n      var polyline = new graphic.Polyline();\n      var target = {\n        shape: {\n          points: points\n        }\n      };\n      polygon.shape.points = getInitialPoints(points);\n      polyline.shape.points = getInitialPoints(points);\n      graphic.initProps(polygon, target, seriesModel, idx);\n      graphic.initProps(polyline, target, seriesModel, idx);\n      var itemGroup = new graphic.Group();\n      var symbolGroup = new graphic.Group();\n      itemGroup.add(polyline);\n      itemGroup.add(polygon);\n      itemGroup.add(symbolGroup);\n      updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\n      data.setItemGraphicEl(idx, itemGroup);\n    }).update(function (newIdx, oldIdx) {\n      var itemGroup = oldData.getItemGraphicEl(oldIdx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2);\n      var target = {\n        shape: {\n          points: data.getItemLayout(newIdx)\n        }\n      };\n\n      if (!target.shape.points) {\n        return;\n      }\n\n      updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\n      saveOldStyle(polygon);\n      saveOldStyle(polyline);\n      graphic.updateProps(polyline, target, seriesModel);\n      graphic.updateProps(polygon, target, seriesModel);\n      data.setItemGraphicEl(newIdx, itemGroup);\n    }).remove(function (idx) {\n      group.remove(oldData.getItemGraphicEl(idx));\n    }).execute();\n    data.eachItemGraphicEl(function (itemGroup, idx) {\n      var itemModel = data.getItemModel(idx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2); // Radar uses the visual encoded from itemStyle.\n\n      var itemStyle = data.getItemVisual(idx, 'style');\n      var color = itemStyle.fill;\n      group.add(itemGroup);\n      polyline.useStyle(zrUtil.defaults(itemModel.getModel('lineStyle').getLineStyle(), {\n        fill: 'none',\n        stroke: color\n      }));\n      setStatesStylesFromModel(polyline, itemModel, 'lineStyle');\n      setStatesStylesFromModel(polygon, itemModel, 'areaStyle');\n      var areaStyleModel = itemModel.getModel('areaStyle');\n      var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\n      polygon.ignore = polygonIgnore;\n      zrUtil.each(['emphasis', 'select', 'blur'], function (stateName) {\n        var stateModel = itemModel.getModel([stateName, 'areaStyle']);\n        var stateIgnore = stateModel.isEmpty() && stateModel.parentModel.isEmpty(); // Won't be ignore if normal state is not ignore.\n\n        polygon.ensureState(stateName).ignore = stateIgnore && polygonIgnore;\n      });\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: color,\n        opacity: 0.7,\n        decal: itemStyle.decal\n      }));\n      var emphasisModel = itemModel.getModel('emphasis');\n      var itemHoverStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      symbolGroup.eachChild(function (symbolPath) {\n        if (symbolPath instanceof ZRImage) {\n          var pathStyle = symbolPath.style;\n          symbolPath.useStyle(zrUtil.extend({\n            // TODO other properties like x, y ?\n            image: pathStyle.image,\n            x: pathStyle.x,\n            y: pathStyle.y,\n            width: pathStyle.width,\n            height: pathStyle.height\n          }, itemStyle));\n        } else {\n          symbolPath.useStyle(itemStyle);\n          symbolPath.setColor(color);\n          symbolPath.style.strokeNoScale = true;\n        }\n\n        var pathEmphasisState = symbolPath.ensureState('emphasis');\n        pathEmphasisState.style = zrUtil.clone(itemHoverStyle);\n        var defaultText = data.getStore().get(data.getDimensionIndex(symbolPath.__dimIdx), idx);\n        (defaultText == null || isNaN(defaultText)) && (defaultText = '');\n        setLabelStyle(symbolPath, getLabelStatesModels(itemModel), {\n          labelFetcher: data.hostModel,\n          labelDataIndex: idx,\n          labelDimIndex: symbolPath.__dimIdx,\n          defaultText: defaultText,\n          inheritColor: color,\n          defaultOpacity: itemStyle.opacity\n        });\n      });\n      toggleHoverEmphasis(itemGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n    });\n    this._data = data;\n  };\n\n  RadarView.prototype.remove = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  RadarView.type = 'radar';\n  return RadarView;\n}(ChartView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport createSeriesDataSimply from '../helper/createSeriesDataSimply.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider.js';\nimport { createTooltipMarkup, retrieveVisualColorForTooltipMarker } from '../../component/tooltip/tooltipMarkup.js';\n\nvar RadarSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(RadarSeriesModel, _super);\n\n  function RadarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  } // Overwrite\n\n\n  RadarSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments); // Enable legend selection for each data item\n    // Use a function instead of direct access because data reference may changed\n\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n  };\n\n  RadarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createSeriesDataSimply(this, {\n      generateCoord: 'indicator_',\n      generateCoordCount: Infinity\n    });\n  };\n\n  RadarSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var coordSys = this.coordinateSystem;\n    var indicatorAxes = coordSys.getIndicatorAxes();\n    var name = this.getData().getName(dataIndex);\n    var nameToDisplay = name === '' ? this.name : name;\n    var markerColor = retrieveVisualColorForTooltipMarker(this, dataIndex);\n    return createTooltipMarkup('section', {\n      header: nameToDisplay,\n      sortBlocks: true,\n      blocks: zrUtil.map(indicatorAxes, function (axis) {\n        var val = data.get(data.mapDimension(axis.dim), dataIndex);\n        return createTooltipMarkup('nameValue', {\n          markerType: 'subItem',\n          markerColor: markerColor,\n          name: axis.name,\n          value: val,\n          sortParam: val\n        });\n      })\n    });\n  };\n\n  RadarSeriesModel.prototype.getTooltipPosition = function (dataIndex) {\n    if (dataIndex != null) {\n      var data_1 = this.getData();\n      var coordSys = this.coordinateSystem;\n      var values = data_1.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n        return data_1.mapDimension(dim);\n      }), dataIndex);\n\n      for (var i = 0, len = values.length; i < len; i++) {\n        if (!isNaN(values[i])) {\n          var indicatorAxes = coordSys.getIndicatorAxes();\n          return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i);\n        }\n      }\n    }\n  };\n\n  RadarSeriesModel.type = 'series.radar';\n  RadarSeriesModel.dependencies = ['radar'];\n  RadarSeriesModel.defaultOption = {\n    // zlevel: 0,\n    z: 2,\n    colorBy: 'data',\n    coordinateSystem: 'radar',\n    legendHoverLink: true,\n    radarIndex: 0,\n    lineStyle: {\n      width: 2,\n      type: 'solid',\n      join: 'round'\n    },\n    label: {\n      position: 'top'\n    },\n    // areaStyle: {\n    // },\n    // itemStyle: {}\n    symbolSize: 8 // symbolRotate: null\n\n  };\n  return RadarSeriesModel;\n}(SeriesModel);\n\nexport default RadarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport axisDefault from '../axisDefault.js';\nimport Model from '../../model/Model.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\nimport ComponentModel from '../../model/Component.js';\nvar valueAxisDefault = axisDefault.value;\n\nfunction defaultsShow(opt, show) {\n  return zrUtil.defaults({\n    show: show\n  }, opt);\n}\n\nvar RadarModel =\n/** @class */\nfunction (_super) {\n  __extends(RadarModel, _super);\n\n  function RadarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarModel.type;\n    return _this;\n  }\n\n  RadarModel.prototype.optionUpdated = function () {\n    var boundaryGap = this.get('boundaryGap');\n    var splitNumber = this.get('splitNumber');\n    var scale = this.get('scale');\n    var axisLine = this.get('axisLine');\n    var axisTick = this.get('axisTick'); // let axisType = this.get('axisType');\n\n    var axisLabel = this.get('axisLabel');\n    var nameTextStyle = this.get('axisName');\n    var showName = this.get(['axisName', 'show']);\n    var nameFormatter = this.get(['axisName', 'formatter']);\n    var nameGap = this.get('axisNameGap');\n    var triggerEvent = this.get('triggerEvent');\n    var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) {\n      // PENDING\n      if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\n        indicatorOpt.min = 0;\n      } else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\n        indicatorOpt.max = 0;\n      }\n\n      var iNameTextStyle = nameTextStyle;\n\n      if (indicatorOpt.color != null) {\n        iNameTextStyle = zrUtil.defaults({\n          color: indicatorOpt.color\n        }, nameTextStyle);\n      } // Use same configuration\n\n\n      var innerIndicatorOpt = zrUtil.merge(zrUtil.clone(indicatorOpt), {\n        boundaryGap: boundaryGap,\n        splitNumber: splitNumber,\n        scale: scale,\n        axisLine: axisLine,\n        axisTick: axisTick,\n        // axisType: axisType,\n        axisLabel: axisLabel,\n        // Compatible with 2 and use text\n        name: indicatorOpt.text,\n        showName: showName,\n        nameLocation: 'end',\n        nameGap: nameGap,\n        // min: 0,\n        nameTextStyle: iNameTextStyle,\n        triggerEvent: triggerEvent\n      }, false);\n\n      if (zrUtil.isString(nameFormatter)) {\n        var indName = innerIndicatorOpt.name;\n        innerIndicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\n      } else if (zrUtil.isFunction(nameFormatter)) {\n        innerIndicatorOpt.name = nameFormatter(innerIndicatorOpt.name, innerIndicatorOpt);\n      }\n\n      var model = new Model(innerIndicatorOpt, null, this.ecModel);\n      zrUtil.mixin(model, AxisModelCommonMixin.prototype); // For triggerEvent.\n\n      model.mainType = 'radar';\n      model.componentIndex = this.componentIndex;\n      return model;\n    }, this);\n    this._indicatorModels = indicatorModels;\n  };\n\n  RadarModel.prototype.getIndicatorModels = function () {\n    return this._indicatorModels;\n  };\n\n  RadarModel.type = 'radar';\n  RadarModel.defaultOption = {\n    // zlevel: 0,\n    z: 0,\n    center: ['50%', '50%'],\n    radius: '75%',\n    startAngle: 90,\n    axisName: {\n      show: true // formatter: null\n      // textStyle: {}\n\n    },\n    boundaryGap: [0, 0],\n    splitNumber: 5,\n    axisNameGap: 15,\n    scale: false,\n    // Polygon or circle\n    shape: 'polygon',\n    axisLine: zrUtil.merge({\n      lineStyle: {\n        color: '#bbb'\n      }\n    }, valueAxisDefault.axisLine),\n    axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\n    axisTick: defaultsShow(valueAxisDefault.axisTick, false),\n    // axisType: 'value',\n    splitLine: defaultsShow(valueAxisDefault.splitLine, true),\n    splitArea: defaultsShow(valueAxisDefault.splitArea, true),\n    // {text, min, max}\n    indicator: []\n  };\n  return RadarModel;\n}(ComponentModel);\n\nexport default RadarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport AxisBuilder from '../axis/AxisBuilder.js';\nimport * as graphic from '../../util/graphic.js';\nimport ComponentView from '../../view/Component.js';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar RadarView =\n/** @class */\nfunction (_super) {\n  __extends(RadarView, _super);\n\n  function RadarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarView.type;\n    return _this;\n  }\n\n  RadarView.prototype.render = function (radarModel, ecModel, api) {\n    var group = this.group;\n    group.removeAll();\n\n    this._buildAxes(radarModel);\n\n    this._buildSplitLineAndArea(radarModel);\n  };\n\n  RadarView.prototype._buildAxes = function (radarModel) {\n    var radar = radarModel.coordinateSystem;\n    var indicatorAxes = radar.getIndicatorAxes();\n    var axisBuilders = zrUtil.map(indicatorAxes, function (indicatorAxis) {\n      var axisName = indicatorAxis.model.get('showName') ? indicatorAxis.name : ''; // hide name\n\n      var axisBuilder = new AxisBuilder(indicatorAxis.model, {\n        axisName: axisName,\n        position: [radar.cx, radar.cy],\n        rotation: indicatorAxis.angle,\n        labelDirection: -1,\n        tickDirection: -1,\n        nameDirection: 1\n      });\n      return axisBuilder;\n    });\n    zrUtil.each(axisBuilders, function (axisBuilder) {\n      zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n      this.group.add(axisBuilder.getGroup());\n    }, this);\n  };\n\n  RadarView.prototype._buildSplitLineAndArea = function (radarModel) {\n    var radar = radarModel.coordinateSystem;\n    var indicatorAxes = radar.getIndicatorAxes();\n\n    if (!indicatorAxes.length) {\n      return;\n    }\n\n    var shape = radarModel.get('shape');\n    var splitLineModel = radarModel.getModel('splitLine');\n    var splitAreaModel = radarModel.getModel('splitArea');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var showSplitLine = splitLineModel.get('show');\n    var showSplitArea = splitAreaModel.get('show');\n    var splitLineColors = lineStyleModel.get('color');\n    var splitAreaColors = areaStyleModel.get('color');\n    var splitLineColorsArr = zrUtil.isArray(splitLineColors) ? splitLineColors : [splitLineColors];\n    var splitAreaColorsArr = zrUtil.isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors];\n    var splitLines = [];\n    var splitAreas = [];\n\n    function getColorIndex(areaOrLine, areaOrLineColorList, idx) {\n      var colorIndex = idx % areaOrLineColorList.length;\n      areaOrLine[colorIndex] = areaOrLine[colorIndex] || [];\n      return colorIndex;\n    }\n\n    if (shape === 'circle') {\n      var ticksRadius = indicatorAxes[0].getTicksCoords();\n      var cx = radar.cx;\n      var cy = radar.cy;\n\n      for (var i = 0; i < ticksRadius.length; i++) {\n        if (showSplitLine) {\n          var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n          splitLines[colorIndex].push(new graphic.Circle({\n            shape: {\n              cx: cx,\n              cy: cy,\n              r: ticksRadius[i].coord\n            }\n          }));\n        }\n\n        if (showSplitArea && i < ticksRadius.length - 1) {\n          var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i);\n          splitAreas[colorIndex].push(new graphic.Ring({\n            shape: {\n              cx: cx,\n              cy: cy,\n              r0: ticksRadius[i].coord,\n              r: ticksRadius[i + 1].coord\n            }\n          }));\n        }\n      }\n    } // Polyyon\n    else {\n        var realSplitNumber_1;\n        var axesTicksPoints = zrUtil.map(indicatorAxes, function (indicatorAxis, idx) {\n          var ticksCoords = indicatorAxis.getTicksCoords();\n          realSplitNumber_1 = realSplitNumber_1 == null ? ticksCoords.length - 1 : Math.min(ticksCoords.length - 1, realSplitNumber_1);\n          return zrUtil.map(ticksCoords, function (tickCoord) {\n            return radar.coordToPoint(tickCoord.coord, idx);\n          });\n        });\n        var prevPoints = [];\n\n        for (var i = 0; i <= realSplitNumber_1; i++) {\n          var points = [];\n\n          for (var j = 0; j < indicatorAxes.length; j++) {\n            points.push(axesTicksPoints[j][i]);\n          } // Close\n\n\n          if (points[0]) {\n            points.push(points[0].slice());\n          } else {\n            if (process.env.NODE_ENV !== 'production') {\n              console.error('Can\\'t draw value axis ' + i);\n            }\n          }\n\n          if (showSplitLine) {\n            var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n            splitLines[colorIndex].push(new graphic.Polyline({\n              shape: {\n                points: points\n              }\n            }));\n          }\n\n          if (showSplitArea && prevPoints) {\n            var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i - 1);\n            splitAreas[colorIndex].push(new graphic.Polygon({\n              shape: {\n                points: points.concat(prevPoints)\n              }\n            }));\n          }\n\n          prevPoints = points.slice().reverse();\n        }\n      }\n\n    var lineStyle = lineStyleModel.getLineStyle();\n    var areaStyle = areaStyleModel.getAreaStyle(); // Add splitArea before splitLine\n\n    zrUtil.each(splitAreas, function (splitAreas, idx) {\n      this.group.add(graphic.mergePath(splitAreas, {\n        style: zrUtil.defaults({\n          stroke: 'none',\n          fill: splitAreaColorsArr[idx % splitAreaColorsArr.length]\n        }, areaStyle),\n        silent: true\n      }));\n    }, this);\n    zrUtil.each(splitLines, function (splitLines, idx) {\n      this.group.add(graphic.mergePath(splitLines, {\n        style: zrUtil.defaults({\n          fill: 'none',\n          stroke: splitLineColorsArr[idx % splitLineColorsArr.length]\n        }, lineStyle),\n        silent: true\n      }));\n    }, this);\n  };\n\n  RadarView.type = 'radar';\n  return RadarView;\n}(ComponentView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\n\nvar IndicatorAxis =\n/** @class */\nfunction (_super) {\n  __extends(IndicatorAxis, _super);\n\n  function IndicatorAxis(dim, scale, radiusExtent) {\n    var _this = _super.call(this, dim, scale, radiusExtent) || this;\n\n    _this.type = 'value';\n    _this.angle = 0;\n    _this.name = '';\n    return _this;\n  }\n\n  return IndicatorAxis;\n}(Axis);\n\nexport default IndicatorAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO clockwise\nimport IndicatorAxis from './IndicatorAxis.js';\nimport IntervalScale from '../../scale/Interval.js';\nimport * as numberUtil from '../../util/number.js';\nimport { map, each, isString, isNumber } from 'zrender/lib/core/util.js';\nimport { alignScaleTicks } from '../axisAlignTicks.js';\n\nvar Radar =\n/** @class */\nfunction () {\n  function Radar(radarModel, ecModel, api) {\n    /**\n     *\n     * Radar dimensions\n     */\n    this.dimensions = [];\n    this._model = radarModel;\n    this._indicatorAxes = map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\n      var dim = 'indicator_' + idx;\n      var indicatorAxis = new IndicatorAxis(dim, new IntervalScale() // (indicatorModel.get('axisType') === 'log') ? new LogScale() : new IntervalScale()\n      );\n      indicatorAxis.name = indicatorModel.get('name'); // Inject model and axis\n\n      indicatorAxis.model = indicatorModel;\n      indicatorModel.axis = indicatorAxis;\n      this.dimensions.push(dim);\n      return indicatorAxis;\n    }, this);\n    this.resize(radarModel, api);\n  }\n\n  Radar.prototype.getIndicatorAxes = function () {\n    return this._indicatorAxes;\n  };\n\n  Radar.prototype.dataToPoint = function (value, indicatorIndex) {\n    var indicatorAxis = this._indicatorAxes[indicatorIndex];\n    return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\n  }; // TODO: API should be coordToPoint([coord, indicatorIndex])\n\n\n  Radar.prototype.coordToPoint = function (coord, indicatorIndex) {\n    var indicatorAxis = this._indicatorAxes[indicatorIndex];\n    var angle = indicatorAxis.angle;\n    var x = this.cx + coord * Math.cos(angle);\n    var y = this.cy - coord * Math.sin(angle);\n    return [x, y];\n  };\n\n  Radar.prototype.pointToData = function (pt) {\n    var dx = pt[0] - this.cx;\n    var dy = pt[1] - this.cy;\n    var radius = Math.sqrt(dx * dx + dy * dy);\n    dx /= radius;\n    dy /= radius;\n    var radian = Math.atan2(-dy, dx); // Find the closest angle\n    // FIXME index can calculated directly\n\n    var minRadianDiff = Infinity;\n    var closestAxis;\n    var closestAxisIdx = -1;\n\n    for (var i = 0; i < this._indicatorAxes.length; i++) {\n      var indicatorAxis = this._indicatorAxes[i];\n      var diff = Math.abs(radian - indicatorAxis.angle);\n\n      if (diff < minRadianDiff) {\n        closestAxis = indicatorAxis;\n        closestAxisIdx = i;\n        minRadianDiff = diff;\n      }\n    }\n\n    return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))];\n  };\n\n  Radar.prototype.resize = function (radarModel, api) {\n    var center = radarModel.get('center');\n    var viewWidth = api.getWidth();\n    var viewHeight = api.getHeight();\n    var viewSize = Math.min(viewWidth, viewHeight) / 2;\n    this.cx = numberUtil.parsePercent(center[0], viewWidth);\n    this.cy = numberUtil.parsePercent(center[1], viewHeight);\n    this.startAngle = radarModel.get('startAngle') * Math.PI / 180; // radius may be single value like `20`, `'80%'`, or array like `[10, '80%']`\n\n    var radius = radarModel.get('radius');\n\n    if (isString(radius) || isNumber(radius)) {\n      radius = [0, radius];\n    }\n\n    this.r0 = numberUtil.parsePercent(radius[0], viewSize);\n    this.r = numberUtil.parsePercent(radius[1], viewSize);\n    each(this._indicatorAxes, function (indicatorAxis, idx) {\n      indicatorAxis.setExtent(this.r0, this.r);\n      var angle = this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length; // Normalize to [-PI, PI]\n\n      angle = Math.atan2(Math.sin(angle), Math.cos(angle));\n      indicatorAxis.angle = angle;\n    }, this);\n  };\n\n  Radar.prototype.update = function (ecModel, api) {\n    var indicatorAxes = this._indicatorAxes;\n    var radarModel = this._model;\n    each(indicatorAxes, function (indicatorAxis) {\n      indicatorAxis.scale.setExtent(Infinity, -Infinity);\n    });\n    ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\n      if (radarSeries.get('coordinateSystem') !== 'radar' // @ts-ignore\n      || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\n        return;\n      }\n\n      var data = radarSeries.getData();\n      each(indicatorAxes, function (indicatorAxis) {\n        indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\n      });\n    }, this);\n    var splitNumber = radarModel.get('splitNumber');\n    var dummyScale = new IntervalScale();\n    dummyScale.setExtent(0, splitNumber);\n    dummyScale.setInterval(1); // Force all the axis fixing the maxSplitNumber.\n\n    each(indicatorAxes, function (indicatorAxis, idx) {\n      alignScaleTicks(indicatorAxis.scale, indicatorAxis.model, dummyScale);\n    });\n  };\n\n  Radar.prototype.convertToPixel = function (ecModel, finder, value) {\n    console.warn('Not implemented.');\n    return null;\n  };\n\n  Radar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    console.warn('Not implemented.');\n    return null;\n  };\n\n  Radar.prototype.containPoint = function (point) {\n    console.warn('Not implemented.');\n    return false;\n  };\n\n  Radar.create = function (ecModel, api) {\n    var radarList = [];\n    ecModel.eachComponent('radar', function (radarModel) {\n      var radar = new Radar(radarModel, ecModel, api);\n      radarList.push(radar);\n      radarModel.coordinateSystem = radar;\n    });\n    ecModel.eachSeriesByType('radar', function (radarSeries) {\n      if (radarSeries.get('coordinateSystem') === 'radar') {\n        // Inject coordinate system\n        // @ts-ignore\n        radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\n      }\n    });\n    return radarList;\n  };\n  /**\n   * Radar dimensions is based on the data\n   */\n\n\n  Radar.dimensions = [];\n  return Radar;\n}();\n\nexport default Radar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport RadarModel from '../../coord/radar/RadarModel.js';\nimport RadarView from './RadarView.js';\nimport Radar from '../../coord/radar/Radar.js';\nexport function install(registers) {\n  registers.registerCoordinateSystem('radar', Radar);\n  registers.registerComponentModel(RadarModel);\n  registers.registerComponentView(RadarView);\n  registers.registerVisual({\n    seriesType: 'radar',\n    reset: function (seriesModel) {\n      var data = seriesModel.getData(); // itemVisual symbol is for selected data\n\n      data.each(function (idx) {\n        data.setItemVisual(idx, 'legendIcon', 'roundRect');\n      }); // visual is for unselected data\n\n      data.setVisual('legendIcon', 'roundRect');\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport radarLayout from '../radar/radarLayout.js';\nimport dataFilter from '../../processor/dataFilter.js';\nimport backwardCompat from '../radar/backwardCompat.js';\nimport RadarView from './RadarView.js';\nimport RadarSeriesModel from './RadarSeries.js';\nimport { install as installRadarComponent } from '../../component/radar/install.js';\nexport function install(registers) {\n  use(installRadarComponent);\n  registers.registerChartView(RadarView);\n  registers.registerSeriesModel(RadarSeriesModel);\n  registers.registerLayout(radarLayout);\n  registers.registerProcessor(dataFilter('radar'));\n  registers.registerPreprocessor(backwardCompat);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport * as echarts from '../../core/echarts.js';\nimport { noop } from 'zrender/lib/core/util.js';\nvar ATTR = '\\0_ec_interaction_mutex';\nexport function take(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  store[resourceKey] = userKey;\n}\nexport function release(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  var uKey = store[resourceKey];\n\n  if (uKey === userKey) {\n    store[resourceKey] = null;\n  }\n}\nexport function isTaken(zr, resourceKey) {\n  return !!getStore(zr)[resourceKey];\n}\n\nfunction getStore(zr) {\n  return zr[ATTR] || (zr[ATTR] = {});\n}\n/**\n * payload: {\n *     type: 'takeGlobalCursor',\n *     key: 'dataZoomSelect', or 'brush', or ...,\n *         If no userKey, release global cursor.\n * }\n */\n// TODO: SELF REGISTERED.\n\n\necharts.registerAction({\n  type: 'takeGlobalCursor',\n  event: 'globalCursorTaken',\n  update: 'update'\n}, noop);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Eventful from 'zrender/lib/core/Eventful.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport * as interactionMutex from './interactionMutex.js';\nimport { isString, bind, defaults, clone } from 'zrender/lib/core/util.js';\n;\n\nvar RoamController =\n/** @class */\nfunction (_super) {\n  __extends(RoamController, _super);\n\n  function RoamController(zr) {\n    var _this = _super.call(this) || this;\n\n    _this._zr = zr; // Avoid two roamController bind the same handler\n\n    var mousedownHandler = bind(_this._mousedownHandler, _this);\n    var mousemoveHandler = bind(_this._mousemoveHandler, _this);\n    var mouseupHandler = bind(_this._mouseupHandler, _this);\n    var mousewheelHandler = bind(_this._mousewheelHandler, _this);\n    var pinchHandler = bind(_this._pinchHandler, _this);\n    /**\n     * Notice: only enable needed types. For example, if 'zoom'\n     * is not needed, 'zoom' should not be enabled, otherwise\n     * default mousewheel behaviour (scroll page) will be disabled.\n     */\n\n    _this.enable = function (controlType, opt) {\n      // Disable previous first\n      this.disable();\n      this._opt = defaults(clone(opt) || {}, {\n        zoomOnMouseWheel: true,\n        moveOnMouseMove: true,\n        // By default, wheel do not trigger move.\n        moveOnMouseWheel: false,\n        preventDefaultMouseMove: true\n      });\n\n      if (controlType == null) {\n        controlType = true;\n      }\n\n      if (controlType === true || controlType === 'move' || controlType === 'pan') {\n        zr.on('mousedown', mousedownHandler);\n        zr.on('mousemove', mousemoveHandler);\n        zr.on('mouseup', mouseupHandler);\n      }\n\n      if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\n        zr.on('mousewheel', mousewheelHandler);\n        zr.on('pinch', pinchHandler);\n      }\n    };\n\n    _this.disable = function () {\n      zr.off('mousedown', mousedownHandler);\n      zr.off('mousemove', mousemoveHandler);\n      zr.off('mouseup', mouseupHandler);\n      zr.off('mousewheel', mousewheelHandler);\n      zr.off('pinch', pinchHandler);\n    };\n\n    return _this;\n  }\n\n  RoamController.prototype.isDragging = function () {\n    return this._dragging;\n  };\n\n  RoamController.prototype.isPinching = function () {\n    return this._pinching;\n  };\n\n  RoamController.prototype.setPointerChecker = function (pointerChecker) {\n    this.pointerChecker = pointerChecker;\n  };\n\n  RoamController.prototype.dispose = function () {\n    this.disable();\n  };\n\n  RoamController.prototype._mousedownHandler = function (e) {\n    if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e) || e.target && e.target.draggable) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY; // Only check on mosedown, but not mousemove.\n    // Mouse can be out of target when mouse moving.\n\n    if (this.pointerChecker && this.pointerChecker(e, x, y)) {\n      this._x = x;\n      this._y = y;\n      this._dragging = true;\n    }\n  };\n\n  RoamController.prototype._mousemoveHandler = function (e) {\n    if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var oldX = this._x;\n    var oldY = this._y;\n    var dx = x - oldX;\n    var dy = y - oldY;\n    this._x = x;\n    this._y = y;\n    this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\n    trigger(this, 'pan', 'moveOnMouseMove', e, {\n      dx: dx,\n      dy: dy,\n      oldX: oldX,\n      oldY: oldY,\n      newX: x,\n      newY: y,\n      isAvailableBehavior: null\n    });\n  };\n\n  RoamController.prototype._mouseupHandler = function (e) {\n    if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n      this._dragging = false;\n    }\n  };\n\n  RoamController.prototype._mousewheelHandler = function (e) {\n    var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\n    var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\n    var wheelDelta = e.wheelDelta;\n    var absWheelDeltaDelta = Math.abs(wheelDelta);\n    var originX = e.offsetX;\n    var originY = e.offsetY; // wheelDelta maybe -0 in chrome mac.\n\n    if (wheelDelta === 0 || !shouldZoom && !shouldMove) {\n      return;\n    } // If both `shouldZoom` and `shouldMove` is true, trigger\n    // their event both, and the final behavior is determined\n    // by event listener themselves.\n\n\n    if (shouldZoom) {\n      // Convenience:\n      // Mac and VM Windows on Mac: scroll up: zoom out.\n      // Windows: scroll up: zoom in.\n      // FIXME: Should do more test in different environment.\n      // wheelDelta is too complicated in difference nvironment\n      // (https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel),\n      // although it has been normallized by zrender.\n      // wheelDelta of mouse wheel is bigger than touch pad.\n      var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\n      var scale = wheelDelta > 0 ? factor : 1 / factor;\n      checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\n        scale: scale,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n\n    if (shouldMove) {\n      // FIXME: Should do more test in different environment.\n      var absDelta = Math.abs(wheelDelta); // wheelDelta of mouse wheel is bigger than touch pad.\n\n      var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\n      checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\n        scrollDelta: scrollDelta,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n  };\n\n  RoamController.prototype._pinchHandler = function (e) {\n    if (interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\n    checkPointerAndTrigger(this, 'zoom', null, e, {\n      scale: scale,\n      originX: e.pinchX,\n      originY: e.pinchY,\n      isAvailableBehavior: null\n    });\n  };\n\n  return RoamController;\n}(Eventful);\n\nfunction checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\n    // When mouse is out of roamController rect,\n    // default befavoius should not be be disabled, otherwise\n    // page sliding is disabled, contrary to expectation.\n    eventTool.stop(e.event);\n    trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\n  }\n}\n\nfunction trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  // Also provide behavior checker for event listener, for some case that\n  // multiple components share one listener.\n  contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e); // TODO should not have type issue.\n\n  controller.trigger(eventName, contollerEvent);\n} // settings: {\n//     zoomOnMouseWheel\n//     moveOnMouseMove\n//     moveOnMouseWheel\n// }\n// The value can be: true / false / 'shift' / 'ctrl' / 'alt'.\n\n\nfunction isAvailableBehavior(behaviorToCheck, e, settings) {\n  var setting = settings[behaviorToCheck];\n  return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);\n}\n\nexport default RoamController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * For geo and graph.\n */\nexport function updateViewOnPan(controllerHost, dx, dy) {\n  var target = controllerHost.target;\n  target.x += dx;\n  target.y += dy;\n  target.dirty();\n}\n/**\n * For geo and graph.\n */\n\nexport function updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\n  var target = controllerHost.target;\n  var zoomLimit = controllerHost.zoomLimit;\n  var newZoom = controllerHost.zoom = controllerHost.zoom || 1;\n  newZoom *= zoomDelta;\n\n  if (zoomLimit) {\n    var zoomMin = zoomLimit.min || 0;\n    var zoomMax = zoomLimit.max || Infinity;\n    newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin);\n  }\n\n  var zoomScale = newZoom / controllerHost.zoom;\n  controllerHost.zoom = newZoom; // Keep the mouse center when scaling\n\n  target.x -= (zoomX - target.x) * (zoomScale - 1);\n  target.y -= (zoomY - target.y) * (zoomScale - 1);\n  target.scaleX *= zoomScale;\n  target.scaleY *= zoomScale;\n  target.dirty();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar IRRELEVANT_EXCLUDES = {\n  'axisPointer': 1,\n  'tooltip': 1,\n  'brush': 1\n};\n/**\n * Avoid that: mouse click on a elements that is over geo or graph,\n * but roam is triggered.\n */\n\nexport function onIrrelevantElement(e, api, targetCoordSysModel) {\n  var model = api.getComponentByElement(e.topTarget); // If model is axisModel, it works only if it is injected with coordinateSystem.\n\n  var coordSys = model && model.coordinateSystem;\n  return model && model !== targetCoordSysModel && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType) && coordSys && coordSys.model !== targetCoordSysModel;\n}","import { isString } from '../core/util.js';\nexport function parseXML(svg) {\n    if (isString(svg)) {\n        var parser = new DOMParser();\n        svg = parser.parseFromString(svg, 'text/xml');\n    }\n    var svgNode = svg;\n    if (svgNode.nodeType === 9) {\n        svgNode = svgNode.firstChild;\n    }\n    while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n        svgNode = svgNode.nextSibling;\n    }\n    return svgNode;\n}\n","import Group from '../graphic/Group.js';\nimport ZRImage from '../graphic/Image.js';\nimport Circle from '../graphic/shape/Circle.js';\nimport Rect from '../graphic/shape/Rect.js';\nimport Ellipse from '../graphic/shape/Ellipse.js';\nimport Line from '../graphic/shape/Line.js';\nimport Polygon from '../graphic/shape/Polygon.js';\nimport Polyline from '../graphic/shape/Polyline.js';\nimport * as matrix from '../core/matrix.js';\nimport { createFromString } from './path.js';\nimport { defaults, trim, each, map, keys, hasOwn } from '../core/util.js';\nimport LinearGradient from '../graphic/LinearGradient.js';\nimport RadialGradient from '../graphic/RadialGradient.js';\nimport TSpan from '../graphic/TSpan.js';\nimport { parseXML } from './parseXML.js';\n;\nvar nodeParsers;\nvar INHERITABLE_STYLE_ATTRIBUTES_MAP = {\n    'fill': 'fill',\n    'stroke': 'stroke',\n    'stroke-width': 'lineWidth',\n    'opacity': 'opacity',\n    'fill-opacity': 'fillOpacity',\n    'stroke-opacity': 'strokeOpacity',\n    'stroke-dasharray': 'lineDash',\n    'stroke-dashoffset': 'lineDashOffset',\n    'stroke-linecap': 'lineCap',\n    'stroke-linejoin': 'lineJoin',\n    'stroke-miterlimit': 'miterLimit',\n    'font-family': 'fontFamily',\n    'font-size': 'fontSize',\n    'font-style': 'fontStyle',\n    'font-weight': 'fontWeight',\n    'text-anchor': 'textAlign',\n    'visibility': 'visibility',\n    'display': 'display'\n};\nvar INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS = keys(INHERITABLE_STYLE_ATTRIBUTES_MAP);\nvar SELF_STYLE_ATTRIBUTES_MAP = {\n    'alignment-baseline': 'textBaseline',\n    'stop-color': 'stopColor'\n};\nvar SELF_STYLE_ATTRIBUTES_MAP_KEYS = keys(SELF_STYLE_ATTRIBUTES_MAP);\nvar SVGParser = (function () {\n    function SVGParser() {\n        this._defs = {};\n        this._root = null;\n    }\n    SVGParser.prototype.parse = function (xml, opt) {\n        opt = opt || {};\n        var svg = parseXML(xml);\n        if (process.env.NODE_ENV !== 'production') {\n            if (!svg) {\n                throw new Error('Illegal svg');\n            }\n        }\n        this._defsUsePending = [];\n        var root = new Group();\n        this._root = root;\n        var named = [];\n        var viewBox = svg.getAttribute('viewBox') || '';\n        var width = parseFloat((svg.getAttribute('width') || opt.width));\n        var height = parseFloat((svg.getAttribute('height') || opt.height));\n        isNaN(width) && (width = null);\n        isNaN(height) && (height = null);\n        parseAttributes(svg, root, null, true, false);\n        var child = svg.firstChild;\n        while (child) {\n            this._parseNode(child, root, named, null, false, false);\n            child = child.nextSibling;\n        }\n        applyDefs(this._defs, this._defsUsePending);\n        this._defsUsePending = [];\n        var viewBoxRect;\n        var viewBoxTransform;\n        if (viewBox) {\n            var viewBoxArr = splitNumberSequence(viewBox);\n            if (viewBoxArr.length >= 4) {\n                viewBoxRect = {\n                    x: parseFloat((viewBoxArr[0] || 0)),\n                    y: parseFloat((viewBoxArr[1] || 0)),\n                    width: parseFloat(viewBoxArr[2]),\n                    height: parseFloat(viewBoxArr[3])\n                };\n            }\n        }\n        if (viewBoxRect && width != null && height != null) {\n            viewBoxTransform = makeViewBoxTransform(viewBoxRect, { x: 0, y: 0, width: width, height: height });\n            if (!opt.ignoreViewBox) {\n                var elRoot = root;\n                root = new Group();\n                root.add(elRoot);\n                elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n                elRoot.x = viewBoxTransform.x;\n                elRoot.y = viewBoxTransform.y;\n            }\n        }\n        if (!opt.ignoreRootClip && width != null && height != null) {\n            root.setClipPath(new Rect({\n                shape: { x: 0, y: 0, width: width, height: height }\n            }));\n        }\n        return {\n            root: root,\n            width: width,\n            height: height,\n            viewBoxRect: viewBoxRect,\n            viewBoxTransform: viewBoxTransform,\n            named: named\n        };\n    };\n    SVGParser.prototype._parseNode = function (xmlNode, parentGroup, named, namedFrom, isInDefs, isInText) {\n        var nodeName = xmlNode.nodeName.toLowerCase();\n        var el;\n        var namedFromForSub = namedFrom;\n        if (nodeName === 'defs') {\n            isInDefs = true;\n        }\n        if (nodeName === 'text') {\n            isInText = true;\n        }\n        if (nodeName === 'defs' || nodeName === 'switch') {\n            el = parentGroup;\n        }\n        else {\n            if (!isInDefs) {\n                var parser_1 = nodeParsers[nodeName];\n                if (parser_1 && hasOwn(nodeParsers, nodeName)) {\n                    el = parser_1.call(this, xmlNode, parentGroup);\n                    var nameAttr = xmlNode.getAttribute('name');\n                    if (nameAttr) {\n                        var newNamed = {\n                            name: nameAttr,\n                            namedFrom: null,\n                            svgNodeTagLower: nodeName,\n                            el: el\n                        };\n                        named.push(newNamed);\n                        if (nodeName === 'g') {\n                            namedFromForSub = newNamed;\n                        }\n                    }\n                    else if (namedFrom) {\n                        named.push({\n                            name: namedFrom.name,\n                            namedFrom: namedFrom,\n                            svgNodeTagLower: nodeName,\n                            el: el\n                        });\n                    }\n                    parentGroup.add(el);\n                }\n            }\n            var parser = paintServerParsers[nodeName];\n            if (parser && hasOwn(paintServerParsers, nodeName)) {\n                var def = parser.call(this, xmlNode);\n                var id = xmlNode.getAttribute('id');\n                if (id) {\n                    this._defs[id] = def;\n                }\n            }\n        }\n        if (el && el.isGroup) {\n            var child = xmlNode.firstChild;\n            while (child) {\n                if (child.nodeType === 1) {\n                    this._parseNode(child, el, named, namedFromForSub, isInDefs, isInText);\n                }\n                else if (child.nodeType === 3 && isInText) {\n                    this._parseText(child, el);\n                }\n                child = child.nextSibling;\n            }\n        }\n    };\n    SVGParser.prototype._parseText = function (xmlNode, parentGroup) {\n        var text = new TSpan({\n            style: {\n                text: xmlNode.textContent\n            },\n            silent: true,\n            x: this._textX || 0,\n            y: this._textY || 0\n        });\n        inheritStyle(parentGroup, text);\n        parseAttributes(xmlNode, text, this._defsUsePending, false, false);\n        applyTextAlignment(text, parentGroup);\n        var textStyle = text.style;\n        var fontSize = textStyle.fontSize;\n        if (fontSize && fontSize < 9) {\n            textStyle.fontSize = 9;\n            text.scaleX *= fontSize / 9;\n            text.scaleY *= fontSize / 9;\n        }\n        var font = (textStyle.fontSize || textStyle.fontFamily) && [\n            textStyle.fontStyle,\n            textStyle.fontWeight,\n            (textStyle.fontSize || 12) + 'px',\n            textStyle.fontFamily || 'sans-serif'\n        ].join(' ');\n        textStyle.font = font;\n        var rect = text.getBoundingRect();\n        this._textX += rect.width;\n        parentGroup.add(text);\n        return text;\n    };\n    SVGParser.internalField = (function () {\n        nodeParsers = {\n            'g': function (xmlNode, parentGroup) {\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defsUsePending, false, false);\n                return g;\n            },\n            'rect': function (xmlNode, parentGroup) {\n                var rect = new Rect();\n                inheritStyle(parentGroup, rect);\n                parseAttributes(xmlNode, rect, this._defsUsePending, false, false);\n                rect.setShape({\n                    x: parseFloat(xmlNode.getAttribute('x') || '0'),\n                    y: parseFloat(xmlNode.getAttribute('y') || '0'),\n                    width: parseFloat(xmlNode.getAttribute('width') || '0'),\n                    height: parseFloat(xmlNode.getAttribute('height') || '0')\n                });\n                rect.silent = true;\n                return rect;\n            },\n            'circle': function (xmlNode, parentGroup) {\n                var circle = new Circle();\n                inheritStyle(parentGroup, circle);\n                parseAttributes(xmlNode, circle, this._defsUsePending, false, false);\n                circle.setShape({\n                    cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n                    cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n                    r: parseFloat(xmlNode.getAttribute('r') || '0')\n                });\n                circle.silent = true;\n                return circle;\n            },\n            'line': function (xmlNode, parentGroup) {\n                var line = new Line();\n                inheritStyle(parentGroup, line);\n                parseAttributes(xmlNode, line, this._defsUsePending, false, false);\n                line.setShape({\n                    x1: parseFloat(xmlNode.getAttribute('x1') || '0'),\n                    y1: parseFloat(xmlNode.getAttribute('y1') || '0'),\n                    x2: parseFloat(xmlNode.getAttribute('x2') || '0'),\n                    y2: parseFloat(xmlNode.getAttribute('y2') || '0')\n                });\n                line.silent = true;\n                return line;\n            },\n            'ellipse': function (xmlNode, parentGroup) {\n                var ellipse = new Ellipse();\n                inheritStyle(parentGroup, ellipse);\n                parseAttributes(xmlNode, ellipse, this._defsUsePending, false, false);\n                ellipse.setShape({\n                    cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n                    cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n                    rx: parseFloat(xmlNode.getAttribute('rx') || '0'),\n                    ry: parseFloat(xmlNode.getAttribute('ry') || '0')\n                });\n                ellipse.silent = true;\n                return ellipse;\n            },\n            'polygon': function (xmlNode, parentGroup) {\n                var pointsStr = xmlNode.getAttribute('points');\n                var pointsArr;\n                if (pointsStr) {\n                    pointsArr = parsePoints(pointsStr);\n                }\n                var polygon = new Polygon({\n                    shape: {\n                        points: pointsArr || []\n                    },\n                    silent: true\n                });\n                inheritStyle(parentGroup, polygon);\n                parseAttributes(xmlNode, polygon, this._defsUsePending, false, false);\n                return polygon;\n            },\n            'polyline': function (xmlNode, parentGroup) {\n                var pointsStr = xmlNode.getAttribute('points');\n                var pointsArr;\n                if (pointsStr) {\n                    pointsArr = parsePoints(pointsStr);\n                }\n                var polyline = new Polyline({\n                    shape: {\n                        points: pointsArr || []\n                    },\n                    silent: true\n                });\n                inheritStyle(parentGroup, polyline);\n                parseAttributes(xmlNode, polyline, this._defsUsePending, false, false);\n                return polyline;\n            },\n            'image': function (xmlNode, parentGroup) {\n                var img = new ZRImage();\n                inheritStyle(parentGroup, img);\n                parseAttributes(xmlNode, img, this._defsUsePending, false, false);\n                img.setStyle({\n                    image: xmlNode.getAttribute('xlink:href') || xmlNode.getAttribute('href'),\n                    x: +xmlNode.getAttribute('x'),\n                    y: +xmlNode.getAttribute('y'),\n                    width: +xmlNode.getAttribute('width'),\n                    height: +xmlNode.getAttribute('height')\n                });\n                img.silent = true;\n                return img;\n            },\n            'text': function (xmlNode, parentGroup) {\n                var x = xmlNode.getAttribute('x') || '0';\n                var y = xmlNode.getAttribute('y') || '0';\n                var dx = xmlNode.getAttribute('dx') || '0';\n                var dy = xmlNode.getAttribute('dy') || '0';\n                this._textX = parseFloat(x) + parseFloat(dx);\n                this._textY = parseFloat(y) + parseFloat(dy);\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defsUsePending, false, true);\n                return g;\n            },\n            'tspan': function (xmlNode, parentGroup) {\n                var x = xmlNode.getAttribute('x');\n                var y = xmlNode.getAttribute('y');\n                if (x != null) {\n                    this._textX = parseFloat(x);\n                }\n                if (y != null) {\n                    this._textY = parseFloat(y);\n                }\n                var dx = xmlNode.getAttribute('dx') || '0';\n                var dy = xmlNode.getAttribute('dy') || '0';\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defsUsePending, false, true);\n                this._textX += parseFloat(dx);\n                this._textY += parseFloat(dy);\n                return g;\n            },\n            'path': function (xmlNode, parentGroup) {\n                var d = xmlNode.getAttribute('d') || '';\n                var path = createFromString(d);\n                inheritStyle(parentGroup, path);\n                parseAttributes(xmlNode, path, this._defsUsePending, false, false);\n                path.silent = true;\n                return path;\n            }\n        };\n    })();\n    return SVGParser;\n}());\nvar paintServerParsers = {\n    'lineargradient': function (xmlNode) {\n        var x1 = parseInt(xmlNode.getAttribute('x1') || '0', 10);\n        var y1 = parseInt(xmlNode.getAttribute('y1') || '0', 10);\n        var x2 = parseInt(xmlNode.getAttribute('x2') || '10', 10);\n        var y2 = parseInt(xmlNode.getAttribute('y2') || '0', 10);\n        var gradient = new LinearGradient(x1, y1, x2, y2);\n        parsePaintServerUnit(xmlNode, gradient);\n        parseGradientColorStops(xmlNode, gradient);\n        return gradient;\n    },\n    'radialgradient': function (xmlNode) {\n        var cx = parseInt(xmlNode.getAttribute('cx') || '0', 10);\n        var cy = parseInt(xmlNode.getAttribute('cy') || '0', 10);\n        var r = parseInt(xmlNode.getAttribute('r') || '0', 10);\n        var gradient = new RadialGradient(cx, cy, r);\n        parsePaintServerUnit(xmlNode, gradient);\n        parseGradientColorStops(xmlNode, gradient);\n        return gradient;\n    }\n};\nfunction parsePaintServerUnit(xmlNode, gradient) {\n    var gradientUnits = xmlNode.getAttribute('gradientUnits');\n    if (gradientUnits === 'userSpaceOnUse') {\n        gradient.global = true;\n    }\n}\nfunction parseGradientColorStops(xmlNode, gradient) {\n    var stop = xmlNode.firstChild;\n    while (stop) {\n        if (stop.nodeType === 1\n            && stop.nodeName.toLocaleLowerCase() === 'stop') {\n            var offsetStr = stop.getAttribute('offset');\n            var offset = void 0;\n            if (offsetStr && offsetStr.indexOf('%') > 0) {\n                offset = parseInt(offsetStr, 10) / 100;\n            }\n            else if (offsetStr) {\n                offset = parseFloat(offsetStr);\n            }\n            else {\n                offset = 0;\n            }\n            var styleVals = {};\n            parseInlineStyle(stop, styleVals, styleVals);\n            var stopColor = styleVals.stopColor\n                || stop.getAttribute('stop-color')\n                || '#000000';\n            gradient.colorStops.push({\n                offset: offset,\n                color: stopColor\n            });\n        }\n        stop = stop.nextSibling;\n    }\n}\nfunction inheritStyle(parent, child) {\n    if (parent && parent.__inheritedStyle) {\n        if (!child.__inheritedStyle) {\n            child.__inheritedStyle = {};\n        }\n        defaults(child.__inheritedStyle, parent.__inheritedStyle);\n    }\n}\nfunction parsePoints(pointsString) {\n    var list = splitNumberSequence(pointsString);\n    var points = [];\n    for (var i = 0; i < list.length; i += 2) {\n        var x = parseFloat(list[i]);\n        var y = parseFloat(list[i + 1]);\n        points.push([x, y]);\n    }\n    return points;\n}\nfunction parseAttributes(xmlNode, el, defsUsePending, onlyInlineStyle, isTextGroup) {\n    var disp = el;\n    var inheritedStyle = disp.__inheritedStyle = disp.__inheritedStyle || {};\n    var selfStyle = {};\n    if (xmlNode.nodeType === 1) {\n        parseTransformAttribute(xmlNode, el);\n        parseInlineStyle(xmlNode, inheritedStyle, selfStyle);\n        if (!onlyInlineStyle) {\n            parseAttributeStyle(xmlNode, inheritedStyle, selfStyle);\n        }\n    }\n    disp.style = disp.style || {};\n    if (inheritedStyle.fill != null) {\n        disp.style.fill = getFillStrokeStyle(disp, 'fill', inheritedStyle.fill, defsUsePending);\n    }\n    if (inheritedStyle.stroke != null) {\n        disp.style.stroke = getFillStrokeStyle(disp, 'stroke', inheritedStyle.stroke, defsUsePending);\n    }\n    each([\n        'lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'\n    ], function (propName) {\n        if (inheritedStyle[propName] != null) {\n            disp.style[propName] = parseFloat(inheritedStyle[propName]);\n        }\n    });\n    each([\n        'lineDashOffset', 'lineCap', 'lineJoin', 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign'\n    ], function (propName) {\n        if (inheritedStyle[propName] != null) {\n            disp.style[propName] = inheritedStyle[propName];\n        }\n    });\n    if (isTextGroup) {\n        disp.__selfStyle = selfStyle;\n    }\n    if (inheritedStyle.lineDash) {\n        disp.style.lineDash = map(splitNumberSequence(inheritedStyle.lineDash), function (str) {\n            return parseFloat(str);\n        });\n    }\n    if (inheritedStyle.visibility === 'hidden' || inheritedStyle.visibility === 'collapse') {\n        disp.invisible = true;\n    }\n    if (inheritedStyle.display === 'none') {\n        disp.ignore = true;\n    }\n}\nfunction applyTextAlignment(text, parentGroup) {\n    var parentSelfStyle = parentGroup.__selfStyle;\n    if (parentSelfStyle) {\n        var textBaseline = parentSelfStyle.textBaseline;\n        var zrTextBaseline = textBaseline;\n        if (!textBaseline || textBaseline === 'auto') {\n            zrTextBaseline = 'alphabetic';\n        }\n        else if (textBaseline === 'baseline') {\n            zrTextBaseline = 'alphabetic';\n        }\n        else if (textBaseline === 'before-edge' || textBaseline === 'text-before-edge') {\n            zrTextBaseline = 'top';\n        }\n        else if (textBaseline === 'after-edge' || textBaseline === 'text-after-edge') {\n            zrTextBaseline = 'bottom';\n        }\n        else if (textBaseline === 'central' || textBaseline === 'mathematical') {\n            zrTextBaseline = 'middle';\n        }\n        text.style.textBaseline = zrTextBaseline;\n    }\n    var parentInheritedStyle = parentGroup.__inheritedStyle;\n    if (parentInheritedStyle) {\n        var textAlign = parentInheritedStyle.textAlign;\n        var zrTextAlign = textAlign;\n        if (textAlign) {\n            if (textAlign === 'middle') {\n                zrTextAlign = 'center';\n            }\n            text.style.textAlign = zrTextAlign;\n        }\n    }\n}\nvar urlRegex = /^url\\(\\s*#(.*?)\\)/;\nfunction getFillStrokeStyle(el, method, str, defsUsePending) {\n    var urlMatch = str && str.match(urlRegex);\n    if (urlMatch) {\n        var url = trim(urlMatch[1]);\n        defsUsePending.push([el, method, url]);\n        return;\n    }\n    if (str === 'none') {\n        str = null;\n    }\n    return str;\n}\nfunction applyDefs(defs, defsUsePending) {\n    for (var i = 0; i < defsUsePending.length; i++) {\n        var item = defsUsePending[i];\n        item[0].style[item[1]] = defs[item[2]];\n    }\n}\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction splitNumberSequence(rawStr) {\n    return rawStr.match(numberReg) || [];\n}\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.eE,]*)\\)/g;\nvar DEGREE_TO_ANGLE = Math.PI / 180;\nfunction parseTransformAttribute(xmlNode, node) {\n    var transform = xmlNode.getAttribute('transform');\n    if (transform) {\n        transform = transform.replace(/,/g, ' ');\n        var transformOps_1 = [];\n        var mt = null;\n        transform.replace(transformRegex, function (str, type, value) {\n            transformOps_1.push(type, value);\n            return '';\n        });\n        for (var i = transformOps_1.length - 1; i > 0; i -= 2) {\n            var value = transformOps_1[i];\n            var type = transformOps_1[i - 1];\n            var valueArr = splitNumberSequence(value);\n            mt = mt || matrix.create();\n            switch (type) {\n                case 'translate':\n                    matrix.translate(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);\n                    break;\n                case 'scale':\n                    matrix.scale(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);\n                    break;\n                case 'rotate':\n                    matrix.rotate(mt, mt, -parseFloat(valueArr[0]) * DEGREE_TO_ANGLE);\n                    break;\n                case 'skewX':\n                    var sx = Math.tan(parseFloat(valueArr[0]) * DEGREE_TO_ANGLE);\n                    matrix.mul(mt, [1, 0, sx, 1, 0, 0], mt);\n                    break;\n                case 'skewY':\n                    var sy = Math.tan(parseFloat(valueArr[0]) * DEGREE_TO_ANGLE);\n                    matrix.mul(mt, [1, sy, 0, 1, 0, 0], mt);\n                    break;\n                case 'matrix':\n                    mt[0] = parseFloat(valueArr[0]);\n                    mt[1] = parseFloat(valueArr[1]);\n                    mt[2] = parseFloat(valueArr[2]);\n                    mt[3] = parseFloat(valueArr[3]);\n                    mt[4] = parseFloat(valueArr[4]);\n                    mt[5] = parseFloat(valueArr[5]);\n                    break;\n            }\n        }\n        node.setLocalTransform(mt);\n    }\n}\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\nfunction parseInlineStyle(xmlNode, inheritableStyleResult, selfStyleResult) {\n    var style = xmlNode.getAttribute('style');\n    if (!style) {\n        return;\n    }\n    styleRegex.lastIndex = 0;\n    var styleRegResult;\n    while ((styleRegResult = styleRegex.exec(style)) != null) {\n        var svgStlAttr = styleRegResult[1];\n        var zrInheritableStlAttr = hasOwn(INHERITABLE_STYLE_ATTRIBUTES_MAP, svgStlAttr)\n            ? INHERITABLE_STYLE_ATTRIBUTES_MAP[svgStlAttr]\n            : null;\n        if (zrInheritableStlAttr) {\n            inheritableStyleResult[zrInheritableStlAttr] = styleRegResult[2];\n        }\n        var zrSelfStlAttr = hasOwn(SELF_STYLE_ATTRIBUTES_MAP, svgStlAttr)\n            ? SELF_STYLE_ATTRIBUTES_MAP[svgStlAttr]\n            : null;\n        if (zrSelfStlAttr) {\n            selfStyleResult[zrSelfStlAttr] = styleRegResult[2];\n        }\n    }\n}\nfunction parseAttributeStyle(xmlNode, inheritableStyleResult, selfStyleResult) {\n    for (var i = 0; i < INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS.length; i++) {\n        var svgAttrName = INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS[i];\n        var attrValue = xmlNode.getAttribute(svgAttrName);\n        if (attrValue != null) {\n            inheritableStyleResult[INHERITABLE_STYLE_ATTRIBUTES_MAP[svgAttrName]] = attrValue;\n        }\n    }\n    for (var i = 0; i < SELF_STYLE_ATTRIBUTES_MAP_KEYS.length; i++) {\n        var svgAttrName = SELF_STYLE_ATTRIBUTES_MAP_KEYS[i];\n        var attrValue = xmlNode.getAttribute(svgAttrName);\n        if (attrValue != null) {\n            selfStyleResult[SELF_STYLE_ATTRIBUTES_MAP[svgAttrName]] = attrValue;\n        }\n    }\n}\nexport function makeViewBoxTransform(viewBoxRect, boundingRect) {\n    var scaleX = boundingRect.width / viewBoxRect.width;\n    var scaleY = boundingRect.height / viewBoxRect.height;\n    var scale = Math.min(scaleX, scaleY);\n    return {\n        scale: scale,\n        x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale + (boundingRect.x + boundingRect.width / 2),\n        y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale + (boundingRect.y + boundingRect.height / 2)\n    };\n}\nexport function parseSVG(xml, opt) {\n    var parser = new SVGParser();\n    return parser.parse(xml, opt);\n}\nexport { parseXML };\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { parseSVG, makeViewBoxTransform } from 'zrender/lib/tool/parseSVG.js';\nimport Group from 'zrender/lib/graphic/Group.js';\nimport Rect from 'zrender/lib/graphic/shape/Rect.js';\nimport { assert, createHashMap, each } from 'zrender/lib/core/util.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport { parseXML } from 'zrender/lib/tool/parseXML.js';\nimport { GeoSVGRegion } from './Region.js';\n/**\n * \"region available\" means that: enable users to set attribute `name=\"xxx\"` on those tags\n * to make it be a region.\n * 1. region styles and its label styles can be defined in echarts opton:\n * ```js\n * geo: {\n *     regions: [{\n *         name: 'xxx',\n *         itemStyle: { ... },\n *         label: { ... }\n *     }, {\n *         ...\n *     },\n *     ...]\n * };\n * ```\n * 2. name can be duplicated in different SVG tag. All of the tags with the same name share\n * a region option. For exampel if there are two <path> representing two lung lobes. They have\n * no common parents but both of them need to display label \"lung\" inside.\n */\n\nvar REGION_AVAILABLE_SVG_TAG_MAP = createHashMap(['rect', 'circle', 'line', 'ellipse', 'polygon', 'polyline', 'path', // <text> <tspan> are also enabled becuase some SVG might paint text itself,\n// but still need to trigger events or tooltip.\n'text', 'tspan', // <g> is also enabled because this case: if multiple tags share one name\n// and need label displayed, every tags will display the name, which is not\n// expected. So we can put them into a <g name=\"xxx\">. Thereby only one label\n// displayed and located based on the bounding rect of the <g>.\n'g']);\n\nvar GeoSVGResource =\n/** @class */\nfunction () {\n  function GeoSVGResource(mapName, svg) {\n    this.type = 'geoSVG'; // All used graphics. key: hostKey, value: root\n\n    this._usedGraphicMap = createHashMap(); // All unused graphics.\n\n    this._freedGraphics = [];\n    this._mapName = mapName; // Only perform parse to XML object here, which might be time\n    // consiming for large SVG.\n    // Although convert XML to zrender element is also time consiming,\n    // if we do it here, the clone of zrender elements has to be\n    // required. So we do it once for each geo instance, util real\n    // performance issues call for optimizing it.\n\n    this._parsedXML = parseXML(svg);\n  }\n\n  GeoSVGResource.prototype.load = function ()\n  /* nameMap: NameMap */\n  {\n    // In the \"load\" stage, graphic need to be built to\n    // get boundingRect for geo coordinate system.\n    var firstGraphic = this._firstGraphic; // Create the return data structure only when first graphic created.\n    // Because they will be used in geo coordinate system update stage,\n    // and `regions` will be mounted at `geo` coordinate system,\n    // in which there is no \"view\" info, so that it should better not to\n    // make references to graphic elements.\n\n    if (!firstGraphic) {\n      firstGraphic = this._firstGraphic = this._buildGraphic(this._parsedXML);\n\n      this._freedGraphics.push(firstGraphic);\n\n      this._boundingRect = this._firstGraphic.boundingRect.clone(); // PENDING: `nameMap` will not be supported until some real requirement come.\n      // if (nameMap) {\n      //     named = applyNameMap(named, nameMap);\n      // }\n\n      var _a = createRegions(firstGraphic.named),\n          regions = _a.regions,\n          regionsMap = _a.regionsMap;\n\n      this._regions = regions;\n      this._regionsMap = regionsMap;\n    }\n\n    return {\n      boundingRect: this._boundingRect,\n      regions: this._regions,\n      regionsMap: this._regionsMap\n    };\n  };\n\n  GeoSVGResource.prototype._buildGraphic = function (svgXML) {\n    var result;\n    var rootFromParse;\n\n    try {\n      result = svgXML && parseSVG(svgXML, {\n        ignoreViewBox: true,\n        ignoreRootClip: true\n      }) || {};\n      rootFromParse = result.root;\n      assert(rootFromParse != null);\n    } catch (e) {\n      throw new Error('Invalid svg format\\n' + e.message);\n    } // Note: we keep the covenant that the root has no transform. So always add an extra root.\n\n\n    var root = new Group();\n    root.add(rootFromParse);\n    root.isGeoSVGGraphicRoot = true; // [THE_RULE_OF_VIEWPORT_AND_VIEWBOX]\n    //\n    // Consider: `<svg width=\"...\" height=\"...\" viewBox=\"...\">`\n    // - the `width/height` we call it `svgWidth/svgHeight` for short.\n    // - `(0, 0, svgWidth, svgHeight)` defines the viewport of the SVG, or say,\n    //   \"viewport boundingRect\", or `boundingRect` for short.\n    // - `viewBox` defines the transform from the real content ot the viewport.\n    //   `viewBox` has the same unit as the content of SVG.\n    //   If `viewBox` exists, a transform is defined, so the unit of `svgWidth/svgHeight` become\n    //   different from the content of SVG. Otherwise, they are the same.\n    //\n    // If both `svgWidth/svgHeight/viewBox` are specified in a SVG file, the transform rule will be:\n    // 0. `boundingRect` is `(0, 0, svgWidth, svgHeight)`. Set it to Geo['_rect'] (View['_rect']).\n    // 1. Make a transform from `viewBox` to `boundingRect`.\n    //    Note: only suport `preserveAspectRatio 'xMidYMid'` here. That is, this transform will preserve\n    //    the aspect ratio.\n    // 2. Make a transform from boundingRect to Geo['_viewRect'] (View['_viewRect'])\n    //    (`Geo`/`View` will do this job).\n    //    Note: this transform might not preserve aspect radio, which depending on how users specify\n    //    viewRect in echarts option (e.g., `geo.left/top/width/height` will not preserve aspect ratio,\n    //    but `geo.layoutCenter/layoutSize` will preserve aspect ratio).\n    //\n    // If `svgWidth/svgHeight` not specified, we use `viewBox` as the `boundingRect` to make the SVG\n    // layout look good.\n    //\n    // If neither `svgWidth/svgHeight` nor `viewBox` are not specified, we calculate the boundingRect\n    // of the SVG content and use them to make SVG layout look good.\n\n    var svgWidth = result.width;\n    var svgHeight = result.height;\n    var viewBoxRect = result.viewBoxRect;\n    var boundingRect = this._boundingRect;\n\n    if (!boundingRect) {\n      var bRectX = void 0;\n      var bRectY = void 0;\n      var bRectWidth = void 0;\n      var bRectHeight = void 0;\n\n      if (svgWidth != null) {\n        bRectX = 0;\n        bRectWidth = svgWidth;\n      } else if (viewBoxRect) {\n        bRectX = viewBoxRect.x;\n        bRectWidth = viewBoxRect.width;\n      }\n\n      if (svgHeight != null) {\n        bRectY = 0;\n        bRectHeight = svgHeight;\n      } else if (viewBoxRect) {\n        bRectY = viewBoxRect.y;\n        bRectHeight = viewBoxRect.height;\n      } // If both viewBox and svgWidth/svgHeight not specified,\n      // we have to determine how to layout those element to make them look good.\n\n\n      if (bRectX == null || bRectY == null) {\n        var calculatedBoundingRect = rootFromParse.getBoundingRect();\n\n        if (bRectX == null) {\n          bRectX = calculatedBoundingRect.x;\n          bRectWidth = calculatedBoundingRect.width;\n        }\n\n        if (bRectY == null) {\n          bRectY = calculatedBoundingRect.y;\n          bRectHeight = calculatedBoundingRect.height;\n        }\n      }\n\n      boundingRect = this._boundingRect = new BoundingRect(bRectX, bRectY, bRectWidth, bRectHeight);\n    }\n\n    if (viewBoxRect) {\n      var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect); // Only support `preserveAspectRatio 'xMidYMid'`\n\n      rootFromParse.scaleX = rootFromParse.scaleY = viewBoxTransform.scale;\n      rootFromParse.x = viewBoxTransform.x;\n      rootFromParse.y = viewBoxTransform.y;\n    } // SVG needs to clip based on `viewBox`. And some SVG files really rely on this feature.\n    // They do not strictly confine all of the content inside a display rect, but deliberately\n    // use a `viewBox` to define a displayable rect.\n    // PENDING:\n    // The drawback of the `setClipPath` here is: the region label (genereted by echarts) near the\n    // edge might also be clipped, because region labels are put as `textContent` of the SVG path.\n\n\n    root.setClipPath(new Rect({\n      shape: boundingRect.plain()\n    }));\n    var named = [];\n    each(result.named, function (namedItem) {\n      if (REGION_AVAILABLE_SVG_TAG_MAP.get(namedItem.svgNodeTagLower) != null) {\n        named.push(namedItem);\n        setSilent(namedItem.el);\n      }\n    });\n    return {\n      root: root,\n      boundingRect: boundingRect,\n      named: named\n    };\n  };\n  /**\n   * Consider:\n   * (1) One graphic element can not be shared by different `geoView` running simultaneously.\n   *     Notice, also need to consider multiple echarts instances share a `mapRecord`.\n   * (2) Converting SVG to graphic elements is time consuming.\n   * (3) In the current architecture, `load` should be called frequently to get boundingRect,\n   *     and it is called without view info.\n   * So we maintain graphic elements in this module, and enables `view` to use/return these\n   * graphics from/to the pool with it's uid.\n   */\n\n\n  GeoSVGResource.prototype.useGraphic = function (hostKey\n  /*, nameMap: NameMap */\n  ) {\n    var usedRootMap = this._usedGraphicMap;\n    var svgGraphic = usedRootMap.get(hostKey);\n\n    if (svgGraphic) {\n      return svgGraphic;\n    }\n\n    svgGraphic = this._freedGraphics.pop() // use the first boundingRect to avoid duplicated boundingRect calculation.\n    || this._buildGraphic(this._parsedXML);\n    usedRootMap.set(hostKey, svgGraphic); // PENDING: `nameMap` will not be supported until some real requirement come.\n    // `nameMap` can only be obtained from echarts option.\n    // The original `named` must not be modified.\n    // if (nameMap) {\n    //     svgGraphic = extend({}, svgGraphic);\n    //     svgGraphic.named = applyNameMap(svgGraphic.named, nameMap);\n    // }\n\n    return svgGraphic;\n  };\n\n  GeoSVGResource.prototype.freeGraphic = function (hostKey) {\n    var usedRootMap = this._usedGraphicMap;\n    var svgGraphic = usedRootMap.get(hostKey);\n\n    if (svgGraphic) {\n      usedRootMap.removeKey(hostKey);\n\n      this._freedGraphics.push(svgGraphic);\n    }\n  };\n\n  return GeoSVGResource;\n}();\n\nexport { GeoSVGResource };\n\nfunction setSilent(el) {\n  // Only named element has silent: false, other elements should\n  // act as background and has no user interaction.\n  el.silent = false; // text|tspan will be converted to group.\n\n  if (el.isGroup) {\n    el.traverse(function (child) {\n      child.silent = false;\n    });\n  }\n}\n\nfunction createRegions(named) {\n  var regions = [];\n  var regionsMap = createHashMap(); // Create resions only for the first graphic.\n\n  each(named, function (namedItem) {\n    // Region has feature to calculate center for tooltip or other features.\n    // If there is a <g name=\"xxx\">, the center should be the center of the\n    // bounding rect of the g.\n    if (namedItem.namedFrom != null) {\n      return;\n    }\n\n    var region = new GeoSVGRegion(namedItem.name, namedItem.el); // PENDING: if `nameMap` supported, this region can not be mounted on\n    // `this`, but can only be created each time `load()` called.\n\n    regions.push(region); // PENDING: if multiple tag named with the same name, only one will be\n    // found by `_regionsMap`. `_regionsMap` is used to find a coordinate\n    // by name. We use `region.getCenter()` as the coordinate.\n\n    regionsMap.set(namedItem.name, region);\n  });\n  return {\n    regions: regions,\n    regionsMap: regionsMap\n  };\n} // PENDING: `nameMap` will not be supported until some real requirement come.\n// /**\n//  * Use the alias in geoNameMap.\n//  * The input `named` must not be modified.\n//  */\n// function applyNameMap(\n//     named: GeoSVGGraphicRecord['named'],\n//     nameMap: NameMap\n// ): GeoSVGGraphicRecord['named'] {\n//     const result = [] as GeoSVGGraphicRecord['named'];\n//     for (let i = 0; i < named.length; i++) {\n//         let regionGraphic = named[i];\n//         const name = regionGraphic.name;\n//         if (nameMap && nameMap.hasOwnProperty(name)) {\n//             regionGraphic = extend({}, regionGraphic);\n//             regionGraphic.name = name;\n//         }\n//         result.push(regionGraphic);\n//     }\n//     return result;\n// }","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Fix for 南海诸岛\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { GeoJSONRegion } from '../Region.js';\nvar geoCoord = [126, 25];\nvar nanhaiName = '南海诸岛';\nvar points = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]];\n\nfor (var i = 0; i < points.length; i++) {\n  for (var k = 0; k < points[i].length; k++) {\n    points[i][k][0] /= 10.5;\n    points[i][k][1] /= -10.5 / 0.75;\n    points[i][k][0] += geoCoord[0];\n    points[i][k][1] += geoCoord[1];\n  }\n}\n\nexport default function fixNanhai(mapType, regions) {\n  if (mapType === 'china') {\n    for (var i = 0; i < regions.length; i++) {\n      // Already exists.\n      if (regions[i].name === nanhaiName) {\n        return;\n      }\n    }\n\n    regions.push(new GeoJSONRegion(nanhaiName, zrUtil.map(points, function (exterior) {\n      return {\n        type: 'polygon',\n        exterior: exterior\n      };\n    }), geoCoord));\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar coordsOffsetMap = {\n  '南海诸岛': [32, 80],\n  // 全国\n  '广东': [0, -10],\n  '香港': [10, 5],\n  '澳门': [-10, 10],\n  //'北京': [-10, 0],\n  '天津': [5, 5]\n};\nexport default function fixTextCoords(mapType, region) {\n  if (mapType === 'china') {\n    var coordFix = coordsOffsetMap[region.name];\n\n    if (coordFix) {\n      var cp = region.getCenter();\n      cp[0] += coordFix[0] / 10.5;\n      cp[1] += -coordFix[1] / (10.5 / 0.75);\n      region.setCenter(cp);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Fix for 钓鱼岛\n// let Region = require('../Region');\n// let zrUtil = require('zrender/lib/core/util');\n// let geoCoord = [126, 25];\nvar points = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]];\nexport default function fixDiaoyuIsland(mapType, region) {\n  if (mapType === 'china' && region.name === '台湾') {\n    region.geometries.push({\n      type: 'polygon',\n      exterior: points[0]\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, isString, createHashMap, hasOwn } from 'zrender/lib/core/util.js';\nimport parseGeoJson from './parseGeoJson.js'; // Built-in GEO fixer.\n\nimport fixNanhai from './fix/nanhai.js';\nimport fixTextCoord from './fix/textCoord.js';\nimport fixDiaoyuIsland from './fix/diaoyuIsland.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nvar DEFAULT_NAME_PROPERTY = 'name';\n\nvar GeoJSONResource =\n/** @class */\nfunction () {\n  function GeoJSONResource(mapName, geoJSON, specialAreas) {\n    this.type = 'geoJSON';\n    this._parsedMap = createHashMap();\n    this._mapName = mapName;\n    this._specialAreas = specialAreas; // PENDING: delay the parse to the first usage to rapid up the FMP?\n\n    this._geoJSON = parseInput(geoJSON);\n  }\n  /**\n   * @param nameMap can be null/undefined\n   * @param nameProperty can be null/undefined\n   */\n\n\n  GeoJSONResource.prototype.load = function (nameMap, nameProperty) {\n    nameProperty = nameProperty || DEFAULT_NAME_PROPERTY;\n\n    var parsed = this._parsedMap.get(nameProperty);\n\n    if (!parsed) {\n      var rawRegions = this._parseToRegions(nameProperty);\n\n      parsed = this._parsedMap.set(nameProperty, {\n        regions: rawRegions,\n        boundingRect: calculateBoundingRect(rawRegions)\n      });\n    }\n\n    var regionsMap = createHashMap();\n    var finalRegions = [];\n    each(parsed.regions, function (region) {\n      var regionName = region.name; // Try use the alias in geoNameMap\n\n      if (nameMap && hasOwn(nameMap, regionName)) {\n        region = region.cloneShallow(regionName = nameMap[regionName]);\n      }\n\n      finalRegions.push(region);\n      regionsMap.set(regionName, region);\n    });\n    return {\n      regions: finalRegions,\n      boundingRect: parsed.boundingRect || new BoundingRect(0, 0, 0, 0),\n      regionsMap: regionsMap\n    };\n  };\n\n  GeoJSONResource.prototype._parseToRegions = function (nameProperty) {\n    var mapName = this._mapName;\n    var geoJSON = this._geoJSON;\n    var rawRegions; // https://jsperf.com/try-catch-performance-overhead\n\n    try {\n      rawRegions = geoJSON ? parseGeoJson(geoJSON, nameProperty) : [];\n    } catch (e) {\n      throw new Error('Invalid geoJson format\\n' + e.message);\n    }\n\n    fixNanhai(mapName, rawRegions);\n    each(rawRegions, function (region) {\n      var regionName = region.name;\n      fixTextCoord(mapName, region);\n      fixDiaoyuIsland(mapName, region); // Some area like Alaska in USA map needs to be tansformed\n      // to look better\n\n      var specialArea = this._specialAreas && this._specialAreas[regionName];\n\n      if (specialArea) {\n        region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height);\n      }\n    }, this);\n    return rawRegions;\n  };\n  /**\n   * Only for exporting to users.\n   * **MUST NOT** used internally.\n   */\n\n\n  GeoJSONResource.prototype.getMapForUser = function () {\n    return {\n      // For backward compatibility, use geoJson\n      // PENDING: it has been returning them without clone.\n      // do we need to avoid outsite modification?\n      geoJson: this._geoJSON,\n      geoJSON: this._geoJSON,\n      specialAreas: this._specialAreas\n    };\n  };\n\n  return GeoJSONResource;\n}();\n\nexport { GeoJSONResource };\n\nfunction calculateBoundingRect(regions) {\n  var rect;\n\n  for (var i = 0; i < regions.length; i++) {\n    var regionRect = regions[i].getBoundingRect();\n    rect = rect || regionRect.clone();\n    rect.union(regionRect);\n  }\n\n  return rect;\n}\n\nfunction parseInput(source) {\n  return !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { createHashMap } from 'zrender/lib/core/util.js';\nimport { GeoSVGResource } from './GeoSVGResource.js';\nimport { GeoJSONResource } from './GeoJSONResource.js';\nvar storage = createHashMap();\nexport default {\n  /**\n   * Compatible with previous `echarts.registerMap`.\n   *\n   * @usage\n   * ```js\n   *\n   * echarts.registerMap('USA', geoJson, specialAreas);\n   *\n   * echarts.registerMap('USA', {\n   *     geoJson: geoJson,\n   *     specialAreas: {...}\n   * });\n   * echarts.registerMap('USA', {\n   *     geoJSON: geoJson,\n   *     specialAreas: {...}\n   * });\n   *\n   * echarts.registerMap('airport', {\n   *     svg: svg\n   * }\n   * ```\n   *\n   * Note:\n   * Do not support that register multiple geoJSON or SVG\n   * one map name. Because different geoJSON and SVG have\n   * different unit. It's not easy to make sure how those\n   * units are mapping/normalize.\n   * If intending to use multiple geoJSON or SVG, we can\n   * use multiple geo coordinate system.\n   */\n  registerMap: function (mapName, rawDef, rawSpecialAreas) {\n    if (rawDef.svg) {\n      var resource = new GeoSVGResource(mapName, rawDef.svg);\n      storage.set(mapName, resource);\n    } else {\n      // Recommend:\n      //     echarts.registerMap('eu', { geoJSON: xxx, specialAreas: xxx });\n      // Backward compatibility:\n      //     echarts.registerMap('eu', geoJSON, specialAreas);\n      //     echarts.registerMap('eu', { geoJson: xxx, specialAreas: xxx });\n      var geoJSON = rawDef.geoJson || rawDef.geoJSON;\n\n      if (geoJSON && !rawDef.features) {\n        rawSpecialAreas = rawDef.specialAreas;\n      } else {\n        geoJSON = rawDef;\n      }\n\n      var resource = new GeoJSONResource(mapName, geoJSON, rawSpecialAreas);\n      storage.set(mapName, resource);\n    }\n  },\n  getGeoResource: function (mapName) {\n    return storage.get(mapName);\n  },\n\n  /**\n   * Only for exporting to users.\n   * **MUST NOT** used internally.\n   */\n  getMapForUser: function (mapName) {\n    var resource = storage.get(mapName); // Do not support return SVG until some real requirement come.\n\n    return resource && resource.type === 'geoJSON' && resource.getMapForUser();\n  },\n  load: function (mapName, nameMap, nameProperty) {\n    var resource = storage.get(mapName);\n\n    if (!resource) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Map ' + mapName + ' not exists. The GeoJSON of the map must be provided.');\n      }\n\n      return;\n    }\n\n    return resource.load(nameMap, nameProperty);\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport RoamController from './RoamController.js';\nimport * as roamHelper from '../../component/helper/roamHelper.js';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, enableComponentHighDownFeatures, setDefaultStateProxy } from '../../util/states.js';\nimport geoSourceManager from '../../coord/geo/geoSourceManager.js';\nimport { getUID } from '../../util/component.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nimport { makeInner } from '../../util/model.js';\n/**\n * Only these tags enable use `itemStyle` if they are named in SVG.\n * Other tags like <text> <tspan> <image> might not suitable for `itemStyle`.\n * They will not be considered to be styled until some requirements come.\n */\n\nvar OPTION_STYLE_ENABLED_TAGS = ['rect', 'circle', 'line', 'ellipse', 'polygon', 'polyline', 'path'];\nvar OPTION_STYLE_ENABLED_TAG_MAP = zrUtil.createHashMap(OPTION_STYLE_ENABLED_TAGS);\nvar STATE_TRIGGER_TAG_MAP = zrUtil.createHashMap(OPTION_STYLE_ENABLED_TAGS.concat(['g']));\nvar LABEL_HOST_MAP = zrUtil.createHashMap(OPTION_STYLE_ENABLED_TAGS.concat(['g']));\nvar mapLabelRaw = makeInner();\n\nfunction getFixedItemStyle(model) {\n  var itemStyle = model.getItemStyle();\n  var areaColor = model.get('areaColor'); // If user want the color not to be changed when hover,\n  // they should both set areaColor and color to be null.\n\n  if (areaColor != null) {\n    itemStyle.fill = areaColor;\n  }\n\n  return itemStyle;\n} // Only stroke can be used for line.\n// Using fill in style if stroke not exits.\n// TODO Not sure yet. Perhaps a separate `lineStyle`?\n\n\nfunction fixLineStyle(styleHost) {\n  var style = styleHost.style;\n\n  if (style) {\n    style.stroke = style.stroke || style.fill;\n    style.fill = null;\n  }\n}\n\nvar MapDraw =\n/** @class */\nfunction () {\n  function MapDraw(api) {\n    var group = new graphic.Group();\n    this.uid = getUID('ec_map_draw');\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: group\n    };\n    this.group = group;\n    group.add(this._regionsGroup = new graphic.Group());\n    group.add(this._svgGroup = new graphic.Group());\n  }\n\n  MapDraw.prototype.draw = function (mapOrGeoModel, ecModel, api, fromView, payload) {\n    var isGeo = mapOrGeoModel.mainType === 'geo'; // Map series has data. GEO model that controlled by map series\n    // will be assigned with map data. Other GEO model has no data.\n\n    var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\n    isGeo && ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'map'\n    }, function (mapSeries) {\n      if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\n        data = mapSeries.getData();\n      }\n    });\n    var geo = mapOrGeoModel.coordinateSystem;\n    var regionsGroup = this._regionsGroup;\n    var group = this.group;\n    var transformInfo = geo.getTransformInfo();\n    var transformInfoRaw = transformInfo.raw;\n    var transformInfoRoam = transformInfo.roam; // No animation when first draw or in action\n\n    var isFirstDraw = !regionsGroup.childAt(0) || payload;\n\n    if (isFirstDraw) {\n      group.x = transformInfoRoam.x;\n      group.y = transformInfoRoam.y;\n      group.scaleX = transformInfoRoam.scaleX;\n      group.scaleY = transformInfoRoam.scaleY;\n      group.dirty();\n    } else {\n      graphic.updateProps(group, transformInfoRoam, mapOrGeoModel);\n    }\n\n    var isVisualEncodedByVisualMap = data && data.getVisual('visualMeta') && data.getVisual('visualMeta').length > 0;\n    var viewBuildCtx = {\n      api: api,\n      geo: geo,\n      mapOrGeoModel: mapOrGeoModel,\n      data: data,\n      isVisualEncodedByVisualMap: isVisualEncodedByVisualMap,\n      isGeo: isGeo,\n      transformInfoRaw: transformInfoRaw\n    };\n\n    if (geo.resourceType === 'geoJSON') {\n      this._buildGeoJSON(viewBuildCtx);\n    } else if (geo.resourceType === 'geoSVG') {\n      this._buildSVG(viewBuildCtx);\n    }\n\n    this._updateController(mapOrGeoModel, ecModel, api);\n\n    this._updateMapSelectHandler(mapOrGeoModel, regionsGroup, api, fromView);\n  };\n\n  MapDraw.prototype._buildGeoJSON = function (viewBuildCtx) {\n    var regionsGroupByName = this._regionsGroupByName = zrUtil.createHashMap();\n    var regionsInfoByName = zrUtil.createHashMap();\n    var regionsGroup = this._regionsGroup;\n    var transformInfoRaw = viewBuildCtx.transformInfoRaw;\n    var mapOrGeoModel = viewBuildCtx.mapOrGeoModel;\n    var data = viewBuildCtx.data;\n    var projection = viewBuildCtx.geo.projection;\n    var projectionStream = projection && projection.stream;\n\n    function transformPoint(point, project) {\n      if (project) {\n        // projection may return null point.\n        point = project(point);\n      }\n\n      return point && [point[0] * transformInfoRaw.scaleX + transformInfoRaw.x, point[1] * transformInfoRaw.scaleY + transformInfoRaw.y];\n    }\n\n    ;\n\n    function transformPolygonPoints(inPoints) {\n      var outPoints = []; // If projectionStream is provided. Use it instead of single point project.\n\n      var project = !projectionStream && projection && projection.project;\n\n      for (var i = 0; i < inPoints.length; ++i) {\n        var newPt = transformPoint(inPoints[i], project);\n        newPt && outPoints.push(newPt);\n      }\n\n      return outPoints;\n    }\n\n    function getPolyShape(points) {\n      return {\n        shape: {\n          points: transformPolygonPoints(points)\n        }\n      };\n    }\n\n    regionsGroup.removeAll(); // Only when the resource is GeoJSON, there is `geo.regions`.\n\n    zrUtil.each(viewBuildCtx.geo.regions, function (region) {\n      var regionName = region.name; // Consider in GeoJson properties.name may be duplicated, for example,\n      // there is multiple region named \"United Kindom\" or \"France\" (so many\n      // colonies). And it is not appropriate to merge them in geo, which\n      // will make them share the same label and bring trouble in label\n      // location calculation.\n\n      var regionGroup = regionsGroupByName.get(regionName);\n\n      var _a = regionsInfoByName.get(regionName) || {},\n          dataIdx = _a.dataIdx,\n          regionModel = _a.regionModel;\n\n      if (!regionGroup) {\n        regionGroup = regionsGroupByName.set(regionName, new graphic.Group());\n        regionsGroup.add(regionGroup);\n        dataIdx = data ? data.indexOfName(regionName) : null;\n        regionModel = viewBuildCtx.isGeo ? mapOrGeoModel.getRegionModel(regionName) : data ? data.getItemModel(dataIdx) : null;\n        regionsInfoByName.set(regionName, {\n          dataIdx: dataIdx,\n          regionModel: regionModel\n        });\n      }\n\n      var polygonSubpaths = [];\n      var polylineSubpaths = [];\n      zrUtil.each(region.geometries, function (geometry) {\n        // Polygon and MultiPolygon\n        if (geometry.type === 'polygon') {\n          var polys = [geometry.exterior].concat(geometry.interiors || []);\n\n          if (projectionStream) {\n            polys = projectPolys(polys, projectionStream);\n          }\n\n          zrUtil.each(polys, function (poly) {\n            polygonSubpaths.push(new graphic.Polygon(getPolyShape(poly)));\n          });\n        } // LineString and MultiLineString\n        else {\n            var points = geometry.points;\n\n            if (projectionStream) {\n              points = projectPolys(points, projectionStream, true);\n            }\n\n            zrUtil.each(points, function (points) {\n              polylineSubpaths.push(new graphic.Polyline(getPolyShape(points)));\n            });\n          }\n      });\n      var centerPt = transformPoint(region.getCenter(), projection && projection.project);\n\n      function createCompoundPath(subpaths, isLine) {\n        if (!subpaths.length) {\n          return;\n        }\n\n        var compoundPath = new graphic.CompoundPath({\n          culling: true,\n          segmentIgnoreThreshold: 1,\n          shape: {\n            paths: subpaths\n          }\n        });\n        regionGroup.add(compoundPath);\n        applyOptionStyleForRegion(viewBuildCtx, compoundPath, dataIdx, regionModel);\n        resetLabelForRegion(viewBuildCtx, compoundPath, regionName, regionModel, mapOrGeoModel, dataIdx, centerPt);\n\n        if (isLine) {\n          fixLineStyle(compoundPath);\n          zrUtil.each(compoundPath.states, fixLineStyle);\n        }\n      }\n\n      createCompoundPath(polygonSubpaths);\n      createCompoundPath(polylineSubpaths, true);\n    }); // Ensure children have been added to `regionGroup` before calling them.\n\n    regionsGroupByName.each(function (regionGroup, regionName) {\n      var _a = regionsInfoByName.get(regionName),\n          dataIdx = _a.dataIdx,\n          regionModel = _a.regionModel;\n\n      resetEventTriggerForRegion(viewBuildCtx, regionGroup, regionName, regionModel, mapOrGeoModel, dataIdx);\n      resetTooltipForRegion(viewBuildCtx, regionGroup, regionName, regionModel, mapOrGeoModel);\n      resetStateTriggerForRegion(viewBuildCtx, regionGroup, regionName, regionModel, mapOrGeoModel);\n    }, this);\n  };\n\n  MapDraw.prototype._buildSVG = function (viewBuildCtx) {\n    var mapName = viewBuildCtx.geo.map;\n    var transformInfoRaw = viewBuildCtx.transformInfoRaw;\n    this._svgGroup.x = transformInfoRaw.x;\n    this._svgGroup.y = transformInfoRaw.y;\n    this._svgGroup.scaleX = transformInfoRaw.scaleX;\n    this._svgGroup.scaleY = transformInfoRaw.scaleY;\n\n    if (this._svgResourceChanged(mapName)) {\n      this._freeSVG();\n\n      this._useSVG(mapName);\n    }\n\n    var svgDispatcherMap = this._svgDispatcherMap = zrUtil.createHashMap();\n    var focusSelf = false;\n    zrUtil.each(this._svgGraphicRecord.named, function (namedItem) {\n      // Note that we also allow different elements have the same name.\n      // For example, a glyph of a city and the label of the city have\n      // the same name and their tooltip info can be defined in a single\n      // region option.\n      var regionName = namedItem.name;\n      var mapOrGeoModel = viewBuildCtx.mapOrGeoModel;\n      var data = viewBuildCtx.data;\n      var svgNodeTagLower = namedItem.svgNodeTagLower;\n      var el = namedItem.el;\n      var dataIdx = data ? data.indexOfName(regionName) : null;\n      var regionModel = mapOrGeoModel.getRegionModel(regionName);\n\n      if (OPTION_STYLE_ENABLED_TAG_MAP.get(svgNodeTagLower) != null && el instanceof Displayable) {\n        applyOptionStyleForRegion(viewBuildCtx, el, dataIdx, regionModel);\n      }\n\n      if (el instanceof Displayable) {\n        el.culling = true;\n      } // We do not know how the SVG like so we'd better not to change z2.\n      // Otherwise it might bring some unexpected result. For example,\n      // an area hovered that make some inner city can not be clicked.\n\n\n      el.z2EmphasisLift = 0; // If self named:\n\n      if (!namedItem.namedFrom) {\n        // label should batter to be displayed based on the center of <g>\n        // if it is named rather than displayed on each child.\n        if (LABEL_HOST_MAP.get(svgNodeTagLower) != null) {\n          resetLabelForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel, dataIdx, null);\n        }\n\n        resetEventTriggerForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel, dataIdx);\n        resetTooltipForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel);\n\n        if (STATE_TRIGGER_TAG_MAP.get(svgNodeTagLower) != null) {\n          var focus_1 = resetStateTriggerForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel);\n\n          if (focus_1 === 'self') {\n            focusSelf = true;\n          }\n\n          var els = svgDispatcherMap.get(regionName) || svgDispatcherMap.set(regionName, []);\n          els.push(el);\n        }\n      }\n    }, this);\n\n    this._enableBlurEntireSVG(focusSelf, viewBuildCtx);\n  };\n\n  MapDraw.prototype._enableBlurEntireSVG = function (focusSelf, viewBuildCtx) {\n    // It's a little complicated to support blurring the entire geoSVG in series-map.\n    // So do not suport it until some requirements come.\n    // At present, in series-map, only regions can be blurred.\n    if (focusSelf && viewBuildCtx.isGeo) {\n      var blurStyle = viewBuildCtx.mapOrGeoModel.getModel(['blur', 'itemStyle']).getItemStyle(); // Only suport `opacity` here. Because not sure that other props are suitable for\n      // all of the elements generated by SVG (especially for Text/TSpan/Image/... ).\n\n      var opacity_1 = blurStyle.opacity;\n\n      this._svgGraphicRecord.root.traverse(function (el) {\n        if (!el.isGroup) {\n          // PENDING: clear those settings to SVG elements when `_freeSVG`.\n          // (Currently it happen not to be needed.)\n          setDefaultStateProxy(el);\n          var style = el.ensureState('blur').style || {}; // Do not overwrite the region style that already set from region option.\n\n          if (style.opacity == null && opacity_1 != null) {\n            style.opacity = opacity_1;\n          } // If `ensureState('blur').style = {}`, there will be default opacity.\n          // Enable `stateTransition` (animation).\n\n\n          el.ensureState('emphasis');\n        }\n      });\n    }\n  };\n\n  MapDraw.prototype.remove = function () {\n    this._regionsGroup.removeAll();\n\n    this._regionsGroupByName = null;\n\n    this._svgGroup.removeAll();\n\n    this._freeSVG();\n\n    this._controller.dispose();\n\n    this._controllerHost = null;\n  };\n\n  MapDraw.prototype.findHighDownDispatchers = function (name, geoModel) {\n    if (name == null) {\n      return [];\n    }\n\n    var geo = geoModel.coordinateSystem;\n\n    if (geo.resourceType === 'geoJSON') {\n      var regionsGroupByName = this._regionsGroupByName;\n\n      if (regionsGroupByName) {\n        var regionGroup = regionsGroupByName.get(name);\n        return regionGroup ? [regionGroup] : [];\n      }\n    } else if (geo.resourceType === 'geoSVG') {\n      return this._svgDispatcherMap && this._svgDispatcherMap.get(name) || [];\n    }\n  };\n\n  MapDraw.prototype._svgResourceChanged = function (mapName) {\n    return this._svgMapName !== mapName;\n  };\n\n  MapDraw.prototype._useSVG = function (mapName) {\n    var resource = geoSourceManager.getGeoResource(mapName);\n\n    if (resource && resource.type === 'geoSVG') {\n      var svgGraphic = resource.useGraphic(this.uid);\n\n      this._svgGroup.add(svgGraphic.root);\n\n      this._svgGraphicRecord = svgGraphic;\n      this._svgMapName = mapName;\n    }\n  };\n\n  MapDraw.prototype._freeSVG = function () {\n    var mapName = this._svgMapName;\n\n    if (mapName == null) {\n      return;\n    }\n\n    var resource = geoSourceManager.getGeoResource(mapName);\n\n    if (resource && resource.type === 'geoSVG') {\n      resource.freeGraphic(this.uid);\n    }\n\n    this._svgGraphicRecord = null;\n    this._svgDispatcherMap = null;\n\n    this._svgGroup.removeAll();\n\n    this._svgMapName = null;\n  };\n\n  MapDraw.prototype._updateController = function (mapOrGeoModel, ecModel, api) {\n    var geo = mapOrGeoModel.coordinateSystem;\n    var controller = this._controller;\n    var controllerHost = this._controllerHost; // @ts-ignore FIXME:TS\n\n    controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\n    controllerHost.zoom = geo.getZoom(); // roamType is will be set default true if it is null\n    // @ts-ignore FIXME:TS\n\n    controller.enable(mapOrGeoModel.get('roam') || false);\n    var mainType = mapOrGeoModel.mainType;\n\n    function makeActionBase() {\n      var action = {\n        type: 'geoRoam',\n        componentType: mainType\n      };\n      action[mainType + 'Id'] = mapOrGeoModel.id;\n      return action;\n    }\n\n    controller.off('pan').on('pan', function (e) {\n      this._mouseDownFlag = false;\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction(zrUtil.extend(makeActionBase(), {\n        dx: e.dx,\n        dy: e.dy,\n        animation: {\n          duration: 0\n        }\n      }));\n    }, this);\n    controller.off('zoom').on('zoom', function (e) {\n      this._mouseDownFlag = false;\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction(zrUtil.extend(makeActionBase(), {\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY,\n        animation: {\n          duration: 0\n        }\n      }));\n    }, this);\n    controller.setPointerChecker(function (e, x, y) {\n      return geo.containPoint([x, y]) && !onIrrelevantElement(e, api, mapOrGeoModel);\n    });\n  };\n  /**\n   * FIXME: this is a temporarily workaround.\n   * When `geoRoam` the elements need to be reset in `MapView['render']`, because the props like\n   * `ignore` might have been modified by `LabelManager`, and `LabelManager#addLabelsOfSeries`\n   * will subsequently cache `defaultAttr` like `ignore`. If do not do this reset, the modified\n   * props will have no chance to be restored.\n   * Note: this reset should be after `clearStates` in `renderSeries` becuase `useStates` in\n   * `renderSeries` will cache the modified `ignore` to `el._normalState`.\n   * TODO:\n   * Use clone/immutable in `LabelManager`?\n   */\n\n\n  MapDraw.prototype.resetForLabelLayout = function () {\n    this.group.traverse(function (el) {\n      var label = el.getTextContent();\n\n      if (label) {\n        label.ignore = mapLabelRaw(label).ignore;\n      }\n    });\n  };\n\n  MapDraw.prototype._updateMapSelectHandler = function (mapOrGeoModel, regionsGroup, api, fromView) {\n    var mapDraw = this;\n    regionsGroup.off('mousedown');\n    regionsGroup.off('click'); // @ts-ignore FIXME:TS resolve type conflict\n\n    if (mapOrGeoModel.get('selectedMode')) {\n      regionsGroup.on('mousedown', function () {\n        mapDraw._mouseDownFlag = true;\n      });\n      regionsGroup.on('click', function (e) {\n        if (!mapDraw._mouseDownFlag) {\n          return;\n        }\n\n        mapDraw._mouseDownFlag = false;\n      });\n    }\n  };\n\n  return MapDraw;\n}();\n\n;\n\nfunction applyOptionStyleForRegion(viewBuildCtx, el, dataIndex, regionModel) {\n  // All of the path are using `itemStyle`, becuase\n  // (1) Some SVG also use fill on polyline (The different between\n  // polyline and polygon is \"open\" or \"close\" but not fill or not).\n  // (2) For the common props like opacity, if some use itemStyle\n  // and some use `lineStyle`, it might confuse users.\n  // (3) Most SVG use <path>, where can not detect wether draw a \"line\"\n  // or a filled shape, so use `itemStyle` for <path>.\n  var normalStyleModel = regionModel.getModel('itemStyle');\n  var emphasisStyleModel = regionModel.getModel(['emphasis', 'itemStyle']);\n  var blurStyleModel = regionModel.getModel(['blur', 'itemStyle']);\n  var selectStyleModel = regionModel.getModel(['select', 'itemStyle']); // NOTE: DONT use 'style' in visual when drawing map.\n  // This component is used for drawing underlying map for both geo component and map series.\n\n  var normalStyle = getFixedItemStyle(normalStyleModel);\n  var emphasisStyle = getFixedItemStyle(emphasisStyleModel);\n  var selectStyle = getFixedItemStyle(selectStyleModel);\n  var blurStyle = getFixedItemStyle(blurStyleModel); // Update the itemStyle if has data visual\n\n  var data = viewBuildCtx.data;\n\n  if (data) {\n    // Only visual color of each item will be used. It can be encoded by visualMap\n    // But visual color of series is used in symbol drawing\n    // Visual color for each series is for the symbol draw\n    var style = data.getItemVisual(dataIndex, 'style');\n    var decal = data.getItemVisual(dataIndex, 'decal');\n\n    if (viewBuildCtx.isVisualEncodedByVisualMap && style.fill) {\n      normalStyle.fill = style.fill;\n    }\n\n    if (decal) {\n      normalStyle.decal = createOrUpdatePatternFromDecal(decal, viewBuildCtx.api);\n    }\n  } // SVG text, tspan and image can be named but not supporeted\n  // to be styled by region option yet.\n\n\n  el.setStyle(normalStyle);\n  el.style.strokeNoScale = true;\n  el.ensureState('emphasis').style = emphasisStyle;\n  el.ensureState('select').style = selectStyle;\n  el.ensureState('blur').style = blurStyle; // Enable blur\n\n  setDefaultStateProxy(el);\n}\n\nfunction resetLabelForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel, // Exist only if `viewBuildCtx.data` exists.\ndataIdx, // If labelXY not provided, use `textConfig.position: 'inside'`\nlabelXY) {\n  var data = viewBuildCtx.data;\n  var isGeo = viewBuildCtx.isGeo;\n  var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\n  var itemLayout = data && data.getItemLayout(dataIdx); // In the following cases label will be drawn\n  // 1. In map series and data value is NaN\n  // 2. In geo component\n  // 3. Region has no series legendIcon, which will be add a showLabel flag in mapSymbolLayout\n\n  if (isGeo || isDataNaN || itemLayout && itemLayout.showLabel) {\n    var query = !isGeo ? dataIdx : regionName;\n    var labelFetcher = void 0; // Consider dataIdx not found.\n\n    if (!data || dataIdx >= 0) {\n      labelFetcher = mapOrGeoModel;\n    }\n\n    var specifiedTextOpt = labelXY ? {\n      normal: {\n        align: 'center',\n        verticalAlign: 'middle'\n      }\n    } : null; // Caveat: must be called after `setDefaultStateProxy(el);` called.\n    // because textContent will be assign with `el.stateProxy` inside.\n\n    setLabelStyle(el, getLabelStatesModels(regionModel), {\n      labelFetcher: labelFetcher,\n      labelDataIndex: query,\n      defaultText: regionName\n    }, specifiedTextOpt);\n    var textEl = el.getTextContent();\n\n    if (textEl) {\n      mapLabelRaw(textEl).ignore = textEl.ignore;\n\n      if (el.textConfig && labelXY) {\n        // Compute a relative offset based on the el bounding rect.\n        var rect = el.getBoundingRect().clone(); // Need to make sure the percent position base on the same rect in normal and\n        // emphasis state. Otherwise if using boundingRect of el, but the emphasis state\n        // has borderWidth (even 0.5px), the text position will be changed obviously\n        // if the position is very big like ['1234%', '1345%'].\n\n        el.textConfig.layoutRect = rect;\n        el.textConfig.position = [(labelXY[0] - rect.x) / rect.width * 100 + '%', (labelXY[1] - rect.y) / rect.height * 100 + '%'];\n      }\n    } // PENDING:\n    // If labelLayout is enabled (test/label-layout.html), el.dataIndex should be specified.\n    // But el.dataIndex is also used to determine whether user event should be triggered,\n    // where el.seriesIndex or el.dataModel must be specified. At present for a single el\n    // there is not case that \"only label layout enabled but user event disabled\", so here\n    // we depends `resetEventTriggerForRegion` to do the job of setting `el.dataIndex`.\n\n\n    el.disableLabelAnimation = true;\n  } else {\n    el.removeTextContent();\n    el.removeTextConfig();\n    el.disableLabelAnimation = null;\n  }\n}\n\nfunction resetEventTriggerForRegion(viewBuildCtx, eventTrigger, regionName, regionModel, mapOrGeoModel, // Exist only if `viewBuildCtx.data` exists.\ndataIdx) {\n  // setItemGraphicEl, setHoverStyle after all polygons and labels\n  // are added to the rigionGroup\n  if (viewBuildCtx.data) {\n    // FIXME: when series-map use a SVG map, and there are duplicated name specified\n    // on different SVG elements, after `data.setItemGraphicEl(...)`:\n    // (1) all of them will be mounted with `dataIndex`, `seriesIndex`, so that tooltip\n    // can be triggered only mouse hover. That's correct.\n    // (2) only the last element will be kept in `data`, so that if trigger tooltip\n    // by `dispatchAction`, only the last one can be found and triggered. That might be\n    // not correct. We will fix it in future if anyone demanding that.\n    viewBuildCtx.data.setItemGraphicEl(dataIdx, eventTrigger);\n  } // series-map will not trigger \"geoselectchange\" no matter it is\n  // based on a declared geo component. Becuause series-map will\n  // trigger \"selectchange\". If it trigger both the two events,\n  // If users call `chart.dispatchAction({type: 'toggleSelect'})`,\n  // it not easy to also fire event \"geoselectchanged\".\n  else {\n      // Package custom mouse event for geo component\n      getECData(eventTrigger).eventData = {\n        componentType: 'geo',\n        componentIndex: mapOrGeoModel.componentIndex,\n        geoIndex: mapOrGeoModel.componentIndex,\n        name: regionName,\n        region: regionModel && regionModel.option || {}\n      };\n    }\n}\n\nfunction resetTooltipForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel) {\n  if (!viewBuildCtx.data) {\n    graphic.setTooltipConfig({\n      el: el,\n      componentModel: mapOrGeoModel,\n      itemName: regionName,\n      // @ts-ignore FIXME:TS fix the \"compatible with each other\"?\n      itemTooltipOption: regionModel.get('tooltip')\n    });\n  }\n}\n\nfunction resetStateTriggerForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel) {\n  // @ts-ignore FIXME:TS fix the \"compatible with each other\"?\n  el.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode'); // @ts-ignore FIXME:TS fix the \"compatible with each other\"?\n\n  var emphasisModel = regionModel.getModel('emphasis');\n  var focus = emphasisModel.get('focus');\n  toggleHoverEmphasis(el, focus, emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n\n  if (viewBuildCtx.isGeo) {\n    enableComponentHighDownFeatures(el, mapOrGeoModel, regionName);\n  }\n\n  return focus;\n}\n\nfunction projectPolys(rings, // Polygons include exterior and interiors. Or polylines.\ncreateStream, isLine) {\n  var polygons = [];\n  var curPoly;\n\n  function startPolygon() {\n    curPoly = [];\n  }\n\n  function endPolygon() {\n    if (curPoly.length) {\n      polygons.push(curPoly);\n      curPoly = [];\n    }\n  }\n\n  var stream = createStream({\n    polygonStart: startPolygon,\n    polygonEnd: endPolygon,\n    lineStart: startPolygon,\n    lineEnd: endPolygon,\n    point: function (x, y) {\n      // May have NaN values from stream.\n      if (isFinite(x) && isFinite(y)) {\n        curPoly.push([x, y]);\n      }\n    },\n    sphere: function () {}\n  });\n  !isLine && stream.polygonStart();\n  zrUtil.each(rings, function (ring) {\n    stream.lineStart();\n\n    for (var i = 0; i < ring.length; i++) {\n      stream.point(ring[i][0], ring[i][1]);\n    }\n\n    stream.lineEnd();\n  });\n  !isLine && stream.polygonEnd();\n  return polygons;\n}\n\nexport default MapDraw; // @ts-ignore FIXME:TS fix the \"compatible with each other\"?","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport MapDraw from '../../component/helper/MapDraw.js';\nimport ChartView from '../../view/Chart.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { setStatesFlag, Z2_EMPHASIS_LIFT } from '../../util/states.js';\n\nvar MapView =\n/** @class */\nfunction (_super) {\n  __extends(MapView, _super);\n\n  function MapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MapView.type;\n    return _this;\n  }\n\n  MapView.prototype.render = function (mapModel, ecModel, api, payload) {\n    // Not render if it is an toggleSelect action from self\n    if (payload && payload.type === 'mapToggleSelect' && payload.from === this.uid) {\n      return;\n    }\n\n    var group = this.group;\n    group.removeAll();\n\n    if (mapModel.getHostGeoModel()) {\n      return;\n    }\n\n    if (this._mapDraw && payload && payload.type === 'geoRoam') {\n      this._mapDraw.resetForLabelLayout();\n    } // Not update map if it is an roam action from self\n\n\n    if (!(payload && payload.type === 'geoRoam' && payload.componentType === 'series' && payload.seriesId === mapModel.id)) {\n      if (mapModel.needsDrawMap) {\n        var mapDraw = this._mapDraw || new MapDraw(api);\n        group.add(mapDraw.group);\n        mapDraw.draw(mapModel, ecModel, api, this, payload);\n        this._mapDraw = mapDraw;\n      } else {\n        // Remove drawed map\n        this._mapDraw && this._mapDraw.remove();\n        this._mapDraw = null;\n      }\n    } else {\n      var mapDraw = this._mapDraw;\n      mapDraw && group.add(mapDraw.group);\n    }\n\n    mapModel.get('showLegendSymbol') && ecModel.getComponent('legend') && this._renderSymbols(mapModel, ecModel, api);\n  };\n\n  MapView.prototype.remove = function () {\n    this._mapDraw && this._mapDraw.remove();\n    this._mapDraw = null;\n    this.group.removeAll();\n  };\n\n  MapView.prototype.dispose = function () {\n    this._mapDraw && this._mapDraw.remove();\n    this._mapDraw = null;\n  };\n\n  MapView.prototype._renderSymbols = function (mapModel, ecModel, api) {\n    var originalData = mapModel.originalData;\n    var group = this.group;\n    originalData.each(originalData.mapDimension('value'), function (value, originalDataIndex) {\n      if (isNaN(value)) {\n        return;\n      }\n\n      var layout = originalData.getItemLayout(originalDataIndex);\n\n      if (!layout || !layout.point) {\n        // Not exists in map\n        return;\n      }\n\n      var point = layout.point;\n      var offset = layout.offset;\n      var circle = new graphic.Circle({\n        style: {\n          // Because the special of map draw.\n          // Which needs statistic of multiple series and draw on one map.\n          // And each series also need a symbol with legend color\n          //\n          // Layout and visual are put one the different data\n          // TODO\n          fill: mapModel.getData().getVisual('style').fill\n        },\n        shape: {\n          cx: point[0] + offset * 9,\n          cy: point[1],\n          r: 3\n        },\n        silent: true,\n        // Do not overlap the first series, on which labels are displayed.\n        z2: 8 + (!offset ? Z2_EMPHASIS_LIFT + 1 : 0)\n      }); // Only the series that has the first value on the same region is in charge of rendering the label.\n      // But consider the case:\n      // series: [\n      //     {id: 'X', type: 'map', map: 'm', {data: [{name: 'A', value: 11}, {name: 'B', {value: 22}]},\n      //     {id: 'Y', type: 'map', map: 'm', {data: [{name: 'A', value: 21}, {name: 'C', {value: 33}]}\n      // ]\n      // The offset `0` of item `A` is at series `X`, but of item `C` is at series `Y`.\n      // For backward compatibility, we follow the rule that render label `A` by the\n      // settings on series `X` but render label `C` by the settings on series `Y`.\n\n      if (!offset) {\n        var fullData = mapModel.mainSeries.getData();\n        var name_1 = originalData.getName(originalDataIndex);\n        var fullIndex_1 = fullData.indexOfName(name_1);\n        var itemModel = originalData.getItemModel(originalDataIndex);\n        var labelModel = itemModel.getModel('label');\n        var regionGroup = fullData.getItemGraphicEl(fullIndex_1); // `getFormattedLabel` needs to use `getData` inside. Here\n        // `mapModel.getData()` is shallow cloned from `mainSeries.getData()`.\n        // FIXME\n        // If this is not the `mainSeries`, the item model (like label formatter)\n        // set on original data item will never get. But it has been working\n        // like that from the begining, and this scenario is rarely encountered.\n        // So it won't be fixed until have to.\n\n        setLabelStyle(circle, getLabelStatesModels(itemModel), {\n          labelFetcher: {\n            getFormattedLabel: function (idx, state) {\n              return mapModel.getFormattedLabel(fullIndex_1, state);\n            }\n          },\n          defaultText: name_1\n        });\n        circle.disableLabelAnimation = true;\n\n        if (!labelModel.get('position')) {\n          circle.setTextConfig({\n            position: 'bottom'\n          });\n        }\n\n        regionGroup.onHoverStateChange = function (toState) {\n          setStatesFlag(circle, toState);\n        };\n      }\n\n      group.add(circle);\n    });\n  };\n\n  MapView.type = 'map';\n  return MapView;\n}(ChartView);\n\nexport default MapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport createSeriesDataSimply from '../helper/createSeriesDataSimply.js';\nimport SeriesModel from '../../model/Series.js';\nimport geoSourceManager from '../../coord/geo/geoSourceManager.js';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\nimport { createSymbol } from '../../util/symbol.js';\n\nvar MapSeries =\n/** @class */\nfunction (_super) {\n  __extends(MapSeries, _super);\n\n  function MapSeries() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MapSeries.type; // Only first map series of same mapType will drawMap.\n\n    _this.needsDrawMap = false; // Group of all map series with same mapType\n\n    _this.seriesGroup = [];\n\n    _this.getTooltipPosition = function (dataIndex) {\n      if (dataIndex != null) {\n        var name_1 = this.getData().getName(dataIndex);\n        var geo = this.coordinateSystem;\n        var region = geo.getRegion(name_1);\n        return region && geo.dataToPoint(region.getCenter());\n      }\n    };\n\n    return _this;\n  }\n\n  MapSeries.prototype.getInitialData = function (option) {\n    var data = createSeriesDataSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n    var dataNameMap = zrUtil.createHashMap();\n    var toAppendNames = [];\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      var name_2 = data.getName(i);\n      dataNameMap.set(name_2, true);\n    }\n\n    var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty);\n    zrUtil.each(geoSource.regions, function (region) {\n      var name = region.name;\n\n      if (!dataNameMap.get(name)) {\n        toAppendNames.push(name);\n      }\n    }); // Complete data with missing regions. The consequent processes (like visual\n    // map and render) can not be performed without a \"full data\". For example,\n    // find `dataIndex` by name.\n\n    data.appendValues([], toAppendNames);\n    return data;\n  };\n  /**\n   * If no host geo model, return null, which means using a\n   * inner exclusive geo model.\n   */\n\n\n  MapSeries.prototype.getHostGeoModel = function () {\n    var geoIndex = this.option.geoIndex;\n    return geoIndex != null ? this.ecModel.getComponent('geo', geoIndex) : null;\n  };\n\n  MapSeries.prototype.getMapType = function () {\n    return (this.getHostGeoModel() || this).option.map;\n  }; // _fillOption(option, mapName) {\n  // Shallow clone\n  // option = zrUtil.extend({}, option);\n  // option.data = geoCreator.getFilledRegions(option.data, mapName, option.nameMap);\n  // return option;\n  // }\n\n\n  MapSeries.prototype.getRawValue = function (dataIndex) {\n    // Use value stored in data instead because it is calculated from multiple series\n    // FIXME Provide all value of multiple series ?\n    var data = this.getData();\n    return data.get(data.mapDimension('value'), dataIndex);\n  };\n  /**\n   * Get model of region\n   */\n\n\n  MapSeries.prototype.getRegionModel = function (regionName) {\n    var data = this.getData();\n    return data.getItemModel(data.indexOfName(regionName));\n  };\n  /**\n   * Map tooltip formatter\n   */\n\n\n  MapSeries.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    // FIXME orignalData and data is a bit confusing\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var name = data.getName(dataIndex);\n    var seriesGroup = this.seriesGroup;\n    var seriesNames = [];\n\n    for (var i = 0; i < seriesGroup.length; i++) {\n      var otherIndex = seriesGroup[i].originalData.indexOfName(name);\n      var valueDim = data.mapDimension('value');\n\n      if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) {\n        seriesNames.push(seriesGroup[i].name);\n      }\n    }\n\n    return createTooltipMarkup('section', {\n      header: seriesNames.join(', '),\n      noHeader: !seriesNames.length,\n      blocks: [createTooltipMarkup('nameValue', {\n        name: name,\n        value: value\n      })]\n    });\n  };\n\n  MapSeries.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  MapSeries.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  MapSeries.prototype.getLegendIcon = function (opt) {\n    var iconType = opt.icon || 'roundRect';\n    var icon = createSymbol(iconType, 0, 0, opt.itemWidth, opt.itemHeight, opt.itemStyle.fill);\n    icon.setStyle(opt.itemStyle); // Map do not use itemStyle.borderWidth as border width\n\n    icon.style.stroke = 'none'; // No rotation because no series visual symbol for map\n\n    if (iconType.indexOf('empty') > -1) {\n      icon.style.stroke = icon.style.fill;\n      icon.style.fill = '#fff';\n      icon.style.lineWidth = 2;\n    }\n\n    return icon;\n  };\n\n  MapSeries.type = 'series.map';\n  MapSeries.dependencies = ['geo'];\n  MapSeries.layoutMode = 'box';\n  MapSeries.defaultOption = {\n    // 一级层叠\n    // zlevel: 0,\n    // 二级层叠\n    z: 2,\n    coordinateSystem: 'geo',\n    // map should be explicitly specified since ec3.\n    map: '',\n    // If `geoIndex` is not specified, a exclusive geo will be\n    // created. Otherwise use the specified geo component, and\n    // `map` and `mapType` are ignored.\n    // geoIndex: 0,\n    // 'center' | 'left' | 'right' | 'x%' | {number}\n    left: 'center',\n    // 'center' | 'top' | 'bottom' | 'x%' | {number}\n    top: 'center',\n    // right\n    // bottom\n    // width:\n    // height\n    // Aspect is width / height. Inited to be geoJson bbox aspect\n    // This parameter is used for scale this aspect\n    // Default value:\n    // for geoSVG source: 1,\n    // for geoJSON source: 0.75.\n    aspectScale: null,\n    ///// Layout with center and size\n    // If you wan't to put map in a fixed size box with right aspect ratio\n    // This two properties may more conveninet\n    // layoutCenter: [50%, 50%]\n    // layoutSize: 100\n    showLegendSymbol: true,\n    // Define left-top, right-bottom coords to control view\n    // For example, [ [180, 90], [-180, -90] ],\n    // higher priority than center and zoom\n    boundingCoords: null,\n    // Default on center of map\n    center: null,\n    zoom: 1,\n    scaleLimit: null,\n    selectedMode: true,\n    label: {\n      show: false,\n      color: '#000'\n    },\n    // scaleLimit: null,\n    itemStyle: {\n      borderWidth: 0.5,\n      borderColor: '#444',\n      areaColor: '#eee'\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        areaColor: 'rgba(255,215,0,0.8)'\n      }\n    },\n    select: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    nameProperty: 'name'\n  };\n  return MapSeries;\n}(SeriesModel);\n\nexport default MapSeries;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js'; // FIXME 公用？\n\nfunction dataStatistics(datas, statisticType) {\n  var dataNameMap = {};\n  zrUtil.each(datas, function (data) {\n    data.each(data.mapDimension('value'), function (value, idx) {\n      // Add prefix to avoid conflict with Object.prototype.\n      var mapKey = 'ec-' + data.getName(idx);\n      dataNameMap[mapKey] = dataNameMap[mapKey] || [];\n\n      if (!isNaN(value)) {\n        dataNameMap[mapKey].push(value);\n      }\n    });\n  });\n  return datas[0].map(datas[0].mapDimension('value'), function (value, idx) {\n    var mapKey = 'ec-' + datas[0].getName(idx);\n    var sum = 0;\n    var min = Infinity;\n    var max = -Infinity;\n    var len = dataNameMap[mapKey].length;\n\n    for (var i = 0; i < len; i++) {\n      min = Math.min(min, dataNameMap[mapKey][i]);\n      max = Math.max(max, dataNameMap[mapKey][i]);\n      sum += dataNameMap[mapKey][i];\n    }\n\n    var result;\n\n    if (statisticType === 'min') {\n      result = min;\n    } else if (statisticType === 'max') {\n      result = max;\n    } else if (statisticType === 'average') {\n      result = sum / len;\n    } else {\n      result = sum;\n    }\n\n    return len === 0 ? NaN : result;\n  });\n}\n\nexport default function mapDataStatistic(ecModel) {\n  var seriesGroups = {};\n  ecModel.eachSeriesByType('map', function (seriesModel) {\n    var hostGeoModel = seriesModel.getHostGeoModel();\n    var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType();\n    (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);\n  });\n  zrUtil.each(seriesGroups, function (seriesList, key) {\n    var data = dataStatistics(zrUtil.map(seriesList, function (seriesModel) {\n      return seriesModel.getData();\n    }), seriesList[0].get('mapValueCalculation'));\n\n    for (var i = 0; i < seriesList.length; i++) {\n      seriesList[i].originalData = seriesList[i].getData();\n    } // FIXME Put where?\n\n\n    for (var i = 0; i < seriesList.length; i++) {\n      seriesList[i].seriesGroup = seriesList;\n      seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();\n      seriesList[i].setData(data.cloneShallow());\n      seriesList[i].mainSeries = seriesList[0];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport default function mapSymbolLayout(ecModel) {\n  var processedMapType = {};\n  ecModel.eachSeriesByType('map', function (mapSeries) {\n    var mapType = mapSeries.getMapType();\n\n    if (mapSeries.getHostGeoModel() || processedMapType[mapType]) {\n      return;\n    }\n\n    var mapSymbolOffsets = {};\n    zrUtil.each(mapSeries.seriesGroup, function (subMapSeries) {\n      var geo = subMapSeries.coordinateSystem;\n      var data = subMapSeries.originalData;\n\n      if (subMapSeries.get('showLegendSymbol') && ecModel.getComponent('legend')) {\n        data.each(data.mapDimension('value'), function (value, idx) {\n          var name = data.getName(idx);\n          var region = geo.getRegion(name); // If input series.data is [11, 22, '-'/null/undefined, 44],\n          // it will be filled with NaN: [11, 22, NaN, 44] and NaN will\n          // not be drawn. So here must validate if value is NaN.\n\n          if (!region || isNaN(value)) {\n            return;\n          }\n\n          var offset = mapSymbolOffsets[name] || 0;\n          var point = geo.dataToPoint(region.getCenter());\n          mapSymbolOffsets[name] = offset + 1;\n          data.setItemLayout(idx, {\n            point: point,\n            offset: offset\n          });\n        });\n      }\n    }); // Show label of those region not has legendIcon (which is offset 0)\n\n    var data = mapSeries.getData();\n    data.each(function (idx) {\n      var name = data.getName(idx);\n      var layout = data.getItemLayout(idx) || {};\n      layout.showLabel = !mapSymbolOffsets[name];\n      data.setItemLayout(idx, layout);\n    });\n    processedMapType[mapType] = true;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * Simple view coordinate system\n * Mapping given x, y to transformd view x, y\n */\n\nimport * as vector from 'zrender/lib/core/vector.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport Transformable from 'zrender/lib/core/Transformable.js';\nimport { parsePercent } from '../util/number.js';\nvar v2ApplyTransform = vector.applyTransform;\n\nvar View =\n/** @class */\nfunction (_super) {\n  __extends(View, _super);\n\n  function View(name) {\n    var _this = _super.call(this) || this;\n\n    _this.type = 'view';\n    _this.dimensions = ['x', 'y'];\n    /**\n     * Represents the transform brought by roam/zoom.\n     * If `View['_viewRect']` applies roam transform,\n     * we can get the final displayed rect.\n     */\n\n    _this._roamTransformable = new Transformable();\n    /**\n     * Represents the transform from `View['_rect']` to `View['_viewRect']`.\n     */\n\n    _this._rawTransformable = new Transformable();\n    _this.name = name;\n    return _this;\n  }\n\n  View.prototype.setBoundingRect = function (x, y, width, height) {\n    this._rect = new BoundingRect(x, y, width, height);\n    return this._rect;\n  };\n  /**\n   * @return {module:zrender/core/BoundingRect}\n   */\n\n\n  View.prototype.getBoundingRect = function () {\n    return this._rect;\n  };\n\n  View.prototype.setViewRect = function (x, y, width, height) {\n    this._transformTo(x, y, width, height);\n\n    this._viewRect = new BoundingRect(x, y, width, height);\n  };\n  /**\n   * Transformed to particular position and size\n   */\n\n\n  View.prototype._transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var rawTransform = this._rawTransformable;\n    rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n    var rawParent = rawTransform.parent;\n    rawTransform.parent = null;\n    rawTransform.decomposeTransform();\n    rawTransform.parent = rawParent;\n\n    this._updateTransform();\n  };\n  /**\n   * Set center of view\n   */\n\n\n  View.prototype.setCenter = function (centerCoord, api) {\n    if (!centerCoord) {\n      return;\n    }\n\n    this._center = [parsePercent(centerCoord[0], api.getWidth()), parsePercent(centerCoord[1], api.getHeight())];\n\n    this._updateCenterAndZoom();\n  };\n\n  View.prototype.setZoom = function (zoom) {\n    zoom = zoom || 1;\n    var zoomLimit = this.zoomLimit;\n\n    if (zoomLimit) {\n      if (zoomLimit.max != null) {\n        zoom = Math.min(zoomLimit.max, zoom);\n      }\n\n      if (zoomLimit.min != null) {\n        zoom = Math.max(zoomLimit.min, zoom);\n      }\n    }\n\n    this._zoom = zoom;\n\n    this._updateCenterAndZoom();\n  };\n  /**\n   * Get default center without roam\n   */\n\n\n  View.prototype.getDefaultCenter = function () {\n    // Rect before any transform\n    var rawRect = this.getBoundingRect();\n    var cx = rawRect.x + rawRect.width / 2;\n    var cy = rawRect.y + rawRect.height / 2;\n    return [cx, cy];\n  };\n\n  View.prototype.getCenter = function () {\n    return this._center || this.getDefaultCenter();\n  };\n\n  View.prototype.getZoom = function () {\n    return this._zoom || 1;\n  };\n\n  View.prototype.getRoamTransform = function () {\n    return this._roamTransformable.getLocalTransform();\n  };\n  /**\n   * Remove roam\n   */\n\n\n  View.prototype._updateCenterAndZoom = function () {\n    // Must update after view transform updated\n    var rawTransformMatrix = this._rawTransformable.getLocalTransform();\n\n    var roamTransform = this._roamTransformable;\n    var defaultCenter = this.getDefaultCenter();\n    var center = this.getCenter();\n    var zoom = this.getZoom();\n    center = vector.applyTransform([], center, rawTransformMatrix);\n    defaultCenter = vector.applyTransform([], defaultCenter, rawTransformMatrix);\n    roamTransform.originX = center[0];\n    roamTransform.originY = center[1];\n    roamTransform.x = defaultCenter[0] - center[0];\n    roamTransform.y = defaultCenter[1] - center[1];\n    roamTransform.scaleX = roamTransform.scaleY = zoom;\n\n    this._updateTransform();\n  };\n  /**\n   * Update transform props on `this` based on the current\n   * `this._roamTransformable` and `this._rawTransformable`.\n   */\n\n\n  View.prototype._updateTransform = function () {\n    var roamTransformable = this._roamTransformable;\n    var rawTransformable = this._rawTransformable;\n    rawTransformable.parent = roamTransformable;\n    roamTransformable.updateTransform();\n    rawTransformable.updateTransform();\n    matrix.copy(this.transform || (this.transform = []), rawTransformable.transform || matrix.create());\n    this._rawTransform = rawTransformable.getLocalTransform();\n    this.invTransform = this.invTransform || [];\n    matrix.invert(this.invTransform, this.transform);\n    this.decomposeTransform();\n  };\n\n  View.prototype.getTransformInfo = function () {\n    var rawTransformable = this._rawTransformable;\n    var roamTransformable = this._roamTransformable; // Becuase roamTransformabel has `originX/originY` modified,\n    // but the caller of `getTransformInfo` can not handle `originX/originY`,\n    // so need to recalcualte them.\n\n    var dummyTransformable = new Transformable();\n    dummyTransformable.transform = roamTransformable.transform;\n    dummyTransformable.decomposeTransform();\n    return {\n      roam: {\n        x: dummyTransformable.x,\n        y: dummyTransformable.y,\n        scaleX: dummyTransformable.scaleX,\n        scaleY: dummyTransformable.scaleY\n      },\n      raw: {\n        x: rawTransformable.x,\n        y: rawTransformable.y,\n        scaleX: rawTransformable.scaleX,\n        scaleY: rawTransformable.scaleY\n      }\n    };\n  };\n\n  View.prototype.getViewRect = function () {\n    return this._viewRect;\n  };\n  /**\n   * Get view rect after roam transform\n   */\n\n\n  View.prototype.getViewRectAfterRoam = function () {\n    var rect = this.getBoundingRect().clone();\n    rect.applyTransform(this.transform);\n    return rect;\n  };\n  /**\n   * Convert a single (lon, lat) data item to (x, y) point.\n   */\n\n\n  View.prototype.dataToPoint = function (data, noRoam, out) {\n    var transform = noRoam ? this._rawTransform : this.transform;\n    out = out || [];\n    return transform ? v2ApplyTransform(out, data, transform) : vector.copy(out, data);\n  };\n  /**\n   * Convert a (x, y) point to (lon, lat) data\n   */\n\n\n  View.prototype.pointToData = function (point) {\n    var invTransform = this.invTransform;\n    return invTransform ? v2ApplyTransform([], point, invTransform) : [point[0], point[1]];\n  };\n\n  View.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  View.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n  /**\n   * @implements\n   */\n\n\n  View.prototype.containPoint = function (point) {\n    return this.getViewRectAfterRoam().contain(point[0], point[1]);\n  };\n\n  View.dimensions = ['x', 'y'];\n  return View;\n}(Transformable);\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  return seriesModel ? seriesModel.coordinateSystem : null; // e.g., graph.\n}\n\nexport default View;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport View from '../View.js';\nimport geoSourceManager from './geoSourceManager.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\nimport { warn } from '../../util/log.js';\nvar GEO_DEFAULT_PARAMS = {\n  'geoJSON': {\n    aspectScale: 0.75,\n    invertLongitute: true\n  },\n  'geoSVG': {\n    aspectScale: 1,\n    invertLongitute: false\n  }\n};\nexport var geo2DDimensions = ['lng', 'lat'];\n\nvar Geo =\n/** @class */\nfunction (_super) {\n  __extends(Geo, _super);\n\n  function Geo(name, map, opt) {\n    var _this = _super.call(this, name) || this;\n\n    _this.dimensions = geo2DDimensions;\n    _this.type = 'geo'; // Only store specified name coord via `addGeoCoord`.\n\n    _this._nameCoordMap = zrUtil.createHashMap();\n    _this.map = map;\n    var projection = opt.projection;\n    var source = geoSourceManager.load(map, opt.nameMap, opt.nameProperty);\n    var resource = geoSourceManager.getGeoResource(map);\n    var resourceType = _this.resourceType = resource ? resource.type : null;\n    var regions = _this.regions = source.regions;\n    var defaultParams = GEO_DEFAULT_PARAMS[resource.type];\n    _this._regionsMap = source.regionsMap;\n    _this.regions = source.regions;\n\n    if (process.env.NODE_ENV !== 'production' && projection) {\n      // Do some check\n      if (resourceType === 'geoSVG') {\n        if (process.env.NODE_ENV !== 'production') {\n          warn(\"Map \" + map + \" with SVG source can't use projection. Only GeoJSON source supports projection.\");\n        }\n\n        projection = null;\n      }\n\n      if (!(projection.project && projection.unproject)) {\n        if (process.env.NODE_ENV !== 'production') {\n          warn('project and unproject must be both provided in the projeciton.');\n        }\n\n        projection = null;\n      }\n    }\n\n    _this.projection = projection;\n    var boundingRect;\n\n    if (projection) {\n      // Can't reuse the raw bounding rect\n      for (var i = 0; i < regions.length; i++) {\n        var regionRect = regions[i].getBoundingRect(projection);\n        boundingRect = boundingRect || regionRect.clone();\n        boundingRect.union(regionRect);\n      }\n    } else {\n      boundingRect = source.boundingRect;\n    }\n\n    _this.setBoundingRect(boundingRect.x, boundingRect.y, boundingRect.width, boundingRect.height); // aspectScale and invertLongitute actually is the parameters default raw projection.\n    // So we ignore them if projection is given.\n    // Ignore default aspect scale if projection exits.\n\n\n    _this.aspectScale = projection ? 1 : zrUtil.retrieve2(opt.aspectScale, defaultParams.aspectScale); // Not invert longitute if projection exits.\n\n    _this._invertLongitute = projection ? false : defaultParams.invertLongitute;\n    return _this;\n  }\n\n  Geo.prototype._transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var invertLongitute = this._invertLongitute;\n    rect = rect.clone();\n\n    if (invertLongitute) {\n      // Longitute is inverted\n      rect.y = -rect.y - rect.height;\n    }\n\n    var rawTransformable = this._rawTransformable;\n    rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n    var rawParent = rawTransformable.parent;\n    rawTransformable.parent = null;\n    rawTransformable.decomposeTransform();\n    rawTransformable.parent = rawParent;\n\n    if (invertLongitute) {\n      rawTransformable.scaleY = -rawTransformable.scaleY;\n    }\n\n    this._updateTransform();\n  };\n\n  Geo.prototype.getRegion = function (name) {\n    return this._regionsMap.get(name);\n  };\n\n  Geo.prototype.getRegionByCoord = function (coord) {\n    var regions = this.regions;\n\n    for (var i = 0; i < regions.length; i++) {\n      var region = regions[i];\n\n      if (region.type === 'geoJSON' && region.contain(coord)) {\n        return regions[i];\n      }\n    }\n  };\n  /**\n   * Add geoCoord for indexing by name\n   */\n\n\n  Geo.prototype.addGeoCoord = function (name, geoCoord) {\n    this._nameCoordMap.set(name, geoCoord);\n  };\n  /**\n   * Get geoCoord by name\n   */\n\n\n  Geo.prototype.getGeoCoord = function (name) {\n    var region = this._regionsMap.get(name); // calcualte center only on demand.\n\n\n    return this._nameCoordMap.get(name) || region && region.getCenter();\n  };\n\n  Geo.prototype.dataToPoint = function (data, noRoam, out) {\n    if (zrUtil.isString(data)) {\n      // Map area name to geoCoord\n      data = this.getGeoCoord(data);\n    }\n\n    if (data) {\n      var projection = this.projection;\n\n      if (projection) {\n        // projection may return null point.\n        data = projection.project(data);\n      }\n\n      return data && this.projectedToPoint(data, noRoam, out);\n    }\n  };\n\n  Geo.prototype.pointToData = function (point) {\n    var projection = this.projection;\n\n    if (projection) {\n      // projection may return null point.\n      point = projection.unproject(point);\n    }\n\n    return point && this.pointToProjected(point);\n  };\n  /**\n   * Point to projected data. Same with pointToData when projection is used.\n   */\n\n\n  Geo.prototype.pointToProjected = function (point) {\n    return _super.prototype.pointToData.call(this, point);\n  };\n\n  Geo.prototype.projectedToPoint = function (projected, noRoam, out) {\n    return _super.prototype.dataToPoint.call(this, projected, noRoam, out);\n  };\n\n  Geo.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  Geo.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  return Geo;\n}(View);\n\n;\nzrUtil.mixin(Geo, View);\n\nfunction getCoordSys(finder) {\n  var geoModel = finder.geoModel;\n  var seriesModel = finder.seriesModel;\n  return geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem // For map series.\n  || (seriesModel.getReferringComponents('geo', SINGLE_REFERRING).models[0] || {}).coordinateSystem : null;\n}\n\nexport default Geo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Geo, { geo2DDimensions } from './Geo.js';\nimport * as layout from '../../util/layout.js';\nimport * as numberUtil from '../../util/number.js';\nimport geoSourceManager from './geoSourceManager.js';\nimport * as vector from 'zrender/lib/core/vector.js';\n/**\n * Resize method bound to the geo\n */\n\nfunction resizeGeo(geoModel, api) {\n  var boundingCoords = geoModel.get('boundingCoords');\n\n  if (boundingCoords != null) {\n    var leftTop_1 = boundingCoords[0];\n    var rightBottom_1 = boundingCoords[1];\n\n    if (!(isFinite(leftTop_1[0]) && isFinite(leftTop_1[1]) && isFinite(rightBottom_1[0]) && isFinite(rightBottom_1[1]))) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Invalid boundingCoords');\n      }\n    } else {\n      // Sample around the lng/lat rect and use projection to calculate actual bounding rect.\n      var projection_1 = this.projection;\n\n      if (projection_1) {\n        var xMin = leftTop_1[0];\n        var yMin = leftTop_1[1];\n        var xMax = rightBottom_1[0];\n        var yMax = rightBottom_1[1];\n        leftTop_1 = [Infinity, Infinity];\n        rightBottom_1 = [-Infinity, -Infinity]; // TODO better way?\n\n        var sampleLine = function (x0, y0, x1, y1) {\n          var dx = x1 - x0;\n          var dy = y1 - y0;\n\n          for (var i = 0; i <= 100; i++) {\n            var p = i / 100;\n            var pt = projection_1.project([x0 + dx * p, y0 + dy * p]);\n            vector.min(leftTop_1, leftTop_1, pt);\n            vector.max(rightBottom_1, rightBottom_1, pt);\n          }\n        }; // Top\n\n\n        sampleLine(xMin, yMin, xMax, yMin); // Right\n\n        sampleLine(xMax, yMin, xMax, yMax); // Bottom\n\n        sampleLine(xMax, yMax, xMin, yMax); // Left\n\n        sampleLine(xMin, yMax, xMax, yMin);\n      }\n\n      this.setBoundingRect(leftTop_1[0], leftTop_1[1], rightBottom_1[0] - leftTop_1[0], rightBottom_1[1] - leftTop_1[1]);\n    }\n  }\n\n  var rect = this.getBoundingRect();\n  var centerOption = geoModel.get('layoutCenter');\n  var sizeOption = geoModel.get('layoutSize');\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  var aspect = rect.width / rect.height * this.aspectScale;\n  var useCenterAndSize = false;\n  var center;\n  var size;\n\n  if (centerOption && sizeOption) {\n    center = [numberUtil.parsePercent(centerOption[0], viewWidth), numberUtil.parsePercent(centerOption[1], viewHeight)];\n    size = numberUtil.parsePercent(sizeOption, Math.min(viewWidth, viewHeight));\n\n    if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) {\n      useCenterAndSize = true;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('Given layoutCenter or layoutSize data are invalid. Use left/top/width/height instead.');\n      }\n    }\n  }\n\n  var viewRect;\n\n  if (useCenterAndSize) {\n    viewRect = {};\n\n    if (aspect > 1) {\n      // Width is same with size\n      viewRect.width = size;\n      viewRect.height = size / aspect;\n    } else {\n      viewRect.height = size;\n      viewRect.width = size * aspect;\n    }\n\n    viewRect.y = center[1] - viewRect.height / 2;\n    viewRect.x = center[0] - viewRect.width / 2;\n  } else {\n    // Use left/top/width/height\n    var boxLayoutOption = geoModel.getBoxLayoutParams();\n    boxLayoutOption.aspect = aspect;\n    viewRect = layout.getLayoutRect(boxLayoutOption, {\n      width: viewWidth,\n      height: viewHeight\n    });\n  }\n\n  this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\n  this.setCenter(geoModel.get('center'), api);\n  this.setZoom(geoModel.get('zoom'));\n} // Back compat for ECharts2, where the coord map is set on map series:\n// {type: 'map', geoCoord: {'cityA': [116.46,39.92], 'cityA': [119.12,24.61]}},\n\n\nfunction setGeoCoords(geo, model) {\n  zrUtil.each(model.get('geoCoord'), function (geoCoord, name) {\n    geo.addGeoCoord(name, geoCoord);\n  });\n}\n\nvar GeoCreator =\n/** @class */\nfunction () {\n  function GeoCreator() {\n    // For deciding which dimensions to use when creating list data\n    this.dimensions = geo2DDimensions;\n  }\n\n  GeoCreator.prototype.create = function (ecModel, api) {\n    var geoList = [];\n\n    function getCommonGeoProperties(model) {\n      return {\n        nameProperty: model.get('nameProperty'),\n        aspectScale: model.get('aspectScale'),\n        projection: model.get('projection')\n      };\n    } // FIXME Create each time may be slow\n\n\n    ecModel.eachComponent('geo', function (geoModel, idx) {\n      var mapName = geoModel.get('map');\n      var geo = new Geo(mapName + idx, mapName, zrUtil.extend({\n        nameMap: geoModel.get('nameMap')\n      }, getCommonGeoProperties(geoModel)));\n      geo.zoomLimit = geoModel.get('scaleLimit');\n      geoList.push(geo); // setGeoCoords(geo, geoModel);\n\n      geoModel.coordinateSystem = geo;\n      geo.model = geoModel; // Inject resize method\n\n      geo.resize = resizeGeo;\n      geo.resize(geoModel, api);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      var coordSys = seriesModel.get('coordinateSystem');\n\n      if (coordSys === 'geo') {\n        var geoIndex = seriesModel.get('geoIndex') || 0;\n        seriesModel.coordinateSystem = geoList[geoIndex];\n      }\n    }); // If has map series\n\n    var mapModelGroupBySeries = {};\n    ecModel.eachSeriesByType('map', function (seriesModel) {\n      if (!seriesModel.getHostGeoModel()) {\n        var mapType = seriesModel.getMapType();\n        mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || [];\n        mapModelGroupBySeries[mapType].push(seriesModel);\n      }\n    });\n    zrUtil.each(mapModelGroupBySeries, function (mapSeries, mapType) {\n      var nameMapList = zrUtil.map(mapSeries, function (singleMapSeries) {\n        return singleMapSeries.get('nameMap');\n      });\n      var geo = new Geo(mapType, mapType, zrUtil.extend({\n        nameMap: zrUtil.mergeAll(nameMapList)\n      }, getCommonGeoProperties(mapSeries[0])));\n      geo.zoomLimit = zrUtil.retrieve.apply(null, zrUtil.map(mapSeries, function (singleMapSeries) {\n        return singleMapSeries.get('scaleLimit');\n      }));\n      geoList.push(geo); // Inject resize method\n\n      geo.resize = resizeGeo;\n      geo.resize(mapSeries[0], api);\n      zrUtil.each(mapSeries, function (singleMapSeries) {\n        singleMapSeries.coordinateSystem = geo;\n        setGeoCoords(geo, singleMapSeries);\n      });\n    });\n    return geoList;\n  };\n  /**\n   * Fill given regions array\n   */\n\n\n  GeoCreator.prototype.getFilledRegions = function (originRegionArr, mapName, nameMap, nameProperty) {\n    // Not use the original\n    var regionsArr = (originRegionArr || []).slice();\n    var dataNameMap = zrUtil.createHashMap();\n\n    for (var i = 0; i < regionsArr.length; i++) {\n      dataNameMap.set(regionsArr[i].name, regionsArr[i]);\n    }\n\n    var source = geoSourceManager.load(mapName, nameMap, nameProperty);\n    zrUtil.each(source.regions, function (region) {\n      var name = region.name;\n      !dataNameMap.get(name) && regionsArr.push({\n        name: name\n      });\n    });\n    return regionsArr;\n  };\n\n  return GeoCreator;\n}();\n\nvar geoCreator = new GeoCreator();\nexport default geoCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\nimport ComponentModel from '../../model/Component.js';\nimport Model from '../../model/Model.js';\nimport geoCreator from './geoCreator.js';\nimport geoSourceManager from './geoSourceManager.js';\n;\n\nvar GeoModel =\n/** @class */\nfunction (_super) {\n  __extends(GeoModel, _super);\n\n  function GeoModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GeoModel.type;\n    return _this;\n  }\n\n  GeoModel.prototype.init = function (option, parentModel, ecModel) {\n    var source = geoSourceManager.getGeoResource(option.map);\n\n    if (source && source.type === 'geoJSON') {\n      var itemStyle = option.itemStyle = option.itemStyle || {};\n\n      if (!('color' in itemStyle)) {\n        itemStyle.color = '#eee';\n      }\n    }\n\n    this.mergeDefaultAndTheme(option, ecModel); // Default label emphasis `show`\n\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n  };\n\n  GeoModel.prototype.optionUpdated = function () {\n    var _this = this;\n\n    var option = this.option;\n    option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap, option.nameProperty);\n    var selectedMap = {};\n    this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {\n      var regionName = regionOpt.name;\n\n      if (regionName) {\n        optionModelMap.set(regionName, new Model(regionOpt, _this, _this.ecModel));\n\n        if (regionOpt.selected) {\n          selectedMap[regionName] = true;\n        }\n      }\n\n      return optionModelMap;\n    }, zrUtil.createHashMap());\n\n    if (!option.selectedMap) {\n      option.selectedMap = selectedMap;\n    }\n  };\n  /**\n   * Get model of region.\n   */\n\n\n  GeoModel.prototype.getRegionModel = function (name) {\n    return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\n  };\n  /**\n   * Format label\n   * @param name Region name\n   */\n\n\n  GeoModel.prototype.getFormattedLabel = function (name, status) {\n    var regionModel = this.getRegionModel(name);\n    var formatter = status === 'normal' ? regionModel.get(['label', 'formatter']) : regionModel.get(['emphasis', 'label', 'formatter']);\n    var params = {\n      name: name\n    };\n\n    if (zrUtil.isFunction(formatter)) {\n      params.status = status;\n      return formatter(params);\n    } else if (zrUtil.isString(formatter)) {\n      return formatter.replace('{a}', name != null ? name : '');\n    }\n  };\n\n  GeoModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  GeoModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  }; // PENGING If selectedMode is null ?\n\n\n  GeoModel.prototype.select = function (name) {\n    var option = this.option;\n    var selectedMode = option.selectedMode;\n\n    if (!selectedMode) {\n      return;\n    }\n\n    if (selectedMode !== 'multiple') {\n      option.selectedMap = null;\n    }\n\n    var selectedMap = option.selectedMap || (option.selectedMap = {});\n    selectedMap[name] = true;\n  };\n\n  GeoModel.prototype.unSelect = function (name) {\n    var selectedMap = this.option.selectedMap;\n\n    if (selectedMap) {\n      selectedMap[name] = false;\n    }\n  };\n\n  GeoModel.prototype.toggleSelected = function (name) {\n    this[this.isSelected(name) ? 'unSelect' : 'select'](name);\n  };\n\n  GeoModel.prototype.isSelected = function (name) {\n    var selectedMap = this.option.selectedMap;\n    return !!(selectedMap && selectedMap[name]);\n  };\n\n  GeoModel.type = 'geo';\n  GeoModel.layoutMode = 'box';\n  GeoModel.defaultOption = {\n    // zlevel: 0,\n    z: 0,\n    show: true,\n    left: 'center',\n    top: 'center',\n    // Default value:\n    // for geoSVG source: 1,\n    // for geoJSON source: 0.75.\n    aspectScale: null,\n    ///// Layout with center and size\n    // If you wan't to put map in a fixed size box with right aspect ratio\n    // This two properties may more conveninet\n    // layoutCenter: [50%, 50%]\n    // layoutSize: 100\n    silent: false,\n    // Map type\n    map: '',\n    // Define left-top, right-bottom coords to control view\n    // For example, [ [180, 90], [-180, -90] ]\n    boundingCoords: null,\n    // Default on center of map\n    center: null,\n    zoom: 1,\n    scaleLimit: null,\n    // selectedMode: false\n    label: {\n      show: false,\n      color: '#000'\n    },\n    itemStyle: {\n      borderWidth: 0.5,\n      borderColor: '#444' // Default color:\n      // + geoJSON: #eee\n      // + geoSVG: null (use SVG original `fill`)\n      // color: '#eee'\n\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    select: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    regions: [] // tooltip: {\n    //     show: false\n    // }\n\n  };\n  return GeoModel;\n}(ComponentModel);\n\nexport default GeoModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getCenterCoord(view, point) {\n  // Use projected coord as center because it's linear.\n  return view.pointToProjected ? view.pointToProjected(point) : view.pointToData(point);\n}\n\nexport function updateCenterAndZoom(view, payload, zoomLimit, api) {\n  var previousZoom = view.getZoom();\n  var center = view.getCenter();\n  var zoom = payload.zoom;\n  var point = view.projectedToPoint ? view.projectedToPoint(center) : view.dataToPoint(center);\n\n  if (payload.dx != null && payload.dy != null) {\n    point[0] -= payload.dx;\n    point[1] -= payload.dy;\n    view.setCenter(getCenterCoord(view, point), api);\n  }\n\n  if (zoom != null) {\n    if (zoomLimit) {\n      var zoomMin = zoomLimit.min || 0;\n      var zoomMax = zoomLimit.max || Infinity;\n      zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom;\n    } // Zoom on given point(originX, originY)\n\n\n    view.scaleX *= zoom;\n    view.scaleY *= zoom;\n    var fixX = (payload.originX - view.x) * (zoom - 1);\n    var fixY = (payload.originY - view.y) * (zoom - 1);\n    view.x -= fixX;\n    view.y -= fixY;\n    view.updateTransform(); // Get the new center\n\n    view.setCenter(getCenterCoord(view, point), api);\n    view.setZoom(zoom * previousZoom);\n  }\n\n  return {\n    center: view.getCenter(),\n    zoom: view.getZoom()\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport MapDraw from '../helper/MapDraw.js';\nimport ComponentView from '../../view/Component.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { findEventDispatcher } from '../../util/event.js';\n\nvar GeoView =\n/** @class */\nfunction (_super) {\n  __extends(GeoView, _super);\n\n  function GeoView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GeoView.type;\n    _this.focusBlurEnabled = true;\n    return _this;\n  }\n\n  GeoView.prototype.init = function (ecModel, api) {\n    this._api = api;\n  };\n\n  GeoView.prototype.render = function (geoModel, ecModel, api, payload) {\n    this._model = geoModel;\n\n    if (!geoModel.get('show')) {\n      this._mapDraw && this._mapDraw.remove();\n      this._mapDraw = null;\n      return;\n    }\n\n    if (!this._mapDraw) {\n      this._mapDraw = new MapDraw(api);\n    }\n\n    var mapDraw = this._mapDraw;\n    mapDraw.draw(geoModel, ecModel, api, this, payload);\n    mapDraw.group.on('click', this._handleRegionClick, this);\n    mapDraw.group.silent = geoModel.get('silent');\n    this.group.add(mapDraw.group);\n    this.updateSelectStatus(geoModel, ecModel, api);\n  };\n\n  GeoView.prototype._handleRegionClick = function (e) {\n    var eventData;\n    findEventDispatcher(e.target, function (current) {\n      return (eventData = getECData(current).eventData) != null;\n    }, true);\n\n    if (eventData) {\n      this._api.dispatchAction({\n        type: 'geoToggleSelect',\n        geoId: this._model.id,\n        name: eventData.name\n      });\n    }\n  };\n\n  GeoView.prototype.updateSelectStatus = function (model, ecModel, api) {\n    var _this = this;\n\n    this._mapDraw.group.traverse(function (node) {\n      var eventData = getECData(node).eventData;\n\n      if (eventData) {\n        _this._model.isSelected(eventData.name) ? api.enterSelect(node) : api.leaveSelect(node); // No need to traverse children.\n\n        return true;\n      }\n    });\n  };\n\n  GeoView.prototype.findHighDownDispatchers = function (name) {\n    return this._mapDraw && this._mapDraw.findHighDownDispatchers(name, this._model);\n  };\n\n  GeoView.prototype.dispose = function () {\n    this._mapDraw && this._mapDraw.remove();\n  };\n\n  GeoView.type = 'geo';\n  return GeoView;\n}(ComponentView);\n\nexport default GeoView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport GeoModel from '../../coord/geo/GeoModel.js';\nimport geoCreator from '../../coord/geo/geoCreator.js';\nimport { each } from 'zrender/lib/core/util.js';\nimport { updateCenterAndZoom } from '../../action/roamHelper.js';\nimport GeoView from './GeoView.js';\nimport geoSourceManager from '../../coord/geo/geoSourceManager.js';\n\nfunction registerMap(mapName, geoJson, specialAreas) {\n  geoSourceManager.registerMap(mapName, geoJson, specialAreas);\n}\n\nexport function install(registers) {\n  registers.registerCoordinateSystem('geo', geoCreator);\n  registers.registerComponentModel(GeoModel);\n  registers.registerComponentView(GeoView);\n  registers.registerImpl('registerMap', registerMap);\n  registers.registerImpl('getMap', function (mapName) {\n    return geoSourceManager.getMapForUser(mapName);\n  });\n\n  function makeAction(method, actionInfo) {\n    actionInfo.update = 'geo:updateSelectStatus';\n    registers.registerAction(actionInfo, function (payload, ecModel) {\n      var selected = {};\n      var allSelected = [];\n      ecModel.eachComponent({\n        mainType: 'geo',\n        query: payload\n      }, function (geoModel) {\n        geoModel[method](payload.name);\n        var geo = geoModel.coordinateSystem;\n        each(geo.regions, function (region) {\n          selected[region.name] = geoModel.isSelected(region.name) || false;\n        }); // Notice: there might be duplicated name in different regions.\n\n        var names = [];\n        each(selected, function (v, name) {\n          selected[name] && names.push(name);\n        });\n        allSelected.push({\n          geoIndex: geoModel.componentIndex,\n          // Use singular, the same naming convention as the event `selectchanged`.\n          name: names\n        });\n      });\n      return {\n        selected: selected,\n        allSelected: allSelected,\n        name: payload.name\n      };\n    });\n  }\n\n  makeAction('toggleSelected', {\n    type: 'geoToggleSelect',\n    event: 'geoselectchanged'\n  });\n  makeAction('select', {\n    type: 'geoSelect',\n    event: 'geoselected'\n  });\n  makeAction('unSelect', {\n    type: 'geoUnSelect',\n    event: 'geounselected'\n  });\n  /**\n   * @payload\n   * @property {string} [componentType=series]\n   * @property {number} [dx]\n   * @property {number} [dy]\n   * @property {number} [zoom]\n   * @property {number} [originX]\n   * @property {number} [originY]\n   */\n\n  registers.registerAction({\n    type: 'geoRoam',\n    event: 'geoRoam',\n    update: 'updateTransform'\n  }, function (payload, ecModel, api) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      var geo = componentModel.coordinateSystem;\n\n      if (geo.type !== 'geo') {\n        return;\n      }\n\n      var res = updateCenterAndZoom(geo, payload, componentModel.get('scaleLimit'), api);\n      componentModel.setCenter && componentModel.setCenter(res.center);\n      componentModel.setZoom && componentModel.setZoom(res.zoom); // All map series with same `map` use the same geo coordinate system\n      // So the center and zoom must be in sync. Include the series not selected by legend\n\n      if (componentType === 'series') {\n        each(componentModel.seriesGroup, function (seriesModel) {\n          seriesModel.setCenter(res.center);\n          seriesModel.setZoom(res.zoom);\n        });\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport MapView from './MapView.js';\nimport MapSeries from './MapSeries.js';\nimport mapDataStatistic from './mapDataStatistic.js';\nimport mapSymbolLayout from './mapSymbolLayout.js';\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction.js';\nimport { install as installGeo } from '../../component/geo/install.js';\nexport function install(registers) {\n  use(installGeo);\n  registers.registerChartView(MapView);\n  registers.registerSeriesModel(MapSeries);\n  registers.registerLayout(mapSymbolLayout);\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic);\n  createLegacyDataSelectAction('map', registers.registerAction);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embeded for some of the code in this file:\n* The tree layoutHelper implementation was originally copied from\n* \"d3.js\"(https://github.com/d3/d3-hierarchy) with\n* some modifications made for this project.\n* (see more details in the comment of the specific method below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the licence of \"d3.js\" (BSD-3Clause, see\n* </licenses/LICENSE-d3>).\n*/\n\n/**\n * @file The layout algorithm of node-link tree diagrams. Here we using Reingold-Tilford algorithm to drawing\n *       the tree.\n */\nimport * as layout from '../../util/layout.js';\n/**\n * Initialize all computational message for following algorithm.\n */\n\nexport function init(inRoot) {\n  var root = inRoot;\n  root.hierNode = {\n    defaultAncestor: null,\n    ancestor: root,\n    prelim: 0,\n    modifier: 0,\n    change: 0,\n    shift: 0,\n    i: 0,\n    thread: null\n  };\n  var nodes = [root];\n  var node;\n  var children;\n\n  while (node = nodes.pop()) {\n    // jshint ignore:line\n    children = node.children;\n\n    if (node.isExpand && children.length) {\n      var n = children.length;\n\n      for (var i = n - 1; i >= 0; i--) {\n        var child = children[i];\n        child.hierNode = {\n          defaultAncestor: null,\n          ancestor: child,\n          prelim: 0,\n          modifier: 0,\n          change: 0,\n          shift: 0,\n          i: i,\n          thread: null\n        };\n        nodes.push(child);\n      }\n    }\n  }\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * <https://github.com/d3/d3-hierarchy/blob/4c1f038f2725d6eae2e49b61d01456400694bac4/src/tree.js>\n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * Computes a preliminary x coordinate for node. Before that, this function is\n * applied recursively to the children of node, as well as the function\n * apportion(). After spacing out the children by calling executeShifts(), the\n * node is placed to the midpoint of its outermost children.\n */\n\nexport function firstWalk(node, separation) {\n  var children = node.isExpand ? node.children : [];\n  var siblings = node.parentNode.children;\n  var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null;\n\n  if (children.length) {\n    executeShifts(node);\n    var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2;\n\n    if (subtreeW) {\n      node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n      node.hierNode.modifier = node.hierNode.prelim - midPoint;\n    } else {\n      node.hierNode.prelim = midPoint;\n    }\n  } else if (subtreeW) {\n    node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n  }\n\n  node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation);\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * <https://github.com/d3/d3-hierarchy/blob/4c1f038f2725d6eae2e49b61d01456400694bac4/src/tree.js>\n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * Computes all real x-coordinates by summing up the modifiers recursively.\n */\n\nexport function secondWalk(node) {\n  var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier;\n  node.setLayout({\n    x: nodeX\n  }, true);\n  node.hierNode.modifier += node.parentNode.hierNode.modifier;\n}\nexport function separation(cb) {\n  return arguments.length ? cb : defaultSeparation;\n}\n/**\n * Transform the common coordinate to radial coordinate.\n */\n\nexport function radialCoordinate(rad, r) {\n  rad -= Math.PI / 2;\n  return {\n    x: r * Math.cos(rad),\n    y: r * Math.sin(rad)\n  };\n}\n/**\n * Get the layout position of the whole view.\n */\n\nexport function getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n/**\n * All other shifts, applied to the smaller subtrees between w- and w+, are\n * performed by this function.\n *\n * The implementation of this function was originally copied from \"d3.js\"\n * <https://github.com/d3/d3-hierarchy/blob/4c1f038f2725d6eae2e49b61d01456400694bac4/src/tree.js>\n * with some modifications made for this program.\n * See the license statement at the head of this file.\n */\n\nfunction executeShifts(node) {\n  var children = node.children;\n  var n = children.length;\n  var shift = 0;\n  var change = 0;\n\n  while (--n >= 0) {\n    var child = children[n];\n    child.hierNode.prelim += shift;\n    child.hierNode.modifier += shift;\n    change += child.hierNode.change;\n    shift += child.hierNode.shift + change;\n  }\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * <https://github.com/d3/d3-hierarchy/blob/4c1f038f2725d6eae2e49b61d01456400694bac4/src/tree.js>\n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * The core of the algorithm. Here, a new subtree is combined with the\n * previous subtrees. Threads are used to traverse the inside and outside\n * contours of the left and right subtree up to the highest common level.\n * Whenever two nodes of the inside contours conflict, we compute the left\n * one of the greatest uncommon ancestors using the function nextAncestor()\n * and call moveSubtree() to shift the subtree and prepare the shifts of\n * smaller subtrees. Finally, we add a new thread (if necessary).\n */\n\n\nfunction apportion(subtreeV, subtreeW, ancestor, separation) {\n  if (subtreeW) {\n    var nodeOutRight = subtreeV;\n    var nodeInRight = subtreeV;\n    var nodeOutLeft = nodeInRight.parentNode.children[0];\n    var nodeInLeft = subtreeW;\n    var sumOutRight = nodeOutRight.hierNode.modifier;\n    var sumInRight = nodeInRight.hierNode.modifier;\n    var sumOutLeft = nodeOutLeft.hierNode.modifier;\n    var sumInLeft = nodeInLeft.hierNode.modifier;\n\n    while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) {\n      nodeOutRight = nextRight(nodeOutRight);\n      nodeOutLeft = nextLeft(nodeOutLeft);\n      nodeOutRight.hierNode.ancestor = subtreeV;\n      var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim - sumInRight + separation(nodeInLeft, nodeInRight);\n\n      if (shift > 0) {\n        moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift);\n        sumInRight += shift;\n        sumOutRight += shift;\n      }\n\n      sumInLeft += nodeInLeft.hierNode.modifier;\n      sumInRight += nodeInRight.hierNode.modifier;\n      sumOutRight += nodeOutRight.hierNode.modifier;\n      sumOutLeft += nodeOutLeft.hierNode.modifier;\n    }\n\n    if (nodeInLeft && !nextRight(nodeOutRight)) {\n      nodeOutRight.hierNode.thread = nodeInLeft;\n      nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight;\n    }\n\n    if (nodeInRight && !nextLeft(nodeOutLeft)) {\n      nodeOutLeft.hierNode.thread = nodeInRight;\n      nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft;\n      ancestor = subtreeV;\n    }\n  }\n\n  return ancestor;\n}\n/**\n * This function is used to traverse the right contour of a subtree.\n * It returns the rightmost child of node or the thread of node. The function\n * returns null if and only if node is on the highest depth of its subtree.\n */\n\n\nfunction nextRight(node) {\n  var children = node.children;\n  return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread;\n}\n/**\n * This function is used to traverse the left contour of a subtree (or a subforest).\n * It returns the leftmost child of node or the thread of node. The function\n * returns null if and only if node is on the highest depth of its subtree.\n */\n\n\nfunction nextLeft(node) {\n  var children = node.children;\n  return children.length && node.isExpand ? children[0] : node.hierNode.thread;\n}\n/**\n * If nodeInLeft’s ancestor is a sibling of node, returns nodeInLeft’s ancestor.\n * Otherwise, returns the specified ancestor.\n */\n\n\nfunction nextAncestor(nodeInLeft, node, ancestor) {\n  return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode ? nodeInLeft.hierNode.ancestor : ancestor;\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * <https://github.com/d3/d3-hierarchy/blob/4c1f038f2725d6eae2e49b61d01456400694bac4/src/tree.js>\n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * Shifts the current subtree rooted at wr.\n * This is done by increasing prelim(w+) and modifier(w+) by shift.\n */\n\n\nfunction moveSubtree(wl, wr, shift) {\n  var change = shift / (wr.hierNode.i - wl.hierNode.i);\n  wr.hierNode.change -= change;\n  wr.hierNode.shift += shift;\n  wr.hierNode.modifier += shift;\n  wr.hierNode.prelim += shift;\n  wl.hierNode.change += change;\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * <https://github.com/d3/d3-hierarchy/blob/4c1f038f2725d6eae2e49b61d01456400694bac4/src/tree.js>\n * with some modifications made for this program.\n * See the license statement at the head of this file.\n */\n\n\nfunction defaultSeparation(node1, node2) {\n  return node1.parentNode === node2.parentNode ? 1 : 2;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport SymbolClz from '../helper/Symbol.js';\nimport { radialCoordinate } from './layoutHelper.js';\nimport * as bbox from 'zrender/lib/core/bbox.js';\nimport View from '../../coord/View.js';\nimport * as roamHelper from '../../component/helper/roamHelper.js';\nimport RoamController from '../../component/helper/RoamController.js';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper.js';\nimport { parsePercent } from '../../util/number.js';\nimport ChartView from '../../view/Chart.js';\nimport Path from 'zrender/lib/graphic/Path.js';\nimport { setStatesStylesFromModel, setStatesFlag, setDefaultStateProxy, HOVER_STATE_BLUR } from '../../util/states.js';\n\nvar TreeEdgeShape =\n/** @class */\nfunction () {\n  function TreeEdgeShape() {\n    this.parentPoint = [];\n    this.childPoints = [];\n  }\n\n  return TreeEdgeShape;\n}();\n\nvar TreePath =\n/** @class */\nfunction (_super) {\n  __extends(TreePath, _super);\n\n  function TreePath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  TreePath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  TreePath.prototype.getDefaultShape = function () {\n    return new TreeEdgeShape();\n  };\n\n  TreePath.prototype.buildPath = function (ctx, shape) {\n    var childPoints = shape.childPoints;\n    var childLen = childPoints.length;\n    var parentPoint = shape.parentPoint;\n    var firstChildPos = childPoints[0];\n    var lastChildPos = childPoints[childLen - 1];\n\n    if (childLen === 1) {\n      ctx.moveTo(parentPoint[0], parentPoint[1]);\n      ctx.lineTo(firstChildPos[0], firstChildPos[1]);\n      return;\n    }\n\n    var orient = shape.orient;\n    var forkDim = orient === 'TB' || orient === 'BT' ? 0 : 1;\n    var otherDim = 1 - forkDim;\n    var forkPosition = parsePercent(shape.forkPosition, 1);\n    var tmpPoint = [];\n    tmpPoint[forkDim] = parentPoint[forkDim];\n    tmpPoint[otherDim] = parentPoint[otherDim] + (lastChildPos[otherDim] - parentPoint[otherDim]) * forkPosition;\n    ctx.moveTo(parentPoint[0], parentPoint[1]);\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    ctx.moveTo(firstChildPos[0], firstChildPos[1]);\n    tmpPoint[forkDim] = firstChildPos[forkDim];\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    tmpPoint[forkDim] = lastChildPos[forkDim];\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    ctx.lineTo(lastChildPos[0], lastChildPos[1]);\n\n    for (var i = 1; i < childLen - 1; i++) {\n      var point = childPoints[i];\n      ctx.moveTo(point[0], point[1]);\n      tmpPoint[forkDim] = point[forkDim];\n      ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    }\n  };\n\n  return TreePath;\n}(Path);\n\nvar TreeView =\n/** @class */\nfunction (_super) {\n  __extends(TreeView, _super);\n\n  function TreeView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreeView.type;\n    _this._mainGroup = new graphic.Group();\n    return _this;\n  }\n\n  TreeView.prototype.init = function (ecModel, api) {\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: this.group\n    };\n    this.group.add(this._mainGroup);\n  };\n\n  TreeView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var layoutInfo = seriesModel.layoutInfo;\n    var group = this._mainGroup;\n    var layout = seriesModel.get('layout');\n\n    if (layout === 'radial') {\n      group.x = layoutInfo.x + layoutInfo.width / 2;\n      group.y = layoutInfo.y + layoutInfo.height / 2;\n    } else {\n      group.x = layoutInfo.x;\n      group.y = layoutInfo.y;\n    }\n\n    this._updateViewCoordSys(seriesModel, api);\n\n    this._updateController(seriesModel, ecModel, api);\n\n    var oldData = this._data;\n    data.diff(oldData).add(function (newIdx) {\n      if (symbolNeedsDraw(data, newIdx)) {\n        // Create node and edge\n        updateNode(data, newIdx, null, group, seriesModel);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (!symbolNeedsDraw(data, newIdx)) {\n        symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n        return;\n      } // Update node and edge\n\n\n      updateNode(data, newIdx, symbolEl, group, seriesModel);\n    }).remove(function (oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx); // When remove a collapsed node of subtree, since the collapsed\n      // node haven't been initialized with a symbol element,\n      // you can't found it's symbol element through index.\n      // so if we want to remove the symbol element we should insure\n      // that the symbol element is not null.\n\n      if (symbolEl) {\n        removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n      }\n    }).execute();\n    this._nodeScaleRatio = seriesModel.get('nodeScaleRatio');\n\n    this._updateNodeAndLinkScale(seriesModel);\n\n    if (seriesModel.get('expandAndCollapse') === true) {\n      data.eachItemGraphicEl(function (el, dataIndex) {\n        el.off('click').on('click', function () {\n          api.dispatchAction({\n            type: 'treeExpandAndCollapse',\n            seriesId: seriesModel.id,\n            dataIndex: dataIndex\n          });\n        });\n      });\n    }\n\n    this._data = data;\n  };\n\n  TreeView.prototype._updateViewCoordSys = function (seriesModel, api) {\n    var data = seriesModel.getData();\n    var points = [];\n    data.each(function (idx) {\n      var layout = data.getItemLayout(idx);\n\n      if (layout && !isNaN(layout.x) && !isNaN(layout.y)) {\n        points.push([+layout.x, +layout.y]);\n      }\n    });\n    var min = [];\n    var max = [];\n    bbox.fromPoints(points, min, max); // If don't Store min max when collapse the root node after roam,\n    // the root node will disappear.\n\n    var oldMin = this._min;\n    var oldMax = this._max; // If width or height is 0\n\n    if (max[0] - min[0] === 0) {\n      min[0] = oldMin ? oldMin[0] : min[0] - 1;\n      max[0] = oldMax ? oldMax[0] : max[0] + 1;\n    }\n\n    if (max[1] - min[1] === 0) {\n      min[1] = oldMin ? oldMin[1] : min[1] - 1;\n      max[1] = oldMax ? oldMax[1] : max[1] + 1;\n    }\n\n    var viewCoordSys = seriesModel.coordinateSystem = new View();\n    viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n    viewCoordSys.setBoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n    viewCoordSys.setCenter(seriesModel.get('center'), api);\n    viewCoordSys.setZoom(seriesModel.get('zoom')); // Here we use viewCoordSys just for computing the 'position' and 'scale' of the group\n\n    this.group.attr({\n      x: viewCoordSys.x,\n      y: viewCoordSys.y,\n      scaleX: viewCoordSys.scaleX,\n      scaleY: viewCoordSys.scaleY\n    });\n    this._min = min;\n    this._max = max;\n  };\n\n  TreeView.prototype._updateController = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    var group = this.group;\n    controller.setPointerChecker(function (e, x, y) {\n      var rect = group.getBoundingRect();\n      rect.applyTransform(group.transform);\n      return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n    });\n    controller.enable(seriesModel.get('roam'));\n    controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n    controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n    controller.off('pan').off('zoom').on('pan', function (e) {\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'treeRoam',\n        dx: e.dx,\n        dy: e.dy\n      });\n    }).on('zoom', function (e) {\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'treeRoam',\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      });\n\n      _this._updateNodeAndLinkScale(seriesModel); // Only update label layout on zoom\n\n\n      api.updateLabelLayout();\n    });\n  };\n\n  TreeView.prototype._updateNodeAndLinkScale = function (seriesModel) {\n    var data = seriesModel.getData();\n\n    var nodeScale = this._getNodeGlobalScale(seriesModel);\n\n    data.eachItemGraphicEl(function (el, idx) {\n      el.setSymbolScale(nodeScale);\n    });\n  };\n\n  TreeView.prototype._getNodeGlobalScale = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys.type !== 'view') {\n      return 1;\n    }\n\n    var nodeScaleRatio = this._nodeScaleRatio;\n    var groupZoom = coordSys.scaleX || 1; // Scale node when zoom changes\n\n    var roamZoom = coordSys.getZoom();\n    var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n    return nodeScale / groupZoom;\n  };\n\n  TreeView.prototype.dispose = function () {\n    this._controller && this._controller.dispose();\n    this._controllerHost = null;\n  };\n\n  TreeView.prototype.remove = function () {\n    this._mainGroup.removeAll();\n\n    this._data = null;\n  };\n\n  TreeView.type = 'tree';\n  return TreeView;\n}(ChartView);\n\nfunction symbolNeedsDraw(data, dataIndex) {\n  var layout = data.getItemLayout(dataIndex);\n  return layout && !isNaN(layout.x) && !isNaN(layout.y);\n}\n\nfunction updateNode(data, dataIndex, symbolEl, group, seriesModel) {\n  var isInit = !symbolEl;\n  var node = data.tree.getNodeByDataIndex(dataIndex);\n  var itemModel = node.getModel();\n  var visualColor = node.getVisual('style').fill;\n  var symbolInnerColor = node.isExpand === false && node.children.length !== 0 ? visualColor : '#fff';\n  var virtualRoot = data.tree.root;\n  var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n  var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n  var sourceLayout = source.getLayout();\n  var sourceOldLayout = sourceSymbolEl ? {\n    x: sourceSymbolEl.__oldX,\n    y: sourceSymbolEl.__oldY,\n    rawX: sourceSymbolEl.__radialOldRawX,\n    rawY: sourceSymbolEl.__radialOldRawY\n  } : sourceLayout;\n  var targetLayout = node.getLayout();\n\n  if (isInit) {\n    symbolEl = new SymbolClz(data, dataIndex, null, {\n      symbolInnerColor: symbolInnerColor,\n      useNameLabel: true\n    });\n    symbolEl.x = sourceOldLayout.x;\n    symbolEl.y = sourceOldLayout.y;\n  } else {\n    symbolEl.updateData(data, dataIndex, null, {\n      symbolInnerColor: symbolInnerColor,\n      useNameLabel: true\n    });\n  }\n\n  symbolEl.__radialOldRawX = symbolEl.__radialRawX;\n  symbolEl.__radialOldRawY = symbolEl.__radialRawY;\n  symbolEl.__radialRawX = targetLayout.rawX;\n  symbolEl.__radialRawY = targetLayout.rawY;\n  group.add(symbolEl);\n  data.setItemGraphicEl(dataIndex, symbolEl);\n  symbolEl.__oldX = symbolEl.x;\n  symbolEl.__oldY = symbolEl.y;\n  graphic.updateProps(symbolEl, {\n    x: targetLayout.x,\n    y: targetLayout.y\n  }, seriesModel);\n  var symbolPath = symbolEl.getSymbolPath();\n\n  if (seriesModel.get('layout') === 'radial') {\n    var realRoot = virtualRoot.children[0];\n    var rootLayout = realRoot.getLayout();\n    var length_1 = realRoot.children.length;\n    var rad = void 0;\n    var isLeft = void 0;\n\n    if (targetLayout.x === rootLayout.x && node.isExpand === true && realRoot.children.length) {\n      var center = {\n        x: (realRoot.children[0].getLayout().x + realRoot.children[length_1 - 1].getLayout().x) / 2,\n        y: (realRoot.children[0].getLayout().y + realRoot.children[length_1 - 1].getLayout().y) / 2\n      };\n      rad = Math.atan2(center.y - rootLayout.y, center.x - rootLayout.x);\n\n      if (rad < 0) {\n        rad = Math.PI * 2 + rad;\n      }\n\n      isLeft = center.x < rootLayout.x;\n\n      if (isLeft) {\n        rad = rad - Math.PI;\n      }\n    } else {\n      rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x);\n\n      if (rad < 0) {\n        rad = Math.PI * 2 + rad;\n      }\n\n      if (node.children.length === 0 || node.children.length !== 0 && node.isExpand === false) {\n        isLeft = targetLayout.x < rootLayout.x;\n\n        if (isLeft) {\n          rad = rad - Math.PI;\n        }\n      } else {\n        isLeft = targetLayout.x > rootLayout.x;\n\n        if (!isLeft) {\n          rad = rad - Math.PI;\n        }\n      }\n    }\n\n    var textPosition = isLeft ? 'left' : 'right';\n    var normalLabelModel = itemModel.getModel('label');\n    var rotate = normalLabelModel.get('rotate');\n    var labelRotateRadian = rotate * (Math.PI / 180);\n    var textContent = symbolPath.getTextContent();\n\n    if (textContent) {\n      symbolPath.setTextConfig({\n        position: normalLabelModel.get('position') || textPosition,\n        rotation: rotate == null ? -rad : labelRotateRadian,\n        origin: 'center'\n      });\n      textContent.setStyle('verticalAlign', 'middle');\n    }\n  } // Handle status\n\n\n  var focus = itemModel.get(['emphasis', 'focus']);\n  var focusDataIndices = focus === 'relative' ? zrUtil.concatArray(node.getAncestorsIndices(), node.getDescendantIndices()) : focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : null;\n\n  if (focusDataIndices) {\n    // Modify the focus to data indices.\n    getECData(symbolEl).focus = focusDataIndices;\n  }\n\n  drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group);\n\n  if (symbolEl.__edge) {\n    symbolEl.onHoverStateChange = function (toState) {\n      if (toState !== 'blur') {\n        // NOTE: Ensure the parent elements will been blurred firstly.\n        // According to the return of getAncestorsIndices and getDescendantIndices\n        // TODO: A bit tricky.\n        var parentEl = node.parentNode && data.getItemGraphicEl(node.parentNode.dataIndex);\n\n        if (!(parentEl && parentEl.hoverState === HOVER_STATE_BLUR)) {\n          setStatesFlag(symbolEl.__edge, toState);\n        }\n      }\n    };\n  }\n}\n\nfunction drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group) {\n  var itemModel = node.getModel();\n  var edgeShape = seriesModel.get('edgeShape');\n  var layout = seriesModel.get('layout');\n  var orient = seriesModel.getOrient();\n  var curvature = seriesModel.get(['lineStyle', 'curveness']);\n  var edgeForkPosition = seriesModel.get('edgeForkPosition');\n  var lineStyle = itemModel.getModel('lineStyle').getLineStyle();\n  var edge = symbolEl.__edge; // curve edge from node -> parent\n  // polyline edge from node -> children\n\n  if (edgeShape === 'curve') {\n    if (node.parentNode && node.parentNode !== virtualRoot) {\n      if (!edge) {\n        edge = symbolEl.__edge = new graphic.BezierCurve({\n          shape: getEdgeShape(layout, orient, curvature, sourceOldLayout, sourceOldLayout)\n        });\n      }\n\n      graphic.updateProps(edge, {\n        shape: getEdgeShape(layout, orient, curvature, sourceLayout, targetLayout)\n      }, seriesModel);\n    }\n  } else if (edgeShape === 'polyline') {\n    if (layout === 'orthogonal') {\n      if (node !== virtualRoot && node.children && node.children.length !== 0 && node.isExpand === true) {\n        var children = node.children;\n        var childPoints = [];\n\n        for (var i = 0; i < children.length; i++) {\n          var childLayout = children[i].getLayout();\n          childPoints.push([childLayout.x, childLayout.y]);\n        }\n\n        if (!edge) {\n          edge = symbolEl.__edge = new TreePath({\n            shape: {\n              parentPoint: [targetLayout.x, targetLayout.y],\n              childPoints: [[targetLayout.x, targetLayout.y]],\n              orient: orient,\n              forkPosition: edgeForkPosition\n            }\n          });\n        }\n\n        graphic.updateProps(edge, {\n          shape: {\n            parentPoint: [targetLayout.x, targetLayout.y],\n            childPoints: childPoints\n          }\n        }, seriesModel);\n      }\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        throw new Error('The polyline edgeShape can only be used in orthogonal layout');\n      }\n    }\n  } // show all edge when edgeShape is 'curve', filter node `isExpand` is false when edgeShape is 'polyline'\n\n\n  if (edge && !(edgeShape === 'polyline' && !node.isExpand)) {\n    edge.useStyle(zrUtil.defaults({\n      strokeNoScale: true,\n      fill: null\n    }, lineStyle));\n    setStatesStylesFromModel(edge, itemModel, 'lineStyle');\n    setDefaultStateProxy(edge);\n    group.add(edge);\n  }\n}\n\nfunction removeNodeEdge(node, data, group, seriesModel, removeAnimationOpt) {\n  var virtualRoot = data.tree.root;\n\n  var _a = getSourceNode(virtualRoot, node),\n      source = _a.source,\n      sourceLayout = _a.sourceLayout;\n\n  var symbolEl = data.getItemGraphicEl(node.dataIndex);\n\n  if (!symbolEl) {\n    return;\n  }\n\n  var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n  var sourceEdge = sourceSymbolEl.__edge; // 1. when expand the sub tree, delete the children node should delete the edge of\n  // the source at the same time. because the polyline edge shape is only owned by the source.\n  // 2.when the node is the only children of the source, delete the node should delete the edge of\n  // the source at the same time. the same reason as above.\n\n  var edge = symbolEl.__edge || (source.isExpand === false || source.children.length === 1 ? sourceEdge : undefined);\n  var edgeShape = seriesModel.get('edgeShape');\n  var layoutOpt = seriesModel.get('layout');\n  var orient = seriesModel.get('orient');\n  var curvature = seriesModel.get(['lineStyle', 'curveness']);\n\n  if (edge) {\n    if (edgeShape === 'curve') {\n      graphic.removeElement(edge, {\n        shape: getEdgeShape(layoutOpt, orient, curvature, sourceLayout, sourceLayout),\n        style: {\n          opacity: 0\n        }\n      }, seriesModel, {\n        cb: function () {\n          group.remove(edge);\n        },\n        removeOpt: removeAnimationOpt\n      });\n    } else if (edgeShape === 'polyline' && seriesModel.get('layout') === 'orthogonal') {\n      graphic.removeElement(edge, {\n        shape: {\n          parentPoint: [sourceLayout.x, sourceLayout.y],\n          childPoints: [[sourceLayout.x, sourceLayout.y]]\n        },\n        style: {\n          opacity: 0\n        }\n      }, seriesModel, {\n        cb: function () {\n          group.remove(edge);\n        },\n        removeOpt: removeAnimationOpt\n      });\n    }\n  }\n}\n\nfunction getSourceNode(virtualRoot, node) {\n  var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n  var sourceLayout;\n\n  while (sourceLayout = source.getLayout(), sourceLayout == null) {\n    source = source.parentNode === virtualRoot ? source : source.parentNode || source;\n  }\n\n  return {\n    source: source,\n    sourceLayout: sourceLayout\n  };\n}\n\nfunction removeNode(data, dataIndex, symbolEl, group, seriesModel) {\n  var node = data.tree.getNodeByDataIndex(dataIndex);\n  var virtualRoot = data.tree.root;\n  var sourceLayout = getSourceNode(virtualRoot, node).sourceLayout; // Use same duration and easing with update to have more consistent animation.\n\n  var removeAnimationOpt = {\n    duration: seriesModel.get('animationDurationUpdate'),\n    easing: seriesModel.get('animationEasingUpdate')\n  };\n  graphic.removeElement(symbolEl, {\n    x: sourceLayout.x + 1,\n    y: sourceLayout.y + 1\n  }, seriesModel, {\n    cb: function () {\n      group.remove(symbolEl);\n      data.setItemGraphicEl(dataIndex, null);\n    },\n    removeOpt: removeAnimationOpt\n  });\n  symbolEl.fadeOut(null, data.hostModel, {\n    fadeLabel: true,\n    animation: removeAnimationOpt\n  }); // remove edge as parent node\n\n  node.children.forEach(function (childNode) {\n    removeNodeEdge(childNode, data, group, seriesModel, removeAnimationOpt);\n  }); // remove edge as child node\n\n  removeNodeEdge(node, data, group, seriesModel, removeAnimationOpt);\n}\n\nfunction getEdgeShape(layoutOpt, orient, curvature, sourceLayout, targetLayout) {\n  var cpx1;\n  var cpy1;\n  var cpx2;\n  var cpy2;\n  var x1;\n  var x2;\n  var y1;\n  var y2;\n\n  if (layoutOpt === 'radial') {\n    x1 = sourceLayout.rawX;\n    y1 = sourceLayout.rawY;\n    x2 = targetLayout.rawX;\n    y2 = targetLayout.rawY;\n    var radialCoor1 = radialCoordinate(x1, y1);\n    var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * curvature);\n    var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * curvature);\n    var radialCoor4 = radialCoordinate(x2, y2);\n    return {\n      x1: radialCoor1.x || 0,\n      y1: radialCoor1.y || 0,\n      x2: radialCoor4.x || 0,\n      y2: radialCoor4.y || 0,\n      cpx1: radialCoor2.x || 0,\n      cpy1: radialCoor2.y || 0,\n      cpx2: radialCoor3.x || 0,\n      cpy2: radialCoor3.y || 0\n    };\n  } else {\n    x1 = sourceLayout.x;\n    y1 = sourceLayout.y;\n    x2 = targetLayout.x;\n    y2 = targetLayout.y;\n\n    if (orient === 'LR' || orient === 'RL') {\n      cpx1 = x1 + (x2 - x1) * curvature;\n      cpy1 = y1;\n      cpx2 = x2 + (x1 - x2) * curvature;\n      cpy2 = y2;\n    }\n\n    if (orient === 'TB' || orient === 'BT') {\n      cpx1 = x1;\n      cpy1 = y1 + (y2 - y1) * curvature;\n      cpx2 = x2;\n      cpy2 = y2 + (y1 - y2) * curvature;\n    }\n  }\n\n  return {\n    x1: x1,\n    y1: y1,\n    x2: x2,\n    y2: y2,\n    cpx1: cpx1,\n    cpy1: cpy1,\n    cpx2: cpx2,\n    cpy2: cpy2\n  };\n}\n\nexport default TreeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Link lists and struct (graph or tree)\n */\nimport { curry, each, assert, extend, map, keys } from 'zrender/lib/core/util.js';\nimport { makeInner } from '../../util/model.js';\nvar inner = makeInner();\n\nfunction linkSeriesData(opt) {\n  var mainData = opt.mainData;\n  var datas = opt.datas;\n\n  if (!datas) {\n    datas = {\n      main: mainData\n    };\n    opt.datasAttr = {\n      main: 'data'\n    };\n  }\n\n  opt.datas = opt.mainData = null;\n  linkAll(mainData, datas, opt); // Porxy data original methods.\n\n  each(datas, function (data) {\n    each(mainData.TRANSFERABLE_METHODS, function (methodName) {\n      data.wrapMethod(methodName, curry(transferInjection, opt));\n    });\n  }); // Beyond transfer, additional features should be added to `cloneShallow`.\n\n  mainData.wrapMethod('cloneShallow', curry(cloneShallowInjection, opt)); // Only mainData trigger change, because struct.update may trigger\n  // another changable methods, which may bring about dead lock.\n\n  each(mainData.CHANGABLE_METHODS, function (methodName) {\n    mainData.wrapMethod(methodName, curry(changeInjection, opt));\n  }); // Make sure datas contains mainData.\n\n  assert(datas[mainData.dataType] === mainData);\n}\n\nfunction transferInjection(opt, res) {\n  if (isMainData(this)) {\n    // Transfer datas to new main data.\n    var datas = extend({}, inner(this).datas);\n    datas[this.dataType] = res;\n    linkAll(res, datas, opt);\n  } else {\n    // Modify the reference in main data to point newData.\n    linkSingle(res, this.dataType, inner(this).mainData, opt);\n  }\n\n  return res;\n}\n\nfunction changeInjection(opt, res) {\n  opt.struct && opt.struct.update();\n  return res;\n}\n\nfunction cloneShallowInjection(opt, res) {\n  // cloneShallow, which brings about some fragilities, may be inappropriate\n  // to be exposed as an API. So for implementation simplicity we can make\n  // the restriction that cloneShallow of not-mainData should not be invoked\n  // outside, but only be invoked here.\n  each(inner(res).datas, function (data, dataType) {\n    data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\n  });\n  return res;\n}\n/**\n * Supplement method to List.\n *\n * @public\n * @param [dataType] If not specified, return mainData.\n */\n\n\nfunction getLinkedData(dataType) {\n  var mainData = inner(this).mainData;\n  return dataType == null || mainData == null ? mainData : inner(mainData).datas[dataType];\n}\n/**\n * Get list of all linked data\n */\n\n\nfunction getLinkedDataAll() {\n  var mainData = inner(this).mainData;\n  return mainData == null ? [{\n    data: mainData\n  }] : map(keys(inner(mainData).datas), function (type) {\n    return {\n      type: type,\n      data: inner(mainData).datas[type]\n    };\n  });\n}\n\nfunction isMainData(data) {\n  return inner(data).mainData === data;\n}\n\nfunction linkAll(mainData, datas, opt) {\n  inner(mainData).datas = {};\n  each(datas, function (data, dataType) {\n    linkSingle(data, dataType, mainData, opt);\n  });\n}\n\nfunction linkSingle(data, dataType, mainData, opt) {\n  inner(mainData).datas[dataType] = data;\n  inner(data).mainData = mainData;\n  data.dataType = dataType;\n\n  if (opt.struct) {\n    data[opt.structAttr] = opt.struct;\n    opt.struct[opt.datasAttr[dataType]] = data;\n  } // Supplement method.\n\n\n  data.getLinkedData = getLinkedData;\n  data.getLinkedDataAll = getLinkedDataAll;\n}\n\nexport default linkSeriesData;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Tree data structure\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport linkSeriesData from './helper/linkSeriesData.js';\nimport SeriesData from './SeriesData.js';\nimport prepareSeriesDataSchema from './helper/createDimensions.js';\nimport { convertOptionIdName } from '../util/model.js';\n\nvar TreeNode =\n/** @class */\nfunction () {\n  function TreeNode(name, hostTree) {\n    this.depth = 0;\n    this.height = 0;\n    /**\n     * Reference to list item.\n     * Do not persistent dataIndex outside,\n     * besause it may be changed by list.\n     * If dataIndex -1,\n     * this node is logical deleted (filtered) in list.\n     */\n\n    this.dataIndex = -1;\n    this.children = [];\n    this.viewChildren = [];\n    this.isExpand = false;\n    this.name = name || '';\n    this.hostTree = hostTree;\n  }\n  /**\n   * The node is removed.\n   */\n\n\n  TreeNode.prototype.isRemoved = function () {\n    return this.dataIndex < 0;\n  };\n\n  TreeNode.prototype.eachNode = function (options, cb, context) {\n    if (zrUtil.isFunction(options)) {\n      context = cb;\n      cb = options;\n      options = null;\n    }\n\n    options = options || {};\n\n    if (zrUtil.isString(options)) {\n      options = {\n        order: options\n      };\n    }\n\n    var order = options.order || 'preorder';\n    var children = this[options.attr || 'children'];\n    var suppressVisitSub;\n    order === 'preorder' && (suppressVisitSub = cb.call(context, this));\n\n    for (var i = 0; !suppressVisitSub && i < children.length; i++) {\n      children[i].eachNode(options, cb, context);\n    }\n\n    order === 'postorder' && cb.call(context, this);\n  };\n  /**\n   * Update depth and height of this subtree.\n   */\n\n\n  TreeNode.prototype.updateDepthAndHeight = function (depth) {\n    var height = 0;\n    this.depth = depth;\n\n    for (var i = 0; i < this.children.length; i++) {\n      var child = this.children[i];\n      child.updateDepthAndHeight(depth + 1);\n\n      if (child.height > height) {\n        height = child.height;\n      }\n    }\n\n    this.height = height + 1;\n  };\n\n  TreeNode.prototype.getNodeById = function (id) {\n    if (this.getId() === id) {\n      return this;\n    }\n\n    for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n      var res = children[i].getNodeById(id);\n\n      if (res) {\n        return res;\n      }\n    }\n  };\n\n  TreeNode.prototype.contains = function (node) {\n    if (node === this) {\n      return true;\n    }\n\n    for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n      var res = children[i].contains(node);\n\n      if (res) {\n        return res;\n      }\n    }\n  };\n  /**\n   * @param includeSelf Default false.\n   * @return order: [root, child, grandchild, ...]\n   */\n\n\n  TreeNode.prototype.getAncestors = function (includeSelf) {\n    var ancestors = [];\n    var node = includeSelf ? this : this.parentNode;\n\n    while (node) {\n      ancestors.push(node);\n      node = node.parentNode;\n    }\n\n    ancestors.reverse();\n    return ancestors;\n  };\n\n  TreeNode.prototype.getAncestorsIndices = function () {\n    var indices = [];\n    var currNode = this;\n\n    while (currNode) {\n      indices.push(currNode.dataIndex);\n      currNode = currNode.parentNode;\n    }\n\n    indices.reverse();\n    return indices;\n  };\n\n  TreeNode.prototype.getDescendantIndices = function () {\n    var indices = [];\n    this.eachNode(function (childNode) {\n      indices.push(childNode.dataIndex);\n    });\n    return indices;\n  };\n\n  TreeNode.prototype.getValue = function (dimension) {\n    var data = this.hostTree.data;\n    return data.getStore().get(data.getDimensionIndex(dimension || 'value'), this.dataIndex);\n  };\n\n  TreeNode.prototype.setLayout = function (layout, merge) {\n    this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\n  };\n  /**\n   * @return {Object} layout\n   */\n\n\n  TreeNode.prototype.getLayout = function () {\n    return this.hostTree.data.getItemLayout(this.dataIndex);\n  }; // @depcrecated\n  // getModel<T = unknown, S extends keyof T = keyof T>(path: S): Model<T[S]>\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n  TreeNode.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var hostTree = this.hostTree;\n    var itemModel = hostTree.data.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  }; // TODO: TYPE More specific model\n\n\n  TreeNode.prototype.getLevelModel = function () {\n    return (this.hostTree.levelModels || [])[this.depth];\n  };\n\n  TreeNode.prototype.setVisual = function (key, value) {\n    this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\n  };\n  /**\n   * Get item visual\n   * FIXME: make return type better\n   */\n\n\n  TreeNode.prototype.getVisual = function (key) {\n    return this.hostTree.data.getItemVisual(this.dataIndex, key);\n  };\n\n  TreeNode.prototype.getRawIndex = function () {\n    return this.hostTree.data.getRawIndex(this.dataIndex);\n  };\n\n  TreeNode.prototype.getId = function () {\n    return this.hostTree.data.getId(this.dataIndex);\n  };\n  /**\n   * index in parent's children\n   */\n\n\n  TreeNode.prototype.getChildIndex = function () {\n    if (this.parentNode) {\n      var children = this.parentNode.children;\n\n      for (var i = 0; i < children.length; ++i) {\n        if (children[i] === this) {\n          return i;\n        }\n      }\n\n      return -1;\n    }\n\n    return -1;\n  };\n  /**\n   * if this is an ancestor of another node\n   *\n   * @param node another node\n   * @return if is ancestor\n   */\n\n\n  TreeNode.prototype.isAncestorOf = function (node) {\n    var parent = node.parentNode;\n\n    while (parent) {\n      if (parent === this) {\n        return true;\n      }\n\n      parent = parent.parentNode;\n    }\n\n    return false;\n  };\n  /**\n   * if this is an descendant of another node\n   *\n   * @param node another node\n   * @return if is descendant\n   */\n\n\n  TreeNode.prototype.isDescendantOf = function (node) {\n    return node !== this && node.isAncestorOf(this);\n  };\n\n  return TreeNode;\n}();\n\nexport { TreeNode };\n;\n\nvar Tree =\n/** @class */\nfunction () {\n  function Tree(hostModel) {\n    this.type = 'tree';\n    this._nodes = [];\n    this.hostModel = hostModel;\n  }\n\n  Tree.prototype.eachNode = function (options, cb, context) {\n    this.root.eachNode(options, cb, context);\n  };\n\n  Tree.prototype.getNodeByDataIndex = function (dataIndex) {\n    var rawIndex = this.data.getRawIndex(dataIndex);\n    return this._nodes[rawIndex];\n  };\n\n  Tree.prototype.getNodeById = function (name) {\n    return this.root.getNodeById(name);\n  };\n  /**\n   * Update item available by list,\n   * when list has been performed options like 'filterSelf' or 'map'.\n   */\n\n\n  Tree.prototype.update = function () {\n    var data = this.data;\n    var nodes = this._nodes;\n\n    for (var i = 0, len = nodes.length; i < len; i++) {\n      nodes[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      nodes[data.getRawIndex(i)].dataIndex = i;\n    }\n  };\n  /**\n   * Clear all layouts\n   */\n\n\n  Tree.prototype.clearLayouts = function () {\n    this.data.clearItemLayouts();\n  };\n  /**\n   * data node format:\n   * {\n   *     name: ...\n   *     value: ...\n   *     children: [\n   *         {\n   *             name: ...\n   *             value: ...\n   *             children: ...\n   *         },\n   *         ...\n   *     ]\n   * }\n   */\n\n\n  Tree.createTree = function (dataRoot, hostModel, beforeLink) {\n    var tree = new Tree(hostModel);\n    var listData = [];\n    var dimMax = 1;\n    buildHierarchy(dataRoot);\n\n    function buildHierarchy(dataNode, parentNode) {\n      var value = dataNode.value;\n      dimMax = Math.max(dimMax, zrUtil.isArray(value) ? value.length : 1);\n      listData.push(dataNode);\n      var node = new TreeNode(convertOptionIdName(dataNode.name, ''), tree);\n      parentNode ? addChild(node, parentNode) : tree.root = node;\n\n      tree._nodes.push(node);\n\n      var children = dataNode.children;\n\n      if (children) {\n        for (var i = 0; i < children.length; i++) {\n          buildHierarchy(children[i], node);\n        }\n      }\n    }\n\n    tree.root.updateDepthAndHeight(0);\n    var dimensions = prepareSeriesDataSchema(listData, {\n      coordDimensions: ['value'],\n      dimensionsCount: dimMax\n    }).dimensions;\n    var list = new SeriesData(dimensions, hostModel);\n    list.initData(listData);\n    beforeLink && beforeLink(list);\n    linkSeriesData({\n      mainData: list,\n      struct: tree,\n      structAttr: 'tree'\n    });\n    tree.update();\n    return tree;\n  };\n\n  return Tree;\n}();\n/**\n * It is needed to consider the mess of 'list', 'hostModel' when creating a TreeNote,\n * so this function is not ready and not necessary to be public.\n */\n\n\nfunction addChild(child, node) {\n  var children = node.children;\n\n  if (child.parentNode === node) {\n    return;\n  }\n\n  children.push(child);\n  child.parentNode = node;\n}\n\nexport default Tree;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport function retrieveTargetInfo(payload, validPayloadTypes, seriesModel) {\n  if (payload && zrUtil.indexOf(validPayloadTypes, payload.type) >= 0) {\n    var root = seriesModel.getData().tree.root;\n    var targetNode = payload.targetNode;\n\n    if (zrUtil.isString(targetNode)) {\n      targetNode = root.getNodeById(targetNode);\n    }\n\n    if (targetNode && root.contains(targetNode)) {\n      return {\n        node: targetNode\n      };\n    }\n\n    var targetNodeId = payload.targetNodeId;\n\n    if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) {\n      return {\n        node: targetNode\n      };\n    }\n  }\n} // Not includes the given node at the last item.\n\nexport function getPathToRoot(node) {\n  var path = [];\n\n  while (node) {\n    node = node.parentNode;\n    node && path.push(node);\n  }\n\n  return path.reverse();\n}\nexport function aboveViewRoot(viewRoot, node) {\n  var viewPath = getPathToRoot(viewRoot);\n  return zrUtil.indexOf(viewPath, node) >= 0;\n} // From root to the input node (the input node will be included).\n\nexport function wrapTreePathInfo(node, seriesModel) {\n  var treePathInfo = [];\n\n  while (node) {\n    var nodeDataIndex = node.dataIndex;\n    treePathInfo.push({\n      name: node.name,\n      dataIndex: nodeDataIndex,\n      value: seriesModel.getRawValue(nodeDataIndex)\n    });\n    node = node.parentNode;\n  }\n\n  treePathInfo.reverse();\n  return treePathInfo;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport Tree from '../../data/Tree.js';\nimport Model from '../../model/Model.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\nimport { wrapTreePathInfo } from '../helper/treeHelper.js';\n\nvar TreeSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(TreeSeriesModel, _super);\n\n  function TreeSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.hasSymbolVisual = true; // Do it self.\n\n    _this.ignoreStyleOnData = true;\n    return _this;\n  }\n  /**\n   * Init a tree data structure from data in option series\n   */\n\n\n  TreeSeriesModel.prototype.getInitialData = function (option) {\n    //create an virtual root\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    var leaves = option.leaves || {};\n    var leavesModel = new Model(leaves, this, this.ecModel);\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n\n        if (!(node && node.children.length && node.isExpand)) {\n          model.parentModel = leavesModel;\n        }\n\n        return model;\n      });\n    }\n\n    var treeDepth = 0;\n    tree.eachNode('preorder', function (node) {\n      if (node.depth > treeDepth) {\n        treeDepth = node.depth;\n      }\n    });\n    var expandAndCollapse = option.expandAndCollapse;\n    var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth;\n    tree.root.eachNode('preorder', function (node) {\n      var item = node.hostTree.data.getRawDataItem(node.dataIndex); // Add item.collapsed != null, because users can collapse node original in the series.data.\n\n      node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;\n    });\n    return tree.data;\n  };\n  /**\n   * Make the configuration 'orient' backward compatibly, with 'horizontal = LR', 'vertical = TB'.\n   * @returns {string} orient\n   */\n\n\n  TreeSeriesModel.prototype.getOrient = function () {\n    var orient = this.get('orient');\n\n    if (orient === 'horizontal') {\n      orient = 'LR';\n    } else if (orient === 'vertical') {\n      orient = 'TB';\n    }\n\n    return orient;\n  };\n\n  TreeSeriesModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  TreeSeriesModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  TreeSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var tree = this.getData().tree;\n    var realRoot = tree.root.children[0];\n    var node = tree.getNodeByDataIndex(dataIndex);\n    var value = node.getValue();\n    var name = node.name;\n\n    while (node && node !== realRoot) {\n      name = node.parentNode.name + '.' + name;\n      node = node.parentNode;\n    }\n\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value,\n      noValue: isNaN(value) || value == null\n    });\n  }; // Add tree path to tooltip param\n\n\n  TreeSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var params = _super.prototype.getDataParams.apply(this, arguments);\n\n    var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n    params.treeAncestors = wrapTreePathInfo(node, this);\n    params.collapsed = !node.isExpand;\n    return params;\n  };\n\n  TreeSeriesModel.type = 'series.tree'; // can support the position parameters 'left', 'top','right','bottom', 'width',\n  // 'height' in the setOption() with 'merge' mode normal.\n\n  TreeSeriesModel.layoutMode = 'box';\n  TreeSeriesModel.defaultOption = {\n    // zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    // the position of the whole view\n    left: '12%',\n    top: '12%',\n    right: '12%',\n    bottom: '12%',\n    // the layout of the tree, two value can be selected, 'orthogonal' or 'radial'\n    layout: 'orthogonal',\n    // value can be 'polyline'\n    edgeShape: 'curve',\n    edgeForkPosition: '50%',\n    // true | false | 'move' | 'scale', see module:component/helper/RoamController.\n    roam: false,\n    // Symbol size scale ratio in roam\n    nodeScaleRatio: 0.4,\n    // Default on center of graph\n    center: null,\n    zoom: 1,\n    orient: 'LR',\n    symbol: 'emptyCircle',\n    symbolSize: 7,\n    expandAndCollapse: true,\n    initialTreeDepth: 2,\n    lineStyle: {\n      color: '#ccc',\n      width: 1.5,\n      curveness: 0.5\n    },\n    itemStyle: {\n      color: 'lightsteelblue',\n      // borderColor: '#c23531',\n      borderWidth: 1.5\n    },\n    label: {\n      show: true\n    },\n    animationEasing: 'linear',\n    animationDuration: 700,\n    animationDurationUpdate: 500\n  };\n  return TreeSeriesModel;\n}(SeriesModel);\n\nexport default TreeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Traverse the tree from bottom to top and do something\n */\nfunction eachAfter(root, callback, separation) {\n  var nodes = [root];\n  var next = [];\n  var node;\n\n  while (node = nodes.pop()) {\n    // jshint ignore:line\n    next.push(node);\n\n    if (node.isExpand) {\n      var children = node.children;\n\n      if (children.length) {\n        for (var i = 0; i < children.length; i++) {\n          nodes.push(children[i]);\n        }\n      }\n    }\n  }\n\n  while (node = next.pop()) {\n    // jshint ignore:line\n    callback(node, separation);\n  }\n}\n/**\n * Traverse the tree from top to bottom and do something\n */\n\n\nfunction eachBefore(root, callback) {\n  var nodes = [root];\n  var node;\n\n  while (node = nodes.pop()) {\n    // jshint ignore:line\n    callback(node);\n\n    if (node.isExpand) {\n      var children = node.children;\n\n      if (children.length) {\n        for (var i = children.length - 1; i >= 0; i--) {\n          nodes.push(children[i]);\n        }\n      }\n    }\n  }\n}\n\nexport { eachAfter, eachBefore };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { eachAfter, eachBefore } from './traversalHelper.js';\nimport { init, firstWalk, secondWalk, separation as sep, radialCoordinate, getViewRect } from './layoutHelper.js';\nexport default function treeLayout(ecModel, api) {\n  ecModel.eachSeriesByType('tree', function (seriesModel) {\n    commonLayout(seriesModel, api);\n  });\n}\n\nfunction commonLayout(seriesModel, api) {\n  var layoutInfo = getViewRect(seriesModel, api);\n  seriesModel.layoutInfo = layoutInfo;\n  var layout = seriesModel.get('layout');\n  var width = 0;\n  var height = 0;\n  var separation = null;\n\n  if (layout === 'radial') {\n    width = 2 * Math.PI;\n    height = Math.min(layoutInfo.height, layoutInfo.width) / 2;\n    separation = sep(function (node1, node2) {\n      return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth;\n    });\n  } else {\n    width = layoutInfo.width;\n    height = layoutInfo.height;\n    separation = sep();\n  }\n\n  var virtualRoot = seriesModel.getData().tree.root;\n  var realRoot = virtualRoot.children[0];\n\n  if (realRoot) {\n    init(virtualRoot);\n    eachAfter(realRoot, firstWalk, separation);\n    virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim;\n    eachBefore(realRoot, secondWalk);\n    var left_1 = realRoot;\n    var right_1 = realRoot;\n    var bottom_1 = realRoot;\n    eachBefore(realRoot, function (node) {\n      var x = node.getLayout().x;\n\n      if (x < left_1.getLayout().x) {\n        left_1 = node;\n      }\n\n      if (x > right_1.getLayout().x) {\n        right_1 = node;\n      }\n\n      if (node.depth > bottom_1.depth) {\n        bottom_1 = node;\n      }\n    });\n    var delta = left_1 === right_1 ? 1 : separation(left_1, right_1) / 2;\n    var tx_1 = delta - left_1.getLayout().x;\n    var kx_1 = 0;\n    var ky_1 = 0;\n    var coorX_1 = 0;\n    var coorY_1 = 0;\n\n    if (layout === 'radial') {\n      kx_1 = width / (right_1.getLayout().x + delta + tx_1); // here we use (node.depth - 1), bucause the real root's depth is 1\n\n      ky_1 = height / (bottom_1.depth - 1 || 1);\n      eachBefore(realRoot, function (node) {\n        coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n        coorY_1 = (node.depth - 1) * ky_1;\n        var finalCoor = radialCoordinate(coorX_1, coorY_1);\n        node.setLayout({\n          x: finalCoor.x,\n          y: finalCoor.y,\n          rawX: coorX_1,\n          rawY: coorY_1\n        }, true);\n      });\n    } else {\n      var orient_1 = seriesModel.getOrient();\n\n      if (orient_1 === 'RL' || orient_1 === 'LR') {\n        ky_1 = height / (right_1.getLayout().x + delta + tx_1);\n        kx_1 = width / (bottom_1.depth - 1 || 1);\n        eachBefore(realRoot, function (node) {\n          coorY_1 = (node.getLayout().x + tx_1) * ky_1;\n          coorX_1 = orient_1 === 'LR' ? (node.depth - 1) * kx_1 : width - (node.depth - 1) * kx_1;\n          node.setLayout({\n            x: coorX_1,\n            y: coorY_1\n          }, true);\n        });\n      } else if (orient_1 === 'TB' || orient_1 === 'BT') {\n        kx_1 = width / (right_1.getLayout().x + delta + tx_1);\n        ky_1 = height / (bottom_1.depth - 1 || 1);\n        eachBefore(realRoot, function (node) {\n          coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n          coorY_1 = orient_1 === 'TB' ? (node.depth - 1) * ky_1 : height - (node.depth - 1) * ky_1;\n          node.setLayout({\n            x: coorX_1,\n            y: coorY_1\n          }, true);\n        });\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { extend } from 'zrender/lib/core/util.js';\nexport default function treeVisual(ecModel) {\n  ecModel.eachSeriesByType('tree', function (seriesModel) {\n    var data = seriesModel.getData();\n    var tree = data.tree;\n    tree.eachNode(function (node) {\n      var model = node.getModel(); // TODO Optimize\n\n      var style = model.getModel('itemStyle').getItemStyle();\n      var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n      extend(existsStyle, style);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { updateCenterAndZoom } from '../../action/roamHelper.js';\nexport function installTreeAction(registers) {\n  registers.registerAction({\n    type: 'treeExpandAndCollapse',\n    event: 'treeExpandAndCollapse',\n    update: 'update'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'tree',\n      query: payload\n    }, function (seriesModel) {\n      var dataIndex = payload.dataIndex;\n      var tree = seriesModel.getData().tree;\n      var node = tree.getNodeByDataIndex(dataIndex);\n      node.isExpand = !node.isExpand;\n    });\n  });\n  registers.registerAction({\n    type: 'treeRoam',\n    event: 'treeRoam',\n    // Here we set 'none' instead of 'update', because roam action\n    // just need to update the transform matrix without having to recalculate\n    // the layout. So don't need to go through the whole update process, such\n    // as 'dataPrcocess', 'coordSystemUpdate', 'layout' and so on.\n    update: 'none'\n  }, function (payload, ecModel, api) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'tree',\n      query: payload\n    }, function (seriesModel) {\n      var coordSys = seriesModel.coordinateSystem;\n      var res = updateCenterAndZoom(coordSys, payload, undefined, api);\n      seriesModel.setCenter && seriesModel.setCenter(res.center);\n      seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport TreeView from './TreeView.js';\nimport TreeSeriesModel from './TreeSeries.js';\nimport treeLayout from './treeLayout.js';\nimport treeVisual from './treeVisual.js';\nimport { installTreeAction } from './treeAction.js';\nexport function install(registers) {\n  registers.registerChartView(TreeView);\n  registers.registerSeriesModel(TreeSeriesModel);\n  registers.registerLayout(treeLayout);\n  registers.registerVisual(treeVisual);\n  installTreeAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as helper from '../helper/treeHelper.js';\nimport { noop } from 'zrender/lib/core/util.js';\nvar actionTypes = ['treemapZoomToNode', 'treemapRender', 'treemapMove'];\nexport function installTreemapAction(registers) {\n  for (var i = 0; i < actionTypes.length; i++) {\n    registers.registerAction({\n      type: actionTypes[i],\n      update: 'updateView'\n    }, noop);\n  }\n\n  registers.registerAction({\n    type: 'treemapRootToNode',\n    update: 'updateView'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'treemap',\n      query: payload\n    }, handleRootToNode);\n\n    function handleRootToNode(model, index) {\n      var types = ['treemapZoomToNode', 'treemapRootToNode'];\n      var targetInfo = helper.retrieveTargetInfo(payload, types, model);\n\n      if (targetInfo) {\n        var originViewRoot = model.getViewRoot();\n\n        if (originViewRoot) {\n          payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n        }\n\n        model.resetViewRoot(targetInfo.node);\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { getDecalFromPalette } from '../../model/mixin/palette.js';\nexport default function enableAriaDecalForTree(seriesModel) {\n  var data = seriesModel.getData();\n  var tree = data.tree;\n  var decalPaletteScope = {};\n  tree.eachNode(function (node) {\n    // Use decal of level 1 node\n    var current = node;\n\n    while (current && current.depth > 1) {\n      current = current.parentNode;\n    }\n\n    var decal = getDecalFromPalette(seriesModel.ecModel, current.name || current.dataIndex + '', decalPaletteScope);\n    node.setVisual('decal', decal);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport SeriesModel from '../../model/Series.js';\nimport Tree from '../../data/Tree.js';\nimport Model from '../../model/Model.js';\nimport { wrapTreePathInfo } from '../helper/treeHelper.js';\nimport { normalizeToArray } from '../../util/model.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree.js';\n\nvar TreemapSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(TreemapSeriesModel, _super);\n\n  function TreemapSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreemapSeriesModel.type;\n    _this.preventUsingHoverLayer = true;\n    return _this;\n  }\n  /**\n   * @override\n   */\n\n\n  TreemapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    // Create a virtual root.\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    completeTreeValue(root);\n    var levels = option.levels || []; // Used in \"visual priority\" in `treemapVisual.js`.\n    // This way is a little tricky, must satisfy the precondition:\n    //   1. There is no `treeNode.getModel('itemStyle.xxx')` used.\n    //   2. The `Model.prototype.getModel()` will not use any clone-like way.\n\n    var designatedVisualItemStyle = this.designatedVisualItemStyle = {};\n    var designatedVisualModel = new Model({\n      itemStyle: designatedVisualItemStyle\n    }, this, ecModel);\n    levels = option.levels = setDefault(levels, ecModel);\n    var levelModels = zrUtil.map(levels || [], function (levelDefine) {\n      return new Model(levelDefine, designatedVisualModel, ecModel);\n    }, this); // Make sure always a new tree is created when setOption,\n    // in TreemapView, we check whether oldTree === newTree\n    // to choose mappings approach among old shapes and new shapes.\n\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n        var levelModel = node ? levelModels[node.depth] : null; // If no levelModel, we also need `designatedVisualModel`.\n\n        model.parentModel = levelModel || designatedVisualModel;\n        return model;\n      });\n    }\n\n    return tree.data;\n  };\n\n  TreemapSeriesModel.prototype.optionUpdated = function () {\n    this.resetViewRoot();\n  };\n  /**\n   * @override\n   * @param {number} dataIndex\n   * @param {boolean} [mutipleSeries=false]\n   */\n\n\n  TreemapSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var name = data.getName(dataIndex);\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value\n    });\n  };\n  /**\n   * Add tree path to tooltip param\n   *\n   * @override\n   * @param {number} dataIndex\n   * @return {Object}\n   */\n\n\n  TreemapSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var params = _super.prototype.getDataParams.apply(this, arguments);\n\n    var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n    params.treeAncestors = wrapTreePathInfo(node, this); // compatitable the previous code.\n\n    params.treePathInfo = params.treeAncestors;\n    return params;\n  };\n  /**\n   * @public\n   * @param {Object} layoutInfo {\n   *                                x: containerGroup x\n   *                                y: containerGroup y\n   *                                width: containerGroup width\n   *                                height: containerGroup height\n   *                            }\n   */\n\n\n  TreemapSeriesModel.prototype.setLayoutInfo = function (layoutInfo) {\n    /**\n     * @readOnly\n     * @type {Object}\n     */\n    this.layoutInfo = this.layoutInfo || {};\n    zrUtil.extend(this.layoutInfo, layoutInfo);\n  };\n  /**\n   * @param  {string} id\n   * @return {number} index\n   */\n\n\n  TreemapSeriesModel.prototype.mapIdToIndex = function (id) {\n    // A feature is implemented:\n    // index is monotone increasing with the sequence of\n    // input id at the first time.\n    // This feature can make sure that each data item and its\n    // mapped color have the same index between data list and\n    // color list at the beginning, which is useful for user\n    // to adjust data-color mapping.\n\n    /**\n     * @private\n     * @type {Object}\n     */\n    var idIndexMap = this._idIndexMap;\n\n    if (!idIndexMap) {\n      idIndexMap = this._idIndexMap = zrUtil.createHashMap();\n      /**\n       * @private\n       * @type {number}\n       */\n\n      this._idIndexMapCount = 0;\n    }\n\n    var index = idIndexMap.get(id);\n\n    if (index == null) {\n      idIndexMap.set(id, index = this._idIndexMapCount++);\n    }\n\n    return index;\n  };\n\n  TreemapSeriesModel.prototype.getViewRoot = function () {\n    return this._viewRoot;\n  };\n\n  TreemapSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n    viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n    var root = this.getRawData().tree.root;\n\n    if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n      this._viewRoot = root;\n    }\n  };\n\n  TreemapSeriesModel.prototype.enableAriaDecal = function () {\n    enableAriaDecalForTree(this);\n  };\n\n  TreemapSeriesModel.type = 'series.treemap';\n  TreemapSeriesModel.layoutMode = 'box';\n  TreemapSeriesModel.defaultOption = {\n    // Disable progressive rendering\n    progressive: 0,\n    // size: ['80%', '80%'],            // deprecated, compatible with ec2.\n    left: 'center',\n    top: 'middle',\n    width: '80%',\n    height: '80%',\n    sort: true,\n    clipWindow: 'origin',\n    squareRatio: 0.5 * (1 + Math.sqrt(5)),\n    leafDepth: null,\n    drillDownIcon: '▶',\n    // to align specialized icon. ▷▶❒❐▼✚\n    zoomToNodeRatio: 0.32 * 0.32,\n    roam: true,\n    nodeClick: 'zoomToNode',\n    animation: true,\n    animationDurationUpdate: 900,\n    animationEasing: 'quinticInOut',\n    breadcrumb: {\n      show: true,\n      height: 22,\n      left: 'center',\n      top: 'bottom',\n      // right\n      // bottom\n      emptyItemWidth: 25,\n      itemStyle: {\n        color: 'rgba(0,0,0,0.7)',\n        textStyle: {\n          color: '#fff'\n        }\n      }\n    },\n    label: {\n      show: true,\n      // Do not use textDistance, for ellipsis rect just the same as treemap node rect.\n      distance: 0,\n      padding: 5,\n      position: 'inside',\n      // formatter: null,\n      color: '#fff',\n      overflow: 'truncate' // align\n      // verticalAlign\n\n    },\n    upperLabel: {\n      show: false,\n      position: [0, '50%'],\n      height: 20,\n      // formatter: null,\n      // color: '#fff',\n      overflow: 'truncate',\n      // align: null,\n      verticalAlign: 'middle'\n    },\n    itemStyle: {\n      color: null,\n      colorAlpha: null,\n      colorSaturation: null,\n      borderWidth: 0,\n      gapWidth: 0,\n      borderColor: '#fff',\n      borderColorSaturation: null // If specified, borderColor will be ineffective, and the\n      // border color is evaluated by color of current node and\n      // borderColorSaturation.\n\n    },\n    emphasis: {\n      upperLabel: {\n        show: true,\n        position: [0, '50%'],\n        overflow: 'truncate',\n        verticalAlign: 'middle'\n      }\n    },\n    visualDimension: 0,\n    visualMin: null,\n    visualMax: null,\n    color: [],\n    // level[n].color (if necessary).\n    // + Specify color list of each level. level[0].color would be global\n    // color list if not specified. (see method `setDefault`).\n    // + But set as a empty array to forbid fetch color from global palette\n    // when using nodeModel.get('color'), otherwise nodes on deep level\n    // will always has color palette set and are not able to inherit color\n    // from parent node.\n    // + TreemapSeries.color can not be set as 'none', otherwise effect\n    // legend color fetching (see seriesColor.js).\n    colorAlpha: null,\n    colorSaturation: null,\n    colorMappingBy: 'index',\n    visibleMin: 10,\n    // be rendered. Only works when sort is 'asc' or 'desc'.\n    childrenVisibleMin: null,\n    // grandchildren will not show.\n    // Why grandchildren? If not grandchildren but children,\n    // some siblings show children and some not,\n    // the appearance may be mess and not consistent,\n    levels: [] // Each item: {\n    //     visibleMin, itemStyle, visualDimension, label\n    // }\n\n  };\n  return TreemapSeriesModel;\n}(SeriesModel);\n/**\n * @param {Object} dataNode\n */\n\n\nfunction completeTreeValue(dataNode) {\n  // Postorder travel tree.\n  // If value of none-leaf node is not set,\n  // calculate it by suming up the value of all children.\n  var sum = 0;\n  zrUtil.each(dataNode.children, function (child) {\n    completeTreeValue(child);\n    var childValue = child.value;\n    zrUtil.isArray(childValue) && (childValue = childValue[0]);\n    sum += childValue;\n  });\n  var thisValue = dataNode.value;\n\n  if (zrUtil.isArray(thisValue)) {\n    thisValue = thisValue[0];\n  }\n\n  if (thisValue == null || isNaN(thisValue)) {\n    thisValue = sum;\n  } // Value should not less than 0.\n\n\n  if (thisValue < 0) {\n    thisValue = 0;\n  }\n\n  zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n/**\n * set default to level configuration\n */\n\n\nfunction setDefault(levels, ecModel) {\n  var globalColorList = normalizeToArray(ecModel.get('color'));\n  var globalDecalList = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n\n  if (!globalColorList) {\n    return;\n  }\n\n  levels = levels || [];\n  var hasColorDefine;\n  var hasDecalDefine;\n  zrUtil.each(levels, function (levelDefine) {\n    var model = new Model(levelDefine);\n    var modelColor = model.get('color');\n    var modelDecal = model.get('decal');\n\n    if (model.get(['itemStyle', 'color']) || modelColor && modelColor !== 'none') {\n      hasColorDefine = true;\n    }\n\n    if (model.get(['itemStyle', 'decal']) || modelDecal && modelDecal !== 'none') {\n      hasDecalDefine = true;\n    }\n  });\n  var level0 = levels[0] || (levels[0] = {});\n\n  if (!hasColorDefine) {\n    level0.color = globalColorList.slice();\n  }\n\n  if (!hasDecalDefine && globalDecalList) {\n    level0.decal = globalDecalList.slice();\n  }\n\n  return levels;\n}\n\nexport default TreemapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport * as layout from '../../util/layout.js';\nimport { wrapTreePathInfo } from '../helper/treeHelper.js';\nimport { curry, defaults } from 'zrender/lib/core/util.js';\nimport { convertOptionIdName } from '../../util/model.js';\nimport { Z2_EMPHASIS_LIFT } from '../../util/states.js';\nvar TEXT_PADDING = 8;\nvar ITEM_GAP = 8;\nvar ARRAY_LENGTH = 5;\n\nvar Breadcrumb =\n/** @class */\nfunction () {\n  function Breadcrumb(containerGroup) {\n    this.group = new graphic.Group();\n    containerGroup.add(this.group);\n  }\n\n  Breadcrumb.prototype.render = function (seriesModel, api, targetNode, onSelect) {\n    var model = seriesModel.getModel('breadcrumb');\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n\n    if (!model.get('show') || !targetNode) {\n      return;\n    }\n\n    var normalStyleModel = model.getModel('itemStyle'); // let emphasisStyleModel = model.getModel('emphasis.itemStyle');\n\n    var textStyleModel = normalStyleModel.getModel('textStyle');\n    var layoutParam = {\n      pos: {\n        left: model.get('left'),\n        right: model.get('right'),\n        top: model.get('top'),\n        bottom: model.get('bottom')\n      },\n      box: {\n        width: api.getWidth(),\n        height: api.getHeight()\n      },\n      emptyItemWidth: model.get('emptyItemWidth'),\n      totalWidth: 0,\n      renderList: []\n    };\n\n    this._prepare(targetNode, layoutParam, textStyleModel);\n\n    this._renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect);\n\n    layout.positionElement(thisGroup, layoutParam.pos, layoutParam.box);\n  };\n  /**\n   * Prepare render list and total width\n   * @private\n   */\n\n\n  Breadcrumb.prototype._prepare = function (targetNode, layoutParam, textStyleModel) {\n    for (var node = targetNode; node; node = node.parentNode) {\n      var text = convertOptionIdName(node.getModel().get('name'), '');\n      var textRect = textStyleModel.getTextRect(text);\n      var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);\n      layoutParam.totalWidth += itemWidth + ITEM_GAP;\n      layoutParam.renderList.push({\n        node: node,\n        text: text,\n        width: itemWidth\n      });\n    }\n  };\n  /**\n   * @private\n   */\n\n\n  Breadcrumb.prototype._renderContent = function (seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect) {\n    // Start rendering.\n    var lastX = 0;\n    var emptyItemWidth = layoutParam.emptyItemWidth;\n    var height = seriesModel.get(['breadcrumb', 'height']);\n    var availableSize = layout.getAvailableSize(layoutParam.pos, layoutParam.box);\n    var totalWidth = layoutParam.totalWidth;\n    var renderList = layoutParam.renderList;\n\n    for (var i = renderList.length - 1; i >= 0; i--) {\n      var item = renderList[i];\n      var itemNode = item.node;\n      var itemWidth = item.width;\n      var text = item.text; // Hdie text and shorten width if necessary.\n\n      if (totalWidth > availableSize.width) {\n        totalWidth -= itemWidth - emptyItemWidth;\n        itemWidth = emptyItemWidth;\n        text = null;\n      }\n\n      var el = new graphic.Polygon({\n        shape: {\n          points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)\n        },\n        style: defaults(normalStyleModel.getItemStyle(), {\n          lineJoin: 'bevel'\n        }),\n        textContent: new graphic.Text({\n          style: {\n            text: text,\n            fill: textStyleModel.getTextColor(),\n            font: textStyleModel.getFont()\n          }\n        }),\n        textConfig: {\n          position: 'inside'\n        },\n        z2: Z2_EMPHASIS_LIFT * 1e4,\n        onclick: curry(onSelect, itemNode)\n      });\n      el.disableLabelAnimation = true;\n      this.group.add(el);\n      packEventData(el, seriesModel, itemNode);\n      lastX += itemWidth + ITEM_GAP;\n    }\n  };\n\n  Breadcrumb.prototype.remove = function () {\n    this.group.removeAll();\n  };\n\n  return Breadcrumb;\n}();\n\nfunction makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {\n  var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]];\n  !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);\n  !head && points.push([x, y + itemHeight / 2]);\n  return points;\n} // Package custom mouse event.\n\n\nfunction packEventData(el, seriesModel, itemNode) {\n  getECData(el).eventData = {\n    componentType: 'series',\n    componentSubType: 'treemap',\n    componentIndex: seriesModel.componentIndex,\n    seriesIndex: seriesModel.seriesIndex,\n    seriesName: seriesModel.name,\n    seriesType: 'treemap',\n    selfType: 'breadcrumb',\n    nodeData: {\n      dataIndex: itemNode && itemNode.dataIndex,\n      name: itemNode && itemNode.name\n    },\n    treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)\n  };\n}\n\nexport default Breadcrumb;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Animate multiple elements with a single done-callback.\n *\n * @example\n *  animation\n *      .createWrap()\n *      .add(el1, {x: 10, y: 10})\n *      .add(el2, {shape: {width: 500}, style: {fill: 'red'}}, 400)\n *      .done(function () { // done })\n *      .start('cubicOut');\n */\nvar AnimationWrap =\n/** @class */\nfunction () {\n  function AnimationWrap() {\n    this._storage = [];\n    this._elExistsMap = {};\n  }\n  /**\n   * Caution: a el can only be added once, otherwise 'done'\n   * might not be called. This method checks this (by el.id),\n   * suppresses adding and returns false when existing el found.\n   *\n   * @return Whether adding succeeded.\n   */\n\n\n  AnimationWrap.prototype.add = function (el, target, duration, delay, easing) {\n    if (this._elExistsMap[el.id]) {\n      return false;\n    }\n\n    this._elExistsMap[el.id] = true;\n\n    this._storage.push({\n      el: el,\n      target: target,\n      duration: duration,\n      delay: delay,\n      easing: easing\n    });\n\n    return true;\n  };\n  /**\n   * Only execute when animation done/aborted.\n   */\n\n\n  AnimationWrap.prototype.finished = function (callback) {\n    this._finishedCallback = callback;\n    return this;\n  };\n  /**\n   * Will stop exist animation firstly.\n   */\n\n\n  AnimationWrap.prototype.start = function () {\n    var _this = this;\n\n    var count = this._storage.length;\n\n    var checkTerminate = function () {\n      count--;\n\n      if (count <= 0) {\n        // Guard.\n        _this._storage.length = 0;\n        _this._elExistsMap = {};\n        _this._finishedCallback && _this._finishedCallback();\n      }\n    };\n\n    for (var i = 0, len = this._storage.length; i < len; i++) {\n      var item = this._storage[i];\n      item.el.animateTo(item.target, {\n        duration: item.duration,\n        delay: item.delay,\n        easing: item.easing,\n        setToFinal: true,\n        done: checkTerminate,\n        aborted: checkTerminate\n      });\n    }\n\n    return this;\n  };\n\n  return AnimationWrap;\n}();\n\nexport function createWrap() {\n  return new AnimationWrap();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { bind, each, indexOf, curry, extend, normalizeCssArray, isFunction } from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { isHighDownDispatcher, setAsHighDownDispatcher, setDefaultStateProxy, enableHoverFocus, Z2_EMPHASIS_LIFT } from '../../util/states.js';\nimport DataDiffer from '../../data/DataDiffer.js';\nimport * as helper from '../helper/treeHelper.js';\nimport Breadcrumb from './Breadcrumb.js';\nimport RoamController from '../../component/helper/RoamController.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport * as animationUtil from '../../util/animation.js';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper.js';\nimport ChartView from '../../view/Chart.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nimport { makeInner, convertOptionIdName } from '../../util/model.js';\nimport { windowOpen } from '../../util/format.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nvar Group = graphic.Group;\nvar Rect = graphic.Rect;\nvar DRAG_THRESHOLD = 3;\nvar PATH_LABEL_NOAMAL = 'label';\nvar PATH_UPPERLABEL_NORMAL = 'upperLabel'; // Should larger than emphasis states lift z\n\nvar Z2_BASE = Z2_EMPHASIS_LIFT * 10; // Should bigger than every z2.\n\nvar Z2_BG = Z2_EMPHASIS_LIFT * 2;\nvar Z2_CONTENT = Z2_EMPHASIS_LIFT * 3;\nvar getStateItemStyle = makeStyleMapper([['fill', 'color'], // `borderColor` and `borderWidth` has been occupied,\n// so use `stroke` to indicate the stroke of the rect.\n['stroke', 'strokeColor'], ['lineWidth', 'strokeWidth'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'] // Option decal is in `DecalObject` but style.decal is in `PatternObject`.\n// So do not transfer decal directly.\n]);\n\nvar getItemStyleNormal = function (model) {\n  // Normal style props should include emphasis style props.\n  var itemStyle = getStateItemStyle(model); // Clear styles set by emphasis.\n\n  itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null;\n  return itemStyle;\n};\n\nvar inner = makeInner();\n\nvar TreemapView =\n/** @class */\nfunction (_super) {\n  __extends(TreemapView, _super);\n\n  function TreemapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreemapView.type;\n    _this._state = 'ready';\n    _this._storage = createStorage();\n    return _this;\n  }\n  /**\n   * @override\n   */\n\n\n  TreemapView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var models = ecModel.findComponents({\n      mainType: 'series',\n      subType: 'treemap',\n      query: payload\n    });\n\n    if (indexOf(models, seriesModel) < 0) {\n      return;\n    }\n\n    this.seriesModel = seriesModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    var types = ['treemapZoomToNode', 'treemapRootToNode'];\n    var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n    var payloadType = payload && payload.type;\n    var layoutInfo = seriesModel.layoutInfo;\n    var isInit = !this._oldTree;\n    var thisStorage = this._storage; // Mark new root when action is treemapRootToNode.\n\n    var reRoot = payloadType === 'treemapRootToNode' && targetInfo && thisStorage ? {\n      rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()],\n      direction: payload.direction\n    } : null;\n\n    var containerGroup = this._giveContainerGroup(layoutInfo);\n\n    var hasAnimation = seriesModel.get('animation');\n\n    var renderResult = this._doRender(containerGroup, seriesModel, reRoot);\n\n    hasAnimation && !isInit && (!payloadType || payloadType === 'treemapZoomToNode' || payloadType === 'treemapRootToNode') ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot) : renderResult.renderFinally();\n\n    this._resetController(api);\n\n    this._renderBreadcrumb(seriesModel, api, targetInfo);\n  };\n\n  TreemapView.prototype._giveContainerGroup = function (layoutInfo) {\n    var containerGroup = this._containerGroup;\n\n    if (!containerGroup) {\n      // FIXME\n      // 加一层containerGroup是为了clip，但是现在clip功能并没有实现。\n      containerGroup = this._containerGroup = new Group();\n\n      this._initEvents(containerGroup);\n\n      this.group.add(containerGroup);\n    }\n\n    containerGroup.x = layoutInfo.x;\n    containerGroup.y = layoutInfo.y;\n    return containerGroup;\n  };\n\n  TreemapView.prototype._doRender = function (containerGroup, seriesModel, reRoot) {\n    var thisTree = seriesModel.getData().tree;\n    var oldTree = this._oldTree; // Clear last shape records.\n\n    var lastsForAnimation = createStorage();\n    var thisStorage = createStorage();\n    var oldStorage = this._storage;\n    var willInvisibleEls = [];\n\n    function doRenderNode(thisNode, oldNode, parentGroup, depth) {\n      return renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth);\n    } // Notice: when thisTree and oldTree are the same tree (see list.cloneShallow),\n    // the oldTree is actually losted, so we can not find all of the old graphic\n    // elements from tree. So we use this stragegy: make element storage, move\n    // from old storage to new storage, clear old storage.\n\n\n    dualTravel(thisTree.root ? [thisTree.root] : [], oldTree && oldTree.root ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0); // Process all removing.\n\n    var willDeleteEls = clearStorage(oldStorage);\n    this._oldTree = thisTree;\n    this._storage = thisStorage;\n    return {\n      lastsForAnimation: lastsForAnimation,\n      willDeleteEls: willDeleteEls,\n      renderFinally: renderFinally\n    };\n\n    function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) {\n      // When 'render' is triggered by action,\n      // 'this' and 'old' may be the same tree,\n      // we use rawIndex in that case.\n      if (sameTree) {\n        oldViewChildren = thisViewChildren;\n        each(thisViewChildren, function (child, index) {\n          !child.isRemoved() && processNode(index, index);\n        });\n      } // Diff hierarchically (diff only in each subtree, but not whole).\n      // because, consistency of view is important.\n      else {\n          new DataDiffer(oldViewChildren, thisViewChildren, getKey, getKey).add(processNode).update(processNode).remove(curry(processNode, null)).execute();\n        }\n\n      function getKey(node) {\n        // Identify by name or raw index.\n        return node.getId();\n      }\n\n      function processNode(newIndex, oldIndex) {\n        var thisNode = newIndex != null ? thisViewChildren[newIndex] : null;\n        var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null;\n        var group = doRenderNode(thisNode, oldNode, parentGroup, depth);\n        group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1);\n      }\n    }\n\n    function clearStorage(storage) {\n      var willDeleteEls = createStorage();\n      storage && each(storage, function (store, storageName) {\n        var delEls = willDeleteEls[storageName];\n        each(store, function (el) {\n          el && (delEls.push(el), inner(el).willDelete = true);\n        });\n      });\n      return willDeleteEls;\n    }\n\n    function renderFinally() {\n      each(willDeleteEls, function (els) {\n        each(els, function (el) {\n          el.parent && el.parent.remove(el);\n        });\n      });\n      each(willInvisibleEls, function (el) {\n        el.invisible = true; // Setting invisible is for optimizing, so no need to set dirty,\n        // just mark as invisible.\n\n        el.dirty();\n      });\n    }\n  };\n\n  TreemapView.prototype._doAnimation = function (containerGroup, renderResult, seriesModel, reRoot) {\n    var durationOption = seriesModel.get('animationDurationUpdate');\n    var easingOption = seriesModel.get('animationEasing'); // TODO: do not support function until necessary.\n\n    var duration = (isFunction(durationOption) ? 0 : durationOption) || 0;\n    var easing = (isFunction(easingOption) ? null : easingOption) || 'cubicOut';\n    var animationWrap = animationUtil.createWrap(); // Make delete animations.\n\n    each(renderResult.willDeleteEls, function (store, storageName) {\n      each(store, function (el, rawIndex) {\n        if (el.invisible) {\n          return;\n        }\n\n        var parent = el.parent; // Always has parent, and parent is nodeGroup.\n\n        var target;\n        var innerStore = inner(parent);\n\n        if (reRoot && reRoot.direction === 'drillDown') {\n          target = parent === reRoot.rootNodeGroup // This is the content element of view root.\n          // Only `content` will enter this branch, because\n          // `background` and `nodeGroup` will not be deleted.\n          ? {\n            shape: {\n              x: 0,\n              y: 0,\n              width: innerStore.nodeWidth,\n              height: innerStore.nodeHeight\n            },\n            style: {\n              opacity: 0\n            }\n          } // Others.\n          : {\n            style: {\n              opacity: 0\n            }\n          };\n        } else {\n          var targetX = 0;\n          var targetY = 0;\n\n          if (!innerStore.willDelete) {\n            // Let node animate to right-bottom corner, cooperating with fadeout,\n            // which is appropriate for user understanding.\n            // Divided by 2 for reRoot rolling up effect.\n            targetX = innerStore.nodeWidth / 2;\n            targetY = innerStore.nodeHeight / 2;\n          }\n\n          target = storageName === 'nodeGroup' ? {\n            x: targetX,\n            y: targetY,\n            style: {\n              opacity: 0\n            }\n          } : {\n            shape: {\n              x: targetX,\n              y: targetY,\n              width: 0,\n              height: 0\n            },\n            style: {\n              opacity: 0\n            }\n          };\n        } // TODO: do not support delay until necessary.\n\n\n        target && animationWrap.add(el, target, duration, 0, easing);\n      });\n    }); // Make other animations\n\n    each(this._storage, function (store, storageName) {\n      each(store, function (el, rawIndex) {\n        var last = renderResult.lastsForAnimation[storageName][rawIndex];\n        var target = {};\n\n        if (!last) {\n          return;\n        }\n\n        if (el instanceof graphic.Group) {\n          if (last.oldX != null) {\n            target.x = el.x;\n            target.y = el.y;\n            el.x = last.oldX;\n            el.y = last.oldY;\n          }\n        } else {\n          if (last.oldShape) {\n            target.shape = extend({}, el.shape);\n            el.setShape(last.oldShape);\n          }\n\n          if (last.fadein) {\n            el.setStyle('opacity', 0);\n            target.style = {\n              opacity: 1\n            };\n          } // When animation is stopped for succedent animation starting,\n          // el.style.opacity might not be 1\n          else if (el.style.opacity !== 1) {\n              target.style = {\n                opacity: 1\n              };\n            }\n        }\n\n        animationWrap.add(el, target, duration, 0, easing);\n      });\n    }, this);\n    this._state = 'animating';\n    animationWrap.finished(bind(function () {\n      this._state = 'ready';\n      renderResult.renderFinally();\n    }, this)).start();\n  };\n\n  TreemapView.prototype._resetController = function (api) {\n    var controller = this._controller; // Init controller.\n\n    if (!controller) {\n      controller = this._controller = new RoamController(api.getZr());\n      controller.enable(this.seriesModel.get('roam'));\n      controller.on('pan', bind(this._onPan, this));\n      controller.on('zoom', bind(this._onZoom, this));\n    }\n\n    var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight());\n    controller.setPointerChecker(function (e, x, y) {\n      return rect.contain(x, y);\n    });\n  };\n\n  TreemapView.prototype._clearController = function () {\n    var controller = this._controller;\n\n    if (controller) {\n      controller.dispose();\n      controller = null;\n    }\n  };\n\n  TreemapView.prototype._onPan = function (e) {\n    if (this._state !== 'animating' && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) {\n      // These param must not be cached.\n      var root = this.seriesModel.getData().tree.root;\n\n      if (!root) {\n        return;\n      }\n\n      var rootLayout = root.getLayout();\n\n      if (!rootLayout) {\n        return;\n      }\n\n      this.api.dispatchAction({\n        type: 'treemapMove',\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        rootRect: {\n          x: rootLayout.x + e.dx,\n          y: rootLayout.y + e.dy,\n          width: rootLayout.width,\n          height: rootLayout.height\n        }\n      });\n    }\n  };\n\n  TreemapView.prototype._onZoom = function (e) {\n    var mouseX = e.originX;\n    var mouseY = e.originY;\n\n    if (this._state !== 'animating') {\n      // These param must not be cached.\n      var root = this.seriesModel.getData().tree.root;\n\n      if (!root) {\n        return;\n      }\n\n      var rootLayout = root.getLayout();\n\n      if (!rootLayout) {\n        return;\n      }\n\n      var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height);\n      var layoutInfo = this.seriesModel.layoutInfo; // Transform mouse coord from global to containerGroup.\n\n      mouseX -= layoutInfo.x;\n      mouseY -= layoutInfo.y; // Scale root bounding rect.\n\n      var m = matrix.create();\n      matrix.translate(m, m, [-mouseX, -mouseY]);\n      matrix.scale(m, m, [e.scale, e.scale]);\n      matrix.translate(m, m, [mouseX, mouseY]);\n      rect.applyTransform(m);\n      this.api.dispatchAction({\n        type: 'treemapRender',\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        rootRect: {\n          x: rect.x,\n          y: rect.y,\n          width: rect.width,\n          height: rect.height\n        }\n      });\n    }\n  };\n\n  TreemapView.prototype._initEvents = function (containerGroup) {\n    var _this = this;\n\n    containerGroup.on('click', function (e) {\n      if (_this._state !== 'ready') {\n        return;\n      }\n\n      var nodeClick = _this.seriesModel.get('nodeClick', true);\n\n      if (!nodeClick) {\n        return;\n      }\n\n      var targetInfo = _this.findTarget(e.offsetX, e.offsetY);\n\n      if (!targetInfo) {\n        return;\n      }\n\n      var node = targetInfo.node;\n\n      if (node.getLayout().isLeafRoot) {\n        _this._rootToNode(targetInfo);\n      } else {\n        if (nodeClick === 'zoomToNode') {\n          _this._zoomToNode(targetInfo);\n        } else if (nodeClick === 'link') {\n          var itemModel = node.hostTree.data.getItemModel(node.dataIndex);\n          var link = itemModel.get('link', true);\n          var linkTarget = itemModel.get('target', true) || 'blank';\n          link && windowOpen(link, linkTarget);\n        }\n      }\n    }, this);\n  };\n\n  TreemapView.prototype._renderBreadcrumb = function (seriesModel, api, targetInfo) {\n    var _this = this;\n\n    if (!targetInfo) {\n      targetInfo = seriesModel.get('leafDepth', true) != null ? {\n        node: seriesModel.getViewRoot()\n      } // FIXME\n      // better way?\n      // Find breadcrumb tail on center of containerGroup.\n      : this.findTarget(api.getWidth() / 2, api.getHeight() / 2);\n\n      if (!targetInfo) {\n        targetInfo = {\n          node: seriesModel.getData().tree.root\n        };\n      }\n    }\n\n    (this._breadcrumb || (this._breadcrumb = new Breadcrumb(this.group))).render(seriesModel, api, targetInfo.node, function (node) {\n      if (_this._state !== 'animating') {\n        helper.aboveViewRoot(seriesModel.getViewRoot(), node) ? _this._rootToNode({\n          node: node\n        }) : _this._zoomToNode({\n          node: node\n        });\n      }\n    });\n  };\n  /**\n   * @override\n   */\n\n\n  TreemapView.prototype.remove = function () {\n    this._clearController();\n\n    this._containerGroup && this._containerGroup.removeAll();\n    this._storage = createStorage();\n    this._state = 'ready';\n    this._breadcrumb && this._breadcrumb.remove();\n  };\n\n  TreemapView.prototype.dispose = function () {\n    this._clearController();\n  };\n\n  TreemapView.prototype._zoomToNode = function (targetInfo) {\n    this.api.dispatchAction({\n      type: 'treemapZoomToNode',\n      from: this.uid,\n      seriesId: this.seriesModel.id,\n      targetNode: targetInfo.node\n    });\n  };\n\n  TreemapView.prototype._rootToNode = function (targetInfo) {\n    this.api.dispatchAction({\n      type: 'treemapRootToNode',\n      from: this.uid,\n      seriesId: this.seriesModel.id,\n      targetNode: targetInfo.node\n    });\n  };\n  /**\n   * @public\n   * @param {number} x Global coord x.\n   * @param {number} y Global coord y.\n   * @return {Object} info If not found, return undefined;\n   * @return {number} info.node Target node.\n   * @return {number} info.offsetX x refer to target node.\n   * @return {number} info.offsetY y refer to target node.\n   */\n\n\n  TreemapView.prototype.findTarget = function (x, y) {\n    var targetInfo;\n    var viewRoot = this.seriesModel.getViewRoot();\n    viewRoot.eachNode({\n      attr: 'viewChildren',\n      order: 'preorder'\n    }, function (node) {\n      var bgEl = this._storage.background[node.getRawIndex()]; // If invisible, there might be no element.\n\n\n      if (bgEl) {\n        var point = bgEl.transformCoordToLocal(x, y);\n        var shape = bgEl.shape; // For performance consideration, dont use 'getBoundingRect'.\n\n        if (shape.x <= point[0] && point[0] <= shape.x + shape.width && shape.y <= point[1] && point[1] <= shape.y + shape.height) {\n          targetInfo = {\n            node: node,\n            offsetX: point[0],\n            offsetY: point[1]\n          };\n        } else {\n          return false; // Suppress visit subtree.\n        }\n      }\n    }, this);\n    return targetInfo;\n  };\n\n  TreemapView.type = 'treemap';\n  return TreemapView;\n}(ChartView);\n/**\n * @inner\n */\n\n\nfunction createStorage() {\n  return {\n    nodeGroup: [],\n    background: [],\n    content: []\n  };\n}\n/**\n * @inner\n * @return Return undefined means do not travel further.\n */\n\n\nfunction renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) {\n  // Whether under viewRoot.\n  if (!thisNode) {\n    // Deleting nodes will be performed finally. This method just find\n    // element from old storage, or create new element, set them to new\n    // storage, and set styles.\n    return;\n  } // -------------------------------------------------------------------\n  // Start of closure variables available in \"Procedures in renderNode\".\n\n\n  var thisLayout = thisNode.getLayout();\n  var data = seriesModel.getData();\n  var nodeModel = thisNode.getModel(); // Only for enabling highlight/downplay. Clear firstly.\n  // Because some node will not be rendered.\n\n  data.setItemGraphicEl(thisNode.dataIndex, null);\n\n  if (!thisLayout || !thisLayout.isInView) {\n    return;\n  }\n\n  var thisWidth = thisLayout.width;\n  var thisHeight = thisLayout.height;\n  var borderWidth = thisLayout.borderWidth;\n  var thisInvisible = thisLayout.invisible;\n  var thisRawIndex = thisNode.getRawIndex();\n  var oldRawIndex = oldNode && oldNode.getRawIndex();\n  var thisViewChildren = thisNode.viewChildren;\n  var upperHeight = thisLayout.upperHeight;\n  var isParent = thisViewChildren && thisViewChildren.length;\n  var itemStyleNormalModel = nodeModel.getModel('itemStyle');\n  var itemStyleEmphasisModel = nodeModel.getModel(['emphasis', 'itemStyle']);\n  var itemStyleBlurModel = nodeModel.getModel(['blur', 'itemStyle']);\n  var itemStyleSelectModel = nodeModel.getModel(['select', 'itemStyle']);\n  var borderRadius = itemStyleNormalModel.get('borderRadius') || 0; // End of closure ariables available in \"Procedures in renderNode\".\n  // -----------------------------------------------------------------\n  // Node group\n\n  var group = giveGraphic('nodeGroup', Group);\n\n  if (!group) {\n    return;\n  }\n\n  parentGroup.add(group); // x,y are not set when el is above view root.\n\n  group.x = thisLayout.x || 0;\n  group.y = thisLayout.y || 0;\n  group.markRedraw();\n  inner(group).nodeWidth = thisWidth;\n  inner(group).nodeHeight = thisHeight;\n\n  if (thisLayout.isAboveViewRoot) {\n    return group;\n  } // Background\n\n\n  var bg = giveGraphic('background', Rect, depth, Z2_BG);\n  bg && renderBackground(group, bg, isParent && thisLayout.upperLabelHeight);\n  var emphasisModel = nodeModel.getModel('emphasis');\n  var focus = emphasisModel.get('focus');\n  var blurScope = emphasisModel.get('blurScope');\n  var isDisabled = emphasisModel.get('disabled');\n  var focusOrIndices = focus === 'ancestor' ? thisNode.getAncestorsIndices() : focus === 'descendant' ? thisNode.getDescendantIndices() : focus; // No children, render content.\n\n  if (isParent) {\n    // Because of the implementation about \"traverse\" in graphic hover style, we\n    // can not set hover listener on the \"group\" of non-leaf node. Otherwise the\n    // hover event from the descendents will be listenered.\n    if (isHighDownDispatcher(group)) {\n      setAsHighDownDispatcher(group, false);\n    }\n\n    if (bg) {\n      setAsHighDownDispatcher(bg, !isDisabled); // Only for enabling highlight/downplay.\n\n      data.setItemGraphicEl(thisNode.dataIndex, bg);\n      enableHoverFocus(bg, focusOrIndices, blurScope);\n    }\n  } else {\n    var content = giveGraphic('content', Rect, depth, Z2_CONTENT);\n    content && renderContent(group, content);\n    bg.disableMorphing = true;\n\n    if (bg && isHighDownDispatcher(bg)) {\n      setAsHighDownDispatcher(bg, false);\n    }\n\n    setAsHighDownDispatcher(group, !isDisabled); // Only for enabling highlight/downplay.\n\n    data.setItemGraphicEl(thisNode.dataIndex, group);\n    enableHoverFocus(group, focusOrIndices, blurScope);\n  }\n\n  return group; // ----------------------------\n  // | Procedures in renderNode |\n  // ----------------------------\n\n  function renderBackground(group, bg, useUpperLabel) {\n    var ecData = getECData(bg); // For tooltip.\n\n    ecData.dataIndex = thisNode.dataIndex;\n    ecData.seriesIndex = seriesModel.seriesIndex;\n    bg.setShape({\n      x: 0,\n      y: 0,\n      width: thisWidth,\n      height: thisHeight,\n      r: borderRadius\n    });\n\n    if (thisInvisible) {\n      // If invisible, do not set visual, otherwise the element will\n      // change immediately before animation. We think it is OK to\n      // remain its origin color when moving out of the view window.\n      processInvisible(bg);\n    } else {\n      bg.invisible = false;\n      var style = thisNode.getVisual('style');\n      var visualBorderColor = style.stroke;\n      var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n      normalStyle.fill = visualBorderColor;\n      var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n      emphasisStyle.fill = itemStyleEmphasisModel.get('borderColor');\n      var blurStyle = getStateItemStyle(itemStyleBlurModel);\n      blurStyle.fill = itemStyleBlurModel.get('borderColor');\n      var selectStyle = getStateItemStyle(itemStyleSelectModel);\n      selectStyle.fill = itemStyleSelectModel.get('borderColor');\n\n      if (useUpperLabel) {\n        var upperLabelWidth = thisWidth - 2 * borderWidth;\n        prepareText( // PENDING: convert ZRColor to ColorString for text.\n        bg, visualBorderColor, style.opacity, {\n          x: borderWidth,\n          y: 0,\n          width: upperLabelWidth,\n          height: upperHeight\n        });\n      } // For old bg.\n      else {\n          bg.removeTextContent();\n        }\n\n      bg.setStyle(normalStyle);\n      bg.ensureState('emphasis').style = emphasisStyle;\n      bg.ensureState('blur').style = blurStyle;\n      bg.ensureState('select').style = selectStyle;\n      setDefaultStateProxy(bg);\n    }\n\n    group.add(bg);\n  }\n\n  function renderContent(group, content) {\n    var ecData = getECData(content); // For tooltip.\n\n    ecData.dataIndex = thisNode.dataIndex;\n    ecData.seriesIndex = seriesModel.seriesIndex;\n    var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0);\n    var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0);\n    content.culling = true;\n    content.setShape({\n      x: borderWidth,\n      y: borderWidth,\n      width: contentWidth,\n      height: contentHeight,\n      r: borderRadius\n    });\n\n    if (thisInvisible) {\n      // If invisible, do not set visual, otherwise the element will\n      // change immediately before animation. We think it is OK to\n      // remain its origin color when moving out of the view window.\n      processInvisible(content);\n    } else {\n      content.invisible = false;\n      var nodeStyle = thisNode.getVisual('style');\n      var visualColor = nodeStyle.fill;\n      var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n      normalStyle.fill = visualColor;\n      normalStyle.decal = nodeStyle.decal;\n      var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n      var blurStyle = getStateItemStyle(itemStyleBlurModel);\n      var selectStyle = getStateItemStyle(itemStyleSelectModel); // PENDING: convert ZRColor to ColorString for text.\n\n      prepareText(content, visualColor, nodeStyle.opacity, null);\n      content.setStyle(normalStyle);\n      content.ensureState('emphasis').style = emphasisStyle;\n      content.ensureState('blur').style = blurStyle;\n      content.ensureState('select').style = selectStyle;\n      setDefaultStateProxy(content);\n    }\n\n    group.add(content);\n  }\n\n  function processInvisible(element) {\n    // Delay invisible setting utill animation finished,\n    // avoid element vanish suddenly before animation.\n    !element.invisible && willInvisibleEls.push(element);\n  }\n\n  function prepareText(rectEl, visualColor, visualOpacity, // Can be null/undefined\n  upperLabelRect) {\n    var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL);\n    var defaultText = convertOptionIdName(nodeModel.get('name'), null);\n    var isShow = normalLabelModel.getShallow('show');\n    setLabelStyle(rectEl, getLabelStatesModels(nodeModel, upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL), {\n      defaultText: isShow ? defaultText : null,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      labelFetcher: seriesModel,\n      labelDataIndex: thisNode.dataIndex\n    });\n    var textEl = rectEl.getTextContent();\n\n    if (!textEl) {\n      return;\n    }\n\n    var textStyle = textEl.style;\n    var textPadding = normalizeCssArray(textStyle.padding || 0);\n\n    if (upperLabelRect) {\n      rectEl.setTextConfig({\n        layoutRect: upperLabelRect\n      });\n      textEl.disableLabelLayout = true;\n    }\n\n    textEl.beforeUpdate = function () {\n      var width = Math.max((upperLabelRect ? upperLabelRect.width : rectEl.shape.width) - textPadding[1] - textPadding[3], 0);\n      var height = Math.max((upperLabelRect ? upperLabelRect.height : rectEl.shape.height) - textPadding[0] - textPadding[2], 0);\n\n      if (textStyle.width !== width || textStyle.height !== height) {\n        textEl.setStyle({\n          width: width,\n          height: height\n        });\n      }\n    };\n\n    textStyle.truncateMinChar = 2;\n    textStyle.lineOverflow = 'truncate';\n    addDrillDownIcon(textStyle, upperLabelRect, thisLayout);\n    var textEmphasisState = textEl.getState('emphasis');\n    addDrillDownIcon(textEmphasisState ? textEmphasisState.style : null, upperLabelRect, thisLayout);\n  }\n\n  function addDrillDownIcon(style, upperLabelRect, thisLayout) {\n    var text = style ? style.text : null;\n\n    if (!upperLabelRect && thisLayout.isLeafRoot && text != null) {\n      var iconChar = seriesModel.get('drillDownIcon', true);\n      style.text = iconChar ? iconChar + ' ' + text : text;\n    }\n  }\n\n  function giveGraphic(storageName, Ctor, depth, z) {\n    var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex];\n    var lasts = lastsForAnimation[storageName];\n\n    if (element) {\n      // Remove from oldStorage\n      oldStorage[storageName][oldRawIndex] = null;\n      prepareAnimationWhenHasOld(lasts, element);\n    } // If invisible and no old element, do not create new element (for optimizing).\n    else if (!thisInvisible) {\n        element = new Ctor();\n\n        if (element instanceof Displayable) {\n          element.z2 = calculateZ2(depth, z);\n        }\n\n        prepareAnimationWhenNoOld(lasts, element);\n      } // Set to thisStorage\n\n\n    return thisStorage[storageName][thisRawIndex] = element;\n  }\n\n  function prepareAnimationWhenHasOld(lasts, element) {\n    var lastCfg = lasts[thisRawIndex] = {};\n\n    if (element instanceof Group) {\n      lastCfg.oldX = element.x;\n      lastCfg.oldY = element.y;\n    } else {\n      lastCfg.oldShape = extend({}, element.shape);\n    }\n  } // If a element is new, we need to find the animation start point carefully,\n  // otherwise it will looks strange when 'zoomToNode'.\n\n\n  function prepareAnimationWhenNoOld(lasts, element) {\n    var lastCfg = lasts[thisRawIndex] = {};\n    var parentNode = thisNode.parentNode;\n    var isGroup = element instanceof graphic.Group;\n\n    if (parentNode && (!reRoot || reRoot.direction === 'drillDown')) {\n      var parentOldX = 0;\n      var parentOldY = 0; // New nodes appear from right-bottom corner in 'zoomToNode' animation.\n      // For convenience, get old bounding rect from background.\n\n      var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()];\n\n      if (!reRoot && parentOldBg && parentOldBg.oldShape) {\n        parentOldX = parentOldBg.oldShape.width;\n        parentOldY = parentOldBg.oldShape.height;\n      } // When no parent old shape found, its parent is new too,\n      // so we can just use {x:0, y:0}.\n\n\n      if (isGroup) {\n        lastCfg.oldX = 0;\n        lastCfg.oldY = parentOldY;\n      } else {\n        lastCfg.oldShape = {\n          x: parentOldX,\n          y: parentOldY,\n          width: 0,\n          height: 0\n        };\n      }\n    } // Fade in, user can be aware that these nodes are new.\n\n\n    lastCfg.fadein = !isGroup;\n  }\n} // We can not set all backgroud with the same z, Because the behaviour of\n// drill down and roll up differ background creation sequence from tree\n// hierarchy sequence, which cause that lowser background element overlap\n// upper ones. So we calculate z based on depth.\n// Moreover, we try to shrink down z interval to [0, 1] to avoid that\n// treemap with large z overlaps other components.\n\n\nfunction calculateZ2(depth, z2InLevel) {\n  return depth * Z2_BASE + z2InLevel;\n}\n\nexport default TreemapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as zrColor from 'zrender/lib/tool/color.js';\nimport { linearMap } from '../util/number.js';\nimport { warn } from '../util/log.js';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar CATEGORY_DEFAULT_VISUAL_INDEX = -1;\n\nvar VisualMapping =\n/** @class */\nfunction () {\n  function VisualMapping(option) {\n    var mappingMethod = option.mappingMethod;\n    var visualType = option.type;\n    var thisOption = this.option = zrUtil.clone(option);\n    this.type = visualType;\n    this.mappingMethod = mappingMethod;\n    this._normalizeData = normalizers[mappingMethod];\n    var visualHandler = VisualMapping.visualHandlers[visualType];\n    this.applyVisual = visualHandler.applyVisual;\n    this.getColorMapper = visualHandler.getColorMapper;\n    this._normalizedToVisual = visualHandler._normalizedToVisual[mappingMethod];\n\n    if (mappingMethod === 'piecewise') {\n      normalizeVisualRange(thisOption);\n      preprocessForPiecewise(thisOption);\n    } else if (mappingMethod === 'category') {\n      thisOption.categories ? preprocessForSpecifiedCategory(thisOption) // categories is ordinal when thisOption.categories not specified,\n      // which need no more preprocess except normalize visual.\n      : normalizeVisualRange(thisOption, true);\n    } else {\n      // mappingMethod === 'linear' or 'fixed'\n      zrUtil.assert(mappingMethod !== 'linear' || thisOption.dataExtent);\n      normalizeVisualRange(thisOption);\n    }\n  }\n\n  VisualMapping.prototype.mapValueToVisual = function (value) {\n    var normalized = this._normalizeData(value);\n\n    return this._normalizedToVisual(normalized, value);\n  };\n\n  VisualMapping.prototype.getNormalizer = function () {\n    return zrUtil.bind(this._normalizeData, this);\n  };\n  /**\n   * List available visual types.\n   *\n   * @public\n   * @return {Array.<string>}\n   */\n\n\n  VisualMapping.listVisualTypes = function () {\n    return zrUtil.keys(VisualMapping.visualHandlers);\n  }; // /**\n  //  * @public\n  //  */\n  // static addVisualHandler(name, handler) {\n  //     visualHandlers[name] = handler;\n  // }\n\n  /**\n   * @public\n   */\n\n\n  VisualMapping.isValidType = function (visualType) {\n    return VisualMapping.visualHandlers.hasOwnProperty(visualType);\n  };\n  /**\n   * Convinent method.\n   * Visual can be Object or Array or primary type.\n   */\n\n\n  VisualMapping.eachVisual = function (visual, callback, context) {\n    if (zrUtil.isObject(visual)) {\n      zrUtil.each(visual, callback, context);\n    } else {\n      callback.call(context, visual);\n    }\n  };\n\n  VisualMapping.mapVisual = function (visual, callback, context) {\n    var isPrimary;\n    var newVisual = zrUtil.isArray(visual) ? [] : zrUtil.isObject(visual) ? {} : (isPrimary = true, null);\n    VisualMapping.eachVisual(visual, function (v, key) {\n      var newVal = callback.call(context, v, key);\n      isPrimary ? newVisual = newVal : newVisual[key] = newVal;\n    });\n    return newVisual;\n  };\n  /**\n   * Retrieve visual properties from given object.\n   */\n\n\n  VisualMapping.retrieveVisuals = function (obj) {\n    var ret = {};\n    var hasVisual;\n    obj && each(VisualMapping.visualHandlers, function (h, visualType) {\n      if (obj.hasOwnProperty(visualType)) {\n        ret[visualType] = obj[visualType];\n        hasVisual = true;\n      }\n    });\n    return hasVisual ? ret : null;\n  };\n  /**\n   * Give order to visual types, considering colorSaturation, colorAlpha depends on color.\n   *\n   * @public\n   * @param {(Object|Array)} visualTypes If Object, like: {color: ..., colorSaturation: ...}\n   *                                     IF Array, like: ['color', 'symbol', 'colorSaturation']\n   * @return {Array.<string>} Sorted visual types.\n   */\n\n\n  VisualMapping.prepareVisualTypes = function (visualTypes) {\n    if (zrUtil.isArray(visualTypes)) {\n      visualTypes = visualTypes.slice();\n    } else if (isObject(visualTypes)) {\n      var types_1 = [];\n      each(visualTypes, function (item, type) {\n        types_1.push(type);\n      });\n      visualTypes = types_1;\n    } else {\n      return [];\n    }\n\n    visualTypes.sort(function (type1, type2) {\n      // color should be front of colorSaturation, colorAlpha, ...\n      // symbol and symbolSize do not matter.\n      return type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0 ? 1 : -1;\n    });\n    return visualTypes;\n  };\n  /**\n   * 'color', 'colorSaturation', 'colorAlpha', ... are depends on 'color'.\n   * Other visuals are only depends on themself.\n   */\n\n\n  VisualMapping.dependsOn = function (visualType1, visualType2) {\n    return visualType2 === 'color' ? !!(visualType1 && visualType1.indexOf(visualType2) === 0) : visualType1 === visualType2;\n  };\n  /**\n   * @param value\n   * @param pieceList [{value: ..., interval: [min, max]}, ...]\n   *                         Always from small to big.\n   * @param findClosestWhenOutside Default to be false\n   * @return index\n   */\n\n\n  VisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) {\n    var possibleI;\n    var abs = Infinity; // value has the higher priority.\n\n    for (var i = 0, len = pieceList.length; i < len; i++) {\n      var pieceValue = pieceList[i].value;\n\n      if (pieceValue != null) {\n        if (pieceValue === value // FIXME\n        // It is supposed to compare value according to value type of dimension,\n        // but currently value type can exactly be string or number.\n        // Compromise for numeric-like string (like '12'), especially\n        // in the case that visualMap.categories is ['22', '33'].\n        || zrUtil.isString(pieceValue) && pieceValue === value + '') {\n          return i;\n        }\n\n        findClosestWhenOutside && updatePossible(pieceValue, i);\n      }\n    }\n\n    for (var i = 0, len = pieceList.length; i < len; i++) {\n      var piece = pieceList[i];\n      var interval = piece.interval;\n      var close_1 = piece.close;\n\n      if (interval) {\n        if (interval[0] === -Infinity) {\n          if (littleThan(close_1[1], value, interval[1])) {\n            return i;\n          }\n        } else if (interval[1] === Infinity) {\n          if (littleThan(close_1[0], interval[0], value)) {\n            return i;\n          }\n        } else if (littleThan(close_1[0], interval[0], value) && littleThan(close_1[1], value, interval[1])) {\n          return i;\n        }\n\n        findClosestWhenOutside && updatePossible(interval[0], i);\n        findClosestWhenOutside && updatePossible(interval[1], i);\n      }\n    }\n\n    if (findClosestWhenOutside) {\n      return value === Infinity ? pieceList.length - 1 : value === -Infinity ? 0 : possibleI;\n    }\n\n    function updatePossible(val, index) {\n      var newAbs = Math.abs(val - value);\n\n      if (newAbs < abs) {\n        abs = newAbs;\n        possibleI = index;\n      }\n    }\n  };\n\n  VisualMapping.visualHandlers = {\n    color: {\n      applyVisual: makeApplyVisual('color'),\n      getColorMapper: function () {\n        var thisOption = this.option;\n        return zrUtil.bind(thisOption.mappingMethod === 'category' ? function (value, isNormalized) {\n          !isNormalized && (value = this._normalizeData(value));\n          return doMapCategory.call(this, value);\n        } : function (value, isNormalized, out) {\n          // If output rgb array\n          // which will be much faster and useful in pixel manipulation\n          var returnRGBArray = !!out;\n          !isNormalized && (value = this._normalizeData(value));\n          out = zrColor.fastLerp(value, thisOption.parsedVisual, out);\n          return returnRGBArray ? out : zrColor.stringify(out, 'rgba');\n        }, this);\n      },\n      _normalizedToVisual: {\n        linear: function (normalized) {\n          return zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n        },\n        category: doMapCategory,\n        piecewise: function (normalized, value) {\n          var result = getSpecifiedVisual.call(this, value);\n\n          if (result == null) {\n            result = zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n          }\n\n          return result;\n        },\n        fixed: doMapFixed\n      }\n    },\n    colorHue: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, value);\n    }),\n    colorSaturation: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, null, value);\n    }),\n    colorLightness: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, null, null, value);\n    }),\n    colorAlpha: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyAlpha(color, value);\n    }),\n    decal: {\n      applyVisual: makeApplyVisual('decal'),\n      _normalizedToVisual: {\n        linear: null,\n        category: doMapCategory,\n        piecewise: null,\n        fixed: null\n      }\n    },\n    opacity: {\n      applyVisual: makeApplyVisual('opacity'),\n      _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n    },\n    liftZ: {\n      applyVisual: makeApplyVisual('liftZ'),\n      _normalizedToVisual: {\n        linear: doMapFixed,\n        category: doMapFixed,\n        piecewise: doMapFixed,\n        fixed: doMapFixed\n      }\n    },\n    symbol: {\n      applyVisual: function (value, getter, setter) {\n        var symbolCfg = this.mapValueToVisual(value);\n        setter('symbol', symbolCfg);\n      },\n      _normalizedToVisual: {\n        linear: doMapToArray,\n        category: doMapCategory,\n        piecewise: function (normalized, value) {\n          var result = getSpecifiedVisual.call(this, value);\n\n          if (result == null) {\n            result = doMapToArray.call(this, normalized);\n          }\n\n          return result;\n        },\n        fixed: doMapFixed\n      }\n    },\n    symbolSize: {\n      applyVisual: makeApplyVisual('symbolSize'),\n      _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n    }\n  };\n  return VisualMapping;\n}();\n\nfunction preprocessForPiecewise(thisOption) {\n  var pieceList = thisOption.pieceList;\n  thisOption.hasSpecialVisual = false;\n  zrUtil.each(pieceList, function (piece, index) {\n    piece.originIndex = index; // piece.visual is \"result visual value\" but not\n    // a visual range, so it does not need to be normalized.\n\n    if (piece.visual != null) {\n      thisOption.hasSpecialVisual = true;\n    }\n  });\n}\n\nfunction preprocessForSpecifiedCategory(thisOption) {\n  // Hash categories.\n  var categories = thisOption.categories;\n  var categoryMap = thisOption.categoryMap = {};\n  var visual = thisOption.visual;\n  each(categories, function (cate, index) {\n    categoryMap[cate] = index;\n  }); // Process visual map input.\n\n  if (!zrUtil.isArray(visual)) {\n    var visualArr_1 = [];\n\n    if (zrUtil.isObject(visual)) {\n      each(visual, function (v, cate) {\n        var index = categoryMap[cate];\n        visualArr_1[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v;\n      });\n    } else {\n      // Is primary type, represents default visual.\n      visualArr_1[CATEGORY_DEFAULT_VISUAL_INDEX] = visual;\n    }\n\n    visual = setVisualToOption(thisOption, visualArr_1);\n  } // Remove categories that has no visual,\n  // then we can mapping them to CATEGORY_DEFAULT_VISUAL_INDEX.\n\n\n  for (var i = categories.length - 1; i >= 0; i--) {\n    if (visual[i] == null) {\n      delete categoryMap[categories[i]];\n      categories.pop();\n    }\n  }\n}\n\nfunction normalizeVisualRange(thisOption, isCategory) {\n  var visual = thisOption.visual;\n  var visualArr = [];\n\n  if (zrUtil.isObject(visual)) {\n    each(visual, function (v) {\n      visualArr.push(v);\n    });\n  } else if (visual != null) {\n    visualArr.push(visual);\n  }\n\n  var doNotNeedPair = {\n    color: 1,\n    symbol: 1\n  };\n\n  if (!isCategory && visualArr.length === 1 && !doNotNeedPair.hasOwnProperty(thisOption.type)) {\n    // Do not care visualArr.length === 0, which is illegal.\n    visualArr[1] = visualArr[0];\n  }\n\n  setVisualToOption(thisOption, visualArr);\n}\n\nfunction makePartialColorVisualHandler(applyValue) {\n  return {\n    applyVisual: function (value, getter, setter) {\n      // Only used in HSL\n      var colorChannel = this.mapValueToVisual(value); // Must not be array value\n\n      setter('color', applyValue(getter('color'), colorChannel));\n    },\n    _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n  };\n}\n\nfunction doMapToArray(normalized) {\n  var visual = this.option.visual;\n  return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {}; // TODO {}?\n}\n\nfunction makeApplyVisual(visualType) {\n  return function (value, getter, setter) {\n    setter(visualType, this.mapValueToVisual(value));\n  };\n}\n\nfunction doMapCategory(normalized) {\n  var visual = this.option.visual;\n  return visual[this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX ? normalized % visual.length : normalized];\n}\n\nfunction doMapFixed() {\n  // visual will be convert to array.\n  return this.option.visual[0];\n}\n/**\n * Create mapped to numeric visual\n */\n\n\nfunction createNormalizedToNumericVisual(sourceExtent) {\n  return {\n    linear: function (normalized) {\n      return linearMap(normalized, sourceExtent, this.option.visual, true);\n    },\n    category: doMapCategory,\n    piecewise: function (normalized, value) {\n      var result = getSpecifiedVisual.call(this, value);\n\n      if (result == null) {\n        result = linearMap(normalized, sourceExtent, this.option.visual, true);\n      }\n\n      return result;\n    },\n    fixed: doMapFixed\n  };\n}\n\nfunction getSpecifiedVisual(value) {\n  var thisOption = this.option;\n  var pieceList = thisOption.pieceList;\n\n  if (thisOption.hasSpecialVisual) {\n    var pieceIndex = VisualMapping.findPieceIndex(value, pieceList);\n    var piece = pieceList[pieceIndex];\n\n    if (piece && piece.visual) {\n      return piece.visual[this.type];\n    }\n  }\n}\n\nfunction setVisualToOption(thisOption, visualArr) {\n  thisOption.visual = visualArr;\n\n  if (thisOption.type === 'color') {\n    thisOption.parsedVisual = zrUtil.map(visualArr, function (item) {\n      var color = zrColor.parse(item);\n\n      if (!color && process.env.NODE_ENV !== 'production') {\n        warn(\"'\" + item + \"' is an illegal color, fallback to '#000000'\", true);\n      }\n\n      return color || [0, 0, 0, 1];\n    });\n  }\n\n  return visualArr;\n}\n/**\n * Normalizers by mapping methods.\n */\n\n\nvar normalizers = {\n  linear: function (value) {\n    return linearMap(value, this.option.dataExtent, [0, 1], true);\n  },\n  piecewise: function (value) {\n    var pieceList = this.option.pieceList;\n    var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true);\n\n    if (pieceIndex != null) {\n      return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true);\n    }\n  },\n  category: function (value) {\n    var index = this.option.categories ? this.option.categoryMap[value] : value; // ordinal value\n\n    return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index;\n  },\n  fixed: zrUtil.noop\n};\n\nfunction littleThan(close, a, b) {\n  return close ? a <= b : a < b;\n}\n\nexport default VisualMapping;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport { each, extend, isArray } from 'zrender/lib/core/util.js';\nimport { modifyHSL, modifyAlpha } from 'zrender/lib/tool/color.js';\nimport { makeInner } from '../../util/model.js';\nvar ITEM_STYLE_NORMAL = 'itemStyle';\nvar inner = makeInner();\nexport default {\n  seriesType: 'treemap',\n  reset: function (seriesModel) {\n    var tree = seriesModel.getData().tree;\n    var root = tree.root;\n\n    if (root.isRemoved()) {\n      return;\n    }\n\n    travelTree(root, // Visual should calculate from tree root but not view root.\n    {}, seriesModel.getViewRoot().getAncestors(), seriesModel);\n  }\n};\n\nfunction travelTree(node, designatedVisual, viewRootAncestors, seriesModel) {\n  var nodeModel = node.getModel();\n  var nodeLayout = node.getLayout();\n  var data = node.hostTree.data; // Optimize\n\n  if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) {\n    return;\n  }\n\n  var nodeItemStyleModel = nodeModel.getModel(ITEM_STYLE_NORMAL);\n  var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel);\n  var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style'); // calculate border color\n\n  var borderColor = nodeItemStyleModel.get('borderColor');\n  var borderColorSaturation = nodeItemStyleModel.get('borderColorSaturation');\n  var thisNodeColor;\n\n  if (borderColorSaturation != null) {\n    // For performance, do not always execute 'calculateColor'.\n    thisNodeColor = calculateColor(visuals);\n    borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor);\n  }\n\n  existsStyle.stroke = borderColor;\n  var viewChildren = node.viewChildren;\n\n  if (!viewChildren || !viewChildren.length) {\n    thisNodeColor = calculateColor(visuals); // Apply visual to this node.\n\n    existsStyle.fill = thisNodeColor;\n  } else {\n    var mapping_1 = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren); // Designate visual to children.\n\n    each(viewChildren, function (child, index) {\n      // If higher than viewRoot, only ancestors of viewRoot is needed to visit.\n      if (child.depth >= viewRootAncestors.length || child === viewRootAncestors[child.depth]) {\n        var childVisual = mapVisual(nodeModel, visuals, child, index, mapping_1, seriesModel);\n        travelTree(child, childVisual, viewRootAncestors, seriesModel);\n      }\n    });\n  }\n}\n\nfunction buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel) {\n  var visuals = extend({}, designatedVisual);\n  var designatedVisualItemStyle = seriesModel.designatedVisualItemStyle;\n  each(['color', 'colorAlpha', 'colorSaturation'], function (visualName) {\n    // Priority: thisNode > thisLevel > parentNodeDesignated > seriesModel\n    designatedVisualItemStyle[visualName] = designatedVisual[visualName];\n    var val = nodeItemStyleModel.get(visualName);\n    designatedVisualItemStyle[visualName] = null;\n    val != null && (visuals[visualName] = val);\n  });\n  return visuals;\n}\n\nfunction calculateColor(visuals) {\n  var color = getValueVisualDefine(visuals, 'color');\n\n  if (color) {\n    var colorAlpha = getValueVisualDefine(visuals, 'colorAlpha');\n    var colorSaturation = getValueVisualDefine(visuals, 'colorSaturation');\n\n    if (colorSaturation) {\n      color = modifyHSL(color, null, null, colorSaturation);\n    }\n\n    if (colorAlpha) {\n      color = modifyAlpha(color, colorAlpha);\n    }\n\n    return color;\n  }\n}\n\nfunction calculateBorderColor(borderColorSaturation, thisNodeColor) {\n  return thisNodeColor != null // Can only be string\n  ? modifyHSL(thisNodeColor, null, null, borderColorSaturation) : null;\n}\n\nfunction getValueVisualDefine(visuals, name) {\n  var value = visuals[name];\n\n  if (value != null && value !== 'none') {\n    return value;\n  }\n}\n\nfunction buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) {\n  if (!viewChildren || !viewChildren.length) {\n    return;\n  }\n\n  var rangeVisual = getRangeVisual(nodeModel, 'color') || visuals.color != null && visuals.color !== 'none' && (getRangeVisual(nodeModel, 'colorAlpha') || getRangeVisual(nodeModel, 'colorSaturation'));\n\n  if (!rangeVisual) {\n    return;\n  }\n\n  var visualMin = nodeModel.get('visualMin');\n  var visualMax = nodeModel.get('visualMax');\n  var dataExtent = nodeLayout.dataExtent.slice();\n  visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin);\n  visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax);\n  var colorMappingBy = nodeModel.get('colorMappingBy');\n  var opt = {\n    type: rangeVisual.name,\n    dataExtent: dataExtent,\n    visual: rangeVisual.range\n  };\n\n  if (opt.type === 'color' && (colorMappingBy === 'index' || colorMappingBy === 'id')) {\n    opt.mappingMethod = 'category';\n    opt.loop = true; // categories is ordinal, so do not set opt.categories.\n  } else {\n    opt.mappingMethod = 'linear';\n  }\n\n  var mapping = new VisualMapping(opt);\n  inner(mapping).drColorMappingBy = colorMappingBy;\n  return mapping;\n} // Notice: If we dont have the attribute 'colorRange', but only use\n// attribute 'color' to represent both concepts of 'colorRange' and 'color',\n// (It means 'colorRange' when 'color' is Array, means 'color' when not array),\n// this problem will be encountered:\n// If a level-1 node dont have children, and its siblings has children,\n// and colorRange is set on level-1, then the node can not be colored.\n// So we separate 'colorRange' and 'color' to different attributes.\n\n\nfunction getRangeVisual(nodeModel, name) {\n  // 'colorRange', 'colorARange', 'colorSRange'.\n  // If not exsits on this node, fetch from levels and series.\n  var range = nodeModel.get(name);\n  return isArray(range) && range.length ? {\n    name: name,\n    range: range\n  } : null;\n}\n\nfunction mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) {\n  var childVisuals = extend({}, visuals);\n\n  if (mapping) {\n    // Only support color, colorAlpha, colorSaturation.\n    var mappingType = mapping.type;\n    var colorMappingBy = mappingType === 'color' && inner(mapping).drColorMappingBy;\n    var value = colorMappingBy === 'index' ? index : colorMappingBy === 'id' ? seriesModel.mapIdToIndex(child.getId()) : child.getValue(nodeModel.get('visualDimension'));\n    childVisuals[mappingType] = mapping.mapValueToVisual(value);\n  }\n\n  return childVisuals;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embeded for some of the code in this file:\n* The treemap layout implementation was originally copied from\n* \"d3.js\" with some modifications made for this project.\n* (See more details in the comment of the method \"squarify\" below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* </licenses/LICENSE-d3>).\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport { parsePercent, MAX_SAFE_INTEGER } from '../../util/number.js';\nimport * as layout from '../../util/layout.js';\nimport * as helper from '../helper/treeHelper.js';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar retrieveValue = zrUtil.retrieve;\nvar each = zrUtil.each;\nvar PATH_BORDER_WIDTH = ['itemStyle', 'borderWidth'];\nvar PATH_GAP_WIDTH = ['itemStyle', 'gapWidth'];\nvar PATH_UPPER_LABEL_SHOW = ['upperLabel', 'show'];\nvar PATH_UPPER_LABEL_HEIGHT = ['upperLabel', 'height'];\n;\n/**\n * @public\n */\n\nexport default {\n  seriesType: 'treemap',\n  reset: function (seriesModel, ecModel, api, payload) {\n    // Layout result in each node:\n    // {x, y, width, height, area, borderWidth}\n    var ecWidth = api.getWidth();\n    var ecHeight = api.getHeight();\n    var seriesOption = seriesModel.option;\n    var layoutInfo = layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    var size = seriesOption.size || []; // Compatible with ec2.\n\n    var containerWidth = parsePercent(retrieveValue(layoutInfo.width, size[0]), ecWidth);\n    var containerHeight = parsePercent(retrieveValue(layoutInfo.height, size[1]), ecHeight); // Fetch payload info.\n\n    var payloadType = payload && payload.type;\n    var types = ['treemapZoomToNode', 'treemapRootToNode'];\n    var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n    var rootRect = payloadType === 'treemapRender' || payloadType === 'treemapMove' ? payload.rootRect : null;\n    var viewRoot = seriesModel.getViewRoot();\n    var viewAbovePath = helper.getPathToRoot(viewRoot);\n\n    if (payloadType !== 'treemapMove') {\n      var rootSize = payloadType === 'treemapZoomToNode' ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) : rootRect ? [rootRect.width, rootRect.height] : [containerWidth, containerHeight];\n      var sort_1 = seriesOption.sort;\n\n      if (sort_1 && sort_1 !== 'asc' && sort_1 !== 'desc') {\n        // Default to be desc order.\n        sort_1 = 'desc';\n      }\n\n      var options = {\n        squareRatio: seriesOption.squareRatio,\n        sort: sort_1,\n        leafDepth: seriesOption.leafDepth\n      }; // layout should be cleared because using updateView but not update.\n\n      viewRoot.hostTree.clearLayouts(); // TODO\n      // optimize: if out of view clip, do not layout.\n      // But take care that if do not render node out of view clip,\n      // how to calculate start po\n\n      var viewRootLayout_1 = {\n        x: 0,\n        y: 0,\n        width: rootSize[0],\n        height: rootSize[1],\n        area: rootSize[0] * rootSize[1]\n      };\n      viewRoot.setLayout(viewRootLayout_1);\n      squarify(viewRoot, options, false, 0); // Supplement layout.\n\n      viewRootLayout_1 = viewRoot.getLayout();\n      each(viewAbovePath, function (node, index) {\n        var childValue = (viewAbovePath[index + 1] || viewRoot).getValue();\n        node.setLayout(zrUtil.extend({\n          dataExtent: [childValue, childValue],\n          borderWidth: 0,\n          upperHeight: 0\n        }, viewRootLayout_1));\n      });\n    }\n\n    var treeRoot = seriesModel.getData().tree.root;\n    treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true);\n    seriesModel.setLayoutInfo(layoutInfo); // FIXME\n    // 现在没有clip功能，暂时取ec高宽。\n\n    prunning(treeRoot, // Transform to base element coordinate system.\n    new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), viewAbovePath, viewRoot, 0);\n  }\n};\n/**\n * Layout treemap with squarify algorithm.\n * The original presentation of this algorithm\n * was made by Mark Bruls, Kees Huizing, and Jarke J. van Wijk\n * <https://graphics.ethz.ch/teaching/scivis_common/Literature/squarifiedTreeMaps.pdf>.\n * The implementation of this algorithm was originally copied from \"d3.js\"\n * <https://github.com/d3/d3/blob/9cc9a875e636a1dcf36cc1e07bdf77e1ad6e2c74/src/layout/treemap.js>\n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * @protected\n * @param {module:echarts/data/Tree~TreeNode} node\n * @param {Object} options\n * @param {string} options.sort 'asc' or 'desc'\n * @param {number} options.squareRatio\n * @param {boolean} hideChildren\n * @param {number} depth\n */\n\nfunction squarify(node, options, hideChildren, depth) {\n  var width;\n  var height;\n\n  if (node.isRemoved()) {\n    return;\n  }\n\n  var thisLayout = node.getLayout();\n  width = thisLayout.width;\n  height = thisLayout.height; // Considering border and gap\n\n  var nodeModel = node.getModel();\n  var borderWidth = nodeModel.get(PATH_BORDER_WIDTH);\n  var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2;\n  var upperLabelHeight = getUpperLabelHeight(nodeModel);\n  var upperHeight = Math.max(borderWidth, upperLabelHeight);\n  var layoutOffset = borderWidth - halfGapWidth;\n  var layoutOffsetUpper = upperHeight - halfGapWidth;\n  node.setLayout({\n    borderWidth: borderWidth,\n    upperHeight: upperHeight,\n    upperLabelHeight: upperLabelHeight\n  }, true);\n  width = mathMax(width - 2 * layoutOffset, 0);\n  height = mathMax(height - layoutOffset - layoutOffsetUpper, 0);\n  var totalArea = width * height;\n  var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth);\n\n  if (!viewChildren.length) {\n    return;\n  }\n\n  var rect = {\n    x: layoutOffset,\n    y: layoutOffsetUpper,\n    width: width,\n    height: height\n  };\n  var rowFixedLength = mathMin(width, height);\n  var best = Infinity; // the best row score so far\n\n  var row = [];\n  row.area = 0;\n\n  for (var i = 0, len = viewChildren.length; i < len;) {\n    var child = viewChildren[i];\n    row.push(child);\n    row.area += child.getLayout().area;\n    var score = worst(row, rowFixedLength, options.squareRatio); // continue with this orientation\n\n    if (score <= best) {\n      i++;\n      best = score;\n    } // abort, and try a different orientation\n    else {\n        row.area -= row.pop().getLayout().area;\n        position(row, rowFixedLength, rect, halfGapWidth, false);\n        rowFixedLength = mathMin(rect.width, rect.height);\n        row.length = row.area = 0;\n        best = Infinity;\n      }\n  }\n\n  if (row.length) {\n    position(row, rowFixedLength, rect, halfGapWidth, true);\n  }\n\n  if (!hideChildren) {\n    var childrenVisibleMin = nodeModel.get('childrenVisibleMin');\n\n    if (childrenVisibleMin != null && totalArea < childrenVisibleMin) {\n      hideChildren = true;\n    }\n  }\n\n  for (var i = 0, len = viewChildren.length; i < len; i++) {\n    squarify(viewChildren[i], options, hideChildren, depth + 1);\n  }\n}\n/**\n * Set area to each child, and calculate data extent for visual coding.\n */\n\n\nfunction initChildren(node, nodeModel, totalArea, options, hideChildren, depth) {\n  var viewChildren = node.children || [];\n  var orderBy = options.sort;\n  orderBy !== 'asc' && orderBy !== 'desc' && (orderBy = null);\n  var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth; // leafDepth has higher priority.\n\n  if (hideChildren && !overLeafDepth) {\n    return node.viewChildren = [];\n  } // Sort children, order by desc.\n\n\n  viewChildren = zrUtil.filter(viewChildren, function (child) {\n    return !child.isRemoved();\n  });\n  sort(viewChildren, orderBy);\n  var info = statistic(nodeModel, viewChildren, orderBy);\n\n  if (info.sum === 0) {\n    return node.viewChildren = [];\n  }\n\n  info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren);\n\n  if (info.sum === 0) {\n    return node.viewChildren = [];\n  } // Set area to each child.\n\n\n  for (var i = 0, len = viewChildren.length; i < len; i++) {\n    var area = viewChildren[i].getValue() / info.sum * totalArea; // Do not use setLayout({...}, true), because it is needed to clear last layout.\n\n    viewChildren[i].setLayout({\n      area: area\n    });\n  }\n\n  if (overLeafDepth) {\n    viewChildren.length && node.setLayout({\n      isLeafRoot: true\n    }, true);\n    viewChildren.length = 0;\n  }\n\n  node.viewChildren = viewChildren;\n  node.setLayout({\n    dataExtent: info.dataExtent\n  }, true);\n  return viewChildren;\n}\n/**\n * Consider 'visibleMin'. Modify viewChildren and get new sum.\n */\n\n\nfunction filterByThreshold(nodeModel, totalArea, sum, orderBy, orderedChildren) {\n  // visibleMin is not supported yet when no option.sort.\n  if (!orderBy) {\n    return sum;\n  }\n\n  var visibleMin = nodeModel.get('visibleMin');\n  var len = orderedChildren.length;\n  var deletePoint = len; // Always travel from little value to big value.\n\n  for (var i = len - 1; i >= 0; i--) {\n    var value = orderedChildren[orderBy === 'asc' ? len - i - 1 : i].getValue();\n\n    if (value / sum * totalArea < visibleMin) {\n      deletePoint = i;\n      sum -= value;\n    }\n  }\n\n  orderBy === 'asc' ? orderedChildren.splice(0, len - deletePoint) : orderedChildren.splice(deletePoint, len - deletePoint);\n  return sum;\n}\n/**\n * Sort\n */\n\n\nfunction sort(viewChildren, orderBy) {\n  if (orderBy) {\n    viewChildren.sort(function (a, b) {\n      var diff = orderBy === 'asc' ? a.getValue() - b.getValue() : b.getValue() - a.getValue();\n      return diff === 0 ? orderBy === 'asc' ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex : diff;\n    });\n  }\n\n  return viewChildren;\n}\n/**\n * Statistic\n */\n\n\nfunction statistic(nodeModel, children, orderBy) {\n  // Calculate sum.\n  var sum = 0;\n\n  for (var i = 0, len = children.length; i < len; i++) {\n    sum += children[i].getValue();\n  } // Statistic data extent for latter visual coding.\n  // Notice: data extent should be calculate based on raw children\n  // but not filtered view children, otherwise visual mapping will not\n  // be stable when zoom (where children is filtered by visibleMin).\n\n\n  var dimension = nodeModel.get('visualDimension');\n  var dataExtent; // The same as area dimension.\n\n  if (!children || !children.length) {\n    dataExtent = [NaN, NaN];\n  } else if (dimension === 'value' && orderBy) {\n    dataExtent = [children[children.length - 1].getValue(), children[0].getValue()];\n    orderBy === 'asc' && dataExtent.reverse();\n  } // Other dimension.\n  else {\n      dataExtent = [Infinity, -Infinity];\n      each(children, function (child) {\n        var value = child.getValue(dimension);\n        value < dataExtent[0] && (dataExtent[0] = value);\n        value > dataExtent[1] && (dataExtent[1] = value);\n      });\n    }\n\n  return {\n    sum: sum,\n    dataExtent: dataExtent\n  };\n}\n/**\n * Computes the score for the specified row,\n * as the worst aspect ratio.\n */\n\n\nfunction worst(row, rowFixedLength, ratio) {\n  var areaMax = 0;\n  var areaMin = Infinity;\n\n  for (var i = 0, area = void 0, len = row.length; i < len; i++) {\n    area = row[i].getLayout().area;\n\n    if (area) {\n      area < areaMin && (areaMin = area);\n      area > areaMax && (areaMax = area);\n    }\n  }\n\n  var squareArea = row.area * row.area;\n  var f = rowFixedLength * rowFixedLength * ratio;\n  return squareArea ? mathMax(f * areaMax / squareArea, squareArea / (f * areaMin)) : Infinity;\n}\n/**\n * Positions the specified row of nodes. Modifies `rect`.\n */\n\n\nfunction position(row, rowFixedLength, rect, halfGapWidth, flush) {\n  // When rowFixedLength === rect.width,\n  // it is horizontal subdivision,\n  // rowFixedLength is the width of the subdivision,\n  // rowOtherLength is the height of the subdivision,\n  // and nodes will be positioned from left to right.\n  // wh[idx0WhenH] means: when horizontal,\n  //      wh[idx0WhenH] => wh[0] => 'width'.\n  //      xy[idx1WhenH] => xy[1] => 'y'.\n  var idx0WhenH = rowFixedLength === rect.width ? 0 : 1;\n  var idx1WhenH = 1 - idx0WhenH;\n  var xy = ['x', 'y'];\n  var wh = ['width', 'height'];\n  var last = rect[xy[idx0WhenH]];\n  var rowOtherLength = rowFixedLength ? row.area / rowFixedLength : 0;\n\n  if (flush || rowOtherLength > rect[wh[idx1WhenH]]) {\n    rowOtherLength = rect[wh[idx1WhenH]]; // over+underflow\n  }\n\n  for (var i = 0, rowLen = row.length; i < rowLen; i++) {\n    var node = row[i];\n    var nodeLayout = {};\n    var step = rowOtherLength ? node.getLayout().area / rowOtherLength : 0;\n    var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax(rowOtherLength - 2 * halfGapWidth, 0); // We use Math.max/min to avoid negative width/height when considering gap width.\n\n    var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last;\n    var modWH = i === rowLen - 1 || remain < step ? remain : step;\n    var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax(modWH - 2 * halfGapWidth, 0);\n    nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin(halfGapWidth, wh1 / 2);\n    nodeLayout[xy[idx0WhenH]] = last + mathMin(halfGapWidth, wh0 / 2);\n    last += modWH;\n    node.setLayout(nodeLayout, true);\n  }\n\n  rect[xy[idx1WhenH]] += rowOtherLength;\n  rect[wh[idx1WhenH]] -= rowOtherLength;\n} // Return [containerWidth, containerHeight] as default.\n\n\nfunction estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) {\n  // If targetInfo.node exists, we zoom to the node,\n  // so estimate whold width and heigth by target node.\n  var currNode = (targetInfo || {}).node;\n  var defaultSize = [containerWidth, containerHeight];\n\n  if (!currNode || currNode === viewRoot) {\n    return defaultSize;\n  }\n\n  var parent;\n  var viewArea = containerWidth * containerHeight;\n  var area = viewArea * seriesModel.option.zoomToNodeRatio;\n\n  while (parent = currNode.parentNode) {\n    // jshint ignore:line\n    var sum = 0;\n    var siblings = parent.children;\n\n    for (var i = 0, len = siblings.length; i < len; i++) {\n      sum += siblings[i].getValue();\n    }\n\n    var currNodeValue = currNode.getValue();\n\n    if (currNodeValue === 0) {\n      return defaultSize;\n    }\n\n    area *= sum / currNodeValue; // Considering border, suppose aspect ratio is 1.\n\n    var parentModel = parent.getModel();\n    var borderWidth = parentModel.get(PATH_BORDER_WIDTH);\n    var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel));\n    area += 4 * borderWidth * borderWidth + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5);\n    area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER);\n    currNode = parent;\n  }\n\n  area < viewArea && (area = viewArea);\n  var scale = Math.pow(area / viewArea, 0.5);\n  return [containerWidth * scale, containerHeight * scale];\n} // Root postion base on coord of containerGroup\n\n\nfunction calculateRootPosition(layoutInfo, rootRect, targetInfo) {\n  if (rootRect) {\n    return {\n      x: rootRect.x,\n      y: rootRect.y\n    };\n  }\n\n  var defaultPosition = {\n    x: 0,\n    y: 0\n  };\n\n  if (!targetInfo) {\n    return defaultPosition;\n  } // If targetInfo is fetched by 'retrieveTargetInfo',\n  // old tree and new tree are the same tree,\n  // so the node still exists and we can visit it.\n\n\n  var targetNode = targetInfo.node;\n  var layout = targetNode.getLayout();\n\n  if (!layout) {\n    return defaultPosition;\n  } // Transform coord from local to container.\n\n\n  var targetCenter = [layout.width / 2, layout.height / 2];\n  var node = targetNode;\n\n  while (node) {\n    var nodeLayout = node.getLayout();\n    targetCenter[0] += nodeLayout.x;\n    targetCenter[1] += nodeLayout.y;\n    node = node.parentNode;\n  }\n\n  return {\n    x: layoutInfo.width / 2 - targetCenter[0],\n    y: layoutInfo.height / 2 - targetCenter[1]\n  };\n} // Mark nodes visible for prunning when visual coding and rendering.\n// Prunning depends on layout and root position, so we have to do it after layout.\n\n\nfunction prunning(node, clipRect, viewAbovePath, viewRoot, depth) {\n  var nodeLayout = node.getLayout();\n  var nodeInViewAbovePath = viewAbovePath[depth];\n  var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node;\n\n  if (nodeInViewAbovePath && !isAboveViewRoot || depth === viewAbovePath.length && node !== viewRoot) {\n    return;\n  }\n\n  node.setLayout({\n    // isInView means: viewRoot sub tree + viewAbovePath\n    isInView: true,\n    // invisible only means: outside view clip so that the node can not\n    // see but still layout for animation preparation but not render.\n    invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout),\n    isAboveViewRoot: isAboveViewRoot\n  }, true); // Transform to child coordinate.\n\n  var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height);\n  each(node.viewChildren || [], function (child) {\n    prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1);\n  });\n}\n\nfunction getUpperLabelHeight(model) {\n  return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { installTreemapAction } from './treemapAction.js';\nimport TreemapSeriesModel from './TreemapSeries.js';\nimport TreemapView from './TreemapView.js';\nimport treemapVisual from './treemapVisual.js';\nimport treemapLayout from './treemapLayout.js';\nexport function install(registers) {\n  registers.registerSeriesModel(TreemapSeriesModel);\n  registers.registerChartView(TreemapView);\n  registers.registerVisual(treemapVisual);\n  registers.registerLayout(treemapLayout);\n  installTreemapAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isNumber } from 'zrender/lib/core/util.js';\nexport default function categoryFilter(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (!legendModels || !legendModels.length) {\n    return;\n  }\n\n  ecModel.eachSeriesByType('graph', function (graphSeries) {\n    var categoriesData = graphSeries.getCategoriesData();\n    var graph = graphSeries.getGraph();\n    var data = graph.data;\n    var categoryNames = categoriesData.mapArray(categoriesData.getName);\n    data.filterSelf(function (idx) {\n      var model = data.getItemModel(idx);\n      var category = model.getShallow('category');\n\n      if (category != null) {\n        if (isNumber(category)) {\n          category = categoryNames[category];\n        } // If in any legend component the status is not selected.\n\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(category)) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { extend, isString } from 'zrender/lib/core/util.js';\nexport default function categoryVisual(ecModel) {\n  var paletteScope = {};\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var categoriesData = seriesModel.getCategoriesData();\n    var data = seriesModel.getData();\n    var categoryNameIdxMap = {};\n    categoriesData.each(function (idx) {\n      var name = categoriesData.getName(idx); // Add prefix to avoid conflict with Object.prototype.\n\n      categoryNameIdxMap['ec-' + name] = idx;\n      var itemModel = categoriesData.getItemModel(idx);\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n\n      if (!style.fill) {\n        // Get color from palette.\n        style.fill = seriesModel.getColorFromPalette(name, paletteScope);\n      }\n\n      categoriesData.setItemVisual(idx, 'style', style);\n      var symbolVisualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n      for (var i = 0; i < symbolVisualList.length; i++) {\n        var symbolVisual = itemModel.getShallow(symbolVisualList[i], true);\n\n        if (symbolVisual != null) {\n          categoriesData.setItemVisual(idx, symbolVisualList[i], symbolVisual);\n        }\n      }\n    }); // Assign category color to visual\n\n    if (categoriesData.count()) {\n      data.each(function (idx) {\n        var model = data.getItemModel(idx);\n        var categoryIdx = model.getShallow('category');\n\n        if (categoryIdx != null) {\n          if (isString(categoryIdx)) {\n            categoryIdx = categoryNameIdxMap['ec-' + categoryIdx];\n          }\n\n          var categoryStyle = categoriesData.getItemVisual(categoryIdx, 'style');\n          var style = data.ensureUniqueItemVisual(idx, 'style');\n          extend(style, categoryStyle);\n          var visualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n          for (var i = 0; i < visualList.length; i++) {\n            data.setItemVisual(idx, visualList[i], categoriesData.getItemVisual(categoryIdx, visualList[i]));\n          }\n        }\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { extend } from 'zrender/lib/core/util.js';\n\nfunction normalize(a) {\n  if (!(a instanceof Array)) {\n    a = [a, a];\n  }\n\n  return a;\n}\n\nexport default function graphEdgeVisual(ecModel) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var graph = seriesModel.getGraph();\n    var edgeData = seriesModel.getEdgeData();\n    var symbolType = normalize(seriesModel.get('edgeSymbol'));\n    var symbolSize = normalize(seriesModel.get('edgeSymbolSize')); // const colorQuery = ['lineStyle', 'color'] as const;\n    // const opacityQuery = ['lineStyle', 'opacity'] as const;\n\n    edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);\n    edgeData.setVisual('toSymbol', symbolType && symbolType[1]);\n    edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n    edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n    edgeData.setVisual('style', seriesModel.getModel('lineStyle').getLineStyle());\n    edgeData.each(function (idx) {\n      var itemModel = edgeData.getItemModel(idx);\n      var edge = graph.getEdgeByIndex(idx);\n      var symbolType = normalize(itemModel.getShallow('symbol', true));\n      var symbolSize = normalize(itemModel.getShallow('symbolSize', true)); // Edge visual must after node visual\n\n      var style = itemModel.getModel('lineStyle').getLineStyle();\n      var existsStyle = edgeData.ensureUniqueItemVisual(idx, 'style');\n      extend(existsStyle, style);\n\n      switch (existsStyle.stroke) {\n        case 'source':\n          {\n            var nodeStyle = edge.node1.getVisual('style');\n            existsStyle.stroke = nodeStyle && nodeStyle.fill;\n            break;\n          }\n\n        case 'target':\n          {\n            var nodeStyle = edge.node2.getVisual('style');\n            existsStyle.stroke = nodeStyle && nodeStyle.fill;\n            break;\n          }\n      }\n\n      symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);\n      symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);\n      symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);\n      symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar KEY_DELIMITER = '-->';\n/**\n * params handler\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @returns {*}\n */\n\nvar getAutoCurvenessParams = function (seriesModel) {\n  return seriesModel.get('autoCurveness') || null;\n};\n/**\n * Generate a list of edge curvatures, 20 is the default\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @param {number} appendLength\n * @return  20 => [0, -0.2, 0.2, -0.4, 0.4, -0.6, 0.6, -0.8, 0.8, -1, 1, -1.2, 1.2, -1.4, 1.4, -1.6, 1.6, -1.8, 1.8, -2]\n */\n\n\nvar createCurveness = function (seriesModel, appendLength) {\n  var autoCurvenessParmas = getAutoCurvenessParams(seriesModel);\n  var length = 20;\n  var curvenessList = []; // handler the function set\n\n  if (zrUtil.isNumber(autoCurvenessParmas)) {\n    length = autoCurvenessParmas;\n  } else if (zrUtil.isArray(autoCurvenessParmas)) {\n    seriesModel.__curvenessList = autoCurvenessParmas;\n    return;\n  } // append length\n\n\n  if (appendLength > length) {\n    length = appendLength;\n  } // make sure the length is even\n\n\n  var len = length % 2 ? length + 2 : length + 3;\n  curvenessList = [];\n\n  for (var i = 0; i < len; i++) {\n    curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1));\n  }\n\n  seriesModel.__curvenessList = curvenessList;\n};\n/**\n * Create different cache key data in the positive and negative directions, in order to set the curvature later\n * @param {number|string|module:echarts/data/Graph.Node} n1\n * @param {number|string|module:echarts/data/Graph.Node} n2\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @returns {string} key\n */\n\n\nvar getKeyOfEdges = function (n1, n2, seriesModel) {\n  var source = [n1.id, n1.dataIndex].join('.');\n  var target = [n2.id, n2.dataIndex].join('.');\n  return [seriesModel.uid, source, target].join(KEY_DELIMITER);\n};\n/**\n * get opposite key\n * @param {string} key\n * @returns {string}\n */\n\n\nvar getOppositeKey = function (key) {\n  var keys = key.split(KEY_DELIMITER);\n  return [keys[0], keys[2], keys[1]].join(KEY_DELIMITER);\n};\n/**\n * get edgeMap with key\n * @param edge\n * @param {module:echarts/model/SeriesModel} seriesModel\n */\n\n\nvar getEdgeFromMap = function (edge, seriesModel) {\n  var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n  return seriesModel.__edgeMap[key];\n};\n/**\n * calculate all cases total length\n * @param edge\n * @param seriesModel\n * @returns {number}\n */\n\n\nvar getTotalLengthBetweenNodes = function (edge, seriesModel) {\n  var len = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel);\n  var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel);\n  return len + lenV;\n};\n/**\n *\n * @param key\n */\n\n\nvar getEdgeMapLengthWithKey = function (key, seriesModel) {\n  var edgeMap = seriesModel.__edgeMap;\n  return edgeMap[key] ? edgeMap[key].length : 0;\n};\n/**\n * Count the number of edges between the same two points, used to obtain the curvature table and the parity of the edge\n * @see /graph/GraphSeries.js@getInitialData\n * @param {module:echarts/model/SeriesModel} seriesModel\n */\n\n\nexport function initCurvenessList(seriesModel) {\n  if (!getAutoCurvenessParams(seriesModel)) {\n    return;\n  }\n\n  seriesModel.__curvenessList = [];\n  seriesModel.__edgeMap = {}; // calc the array of curveness List\n\n  createCurveness(seriesModel);\n}\n/**\n * set edgeMap with key\n * @param {number|string|module:echarts/data/Graph.Node} n1\n * @param {number|string|module:echarts/data/Graph.Node} n2\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @param {number} index\n */\n\nexport function createEdgeMapForCurveness(n1, n2, seriesModel, index) {\n  if (!getAutoCurvenessParams(seriesModel)) {\n    return;\n  }\n\n  var key = getKeyOfEdges(n1, n2, seriesModel);\n  var edgeMap = seriesModel.__edgeMap;\n  var oppositeEdges = edgeMap[getOppositeKey(key)]; // set direction\n\n  if (edgeMap[key] && !oppositeEdges) {\n    edgeMap[key].isForward = true;\n  } else if (oppositeEdges && edgeMap[key]) {\n    oppositeEdges.isForward = true;\n    edgeMap[key].isForward = false;\n  }\n\n  edgeMap[key] = edgeMap[key] || [];\n  edgeMap[key].push(index);\n}\n/**\n * get curvature for edge\n * @param edge\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @param index\n */\n\nexport function getCurvenessForEdge(edge, seriesModel, index, needReverse) {\n  var autoCurvenessParams = getAutoCurvenessParams(seriesModel);\n  var isArrayParam = zrUtil.isArray(autoCurvenessParams);\n\n  if (!autoCurvenessParams) {\n    return null;\n  }\n\n  var edgeArray = getEdgeFromMap(edge, seriesModel);\n\n  if (!edgeArray) {\n    return null;\n  }\n\n  var edgeIndex = -1;\n\n  for (var i = 0; i < edgeArray.length; i++) {\n    if (edgeArray[i] === index) {\n      edgeIndex = i;\n      break;\n    }\n  } // if totalLen is Longer createCurveness\n\n\n  var totalLen = getTotalLengthBetweenNodes(edge, seriesModel);\n  createCurveness(seriesModel, totalLen);\n  edge.lineStyle = edge.lineStyle || {}; // if is opposite edge, must set curvenss to opposite number\n\n  var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n  var curvenessList = seriesModel.__curvenessList; // if pass array no need parity\n\n  var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;\n\n  if (!edgeArray.isForward) {\n    // the opposite edge show outside\n    var oppositeKey = getOppositeKey(curKey);\n    var len = getEdgeMapLengthWithKey(oppositeKey, seriesModel);\n    var resValue = curvenessList[edgeIndex + len + parityCorrection]; // isNeedReverse, simple, force type need reverse the curveness in the junction of the forword and the opposite\n\n    if (needReverse) {\n      // set as array may make the parity handle with the len of opposite\n      if (isArrayParam) {\n        if (autoCurvenessParams && autoCurvenessParams[0] === 0) {\n          return (len + parityCorrection) % 2 ? resValue : -resValue;\n        } else {\n          return ((len % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue;\n        }\n      } else {\n        return (len + parityCorrection) % 2 ? resValue : -resValue;\n      }\n    } else {\n      return curvenessList[edgeIndex + len + parityCorrection];\n    }\n  } else {\n    return curvenessList[parityCorrection + edgeIndex];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as vec2 from 'zrender/lib/core/vector.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper.js';\nexport function simpleLayout(seriesModel) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys && coordSys.type !== 'view') {\n    return;\n  }\n\n  var graph = seriesModel.getGraph();\n  graph.eachNode(function (node) {\n    var model = node.getModel();\n    node.setLayout([+model.get('x'), +model.get('y')]);\n  });\n  simpleLayoutEdge(graph, seriesModel);\n}\nexport function simpleLayoutEdge(graph, seriesModel) {\n  graph.eachEdge(function (edge, index) {\n    var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, seriesModel, index, true), 0);\n    var p1 = vec2.clone(edge.node1.getLayout());\n    var p2 = vec2.clone(edge.node2.getLayout());\n    var points = [p1, p2];\n\n    if (+curveness) {\n      points.push([(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness]);\n    }\n\n    edge.setLayout(points);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each } from 'zrender/lib/core/util.js';\nimport { simpleLayout, simpleLayoutEdge } from './simpleLayoutHelper.js';\nexport default function graphSimpleLayout(ecModel, api) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var layout = seriesModel.get('layout');\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.type !== 'view') {\n      var data_1 = seriesModel.getData();\n      var dimensions_1 = [];\n      each(coordSys.dimensions, function (coordDim) {\n        dimensions_1 = dimensions_1.concat(data_1.mapDimensionsAll(coordDim));\n      });\n\n      for (var dataIndex = 0; dataIndex < data_1.count(); dataIndex++) {\n        var value = [];\n        var hasValue = false;\n\n        for (var i = 0; i < dimensions_1.length; i++) {\n          var val = data_1.get(dimensions_1[i], dataIndex);\n\n          if (!isNaN(val)) {\n            hasValue = true;\n          }\n\n          value.push(val);\n        }\n\n        if (hasValue) {\n          data_1.setItemLayout(dataIndex, coordSys.dataToPoint(value));\n        } else {\n          // Also {Array.<number>}, not undefined to avoid if...else... statement\n          data_1.setItemLayout(dataIndex, [NaN, NaN]);\n        }\n      }\n\n      simpleLayoutEdge(data_1.graph, seriesModel);\n    } else if (!layout || layout === 'none') {\n      simpleLayout(seriesModel);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport function getNodeGlobalScale(seriesModel) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys.type !== 'view') {\n    return 1;\n  }\n\n  var nodeScaleRatio = seriesModel.option.nodeScaleRatio;\n  var groupZoom = coordSys.scaleX; // Scale node when zoom changes\n\n  var roamZoom = coordSys.getZoom();\n  var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n  return nodeScale / groupZoom;\n}\nexport function getSymbolSize(node) {\n  var symbolSize = node.getVisual('symbolSize');\n\n  if (symbolSize instanceof Array) {\n    symbolSize = (symbolSize[0] + symbolSize[1]) / 2;\n  }\n\n  return +symbolSize;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as vec2 from 'zrender/lib/core/vector.js';\nimport { getSymbolSize, getNodeGlobalScale } from './graphHelper.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper.js';\nvar PI = Math.PI;\nvar _symbolRadiansHalf = [];\n/**\n * `basedOn` can be:\n * 'value':\n *     This layout is not accurate and have same bad case. For example,\n *     if the min value is very smaller than the max value, the nodes\n *     with the min value probably overlap even though there is enough\n *     space to layout them. So we only use this approach in the as the\n *     init layout of the force layout.\n *     FIXME\n *     Probably we do not need this method any more but use\n *     `basedOn: 'symbolSize'` in force layout if\n *     delay its init operations to GraphView.\n * 'symbolSize':\n *     This approach work only if all of the symbol size calculated.\n *     That is, the progressive rendering is not applied to graph.\n *     FIXME\n *     If progressive rendering is applied to graph some day,\n *     probably we have to use `basedOn: 'value'`.\n */\n\nexport function circularLayout(seriesModel, basedOn) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys && coordSys.type !== 'view') {\n    return;\n  }\n\n  var rect = coordSys.getBoundingRect();\n  var nodeData = seriesModel.getData();\n  var graph = nodeData.graph;\n  var cx = rect.width / 2 + rect.x;\n  var cy = rect.height / 2 + rect.y;\n  var r = Math.min(rect.width, rect.height) / 2;\n  var count = nodeData.count();\n  nodeData.setLayout({\n    cx: cx,\n    cy: cy\n  });\n\n  if (!count) {\n    return;\n  }\n\n  _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count);\n\n  graph.eachEdge(function (edge, index) {\n    var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), getCurvenessForEdge(edge, seriesModel, index), 0);\n    var p1 = vec2.clone(edge.node1.getLayout());\n    var p2 = vec2.clone(edge.node2.getLayout());\n    var cp1;\n    var x12 = (p1[0] + p2[0]) / 2;\n    var y12 = (p1[1] + p2[1]) / 2;\n\n    if (+curveness) {\n      curveness *= 3;\n      cp1 = [cx * curveness + x12 * (1 - curveness), cy * curveness + y12 * (1 - curveness)];\n    }\n\n    edge.setLayout([p1, p2, cp1]);\n  });\n}\nvar _layoutNodesBasedOn = {\n  value: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n    var angle = 0;\n    var sum = nodeData.getSum('value');\n    var unitAngle = Math.PI * 2 / (sum || count);\n    graph.eachNode(function (node) {\n      var value = node.getValue('value');\n      var radianHalf = unitAngle * (sum ? value : 1) / 2;\n      angle += radianHalf;\n      node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n      angle += radianHalf;\n    });\n  },\n  symbolSize: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n    var sumRadian = 0;\n    _symbolRadiansHalf.length = count;\n    var nodeScale = getNodeGlobalScale(seriesModel);\n    graph.eachNode(function (node) {\n      var symbolSize = getSymbolSize(node); // Normally this case will not happen, but we still add\n      // some the defensive code (2px is an arbitrary value).\n\n      isNaN(symbolSize) && (symbolSize = 2);\n      symbolSize < 0 && (symbolSize = 0);\n      symbolSize *= nodeScale;\n      var symbolRadianHalf = Math.asin(symbolSize / 2 / r); // when `symbolSize / 2` is bigger than `r`.\n\n      isNaN(symbolRadianHalf) && (symbolRadianHalf = PI / 2);\n      _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf;\n      sumRadian += symbolRadianHalf * 2;\n    });\n    var halfRemainRadian = (2 * PI - sumRadian) / count / 2;\n    var angle = 0;\n    graph.eachNode(function (node) {\n      var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex];\n      angle += radianHalf;\n      node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n      angle += radianHalf;\n    });\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { circularLayout } from './circularLayoutHelper.js';\nexport default function graphCircularLayout(ecModel) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    if (seriesModel.get('layout') === 'circular') {\n      circularLayout(seriesModel, 'symbolSize');\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* A third-party license is embeded for some of the code in this file:\n* Some formulas were originally copied from \"d3.js\" with some\n* modifications made for this project.\n* (See more details in the comment of the method \"step\" below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* </licenses/LICENSE-d3>).\n*/\nimport * as vec2 from 'zrender/lib/core/vector.js';\nvar scaleAndAdd = vec2.scaleAndAdd; // function adjacentNode(n, e) {\n//     return e.n1 === n ? e.n2 : e.n1;\n// }\n\nexport function forceLayout(inNodes, inEdges, opts) {\n  var nodes = inNodes;\n  var edges = inEdges;\n  var rect = opts.rect;\n  var width = rect.width;\n  var height = rect.height;\n  var center = [rect.x + width / 2, rect.y + height / 2]; // let scale = opts.scale || 1;\n\n  var gravity = opts.gravity == null ? 0.1 : opts.gravity; // for (let i = 0; i < edges.length; i++) {\n  //     let e = edges[i];\n  //     let n1 = e.n1;\n  //     let n2 = e.n2;\n  //     n1.edges = n1.edges || [];\n  //     n2.edges = n2.edges || [];\n  //     n1.edges.push(e);\n  //     n2.edges.push(e);\n  // }\n  // Init position\n\n  for (var i = 0; i < nodes.length; i++) {\n    var n = nodes[i];\n\n    if (!n.p) {\n      n.p = vec2.create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]);\n    }\n\n    n.pp = vec2.clone(n.p);\n    n.edges = null;\n  } // Formula in 'Graph Drawing by Force-directed Placement'\n  // let k = scale * Math.sqrt(width * height / nodes.length);\n  // let k2 = k * k;\n\n\n  var initialFriction = opts.friction == null ? 0.6 : opts.friction;\n  var friction = initialFriction;\n  var beforeStepCallback;\n  var afterStepCallback;\n  return {\n    warmUp: function () {\n      friction = initialFriction * 0.8;\n    },\n    setFixed: function (idx) {\n      nodes[idx].fixed = true;\n    },\n    setUnfixed: function (idx) {\n      nodes[idx].fixed = false;\n    },\n\n    /**\n     * Before step hook\n     */\n    beforeStep: function (cb) {\n      beforeStepCallback = cb;\n    },\n\n    /**\n     * After step hook\n     */\n    afterStep: function (cb) {\n      afterStepCallback = cb;\n    },\n\n    /**\n     * Some formulas were originally copied from \"d3.js\"\n     * https://github.com/d3/d3/blob/b516d77fb8566b576088e73410437494717ada26/src/layout/force.js\n     * with some modifications made for this project.\n     * See the license statement at the head of this file.\n     */\n    step: function (cb) {\n      beforeStepCallback && beforeStepCallback(nodes, edges);\n      var v12 = [];\n      var nLen = nodes.length;\n\n      for (var i = 0; i < edges.length; i++) {\n        var e = edges[i];\n\n        if (e.ignoreForceLayout) {\n          continue;\n        }\n\n        var n1 = e.n1;\n        var n2 = e.n2;\n        vec2.sub(v12, n2.p, n1.p);\n        var d = vec2.len(v12) - e.d;\n        var w = n2.w / (n1.w + n2.w);\n\n        if (isNaN(w)) {\n          w = 0;\n        }\n\n        vec2.normalize(v12, v12);\n        !n1.fixed && scaleAndAdd(n1.p, n1.p, v12, w * d * friction);\n        !n2.fixed && scaleAndAdd(n2.p, n2.p, v12, -(1 - w) * d * friction);\n      } // Gravity\n\n\n      for (var i = 0; i < nLen; i++) {\n        var n = nodes[i];\n\n        if (!n.fixed) {\n          vec2.sub(v12, center, n.p); // let d = vec2.len(v12);\n          // vec2.scale(v12, v12, 1 / d);\n          // let gravityFactor = gravity;\n\n          scaleAndAdd(n.p, n.p, v12, gravity * friction);\n        }\n      } // Repulsive\n      // PENDING\n\n\n      for (var i = 0; i < nLen; i++) {\n        var n1 = nodes[i];\n\n        for (var j = i + 1; j < nLen; j++) {\n          var n2 = nodes[j];\n          vec2.sub(v12, n2.p, n1.p);\n          var d = vec2.len(v12);\n\n          if (d === 0) {\n            // Random repulse\n            vec2.set(v12, Math.random() - 0.5, Math.random() - 0.5);\n            d = 1;\n          }\n\n          var repFact = (n1.rep + n2.rep) / d / d;\n          !n1.fixed && scaleAndAdd(n1.pp, n1.pp, v12, repFact);\n          !n2.fixed && scaleAndAdd(n2.pp, n2.pp, v12, -repFact);\n        }\n      }\n\n      var v = [];\n\n      for (var i = 0; i < nLen; i++) {\n        var n = nodes[i];\n\n        if (!n.fixed) {\n          vec2.sub(v, n.p, n.pp);\n          scaleAndAdd(n.p, n.p, v, friction);\n          vec2.copy(n.pp, n.p);\n        }\n      }\n\n      friction = friction * 0.992;\n      var finished = friction < 0.01;\n      afterStepCallback && afterStepCallback(nodes, edges, finished);\n      cb && cb(finished);\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { forceLayout } from './forceHelper.js';\nimport { simpleLayout } from './simpleLayoutHelper.js';\nimport { circularLayout } from './circularLayoutHelper.js';\nimport { linearMap } from '../../util/number.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper.js';\nexport default function graphForceLayout(ecModel) {\n  ecModel.eachSeriesByType('graph', function (graphSeries) {\n    var coordSys = graphSeries.coordinateSystem;\n\n    if (coordSys && coordSys.type !== 'view') {\n      return;\n    }\n\n    if (graphSeries.get('layout') === 'force') {\n      var preservedPoints_1 = graphSeries.preservedPoints || {};\n      var graph_1 = graphSeries.getGraph();\n      var nodeData_1 = graph_1.data;\n      var edgeData = graph_1.edgeData;\n      var forceModel = graphSeries.getModel('force');\n      var initLayout = forceModel.get('initLayout');\n\n      if (graphSeries.preservedPoints) {\n        nodeData_1.each(function (idx) {\n          var id = nodeData_1.getId(idx);\n          nodeData_1.setItemLayout(idx, preservedPoints_1[id] || [NaN, NaN]);\n        });\n      } else if (!initLayout || initLayout === 'none') {\n        simpleLayout(graphSeries);\n      } else if (initLayout === 'circular') {\n        circularLayout(graphSeries, 'value');\n      }\n\n      var nodeDataExtent_1 = nodeData_1.getDataExtent('value');\n      var edgeDataExtent_1 = edgeData.getDataExtent('value'); // let edgeDataExtent = edgeData.getDataExtent('value');\n\n      var repulsion = forceModel.get('repulsion');\n      var edgeLength = forceModel.get('edgeLength');\n      var repulsionArr_1 = zrUtil.isArray(repulsion) ? repulsion : [repulsion, repulsion];\n      var edgeLengthArr_1 = zrUtil.isArray(edgeLength) ? edgeLength : [edgeLength, edgeLength]; // Larger value has smaller length\n\n      edgeLengthArr_1 = [edgeLengthArr_1[1], edgeLengthArr_1[0]];\n      var nodes_1 = nodeData_1.mapArray('value', function (value, idx) {\n        var point = nodeData_1.getItemLayout(idx);\n        var rep = linearMap(value, nodeDataExtent_1, repulsionArr_1);\n\n        if (isNaN(rep)) {\n          rep = (repulsionArr_1[0] + repulsionArr_1[1]) / 2;\n        }\n\n        return {\n          w: rep,\n          rep: rep,\n          fixed: nodeData_1.getItemModel(idx).get('fixed'),\n          p: !point || isNaN(point[0]) || isNaN(point[1]) ? null : point\n        };\n      });\n      var edges = edgeData.mapArray('value', function (value, idx) {\n        var edge = graph_1.getEdgeByIndex(idx);\n        var d = linearMap(value, edgeDataExtent_1, edgeLengthArr_1);\n\n        if (isNaN(d)) {\n          d = (edgeLengthArr_1[0] + edgeLengthArr_1[1]) / 2;\n        }\n\n        var edgeModel = edge.getModel();\n        var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, graphSeries, idx, true), 0);\n        return {\n          n1: nodes_1[edge.node1.dataIndex],\n          n2: nodes_1[edge.node2.dataIndex],\n          d: d,\n          curveness: curveness,\n          ignoreForceLayout: edgeModel.get('ignoreForceLayout')\n        };\n      }); // let coordSys = graphSeries.coordinateSystem;\n\n      var rect = coordSys.getBoundingRect();\n      var forceInstance = forceLayout(nodes_1, edges, {\n        rect: rect,\n        gravity: forceModel.get('gravity'),\n        friction: forceModel.get('friction')\n      });\n      forceInstance.beforeStep(function (nodes, edges) {\n        for (var i = 0, l = nodes.length; i < l; i++) {\n          if (nodes[i].fixed) {\n            // Write back to layout instance\n            vec2.copy(nodes[i].p, graph_1.getNodeByIndex(i).getLayout());\n          }\n        }\n      });\n      forceInstance.afterStep(function (nodes, edges, stopped) {\n        for (var i = 0, l = nodes.length; i < l; i++) {\n          if (!nodes[i].fixed) {\n            graph_1.getNodeByIndex(i).setLayout(nodes[i].p);\n          }\n\n          preservedPoints_1[nodeData_1.getId(i)] = nodes[i].p;\n        }\n\n        for (var i = 0, l = edges.length; i < l; i++) {\n          var e = edges[i];\n          var edge = graph_1.getEdgeByIndex(i);\n          var p1 = e.n1.p;\n          var p2 = e.n2.p;\n          var points = edge.getLayout();\n          points = points ? points.slice() : [];\n          points[0] = points[0] || [];\n          points[1] = points[1] || [];\n          vec2.copy(points[0], p1);\n          vec2.copy(points[1], p2);\n\n          if (+e.curveness) {\n            points[2] = [(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness];\n          }\n\n          edge.setLayout(points);\n        }\n      });\n      graphSeries.forceLayout = forceInstance;\n      graphSeries.preservedPoints = preservedPoints_1; // Step to get the layout\n\n      forceInstance.step();\n    } else {\n      // Remove prev injected forceLayout instance\n      graphSeries.forceLayout = null;\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME Where to create the simple view coordinate system\nimport View from '../../coord/View.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport * as bbox from 'zrender/lib/core/bbox.js';\nimport { extend } from 'zrender/lib/core/util.js';\n\nfunction getViewRect(seriesModel, api, aspect) {\n  var option = extend(seriesModel.getBoxLayoutParams(), {\n    aspect: aspect\n  });\n  return getLayoutRect(option, {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport default function createViewCoordSys(ecModel, api) {\n  var viewList = [];\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var coordSysType = seriesModel.get('coordinateSystem');\n\n    if (!coordSysType || coordSysType === 'view') {\n      var data_1 = seriesModel.getData();\n      var positions = data_1.mapArray(function (idx) {\n        var itemModel = data_1.getItemModel(idx);\n        return [+itemModel.get('x'), +itemModel.get('y')];\n      });\n      var min = [];\n      var max = [];\n      bbox.fromPoints(positions, min, max); // If width or height is 0\n\n      if (max[0] - min[0] === 0) {\n        max[0] += 1;\n        min[0] -= 1;\n      }\n\n      if (max[1] - min[1] === 0) {\n        max[1] += 1;\n        min[1] -= 1;\n      }\n\n      var aspect = (max[0] - min[0]) / (max[1] - min[1]); // FIXME If get view rect after data processed?\n\n      var viewRect = getViewRect(seriesModel, api, aspect); // Position may be NaN, use view rect instead\n\n      if (isNaN(aspect)) {\n        min = [viewRect.x, viewRect.y];\n        max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height];\n      }\n\n      var bbWidth = max[0] - min[0];\n      var bbHeight = max[1] - min[1];\n      var viewWidth = viewRect.width;\n      var viewHeight = viewRect.height;\n      var viewCoordSys = seriesModel.coordinateSystem = new View();\n      viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n      viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight);\n      viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight); // Update roam info\n\n      viewCoordSys.setCenter(seriesModel.get('center'), api);\n      viewCoordSys.setZoom(seriesModel.get('zoom'));\n      viewList.push(viewCoordSys);\n    }\n  });\n  return viewList;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * Line path for bezier and straight line draw\n */\n\nimport * as graphic from '../../util/graphic.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\nvar straightLineProto = graphic.Line.prototype;\nvar bezierCurveProto = graphic.BezierCurve.prototype;\n\nvar StraightLineShape =\n/** @class */\nfunction () {\n  function StraightLineShape() {\n    // Start point\n    this.x1 = 0;\n    this.y1 = 0; // End point\n\n    this.x2 = 0;\n    this.y2 = 0;\n    this.percent = 1;\n  }\n\n  return StraightLineShape;\n}();\n\nvar CurveShape =\n/** @class */\nfunction (_super) {\n  __extends(CurveShape, _super);\n\n  function CurveShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return CurveShape;\n}(StraightLineShape);\n\nfunction isStraightLine(shape) {\n  return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\n}\n\nvar ECLinePath =\n/** @class */\nfunction (_super) {\n  __extends(ECLinePath, _super);\n\n  function ECLinePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-line';\n    return _this;\n  }\n\n  ECLinePath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECLinePath.prototype.getDefaultShape = function () {\n    return new StraightLineShape();\n  };\n\n  ECLinePath.prototype.buildPath = function (ctx, shape) {\n    if (isStraightLine(shape)) {\n      straightLineProto.buildPath.call(this, ctx, shape);\n    } else {\n      bezierCurveProto.buildPath.call(this, ctx, shape);\n    }\n  };\n\n  ECLinePath.prototype.pointAt = function (t) {\n    if (isStraightLine(this.shape)) {\n      return straightLineProto.pointAt.call(this, t);\n    } else {\n      return bezierCurveProto.pointAt.call(this, t);\n    }\n  };\n\n  ECLinePath.prototype.tangentAt = function (t) {\n    var shape = this.shape;\n    var p = isStraightLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : bezierCurveProto.tangentAt.call(this, t);\n    return vec2.normalize(p, p);\n  };\n\n  return ECLinePath;\n}(graphic.Path);\n\nexport default ECLinePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { isArray, each } from 'zrender/lib/core/util.js';\nimport * as vector from 'zrender/lib/core/vector.js';\nimport * as symbolUtil from '../../util/symbol.js';\nimport ECLinePath from './LinePath.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, enterEmphasis, leaveEmphasis, SPECIAL_STATES } from '../../util/states.js';\nimport { getLabelStatesModels, setLabelStyle } from '../../label/labelStyle.js';\nimport { round } from '../../util/number.js';\nvar SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\n\nfunction makeSymbolTypeKey(symbolCategory) {\n  return '_' + symbolCategory + 'Type';\n}\n/**\n * @inner\n */\n\n\nfunction createSymbol(name, lineData, idx) {\n  var symbolType = lineData.getItemVisual(idx, name);\n\n  if (!symbolType || symbolType === 'none') {\n    return;\n  }\n\n  var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n  var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\n  var symbolOffset = lineData.getItemVisual(idx, name + 'Offset');\n  var symbolKeepAspect = lineData.getItemVisual(idx, name + 'KeepAspect');\n  var symbolSizeArr = symbolUtil.normalizeSymbolSize(symbolSize);\n  var symbolOffsetArr = symbolUtil.normalizeSymbolOffset(symbolOffset || 0, symbolSizeArr);\n  var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSizeArr[0] / 2 + symbolOffsetArr[0], -symbolSizeArr[1] / 2 + symbolOffsetArr[1], symbolSizeArr[0], symbolSizeArr[1], null, symbolKeepAspect);\n  symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0;\n  symbolPath.name = name;\n  return symbolPath;\n}\n\nfunction createLine(points) {\n  var line = new ECLinePath({\n    name: 'line',\n    subPixelOptimize: true\n  });\n  setLinePoints(line.shape, points);\n  return line;\n}\n\nfunction setLinePoints(targetShape, points) {\n  targetShape.x1 = points[0][0];\n  targetShape.y1 = points[0][1];\n  targetShape.x2 = points[1][0];\n  targetShape.y2 = points[1][1];\n  targetShape.percent = 1;\n  var cp1 = points[2];\n\n  if (cp1) {\n    targetShape.cpx1 = cp1[0];\n    targetShape.cpy1 = cp1[1];\n  } else {\n    targetShape.cpx1 = NaN;\n    targetShape.cpy1 = NaN;\n  }\n}\n\nvar Line =\n/** @class */\nfunction (_super) {\n  __extends(Line, _super);\n\n  function Line(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this._createLine(lineData, idx, seriesScope);\n\n    return _this;\n  }\n\n  Line.prototype._createLine = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var linePoints = lineData.getItemLayout(idx);\n    var line = createLine(linePoints);\n    line.shape.percent = 0;\n    graphic.initProps(line, {\n      shape: {\n        percent: 1\n      }\n    }, seriesModel, idx);\n    this.add(line);\n    each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = createSymbol(symbolCategory, lineData, idx); // symbols must added after line to make sure\n      // it will be updated after line#update.\n      // Or symbol position and rotation update in line#beforeUpdate will be one frame slow\n\n      this.add(symbol);\n      this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  }; // TODO More strict on the List type in parameters?\n\n\n  Line.prototype.updateData = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var linePoints = lineData.getItemLayout(idx);\n    var target = {\n      shape: {}\n    };\n    setLinePoints(target.shape, linePoints);\n    graphic.updateProps(line, target, seriesModel, idx);\n    each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbolType = lineData.getItemVisual(idx, symbolCategory);\n      var key = makeSymbolTypeKey(symbolCategory); // Symbol changed\n\n      if (this[key] !== symbolType) {\n        this.remove(this.childOfName(symbolCategory));\n        var symbol = createSymbol(symbolCategory, lineData, idx);\n        this.add(symbol);\n      }\n\n      this[key] = symbolType;\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Line.prototype.getLinePath = function () {\n    return this.childAt(0);\n  };\n\n  Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n    var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\n    var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\n    var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\n    var emphasisDisabled = seriesScope && seriesScope.emphasisDisabled;\n    var focus = seriesScope && seriesScope.focus;\n    var blurScope = seriesScope && seriesScope.blurScope; // Optimization for large dataset\n\n    if (!seriesScope || lineData.hasItemOption) {\n      var itemModel = lineData.getItemModel(idx);\n      var emphasisModel = itemModel.getModel('emphasis');\n      emphasisLineStyle = emphasisModel.getModel('lineStyle').getLineStyle();\n      blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\n      selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\n      emphasisDisabled = emphasisModel.get('disabled');\n      focus = emphasisModel.get('focus');\n      blurScope = emphasisModel.get('blurScope');\n      labelStatesModels = getLabelStatesModels(itemModel);\n    }\n\n    var lineStyle = lineData.getItemVisual(idx, 'style');\n    var visualColor = lineStyle.stroke;\n    line.useStyle(lineStyle);\n    line.style.fill = null;\n    line.style.strokeNoScale = true;\n    line.ensureState('emphasis').style = emphasisLineStyle;\n    line.ensureState('blur').style = blurLineStyle;\n    line.ensureState('select').style = selectLineStyle; // Update symbol\n\n    each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = this.childOfName(symbolCategory);\n\n      if (symbol) {\n        // Share opacity and color with line.\n        symbol.setColor(visualColor);\n        symbol.style.opacity = lineStyle.opacity;\n\n        for (var i = 0; i < SPECIAL_STATES.length; i++) {\n          var stateName = SPECIAL_STATES[i];\n          var lineState = line.getState(stateName);\n\n          if (lineState) {\n            var lineStateStyle = lineState.style || {};\n            var state = symbol.ensureState(stateName);\n            var stateStyle = state.style || (state.style = {});\n\n            if (lineStateStyle.stroke != null) {\n              stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\n            }\n\n            if (lineStateStyle.opacity != null) {\n              stateStyle.opacity = lineStateStyle.opacity;\n            }\n          }\n        }\n\n        symbol.markRedraw();\n      }\n    }, this);\n    var rawVal = seriesModel.getRawValue(idx);\n    setLabelStyle(this, labelStatesModels, {\n      labelDataIndex: idx,\n      labelFetcher: {\n        getFormattedLabel: function (dataIndex, stateName) {\n          return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\n        }\n      },\n      inheritColor: visualColor || '#000',\n      defaultOpacity: lineStyle.opacity,\n      defaultText: (rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal) + ''\n    });\n    var label = this.getTextContent(); // Always set `textStyle` even if `normalStyle.text` is null, because default\n    // values have to be set on `normalStyle`.\n\n    if (label) {\n      var labelNormalModel = labelStatesModels.normal;\n      label.__align = label.style.align;\n      label.__verticalAlign = label.style.verticalAlign; // 'start', 'middle', 'end'\n\n      label.__position = labelNormalModel.get('position') || 'middle';\n      var distance = labelNormalModel.get('distance');\n\n      if (!isArray(distance)) {\n        distance = [distance, distance];\n      }\n\n      label.__labelDistance = distance;\n    }\n\n    this.setTextConfig({\n      position: null,\n      local: true,\n      inside: false // Can't be inside for stroke element.\n\n    });\n    toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled);\n  };\n\n  Line.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  Line.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  Line.prototype.updateLayout = function (lineData, idx) {\n    this.setLinePoints(lineData.getItemLayout(idx));\n  };\n\n  Line.prototype.setLinePoints = function (points) {\n    var linePath = this.childOfName('line');\n    setLinePoints(linePath.shape, points);\n    linePath.dirty();\n  };\n\n  Line.prototype.beforeUpdate = function () {\n    var lineGroup = this;\n    var symbolFrom = lineGroup.childOfName('fromSymbol');\n    var symbolTo = lineGroup.childOfName('toSymbol');\n    var label = lineGroup.getTextContent(); // Quick reject\n\n    if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\n      return;\n    }\n\n    var invScale = 1;\n    var parentNode = this.parent;\n\n    while (parentNode) {\n      if (parentNode.scaleX) {\n        invScale /= parentNode.scaleX;\n      }\n\n      parentNode = parentNode.parent;\n    }\n\n    var line = lineGroup.childOfName('line'); // If line not changed\n    // FIXME Parent scale changed\n\n    if (!this.__dirty && !line.__dirty) {\n      return;\n    }\n\n    var percent = line.shape.percent;\n    var fromPos = line.pointAt(0);\n    var toPos = line.pointAt(percent);\n    var d = vector.sub([], toPos, fromPos);\n    vector.normalize(d, d);\n\n    function setSymbolRotation(symbol, percent) {\n      // Fix #12388\n      // when symbol is set to be 'arrow' in markLine,\n      // symbolRotate value will be ignored, and compulsively use tangent angle.\n      // rotate by default if symbol rotation is not specified\n      var specifiedRotation = symbol.__specifiedRotation;\n\n      if (specifiedRotation == null) {\n        var tangent = line.tangentAt(percent);\n        symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n      } else {\n        symbol.attr('rotation', specifiedRotation);\n      }\n    }\n\n    if (symbolFrom) {\n      symbolFrom.setPosition(fromPos);\n      setSymbolRotation(symbolFrom, 0);\n      symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\n      symbolFrom.markRedraw();\n    }\n\n    if (symbolTo) {\n      symbolTo.setPosition(toPos);\n      setSymbolRotation(symbolTo, 1);\n      symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\n      symbolTo.markRedraw();\n    }\n\n    if (label && !label.ignore) {\n      label.x = label.y = 0;\n      label.originX = label.originY = 0;\n      var textAlign = void 0;\n      var textVerticalAlign = void 0;\n      var distance = label.__labelDistance;\n      var distanceX = distance[0] * invScale;\n      var distanceY = distance[1] * invScale;\n      var halfPercent = percent / 2;\n      var tangent = line.tangentAt(halfPercent);\n      var n = [tangent[1], -tangent[0]];\n      var cp = line.pointAt(halfPercent);\n\n      if (n[1] > 0) {\n        n[0] = -n[0];\n        n[1] = -n[1];\n      }\n\n      var dir = tangent[0] < 0 ? -1 : 1;\n\n      if (label.__position !== 'start' && label.__position !== 'end') {\n        var rotation = -Math.atan2(tangent[1], tangent[0]);\n\n        if (toPos[0] < fromPos[0]) {\n          rotation = Math.PI + rotation;\n        }\n\n        label.rotation = rotation;\n      }\n\n      var dy = void 0;\n\n      switch (label.__position) {\n        case 'insideStartTop':\n        case 'insideMiddleTop':\n        case 'insideEndTop':\n        case 'middle':\n          dy = -distanceY;\n          textVerticalAlign = 'bottom';\n          break;\n\n        case 'insideStartBottom':\n        case 'insideMiddleBottom':\n        case 'insideEndBottom':\n          dy = distanceY;\n          textVerticalAlign = 'top';\n          break;\n\n        default:\n          dy = 0;\n          textVerticalAlign = 'middle';\n      }\n\n      switch (label.__position) {\n        case 'end':\n          label.x = d[0] * distanceX + toPos[0];\n          label.y = d[1] * distanceY + toPos[1];\n          textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';\n          break;\n\n        case 'start':\n          label.x = -d[0] * distanceX + fromPos[0];\n          label.y = -d[1] * distanceY + fromPos[1];\n          textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';\n          break;\n\n        case 'insideStartTop':\n        case 'insideStart':\n        case 'insideStartBottom':\n          label.x = distanceX * dir + fromPos[0];\n          label.y = fromPos[1] + dy;\n          textAlign = tangent[0] < 0 ? 'right' : 'left';\n          label.originX = -distanceX * dir;\n          label.originY = -dy;\n          break;\n\n        case 'insideMiddleTop':\n        case 'insideMiddle':\n        case 'insideMiddleBottom':\n        case 'middle':\n          label.x = cp[0];\n          label.y = cp[1] + dy;\n          textAlign = 'center';\n          label.originY = -dy;\n          break;\n\n        case 'insideEndTop':\n        case 'insideEnd':\n        case 'insideEndBottom':\n          label.x = -distanceX * dir + toPos[0];\n          label.y = toPos[1] + dy;\n          textAlign = tangent[0] >= 0 ? 'right' : 'left';\n          label.originX = distanceX * dir;\n          label.originY = -dy;\n          break;\n      }\n\n      label.scaleX = label.scaleY = invScale;\n      label.setStyle({\n        // Use the user specified text align and baseline first\n        verticalAlign: label.__verticalAlign || textVerticalAlign,\n        align: label.__align || textAlign\n      });\n    }\n  };\n\n  return Line;\n}(graphic.Group);\n\nexport default Line;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as graphic from '../../util/graphic.js';\nimport LineGroup from './Line.js';\nimport { getLabelStatesModels } from '../../label/labelStyle.js';\n\nvar LineDraw =\n/** @class */\nfunction () {\n  function LineDraw(LineCtor) {\n    this.group = new graphic.Group();\n    this._LineCtor = LineCtor || LineGroup;\n  }\n\n  LineDraw.prototype.updateData = function (lineData) {\n    var _this = this; // Remove progressive els.\n\n\n    this._progressiveEls = null;\n    var lineDraw = this;\n    var group = lineDraw.group;\n    var oldLineData = lineDraw._lineData;\n    lineDraw._lineData = lineData; // There is no oldLineData only when first rendering or switching from\n    // stream mode to normal mode, where previous elements should be removed.\n\n    if (!oldLineData) {\n      group.removeAll();\n    }\n\n    var seriesScope = makeSeriesScope(lineData);\n    lineData.diff(oldLineData).add(function (idx) {\n      _this._doAdd(lineData, idx, seriesScope);\n    }).update(function (newIdx, oldIdx) {\n      _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\n    }).remove(function (idx) {\n      group.remove(oldLineData.getItemGraphicEl(idx));\n    }).execute();\n  };\n\n  ;\n\n  LineDraw.prototype.updateLayout = function () {\n    var lineData = this._lineData; // Do not support update layout in incremental mode.\n\n    if (!lineData) {\n      return;\n    }\n\n    lineData.eachItemGraphicEl(function (el, idx) {\n      el.updateLayout(lineData, idx);\n    }, this);\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\n    this._seriesScope = makeSeriesScope(lineData);\n    this._lineData = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\n    this._progressiveEls = [];\n\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup && !isEffectObject(el)) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var itemLayout = lineData.getItemLayout(idx);\n\n      if (lineNeedsDraw(itemLayout)) {\n        var el = new this._LineCtor(lineData, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        this.group.add(el);\n        lineData.setItemGraphicEl(idx, el);\n\n        this._progressiveEls.push(el);\n      }\n    }\n  };\n\n  ;\n\n  LineDraw.prototype.remove = function () {\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype.eachRendered = function (cb) {\n    graphic.traverseElements(this._progressiveEls || this.group, cb);\n  };\n\n  LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\n    var itemLayout = lineData.getItemLayout(idx);\n\n    if (!lineNeedsDraw(itemLayout)) {\n      return;\n    }\n\n    var el = new this._LineCtor(lineData, idx, seriesScope);\n    lineData.setItemGraphicEl(idx, el);\n    this.group.add(el);\n  };\n\n  LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\n    var itemEl = oldLineData.getItemGraphicEl(oldIdx);\n\n    if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\n      this.group.remove(itemEl);\n      return;\n    }\n\n    if (!itemEl) {\n      itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\n    } else {\n      itemEl.updateData(newLineData, newIdx, seriesScope);\n    }\n\n    newLineData.setItemGraphicEl(newIdx, itemEl);\n    this.group.add(itemEl);\n  };\n\n  return LineDraw;\n}();\n\nfunction isEffectObject(el) {\n  return el.animators && el.animators.length > 0;\n}\n\nfunction makeSeriesScope(lineData) {\n  var hostModel = lineData.hostModel;\n  var emphasisModel = hostModel.getModel('emphasis');\n  return {\n    lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\n    emphasisLineStyle: emphasisModel.getModel(['lineStyle']).getLineStyle(),\n    blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\n    selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\n    emphasisDisabled: emphasisModel.get('disabled'),\n    blurScope: emphasisModel.get('blurScope'),\n    focus: emphasisModel.get('focus'),\n    labelStatesModels: getLabelStatesModels(hostModel)\n  };\n}\n\nfunction isPointNaN(pt) {\n  return isNaN(pt[0]) || isNaN(pt[1]);\n}\n\nfunction lineNeedsDraw(pts) {\n  return pts && !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\n}\n\nexport default LineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as curveTool from 'zrender/lib/core/curve.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\nimport { getSymbolSize } from './graphHelper.js';\nvar v1 = [];\nvar v2 = [];\nvar v3 = [];\nvar quadraticAt = curveTool.quadraticAt;\nvar v2DistSquare = vec2.distSquare;\nvar mathAbs = Math.abs;\n\nfunction intersectCurveCircle(curvePoints, center, radius) {\n  var p0 = curvePoints[0];\n  var p1 = curvePoints[1];\n  var p2 = curvePoints[2];\n  var d = Infinity;\n  var t;\n  var radiusSquare = radius * radius;\n  var interval = 0.1;\n\n  for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\n    v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t);\n    v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t);\n    var diff = mathAbs(v2DistSquare(v1, center) - radiusSquare);\n\n    if (diff < d) {\n      d = diff;\n      t = _t;\n    }\n  } // Assume the segment is monotone，Find root through Bisection method\n  // At most 32 iteration\n\n\n  for (var i = 0; i < 32; i++) {\n    // let prev = t - interval;\n    var next = t + interval; // v1[0] = quadraticAt(p0[0], p1[0], p2[0], prev);\n    // v1[1] = quadraticAt(p0[1], p1[1], p2[1], prev);\n\n    v2[0] = quadraticAt(p0[0], p1[0], p2[0], t);\n    v2[1] = quadraticAt(p0[1], p1[1], p2[1], t);\n    v3[0] = quadraticAt(p0[0], p1[0], p2[0], next);\n    v3[1] = quadraticAt(p0[1], p1[1], p2[1], next);\n    var diff = v2DistSquare(v2, center) - radiusSquare;\n\n    if (mathAbs(diff) < 1e-2) {\n      break;\n    } // let prevDiff = v2DistSquare(v1, center) - radiusSquare;\n\n\n    var nextDiff = v2DistSquare(v3, center) - radiusSquare;\n    interval /= 2;\n\n    if (diff < 0) {\n      if (nextDiff >= 0) {\n        t = t + interval;\n      } else {\n        t = t - interval;\n      }\n    } else {\n      if (nextDiff >= 0) {\n        t = t - interval;\n      } else {\n        t = t + interval;\n      }\n    }\n  }\n\n  return t;\n} // Adjust edge to avoid\n\n\nexport default function adjustEdge(graph, scale) {\n  var tmp0 = [];\n  var quadraticSubdivide = curveTool.quadraticSubdivide;\n  var pts = [[], [], []];\n  var pts2 = [[], []];\n  var v = [];\n  scale /= 2;\n  graph.eachEdge(function (edge, idx) {\n    var linePoints = edge.getLayout();\n    var fromSymbol = edge.getVisual('fromSymbol');\n    var toSymbol = edge.getVisual('toSymbol');\n\n    if (!linePoints.__original) {\n      linePoints.__original = [vec2.clone(linePoints[0]), vec2.clone(linePoints[1])];\n\n      if (linePoints[2]) {\n        linePoints.__original.push(vec2.clone(linePoints[2]));\n      }\n    }\n\n    var originalPoints = linePoints.__original; // Quadratic curve\n\n    if (linePoints[2] != null) {\n      vec2.copy(pts[0], originalPoints[0]);\n      vec2.copy(pts[1], originalPoints[2]);\n      vec2.copy(pts[2], originalPoints[1]);\n\n      if (fromSymbol && fromSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node1);\n        var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale); // Subdivide and get the second\n\n        quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n        pts[0][0] = tmp0[3];\n        pts[1][0] = tmp0[4];\n        quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n        pts[0][1] = tmp0[3];\n        pts[1][1] = tmp0[4];\n      }\n\n      if (toSymbol && toSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node2);\n        var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale); // Subdivide and get the first\n\n        quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n        pts[1][0] = tmp0[1];\n        pts[2][0] = tmp0[2];\n        quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n        pts[1][1] = tmp0[1];\n        pts[2][1] = tmp0[2];\n      } // Copy back to layout\n\n\n      vec2.copy(linePoints[0], pts[0]);\n      vec2.copy(linePoints[1], pts[2]);\n      vec2.copy(linePoints[2], pts[1]);\n    } // Line\n    else {\n        vec2.copy(pts2[0], originalPoints[0]);\n        vec2.copy(pts2[1], originalPoints[1]);\n        vec2.sub(v, pts2[1], pts2[0]);\n        vec2.normalize(v, v);\n\n        if (fromSymbol && fromSymbol !== 'none') {\n          var symbolSize = getSymbolSize(edge.node1);\n          vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\n        }\n\n        if (toSymbol && toSymbol !== 'none') {\n          var symbolSize = getSymbolSize(edge.node2);\n          vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\n        }\n\n        vec2.copy(linePoints[0], pts2[0]);\n        vec2.copy(linePoints[1], pts2[1]);\n      }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport SymbolDraw from '../helper/SymbolDraw.js';\nimport LineDraw from '../helper/LineDraw.js';\nimport RoamController from '../../component/helper/RoamController.js';\nimport * as roamHelper from '../../component/helper/roamHelper.js';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper.js';\nimport * as graphic from '../../util/graphic.js';\nimport adjustEdge from './adjustEdge.js';\nimport { getNodeGlobalScale } from './graphHelper.js';\nimport ChartView from '../../view/Chart.js';\nimport { getECData } from '../../util/innerStore.js';\n\nfunction isViewCoordSys(coordSys) {\n  return coordSys.type === 'view';\n}\n\nvar GraphView =\n/** @class */\nfunction (_super) {\n  __extends(GraphView, _super);\n\n  function GraphView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphView.type;\n    return _this;\n  }\n\n  GraphView.prototype.init = function (ecModel, api) {\n    var symbolDraw = new SymbolDraw();\n    var lineDraw = new LineDraw();\n    var group = this.group;\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: group\n    };\n    group.add(symbolDraw.group);\n    group.add(lineDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineDraw = lineDraw;\n    this._firstRender = true;\n  };\n\n  GraphView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    this._model = seriesModel;\n    var symbolDraw = this._symbolDraw;\n    var lineDraw = this._lineDraw;\n    var group = this.group;\n\n    if (isViewCoordSys(coordSys)) {\n      var groupNewProp = {\n        x: coordSys.x,\n        y: coordSys.y,\n        scaleX: coordSys.scaleX,\n        scaleY: coordSys.scaleY\n      };\n\n      if (this._firstRender) {\n        group.attr(groupNewProp);\n      } else {\n        graphic.updateProps(group, groupNewProp, seriesModel);\n      }\n    } // Fix edge contact point with node\n\n\n    adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n    var data = seriesModel.getData();\n    symbolDraw.updateData(data);\n    var edgeData = seriesModel.getEdgeData(); // TODO: TYPE\n\n    lineDraw.updateData(edgeData);\n\n    this._updateNodeAndLinkScale();\n\n    this._updateController(seriesModel, ecModel, api);\n\n    clearTimeout(this._layoutTimeout);\n    var forceLayout = seriesModel.forceLayout;\n    var layoutAnimation = seriesModel.get(['force', 'layoutAnimation']);\n\n    if (forceLayout) {\n      this._startForceLayoutIteration(forceLayout, layoutAnimation);\n    }\n\n    data.graph.eachNode(function (node) {\n      var idx = node.dataIndex;\n      var el = node.getGraphicEl();\n      var itemModel = node.getModel();\n\n      if (!el) {\n        return;\n      } // Update draggable\n\n\n      el.off('drag').off('dragend');\n      var draggable = itemModel.get('draggable');\n\n      if (draggable) {\n        el.on('drag', function () {\n          if (forceLayout) {\n            forceLayout.warmUp();\n            !_this._layouting && _this._startForceLayoutIteration(forceLayout, layoutAnimation);\n            forceLayout.setFixed(idx); // Write position back to layout\n\n            data.setItemLayout(idx, [el.x, el.y]);\n          }\n        }).on('dragend', function () {\n          if (forceLayout) {\n            forceLayout.setUnfixed(idx);\n          }\n        });\n      }\n\n      el.setDraggable(draggable && !!forceLayout, !!itemModel.get('cursor'));\n      var focus = itemModel.get(['emphasis', 'focus']);\n\n      if (focus === 'adjacency') {\n        getECData(el).focus = node.getAdjacentDataIndices();\n      }\n    });\n    data.graph.eachEdge(function (edge) {\n      var el = edge.getGraphicEl();\n      var focus = edge.getModel().get(['emphasis', 'focus']);\n\n      if (!el) {\n        return;\n      }\n\n      if (focus === 'adjacency') {\n        getECData(el).focus = {\n          edge: [edge.dataIndex],\n          node: [edge.node1.dataIndex, edge.node2.dataIndex]\n        };\n      }\n    });\n    var circularRotateLabel = seriesModel.get('layout') === 'circular' && seriesModel.get(['circular', 'rotateLabel']);\n    var cx = data.getLayout('cx');\n    var cy = data.getLayout('cy');\n    data.eachItemGraphicEl(function (el, idx) {\n      var itemModel = data.getItemModel(idx);\n      var labelRotate = itemModel.get(['label', 'rotate']) || 0;\n      var symbolPath = el.getSymbolPath();\n\n      if (circularRotateLabel) {\n        var pos = data.getItemLayout(idx);\n        var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\n\n        if (rad < 0) {\n          rad = Math.PI * 2 + rad;\n        }\n\n        var isLeft = pos[0] < cx;\n\n        if (isLeft) {\n          rad = rad - Math.PI;\n        }\n\n        var textPosition = isLeft ? 'left' : 'right';\n        symbolPath.setTextConfig({\n          rotation: -rad,\n          position: textPosition,\n          origin: 'center'\n        });\n        var emphasisState = symbolPath.ensureState('emphasis');\n        zrUtil.extend(emphasisState.textConfig || (emphasisState.textConfig = {}), {\n          position: textPosition\n        });\n      } else {\n        symbolPath.setTextConfig({\n          rotation: labelRotate *= Math.PI / 180\n        });\n      }\n    });\n    this._firstRender = false;\n  };\n\n  GraphView.prototype.dispose = function () {\n    this._controller && this._controller.dispose();\n    this._controllerHost = null;\n  };\n\n  GraphView.prototype._startForceLayoutIteration = function (forceLayout, layoutAnimation) {\n    var self = this;\n\n    (function step() {\n      forceLayout.step(function (stopped) {\n        self.updateLayout(self._model);\n        (self._layouting = !stopped) && (layoutAnimation ? self._layoutTimeout = setTimeout(step, 16) : step());\n      });\n    })();\n  };\n\n  GraphView.prototype._updateController = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    var group = this.group;\n    controller.setPointerChecker(function (e, x, y) {\n      var rect = group.getBoundingRect();\n      rect.applyTransform(group.transform);\n      return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n    });\n\n    if (!isViewCoordSys(seriesModel.coordinateSystem)) {\n      controller.disable();\n      return;\n    }\n\n    controller.enable(seriesModel.get('roam'));\n    controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n    controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n    controller.off('pan').off('zoom').on('pan', function (e) {\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'graphRoam',\n        dx: e.dx,\n        dy: e.dy\n      });\n    }).on('zoom', function (e) {\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'graphRoam',\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      });\n\n      _this._updateNodeAndLinkScale();\n\n      adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n      _this._lineDraw.updateLayout(); // Only update label layout on zoom\n\n\n      api.updateLabelLayout();\n    });\n  };\n\n  GraphView.prototype._updateNodeAndLinkScale = function () {\n    var seriesModel = this._model;\n    var data = seriesModel.getData();\n    var nodeScale = getNodeGlobalScale(seriesModel);\n    data.eachItemGraphicEl(function (el, idx) {\n      el && el.setSymbolScale(nodeScale);\n    });\n  };\n\n  GraphView.prototype.updateLayout = function (seriesModel) {\n    adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n    this._symbolDraw.updateLayout();\n\n    this._lineDraw.updateLayout();\n  };\n\n  GraphView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove();\n    this._lineDraw && this._lineDraw.remove();\n  };\n\n  GraphView.type = 'graph';\n  return GraphView;\n}(ChartView);\n\nexport default GraphView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js'; // id may be function name of Object, add a prefix to avoid this problem.\n\nfunction generateNodeKey(id) {\n  return '_EC_' + id;\n}\n\nvar Graph =\n/** @class */\nfunction () {\n  function Graph(directed) {\n    this.type = 'graph';\n    this.nodes = [];\n    this.edges = [];\n    this._nodesMap = {};\n    /**\n     * @type {Object.<string, module:echarts/data/Graph.Edge>}\n     * @private\n     */\n\n    this._edgesMap = {};\n    this._directed = directed || false;\n  }\n  /**\n   * If is directed graph\n   */\n\n\n  Graph.prototype.isDirected = function () {\n    return this._directed;\n  };\n\n  ;\n  /**\n   * Add a new node\n   */\n\n  Graph.prototype.addNode = function (id, dataIndex) {\n    id = id == null ? '' + dataIndex : '' + id;\n    var nodesMap = this._nodesMap;\n\n    if (nodesMap[generateNodeKey(id)]) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Graph nodes have duplicate name or id');\n      }\n\n      return;\n    }\n\n    var node = new GraphNode(id, dataIndex);\n    node.hostGraph = this;\n    this.nodes.push(node);\n    nodesMap[generateNodeKey(id)] = node;\n    return node;\n  };\n\n  ;\n  /**\n   * Get node by data index\n   */\n\n  Graph.prototype.getNodeByIndex = function (dataIndex) {\n    var rawIdx = this.data.getRawIndex(dataIndex);\n    return this.nodes[rawIdx];\n  };\n\n  ;\n  /**\n   * Get node by id\n   */\n\n  Graph.prototype.getNodeById = function (id) {\n    return this._nodesMap[generateNodeKey(id)];\n  };\n\n  ;\n  /**\n   * Add a new edge\n   */\n\n  Graph.prototype.addEdge = function (n1, n2, dataIndex) {\n    var nodesMap = this._nodesMap;\n    var edgesMap = this._edgesMap; // PNEDING\n\n    if (zrUtil.isNumber(n1)) {\n      n1 = this.nodes[n1];\n    }\n\n    if (zrUtil.isNumber(n2)) {\n      n2 = this.nodes[n2];\n    }\n\n    if (!(n1 instanceof GraphNode)) {\n      n1 = nodesMap[generateNodeKey(n1)];\n    }\n\n    if (!(n2 instanceof GraphNode)) {\n      n2 = nodesMap[generateNodeKey(n2)];\n    }\n\n    if (!n1 || !n2) {\n      return;\n    }\n\n    var key = n1.id + '-' + n2.id;\n    var edge = new GraphEdge(n1, n2, dataIndex);\n    edge.hostGraph = this;\n\n    if (this._directed) {\n      n1.outEdges.push(edge);\n      n2.inEdges.push(edge);\n    }\n\n    n1.edges.push(edge);\n\n    if (n1 !== n2) {\n      n2.edges.push(edge);\n    }\n\n    this.edges.push(edge);\n    edgesMap[key] = edge;\n    return edge;\n  };\n\n  ;\n  /**\n   * Get edge by data index\n   */\n\n  Graph.prototype.getEdgeByIndex = function (dataIndex) {\n    var rawIdx = this.edgeData.getRawIndex(dataIndex);\n    return this.edges[rawIdx];\n  };\n\n  ;\n  /**\n   * Get edge by two linked nodes\n   */\n\n  Graph.prototype.getEdge = function (n1, n2) {\n    if (n1 instanceof GraphNode) {\n      n1 = n1.id;\n    }\n\n    if (n2 instanceof GraphNode) {\n      n2 = n2.id;\n    }\n\n    var edgesMap = this._edgesMap;\n\n    if (this._directed) {\n      return edgesMap[n1 + '-' + n2];\n    } else {\n      return edgesMap[n1 + '-' + n2] || edgesMap[n2 + '-' + n1];\n    }\n  };\n\n  ;\n  /**\n   * Iterate all nodes\n   */\n\n  Graph.prototype.eachNode = function (cb, context) {\n    var nodes = this.nodes;\n    var len = nodes.length;\n\n    for (var i = 0; i < len; i++) {\n      if (nodes[i].dataIndex >= 0) {\n        cb.call(context, nodes[i], i);\n      }\n    }\n  };\n\n  ;\n  /**\n   * Iterate all edges\n   */\n\n  Graph.prototype.eachEdge = function (cb, context) {\n    var edges = this.edges;\n    var len = edges.length;\n\n    for (var i = 0; i < len; i++) {\n      if (edges[i].dataIndex >= 0 && edges[i].node1.dataIndex >= 0 && edges[i].node2.dataIndex >= 0) {\n        cb.call(context, edges[i], i);\n      }\n    }\n  };\n\n  ;\n  /**\n   * Breadth first traverse\n   * Return true to stop traversing\n   */\n\n  Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) {\n    if (!(startNode instanceof GraphNode)) {\n      startNode = this._nodesMap[generateNodeKey(startNode)];\n    }\n\n    if (!startNode) {\n      return;\n    }\n\n    var edgeType = direction === 'out' ? 'outEdges' : direction === 'in' ? 'inEdges' : 'edges';\n\n    for (var i = 0; i < this.nodes.length; i++) {\n      this.nodes[i].__visited = false;\n    }\n\n    if (cb.call(context, startNode, null)) {\n      return;\n    }\n\n    var queue = [startNode];\n\n    while (queue.length) {\n      var currentNode = queue.shift();\n      var edges = currentNode[edgeType];\n\n      for (var i = 0; i < edges.length; i++) {\n        var e = edges[i];\n        var otherNode = e.node1 === currentNode ? e.node2 : e.node1;\n\n        if (!otherNode.__visited) {\n          if (cb.call(context, otherNode, currentNode)) {\n            // Stop traversing\n            return;\n          }\n\n          queue.push(otherNode);\n          otherNode.__visited = true;\n        }\n      }\n    }\n  };\n\n  ; // TODO\n  // depthFirstTraverse(\n  //     cb, startNode, direction, context\n  // ) {\n  // };\n  // Filter update\n\n  Graph.prototype.update = function () {\n    var data = this.data;\n    var edgeData = this.edgeData;\n    var nodes = this.nodes;\n    var edges = this.edges;\n\n    for (var i = 0, len = nodes.length; i < len; i++) {\n      nodes[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      nodes[data.getRawIndex(i)].dataIndex = i;\n    }\n\n    edgeData.filterSelf(function (idx) {\n      var edge = edges[edgeData.getRawIndex(idx)];\n      return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0;\n    }); // Update edge\n\n    for (var i = 0, len = edges.length; i < len; i++) {\n      edges[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = edgeData.count(); i < len; i++) {\n      edges[edgeData.getRawIndex(i)].dataIndex = i;\n    }\n  };\n\n  ;\n  /**\n   * @return {module:echarts/data/Graph}\n   */\n\n  Graph.prototype.clone = function () {\n    var graph = new Graph(this._directed);\n    var nodes = this.nodes;\n    var edges = this.edges;\n\n    for (var i = 0; i < nodes.length; i++) {\n      graph.addNode(nodes[i].id, nodes[i].dataIndex);\n    }\n\n    for (var i = 0; i < edges.length; i++) {\n      var e = edges[i];\n      graph.addEdge(e.node1.id, e.node2.id, e.dataIndex);\n    }\n\n    return graph;\n  };\n\n  ;\n  return Graph;\n}();\n\nvar GraphNode =\n/** @class */\nfunction () {\n  function GraphNode(id, dataIndex) {\n    this.inEdges = [];\n    this.outEdges = [];\n    this.edges = [];\n    this.dataIndex = -1;\n    this.id = id == null ? '' : id;\n    this.dataIndex = dataIndex == null ? -1 : dataIndex;\n  }\n  /**\n   * @return {number}\n   */\n\n\n  GraphNode.prototype.degree = function () {\n    return this.edges.length;\n  };\n  /**\n   * @return {number}\n   */\n\n\n  GraphNode.prototype.inDegree = function () {\n    return this.inEdges.length;\n  };\n  /**\n  * @return {number}\n  */\n\n\n  GraphNode.prototype.outDegree = function () {\n    return this.outEdges.length;\n  };\n\n  GraphNode.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var graph = this.hostGraph;\n    var itemModel = graph.data.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  GraphNode.prototype.getAdjacentDataIndices = function () {\n    var dataIndices = {\n      edge: [],\n      node: []\n    };\n\n    for (var i = 0; i < this.edges.length; i++) {\n      var adjacentEdge = this.edges[i];\n\n      if (adjacentEdge.dataIndex < 0) {\n        continue;\n      }\n\n      dataIndices.edge.push(adjacentEdge.dataIndex);\n      dataIndices.node.push(adjacentEdge.node1.dataIndex, adjacentEdge.node2.dataIndex);\n    }\n\n    return dataIndices;\n  };\n\n  return GraphNode;\n}();\n\nvar GraphEdge =\n/** @class */\nfunction () {\n  function GraphEdge(n1, n2, dataIndex) {\n    this.dataIndex = -1;\n    this.node1 = n1;\n    this.node2 = n2;\n    this.dataIndex = dataIndex == null ? -1 : dataIndex;\n  } // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n  GraphEdge.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var graph = this.hostGraph;\n    var itemModel = graph.edgeData.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  GraphEdge.prototype.getAdjacentDataIndices = function () {\n    return {\n      edge: [this.dataIndex],\n      node: [this.node1.dataIndex, this.node2.dataIndex]\n    };\n  };\n\n  return GraphEdge;\n}();\n\nfunction createGraphDataProxyMixin(hostName, dataName) {\n  return {\n    /**\n     * @param Default 'value'. can be 'a', 'b', 'c', 'd', 'e'.\n     */\n    getValue: function (dimension) {\n      var data = this[hostName][dataName];\n      return data.getStore().get(data.getDimensionIndex(dimension || 'value'), this.dataIndex);\n    },\n    // TODO: TYPE stricter type.\n    setVisual: function (key, value) {\n      this.dataIndex >= 0 && this[hostName][dataName].setItemVisual(this.dataIndex, key, value);\n    },\n    getVisual: function (key) {\n      return this[hostName][dataName].getItemVisual(this.dataIndex, key);\n    },\n    setLayout: function (layout, merge) {\n      this.dataIndex >= 0 && this[hostName][dataName].setItemLayout(this.dataIndex, layout, merge);\n    },\n    getLayout: function () {\n      return this[hostName][dataName].getItemLayout(this.dataIndex);\n    },\n    getGraphicEl: function () {\n      return this[hostName][dataName].getItemGraphicEl(this.dataIndex);\n    },\n    getRawIndex: function () {\n      return this[hostName][dataName].getRawIndex(this.dataIndex);\n    }\n  };\n}\n\n;\n;\n;\nzrUtil.mixin(GraphNode, createGraphDataProxyMixin('hostGraph', 'data'));\nzrUtil.mixin(GraphEdge, createGraphDataProxyMixin('hostGraph', 'edgeData'));\nexport default Graph;\nexport { GraphNode, GraphEdge };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport Graph from '../../data/Graph.js';\nimport linkSeriesData from '../../data/helper/linkSeriesData.js';\nimport prepareSeriesDataSchema from '../../data/helper/createDimensions.js';\nimport CoordinateSystem from '../../core/CoordinateSystem.js';\nimport createSeriesData from './createSeriesData.js';\nimport { convertOptionIdName } from '../../util/model.js';\nexport default function createGraphFromNodeEdge(nodes, edges, seriesModel, directed, beforeLink) {\n  // ??? TODO\n  // support dataset?\n  var graph = new Graph(directed);\n\n  for (var i = 0; i < nodes.length; i++) {\n    graph.addNode(zrUtil.retrieve( // Id, name, dataIndex\n    nodes[i].id, nodes[i].name, i), i);\n  }\n\n  var linkNameList = [];\n  var validEdges = [];\n  var linkCount = 0;\n\n  for (var i = 0; i < edges.length; i++) {\n    var link = edges[i];\n    var source = link.source;\n    var target = link.target; // addEdge may fail when source or target not exists\n\n    if (graph.addEdge(source, target, linkCount)) {\n      validEdges.push(link);\n      linkNameList.push(zrUtil.retrieve(convertOptionIdName(link.id, null), source + ' > ' + target));\n      linkCount++;\n    }\n  }\n\n  var coordSys = seriesModel.get('coordinateSystem');\n  var nodeData;\n\n  if (coordSys === 'cartesian2d' || coordSys === 'polar') {\n    nodeData = createSeriesData(nodes, seriesModel);\n  } else {\n    var coordSysCtor = CoordinateSystem.get(coordSys);\n    var coordDimensions = coordSysCtor ? coordSysCtor.dimensions || [] : []; // FIXME: Some geo do not need `value` dimenson, whereas `calendar` needs\n    // `value` dimension, but graph need `value` dimension. It's better to\n    // uniform this behavior.\n\n    if (zrUtil.indexOf(coordDimensions, 'value') < 0) {\n      coordDimensions.concat(['value']);\n    }\n\n    var dimensions = prepareSeriesDataSchema(nodes, {\n      coordDimensions: coordDimensions,\n      encodeDefine: seriesModel.getEncode()\n    }).dimensions;\n    nodeData = new SeriesData(dimensions, seriesModel);\n    nodeData.initData(nodes);\n  }\n\n  var edgeData = new SeriesData(['value'], seriesModel);\n  edgeData.initData(validEdges, linkNameList);\n  beforeLink && beforeLink(nodeData, edgeData);\n  linkSeriesData({\n    mainData: nodeData,\n    struct: graph,\n    structAttr: 'graph',\n    datas: {\n      node: nodeData,\n      edge: edgeData\n    },\n    datasAttr: {\n      node: 'data',\n      edge: 'edgeData'\n    }\n  }); // Update dataIndex of nodes and edges because invalid edge may be removed\n\n  graph.update();\n  return graph;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesData from '../../data/SeriesData.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { defaultEmphasis } from '../../util/model.js';\nimport Model from '../../model/Model.js';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge.js';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider.js';\nimport SeriesModel from '../../model/Series.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\nimport { defaultSeriesFormatTooltip } from '../../component/tooltip/seriesFormatTooltip.js';\nimport { initCurvenessList, createEdgeMapForCurveness } from '../helper/multipleGraphEdgeHelper.js';\n\nvar GraphSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(GraphSeriesModel, _super);\n\n  function GraphSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  GraphSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    var self = this;\n\n    function getCategoriesData() {\n      return self._categoriesData;\n    } // Provide data for legend select\n\n\n    this.legendVisualProvider = new LegendVisualProvider(getCategoriesData, getCategoriesData);\n    this.fillDataTextStyle(option.edges || option.links);\n\n    this._updateCategoriesData();\n  };\n\n  GraphSeriesModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    this.fillDataTextStyle(option.edges || option.links);\n\n    this._updateCategoriesData();\n  };\n\n  GraphSeriesModel.prototype.mergeDefaultAndTheme = function (option) {\n    _super.prototype.mergeDefaultAndTheme.apply(this, arguments);\n\n    defaultEmphasis(option, 'edgeLabel', ['show']);\n  };\n\n  GraphSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var edges = option.edges || option.links || [];\n    var nodes = option.data || option.nodes || [];\n    var self = this;\n\n    if (nodes && edges) {\n      // auto curveness\n      initCurvenessList(this);\n      var graph = createGraphFromNodeEdge(nodes, edges, this, true, beforeLink);\n      zrUtil.each(graph.edges, function (edge) {\n        createEdgeMapForCurveness(edge.node1, edge.node2, this, edge.dataIndex);\n      }, this);\n      return graph.data;\n    }\n\n    function beforeLink(nodeData, edgeData) {\n      // Overwrite nodeData.getItemModel to\n      nodeData.wrapMethod('getItemModel', function (model) {\n        var categoriesModels = self._categoriesModels;\n        var categoryIdx = model.getShallow('category');\n        var categoryModel = categoriesModels[categoryIdx];\n\n        if (categoryModel) {\n          categoryModel.parentModel = model.parentModel;\n          model.parentModel = categoryModel;\n        }\n\n        return model;\n      }); // TODO Inherit resolveParentPath by default in Model#getModel?\n\n      var oldGetModel = Model.prototype.getModel;\n\n      function newGetModel(path, parentModel) {\n        var model = oldGetModel.call(this, path, parentModel);\n        model.resolveParentPath = resolveParentPath;\n        return model;\n      }\n\n      edgeData.wrapMethod('getItemModel', function (model) {\n        model.resolveParentPath = resolveParentPath;\n        model.getModel = newGetModel;\n        return model;\n      });\n\n      function resolveParentPath(pathArr) {\n        if (pathArr && (pathArr[0] === 'label' || pathArr[1] === 'label')) {\n          var newPathArr = pathArr.slice();\n\n          if (pathArr[0] === 'label') {\n            newPathArr[0] = 'edgeLabel';\n          } else if (pathArr[1] === 'label') {\n            newPathArr[1] = 'edgeLabel';\n          }\n\n          return newPathArr;\n        }\n\n        return pathArr;\n      }\n    }\n  };\n\n  GraphSeriesModel.prototype.getGraph = function () {\n    return this.getData().graph;\n  };\n\n  GraphSeriesModel.prototype.getEdgeData = function () {\n    return this.getGraph().edgeData;\n  };\n\n  GraphSeriesModel.prototype.getCategoriesData = function () {\n    return this._categoriesData;\n  };\n\n  GraphSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    if (dataType === 'edge') {\n      var nodeData = this.getData();\n      var params = this.getDataParams(dataIndex, dataType);\n      var edge = nodeData.graph.getEdgeByIndex(dataIndex);\n      var sourceName = nodeData.getName(edge.node1.dataIndex);\n      var targetName = nodeData.getName(edge.node2.dataIndex);\n      var nameArr = [];\n      sourceName != null && nameArr.push(sourceName);\n      targetName != null && nameArr.push(targetName);\n      return createTooltipMarkup('nameValue', {\n        name: nameArr.join(' > '),\n        value: params.value,\n        noValue: params.value == null\n      });\n    } // dataType === 'node' or empty\n\n\n    var nodeMarkup = defaultSeriesFormatTooltip({\n      series: this,\n      dataIndex: dataIndex,\n      multipleSeries: multipleSeries\n    });\n    return nodeMarkup;\n  };\n\n  GraphSeriesModel.prototype._updateCategoriesData = function () {\n    var categories = zrUtil.map(this.option.categories || [], function (category) {\n      // Data must has value\n      return category.value != null ? category : zrUtil.extend({\n        value: 0\n      }, category);\n    });\n    var categoriesData = new SeriesData(['value'], this);\n    categoriesData.initData(categories);\n    this._categoriesData = categoriesData;\n    this._categoriesModels = categoriesData.mapArray(function (idx) {\n      return categoriesData.getItemModel(idx);\n    });\n  };\n\n  GraphSeriesModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  GraphSeriesModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  GraphSeriesModel.prototype.isAnimationEnabled = function () {\n    return _super.prototype.isAnimationEnabled.call(this) // Not enable animation when do force layout\n    && !(this.get('layout') === 'force' && this.get(['force', 'layoutAnimation']));\n  };\n\n  GraphSeriesModel.type = 'series.graph';\n  GraphSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  GraphSeriesModel.defaultOption = {\n    // zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    // Default option for all coordinate systems\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    // polarIndex: 0,\n    // geoIndex: 0,\n    legendHoverLink: true,\n    layout: null,\n    // Configuration of circular layout\n    circular: {\n      rotateLabel: false\n    },\n    // Configuration of force directed layout\n    force: {\n      initLayout: null,\n      // Node repulsion. Can be an array to represent range.\n      repulsion: [0, 50],\n      gravity: 0.1,\n      // Initial friction\n      friction: 0.6,\n      // Edge length. Can be an array to represent range.\n      edgeLength: 30,\n      layoutAnimation: true\n    },\n    left: 'center',\n    top: 'center',\n    // right: null,\n    // bottom: null,\n    // width: '80%',\n    // height: '80%',\n    symbol: 'circle',\n    symbolSize: 10,\n    edgeSymbol: ['none', 'none'],\n    edgeSymbolSize: 10,\n    edgeLabel: {\n      position: 'middle',\n      distance: 5\n    },\n    draggable: false,\n    roam: false,\n    // Default on center of graph\n    center: null,\n    zoom: 1,\n    // Symbol size scale ratio in roam\n    nodeScaleRatio: 0.6,\n    // cursor: null,\n    // categories: [],\n    // data: []\n    // Or\n    // nodes: []\n    //\n    // links: []\n    // Or\n    // edges: []\n    label: {\n      show: false,\n      formatter: '{b}'\n    },\n    itemStyle: {},\n    lineStyle: {\n      color: '#aaa',\n      width: 1,\n      opacity: 0.5\n    },\n    emphasis: {\n      scale: true,\n      label: {\n        show: true\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return GraphSeriesModel;\n}(SeriesModel);\n\nexport default GraphSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport categoryFilter from './categoryFilter.js';\nimport categoryVisual from './categoryVisual.js';\nimport edgeVisual from './edgeVisual.js';\nimport simpleLayout from './simpleLayout.js';\nimport circularLayout from './circularLayout.js';\nimport forceLayout from './forceLayout.js';\nimport createView from './createView.js';\nimport View from '../../coord/View.js';\nimport GraphView from './GraphView.js';\nimport GraphSeriesModel from './GraphSeries.js';\nimport { updateCenterAndZoom } from '../../action/roamHelper.js';\nimport { noop } from 'zrender/lib/core/util.js';\nvar actionInfo = {\n  type: 'graphRoam',\n  event: 'graphRoam',\n  update: 'none'\n};\nexport function install(registers) {\n  registers.registerChartView(GraphView);\n  registers.registerSeriesModel(GraphSeriesModel);\n  registers.registerProcessor(categoryFilter);\n  registers.registerVisual(categoryVisual);\n  registers.registerVisual(edgeVisual);\n  registers.registerLayout(simpleLayout);\n  registers.registerLayout(registers.PRIORITY.VISUAL.POST_CHART_LAYOUT, circularLayout);\n  registers.registerLayout(forceLayout);\n  registers.registerCoordinateSystem('graphView', {\n    dimensions: View.dimensions,\n    create: createView\n  }); // Register legacy focus actions\n\n  registers.registerAction({\n    type: 'focusNodeAdjacency',\n    event: 'focusNodeAdjacency',\n    update: 'series:focusNodeAdjacency'\n  }, noop);\n  registers.registerAction({\n    type: 'unfocusNodeAdjacency',\n    event: 'unfocusNodeAdjacency',\n    update: 'series:unfocusNodeAdjacency'\n  }, noop); // Register roam action.\n\n  registers.registerAction(actionInfo, function (payload, ecModel, api) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      query: payload\n    }, function (seriesModel) {\n      var coordSys = seriesModel.coordinateSystem;\n      var res = updateCenterAndZoom(coordSys, payload, undefined, api);\n      seriesModel.setCenter && seriesModel.setCenter(res.center);\n      seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path.js';\n\nvar PointerShape =\n/** @class */\nfunction () {\n  function PointerShape() {\n    this.angle = 0;\n    this.width = 10;\n    this.r = 10;\n    this.x = 0;\n    this.y = 0;\n  }\n\n  return PointerShape;\n}();\n\nvar PointerPath =\n/** @class */\nfunction (_super) {\n  __extends(PointerPath, _super);\n\n  function PointerPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'pointer';\n    return _this;\n  }\n\n  PointerPath.prototype.getDefaultShape = function () {\n    return new PointerShape();\n  };\n\n  PointerPath.prototype.buildPath = function (ctx, shape) {\n    var mathCos = Math.cos;\n    var mathSin = Math.sin;\n    var r = shape.r;\n    var width = shape.width;\n    var angle = shape.angle;\n    var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\n    var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\n    angle = shape.angle - Math.PI / 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\n    ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\n    ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\n    ctx.lineTo(x, y);\n  };\n\n  return PointerPath;\n}(Path);\n\nexport default PointerPath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport PointerPath from './PointerPath.js';\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport { createTextStyle, setLabelValueAnimation, animateLabelValue } from '../../label/labelStyle.js';\nimport ChartView from '../../view/Chart.js';\nimport { parsePercent, round, linearMap } from '../../util/number.js';\nimport Sausage from '../../util/shape/sausage.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport ZRImage from 'zrender/lib/graphic/Image.js';\nimport { extend, isFunction, isString } from 'zrender/lib/core/util.js';\nimport { setCommonECData } from '../../util/innerStore.js';\nimport { normalizeArcAngles } from 'zrender/lib/core/PathProxy.js';\n\nfunction parsePosition(seriesModel, api) {\n  var center = seriesModel.get('center');\n  var width = api.getWidth();\n  var height = api.getHeight();\n  var size = Math.min(width, height);\n  var cx = parsePercent(center[0], api.getWidth());\n  var cy = parsePercent(center[1], api.getHeight());\n  var r = parsePercent(seriesModel.get('radius'), size / 2);\n  return {\n    cx: cx,\n    cy: cy,\n    r: r\n  };\n}\n\nfunction formatLabel(value, labelFormatter) {\n  var label = value == null ? '' : value + '';\n\n  if (labelFormatter) {\n    if (isString(labelFormatter)) {\n      label = labelFormatter.replace('{value}', label);\n    } else if (isFunction(labelFormatter)) {\n      label = labelFormatter(value);\n    }\n  }\n\n  return label;\n}\n\nvar GaugeView =\n/** @class */\nfunction (_super) {\n  __extends(GaugeView, _super);\n\n  function GaugeView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GaugeView.type;\n    return _this;\n  }\n\n  GaugeView.prototype.render = function (seriesModel, ecModel, api) {\n    this.group.removeAll();\n    var colorList = seriesModel.get(['axisLine', 'lineStyle', 'color']);\n    var posInfo = parsePosition(seriesModel, api);\n\n    this._renderMain(seriesModel, ecModel, api, colorList, posInfo);\n\n    this._data = seriesModel.getData();\n  };\n\n  GaugeView.prototype.dispose = function () {};\n\n  GaugeView.prototype._renderMain = function (seriesModel, ecModel, api, colorList, posInfo) {\n    var group = this.group;\n    var clockwise = seriesModel.get('clockwise');\n    var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI;\n    var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI;\n    var axisLineModel = seriesModel.getModel('axisLine');\n    var roundCap = axisLineModel.get('roundCap');\n    var MainPath = roundCap ? Sausage : graphic.Sector;\n    var showAxis = axisLineModel.get('show');\n    var lineStyleModel = axisLineModel.getModel('lineStyle');\n    var axisLineWidth = lineStyleModel.get('width');\n    var angles = [startAngle, endAngle];\n    normalizeArcAngles(angles, !clockwise);\n    startAngle = angles[0];\n    endAngle = angles[1];\n    var angleRangeSpan = endAngle - startAngle;\n    var prevEndAngle = startAngle;\n\n    for (var i = 0; showAxis && i < colorList.length; i++) {\n      // Clamp\n      var percent = Math.min(Math.max(colorList[i][0], 0), 1);\n      endAngle = startAngle + angleRangeSpan * percent;\n      var sector = new MainPath({\n        shape: {\n          startAngle: prevEndAngle,\n          endAngle: endAngle,\n          cx: posInfo.cx,\n          cy: posInfo.cy,\n          clockwise: clockwise,\n          r0: posInfo.r - axisLineWidth,\n          r: posInfo.r\n        },\n        silent: true\n      });\n      sector.setStyle({\n        fill: colorList[i][1]\n      });\n      sector.setStyle(lineStyleModel.getLineStyle( // Because we use sector to simulate arc\n      // so the properties for stroking are useless\n      ['color', 'width']));\n      group.add(sector);\n      prevEndAngle = endAngle;\n    }\n\n    var getColor = function (percent) {\n      // Less than 0\n      if (percent <= 0) {\n        return colorList[0][1];\n      }\n\n      var i;\n\n      for (i = 0; i < colorList.length; i++) {\n        if (colorList[i][0] >= percent && (i === 0 ? 0 : colorList[i - 1][0]) < percent) {\n          return colorList[i][1];\n        }\n      } // More than 1\n\n\n      return colorList[i - 1][1];\n    };\n\n    this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n\n    this._renderTitleAndDetail(seriesModel, ecModel, api, getColor, posInfo);\n\n    this._renderAnchor(seriesModel, posInfo);\n\n    this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n  };\n\n  GaugeView.prototype._renderTicks = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n    var group = this.group;\n    var cx = posInfo.cx;\n    var cy = posInfo.cy;\n    var r = posInfo.r;\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var splitLineModel = seriesModel.getModel('splitLine');\n    var tickModel = seriesModel.getModel('axisTick');\n    var labelModel = seriesModel.getModel('axisLabel');\n    var splitNumber = seriesModel.get('splitNumber');\n    var subSplitNumber = tickModel.get('splitNumber');\n    var splitLineLen = parsePercent(splitLineModel.get('length'), r);\n    var tickLen = parsePercent(tickModel.get('length'), r);\n    var angle = startAngle;\n    var step = (endAngle - startAngle) / splitNumber;\n    var subStep = step / subSplitNumber;\n    var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle();\n    var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle();\n    var splitLineDistance = splitLineModel.get('distance');\n    var unitX;\n    var unitY;\n\n    for (var i = 0; i <= splitNumber; i++) {\n      unitX = Math.cos(angle);\n      unitY = Math.sin(angle); // Split line\n\n      if (splitLineModel.get('show')) {\n        var distance = splitLineDistance ? splitLineDistance + axisLineWidth : axisLineWidth;\n        var splitLine = new graphic.Line({\n          shape: {\n            x1: unitX * (r - distance) + cx,\n            y1: unitY * (r - distance) + cy,\n            x2: unitX * (r - splitLineLen - distance) + cx,\n            y2: unitY * (r - splitLineLen - distance) + cy\n          },\n          style: splitLineStyle,\n          silent: true\n        });\n\n        if (splitLineStyle.stroke === 'auto') {\n          splitLine.setStyle({\n            stroke: getColor(i / splitNumber)\n          });\n        }\n\n        group.add(splitLine);\n      } // Label\n\n\n      if (labelModel.get('show')) {\n        var distance = labelModel.get('distance') + splitLineDistance;\n        var label = formatLabel(round(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter'));\n        var autoColor = getColor(i / splitNumber);\n        group.add(new graphic.Text({\n          style: createTextStyle(labelModel, {\n            text: label,\n            x: unitX * (r - splitLineLen - distance) + cx,\n            y: unitY * (r - splitLineLen - distance) + cy,\n            verticalAlign: unitY < -0.8 ? 'top' : unitY > 0.8 ? 'bottom' : 'middle',\n            align: unitX < -0.4 ? 'left' : unitX > 0.4 ? 'right' : 'center'\n          }, {\n            inheritColor: autoColor\n          }),\n          silent: true\n        }));\n      } // Axis tick\n\n\n      if (tickModel.get('show') && i !== splitNumber) {\n        var distance = tickModel.get('distance');\n        distance = distance ? distance + axisLineWidth : axisLineWidth;\n\n        for (var j = 0; j <= subSplitNumber; j++) {\n          unitX = Math.cos(angle);\n          unitY = Math.sin(angle);\n          var tickLine = new graphic.Line({\n            shape: {\n              x1: unitX * (r - distance) + cx,\n              y1: unitY * (r - distance) + cy,\n              x2: unitX * (r - tickLen - distance) + cx,\n              y2: unitY * (r - tickLen - distance) + cy\n            },\n            silent: true,\n            style: tickLineStyle\n          });\n\n          if (tickLineStyle.stroke === 'auto') {\n            tickLine.setStyle({\n              stroke: getColor((i + j / subSplitNumber) / splitNumber)\n            });\n          }\n\n          group.add(tickLine);\n          angle += subStep;\n        }\n\n        angle -= subStep;\n      } else {\n        angle += step;\n      }\n    }\n  };\n\n  GaugeView.prototype._renderPointer = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n    var group = this.group;\n    var oldData = this._data;\n    var oldProgressData = this._progressEls;\n    var progressList = [];\n    var showPointer = seriesModel.get(['pointer', 'show']);\n    var progressModel = seriesModel.getModel('progress');\n    var showProgress = progressModel.get('show');\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var valueExtent = [minVal, maxVal];\n    var angleExtent = [startAngle, endAngle];\n\n    function createPointer(idx, angle) {\n      var itemModel = data.getItemModel(idx);\n      var pointerModel = itemModel.getModel('pointer');\n      var pointerWidth = parsePercent(pointerModel.get('width'), posInfo.r);\n      var pointerLength = parsePercent(pointerModel.get('length'), posInfo.r);\n      var pointerStr = seriesModel.get(['pointer', 'icon']);\n      var pointerOffset = pointerModel.get('offsetCenter');\n      var pointerOffsetX = parsePercent(pointerOffset[0], posInfo.r);\n      var pointerOffsetY = parsePercent(pointerOffset[1], posInfo.r);\n      var pointerKeepAspect = pointerModel.get('keepAspect');\n      var pointer; // not exist icon type will be set 'rect'\n\n      if (pointerStr) {\n        pointer = createSymbol(pointerStr, pointerOffsetX - pointerWidth / 2, pointerOffsetY - pointerLength, pointerWidth, pointerLength, null, pointerKeepAspect);\n      } else {\n        pointer = new PointerPath({\n          shape: {\n            angle: -Math.PI / 2,\n            width: pointerWidth,\n            r: pointerLength,\n            x: pointerOffsetX,\n            y: pointerOffsetY\n          }\n        });\n      }\n\n      pointer.rotation = -(angle + Math.PI / 2);\n      pointer.x = posInfo.cx;\n      pointer.y = posInfo.cy;\n      return pointer;\n    }\n\n    function createProgress(idx, endAngle) {\n      var roundCap = progressModel.get('roundCap');\n      var ProgressPath = roundCap ? Sausage : graphic.Sector;\n      var isOverlap = progressModel.get('overlap');\n      var progressWidth = isOverlap ? progressModel.get('width') : axisLineWidth / data.count();\n      var r0 = isOverlap ? posInfo.r - progressWidth : posInfo.r - (idx + 1) * progressWidth;\n      var r = isOverlap ? posInfo.r : posInfo.r - idx * progressWidth;\n      var progress = new ProgressPath({\n        shape: {\n          startAngle: startAngle,\n          endAngle: endAngle,\n          cx: posInfo.cx,\n          cy: posInfo.cy,\n          clockwise: clockwise,\n          r0: r0,\n          r: r\n        }\n      });\n      isOverlap && (progress.z2 = maxVal - data.get(valueDim, idx) % maxVal);\n      return progress;\n    }\n\n    if (showProgress || showPointer) {\n      data.diff(oldData).add(function (idx) {\n        var val = data.get(valueDim, idx);\n\n        if (showPointer) {\n          var pointer = createPointer(idx, startAngle); // TODO hide pointer on NaN value?\n\n          graphic.initProps(pointer, {\n            rotation: -((isNaN(+val) ? angleExtent[0] : linearMap(val, valueExtent, angleExtent, true)) + Math.PI / 2)\n          }, seriesModel);\n          group.add(pointer);\n          data.setItemGraphicEl(idx, pointer);\n        }\n\n        if (showProgress) {\n          var progress = createProgress(idx, startAngle);\n          var isClip = progressModel.get('clip');\n          graphic.initProps(progress, {\n            shape: {\n              endAngle: linearMap(val, valueExtent, angleExtent, isClip)\n            }\n          }, seriesModel);\n          group.add(progress); // Add data index and series index for indexing the data by element\n          // Useful in tooltip\n\n          setCommonECData(seriesModel.seriesIndex, data.dataType, idx, progress);\n          progressList[idx] = progress;\n        }\n      }).update(function (newIdx, oldIdx) {\n        var val = data.get(valueDim, newIdx);\n\n        if (showPointer) {\n          var previousPointer = oldData.getItemGraphicEl(oldIdx);\n          var previousRotate = previousPointer ? previousPointer.rotation : startAngle;\n          var pointer = createPointer(newIdx, previousRotate);\n          pointer.rotation = previousRotate;\n          graphic.updateProps(pointer, {\n            rotation: -((isNaN(+val) ? angleExtent[0] : linearMap(val, valueExtent, angleExtent, true)) + Math.PI / 2)\n          }, seriesModel);\n          group.add(pointer);\n          data.setItemGraphicEl(newIdx, pointer);\n        }\n\n        if (showProgress) {\n          var previousProgress = oldProgressData[oldIdx];\n          var previousEndAngle = previousProgress ? previousProgress.shape.endAngle : startAngle;\n          var progress = createProgress(newIdx, previousEndAngle);\n          var isClip = progressModel.get('clip');\n          graphic.updateProps(progress, {\n            shape: {\n              endAngle: linearMap(val, valueExtent, angleExtent, isClip)\n            }\n          }, seriesModel);\n          group.add(progress); // Add data index and series index for indexing the data by element\n          // Useful in tooltip\n\n          setCommonECData(seriesModel.seriesIndex, data.dataType, newIdx, progress);\n          progressList[newIdx] = progress;\n        }\n      }).execute();\n      data.each(function (idx) {\n        var itemModel = data.getItemModel(idx);\n        var emphasisModel = itemModel.getModel('emphasis');\n        var focus = emphasisModel.get('focus');\n        var blurScope = emphasisModel.get('blurScope');\n        var emphasisDisabled = emphasisModel.get('disabled');\n\n        if (showPointer) {\n          var pointer = data.getItemGraphicEl(idx);\n          var symbolStyle = data.getItemVisual(idx, 'style');\n          var visualColor = symbolStyle.fill;\n\n          if (pointer instanceof ZRImage) {\n            var pathStyle = pointer.style;\n            pointer.useStyle(extend({\n              image: pathStyle.image,\n              x: pathStyle.x,\n              y: pathStyle.y,\n              width: pathStyle.width,\n              height: pathStyle.height\n            }, symbolStyle));\n          } else {\n            pointer.useStyle(symbolStyle);\n            pointer.type !== 'pointer' && pointer.setColor(visualColor);\n          }\n\n          pointer.setStyle(itemModel.getModel(['pointer', 'itemStyle']).getItemStyle());\n\n          if (pointer.style.fill === 'auto') {\n            pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));\n          }\n\n          pointer.z2EmphasisLift = 0;\n          setStatesStylesFromModel(pointer, itemModel);\n          toggleHoverEmphasis(pointer, focus, blurScope, emphasisDisabled);\n        }\n\n        if (showProgress) {\n          var progress = progressList[idx];\n          progress.useStyle(data.getItemVisual(idx, 'style'));\n          progress.setStyle(itemModel.getModel(['progress', 'itemStyle']).getItemStyle());\n          progress.z2EmphasisLift = 0;\n          setStatesStylesFromModel(progress, itemModel);\n          toggleHoverEmphasis(progress, focus, blurScope, emphasisDisabled);\n        }\n      });\n      this._progressEls = progressList;\n    }\n  };\n\n  GaugeView.prototype._renderAnchor = function (seriesModel, posInfo) {\n    var anchorModel = seriesModel.getModel('anchor');\n    var showAnchor = anchorModel.get('show');\n\n    if (showAnchor) {\n      var anchorSize = anchorModel.get('size');\n      var anchorType = anchorModel.get('icon');\n      var offsetCenter = anchorModel.get('offsetCenter');\n      var anchorKeepAspect = anchorModel.get('keepAspect');\n      var anchor = createSymbol(anchorType, posInfo.cx - anchorSize / 2 + parsePercent(offsetCenter[0], posInfo.r), posInfo.cy - anchorSize / 2 + parsePercent(offsetCenter[1], posInfo.r), anchorSize, anchorSize, null, anchorKeepAspect);\n      anchor.z2 = anchorModel.get('showAbove') ? 1 : 0;\n      anchor.setStyle(anchorModel.getModel('itemStyle').getItemStyle());\n      this.group.add(anchor);\n    }\n  };\n\n  GaugeView.prototype._renderTitleAndDetail = function (seriesModel, ecModel, api, getColor, posInfo) {\n    var _this = this;\n\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var contentGroup = new graphic.Group();\n    var newTitleEls = [];\n    var newDetailEls = [];\n    var hasAnimation = seriesModel.isAnimationEnabled();\n    var showPointerAbove = seriesModel.get(['pointer', 'showAbove']);\n    data.diff(this._data).add(function (idx) {\n      newTitleEls[idx] = new graphic.Text({\n        silent: true\n      });\n      newDetailEls[idx] = new graphic.Text({\n        silent: true\n      });\n    }).update(function (idx, oldIdx) {\n      newTitleEls[idx] = _this._titleEls[oldIdx];\n      newDetailEls[idx] = _this._detailEls[oldIdx];\n    }).execute();\n    data.each(function (idx) {\n      var itemModel = data.getItemModel(idx);\n      var value = data.get(valueDim, idx);\n      var itemGroup = new graphic.Group();\n      var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\n      var itemTitleModel = itemModel.getModel('title');\n\n      if (itemTitleModel.get('show')) {\n        var titleOffsetCenter = itemTitleModel.get('offsetCenter');\n        var titleX = posInfo.cx + parsePercent(titleOffsetCenter[0], posInfo.r);\n        var titleY = posInfo.cy + parsePercent(titleOffsetCenter[1], posInfo.r);\n        var labelEl = newTitleEls[idx];\n        labelEl.attr({\n          z2: showPointerAbove ? 0 : 2,\n          style: createTextStyle(itemTitleModel, {\n            x: titleX,\n            y: titleY,\n            text: data.getName(idx),\n            align: 'center',\n            verticalAlign: 'middle'\n          }, {\n            inheritColor: autoColor\n          })\n        });\n        itemGroup.add(labelEl);\n      }\n\n      var itemDetailModel = itemModel.getModel('detail');\n\n      if (itemDetailModel.get('show')) {\n        var detailOffsetCenter = itemDetailModel.get('offsetCenter');\n        var detailX = posInfo.cx + parsePercent(detailOffsetCenter[0], posInfo.r);\n        var detailY = posInfo.cy + parsePercent(detailOffsetCenter[1], posInfo.r);\n        var width = parsePercent(itemDetailModel.get('width'), posInfo.r);\n        var height = parsePercent(itemDetailModel.get('height'), posInfo.r);\n        var detailColor = seriesModel.get(['progress', 'show']) ? data.getItemVisual(idx, 'style').fill : autoColor;\n        var labelEl = newDetailEls[idx];\n        var formatter_1 = itemDetailModel.get('formatter');\n        labelEl.attr({\n          z2: showPointerAbove ? 0 : 2,\n          style: createTextStyle(itemDetailModel, {\n            x: detailX,\n            y: detailY,\n            text: formatLabel(value, formatter_1),\n            width: isNaN(width) ? null : width,\n            height: isNaN(height) ? null : height,\n            align: 'center',\n            verticalAlign: 'middle'\n          }, {\n            inheritColor: detailColor\n          })\n        });\n        setLabelValueAnimation(labelEl, {\n          normal: itemDetailModel\n        }, value, function (value) {\n          return formatLabel(value, formatter_1);\n        });\n        hasAnimation && animateLabelValue(labelEl, idx, data, seriesModel, {\n          getFormattedLabel: function (labelDataIndex, status, dataType, labelDimIndex, fmt, extendParams) {\n            return formatLabel(extendParams ? extendParams.interpolatedValue : value, formatter_1);\n          }\n        });\n        itemGroup.add(labelEl);\n      }\n\n      contentGroup.add(itemGroup);\n    });\n    this.group.add(contentGroup);\n    this._titleEls = newTitleEls;\n    this._detailEls = newDetailEls;\n  };\n\n  GaugeView.type = 'gauge';\n  return GaugeView;\n}(ChartView);\n\nexport default GaugeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport createSeriesDataSimply from '../helper/createSeriesDataSimply.js';\nimport SeriesModel from '../../model/Series.js';\n\nvar GaugeSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(GaugeSeriesModel, _super);\n\n  function GaugeSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GaugeSeriesModel.type;\n    _this.visualStyleAccessPath = 'itemStyle';\n    return _this;\n  }\n\n  GaugeSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createSeriesDataSimply(this, ['value']);\n  };\n\n  GaugeSeriesModel.type = 'series.gauge';\n  GaugeSeriesModel.defaultOption = {\n    // zlevel: 0,\n    z: 2,\n    colorBy: 'data',\n    // 默认全局居中\n    center: ['50%', '50%'],\n    legendHoverLink: true,\n    radius: '75%',\n    startAngle: 225,\n    endAngle: -45,\n    clockwise: true,\n    // 最小值\n    min: 0,\n    // 最大值\n    max: 100,\n    // 分割段数，默认为10\n    splitNumber: 10,\n    // 坐标轴线\n    axisLine: {\n      // 默认显示，属性show控制显示与否\n      show: true,\n      roundCap: false,\n      lineStyle: {\n        color: [[1, '#E6EBF8']],\n        width: 10\n      }\n    },\n    // 坐标轴线\n    progress: {\n      // 默认显示，属性show控制显示与否\n      show: false,\n      overlap: true,\n      width: 10,\n      roundCap: false,\n      clip: true\n    },\n    // 分隔线\n    splitLine: {\n      // 默认显示，属性show控制显示与否\n      show: true,\n      // 属性length控制线长\n      length: 10,\n      distance: 10,\n      // 属性lineStyle（详见lineStyle）控制线条样式\n      lineStyle: {\n        color: '#63677A',\n        width: 3,\n        type: 'solid'\n      }\n    },\n    // 坐标轴小标记\n    axisTick: {\n      // 属性show控制显示与否，默认不显示\n      show: true,\n      // 每份split细分多少段\n      splitNumber: 5,\n      // 属性length控制线长\n      length: 6,\n      distance: 10,\n      // 属性lineStyle控制线条样式\n      lineStyle: {\n        color: '#63677A',\n        width: 1,\n        type: 'solid'\n      }\n    },\n    axisLabel: {\n      show: true,\n      distance: 15,\n      // formatter: null,\n      color: '#464646',\n      fontSize: 12\n    },\n    pointer: {\n      icon: null,\n      offsetCenter: [0, 0],\n      show: true,\n      showAbove: true,\n      length: '60%',\n      width: 6,\n      keepAspect: false\n    },\n    anchor: {\n      show: false,\n      showAbove: false,\n      size: 6,\n      icon: 'circle',\n      offsetCenter: [0, 0],\n      keepAspect: false,\n      itemStyle: {\n        color: '#fff',\n        borderWidth: 0,\n        borderColor: '#5470c6'\n      }\n    },\n    title: {\n      show: true,\n      // x, y，单位px\n      offsetCenter: [0, '20%'],\n      // 其余属性默认使用全局文本样式，详见TEXTSTYLE\n      color: '#464646',\n      fontSize: 16,\n      valueAnimation: false\n    },\n    detail: {\n      show: true,\n      backgroundColor: 'rgba(0,0,0,0)',\n      borderWidth: 0,\n      borderColor: '#ccc',\n      width: 100,\n      height: null,\n      padding: [5, 10],\n      // x, y，单位px\n      offsetCenter: [0, '40%'],\n      // formatter: null,\n      // 其余属性默认使用全局文本样式，详见TEXTSTYLE\n      color: '#464646',\n      fontSize: 30,\n      fontWeight: 'bold',\n      lineHeight: 30,\n      valueAnimation: false\n    }\n  };\n  return GaugeSeriesModel;\n}(SeriesModel);\n\nexport default GaugeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport GaugeView from './GaugeView.js';\nimport GaugeSeriesModel from './GaugeSeries.js';\nexport function install(registers) {\n  registers.registerChartView(GaugeView);\n  registers.registerSeriesModel(GaugeSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport ChartView from '../../view/Chart.js';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { saveOldStyle } from '../../animation/basicTrasition.js';\nvar opacityAccessPath = ['itemStyle', 'opacity'];\n/**\n * Piece of pie including Sector, Label, LabelLine\n */\n\nvar FunnelPiece =\n/** @class */\nfunction (_super) {\n  __extends(FunnelPiece, _super);\n\n  function FunnelPiece(data, idx) {\n    var _this = _super.call(this) || this;\n\n    var polygon = _this;\n    var labelLine = new graphic.Polyline();\n    var text = new graphic.Text();\n    polygon.setTextContent(text);\n\n    _this.setTextGuideLine(labelLine);\n\n    _this.updateData(data, idx, true);\n\n    return _this;\n  }\n\n  FunnelPiece.prototype.updateData = function (data, idx, firstCreate) {\n    var polygon = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var layout = data.getItemLayout(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var opacity = itemModel.get(opacityAccessPath);\n    opacity = opacity == null ? 1 : opacity;\n\n    if (!firstCreate) {\n      saveOldStyle(polygon);\n    } // Update common style\n\n\n    polygon.useStyle(data.getItemVisual(idx, 'style'));\n    polygon.style.lineJoin = 'round';\n\n    if (firstCreate) {\n      polygon.setShape({\n        points: layout.points\n      });\n      polygon.style.opacity = 0;\n      graphic.initProps(polygon, {\n        style: {\n          opacity: opacity\n        }\n      }, seriesModel, idx);\n    } else {\n      graphic.updateProps(polygon, {\n        style: {\n          opacity: opacity\n        },\n        shape: {\n          points: layout.points\n        }\n      }, seriesModel, idx);\n    }\n\n    setStatesStylesFromModel(polygon, itemModel);\n\n    this._updateLabel(data, idx);\n\n    toggleHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n  };\n\n  FunnelPiece.prototype._updateLabel = function (data, idx) {\n    var polygon = this;\n    var labelLine = this.getTextGuideLine();\n    var labelText = polygon.getTextContent();\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var layout = data.getItemLayout(idx);\n    var labelLayout = layout.label;\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style.fill;\n    setLabelStyle( // position will not be used in setLabelStyle\n    labelText, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      defaultOpacity: style.opacity,\n      defaultText: data.getName(idx)\n    }, {\n      normal: {\n        align: labelLayout.textAlign,\n        verticalAlign: labelLayout.verticalAlign\n      }\n    });\n    polygon.setTextConfig({\n      local: true,\n      inside: !!labelLayout.inside,\n      insideStroke: visualColor,\n      // insideFill: 'auto',\n      outsideFill: visualColor\n    });\n    var linePoints = labelLayout.linePoints;\n    labelLine.setShape({\n      points: linePoints\n    });\n    polygon.textGuideLineConfig = {\n      anchor: linePoints ? new graphic.Point(linePoints[0][0], linePoints[0][1]) : null\n    }; // Make sure update style on labelText after setLabelStyle.\n    // Because setLabelStyle will replace a new style on it.\n\n    graphic.updateProps(labelText, {\n      style: {\n        x: labelLayout.x,\n        y: labelLayout.y\n      }\n    }, seriesModel, idx);\n    labelText.attr({\n      rotation: labelLayout.rotation,\n      originX: labelLayout.x,\n      originY: labelLayout.y,\n      z2: 10\n    });\n    setLabelLineStyle(polygon, getLabelLineStatesModels(itemModel), {\n      // Default use item visual color\n      stroke: visualColor\n    });\n  };\n\n  return FunnelPiece;\n}(graphic.Polygon);\n\nvar FunnelView =\n/** @class */\nfunction (_super) {\n  __extends(FunnelView, _super);\n\n  function FunnelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = FunnelView.type;\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  FunnelView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    data.diff(oldData).add(function (idx) {\n      var funnelPiece = new FunnelPiece(data, idx);\n      data.setItemGraphicEl(idx, funnelPiece);\n      group.add(funnelPiece);\n    }).update(function (newIdx, oldIdx) {\n      var piece = oldData.getItemGraphicEl(oldIdx);\n      piece.updateData(data, newIdx);\n      group.add(piece);\n      data.setItemGraphicEl(newIdx, piece);\n    }).remove(function (idx) {\n      var piece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piece, seriesModel, idx);\n    }).execute();\n    this._data = data;\n  };\n\n  FunnelView.prototype.remove = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  FunnelView.prototype.dispose = function () {};\n\n  FunnelView.type = 'funnel';\n  return FunnelView;\n}(ChartView);\n\nexport default FunnelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport createSeriesDataSimply from '../helper/createSeriesDataSimply.js';\nimport { defaultEmphasis } from '../../util/model.js';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper.js';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider.js';\nimport SeriesModel from '../../model/Series.js';\n\nvar FunnelSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(FunnelSeriesModel, _super);\n\n  function FunnelSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = FunnelSeriesModel.type;\n    return _this;\n  }\n\n  FunnelSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments); // Enable legend selection for each data item\n    // Use a function instead of direct access because data reference may changed\n\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this)); // Extend labelLine emphasis\n\n    this._defaultLabelLine(option);\n  };\n\n  FunnelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createSeriesDataSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n\n  FunnelSeriesModel.prototype._defaultLabelLine = function (option) {\n    // Extend labelLine emphasis\n    defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false`\n\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  }; // Overwrite\n\n\n  FunnelSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n    var valueDim = data.mapDimension('value');\n    var sum = data.getSum(valueDim); // Percent is 0 if sum is 0\n\n    params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\n    params.$vars.push('percent');\n    return params;\n  };\n\n  FunnelSeriesModel.type = 'series.funnel';\n  FunnelSeriesModel.defaultOption = {\n    // zlevel: 0,                  // 一级层叠\n    z: 2,\n    legendHoverLink: true,\n    colorBy: 'data',\n    left: 80,\n    top: 60,\n    right: 80,\n    bottom: 60,\n    // width: {totalWidth} - left - right,\n    // height: {totalHeight} - top - bottom,\n    // 默认取数据最小最大值\n    // min: 0,\n    // max: 100,\n    minSize: '0%',\n    maxSize: '100%',\n    sort: 'descending',\n    orient: 'vertical',\n    gap: 0,\n    funnelAlign: 'center',\n    label: {\n      show: true,\n      position: 'outer' // formatter: 标签文本格式器，同Tooltip.formatter，不支持异步回调\n\n    },\n    labelLine: {\n      show: true,\n      length: 20,\n      lineStyle: {\n        // color: 各异,\n        width: 1\n      }\n    },\n    itemStyle: {\n      // color: 各异,\n      borderColor: '#fff',\n      borderWidth: 1\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return FunnelSeriesModel;\n}(SeriesModel);\n\nexport default FunnelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as layout from '../../util/layout.js';\nimport { parsePercent, linearMap } from '../../util/number.js';\nimport { isFunction } from 'zrender/lib/core/util.js';\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction getSortedIndices(data, sort) {\n  var valueDim = data.mapDimension('value');\n  var valueArr = data.mapArray(valueDim, function (val) {\n    return val;\n  });\n  var indices = [];\n  var isAscending = sort === 'ascending';\n\n  for (var i = 0, len = data.count(); i < len; i++) {\n    indices[i] = i;\n  } // Add custom sortable function & none sortable opetion by \"options.sort\"\n\n\n  if (isFunction(sort)) {\n    indices.sort(sort);\n  } else if (sort !== 'none') {\n    indices.sort(function (a, b) {\n      return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a];\n    });\n  }\n\n  return indices;\n}\n\nfunction labelLayout(data) {\n  var seriesModel = data.hostModel;\n  var orient = seriesModel.get('orient');\n  data.each(function (idx) {\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var layout = data.getItemLayout(idx);\n    var points = layout.points;\n    var isLabelInside = labelPosition === 'inner' || labelPosition === 'inside' || labelPosition === 'center' || labelPosition === 'insideLeft' || labelPosition === 'insideRight';\n    var textAlign;\n    var textX;\n    var textY;\n    var linePoints;\n\n    if (isLabelInside) {\n      if (labelPosition === 'insideLeft') {\n        textX = (points[0][0] + points[3][0]) / 2 + 5;\n        textY = (points[0][1] + points[3][1]) / 2;\n        textAlign = 'left';\n      } else if (labelPosition === 'insideRight') {\n        textX = (points[1][0] + points[2][0]) / 2 - 5;\n        textY = (points[1][1] + points[2][1]) / 2;\n        textAlign = 'right';\n      } else {\n        textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\n        textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\n        textAlign = 'center';\n      }\n\n      linePoints = [[textX, textY], [textX, textY]];\n    } else {\n      var x1 = void 0;\n      var y1 = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var labelLineLen = labelLineModel.get('length');\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (orient === 'vertical' && ['top', 'bottom'].indexOf(labelPosition) > -1) {\n          labelPosition = 'left';\n          console.warn('Position error: Funnel chart on vertical orient dose not support top and bottom.');\n        }\n\n        if (orient === 'horizontal' && ['left', 'right'].indexOf(labelPosition) > -1) {\n          labelPosition = 'bottom';\n          console.warn('Position error: Funnel chart on horizontal orient dose not support left and right.');\n        }\n      }\n\n      if (labelPosition === 'left') {\n        // Left side\n        x1 = (points[3][0] + points[0][0]) / 2;\n        y1 = (points[3][1] + points[0][1]) / 2;\n        x2 = x1 - labelLineLen;\n        textX = x2 - 5;\n        textAlign = 'right';\n      } else if (labelPosition === 'right') {\n        // Right side\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n        x2 = x1 + labelLineLen;\n        textX = x2 + 5;\n        textAlign = 'left';\n      } else if (labelPosition === 'top') {\n        // Top side\n        x1 = (points[3][0] + points[0][0]) / 2;\n        y1 = (points[3][1] + points[0][1]) / 2;\n        y2 = y1 - labelLineLen;\n        textY = y2 - 5;\n        textAlign = 'center';\n      } else if (labelPosition === 'bottom') {\n        // Bottom side\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n        y2 = y1 + labelLineLen;\n        textY = y2 + 5;\n        textAlign = 'center';\n      } else if (labelPosition === 'rightTop') {\n        // RightTop side\n        x1 = orient === 'horizontal' ? points[3][0] : points[1][0];\n        y1 = orient === 'horizontal' ? points[3][1] : points[1][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 - labelLineLen;\n          textY = y2 - 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'top';\n        }\n      } else if (labelPosition === 'rightBottom') {\n        // RightBottom side\n        x1 = points[2][0];\n        y1 = points[2][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'bottom';\n        }\n      } else if (labelPosition === 'leftTop') {\n        // LeftTop side\n        x1 = points[0][0];\n        y1 = orient === 'horizontal' ? points[0][1] : points[1][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 - labelLineLen;\n          textY = y2 - 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 - labelLineLen;\n          textX = x2 - 5;\n          textAlign = 'right';\n        }\n      } else if (labelPosition === 'leftBottom') {\n        // LeftBottom side\n        x1 = orient === 'horizontal' ? points[1][0] : points[3][0];\n        y1 = orient === 'horizontal' ? points[1][1] : points[2][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 - labelLineLen;\n          textX = x2 - 5;\n          textAlign = 'right';\n        }\n      } else {\n        // Right side or Bottom side\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'left';\n        }\n      }\n\n      if (orient === 'horizontal') {\n        x2 = x1;\n        textX = x2;\n      } else {\n        y2 = y1;\n        textY = y2;\n      }\n\n      linePoints = [[x1, y1], [x2, y2]];\n    }\n\n    layout.label = {\n      linePoints: linePoints,\n      x: textX,\n      y: textY,\n      verticalAlign: 'middle',\n      textAlign: textAlign,\n      inside: isLabelInside\n    };\n  });\n}\n\nexport default function funnelLayout(ecModel, api) {\n  ecModel.eachSeriesByType('funnel', function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var sort = seriesModel.get('sort');\n    var viewRect = getViewRect(seriesModel, api);\n    var orient = seriesModel.get('orient');\n    var viewWidth = viewRect.width;\n    var viewHeight = viewRect.height;\n    var indices = getSortedIndices(data, sort);\n    var x = viewRect.x;\n    var y = viewRect.y;\n    var sizeExtent = orient === 'horizontal' ? [parsePercent(seriesModel.get('minSize'), viewHeight), parsePercent(seriesModel.get('maxSize'), viewHeight)] : [parsePercent(seriesModel.get('minSize'), viewWidth), parsePercent(seriesModel.get('maxSize'), viewWidth)];\n    var dataExtent = data.getDataExtent(valueDim);\n    var min = seriesModel.get('min');\n    var max = seriesModel.get('max');\n\n    if (min == null) {\n      min = Math.min(dataExtent[0], 0);\n    }\n\n    if (max == null) {\n      max = dataExtent[1];\n    }\n\n    var funnelAlign = seriesModel.get('funnelAlign');\n    var gap = seriesModel.get('gap');\n    var viewSize = orient === 'horizontal' ? viewWidth : viewHeight;\n    var itemSize = (viewSize - gap * (data.count() - 1)) / data.count();\n\n    var getLinePoints = function (idx, offset) {\n      // End point index is data.count() and we assign it 0\n      if (orient === 'horizontal') {\n        var val_1 = data.get(valueDim, idx) || 0;\n        var itemHeight = linearMap(val_1, [min, max], sizeExtent, true);\n        var y0 = void 0;\n\n        switch (funnelAlign) {\n          case 'top':\n            y0 = y;\n            break;\n\n          case 'center':\n            y0 = y + (viewHeight - itemHeight) / 2;\n            break;\n\n          case 'bottom':\n            y0 = y + (viewHeight - itemHeight);\n            break;\n        }\n\n        return [[offset, y0], [offset, y0 + itemHeight]];\n      }\n\n      var val = data.get(valueDim, idx) || 0;\n      var itemWidth = linearMap(val, [min, max], sizeExtent, true);\n      var x0;\n\n      switch (funnelAlign) {\n        case 'left':\n          x0 = x;\n          break;\n\n        case 'center':\n          x0 = x + (viewWidth - itemWidth) / 2;\n          break;\n\n        case 'right':\n          x0 = x + viewWidth - itemWidth;\n          break;\n      }\n\n      return [[x0, offset], [x0 + itemWidth, offset]];\n    };\n\n    if (sort === 'ascending') {\n      // From bottom to top\n      itemSize = -itemSize;\n      gap = -gap;\n\n      if (orient === 'horizontal') {\n        x += viewWidth;\n      } else {\n        y += viewHeight;\n      }\n\n      indices = indices.reverse();\n    }\n\n    for (var i = 0; i < indices.length; i++) {\n      var idx = indices[i];\n      var nextIdx = indices[i + 1];\n      var itemModel = data.getItemModel(idx);\n\n      if (orient === 'horizontal') {\n        var width = itemModel.get(['itemStyle', 'width']);\n\n        if (width == null) {\n          width = itemSize;\n        } else {\n          width = parsePercent(width, viewWidth);\n\n          if (sort === 'ascending') {\n            width = -width;\n          }\n        }\n\n        var start = getLinePoints(idx, x);\n        var end = getLinePoints(nextIdx, x + width);\n        x += width + gap;\n        data.setItemLayout(idx, {\n          points: start.concat(end.slice().reverse())\n        });\n      } else {\n        var height = itemModel.get(['itemStyle', 'height']);\n\n        if (height == null) {\n          height = itemSize;\n        } else {\n          height = parsePercent(height, viewHeight);\n\n          if (sort === 'ascending') {\n            height = -height;\n          }\n        }\n\n        var start = getLinePoints(idx, y);\n        var end = getLinePoints(nextIdx, y + height);\n        y += height + gap;\n        data.setItemLayout(idx, {\n          points: start.concat(end.slice().reverse())\n        });\n      }\n    }\n\n    labelLayout(data);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport FunnelView from './FunnelView.js';\nimport FunnelSeriesModel from './FunnelSeries.js';\nimport funnelLayout from './funnelLayout.js';\nimport dataFilter from '../../processor/dataFilter.js';\nexport function install(registers) {\n  registers.registerChartView(FunnelView);\n  registers.registerSeriesModel(FunnelSeriesModel);\n  registers.registerLayout(funnelLayout);\n  registers.registerProcessor(dataFilter('funnel'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport ChartView from '../../view/Chart.js';\nimport { numericToNumber } from '../../util/number.js';\nimport { eqNaN } from 'zrender/lib/core/util.js';\nimport { saveOldStyle } from '../../animation/basicTrasition.js';\nvar DEFAULT_SMOOTH = 0.3;\n\nvar ParallelView =\n/** @class */\nfunction (_super) {\n  __extends(ParallelView, _super);\n\n  function ParallelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelView.type;\n    _this._dataGroup = new graphic.Group();\n    _this._initialized = false;\n    return _this;\n  }\n\n  ParallelView.prototype.init = function () {\n    this.group.add(this._dataGroup);\n  };\n  /**\n   * @override\n   */\n\n\n  ParallelView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    // Clear previously rendered progressive elements.\n    this._progressiveEls = null;\n    var dataGroup = this._dataGroup;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coordSys = seriesModel.coordinateSystem;\n    var dimensions = coordSys.dimensions;\n    var seriesScope = makeSeriesScope(seriesModel);\n    data.diff(oldData).add(add).update(update).remove(remove).execute();\n\n    function add(newDataIndex) {\n      var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys);\n      updateElCommon(line, data, newDataIndex, seriesScope);\n    }\n\n    function update(newDataIndex, oldDataIndex) {\n      var line = oldData.getItemGraphicEl(oldDataIndex);\n      var points = createLinePoints(data, newDataIndex, dimensions, coordSys);\n      data.setItemGraphicEl(newDataIndex, line);\n      graphic.updateProps(line, {\n        shape: {\n          points: points\n        }\n      }, seriesModel, newDataIndex);\n      saveOldStyle(line);\n      updateElCommon(line, data, newDataIndex, seriesScope);\n    }\n\n    function remove(oldDataIndex) {\n      var line = oldData.getItemGraphicEl(oldDataIndex);\n      dataGroup.remove(line);\n    } // First create\n\n\n    if (!this._initialized) {\n      this._initialized = true;\n      var clipPath = createGridClipShape(coordSys, seriesModel, function () {\n        // Callback will be invoked immediately if there is no animation\n        setTimeout(function () {\n          dataGroup.removeClipPath();\n        });\n      });\n      dataGroup.setClipPath(clipPath);\n    }\n\n    this._data = data;\n  };\n\n  ParallelView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this._initialized = true;\n    this._data = null;\n\n    this._dataGroup.removeAll();\n  };\n\n  ParallelView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var coordSys = seriesModel.coordinateSystem;\n    var dimensions = coordSys.dimensions;\n    var seriesScope = makeSeriesScope(seriesModel);\n    var progressiveEls = this._progressiveEls = [];\n\n    for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) {\n      var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys);\n      line.incremental = true;\n      updateElCommon(line, data, dataIndex, seriesScope);\n      progressiveEls.push(line);\n    }\n  };\n\n  ParallelView.prototype.remove = function () {\n    this._dataGroup && this._dataGroup.removeAll();\n    this._data = null;\n  };\n\n  ParallelView.type = 'parallel';\n  return ParallelView;\n}(ChartView);\n\nfunction createGridClipShape(coordSys, seriesModel, cb) {\n  var parallelModel = coordSys.model;\n  var rect = coordSys.getRect();\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    }\n  });\n  var dim = parallelModel.get('layout') === 'horizontal' ? 'width' : 'height';\n  rectEl.setShape(dim, 0);\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width,\n      height: rect.height\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nfunction createLinePoints(data, dataIndex, dimensions, coordSys) {\n  var points = [];\n\n  for (var i = 0; i < dimensions.length; i++) {\n    var dimName = dimensions[i];\n    var value = data.get(data.mapDimension(dimName), dataIndex);\n\n    if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) {\n      points.push(coordSys.dataToPoint(value, dimName));\n    }\n  }\n\n  return points;\n}\n\nfunction addEl(data, dataGroup, dataIndex, dimensions, coordSys) {\n  var points = createLinePoints(data, dataIndex, dimensions, coordSys);\n  var line = new graphic.Polyline({\n    shape: {\n      points: points\n    },\n    // silent: true,\n    z2: 10\n  });\n  dataGroup.add(line);\n  data.setItemGraphicEl(dataIndex, line);\n  return line;\n}\n\nfunction makeSeriesScope(seriesModel) {\n  var smooth = seriesModel.get('smooth', true);\n  smooth === true && (smooth = DEFAULT_SMOOTH);\n  smooth = numericToNumber(smooth);\n  eqNaN(smooth) && (smooth = 0);\n  return {\n    smooth: smooth\n  };\n}\n\nfunction updateElCommon(el, data, dataIndex, seriesScope) {\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.fill = null;\n  el.setShape('smooth', seriesScope.smooth);\n  var itemModel = data.getItemModel(dataIndex);\n  var emphasisModel = itemModel.getModel('emphasis');\n  setStatesStylesFromModel(el, itemModel, 'lineStyle');\n  toggleHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n} // function simpleDiff(oldData, newData, dimensions) {\n//     let oldLen;\n//     if (!oldData\n//         || !oldData.__plProgressive\n//         || (oldLen = oldData.count()) !== newData.count()\n//     ) {\n//         return true;\n//     }\n//     let dimLen = dimensions.length;\n//     for (let i = 0; i < oldLen; i++) {\n//         for (let j = 0; j < dimLen; j++) {\n//             if (oldData.get(dimensions[j], i) !== newData.get(dimensions[j], i)) {\n//                 return true;\n//             }\n//         }\n//     }\n//     return false;\n// }\n// FIXME put in common util?\n\n\nfunction isEmptyValue(val, axisType) {\n  return axisType === 'category' ? val == null : val == null || isNaN(val); // axisType === 'value'\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { each, bind } from 'zrender/lib/core/util.js';\nimport SeriesModel from '../../model/Series.js';\nimport createSeriesData from '../helper/createSeriesData.js';\n\nvar ParallelSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(ParallelSeriesModel, _super);\n\n  function ParallelSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelSeriesModel.type;\n    _this.visualStyleAccessPath = 'lineStyle';\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  ParallelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createSeriesData(null, this, {\n      useEncodeDefaulter: bind(makeDefaultEncode, null, this)\n    });\n  };\n  /**\n   * User can get data raw indices on 'axisAreaSelected' event received.\n   *\n   * @return Raw indices\n   */\n\n\n  ParallelSeriesModel.prototype.getRawIndicesByActiveState = function (activeState) {\n    var coordSys = this.coordinateSystem;\n    var data = this.getData();\n    var indices = [];\n    coordSys.eachActiveState(data, function (theActiveState, dataIndex) {\n      if (activeState === theActiveState) {\n        indices.push(data.getRawIndex(dataIndex));\n      }\n    });\n    return indices;\n  };\n\n  ParallelSeriesModel.type = 'series.parallel';\n  ParallelSeriesModel.dependencies = ['parallel'];\n  ParallelSeriesModel.defaultOption = {\n    // zlevel: 0,\n    z: 2,\n    coordinateSystem: 'parallel',\n    parallelIndex: 0,\n    label: {\n      show: false\n    },\n    inactiveOpacity: 0.05,\n    activeOpacity: 1,\n    lineStyle: {\n      width: 1,\n      opacity: 0.45,\n      type: 'solid'\n    },\n    emphasis: {\n      label: {\n        show: false\n      }\n    },\n    progressive: 500,\n    smooth: false,\n    animationEasing: 'linear'\n  };\n  return ParallelSeriesModel;\n}(SeriesModel);\n\nfunction makeDefaultEncode(seriesModel) {\n  // The mapping of parallelAxis dimension to data dimension can\n  // be specified in parallelAxis.option.dim. For example, if\n  // parallelAxis.option.dim is 'dim3', it mapping to the third\n  // dimension of data. But `data.encode` has higher priority.\n  // Moreover, parallelModel.dimension should not be regarded as data\n  // dimensions. Consider dimensions = ['dim4', 'dim2', 'dim6'];\n  var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n\n  if (!parallelModel) {\n    return;\n  }\n\n  var encodeDefine = {};\n  each(parallelModel.dimensions, function (axisDim) {\n    var dataDimIndex = convertDimNameToNumber(axisDim);\n    encodeDefine[axisDim] = dataDimIndex;\n  });\n  return encodeDefine;\n}\n\nfunction convertDimNameToNumber(dimName) {\n  return +dimName.replace('dim', '');\n}\n\nexport default ParallelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar opacityAccessPath = ['lineStyle', 'opacity'];\nvar parallelVisual = {\n  seriesType: 'parallel',\n  reset: function (seriesModel, ecModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var opacityMap = {\n      normal: seriesModel.get(['lineStyle', 'opacity']),\n      active: seriesModel.get('activeOpacity'),\n      inactive: seriesModel.get('inactiveOpacity')\n    };\n    return {\n      progress: function (params, data) {\n        coordSys.eachActiveState(data, function (activeState, dataIndex) {\n          var opacity = opacityMap[activeState];\n\n          if (activeState === 'normal' && data.hasItemOption) {\n            var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath, true);\n            itemOpacity != null && (opacity = itemOpacity);\n          }\n\n          var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n          existsStyle.opacity = opacity;\n        }, params.start, params.end);\n      }\n    };\n  }\n};\nexport default parallelVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\nexport default function parallelPreprocessor(option) {\n  createParallelIfNeeded(option);\n  mergeAxisOptionFromParallel(option);\n}\n/**\n * Create a parallel coordinate if not exists.\n * @inner\n */\n\nfunction createParallelIfNeeded(option) {\n  if (option.parallel) {\n    return;\n  }\n\n  var hasParallelSeries = false;\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'parallel') {\n      hasParallelSeries = true;\n    }\n  });\n\n  if (hasParallelSeries) {\n    option.parallel = [{}];\n  }\n}\n/**\n * Merge aixs definition from parallel option (if exists) to axis option.\n * @inner\n */\n\n\nfunction mergeAxisOptionFromParallel(option) {\n  var axes = modelUtil.normalizeToArray(option.parallelAxis);\n  zrUtil.each(axes, function (axisOption) {\n    if (!zrUtil.isObject(axisOption)) {\n      return;\n    }\n\n    var parallelIndex = axisOption.parallelIndex || 0;\n    var parallelOption = modelUtil.normalizeToArray(option.parallel)[parallelIndex];\n\n    if (parallelOption && parallelOption.parallelAxisDefault) {\n      zrUtil.merge(axisOption, parallelOption.parallelAxisDefault, false);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component.js';\nimport { each, bind, extend } from 'zrender/lib/core/util.js';\nimport { createOrUpdate, clear } from '../../util/throttle.js';\nvar CLICK_THRESHOLD = 5; // > 4\n\nvar ParallelView =\n/** @class */\nfunction (_super) {\n  __extends(ParallelView, _super);\n\n  function ParallelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelView.type;\n    return _this;\n  }\n\n  ParallelView.prototype.render = function (parallelModel, ecModel, api) {\n    this._model = parallelModel;\n    this._api = api;\n\n    if (!this._handlers) {\n      this._handlers = {};\n      each(handlers, function (handler, eventName) {\n        api.getZr().on(eventName, this._handlers[eventName] = bind(handler, this));\n      }, this);\n    }\n\n    createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate');\n  };\n\n  ParallelView.prototype.dispose = function (ecModel, api) {\n    clear(this, '_throttledDispatchExpand');\n    each(this._handlers, function (handler, eventName) {\n      api.getZr().off(eventName, handler);\n    });\n    this._handlers = null;\n  };\n  /**\n   * @internal\n   * @param {Object} [opt] If null, cancle the last action triggering for debounce.\n   */\n\n\n  ParallelView.prototype._throttledDispatchExpand = function (opt) {\n    this._dispatchExpand(opt);\n  };\n  /**\n   * @internal\n   */\n\n\n  ParallelView.prototype._dispatchExpand = function (opt) {\n    opt && this._api.dispatchAction(extend({\n      type: 'parallelAxisExpand'\n    }, opt));\n  };\n\n  ParallelView.type = 'parallel';\n  return ParallelView;\n}(ComponentView);\n\nvar handlers = {\n  mousedown: function (e) {\n    if (checkTrigger(this, 'click')) {\n      this._mouseDownPoint = [e.offsetX, e.offsetY];\n    }\n  },\n  mouseup: function (e) {\n    var mouseDownPoint = this._mouseDownPoint;\n\n    if (checkTrigger(this, 'click') && mouseDownPoint) {\n      var point = [e.offsetX, e.offsetY];\n      var dist = Math.pow(mouseDownPoint[0] - point[0], 2) + Math.pow(mouseDownPoint[1] - point[1], 2);\n\n      if (dist > CLICK_THRESHOLD) {\n        return;\n      }\n\n      var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n\n      result.behavior !== 'none' && this._dispatchExpand({\n        axisExpandWindow: result.axisExpandWindow\n      });\n    }\n\n    this._mouseDownPoint = null;\n  },\n  mousemove: function (e) {\n    // Should do nothing when brushing.\n    if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) {\n      return;\n    }\n\n    var model = this._model;\n    var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n    var behavior = result.behavior;\n    behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce'));\n\n    this._throttledDispatchExpand(behavior === 'none' ? null // Cancle the last trigger, in case that mouse slide out of the area quickly.\n    : {\n      axisExpandWindow: result.axisExpandWindow,\n      // Jumping uses animation, and sliding suppresses animation.\n      animation: behavior === 'jump' ? null : {\n        duration: 0 // Disable animation.\n\n      }\n    });\n  }\n};\n\nfunction checkTrigger(view, triggerOn) {\n  var model = view._model;\n  return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn;\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\n\nvar ParallelModel =\n/** @class */\nfunction (_super) {\n  __extends(ParallelModel, _super);\n\n  function ParallelModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelModel.type;\n    return _this;\n  }\n\n  ParallelModel.prototype.init = function () {\n    _super.prototype.init.apply(this, arguments);\n\n    this.mergeOption({});\n  };\n\n  ParallelModel.prototype.mergeOption = function (newOption) {\n    var thisOption = this.option;\n    newOption && zrUtil.merge(thisOption, newOption, true);\n\n    this._initDimensions();\n  };\n  /**\n   * Whether series or axis is in this coordinate system.\n   */\n\n\n  ParallelModel.prototype.contains = function (model, ecModel) {\n    var parallelIndex = model.get('parallelIndex');\n    return parallelIndex != null && ecModel.getComponent('parallel', parallelIndex) === this;\n  };\n\n  ParallelModel.prototype.setAxisExpand = function (opt) {\n    zrUtil.each(['axisExpandable', 'axisExpandCenter', 'axisExpandCount', 'axisExpandWidth', 'axisExpandWindow'], function (name) {\n      if (opt.hasOwnProperty(name)) {\n        // @ts-ignore FIXME: why \"never\" inferred in this.option[name]?\n        this.option[name] = opt[name];\n      }\n    }, this);\n  };\n\n  ParallelModel.prototype._initDimensions = function () {\n    var dimensions = this.dimensions = [];\n    var parallelAxisIndex = this.parallelAxisIndex = [];\n    var axisModels = zrUtil.filter(this.ecModel.queryComponents({\n      mainType: 'parallelAxis'\n    }), function (axisModel) {\n      // Can not use this.contains here, because\n      // initialization has not been completed yet.\n      return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\n    }, this);\n    zrUtil.each(axisModels, function (axisModel) {\n      dimensions.push('dim' + axisModel.get('dim'));\n      parallelAxisIndex.push(axisModel.componentIndex);\n    });\n  };\n\n  ParallelModel.type = 'parallel';\n  ParallelModel.dependencies = ['parallelAxis'];\n  ParallelModel.layoutMode = 'box';\n  ParallelModel.defaultOption = {\n    // zlevel: 0,\n    z: 0,\n    left: 80,\n    top: 60,\n    right: 80,\n    bottom: 60,\n    // width: {totalWidth} - left - right,\n    // height: {totalHeight} - top - bottom,\n    layout: 'horizontal',\n    // FIXME\n    // naming?\n    axisExpandable: false,\n    axisExpandCenter: null,\n    axisExpandCount: 0,\n    axisExpandWidth: 50,\n    axisExpandRate: 17,\n    axisExpandDebounce: 50,\n    // [out, in, jumpTarget]. In percentage. If use [null, 0.05], null means full.\n    // Do not doc to user until necessary.\n    axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\n    axisExpandTriggerOn: 'click',\n    parallelAxisDefault: null\n  };\n  return ParallelModel;\n}(ComponentModel);\n\nexport default ParallelModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\n\nvar ParallelAxis =\n/** @class */\nfunction (_super) {\n  __extends(ParallelAxis, _super);\n\n  function ParallelAxis(dim, scale, coordExtent, axisType, axisIndex) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    _this.axisIndex = axisIndex;\n    return _this;\n  }\n\n  ParallelAxis.prototype.isHorizontal = function () {\n    return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\n  };\n\n  return ParallelAxis;\n}(Axis);\n\nexport default ParallelAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Calculate slider move result.\n * Usage:\n * (1) If both handle0 and handle1 are needed to be moved, set minSpan the same as\n * maxSpan and the same as `Math.abs(handleEnd[1] - handleEnds[0])`.\n * (2) If handle0 is forbidden to cross handle1, set minSpan as `0`.\n *\n * @param delta Move length.\n * @param handleEnds handleEnds[0] can be bigger then handleEnds[1].\n *              handleEnds will be modified in this method.\n * @param extent handleEnds is restricted by extent.\n *              extent[0] should less or equals than extent[1].\n * @param handleIndex Can be 'all', means that both move the two handleEnds.\n * @param minSpan The range of dataZoom can not be smaller than that.\n *              If not set, handle0 and cross handle1. If set as a non-negative\n *              number (including `0`), handles will push each other when reaching\n *              the minSpan.\n * @param maxSpan The range of dataZoom can not be larger than that.\n * @return The input handleEnds.\n */\nexport default function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n  delta = delta || 0;\n  var extentSpan = extent[1] - extent[0]; // Notice maxSpan and minSpan can be null/undefined.\n\n  if (minSpan != null) {\n    minSpan = restrict(minSpan, [0, extentSpan]);\n  }\n\n  if (maxSpan != null) {\n    maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n  }\n\n  if (handleIndex === 'all') {\n    var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n    handleSpan = restrict(handleSpan, [0, extentSpan]);\n    minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\n    handleIndex = 0;\n  }\n\n  handleEnds[0] = restrict(handleEnds[0], extent);\n  handleEnds[1] = restrict(handleEnds[1], extent);\n  var originalDistSign = getSpanSign(handleEnds, handleIndex);\n  handleEnds[handleIndex] += delta; // Restrict in extent.\n\n  var extentMinSpan = minSpan || 0;\n  var realExtent = extent.slice();\n  originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n  handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent); // Expand span.\n\n  var currDistSign;\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n    // If minSpan exists, 'cross' is forbidden.\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n  } // Shrink span.\n\n\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (maxSpan != null && currDistSign.span > maxSpan) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n  }\n\n  return handleEnds;\n}\n\nfunction getSpanSign(handleEnds, handleIndex) {\n  var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex]; // If `handleEnds[0] === handleEnds[1]`, always believe that handleEnd[0]\n  // is at left of handleEnds[1] for non-cross case.\n\n  return {\n    span: Math.abs(dist),\n    sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n  };\n}\n\nfunction restrict(value, extend) {\n  return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Parallel Coordinates\n * <https://en.wikipedia.org/wiki/Parallel_coordinates>\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport * as axisHelper from '../../coord/axisHelper.js';\nimport ParallelAxis from './ParallelAxis.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as numberUtil from '../../util/number.js';\nimport sliderMove from '../../component/helper/sliderMove.js';\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar round = numberUtil.round;\nvar PI = Math.PI;\n\nvar Parallel =\n/** @class */\nfunction () {\n  function Parallel(parallelModel, ecModel, api) {\n    this.type = 'parallel';\n    /**\n     * key: dimension\n     */\n\n    this._axesMap = zrUtil.createHashMap();\n    /**\n     * key: dimension\n     * value: {position: [], rotation, }\n     */\n\n    this._axesLayout = {};\n    this.dimensions = parallelModel.dimensions;\n    this._model = parallelModel;\n\n    this._init(parallelModel, ecModel, api);\n  }\n\n  Parallel.prototype._init = function (parallelModel, ecModel, api) {\n    var dimensions = parallelModel.dimensions;\n    var parallelAxisIndex = parallelModel.parallelAxisIndex;\n    each(dimensions, function (dim, idx) {\n      var axisIndex = parallelAxisIndex[idx];\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n\n      var axis = this._axesMap.set(dim, new ParallelAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\n\n      var isCategory = axis.type === 'category';\n      axis.onBand = isCategory && axisModel.get('boundaryGap');\n      axis.inverse = axisModel.get('inverse'); // Injection\n\n      axisModel.axis = axis;\n      axis.model = axisModel;\n      axis.coordinateSystem = axisModel.coordinateSystem = this;\n    }, this);\n  };\n  /**\n   * Update axis scale after data processed\n   */\n\n\n  Parallel.prototype.update = function (ecModel, api) {\n    this._updateAxesFromSeries(this._model, ecModel);\n  };\n\n  Parallel.prototype.containPoint = function (point) {\n    var layoutInfo = this._makeLayoutInfo();\n\n    var axisBase = layoutInfo.axisBase;\n    var layoutBase = layoutInfo.layoutBase;\n    var pixelDimIndex = layoutInfo.pixelDimIndex;\n    var pAxis = point[1 - pixelDimIndex];\n    var pLayout = point[pixelDimIndex];\n    return pAxis >= axisBase && pAxis <= axisBase + layoutInfo.axisLength && pLayout >= layoutBase && pLayout <= layoutBase + layoutInfo.layoutLength;\n  };\n\n  Parallel.prototype.getModel = function () {\n    return this._model;\n  };\n  /**\n   * Update properties from series\n   */\n\n\n  Parallel.prototype._updateAxesFromSeries = function (parallelModel, ecModel) {\n    ecModel.eachSeries(function (seriesModel) {\n      if (!parallelModel.contains(seriesModel, ecModel)) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      each(this.dimensions, function (dim) {\n        var axis = this._axesMap.get(dim);\n\n        axis.scale.unionExtentFromData(data, data.mapDimension(dim));\n        axisHelper.niceScaleExtent(axis.scale, axis.model);\n      }, this);\n    }, this);\n  };\n  /**\n   * Resize the parallel coordinate system.\n   */\n\n\n  Parallel.prototype.resize = function (parallelModel, api) {\n    this._rect = layoutUtil.getLayoutRect(parallelModel.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n\n    this._layoutAxes();\n  };\n\n  Parallel.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Parallel.prototype._makeLayoutInfo = function () {\n    var parallelModel = this._model;\n    var rect = this._rect;\n    var xy = ['x', 'y'];\n    var wh = ['width', 'height'];\n    var layout = parallelModel.get('layout');\n    var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\n    var layoutLength = rect[wh[pixelDimIndex]];\n    var layoutExtent = [0, layoutLength];\n    var axisCount = this.dimensions.length;\n    var axisExpandWidth = restrict(parallelModel.get('axisExpandWidth'), layoutExtent);\n    var axisExpandCount = restrict(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\n    var axisExpandable = parallelModel.get('axisExpandable') && axisCount > 3 && axisCount > axisExpandCount && axisExpandCount > 1 && axisExpandWidth > 0 && layoutLength > 0; // `axisExpandWindow` is According to the coordinates of [0, axisExpandLength],\n    // for sake of consider the case that axisCollapseWidth is 0 (when screen is narrow),\n    // where collapsed axes should be overlapped.\n\n    var axisExpandWindow = parallelModel.get('axisExpandWindow');\n    var winSize;\n\n    if (!axisExpandWindow) {\n      winSize = restrict(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\n      var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor(axisCount / 2);\n      axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\n      axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n    } else {\n      winSize = restrict(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\n      axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n    }\n\n    var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount); // Avoid axisCollapseWidth is too small.\n\n    axisCollapseWidth < 3 && (axisCollapseWidth = 0); // Find the first and last indices > ewin[0] and < ewin[1].\n\n    var winInnerIndices = [mathFloor(round(axisExpandWindow[0] / axisExpandWidth, 1)) + 1, mathCeil(round(axisExpandWindow[1] / axisExpandWidth, 1)) - 1]; // Pos in ec coordinates.\n\n    var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\n    return {\n      layout: layout,\n      pixelDimIndex: pixelDimIndex,\n      layoutBase: rect[xy[pixelDimIndex]],\n      layoutLength: layoutLength,\n      axisBase: rect[xy[1 - pixelDimIndex]],\n      axisLength: rect[wh[1 - pixelDimIndex]],\n      axisExpandable: axisExpandable,\n      axisExpandWidth: axisExpandWidth,\n      axisCollapseWidth: axisCollapseWidth,\n      axisExpandWindow: axisExpandWindow,\n      axisCount: axisCount,\n      winInnerIndices: winInnerIndices,\n      axisExpandWindow0Pos: axisExpandWindow0Pos\n    };\n  };\n\n  Parallel.prototype._layoutAxes = function () {\n    var rect = this._rect;\n    var axes = this._axesMap;\n    var dimensions = this.dimensions;\n\n    var layoutInfo = this._makeLayoutInfo();\n\n    var layout = layoutInfo.layout;\n    axes.each(function (axis) {\n      var axisExtent = [0, layoutInfo.axisLength];\n      var idx = axis.inverse ? 1 : 0;\n      axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\n    });\n    each(dimensions, function (dim, idx) {\n      var posInfo = (layoutInfo.axisExpandable ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\n      var positionTable = {\n        horizontal: {\n          x: posInfo.position,\n          y: layoutInfo.axisLength\n        },\n        vertical: {\n          x: 0,\n          y: posInfo.position\n        }\n      };\n      var rotationTable = {\n        horizontal: PI / 2,\n        vertical: 0\n      };\n      var position = [positionTable[layout].x + rect.x, positionTable[layout].y + rect.y];\n      var rotation = rotationTable[layout];\n      var transform = matrix.create();\n      matrix.rotate(transform, transform, rotation);\n      matrix.translate(transform, transform, position); // TODO\n      // tick layout info\n      // TODO\n      // update dimensions info based on axis order.\n\n      this._axesLayout[dim] = {\n        position: position,\n        rotation: rotation,\n        transform: transform,\n        axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\n        axisLabelShow: posInfo.axisLabelShow,\n        nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\n        tickDirection: 1,\n        labelDirection: 1\n      };\n    }, this);\n  };\n  /**\n   * Get axis by dim.\n   */\n\n\n  Parallel.prototype.getAxis = function (dim) {\n    return this._axesMap.get(dim);\n  };\n  /**\n   * Convert a dim value of a single item of series data to Point.\n   */\n\n\n  Parallel.prototype.dataToPoint = function (value, dim) {\n    return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\n  };\n  /**\n   * Travel data for one time, get activeState of each data item.\n   * @param start the start dataIndex that travel from.\n   * @param end the next dataIndex of the last dataIndex will be travel.\n   */\n\n\n  Parallel.prototype.eachActiveState = function (data, callback, start, end) {\n    start == null && (start = 0);\n    end == null && (end = data.count());\n    var axesMap = this._axesMap;\n    var dimensions = this.dimensions;\n    var dataDimensions = [];\n    var axisModels = [];\n    zrUtil.each(dimensions, function (axisDim) {\n      dataDimensions.push(data.mapDimension(axisDim));\n      axisModels.push(axesMap.get(axisDim).model);\n    });\n    var hasActiveSet = this.hasAxisBrushed();\n\n    for (var dataIndex = start; dataIndex < end; dataIndex++) {\n      var activeState = void 0;\n\n      if (!hasActiveSet) {\n        activeState = 'normal';\n      } else {\n        activeState = 'active';\n        var values = data.getValues(dataDimensions, dataIndex);\n\n        for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n          var state = axisModels[j].getActiveState(values[j]);\n\n          if (state === 'inactive') {\n            activeState = 'inactive';\n            break;\n          }\n        }\n      }\n\n      callback(activeState, dataIndex);\n    }\n  };\n  /**\n   * Whether has any activeSet.\n   */\n\n\n  Parallel.prototype.hasAxisBrushed = function () {\n    var dimensions = this.dimensions;\n    var axesMap = this._axesMap;\n    var hasActiveSet = false;\n\n    for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n      if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\n        hasActiveSet = true;\n      }\n    }\n\n    return hasActiveSet;\n  };\n  /**\n   * Convert coords of each axis to Point.\n   *  Return point. For example: [10, 20]\n   */\n\n\n  Parallel.prototype.axisCoordToPoint = function (coord, dim) {\n    var axisLayout = this._axesLayout[dim];\n    return graphic.applyTransform([coord, 0], axisLayout.transform);\n  };\n  /**\n   * Get axis layout.\n   */\n\n\n  Parallel.prototype.getAxisLayout = function (dim) {\n    return zrUtil.clone(this._axesLayout[dim]);\n  };\n  /**\n   * @return {Object} {axisExpandWindow, delta, behavior: 'jump' | 'slide' | 'none'}.\n   */\n\n\n  Parallel.prototype.getSlidedAxisExpandWindow = function (point) {\n    var layoutInfo = this._makeLayoutInfo();\n\n    var pixelDimIndex = layoutInfo.pixelDimIndex;\n    var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\n    var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n    var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)]; // Out of the area of coordinate system.\n\n    if (!this.containPoint(point)) {\n      return {\n        behavior: 'none',\n        axisExpandWindow: axisExpandWindow\n      };\n    } // Conver the point from global to expand coordinates.\n\n\n    var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos; // For dragging operation convenience, the window should not be\n    // slided when mouse is the center area of the window.\n\n    var delta;\n    var behavior = 'slide';\n    var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n\n    var triggerArea = this._model.get('axisExpandSlideTriggerArea'); // But consider touch device, jump is necessary.\n\n\n    var useJump = triggerArea[0] != null;\n\n    if (axisCollapseWidth) {\n      if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\n        behavior = 'jump';\n        delta = pointCoord - winSize * triggerArea[2];\n      } else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\n        behavior = 'jump';\n        delta = pointCoord - winSize * (1 - triggerArea[2]);\n      } else {\n        (delta = pointCoord - winSize * triggerArea[1]) >= 0 && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0 && (delta = 0);\n      }\n\n      delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\n      delta ? sliderMove(delta, axisExpandWindow, extent, 'all') // Avoid nonsense triger on mousemove.\n      : behavior = 'none';\n    } // When screen is too narrow, make it visible and slidable, although it is hard to interact.\n    else {\n        var winSize2 = axisExpandWindow[1] - axisExpandWindow[0];\n        var pos = extent[1] * pointCoord / winSize2;\n        axisExpandWindow = [mathMax(0, pos - winSize2 / 2)];\n        axisExpandWindow[1] = mathMin(extent[1], axisExpandWindow[0] + winSize2);\n        axisExpandWindow[0] = axisExpandWindow[1] - winSize2;\n      }\n\n    return {\n      axisExpandWindow: axisExpandWindow,\n      behavior: behavior\n    };\n  };\n\n  return Parallel;\n}();\n\nfunction restrict(len, extent) {\n  return mathMin(mathMax(len, extent[0]), extent[1]);\n}\n\nfunction layoutAxisWithoutExpand(axisIndex, layoutInfo) {\n  var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\n  return {\n    position: step * axisIndex,\n    axisNameAvailableWidth: step,\n    axisLabelShow: true\n  };\n}\n\nfunction layoutAxisWithExpand(axisIndex, layoutInfo) {\n  var layoutLength = layoutInfo.layoutLength;\n  var axisExpandWidth = layoutInfo.axisExpandWidth;\n  var axisCount = layoutInfo.axisCount;\n  var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n  var winInnerIndices = layoutInfo.winInnerIndices;\n  var position;\n  var axisNameAvailableWidth = axisCollapseWidth;\n  var axisLabelShow = false;\n  var nameTruncateMaxWidth;\n\n  if (axisIndex < winInnerIndices[0]) {\n    position = axisIndex * axisCollapseWidth;\n    nameTruncateMaxWidth = axisCollapseWidth;\n  } else if (axisIndex <= winInnerIndices[1]) {\n    position = layoutInfo.axisExpandWindow0Pos + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\n    axisNameAvailableWidth = axisExpandWidth;\n    axisLabelShow = true;\n  } else {\n    position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\n    nameTruncateMaxWidth = axisCollapseWidth;\n  }\n\n  return {\n    position: position,\n    axisNameAvailableWidth: axisNameAvailableWidth,\n    axisLabelShow: axisLabelShow,\n    nameTruncateMaxWidth: nameTruncateMaxWidth\n  };\n}\n\nexport default Parallel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Parallel coordinate system creater.\n */\nimport Parallel from './Parallel.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n\nfunction createParallelCoordSys(ecModel, api) {\n  var coordSysList = [];\n  ecModel.eachComponent('parallel', function (parallelModel, idx) {\n    var coordSys = new Parallel(parallelModel, ecModel, api);\n    coordSys.name = 'parallel_' + idx;\n    coordSys.resize(parallelModel, api);\n    parallelModel.coordinateSystem = coordSys;\n    coordSys.model = parallelModel;\n    coordSysList.push(coordSys);\n  }); // Inject the coordinateSystems into seriesModel\n\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.get('coordinateSystem') === 'parallel') {\n      var parallelModel = seriesModel.getReferringComponents('parallel', SINGLE_REFERRING).models[0];\n      seriesModel.coordinateSystem = parallelModel.coordinateSystem;\n    }\n  });\n  return coordSysList;\n}\n\nvar parallelCoordSysCreator = {\n  create: createParallelCoordSys\n};\nexport default parallelCoordSysCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper.js';\nimport * as numberUtil from '../../util/number.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\n\nvar ParallelAxisModel =\n/** @class */\nfunction (_super) {\n  __extends(ParallelAxisModel, _super);\n\n  function ParallelAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelAxisModel.type;\n    /**\n     * @readOnly\n     */\n\n    _this.activeIntervals = [];\n    return _this;\n  }\n\n  ParallelAxisModel.prototype.getAreaSelectStyle = function () {\n    return makeStyleMapper([['fill', 'color'], ['lineWidth', 'borderWidth'], ['stroke', 'borderColor'], ['width', 'width'], ['opacity', 'opacity'] // Option decal is in `DecalObject` but style.decal is in `PatternObject`.\n    // So do not transfer decal directly.\n    ])(this.getModel('areaSelectStyle'));\n  };\n  /**\n   * The code of this feature is put on AxisModel but not ParallelAxis,\n   * because axisModel can be alive after echarts updating but instance of\n   * ParallelAxis having been disposed. this._activeInterval should be kept\n   * when action dispatched (i.e. legend click).\n   *\n   * @param intervals `interval.length === 0` means set all active.\n   */\n\n\n  ParallelAxisModel.prototype.setActiveIntervals = function (intervals) {\n    var activeIntervals = this.activeIntervals = zrUtil.clone(intervals); // Normalize\n\n    if (activeIntervals) {\n      for (var i = activeIntervals.length - 1; i >= 0; i--) {\n        numberUtil.asc(activeIntervals[i]);\n      }\n    }\n  };\n  /**\n   * @param value When only attempting detect whether 'no activeIntervals set',\n   *        `value` is not needed to be input.\n   */\n\n\n  ParallelAxisModel.prototype.getActiveState = function (value) {\n    var activeIntervals = this.activeIntervals;\n\n    if (!activeIntervals.length) {\n      return 'normal';\n    }\n\n    if (value == null || isNaN(+value)) {\n      return 'inactive';\n    } // Simple optimization\n\n\n    if (activeIntervals.length === 1) {\n      var interval = activeIntervals[0];\n\n      if (interval[0] <= value && value <= interval[1]) {\n        return 'active';\n      }\n    } else {\n      for (var i = 0, len = activeIntervals.length; i < len; i++) {\n        if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\n          return 'active';\n        }\n      }\n    }\n\n    return 'inactive';\n  };\n\n  return ParallelAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(ParallelAxisModel, AxisModelCommonMixin);\nexport default ParallelAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { curry, each, map, bind, merge, clone, defaults, assert } from 'zrender/lib/core/util.js';\nimport Eventful from 'zrender/lib/core/Eventful.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as interactionMutex from './interactionMutex.js';\nimport DataDiffer from '../../data/DataDiffer.js';\nvar BRUSH_PANEL_GLOBAL = true;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathPow = Math.pow;\nvar COVER_Z = 10000;\nvar UNSELECT_THRESHOLD = 6;\nvar MIN_RESIZE_LINE_WIDTH = 6;\nvar MUTEX_RESOURCE_KEY = 'globalPan';\nvar DIRECTION_MAP = {\n  w: [0, 0],\n  e: [0, 1],\n  n: [1, 0],\n  s: [1, 1]\n};\nvar CURSOR_MAP = {\n  w: 'ew',\n  e: 'ew',\n  n: 'ns',\n  s: 'ns',\n  ne: 'nesw',\n  sw: 'nesw',\n  nw: 'nwse',\n  se: 'nwse'\n};\nvar DEFAULT_BRUSH_OPT = {\n  brushStyle: {\n    lineWidth: 2,\n    stroke: 'rgba(210,219,238,0.3)',\n    fill: '#D2DBEE'\n  },\n  transformable: true,\n  brushMode: 'single',\n  removeOnClick: false\n};\nvar baseUID = 0;\n/**\n * params:\n *     areas: Array.<Array>, coord relates to container group,\n *                             If no container specified, to global.\n *     opt {\n *         isEnd: boolean,\n *         removeOnClick: boolean\n *     }\n */\n\nvar BrushController =\n/** @class */\nfunction (_super) {\n  __extends(BrushController, _super);\n\n  function BrushController(zr) {\n    var _this = _super.call(this) || this;\n    /**\n     * @internal\n     */\n\n\n    _this._track = [];\n    /**\n     * @internal\n     */\n\n    _this._covers = [];\n    _this._handlers = {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(zr);\n    }\n\n    _this._zr = zr;\n    _this.group = new graphic.Group();\n    _this._uid = 'brushController_' + baseUID++;\n    each(pointerHandlers, function (handler, eventName) {\n      this._handlers[eventName] = bind(handler, this);\n    }, _this);\n    return _this;\n  }\n  /**\n   * If set to `false`, select disabled.\n   */\n\n\n  BrushController.prototype.enableBrush = function (brushOption) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    this._brushType && this._doDisableBrush();\n    brushOption.brushType && this._doEnableBrush(brushOption);\n    return this;\n  };\n\n  BrushController.prototype._doEnableBrush = function (brushOption) {\n    var zr = this._zr; // Consider roam, which takes globalPan too.\n\n    if (!this._enableGlobalPan) {\n      interactionMutex.take(zr, MUTEX_RESOURCE_KEY, this._uid);\n    }\n\n    each(this._handlers, function (handler, eventName) {\n      zr.on(eventName, handler);\n    });\n    this._brushType = brushOption.brushType;\n    this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\n  };\n\n  BrushController.prototype._doDisableBrush = function () {\n    var zr = this._zr;\n    interactionMutex.release(zr, MUTEX_RESOURCE_KEY, this._uid);\n    each(this._handlers, function (handler, eventName) {\n      zr.off(eventName, handler);\n    });\n    this._brushType = this._brushOption = null;\n  };\n  /**\n   * @param panelOpts If not pass, it is global brush.\n   */\n\n\n  BrushController.prototype.setPanels = function (panelOpts) {\n    if (panelOpts && panelOpts.length) {\n      var panels_1 = this._panels = {};\n      each(panelOpts, function (panelOpts) {\n        panels_1[panelOpts.panelId] = clone(panelOpts);\n      });\n    } else {\n      this._panels = null;\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.mount = function (opt) {\n    opt = opt || {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = true; // should be at first.\n    }\n\n    this._enableGlobalPan = opt.enableGlobalPan;\n    var thisGroup = this.group;\n\n    this._zr.add(thisGroup);\n\n    thisGroup.attr({\n      x: opt.x || 0,\n      y: opt.y || 0,\n      rotation: opt.rotation || 0,\n      scaleX: opt.scaleX || 1,\n      scaleY: opt.scaleY || 1\n    });\n    this._transform = thisGroup.getLocalTransform();\n    return this;\n  }; // eachCover(cb, context): void {\n  //     each(this._covers, cb, context);\n  // }\n\n  /**\n   * Update covers.\n   * @param coverConfigList\n   *        If coverConfigList is null/undefined, all covers removed.\n   */\n\n\n  BrushController.prototype.updateCovers = function (coverConfigList) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    coverConfigList = map(coverConfigList, function (coverConfig) {\n      return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\n    });\n    var tmpIdPrefix = '\\0-brush-index-';\n    var oldCovers = this._covers;\n    var newCovers = this._covers = [];\n    var controller = this;\n    var creatingCover = this._creatingCover;\n    new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute();\n    return this;\n\n    function getKey(brushOption, index) {\n      return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + '-' + brushOption.brushType;\n    }\n\n    function oldGetKey(cover, index) {\n      return getKey(cover.__brushOption, index);\n    }\n\n    function addOrUpdate(newIndex, oldIndex) {\n      var newBrushInternal = coverConfigList[newIndex]; // Consider setOption in event listener of brushSelect,\n      // where updating cover when creating should be forbiden.\n\n      if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\n        newCovers[newIndex] = oldCovers[oldIndex];\n      } else {\n        var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushInternal, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushInternal));\n        updateCoverAfterCreation(controller, cover);\n      }\n    }\n\n    function remove(oldIndex) {\n      if (oldCovers[oldIndex] !== creatingCover) {\n        controller.group.remove(oldCovers[oldIndex]);\n      }\n    }\n  };\n\n  BrushController.prototype.unmount = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      if (!this._mounted) {\n        return;\n      }\n    }\n\n    this.enableBrush(false); // container may 'removeAll' outside.\n\n    clearCovers(this);\n\n    this._zr.remove(this.group);\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = false; // should be at last.\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.dispose = function () {\n    this.unmount();\n    this.off();\n  };\n\n  return BrushController;\n}(Eventful);\n\nfunction createCover(controller, brushOption) {\n  var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\n  cover.__brushOption = brushOption;\n  updateZ(cover, brushOption);\n  controller.group.add(cover);\n  return cover;\n}\n\nfunction endCreating(controller, creatingCover) {\n  var coverRenderer = getCoverRenderer(creatingCover);\n\n  if (coverRenderer.endCreating) {\n    coverRenderer.endCreating(controller, creatingCover);\n    updateZ(creatingCover, creatingCover.__brushOption);\n  }\n\n  return creatingCover;\n}\n\nfunction updateCoverShape(controller, cover) {\n  var brushOption = cover.__brushOption;\n  getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\n}\n\nfunction updateZ(cover, brushOption) {\n  var z = brushOption.z;\n  z == null && (z = COVER_Z);\n  cover.traverse(function (el) {\n    el.z = z;\n    el.z2 = z; // Consider in given container.\n  });\n}\n\nfunction updateCoverAfterCreation(controller, cover) {\n  getCoverRenderer(cover).updateCommon(controller, cover);\n  updateCoverShape(controller, cover);\n}\n\nfunction getCoverRenderer(cover) {\n  return coverRenderers[cover.__brushOption.brushType];\n} // return target panel or `true` (means global panel)\n\n\nfunction getPanelByPoint(controller, e, localCursorPoint) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL; // Global panel\n  }\n\n  var panel;\n  var transform = controller._transform;\n  each(panels, function (pn) {\n    pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\n  });\n  return panel;\n} // Return a panel or true\n\n\nfunction getPanelByCover(controller, cover) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL; // Global panel\n  }\n\n  var panelId = cover.__brushOption.panelId; // User may give cover without coord sys info,\n  // which is then treated as global panel.\n\n  return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\n}\n\nfunction clearCovers(controller) {\n  var covers = controller._covers;\n  var originalLength = covers.length;\n  each(covers, function (cover) {\n    controller.group.remove(cover);\n  }, controller);\n  covers.length = 0;\n  return !!originalLength;\n}\n\nfunction trigger(controller, opt) {\n  var areas = map(controller._covers, function (cover) {\n    var brushOption = cover.__brushOption;\n    var range = clone(brushOption.range);\n    return {\n      brushType: brushOption.brushType,\n      panelId: brushOption.panelId,\n      range: range\n    };\n  });\n  controller.trigger('brush', {\n    areas: areas,\n    isEnd: !!opt.isEnd,\n    removeOnClick: !!opt.removeOnClick\n  });\n}\n\nfunction shouldShowCover(controller) {\n  var track = controller._track;\n\n  if (!track.length) {\n    return false;\n  }\n\n  var p2 = track[track.length - 1];\n  var p1 = track[0];\n  var dx = p2[0] - p1[0];\n  var dy = p2[1] - p1[1];\n  var dist = mathPow(dx * dx + dy * dy, 0.5);\n  return dist > UNSELECT_THRESHOLD;\n}\n\nfunction getTrackEnds(track) {\n  var tail = track.length - 1;\n  tail < 0 && (tail = 0);\n  return [track[0], track[tail]];\n}\n\n;\n\nfunction createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\n  var cover = new graphic.Group();\n  cover.add(new graphic.Rect({\n    name: 'main',\n    style: makeStyle(brushOption),\n    silent: true,\n    draggable: true,\n    cursor: 'move',\n    drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\n    ondragend: curry(trigger, controller, {\n      isEnd: true\n    })\n  }));\n  each(edgeNameSequences, function (nameSequence) {\n    cover.add(new graphic.Rect({\n      name: nameSequence.join(''),\n      style: {\n        opacity: 0\n      },\n      draggable: true,\n      silent: true,\n      invisible: true,\n      drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\n      ondragend: curry(trigger, controller, {\n        isEnd: true\n      })\n    }));\n  });\n  return cover;\n}\n\nfunction updateBaseRect(controller, cover, localRange, brushOption) {\n  var lineWidth = brushOption.brushStyle.lineWidth || 0;\n  var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH);\n  var x = localRange[0][0];\n  var y = localRange[1][0];\n  var xa = x - lineWidth / 2;\n  var ya = y - lineWidth / 2;\n  var x2 = localRange[0][1];\n  var y2 = localRange[1][1];\n  var x2a = x2 - handleSize + lineWidth / 2;\n  var y2a = y2 - handleSize + lineWidth / 2;\n  var width = x2 - x;\n  var height = y2 - y;\n  var widtha = width + lineWidth;\n  var heighta = height + lineWidth;\n  updateRectShape(controller, cover, 'main', x, y, width, height);\n\n  if (brushOption.transformable) {\n    updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\n    updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\n    updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\n    updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\n  }\n}\n\nfunction updateCommon(controller, cover) {\n  var brushOption = cover.__brushOption;\n  var transformable = brushOption.transformable;\n  var mainEl = cover.childAt(0);\n  mainEl.useStyle(makeStyle(brushOption));\n  mainEl.attr({\n    silent: !transformable,\n    cursor: transformable ? 'move' : 'default'\n  });\n  each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\n    var el = cover.childOfName(nameSequence.join(''));\n    var globalDir = nameSequence.length === 1 ? getGlobalDirection1(controller, nameSequence[0]) : getGlobalDirection2(controller, nameSequence);\n    el && el.attr({\n      silent: !transformable,\n      invisible: !transformable,\n      cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\n    });\n  });\n}\n\nfunction updateRectShape(controller, cover, name, x, y, w, h) {\n  var el = cover.childOfName(name);\n  el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\n}\n\nfunction makeStyle(brushOption) {\n  return defaults({\n    strokeNoScale: true\n  }, brushOption.brushStyle);\n}\n\nfunction formatRectRange(x, y, x2, y2) {\n  var min = [mathMin(x, x2), mathMin(y, y2)];\n  var max = [mathMax(x, x2), mathMax(y, y2)];\n  return [[min[0], max[0]], [min[1], max[1]] // y range\n  ];\n}\n\nfunction getTransform(controller) {\n  return graphic.getTransform(controller.group);\n}\n\nfunction getGlobalDirection1(controller, localDirName) {\n  var map = {\n    w: 'left',\n    e: 'right',\n    n: 'top',\n    s: 'bottom'\n  };\n  var inverseMap = {\n    left: 'w',\n    right: 'e',\n    top: 'n',\n    bottom: 's'\n  };\n  var dir = graphic.transformDirection(map[localDirName], getTransform(controller));\n  return inverseMap[dir];\n}\n\nfunction getGlobalDirection2(controller, localDirNameSeq) {\n  var globalDir = [getGlobalDirection1(controller, localDirNameSeq[0]), getGlobalDirection1(controller, localDirNameSeq[1])];\n  (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\n  return globalDir.join('');\n}\n\nfunction driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\n  var brushOption = cover.__brushOption;\n  var rectRange = rectRangeConverter.toRectRange(brushOption.range);\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(dirNameSequence, function (dirName) {\n    var ind = DIRECTION_MAP[dirName];\n    rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\n  });\n  brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction driftPolygon(controller, cover, dx, dy) {\n  var range = cover.__brushOption.range;\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(range, function (point) {\n    point[0] += localDelta[0];\n    point[1] += localDelta[1];\n  });\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction toLocalDelta(controller, dx, dy) {\n  var thisGroup = controller.group;\n  var localD = thisGroup.transformCoordToLocal(dx, dy);\n  var localZero = thisGroup.transformCoordToLocal(0, 0);\n  return [localD[0] - localZero[0], localD[1] - localZero[1]];\n}\n\nfunction clipByPanel(controller, cover, data) {\n  var panel = getPanelByCover(controller, cover);\n  return panel && panel !== BRUSH_PANEL_GLOBAL ? panel.clipPath(data, controller._transform) : clone(data);\n}\n\nfunction pointsToRect(points) {\n  var xmin = mathMin(points[0][0], points[1][0]);\n  var ymin = mathMin(points[0][1], points[1][1]);\n  var xmax = mathMax(points[0][0], points[1][0]);\n  var ymax = mathMax(points[0][1], points[1][1]);\n  return {\n    x: xmin,\n    y: ymin,\n    width: xmax - xmin,\n    height: ymax - ymin\n  };\n}\n\nfunction resetCursor(controller, e, localCursorPoint) {\n  if ( // Check active\n  !controller._brushType // resetCursor should be always called when mouse is in zr area,\n  // but not called when mouse is out of zr area to avoid bad influence\n  // if `mousemove`, `mouseup` are triggered from `document` event.\n  || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\n    return;\n  }\n\n  var zr = controller._zr;\n  var covers = controller._covers;\n  var currPanel = getPanelByPoint(controller, e, localCursorPoint); // Check whether in covers.\n\n  if (!controller._dragging) {\n    for (var i = 0; i < covers.length; i++) {\n      var brushOption = covers[i].__brushOption;\n\n      if (currPanel && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\n        // Use cursor style set on cover.\n        return;\n      }\n    }\n  }\n\n  currPanel && zr.setCursorStyle('crosshair');\n}\n\nfunction preventDefault(e) {\n  var rawE = e.event;\n  rawE.preventDefault && rawE.preventDefault();\n}\n\nfunction mainShapeContain(cover, x, y) {\n  return cover.childOfName('main').contain(x, y);\n}\n\nfunction updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\n  var creatingCover = controller._creatingCover;\n  var panel = controller._creatingPanel;\n  var thisBrushOption = controller._brushOption;\n  var eventParams;\n\n  controller._track.push(localCursorPoint.slice());\n\n  if (shouldShowCover(controller) || creatingCover) {\n    if (panel && !creatingCover) {\n      thisBrushOption.brushMode === 'single' && clearCovers(controller);\n      var brushOption = clone(thisBrushOption);\n      brushOption.brushType = determineBrushType(brushOption.brushType, panel);\n      brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\n      creatingCover = controller._creatingCover = createCover(controller, brushOption);\n\n      controller._covers.push(creatingCover);\n    }\n\n    if (creatingCover) {\n      var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\n      var coverBrushOption = creatingCover.__brushOption;\n      coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\n\n      if (isEnd) {\n        endCreating(controller, creatingCover);\n        coverRenderer.updateCommon(controller, creatingCover);\n      }\n\n      updateCoverShape(controller, creatingCover);\n      eventParams = {\n        isEnd: isEnd\n      };\n    }\n  } else if (isEnd && thisBrushOption.brushMode === 'single' && thisBrushOption.removeOnClick) {\n    // Help user to remove covers easily, only by a tiny drag, in 'single' mode.\n    // But a single click do not clear covers, because user may have casual\n    // clicks (for example, click on other component and do not expect covers\n    // disappear).\n    // Only some cover removed, trigger action, but not every click trigger action.\n    if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\n      eventParams = {\n        isEnd: isEnd,\n        removeOnClick: true\n      };\n    }\n  }\n\n  return eventParams;\n}\n\nfunction determineBrushType(brushType, panel) {\n  if (brushType === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\n    }\n\n    return panel.defaultBrushType;\n  }\n\n  return brushType;\n}\n\nvar pointerHandlers = {\n  mousedown: function (e) {\n    if (this._dragging) {\n      // In case some browser do not support globalOut,\n      // and release mouse out side the browser.\n      handleDragEnd(this, e);\n    } else if (!e.target || !e.target.draggable) {\n      preventDefault(e);\n      var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n      this._creatingCover = null;\n      var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\n\n      if (panel) {\n        this._dragging = true;\n        this._track = [localCursorPoint.slice()];\n      }\n    }\n  },\n  mousemove: function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = this.group.transformCoordToLocal(x, y);\n    resetCursor(this, e, localCursorPoint);\n\n    if (this._dragging) {\n      preventDefault(e);\n      var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\n      eventParams && trigger(this, eventParams);\n    }\n  },\n  mouseup: function (e) {\n    handleDragEnd(this, e);\n  }\n};\n\nfunction handleDragEnd(controller, e) {\n  if (controller._dragging) {\n    preventDefault(e);\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = controller.group.transformCoordToLocal(x, y);\n    var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\n    controller._dragging = false;\n    controller._track = [];\n    controller._creatingCover = null; // trigger event shoule be at final, after procedure will be nested.\n\n    eventParams && trigger(controller, eventParams);\n  }\n}\n\nfunction isOutsideZrArea(controller, x, y) {\n  var zr = controller._zr;\n  return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\n}\n/**\n * key: brushType\n */\n\n\nvar coverRenderers = {\n  lineX: getLineRenderer(0),\n  lineY: getLineRenderer(1),\n  rect: {\n    createCover: function (controller, brushOption) {\n      function returnInput(range) {\n        return range;\n      }\n\n      return createBaseRectCover({\n        toRectRange: returnInput,\n        fromRectRange: returnInput\n      }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      updateBaseRect(controller, cover, localRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  },\n  polygon: {\n    createCover: function (controller, brushOption) {\n      var cover = new graphic.Group(); // Do not use graphic.Polygon because graphic.Polyline do not close the\n      // border of the shape when drawing, which is a better experience for user.\n\n      cover.add(new graphic.Polyline({\n        name: 'main',\n        style: makeStyle(brushOption),\n        silent: true\n      }));\n      return cover;\n    },\n    getCreatingRange: function (localTrack) {\n      return localTrack;\n    },\n    endCreating: function (controller, cover) {\n      cover.remove(cover.childAt(0)); // Use graphic.Polygon close the shape.\n\n      cover.add(new graphic.Polygon({\n        name: 'main',\n        draggable: true,\n        drift: curry(driftPolygon, controller, cover),\n        ondragend: curry(trigger, controller, {\n          isEnd: true\n        })\n      }));\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      cover.childAt(0).setShape({\n        points: clipByPanel(controller, cover, localRange)\n      });\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  }\n};\n\nfunction getLineRenderer(xyIndex) {\n  return {\n    createCover: function (controller, brushOption) {\n      return createBaseRectCover({\n        toRectRange: function (range) {\n          var rectRange = [range, [0, 100]];\n          xyIndex && rectRange.reverse();\n          return rectRange;\n        },\n        fromRectRange: function (rectRange) {\n          return rectRange[xyIndex];\n        }\n      }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      var min = mathMin(ends[0][xyIndex], ends[1][xyIndex]);\n      var max = mathMax(ends[0][xyIndex], ends[1][xyIndex]);\n      return [min, max];\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      var otherExtent; // If brushWidth not specified, fit the panel.\n\n      var panel = getPanelByCover(controller, cover);\n\n      if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\n        otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\n      } else {\n        var zr = controller._zr;\n        otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\n      }\n\n      var rectRange = [localRange, otherExtent];\n      xyIndex && rectRange.reverse();\n      updateBaseRect(controller, cover, rectRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  };\n}\n\nexport default BrushController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport { onIrrelevantElement } from './cursorHelper.js';\nimport * as graphicUtil from '../../util/graphic.js';\nexport function makeRectPanelClipPath(rect) {\n  rect = normalizeRect(rect);\n  return function (localPoints) {\n    return graphicUtil.clipPointsByRect(localPoints, rect);\n  };\n}\nexport function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\n  rect = normalizeRect(rect);\n  return function (xyIndex) {\n    var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\n    var brushWidth = idx ? rect.width : rect.height;\n    var base = idx ? rect.x : rect.y;\n    return [base, base + (brushWidth || 0)];\n  };\n}\nexport function makeRectIsTargetByCursor(rect, api, targetModel) {\n  var boundingRect = normalizeRect(rect);\n  return function (e, localCursorPoint) {\n    return boundingRect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel);\n  };\n} // Consider width/height is negative.\n\nfunction normalizeRect(rect) {\n  return BoundingRect.create(rect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport AxisBuilder from './AxisBuilder.js';\nimport BrushController from '../helper/BrushController.js';\nimport * as brushHelper from '../helper/brushHelper.js';\nimport * as graphic from '../../util/graphic.js';\nimport ComponentView from '../../view/Component.js';\nvar elementList = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar ParallelAxisView =\n/** @class */\nfunction (_super) {\n  __extends(ParallelAxisView, _super);\n\n  function ParallelAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelAxisView.type;\n    return _this;\n  }\n\n  ParallelAxisView.prototype.init = function (ecModel, api) {\n    _super.prototype.init.apply(this, arguments);\n\n    (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this));\n  };\n\n  ParallelAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\n      return;\n    }\n\n    this.axisModel = axisModel;\n    this.api = api;\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var coordSysModel = getCoordSysModel(axisModel, ecModel);\n    var coordSys = coordSysModel.coordinateSystem;\n    var areaSelectStyle = axisModel.getAreaSelectStyle();\n    var areaWidth = areaSelectStyle.width;\n    var dim = axisModel.axis.dim;\n    var axisLayout = coordSys.getAxisLayout(dim);\n    var builderOpt = zrUtil.extend({\n      strokeContainThreshold: areaWidth\n    }, axisLayout);\n    var axisBuilder = new AxisBuilder(axisModel, builderOpt);\n    zrUtil.each(elementList, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\n\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n  }; // /**\n  //  * @override\n  //  */\n  // updateVisual(axisModel, ecModel, api, payload) {\n  //     this._brushController && this._brushController\n  //         .updateCovers(getCoverInfoList(axisModel));\n  // }\n\n\n  ParallelAxisView.prototype._refreshBrushController = function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\n    // After filtering, axis may change, select area needs to be update.\n    var extent = axisModel.axis.getExtent();\n    var extentLen = extent[1] - extent[0];\n    var extra = Math.min(30, Math.abs(extentLen) * 0.1); // Arbitrary value.\n    // width/height might be negative, which will be\n    // normalized in BoundingRect.\n\n    var rect = graphic.BoundingRect.create({\n      x: extent[0],\n      y: -areaWidth / 2,\n      width: extentLen,\n      height: areaWidth\n    });\n    rect.x -= extra;\n    rect.width += 2 * extra;\n\n    this._brushController.mount({\n      enableGlobalPan: true,\n      rotation: builderOpt.rotation,\n      x: builderOpt.position[0],\n      y: builderOpt.position[1]\n    }).setPanels([{\n      panelId: 'pl',\n      clipPath: brushHelper.makeRectPanelClipPath(rect),\n      isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, coordSysModel),\n      getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect, 0)\n    }]).enableBrush({\n      brushType: 'lineX',\n      brushStyle: areaSelectStyle,\n      removeOnClick: true\n    }).updateCovers(getCoverInfoList(axisModel));\n  };\n\n  ParallelAxisView.prototype._onBrush = function (eventParam) {\n    var coverInfoList = eventParam.areas; // Do not cache these object, because the mey be changed.\n\n    var axisModel = this.axisModel;\n    var axis = axisModel.axis;\n    var intervals = zrUtil.map(coverInfoList, function (coverInfo) {\n      return [axis.coordToData(coverInfo.range[0], true), axis.coordToData(coverInfo.range[1], true)];\n    }); // If realtime is true, action is not dispatched on drag end, because\n    // the drag end emits the same params with the last drag move event,\n    // and may have some delay when using touch pad.\n\n    if (!axisModel.option.realtime === eventParam.isEnd || eventParam.removeOnClick) {\n      // jshint ignore:line\n      this.api.dispatchAction({\n        type: 'axisAreaSelect',\n        parallelAxisId: axisModel.id,\n        intervals: intervals\n      });\n    }\n  };\n\n  ParallelAxisView.prototype.dispose = function () {\n    this._brushController.dispose();\n  };\n\n  ParallelAxisView.type = 'parallelAxis';\n  return ParallelAxisView;\n}(ComponentView);\n\nfunction fromAxisAreaSelect(axisModel, ecModel, payload) {\n  return payload && payload.type === 'axisAreaSelect' && ecModel.findComponents({\n    mainType: 'parallelAxis',\n    query: payload\n  })[0] === axisModel;\n}\n\nfunction getCoverInfoList(axisModel) {\n  var axis = axisModel.axis;\n  return zrUtil.map(axisModel.activeIntervals, function (interval) {\n    return {\n      brushType: 'lineX',\n      panelId: 'pl',\n      range: [axis.dataToCoord(interval[0], true), axis.dataToCoord(interval[1], true)]\n    };\n  });\n}\n\nfunction getCoordSysModel(axisModel, ecModel) {\n  return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\n}\n\nexport default ParallelAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar actionInfo = {\n  type: 'axisAreaSelect',\n  event: 'axisAreaSelected' // update: 'updateVisual'\n\n};\nexport function installParallelActions(registers) {\n  registers.registerAction(actionInfo, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'parallelAxis',\n      query: payload\n    }, function (parallelAxisModel) {\n      parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\n    });\n  });\n  /**\n   * @payload\n   */\n\n  registers.registerAction('parallelAxisExpand', function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'parallel',\n      query: payload\n    }, function (parallelModel) {\n      parallelModel.setAxisExpand(payload);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport parallelPreprocessor from '../../coord/parallel/parallelPreprocessor.js';\nimport ParallelView from './ParallelView.js';\nimport ParallelModel from '../../coord/parallel/ParallelModel.js';\nimport parallelCoordSysCreator from '../../coord/parallel/parallelCreator.js';\nimport axisModelCreator from '../../coord/axisModelCreator.js';\nimport ParallelAxisModel from '../../coord/parallel/AxisModel.js';\nimport ParallelAxisView from '../axis/ParallelAxisView.js';\nimport { installParallelActions } from '../axis/parallelAxisAction.js';\nvar defaultAxisOption = {\n  type: 'value',\n  areaSelectStyle: {\n    width: 20,\n    borderWidth: 1,\n    borderColor: 'rgba(160,197,232)',\n    color: 'rgba(160,197,232)',\n    opacity: 0.3\n  },\n  realtime: true,\n  z: 10\n};\nexport function install(registers) {\n  registers.registerComponentView(ParallelView);\n  registers.registerComponentModel(ParallelModel);\n  registers.registerCoordinateSystem('parallel', parallelCoordSysCreator);\n  registers.registerPreprocessor(parallelPreprocessor);\n  registers.registerComponentModel(ParallelAxisModel);\n  registers.registerComponentView(ParallelAxisView);\n  axisModelCreator(registers, 'parallel', ParallelAxisModel, defaultAxisOption);\n  installParallelActions(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport ParallelView from './ParallelView.js';\nimport ParallelSeriesModel from './ParallelSeries.js';\nimport parallelVisual from './parallelVisual.js';\nimport { install as installParallelComponent } from '../../component/parallel/install.js';\nexport function install(registers) {\n  use(installParallelComponent);\n  registers.registerChartView(ParallelView);\n  registers.registerSeriesModel(ParallelSeriesModel);\n  registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, parallelVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport { enterEmphasis, leaveEmphasis, toggleHoverEmphasis, setStatesStylesFromModel } from '../../util/states.js';\nimport ChartView from '../../view/Chart.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { isString } from 'zrender/lib/core/util.js';\n\nvar SankeyPathShape =\n/** @class */\nfunction () {\n  function SankeyPathShape() {\n    this.x1 = 0;\n    this.y1 = 0;\n    this.x2 = 0;\n    this.y2 = 0;\n    this.cpx1 = 0;\n    this.cpy1 = 0;\n    this.cpx2 = 0;\n    this.cpy2 = 0;\n    this.extent = 0;\n  }\n\n  return SankeyPathShape;\n}();\n\nvar SankeyPath =\n/** @class */\nfunction (_super) {\n  __extends(SankeyPath, _super);\n\n  function SankeyPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  SankeyPath.prototype.getDefaultShape = function () {\n    return new SankeyPathShape();\n  };\n\n  SankeyPath.prototype.buildPath = function (ctx, shape) {\n    var extent = shape.extent;\n    ctx.moveTo(shape.x1, shape.y1);\n    ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);\n\n    if (shape.orient === 'vertical') {\n      ctx.lineTo(shape.x2 + extent, shape.y2);\n      ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1);\n    } else {\n      ctx.lineTo(shape.x2, shape.y2 + extent);\n      ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent);\n    }\n\n    ctx.closePath();\n  };\n\n  SankeyPath.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  SankeyPath.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  return SankeyPath;\n}(graphic.Path);\n\nvar SankeyView =\n/** @class */\nfunction (_super) {\n  __extends(SankeyView, _super);\n\n  function SankeyView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SankeyView.type;\n    _this._focusAdjacencyDisabled = false;\n    return _this;\n  }\n\n  SankeyView.prototype.render = function (seriesModel, ecModel, api) {\n    var sankeyView = this;\n    var graph = seriesModel.getGraph();\n    var group = this.group;\n    var layoutInfo = seriesModel.layoutInfo; // view width\n\n    var width = layoutInfo.width; // view height\n\n    var height = layoutInfo.height;\n    var nodeData = seriesModel.getData();\n    var edgeData = seriesModel.getData('edge');\n    var orient = seriesModel.get('orient');\n    this._model = seriesModel;\n    group.removeAll();\n    group.x = layoutInfo.x;\n    group.y = layoutInfo.y; // generate a bezire Curve for each edge\n\n    graph.eachEdge(function (edge) {\n      var curve = new SankeyPath();\n      var ecData = getECData(curve);\n      ecData.dataIndex = edge.dataIndex;\n      ecData.seriesIndex = seriesModel.seriesIndex;\n      ecData.dataType = 'edge';\n      var edgeModel = edge.getModel();\n      var lineStyleModel = edgeModel.getModel('lineStyle');\n      var curvature = lineStyleModel.get('curveness');\n      var n1Layout = edge.node1.getLayout();\n      var node1Model = edge.node1.getModel();\n      var dragX1 = node1Model.get('localX');\n      var dragY1 = node1Model.get('localY');\n      var n2Layout = edge.node2.getLayout();\n      var node2Model = edge.node2.getModel();\n      var dragX2 = node2Model.get('localX');\n      var dragY2 = node2Model.get('localY');\n      var edgeLayout = edge.getLayout();\n      var x1;\n      var y1;\n      var x2;\n      var y2;\n      var cpx1;\n      var cpy1;\n      var cpx2;\n      var cpy2;\n      curve.shape.extent = Math.max(1, edgeLayout.dy);\n      curve.shape.orient = orient;\n\n      if (orient === 'vertical') {\n        x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy;\n        y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy;\n        x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty;\n        y2 = dragY2 != null ? dragY2 * height : n2Layout.y;\n        cpx1 = x1;\n        cpy1 = y1 * (1 - curvature) + y2 * curvature;\n        cpx2 = x2;\n        cpy2 = y1 * curvature + y2 * (1 - curvature);\n      } else {\n        x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;\n        y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy;\n        x2 = dragX2 != null ? dragX2 * width : n2Layout.x;\n        y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty;\n        cpx1 = x1 * (1 - curvature) + x2 * curvature;\n        cpy1 = y1;\n        cpx2 = x1 * curvature + x2 * (1 - curvature);\n        cpy2 = y2;\n      }\n\n      curve.setShape({\n        x1: x1,\n        y1: y1,\n        x2: x2,\n        y2: y2,\n        cpx1: cpx1,\n        cpy1: cpy1,\n        cpx2: cpx2,\n        cpy2: cpy2\n      });\n      curve.useStyle(lineStyleModel.getItemStyle()); // Special color, use source node color or target node color\n\n      switch (curve.style.fill) {\n        case 'source':\n          curve.style.fill = edge.node1.getVisual('color');\n          curve.style.decal = edge.node1.getVisual('style').decal;\n          break;\n\n        case 'target':\n          curve.style.fill = edge.node2.getVisual('color');\n          curve.style.decal = edge.node2.getVisual('style').decal;\n          break;\n\n        case 'gradient':\n          var sourceColor = edge.node1.getVisual('color');\n          var targetColor = edge.node2.getVisual('color');\n\n          if (isString(sourceColor) && isString(targetColor)) {\n            curve.style.fill = new graphic.LinearGradient(0, 0, +(orient === 'horizontal'), +(orient === 'vertical'), [{\n              color: sourceColor,\n              offset: 0\n            }, {\n              color: targetColor,\n              offset: 1\n            }]);\n          }\n\n      }\n\n      var emphasisModel = edgeModel.getModel('emphasis');\n      setStatesStylesFromModel(curve, edgeModel, 'lineStyle', function (model) {\n        return model.getItemStyle();\n      });\n      group.add(curve);\n      edgeData.setItemGraphicEl(edge.dataIndex, curve);\n      var focus = emphasisModel.get('focus');\n      toggleHoverEmphasis(curve, focus === 'adjacency' ? edge.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n      getECData(curve).dataType = 'edge';\n    }); // Generate a rect for each node\n\n    graph.eachNode(function (node) {\n      var layout = node.getLayout();\n      var itemModel = node.getModel();\n      var dragX = itemModel.get('localX');\n      var dragY = itemModel.get('localY');\n      var emphasisModel = itemModel.getModel('emphasis');\n      var rect = new graphic.Rect({\n        shape: {\n          x: dragX != null ? dragX * width : layout.x,\n          y: dragY != null ? dragY * height : layout.y,\n          width: layout.dx,\n          height: layout.dy\n        },\n        style: itemModel.getModel('itemStyle').getItemStyle(),\n        z2: 10\n      });\n      setLabelStyle(rect, getLabelStatesModels(itemModel), {\n        labelFetcher: seriesModel,\n        labelDataIndex: node.dataIndex,\n        defaultText: node.id\n      });\n      rect.disableLabelAnimation = true;\n      rect.setStyle('fill', node.getVisual('color'));\n      rect.setStyle('decal', node.getVisual('style').decal);\n      setStatesStylesFromModel(rect, itemModel);\n      group.add(rect);\n      nodeData.setItemGraphicEl(node.dataIndex, rect);\n      getECData(rect).dataType = 'node';\n      var focus = emphasisModel.get('focus');\n      toggleHoverEmphasis(rect, focus === 'adjacency' ? node.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n    });\n    nodeData.eachItemGraphicEl(function (el, dataIndex) {\n      var itemModel = nodeData.getItemModel(dataIndex);\n\n      if (itemModel.get('draggable')) {\n        el.drift = function (dx, dy) {\n          sankeyView._focusAdjacencyDisabled = true;\n          this.shape.x += dx;\n          this.shape.y += dy;\n          this.dirty();\n          api.dispatchAction({\n            type: 'dragNode',\n            seriesId: seriesModel.id,\n            dataIndex: nodeData.getRawIndex(dataIndex),\n            localX: this.shape.x / width,\n            localY: this.shape.y / height\n          });\n        };\n\n        el.ondragend = function () {\n          sankeyView._focusAdjacencyDisabled = false;\n        };\n\n        el.draggable = true;\n        el.cursor = 'move';\n      }\n    });\n\n    if (!this._data && seriesModel.isAnimationEnabled()) {\n      group.setClipPath(createGridClipShape(group.getBoundingRect(), seriesModel, function () {\n        group.removeClipPath();\n      }));\n    }\n\n    this._data = seriesModel.getData();\n  };\n\n  SankeyView.prototype.dispose = function () {};\n\n  SankeyView.type = 'sankey';\n  return SankeyView;\n}(ChartView); // Add animation to the view\n\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x - 10,\n      y: rect.y - 10,\n      width: 0,\n      height: rect.height + 20\n    }\n  });\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width + 20\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nexport default SankeyView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge.js';\nimport Model from '../../model/Model.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\n\nvar SankeySeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(SankeySeriesModel, _super);\n\n  function SankeySeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SankeySeriesModel.type;\n    return _this;\n  }\n  /**\n   * Init a graph data structure from data in option series\n   */\n\n\n  SankeySeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var links = option.edges || option.links;\n    var nodes = option.data || option.nodes;\n    var levels = option.levels;\n    this.levelModels = [];\n    var levelModels = this.levelModels;\n\n    for (var i = 0; i < levels.length; i++) {\n      if (levels[i].depth != null && levels[i].depth >= 0) {\n        levelModels[levels[i].depth] = new Model(levels[i], this, ecModel);\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          throw new Error('levels[i].depth is mandatory and should be natural number');\n        }\n      }\n    }\n\n    if (nodes && links) {\n      var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink);\n      return graph.data;\n    }\n\n    function beforeLink(nodeData, edgeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var seriesModel = model.parentModel;\n        var layout = seriesModel.getData().getItemLayout(idx);\n\n        if (layout) {\n          var nodeDepth = layout.depth;\n          var levelModel = seriesModel.levelModels[nodeDepth];\n\n          if (levelModel) {\n            model.parentModel = levelModel;\n          }\n        }\n\n        return model;\n      });\n      edgeData.wrapMethod('getItemModel', function (model, idx) {\n        var seriesModel = model.parentModel;\n        var edge = seriesModel.getGraph().getEdgeByIndex(idx);\n        var layout = edge.node1.getLayout();\n\n        if (layout) {\n          var depth = layout.depth;\n          var levelModel = seriesModel.levelModels[depth];\n\n          if (levelModel) {\n            model.parentModel = levelModel;\n          }\n        }\n\n        return model;\n      });\n    }\n  };\n\n  SankeySeriesModel.prototype.setNodePosition = function (dataIndex, localPosition) {\n    var nodes = this.option.data || this.option.nodes;\n    var dataItem = nodes[dataIndex];\n    dataItem.localX = localPosition[0];\n    dataItem.localY = localPosition[1];\n  };\n  /**\n   * Return the graphic data structure\n   *\n   * @return graphic data structure\n   */\n\n\n  SankeySeriesModel.prototype.getGraph = function () {\n    return this.getData().graph;\n  };\n  /**\n   * Get edge data of graphic data structure\n   *\n   * @return data structure of list\n   */\n\n\n  SankeySeriesModel.prototype.getEdgeData = function () {\n    return this.getGraph().edgeData;\n  };\n\n  SankeySeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    function noValue(val) {\n      return isNaN(val) || val == null;\n    } // dataType === 'node' or empty do not show tooltip by default\n\n\n    if (dataType === 'edge') {\n      var params = this.getDataParams(dataIndex, dataType);\n      var rawDataOpt = params.data;\n      var edgeValue = params.value;\n      var edgeName = rawDataOpt.source + ' -- ' + rawDataOpt.target;\n      return createTooltipMarkup('nameValue', {\n        name: edgeName,\n        value: edgeValue,\n        noValue: noValue(edgeValue)\n      });\n    } // dataType === 'node'\n    else {\n        var node = this.getGraph().getNodeByIndex(dataIndex);\n        var value = node.getLayout().value;\n        var name_1 = this.getDataParams(dataIndex, dataType).data.name;\n        return createTooltipMarkup('nameValue', {\n          name: name_1 != null ? name_1 + '' : null,\n          value: value,\n          noValue: noValue(value)\n        });\n      }\n  };\n\n  SankeySeriesModel.prototype.optionUpdated = function () {}; // Override Series.getDataParams()\n\n\n  SankeySeriesModel.prototype.getDataParams = function (dataIndex, dataType) {\n    var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n    if (params.value == null && dataType === 'node') {\n      var node = this.getGraph().getNodeByIndex(dataIndex);\n      var nodeValue = node.getLayout().value;\n      params.value = nodeValue;\n    }\n\n    return params;\n  };\n\n  SankeySeriesModel.type = 'series.sankey';\n  SankeySeriesModel.defaultOption = {\n    // zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    left: '5%',\n    top: '5%',\n    right: '20%',\n    bottom: '5%',\n    orient: 'horizontal',\n    nodeWidth: 20,\n    nodeGap: 8,\n    draggable: true,\n    layoutIterations: 32,\n    label: {\n      show: true,\n      position: 'right',\n      fontSize: 12\n    },\n    levels: [],\n    nodeAlign: 'justify',\n    lineStyle: {\n      color: '#314656',\n      opacity: 0.2,\n      curveness: 0.5\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        opacity: 0.5\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    animationEasing: 'linear',\n    animationDuration: 1000\n  };\n  return SankeySeriesModel;\n}(SeriesModel);\n\nexport default SankeySeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as layout from '../../util/layout.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { groupData } from '../../util/model.js';\nexport default function sankeyLayout(ecModel, api) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var nodeWidth = seriesModel.get('nodeWidth');\n    var nodeGap = seriesModel.get('nodeGap');\n    var layoutInfo = getViewRect(seriesModel, api);\n    seriesModel.layoutInfo = layoutInfo;\n    var width = layoutInfo.width;\n    var height = layoutInfo.height;\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n    var edges = graph.edges;\n    computeNodeValues(nodes);\n    var filteredNodes = zrUtil.filter(nodes, function (node) {\n      return node.getLayout().value === 0;\n    });\n    var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations');\n    var orient = seriesModel.get('orient');\n    var nodeAlign = seriesModel.get('nodeAlign');\n    layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign);\n  });\n}\n/**\n * Get the layout position of the whole view\n */\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) {\n  computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign);\n  computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient);\n  computeEdgeDepths(nodes, orient);\n}\n/**\n * Compute the value of each node by summing the associated edge's value\n */\n\n\nfunction computeNodeValues(nodes) {\n  zrUtil.each(nodes, function (node) {\n    var value1 = sum(node.outEdges, getEdgeValue);\n    var value2 = sum(node.inEdges, getEdgeValue);\n    var nodeRawValue = node.getValue() || 0;\n    var value = Math.max(value1, value2, nodeRawValue);\n    node.setLayout({\n      value: value\n    }, true);\n  });\n}\n/**\n * Compute the x-position for each node.\n *\n * Here we use Kahn algorithm to detect cycle when we traverse\n * the node to computer the initial x position.\n */\n\n\nfunction computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) {\n  // Used to mark whether the edge is deleted. if it is deleted,\n  // the value is 0, otherwise it is 1.\n  var remainEdges = []; // Storage each node's indegree.\n\n  var indegreeArr = []; //Used to storage the node with indegree is equal to 0.\n\n  var zeroIndegrees = [];\n  var nextTargetNode = [];\n  var x = 0; // let kx = 0;\n\n  for (var i = 0; i < edges.length; i++) {\n    remainEdges[i] = 1;\n  }\n\n  for (var i = 0; i < nodes.length; i++) {\n    indegreeArr[i] = nodes[i].inEdges.length;\n\n    if (indegreeArr[i] === 0) {\n      zeroIndegrees.push(nodes[i]);\n    }\n  }\n\n  var maxNodeDepth = -1; // Traversing nodes using topological sorting to calculate the\n  // horizontal(if orient === 'horizontal') or vertical(if orient === 'vertical')\n  // position of the nodes.\n\n  while (zeroIndegrees.length) {\n    for (var idx = 0; idx < zeroIndegrees.length; idx++) {\n      var node = zeroIndegrees[idx];\n      var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n      var isItemDepth = item.depth != null && item.depth >= 0;\n\n      if (isItemDepth && item.depth > maxNodeDepth) {\n        maxNodeDepth = item.depth;\n      }\n\n      node.setLayout({\n        depth: isItemDepth ? item.depth : x\n      }, true);\n      orient === 'vertical' ? node.setLayout({\n        dy: nodeWidth\n      }, true) : node.setLayout({\n        dx: nodeWidth\n      }, true);\n\n      for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) {\n        var edge = node.outEdges[edgeIdx];\n        var indexEdge = edges.indexOf(edge);\n        remainEdges[indexEdge] = 0;\n        var targetNode = edge.node2;\n        var nodeIndex = nodes.indexOf(targetNode);\n\n        if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) {\n          nextTargetNode.push(targetNode);\n        }\n      }\n    }\n\n    ++x;\n    zeroIndegrees = nextTargetNode;\n    nextTargetNode = [];\n  }\n\n  for (var i = 0; i < remainEdges.length; i++) {\n    if (remainEdges[i] === 1) {\n      throw new Error('Sankey is a DAG, the original data has cycle!');\n    }\n  }\n\n  var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1;\n\n  if (nodeAlign && nodeAlign !== 'left') {\n    adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth);\n  }\n\n  var kx = orient === 'vertical' ? (height - nodeWidth) / maxDepth : (width - nodeWidth) / maxDepth;\n  scaleNodeBreadths(nodes, kx, orient);\n}\n\nfunction isNodeDepth(node) {\n  var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n  return item.depth != null && item.depth >= 0;\n}\n\nfunction adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) {\n  if (nodeAlign === 'right') {\n    var nextSourceNode = [];\n    var remainNodes = nodes;\n    var nodeHeight = 0;\n\n    while (remainNodes.length) {\n      for (var i = 0; i < remainNodes.length; i++) {\n        var node = remainNodes[i];\n        node.setLayout({\n          skNodeHeight: nodeHeight\n        }, true);\n\n        for (var j = 0; j < node.inEdges.length; j++) {\n          var edge = node.inEdges[j];\n\n          if (nextSourceNode.indexOf(edge.node1) < 0) {\n            nextSourceNode.push(edge.node1);\n          }\n        }\n      }\n\n      remainNodes = nextSourceNode;\n      nextSourceNode = [];\n      ++nodeHeight;\n    }\n\n    zrUtil.each(nodes, function (node) {\n      if (!isNodeDepth(node)) {\n        node.setLayout({\n          depth: Math.max(0, maxDepth - node.getLayout().skNodeHeight)\n        }, true);\n      }\n    });\n  } else if (nodeAlign === 'justify') {\n    moveSinksRight(nodes, maxDepth);\n  }\n}\n/**\n * All the node without outEgdes are assigned maximum x-position and\n *     be aligned in the last column.\n *\n * @param nodes.  node of sankey view.\n * @param maxDepth.  use to assign to node without outEdges as x-position.\n */\n\n\nfunction moveSinksRight(nodes, maxDepth) {\n  zrUtil.each(nodes, function (node) {\n    if (!isNodeDepth(node) && !node.outEdges.length) {\n      node.setLayout({\n        depth: maxDepth\n      }, true);\n    }\n  });\n}\n/**\n * Scale node x-position to the width\n *\n * @param nodes  node of sankey view\n * @param kx   multiple used to scale nodes\n */\n\n\nfunction scaleNodeBreadths(nodes, kx, orient) {\n  zrUtil.each(nodes, function (node) {\n    var nodeDepth = node.getLayout().depth * kx;\n    orient === 'vertical' ? node.setLayout({\n      y: nodeDepth\n    }, true) : node.setLayout({\n      x: nodeDepth\n    }, true);\n  });\n}\n/**\n * Using Gauss-Seidel iterations method to compute the node depth(y-position)\n *\n * @param nodes  node of sankey view\n * @param edges  edge of sankey view\n * @param height  the whole height of the area to draw the view\n * @param nodeGap  the vertical distance between two nodes\n *     in the same column.\n * @param iterations  the number of iterations for the algorithm\n */\n\n\nfunction computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {\n  var nodesByBreadth = prepareNodesByBreadth(nodes, orient);\n  initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient);\n  resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n\n  for (var alpha = 1; iterations > 0; iterations--) {\n    // 0.99 is a experience parameter, ensure that each iterations of\n    // changes as small as possible.\n    alpha *= 0.99;\n    relaxRightToLeft(nodesByBreadth, alpha, orient);\n    resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n    relaxLeftToRight(nodesByBreadth, alpha, orient);\n    resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n  }\n}\n\nfunction prepareNodesByBreadth(nodes, orient) {\n  var nodesByBreadth = [];\n  var keyAttr = orient === 'vertical' ? 'y' : 'x';\n  var groupResult = groupData(nodes, function (node) {\n    return node.getLayout()[keyAttr];\n  });\n  groupResult.keys.sort(function (a, b) {\n    return a - b;\n  });\n  zrUtil.each(groupResult.keys, function (key) {\n    nodesByBreadth.push(groupResult.buckets.get(key));\n  });\n  return nodesByBreadth;\n}\n/**\n * Compute the original y-position for each node\n */\n\n\nfunction initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) {\n  var minKy = Infinity;\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    var n = nodes.length;\n    var sum = 0;\n    zrUtil.each(nodes, function (node) {\n      sum += node.getLayout().value;\n    });\n    var ky = orient === 'vertical' ? (width - (n - 1) * nodeGap) / sum : (height - (n - 1) * nodeGap) / sum;\n\n    if (ky < minKy) {\n      minKy = ky;\n    }\n  });\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node, i) {\n      var nodeDy = node.getLayout().value * minKy;\n\n      if (orient === 'vertical') {\n        node.setLayout({\n          x: i\n        }, true);\n        node.setLayout({\n          dx: nodeDy\n        }, true);\n      } else {\n        node.setLayout({\n          y: i\n        }, true);\n        node.setLayout({\n          dy: nodeDy\n        }, true);\n      }\n    });\n  });\n  zrUtil.each(edges, function (edge) {\n    var edgeDy = +edge.getValue() * minKy;\n    edge.setLayout({\n      dy: edgeDy\n    }, true);\n  });\n}\n/**\n * Resolve the collision of initialized depth (y-position)\n */\n\n\nfunction resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) {\n  var keyAttr = orient === 'vertical' ? 'x' : 'y';\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    nodes.sort(function (a, b) {\n      return a.getLayout()[keyAttr] - b.getLayout()[keyAttr];\n    });\n    var nodeX;\n    var node;\n    var dy;\n    var y0 = 0;\n    var n = nodes.length;\n    var nodeDyAttr = orient === 'vertical' ? 'dx' : 'dy';\n\n    for (var i = 0; i < n; i++) {\n      node = nodes[i];\n      dy = y0 - node.getLayout()[keyAttr];\n\n      if (dy > 0) {\n        nodeX = node.getLayout()[keyAttr] + dy;\n        orient === 'vertical' ? node.setLayout({\n          x: nodeX\n        }, true) : node.setLayout({\n          y: nodeX\n        }, true);\n      }\n\n      y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap;\n    }\n\n    var viewWidth = orient === 'vertical' ? width : height; // If the bottommost node goes outside the bounds, push it back up\n\n    dy = y0 - nodeGap - viewWidth;\n\n    if (dy > 0) {\n      nodeX = node.getLayout()[keyAttr] - dy;\n      orient === 'vertical' ? node.setLayout({\n        x: nodeX\n      }, true) : node.setLayout({\n        y: nodeX\n      }, true);\n      y0 = nodeX;\n\n      for (var i = n - 2; i >= 0; --i) {\n        node = nodes[i];\n        dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0;\n\n        if (dy > 0) {\n          nodeX = node.getLayout()[keyAttr] - dy;\n          orient === 'vertical' ? node.setLayout({\n            x: nodeX\n          }, true) : node.setLayout({\n            y: nodeX\n          }, true);\n        }\n\n        y0 = node.getLayout()[keyAttr];\n      }\n    }\n  });\n}\n/**\n * Change the y-position of the nodes, except most the right side nodes\n * @param nodesByBreadth\n * @param alpha  parameter used to adjust the nodes y-position\n */\n\n\nfunction relaxRightToLeft(nodesByBreadth, alpha, orient) {\n  zrUtil.each(nodesByBreadth.slice().reverse(), function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.outEdges.length) {\n        var y = sum(node.outEdges, weightedTarget, orient) / sum(node.outEdges, getEdgeValue);\n\n        if (isNaN(y)) {\n          var len = node.outEdges.length;\n          y = len ? sum(node.outEdges, centerTarget, orient) / len : 0;\n        }\n\n        if (orient === 'vertical') {\n          var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            x: nodeX\n          }, true);\n        } else {\n          var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            y: nodeY\n          }, true);\n        }\n      }\n    });\n  });\n}\n\nfunction weightedTarget(edge, orient) {\n  return center(edge.node2, orient) * edge.getValue();\n}\n\nfunction centerTarget(edge, orient) {\n  return center(edge.node2, orient);\n}\n\nfunction weightedSource(edge, orient) {\n  return center(edge.node1, orient) * edge.getValue();\n}\n\nfunction centerSource(edge, orient) {\n  return center(edge.node1, orient);\n}\n\nfunction center(node, orient) {\n  return orient === 'vertical' ? node.getLayout().x + node.getLayout().dx / 2 : node.getLayout().y + node.getLayout().dy / 2;\n}\n\nfunction getEdgeValue(edge) {\n  return edge.getValue();\n}\n\nfunction sum(array, cb, orient) {\n  var sum = 0;\n  var len = array.length;\n  var i = -1;\n\n  while (++i < len) {\n    var value = +cb(array[i], orient);\n\n    if (!isNaN(value)) {\n      sum += value;\n    }\n  }\n\n  return sum;\n}\n/**\n * Change the y-position of the nodes, except most the left side nodes\n */\n\n\nfunction relaxLeftToRight(nodesByBreadth, alpha, orient) {\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.inEdges.length) {\n        var y = sum(node.inEdges, weightedSource, orient) / sum(node.inEdges, getEdgeValue);\n\n        if (isNaN(y)) {\n          var len = node.inEdges.length;\n          y = len ? sum(node.inEdges, centerSource, orient) / len : 0;\n        }\n\n        if (orient === 'vertical') {\n          var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            x: nodeX\n          }, true);\n        } else {\n          var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            y: nodeY\n          }, true);\n        }\n      }\n    });\n  });\n}\n/**\n * Compute the depth(y-position) of each edge\n */\n\n\nfunction computeEdgeDepths(nodes, orient) {\n  var keyAttr = orient === 'vertical' ? 'x' : 'y';\n  zrUtil.each(nodes, function (node) {\n    node.outEdges.sort(function (a, b) {\n      return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr];\n    });\n    node.inEdges.sort(function (a, b) {\n      return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr];\n    });\n  });\n  zrUtil.each(nodes, function (node) {\n    var sy = 0;\n    var ty = 0;\n    zrUtil.each(node.outEdges, function (edge) {\n      edge.setLayout({\n        sy: sy\n      }, true);\n      sy += edge.getLayout().dy;\n    });\n    zrUtil.each(node.inEdges, function (edge) {\n      edge.setLayout({\n        ty: ty\n      }, true);\n      ty += edge.getLayout().dy;\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nexport default function sankeyVisual(ecModel) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n\n    if (nodes.length) {\n      var minValue_1 = Infinity;\n      var maxValue_1 = -Infinity;\n      zrUtil.each(nodes, function (node) {\n        var nodeValue = node.getLayout().value;\n\n        if (nodeValue < minValue_1) {\n          minValue_1 = nodeValue;\n        }\n\n        if (nodeValue > maxValue_1) {\n          maxValue_1 = nodeValue;\n        }\n      });\n      zrUtil.each(nodes, function (node) {\n        var mapping = new VisualMapping({\n          type: 'color',\n          mappingMethod: 'linear',\n          dataExtent: [minValue_1, maxValue_1],\n          visual: seriesModel.get('color')\n        });\n        var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n        var customColor = node.getModel().get(['itemStyle', 'color']);\n\n        if (customColor != null) {\n          node.setVisual('color', customColor);\n          node.setVisual('style', {\n            fill: customColor\n          });\n        } else {\n          node.setVisual('color', mapValueToColor);\n          node.setVisual('style', {\n            fill: mapValueToColor\n          });\n        }\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport SankeyView from './SankeyView.js';\nimport SankeySeriesModel from './SankeySeries.js';\nimport sankeyLayout from './sankeyLayout.js';\nimport sankeyVisual from './sankeyVisual.js';\nexport function install(registers) {\n  registers.registerChartView(SankeyView);\n  registers.registerSeriesModel(SankeySeriesModel);\n  registers.registerLayout(sankeyLayout);\n  registers.registerVisual(sankeyVisual);\n  registers.registerAction({\n    type: 'dragNode',\n    event: 'dragnode',\n    // here can only use 'update' now, other value is not support in echarts.\n    update: 'update'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sankey',\n      query: payload\n    }, function (seriesModel) {\n      seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport createSeriesDataSimply from './createSeriesDataSimply.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper.js';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper.js';\n\nvar WhiskerBoxCommonMixin =\n/** @class */\nfunction () {\n  function WhiskerBoxCommonMixin() {}\n  /**\n   * @override\n   */\n\n\n  WhiskerBoxCommonMixin.prototype.getInitialData = function (option, ecModel) {\n    // When both types of xAxis and yAxis are 'value', layout is\n    // needed to be specified by user. Otherwise, layout can be\n    // judged by which axis is category.\n    var ordinalMeta;\n    var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex'));\n    var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex'));\n    var xAxisType = xAxisModel.get('type');\n    var yAxisType = yAxisModel.get('type');\n    var addOrdinal; // FIXME\n    // Consider time axis.\n\n    if (xAxisType === 'category') {\n      option.layout = 'horizontal';\n      ordinalMeta = xAxisModel.getOrdinalMeta();\n      addOrdinal = true;\n    } else if (yAxisType === 'category') {\n      option.layout = 'vertical';\n      ordinalMeta = yAxisModel.getOrdinalMeta();\n      addOrdinal = true;\n    } else {\n      option.layout = option.layout || 'horizontal';\n    }\n\n    var coordDims = ['x', 'y'];\n    var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;\n    var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];\n    var otherAxisDim = coordDims[1 - baseAxisDimIndex];\n    var axisModels = [xAxisModel, yAxisModel];\n    var baseAxisType = axisModels[baseAxisDimIndex].get('type');\n    var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type');\n    var data = option.data; // Clone a new data for next setOption({}) usage.\n    // Avoid modifying current data will affect further update.\n\n    if (data && addOrdinal) {\n      var newOptionData_1 = [];\n      zrUtil.each(data, function (item, index) {\n        var newItem;\n\n        if (zrUtil.isArray(item)) {\n          newItem = item.slice(); // Modify current using data.\n\n          item.unshift(index);\n        } else if (zrUtil.isArray(item.value)) {\n          newItem = zrUtil.extend({}, item);\n          newItem.value = newItem.value.slice(); // Modify current using data.\n\n          item.value.unshift(index);\n        } else {\n          newItem = item;\n        }\n\n        newOptionData_1.push(newItem);\n      });\n      option.data = newOptionData_1;\n    }\n\n    var defaultValueDimensions = this.defaultValueDimensions;\n    var coordDimensions = [{\n      name: baseAxisDim,\n      type: getDimensionTypeByAxis(baseAxisType),\n      ordinalMeta: ordinalMeta,\n      otherDims: {\n        tooltip: false,\n        itemName: 0\n      },\n      dimsDef: ['base']\n    }, {\n      name: otherAxisDim,\n      type: getDimensionTypeByAxis(otherAxisType),\n      dimsDef: defaultValueDimensions.slice()\n    }];\n    return createSeriesDataSimply(this, {\n      coordDimensions: coordDimensions,\n      dimensionsCount: defaultValueDimensions.length + 1,\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)\n    });\n  };\n  /**\n   * If horizontal, base axis is x, otherwise y.\n   * @override\n   */\n\n\n  WhiskerBoxCommonMixin.prototype.getBaseAxis = function () {\n    var dim = this._baseAxisDim;\n    return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;\n  };\n\n  return WhiskerBoxCommonMixin;\n}();\n\n;\nexport { WhiskerBoxCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon.js';\nimport { mixin } from 'zrender/lib/core/util.js';\n\nvar BoxplotSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(BoxplotSeriesModel, _super);\n\n  function BoxplotSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BoxplotSeriesModel.type; // TODO\n    // box width represents group size, so dimension should have 'size'.\n\n    /**\n     * @see <https://en.wikipedia.org/wiki/Box_plot>\n     * The meanings of 'min' and 'max' depend on user,\n     * and echarts do not need to know it.\n     * @readOnly\n     */\n\n    _this.defaultValueDimensions = [{\n      name: 'min',\n      defaultTooltip: true\n    }, {\n      name: 'Q1',\n      defaultTooltip: true\n    }, {\n      name: 'median',\n      defaultTooltip: true\n    }, {\n      name: 'Q3',\n      defaultTooltip: true\n    }, {\n      name: 'max',\n      defaultTooltip: true\n    }];\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  BoxplotSeriesModel.type = 'series.boxplot';\n  BoxplotSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n  BoxplotSeriesModel.defaultOption = {\n    // zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    layout: null,\n    boxWidth: [7, 50],\n    itemStyle: {\n      color: '#fff',\n      borderWidth: 1\n    },\n    emphasis: {\n      scale: true,\n      itemStyle: {\n        borderWidth: 2,\n        shadowBlur: 5,\n        shadowOffsetX: 1,\n        shadowOffsetY: 1,\n        shadowColor: 'rgba(0,0,0,0.2)'\n      }\n    },\n    animationDuration: 800\n  };\n  return BoxplotSeriesModel;\n}(SeriesModel);\n\nmixin(BoxplotSeriesModel, WhiskerBoxCommonMixin, true);\nexport default BoxplotSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ChartView from '../../view/Chart.js';\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport Path from 'zrender/lib/graphic/Path.js';\nimport { saveOldStyle } from '../../animation/basicTrasition.js';\n\nvar BoxplotView =\n/** @class */\nfunction (_super) {\n  __extends(BoxplotView, _super);\n\n  function BoxplotView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BoxplotView.type;\n    return _this;\n  }\n\n  BoxplotView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var group = this.group;\n    var oldData = this._data; // There is no old data only when first rendering or switching from\n    // stream mode to normal mode, where previous elements should be removed.\n\n    if (!this._data) {\n      group.removeAll();\n    }\n\n    var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\n    data.diff(oldData).add(function (newIdx) {\n      if (data.hasValue(newIdx)) {\n        var itemLayout = data.getItemLayout(newIdx);\n        var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx); // Empty data\n\n      if (!data.hasValue(newIdx)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      var itemLayout = data.getItemLayout(newIdx);\n\n      if (!symbolEl) {\n        symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\n      } else {\n        saveOldStyle(symbolEl);\n        updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && group.remove(el);\n    }).execute();\n    this._data = data;\n  };\n\n  BoxplotView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var data = this._data;\n    this._data = null;\n    data && data.eachItemGraphicEl(function (el) {\n      el && group.remove(el);\n    });\n  };\n\n  BoxplotView.type = 'boxplot';\n  return BoxplotView;\n}(ChartView);\n\nvar BoxPathShape =\n/** @class */\nfunction () {\n  function BoxPathShape() {}\n\n  return BoxPathShape;\n}();\n\nvar BoxPath =\n/** @class */\nfunction (_super) {\n  __extends(BoxPath, _super);\n\n  function BoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'boxplotBoxPath';\n    return _this;\n  }\n\n  BoxPath.prototype.getDefaultShape = function () {\n    return new BoxPathShape();\n  };\n\n  BoxPath.prototype.buildPath = function (ctx, shape) {\n    var ends = shape.points;\n    var i = 0;\n    ctx.moveTo(ends[i][0], ends[i][1]);\n    i++;\n\n    for (; i < 4; i++) {\n      ctx.lineTo(ends[i][0], ends[i][1]);\n    }\n\n    ctx.closePath();\n\n    for (; i < ends.length; i++) {\n      ctx.moveTo(ends[i][0], ends[i][1]);\n      i++;\n      ctx.lineTo(ends[i][0], ends[i][1]);\n    }\n  };\n\n  return BoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\n  var ends = itemLayout.ends;\n  var el = new BoxPath({\n    shape: {\n      points: isInit ? transInit(ends, constDim, itemLayout) : ends\n    }\n  });\n  updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\n  return el;\n}\n\nfunction updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\n  var seriesModel = data.hostModel;\n  var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\n  updateMethod(el, {\n    shape: {\n      points: itemLayout.ends\n    }\n  }, seriesModel, dataIndex);\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.strokeNoScale = true;\n  el.z2 = 100;\n  var itemModel = data.getItemModel(dataIndex);\n  var emphasisModel = itemModel.getModel('emphasis');\n  setStatesStylesFromModel(el, itemModel);\n  toggleHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n}\n\nfunction transInit(points, dim, itemLayout) {\n  return zrUtil.map(points, function (point) {\n    point = point.slice();\n    point[dim] = itemLayout.initBaseline;\n    return point;\n  });\n}\n\nexport default BoxplotView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport default function boxplotVisual(ecModel, api) {}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { parsePercent } from '../../util/number.js';\nvar each = zrUtil.each;\nexport default function boxplotLayout(ecModel) {\n  var groupResult = groupSeriesByAxis(ecModel);\n  each(groupResult, function (groupItem) {\n    var seriesModels = groupItem.seriesModels;\n\n    if (!seriesModels.length) {\n      return;\n    }\n\n    calculateBase(groupItem);\n    each(seriesModels, function (seriesModel, idx) {\n      layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\n    });\n  });\n}\n/**\n * Group series by axis.\n */\n\nfunction groupSeriesByAxis(ecModel) {\n  var result = [];\n  var axisList = [];\n  ecModel.eachSeriesByType('boxplot', function (seriesModel) {\n    var baseAxis = seriesModel.getBaseAxis();\n    var idx = zrUtil.indexOf(axisList, baseAxis);\n\n    if (idx < 0) {\n      idx = axisList.length;\n      axisList[idx] = baseAxis;\n      result[idx] = {\n        axis: baseAxis,\n        seriesModels: []\n      };\n    }\n\n    result[idx].seriesModels.push(seriesModel);\n  });\n  return result;\n}\n/**\n * Calculate offset and box width for each series.\n */\n\n\nfunction calculateBase(groupItem) {\n  var baseAxis = groupItem.axis;\n  var seriesModels = groupItem.seriesModels;\n  var seriesCount = seriesModels.length;\n  var boxWidthList = groupItem.boxWidthList = [];\n  var boxOffsetList = groupItem.boxOffsetList = [];\n  var boundList = [];\n  var bandWidth;\n\n  if (baseAxis.type === 'category') {\n    bandWidth = baseAxis.getBandWidth();\n  } else {\n    var maxDataCount_1 = 0;\n    each(seriesModels, function (seriesModel) {\n      maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count());\n    });\n    var extent = baseAxis.getExtent();\n    bandWidth = Math.abs(extent[1] - extent[0]) / maxDataCount_1;\n  }\n\n  each(seriesModels, function (seriesModel) {\n    var boxWidthBound = seriesModel.get('boxWidth');\n\n    if (!zrUtil.isArray(boxWidthBound)) {\n      boxWidthBound = [boxWidthBound, boxWidthBound];\n    }\n\n    boundList.push([parsePercent(boxWidthBound[0], bandWidth) || 0, parsePercent(boxWidthBound[1], bandWidth) || 0]);\n  });\n  var availableWidth = bandWidth * 0.8 - 2;\n  var boxGap = availableWidth / seriesCount * 0.3;\n  var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\n  var base = boxWidth / 2 - availableWidth / 2;\n  each(seriesModels, function (seriesModel, idx) {\n    boxOffsetList.push(base);\n    base += boxGap + boxWidth;\n    boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\n  });\n}\n/**\n * Calculate points location for each series.\n */\n\n\nfunction layoutSingleSeries(seriesModel, offset, boxWidth) {\n  var coordSys = seriesModel.coordinateSystem;\n  var data = seriesModel.getData();\n  var halfWidth = boxWidth / 2;\n  var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\n  var vDimIdx = 1 - cDimIdx;\n  var coordDims = ['x', 'y'];\n  var cDim = data.mapDimension(coordDims[cDimIdx]);\n  var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n\n  if (cDim == null || vDims.length < 5) {\n    return;\n  }\n\n  for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n    var axisDimVal = data.get(cDim, dataIndex);\n    var median = getPoint(axisDimVal, vDims[2], dataIndex);\n    var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\n    var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\n    var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\n    var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\n    var ends = [];\n    addBodyEnd(ends, end2, false);\n    addBodyEnd(ends, end4, true);\n    ends.push(end1, end2, end5, end4);\n    layEndLine(ends, end1);\n    layEndLine(ends, end5);\n    layEndLine(ends, median);\n    data.setItemLayout(dataIndex, {\n      initBaseline: median[vDimIdx],\n      ends: ends\n    });\n  }\n\n  function getPoint(axisDimVal, dim, dataIndex) {\n    var val = data.get(dim, dataIndex);\n    var p = [];\n    p[cDimIdx] = axisDimVal;\n    p[vDimIdx] = val;\n    var point;\n\n    if (isNaN(axisDimVal) || isNaN(val)) {\n      point = [NaN, NaN];\n    } else {\n      point = coordSys.dataToPoint(p);\n      point[cDimIdx] += offset;\n    }\n\n    return point;\n  }\n\n  function addBodyEnd(ends, point, start) {\n    var point1 = point.slice();\n    var point2 = point.slice();\n    point1[cDimIdx] += halfWidth;\n    point2[cDimIdx] -= halfWidth;\n    start ? ends.push(point1, point2) : ends.push(point2, point1);\n  }\n\n  function layEndLine(ends, endCenter) {\n    var from = endCenter.slice();\n    var to = endCenter.slice();\n    from[cDimIdx] -= halfWidth;\n    to[cDimIdx] += halfWidth;\n    ends.push(from, to);\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { quantile, asc } from '../../util/number.js';\nimport { isFunction, isString } from 'zrender/lib/core/util.js';\n/**\n * See:\n *  <https://en.wikipedia.org/wiki/Box_plot#cite_note-frigge_hoaglin_iglewicz-2>\n *  <http://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/boxplot.stats.html>\n *\n * Helper method for preparing data.\n *\n * @param rawData like\n *        [\n *            [12,232,443], (raw data set for the first box)\n *            [3843,5545,1232], (raw data set for the second box)\n *            ...\n *        ]\n * @param opt.boundIQR=1.5 Data less than min bound is outlier.\n *      default 1.5, means Q1 - 1.5 * (Q3 - Q1).\n *      If 'none'/0 passed, min bound will not be used.\n */\n\nexport default function prepareBoxplotData(rawData, opt) {\n  opt = opt || {};\n  var boxData = [];\n  var outliers = [];\n  var boundIQR = opt.boundIQR;\n  var useExtreme = boundIQR === 'none' || boundIQR === 0;\n\n  for (var i = 0; i < rawData.length; i++) {\n    var ascList = asc(rawData[i].slice());\n    var Q1 = quantile(ascList, 0.25);\n    var Q2 = quantile(ascList, 0.5);\n    var Q3 = quantile(ascList, 0.75);\n    var min = ascList[0];\n    var max = ascList[ascList.length - 1];\n    var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);\n    var low = useExtreme ? min : Math.max(min, Q1 - bound);\n    var high = useExtreme ? max : Math.min(max, Q3 + bound);\n    var itemNameFormatter = opt.itemNameFormatter;\n    var itemName = isFunction(itemNameFormatter) ? itemNameFormatter({\n      value: i\n    }) : isString(itemNameFormatter) ? itemNameFormatter.replace('{value}', i + '') : i + '';\n    boxData.push([itemName, low, Q1, Q2, Q3, high]);\n\n    for (var j = 0; j < ascList.length; j++) {\n      var dataItem = ascList[j];\n\n      if (dataItem < low || dataItem > high) {\n        var outlier = [itemName, dataItem];\n        outliers.push(outlier);\n      }\n    }\n  }\n\n  return {\n    boxData: boxData,\n    outliers: outliers\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport prepareBoxplotData from './prepareBoxplotData.js';\nimport { throwError, makePrintable } from '../../util/log.js';\nimport { SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types.js';\nexport var boxplotTransform = {\n  type: 'echarts:boxplot',\n  transform: function transform(params) {\n    var upstream = params.upstream;\n\n    if (upstream.sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('source data is not applicable for this boxplot transform. Expect number[][].');\n      }\n\n      throwError(errMsg);\n    }\n\n    var result = prepareBoxplotData(upstream.getRawData(), params.config);\n    return [{\n      dimensions: ['ItemName', 'Low', 'Q1', 'Q2', 'Q3', 'High'],\n      data: result.boxData\n    }, {\n      data: result.outliers\n    }];\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport BoxplotSeriesModel from './BoxplotSeries.js';\nimport BoxplotView from './BoxplotView.js';\nimport boxplotVisual from './boxplotVisual.js';\nimport boxplotLayout from './boxplotLayout.js';\nimport { boxplotTransform } from './boxplotTransform.js';\nexport function install(registers) {\n  registers.registerSeriesModel(BoxplotSeriesModel);\n  registers.registerChartView(BoxplotView);\n  registers.registerVisual(boxplotVisual);\n  registers.registerLayout(boxplotLayout);\n  registers.registerTransform(boxplotTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ChartView from '../../view/Chart.js';\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel } from '../../util/states.js';\nimport Path from 'zrender/lib/graphic/Path.js';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys.js';\nimport { saveOldStyle } from '../../animation/basicTrasition.js';\nvar SKIP_PROPS = ['color', 'borderColor'];\n\nvar CandlestickView =\n/** @class */\nfunction (_super) {\n  __extends(CandlestickView, _super);\n\n  function CandlestickView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CandlestickView.type;\n    return _this;\n  }\n\n  CandlestickView.prototype.render = function (seriesModel, ecModel, api) {\n    // If there is clipPath created in large mode. Remove it.\n    this.group.removeClipPath(); // Clear previously rendered progressive elements.\n\n    this._progressiveEls = null;\n\n    this._updateDrawMode(seriesModel);\n\n    this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);\n  };\n\n  CandlestickView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n  };\n\n  CandlestickView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n    this._progressiveEls = [];\n    this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);\n  };\n\n  CandlestickView.prototype.eachRendered = function (cb) {\n    graphic.traverseElements(this._progressiveEls || this.group, cb);\n  };\n\n  CandlestickView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  CandlestickView.prototype._renderNormal = function (seriesModel) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var isSimpleBox = data.getLayout('isSimpleBox');\n    var needsClip = seriesModel.get('clip', true);\n    var coord = seriesModel.coordinateSystem;\n    var clipArea = coord.getArea && coord.getArea(); // There is no old data only when first rendering or switching from\n    // stream mode to normal mode, where previous elements should be removed.\n\n    if (!this._data) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      if (data.hasValue(newIdx)) {\n        var itemLayout = data.getItemLayout(newIdx);\n\n        if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n          return;\n        }\n\n        var el = createNormalBox(itemLayout, newIdx, true);\n        graphic.initProps(el, {\n          shape: {\n            points: itemLayout.ends\n          }\n        }, seriesModel, newIdx);\n        setBoxCommon(el, data, newIdx, isSimpleBox);\n        group.add(el);\n        data.setItemGraphicEl(newIdx, el);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx); // Empty data\n\n      if (!data.hasValue(newIdx)) {\n        group.remove(el);\n        return;\n      }\n\n      var itemLayout = data.getItemLayout(newIdx);\n\n      if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n        group.remove(el);\n        return;\n      }\n\n      if (!el) {\n        el = createNormalBox(itemLayout, newIdx);\n      } else {\n        graphic.updateProps(el, {\n          shape: {\n            points: itemLayout.ends\n          }\n        }, seriesModel, newIdx);\n        saveOldStyle(el);\n      }\n\n      setBoxCommon(el, data, newIdx, isSimpleBox);\n      group.add(el);\n      data.setItemGraphicEl(newIdx, el);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && group.remove(el);\n    }).execute();\n    this._data = data;\n  };\n\n  CandlestickView.prototype._renderLarge = function (seriesModel) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n    var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n  };\n\n  CandlestickView.prototype._incrementalRenderNormal = function (params, seriesModel) {\n    var data = seriesModel.getData();\n    var isSimpleBox = data.getLayout('isSimpleBox');\n    var dataIndex;\n\n    while ((dataIndex = params.next()) != null) {\n      var itemLayout = data.getItemLayout(dataIndex);\n      var el = createNormalBox(itemLayout, dataIndex);\n      setBoxCommon(el, data, dataIndex, isSimpleBox);\n      el.incremental = true;\n      this.group.add(el);\n\n      this._progressiveEls.push(el);\n    }\n  };\n\n  CandlestickView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    createLarge(seriesModel, this.group, this._progressiveEls, true);\n  };\n\n  CandlestickView.prototype.remove = function (ecModel) {\n    this._clear();\n  };\n\n  CandlestickView.prototype._clear = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  CandlestickView.type = 'candlestick';\n  return CandlestickView;\n}(ChartView);\n\nvar NormalBoxPathShape =\n/** @class */\nfunction () {\n  function NormalBoxPathShape() {}\n\n  return NormalBoxPathShape;\n}();\n\nvar NormalBoxPath =\n/** @class */\nfunction (_super) {\n  __extends(NormalBoxPath, _super);\n\n  function NormalBoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'normalCandlestickBox';\n    return _this;\n  }\n\n  NormalBoxPath.prototype.getDefaultShape = function () {\n    return new NormalBoxPathShape();\n  };\n\n  NormalBoxPath.prototype.buildPath = function (ctx, shape) {\n    var ends = shape.points;\n\n    if (this.__simpleBox) {\n      ctx.moveTo(ends[4][0], ends[4][1]);\n      ctx.lineTo(ends[6][0], ends[6][1]);\n    } else {\n      ctx.moveTo(ends[0][0], ends[0][1]);\n      ctx.lineTo(ends[1][0], ends[1][1]);\n      ctx.lineTo(ends[2][0], ends[2][1]);\n      ctx.lineTo(ends[3][0], ends[3][1]);\n      ctx.closePath();\n      ctx.moveTo(ends[4][0], ends[4][1]);\n      ctx.lineTo(ends[5][0], ends[5][1]);\n      ctx.moveTo(ends[6][0], ends[6][1]);\n      ctx.lineTo(ends[7][0], ends[7][1]);\n    }\n  };\n\n  return NormalBoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, dataIndex, isInit) {\n  var ends = itemLayout.ends;\n  return new NormalBoxPath({\n    shape: {\n      points: isInit ? transInit(ends, itemLayout) : ends\n    },\n    z2: 100\n  });\n}\n\nfunction isNormalBoxClipped(clipArea, itemLayout) {\n  var clipped = true;\n\n  for (var i = 0; i < itemLayout.ends.length; i++) {\n    // If any point are in the region.\n    if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {\n      clipped = false;\n      break;\n    }\n  }\n\n  return clipped;\n}\n\nfunction setBoxCommon(el, data, dataIndex, isSimpleBox) {\n  var itemModel = data.getItemModel(dataIndex);\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.strokeNoScale = true;\n  el.__simpleBox = isSimpleBox;\n  setStatesStylesFromModel(el, itemModel);\n}\n\nfunction transInit(points, itemLayout) {\n  return zrUtil.map(points, function (point) {\n    point = point.slice();\n    point[1] = itemLayout.initBaseline;\n    return point;\n  });\n}\n\nvar LargeBoxPathShape =\n/** @class */\nfunction () {\n  function LargeBoxPathShape() {}\n\n  return LargeBoxPathShape;\n}();\n\nvar LargeBoxPath =\n/** @class */\nfunction (_super) {\n  __extends(LargeBoxPath, _super);\n\n  function LargeBoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeCandlestickBox';\n    return _this;\n  }\n\n  LargeBoxPath.prototype.getDefaultShape = function () {\n    return new LargeBoxPathShape();\n  };\n\n  LargeBoxPath.prototype.buildPath = function (ctx, shape) {\n    // Drawing lines is more efficient than drawing\n    // a whole line or drawing rects.\n    var points = shape.points;\n\n    for (var i = 0; i < points.length;) {\n      if (this.__sign === points[i++]) {\n        var x = points[i++];\n        ctx.moveTo(x, points[i++]);\n        ctx.lineTo(x, points[i++]);\n      } else {\n        i += 3;\n      }\n    }\n  };\n\n  return LargeBoxPath;\n}(Path);\n\nfunction createLarge(seriesModel, group, progressiveEls, incremental) {\n  var data = seriesModel.getData();\n  var largePoints = data.getLayout('largePoints');\n  var elP = new LargeBoxPath({\n    shape: {\n      points: largePoints\n    },\n    __sign: 1\n  });\n  group.add(elP);\n  var elN = new LargeBoxPath({\n    shape: {\n      points: largePoints\n    },\n    __sign: -1\n  });\n  group.add(elN);\n  setLargeStyle(1, elP, seriesModel, data);\n  setLargeStyle(-1, elN, seriesModel, data);\n\n  if (incremental) {\n    elP.incremental = true;\n    elN.incremental = true;\n  }\n\n  if (progressiveEls) {\n    progressiveEls.push(elP, elN);\n  }\n}\n\nfunction setLargeStyle(sign, el, seriesModel, data) {\n  // TODO put in visual?\n  var borderColor = seriesModel.get(['itemStyle', sign > 0 ? 'borderColor' : 'borderColor0']) || seriesModel.get(['itemStyle', sign > 0 ? 'color' : 'color0']); // Color must be excluded.\n  // Because symbol provide setColor individually to set fill and stroke\n\n  var itemStyle = seriesModel.getModel('itemStyle').getItemStyle(SKIP_PROPS);\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n}\n\nexport default CandlestickView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon.js';\nimport { mixin } from 'zrender/lib/core/util.js';\n\nvar CandlestickSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(CandlestickSeriesModel, _super);\n\n  function CandlestickSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CandlestickSeriesModel.type;\n    _this.defaultValueDimensions = [{\n      name: 'open',\n      defaultTooltip: true\n    }, {\n      name: 'close',\n      defaultTooltip: true\n    }, {\n      name: 'lowest',\n      defaultTooltip: true\n    }, {\n      name: 'highest',\n      defaultTooltip: true\n    }];\n    return _this;\n  }\n  /**\n   * Get dimension for shadow in dataZoom\n   * @return dimension name\n   */\n\n\n  CandlestickSeriesModel.prototype.getShadowDim = function () {\n    return 'open';\n  };\n\n  CandlestickSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    var itemLayout = data.getItemLayout(dataIndex);\n    return itemLayout && selectors.rect(itemLayout.brushRect);\n  };\n\n  CandlestickSeriesModel.type = 'series.candlestick';\n  CandlestickSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n  CandlestickSeriesModel.defaultOption = {\n    // zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    layout: null,\n    clip: true,\n    itemStyle: {\n      color: '#eb5454',\n      color0: '#47b262',\n      borderColor: '#eb5454',\n      borderColor0: '#47b262',\n      // borderColor: '#d24040',\n      // borderColor0: '#398f4f',\n      borderWidth: 1\n    },\n    emphasis: {\n      scale: true,\n      itemStyle: {\n        borderWidth: 2\n      }\n    },\n    barMaxWidth: null,\n    barMinWidth: null,\n    barWidth: null,\n    large: true,\n    largeThreshold: 600,\n    progressive: 3e3,\n    progressiveThreshold: 1e4,\n    progressiveChunkMode: 'mod',\n    animationEasing: 'linear',\n    animationDuration: 300\n  };\n  return CandlestickSeriesModel;\n}(SeriesModel);\n\nmixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true);\nexport default CandlestickSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport default function candlestickPreprocessor(option) {\n  if (!option || !zrUtil.isArray(option.series)) {\n    return;\n  } // Translate 'k' to 'candlestick'.\n\n\n  zrUtil.each(option.series, function (seriesItem) {\n    if (zrUtil.isObject(seriesItem) && seriesItem.type === 'k') {\n      seriesItem.type = 'candlestick';\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport createRenderPlanner from '../helper/createRenderPlanner.js';\nimport { extend } from 'zrender/lib/core/util.js';\nvar positiveBorderColorQuery = ['itemStyle', 'borderColor'];\nvar negativeBorderColorQuery = ['itemStyle', 'borderColor0'];\nvar positiveColorQuery = ['itemStyle', 'color'];\nvar negativeColorQuery = ['itemStyle', 'color0'];\nvar candlestickVisual = {\n  seriesType: 'candlestick',\n  plan: createRenderPlanner(),\n  // For legend.\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    function getColor(sign, model) {\n      return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);\n    }\n\n    function getBorderColor(sign, model) {\n      return model.get(sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);\n    } // Only visible series has each data be visual encoded\n\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var isLargeRender = seriesModel.pipelineContext.large;\n    return !isLargeRender && {\n      progress: function (params, data) {\n        var dataIndex;\n\n        while ((dataIndex = params.next()) != null) {\n          var itemModel = data.getItemModel(dataIndex);\n          var sign = data.getItemLayout(dataIndex).sign;\n          var style = itemModel.getItemStyle();\n          style.fill = getColor(sign, itemModel);\n          style.stroke = getBorderColor(sign, itemModel) || style.fill;\n          var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n          extend(existsStyle, style);\n        }\n      }\n    };\n  }\n};\nexport default candlestickVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { subPixelOptimize } from '../../util/graphic.js';\nimport createRenderPlanner from '../helper/createRenderPlanner.js';\nimport { parsePercent } from '../../util/number.js';\nimport { map, retrieve2 } from 'zrender/lib/core/util.js';\nimport { createFloat32Array } from '../../util/vendor.js';\nvar candlestickLayout = {\n  seriesType: 'candlestick',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var data = seriesModel.getData();\n    var candleWidth = calculateCandleWidth(seriesModel, data);\n    var cDimIdx = 0;\n    var vDimIdx = 1;\n    var coordDims = ['x', 'y'];\n    var cDimI = data.getDimensionIndex(data.mapDimension(coordDims[cDimIdx]));\n    var vDimsI = map(data.mapDimensionsAll(coordDims[vDimIdx]), data.getDimensionIndex, data);\n    var openDimI = vDimsI[0];\n    var closeDimI = vDimsI[1];\n    var lowestDimI = vDimsI[2];\n    var highestDimI = vDimsI[3];\n    data.setLayout({\n      candleWidth: candleWidth,\n      // The value is experimented visually.\n      isSimpleBox: candleWidth <= 1.3\n    });\n\n    if (cDimI < 0 || vDimsI.length < 4) {\n      return;\n    }\n\n    return {\n      progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress\n    };\n\n    function normalProgress(params, data) {\n      var dataIndex;\n      var store = data.getStore();\n\n      while ((dataIndex = params.next()) != null) {\n        var axisDimVal = store.get(cDimI, dataIndex);\n        var openVal = store.get(openDimI, dataIndex);\n        var closeVal = store.get(closeDimI, dataIndex);\n        var lowestVal = store.get(lowestDimI, dataIndex);\n        var highestVal = store.get(highestDimI, dataIndex);\n        var ocLow = Math.min(openVal, closeVal);\n        var ocHigh = Math.max(openVal, closeVal);\n        var ocLowPoint = getPoint(ocLow, axisDimVal);\n        var ocHighPoint = getPoint(ocHigh, axisDimVal);\n        var lowestPoint = getPoint(lowestVal, axisDimVal);\n        var highestPoint = getPoint(highestVal, axisDimVal);\n        var ends = [];\n        addBodyEnd(ends, ocHighPoint, 0);\n        addBodyEnd(ends, ocLowPoint, 1);\n        ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\n        data.setItemLayout(dataIndex, {\n          sign: getSign(store, dataIndex, openVal, closeVal, closeDimI),\n          initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\n          ends: ends,\n          brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\n        });\n      }\n\n      function getPoint(val, axisDimVal) {\n        var p = [];\n        p[cDimIdx] = axisDimVal;\n        p[vDimIdx] = val;\n        return isNaN(axisDimVal) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p);\n      }\n\n      function addBodyEnd(ends, point, start) {\n        var point1 = point.slice();\n        var point2 = point.slice();\n        point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false);\n        point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true);\n        start ? ends.push(point1, point2) : ends.push(point2, point1);\n      }\n\n      function makeBrushRect(lowestVal, highestVal, axisDimVal) {\n        var pmin = getPoint(lowestVal, axisDimVal);\n        var pmax = getPoint(highestVal, axisDimVal);\n        pmin[cDimIdx] -= candleWidth / 2;\n        pmax[cDimIdx] -= candleWidth / 2;\n        return {\n          x: pmin[0],\n          y: pmin[1],\n          width: vDimIdx ? candleWidth : pmax[0] - pmin[0],\n          height: vDimIdx ? pmax[1] - pmin[1] : candleWidth\n        };\n      }\n\n      function subPixelOptimizePoint(point) {\n        point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1);\n        return point;\n      }\n    }\n\n    function largeProgress(params, data) {\n      // Structure: [sign, x, yhigh, ylow, sign, x, yhigh, ylow, ...]\n      var points = createFloat32Array(params.count * 4);\n      var offset = 0;\n      var point;\n      var tmpIn = [];\n      var tmpOut = [];\n      var dataIndex;\n      var store = data.getStore();\n\n      while ((dataIndex = params.next()) != null) {\n        var axisDimVal = store.get(cDimI, dataIndex);\n        var openVal = store.get(openDimI, dataIndex);\n        var closeVal = store.get(closeDimI, dataIndex);\n        var lowestVal = store.get(lowestDimI, dataIndex);\n        var highestVal = store.get(highestDimI, dataIndex);\n\n        if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\n          points[offset++] = NaN;\n          offset += 3;\n          continue;\n        }\n\n        points[offset++] = getSign(store, dataIndex, openVal, closeVal, closeDimI);\n        tmpIn[cDimIdx] = axisDimVal;\n        tmpIn[vDimIdx] = lowestVal;\n        point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n        points[offset++] = point ? point[0] : NaN;\n        points[offset++] = point ? point[1] : NaN;\n        tmpIn[vDimIdx] = highestVal;\n        point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n        points[offset++] = point ? point[1] : NaN;\n      }\n\n      data.setLayout('largePoints', points);\n    }\n  }\n};\n\nfunction getSign(store, dataIndex, openVal, closeVal, closeDimI) {\n  var sign;\n\n  if (openVal > closeVal) {\n    sign = -1;\n  } else if (openVal < closeVal) {\n    sign = 1;\n  } else {\n    sign = dataIndex > 0 // If close === open, compare with close of last record\n    ? store.get(closeDimI, dataIndex - 1) <= closeVal ? 1 : -1 : // No record of previous, set to be positive\n    1;\n  }\n\n  return sign;\n}\n\nfunction calculateCandleWidth(seriesModel, data) {\n  var baseAxis = seriesModel.getBaseAxis();\n  var extent;\n  var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count());\n  var barMaxWidth = parsePercent(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\n  var barMinWidth = parsePercent(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\n  var barWidth = seriesModel.get('barWidth');\n  return barWidth != null ? parsePercent(barWidth, bandWidth) // Put max outer to ensure bar visible in spite of overlap.\n  : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\n}\n\nexport default candlestickLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport CandlestickView from './CandlestickView.js';\nimport CandlestickSeriesModel from './CandlestickSeries.js';\nimport preprocessor from './preprocessor.js';\nimport candlestickVisual from './candlestickVisual.js';\nimport candlestickLayout from './candlestickLayout.js';\nexport function install(registers) {\n  registers.registerChartView(CandlestickView);\n  registers.registerSeriesModel(CandlestickSeriesModel);\n  registers.registerPreprocessor(preprocessor);\n  registers.registerVisual(candlestickVisual);\n  registers.registerLayout(candlestickLayout);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { createSymbol, normalizeSymbolOffset, normalizeSymbolSize } from '../../util/symbol.js';\nimport { Group } from '../../util/graphic.js';\nimport { enterEmphasis, leaveEmphasis, toggleHoverEmphasis } from '../../util/states.js';\nimport SymbolClz from './Symbol.js';\n\nfunction updateRipplePath(rippleGroup, effectCfg) {\n  var color = effectCfg.rippleEffectColor || effectCfg.color;\n  rippleGroup.eachChild(function (ripplePath) {\n    ripplePath.attr({\n      z: effectCfg.z,\n      zlevel: effectCfg.zlevel,\n      style: {\n        stroke: effectCfg.brushType === 'stroke' ? color : null,\n        fill: effectCfg.brushType === 'fill' ? color : null\n      }\n    });\n  });\n}\n\nvar EffectSymbol =\n/** @class */\nfunction (_super) {\n  __extends(EffectSymbol, _super);\n\n  function EffectSymbol(data, idx) {\n    var _this = _super.call(this) || this;\n\n    var symbol = new SymbolClz(data, idx);\n    var rippleGroup = new Group();\n\n    _this.add(symbol);\n\n    _this.add(rippleGroup);\n\n    _this.updateData(data, idx);\n\n    return _this;\n  }\n\n  EffectSymbol.prototype.stopEffectAnimation = function () {\n    this.childAt(1).removeAll();\n  };\n\n  EffectSymbol.prototype.startEffectAnimation = function (effectCfg) {\n    var symbolType = effectCfg.symbolType;\n    var color = effectCfg.color;\n    var rippleNumber = effectCfg.rippleNumber;\n    var rippleGroup = this.childAt(1);\n\n    for (var i = 0; i < rippleNumber; i++) {\n      // If width/height are set too small (e.g., set to 1) on ios10\n      // and macOS Sierra, a circle stroke become a rect, no matter what\n      // the scale is set. So we set width/height as 2. See #4136.\n      var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color);\n      ripplePath.attr({\n        style: {\n          strokeNoScale: true\n        },\n        z2: 99,\n        silent: true,\n        scaleX: 0.5,\n        scaleY: 0.5\n      });\n      var delay = -i / rippleNumber * effectCfg.period + effectCfg.effectOffset;\n      ripplePath.animate('', true).when(effectCfg.period, {\n        scaleX: effectCfg.rippleScale / 2,\n        scaleY: effectCfg.rippleScale / 2\n      }).delay(delay).start();\n      ripplePath.animateStyle(true).when(effectCfg.period, {\n        opacity: 0\n      }).delay(delay).start();\n      rippleGroup.add(ripplePath);\n    }\n\n    updateRipplePath(rippleGroup, effectCfg);\n  };\n  /**\n   * Update effect symbol\n   */\n\n\n  EffectSymbol.prototype.updateEffectAnimation = function (effectCfg) {\n    var oldEffectCfg = this._effectCfg;\n    var rippleGroup = this.childAt(1); // Must reinitialize effect if following configuration changed\n\n    var DIFFICULT_PROPS = ['symbolType', 'period', 'rippleScale', 'rippleNumber'];\n\n    for (var i = 0; i < DIFFICULT_PROPS.length; i++) {\n      var propName = DIFFICULT_PROPS[i];\n\n      if (oldEffectCfg[propName] !== effectCfg[propName]) {\n        this.stopEffectAnimation();\n        this.startEffectAnimation(effectCfg);\n        return;\n      }\n    }\n\n    updateRipplePath(rippleGroup, effectCfg);\n  };\n  /**\n   * Highlight symbol\n   */\n\n\n  EffectSymbol.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n  /**\n   * Downplay symbol\n   */\n\n\n  EffectSymbol.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  EffectSymbol.prototype.getSymbolType = function () {\n    var symbol = this.childAt(0);\n    return symbol && symbol.getSymbolType();\n  };\n  /**\n   * Update symbol properties\n   */\n\n\n  EffectSymbol.prototype.updateData = function (data, idx) {\n    var _this = this;\n\n    var seriesModel = data.hostModel;\n    this.childAt(0).updateData(data, idx);\n    var rippleGroup = this.childAt(1);\n    var itemModel = data.getItemModel(idx);\n    var symbolType = data.getItemVisual(idx, 'symbol');\n    var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var color = symbolStyle && symbolStyle.fill;\n    var emphasisModel = itemModel.getModel('emphasis');\n    rippleGroup.setScale(symbolSize);\n    rippleGroup.traverse(function (ripplePath) {\n      ripplePath.setStyle('fill', color);\n    });\n    var symbolOffset = normalizeSymbolOffset(data.getItemVisual(idx, 'symbolOffset'), symbolSize);\n\n    if (symbolOffset) {\n      rippleGroup.x = symbolOffset[0];\n      rippleGroup.y = symbolOffset[1];\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n    var effectCfg = {};\n    effectCfg.showEffectOn = seriesModel.get('showEffectOn');\n    effectCfg.rippleScale = itemModel.get(['rippleEffect', 'scale']);\n    effectCfg.brushType = itemModel.get(['rippleEffect', 'brushType']);\n    effectCfg.period = itemModel.get(['rippleEffect', 'period']) * 1000;\n    effectCfg.effectOffset = idx / data.count();\n    effectCfg.z = seriesModel.getShallow('z') || 0;\n    effectCfg.zlevel = seriesModel.getShallow('zlevel') || 0;\n    effectCfg.symbolType = symbolType;\n    effectCfg.color = color;\n    effectCfg.rippleEffectColor = itemModel.get(['rippleEffect', 'color']);\n    effectCfg.rippleNumber = itemModel.get(['rippleEffect', 'number']);\n\n    if (effectCfg.showEffectOn === 'render') {\n      this._effectCfg ? this.updateEffectAnimation(effectCfg) : this.startEffectAnimation(effectCfg);\n      this._effectCfg = effectCfg;\n    } else {\n      // Not keep old effect config\n      this._effectCfg = null;\n      this.stopEffectAnimation();\n\n      this.onHoverStateChange = function (toState) {\n        if (toState === 'emphasis') {\n          if (effectCfg.showEffectOn !== 'render') {\n            _this.startEffectAnimation(effectCfg);\n          }\n        } else if (toState === 'normal') {\n          if (effectCfg.showEffectOn !== 'render') {\n            _this.stopEffectAnimation();\n          }\n        }\n      };\n    }\n\n    this._effectCfg = effectCfg;\n    toggleHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n  };\n\n  ;\n\n  EffectSymbol.prototype.fadeOut = function (cb) {\n    cb && cb();\n  };\n\n  ;\n  return EffectSymbol;\n}(Group);\n\nexport default EffectSymbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw.js';\nimport EffectSymbol from '../helper/EffectSymbol.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport pointsLayout from '../../layout/points.js';\nimport ChartView from '../../view/Chart.js';\n\nvar EffectScatterView =\n/** @class */\nfunction (_super) {\n  __extends(EffectScatterView, _super);\n\n  function EffectScatterView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = EffectScatterView.type;\n    return _this;\n  }\n\n  EffectScatterView.prototype.init = function () {\n    this._symbolDraw = new SymbolDraw(EffectSymbol);\n  };\n\n  EffectScatterView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var effectSymbolDraw = this._symbolDraw;\n    effectSymbolDraw.updateData(data, {\n      clipShape: this._getClipShape(seriesModel)\n    });\n    this.group.add(effectSymbolDraw.group);\n  };\n\n  EffectScatterView.prototype._getClipShape = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\n    return seriesModel.get('clip', true) ? clipArea : null;\n  };\n\n  EffectScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    this.group.dirty();\n    var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n    if (res.progress) {\n      res.progress({\n        start: 0,\n        end: data.count(),\n        count: data.count()\n      }, data);\n    }\n\n    this._symbolDraw.updateLayout();\n  };\n\n  EffectScatterView.prototype._updateGroupTransform = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.getRoamTransform) {\n      this.group.transform = matrix.clone(coordSys.getRoamTransform());\n      this.group.decomposeTransform();\n    }\n  };\n\n  EffectScatterView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n  };\n\n  EffectScatterView.type = 'effectScatter';\n  return EffectScatterView;\n}(ChartView);\n\nexport default EffectScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport createSeriesData from '../helper/createSeriesData.js';\nimport SeriesModel from '../../model/Series.js';\n\nvar EffectScatterSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(EffectScatterSeriesModel, _super);\n\n  function EffectScatterSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = EffectScatterSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  EffectScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createSeriesData(null, this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  EffectScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.point(data.getItemLayout(dataIndex));\n  };\n\n  EffectScatterSeriesModel.type = 'series.effectScatter';\n  EffectScatterSeriesModel.dependencies = ['grid', 'polar'];\n  EffectScatterSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    // zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    effectType: 'ripple',\n    progressive: 0,\n    // When to show the effect, option: 'render'|'emphasis'\n    showEffectOn: 'render',\n    clip: true,\n    // Ripple effect config\n    rippleEffect: {\n      period: 4,\n      // Scale of ripple\n      scale: 2.5,\n      // Brush type can be fill or stroke\n      brushType: 'fill',\n      // Ripple number\n      number: 3\n    },\n    universalTransition: {\n      divideShape: 'clone'\n    },\n    // Cartesian coordinate system\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    // Polar coordinate system\n    // polarIndex: 0,\n    // Geo coordinate system\n    // geoIndex: 0,\n    // symbol: null,        // 图形类型\n    symbolSize: 10 // 图形大小，半宽（半径）参数，当图形为方向或菱形则总宽度为symbolSize * 2\n    // symbolRotate: null,  // 图形旋转控制\n    // itemStyle: {\n    //     opacity: 1\n    // }\n\n  };\n  return EffectScatterSeriesModel;\n}(SeriesModel);\n\nexport default EffectScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport EffectScatterView from './EffectScatterView.js';\nimport EffectScatterSeriesModel from './EffectScatterSeries.js';\nimport layoutPoints from '../../layout/points.js';\nexport function install(registers) {\n  registers.registerChartView(EffectScatterView);\n  registers.registerSeriesModel(EffectScatterSeriesModel);\n  registers.registerLayout(layoutPoints('effectScatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * Provide effect for line\n */\n\nimport * as graphic from '../../util/graphic.js';\nimport Line from './Line.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\nimport * as curveUtil from 'zrender/lib/core/curve.js';\n\nvar EffectLine =\n/** @class */\nfunction (_super) {\n  __extends(EffectLine, _super);\n\n  function EffectLine(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this.add(_this.createLine(lineData, idx, seriesScope));\n\n    _this._updateEffectSymbol(lineData, idx);\n\n    return _this;\n  }\n\n  EffectLine.prototype.createLine = function (lineData, idx, seriesScope) {\n    return new Line(lineData, idx, seriesScope);\n  };\n\n  EffectLine.prototype._updateEffectSymbol = function (lineData, idx) {\n    var itemModel = lineData.getItemModel(idx);\n    var effectModel = itemModel.getModel('effect');\n    var size = effectModel.get('symbolSize');\n    var symbolType = effectModel.get('symbol');\n\n    if (!zrUtil.isArray(size)) {\n      size = [size, size];\n    }\n\n    var lineStyle = lineData.getItemVisual(idx, 'style');\n    var color = effectModel.get('color') || lineStyle && lineStyle.stroke;\n    var symbol = this.childAt(1);\n\n    if (this._symbolType !== symbolType) {\n      // Remove previous\n      this.remove(symbol);\n      symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);\n      symbol.z2 = 100;\n      symbol.culling = true;\n      this.add(symbol);\n    } // Symbol may be removed if loop is false\n\n\n    if (!symbol) {\n      return;\n    } // Shadow color is same with color in default\n\n\n    symbol.setStyle('shadowColor', color);\n    symbol.setStyle(effectModel.getItemStyle(['color']));\n    symbol.scaleX = size[0];\n    symbol.scaleY = size[1];\n    symbol.setColor(color);\n    this._symbolType = symbolType;\n    this._symbolScale = size;\n\n    this._updateEffectAnimation(lineData, effectModel, idx);\n  };\n\n  EffectLine.prototype._updateEffectAnimation = function (lineData, effectModel, idx) {\n    var symbol = this.childAt(1);\n\n    if (!symbol) {\n      return;\n    }\n\n    var points = lineData.getItemLayout(idx);\n    var period = effectModel.get('period') * 1000;\n    var loop = effectModel.get('loop');\n    var constantSpeed = effectModel.get('constantSpeed');\n    var delayExpr = zrUtil.retrieve(effectModel.get('delay'), function (idx) {\n      return idx / lineData.count() * period / 3;\n    }); // Ignore when updating\n\n    symbol.ignore = true;\n\n    this._updateAnimationPoints(symbol, points);\n\n    if (constantSpeed > 0) {\n      period = this._getLineLength(symbol) / constantSpeed * 1000;\n    }\n\n    if (period !== this._period || loop !== this._loop) {\n      symbol.stopAnimation();\n      var delayNum = void 0;\n\n      if (zrUtil.isFunction(delayExpr)) {\n        delayNum = delayExpr(idx);\n      } else {\n        delayNum = delayExpr;\n      }\n\n      if (symbol.__t > 0) {\n        delayNum = -period * symbol.__t;\n      }\n\n      this._animateSymbol(symbol, period, delayNum, loop);\n    }\n\n    this._period = period;\n    this._loop = loop;\n  };\n\n  EffectLine.prototype._animateSymbol = function (symbol, period, delayNum, loop) {\n    if (period > 0) {\n      symbol.__t = 0;\n      var self_1 = this;\n      var animator = symbol.animate('', loop).when(period, {\n        __t: 1\n      }).delay(delayNum).during(function () {\n        self_1._updateSymbolPosition(symbol);\n      });\n\n      if (!loop) {\n        animator.done(function () {\n          self_1.remove(symbol);\n        });\n      }\n\n      animator.start();\n    }\n  };\n\n  EffectLine.prototype._getLineLength = function (symbol) {\n    // Not so accurate\n    return vec2.dist(symbol.__p1, symbol.__cp1) + vec2.dist(symbol.__cp1, symbol.__p2);\n  };\n\n  EffectLine.prototype._updateAnimationPoints = function (symbol, points) {\n    symbol.__p1 = points[0];\n    symbol.__p2 = points[1];\n    symbol.__cp1 = points[2] || [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2];\n  };\n\n  EffectLine.prototype.updateData = function (lineData, idx, seriesScope) {\n    this.childAt(0).updateData(lineData, idx, seriesScope);\n\n    this._updateEffectSymbol(lineData, idx);\n  };\n\n  EffectLine.prototype._updateSymbolPosition = function (symbol) {\n    var p1 = symbol.__p1;\n    var p2 = symbol.__p2;\n    var cp1 = symbol.__cp1;\n    var t = symbol.__t;\n    var pos = [symbol.x, symbol.y];\n    var lastPos = pos.slice();\n    var quadraticAt = curveUtil.quadraticAt;\n    var quadraticDerivativeAt = curveUtil.quadraticDerivativeAt;\n    pos[0] = quadraticAt(p1[0], cp1[0], p2[0], t);\n    pos[1] = quadraticAt(p1[1], cp1[1], p2[1], t); // Tangent\n\n    var tx = quadraticDerivativeAt(p1[0], cp1[0], p2[0], t);\n    var ty = quadraticDerivativeAt(p1[1], cp1[1], p2[1], t);\n    symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2; // enable continuity trail for 'line', 'rect', 'roundRect' symbolType\n\n    if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') {\n      if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) {\n        symbol.scaleY = vec2.dist(lastPos, pos) * 1.05; // make sure the last segment render within endPoint\n\n        if (t === 1) {\n          pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2;\n          pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2;\n        }\n      } else if (symbol.__lastT === 1) {\n        // After first loop, symbol.__t does NOT start with 0, so connect p1 to pos directly.\n        symbol.scaleY = 2 * vec2.dist(p1, pos);\n      } else {\n        symbol.scaleY = this._symbolScale[1];\n      }\n    }\n\n    symbol.__lastT = symbol.__t;\n    symbol.ignore = false;\n    symbol.x = pos[0];\n    symbol.y = pos[1];\n  };\n\n  EffectLine.prototype.updateLayout = function (lineData, idx) {\n    this.childAt(0).updateLayout(lineData, idx);\n    var effectModel = lineData.getItemModel(idx).getModel('effect');\n\n    this._updateEffectAnimation(lineData, effectModel, idx);\n  };\n\n  return EffectLine;\n}(graphic.Group);\n\nexport default EffectLine;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis } from '../../util/states.js';\n\nvar Polyline =\n/** @class */\nfunction (_super) {\n  __extends(Polyline, _super);\n\n  function Polyline(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this._createPolyline(lineData, idx, seriesScope);\n\n    return _this;\n  }\n\n  Polyline.prototype._createPolyline = function (lineData, idx, seriesScope) {\n    // let seriesModel = lineData.hostModel;\n    var points = lineData.getItemLayout(idx);\n    var line = new graphic.Polyline({\n      shape: {\n        points: points\n      }\n    });\n    this.add(line);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Polyline.prototype.updateData = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childAt(0);\n    var target = {\n      shape: {\n        points: lineData.getItemLayout(idx)\n      }\n    };\n    graphic.updateProps(line, target, seriesModel, idx);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Polyline.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n    var line = this.childAt(0);\n    var itemModel = lineData.getItemModel(idx);\n    var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n    var focus = seriesScope && seriesScope.focus;\n    var blurScope = seriesScope && seriesScope.blurScope;\n    var emphasisDisabled = seriesScope && seriesScope.emphasisDisabled;\n\n    if (!seriesScope || lineData.hasItemOption) {\n      var emphasisModel = itemModel.getModel('emphasis');\n      emphasisLineStyle = emphasisModel.getModel('lineStyle').getLineStyle();\n      emphasisDisabled = emphasisModel.get('disabled');\n      focus = emphasisModel.get('focus');\n      blurScope = emphasisModel.get('blurScope');\n    }\n\n    line.useStyle(lineData.getItemVisual(idx, 'style'));\n    line.style.fill = null;\n    line.style.strokeNoScale = true;\n    var lineEmphasisState = line.ensureState('emphasis');\n    lineEmphasisState.style = emphasisLineStyle;\n    toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled);\n  };\n\n  ;\n\n  Polyline.prototype.updateLayout = function (lineData, idx) {\n    var polyline = this.childAt(0);\n    polyline.setShape('points', lineData.getItemLayout(idx));\n  };\n\n  ;\n  return Polyline;\n}(graphic.Group);\n\nexport default Polyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Polyline from './Polyline.js';\nimport EffectLine from './EffectLine.js';\nimport * as vec2 from 'zrender/lib/core/vector.js';\n\nvar EffectPolyline =\n/** @class */\nfunction (_super) {\n  __extends(EffectPolyline, _super);\n\n  function EffectPolyline() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this._lastFrame = 0;\n    _this._lastFramePercent = 0;\n    return _this;\n  } // Override\n\n\n  EffectPolyline.prototype.createLine = function (lineData, idx, seriesScope) {\n    return new Polyline(lineData, idx, seriesScope);\n  };\n\n  ; // Override\n\n  EffectPolyline.prototype._updateAnimationPoints = function (symbol, points) {\n    this._points = points;\n    var accLenArr = [0];\n    var len = 0;\n\n    for (var i = 1; i < points.length; i++) {\n      var p1 = points[i - 1];\n      var p2 = points[i];\n      len += vec2.dist(p1, p2);\n      accLenArr.push(len);\n    }\n\n    if (len === 0) {\n      this._length = 0;\n      return;\n    }\n\n    for (var i = 0; i < accLenArr.length; i++) {\n      accLenArr[i] /= len;\n    }\n\n    this._offsets = accLenArr;\n    this._length = len;\n  };\n\n  ; // Override\n\n  EffectPolyline.prototype._getLineLength = function () {\n    return this._length;\n  };\n\n  ; // Override\n\n  EffectPolyline.prototype._updateSymbolPosition = function (symbol) {\n    var t = symbol.__t;\n    var points = this._points;\n    var offsets = this._offsets;\n    var len = points.length;\n\n    if (!offsets) {\n      // Has length 0\n      return;\n    }\n\n    var lastFrame = this._lastFrame;\n    var frame;\n\n    if (t < this._lastFramePercent) {\n      // Start from the next frame\n      // PENDING start from lastFrame ?\n      var start = Math.min(lastFrame + 1, len - 1);\n\n      for (frame = start; frame >= 0; frame--) {\n        if (offsets[frame] <= t) {\n          break;\n        }\n      } // PENDING really need to do this ?\n\n\n      frame = Math.min(frame, len - 2);\n    } else {\n      for (frame = lastFrame; frame < len; frame++) {\n        if (offsets[frame] > t) {\n          break;\n        }\n      }\n\n      frame = Math.min(frame - 1, len - 2);\n    }\n\n    var p = (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]);\n    var p0 = points[frame];\n    var p1 = points[frame + 1];\n    symbol.x = p0[0] * (1 - p) + p * p1[0];\n    symbol.y = p0[1] * (1 - p) + p * p1[1];\n    var tx = p1[0] - p0[0];\n    var ty = p1[1] - p0[1];\n    symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n    this._lastFrame = frame;\n    this._lastFramePercent = t;\n    symbol.ignore = false;\n  };\n\n  ;\n  return EffectPolyline;\n}(EffectLine);\n\nexport default EffectPolyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\"; // TODO Batch by color\n\nimport * as graphic from '../../util/graphic.js';\nimport * as lineContain from 'zrender/lib/contain/line.js';\nimport * as quadraticContain from 'zrender/lib/contain/quadratic.js';\nimport { getECData } from '../../util/innerStore.js';\n\nvar LargeLinesPathShape =\n/** @class */\nfunction () {\n  function LargeLinesPathShape() {\n    this.polyline = false;\n    this.curveness = 0;\n    this.segs = [];\n  }\n\n  return LargeLinesPathShape;\n}();\n\nvar LargeLinesPath =\n/** @class */\nfunction (_super) {\n  __extends(LargeLinesPath, _super);\n\n  function LargeLinesPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this._off = 0;\n    _this.hoverDataIdx = -1;\n    return _this;\n  }\n\n  LargeLinesPath.prototype.reset = function () {\n    this.notClear = false;\n    this._off = 0;\n  };\n\n  LargeLinesPath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  LargeLinesPath.prototype.getDefaultShape = function () {\n    return new LargeLinesPathShape();\n  };\n\n  LargeLinesPath.prototype.buildPath = function (ctx, shape) {\n    var segs = shape.segs;\n    var curveness = shape.curveness;\n    var i;\n\n    if (shape.polyline) {\n      for (i = this._off; i < segs.length;) {\n        var count = segs[i++];\n\n        if (count > 0) {\n          ctx.moveTo(segs[i++], segs[i++]);\n\n          for (var k = 1; k < count; k++) {\n            ctx.lineTo(segs[i++], segs[i++]);\n          }\n        }\n      }\n    } else {\n      for (i = this._off; i < segs.length;) {\n        var x0 = segs[i++];\n        var y0 = segs[i++];\n        var x1 = segs[i++];\n        var y1 = segs[i++];\n        ctx.moveTo(x0, y0);\n\n        if (curveness > 0) {\n          var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n          var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n          ctx.quadraticCurveTo(x2, y2, x1, y1);\n        } else {\n          ctx.lineTo(x1, y1);\n        }\n      }\n    }\n\n    if (this.incremental) {\n      this._off = i;\n      this.notClear = true;\n    }\n  };\n\n  LargeLinesPath.prototype.findDataIndex = function (x, y) {\n    var shape = this.shape;\n    var segs = shape.segs;\n    var curveness = shape.curveness;\n    var lineWidth = this.style.lineWidth;\n\n    if (shape.polyline) {\n      var dataIndex = 0;\n\n      for (var i = 0; i < segs.length;) {\n        var count = segs[i++];\n\n        if (count > 0) {\n          var x0 = segs[i++];\n          var y0 = segs[i++];\n\n          for (var k = 1; k < count; k++) {\n            var x1 = segs[i++];\n            var y1 = segs[i++];\n\n            if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n              return dataIndex;\n            }\n          }\n        }\n\n        dataIndex++;\n      }\n    } else {\n      var dataIndex = 0;\n\n      for (var i = 0; i < segs.length;) {\n        var x0 = segs[i++];\n        var y0 = segs[i++];\n        var x1 = segs[i++];\n        var y1 = segs[i++];\n\n        if (curveness > 0) {\n          var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n          var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n\n          if (quadraticContain.containStroke(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) {\n            return dataIndex;\n          }\n        } else {\n          if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n            return dataIndex;\n          }\n        }\n\n        dataIndex++;\n      }\n    }\n\n    return -1;\n  };\n\n  LargeLinesPath.prototype.contain = function (x, y) {\n    var localPos = this.transformCoordToLocal(x, y);\n    var rect = this.getBoundingRect();\n    x = localPos[0];\n    y = localPos[1];\n\n    if (rect.contain(x, y)) {\n      // Cache found data index.\n      var dataIdx = this.hoverDataIdx = this.findDataIndex(x, y);\n      return dataIdx >= 0;\n    }\n\n    this.hoverDataIdx = -1;\n    return false;\n  };\n\n  LargeLinesPath.prototype.getBoundingRect = function () {\n    // Ignore stroke for large symbol draw.\n    var rect = this._rect;\n\n    if (!rect) {\n      var shape = this.shape;\n      var points = shape.segs;\n      var minX = Infinity;\n      var minY = Infinity;\n      var maxX = -Infinity;\n      var maxY = -Infinity;\n\n      for (var i = 0; i < points.length;) {\n        var x = points[i++];\n        var y = points[i++];\n        minX = Math.min(x, minX);\n        maxX = Math.max(x, maxX);\n        minY = Math.min(y, minY);\n        maxY = Math.max(y, maxY);\n      }\n\n      rect = this._rect = new graphic.BoundingRect(minX, minY, maxX, maxY);\n    }\n\n    return rect;\n  };\n\n  return LargeLinesPath;\n}(graphic.Path);\n\nvar LargeLineDraw =\n/** @class */\nfunction () {\n  function LargeLineDraw() {\n    this.group = new graphic.Group();\n  }\n  /**\n   * Update symbols draw by new data\n   */\n\n\n  LargeLineDraw.prototype.updateData = function (data) {\n    this._clear();\n\n    var lineEl = this._create();\n\n    lineEl.setShape({\n      segs: data.getLayout('linesPoints')\n    });\n\n    this._setCommon(lineEl, data);\n  };\n\n  ;\n  /**\n   * @override\n   */\n\n  LargeLineDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this.group.removeAll();\n\n    this._clear();\n  };\n\n  ;\n  /**\n   * @override\n   */\n\n  LargeLineDraw.prototype.incrementalUpdate = function (taskParams, data) {\n    var lastAdded = this._newAdded[0];\n    var linePoints = data.getLayout('linesPoints');\n    var oldSegs = lastAdded && lastAdded.shape.segs; // Merging the exists. Each element has 1e4 points.\n    // Consider the performance balance between too much elements and too much points in one shape(may affect hover optimization)\n\n    if (oldSegs && oldSegs.length < 2e4) {\n      var oldLen = oldSegs.length;\n      var newSegs = new Float32Array(oldLen + linePoints.length); // Concat two array\n\n      newSegs.set(oldSegs);\n      newSegs.set(linePoints, oldLen);\n      lastAdded.setShape({\n        segs: newSegs\n      });\n    } else {\n      // Clear\n      this._newAdded = [];\n\n      var lineEl = this._create();\n\n      lineEl.incremental = true;\n      lineEl.setShape({\n        segs: linePoints\n      });\n\n      this._setCommon(lineEl, data);\n\n      lineEl.__startIndex = taskParams.start;\n    }\n  };\n  /**\n   * @override\n   */\n\n\n  LargeLineDraw.prototype.remove = function () {\n    this._clear();\n  };\n\n  LargeLineDraw.prototype.eachRendered = function (cb) {\n    this._newAdded[0] && cb(this._newAdded[0]);\n  };\n\n  LargeLineDraw.prototype._create = function () {\n    var lineEl = new LargeLinesPath({\n      cursor: 'default'\n    });\n\n    this._newAdded.push(lineEl);\n\n    this.group.add(lineEl);\n    return lineEl;\n  };\n\n  LargeLineDraw.prototype._setCommon = function (lineEl, data, isIncremental) {\n    var hostModel = data.hostModel;\n    lineEl.setShape({\n      polyline: hostModel.get('polyline'),\n      curveness: hostModel.get(['lineStyle', 'curveness'])\n    });\n    lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\n    lineEl.style.strokeNoScale = true;\n    var style = data.getVisual('style');\n\n    if (style && style.stroke) {\n      lineEl.setStyle('stroke', style.stroke);\n    }\n\n    lineEl.setStyle('fill', null);\n    var ecData = getECData(lineEl); // Enable tooltip\n    // PENDING May have performance issue when path is extremely large\n\n    ecData.seriesIndex = hostModel.seriesIndex;\n    lineEl.on('mousemove', function (e) {\n      ecData.dataIndex = null;\n      var dataIndex = lineEl.hoverDataIdx;\n\n      if (dataIndex > 0) {\n        // Provide dataIndex for tooltip\n        ecData.dataIndex = dataIndex + lineEl.__startIndex;\n      }\n    });\n  };\n\n  ;\n\n  LargeLineDraw.prototype._clear = function () {\n    this._newAdded = [];\n    this.group.removeAll();\n  };\n\n  ;\n  return LargeLineDraw;\n}();\n\nexport default LargeLineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Float32Array */\nimport createRenderPlanner from '../helper/createRenderPlanner.js';\nimport { error } from '../../util/log.js';\nvar linesLayout = {\n  seriesType: 'lines',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (!coordSys) {\n      if (process.env.NODE_ENV !== 'production') {\n        error('The lines series must have a coordinate system.');\n      }\n\n      return;\n    }\n\n    var isPolyline = seriesModel.get('polyline');\n    var isLarge = seriesModel.pipelineContext.large;\n    return {\n      progress: function (params, lineData) {\n        var lineCoords = [];\n\n        if (isLarge) {\n          var points = void 0;\n          var segCount = params.end - params.start;\n\n          if (isPolyline) {\n            var totalCoordsCount = 0;\n\n            for (var i = params.start; i < params.end; i++) {\n              totalCoordsCount += seriesModel.getLineCoordsCount(i);\n            }\n\n            points = new Float32Array(segCount + totalCoordsCount * 2);\n          } else {\n            points = new Float32Array(segCount * 4);\n          }\n\n          var offset = 0;\n          var pt = [];\n\n          for (var i = params.start; i < params.end; i++) {\n            var len = seriesModel.getLineCoords(i, lineCoords);\n\n            if (isPolyline) {\n              points[offset++] = len;\n            }\n\n            for (var k = 0; k < len; k++) {\n              pt = coordSys.dataToPoint(lineCoords[k], false, pt);\n              points[offset++] = pt[0];\n              points[offset++] = pt[1];\n            }\n          }\n\n          lineData.setLayout('linesPoints', points);\n        } else {\n          for (var i = params.start; i < params.end; i++) {\n            var itemModel = lineData.getItemModel(i);\n            var len = seriesModel.getLineCoords(i, lineCoords);\n            var pts = [];\n\n            if (isPolyline) {\n              for (var j = 0; j < len; j++) {\n                pts.push(coordSys.dataToPoint(lineCoords[j]));\n              }\n            } else {\n              pts[0] = coordSys.dataToPoint(lineCoords[0]);\n              pts[1] = coordSys.dataToPoint(lineCoords[1]);\n              var curveness = itemModel.get(['lineStyle', 'curveness']);\n\n              if (+curveness) {\n                pts[2] = [(pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness, (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness];\n              }\n            }\n\n            lineData.setItemLayout(i, pts);\n          }\n        }\n      }\n    };\n  }\n};\nexport default linesLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport LineDraw from '../helper/LineDraw.js';\nimport EffectLine from '../helper/EffectLine.js';\nimport Line from '../helper/Line.js';\nimport Polyline from '../helper/Polyline.js';\nimport EffectPolyline from '../helper/EffectPolyline.js';\nimport LargeLineDraw from '../helper/LargeLineDraw.js';\nimport linesLayout from './linesLayout.js';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys.js';\nimport ChartView from '../../view/Chart.js';\n\nvar LinesView =\n/** @class */\nfunction (_super) {\n  __extends(LinesView, _super);\n\n  function LinesView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LinesView.type;\n    return _this;\n  }\n\n  LinesView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var lineDraw = this._updateLineDraw(data, seriesModel);\n\n    var zlevel = seriesModel.get('zlevel');\n    var trailLength = seriesModel.get(['effect', 'trailLength']);\n    var zr = api.getZr(); // Avoid the drag cause ghost shadow\n    // FIXME Better way ?\n    // SVG doesn't support\n\n    var isSvg = zr.painter.getType() === 'svg';\n\n    if (!isSvg) {\n      zr.painter.getLayer(zlevel).clear(true);\n    } // Config layer with motion blur\n\n\n    if (this._lastZlevel != null && !isSvg) {\n      zr.configLayer(this._lastZlevel, {\n        motionBlur: false\n      });\n    }\n\n    if (this._showEffect(seriesModel) && trailLength > 0) {\n      if (!isSvg) {\n        zr.configLayer(zlevel, {\n          motionBlur: true,\n          lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0)\n        });\n      } else if (process.env.NODE_ENV !== 'production') {\n        console.warn('SVG render mode doesn\\'t support lines with trail effect');\n      }\n    }\n\n    lineDraw.updateData(data);\n    var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n\n    this._lastZlevel = zlevel;\n    this._finished = true;\n  };\n\n  LinesView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var lineDraw = this._updateLineDraw(data, seriesModel);\n\n    lineDraw.incrementalPrepareUpdate(data);\n\n    this._clearLayer(api);\n\n    this._finished = false;\n  };\n\n  LinesView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  };\n\n  LinesView.prototype.eachRendered = function (cb) {\n    this._lineDraw && this._lineDraw.eachRendered(cb);\n  };\n\n  LinesView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var pipelineContext = seriesModel.pipelineContext;\n\n    if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) {\n      // TODO Don't have to do update in large mode. Only do it when there are millions of data.\n      return {\n        update: true\n      };\n    } else {\n      // TODO Use same logic with ScatterView.\n      // Manually update layout\n      var res = linesLayout.reset(seriesModel, ecModel, api);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count(),\n          count: data.count()\n        }, data);\n      } // Not in large mode\n\n\n      this._lineDraw.updateLayout();\n\n      this._clearLayer(api);\n    }\n  };\n\n  LinesView.prototype._updateLineDraw = function (data, seriesModel) {\n    var lineDraw = this._lineDraw;\n\n    var hasEffect = this._showEffect(seriesModel);\n\n    var isPolyline = !!seriesModel.get('polyline');\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (hasEffect && isLargeDraw) {\n        console.warn('Large lines not support effect');\n      }\n    }\n\n    if (!lineDraw || hasEffect !== this._hasEffet || isPolyline !== this._isPolyline || isLargeDraw !== this._isLargeDraw) {\n      if (lineDraw) {\n        lineDraw.remove();\n      }\n\n      lineDraw = this._lineDraw = isLargeDraw ? new LargeLineDraw() : new LineDraw(isPolyline ? hasEffect ? EffectPolyline : Polyline : hasEffect ? EffectLine : Line);\n      this._hasEffet = hasEffect;\n      this._isPolyline = isPolyline;\n      this._isLargeDraw = isLargeDraw;\n    }\n\n    this.group.add(lineDraw.group);\n    return lineDraw;\n  };\n\n  LinesView.prototype._showEffect = function (seriesModel) {\n    return !!seriesModel.get(['effect', 'show']);\n  };\n\n  LinesView.prototype._clearLayer = function (api) {\n    // Not use motion when dragging or zooming\n    var zr = api.getZr();\n    var isSvg = zr.painter.getType() === 'svg';\n\n    if (!isSvg && this._lastZlevel != null) {\n      zr.painter.getLayer(this._lastZlevel).clear(true);\n    }\n  };\n\n  LinesView.prototype.remove = function (ecModel, api) {\n    this._lineDraw && this._lineDraw.remove();\n    this._lineDraw = null; // Clear motion when lineDraw is removed\n\n    this._clearLayer(api);\n  };\n\n  LinesView.prototype.dispose = function (ecModel, api) {\n    this.remove(ecModel, api);\n  };\n\n  LinesView.type = 'lines';\n  return LinesView;\n}(ChartView);\n\nexport default LinesView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/* global Uint32Array, Float64Array, Float32Array */\n\nimport SeriesModel from '../../model/Series.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport { concatArray, mergeAll, map, isNumber } from 'zrender/lib/core/util.js';\nimport CoordinateSystem from '../../core/CoordinateSystem.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\nvar Uint32Arr = typeof Uint32Array === 'undefined' ? Array : Uint32Array;\nvar Float64Arr = typeof Float64Array === 'undefined' ? Array : Float64Array;\n\nfunction compatEc2(seriesOpt) {\n  var data = seriesOpt.data;\n\n  if (data && data[0] && data[0][0] && data[0][0].coord) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Lines data configuration has been changed to' + ' { coords:[[1,2],[2,3]] }');\n    }\n\n    seriesOpt.data = map(data, function (itemOpt) {\n      var coords = [itemOpt[0].coord, itemOpt[1].coord];\n      var target = {\n        coords: coords\n      };\n\n      if (itemOpt[0].name) {\n        target.fromName = itemOpt[0].name;\n      }\n\n      if (itemOpt[1].name) {\n        target.toName = itemOpt[1].name;\n      }\n\n      return mergeAll([target, itemOpt[0], itemOpt[1]]);\n    });\n  }\n}\n\nvar LinesSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(LinesSeriesModel, _super);\n\n  function LinesSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LinesSeriesModel.type;\n    _this.visualStyleAccessPath = 'lineStyle';\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  LinesSeriesModel.prototype.init = function (option) {\n    // The input data may be null/undefined.\n    option.data = option.data || []; // Not using preprocessor because mergeOption may not have series.type\n\n    compatEc2(option);\n\n    var result = this._processFlatCoordsArray(option.data);\n\n    this._flatCoords = result.flatCoords;\n    this._flatCoordsOffset = result.flatCoordsOffset;\n\n    if (result.flatCoords) {\n      option.data = new Float32Array(result.count);\n    }\n\n    _super.prototype.init.apply(this, arguments);\n  };\n\n  LinesSeriesModel.prototype.mergeOption = function (option) {\n    compatEc2(option);\n\n    if (option.data) {\n      // Only update when have option data to merge.\n      var result = this._processFlatCoordsArray(option.data);\n\n      this._flatCoords = result.flatCoords;\n      this._flatCoordsOffset = result.flatCoordsOffset;\n\n      if (result.flatCoords) {\n        option.data = new Float32Array(result.count);\n      }\n    }\n\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n\n  LinesSeriesModel.prototype.appendData = function (params) {\n    var result = this._processFlatCoordsArray(params.data);\n\n    if (result.flatCoords) {\n      if (!this._flatCoords) {\n        this._flatCoords = result.flatCoords;\n        this._flatCoordsOffset = result.flatCoordsOffset;\n      } else {\n        this._flatCoords = concatArray(this._flatCoords, result.flatCoords);\n        this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset);\n      }\n\n      params.data = new Float32Array(result.count);\n    }\n\n    this.getRawData().appendData(params.data);\n  };\n\n  LinesSeriesModel.prototype._getCoordsFromItemModel = function (idx) {\n    var itemModel = this.getData().getItemModel(idx);\n    var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.getShallow('coords');\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!(coords instanceof Array && coords.length > 0 && coords[0] instanceof Array)) {\n        throw new Error('Invalid coords ' + JSON.stringify(coords) + '. Lines must have 2d coords array in data item.');\n      }\n    }\n\n    return coords;\n  };\n\n  LinesSeriesModel.prototype.getLineCoordsCount = function (idx) {\n    if (this._flatCoordsOffset) {\n      return this._flatCoordsOffset[idx * 2 + 1];\n    } else {\n      return this._getCoordsFromItemModel(idx).length;\n    }\n  };\n\n  LinesSeriesModel.prototype.getLineCoords = function (idx, out) {\n    if (this._flatCoordsOffset) {\n      var offset = this._flatCoordsOffset[idx * 2];\n      var len = this._flatCoordsOffset[idx * 2 + 1];\n\n      for (var i = 0; i < len; i++) {\n        out[i] = out[i] || [];\n        out[i][0] = this._flatCoords[offset + i * 2];\n        out[i][1] = this._flatCoords[offset + i * 2 + 1];\n      }\n\n      return len;\n    } else {\n      var coords = this._getCoordsFromItemModel(idx);\n\n      for (var i = 0; i < coords.length; i++) {\n        out[i] = out[i] || [];\n        out[i][0] = coords[i][0];\n        out[i][1] = coords[i][1];\n      }\n\n      return coords.length;\n    }\n  };\n\n  LinesSeriesModel.prototype._processFlatCoordsArray = function (data) {\n    var startOffset = 0;\n\n    if (this._flatCoords) {\n      startOffset = this._flatCoords.length;\n    } // Stored as a typed array. In format\n    // Points Count(2) | x | y | x | y | Points Count(3) | x |  y | x | y | x | y |\n\n\n    if (isNumber(data[0])) {\n      var len = data.length; // Store offset and len of each segment\n\n      var coordsOffsetAndLenStorage = new Uint32Arr(len);\n      var coordsStorage = new Float64Arr(len);\n      var coordsCursor = 0;\n      var offsetCursor = 0;\n      var dataCount = 0;\n\n      for (var i = 0; i < len;) {\n        dataCount++;\n        var count = data[i++]; // Offset\n\n        coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset; // Len\n\n        coordsOffsetAndLenStorage[offsetCursor++] = count;\n\n        for (var k = 0; k < count; k++) {\n          var x = data[i++];\n          var y = data[i++];\n          coordsStorage[coordsCursor++] = x;\n          coordsStorage[coordsCursor++] = y;\n\n          if (i > len) {\n            if (process.env.NODE_ENV !== 'production') {\n              throw new Error('Invalid data format.');\n            }\n          }\n        }\n      }\n\n      return {\n        flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor),\n        flatCoords: coordsStorage,\n        count: dataCount\n      };\n    }\n\n    return {\n      flatCoordsOffset: null,\n      flatCoords: null,\n      count: data.length\n    };\n  };\n\n  LinesSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    if (process.env.NODE_ENV !== 'production') {\n      var CoordSys = CoordinateSystem.get(option.coordinateSystem);\n\n      if (!CoordSys) {\n        throw new Error('Unkown coordinate system ' + option.coordinateSystem);\n      }\n    }\n\n    var lineData = new SeriesData(['value'], this);\n    lineData.hasItemOption = false;\n    lineData.initData(option.data, [], function (dataItem, dimName, dataIndex, dimIndex) {\n      // dataItem is simply coords\n      if (dataItem instanceof Array) {\n        return NaN;\n      } else {\n        lineData.hasItemOption = true;\n        var value = dataItem.value;\n\n        if (value != null) {\n          return value instanceof Array ? value[dimIndex] : value;\n        }\n      }\n    });\n    return lineData;\n  };\n\n  LinesSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var itemModel = data.getItemModel(dataIndex);\n    var name = itemModel.get('name');\n\n    if (name) {\n      return name;\n    }\n\n    var fromName = itemModel.get('fromName');\n    var toName = itemModel.get('toName');\n    var nameArr = [];\n    fromName != null && nameArr.push(fromName);\n    toName != null && nameArr.push(toName);\n    return createTooltipMarkup('nameValue', {\n      name: nameArr.join(' > ')\n    });\n  };\n\n  LinesSeriesModel.prototype.preventIncremental = function () {\n    return !!this.get(['effect', 'show']);\n  };\n\n  LinesSeriesModel.prototype.getProgressive = function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      return this.option.large ? 1e4 : this.get('progressive');\n    }\n\n    return progressive;\n  };\n\n  LinesSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      return this.option.large ? 2e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  };\n\n  LinesSeriesModel.prototype.getZLevelKey = function () {\n    var effectModel = this.getModel('effect');\n    var trailLength = effectModel.get('trailLength');\n    return this.getData().count() > this.getProgressiveThreshold() // Each progressive series has individual key.\n    ? this.id : effectModel.get('show') && trailLength > 0 ? trailLength + '' : '';\n  };\n\n  LinesSeriesModel.type = 'series.lines';\n  LinesSeriesModel.dependencies = ['grid', 'polar', 'geo', 'calendar'];\n  LinesSeriesModel.defaultOption = {\n    coordinateSystem: 'geo',\n    // zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    // Cartesian coordinate system\n    xAxisIndex: 0,\n    yAxisIndex: 0,\n    symbol: ['none', 'none'],\n    symbolSize: [10, 10],\n    // Geo coordinate system\n    geoIndex: 0,\n    effect: {\n      show: false,\n      period: 4,\n      constantSpeed: 0,\n      symbol: 'circle',\n      symbolSize: 3,\n      loop: true,\n      trailLength: 0.2\n    },\n    large: false,\n    // Available when large is true\n    largeThreshold: 2000,\n    polyline: false,\n    clip: true,\n    label: {\n      show: false,\n      position: 'end' // distance: 5,\n      // formatter: 标签文本格式器，同Tooltip.formatter，不支持异步回调\n\n    },\n    lineStyle: {\n      opacity: 0.5\n    }\n  };\n  return LinesSeriesModel;\n}(SeriesModel);\n\nexport default LinesSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction normalize(a) {\n  if (!(a instanceof Array)) {\n    a = [a, a];\n  }\n\n  return a;\n}\n\nvar linesVisual = {\n  seriesType: 'lines',\n  reset: function (seriesModel) {\n    var symbolType = normalize(seriesModel.get('symbol'));\n    var symbolSize = normalize(seriesModel.get('symbolSize'));\n    var data = seriesModel.getData();\n    data.setVisual('fromSymbol', symbolType && symbolType[0]);\n    data.setVisual('toSymbol', symbolType && symbolType[1]);\n    data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n    data.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var symbolType = normalize(itemModel.getShallow('symbol', true));\n      var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n      symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]);\n      symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]);\n      symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]);\n      symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]);\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nexport default linesVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport LinesView from './LinesView.js';\nimport LinesSeriesModel from './LinesSeries.js';\nimport linesLayout from './linesLayout.js';\nimport linesVisual from './linesVisual.js';\nexport function install(registers) {\n  registers.registerChartView(LinesView);\n  registers.registerSeriesModel(LinesSeriesModel);\n  registers.registerLayout(linesLayout);\n  registers.registerVisual(linesVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Uint8ClampedArray */\nimport { platformApi } from 'zrender/lib/core/platform.js';\nvar GRADIENT_LEVELS = 256;\n\nvar HeatmapLayer =\n/** @class */\nfunction () {\n  function HeatmapLayer() {\n    this.blurSize = 30;\n    this.pointSize = 20;\n    this.maxOpacity = 1;\n    this.minOpacity = 0;\n    this._gradientPixels = {\n      inRange: null,\n      outOfRange: null\n    };\n    var canvas = platformApi.createCanvas();\n    this.canvas = canvas;\n  }\n  /**\n   * Renders Heatmap and returns the rendered canvas\n   * @param data array of data, each has x, y, value\n   * @param width canvas width\n   * @param height canvas height\n   */\n\n\n  HeatmapLayer.prototype.update = function (data, width, height, normalize, colorFunc, isInRange) {\n    var brush = this._getBrush();\n\n    var gradientInRange = this._getGradient(colorFunc, 'inRange');\n\n    var gradientOutOfRange = this._getGradient(colorFunc, 'outOfRange');\n\n    var r = this.pointSize + this.blurSize;\n    var canvas = this.canvas;\n    var ctx = canvas.getContext('2d');\n    var len = data.length;\n    canvas.width = width;\n    canvas.height = height;\n\n    for (var i = 0; i < len; ++i) {\n      var p = data[i];\n      var x = p[0];\n      var y = p[1];\n      var value = p[2]; // calculate alpha using value\n\n      var alpha = normalize(value); // draw with the circle brush with alpha\n\n      ctx.globalAlpha = alpha;\n      ctx.drawImage(brush, x - r, y - r);\n    }\n\n    if (!canvas.width || !canvas.height) {\n      // Avoid \"Uncaught DOMException: Failed to execute 'getImageData' on\n      // 'CanvasRenderingContext2D': The source height is 0.\"\n      return canvas;\n    } // colorize the canvas using alpha value and set with gradient\n\n\n    var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n    var pixels = imageData.data;\n    var offset = 0;\n    var pixelLen = pixels.length;\n    var minOpacity = this.minOpacity;\n    var maxOpacity = this.maxOpacity;\n    var diffOpacity = maxOpacity - minOpacity;\n\n    while (offset < pixelLen) {\n      var alpha = pixels[offset + 3] / 256;\n      var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4; // Simple optimize to ignore the empty data\n\n      if (alpha > 0) {\n        var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange; // Any alpha > 0 will be mapped to [minOpacity, maxOpacity]\n\n        alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\n        pixels[offset++] = gradient[gradientOffset];\n        pixels[offset++] = gradient[gradientOffset + 1];\n        pixels[offset++] = gradient[gradientOffset + 2];\n        pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\n      } else {\n        offset += 4;\n      }\n    }\n\n    ctx.putImageData(imageData, 0, 0);\n    return canvas;\n  };\n  /**\n   * get canvas of a black circle brush used for canvas to draw later\n   */\n\n\n  HeatmapLayer.prototype._getBrush = function () {\n    var brushCanvas = this._brushCanvas || (this._brushCanvas = platformApi.createCanvas()); // set brush size\n\n    var r = this.pointSize + this.blurSize;\n    var d = r * 2;\n    brushCanvas.width = d;\n    brushCanvas.height = d;\n    var ctx = brushCanvas.getContext('2d');\n    ctx.clearRect(0, 0, d, d); // in order to render shadow without the distinct circle,\n    // draw the distinct circle in an invisible place,\n    // and use shadowOffset to draw shadow in the center of the canvas\n\n    ctx.shadowOffsetX = d;\n    ctx.shadowBlur = this.blurSize; // draw the shadow in black, and use alpha and shadow blur to generate\n    // color in color map\n\n    ctx.shadowColor = '#000'; // draw circle in the left to the canvas\n\n    ctx.beginPath();\n    ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\n    ctx.closePath();\n    ctx.fill();\n    return brushCanvas;\n  };\n  /**\n   * get gradient color map\n   * @private\n   */\n\n\n  HeatmapLayer.prototype._getGradient = function (colorFunc, state) {\n    var gradientPixels = this._gradientPixels;\n    var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\n    var color = [0, 0, 0, 0];\n    var off = 0;\n\n    for (var i = 0; i < 256; i++) {\n      colorFunc[state](i / 255, true, color);\n      pixelsSingleState[off++] = color[0];\n      pixelsSingleState[off++] = color[1];\n      pixelsSingleState[off++] = color[2];\n      pixelsSingleState[off++] = color[3];\n    }\n\n    return pixelsSingleState;\n  };\n\n  return HeatmapLayer;\n}();\n\nexport default HeatmapLayer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis } from '../../util/states.js';\nimport HeatmapLayer from './HeatmapLayer.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ChartView from '../../view/Chart.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\n\nfunction getIsInPiecewiseRange(dataExtent, pieceList, selected) {\n  var dataSpan = dataExtent[1] - dataExtent[0];\n  pieceList = zrUtil.map(pieceList, function (piece) {\n    return {\n      interval: [(piece.interval[0] - dataExtent[0]) / dataSpan, (piece.interval[1] - dataExtent[0]) / dataSpan]\n    };\n  });\n  var len = pieceList.length;\n  var lastIndex = 0;\n  return function (val) {\n    var i; // Try to find in the location of the last found\n\n    for (i = lastIndex; i < len; i++) {\n      var interval = pieceList[i].interval;\n\n      if (interval[0] <= val && val <= interval[1]) {\n        lastIndex = i;\n        break;\n      }\n    }\n\n    if (i === len) {\n      // Not found, back interation\n      for (i = lastIndex - 1; i >= 0; i--) {\n        var interval = pieceList[i].interval;\n\n        if (interval[0] <= val && val <= interval[1]) {\n          lastIndex = i;\n          break;\n        }\n      }\n    }\n\n    return i >= 0 && i < len && selected[i];\n  };\n}\n\nfunction getIsInContinuousRange(dataExtent, range) {\n  var dataSpan = dataExtent[1] - dataExtent[0];\n  range = [(range[0] - dataExtent[0]) / dataSpan, (range[1] - dataExtent[0]) / dataSpan];\n  return function (val) {\n    return val >= range[0] && val <= range[1];\n  };\n}\n\nfunction isGeoCoordSys(coordSys) {\n  var dimensions = coordSys.dimensions; // Not use coorSys.type === 'geo' because coordSys maybe extended\n\n  return dimensions[0] === 'lng' && dimensions[1] === 'lat';\n}\n\nvar HeatmapView =\n/** @class */\nfunction (_super) {\n  __extends(HeatmapView, _super);\n\n  function HeatmapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = HeatmapView.type;\n    return _this;\n  }\n\n  HeatmapView.prototype.render = function (seriesModel, ecModel, api) {\n    var visualMapOfThisSeries;\n    ecModel.eachComponent('visualMap', function (visualMap) {\n      visualMap.eachTargetSeries(function (targetSeries) {\n        if (targetSeries === seriesModel) {\n          visualMapOfThisSeries = visualMap;\n        }\n      });\n    });\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!visualMapOfThisSeries) {\n        throw new Error('Heatmap must use with visualMap');\n      }\n    } // Clear previously rendered progressive elements.\n\n\n    this._progressiveEls = null;\n    this.group.removeAll();\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys.type === 'cartesian2d' || coordSys.type === 'calendar') {\n      this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count());\n    } else if (isGeoCoordSys(coordSys)) {\n      this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api);\n    }\n  };\n\n  HeatmapView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this.group.removeAll();\n  };\n\n  HeatmapView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys) {\n      // geo does not support incremental rendering?\n      if (isGeoCoordSys(coordSys)) {\n        this.render(seriesModel, ecModel, api);\n      } else {\n        this._progressiveEls = [];\n\n        this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true);\n      }\n    }\n  };\n\n  HeatmapView.prototype.eachRendered = function (cb) {\n    graphic.traverseElements(this._progressiveEls || this.group, cb);\n  };\n\n  HeatmapView.prototype._renderOnCartesianAndCalendar = function (seriesModel, api, start, end, incremental) {\n    var coordSys = seriesModel.coordinateSystem;\n    var isCartesian2d = isCoordinateSystemType(coordSys, 'cartesian2d');\n    var width;\n    var height;\n    var xAxisExtent;\n    var yAxisExtent;\n\n    if (isCartesian2d) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!(xAxis.type === 'category' && yAxis.type === 'category')) {\n          throw new Error('Heatmap on cartesian must have two category axes');\n        }\n\n        if (!(xAxis.onBand && yAxis.onBand)) {\n          throw new Error('Heatmap on cartesian must have two axes with boundaryGap true');\n        }\n      } // add 0.5px to avoid the gaps\n\n\n      width = xAxis.getBandWidth() + .5;\n      height = yAxis.getBandWidth() + .5;\n      xAxisExtent = xAxis.scale.getExtent();\n      yAxisExtent = yAxis.scale.getExtent();\n    }\n\n    var group = this.group;\n    var data = seriesModel.getData();\n    var emphasisStyle = seriesModel.getModel(['emphasis', 'itemStyle']).getItemStyle();\n    var blurStyle = seriesModel.getModel(['blur', 'itemStyle']).getItemStyle();\n    var selectStyle = seriesModel.getModel(['select', 'itemStyle']).getItemStyle();\n    var borderRadius = seriesModel.get(['itemStyle', 'borderRadius']);\n    var labelStatesModels = getLabelStatesModels(seriesModel);\n    var emphasisModel = seriesModel.getModel('emphasis');\n    var focus = emphasisModel.get('focus');\n    var blurScope = emphasisModel.get('blurScope');\n    var emphasisDisabled = emphasisModel.get('disabled');\n    var dataDims = isCartesian2d ? [data.mapDimension('x'), data.mapDimension('y'), data.mapDimension('value')] : [data.mapDimension('time'), data.mapDimension('value')];\n\n    for (var idx = start; idx < end; idx++) {\n      var rect = void 0;\n      var style = data.getItemVisual(idx, 'style');\n\n      if (isCartesian2d) {\n        var dataDimX = data.get(dataDims[0], idx);\n        var dataDimY = data.get(dataDims[1], idx); // Ignore empty data and out of extent data\n\n        if (isNaN(data.get(dataDims[2], idx)) || dataDimX < xAxisExtent[0] || dataDimX > xAxisExtent[1] || dataDimY < yAxisExtent[0] || dataDimY > yAxisExtent[1]) {\n          continue;\n        }\n\n        var point = coordSys.dataToPoint([dataDimX, dataDimY]);\n        rect = new graphic.Rect({\n          shape: {\n            x: point[0] - width / 2,\n            y: point[1] - height / 2,\n            width: width,\n            height: height\n          },\n          style: style\n        });\n      } else {\n        // Ignore empty data\n        if (isNaN(data.get(dataDims[1], idx))) {\n          continue;\n        }\n\n        rect = new graphic.Rect({\n          z2: 1,\n          shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,\n          style: style\n        });\n      } // Optimization for large datset\n\n\n      if (data.hasItemOption) {\n        var itemModel = data.getItemModel(idx);\n        var emphasisModel_1 = itemModel.getModel('emphasis');\n        emphasisStyle = emphasisModel_1.getModel('itemStyle').getItemStyle();\n        blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n        selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle(); // Each item value struct in the data would be firstly\n        // {\n        //     itemStyle: { borderRadius: [30, 30] },\n        //     value: [2022, 02, 22]\n        // }\n\n        borderRadius = itemModel.get(['itemStyle', 'borderRadius']);\n        focus = emphasisModel_1.get('focus');\n        blurScope = emphasisModel_1.get('blurScope');\n        emphasisDisabled = emphasisModel_1.get('disabled');\n        labelStatesModels = getLabelStatesModels(itemModel);\n      }\n\n      rect.shape.r = borderRadius;\n      var rawValue = seriesModel.getRawValue(idx);\n      var defaultText = '-';\n\n      if (rawValue && rawValue[2] != null) {\n        defaultText = rawValue[2] + '';\n      }\n\n      setLabelStyle(rect, labelStatesModels, {\n        labelFetcher: seriesModel,\n        labelDataIndex: idx,\n        defaultOpacity: style.opacity,\n        defaultText: defaultText\n      });\n      rect.ensureState('emphasis').style = emphasisStyle;\n      rect.ensureState('blur').style = blurStyle;\n      rect.ensureState('select').style = selectStyle;\n      toggleHoverEmphasis(rect, focus, blurScope, emphasisDisabled);\n      rect.incremental = incremental; // PENDING\n\n      if (incremental) {\n        // Rect must use hover layer if it's incremental.\n        rect.states.emphasis.hoverLayer = true;\n      }\n\n      group.add(rect);\n      data.setItemGraphicEl(idx, rect);\n\n      if (this._progressiveEls) {\n        this._progressiveEls.push(rect);\n      }\n    }\n  };\n\n  HeatmapView.prototype._renderOnGeo = function (geo, seriesModel, visualMapModel, api) {\n    var inRangeVisuals = visualMapModel.targetVisuals.inRange;\n    var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange; // if (!visualMapping) {\n    //     throw new Error('Data range must have color visuals');\n    // }\n\n    var data = seriesModel.getData();\n    var hmLayer = this._hmLayer || this._hmLayer || new HeatmapLayer();\n    hmLayer.blurSize = seriesModel.get('blurSize');\n    hmLayer.pointSize = seriesModel.get('pointSize');\n    hmLayer.minOpacity = seriesModel.get('minOpacity');\n    hmLayer.maxOpacity = seriesModel.get('maxOpacity');\n    var rect = geo.getViewRect().clone();\n    var roamTransform = geo.getRoamTransform();\n    rect.applyTransform(roamTransform); // Clamp on viewport\n\n    var x = Math.max(rect.x, 0);\n    var y = Math.max(rect.y, 0);\n    var x2 = Math.min(rect.width + rect.x, api.getWidth());\n    var y2 = Math.min(rect.height + rect.y, api.getHeight());\n    var width = x2 - x;\n    var height = y2 - y;\n    var dims = [data.mapDimension('lng'), data.mapDimension('lat'), data.mapDimension('value')];\n    var points = data.mapArray(dims, function (lng, lat, value) {\n      var pt = geo.dataToPoint([lng, lat]);\n      pt[0] -= x;\n      pt[1] -= y;\n      pt.push(value);\n      return pt;\n    });\n    var dataExtent = visualMapModel.getExtent();\n    var isInRange = visualMapModel.type === 'visualMap.continuous' ? getIsInContinuousRange(dataExtent, visualMapModel.option.range) : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected);\n    hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), {\n      inRange: inRangeVisuals.color.getColorMapper(),\n      outOfRange: outOfRangeVisuals.color.getColorMapper()\n    }, isInRange);\n    var img = new graphic.Image({\n      style: {\n        width: width,\n        height: height,\n        x: x,\n        y: y,\n        image: hmLayer.canvas\n      },\n      silent: true\n    });\n    this.group.add(img);\n  };\n\n  HeatmapView.type = 'heatmap';\n  return HeatmapView;\n}(ChartView);\n\nexport default HeatmapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport createSeriesData from '../helper/createSeriesData.js';\nimport CoordinateSystem from '../../core/CoordinateSystem.js';\n\nvar HeatmapSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(HeatmapSeriesModel, _super);\n\n  function HeatmapSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = HeatmapSeriesModel.type;\n    return _this;\n  }\n\n  HeatmapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createSeriesData(null, this, {\n      generateCoord: 'value'\n    });\n  };\n\n  HeatmapSeriesModel.prototype.preventIncremental = function () {\n    var coordSysCreator = CoordinateSystem.get(this.get('coordinateSystem'));\n\n    if (coordSysCreator && coordSysCreator.dimensions) {\n      return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat';\n    }\n  };\n\n  HeatmapSeriesModel.type = 'series.heatmap';\n  HeatmapSeriesModel.dependencies = ['grid', 'geo', 'calendar'];\n  HeatmapSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    // zlevel: 0,\n    z: 2,\n    // Cartesian coordinate system\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    // Geo coordinate system\n    geoIndex: 0,\n    blurSize: 30,\n    pointSize: 20,\n    maxOpacity: 1,\n    minOpacity: 0,\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return HeatmapSeriesModel;\n}(SeriesModel);\n\nexport default HeatmapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport HeatmapView from './HeatmapView.js';\nimport HeatmapSeriesModel from './HeatmapSeries.js';\nexport function install(registers) {\n  registers.registerChartView(HeatmapView);\n  registers.registerSeriesModel(HeatmapSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis } from '../../util/states.js';\nimport { createSymbol, normalizeSymbolOffset } from '../../util/symbol.js';\nimport { parsePercent, isNumeric } from '../../util/number.js';\nimport ChartView from '../../view/Chart.js';\nimport { getDefaultLabel } from '../helper/labelHelper.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport ZRImage from 'zrender/lib/graphic/Image.js';\nimport { getECData } from '../../util/innerStore.js';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth']; // index: +isHorizontal\n\nvar LAYOUT_ATTRS = [{\n  xy: 'x',\n  wh: 'width',\n  index: 0,\n  posDesc: ['left', 'right']\n}, {\n  xy: 'y',\n  wh: 'height',\n  index: 1,\n  posDesc: ['top', 'bottom']\n}];\nvar pathForLineWidth = new graphic.Circle();\n\nvar PictorialBarView =\n/** @class */\nfunction (_super) {\n  __extends(PictorialBarView, _super);\n\n  function PictorialBarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PictorialBarView.type;\n    return _this;\n  }\n\n  PictorialBarView.prototype.render = function (seriesModel, ecModel, api) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var coordSysRect = cartesian.master.getRect();\n    var opt = {\n      ecSize: {\n        width: api.getWidth(),\n        height: api.getHeight()\n      },\n      seriesModel: seriesModel,\n      coordSys: cartesian,\n      coordSysExtent: [[coordSysRect.x, coordSysRect.x + coordSysRect.width], [coordSysRect.y, coordSysRect.y + coordSysRect.height]],\n      isHorizontal: isHorizontal,\n      valueDim: LAYOUT_ATTRS[+isHorizontal],\n      categoryDim: LAYOUT_ATTRS[1 - +isHorizontal]\n    };\n    data.diff(oldData).add(function (dataIndex) {\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var itemModel = getItemModel(data, dataIndex);\n      var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);\n      var bar = createBar(data, opt, symbolMeta);\n      data.setItemGraphicEl(dataIndex, bar);\n      group.add(bar);\n      updateCommon(bar, opt, symbolMeta);\n    }).update(function (newIndex, oldIndex) {\n      var bar = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(bar);\n        return;\n      }\n\n      var itemModel = getItemModel(data, newIndex);\n      var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);\n      var pictorialShapeStr = getShapeStr(data, symbolMeta);\n\n      if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {\n        group.remove(bar);\n        data.setItemGraphicEl(newIndex, null);\n        bar = null;\n      }\n\n      if (bar) {\n        updateBar(bar, opt, symbolMeta);\n      } else {\n        bar = createBar(data, opt, symbolMeta, true);\n      }\n\n      data.setItemGraphicEl(newIndex, bar);\n      bar.__pictorialSymbolMeta = symbolMeta; // Add back\n\n      group.add(bar);\n      updateCommon(bar, opt, symbolMeta);\n    }).remove(function (dataIndex) {\n      var bar = oldData.getItemGraphicEl(dataIndex);\n      bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);\n    }).execute();\n    this._data = data;\n    return this.group;\n  };\n\n  PictorialBarView.prototype.remove = function (ecModel, api) {\n    var group = this.group;\n    var data = this._data;\n\n    if (ecModel.get('animation')) {\n      if (data) {\n        data.eachItemGraphicEl(function (bar) {\n          removeBar(data, getECData(bar).dataIndex, ecModel, bar);\n        });\n      }\n    } else {\n      group.removeAll();\n    }\n  };\n\n  PictorialBarView.type = 'pictorialBar';\n  return PictorialBarView;\n}(ChartView); // Set or calculate default value about symbol, and calculate layout info.\n\n\nfunction getSymbolMeta(data, dataIndex, itemModel, opt) {\n  var layout = data.getItemLayout(dataIndex);\n  var symbolRepeat = itemModel.get('symbolRepeat');\n  var symbolClip = itemModel.get('symbolClip');\n  var symbolPosition = itemModel.get('symbolPosition') || 'start';\n  var symbolRotate = itemModel.get('symbolRotate');\n  var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n  var symbolPatternSize = itemModel.get('symbolPatternSize') || 2;\n  var isAnimationEnabled = itemModel.isAnimationEnabled();\n  var symbolMeta = {\n    dataIndex: dataIndex,\n    layout: layout,\n    itemModel: itemModel,\n    symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle',\n    style: data.getItemVisual(dataIndex, 'style'),\n    symbolClip: symbolClip,\n    symbolRepeat: symbolRepeat,\n    symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\n    symbolPatternSize: symbolPatternSize,\n    rotation: rotation,\n    animationModel: isAnimationEnabled ? itemModel : null,\n    hoverScale: isAnimationEnabled && itemModel.get(['emphasis', 'scale']),\n    z2: itemModel.getShallow('z', true) || 0\n  };\n  prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta);\n  prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);\n  prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);\n  var symbolSize = symbolMeta.symbolSize;\n  var symbolOffset = normalizeSymbolOffset(itemModel.get('symbolOffset'), symbolSize);\n  prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);\n  return symbolMeta;\n} // bar length can be negative.\n\n\nfunction prepareBarLength(itemModel, symbolRepeat, layout, opt, outputSymbolMeta) {\n  var valueDim = opt.valueDim;\n  var symbolBoundingData = itemModel.get('symbolBoundingData');\n  var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());\n  var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));\n  var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0);\n  var boundingLength;\n\n  if (zrUtil.isArray(symbolBoundingData)) {\n    var symbolBoundingExtent = [convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx, convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx];\n    symbolBoundingExtent[1] < symbolBoundingExtent[0] && symbolBoundingExtent.reverse();\n    boundingLength = symbolBoundingExtent[pxSignIdx];\n  } else if (symbolBoundingData != null) {\n    boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;\n  } else if (symbolRepeat) {\n    boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;\n  } else {\n    boundingLength = layout[valueDim.wh];\n  }\n\n  outputSymbolMeta.boundingLength = boundingLength;\n\n  if (symbolRepeat) {\n    outputSymbolMeta.repeatCutLength = layout[valueDim.wh];\n  } // if 'pxSign' means sign of pixel,  it can't be zero, or symbolScale will be zero\n  // and when borderWidth be settled, the actual linewidth will be NaN\n\n\n  outputSymbolMeta.pxSign = boundingLength > 0 ? 1 : -1;\n}\n\nfunction convertToCoordOnAxis(axis, value) {\n  return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));\n} // Support ['100%', '100%']\n\n\nfunction prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, outputSymbolMeta) {\n  var valueDim = opt.valueDim;\n  var categoryDim = opt.categoryDim;\n  var categorySize = Math.abs(layout[categoryDim.wh]);\n  var symbolSize = data.getItemVisual(dataIndex, 'symbolSize');\n  var parsedSymbolSize;\n\n  if (zrUtil.isArray(symbolSize)) {\n    parsedSymbolSize = symbolSize.slice();\n  } else {\n    if (symbolSize == null) {\n      // will parse to number below\n      parsedSymbolSize = ['100%', '100%'];\n    } else {\n      parsedSymbolSize = [symbolSize, symbolSize];\n    }\n  } // Note: percentage symbolSize (like '100%') do not consider lineWidth, because it is\n  // to complicated to calculate real percent value if considering scaled lineWidth.\n  // So the actual size will bigger than layout size if lineWidth is bigger than zero,\n  // which can be tolerated in pictorial chart.\n\n\n  parsedSymbolSize[categoryDim.index] = parsePercent(parsedSymbolSize[categoryDim.index], categorySize);\n  parsedSymbolSize[valueDim.index] = parsePercent(parsedSymbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\n  outputSymbolMeta.symbolSize = parsedSymbolSize; // If x or y is less than zero, show reversed shape.\n\n  var symbolScale = outputSymbolMeta.symbolScale = [parsedSymbolSize[0] / symbolPatternSize, parsedSymbolSize[1] / symbolPatternSize]; // Follow convention, 'right' and 'top' is the normal scale.\n\n  symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\n}\n\nfunction prepareLineWidth(itemModel, symbolScale, rotation, opt, outputSymbolMeta) {\n  // In symbols are drawn with scale, so do not need to care about the case that width\n  // or height are too small. But symbol use strokeNoScale, where acture lineWidth should\n  // be calculated.\n  var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n\n  if (valueLineWidth) {\n    pathForLineWidth.attr({\n      scaleX: symbolScale[0],\n      scaleY: symbolScale[1],\n      rotation: rotation\n    });\n    pathForLineWidth.updateTransform();\n    valueLineWidth /= pathForLineWidth.getLineScale();\n    valueLineWidth *= symbolScale[opt.valueDim.index];\n  }\n\n  outputSymbolMeta.valueLineWidth = valueLineWidth || 0;\n}\n\nfunction prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, outputSymbolMeta) {\n  var categoryDim = opt.categoryDim;\n  var valueDim = opt.valueDim;\n  var pxSign = outputSymbolMeta.pxSign;\n  var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\n  var pathLen = unitLength; // Note: rotation will not effect the layout of symbols, because user may\n  // want symbols to rotate on its center, which should not be translated\n  // when rotating.\n\n  if (symbolRepeat) {\n    var absBoundingLength = Math.abs(boundingLength);\n    var symbolMargin = zrUtil.retrieve(itemModel.get('symbolMargin'), '15%') + '';\n    var hasEndGap = false;\n\n    if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) {\n      hasEndGap = true;\n      symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);\n    }\n\n    var symbolMarginNumeric = parsePercent(symbolMargin, symbolSize[valueDim.index]);\n    var uLenWithMargin = Math.max(unitLength + symbolMarginNumeric * 2, 0); // When symbol margin is less than 0, margin at both ends will be subtracted\n    // to ensure that all of the symbols will not be overflow the given area.\n\n    var endFix = hasEndGap ? 0 : symbolMarginNumeric * 2; // Both final repeatTimes and final symbolMarginNumeric area calculated based on\n    // boundingLength.\n\n    var repeatSpecified = isNumeric(symbolRepeat);\n    var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin); // Adjust calculate margin, to ensure each symbol is displayed\n    // entirely in the given layout area.\n\n    var mDiff = absBoundingLength - repeatTimes * unitLength;\n    symbolMarginNumeric = mDiff / 2 / (hasEndGap ? repeatTimes : Math.max(repeatTimes - 1, 1));\n    uLenWithMargin = unitLength + symbolMarginNumeric * 2;\n    endFix = hasEndGap ? 0 : symbolMarginNumeric * 2; // Update repeatTimes when not all symbol will be shown.\n\n    if (!repeatSpecified && symbolRepeat !== 'fixed') {\n      repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0;\n    }\n\n    pathLen = repeatTimes * uLenWithMargin - endFix;\n    outputSymbolMeta.repeatTimes = repeatTimes;\n    outputSymbolMeta.symbolMargin = symbolMarginNumeric;\n  }\n\n  var sizeFix = pxSign * (pathLen / 2);\n  var pathPosition = outputSymbolMeta.pathPosition = [];\n  pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\n  pathPosition[valueDim.index] = symbolPosition === 'start' ? sizeFix : symbolPosition === 'end' ? boundingLength - sizeFix : boundingLength / 2; // 'center'\n\n  if (symbolOffset) {\n    pathPosition[0] += symbolOffset[0];\n    pathPosition[1] += symbolOffset[1];\n  }\n\n  var bundlePosition = outputSymbolMeta.bundlePosition = [];\n  bundlePosition[categoryDim.index] = layout[categoryDim.xy];\n  bundlePosition[valueDim.index] = layout[valueDim.xy];\n  var barRectShape = outputSymbolMeta.barRectShape = zrUtil.extend({}, layout);\n  barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));\n  barRectShape[categoryDim.wh] = layout[categoryDim.wh];\n  var clipShape = outputSymbolMeta.clipShape = {}; // Consider that symbol may be overflow layout rect.\n\n  clipShape[categoryDim.xy] = -layout[categoryDim.xy];\n  clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];\n  clipShape[valueDim.xy] = 0;\n  clipShape[valueDim.wh] = layout[valueDim.wh];\n}\n\nfunction createPath(symbolMeta) {\n  var symbolPatternSize = symbolMeta.symbolPatternSize;\n  var path = createSymbol( // Consider texture img, make a big size.\n  symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize);\n  path.attr({\n    culling: true\n  });\n  path.type !== 'image' && path.setStyle({\n    strokeNoScale: true\n  });\n  return path;\n}\n\nfunction createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {\n  var bundle = bar.__pictorialBundle;\n  var symbolSize = symbolMeta.symbolSize;\n  var valueLineWidth = symbolMeta.valueLineWidth;\n  var pathPosition = symbolMeta.pathPosition;\n  var valueDim = opt.valueDim;\n  var repeatTimes = symbolMeta.repeatTimes || 0;\n  var index = 0;\n  var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;\n  eachPath(bar, function (path) {\n    path.__pictorialAnimationIndex = index;\n    path.__pictorialRepeatTimes = repeatTimes;\n\n    if (index < repeatTimes) {\n      updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate);\n    } else {\n      updateAttr(path, null, {\n        scaleX: 0,\n        scaleY: 0\n      }, symbolMeta, isUpdate, function () {\n        bundle.remove(path);\n      });\n    } // updateHoverAnimation(path, symbolMeta);\n\n\n    index++;\n  });\n\n  for (; index < repeatTimes; index++) {\n    var path = createPath(symbolMeta);\n    path.__pictorialAnimationIndex = index;\n    path.__pictorialRepeatTimes = repeatTimes;\n    bundle.add(path);\n    var target = makeTarget(index);\n    updateAttr(path, {\n      x: target.x,\n      y: target.y,\n      scaleX: 0,\n      scaleY: 0\n    }, {\n      scaleX: target.scaleX,\n      scaleY: target.scaleY,\n      rotation: target.rotation\n    }, symbolMeta, isUpdate);\n  }\n\n  function makeTarget(index) {\n    var position = pathPosition.slice(); // (start && pxSign > 0) || (end && pxSign < 0): i = repeatTimes - index\n    // Otherwise: i = index;\n\n    var pxSign = symbolMeta.pxSign;\n    var i = index;\n\n    if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) {\n      i = repeatTimes - 1 - index;\n    }\n\n    position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];\n    return {\n      x: position[0],\n      y: position[1],\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1],\n      rotation: symbolMeta.rotation\n    };\n  }\n}\n\nfunction createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {\n  var bundle = bar.__pictorialBundle;\n  var mainPath = bar.__pictorialMainPath;\n\n  if (!mainPath) {\n    mainPath = bar.__pictorialMainPath = createPath(symbolMeta);\n    bundle.add(mainPath);\n    updateAttr(mainPath, {\n      x: symbolMeta.pathPosition[0],\n      y: symbolMeta.pathPosition[1],\n      scaleX: 0,\n      scaleY: 0,\n      rotation: symbolMeta.rotation\n    }, {\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1]\n    }, symbolMeta, isUpdate);\n  } else {\n    updateAttr(mainPath, null, {\n      x: symbolMeta.pathPosition[0],\n      y: symbolMeta.pathPosition[1],\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1],\n      rotation: symbolMeta.rotation\n    }, symbolMeta, isUpdate);\n  }\n} // bar rect is used for label.\n\n\nfunction createOrUpdateBarRect(bar, symbolMeta, isUpdate) {\n  var rectShape = zrUtil.extend({}, symbolMeta.barRectShape);\n  var barRect = bar.__pictorialBarRect;\n\n  if (!barRect) {\n    barRect = bar.__pictorialBarRect = new graphic.Rect({\n      z2: 2,\n      shape: rectShape,\n      silent: true,\n      style: {\n        stroke: 'transparent',\n        fill: 'transparent',\n        lineWidth: 0\n      }\n    });\n    barRect.disableMorphing = true;\n    bar.add(barRect);\n  } else {\n    updateAttr(barRect, null, {\n      shape: rectShape\n    }, symbolMeta, isUpdate);\n  }\n}\n\nfunction createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {\n  // If not clip, symbol will be remove and rebuilt.\n  if (symbolMeta.symbolClip) {\n    var clipPath = bar.__pictorialClipPath;\n    var clipShape = zrUtil.extend({}, symbolMeta.clipShape);\n    var valueDim = opt.valueDim;\n    var animationModel = symbolMeta.animationModel;\n    var dataIndex = symbolMeta.dataIndex;\n\n    if (clipPath) {\n      graphic.updateProps(clipPath, {\n        shape: clipShape\n      }, animationModel, dataIndex);\n    } else {\n      clipShape[valueDim.wh] = 0;\n      clipPath = new graphic.Rect({\n        shape: clipShape\n      });\n\n      bar.__pictorialBundle.setClipPath(clipPath);\n\n      bar.__pictorialClipPath = clipPath;\n      var target = {};\n      target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];\n      graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, {\n        shape: target\n      }, animationModel, dataIndex);\n    }\n  }\n}\n\nfunction getItemModel(data, dataIndex) {\n  var itemModel = data.getItemModel(dataIndex);\n  itemModel.getAnimationDelayParams = getAnimationDelayParams;\n  itemModel.isAnimationEnabled = isAnimationEnabled;\n  return itemModel;\n}\n\nfunction getAnimationDelayParams(path) {\n  // The order is the same as the z-order, see `symbolRepeatDiretion`.\n  return {\n    index: path.__pictorialAnimationIndex,\n    count: path.__pictorialRepeatTimes\n  };\n}\n\nfunction isAnimationEnabled() {\n  // `animation` prop can be set on itemModel in pictorial bar chart.\n  return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\n}\n\nfunction createBar(data, opt, symbolMeta, isUpdate) {\n  // bar is the main element for each data.\n  var bar = new graphic.Group(); // bundle is used for location and clip.\n\n  var bundle = new graphic.Group();\n  bar.add(bundle);\n  bar.__pictorialBundle = bundle;\n  bundle.x = symbolMeta.bundlePosition[0];\n  bundle.y = symbolMeta.bundlePosition[1];\n\n  if (symbolMeta.symbolRepeat) {\n    createOrUpdateRepeatSymbols(bar, opt, symbolMeta);\n  } else {\n    createOrUpdateSingleSymbol(bar, opt, symbolMeta);\n  }\n\n  createOrUpdateBarRect(bar, symbolMeta, isUpdate);\n  createOrUpdateClip(bar, opt, symbolMeta, isUpdate);\n  bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);\n  bar.__pictorialSymbolMeta = symbolMeta;\n  return bar;\n}\n\nfunction updateBar(bar, opt, symbolMeta) {\n  var animationModel = symbolMeta.animationModel;\n  var dataIndex = symbolMeta.dataIndex;\n  var bundle = bar.__pictorialBundle;\n  graphic.updateProps(bundle, {\n    x: symbolMeta.bundlePosition[0],\n    y: symbolMeta.bundlePosition[1]\n  }, animationModel, dataIndex);\n\n  if (symbolMeta.symbolRepeat) {\n    createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);\n  } else {\n    createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);\n  }\n\n  createOrUpdateBarRect(bar, symbolMeta, true);\n  createOrUpdateClip(bar, opt, symbolMeta, true);\n}\n\nfunction removeBar(data, dataIndex, animationModel, bar) {\n  // Not show text when animating\n  var labelRect = bar.__pictorialBarRect;\n  labelRect && labelRect.removeTextContent();\n  var paths = [];\n  eachPath(bar, function (path) {\n    paths.push(path);\n  });\n  bar.__pictorialMainPath && paths.push(bar.__pictorialMainPath); // I do not find proper remove animation for clip yet.\n\n  bar.__pictorialClipPath && (animationModel = null);\n  zrUtil.each(paths, function (path) {\n    graphic.removeElement(path, {\n      scaleX: 0,\n      scaleY: 0\n    }, animationModel, dataIndex, function () {\n      bar.parent && bar.parent.remove(bar);\n    });\n  });\n  data.setItemGraphicEl(dataIndex, null);\n}\n\nfunction getShapeStr(data, symbolMeta) {\n  return [data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none', !!symbolMeta.symbolRepeat, !!symbolMeta.symbolClip].join(':');\n}\n\nfunction eachPath(bar, cb, context) {\n  // Do not use Group#eachChild, because it do not support remove.\n  zrUtil.each(bar.__pictorialBundle.children(), function (el) {\n    el !== bar.__pictorialBarRect && cb.call(context, el);\n  });\n}\n\nfunction updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {\n  immediateAttrs && el.attr(immediateAttrs); // when symbolCip used, only clip path has init animation, otherwise it would be weird effect.\n\n  if (symbolMeta.symbolClip && !isUpdate) {\n    animationAttrs && el.attr(animationAttrs);\n  } else {\n    animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);\n  }\n}\n\nfunction updateCommon(bar, opt, symbolMeta) {\n  var dataIndex = symbolMeta.dataIndex;\n  var itemModel = symbolMeta.itemModel; // Color must be excluded.\n  // Because symbol provide setColor individually to set fill and stroke\n\n  var emphasisModel = itemModel.getModel('emphasis');\n  var emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n  var blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n  var selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n  var cursorStyle = itemModel.getShallow('cursor');\n  var focus = emphasisModel.get('focus');\n  var blurScope = emphasisModel.get('blurScope');\n  var hoverScale = emphasisModel.get('scale');\n  eachPath(bar, function (path) {\n    if (path instanceof ZRImage) {\n      var pathStyle = path.style;\n      path.useStyle(zrUtil.extend({\n        // TODO other properties like dx, dy ?\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolMeta.style));\n    } else {\n      path.useStyle(symbolMeta.style);\n    }\n\n    var emphasisState = path.ensureState('emphasis');\n    emphasisState.style = emphasisStyle;\n\n    if (hoverScale) {\n      // NOTE: Must after scale is set after updateAttr\n      emphasisState.scaleX = path.scaleX * 1.1;\n      emphasisState.scaleY = path.scaleY * 1.1;\n    }\n\n    path.ensureState('blur').style = blurStyle;\n    path.ensureState('select').style = selectStyle;\n    cursorStyle && (path.cursor = cursorStyle);\n    path.z2 = symbolMeta.z2;\n  });\n  var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\n  var barRect = bar.__pictorialBarRect;\n  setLabelStyle(barRect, getLabelStatesModels(itemModel), {\n    labelFetcher: opt.seriesModel,\n    labelDataIndex: dataIndex,\n    defaultText: getDefaultLabel(opt.seriesModel.getData(), dataIndex),\n    inheritColor: symbolMeta.style.fill,\n    defaultOpacity: symbolMeta.style.opacity,\n    defaultOutsidePosition: barPositionOutside\n  });\n  toggleHoverEmphasis(bar, focus, blurScope, emphasisModel.get('disabled'));\n}\n\nfunction toIntTimes(times) {\n  var roundedTimes = Math.round(times); // Escapse accurate error\n\n  return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times);\n}\n\nexport default PictorialBarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar PictorialBarSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(PictorialBarSeriesModel, _super);\n\n  function PictorialBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PictorialBarSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    _this.defaultSymbol = 'roundRect';\n    return _this;\n  }\n\n  PictorialBarSeriesModel.prototype.getInitialData = function (option) {\n    // Disable stack.\n    option.stack = null;\n    return _super.prototype.getInitialData.apply(this, arguments);\n  };\n\n  PictorialBarSeriesModel.type = 'series.pictorialBar';\n  PictorialBarSeriesModel.dependencies = ['grid'];\n  PictorialBarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    symbol: 'circle',\n    symbolSize: null,\n    symbolRotate: null,\n    symbolPosition: null,\n    symbolOffset: null,\n    symbolMargin: null,\n    symbolRepeat: false,\n    symbolRepeatDirection: 'end',\n    symbolClip: false,\n    symbolBoundingData: null,\n    symbolPatternSize: 400,\n    barGap: '-100%',\n    // z can be set in data item, which is z2 actually.\n    // Disable progressive\n    progressive: 0,\n    emphasis: {\n      // By default pictorialBar do not hover scale. Hover scale is not suitable\n      // for the case that both has foreground and background.\n      scale: false\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  });\n  return PictorialBarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default PictorialBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport PictorialBarView from './PictorialBarView.js';\nimport PictorialBarSeriesModel from './PictorialBarSeries.js';\nimport { createProgressiveLayout, layout } from '../../layout/barGrid.js';\nimport { curry } from 'zrender/lib/core/util.js';\nexport function install(registers) {\n  registers.registerChartView(PictorialBarView);\n  registers.registerSeriesModel(PictorialBarSeriesModel);\n  registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, curry(layout, 'pictorialBar')); // Do layout after other overall layout, which can preapre some informations.\n\n  registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, createProgressiveLayout('pictorialBar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { ECPolygon } from '../line/poly.js';\nimport * as graphic from '../../util/graphic.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { bind } from 'zrender/lib/core/util.js';\nimport DataDiffer from '../../data/DataDiffer.js';\nimport ChartView from '../../view/Chart.js';\nimport { saveOldStyle } from '../../animation/basicTrasition.js';\n\nvar ThemeRiverView =\n/** @class */\nfunction (_super) {\n  __extends(ThemeRiverView, _super);\n\n  function ThemeRiverView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ThemeRiverView.type;\n    _this._layers = [];\n    return _this;\n  }\n\n  ThemeRiverView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var self = this;\n    var group = this.group;\n    var layersSeries = seriesModel.getLayerSeries();\n    var layoutInfo = data.getLayout('layoutInfo');\n    var rect = layoutInfo.rect;\n    var boundaryGap = layoutInfo.boundaryGap;\n    group.x = 0;\n    group.y = rect.y + boundaryGap[0];\n\n    function keyGetter(item) {\n      return item.name;\n    }\n\n    var dataDiffer = new DataDiffer(this._layersSeries || [], layersSeries, keyGetter, keyGetter);\n    var newLayersGroups = [];\n    dataDiffer.add(bind(process, this, 'add')).update(bind(process, this, 'update')).remove(bind(process, this, 'remove')).execute();\n\n    function process(status, idx, oldIdx) {\n      var oldLayersGroups = self._layers;\n\n      if (status === 'remove') {\n        group.remove(oldLayersGroups[idx]);\n        return;\n      }\n\n      var points0 = [];\n      var points1 = [];\n      var style;\n      var indices = layersSeries[idx].indices;\n      var j = 0;\n\n      for (; j < indices.length; j++) {\n        var layout = data.getItemLayout(indices[j]);\n        var x = layout.x;\n        var y0 = layout.y0;\n        var y = layout.y;\n        points0.push(x, y0);\n        points1.push(x, y0 + y);\n        style = data.getItemVisual(indices[j], 'style');\n      }\n\n      var polygon;\n      var textLayout = data.getItemLayout(indices[0]);\n      var labelModel = seriesModel.getModel('label');\n      var margin = labelModel.get('margin');\n      var emphasisModel = seriesModel.getModel('emphasis');\n\n      if (status === 'add') {\n        var layerGroup = newLayersGroups[idx] = new graphic.Group();\n        polygon = new ECPolygon({\n          shape: {\n            points: points0,\n            stackedOnPoints: points1,\n            smooth: 0.4,\n            stackedOnSmooth: 0.4,\n            smoothConstraint: false\n          },\n          z2: 0\n        });\n        layerGroup.add(polygon);\n        group.add(layerGroup);\n\n        if (seriesModel.isAnimationEnabled()) {\n          polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function () {\n            polygon.removeClipPath();\n          }));\n        }\n      } else {\n        var layerGroup = oldLayersGroups[oldIdx];\n        polygon = layerGroup.childAt(0);\n        group.add(layerGroup);\n        newLayersGroups[idx] = layerGroup;\n        graphic.updateProps(polygon, {\n          shape: {\n            points: points0,\n            stackedOnPoints: points1\n          }\n        }, seriesModel);\n        saveOldStyle(polygon);\n      }\n\n      setLabelStyle(polygon, getLabelStatesModels(seriesModel), {\n        labelDataIndex: indices[j - 1],\n        defaultText: data.getName(indices[j - 1]),\n        inheritColor: style.fill\n      }, {\n        normal: {\n          verticalAlign: 'middle' // align: 'right'\n\n        }\n      });\n      polygon.setTextConfig({\n        position: null,\n        local: true\n      });\n      var labelEl = polygon.getTextContent(); // TODO More label position options.\n\n      if (labelEl) {\n        labelEl.x = textLayout.x - margin;\n        labelEl.y = textLayout.y0 + textLayout.y / 2;\n      }\n\n      polygon.useStyle(style);\n      data.setItemGraphicEl(idx, polygon);\n      setStatesStylesFromModel(polygon, seriesModel);\n      toggleHoverEmphasis(polygon, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n    }\n\n    this._layersSeries = layersSeries;\n    this._layers = newLayersGroups;\n  };\n\n  ThemeRiverView.type = 'themeRiver';\n  return ThemeRiverView;\n}(ChartView);\n\n; // add animation to the view\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x - 10,\n      y: rect.y - 10,\n      width: 0,\n      height: rect.height + 20\n    }\n  });\n  graphic.initProps(rectEl, {\n    shape: {\n      x: rect.x - 50,\n      width: rect.width + 100,\n      height: rect.height + 20\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nexport default ThemeRiverView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series.js';\nimport prepareSeriesDataSchema from '../../data/helper/createDimensions.js';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { groupData, SINGLE_REFERRING } from '../../util/model.js';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider.js';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup.js';\nvar DATA_NAME_INDEX = 2;\n\nvar ThemeRiverSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(ThemeRiverSeriesModel, _super);\n\n  function ThemeRiverSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ThemeRiverSeriesModel.type;\n    return _this;\n  }\n  /**\n   * @override\n   */\n\n\n  ThemeRiverSeriesModel.prototype.init = function (option) {\n    // eslint-disable-next-line\n    _super.prototype.init.apply(this, arguments); // Put this function here is for the sake of consistency of code style.\n    // Enable legend selection for each data item\n    // Use a function instead of direct access because data reference may changed\n\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n  };\n  /**\n   * If there is no value of a certain point in the time for some event,set it value to 0.\n   *\n   * @param {Array} data  initial data in the option\n   * @return {Array}\n   */\n\n\n  ThemeRiverSeriesModel.prototype.fixData = function (data) {\n    var rawDataLength = data.length;\n    /**\n     * Make sure every layer data get the same keys.\n     * The value index tells which layer has visited.\n     * {\n     *  2014/01/01: -1\n     * }\n     */\n\n    var timeValueKeys = {}; // grouped data by name\n\n    var groupResult = groupData(data, function (item) {\n      if (!timeValueKeys.hasOwnProperty(item[0] + '')) {\n        timeValueKeys[item[0] + ''] = -1;\n      }\n\n      return item[2];\n    });\n    var layerData = [];\n    groupResult.buckets.each(function (items, key) {\n      layerData.push({\n        name: key,\n        dataList: items\n      });\n    });\n    var layerNum = layerData.length;\n\n    for (var k = 0; k < layerNum; ++k) {\n      var name_1 = layerData[k].name;\n\n      for (var j = 0; j < layerData[k].dataList.length; ++j) {\n        var timeValue = layerData[k].dataList[j][0] + '';\n        timeValueKeys[timeValue] = k;\n      }\n\n      for (var timeValue in timeValueKeys) {\n        if (timeValueKeys.hasOwnProperty(timeValue) && timeValueKeys[timeValue] !== k) {\n          timeValueKeys[timeValue] = k;\n          data[rawDataLength] = [timeValue, 0, name_1];\n          rawDataLength++;\n        }\n      }\n    }\n\n    return data;\n  };\n  /**\n   * @override\n   * @param  option  the initial option that user gived\n   * @param  ecModel  the model object for themeRiver option\n   */\n\n\n  ThemeRiverSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var singleAxisModel = this.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n    var axisType = singleAxisModel.get('type'); // filter the data item with the value of label is undefined\n\n    var filterData = zrUtil.filter(option.data, function (dataItem) {\n      return dataItem[2] !== undefined;\n    }); // ??? TODO design a stage to transfer data for themeRiver and lines?\n\n    var data = this.fixData(filterData || []);\n    var nameList = [];\n    var nameMap = this.nameMap = zrUtil.createHashMap();\n    var count = 0;\n\n    for (var i = 0; i < data.length; ++i) {\n      nameList.push(data[i][DATA_NAME_INDEX]);\n\n      if (!nameMap.get(data[i][DATA_NAME_INDEX])) {\n        nameMap.set(data[i][DATA_NAME_INDEX], count);\n        count++;\n      }\n    }\n\n    var dimensions = prepareSeriesDataSchema(data, {\n      coordDimensions: ['single'],\n      dimensionsDefine: [{\n        name: 'time',\n        type: getDimensionTypeByAxis(axisType)\n      }, {\n        name: 'value',\n        type: 'float'\n      }, {\n        name: 'name',\n        type: 'ordinal'\n      }],\n      encodeDefine: {\n        single: 0,\n        value: 1,\n        itemName: 2\n      }\n    }).dimensions;\n    var list = new SeriesData(dimensions, this);\n    list.initData(data);\n    return list;\n  };\n  /**\n   * The raw data is divided into multiple layers and each layer\n   *     has same name.\n   */\n\n\n  ThemeRiverSeriesModel.prototype.getLayerSeries = function () {\n    var data = this.getData();\n    var lenCount = data.count();\n    var indexArr = [];\n\n    for (var i = 0; i < lenCount; ++i) {\n      indexArr[i] = i;\n    }\n\n    var timeDim = data.mapDimension('single'); // data group by name\n\n    var groupResult = groupData(indexArr, function (index) {\n      return data.get('name', index);\n    });\n    var layerSeries = [];\n    groupResult.buckets.each(function (items, key) {\n      items.sort(function (index1, index2) {\n        return data.get(timeDim, index1) - data.get(timeDim, index2);\n      });\n      layerSeries.push({\n        name: key,\n        indices: items\n      });\n    });\n    return layerSeries;\n  };\n  /**\n   * Get data indices for show tooltip content\n   */\n\n\n  ThemeRiverSeriesModel.prototype.getAxisTooltipData = function (dim, value, baseAxis) {\n    if (!zrUtil.isArray(dim)) {\n      dim = dim ? [dim] : [];\n    }\n\n    var data = this.getData();\n    var layerSeries = this.getLayerSeries();\n    var indices = [];\n    var layerNum = layerSeries.length;\n    var nestestValue;\n\n    for (var i = 0; i < layerNum; ++i) {\n      var minDist = Number.MAX_VALUE;\n      var nearestIdx = -1;\n      var pointNum = layerSeries[i].indices.length;\n\n      for (var j = 0; j < pointNum; ++j) {\n        var theValue = data.get(dim[0], layerSeries[i].indices[j]);\n        var dist = Math.abs(theValue - value);\n\n        if (dist <= minDist) {\n          nestestValue = theValue;\n          minDist = dist;\n          nearestIdx = layerSeries[i].indices[j];\n        }\n      }\n\n      indices.push(nearestIdx);\n    }\n\n    return {\n      dataIndices: indices,\n      nestestValue: nestestValue\n    };\n  };\n\n  ThemeRiverSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var name = data.getName(dataIndex);\n    var value = data.get(data.mapDimension('value'), dataIndex);\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value\n    });\n  };\n\n  ThemeRiverSeriesModel.type = 'series.themeRiver';\n  ThemeRiverSeriesModel.dependencies = ['singleAxis'];\n  ThemeRiverSeriesModel.defaultOption = {\n    // zlevel: 0,\n    z: 2,\n    colorBy: 'data',\n    coordinateSystem: 'singleAxis',\n    // gap in axis's orthogonal orientation\n    boundaryGap: ['10%', '10%'],\n    // legendHoverLink: true,\n    singleAxisIndex: 0,\n    animationEasing: 'linear',\n    label: {\n      margin: 4,\n      show: true,\n      position: 'left',\n      fontSize: 11\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  };\n  return ThemeRiverSeriesModel;\n}(SeriesModel);\n\nexport default ThemeRiverSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as numberUtil from '../../util/number.js';\nexport default function themeRiverLayout(ecModel, api) {\n  ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\n    var data = seriesModel.getData();\n    var single = seriesModel.coordinateSystem;\n    var layoutInfo = {}; // use the axis boundingRect for view\n\n    var rect = single.getRect();\n    layoutInfo.rect = rect;\n    var boundaryGap = seriesModel.get('boundaryGap');\n    var axis = single.getAxis();\n    layoutInfo.boundaryGap = boundaryGap;\n\n    if (axis.orient === 'horizontal') {\n      boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.height);\n      boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.height);\n      var height = rect.height - boundaryGap[0] - boundaryGap[1];\n      doThemeRiverLayout(data, seriesModel, height);\n    } else {\n      boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.width);\n      boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.width);\n      var width = rect.width - boundaryGap[0] - boundaryGap[1];\n      doThemeRiverLayout(data, seriesModel, width);\n    }\n\n    data.setLayout('layoutInfo', layoutInfo);\n  });\n}\n/**\n * The layout information about themeriver\n *\n * @param data  data in the series\n * @param seriesModel  the model object of themeRiver series\n * @param height  value used to compute every series height\n */\n\nfunction doThemeRiverLayout(data, seriesModel, height) {\n  if (!data.count()) {\n    return;\n  }\n\n  var coordSys = seriesModel.coordinateSystem; // the data in each layer are organized into a series.\n\n  var layerSeries = seriesModel.getLayerSeries(); // the points in each layer.\n\n  var timeDim = data.mapDimension('single');\n  var valueDim = data.mapDimension('value');\n  var layerPoints = zrUtil.map(layerSeries, function (singleLayer) {\n    return zrUtil.map(singleLayer.indices, function (idx) {\n      var pt = coordSys.dataToPoint(data.get(timeDim, idx));\n      pt[1] = data.get(valueDim, idx);\n      return pt;\n    });\n  });\n  var base = computeBaseline(layerPoints);\n  var baseLine = base.y0;\n  var ky = height / base.max; // set layout information for each item.\n\n  var n = layerSeries.length;\n  var m = layerSeries[0].indices.length;\n  var baseY0;\n\n  for (var j = 0; j < m; ++j) {\n    baseY0 = baseLine[j] * ky;\n    data.setItemLayout(layerSeries[0].indices[j], {\n      layerIndex: 0,\n      x: layerPoints[0][j][0],\n      y0: baseY0,\n      y: layerPoints[0][j][1] * ky\n    });\n\n    for (var i = 1; i < n; ++i) {\n      baseY0 += layerPoints[i - 1][j][1] * ky;\n      data.setItemLayout(layerSeries[i].indices[j], {\n        layerIndex: i,\n        x: layerPoints[i][j][0],\n        y0: baseY0,\n        y: layerPoints[i][j][1] * ky\n      });\n    }\n  }\n}\n/**\n * Compute the baseLine of the rawdata\n * Inspired by Lee Byron's paper Stacked Graphs - Geometry & Aesthetics\n *\n * @param  data  the points in each layer\n */\n\n\nfunction computeBaseline(data) {\n  var layerNum = data.length;\n  var pointNum = data[0].length;\n  var sums = [];\n  var y0 = [];\n  var max = 0;\n\n  for (var i = 0; i < pointNum; ++i) {\n    var temp = 0;\n\n    for (var j = 0; j < layerNum; ++j) {\n      temp += data[j][i][1];\n    }\n\n    if (temp > max) {\n      max = temp;\n    }\n\n    sums.push(temp);\n  }\n\n  for (var k = 0; k < pointNum; ++k) {\n    y0[k] = (max - sums[k]) / 2;\n  }\n\n  max = 0;\n\n  for (var l = 0; l < pointNum; ++l) {\n    var sum = sums[l] + y0[l];\n\n    if (sum > max) {\n      max = sum;\n    }\n  }\n\n  return {\n    y0: y0,\n    max: max\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ThemeRiverView from './ThemeRiverView.js';\nimport ThemeRiverSeriesModel from './ThemeRiverSeries.js';\nimport themeRiverLayout from './themeRiverLayout.js';\nimport dataFilter from '../../processor/dataFilter.js';\nexport function install(registers) {\n  registers.registerChartView(ThemeRiverView);\n  registers.registerSeriesModel(ThemeRiverSeriesModel);\n  registers.registerLayout(themeRiverLayout);\n  registers.registerProcessor(dataFilter('themeRiver'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, SPECIAL_STATES, DISPLAY_STATES } from '../../util/states.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { getSectorCornerRadius } from '../helper/pieHelper.js';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal.js';\nimport { saveOldStyle } from '../../animation/basicTrasition.js';\nvar DEFAULT_SECTOR_Z = 2;\nvar DEFAULT_TEXT_Z = 4;\n/**\n * Sunburstce of Sunburst including Sector, Label, LabelLine\n */\n\nvar SunburstPiece =\n/** @class */\nfunction (_super) {\n  __extends(SunburstPiece, _super);\n\n  function SunburstPiece(node, seriesModel, ecModel, api) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = DEFAULT_SECTOR_Z;\n    _this.textConfig = {\n      inside: true\n    };\n    getECData(_this).seriesIndex = seriesModel.seriesIndex;\n    var text = new graphic.Text({\n      z2: DEFAULT_TEXT_Z,\n      silent: node.getModel().get(['label', 'silent'])\n    });\n\n    _this.setTextContent(text);\n\n    _this.updateData(true, node, seriesModel, ecModel, api);\n\n    return _this;\n  }\n\n  SunburstPiece.prototype.updateData = function (firstCreate, node, // state: 'emphasis' | 'normal' | 'highlight' | 'downplay',\n  seriesModel, ecModel, api) {\n    this.node = node;\n    node.piece = this;\n    seriesModel = seriesModel || this._seriesModel;\n    ecModel = ecModel || this._ecModel;\n    var sector = this;\n    getECData(sector).dataIndex = node.dataIndex;\n    var itemModel = node.getModel();\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = node.getLayout();\n    var sectorShape = zrUtil.extend({}, layout);\n    sectorShape.label = null;\n    var normalStyle = node.getVisual('style');\n    normalStyle.lineJoin = 'bevel';\n    var decal = node.getVisual('decal');\n\n    if (decal) {\n      normalStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n    }\n\n    var cornerRadius = getSectorCornerRadius(itemModel.getModel('itemStyle'), sectorShape, true);\n    zrUtil.extend(sectorShape, cornerRadius);\n    zrUtil.each(SPECIAL_STATES, function (stateName) {\n      var state = sector.ensureState(stateName);\n      var itemStyleModel = itemModel.getModel([stateName, 'itemStyle']);\n      state.style = itemStyleModel.getItemStyle(); // border radius\n\n      var cornerRadius = getSectorCornerRadius(itemStyleModel, sectorShape);\n\n      if (cornerRadius) {\n        state.shape = cornerRadius;\n      }\n    });\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      sector.shape.r = layout.r0;\n      graphic.updateProps(sector, {\n        shape: {\n          r: layout.r\n        }\n      }, seriesModel, node.dataIndex);\n    } else {\n      // Disable animation for gradient since no interpolation method\n      // is supported for gradient\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel);\n      saveOldStyle(sector);\n    }\n\n    sector.useStyle(normalStyle);\n\n    this._updateLabel(seriesModel);\n\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n    this._seriesModel = seriesModel || this._seriesModel;\n    this._ecModel = ecModel || this._ecModel;\n    var focus = emphasisModel.get('focus');\n    var focusOrIndices = focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : focus;\n    toggleHoverEmphasis(this, focusOrIndices, emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n  };\n\n  SunburstPiece.prototype._updateLabel = function (seriesModel) {\n    var _this = this;\n\n    var itemModel = this.node.getModel();\n    var normalLabelModel = itemModel.getModel('label');\n    var layout = this.node.getLayout();\n    var angle = layout.endAngle - layout.startAngle;\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var dx = Math.cos(midAngle);\n    var dy = Math.sin(midAngle);\n    var sector = this;\n    var label = sector.getTextContent();\n    var dataIndex = this.node.dataIndex;\n    var labelMinAngle = normalLabelModel.get('minAngle') / 180 * Math.PI;\n    var isNormalShown = normalLabelModel.get('show') && !(labelMinAngle != null && Math.abs(angle) < labelMinAngle);\n    label.ignore = !isNormalShown; // TODO use setLabelStyle\n\n    zrUtil.each(DISPLAY_STATES, function (stateName) {\n      var labelStateModel = stateName === 'normal' ? itemModel.getModel('label') : itemModel.getModel([stateName, 'label']);\n      var isNormal = stateName === 'normal';\n      var state = isNormal ? label : label.ensureState(stateName);\n      var text = seriesModel.getFormattedLabel(dataIndex, stateName);\n\n      if (isNormal) {\n        text = text || _this.node.name;\n      }\n\n      state.style = createTextStyle(labelStateModel, {}, null, stateName !== 'normal', true);\n\n      if (text) {\n        state.style.text = text;\n      } // Not displaying text when angle is too small\n\n\n      var isShown = labelStateModel.get('show');\n\n      if (isShown != null && !isNormal) {\n        state.ignore = !isShown;\n      }\n\n      var labelPosition = getLabelAttr(labelStateModel, 'position');\n      var sectorState = isNormal ? sector : sector.states[stateName];\n      var labelColor = sectorState.style.fill;\n      sectorState.textConfig = {\n        outsideFill: labelStateModel.get('color') === 'inherit' ? labelColor : null,\n        inside: labelPosition !== 'outside'\n      };\n      var r;\n      var labelPadding = getLabelAttr(labelStateModel, 'distance') || 0;\n      var textAlign = getLabelAttr(labelStateModel, 'align');\n\n      if (labelPosition === 'outside') {\n        r = layout.r + labelPadding;\n        textAlign = midAngle > Math.PI / 2 ? 'right' : 'left';\n      } else {\n        if (!textAlign || textAlign === 'center') {\n          // Put label in the center if it's a circle\n          if (angle === 2 * Math.PI && layout.r0 === 0) {\n            r = 0;\n          } else {\n            r = (layout.r + layout.r0) / 2;\n          }\n\n          textAlign = 'center';\n        } else if (textAlign === 'left') {\n          r = layout.r0 + labelPadding;\n\n          if (midAngle > Math.PI / 2) {\n            textAlign = 'right';\n          }\n        } else if (textAlign === 'right') {\n          r = layout.r - labelPadding;\n\n          if (midAngle > Math.PI / 2) {\n            textAlign = 'left';\n          }\n        }\n      }\n\n      state.style.align = textAlign;\n      state.style.verticalAlign = getLabelAttr(labelStateModel, 'verticalAlign') || 'middle';\n      state.x = r * dx + layout.cx;\n      state.y = r * dy + layout.cy;\n      var rotateType = getLabelAttr(labelStateModel, 'rotate');\n      var rotate = 0;\n\n      if (rotateType === 'radial') {\n        rotate = -midAngle;\n\n        if (rotate < -Math.PI / 2) {\n          rotate += Math.PI;\n        }\n      } else if (rotateType === 'tangential') {\n        rotate = Math.PI / 2 - midAngle;\n\n        if (rotate > Math.PI / 2) {\n          rotate -= Math.PI;\n        } else if (rotate < -Math.PI / 2) {\n          rotate += Math.PI;\n        }\n      } else if (zrUtil.isNumber(rotateType)) {\n        rotate = rotateType * Math.PI / 180;\n      }\n\n      state.rotation = rotate;\n    });\n\n    function getLabelAttr(model, name) {\n      var stateAttr = model.get(name);\n\n      if (stateAttr == null) {\n        return normalLabelModel.get(name);\n      }\n\n      return stateAttr;\n    }\n\n    label.dirtyStyle();\n  };\n\n  return SunburstPiece;\n}(graphic.Sector);\n\nexport default SunburstPiece;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { extend } from 'zrender/lib/core/util.js';\nimport { deprecateReplaceLog } from '../../util/log.js';\nimport { retrieveTargetInfo, aboveViewRoot } from '../helper/treeHelper.js';\nexport var ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\nvar HIGHLIGHT_ACTION = 'sunburstHighlight';\nvar UNHIGHLIGHT_ACTION = 'sunburstUnhighlight';\nexport function installSunburstAction(registers) {\n  registers.registerAction({\n    type: ROOT_TO_NODE_ACTION,\n    update: 'updateView'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sunburst',\n      query: payload\n    }, handleRootToNode);\n\n    function handleRootToNode(model, index) {\n      var targetInfo = retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model);\n\n      if (targetInfo) {\n        var originViewRoot = model.getViewRoot();\n\n        if (originViewRoot) {\n          payload.direction = aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n        }\n\n        model.resetViewRoot(targetInfo.node);\n      }\n    }\n  });\n  registers.registerAction({\n    type: HIGHLIGHT_ACTION,\n    update: 'none'\n  }, function (payload, ecModel, api) {\n    // Clone\n    payload = extend({}, payload);\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sunburst',\n      query: payload\n    }, handleHighlight);\n\n    function handleHighlight(model) {\n      var targetInfo = retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model);\n\n      if (targetInfo) {\n        payload.dataIndex = targetInfo.node.dataIndex;\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('highlight', 'sunburstHighlight');\n    } // Fast forward action\n\n\n    api.dispatchAction(extend(payload, {\n      type: 'highlight'\n    }));\n  });\n  registers.registerAction({\n    type: UNHIGHLIGHT_ACTION,\n    update: 'updateView'\n  }, function (payload, ecModel, api) {\n    payload = extend({}, payload);\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('downplay', 'sunburstUnhighlight');\n    }\n\n    api.dispatchAction(extend(payload, {\n      type: 'downplay'\n    }));\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ChartView from '../../view/Chart.js';\nimport SunburstPiece from './SunburstPiece.js';\nimport DataDiffer from '../../data/DataDiffer.js';\nimport { ROOT_TO_NODE_ACTION } from './sunburstAction.js';\nimport { windowOpen } from '../../util/format.js';\n\nvar SunburstView =\n/** @class */\nfunction (_super) {\n  __extends(SunburstView, _super);\n\n  function SunburstView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SunburstView.type;\n    return _this;\n  }\n\n  SunburstView.prototype.render = function (seriesModel, ecModel, api, // @ts-ignore\n  payload) {\n    var self = this;\n    this.seriesModel = seriesModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    var data = seriesModel.getData();\n    var virtualRoot = data.tree.root;\n    var newRoot = seriesModel.getViewRoot();\n    var group = this.group;\n    var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData');\n    var newChildren = [];\n    newRoot.eachNode(function (node) {\n      newChildren.push(node);\n    });\n    var oldChildren = this._oldChildren || [];\n    dualTravel(newChildren, oldChildren);\n    renderRollUp(virtualRoot, newRoot);\n\n    this._initEvents();\n\n    this._oldChildren = newChildren;\n\n    function dualTravel(newChildren, oldChildren) {\n      if (newChildren.length === 0 && oldChildren.length === 0) {\n        return;\n      }\n\n      new DataDiffer(oldChildren, newChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute();\n\n      function getKey(node) {\n        return node.getId();\n      }\n\n      function processNode(newIdx, oldIdx) {\n        var newNode = newIdx == null ? null : newChildren[newIdx];\n        var oldNode = oldIdx == null ? null : oldChildren[oldIdx];\n        doRenderNode(newNode, oldNode);\n      }\n    }\n\n    function doRenderNode(newNode, oldNode) {\n      if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\n        // Not render data with value 0\n        newNode = null;\n      }\n\n      if (newNode !== virtualRoot && oldNode !== virtualRoot) {\n        if (oldNode && oldNode.piece) {\n          if (newNode) {\n            // Update\n            oldNode.piece.updateData(false, newNode, seriesModel, ecModel, api); // For tooltip\n\n            data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\n          } else {\n            // Remove\n            removeNode(oldNode);\n          }\n        } else if (newNode) {\n          // Add\n          var piece = new SunburstPiece(newNode, seriesModel, ecModel, api);\n          group.add(piece); // For tooltip\n\n          data.setItemGraphicEl(newNode.dataIndex, piece);\n        }\n      }\n    }\n\n    function removeNode(node) {\n      if (!node) {\n        return;\n      }\n\n      if (node.piece) {\n        group.remove(node.piece);\n        node.piece = null;\n      }\n    }\n\n    function renderRollUp(virtualRoot, viewRoot) {\n      if (viewRoot.depth > 0) {\n        // Render\n        if (self.virtualPiece) {\n          // Update\n          self.virtualPiece.updateData(false, virtualRoot, seriesModel, ecModel, api);\n        } else {\n          // Add\n          self.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel, api);\n          group.add(self.virtualPiece);\n        } // TODO event scope\n\n\n        viewRoot.piece.off('click');\n        self.virtualPiece.on('click', function (e) {\n          self._rootToNode(viewRoot.parentNode);\n        });\n      } else if (self.virtualPiece) {\n        // Remove\n        group.remove(self.virtualPiece);\n        self.virtualPiece = null;\n      }\n    }\n  };\n  /**\n   * @private\n   */\n\n\n  SunburstView.prototype._initEvents = function () {\n    var _this = this;\n\n    this.group.off('click');\n    this.group.on('click', function (e) {\n      var targetFound = false;\n\n      var viewRoot = _this.seriesModel.getViewRoot();\n\n      viewRoot.eachNode(function (node) {\n        if (!targetFound && node.piece && node.piece === e.target) {\n          var nodeClick = node.getModel().get('nodeClick');\n\n          if (nodeClick === 'rootToNode') {\n            _this._rootToNode(node);\n          } else if (nodeClick === 'link') {\n            var itemModel = node.getModel();\n            var link = itemModel.get('link');\n\n            if (link) {\n              var linkTarget = itemModel.get('target', true) || '_blank';\n              windowOpen(link, linkTarget);\n            }\n          }\n\n          targetFound = true;\n        }\n      });\n    });\n  };\n  /**\n   * @private\n   */\n\n\n  SunburstView.prototype._rootToNode = function (node) {\n    if (node !== this.seriesModel.getViewRoot()) {\n      this.api.dispatchAction({\n        type: ROOT_TO_NODE_ACTION,\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        targetNode: node\n      });\n    }\n  };\n  /**\n   * @implement\n   */\n\n\n  SunburstView.prototype.containPoint = function (point, seriesModel) {\n    var treeRoot = seriesModel.getData();\n    var itemLayout = treeRoot.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  SunburstView.type = 'sunburst';\n  return SunburstView;\n}(ChartView);\n\nexport default SunburstView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport SeriesModel from '../../model/Series.js';\nimport Tree from '../../data/Tree.js';\nimport { wrapTreePathInfo } from '../helper/treeHelper.js';\nimport Model from '../../model/Model.js';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree.js';\n\nvar SunburstSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(SunburstSeriesModel, _super);\n\n  function SunburstSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SunburstSeriesModel.type;\n    _this.ignoreStyleOnData = true;\n    return _this;\n  }\n\n  SunburstSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    // Create a virtual root.\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    completeTreeValue(root);\n    var levelModels = this._levelModels = zrUtil.map(option.levels || [], function (levelDefine) {\n      return new Model(levelDefine, this, ecModel);\n    }, this); // Make sure always a new tree is created when setOption,\n    // in TreemapView, we check whether oldTree === newTree\n    // to choose mappings approach among old shapes and new shapes.\n\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n        var levelModel = levelModels[node.depth];\n        levelModel && (model.parentModel = levelModel);\n        return model;\n      });\n    }\n\n    return tree.data;\n  };\n\n  SunburstSeriesModel.prototype.optionUpdated = function () {\n    this.resetViewRoot();\n  };\n  /*\n   * @override\n   */\n\n\n  SunburstSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var params = _super.prototype.getDataParams.apply(this, arguments);\n\n    var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n    params.treePathInfo = wrapTreePathInfo(node, this);\n    return params;\n  };\n\n  SunburstSeriesModel.prototype.getLevelModel = function (node) {\n    return this._levelModels && this._levelModels[node.depth];\n  };\n\n  SunburstSeriesModel.prototype.getViewRoot = function () {\n    return this._viewRoot;\n  };\n\n  SunburstSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n    viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n    var root = this.getRawData().tree.root;\n\n    if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n      this._viewRoot = root;\n    }\n  };\n\n  SunburstSeriesModel.prototype.enableAriaDecal = function () {\n    enableAriaDecalForTree(this);\n  };\n\n  SunburstSeriesModel.type = 'series.sunburst';\n  SunburstSeriesModel.defaultOption = {\n    // zlevel: 0,\n    z: 2,\n    // 默认全局居中\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    // 默认顺时针\n    clockwise: true,\n    startAngle: 90,\n    // 最小角度改为0\n    minAngle: 0,\n    // If still show when all data zero.\n    stillShowZeroSum: true,\n    // 'rootToNode', 'link', or false\n    nodeClick: 'rootToNode',\n    renderLabelForZeroData: false,\n    label: {\n      // could be: 'radial', 'tangential', or 'none'\n      rotate: 'radial',\n      show: true,\n      opacity: 1,\n      // 'left' is for inner side of inside, and 'right' is for outter\n      // side for inside\n      align: 'center',\n      position: 'inside',\n      distance: 5,\n      silent: true\n    },\n    itemStyle: {\n      borderWidth: 1,\n      borderColor: 'white',\n      borderType: 'solid',\n      shadowBlur: 0,\n      shadowColor: 'rgba(0, 0, 0, 0.2)',\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    emphasis: {\n      focus: 'descendant'\n    },\n    blur: {\n      itemStyle: {\n        opacity: 0.2\n      },\n      label: {\n        opacity: 0.1\n      }\n    },\n    // Animation type canbe expansion, scale\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationDurationUpdate: 500,\n    data: [],\n\n    /**\n     * Sort order.\n     *\n     * Valid values: 'desc', 'asc', null, or callback function.\n     * 'desc' and 'asc' for descend and ascendant order;\n     * null for not sorting;\n     * example of callback function:\n     * function(nodeA, nodeB) {\n     *     return nodeA.getValue() - nodeB.getValue();\n     * }\n     */\n    sort: 'desc'\n  };\n  return SunburstSeriesModel;\n}(SeriesModel);\n\nfunction completeTreeValue(dataNode) {\n  // Postorder travel tree.\n  // If value of none-leaf node is not set,\n  // calculate it by suming up the value of all children.\n  var sum = 0;\n  zrUtil.each(dataNode.children, function (child) {\n    completeTreeValue(child);\n    var childValue = child.value; // TODO First value of array must be a number\n\n    zrUtil.isArray(childValue) && (childValue = childValue[0]);\n    sum += childValue;\n  });\n  var thisValue = dataNode.value;\n\n  if (zrUtil.isArray(thisValue)) {\n    thisValue = thisValue[0];\n  }\n\n  if (thisValue == null || isNaN(thisValue)) {\n    thisValue = sum;\n  } // Value should not less than 0.\n\n\n  if (thisValue < 0) {\n    thisValue = 0;\n  }\n\n  zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nexport default SunburstSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { parsePercent } from '../../util/number.js';\nimport * as zrUtil from 'zrender/lib/core/util.js'; // let PI2 = Math.PI * 2;\n\nvar RADIAN = Math.PI / 180;\nexport default function sunburstLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width);\n    var cy = parsePercent(center[1], height);\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var virtualRoot = seriesModel.getData().tree.root;\n    var treeRoot = seriesModel.getViewRoot();\n    var rootDepth = treeRoot.depth;\n    var sort = seriesModel.get('sort');\n\n    if (sort != null) {\n      initChildren(treeRoot, sort);\n    }\n\n    var validDataCount = 0;\n    zrUtil.each(treeRoot.children, function (child) {\n      !isNaN(child.getValue()) && validDataCount++;\n    });\n    var sum = treeRoot.getValue(); // Sum may be 0\n\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var renderRollupNode = treeRoot.depth > 0;\n    var levels = treeRoot.height - (renderRollupNode ? -1 : 1);\n    var rPerLevel = (r - r0) / (levels || 1);\n    var clockwise = seriesModel.get('clockwise');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum'); // In the case some sector angle is smaller than minAngle\n    // let restAngle = PI2;\n    // let valueSumLargerThanMinAngle = 0;\n\n    var dir = clockwise ? 1 : -1;\n    /**\n     * Render a tree\n     * @return increased angle\n     */\n\n    var renderNode = function (node, startAngle) {\n      if (!node) {\n        return;\n      }\n\n      var endAngle = startAngle; // Render self\n\n      if (node !== virtualRoot) {\n        // Tree node is virtual, so it doesn't need to be drawn\n        var value = node.getValue();\n        var angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n\n        if (angle < minAngle) {\n          angle = minAngle; // restAngle -= minAngle;\n        } // else {\n        //     valueSumLargerThanMinAngle += value;\n        // }\n\n\n        endAngle = startAngle + dir * angle;\n        var depth = node.depth - rootDepth - (renderRollupNode ? -1 : 1);\n        var rStart = r0 + rPerLevel * depth;\n        var rEnd = r0 + rPerLevel * (depth + 1);\n        var levelModel = seriesModel.getLevelModel(node);\n\n        if (levelModel) {\n          var r0_1 = levelModel.get('r0', true);\n          var r_1 = levelModel.get('r', true);\n          var radius_1 = levelModel.get('radius', true);\n\n          if (radius_1 != null) {\n            r0_1 = radius_1[0];\n            r_1 = radius_1[1];\n          }\n\n          r0_1 != null && (rStart = parsePercent(r0_1, size / 2));\n          r_1 != null && (rEnd = parsePercent(r_1, size / 2));\n        }\n\n        node.setLayout({\n          angle: angle,\n          startAngle: startAngle,\n          endAngle: endAngle,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: rStart,\n          r: rEnd\n        });\n      } // Render children\n\n\n      if (node.children && node.children.length) {\n        // currentAngle = startAngle;\n        var siblingAngle_1 = 0;\n        zrUtil.each(node.children, function (node) {\n          siblingAngle_1 += renderNode(node, startAngle + siblingAngle_1);\n        });\n      }\n\n      return endAngle - startAngle;\n    }; // Virtual root node for roll up\n\n\n    if (renderRollupNode) {\n      var rStart = r0;\n      var rEnd = r0 + rPerLevel;\n      var angle = Math.PI * 2;\n      virtualRoot.setLayout({\n        angle: angle,\n        startAngle: startAngle,\n        endAngle: startAngle + angle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: rStart,\n        r: rEnd\n      });\n    }\n\n    renderNode(treeRoot, startAngle);\n  });\n}\n/**\n * Init node children by order and update visual\n */\n\nfunction initChildren(node, sortOrder) {\n  var children = node.children || [];\n  node.children = sort(children, sortOrder); // Init children recursively\n\n  if (children.length) {\n    zrUtil.each(node.children, function (child) {\n      initChildren(child, sortOrder);\n    });\n  }\n}\n/**\n * Sort children nodes\n *\n * @param {TreeNode[]}               children children of node to be sorted\n * @param {string | function | null} sort sort method\n *                                   See SunburstSeries.js for details.\n */\n\n\nfunction sort(children, sortOrder) {\n  if (zrUtil.isFunction(sortOrder)) {\n    var sortTargets = zrUtil.map(children, function (child, idx) {\n      var value = child.getValue();\n      return {\n        params: {\n          depth: child.depth,\n          height: child.height,\n          dataIndex: child.dataIndex,\n          getValue: function () {\n            return value;\n          }\n        },\n        index: idx\n      };\n    });\n    sortTargets.sort(function (a, b) {\n      return sortOrder(a.params, b.params);\n    });\n    return zrUtil.map(sortTargets, function (target) {\n      return children[target.index];\n    });\n  } else {\n    var isAsc_1 = sortOrder === 'asc';\n    return children.sort(function (a, b) {\n      var diff = (a.getValue() - b.getValue()) * (isAsc_1 ? 1 : -1);\n      return diff === 0 ? (a.dataIndex - b.dataIndex) * (isAsc_1 ? -1 : 1) : diff;\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { lift } from 'zrender/lib/tool/color.js';\nimport { extend, isString } from 'zrender/lib/core/util.js';\nexport default function sunburstVisual(ecModel) {\n  var paletteScope = {}; // Default color strategy\n\n  function pickColor(node, seriesModel, treeHeight) {\n    // Choose color from palette based on the first level.\n    var current = node;\n\n    while (current && current.depth > 1) {\n      current = current.parentNode;\n    }\n\n    var color = seriesModel.getColorFromPalette(current.name || current.dataIndex + '', paletteScope);\n\n    if (node.depth > 1 && isString(color)) {\n      // Lighter on the deeper level.\n      color = lift(color, (node.depth - 1) / (treeHeight - 1) * 0.5);\n    }\n\n    return color;\n  }\n\n  ecModel.eachSeriesByType('sunburst', function (seriesModel) {\n    var data = seriesModel.getData();\n    var tree = data.tree;\n    tree.eachNode(function (node) {\n      var model = node.getModel();\n      var style = model.getModel('itemStyle').getItemStyle();\n\n      if (!style.fill) {\n        style.fill = pickColor(node, seriesModel, tree.root.height);\n      }\n\n      var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n      extend(existsStyle, style);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport SunburstView from './SunburstView.js';\nimport SunburstSeriesModel from './SunburstSeries.js';\nimport sunburstLayout from './sunburstLayout.js';\nimport sunburstVisual from './sunburstVisual.js';\nimport dataFilter from '../../processor/dataFilter.js';\nimport { curry } from 'zrender/lib/core/util.js';\nimport { installSunburstAction } from './sunburstAction.js';\nexport function install(registers) {\n  registers.registerChartView(SunburstView);\n  registers.registerSeriesModel(SunburstSeriesModel);\n  registers.registerLayout(curry(sunburstLayout, 'sunburst'));\n  registers.registerProcessor(curry(dataFilter, 'sunburst'));\n  registers.registerVisual(sunburstVisual);\n  installSunburstAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport createSeriesData from '../helper/createSeriesData.js';\nimport { makeInner } from '../../util/model.js';\nimport SeriesModel from '../../model/Series.js'; // Also compat with ec4, where\n// `visual('color') visual('borderColor')` is supported.\n\nexport var STYLE_VISUAL_TYPE = {\n  color: 'fill',\n  borderColor: 'stroke'\n};\nexport var NON_STYLE_VISUAL_PROPS = {\n  symbol: 1,\n  symbolSize: 1,\n  symbolKeepAspect: 1,\n  legendIcon: 1,\n  visualMeta: 1,\n  liftZ: 1,\n  decal: 1\n};\n;\nexport var customInnerStore = makeInner();\n\nvar CustomSeriesModel =\n/** @class */\nfunction (_super) {\n  __extends(CustomSeriesModel, _super);\n\n  function CustomSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CustomSeriesModel.type;\n    return _this;\n  }\n\n  CustomSeriesModel.prototype.optionUpdated = function () {\n    this.currentZLevel = this.get('zlevel', true);\n    this.currentZ = this.get('z', true);\n  };\n\n  CustomSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createSeriesData(null, this);\n  };\n\n  CustomSeriesModel.prototype.getDataParams = function (dataIndex, dataType, el) {\n    var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n    el && (params.info = customInnerStore(el).info);\n    return params;\n  };\n\n  CustomSeriesModel.type = 'series.custom';\n  CustomSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  CustomSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    // zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    // Custom series will not clip by default.\n    // Some case will use custom series to draw label\n    // For example https://echarts.apache.org/examples/en/editor.html?c=custom-gantt-flight\n    clip: false // Cartesian coordinate system\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    // Polar coordinate system\n    // polarIndex: 0,\n    // Geo coordinate system\n    // geoIndex: 0,\n\n  };\n  return CustomSeriesModel;\n}(SeriesModel);\n\nexport default CustomSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  // dataItem is necessary in log axis.\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map(['x', 'y'], function (dim, dimIdx) {\n    var axis = this.getAxis(dim);\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n  }, this);\n}\n\nexport default function cartesianPrepareCustom(coordSys) {\n  var rect = coordSys.master.getRect();\n  return {\n    coordSys: {\n      // The name exposed to user is always 'cartesian2d' but not 'grid'.\n      type: 'cartesian2d',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: function (data) {\n        // do not provide \"out\" param\n        return coordSys.dataToPoint(data);\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map([0, 1], function (dimIdx) {\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    var p1 = [];\n    var p2 = [];\n    p1[dimIdx] = val - halfSize;\n    p2[dimIdx] = val + halfSize;\n    p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n    return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n  }, this);\n}\n\nexport default function geoPrepareCustom(coordSys) {\n  var rect = coordSys.getBoundingRect();\n  return {\n    coordSys: {\n      type: 'geo',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height,\n      zoom: coordSys.getZoom()\n    },\n    api: {\n      coord: function (data) {\n        // do not provide \"out\" and noRoam param,\n        // Compatible with this usage:\n        // echarts.util.map(item.points, api.coord)\n        return coordSys.dataToPoint(data);\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { bind } from 'zrender/lib/core/util.js';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  // dataItem is necessary in log axis.\n  var axis = this.getAxis();\n  var val = dataItem instanceof Array ? dataItem[0] : dataItem;\n  var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;\n  return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n}\n\nexport default function singlePrepareCustom(coordSys) {\n  var rect = coordSys.getRect();\n  return {\n    coordSys: {\n      type: 'singleAxis',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: function (val) {\n        // do not provide \"out\" param\n        return coordSys.dataToPoint(val);\n      },\n      size: bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js'; // import AngleAxis from './AngleAxis.js';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  // dataItem is necessary in log axis.\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map(['Radius', 'Angle'], function (dim, dimIdx) {\n    var getterName = 'get' + dim + 'Axis'; // TODO: TYPE Check Angle Axis\n\n    var axis = this[getterName]();\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    var result = axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n\n    if (dim === 'Angle') {\n      result = result * Math.PI / 180;\n    }\n\n    return result;\n  }, this);\n}\n\nexport default function polarPrepareCustom(coordSys) {\n  var radiusAxis = coordSys.getRadiusAxis();\n  var angleAxis = coordSys.getAngleAxis();\n  var radius = radiusAxis.getExtent();\n  radius[0] > radius[1] && radius.reverse();\n  return {\n    coordSys: {\n      type: 'polar',\n      cx: coordSys.cx,\n      cy: coordSys.cy,\n      r: radius[1],\n      r0: radius[0]\n    },\n    api: {\n      coord: function (data) {\n        var radius = radiusAxis.dataToRadius(data[0]);\n        var angle = angleAxis.dataToAngle(data[1]);\n        var coord = coordSys.coordToPoint([radius, angle]);\n        coord.push(radius, angle * Math.PI / 180);\n        return coord;\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport default function calendarPrepareCustom(coordSys) {\n  var rect = coordSys.getRect();\n  var rangeInfo = coordSys.getRangeInfo();\n  return {\n    coordSys: {\n      type: 'calendar',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height,\n      cellWidth: coordSys.getCellWidth(),\n      cellHeight: coordSys.getCellHeight(),\n      rangeInfo: {\n        start: rangeInfo.start,\n        end: rangeInfo.end,\n        weeks: rangeInfo.weeks,\n        dayCount: rangeInfo.allDay\n      }\n    },\n    api: {\n      coord: function (data, clamp) {\n        return coordSys.dataToPoint(data, clamp);\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, hasOwn } from 'zrender/lib/core/util.js';\nvar deprecatedLogs = {};\n/**\n * Whether need to call `convertEC4CompatibleStyle`.\n */\n\nexport function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\n  // Since echarts5, `RectText` is separated from its host element and style.text\n  // does not exist any more. The compat work brings some extra burden on performance.\n  // So we provide:\n  // `legacy: true` force make compat.\n  // `legacy: false`, force do not compat.\n  // `legacy` not set: auto detect wheter legacy.\n  //     But in this case we do not compat (difficult to detect and rare case):\n  //     Becuse custom series and graphic component support \"merge\", users may firstly\n  //     only set `textStrokeWidth` style or secondly only set `text`.\n  return style && (style.legacy || style.legacy !== false && !hasOwnTextContentOption && !hasOwnTextConfig && elType !== 'tspan' // Difficult to detect whether legacy for a \"text\" el.\n  && (elType === 'text' || hasOwn(style, 'text')));\n}\n/**\n * `EC4CompatibleStyle` is style that might be in echarts4 format or echarts5 format.\n * @param hostStyle The properties might be modified.\n * @return If be text el, `textContentStyle` and `textConfig` will not be retured.\n *         Otherwise a `textContentStyle` and `textConfig` will be created, whose props area\n *         retried from the `hostStyle`.\n */\n\nexport function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\n  var srcStyle = hostStyle;\n  var textConfig;\n  var textContent;\n  var textContentStyle;\n\n  if (elType === 'text') {\n    textContentStyle = srcStyle;\n  } else {\n    textContentStyle = {};\n    hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\n    hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\n    hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\n    hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\n    hasOwn(srcStyle, 'fontFamily') && (textContentStyle.fontFamily = srcStyle.fontFamily);\n    hasOwn(srcStyle, 'fontSize') && (textContentStyle.fontSize = srcStyle.fontSize);\n    hasOwn(srcStyle, 'fontStyle') && (textContentStyle.fontStyle = srcStyle.fontStyle);\n    hasOwn(srcStyle, 'fontWeight') && (textContentStyle.fontWeight = srcStyle.fontWeight);\n    textContent = {\n      type: 'text',\n      style: textContentStyle,\n      // ec4 do not support rectText trigger.\n      // And when text postion is different in normal and emphasis\n      // => hover text trigger emphasis;\n      // => text position changed, leave mouse pointer immediately;\n      // That might cause state incorrect.\n      silent: true\n    };\n    textConfig = {};\n    var hasOwnPos = hasOwn(srcStyle, 'textPosition');\n\n    if (isNormal) {\n      textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\n    } else {\n      hasOwnPos && (textConfig.position = srcStyle.textPosition);\n    }\n\n    hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\n    hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\n    hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\n    hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\n  }\n\n  convertEC4CompatibleRichItem(textContentStyle, hostStyle);\n  each(textContentStyle.rich, function (richItem) {\n    convertEC4CompatibleRichItem(richItem, richItem);\n  });\n  return {\n    textConfig: textConfig,\n    textContent: textContent\n  };\n}\n/**\n * The result will be set to `out`.\n */\n\nfunction convertEC4CompatibleRichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  } // (1) For simplicity, make textXXX properties (deprecated since ec5) has\n  // higher priority. For example, consider in ec4 `borderColor: 5, textBorderColor: 10`\n  // on a rect means `borderColor: 4` on the rect and `borderColor: 10` on an attached\n  // richText in ec5.\n  // (2) `out === richItem` if and only if `out` is text el or rich item.\n  // So we can overwite existing props in `out` since textXXX has higher priority.\n\n\n  richItem.font = richItem.textFont || richItem.font;\n  hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\n  hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\n  hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\n  hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\n  hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\n  hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\n  hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\n  hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\n  hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\n  hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\n  hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\n  hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\n  hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\n  hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\n  hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\n}\n/**\n * Convert to pure echarts4 format style.\n * `itemStyle` will be modified, added with ec4 style properties from\n * `textStyle` and `textConfig`.\n *\n * [Caveat]: For simplicity, `insideRollback` in ec4 does not compat, where\n * `styleEmphasis: {textFill: 'red'}` will remove the normal auto added stroke.\n */\n\n\nexport function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) {\n  var out = itemStl; // See `custom.ts`, a trick to set extra `textPosition` firstly.\n\n  out.textPosition = out.textPosition || txCfg.position || 'inside';\n  txCfg.offset != null && (out.textOffset = txCfg.offset);\n  txCfg.rotation != null && (out.textRotation = txCfg.rotation);\n  txCfg.distance != null && (out.textDistance = txCfg.distance);\n  var isInside = out.textPosition.indexOf('inside') >= 0;\n  var hostFill = itemStl.fill || '#000';\n  convertToEC4RichItem(out, txStl);\n  var textFillNotSet = out.textFill == null;\n\n  if (isInside) {\n    if (textFillNotSet) {\n      out.textFill = txCfg.insideFill || '#fff';\n      !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke);\n      !out.textStroke && (out.textStroke = hostFill);\n      out.textStrokeWidth == null && (out.textStrokeWidth = 2);\n    }\n  } else {\n    if (textFillNotSet) {\n      out.textFill = itemStl.fill || txCfg.outsideFill || '#000';\n    }\n\n    !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke);\n  }\n\n  out.text = txStl.text;\n  out.rich = txStl.rich;\n  each(txStl.rich, function (richItem) {\n    convertToEC4RichItem(richItem, richItem);\n  });\n  return out;\n}\n\nfunction convertToEC4RichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  }\n\n  hasOwn(richItem, 'fill') && (out.textFill = richItem.fill);\n  hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill);\n  hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth);\n  hasOwn(richItem, 'font') && (out.font = richItem.font);\n  hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle);\n  hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight);\n  hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize);\n  hasOwn(richItem, 'fontFamily') && (out.fontFamily = richItem.fontFamily);\n  hasOwn(richItem, 'align') && (out.textAlign = richItem.align);\n  hasOwn(richItem, 'verticalAlign') && (out.textVerticalAlign = richItem.verticalAlign);\n  hasOwn(richItem, 'lineHeight') && (out.textLineHeight = richItem.lineHeight);\n  hasOwn(richItem, 'width') && (out.textWidth = richItem.width);\n  hasOwn(richItem, 'height') && (out.textHeight = richItem.height);\n  hasOwn(richItem, 'backgroundColor') && (out.textBackgroundColor = richItem.backgroundColor);\n  hasOwn(richItem, 'padding') && (out.textPadding = richItem.padding);\n  hasOwn(richItem, 'borderColor') && (out.textBorderColor = richItem.borderColor);\n  hasOwn(richItem, 'borderWidth') && (out.textBorderWidth = richItem.borderWidth);\n  hasOwn(richItem, 'borderRadius') && (out.textBorderRadius = richItem.borderRadius);\n  hasOwn(richItem, 'shadowColor') && (out.textBoxShadowColor = richItem.shadowColor);\n  hasOwn(richItem, 'shadowBlur') && (out.textBoxShadowBlur = richItem.shadowBlur);\n  hasOwn(richItem, 'shadowOffsetX') && (out.textBoxShadowOffsetX = richItem.shadowOffsetX);\n  hasOwn(richItem, 'shadowOffsetY') && (out.textBoxShadowOffsetY = richItem.shadowOffsetY);\n  hasOwn(richItem, 'textShadowColor') && (out.textShadowColor = richItem.textShadowColor);\n  hasOwn(richItem, 'textShadowBlur') && (out.textShadowBlur = richItem.textShadowBlur);\n  hasOwn(richItem, 'textShadowOffsetX') && (out.textShadowOffsetX = richItem.textShadowOffsetX);\n  hasOwn(richItem, 'textShadowOffsetY') && (out.textShadowOffsetY = richItem.textShadowOffsetY);\n}\n\nexport function warnDeprecated(deprecated, insteadApproach) {\n  if (process.env.NODE_ENV !== 'production') {\n    var key = deprecated + '^_^' + insteadApproach;\n\n    if (!deprecatedLogs[key]) {\n      console.warn(\"[ECharts] DEPRECATED: \\\"\" + deprecated + \"\\\" has been deprecated. \" + insteadApproach);\n      deprecatedLogs[key] = true;\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { makeInner, normalizeToArray } from '../util/model.js';\nimport { assert, bind, each, eqNaN, extend, hasOwn, indexOf, isArrayLike, keys, reduce } from 'zrender/lib/core/util.js';\nimport { cloneValue } from 'zrender/lib/animation/Animator.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nimport { getAnimationConfig } from './basicTrasition.js';\nimport { Path } from '../util/graphic.js';\nimport { warn } from '../util/log.js';\nimport { TRANSFORMABLE_PROPS } from 'zrender/lib/core/Transformable.js';\nvar LEGACY_TRANSFORM_PROPS_MAP = {\n  position: ['x', 'y'],\n  scale: ['scaleX', 'scaleY'],\n  origin: ['originX', 'originY']\n};\nvar LEGACY_TRANSFORM_PROPS = keys(LEGACY_TRANSFORM_PROPS_MAP);\nvar TRANSFORM_PROPS_MAP = reduce(TRANSFORMABLE_PROPS, function (obj, key) {\n  obj[key] = 1;\n  return obj;\n}, {});\nvar transformPropNamesStr = TRANSFORMABLE_PROPS.join(', '); // '' means root\n\nexport var ELEMENT_ANIMATABLE_PROPS = ['', 'style', 'shape', 'extra'];\n;\nvar transitionInnerStore = makeInner();\n;\n\nfunction getElementAnimationConfig(animationType, el, elOption, parentModel, dataIndex) {\n  var animationProp = animationType + \"Animation\";\n  var config = getAnimationConfig(animationType, parentModel, dataIndex) || {};\n  var userDuring = transitionInnerStore(el).userDuring; // Only set when duration is > 0 and it's need to be animated.\n\n  if (config.duration > 0) {\n    // For simplicity, if during not specified, the previous during will not work any more.\n    config.during = userDuring ? bind(duringCall, {\n      el: el,\n      userDuring: userDuring\n    }) : null;\n    config.setToFinal = true;\n    config.scope = animationType;\n  }\n\n  extend(config, elOption[animationProp]);\n  return config;\n}\n\nexport function applyUpdateTransition(el, elOption, animatableModel, opts) {\n  opts = opts || {};\n  var dataIndex = opts.dataIndex,\n      isInit = opts.isInit,\n      clearStyle = opts.clearStyle;\n  var hasAnimation = animatableModel.isAnimationEnabled(); // Save the meta info for further morphing. Like apply on the sub morphing elements.\n\n  var store = transitionInnerStore(el);\n  var styleOpt = elOption.style;\n  store.userDuring = elOption.during;\n  var transFromProps = {};\n  var propsToSet = {};\n  prepareTransformAllPropsFinal(el, elOption, propsToSet);\n  prepareShapeOrExtraAllPropsFinal('shape', elOption, propsToSet);\n  prepareShapeOrExtraAllPropsFinal('extra', elOption, propsToSet);\n\n  if (!isInit && hasAnimation) {\n    prepareTransformTransitionFrom(el, elOption, transFromProps);\n    prepareShapeOrExtraTransitionFrom('shape', el, elOption, transFromProps);\n    prepareShapeOrExtraTransitionFrom('extra', el, elOption, transFromProps);\n    prepareStyleTransitionFrom(el, elOption, styleOpt, transFromProps);\n  }\n\n  propsToSet.style = styleOpt;\n  applyPropsDirectly(el, propsToSet, clearStyle);\n  applyMiscProps(el, elOption);\n\n  if (hasAnimation) {\n    if (isInit) {\n      var enterFromProps_1 = {};\n      each(ELEMENT_ANIMATABLE_PROPS, function (propName) {\n        var prop = propName ? elOption[propName] : elOption;\n\n        if (prop && prop.enterFrom) {\n          if (propName) {\n            enterFromProps_1[propName] = enterFromProps_1[propName] || {};\n          }\n\n          extend(propName ? enterFromProps_1[propName] : enterFromProps_1, prop.enterFrom);\n        }\n      });\n      var config = getElementAnimationConfig('enter', el, elOption, animatableModel, dataIndex);\n\n      if (config.duration > 0) {\n        el.animateFrom(enterFromProps_1, config);\n      }\n    } else {\n      applyPropsTransition(el, elOption, dataIndex || 0, animatableModel, transFromProps);\n    }\n  } // Store leave to be used in leave transition.\n\n\n  updateLeaveTo(el, elOption);\n  styleOpt ? el.dirty() : el.markRedraw();\n}\nexport function updateLeaveTo(el, elOption) {\n  // Try merge to previous set leaveTo\n  var leaveToProps = transitionInnerStore(el).leaveToProps;\n\n  for (var i = 0; i < ELEMENT_ANIMATABLE_PROPS.length; i++) {\n    var propName = ELEMENT_ANIMATABLE_PROPS[i];\n    var prop = propName ? elOption[propName] : elOption;\n\n    if (prop && prop.leaveTo) {\n      if (!leaveToProps) {\n        leaveToProps = transitionInnerStore(el).leaveToProps = {};\n      }\n\n      if (propName) {\n        leaveToProps[propName] = leaveToProps[propName] || {};\n      }\n\n      extend(propName ? leaveToProps[propName] : leaveToProps, prop.leaveTo);\n    }\n  }\n}\nexport function applyLeaveTransition(el, elOption, animatableModel, onRemove) {\n  if (el) {\n    var parent_1 = el.parent;\n    var leaveToProps = transitionInnerStore(el).leaveToProps;\n\n    if (leaveToProps) {\n      // TODO TODO use leave after leaveAnimation in series is introduced\n      // TODO Data index?\n      var config = getElementAnimationConfig('update', el, elOption, animatableModel, 0);\n\n      config.done = function () {\n        parent_1.remove(el);\n        onRemove && onRemove();\n      };\n\n      el.animateTo(leaveToProps, config);\n    } else {\n      parent_1.remove(el);\n      onRemove && onRemove();\n    }\n  }\n}\nexport function isTransitionAll(transition) {\n  return transition === 'all';\n}\n\nfunction applyPropsDirectly(el, // Can be null/undefined\nallPropsFinal, clearStyle) {\n  var styleOpt = allPropsFinal.style;\n\n  if (!el.isGroup && styleOpt) {\n    if (clearStyle) {\n      el.useStyle({}); // When style object changed, how to trade the existing animation?\n      // It is probably complicated and not needed to cover all the cases.\n      // But still need consider the case:\n      // (1) When using init animation on `style.opacity`, and before the animation\n      //     ended users triggers an update by mousewhel. At that time the init\n      //     animation should better be continued rather than terminated.\n      //     So after `useStyle` called, we should change the animation target manually\n      //     to continue the effect of the init animation.\n      // (2) PENDING: If the previous animation targeted at a `val1`, and currently we need\n      //     to update the value to `val2` and no animation declared, should be terminate\n      //     the previous animation or just modify the target of the animation?\n      //     Therotically That will happen not only on `style` but also on `shape` and\n      //     `transfrom` props. But we haven't handle this case at present yet.\n      // (3) PENDING: Is it proper to visit `animators` and `targetName`?\n\n      var animators = el.animators;\n\n      for (var i = 0; i < animators.length; i++) {\n        var animator = animators[i]; // targetName is the \"topKey\".\n\n        if (animator.targetName === 'style') {\n          animator.changeTarget(el.style);\n        }\n      }\n    }\n\n    el.setStyle(styleOpt);\n  }\n\n  if (allPropsFinal) {\n    // Not set style here.\n    allPropsFinal.style = null; // Set el to the final state firstly.\n\n    allPropsFinal && el.attr(allPropsFinal);\n    allPropsFinal.style = styleOpt;\n  }\n}\n\nfunction applyPropsTransition(el, elOption, dataIndex, model, // Can be null/undefined\ntransFromProps) {\n  if (transFromProps) {\n    var config = getElementAnimationConfig('update', el, elOption, model, dataIndex);\n\n    if (config.duration > 0) {\n      el.animateFrom(transFromProps, config);\n    }\n  }\n}\n\nfunction applyMiscProps(el, elOption) {\n  // Merge by default.\n  hasOwn(elOption, 'silent') && (el.silent = elOption.silent);\n  hasOwn(elOption, 'ignore') && (el.ignore = elOption.ignore);\n\n  if (el instanceof Displayable) {\n    hasOwn(elOption, 'invisible') && (el.invisible = elOption.invisible);\n  }\n\n  if (el instanceof Path) {\n    hasOwn(elOption, 'autoBatch') && (el.autoBatch = elOption.autoBatch);\n  }\n} // Use it to avoid it be exposed to user.\n\n\nvar tmpDuringScope = {};\nvar transitionDuringAPI = {\n  // Usually other props do not need to be changed in animation during.\n  setTransform: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(hasOwn(TRANSFORM_PROPS_MAP, key), 'Only ' + transformPropNamesStr + ' available in `setTransform`.');\n    }\n\n    tmpDuringScope.el[key] = val;\n    return this;\n  },\n  getTransform: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(hasOwn(TRANSFORM_PROPS_MAP, key), 'Only ' + transformPropNamesStr + ' available in `getTransform`.');\n    }\n\n    return tmpDuringScope.el[key];\n  },\n  setShape: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var el = tmpDuringScope.el;\n    var shape = el.shape || (el.shape = {});\n    shape[key] = val;\n    el.dirtyShape && el.dirtyShape();\n    return this;\n  },\n  getShape: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var shape = tmpDuringScope.el.shape;\n\n    if (shape) {\n      return shape[key];\n    }\n  },\n  setStyle: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var el = tmpDuringScope.el;\n    var style = el.style;\n\n    if (style) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (eqNaN(val)) {\n          warn('style.' + key + ' must not be assigned with NaN.');\n        }\n      }\n\n      style[key] = val;\n      el.dirtyStyle && el.dirtyStyle();\n    }\n\n    return this;\n  },\n  getStyle: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var style = tmpDuringScope.el.style;\n\n    if (style) {\n      return style[key];\n    }\n  },\n  setExtra: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var extra = tmpDuringScope.el.extra || (tmpDuringScope.el.extra = {});\n    extra[key] = val;\n    return this;\n  },\n  getExtra: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var extra = tmpDuringScope.el.extra;\n\n    if (extra) {\n      return extra[key];\n    }\n  }\n};\n\nfunction assertNotReserved(key) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (key === 'transition' || key === 'enterFrom' || key === 'leaveTo') {\n      throw new Error('key must not be \"' + key + '\"');\n    }\n  }\n}\n\nfunction duringCall() {\n  // Do not provide \"percent\" until some requirements come.\n  // Because consider thies case:\n  // enterFrom: {x: 100, y: 30}, transition: 'x'.\n  // And enter duration is different from update duration.\n  // Thus it might be confused about the meaning of \"percent\" in during callback.\n  var scope = this;\n  var el = scope.el;\n\n  if (!el) {\n    return;\n  } // If el is remove from zr by reason like legend, during still need to called,\n  // becuase el will be added back to zr and the prop value should not be incorrect.\n\n\n  var latestUserDuring = transitionInnerStore(el).userDuring;\n  var scopeUserDuring = scope.userDuring; // Ensured a during is only called once in each animation frame.\n  // If a during is called multiple times in one frame, maybe some users' calulation logic\n  // might be wrong (not sure whether this usage exists).\n  // The case of a during might be called twice can be: by default there is a animator for\n  // 'x', 'y' when init. Before the init animation finished, call `setOption` to start\n  // another animators for 'style'/'shape'/'extra'.\n\n  if (latestUserDuring !== scopeUserDuring) {\n    // release\n    scope.el = scope.userDuring = null;\n    return;\n  }\n\n  tmpDuringScope.el = el; // Give no `this` to user in \"during\" calling.\n\n  scopeUserDuring(transitionDuringAPI); // FIXME: if in future meet the case that some prop will be both modified in `during` and `state`,\n  // consider the issue that the prop might be incorrect when return to \"normal\" state.\n}\n\nfunction prepareShapeOrExtraTransitionFrom(mainAttr, fromEl, elOption, transFromProps) {\n  var attrOpt = elOption[mainAttr];\n\n  if (!attrOpt) {\n    return;\n  }\n\n  var elPropsInAttr = fromEl[mainAttr];\n  var transFromPropsInAttr;\n\n  if (elPropsInAttr) {\n    var transition = elOption.transition;\n    var attrTransition = attrOpt.transition;\n\n    if (attrTransition) {\n      !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n\n      if (isTransitionAll(attrTransition)) {\n        extend(transFromPropsInAttr, elPropsInAttr);\n      } else {\n        var transitionKeys = normalizeToArray(attrTransition);\n\n        for (var i = 0; i < transitionKeys.length; i++) {\n          var key = transitionKeys[i];\n          var elVal = elPropsInAttr[key];\n          transFromPropsInAttr[key] = elVal;\n        }\n      }\n    } else if (isTransitionAll(transition) || indexOf(transition, mainAttr) >= 0) {\n      !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n      var elPropsInAttrKeys = keys(elPropsInAttr);\n\n      for (var i = 0; i < elPropsInAttrKeys.length; i++) {\n        var key = elPropsInAttrKeys[i];\n        var elVal = elPropsInAttr[key];\n\n        if (isNonStyleTransitionEnabled(attrOpt[key], elVal)) {\n          transFromPropsInAttr[key] = elVal;\n        }\n      }\n    }\n  }\n}\n\nfunction prepareShapeOrExtraAllPropsFinal(mainAttr, elOption, allProps) {\n  var attrOpt = elOption[mainAttr];\n\n  if (!attrOpt) {\n    return;\n  }\n\n  var allPropsInAttr = allProps[mainAttr] = {};\n  var keysInAttr = keys(attrOpt);\n\n  for (var i = 0; i < keysInAttr.length; i++) {\n    var key = keysInAttr[i]; // To avoid share one object with different element, and\n    // to avoid user modify the object inexpectedly, have to clone.\n\n    allPropsInAttr[key] = cloneValue(attrOpt[key]);\n  }\n}\n\nfunction prepareTransformTransitionFrom(el, elOption, transFromProps) {\n  var transition = elOption.transition;\n  var transitionKeys = isTransitionAll(transition) ? TRANSFORMABLE_PROPS : normalizeToArray(transition || []);\n\n  for (var i = 0; i < transitionKeys.length; i++) {\n    var key = transitionKeys[i];\n\n    if (key === 'style' || key === 'shape' || key === 'extra') {\n      continue;\n    }\n\n    var elVal = el[key];\n\n    if (process.env.NODE_ENV !== 'production') {\n      checkTransformPropRefer(key, 'el.transition');\n    } // Do not clone, animator will perform that clone.\n\n\n    transFromProps[key] = elVal;\n  }\n}\n\nfunction prepareTransformAllPropsFinal(el, elOption, allProps) {\n  for (var i = 0; i < LEGACY_TRANSFORM_PROPS.length; i++) {\n    var legacyName = LEGACY_TRANSFORM_PROPS[i];\n    var xyName = LEGACY_TRANSFORM_PROPS_MAP[legacyName];\n    var legacyArr = elOption[legacyName];\n\n    if (legacyArr) {\n      allProps[xyName[0]] = legacyArr[0];\n      allProps[xyName[1]] = legacyArr[1];\n    }\n  }\n\n  for (var i = 0; i < TRANSFORMABLE_PROPS.length; i++) {\n    var key = TRANSFORMABLE_PROPS[i];\n\n    if (elOption[key] != null) {\n      allProps[key] = elOption[key];\n    }\n  }\n}\n\nfunction prepareStyleTransitionFrom(fromEl, elOption, styleOpt, transFromProps) {\n  if (!styleOpt) {\n    return;\n  }\n\n  var fromElStyle = fromEl.style;\n  var transFromStyleProps;\n\n  if (fromElStyle) {\n    var styleTransition = styleOpt.transition;\n    var elTransition = elOption.transition;\n\n    if (styleTransition && !isTransitionAll(styleTransition)) {\n      var transitionKeys = normalizeToArray(styleTransition);\n      !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n\n      for (var i = 0; i < transitionKeys.length; i++) {\n        var key = transitionKeys[i];\n        var elVal = fromElStyle[key]; // Do not clone, see `checkNonStyleTansitionRefer`.\n\n        transFromStyleProps[key] = elVal;\n      }\n    } else if (fromEl.getAnimationStyleProps && (isTransitionAll(elTransition) || isTransitionAll(styleTransition) || indexOf(elTransition, 'style') >= 0)) {\n      var animationProps = fromEl.getAnimationStyleProps();\n      var animationStyleProps = animationProps ? animationProps.style : null;\n\n      if (animationStyleProps) {\n        !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n        var styleKeys = keys(styleOpt);\n\n        for (var i = 0; i < styleKeys.length; i++) {\n          var key = styleKeys[i];\n\n          if (animationStyleProps[key]) {\n            var elVal = fromElStyle[key];\n            transFromStyleProps[key] = elVal;\n          }\n        }\n      }\n    }\n  }\n}\n\nfunction isNonStyleTransitionEnabled(optVal, elVal) {\n  // The same as `checkNonStyleTansitionRefer`.\n  return !isArrayLike(optVal) ? optVal != null && isFinite(optVal) : optVal !== elVal;\n}\n\nvar checkTransformPropRefer;\n\nif (process.env.NODE_ENV !== 'production') {\n  checkTransformPropRefer = function (key, usedIn) {\n    if (!hasOwn(TRANSFORM_PROPS_MAP, key)) {\n      warn('Prop `' + key + '` is not a permitted in `' + usedIn + '`. ' + 'Only `' + keys(TRANSFORM_PROPS_MAP).join('`, `') + '` are permitted.');\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { keys, filter, each, isArray, indexOf } from 'zrender/lib/core/util.js';\nimport { ELEMENT_ANIMATABLE_PROPS } from './customGraphicTransition.js';\nimport { getAnimationConfig } from './basicTrasition.js';\nimport { warn } from '../util/log.js';\nimport { makeInner } from '../util/model.js';\nvar getStateToRestore = makeInner();\nvar KEYFRAME_EXCLUDE_KEYS = ['percent', 'easing', 'shape', 'style', 'extra'];\n/**\n * Stop previous keyframe animation and restore the attributes.\n * Avoid new keyframe animation starts with wrong internal state when the percent: 0 is not set.\n */\n\nexport function stopPreviousKeyframeAnimationAndRestore(el) {\n  // Stop previous keyframe animation.\n  el.stopAnimation('keyframe'); // Restore\n\n  el.attr(getStateToRestore(el));\n}\nexport function applyKeyframeAnimation(el, animationOpts, animatableModel) {\n  if (!animatableModel.isAnimationEnabled() || !animationOpts) {\n    return;\n  }\n\n  if (isArray(animationOpts)) {\n    each(animationOpts, function (singleAnimationOpts) {\n      applyKeyframeAnimation(el, singleAnimationOpts, animatableModel);\n    });\n    return;\n  }\n\n  var keyframes = animationOpts.keyframes;\n  var duration = animationOpts.duration;\n\n  if (animatableModel && duration == null) {\n    // Default to use duration of config.\n    // NOTE: animation config from payload will be ignored because they are mainly for transitions.\n    var config = getAnimationConfig('enter', animatableModel, 0);\n    duration = config && config.duration;\n  }\n\n  if (!keyframes || !duration) {\n    return;\n  }\n\n  var stateToRestore = getStateToRestore(el);\n  each(ELEMENT_ANIMATABLE_PROPS, function (targetPropName) {\n    if (targetPropName && !el[targetPropName]) {\n      return;\n    }\n\n    var animator;\n    var endFrameIsSet = false; // Sort keyframes by percent.\n\n    keyframes.sort(function (a, b) {\n      return a.percent - b.percent;\n    });\n    each(keyframes, function (kf) {\n      // Stop current animation.\n      var animators = el.animators;\n      var kfValues = targetPropName ? kf[targetPropName] : kf;\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (kf.percent >= 1) {\n          endFrameIsSet = true;\n        }\n      }\n\n      if (!kfValues) {\n        return;\n      }\n\n      var propKeys = keys(kfValues);\n\n      if (!targetPropName) {\n        // PENDING performance?\n        propKeys = filter(propKeys, function (key) {\n          return indexOf(KEYFRAME_EXCLUDE_KEYS, key) < 0;\n        });\n      }\n\n      if (!propKeys.length) {\n        return;\n      }\n\n      if (!animator) {\n        animator = el.animate(targetPropName, animationOpts.loop, true);\n        animator.scope = 'keyframe';\n      }\n\n      for (var i = 0; i < animators.length; i++) {\n        // Stop all other animation that is not keyframe.\n        if (animators[i] !== animator && animators[i].targetName === animator.targetName) {\n          animators[i].stopTracks(propKeys);\n        }\n      }\n\n      targetPropName && (stateToRestore[targetPropName] = stateToRestore[targetPropName] || {});\n      var savedTarget = targetPropName ? stateToRestore[targetPropName] : stateToRestore;\n      each(propKeys, function (key) {\n        // Save original value.\n        savedTarget[key] = ((targetPropName ? el[targetPropName] : el) || {})[key];\n      });\n      animator.whenWithKeys(duration * kf.percent, kfValues, propKeys, kf.easing);\n    });\n\n    if (!animator) {\n      return;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!endFrameIsSet) {\n        warn('End frame with percent: 1 is missing in the keyframeAnimation.', true);\n      }\n    }\n\n    animator.delay(animationOpts.delay || 0).duration(duration).start(animationOpts.easing);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { hasOwn, assert, isString, retrieve2, retrieve3, defaults, each, indexOf } from 'zrender/lib/core/util.js';\nimport * as graphicUtil from '../../util/graphic.js';\nimport { setDefaultStateProxy, toggleHoverEmphasis } from '../../util/states.js';\nimport * as labelStyleHelper from '../../label/labelStyle.js';\nimport { getDefaultLabel } from '../helper/labelHelper.js';\nimport { getLayoutOnAxis } from '../../layout/barGrid.js';\nimport DataDiffer from '../../data/DataDiffer.js';\nimport ChartView from '../../view/Chart.js';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys.js';\nimport prepareCartesian2d from '../../coord/cartesian/prepareCustom.js';\nimport prepareGeo from '../../coord/geo/prepareCustom.js';\nimport prepareSingleAxis from '../../coord/single/prepareCustom.js';\nimport preparePolar from '../../coord/polar/prepareCustom.js';\nimport prepareCalendar from '../../coord/calendar/prepareCustom.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nimport { convertToEC4StyleForCustomSerise, isEC4CompatibleStyle, convertFromEC4CompatibleStyle, warnDeprecated } from '../../util/styleCompat.js';\nimport { throwError } from '../../util/log.js';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal.js';\nimport { STYLE_VISUAL_TYPE, NON_STYLE_VISUAL_PROPS, customInnerStore } from './CustomSeries.js';\nimport { applyLeaveTransition, applyUpdateTransition } from '../../animation/customGraphicTransition.js';\nimport { applyKeyframeAnimation, stopPreviousKeyframeAnimationAndRestore } from '../../animation/customGraphicKeyframeAnimation.js';\nvar EMPHASIS = 'emphasis';\nvar NORMAL = 'normal';\nvar BLUR = 'blur';\nvar SELECT = 'select';\nvar STATES = [NORMAL, EMPHASIS, BLUR, SELECT];\nvar PATH_ITEM_STYLE = {\n  normal: ['itemStyle'],\n  emphasis: [EMPHASIS, 'itemStyle'],\n  blur: [BLUR, 'itemStyle'],\n  select: [SELECT, 'itemStyle']\n};\nvar PATH_LABEL = {\n  normal: ['label'],\n  emphasis: [EMPHASIS, 'label'],\n  blur: [BLUR, 'label'],\n  select: [SELECT, 'label']\n};\nvar DEFAULT_TRANSITION = ['x', 'y']; // Use prefix to avoid index to be the same as el.name,\n// which will cause weird update animation.\n\nvar GROUP_DIFF_PREFIX = 'e\\0\\0';\nvar attachedTxInfoTmp = {\n  normal: {},\n  emphasis: {},\n  blur: {},\n  select: {}\n};\n/**\n * To reduce total package size of each coordinate systems, the modules `prepareCustom`\n * of each coordinate systems are not required by each coordinate systems directly, but\n * required by the module `custom`.\n *\n * prepareInfoForCustomSeries {Function}: optional\n *     @return {Object} {coordSys: {...}, api: {\n *         coord: function (data, clamp) {}, // return point in global.\n *         size: function (dataSize, dataItem) {} // return size of each axis in coordSys.\n *     }}\n */\n\nvar prepareCustoms = {\n  cartesian2d: prepareCartesian2d,\n  geo: prepareGeo,\n  single: prepareSingleAxis,\n  polar: preparePolar,\n  calendar: prepareCalendar\n};\n\nfunction isPath(el) {\n  return el instanceof graphicUtil.Path;\n}\n\nfunction isDisplayable(el) {\n  return el instanceof Displayable;\n}\n\nfunction copyElement(sourceEl, targetEl) {\n  targetEl.copyTransform(sourceEl);\n\n  if (isDisplayable(targetEl) && isDisplayable(sourceEl)) {\n    targetEl.setStyle(sourceEl.style);\n    targetEl.z = sourceEl.z;\n    targetEl.z2 = sourceEl.z2;\n    targetEl.zlevel = sourceEl.zlevel;\n    targetEl.invisible = sourceEl.invisible;\n    targetEl.ignore = sourceEl.ignore;\n\n    if (isPath(targetEl) && isPath(sourceEl)) {\n      targetEl.setShape(sourceEl.shape);\n    }\n  }\n}\n\nvar CustomChartView =\n/** @class */\nfunction (_super) {\n  __extends(CustomChartView, _super);\n\n  function CustomChartView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CustomChartView.type;\n    return _this;\n  }\n\n  CustomChartView.prototype.render = function (customSeries, ecModel, api, payload) {\n    // Clear previously rendered progressive elements.\n    this._progressiveEls = null;\n    var oldData = this._data;\n    var data = customSeries.getData();\n    var group = this.group;\n    var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n\n    if (!oldData) {\n      // Previous render is incremental render or first render.\n      // Needs remove the incremental rendered elements.\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      applyLeaveTransition(el, customInnerStore(el).option, customSeries);\n    }).update(function (newIdx, oldIdx) {\n      var oldEl = oldData.getItemGraphicEl(oldIdx);\n      createOrUpdateItem(api, oldEl, newIdx, renderItem(newIdx, payload), customSeries, group, data);\n    }).execute(); // Do clipping\n\n    var clipPath = customSeries.get('clip', true) ? createClipPath(customSeries.coordinateSystem, false, customSeries) : null;\n\n    if (clipPath) {\n      group.setClipPath(clipPath);\n    } else {\n      group.removeClipPath();\n    }\n\n    this._data = data;\n  };\n\n  CustomChartView.prototype.incrementalPrepareRender = function (customSeries, ecModel, api) {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  CustomChartView.prototype.incrementalRender = function (params, customSeries, ecModel, api, payload) {\n    var data = customSeries.getData();\n    var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n    var progressiveEls = this._progressiveEls = [];\n\n    function setIncrementalAndHoverLayer(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = params.start; idx < params.end; idx++) {\n      var el = createOrUpdateItem(null, null, idx, renderItem(idx, payload), customSeries, this.group, data);\n\n      if (el) {\n        el.traverse(setIncrementalAndHoverLayer);\n        progressiveEls.push(el);\n      }\n    }\n  };\n\n  CustomChartView.prototype.eachRendered = function (cb) {\n    graphicUtil.traverseElements(this._progressiveEls || this.group, cb);\n  };\n\n  CustomChartView.prototype.filterForExposedEvent = function (eventType, query, targetEl, packedEvent) {\n    var elementName = query.element;\n\n    if (elementName == null || targetEl.name === elementName) {\n      return true;\n    } // Enable to give a name on a group made by `renderItem`, and listen\n    // events that triggerd by its descendents.\n\n\n    while ((targetEl = targetEl.__hostTarget || targetEl.parent) && targetEl !== this.group) {\n      if (targetEl.name === elementName) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  CustomChartView.type = 'custom';\n  return CustomChartView;\n}(ChartView);\n\nexport default CustomChartView;\n\nfunction createEl(elOption) {\n  var graphicType = elOption.type;\n  var el; // Those graphic elements are not shapes. They should not be\n  // overwritten by users, so do them first.\n\n  if (graphicType === 'path') {\n    var shape = elOption.shape; // Using pathRect brings convenience to users sacle svg path.\n\n    var pathRect = shape.width != null && shape.height != null ? {\n      x: shape.x || 0,\n      y: shape.y || 0,\n      width: shape.width,\n      height: shape.height\n    } : null;\n    var pathData = getPathData(shape); // Path is also used for icon, so layout 'center' by default.\n\n    el = graphicUtil.makePath(pathData, null, pathRect, shape.layout || 'center');\n    customInnerStore(el).customPathData = pathData;\n  } else if (graphicType === 'image') {\n    el = new graphicUtil.Image({});\n    customInnerStore(el).customImagePath = elOption.style.image;\n  } else if (graphicType === 'text') {\n    el = new graphicUtil.Text({}); // customInnerStore(el).customText = (elOption.style as TextStyleProps).text;\n  } else if (graphicType === 'group') {\n    el = new graphicUtil.Group();\n  } else if (graphicType === 'compoundPath') {\n    throw new Error('\"compoundPath\" is not supported yet.');\n  } else {\n    var Clz = graphicUtil.getShapeClass(graphicType);\n\n    if (!Clz) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'graphic type \"' + graphicType + '\" can not be found.';\n      }\n\n      throwError(errMsg);\n    }\n\n    el = new Clz();\n  }\n\n  customInnerStore(el).customGraphicType = graphicType;\n  el.name = elOption.name; // Compat ec4: the default z2 lift is 1. If changing the number,\n  // some cases probably be broken: hierarchy layout along z, like circle packing,\n  // where emphasis only intending to modify color/border rather than lift z2.\n\n  el.z2EmphasisLift = 1;\n  el.z2SelectLift = 1;\n  return el;\n}\n\nfunction updateElNormal( // Can be null/undefined\napi, el, dataIndex, elOption, attachedTxInfo, seriesModel, isInit) {\n  // Stop and restore before update any other attributes.\n  stopPreviousKeyframeAnimationAndRestore(el);\n  var txCfgOpt = attachedTxInfo && attachedTxInfo.normal.cfg;\n\n  if (txCfgOpt) {\n    // PENDING: whether use user object directly rather than clone?\n    // TODO:5.0 textConfig transition animation?\n    el.setTextConfig(txCfgOpt);\n  } // Default transition ['x', 'y']\n\n\n  if (elOption && elOption.transition == null) {\n    elOption.transition = DEFAULT_TRANSITION;\n  } // Do some normalization on style.\n\n\n  var styleOpt = elOption && elOption.style;\n\n  if (styleOpt) {\n    if (el.type === 'text') {\n      var textOptionStyle = styleOpt; // Compatible with ec4: if `textFill` or `textStroke` exists use them.\n\n      hasOwn(textOptionStyle, 'textFill') && (textOptionStyle.fill = textOptionStyle.textFill);\n      hasOwn(textOptionStyle, 'textStroke') && (textOptionStyle.stroke = textOptionStyle.textStroke);\n    }\n\n    var decalPattern = void 0;\n    var decalObj = isPath(el) ? styleOpt.decal : null;\n\n    if (api && decalObj) {\n      decalObj.dirty = true;\n      decalPattern = createOrUpdatePatternFromDecal(decalObj, api);\n    } // Always overwrite in case user specify this prop.\n\n\n    styleOpt.__decalPattern = decalPattern;\n  }\n\n  if (isDisplayable(el)) {\n    if (styleOpt) {\n      var decalPattern = styleOpt.__decalPattern;\n\n      if (decalPattern) {\n        styleOpt.decal = decalPattern;\n      }\n    }\n  }\n\n  applyUpdateTransition(el, elOption, seriesModel, {\n    dataIndex: dataIndex,\n    isInit: isInit,\n    clearStyle: true\n  });\n  applyKeyframeAnimation(el, elOption.keyframeAnimation, seriesModel);\n}\n\nfunction updateElOnState(state, el, elStateOpt, styleOpt, attachedTxInfo) {\n  var elDisplayable = el.isGroup ? null : el;\n  var txCfgOpt = attachedTxInfo && attachedTxInfo[state].cfg; // PENDING:5.0 support customize scale change and transition animation?\n\n  if (elDisplayable) {\n    // By default support auto lift color when hover whether `emphasis` specified.\n    var stateObj = elDisplayable.ensureState(state);\n\n    if (styleOpt === false) {\n      var existingEmphasisState = elDisplayable.getState(state);\n\n      if (existingEmphasisState) {\n        existingEmphasisState.style = null;\n      }\n    } else {\n      // style is needed to enable defaut emphasis.\n      stateObj.style = styleOpt || null;\n    } // If `elOption.styleEmphasis` or `elOption.emphasis.style` is `false`,\n    // remove hover style.\n    // If `elOption.textConfig` or `elOption.emphasis.textConfig` is null/undefined, it does not\n    // make sense. So for simplicity, we do not ditinguish `hasOwnProperty` and null/undefined.\n\n\n    if (txCfgOpt) {\n      stateObj.textConfig = txCfgOpt;\n    }\n\n    setDefaultStateProxy(elDisplayable);\n  }\n}\n\nfunction updateZ(el, elOption, seriesModel) {\n  // Group not support textContent and not support z yet.\n  if (el.isGroup) {\n    return;\n  }\n\n  var elDisplayable = el;\n  var currentZ = seriesModel.currentZ;\n  var currentZLevel = seriesModel.currentZLevel; // Always erase.\n\n  elDisplayable.z = currentZ;\n  elDisplayable.zlevel = currentZLevel; // z2 must not be null/undefined, otherwise sort error may occur.\n\n  var optZ2 = elOption.z2;\n  optZ2 != null && (elDisplayable.z2 = optZ2 || 0);\n\n  for (var i = 0; i < STATES.length; i++) {\n    updateZForEachState(elDisplayable, elOption, STATES[i]);\n  }\n}\n\nfunction updateZForEachState(elDisplayable, elOption, state) {\n  var isNormal = state === NORMAL;\n  var elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state);\n  var optZ2 = elStateOpt ? elStateOpt.z2 : null;\n  var stateObj;\n\n  if (optZ2 != null) {\n    // Do not `ensureState` until required.\n    stateObj = isNormal ? elDisplayable : elDisplayable.ensureState(state);\n    stateObj.z2 = optZ2 || 0;\n  }\n}\n\nfunction makeRenderItem(customSeries, data, ecModel, api) {\n  var renderItem = customSeries.get('renderItem');\n  var coordSys = customSeries.coordinateSystem;\n  var prepareResult = {};\n\n  if (coordSys) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(renderItem, 'series.render is required.');\n      assert(coordSys.prepareCustoms || prepareCustoms[coordSys.type], 'This coordSys does not support custom series.');\n    } // `coordSys.prepareCustoms` is used for external coord sys like bmap.\n\n\n    prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms(coordSys) : prepareCustoms[coordSys.type](coordSys);\n  }\n\n  var userAPI = defaults({\n    getWidth: api.getWidth,\n    getHeight: api.getHeight,\n    getZr: api.getZr,\n    getDevicePixelRatio: api.getDevicePixelRatio,\n    value: value,\n    style: style,\n    ordinalRawValue: ordinalRawValue,\n    styleEmphasis: styleEmphasis,\n    visual: visual,\n    barLayout: barLayout,\n    currentSeriesIndices: currentSeriesIndices,\n    font: font\n  }, prepareResult.api || {});\n  var userParams = {\n    // The life cycle of context: current round of rendering.\n    // The global life cycle is probably not necessary, because\n    // user can store global status by themselves.\n    context: {},\n    seriesId: customSeries.id,\n    seriesName: customSeries.name,\n    seriesIndex: customSeries.seriesIndex,\n    coordSys: prepareResult.coordSys,\n    dataInsideLength: data.count(),\n    encode: wrapEncodeDef(customSeries.getData())\n  }; // If someday intending to refactor them to a class, should consider do not\n  // break change: currently these attribute member are encapsulated in a closure\n  // so that do not need to force user to call these method with a scope.\n  // Do not support call `api` asynchronously without dataIndexInside input.\n\n  var currDataIndexInside;\n  var currItemModel;\n  var currItemStyleModels = {};\n  var currLabelModels = {};\n  var seriesItemStyleModels = {};\n  var seriesLabelModels = {};\n\n  for (var i = 0; i < STATES.length; i++) {\n    var stateName = STATES[i];\n    seriesItemStyleModels[stateName] = customSeries.getModel(PATH_ITEM_STYLE[stateName]);\n    seriesLabelModels[stateName] = customSeries.getModel(PATH_LABEL[stateName]);\n  }\n\n  function getItemModel(dataIndexInside) {\n    return dataIndexInside === currDataIndexInside ? currItemModel || (currItemModel = data.getItemModel(dataIndexInside)) : data.getItemModel(dataIndexInside);\n  }\n\n  function getItemStyleModel(dataIndexInside, state) {\n    return !data.hasItemOption ? seriesItemStyleModels[state] : dataIndexInside === currDataIndexInside ? currItemStyleModels[state] || (currItemStyleModels[state] = getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state])) : getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state]);\n  }\n\n  function getLabelModel(dataIndexInside, state) {\n    return !data.hasItemOption ? seriesLabelModels[state] : dataIndexInside === currDataIndexInside ? currLabelModels[state] || (currLabelModels[state] = getItemModel(dataIndexInside).getModel(PATH_LABEL[state])) : getItemModel(dataIndexInside).getModel(PATH_LABEL[state]);\n  }\n\n  return function (dataIndexInside, payload) {\n    currDataIndexInside = dataIndexInside;\n    currItemModel = null;\n    currItemStyleModels = {};\n    currLabelModels = {};\n    return renderItem && renderItem(defaults({\n      dataIndexInside: dataIndexInside,\n      dataIndex: data.getRawIndex(dataIndexInside),\n      // Can be used for optimization when zoom or roam.\n      actionType: payload ? payload.type : null\n    }, userParams), userAPI);\n  };\n  /**\n   * @public\n   * @param dim by default 0.\n   * @param dataIndexInside by default `currDataIndexInside`.\n   */\n\n  function value(dim, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    return data.getStore().get(data.getDimensionIndex(dim || 0), dataIndexInside);\n  }\n  /**\n   * @public\n   * @param dim by default 0.\n   * @param dataIndexInside by default `currDataIndexInside`.\n   */\n\n\n  function ordinalRawValue(dim, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    dim = dim || 0;\n    var dimInfo = data.getDimensionInfo(dim);\n\n    if (!dimInfo) {\n      var dimIndex = data.getDimensionIndex(dim);\n      return dimIndex >= 0 ? data.getStore().get(dimIndex, dataIndexInside) : undefined;\n    }\n\n    var val = data.get(dimInfo.name, dataIndexInside);\n    var ordinalMeta = dimInfo && dimInfo.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.categories[val] : val;\n  }\n  /**\n   * @deprecated The orgininal intention of `api.style` is enable to set itemStyle\n   * like other series. But it not necessary and not easy to give a strict definition\n   * of what it return. And since echarts5 it needs to be make compat work. So\n   * deprecates it since echarts5.\n   *\n   * By default, `visual` is applied to style (to support visualMap).\n   * `visual.color` is applied at `fill`. If user want apply visual.color on `stroke`,\n   * it can be implemented as:\n   * `api.style({stroke: api.visual('color'), fill: null})`;\n   *\n   * [Compat]: since ec5, RectText has been separated from its hosts el.\n   * so `api.style()` will only return the style from `itemStyle` but not handle `label`\n   * any more. But `series.label` config is never published in doc.\n   * We still compat it in `api.style()`. But not encourage to use it and will still not\n   * to pulish it to doc.\n   * @public\n   * @param dataIndexInside by default `currDataIndexInside`.\n   */\n\n\n  function style(userProps, dataIndexInside) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnDeprecated('api.style', 'Please write literal style directly instead.');\n    }\n\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var style = data.getItemVisual(dataIndexInside, 'style');\n    var visualColor = style && style.fill;\n    var opacity = style && style.opacity;\n    var itemStyle = getItemStyleModel(dataIndexInside, NORMAL).getItemStyle();\n    visualColor != null && (itemStyle.fill = visualColor);\n    opacity != null && (itemStyle.opacity = opacity);\n    var opt = {\n      inheritColor: isString(visualColor) ? visualColor : '#000'\n    };\n    var labelModel = getLabelModel(dataIndexInside, NORMAL); // Now that the feture of \"auto adjust text fill/stroke\" has been migrated to zrender\n    // since ec5, we should set `isAttached` as `false` here and make compat in\n    // `convertToEC4StyleForCustomSerise`.\n\n    var textStyle = labelStyleHelper.createTextStyle(labelModel, null, opt, false, true);\n    textStyle.text = labelModel.getShallow('show') ? retrieve2(customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n    var textConfig = labelStyleHelper.createTextConfig(labelModel, opt, false);\n    preFetchFromExtra(userProps, itemStyle);\n    itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n    userProps && applyUserPropsAfter(itemStyle, userProps);\n    itemStyle.legacy = true;\n    return itemStyle;\n  }\n  /**\n   * @deprecated The reason see `api.style()`\n   * @public\n   * @param dataIndexInside by default `currDataIndexInside`.\n   */\n\n\n  function styleEmphasis(userProps, dataIndexInside) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnDeprecated('api.styleEmphasis', 'Please write literal style directly instead.');\n    }\n\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var itemStyle = getItemStyleModel(dataIndexInside, EMPHASIS).getItemStyle();\n    var labelModel = getLabelModel(dataIndexInside, EMPHASIS);\n    var textStyle = labelStyleHelper.createTextStyle(labelModel, null, null, true, true);\n    textStyle.text = labelModel.getShallow('show') ? retrieve3(customSeries.getFormattedLabel(dataIndexInside, EMPHASIS), customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n    var textConfig = labelStyleHelper.createTextConfig(labelModel, null, true);\n    preFetchFromExtra(userProps, itemStyle);\n    itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n    userProps && applyUserPropsAfter(itemStyle, userProps);\n    itemStyle.legacy = true;\n    return itemStyle;\n  }\n\n  function applyUserPropsAfter(itemStyle, extra) {\n    for (var key in extra) {\n      if (hasOwn(extra, key)) {\n        itemStyle[key] = extra[key];\n      }\n    }\n  }\n\n  function preFetchFromExtra(extra, itemStyle) {\n    // A trick to retrieve those props firstly, which are used to\n    // apply auto inside fill/stroke in `convertToEC4StyleForCustomSerise`.\n    // (It's not reasonable but only for a degree of compat)\n    if (extra) {\n      extra.textFill && (itemStyle.textFill = extra.textFill);\n      extra.textPosition && (itemStyle.textPosition = extra.textPosition);\n    }\n  }\n  /**\n   * @public\n   * @param dataIndexInside by default `currDataIndexInside`.\n   */\n\n\n  function visual(visualType, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n\n    if (hasOwn(STYLE_VISUAL_TYPE, visualType)) {\n      var style_1 = data.getItemVisual(dataIndexInside, 'style');\n      return style_1 ? style_1[STYLE_VISUAL_TYPE[visualType]] : null;\n    } // Only support these visuals. Other visual might be inner tricky\n    // for performance (like `style`), do not expose to users.\n\n\n    if (hasOwn(NON_STYLE_VISUAL_PROPS, visualType)) {\n      return data.getItemVisual(dataIndexInside, visualType);\n    }\n  }\n  /**\n   * @public\n   * @return If not support, return undefined.\n   */\n\n\n  function barLayout(opt) {\n    if (coordSys.type === 'cartesian2d') {\n      var baseAxis = coordSys.getBaseAxis();\n      return getLayoutOnAxis(defaults({\n        axis: baseAxis\n      }, opt));\n    }\n  }\n  /**\n   * @public\n   */\n\n\n  function currentSeriesIndices() {\n    return ecModel.getCurrentSeriesIndices();\n  }\n  /**\n   * @public\n   * @return font string\n   */\n\n\n  function font(opt) {\n    return labelStyleHelper.getFont(opt, ecModel);\n  }\n}\n\nfunction wrapEncodeDef(data) {\n  var encodeDef = {};\n  each(data.dimensions, function (dimName) {\n    var dimInfo = data.getDimensionInfo(dimName);\n\n    if (!dimInfo.isExtraCoord) {\n      var coordDim = dimInfo.coordDim;\n      var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\n      dataDims[dimInfo.coordDimIndex] = data.getDimensionIndex(dimName);\n    }\n  });\n  return encodeDef;\n}\n\nfunction createOrUpdateItem(api, existsEl, dataIndex, elOption, seriesModel, group, data) {\n  // [Rule]\n  // If `renderItem` returns `null`/`undefined`/`false`, remove the previous el if existing.\n  //     (It seems that violate the \"merge\" principle, but most of users probably intuitively\n  //     regard \"return;\" as \"show nothing element whatever\", so make a exception to meet the\n  //     most cases.)\n  // The rule or \"merge\" see [STRATEGY_MERGE].\n  // If `elOption` is `null`/`undefined`/`false` (when `renderItem` returns nothing).\n  if (!elOption) {\n    group.remove(existsEl);\n    return;\n  }\n\n  var el = doCreateOrUpdateEl(api, existsEl, dataIndex, elOption, seriesModel, group);\n  el && data.setItemGraphicEl(dataIndex, el);\n  el && toggleHoverEmphasis(el, elOption.focus, elOption.blurScope, elOption.emphasisDisabled);\n  return el;\n}\n\nfunction doCreateOrUpdateEl(api, existsEl, dataIndex, elOption, seriesModel, group) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(elOption, 'should not have an null/undefined element setting');\n  }\n\n  var toBeReplacedIdx = -1;\n  var oldEl = existsEl;\n\n  if (existsEl && doesElNeedRecreate(existsEl, elOption, seriesModel) // || (\n  //     // PENDING: even in one-to-one mapping case, if el is marked as morph,\n  //     // do not sure whether the el will be mapped to another el with different\n  //     // hierarchy in Group tree. So always recreate el rather than reuse the el.\n  //     morphHelper && morphHelper.isOneToOneFrom(el)\n  // )\n  ) {\n    // Should keep at the original index, otherwise \"merge by index\" will be incorrect.\n    toBeReplacedIdx = indexOf(group.childrenRef(), existsEl);\n    existsEl = null;\n  }\n\n  var isInit = !existsEl;\n  var el = existsEl;\n\n  if (!el) {\n    el = createEl(elOption);\n\n    if (oldEl) {\n      copyElement(oldEl, el);\n    }\n  } else {\n    // FIMXE:NEXT unified clearState?\n    // If in some case the performance issue arised, consider\n    // do not clearState but update cached normal state directly.\n    el.clearStates();\n  } // Need to set morph: false explictly to disable automatically morphing.\n\n\n  if (elOption.morph === false) {\n    el.disableMorphing = true;\n  } else if (el.disableMorphing) {\n    el.disableMorphing = false;\n  }\n\n  attachedTxInfoTmp.normal.cfg = attachedTxInfoTmp.normal.conOpt = attachedTxInfoTmp.emphasis.cfg = attachedTxInfoTmp.emphasis.conOpt = attachedTxInfoTmp.blur.cfg = attachedTxInfoTmp.blur.conOpt = attachedTxInfoTmp.select.cfg = attachedTxInfoTmp.select.conOpt = null;\n  attachedTxInfoTmp.isLegacy = false;\n  doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfoTmp);\n  doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit);\n  updateElNormal(api, el, dataIndex, elOption, attachedTxInfoTmp, seriesModel, isInit); // `elOption.info` enables user to mount some info on\n  // elements and use them in event handlers.\n  // Update them only when user specified, otherwise, remain.\n\n  hasOwn(elOption, 'info') && (customInnerStore(el).info = elOption.info);\n\n  for (var i = 0; i < STATES.length; i++) {\n    var stateName = STATES[i];\n\n    if (stateName !== NORMAL) {\n      var otherStateOpt = retrieveStateOption(elOption, stateName);\n      var otherStyleOpt = retrieveStyleOptionOnState(elOption, otherStateOpt, stateName);\n      updateElOnState(stateName, el, otherStateOpt, otherStyleOpt, attachedTxInfoTmp);\n    }\n  }\n\n  updateZ(el, elOption, seriesModel);\n\n  if (elOption.type === 'group') {\n    mergeChildren(api, el, dataIndex, elOption, seriesModel);\n  }\n\n  if (toBeReplacedIdx >= 0) {\n    group.replaceAt(el, toBeReplacedIdx);\n  } else {\n    group.add(el);\n  }\n\n  return el;\n} // `el` must not be null/undefined.\n\n\nfunction doesElNeedRecreate(el, elOption, seriesModel) {\n  var elInner = customInnerStore(el);\n  var elOptionType = elOption.type;\n  var elOptionShape = elOption.shape;\n  var elOptionStyle = elOption.style;\n  return (// Always create new if universal transition is enabled.\n    // Because we do transition after render. It needs to know what old element is. Replacement will loose it.\n    seriesModel.isUniversalTransitionEnabled() // If `elOptionType` is `null`, follow the merge principle.\n    || elOptionType != null && elOptionType !== elInner.customGraphicType || elOptionType === 'path' && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== elInner.customPathData || elOptionType === 'image' && hasOwn(elOptionStyle, 'image') && elOptionStyle.image !== elInner.customImagePath // // FIXME test and remove this restriction?\n    // || (elOptionType === 'text'\n    //     && hasOwn(elOptionStyle, 'text')\n    //     && (elOptionStyle as TextStyleProps).text !== elInner.customText\n    // )\n\n  );\n}\n\nfunction doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit) {\n  // Based on the \"merge\" principle, if no clipPath provided,\n  // do nothing. The exists clip will be totally removed only if\n  // `el.clipPath` is `false`. Otherwise it will be merged/replaced.\n  var clipPathOpt = elOption.clipPath;\n\n  if (clipPathOpt === false) {\n    if (el && el.getClipPath()) {\n      el.removeClipPath();\n    }\n  } else if (clipPathOpt) {\n    var clipPath = el.getClipPath();\n\n    if (clipPath && doesElNeedRecreate(clipPath, clipPathOpt, seriesModel)) {\n      clipPath = null;\n    }\n\n    if (!clipPath) {\n      clipPath = createEl(clipPathOpt);\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(isPath(clipPath), 'Only any type of `path` can be used in `clipPath`, rather than ' + clipPath.type + '.');\n      }\n\n      el.setClipPath(clipPath);\n    }\n\n    updateElNormal(null, clipPath, dataIndex, clipPathOpt, null, seriesModel, isInit);\n  } // If not define `clipPath` in option, do nothing unnecessary.\n\n}\n\nfunction doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfo) {\n  // group do not support textContent temporarily untill necessary.\n  if (el.isGroup) {\n    return;\n  } // Normal must be called before emphasis, for `isLegacy` detection.\n\n\n  processTxInfo(elOption, null, attachedTxInfo);\n  processTxInfo(elOption, EMPHASIS, attachedTxInfo); // If `elOption.textConfig` or `elOption.textContent` is null/undefined, it does not make sence.\n  // So for simplicity, if \"elOption hasOwnProperty of them but be null/undefined\", we do not\n  // trade them as set to null to el.\n  // Especially:\n  // `elOption.textContent: false` means remove textContent.\n  // `elOption.textContent.emphasis.style: false` means remove the style from emphasis state.\n\n  var txConOptNormal = attachedTxInfo.normal.conOpt;\n  var txConOptEmphasis = attachedTxInfo.emphasis.conOpt;\n  var txConOptBlur = attachedTxInfo.blur.conOpt;\n  var txConOptSelect = attachedTxInfo.select.conOpt;\n\n  if (txConOptNormal != null || txConOptEmphasis != null || txConOptSelect != null || txConOptBlur != null) {\n    var textContent = el.getTextContent();\n\n    if (txConOptNormal === false) {\n      textContent && el.removeTextContent();\n    } else {\n      txConOptNormal = attachedTxInfo.normal.conOpt = txConOptNormal || {\n        type: 'text'\n      };\n\n      if (!textContent) {\n        textContent = createEl(txConOptNormal);\n        el.setTextContent(textContent);\n      } else {\n        // If in some case the performance issue arised, consider\n        // do not clearState but update cached normal state directly.\n        textContent.clearStates();\n      }\n\n      updateElNormal(null, textContent, dataIndex, txConOptNormal, null, seriesModel, isInit);\n      var txConStlOptNormal = txConOptNormal && txConOptNormal.style;\n\n      for (var i = 0; i < STATES.length; i++) {\n        var stateName = STATES[i];\n\n        if (stateName !== NORMAL) {\n          var txConOptOtherState = attachedTxInfo[stateName].conOpt;\n          updateElOnState(stateName, textContent, txConOptOtherState, retrieveStyleOptionOnState(txConOptNormal, txConOptOtherState, stateName), null);\n        }\n      }\n\n      txConStlOptNormal ? textContent.dirty() : textContent.markRedraw();\n    }\n  }\n}\n\nfunction processTxInfo(elOption, state, attachedTxInfo) {\n  var stateOpt = !state ? elOption : retrieveStateOption(elOption, state);\n  var styleOpt = !state ? elOption.style : retrieveStyleOptionOnState(elOption, stateOpt, EMPHASIS);\n  var elType = elOption.type;\n  var txCfg = stateOpt ? stateOpt.textConfig : null;\n  var txConOptNormal = elOption.textContent;\n  var txConOpt = !txConOptNormal ? null : !state ? txConOptNormal : retrieveStateOption(txConOptNormal, state);\n\n  if (styleOpt && ( // Because emphasis style has little info to detect legacy,\n  // if normal is legacy, emphasis is trade as legacy.\n  attachedTxInfo.isLegacy || isEC4CompatibleStyle(styleOpt, elType, !!txCfg, !!txConOpt))) {\n    attachedTxInfo.isLegacy = true;\n    var convertResult = convertFromEC4CompatibleStyle(styleOpt, elType, !state); // Explicitly specified `textConfig` and `textContent` has higher priority than\n    // the ones generated by legacy style. Otherwise if users use them and `api.style`\n    // at the same time, they not both work and hardly to known why.\n\n    if (!txCfg && convertResult.textConfig) {\n      txCfg = convertResult.textConfig;\n    }\n\n    if (!txConOpt && convertResult.textContent) {\n      txConOpt = convertResult.textContent;\n    }\n  }\n\n  if (!state && txConOpt) {\n    var txConOptNormal_1 = txConOpt; // `textContent: {type: 'text'}`, the \"type\" is easy to be missing. So we tolerate it.\n\n    !txConOptNormal_1.type && (txConOptNormal_1.type = 'text');\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Do not tolerate incorret type for forward compat.\n      assert(txConOptNormal_1.type === 'text', 'textContent.type must be \"text\"');\n    }\n  }\n\n  var info = !state ? attachedTxInfo.normal : attachedTxInfo[state];\n  info.cfg = txCfg;\n  info.conOpt = txConOpt;\n}\n\nfunction retrieveStateOption(elOption, state) {\n  return !state ? elOption : elOption ? elOption[state] : null;\n}\n\nfunction retrieveStyleOptionOnState(stateOptionNormal, stateOption, state) {\n  var style = stateOption && stateOption.style;\n\n  if (style == null && state === EMPHASIS && stateOptionNormal) {\n    style = stateOptionNormal.styleEmphasis;\n  }\n\n  return style;\n} // Usage:\n// (1) By default, `elOption.$mergeChildren` is `'byIndex'`, which indicates that\n//     the existing children will not be removed, and enables the feature that\n//     update some of the props of some of the children simply by construct\n//     the returned children of `renderItem` like:\n//     `var children = group.children = []; children[3] = {opacity: 0.5};`\n// (2) If `elOption.$mergeChildren` is `'byName'`, add/update/remove children\n//     by child.name. But that might be lower performance.\n// (3) If `elOption.$mergeChildren` is `false`, the existing children will be\n//     replaced totally.\n// (4) If `!elOption.children`, following the \"merge\" principle, nothing will happen.\n//\n// For implementation simpleness, do not provide a direct way to remove sinlge\n// child (otherwise the total indicies of the children array have to be modified).\n// User can remove a single child by set its `ignore` as `true`.\n\n\nfunction mergeChildren(api, el, dataIndex, elOption, seriesModel) {\n  var newChildren = elOption.children;\n  var newLen = newChildren ? newChildren.length : 0;\n  var mergeChildren = elOption.$mergeChildren; // `diffChildrenByName` has been deprecated.\n\n  var byName = mergeChildren === 'byName' || elOption.diffChildrenByName;\n  var notMerge = mergeChildren === false; // For better performance on roam update, only enter if necessary.\n\n  if (!newLen && !byName && !notMerge) {\n    return;\n  }\n\n  if (byName) {\n    diffGroupChildren({\n      api: api,\n      oldChildren: el.children() || [],\n      newChildren: newChildren || [],\n      dataIndex: dataIndex,\n      seriesModel: seriesModel,\n      group: el\n    });\n    return;\n  }\n\n  notMerge && el.removeAll(); // Mapping children of a group simply by index, which\n  // might be better performance.\n\n  var index = 0;\n\n  for (; index < newLen; index++) {\n    newChildren[index] && doCreateOrUpdateEl(api, el.childAt(index), dataIndex, newChildren[index], seriesModel, el);\n  }\n\n  for (var i = el.childCount() - 1; i >= index; i--) {\n    // Do not supprot leave elements that are not mentioned in the latest\n    // `renderItem` return. Otherwise users may not have a clear and simple\n    // concept that how to contorl all of the elements.\n    var child = el.childAt(i);\n    applyLeaveTransition(child, customInnerStore(el).option, seriesModel);\n  }\n}\n\nfunction diffGroupChildren(context) {\n  new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute();\n}\n\nfunction getKey(item, idx) {\n  var name = item && item.name;\n  return name != null ? name : GROUP_DIFF_PREFIX + idx;\n}\n\nfunction processAddUpdate(newIndex, oldIndex) {\n  var context = this.context;\n  var childOption = newIndex != null ? context.newChildren[newIndex] : null;\n  var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\n  doCreateOrUpdateEl(context.api, child, context.dataIndex, childOption, context.seriesModel, context.group);\n}\n\nfunction processRemove(oldIndex) {\n  var context = this.context;\n  var child = context.oldChildren[oldIndex];\n  applyLeaveTransition(child, customInnerStore(child).option, context.seriesModel);\n}\n/**\n * @return SVG Path data.\n */\n\n\nfunction getPathData(shape) {\n  // \"d\" follows the SVG convention.\n  return shape && (shape.pathData || shape.d);\n}\n\nfunction hasOwnPathData(shape) {\n  return shape && (hasOwn(shape, 'pathData') || hasOwn(shape, 'd'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport CustomSeriesModel from './CustomSeries.js';\nimport CustomChartView from './CustomView.js';\nexport function install(registers) {\n  registers.registerChartView(CustomChartView);\n  registers.registerSeriesModel(CustomSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// In somehow. If we export like\n// export * as LineChart './chart/line/install'\n// The exported code will be transformed to\n// import * as LineChart_1 './chart/line/install'; export {LineChart_1 as LineChart};\n// Treeshaking in webpack will not work even if we configured sideEffects to false in package.json\nexport { install as LineChart } from '../chart/line/install.js';\nexport { install as BarChart } from '../chart/bar/install.js';\nexport { install as PieChart } from '../chart/pie/install.js';\nexport { install as ScatterChart } from '../chart/scatter/install.js';\nexport { install as RadarChart } from '../chart/radar/install.js';\nexport { install as MapChart } from '../chart/map/install.js';\nexport { install as TreeChart } from '../chart/tree/install.js';\nexport { install as TreemapChart } from '../chart/treemap/install.js';\nexport { install as GraphChart } from '../chart/graph/install.js';\nexport { install as GaugeChart } from '../chart/gauge/install.js';\nexport { install as FunnelChart } from '../chart/funnel/install.js';\nexport { install as ParallelChart } from '../chart/parallel/install.js';\nexport { install as SankeyChart } from '../chart/sankey/install.js';\nexport { install as BoxplotChart } from '../chart/boxplot/install.js';\nexport { install as CandlestickChart } from '../chart/candlestick/install.js';\nexport { install as EffectScatterChart } from '../chart/effectScatter/install.js';\nexport { install as LinesChart } from '../chart/lines/install.js';\nexport { install as HeatmapChart } from '../chart/heatmap/install.js';\nexport { install as PictorialBarChart } from '../chart/bar/installPictorialBar.js';\nexport { install as ThemeRiverChart } from '../chart/themeRiver/install.js';\nexport { install as SunburstChart } from '../chart/sunburst/install.js';\nexport { install as CustomChart } from '../chart/custom/install.js';","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n// In somehow. If we export like\n// export * as LineChart './chart/line/install'\n// The exported code will be transformed to\n// import * as LineChart_1 './chart/line/install'; export {LineChart_1 as LineChart};\n// Treeshaking in webpack will not work even if we configured sideEffects to false in package.json\n\nexport * from './lib/export/charts.js';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as axisPointerModelHelper from './modelHelper.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport * as throttleUtil from '../../util/throttle.js';\nimport { makeInner } from '../../util/model.js';\nvar inner = makeInner();\nvar clone = zrUtil.clone;\nvar bind = zrUtil.bind;\n/**\n * Base axis pointer class in 2D.\n */\n\nvar BaseAxisPointer =\n/** @class */\nfunction () {\n  function BaseAxisPointer() {\n    this._dragging = false;\n    /**\n     * In px, arbitrary value. Do not set too small,\n     * no animation is ok for most cases.\n     */\n\n    this.animationThreshold = 15;\n  }\n  /**\n   * @implement\n   */\n\n\n  BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\n    var value = axisPointerModel.get('value');\n    var status = axisPointerModel.get('status'); // Bind them to `this`, not in closure, otherwise they will not\n    // be replaced when user calling setOption in not merge mode.\n\n    this._axisModel = axisModel;\n    this._axisPointerModel = axisPointerModel;\n    this._api = api; // Optimize: `render` will be called repeatly during mouse move.\n    // So it is power consuming if performing `render` each time,\n    // especially on mobile device.\n\n    if (!forceRender && this._lastValue === value && this._lastStatus === status) {\n      return;\n    }\n\n    this._lastValue = value;\n    this._lastStatus = status;\n    var group = this._group;\n    var handle = this._handle;\n\n    if (!status || status === 'hide') {\n      // Do not clear here, for animation better.\n      group && group.hide();\n      handle && handle.hide();\n      return;\n    }\n\n    group && group.show();\n    handle && handle.show(); // Otherwise status is 'show'\n\n    var elOption = {};\n    this.makeElOption(elOption, value, axisModel, axisPointerModel, api); // Enable change axis pointer type.\n\n    var graphicKey = elOption.graphicKey;\n\n    if (graphicKey !== this._lastGraphicKey) {\n      this.clear(api);\n    }\n\n    this._lastGraphicKey = graphicKey;\n    var moveAnimation = this._moveAnimation = this.determineAnimation(axisModel, axisPointerModel);\n\n    if (!group) {\n      group = this._group = new graphic.Group();\n      this.createPointerEl(group, elOption, axisModel, axisPointerModel);\n      this.createLabelEl(group, elOption, axisModel, axisPointerModel);\n      api.getZr().add(group);\n    } else {\n      var doUpdateProps = zrUtil.curry(updateProps, axisPointerModel, moveAnimation);\n      this.updatePointerEl(group, elOption, doUpdateProps);\n      this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\n    }\n\n    updateMandatoryProps(group, axisPointerModel, true);\n\n    this._renderHandle(value);\n  };\n  /**\n   * @implement\n   */\n\n\n  BaseAxisPointer.prototype.remove = function (api) {\n    this.clear(api);\n  };\n  /**\n   * @implement\n   */\n\n\n  BaseAxisPointer.prototype.dispose = function (api) {\n    this.clear(api);\n  };\n  /**\n   * @protected\n   */\n\n\n  BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\n    var animation = axisPointerModel.get('animation');\n    var axis = axisModel.axis;\n    var isCategoryAxis = axis.type === 'category';\n    var useSnap = axisPointerModel.get('snap'); // Value axis without snap always do not snap.\n\n    if (!useSnap && !isCategoryAxis) {\n      return false;\n    }\n\n    if (animation === 'auto' || animation == null) {\n      var animationThreshold = this.animationThreshold;\n\n      if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\n        return true;\n      } // It is important to auto animation when snap used. Consider if there is\n      // a dataZoom, animation will be disabled when too many points exist, while\n      // it will be enabled for better visual effect when little points exist.\n\n\n      if (useSnap) {\n        var seriesDataCount = axisPointerModelHelper.getAxisInfo(axisModel).seriesDataCount;\n        var axisExtent = axis.getExtent(); // Approximate band width\n\n        return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\n      }\n\n      return false;\n    }\n\n    return animation === true;\n  };\n  /**\n   * add {pointer, label, graphicKey} to elOption\n   * @protected\n   */\n\n\n  BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {// Shoule be implemenented by sub-class.\n  };\n  /**\n   * @protected\n   */\n\n\n  BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\n    var pointerOption = elOption.pointer;\n\n    if (pointerOption) {\n      var pointerEl = inner(group).pointerEl = new graphic[pointerOption.type](clone(elOption.pointer));\n      group.add(pointerEl);\n    }\n  };\n  /**\n   * @protected\n   */\n\n\n  BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\n    if (elOption.label) {\n      var labelEl = inner(group).labelEl = new graphic.Text(clone(elOption.label));\n      group.add(labelEl);\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n  /**\n   * @protected\n   */\n\n\n  BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\n    var pointerEl = inner(group).pointerEl;\n\n    if (pointerEl && elOption.pointer) {\n      pointerEl.setStyle(elOption.pointer.style);\n      updateProps(pointerEl, {\n        shape: elOption.pointer.shape\n      });\n    }\n  };\n  /**\n   * @protected\n   */\n\n\n  BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\n    var labelEl = inner(group).labelEl;\n\n    if (labelEl) {\n      labelEl.setStyle(elOption.label.style);\n      updateProps(labelEl, {\n        // Consider text length change in vertical axis, animation should\n        // be used on shape, otherwise the effect will be weird.\n        // TODOTODO\n        // shape: elOption.label.shape,\n        x: elOption.label.x,\n        y: elOption.label.y\n      });\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n  /**\n   * @private\n   */\n\n\n  BaseAxisPointer.prototype._renderHandle = function (value) {\n    if (this._dragging || !this.updateHandleTransform) {\n      return;\n    }\n\n    var axisPointerModel = this._axisPointerModel;\n\n    var zr = this._api.getZr();\n\n    var handle = this._handle;\n    var handleModel = axisPointerModel.getModel('handle');\n    var status = axisPointerModel.get('status');\n\n    if (!handleModel.get('show') || !status || status === 'hide') {\n      handle && zr.remove(handle);\n      this._handle = null;\n      return;\n    }\n\n    var isInit;\n\n    if (!this._handle) {\n      isInit = true;\n      handle = this._handle = graphic.createIcon(handleModel.get('icon'), {\n        cursor: 'move',\n        draggable: true,\n        onmousemove: function (e) {\n          // Fot mobile devicem, prevent screen slider on the button.\n          eventTool.stop(e.event);\n        },\n        onmousedown: bind(this._onHandleDragMove, this, 0, 0),\n        drift: bind(this._onHandleDragMove, this),\n        ondragend: bind(this._onHandleDragEnd, this)\n      });\n      zr.add(handle);\n    }\n\n    updateMandatoryProps(handle, axisPointerModel, false); // update style\n\n    handle.setStyle(handleModel.getItemStyle(null, ['color', 'borderColor', 'borderWidth', 'opacity', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'])); // update position\n\n    var handleSize = handleModel.get('size');\n\n    if (!zrUtil.isArray(handleSize)) {\n      handleSize = [handleSize, handleSize];\n    }\n\n    handle.scaleX = handleSize[0] / 2;\n    handle.scaleY = handleSize[1] / 2;\n    throttleUtil.createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\n\n    this._moveHandleToValue(value, isInit);\n  };\n\n  BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\n    updateProps(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\n  };\n\n  BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    this._dragging = true; // Persistent for throttle.\n\n    var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\n    this._payloadInfo = trans;\n    handle.stopAnimation();\n    handle.attr(getHandleTransProps(trans));\n    inner(handle).lastProp = null;\n\n    this._doDispatchAxisPointer();\n  };\n  /**\n   * Throttled method.\n   */\n\n\n  BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var payloadInfo = this._payloadInfo;\n    var axisModel = this._axisModel;\n\n    this._api.dispatchAction({\n      type: 'updateAxisPointer',\n      x: payloadInfo.cursorPoint[0],\n      y: payloadInfo.cursorPoint[1],\n      tooltipOption: payloadInfo.tooltipOption,\n      axesInfo: [{\n        axisDim: axisModel.axis.dim,\n        axisIndex: axisModel.componentIndex\n      }]\n    });\n  };\n\n  BaseAxisPointer.prototype._onHandleDragEnd = function () {\n    this._dragging = false;\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var value = this._axisPointerModel.get('value'); // Consider snap or categroy axis, handle may be not consistent with\n    // axisPointer. So move handle to align the exact value position when\n    // drag ended.\n\n\n    this._moveHandleToValue(value); // For the effect: tooltip will be shown when finger holding on handle\n    // button, and will be hidden after finger left handle button.\n\n\n    this._api.dispatchAction({\n      type: 'hideTip'\n    });\n  };\n  /**\n   * @private\n   */\n\n\n  BaseAxisPointer.prototype.clear = function (api) {\n    this._lastValue = null;\n    this._lastStatus = null;\n    var zr = api.getZr();\n    var group = this._group;\n    var handle = this._handle;\n\n    if (zr && group) {\n      this._lastGraphicKey = null;\n      group && zr.remove(group);\n      handle && zr.remove(handle);\n      this._group = null;\n      this._handle = null;\n      this._payloadInfo = null;\n    }\n\n    throttleUtil.clear(this, '_doDispatchAxisPointer');\n  };\n  /**\n   * @protected\n   */\n\n\n  BaseAxisPointer.prototype.doClear = function () {// Implemented by sub-class if necessary.\n  };\n\n  BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\n    xDimIndex = xDimIndex || 0;\n    return {\n      x: xy[xDimIndex],\n      y: xy[1 - xDimIndex],\n      width: wh[xDimIndex],\n      height: wh[1 - xDimIndex]\n    };\n  };\n\n  return BaseAxisPointer;\n}();\n\nfunction updateProps(animationModel, moveAnimation, el, props) {\n  // Animation optimize.\n  if (!propsEqual(inner(el).lastProp, props)) {\n    inner(el).lastProp = props;\n    moveAnimation ? graphic.updateProps(el, props, animationModel) : (el.stopAnimation(), el.attr(props));\n  }\n}\n\nfunction propsEqual(lastProps, newProps) {\n  if (zrUtil.isObject(lastProps) && zrUtil.isObject(newProps)) {\n    var equals_1 = true;\n    zrUtil.each(newProps, function (item, key) {\n      equals_1 = equals_1 && propsEqual(lastProps[key], item);\n    });\n    return !!equals_1;\n  } else {\n    return lastProps === newProps;\n  }\n}\n\nfunction updateLabelShowHide(labelEl, axisPointerModel) {\n  labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\n}\n\nfunction getHandleTransProps(trans) {\n  return {\n    x: trans.x || 0,\n    y: trans.y || 0,\n    rotation: trans.rotation || 0\n  };\n}\n\nfunction updateMandatoryProps(group, axisPointerModel, silent) {\n  var z = axisPointerModel.get('z');\n  var zlevel = axisPointerModel.get('zlevel');\n  group && group.traverse(function (el) {\n    if (el.type !== 'group') {\n      z != null && (el.z = z);\n      zlevel != null && (el.zlevel = zlevel);\n      el.silent = silent;\n    }\n  });\n}\n\nexport default BaseAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as textContain from 'zrender/lib/contain/text.js';\nimport * as formatUtil from '../../util/format.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport * as axisHelper from '../../coord/axisHelper.js';\nimport AxisBuilder from '../axis/AxisBuilder.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nexport function buildElStyle(axisPointerModel) {\n  var axisPointerType = axisPointerModel.get('type');\n  var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\n  var style;\n\n  if (axisPointerType === 'line') {\n    style = styleModel.getLineStyle();\n    style.fill = null;\n  } else if (axisPointerType === 'shadow') {\n    style = styleModel.getAreaStyle();\n    style.stroke = null;\n  }\n\n  return style;\n}\n/**\n * @param {Function} labelPos {align, verticalAlign, position}\n */\n\nexport function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\n  var value = axisPointerModel.get('value');\n  var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\n    precision: axisPointerModel.get(['label', 'precision']),\n    formatter: axisPointerModel.get(['label', 'formatter'])\n  });\n  var labelModel = axisPointerModel.getModel('label');\n  var paddings = formatUtil.normalizeCssArray(labelModel.get('padding') || 0);\n  var font = labelModel.getFont();\n  var textRect = textContain.getBoundingRect(text, font);\n  var position = labelPos.position;\n  var width = textRect.width + paddings[1] + paddings[3];\n  var height = textRect.height + paddings[0] + paddings[2]; // Adjust by align.\n\n  var align = labelPos.align;\n  align === 'right' && (position[0] -= width);\n  align === 'center' && (position[0] -= width / 2);\n  var verticalAlign = labelPos.verticalAlign;\n  verticalAlign === 'bottom' && (position[1] -= height);\n  verticalAlign === 'middle' && (position[1] -= height / 2); // Not overflow ec container\n\n  confineInContainer(position, width, height, api);\n  var bgColor = labelModel.get('backgroundColor');\n\n  if (!bgColor || bgColor === 'auto') {\n    bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\n  }\n\n  elOption.label = {\n    // shape: {x: 0, y: 0, width: width, height: height, r: labelModel.get('borderRadius')},\n    x: position[0],\n    y: position[1],\n    style: createTextStyle(labelModel, {\n      text: text,\n      font: font,\n      fill: labelModel.getTextColor(),\n      padding: paddings,\n      backgroundColor: bgColor\n    }),\n    // Lable should be over axisPointer.\n    z2: 10\n  };\n} // Do not overflow ec container\n\nfunction confineInContainer(position, width, height, api) {\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  position[0] = Math.min(position[0] + width, viewWidth) - width;\n  position[1] = Math.min(position[1] + height, viewHeight) - height;\n  position[0] = Math.max(position[0], 0);\n  position[1] = Math.max(position[1], 0);\n}\n\nexport function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\n  value = axis.scale.parse(value);\n  var text = axis.scale.getLabel({\n    value: value\n  }, {\n    // If `precision` is set, width can be fixed (like '12.00500'), which\n    // helps to debounce when when moving label.\n    precision: opt.precision\n  });\n  var formatter = opt.formatter;\n\n  if (formatter) {\n    var params_1 = {\n      value: axisHelper.getAxisRawValue(axis, {\n        value: value\n      }),\n      axisDimension: axis.dim,\n      axisIndex: axis.index,\n      seriesData: []\n    };\n    zrUtil.each(seriesDataIndices, function (idxItem) {\n      var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n      var dataIndex = idxItem.dataIndexInside;\n      var dataParams = series && series.getDataParams(dataIndex);\n      dataParams && params_1.seriesData.push(dataParams);\n    });\n\n    if (zrUtil.isString(formatter)) {\n      text = formatter.replace('{value}', text);\n    } else if (zrUtil.isFunction(formatter)) {\n      text = formatter(params_1);\n    }\n  }\n\n  return text;\n}\nexport function getTransformedPosition(axis, value, layoutInfo) {\n  var transform = matrix.create();\n  matrix.rotate(transform, transform, layoutInfo.rotation);\n  matrix.translate(transform, transform, layoutInfo.position);\n  return graphic.applyTransform([axis.dataToCoord(value), (layoutInfo.labelOffset || 0) + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)], transform);\n}\nexport function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\n  // @ts-ignore\n  var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\n  layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\n  buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\n    position: getTransformedPosition(axisModel.axis, value, layoutInfo),\n    align: textLayout.textAlign,\n    verticalAlign: textLayout.textVerticalAlign\n  });\n}\nexport function makeLineShape(p1, p2, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x1: p1[xDimIndex],\n    y1: p1[1 - xDimIndex],\n    x2: p2[xDimIndex],\n    y2: p2[1 - xDimIndex]\n  };\n}\nexport function makeRectShape(xy, wh, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x: xy[xDimIndex],\n    y: xy[1 - xDimIndex],\n    width: wh[xDimIndex],\n    height: wh[1 - xDimIndex]\n  };\n}\nexport function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) {\n  return {\n    cx: cx,\n    cy: cy,\n    r0: r0,\n    r: r,\n    startAngle: startAngle,\n    endAngle: endAngle,\n    clockwise: true\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer.js';\nimport * as viewHelper from './viewHelper.js';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper.js';\n\nvar CartesianAxisPointer =\n/** @class */\nfunction (_super) {\n  __extends(CartesianAxisPointer, _super);\n\n  function CartesianAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n  /**\n   * @override\n   */\n\n\n  CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisPointerType = axisPointerModel.get('type');\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = cartesianAxisHelper.layout(grid.model, axisModel);\n    viewHelper.buildCartesianSingleLabelElOption( // @ts-ignore\n    value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  };\n  /**\n   * @override\n   */\n\n\n  CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n    var layoutInfo = cartesianAxisHelper.layout(axisModel.axis.grid.model, axisModel, {\n      labelInside: false\n    }); // @ts-ignore\n\n    layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n    var pos = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n    return {\n      x: pos[0],\n      y: pos[1],\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  };\n  /**\n   * @override\n   */\n\n\n  CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisExtent = axis.getGlobalExtent(true);\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var dimIndex = axis.dim === 'x' ? 0 : 1;\n    var currPosition = [transform.x, transform.y];\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex]; // Make tooltip do not overlap axisPointer and in the middle of the grid.\n\n    var tooltipOptions = [{\n      verticalAlign: 'middle'\n    }, {\n      align: 'center'\n    }];\n    return {\n      x: currPosition[0],\n      y: currPosition[1],\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: tooltipOptions[dimIndex]\n    };\n  };\n\n  return CartesianAxisPointer;\n}(BaseAxisPointer);\n\nfunction getCartesian(grid, axis) {\n  var opt = {};\n  opt[axis.dim + 'AxisIndex'] = axis.index;\n  return grid.getCartesian(opt);\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\n    return {\n      type: 'Line',\n      subPixelOptimize: true,\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\n    };\n  }\n};\n\nfunction getAxisDimIndex(axis) {\n  return axis.dim === 'x' ? 0 : 1;\n}\n\nexport default CartesianAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\n\nvar AxisPointerModel =\n/** @class */\nfunction (_super) {\n  __extends(AxisPointerModel, _super);\n\n  function AxisPointerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerModel.type;\n    return _this;\n  }\n\n  AxisPointerModel.type = 'axisPointer';\n  AxisPointerModel.defaultOption = {\n    // 'auto' means that show when triggered by tooltip or handle.\n    show: 'auto',\n    // zlevel: 0,\n    z: 50,\n    type: 'line',\n    // axispointer triggered by tootip determine snap automatically,\n    // see `modelHelper`.\n    snap: false,\n    triggerTooltip: true,\n    value: null,\n    status: null,\n    link: [],\n    // Do not set 'auto' here, otherwise global animation: false\n    // will not effect at this axispointer.\n    animation: null,\n    animationDurationUpdate: 200,\n    lineStyle: {\n      color: '#B9BEC9',\n      width: 1,\n      type: 'dashed'\n    },\n    shadowStyle: {\n      color: 'rgba(210,219,238,0.2)'\n    },\n    label: {\n      show: true,\n      formatter: null,\n      precision: 'auto',\n      margin: 3,\n      color: '#fff',\n      padding: [5, 7, 5, 7],\n      backgroundColor: 'auto',\n      borderColor: null,\n      borderWidth: 0,\n      borderRadius: 3\n    },\n    handle: {\n      show: false,\n      // eslint-disable-next-line\n      icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\n      size: 45,\n      // handle margin is from symbol center to axis, which is stable when circular move.\n      margin: 50,\n      // color: '#1b8bbd'\n      // color: '#2f4554'\n      color: '#333',\n      shadowBlur: 3,\n      shadowColor: '#aaa',\n      shadowOffsetX: 0,\n      shadowOffsetY: 2,\n      // For mobile performance\n      throttle: 40\n    }\n  };\n  return AxisPointerModel;\n}(ComponentModel);\n\nexport default AxisPointerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport env from 'zrender/lib/core/env.js';\nimport { makeInner } from '../../util/model.js';\nvar inner = makeInner();\nvar each = zrUtil.each;\n/**\n * @param {string} key\n * @param {module:echarts/ExtensionAPI} api\n * @param {Function} handler\n *      param: {string} currTrigger\n *      param: {Array.<number>} point\n */\n\nexport function register(key, api, handler) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  inner(zr).records || (inner(zr).records = {});\n  initGlobalListeners(zr, api);\n  var record = inner(zr).records[key] || (inner(zr).records[key] = {});\n  record.handler = handler;\n}\n\nfunction initGlobalListeners(zr, api) {\n  if (inner(zr).initialized) {\n    return;\n  }\n\n  inner(zr).initialized = true;\n  useHandler('click', zrUtil.curry(doEnter, 'click'));\n  useHandler('mousemove', zrUtil.curry(doEnter, 'mousemove')); // useHandler('mouseout', onLeave);\n\n  useHandler('globalout', onLeave);\n\n  function useHandler(eventType, cb) {\n    zr.on(eventType, function (e) {\n      var dis = makeDispatchAction(api);\n      each(inner(zr).records, function (record) {\n        record && cb(record, e, dis.dispatchAction);\n      });\n      dispatchTooltipFinally(dis.pendings, api);\n    });\n  }\n}\n\nfunction dispatchTooltipFinally(pendings, api) {\n  var showLen = pendings.showTip.length;\n  var hideLen = pendings.hideTip.length;\n  var actuallyPayload;\n\n  if (showLen) {\n    actuallyPayload = pendings.showTip[showLen - 1];\n  } else if (hideLen) {\n    actuallyPayload = pendings.hideTip[hideLen - 1];\n  }\n\n  if (actuallyPayload) {\n    actuallyPayload.dispatchAction = null;\n    api.dispatchAction(actuallyPayload);\n  }\n}\n\nfunction onLeave(record, e, dispatchAction) {\n  record.handler('leave', null, dispatchAction);\n}\n\nfunction doEnter(currTrigger, record, e, dispatchAction) {\n  record.handler(currTrigger, e, dispatchAction);\n}\n\nfunction makeDispatchAction(api) {\n  var pendings = {\n    showTip: [],\n    hideTip: []\n  }; // FIXME\n  // better approach?\n  // 'showTip' and 'hideTip' can be triggered by axisPointer and tooltip,\n  // which may be conflict, (axisPointer call showTip but tooltip call hideTip);\n  // So we have to add \"final stage\" to merge those dispatched actions.\n\n  var dispatchAction = function (payload) {\n    var pendingList = pendings[payload.type];\n\n    if (pendingList) {\n      pendingList.push(payload);\n    } else {\n      payload.dispatchAction = dispatchAction;\n      api.dispatchAction(payload);\n    }\n  };\n\n  return {\n    dispatchAction: dispatchAction,\n    pendings: pendings\n  };\n}\n\nexport function unregister(key, api) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  var record = (inner(zr).records || {})[key];\n\n  if (record) {\n    inner(zr).records[key] = null;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as globalListener from './globalListener.js';\nimport ComponentView from '../../view/Component.js';\n\nvar AxisPointerView =\n/** @class */\nfunction (_super) {\n  __extends(AxisPointerView, _super);\n\n  function AxisPointerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerView.type;\n    return _this;\n  }\n\n  AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\n    var globalTooltipModel = ecModel.getComponent('tooltip');\n    var triggerOn = globalAxisPointerModel.get('triggerOn') || globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click'; // Register global listener in AxisPointerView to enable\n    // AxisPointerView to be independent to Tooltip.\n\n    globalListener.register('axisPointer', api, function (currTrigger, e, dispatchAction) {\n      // If 'none', it is not controlled by mouse totally.\n      if (triggerOn !== 'none' && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\n        dispatchAction({\n          type: 'updateAxisPointer',\n          currTrigger: currTrigger,\n          x: e && e.offsetX,\n          y: e && e.offsetY\n        });\n      }\n    });\n  };\n\n  AxisPointerView.prototype.remove = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.prototype.dispose = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.type = 'axisPointer';\n  return AxisPointerView;\n}(ComponentView);\n\nexport default AxisPointerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\n/**\n * @param finder contains {seriesIndex, dataIndex, dataIndexInside}\n * @param ecModel\n * @return  {point: [x, y], el: ...} point Will not be null.\n */\n\nexport default function findPointFromSeries(finder, ecModel) {\n  var point = [];\n  var seriesIndex = finder.seriesIndex;\n  var seriesModel;\n\n  if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\n    return {\n      point: []\n    };\n  }\n\n  var data = seriesModel.getData();\n  var dataIndex = modelUtil.queryDataIndex(data, finder);\n\n  if (dataIndex == null || dataIndex < 0 || zrUtil.isArray(dataIndex)) {\n    return {\n      point: []\n    };\n  }\n\n  var el = data.getItemGraphicEl(dataIndex);\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (seriesModel.getTooltipPosition) {\n    point = seriesModel.getTooltipPosition(dataIndex) || [];\n  } else if (coordSys && coordSys.dataToPoint) {\n    if (finder.isStacked) {\n      var baseAxis = coordSys.getBaseAxis();\n      var valueAxis = coordSys.getOtherAxis(baseAxis);\n      var valueAxisDim = valueAxis.dim;\n      var baseAxisDim = baseAxis.dim;\n      var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n      var baseDim = data.mapDimension(baseAxisDim);\n      var stackedData = [];\n      stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\n      stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\n      point = coordSys.dataToPoint(stackedData) || [];\n    } else {\n      point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }), dataIndex)) || [];\n    }\n  } else if (el) {\n    // Use graphic bounding rect\n    var rect = el.getBoundingRect().clone();\n    rect.applyTransform(el.transform);\n    point = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  }\n\n  return {\n    point: point,\n    el: el\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { makeInner } from '../../util/model.js';\nimport * as modelHelper from './modelHelper.js';\nimport findPointFromSeries from './findPointFromSeries.js';\nimport { each, curry, bind, extend } from 'zrender/lib/core/util.js';\nvar inner = makeInner();\n/**\n * Basic logic: check all axis, if they do not demand show/highlight,\n * then hide/downplay them.\n *\n * @return content of event obj for echarts.connect.\n */\n\nexport default function axisTrigger(payload, ecModel, api) {\n  var currTrigger = payload.currTrigger;\n  var point = [payload.x, payload.y];\n  var finder = payload;\n  var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\n  var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo; // Pending\n  // See #6121. But we are not able to reproduce it yet.\n\n  if (!coordSysAxesInfo) {\n    return;\n  }\n\n  if (illegalPoint(point)) {\n    // Used in the default behavior of `connection`: use the sample seriesIndex\n    // and dataIndex. And also used in the tooltipView trigger.\n    point = findPointFromSeries({\n      seriesIndex: finder.seriesIndex,\n      // Do not use dataIndexInside from other ec instance.\n      // FIXME: auto detect it?\n      dataIndex: finder.dataIndex\n    }, ecModel).point;\n  }\n\n  var isIllegalPoint = illegalPoint(point); // Axis and value can be specified when calling dispatchAction({type: 'updateAxisPointer'}).\n  // Notice: In this case, it is difficult to get the `point` (which is necessary to show\n  // tooltip, so if point is not given, we just use the point found by sample seriesIndex\n  // and dataIndex.\n\n  var inputAxesInfo = finder.axesInfo;\n  var axesInfo = coordSysAxesInfo.axesInfo;\n  var shouldHide = currTrigger === 'leave' || illegalPoint(point);\n  var outputPayload = {};\n  var showValueMap = {};\n  var dataByCoordSys = {\n    list: [],\n    map: {}\n  };\n  var updaters = {\n    showPointer: curry(showPointer, showValueMap),\n    showTooltip: curry(showTooltip, dataByCoordSys)\n  }; // Process for triggered axes.\n\n  each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\n    // If a point given, it must be contained by the coordinate system.\n    var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\n    each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\n      var axis = axisInfo.axis;\n      var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo); // If no inputAxesInfo, no axis is restricted.\n\n      if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\n        var val = inputAxisInfo && inputAxisInfo.value;\n\n        if (val == null && !isIllegalPoint) {\n          val = axis.pointToData(point);\n        }\n\n        val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\n      }\n    });\n  }); // Process for linked axes.\n\n  var linkTriggers = {};\n  each(axesInfo, function (tarAxisInfo, tarKey) {\n    var linkGroup = tarAxisInfo.linkGroup; // If axis has been triggered in the previous stage, it should not be triggered by link.\n\n    if (linkGroup && !showValueMap[tarKey]) {\n      each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\n        var srcValItem = showValueMap[srcKey]; // If srcValItem exist, source axis is triggered, so link to target axis.\n\n        if (srcAxisInfo !== tarAxisInfo && srcValItem) {\n          var val = srcValItem.value;\n          linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\n          linkTriggers[tarAxisInfo.key] = val;\n        }\n      });\n    }\n  });\n  each(linkTriggers, function (val, tarKey) {\n    processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\n  });\n  updateModelActually(showValueMap, axesInfo, outputPayload);\n  dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\n  dispatchHighDownActually(axesInfo, dispatchAction, api);\n  return outputPayload;\n}\n\nfunction processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\n  var axis = axisInfo.axis;\n\n  if (axis.scale.isBlank() || !axis.containData(newValue)) {\n    return;\n  }\n\n  if (!axisInfo.involveSeries) {\n    updaters.showPointer(axisInfo, newValue);\n    return;\n  } // Heavy calculation. So put it after axis.containData checking.\n\n\n  var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\n  var payloadBatch = payloadInfo.payloadBatch;\n  var snapToValue = payloadInfo.snapToValue; // Fill content of event obj for echarts.connect.\n  // By default use the first involved series data as a sample to connect.\n\n  if (payloadBatch[0] && outputFinder.seriesIndex == null) {\n    extend(outputFinder, payloadBatch[0]);\n  } // If no linkSource input, this process is for collecting link\n  // target, where snap should not be accepted.\n\n\n  if (!noSnap && axisInfo.snap) {\n    if (axis.containData(snapToValue) && snapToValue != null) {\n      newValue = snapToValue;\n    }\n  }\n\n  updaters.showPointer(axisInfo, newValue, payloadBatch); // Tooltip should always be snapToValue, otherwise there will be\n  // incorrect \"axis value ~ series value\" mapping displayed in tooltip.\n\n  updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\n}\n\nfunction buildPayloadsBySeries(value, axisInfo) {\n  var axis = axisInfo.axis;\n  var dim = axis.dim;\n  var snapToValue = value;\n  var payloadBatch = [];\n  var minDist = Number.MAX_VALUE;\n  var minDiff = -1;\n  each(axisInfo.seriesModels, function (series, idx) {\n    var dataDim = series.getData().mapDimensionsAll(dim);\n    var seriesNestestValue;\n    var dataIndices;\n\n    if (series.getAxisTooltipData) {\n      var result = series.getAxisTooltipData(dataDim, value, axis);\n      dataIndices = result.dataIndices;\n      seriesNestestValue = result.nestestValue;\n    } else {\n      dataIndices = series.getData().indicesOfNearest(dataDim[0], value, // Add a threshold to avoid find the wrong dataIndex\n      // when data length is not same.\n      // false,\n      axis.type === 'category' ? 0.5 : null);\n\n      if (!dataIndices.length) {\n        return;\n      }\n\n      seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\n    }\n\n    if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\n      return;\n    }\n\n    var diff = value - seriesNestestValue;\n    var dist = Math.abs(diff); // Consider category case\n\n    if (dist <= minDist) {\n      if (dist < minDist || diff >= 0 && minDiff < 0) {\n        minDist = dist;\n        minDiff = diff;\n        snapToValue = seriesNestestValue;\n        payloadBatch.length = 0;\n      }\n\n      each(dataIndices, function (dataIndex) {\n        payloadBatch.push({\n          seriesIndex: series.seriesIndex,\n          dataIndexInside: dataIndex,\n          dataIndex: series.getData().getRawIndex(dataIndex)\n        });\n      });\n    }\n  });\n  return {\n    payloadBatch: payloadBatch,\n    snapToValue: snapToValue\n  };\n}\n\nfunction showPointer(showValueMap, axisInfo, value, payloadBatch) {\n  showValueMap[axisInfo.key] = {\n    value: value,\n    payloadBatch: payloadBatch\n  };\n}\n\nfunction showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\n  var payloadBatch = payloadInfo.payloadBatch;\n  var axis = axisInfo.axis;\n  var axisModel = axis.model;\n  var axisPointerModel = axisInfo.axisPointerModel; // If no data, do not create anything in dataByCoordSys,\n  // whose length will be used to judge whether dispatch action.\n\n  if (!axisInfo.triggerTooltip || !payloadBatch.length) {\n    return;\n  }\n\n  var coordSysModel = axisInfo.coordSys.model;\n  var coordSysKey = modelHelper.makeKey(coordSysModel);\n  var coordSysItem = dataByCoordSys.map[coordSysKey];\n\n  if (!coordSysItem) {\n    coordSysItem = dataByCoordSys.map[coordSysKey] = {\n      coordSysId: coordSysModel.id,\n      coordSysIndex: coordSysModel.componentIndex,\n      coordSysType: coordSysModel.type,\n      coordSysMainType: coordSysModel.mainType,\n      dataByAxis: []\n    };\n    dataByCoordSys.list.push(coordSysItem);\n  }\n\n  coordSysItem.dataByAxis.push({\n    axisDim: axis.dim,\n    axisIndex: axisModel.componentIndex,\n    axisType: axisModel.type,\n    axisId: axisModel.id,\n    value: value,\n    // Caustion: viewHelper.getValueLabel is actually on \"view stage\", which\n    // depends that all models have been updated. So it should not be performed\n    // here. Considering axisPointerModel used here is volatile, which is hard\n    // to be retrieve in TooltipView, we prepare parameters here.\n    valueLabelOpt: {\n      precision: axisPointerModel.get(['label', 'precision']),\n      formatter: axisPointerModel.get(['label', 'formatter'])\n    },\n    seriesDataIndices: payloadBatch.slice()\n  });\n}\n\nfunction updateModelActually(showValueMap, axesInfo, outputPayload) {\n  var outputAxesInfo = outputPayload.axesInfo = []; // Basic logic: If no 'show' required, 'hide' this axisPointer.\n\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    var valItem = showValueMap[key];\n\n    if (valItem) {\n      !axisInfo.useHandle && (option.status = 'show');\n      option.value = valItem.value; // For label formatter param and highlight.\n\n      option.seriesDataIndices = (valItem.payloadBatch || []).slice();\n    } // When always show (e.g., handle used), remain\n    // original value and status.\n    else {\n        // If hide, value still need to be set, consider\n        // click legend to toggle axis blank.\n        !axisInfo.useHandle && (option.status = 'hide');\n      } // If status is 'hide', should be no info in payload.\n\n\n    option.status === 'show' && outputAxesInfo.push({\n      axisDim: axisInfo.axis.dim,\n      axisIndex: axisInfo.axis.model.componentIndex,\n      value: option.value\n    });\n  });\n}\n\nfunction dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\n  // Basic logic: If no showTip required, hideTip will be dispatched.\n  if (illegalPoint(point) || !dataByCoordSys.list.length) {\n    dispatchAction({\n      type: 'hideTip'\n    });\n    return;\n  } // In most case only one axis (or event one series is used). It is\n  // convinient to fetch payload.seriesIndex and payload.dataIndex\n  // dirtectly. So put the first seriesIndex and dataIndex of the first\n  // axis on the payload.\n\n\n  var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\n  dispatchAction({\n    type: 'showTip',\n    escapeConnect: true,\n    x: point[0],\n    y: point[1],\n    tooltipOption: payload.tooltipOption,\n    position: payload.position,\n    dataIndexInside: sampleItem.dataIndexInside,\n    dataIndex: sampleItem.dataIndex,\n    seriesIndex: sampleItem.seriesIndex,\n    dataByCoordSys: dataByCoordSys.list\n  });\n}\n\nfunction dispatchHighDownActually(axesInfo, dispatchAction, api) {\n  // FIXME\n  // highlight status modification shoule be a stage of main process?\n  // (Consider confilct (e.g., legend and axisPointer) and setOption)\n  var zr = api.getZr();\n  var highDownKey = 'axisPointerLastHighlights';\n  var lastHighlights = inner(zr)[highDownKey] || {};\n  var newHighlights = inner(zr)[highDownKey] = {}; // Update highlight/downplay status according to axisPointer model.\n  // Build hash map and remove duplicate incidentally.\n\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\n      var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\n      newHighlights[key] = batchItem;\n    });\n  }); // Diff.\n\n  var toHighlight = [];\n  var toDownplay = [];\n  each(lastHighlights, function (batchItem, key) {\n    !newHighlights[key] && toDownplay.push(batchItem);\n  });\n  each(newHighlights, function (batchItem, key) {\n    !lastHighlights[key] && toHighlight.push(batchItem);\n  });\n  toDownplay.length && api.dispatchAction({\n    type: 'downplay',\n    escapeConnect: true,\n    // Not blur others when highlight in axisPointer.\n    notBlur: true,\n    batch: toDownplay\n  });\n  toHighlight.length && api.dispatchAction({\n    type: 'highlight',\n    escapeConnect: true,\n    // Not blur others when highlight in axisPointer.\n    notBlur: true,\n    batch: toHighlight\n  });\n}\n\nfunction findInputAxisInfo(inputAxesInfo, axisInfo) {\n  for (var i = 0; i < (inputAxesInfo || []).length; i++) {\n    var inputAxisInfo = inputAxesInfo[i];\n\n    if (axisInfo.axis.dim === inputAxisInfo.axisDim && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\n      return inputAxisInfo;\n    }\n  }\n}\n\nfunction makeMapperParam(axisInfo) {\n  var axisModel = axisInfo.axis.model;\n  var item = {};\n  var dim = item.axisDim = axisInfo.axis.dim;\n  item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\n  item.axisName = item[dim + 'AxisName'] = axisModel.name;\n  item.axisId = item[dim + 'AxisId'] = axisModel.id;\n  return item;\n}\n\nfunction illegalPoint(point) {\n  return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport AxisView from '../axis/AxisView.js';\nimport CartesianAxisPointer from './CartesianAxisPointer.js';\nimport AxisPointerModel from './AxisPointerModel.js';\nimport AxisPointerView from './AxisPointerView.js';\nimport { isArray } from 'zrender/lib/core/util.js';\nimport { collect } from './modelHelper.js';\nimport axisTrigger from './axisTrigger.js';\nexport function install(registers) {\n  // CartesianAxisPointer is not supposed to be required here. But consider\n  // echarts.simple.js and online build tooltip, which only require gridSimple,\n  // CartesianAxisPointer should be able to required somewhere.\n  AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n  registers.registerComponentModel(AxisPointerModel);\n  registers.registerComponentView(AxisPointerView);\n  registers.registerPreprocessor(function (option) {\n    // Always has a global axisPointerModel for default setting.\n    if (option) {\n      (!option.axisPointer || option.axisPointer.length === 0) && (option.axisPointer = {});\n      var link = option.axisPointer.link; // Normalize to array to avoid object mergin. But if link\n      // is not set, remain null/undefined, otherwise it will\n      // override existent link setting.\n\n      if (link && !isArray(link)) {\n        option.axisPointer.link = [link];\n      }\n    }\n  }); // This process should proformed after coordinate systems created\n  // and series data processed. So put it on statistic processing stage.\n\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\n    // Build axisPointerModel, mergin tooltip.axisPointer model for each axis.\n    // allAxesInfo should be updated when setOption performed.\n    ecModel.getComponent('axisPointer').coordSysAxesInfo = collect(ecModel, api);\n  }); // Broadcast to all views.\n\n  registers.registerAction({\n    type: 'updateAxisPointer',\n    event: 'updateAxisPointer',\n    update: ':updateAxisPointer'\n  }, axisTrigger);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { install as installSimple } from './installSimple.js';\nimport { install as installAxisPointer } from '../axisPointer/install.js';\nimport { use } from '../../extension.js';\nexport function install(registers) {\n  use(installSimple);\n  use(installAxisPointer);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as viewHelper from './viewHelper.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport AxisBuilder from '../axis/AxisBuilder.js';\n\nvar PolarAxisPointer =\n/** @class */\nfunction (_super) {\n  __extends(PolarAxisPointer, _super);\n\n  function PolarAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n  /**\n   * @override\n   */\n\n\n  PolarAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n\n    if (axis.dim === 'angle') {\n      this.animationThreshold = Math.PI / 18;\n    }\n\n    var polar = axis.polar;\n    var otherAxis = polar.getOtherAxis(axis);\n    var otherExtent = otherAxis.getExtent();\n    var coordValue = axis.dataToCoord(value);\n    var axisPointerType = axisPointerModel.get('type');\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, polar, coordValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var labelMargin = axisPointerModel.get(['label', 'margin']);\n    var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin);\n    viewHelper.buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos);\n  };\n\n  return PolarAxisPointer;\n}(BaseAxisPointer);\n\n;\n\nfunction getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) {\n  var axis = axisModel.axis;\n  var coord = axis.dataToCoord(value);\n  var axisAngle = polar.getAngleAxis().getExtent()[0];\n  axisAngle = axisAngle / 180 * Math.PI;\n  var radiusExtent = polar.getRadiusAxis().getExtent();\n  var position;\n  var align;\n  var verticalAlign;\n\n  if (axis.dim === 'radius') {\n    var transform = matrix.create();\n    matrix.rotate(transform, transform, axisAngle);\n    matrix.translate(transform, transform, [polar.cx, polar.cy]);\n    position = graphic.applyTransform([coord, -labelMargin], transform);\n    var labelRotation = axisModel.getModel('axisLabel').get('rotate') || 0; // @ts-ignore\n\n    var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1);\n    align = labelLayout.textAlign;\n    verticalAlign = labelLayout.textVerticalAlign;\n  } else {\n    // angle axis\n    var r = radiusExtent[1];\n    position = polar.coordToPoint([r + labelMargin, coord]);\n    var cx = polar.cx;\n    var cy = polar.cy;\n    align = Math.abs(position[0] - cx) / r < 0.3 ? 'center' : position[0] > cx ? 'left' : 'right';\n    verticalAlign = Math.abs(position[1] - cy) / r < 0.3 ? 'middle' : position[1] > cy ? 'top' : 'bottom';\n  }\n\n  return {\n    position: position,\n    align: align,\n    verticalAlign: verticalAlign\n  };\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, polar, coordValue, otherExtent) {\n    return axis.dim === 'angle' ? {\n      type: 'Line',\n      shape: viewHelper.makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue]))\n    } : {\n      type: 'Circle',\n      shape: {\n        cx: polar.cx,\n        cy: polar.cy,\n        r: coordValue\n      }\n    };\n  },\n  shadow: function (axis, polar, coordValue, otherExtent) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var radian = Math.PI / 180;\n    return axis.dim === 'angle' ? {\n      type: 'Sector',\n      shape: viewHelper.makeSectorShape(polar.cx, polar.cy, otherExtent[0], otherExtent[1], // In ECharts y is negative if angle is positive\n      (-coordValue - bandWidth / 2) * radian, (-coordValue + bandWidth / 2) * radian)\n    } : {\n      type: 'Sector',\n      shape: viewHelper.makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2)\n    };\n  }\n};\nexport default PolarAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\n\nvar PolarModel =\n/** @class */\nfunction (_super) {\n  __extends(PolarModel, _super);\n\n  function PolarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PolarModel.type;\n    return _this;\n  }\n\n  PolarModel.prototype.findAxisModel = function (axisType) {\n    var foundAxisModel;\n    var ecModel = this.ecModel;\n    ecModel.eachComponent(axisType, function (axisModel) {\n      if (axisModel.getCoordSysModel() === this) {\n        foundAxisModel = axisModel;\n      }\n    }, this);\n    return foundAxisModel;\n  };\n\n  PolarModel.type = 'polar';\n  PolarModel.dependencies = ['radiusAxis', 'angleAxis'];\n  PolarModel.defaultOption = {\n    // zlevel: 0,\n    z: 0,\n    center: ['50%', '50%'],\n    radius: '80%'\n  };\n  return PolarModel;\n}(ComponentModel);\n\nexport default PolarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n\nvar PolarAxisModel =\n/** @class */\nfunction (_super) {\n  __extends(PolarAxisModel, _super);\n\n  function PolarAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  PolarAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n  };\n\n  PolarAxisModel.type = 'polarAxis';\n  return PolarAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(PolarAxisModel, AxisModelCommonMixin);\nexport { PolarAxisModel };\n\nvar AngleAxisModel =\n/** @class */\nfunction (_super) {\n  __extends(AngleAxisModel, _super);\n\n  function AngleAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AngleAxisModel.type;\n    return _this;\n  }\n\n  AngleAxisModel.type = 'angleAxis';\n  return AngleAxisModel;\n}(PolarAxisModel);\n\nexport { AngleAxisModel };\n\nvar RadiusAxisModel =\n/** @class */\nfunction (_super) {\n  __extends(RadiusAxisModel, _super);\n\n  function RadiusAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadiusAxisModel.type;\n    return _this;\n  }\n\n  RadiusAxisModel.type = 'radiusAxis';\n  return RadiusAxisModel;\n}(PolarAxisModel);\n\nexport { RadiusAxisModel };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\n\nvar RadiusAxis =\n/** @class */\nfunction (_super) {\n  __extends(RadiusAxis, _super);\n\n  function RadiusAxis(scale, radiusExtent) {\n    return _super.call(this, 'radius', scale, radiusExtent) || this;\n  }\n\n  RadiusAxis.prototype.pointToData = function (point, clamp) {\n    return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n  };\n\n  return RadiusAxis;\n}(Axis);\n\nRadiusAxis.prototype.dataToRadius = Axis.prototype.dataToCoord;\nRadiusAxis.prototype.radiusToData = Axis.prototype.coordToData;\nexport default RadiusAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as textContain from 'zrender/lib/contain/text.js';\nimport Axis from '../Axis.js';\nimport { makeInner } from '../../util/model.js';\nvar inner = makeInner();\n\nvar AngleAxis =\n/** @class */\nfunction (_super) {\n  __extends(AngleAxis, _super);\n\n  function AngleAxis(scale, angleExtent) {\n    return _super.call(this, 'angle', scale, angleExtent || [0, 360]) || this;\n  }\n\n  AngleAxis.prototype.pointToData = function (point, clamp) {\n    return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n  };\n  /**\n   * Only be called in category axis.\n   * Angle axis uses text height to decide interval\n   *\n   * @override\n   * @return {number} Auto interval for cateogry axis tick and label\n   */\n\n\n  AngleAxis.prototype.calculateCategoryInterval = function () {\n    var axis = this;\n    var labelModel = axis.getLabelModel();\n    var ordinalScale = axis.scale;\n    var ordinalExtent = ordinalScale.getExtent(); // Providing this method is for optimization:\n    // avoid generating a long array by `getTicks`\n    // in large category data case.\n\n    var tickCount = ordinalScale.count();\n\n    if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n      return 0;\n    }\n\n    var tickValue = ordinalExtent[0];\n    var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n    var unitH = Math.abs(unitSpan); // Not precise, just use height as text width\n    // and each distance from axis line yet.\n\n    var rect = textContain.getBoundingRect(tickValue == null ? '' : tickValue + '', labelModel.getFont(), 'center', 'top');\n    var maxH = Math.max(rect.height, 7);\n    var dh = maxH / unitH; // 0/0 is NaN, 1/0 is Infinity.\n\n    isNaN(dh) && (dh = Infinity);\n    var interval = Math.max(0, Math.floor(dh));\n    var cache = inner(axis.model);\n    var lastAutoInterval = cache.lastAutoInterval;\n    var lastTickCount = cache.lastTickCount; // Use cache to keep interval stable while moving zoom window,\n    // otherwise the calculated interval might jitter when the zoom\n    // window size is close to the interval-changing size.\n\n    if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 // Always choose the bigger one, otherwise the critical\n    // point is not the same when zooming in or zooming out.\n    && lastAutoInterval > interval) {\n      interval = lastAutoInterval;\n    } // Only update cache if cache not used, otherwise the\n    // changing of interval is too insensitive.\n    else {\n        cache.lastTickCount = tickCount;\n        cache.lastAutoInterval = interval;\n      }\n\n    return interval;\n  };\n\n  return AngleAxis;\n}(Axis);\n\nAngleAxis.prototype.dataToAngle = Axis.prototype.dataToCoord;\nAngleAxis.prototype.angleToData = Axis.prototype.coordToData;\nexport default AngleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport RadiusAxis from './RadiusAxis.js';\nimport AngleAxis from './AngleAxis.js';\nexport var polarDimensions = ['radius', 'angle'];\n\nvar Polar =\n/** @class */\nfunction () {\n  function Polar(name) {\n    this.dimensions = polarDimensions;\n    this.type = 'polar';\n    /**\n     * x of polar center\n     */\n\n    this.cx = 0;\n    /**\n     * y of polar center\n     */\n\n    this.cy = 0;\n    this._radiusAxis = new RadiusAxis();\n    this._angleAxis = new AngleAxis();\n    this.axisPointerEnabled = true;\n    this.name = name || '';\n    this._radiusAxis.polar = this._angleAxis.polar = this;\n  }\n  /**\n   * If contain coord\n   */\n\n\n  Polar.prototype.containPoint = function (point) {\n    var coord = this.pointToCoord(point);\n    return this._radiusAxis.contain(coord[0]) && this._angleAxis.contain(coord[1]);\n  };\n  /**\n   * If contain data\n   */\n\n\n  Polar.prototype.containData = function (data) {\n    return this._radiusAxis.containData(data[0]) && this._angleAxis.containData(data[1]);\n  };\n\n  Polar.prototype.getAxis = function (dim) {\n    var key = '_' + dim + 'Axis';\n    return this[key];\n  };\n\n  Polar.prototype.getAxes = function () {\n    return [this._radiusAxis, this._angleAxis];\n  };\n  /**\n   * Get axes by type of scale\n   */\n\n\n  Polar.prototype.getAxesByScale = function (scaleType) {\n    var axes = [];\n    var angleAxis = this._angleAxis;\n    var radiusAxis = this._radiusAxis;\n    angleAxis.scale.type === scaleType && axes.push(angleAxis);\n    radiusAxis.scale.type === scaleType && axes.push(radiusAxis);\n    return axes;\n  };\n\n  Polar.prototype.getAngleAxis = function () {\n    return this._angleAxis;\n  };\n\n  Polar.prototype.getRadiusAxis = function () {\n    return this._radiusAxis;\n  };\n\n  Polar.prototype.getOtherAxis = function (axis) {\n    var angleAxis = this._angleAxis;\n    return axis === angleAxis ? this._radiusAxis : angleAxis;\n  };\n  /**\n   * Base axis will be used on stacking.\n   *\n   */\n\n\n  Polar.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAngleAxis();\n  };\n\n  Polar.prototype.getTooltipAxes = function (dim) {\n    var baseAxis = dim != null && dim !== 'auto' ? this.getAxis(dim) : this.getBaseAxis();\n    return {\n      baseAxes: [baseAxis],\n      otherAxes: [this.getOtherAxis(baseAxis)]\n    };\n  };\n  /**\n   * Convert a single data item to (x, y) point.\n   * Parameter data is an array which the first element is radius and the second is angle\n   */\n\n\n  Polar.prototype.dataToPoint = function (data, clamp) {\n    return this.coordToPoint([this._radiusAxis.dataToRadius(data[0], clamp), this._angleAxis.dataToAngle(data[1], clamp)]);\n  };\n  /**\n   * Convert a (x, y) point to data\n   */\n\n\n  Polar.prototype.pointToData = function (point, clamp) {\n    var coord = this.pointToCoord(point);\n    return [this._radiusAxis.radiusToData(coord[0], clamp), this._angleAxis.angleToData(coord[1], clamp)];\n  };\n  /**\n   * Convert a (x, y) point to (radius, angle) coord\n   */\n\n\n  Polar.prototype.pointToCoord = function (point) {\n    var dx = point[0] - this.cx;\n    var dy = point[1] - this.cy;\n    var angleAxis = this.getAngleAxis();\n    var extent = angleAxis.getExtent();\n    var minAngle = Math.min(extent[0], extent[1]);\n    var maxAngle = Math.max(extent[0], extent[1]); // Fix fixed extent in polarCreator\n    // FIXME\n\n    angleAxis.inverse ? minAngle = maxAngle - 360 : maxAngle = minAngle + 360;\n    var radius = Math.sqrt(dx * dx + dy * dy);\n    dx /= radius;\n    dy /= radius;\n    var radian = Math.atan2(-dy, dx) / Math.PI * 180; // move to angleExtent\n\n    var dir = radian < minAngle ? 1 : -1;\n\n    while (radian < minAngle || radian > maxAngle) {\n      radian += dir * 360;\n    }\n\n    return [radius, radian];\n  };\n  /**\n   * Convert a (radius, angle) coord to (x, y) point\n   */\n\n\n  Polar.prototype.coordToPoint = function (coord) {\n    var radius = coord[0];\n    var radian = coord[1] / 180 * Math.PI;\n    var x = Math.cos(radian) * radius + this.cx; // Inverse the y\n\n    var y = -Math.sin(radian) * radius + this.cy;\n    return [x, y];\n  };\n  /**\n   * Get ring area of cartesian.\n   * Area will have a contain function to determine if a point is in the coordinate system.\n   */\n\n\n  Polar.prototype.getArea = function () {\n    var angleAxis = this.getAngleAxis();\n    var radiusAxis = this.getRadiusAxis();\n    var radiusExtent = radiusAxis.getExtent().slice();\n    radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse();\n    var angleExtent = angleAxis.getExtent();\n    var RADIAN = Math.PI / 180;\n    return {\n      cx: this.cx,\n      cy: this.cy,\n      r0: radiusExtent[0],\n      r: radiusExtent[1],\n      startAngle: -angleExtent[0] * RADIAN,\n      endAngle: -angleExtent[1] * RADIAN,\n      clockwise: angleAxis.inverse,\n      contain: function (x, y) {\n        // It's a ring shape.\n        // Start angle and end angle don't matter\n        var dx = x - this.cx;\n        var dy = y - this.cy; // minus a tiny value 1e-4 to avoid being clipped unexpectedly\n\n        var d2 = dx * dx + dy * dy - 1e-4;\n        var r = this.r;\n        var r0 = this.r0;\n        return d2 <= r * r && d2 >= r0 * r0;\n      }\n    };\n  };\n\n  Polar.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.dataToPoint(value) : null;\n  };\n\n  Polar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.pointToData(pixel) : null;\n  };\n\n  return Polar;\n}();\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  var polarModel = finder.polarModel;\n  return polarModel && polarModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Polar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Axis scale\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Polar, { polarDimensions } from './Polar.js';\nimport { parsePercent } from '../../util/number.js';\nimport { createScaleByModel, niceScaleExtent, getDataDimensionsOnAxis } from '../../coord/axisHelper.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n/**\n * Resize method bound to the polar\n */\n\nfunction resizePolar(polar, polarModel, api) {\n  var center = polarModel.get('center');\n  var width = api.getWidth();\n  var height = api.getHeight();\n  polar.cx = parsePercent(center[0], width);\n  polar.cy = parsePercent(center[1], height);\n  var radiusAxis = polar.getRadiusAxis();\n  var size = Math.min(width, height) / 2;\n  var radius = polarModel.get('radius');\n\n  if (radius == null) {\n    radius = [0, '100%'];\n  } else if (!zrUtil.isArray(radius)) {\n    // r0 = 0\n    radius = [0, radius];\n  }\n\n  var parsedRadius = [parsePercent(radius[0], size), parsePercent(radius[1], size)];\n  radiusAxis.inverse ? radiusAxis.setExtent(parsedRadius[1], parsedRadius[0]) : radiusAxis.setExtent(parsedRadius[0], parsedRadius[1]);\n}\n/**\n * Update polar\n */\n\n\nfunction updatePolarScale(ecModel, api) {\n  var polar = this;\n  var angleAxis = polar.getAngleAxis();\n  var radiusAxis = polar.getRadiusAxis(); // Reset scale\n\n  angleAxis.scale.setExtent(Infinity, -Infinity);\n  radiusAxis.scale.setExtent(Infinity, -Infinity);\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.coordinateSystem === polar) {\n      var data_1 = seriesModel.getData();\n      zrUtil.each(getDataDimensionsOnAxis(data_1, 'radius'), function (dim) {\n        radiusAxis.scale.unionExtentFromData(data_1, dim);\n      });\n      zrUtil.each(getDataDimensionsOnAxis(data_1, 'angle'), function (dim) {\n        angleAxis.scale.unionExtentFromData(data_1, dim);\n      });\n    }\n  });\n  niceScaleExtent(angleAxis.scale, angleAxis.model);\n  niceScaleExtent(radiusAxis.scale, radiusAxis.model); // Fix extent of category angle axis\n\n  if (angleAxis.type === 'category' && !angleAxis.onBand) {\n    var extent = angleAxis.getExtent();\n    var diff = 360 / angleAxis.scale.count();\n    angleAxis.inverse ? extent[1] += diff : extent[1] -= diff;\n    angleAxis.setExtent(extent[0], extent[1]);\n  }\n}\n\nfunction isAngleAxisModel(axisModel) {\n  return axisModel.mainType === 'angleAxis';\n}\n/**\n * Set common axis properties\n */\n\n\nfunction setAxis(axis, axisModel) {\n  axis.type = axisModel.get('type');\n  axis.scale = createScaleByModel(axisModel);\n  axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category';\n  axis.inverse = axisModel.get('inverse');\n\n  if (isAngleAxisModel(axisModel)) {\n    axis.inverse = axis.inverse !== axisModel.get('clockwise');\n    var startAngle = axisModel.get('startAngle');\n    axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\n  } // Inject axis instance\n\n\n  axisModel.axis = axis;\n  axis.model = axisModel;\n}\n\nvar polarCreator = {\n  dimensions: polarDimensions,\n  create: function (ecModel, api) {\n    var polarList = [];\n    ecModel.eachComponent('polar', function (polarModel, idx) {\n      var polar = new Polar(idx + ''); // Inject resize and update method\n\n      polar.update = updatePolarScale;\n      var radiusAxis = polar.getRadiusAxis();\n      var angleAxis = polar.getAngleAxis();\n      var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n      var angleAxisModel = polarModel.findAxisModel('angleAxis');\n      setAxis(radiusAxis, radiusAxisModel);\n      setAxis(angleAxis, angleAxisModel);\n      resizePolar(polar, polarModel, api);\n      polarList.push(polar);\n      polarModel.coordinateSystem = polar;\n      polar.model = polarModel;\n    }); // Inject coordinateSystem to series\n\n    ecModel.eachSeries(function (seriesModel) {\n      if (seriesModel.get('coordinateSystem') === 'polar') {\n        var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n\n        if (process.env.NODE_ENV !== 'production') {\n          if (!polarModel) {\n            throw new Error('Polar \"' + zrUtil.retrieve(seriesModel.get('polarIndex'), seriesModel.get('polarId'), 0) + '\" not found');\n          }\n        }\n\n        seriesModel.coordinateSystem = polarModel.coordinateSystem;\n      }\n    });\n    return polarList;\n  }\n};\nexport default polarCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport Model from '../../model/Model.js';\nimport AxisView from './AxisView.js';\nimport AxisBuilder from './AxisBuilder.js';\nimport { getECData } from '../../util/innerStore.js';\nvar elementList = ['axisLine', 'axisLabel', 'axisTick', 'minorTick', 'splitLine', 'minorSplitLine', 'splitArea'];\n\nfunction getAxisLineShape(polar, rExtent, angle) {\n  rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());\n  var start = polar.coordToPoint([rExtent[0], angle]);\n  var end = polar.coordToPoint([rExtent[1], angle]);\n  return {\n    x1: start[0],\n    y1: start[1],\n    x2: end[0],\n    y2: end[1]\n  };\n}\n\nfunction getRadiusIdx(polar) {\n  var radiusAxis = polar.getRadiusAxis();\n  return radiusAxis.inverse ? 0 : 1;\n} // Remove the last tick which will overlap the first tick\n\n\nfunction fixAngleOverlap(list) {\n  var firstItem = list[0];\n  var lastItem = list[list.length - 1];\n\n  if (firstItem && lastItem && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {\n    list.pop();\n  }\n}\n\nvar AngleAxisView =\n/** @class */\nfunction (_super) {\n  __extends(AngleAxisView, _super);\n\n  function AngleAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AngleAxisView.type;\n    _this.axisPointerClass = 'PolarAxisPointer';\n    return _this;\n  }\n\n  AngleAxisView.prototype.render = function (angleAxisModel, ecModel) {\n    this.group.removeAll();\n\n    if (!angleAxisModel.get('show')) {\n      return;\n    }\n\n    var angleAxis = angleAxisModel.axis;\n    var polar = angleAxis.polar;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var ticksAngles = angleAxis.getTicksCoords();\n    var minorTickAngles = angleAxis.getMinorTicksCoords();\n    var labels = zrUtil.map(angleAxis.getViewLabels(), function (labelItem) {\n      labelItem = zrUtil.clone(labelItem);\n      var scale = angleAxis.scale;\n      var tickValue = scale.type === 'ordinal' ? scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n      labelItem.coord = angleAxis.dataToCoord(tickValue);\n      return labelItem;\n    });\n    fixAngleOverlap(labels);\n    fixAngleOverlap(ticksAngles);\n    zrUtil.each(elementList, function (name) {\n      if (angleAxisModel.get([name, 'show']) && (!angleAxis.scale.isBlank() || name === 'axisLine')) {\n        angelAxisElementsBuilders[name](this.group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels);\n      }\n    }, this);\n  };\n\n  AngleAxisView.type = 'angleAxis';\n  return AngleAxisView;\n}(AxisView);\n\nvar angelAxisElementsBuilders = {\n  axisLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var lineStyleModel = angleAxisModel.getModel(['axisLine', 'lineStyle']); // extent id of the axis radius (r0 and r)\n\n    var rId = getRadiusIdx(polar);\n    var r0Id = rId ? 0 : 1;\n    var shape;\n\n    if (radiusExtent[r0Id] === 0) {\n      shape = new graphic.Circle({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: radiusExtent[rId]\n        },\n        style: lineStyleModel.getLineStyle(),\n        z2: 1,\n        silent: true\n      });\n    } else {\n      shape = new graphic.Ring({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: radiusExtent[rId],\n          r0: radiusExtent[r0Id]\n        },\n        style: lineStyleModel.getLineStyle(),\n        z2: 1,\n        silent: true\n      });\n    }\n\n    shape.style.fill = null;\n    group.add(shape);\n  },\n  axisTick: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var tickModel = angleAxisModel.getModel('axisTick');\n    var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');\n    var radius = radiusExtent[getRadiusIdx(polar)];\n    var lines = zrUtil.map(ticksAngles, function (tickAngleItem) {\n      return new graphic.Line({\n        shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)\n      });\n    });\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults(tickModel.getModel('lineStyle').getLineStyle(), {\n        stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n      })\n    }));\n  },\n  minorTick: function (group, angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) {\n    if (!minorTickAngles.length) {\n      return;\n    }\n\n    var tickModel = angleAxisModel.getModel('axisTick');\n    var minorTickModel = angleAxisModel.getModel('minorTick');\n    var tickLen = (tickModel.get('inside') ? -1 : 1) * minorTickModel.get('length');\n    var radius = radiusExtent[getRadiusIdx(polar)];\n    var lines = [];\n\n    for (var i = 0; i < minorTickAngles.length; i++) {\n      for (var k = 0; k < minorTickAngles[i].length; k++) {\n        lines.push(new graphic.Line({\n          shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord)\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults(minorTickModel.getModel('lineStyle').getLineStyle(), zrUtil.defaults(tickModel.getLineStyle(), {\n        stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n      }))\n    }));\n  },\n  axisLabel: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) {\n    var rawCategoryData = angleAxisModel.getCategories(true);\n    var commonLabelModel = angleAxisModel.getModel('axisLabel');\n    var labelMargin = commonLabelModel.get('margin');\n    var triggerEvent = angleAxisModel.get('triggerEvent'); // Use length of ticksAngles because it may remove the last tick to avoid overlapping\n\n    zrUtil.each(labels, function (labelItem, idx) {\n      var labelModel = commonLabelModel;\n      var tickValue = labelItem.tickValue;\n      var r = radiusExtent[getRadiusIdx(polar)];\n      var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);\n      var cx = polar.cx;\n      var cy = polar.cy;\n      var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3 ? 'center' : p[0] > cx ? 'left' : 'right';\n      var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3 ? 'middle' : p[1] > cy ? 'top' : 'bottom';\n\n      if (rawCategoryData && rawCategoryData[tickValue]) {\n        var rawCategoryItem = rawCategoryData[tickValue];\n\n        if (zrUtil.isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n          labelModel = new Model(rawCategoryItem.textStyle, commonLabelModel, commonLabelModel.ecModel);\n        }\n      }\n\n      var textEl = new graphic.Text({\n        silent: AxisBuilder.isLabelSilent(angleAxisModel),\n        style: createTextStyle(labelModel, {\n          x: p[0],\n          y: p[1],\n          fill: labelModel.getTextColor() || angleAxisModel.get(['axisLine', 'lineStyle', 'color']),\n          text: labelItem.formattedLabel,\n          align: labelTextAlign,\n          verticalAlign: labelTextVerticalAlign\n        })\n      });\n      group.add(textEl); // Pack data for mouse event\n\n      if (triggerEvent) {\n        var eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel);\n        eventData.targetType = 'axisLabel';\n        eventData.value = labelItem.rawLabel;\n        getECData(textEl).eventData = eventData;\n      }\n    }, this);\n  },\n  splitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var splitLineModel = angleAxisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    var lineCount = 0;\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var splitLines = [];\n\n    for (var i = 0; i < ticksAngles.length; i++) {\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Line({\n        shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)\n      }));\n    } // Simple optimization\n    // Batching the lines if color are the same\n\n\n    for (var i = 0; i < splitLines.length; i++) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length]\n        }, lineStyleModel.getLineStyle()),\n        silent: true,\n        z: angleAxisModel.get('z')\n      }));\n    }\n  },\n  minorSplitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    if (!minorTickAngles.length) {\n      return;\n    }\n\n    var minorSplitLineModel = angleAxisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var lines = [];\n\n    for (var i = 0; i < minorTickAngles.length; i++) {\n      for (var k = 0; k < minorTickAngles[i].length; k++) {\n        lines.push(new graphic.Line({\n          shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord)\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: lineStyleModel.getLineStyle(),\n      silent: true,\n      z: angleAxisModel.get('z')\n    }));\n  },\n  splitArea: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    if (!ticksAngles.length) {\n      return;\n    }\n\n    var splitAreaModel = angleAxisModel.getModel('splitArea');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var areaColors = areaStyleModel.get('color');\n    var lineCount = 0;\n    areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n    var splitAreas = [];\n    var RADIAN = Math.PI / 180;\n    var prevAngle = -ticksAngles[0].coord * RADIAN;\n    var r0 = Math.min(radiusExtent[0], radiusExtent[1]);\n    var r1 = Math.max(radiusExtent[0], radiusExtent[1]);\n    var clockwise = angleAxisModel.get('clockwise');\n\n    for (var i = 1, len = ticksAngles.length; i <= len; i++) {\n      var coord = i === len ? ticksAngles[0].coord : ticksAngles[i].coord;\n      var colorIndex = lineCount++ % areaColors.length;\n      splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n      splitAreas[colorIndex].push(new graphic.Sector({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r0: r0,\n          r: r1,\n          startAngle: prevAngle,\n          endAngle: -coord * RADIAN,\n          clockwise: clockwise\n        },\n        silent: true\n      }));\n      prevAngle = -coord * RADIAN;\n    } // Simple optimization\n    // Batching the lines if color are the same\n\n\n    for (var i = 0; i < splitAreas.length; i++) {\n      group.add(graphic.mergePath(splitAreas[i], {\n        style: zrUtil.defaults({\n          fill: areaColors[i % areaColors.length]\n        }, areaStyleModel.getAreaStyle()),\n        silent: true\n      }));\n    }\n  }\n};\nexport default AngleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport AxisBuilder from './AxisBuilder.js';\nimport AxisView from './AxisView.js';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitLine', 'splitArea', 'minorSplitLine'];\n\nvar RadiusAxisView =\n/** @class */\nfunction (_super) {\n  __extends(RadiusAxisView, _super);\n\n  function RadiusAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadiusAxisView.type;\n    _this.axisPointerClass = 'PolarAxisPointer';\n    return _this;\n  }\n\n  RadiusAxisView.prototype.render = function (radiusAxisModel, ecModel) {\n    this.group.removeAll();\n\n    if (!radiusAxisModel.get('show')) {\n      return;\n    }\n\n    var oldAxisGroup = this._axisGroup;\n    var newAxisGroup = this._axisGroup = new graphic.Group();\n    this.group.add(newAxisGroup);\n    var radiusAxis = radiusAxisModel.axis;\n    var polar = radiusAxis.polar;\n    var angleAxis = polar.getAngleAxis();\n    var ticksCoords = radiusAxis.getTicksCoords();\n    var minorTicksCoords = radiusAxis.getMinorTicksCoords();\n    var axisAngle = angleAxis.getExtent()[0];\n    var radiusExtent = radiusAxis.getExtent();\n    var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\n    var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n    newAxisGroup.add(axisBuilder.getGroup());\n    graphic.groupTransition(oldAxisGroup, newAxisGroup, radiusAxisModel);\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (radiusAxisModel.get([name, 'show']) && !radiusAxis.scale.isBlank()) {\n        axisElementBuilders[name](this.group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords);\n      }\n    }, this);\n  };\n\n  RadiusAxisView.type = 'radiusAxis';\n  return RadiusAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n    var splitLineModel = radiusAxisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    var lineCount = 0;\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var splitLines = [];\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Circle({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          // ensure circle radius >= 0\n          r: Math.max(ticksCoords[i].coord, 0)\n        }\n      }));\n    } // Simple optimization\n    // Batching the lines if color are the same\n\n\n    for (var i = 0; i < splitLines.length; i++) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length],\n          fill: null\n        }, lineStyleModel.getLineStyle()),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) {\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var minorSplitLineModel = radiusAxisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var lines = [];\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        lines.push(new graphic.Circle({\n          shape: {\n            cx: polar.cx,\n            cy: polar.cy,\n            r: minorTicksCoords[i][k].coord\n          }\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults({\n        fill: null\n      }, lineStyleModel.getLineStyle()),\n      silent: true\n    }));\n  },\n  splitArea: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n    if (!ticksCoords.length) {\n      return;\n    }\n\n    var splitAreaModel = radiusAxisModel.getModel('splitArea');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var areaColors = areaStyleModel.get('color');\n    var lineCount = 0;\n    areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n    var splitAreas = [];\n    var prevRadius = ticksCoords[0].coord;\n\n    for (var i = 1; i < ticksCoords.length; i++) {\n      var colorIndex = lineCount++ % areaColors.length;\n      splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n      splitAreas[colorIndex].push(new graphic.Sector({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r0: prevRadius,\n          r: ticksCoords[i].coord,\n          startAngle: 0,\n          endAngle: Math.PI * 2\n        },\n        silent: true\n      }));\n      prevRadius = ticksCoords[i].coord;\n    } // Simple optimization\n    // Batching the lines if color are the same\n\n\n    for (var i = 0; i < splitAreas.length; i++) {\n      group.add(graphic.mergePath(splitAreas[i], {\n        style: zrUtil.defaults({\n          fill: areaColors[i % areaColors.length]\n        }, areaStyleModel.getAreaStyle()),\n        silent: true\n      }));\n    }\n  }\n};\n/**\n * @inner\n */\n\nfunction layoutAxis(polar, radiusAxisModel, axisAngle) {\n  return {\n    position: [polar.cx, polar.cy],\n    rotation: axisAngle / 180 * Math.PI,\n    labelDirection: -1,\n    tickDirection: -1,\n    nameDirection: 1,\n    labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\n    // Over splitLine and splitArea\n    z2: 1\n  };\n}\n\nexport default RadiusAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { parsePercent } from '../util/number.js';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper.js';\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || '__ec_stack_' + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(polar, axis) {\n  return axis.dim + polar.model.componentIndex;\n}\n\nfunction barLayoutPolar(seriesType, ecModel, api) {\n  var lastStackCoords = {};\n  var barWidthAndOffset = calRadialBar(zrUtil.filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\n    return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'polar';\n  }));\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    // Check series coordinate, do layout for polar only\n    if (seriesModel.coordinateSystem.type !== 'polar') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var polar = seriesModel.coordinateSystem;\n    var baseAxis = polar.getBaseAxis();\n    var axisKey = getAxisKey(polar, baseAxis);\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[axisKey][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = polar.getOtherAxis(baseAxis);\n    var cx = seriesModel.coordinateSystem.cx;\n    var cy = seriesModel.coordinateSystem.cy;\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    var barMinAngle = seriesModel.get('barMinAngle') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim\n    /*, baseDim*/\n    );\n    var clampLayout = baseAxis.dim !== 'radius' || !seriesModel.get('roundCap', true);\n    var valueAxisStart = valueAxis.dataToCoord(0);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart; // Because of the barMinHeight, we can not use the value in\n      // stackResultDimension directly.\n      // Only ordinal axis can be stacked.\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            n: valueAxisStart // Negative stack\n\n          };\n        } // Should also consider #4243\n\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var r0 = void 0;\n      var r = void 0;\n      var startAngle = void 0;\n      var endAngle = void 0; // radial sector\n\n      if (valueAxis.dim === 'radius') {\n        var radiusSpan = valueAxis.dataToCoord(value) - valueAxisStart;\n        var angle = baseAxis.dataToCoord(baseValue);\n\n        if (Math.abs(radiusSpan) < barMinHeight) {\n          radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        r0 = baseCoord;\n        r = baseCoord + radiusSpan;\n        startAngle = angle - columnOffset;\n        endAngle = startAngle - columnWidth;\n        stacked && (lastStackCoords[stackId][baseValue][sign] = r);\n      } // tangential sector\n      else {\n          var angleSpan = valueAxis.dataToCoord(value, clampLayout) - valueAxisStart;\n          var radius = baseAxis.dataToCoord(baseValue);\n\n          if (Math.abs(angleSpan) < barMinAngle) {\n            angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\n          }\n\n          r0 = radius + columnOffset;\n          r = r0 + columnWidth;\n          startAngle = baseCoord;\n          endAngle = baseCoord + angleSpan; // if the previous stack is at the end of the ring,\n          // add a round to differentiate it from origin\n          // let extent = angleAxis.getExtent();\n          // let stackCoord = angle;\n          // if (stackCoord === extent[0] && value > 0) {\n          //     stackCoord = extent[1];\n          // }\n          // else if (stackCoord === extent[1] && value < 0) {\n          //     stackCoord = extent[0];\n          // }\n\n          stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\n        }\n\n      data.setItemLayout(idx, {\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: r,\n        // Consider that positive angle is anti-clockwise,\n        // while positive radian of sector is clockwise\n        startAngle: -startAngle * Math.PI / 180,\n        endAngle: -endAngle * Math.PI / 180,\n\n        /**\n         * Keep the same logic with bar in catesion: use end value to\n         * control direction. Notice that if clockwise is true (by\n         * default), the sector will always draw clockwisely, no matter\n         * whether endAngle is greater or less than startAngle.\n         */\n        clockwise: startAngle >= endAngle\n      });\n    }\n  });\n}\n/**\n * Calculate bar width and offset for radial bar charts\n */\n\n\nfunction calRadialBar(barSeries) {\n  // Columns info on each category axis. Key is polar name\n  var columnsMap = {};\n  zrUtil.each(barSeries, function (seriesModel, idx) {\n    var data = seriesModel.getData();\n    var polar = seriesModel.coordinateSystem;\n    var baseAxis = polar.getBaseAxis();\n    var axisKey = getAxisKey(polar, baseAxis);\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: '20%',\n      gap: '30%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = getSeriesStackId(seriesModel);\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n\n    if (barWidth && !stacks[stackId].width) {\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      stacks[stackId].width = barWidth;\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    barGap != null && (columnsOnAxis.gap = barGap);\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0); // Find if any auto calculated bar exceeded maxBarWidth\n\n    zrUtil.each(stacks, function (column, stack) {\n      var maxWidth = column.maxWidth;\n\n      if (maxWidth && maxWidth < autoWidth) {\n        maxWidth = Math.min(maxWidth, remainedWidth);\n\n        if (column.width) {\n          maxWidth = Math.min(maxWidth, column.width);\n        }\n\n        remainedWidth -= maxWidth;\n        column.width = maxWidth;\n        autoWidthCount--;\n      }\n    }); // Recalculate width again\n\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nexport default barLayoutPolar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension.js';\nimport AxisView from '../axis/AxisView.js';\nimport PolarAxisPointer from '../axisPointer/PolarAxisPointer.js';\nimport { install as installAxisPointer } from '../axisPointer/install.js';\nimport PolarModel from '../../coord/polar/PolarModel.js';\nimport axisModelCreator from '../../coord/axisModelCreator.js';\nimport { AngleAxisModel, RadiusAxisModel } from '../../coord/polar/AxisModel.js';\nimport polarCreator from '../../coord/polar/polarCreator.js';\nimport AngleAxisView from '../axis/AngleAxisView.js';\nimport RadiusAxisView from '../axis/RadiusAxisView.js';\nimport ComponentView from '../../view/Component.js';\nimport { curry } from 'zrender/lib/core/util.js';\nimport barLayoutPolar from '../../layout/barPolar.js';\nvar angleAxisExtraOption = {\n  startAngle: 90,\n  clockwise: true,\n  splitNumber: 12,\n  axisLabel: {\n    rotate: 0\n  }\n};\nvar radiusAxisExtraOption = {\n  splitNumber: 5\n};\n\nvar PolarView =\n/** @class */\nfunction (_super) {\n  __extends(PolarView, _super);\n\n  function PolarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PolarView.type;\n    return _this;\n  }\n\n  PolarView.type = 'polar';\n  return PolarView;\n}(ComponentView);\n\nexport function install(registers) {\n  use(installAxisPointer);\n  AxisView.registerAxisPointerClass('PolarAxisPointer', PolarAxisPointer);\n  registers.registerCoordinateSystem('polar', polarCreator);\n  registers.registerComponentModel(PolarModel);\n  registers.registerComponentView(PolarView); // Model and view for angleAxis and radiusAxis\n\n  axisModelCreator(registers, 'angle', AngleAxisModel, angleAxisExtraOption);\n  axisModelCreator(registers, 'radius', RadiusAxisModel, radiusAxisExtraOption);\n  registers.registerComponentView(AngleAxisView);\n  registers.registerComponentView(RadiusAxisView);\n  registers.registerLayout(curry(barLayoutPolar, 'bar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport function layout(axisModel, opt) {\n  opt = opt || {};\n  var single = axisModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var axisPosition = axis.position;\n  var orient = axis.orient;\n  var rect = single.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var positionMap = {\n    horizontal: {\n      top: rectBound[2],\n      bottom: rectBound[3]\n    },\n    vertical: {\n      left: rectBound[0],\n      right: rectBound[1]\n    }\n  };\n  layout.position = [orient === 'vertical' ? positionMap.vertical[axisPosition] : rectBound[0], orient === 'horizontal' ? positionMap.horizontal[axisPosition] : rectBound[3]];\n  var r = {\n    horizontal: 0,\n    vertical: 1\n  };\n  layout.rotation = Math.PI / 2 * r[orient];\n  var directionMap = {\n    top: -1,\n    bottom: 1,\n    right: 1,\n    left: -1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = directionMap[axisPosition];\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotation = opt.rotate;\n  labelRotation == null && (labelRotation = axisModel.get(['axisLabel', 'rotate']));\n  layout.labelRotation = axisPosition === 'top' ? -labelRotation : labelRotation;\n  layout.z2 = 1;\n  return layout;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport AxisBuilder from './AxisBuilder.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper.js';\nimport AxisView from './AxisView.js';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper.js';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine'];\n\nvar SingleAxisView =\n/** @class */\nfunction (_super) {\n  __extends(SingleAxisView, _super);\n\n  function SingleAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleAxisView.type;\n    _this.axisPointerClass = 'SingleAxisPointer';\n    return _this;\n  }\n\n  SingleAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    var layout = singleAxisHelper.layout(axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, layout);\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n    group.add(this._axisGroup);\n    group.add(axisBuilder.getGroup());\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this.group, this._axisGroup, axisModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  SingleAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  SingleAxisView.type = 'singleAxis';\n  return SingleAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, group, axisGroup, axisModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var gridRect = axisModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var splitLines = [];\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n\n    for (var i = 0; i < ticksCoords.length; ++i) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Line({\n        subPixelOptimize: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        silent: true\n      }));\n    }\n\n    var lineStyle = lineStyleModel.getLineStyle(['color']);\n\n    for (var i = 0; i < splitLines.length; ++i) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  splitArea: function (axisView, group, axisGroup, axisModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, axisModel);\n  }\n};\nexport default SingleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin.js';\nimport { mixin } from 'zrender/lib/core/util.js';\n\nvar SingleAxisModel =\n/** @class */\nfunction (_super) {\n  __extends(SingleAxisModel, _super);\n\n  function SingleAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleAxisModel.type;\n    return _this;\n  }\n\n  SingleAxisModel.prototype.getCoordSysModel = function () {\n    return this;\n  };\n\n  SingleAxisModel.type = 'singleAxis';\n  SingleAxisModel.layoutMode = 'box';\n  SingleAxisModel.defaultOption = {\n    left: '5%',\n    top: '5%',\n    right: '5%',\n    bottom: '5%',\n    type: 'value',\n    position: 'bottom',\n    orient: 'horizontal',\n    axisLine: {\n      show: true,\n      lineStyle: {\n        width: 1,\n        type: 'solid'\n      }\n    },\n    // Single coordinate system and single axis is the,\n    // which is used as the parent tooltip model.\n    // same model, so we set default tooltip show as true.\n    tooltip: {\n      show: true\n    },\n    axisTick: {\n      show: true,\n      length: 6,\n      lineStyle: {\n        width: 1\n      }\n    },\n    axisLabel: {\n      show: true,\n      interval: 'auto'\n    },\n    splitLine: {\n      show: true,\n      lineStyle: {\n        type: 'dashed',\n        opacity: 0.2\n      }\n    }\n  };\n  return SingleAxisModel;\n}(ComponentModel);\n\nmixin(SingleAxisModel, AxisModelCommonMixin.prototype);\nexport default SingleAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis.js';\n\nvar SingleAxis =\n/** @class */\nfunction (_super) {\n  __extends(SingleAxis, _super);\n\n  function SingleAxis(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n  /**\n   * Judge the orient of the axis.\n   */\n\n\n  SingleAxis.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n\n  SingleAxis.prototype.pointToData = function (point, clamp) {\n    return this.coordinateSystem.pointToData(point)[0];\n  };\n\n  return SingleAxis;\n}(Axis);\n\nexport default SingleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Single coordinates system.\n */\nimport SingleAxis from './SingleAxis.js';\nimport * as axisHelper from '../axisHelper.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport { each } from 'zrender/lib/core/util.js';\nexport var singleDimensions = ['single'];\n/**\n * Create a single coordinates system.\n */\n\nvar Single =\n/** @class */\nfunction () {\n  function Single(axisModel, ecModel, api) {\n    this.type = 'single';\n    this.dimension = 'single';\n    /**\n     * Add it just for draw tooltip.\n     */\n\n    this.dimensions = singleDimensions;\n    this.axisPointerEnabled = true;\n    this.model = axisModel;\n\n    this._init(axisModel, ecModel, api);\n  }\n  /**\n   * Initialize single coordinate system.\n   */\n\n\n  Single.prototype._init = function (axisModel, ecModel, api) {\n    var dim = this.dimension;\n    var axis = new SingleAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position'));\n    var isCategory = axis.type === 'category';\n    axis.onBand = isCategory && axisModel.get('boundaryGap');\n    axis.inverse = axisModel.get('inverse');\n    axis.orient = axisModel.get('orient');\n    axisModel.axis = axis;\n    axis.model = axisModel;\n    axis.coordinateSystem = this;\n    this._axis = axis;\n  };\n  /**\n   * Update axis scale after data processed\n   */\n\n\n  Single.prototype.update = function (ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      if (seriesModel.coordinateSystem === this) {\n        var data_1 = seriesModel.getData();\n        each(data_1.mapDimensionsAll(this.dimension), function (dim) {\n          this._axis.scale.unionExtentFromData(data_1, dim);\n        }, this);\n        axisHelper.niceScaleExtent(this._axis.scale, this._axis.model);\n      }\n    }, this);\n  };\n  /**\n   * Resize the single coordinate system.\n   */\n\n\n  Single.prototype.resize = function (axisModel, api) {\n    this._rect = getLayoutRect({\n      left: axisModel.get('left'),\n      top: axisModel.get('top'),\n      right: axisModel.get('right'),\n      bottom: axisModel.get('bottom'),\n      width: axisModel.get('width'),\n      height: axisModel.get('height')\n    }, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n\n    this._adjustAxis();\n  };\n\n  Single.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Single.prototype._adjustAxis = function () {\n    var rect = this._rect;\n    var axis = this._axis;\n    var isHorizontal = axis.isHorizontal();\n    var extent = isHorizontal ? [0, rect.width] : [0, rect.height];\n    var idx = axis.reverse ? 1 : 0;\n    axis.setExtent(extent[idx], extent[1 - idx]);\n\n    this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y);\n  };\n\n  Single.prototype._updateAxisTransform = function (axis, coordBase) {\n    var axisExtent = axis.getExtent();\n    var extentSum = axisExtent[0] + axisExtent[1];\n    var isHorizontal = axis.isHorizontal();\n    axis.toGlobalCoord = isHorizontal ? function (coord) {\n      return coord + coordBase;\n    } : function (coord) {\n      return extentSum - coord + coordBase;\n    };\n    axis.toLocalCoord = isHorizontal ? function (coord) {\n      return coord - coordBase;\n    } : function (coord) {\n      return extentSum - coord + coordBase;\n    };\n  };\n  /**\n   * Get axis.\n   */\n\n\n  Single.prototype.getAxis = function () {\n    return this._axis;\n  };\n  /**\n   * Get axis, add it just for draw tooltip.\n   */\n\n\n  Single.prototype.getBaseAxis = function () {\n    return this._axis;\n  };\n\n  Single.prototype.getAxes = function () {\n    return [this._axis];\n  };\n\n  Single.prototype.getTooltipAxes = function () {\n    return {\n      baseAxes: [this.getAxis()],\n      // Empty otherAxes\n      otherAxes: []\n    };\n  };\n  /**\n   * If contain point.\n   */\n\n\n  Single.prototype.containPoint = function (point) {\n    var rect = this.getRect();\n    var axis = this.getAxis();\n    var orient = axis.orient;\n\n    if (orient === 'horizontal') {\n      return axis.contain(axis.toLocalCoord(point[0])) && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n    } else {\n      return axis.contain(axis.toLocalCoord(point[1])) && point[0] >= rect.y && point[0] <= rect.y + rect.height;\n    }\n  };\n\n  Single.prototype.pointToData = function (point) {\n    var axis = this.getAxis();\n    return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))];\n  };\n  /**\n   * Convert the series data to concrete point.\n   * Can be [val] | val\n   */\n\n\n  Single.prototype.dataToPoint = function (val) {\n    var axis = this.getAxis();\n    var rect = this.getRect();\n    var pt = [];\n    var idx = axis.orient === 'horizontal' ? 0 : 1;\n\n    if (val instanceof Array) {\n      val = val[0];\n    }\n\n    pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val));\n    pt[1 - idx] = idx === 0 ? rect.y + rect.height / 2 : rect.x + rect.width / 2;\n    return pt;\n  };\n\n  Single.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.dataToPoint(value) : null;\n  };\n\n  Single.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.pointToData(pixel) : null;\n  };\n\n  return Single;\n}();\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  var singleModel = finder.singleAxisModel;\n  return singleModel && singleModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Single;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Single coordinate system creator.\n */\nimport Single, { singleDimensions } from './Single.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\n/**\n * Create single coordinate system and inject it into seriesModel.\n */\n\nfunction create(ecModel, api) {\n  var singles = [];\n  ecModel.eachComponent('singleAxis', function (axisModel, idx) {\n    var single = new Single(axisModel, ecModel, api);\n    single.name = 'single_' + idx;\n    single.resize(axisModel, api);\n    axisModel.coordinateSystem = single;\n    singles.push(single);\n  });\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.get('coordinateSystem') === 'singleAxis') {\n      var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n      seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem;\n    }\n  });\n  return singles;\n}\n\nvar singleCreator = {\n  create: create,\n  dimensions: singleDimensions\n};\nexport default singleCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer.js';\nimport * as viewHelper from './viewHelper.js';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper.js';\nvar XY = ['x', 'y'];\nvar WH = ['width', 'height'];\n\nvar SingleAxisPointer =\n/** @class */\nfunction (_super) {\n  __extends(SingleAxisPointer, _super);\n\n  function SingleAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n  /**\n   * @override\n   */\n\n\n  SingleAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var coordSys = axis.coordinateSystem;\n    var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));\n    var pixelValue = coordSys.dataToPoint(value)[0];\n    var axisPointerType = axisPointerModel.get('type');\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = singleAxisHelper.layout(axisModel);\n    viewHelper.buildCartesianSingleLabelElOption( // @ts-ignore\n    value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  };\n  /**\n   * @override\n   */\n\n\n  SingleAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n    var layoutInfo = singleAxisHelper.layout(axisModel, {\n      labelInside: false\n    }); // @ts-ignore\n\n    layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n    var position = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n    return {\n      x: position[0],\n      y: position[1],\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  };\n  /**\n   * @override\n   */\n\n\n  SingleAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var coordSys = axis.coordinateSystem;\n    var dimIndex = getPointDimIndex(axis);\n    var axisExtent = getGlobalExtent(coordSys, dimIndex);\n    var currPosition = [transform.x, transform.y];\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex];\n    return {\n      x: currPosition[0],\n      y: currPosition[1],\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: {\n        verticalAlign: 'middle'\n      }\n    };\n  };\n\n  return SingleAxisPointer;\n}(BaseAxisPointer);\n\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));\n    return {\n      type: 'Line',\n      subPixelOptimize: true,\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent) {\n    var bandWidth = axis.getBandWidth();\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))\n    };\n  }\n};\n\nfunction getPointDimIndex(axis) {\n  return axis.isHorizontal() ? 0 : 1;\n}\n\nfunction getGlobalExtent(coordSys, dimIndex) {\n  var rect = coordSys.getRect();\n  return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];\n}\n\nexport default SingleAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension.js';\nimport ComponentView from '../../view/Component.js';\nimport SingleAxisView from '../axis/SingleAxisView.js';\nimport axisModelCreator from '../../coord/axisModelCreator.js';\nimport SingleAxisModel from '../../coord/single/AxisModel.js';\nimport singleCreator from '../../coord/single/singleCreator.js';\nimport { install as installAxisPointer } from '../axisPointer/install.js';\nimport AxisView from '../axis/AxisView.js';\nimport SingleAxisPointer from '../axisPointer/SingleAxisPointer.js';\n\nvar SingleView =\n/** @class */\nfunction (_super) {\n  __extends(SingleView, _super);\n\n  function SingleView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleView.type;\n    return _this;\n  }\n\n  SingleView.type = 'single';\n  return SingleView;\n}(ComponentView);\n\nexport function install(registers) {\n  use(installAxisPointer);\n  AxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer);\n  registers.registerComponentView(SingleView); // Axis\n\n  registers.registerComponentView(SingleAxisView);\n  registers.registerComponentModel(SingleAxisModel);\n  axisModelCreator(registers, 'single', SingleAxisModel, SingleAxisModel.defaultOption);\n  registers.registerCoordinateSystem('single', singleCreator);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nimport { getLayoutParams, sizeCalculable, mergeLayoutParam } from '../../util/layout.js';\n\nvar CalendarModel =\n/** @class */\nfunction (_super) {\n  __extends(CalendarModel, _super);\n\n  function CalendarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CalendarModel.type;\n    return _this;\n  }\n  /**\n   * @override\n   */\n\n\n  CalendarModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputPositionParams = getLayoutParams(option);\n\n    _super.prototype.init.apply(this, arguments);\n\n    mergeAndNormalizeLayoutParams(option, inputPositionParams);\n  };\n  /**\n   * @override\n   */\n\n\n  CalendarModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    mergeAndNormalizeLayoutParams(this.option, option);\n  };\n\n  CalendarModel.prototype.getCellSize = function () {\n    // Has been normalized\n    return this.option.cellSize;\n  };\n\n  CalendarModel.type = 'calendar';\n  CalendarModel.defaultOption = {\n    // zlevel: 0,\n    z: 2,\n    left: 80,\n    top: 60,\n    cellSize: 20,\n    // horizontal vertical\n    orient: 'horizontal',\n    // month separate line style\n    splitLine: {\n      show: true,\n      lineStyle: {\n        color: '#000',\n        width: 1,\n        type: 'solid'\n      }\n    },\n    // rect style  temporarily unused emphasis\n    itemStyle: {\n      color: '#fff',\n      borderWidth: 1,\n      borderColor: '#ccc'\n    },\n    // week text style\n    dayLabel: {\n      show: true,\n      firstDay: 0,\n      // start end\n      position: 'start',\n      margin: '50%',\n      color: '#000'\n    },\n    // month text style\n    monthLabel: {\n      show: true,\n      // start end\n      position: 'start',\n      margin: 5,\n      // center or left\n      align: 'center',\n      formatter: null,\n      color: '#000'\n    },\n    // year text style\n    yearLabel: {\n      show: true,\n      // top bottom left right\n      position: null,\n      margin: 30,\n      formatter: null,\n      color: '#ccc',\n      fontFamily: 'sans-serif',\n      fontWeight: 'bolder',\n      fontSize: 20\n    }\n  };\n  return CalendarModel;\n}(ComponentModel);\n\nfunction mergeAndNormalizeLayoutParams(target, raw) {\n  // Normalize cellSize\n  var cellSize = target.cellSize;\n  var cellSizeArr;\n\n  if (!zrUtil.isArray(cellSize)) {\n    cellSizeArr = target.cellSize = [cellSize, cellSize];\n  } else {\n    cellSizeArr = cellSize;\n  }\n\n  if (cellSizeArr.length === 1) {\n    cellSizeArr[1] = cellSizeArr[0];\n  }\n\n  var ignoreSize = zrUtil.map([0, 1], function (hvIdx) {\n    // If user have set `width` or both `left` and `right`, cellSizeArr\n    // will be automatically set to 'auto', otherwise the default\n    // setting of cellSizeArr will make `width` setting not work.\n    if (sizeCalculable(raw, hvIdx)) {\n      cellSizeArr[hvIdx] = 'auto';\n    }\n\n    return cellSizeArr[hvIdx] != null && cellSizeArr[hvIdx] !== 'auto';\n  });\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: ignoreSize\n  });\n}\n\nexport default CalendarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { isString, extend, map, isFunction } from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport { formatTplSimple } from '../../util/format.js';\nimport { parsePercent } from '../../util/number.js';\nimport ComponentView from '../../view/Component.js';\nimport { getLocaleModel } from '../../core/locale.js';\n\nvar CalendarView =\n/** @class */\nfunction (_super) {\n  __extends(CalendarView, _super);\n\n  function CalendarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CalendarView.type;\n    return _this;\n  }\n\n  CalendarView.prototype.render = function (calendarModel, ecModel, api) {\n    var group = this.group;\n    group.removeAll();\n    var coordSys = calendarModel.coordinateSystem; // range info\n\n    var rangeData = coordSys.getRangeInfo();\n    var orient = coordSys.getOrient(); // locale\n\n    var localeModel = ecModel.getLocaleModel();\n\n    this._renderDayRect(calendarModel, rangeData, group); // _renderLines must be called prior to following function\n\n\n    this._renderLines(calendarModel, rangeData, orient, group);\n\n    this._renderYearText(calendarModel, rangeData, orient, group);\n\n    this._renderMonthText(calendarModel, localeModel, orient, group);\n\n    this._renderWeekText(calendarModel, localeModel, rangeData, orient, group);\n  }; // render day rect\n\n\n  CalendarView.prototype._renderDayRect = function (calendarModel, rangeData, group) {\n    var coordSys = calendarModel.coordinateSystem;\n    var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\n    var sw = coordSys.getCellWidth();\n    var sh = coordSys.getCellHeight();\n\n    for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\n      var point = coordSys.dataToRect([i], false).tl; // every rect\n\n      var rect = new graphic.Rect({\n        shape: {\n          x: point[0],\n          y: point[1],\n          width: sw,\n          height: sh\n        },\n        cursor: 'default',\n        style: itemRectStyleModel\n      });\n      group.add(rect);\n    }\n  }; // render separate line\n\n\n  CalendarView.prototype._renderLines = function (calendarModel, rangeData, orient, group) {\n    var self = this;\n    var coordSys = calendarModel.coordinateSystem;\n    var lineStyleModel = calendarModel.getModel(['splitLine', 'lineStyle']).getLineStyle();\n    var show = calendarModel.get(['splitLine', 'show']);\n    var lineWidth = lineStyleModel.lineWidth;\n    this._tlpoints = [];\n    this._blpoints = [];\n    this._firstDayOfMonth = [];\n    this._firstDayPoints = [];\n    var firstDay = rangeData.start;\n\n    for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\n      addPoints(firstDay.formatedDate);\n\n      if (i === 0) {\n        firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\n      }\n\n      var date = firstDay.date;\n      date.setMonth(date.getMonth() + 1);\n      firstDay = coordSys.getDateInfo(date);\n    }\n\n    addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\n\n    function addPoints(date) {\n      self._firstDayOfMonth.push(coordSys.getDateInfo(date));\n\n      self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\n\n      var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\n\n      self._tlpoints.push(points[0]);\n\n      self._blpoints.push(points[points.length - 1]);\n\n      show && self._drawSplitline(points, lineStyleModel, group);\n    } // render top/left line\n\n\n    show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group); // render bottom/right line\n\n    show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\n  }; // get points at both ends\n\n\n  CalendarView.prototype._getEdgesPoints = function (points, lineWidth, orient) {\n    var rs = [points[0].slice(), points[points.length - 1].slice()];\n    var idx = orient === 'horizontal' ? 0 : 1; // both ends of the line are extend half lineWidth\n\n    rs[0][idx] = rs[0][idx] - lineWidth / 2;\n    rs[1][idx] = rs[1][idx] + lineWidth / 2;\n    return rs;\n  }; // render split line\n\n\n  CalendarView.prototype._drawSplitline = function (points, lineStyle, group) {\n    var poyline = new graphic.Polyline({\n      z2: 20,\n      shape: {\n        points: points\n      },\n      style: lineStyle\n    });\n    group.add(poyline);\n  }; // render month line of one week points\n\n\n  CalendarView.prototype._getLinePointsOfOneWeek = function (calendarModel, date, orient) {\n    var coordSys = calendarModel.coordinateSystem;\n    var parsedDate = coordSys.getDateInfo(date);\n    var points = [];\n\n    for (var i = 0; i < 7; i++) {\n      var tmpD = coordSys.getNextNDay(parsedDate.time, i);\n      var point = coordSys.dataToRect([tmpD.time], false);\n      points[2 * tmpD.day] = point.tl;\n      points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\n    }\n\n    return points;\n  };\n\n  CalendarView.prototype._formatterLabel = function (formatter, params) {\n    if (isString(formatter) && formatter) {\n      return formatTplSimple(formatter, params);\n    }\n\n    if (isFunction(formatter)) {\n      return formatter(params);\n    }\n\n    return params.nameMap;\n  };\n\n  CalendarView.prototype._yearTextPositionControl = function (textEl, point, orient, position, margin) {\n    var x = point[0];\n    var y = point[1];\n    var aligns = ['center', 'bottom'];\n\n    if (position === 'bottom') {\n      y += margin;\n      aligns = ['center', 'top'];\n    } else if (position === 'left') {\n      x -= margin;\n    } else if (position === 'right') {\n      x += margin;\n      aligns = ['center', 'top'];\n    } else {\n      // top\n      y -= margin;\n    }\n\n    var rotate = 0;\n\n    if (position === 'left' || position === 'right') {\n      rotate = Math.PI / 2;\n    }\n\n    return {\n      rotation: rotate,\n      x: x,\n      y: y,\n      style: {\n        align: aligns[0],\n        verticalAlign: aligns[1]\n      }\n    };\n  }; // render year\n\n\n  CalendarView.prototype._renderYearText = function (calendarModel, rangeData, orient, group) {\n    var yearLabel = calendarModel.getModel('yearLabel');\n\n    if (!yearLabel.get('show')) {\n      return;\n    }\n\n    var margin = yearLabel.get('margin');\n    var pos = yearLabel.get('position');\n\n    if (!pos) {\n      pos = orient !== 'horizontal' ? 'top' : 'left';\n    }\n\n    var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\n    var xc = (points[0][0] + points[1][0]) / 2;\n    var yc = (points[0][1] + points[1][1]) / 2;\n    var idx = orient === 'horizontal' ? 0 : 1;\n    var posPoints = {\n      top: [xc, points[idx][1]],\n      bottom: [xc, points[1 - idx][1]],\n      left: [points[1 - idx][0], yc],\n      right: [points[idx][0], yc]\n    };\n    var name = rangeData.start.y;\n\n    if (+rangeData.end.y > +rangeData.start.y) {\n      name = name + '-' + rangeData.end.y;\n    }\n\n    var formatter = yearLabel.get('formatter');\n    var params = {\n      start: rangeData.start.y,\n      end: rangeData.end.y,\n      nameMap: name\n    };\n\n    var content = this._formatterLabel(formatter, params);\n\n    var yearText = new graphic.Text({\n      z2: 30,\n      style: createTextStyle(yearLabel, {\n        text: content\n      })\n    });\n    yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\n    group.add(yearText);\n  };\n\n  CalendarView.prototype._monthTextPositionControl = function (point, isCenter, orient, position, margin) {\n    var align = 'left';\n    var vAlign = 'top';\n    var x = point[0];\n    var y = point[1];\n\n    if (orient === 'horizontal') {\n      y = y + margin;\n\n      if (isCenter) {\n        align = 'center';\n      }\n\n      if (position === 'start') {\n        vAlign = 'bottom';\n      }\n    } else {\n      x = x + margin;\n\n      if (isCenter) {\n        vAlign = 'middle';\n      }\n\n      if (position === 'start') {\n        align = 'right';\n      }\n    }\n\n    return {\n      x: x,\n      y: y,\n      align: align,\n      verticalAlign: vAlign\n    };\n  }; // render month and year text\n\n\n  CalendarView.prototype._renderMonthText = function (calendarModel, localeModel, orient, group) {\n    var monthLabel = calendarModel.getModel('monthLabel');\n\n    if (!monthLabel.get('show')) {\n      return;\n    }\n\n    var nameMap = monthLabel.get('nameMap');\n    var margin = monthLabel.get('margin');\n    var pos = monthLabel.get('position');\n    var align = monthLabel.get('align');\n    var termPoints = [this._tlpoints, this._blpoints];\n\n    if (!nameMap || isString(nameMap)) {\n      if (nameMap) {\n        // case-sensitive\n        localeModel = getLocaleModel(nameMap) || localeModel;\n      } // PENDING\n      // for ZH locale, original form is `一月` but current form is `1月`\n\n\n      nameMap = localeModel.get(['time', 'monthAbbr']) || [];\n    }\n\n    var idx = pos === 'start' ? 0 : 1;\n    var axis = orient === 'horizontal' ? 0 : 1;\n    margin = pos === 'start' ? -margin : margin;\n    var isCenter = align === 'center';\n\n    for (var i = 0; i < termPoints[idx].length - 1; i++) {\n      var tmp = termPoints[idx][i].slice();\n      var firstDay = this._firstDayOfMonth[i];\n\n      if (isCenter) {\n        var firstDayPoints = this._firstDayPoints[i];\n        tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\n      }\n\n      var formatter = monthLabel.get('formatter');\n      var name_1 = nameMap[+firstDay.m - 1];\n      var params = {\n        yyyy: firstDay.y,\n        yy: (firstDay.y + '').slice(2),\n        MM: firstDay.m,\n        M: +firstDay.m,\n        nameMap: name_1\n      };\n\n      var content = this._formatterLabel(formatter, params);\n\n      var monthText = new graphic.Text({\n        z2: 30,\n        style: extend(createTextStyle(monthLabel, {\n          text: content\n        }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin))\n      });\n      group.add(monthText);\n    }\n  };\n\n  CalendarView.prototype._weekTextPositionControl = function (point, orient, position, margin, cellSize) {\n    var align = 'center';\n    var vAlign = 'middle';\n    var x = point[0];\n    var y = point[1];\n    var isStart = position === 'start';\n\n    if (orient === 'horizontal') {\n      x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\n      align = isStart ? 'right' : 'left';\n    } else {\n      y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\n      vAlign = isStart ? 'bottom' : 'top';\n    }\n\n    return {\n      x: x,\n      y: y,\n      align: align,\n      verticalAlign: vAlign\n    };\n  }; // render weeks\n\n\n  CalendarView.prototype._renderWeekText = function (calendarModel, localeModel, rangeData, orient, group) {\n    var dayLabel = calendarModel.getModel('dayLabel');\n\n    if (!dayLabel.get('show')) {\n      return;\n    }\n\n    var coordSys = calendarModel.coordinateSystem;\n    var pos = dayLabel.get('position');\n    var nameMap = dayLabel.get('nameMap');\n    var margin = dayLabel.get('margin');\n    var firstDayOfWeek = coordSys.getFirstDayOfWeek();\n\n    if (!nameMap || isString(nameMap)) {\n      if (nameMap) {\n        // case-sensitive\n        localeModel = getLocaleModel(nameMap) || localeModel;\n      } // Use the first letter of `dayOfWeekAbbr` if `dayOfWeekShort` doesn't exist in the locale file\n\n\n      var dayOfWeekShort = localeModel.get(['time', 'dayOfWeekShort']);\n      nameMap = dayOfWeekShort || map(localeModel.get(['time', 'dayOfWeekAbbr']), function (val) {\n        return val[0];\n      });\n    }\n\n    var start = coordSys.getNextNDay(rangeData.end.time, 7 - rangeData.lweek).time;\n    var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\n    margin = parsePercent(margin, Math.min(cellSize[1], cellSize[0]));\n\n    if (pos === 'start') {\n      start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\n      margin = -margin;\n    }\n\n    for (var i = 0; i < 7; i++) {\n      var tmpD = coordSys.getNextNDay(start, i);\n      var point = coordSys.dataToRect([tmpD.time], false).center;\n      var day = i;\n      day = Math.abs((i + firstDayOfWeek) % 7);\n      var weekText = new graphic.Text({\n        z2: 30,\n        style: extend(createTextStyle(dayLabel, {\n          text: nameMap[day]\n        }), this._weekTextPositionControl(point, orient, pos, margin, cellSize))\n      });\n      group.add(weekText);\n    }\n  };\n\n  CalendarView.type = 'calendar';\n  return CalendarView;\n}(ComponentView);\n\nexport default CalendarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as layout from '../../util/layout.js';\nimport * as numberUtil from '../../util/number.js'; // (24*60*60*1000)\n\nvar PROXIMATE_ONE_DAY = 86400000;\n\nvar Calendar =\n/** @class */\nfunction () {\n  function Calendar(calendarModel, ecModel, api) {\n    this.type = 'calendar';\n    this.dimensions = Calendar.dimensions; // Required in createListFromData\n\n    this.getDimensionsInfo = Calendar.getDimensionsInfo;\n    this._model = calendarModel;\n  }\n\n  Calendar.getDimensionsInfo = function () {\n    return [{\n      name: 'time',\n      type: 'time'\n    }, 'value'];\n  };\n\n  Calendar.prototype.getRangeInfo = function () {\n    return this._rangeInfo;\n  };\n\n  Calendar.prototype.getModel = function () {\n    return this._model;\n  };\n\n  Calendar.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Calendar.prototype.getCellWidth = function () {\n    return this._sw;\n  };\n\n  Calendar.prototype.getCellHeight = function () {\n    return this._sh;\n  };\n\n  Calendar.prototype.getOrient = function () {\n    return this._orient;\n  };\n  /**\n   * getFirstDayOfWeek\n   *\n   * @example\n   *     0 : start at Sunday\n   *     1 : start at Monday\n   *\n   * @return {number}\n   */\n\n\n  Calendar.prototype.getFirstDayOfWeek = function () {\n    return this._firstDayOfWeek;\n  };\n  /**\n   * get date info\n   * }\n   */\n\n\n  Calendar.prototype.getDateInfo = function (date) {\n    date = numberUtil.parseDate(date);\n    var y = date.getFullYear();\n    var m = date.getMonth() + 1;\n    var mStr = m < 10 ? '0' + m : '' + m;\n    var d = date.getDate();\n    var dStr = d < 10 ? '0' + d : '' + d;\n    var day = date.getDay();\n    day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\n    return {\n      y: y + '',\n      m: mStr,\n      d: dStr,\n      day: day,\n      time: date.getTime(),\n      formatedDate: y + '-' + mStr + '-' + dStr,\n      date: date\n    };\n  };\n\n  Calendar.prototype.getNextNDay = function (date, n) {\n    n = n || 0;\n\n    if (n === 0) {\n      return this.getDateInfo(date);\n    }\n\n    date = new Date(this.getDateInfo(date).time);\n    date.setDate(date.getDate() + n);\n    return this.getDateInfo(date);\n  };\n\n  Calendar.prototype.update = function (ecModel, api) {\n    this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\n    this._orient = this._model.get('orient');\n    this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\n    this._rangeInfo = this._getRangeInfo(this._initRangeOption());\n    var weeks = this._rangeInfo.weeks || 1;\n    var whNames = ['width', 'height'];\n\n    var cellSize = this._model.getCellSize().slice();\n\n    var layoutParams = this._model.getBoxLayoutParams();\n\n    var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\n    zrUtil.each([0, 1], function (idx) {\n      if (cellSizeSpecified(cellSize, idx)) {\n        layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\n      }\n    });\n    var whGlobal = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var calendarRect = this._rect = layout.getLayoutRect(layoutParams, whGlobal);\n    zrUtil.each([0, 1], function (idx) {\n      if (!cellSizeSpecified(cellSize, idx)) {\n        cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\n      }\n    });\n\n    function cellSizeSpecified(cellSize, idx) {\n      return cellSize[idx] != null && cellSize[idx] !== 'auto';\n    } // Has been calculated out number.\n\n\n    this._sw = cellSize[0];\n    this._sh = cellSize[1];\n  };\n  /**\n   * Convert a time data(time, value) item to (x, y) point.\n   */\n  // TODO Clamp of calendar is not same with cartesian coordinate systems.\n  // It will return NaN if data exceeds.\n\n\n  Calendar.prototype.dataToPoint = function (data, clamp) {\n    zrUtil.isArray(data) && (data = data[0]);\n    clamp == null && (clamp = true);\n    var dayInfo = this.getDateInfo(data);\n    var range = this._rangeInfo;\n    var date = dayInfo.formatedDate; // if not in range return [NaN, NaN]\n\n    if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\n      return [NaN, NaN];\n    }\n\n    var week = dayInfo.day;\n\n    var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\n\n    if (this._orient === 'vertical') {\n      return [this._rect.x + week * this._sw + this._sw / 2, this._rect.y + nthWeek * this._sh + this._sh / 2];\n    }\n\n    return [this._rect.x + nthWeek * this._sw + this._sw / 2, this._rect.y + week * this._sh + this._sh / 2];\n  };\n  /**\n   * Convert a (x, y) point to time data\n   */\n\n\n  Calendar.prototype.pointToData = function (point) {\n    var date = this.pointToDate(point);\n    return date && date.time;\n  };\n  /**\n   * Convert a time date item to (x, y) four point.\n   */\n\n\n  Calendar.prototype.dataToRect = function (data, clamp) {\n    var point = this.dataToPoint(data, clamp);\n    return {\n      contentShape: {\n        x: point[0] - (this._sw - this._lineWidth) / 2,\n        y: point[1] - (this._sh - this._lineWidth) / 2,\n        width: this._sw - this._lineWidth,\n        height: this._sh - this._lineWidth\n      },\n      center: point,\n      tl: [point[0] - this._sw / 2, point[1] - this._sh / 2],\n      tr: [point[0] + this._sw / 2, point[1] - this._sh / 2],\n      br: [point[0] + this._sw / 2, point[1] + this._sh / 2],\n      bl: [point[0] - this._sw / 2, point[1] + this._sh / 2]\n    };\n  };\n  /**\n   * Convert a (x, y) point to time date\n   *\n   * @param  {Array} point point\n   * @return {Object}       date\n   */\n\n\n  Calendar.prototype.pointToDate = function (point) {\n    var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\n    var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\n    var range = this._rangeInfo.range;\n\n    if (this._orient === 'vertical') {\n      return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\n    }\n\n    return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\n  };\n\n  Calendar.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  Calendar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  Calendar.prototype.containPoint = function (point) {\n    console.warn('Not implemented.');\n    return false;\n  };\n  /**\n   * initRange\n   * Normalize to an [start, end] array\n   */\n\n\n  Calendar.prototype._initRangeOption = function () {\n    var range = this._model.get('range');\n\n    var normalizedRange; // Convert [1990] to 1990\n\n    if (zrUtil.isArray(range) && range.length === 1) {\n      range = range[0];\n    }\n\n    if (!zrUtil.isArray(range)) {\n      var rangeStr = range.toString(); // One year.\n\n      if (/^\\d{4}$/.test(rangeStr)) {\n        normalizedRange = [rangeStr + '-01-01', rangeStr + '-12-31'];\n      } // One month\n\n\n      if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n        var start = this.getDateInfo(rangeStr);\n        var firstDay = start.date;\n        firstDay.setMonth(firstDay.getMonth() + 1);\n        var end = this.getNextNDay(firstDay, -1);\n        normalizedRange = [start.formatedDate, end.formatedDate];\n      } // One day\n\n\n      if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n        normalizedRange = [rangeStr, rangeStr];\n      }\n    } else {\n      normalizedRange = range;\n    }\n\n    if (!normalizedRange) {\n      if (process.env.NODE_ENV !== 'production') {\n        zrUtil.logError('Invalid date range.');\n      } // Not handling it.\n\n\n      return range;\n    }\n\n    var tmp = this._getRangeInfo(normalizedRange);\n\n    if (tmp.start.time > tmp.end.time) {\n      normalizedRange.reverse();\n    }\n\n    return normalizedRange;\n  };\n  /**\n   * range info\n   *\n   * @private\n   * @param  {Array} range range ['2017-01-01', '2017-07-08']\n   *  If range[0] > range[1], they will not be reversed.\n   * @return {Object}       obj\n   */\n\n\n  Calendar.prototype._getRangeInfo = function (range) {\n    var parsedRange = [this.getDateInfo(range[0]), this.getDateInfo(range[1])];\n    var reversed;\n\n    if (parsedRange[0].time > parsedRange[1].time) {\n      reversed = true;\n      parsedRange.reverse();\n    }\n\n    var allDay = Math.floor(parsedRange[1].time / PROXIMATE_ONE_DAY) - Math.floor(parsedRange[0].time / PROXIMATE_ONE_DAY) + 1; // Consider case1 (#11677 #10430):\n    // Set the system timezone as \"UK\", set the range to `['2016-07-01', '2016-12-31']`\n    // Consider case2:\n    // Firstly set system timezone as \"Time Zone: America/Toronto\",\n    // ```\n    // let first = new Date(1478412000000 - 3600 * 1000 * 2.5);\n    // let second = new Date(1478412000000);\n    // let allDays = Math.floor(second / ONE_DAY) - Math.floor(first / ONE_DAY) + 1;\n    // ```\n    // will get wrong result because of DST. So we should fix it.\n\n    var date = new Date(parsedRange[0].time);\n    var startDateNum = date.getDate();\n    var endDateNum = parsedRange[1].date.getDate();\n    date.setDate(startDateNum + allDay - 1); // The bias can not over a month, so just compare date.\n\n    var dateNum = date.getDate();\n\n    if (dateNum !== endDateNum) {\n      var sign = date.getTime() - parsedRange[1].time > 0 ? 1 : -1;\n\n      while ((dateNum = date.getDate()) !== endDateNum && (date.getTime() - parsedRange[1].time) * sign > 0) {\n        allDay -= sign;\n        date.setDate(dateNum - sign);\n      }\n    }\n\n    var weeks = Math.floor((allDay + parsedRange[0].day + 6) / 7);\n    var nthWeek = reversed ? -weeks + 1 : weeks - 1;\n    reversed && parsedRange.reverse();\n    return {\n      range: [parsedRange[0].formatedDate, parsedRange[1].formatedDate],\n      start: parsedRange[0],\n      end: parsedRange[1],\n      allDay: allDay,\n      weeks: weeks,\n      // From 0.\n      nthWeek: nthWeek,\n      fweek: parsedRange[0].day,\n      lweek: parsedRange[1].day\n    };\n  };\n  /**\n   * get date by nthWeeks and week day in range\n   *\n   * @private\n   * @param  {number} nthWeek the week\n   * @param  {number} day   the week day\n   * @param  {Array} range [d1, d2]\n   * @return {Object}\n   */\n\n\n  Calendar.prototype._getDateByWeeksAndDay = function (nthWeek, day, range) {\n    var rangeInfo = this._getRangeInfo(range);\n\n    if (nthWeek > rangeInfo.weeks || nthWeek === 0 && day < rangeInfo.fweek || nthWeek === rangeInfo.weeks && day > rangeInfo.lweek) {\n      return null;\n    }\n\n    var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\n    var date = new Date(rangeInfo.start.time);\n    date.setDate(+rangeInfo.start.d + nthDay);\n    return this.getDateInfo(date);\n  };\n\n  Calendar.create = function (ecModel, api) {\n    var calendarList = [];\n    ecModel.eachComponent('calendar', function (calendarModel) {\n      var calendar = new Calendar(calendarModel, ecModel, api);\n      calendarList.push(calendar);\n      calendarModel.coordinateSystem = calendar;\n    });\n    ecModel.eachSeries(function (calendarSeries) {\n      if (calendarSeries.get('coordinateSystem') === 'calendar') {\n        // Inject coordinate system\n        calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\n      }\n    });\n    return calendarList;\n  };\n\n  Calendar.dimensions = ['time', 'value'];\n  return Calendar;\n}();\n\nfunction getCoordSys(finder) {\n  var calendarModel = finder.calendarModel;\n  var seriesModel = finder.seriesModel;\n  var coordSys = calendarModel ? calendarModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem : null;\n  return coordSys;\n}\n\nexport default Calendar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport CalendarModel from '../../coord/calendar/CalendarModel.js';\nimport CalendarView from './CalendarView.js';\nimport Calendar from '../../coord/calendar/Calendar.js';\nexport function install(registers) {\n  registers.registerComponentModel(CalendarModel);\n  registers.registerComponentView(CalendarView);\n  registers.registerCoordinateSystem('calendar', Calendar);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as modelUtil from '../../util/model.js';\nimport ComponentModel from '../../model/Component.js';\nimport { copyLayoutParams, mergeLayoutParam } from '../../util/layout.js';\n;\n;\n;\nexport function setKeyInfoToNewElOption(resultItem, newElOption) {\n  var existElOption = resultItem.existing; // Set id and type after id assigned.\n\n  newElOption.id = resultItem.keyInfo.id;\n  !newElOption.type && existElOption && (newElOption.type = existElOption.type); // Set parent id if not specified\n\n  if (newElOption.parentId == null) {\n    var newElParentOption = newElOption.parentOption;\n\n    if (newElParentOption) {\n      newElOption.parentId = newElParentOption.id;\n    } else if (existElOption) {\n      newElOption.parentId = existElOption.parentId;\n    }\n  } // Clear\n\n\n  newElOption.parentOption = null;\n}\n\nfunction isSetLoc(obj, props) {\n  var isSet;\n  zrUtil.each(props, function (prop) {\n    obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\n  });\n  return isSet;\n}\n\nfunction mergeNewElOptionToExist(existList, index, newElOption) {\n  // Update existing options, for `getOption` feature.\n  var newElOptCopy = zrUtil.extend({}, newElOption);\n  var existElOption = existList[index];\n  var $action = newElOption.$action || 'merge';\n\n  if ($action === 'merge') {\n    if (existElOption) {\n      if (process.env.NODE_ENV !== 'production') {\n        var newType = newElOption.type;\n        zrUtil.assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\n      } // We can ensure that newElOptCopy and existElOption are not\n      // the same object, so `merge` will not change newElOptCopy.\n\n\n      zrUtil.merge(existElOption, newElOptCopy, true); // Rigid body, use ignoreSize.\n\n      mergeLayoutParam(existElOption, newElOptCopy, {\n        ignoreSize: true\n      }); // Will be used in render.\n\n      copyLayoutParams(newElOption, existElOption); // Copy transition info to new option so it can be used in the transition.\n      // DO IT AFTER merge\n\n      copyTransitionInfo(newElOption, existElOption);\n      copyTransitionInfo(newElOption, existElOption, 'shape');\n      copyTransitionInfo(newElOption, existElOption, 'style');\n      copyTransitionInfo(newElOption, existElOption, 'extra'); // Copy clipPath\n\n      newElOption.clipPath = existElOption.clipPath;\n    } else {\n      existList[index] = newElOptCopy;\n    }\n  } else if ($action === 'replace') {\n    existList[index] = newElOptCopy;\n  } else if ($action === 'remove') {\n    // null will be cleaned later.\n    existElOption && (existList[index] = null);\n  }\n}\n\nvar TRANSITION_PROPS_TO_COPY = ['transition', 'enterFrom', 'leaveTo'];\nvar ROOT_TRANSITION_PROPS_TO_COPY = TRANSITION_PROPS_TO_COPY.concat(['enterAnimation', 'updateAnimation', 'leaveAnimation']);\n\nfunction copyTransitionInfo(target, source, targetProp) {\n  if (targetProp) {\n    if (!target[targetProp] && source[targetProp]) {\n      // TODO avoid creating this empty object when there is no transition configuration.\n      target[targetProp] = {};\n    }\n\n    target = target[targetProp];\n    source = source[targetProp];\n  }\n\n  if (!target || !source) {\n    return;\n  }\n\n  var props = targetProp ? TRANSITION_PROPS_TO_COPY : ROOT_TRANSITION_PROPS_TO_COPY;\n\n  for (var i = 0; i < props.length; i++) {\n    var prop = props[i];\n\n    if (target[prop] == null && source[prop] != null) {\n      target[prop] = source[prop];\n    }\n  }\n}\n\nfunction setLayoutInfoToExist(existItem, newElOption) {\n  if (!existItem) {\n    return;\n  }\n\n  existItem.hv = newElOption.hv = [// Rigid body, dont care `width`.\n  isSetLoc(newElOption, ['left', 'right']), // Rigid body, dont care `height`.\n  isSetLoc(newElOption, ['top', 'bottom'])]; // Give default group size. Otherwise layout error may occur.\n\n  if (existItem.type === 'group') {\n    var existingGroupOpt = existItem;\n    var newGroupOpt = newElOption;\n    existingGroupOpt.width == null && (existingGroupOpt.width = newGroupOpt.width = 0);\n    existingGroupOpt.height == null && (existingGroupOpt.height = newGroupOpt.height = 0);\n  }\n}\n\nvar GraphicComponentModel =\n/** @class */\nfunction (_super) {\n  __extends(GraphicComponentModel, _super);\n\n  function GraphicComponentModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentModel.type;\n    _this.preventAutoZ = true;\n    return _this;\n  }\n\n  GraphicComponentModel.prototype.mergeOption = function (option, ecModel) {\n    // Prevent default merge to elements\n    var elements = this.option.elements;\n    this.option.elements = null;\n\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this.option.elements = elements;\n  };\n\n  GraphicComponentModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n    var newList = (isInit ? thisOption : newOption).elements;\n    var existList = thisOption.elements = isInit ? [] : thisOption.elements;\n    var flattenedList = [];\n\n    this._flatten(newList, flattenedList, null);\n\n    var mappingResult = modelUtil.mappingToExists(existList, flattenedList, 'normalMerge'); // Clear elOptionsToUpdate\n\n    var elOptionsToUpdate = this._elOptionsToUpdate = [];\n    zrUtil.each(mappingResult, function (resultItem, index) {\n      var newElOption = resultItem.newOption;\n\n      if (process.env.NODE_ENV !== 'production') {\n        zrUtil.assert(zrUtil.isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\n      }\n\n      if (!newElOption) {\n        return;\n      }\n\n      elOptionsToUpdate.push(newElOption);\n      setKeyInfoToNewElOption(resultItem, newElOption);\n      mergeNewElOptionToExist(existList, index, newElOption);\n      setLayoutInfoToExist(existList[index], newElOption);\n    }, this); // Clean\n\n    thisOption.elements = zrUtil.filter(existList, function (item) {\n      // $action should be volatile, otherwise option gotten from\n      // `getOption` will contain unexpected $action.\n      item && delete item.$action;\n      return item != null;\n    });\n  };\n  /**\n   * Convert\n   * [{\n   *  type: 'group',\n   *  id: 'xx',\n   *  children: [{type: 'circle'}, {type: 'polygon'}]\n   * }]\n   * to\n   * [\n   *  {type: 'group', id: 'xx'},\n   *  {type: 'circle', parentId: 'xx'},\n   *  {type: 'polygon', parentId: 'xx'}\n   * ]\n   */\n\n\n  GraphicComponentModel.prototype._flatten = function (optionList, result, parentOption) {\n    zrUtil.each(optionList, function (option) {\n      if (!option) {\n        return;\n      }\n\n      if (parentOption) {\n        option.parentOption = parentOption;\n      }\n\n      result.push(option);\n      var children = option.children; // here we don't judge if option.type is `group`\n      // when new option doesn't provide `type`, it will cause that the children can't be updated.\n\n      if (children && children.length) {\n        this._flatten(children, result, option);\n      } // Deleting for JSON output, and for not affecting group creation.\n\n\n      delete option.children;\n    }, this);\n  }; // FIXME\n  // Pass to view using payload? setOption has a payload?\n\n\n  GraphicComponentModel.prototype.useElOptionsToUpdate = function () {\n    var els = this._elOptionsToUpdate; // Clear to avoid render duplicately when zooming.\n\n    this._elOptionsToUpdate = null;\n    return els;\n  };\n\n  GraphicComponentModel.type = 'graphic';\n  GraphicComponentModel.defaultOption = {\n    elements: [] // parentId: null\n\n  };\n  return GraphicComponentModel;\n}(ComponentModel);\n\nexport { GraphicComponentModel };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Displayable from 'zrender/lib/graphic/Displayable.js';\nimport * as modelUtil from '../../util/model.js';\nimport * as graphicUtil from '../../util/graphic.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport { parsePercent } from '../../util/number.js';\nimport ComponentView from '../../view/Component.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { isEC4CompatibleStyle, convertFromEC4CompatibleStyle } from '../../util/styleCompat.js';\nimport { applyLeaveTransition, applyUpdateTransition, isTransitionAll, updateLeaveTo } from '../../animation/customGraphicTransition.js';\nimport { updateProps } from '../../animation/basicTrasition.js';\nimport { applyKeyframeAnimation, stopPreviousKeyframeAnimationAndRestore } from '../../animation/customGraphicKeyframeAnimation.js';\nvar nonShapeGraphicElements = {\n  // Reserved but not supported in graphic component.\n  path: null,\n  compoundPath: null,\n  // Supported in graphic component.\n  group: graphicUtil.Group,\n  image: graphicUtil.Image,\n  text: graphicUtil.Text\n};\nexport var inner = modelUtil.makeInner(); // ------------------------\n// View\n// ------------------------\n\nvar GraphicComponentView =\n/** @class */\nfunction (_super) {\n  __extends(GraphicComponentView, _super);\n\n  function GraphicComponentView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentView.type;\n    return _this;\n  }\n\n  GraphicComponentView.prototype.init = function () {\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.render = function (graphicModel, ecModel, api) {\n    // Having leveraged between use cases and algorithm complexity, a very\n    // simple layout mechanism is used:\n    // The size(width/height) can be determined by itself or its parent (not\n    // implemented yet), but can not by its children. (Top-down travel)\n    // The location(x/y) can be determined by the bounding rect of itself\n    // (can including its descendants or not) and the size of its parent.\n    // (Bottom-up travel)\n    // When `chart.clear()` or `chart.setOption({...}, true)` with the same id,\n    // view will be reused.\n    if (graphicModel !== this._lastGraphicModel) {\n      this._clear();\n    }\n\n    this._lastGraphicModel = graphicModel;\n\n    this._updateElements(graphicModel);\n\n    this._relocate(graphicModel, api);\n  };\n  /**\n   * Update graphic elements.\n   */\n\n\n  GraphicComponentView.prototype._updateElements = function (graphicModel) {\n    var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\n\n    if (!elOptionsToUpdate) {\n      return;\n    }\n\n    var elMap = this._elMap;\n    var rootGroup = this.group;\n    var globalZ = graphicModel.get('z');\n    var globalZLevel = graphicModel.get('zlevel'); // Top-down tranverse to assign graphic settings to each elements.\n\n    zrUtil.each(elOptionsToUpdate, function (elOption) {\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var elExisting = id != null ? elMap.get(id) : null;\n      var parentId = modelUtil.convertOptionIdName(elOption.parentId, null);\n      var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\n      var elType = elOption.type;\n      var elOptionStyle = elOption.style;\n\n      if (elType === 'text' && elOptionStyle) {\n        // In top/bottom mode, textVerticalAlign should not be used, which cause\n        // inaccurately locating.\n        if (elOption.hv && elOption.hv[1]) {\n          elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = elOptionStyle.verticalAlign = elOptionStyle.align = null;\n        }\n      }\n\n      var textContentOption = elOption.textContent;\n      var textConfig = elOption.textConfig;\n\n      if (elOptionStyle && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) {\n        var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true);\n\n        if (!textConfig && convertResult.textConfig) {\n          textConfig = elOption.textConfig = convertResult.textConfig;\n        }\n\n        if (!textContentOption && convertResult.textContent) {\n          textContentOption = convertResult.textContent;\n        }\n      } // Remove unnecessary props to avoid potential problems.\n\n\n      var elOptionCleaned = getCleanedElOption(elOption); // For simple, do not support parent change, otherwise reorder is needed.\n\n      if (process.env.NODE_ENV !== 'production') {\n        elExisting && zrUtil.assert(targetElParent === elExisting.parent, 'Changing parent is not supported.');\n      }\n\n      var $action = elOption.$action || 'merge';\n      var isMerge = $action === 'merge';\n      var isReplace = $action === 'replace';\n\n      if (isMerge) {\n        var isInit = !elExisting;\n        var el_1 = elExisting;\n\n        if (isInit) {\n          el_1 = createEl(id, targetElParent, elOption.type, elMap);\n        } else {\n          el_1 && (inner(el_1).isNew = false); // Stop and restore before update any other attributes.\n\n          stopPreviousKeyframeAnimationAndRestore(el_1);\n        }\n\n        if (el_1) {\n          applyUpdateTransition(el_1, elOptionCleaned, graphicModel, {\n            isInit: isInit\n          });\n          updateCommonAttrs(el_1, elOption, globalZ, globalZLevel);\n        }\n      } else if (isReplace) {\n        removeEl(elExisting, elOption, elMap, graphicModel);\n        var el_2 = createEl(id, targetElParent, elOption.type, elMap);\n\n        if (el_2) {\n          applyUpdateTransition(el_2, elOptionCleaned, graphicModel, {\n            isInit: true\n          });\n          updateCommonAttrs(el_2, elOption, globalZ, globalZLevel);\n        }\n      } else if ($action === 'remove') {\n        updateLeaveTo(elExisting, elOption);\n        removeEl(elExisting, elOption, elMap, graphicModel);\n      }\n\n      var el = elMap.get(id);\n\n      if (el && textContentOption) {\n        if (isMerge) {\n          var textContentExisting = el.getTextContent();\n          textContentExisting ? textContentExisting.attr(textContentOption) : el.setTextContent(new graphicUtil.Text(textContentOption));\n        } else if (isReplace) {\n          el.setTextContent(new graphicUtil.Text(textContentOption));\n        }\n      }\n\n      if (el) {\n        var clipPathOption = elOption.clipPath;\n\n        if (clipPathOption) {\n          var clipPathType = clipPathOption.type;\n          var clipPath = void 0;\n          var isInit = false;\n\n          if (isMerge) {\n            var oldClipPath = el.getClipPath();\n            isInit = !oldClipPath || inner(oldClipPath).type !== clipPathType;\n            clipPath = isInit ? newEl(clipPathType) : oldClipPath;\n          } else if (isReplace) {\n            isInit = true;\n            clipPath = newEl(clipPathType);\n          }\n\n          el.setClipPath(clipPath);\n          applyUpdateTransition(clipPath, clipPathOption, graphicModel, {\n            isInit: isInit\n          });\n          applyKeyframeAnimation(clipPath, clipPathOption.keyframeAnimation, graphicModel);\n        }\n\n        var elInner = inner(el);\n        el.setTextConfig(textConfig);\n        elInner.option = elOption;\n        setEventData(el, graphicModel, elOption);\n        graphicUtil.setTooltipConfig({\n          el: el,\n          componentModel: graphicModel,\n          itemName: el.name,\n          itemTooltipOption: elOption.tooltip\n        });\n        applyKeyframeAnimation(el, elOption.keyframeAnimation, graphicModel);\n      }\n    });\n  };\n  /**\n   * Locate graphic elements.\n   */\n\n\n  GraphicComponentView.prototype._relocate = function (graphicModel, api) {\n    var elOptions = graphicModel.option.elements;\n    var rootGroup = this.group;\n    var elMap = this._elMap;\n    var apiWidth = api.getWidth();\n    var apiHeight = api.getHeight();\n    var xy = ['x', 'y']; // Top-down to calculate percentage width/height of group\n\n    for (var i = 0; i < elOptions.length; i++) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el || !el.isGroup) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var isParentRoot = parentEl === rootGroup; // Like 'position:absolut' in css, default 0.\n\n      var elInner = inner(el);\n      var parentElInner = inner(parentEl);\n      elInner.width = parsePercent(elInner.option.width, isParentRoot ? apiWidth : parentElInner.width) || 0;\n      elInner.height = parsePercent(elInner.option.height, isParentRoot ? apiHeight : parentElInner.height) || 0;\n    } // Bottom-up tranvese all elements (consider ec resize) to locate elements.\n\n\n    for (var i = elOptions.length - 1; i >= 0; i--) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var parentElInner = inner(parentEl);\n      var containerInfo = parentEl === rootGroup ? {\n        width: apiWidth,\n        height: apiHeight\n      } : {\n        width: parentElInner.width,\n        height: parentElInner.height\n      }; // PENDING\n      // Currently, when `bounding: 'all'`, the union bounding rect of the group\n      // does not include the rect of [0, 0, group.width, group.height], which\n      // is probably weird for users. Should we make a break change for it?\n\n      var layoutPos = {};\n      var layouted = layoutUtil.positionElement(el, elOption, containerInfo, null, {\n        hv: elOption.hv,\n        boundingMode: elOption.bounding\n      }, layoutPos);\n\n      if (!inner(el).isNew && layouted) {\n        var transition = elOption.transition;\n        var animatePos = {};\n\n        for (var k = 0; k < xy.length; k++) {\n          var key = xy[k];\n          var val = layoutPos[key];\n\n          if (transition && (isTransitionAll(transition) || zrUtil.indexOf(transition, key) >= 0)) {\n            animatePos[key] = val;\n          } else {\n            el[key] = val;\n          }\n        }\n\n        updateProps(el, animatePos, graphicModel, 0);\n      } else {\n        el.attr(layoutPos);\n      }\n    }\n  };\n  /**\n   * Clear all elements.\n   */\n\n\n  GraphicComponentView.prototype._clear = function () {\n    var _this = this;\n\n    var elMap = this._elMap;\n    elMap.each(function (el) {\n      removeEl(el, inner(el).option, elMap, _this._lastGraphicModel);\n    });\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.dispose = function () {\n    this._clear();\n  };\n\n  GraphicComponentView.type = 'graphic';\n  return GraphicComponentView;\n}(ComponentView);\n\nexport { GraphicComponentView };\n\nfunction newEl(graphicType) {\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(graphicType, 'graphic type MUST be set');\n  }\n\n  var Clz = zrUtil.hasOwn(nonShapeGraphicElements, graphicType) // Those graphic elements are not shapes. They should not be\n  // overwritten by users, so do them first.\n  ? nonShapeGraphicElements[graphicType] : graphicUtil.getShapeClass(graphicType);\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(Clz, \"graphic type \" + graphicType + \" can not be found\");\n  }\n\n  var el = new Clz({});\n  inner(el).type = graphicType;\n  return el;\n}\n\nfunction createEl(id, targetElParent, graphicType, elMap) {\n  var el = newEl(graphicType);\n  targetElParent.add(el);\n  elMap.set(id, el);\n  inner(el).id = id;\n  inner(el).isNew = true;\n  return el;\n}\n\nfunction removeEl(elExisting, elOption, elMap, graphicModel) {\n  var existElParent = elExisting && elExisting.parent;\n\n  if (existElParent) {\n    elExisting.type === 'group' && elExisting.traverse(function (el) {\n      removeEl(el, elOption, elMap, graphicModel);\n    });\n    applyLeaveTransition(elExisting, elOption, graphicModel);\n    elMap.removeKey(inner(elExisting).id);\n  }\n}\n\nfunction updateCommonAttrs(el, elOption, defaultZ, defaultZlevel) {\n  if (!el.isGroup) {\n    zrUtil.each([['cursor', Displayable.prototype.cursor], // We should not support configure z and zlevel in the element level.\n    // But seems we didn't limit it previously. So here still use it to avoid breaking.\n    ['zlevel', defaultZlevel || 0], ['z', defaultZ || 0], // z2 must not be null/undefined, otherwise sort error may occur.\n    ['z2', 0]], function (item) {\n      var prop = item[0];\n\n      if (zrUtil.hasOwn(elOption, prop)) {\n        el[prop] = zrUtil.retrieve2(elOption[prop], item[1]);\n      } else if (el[prop] == null) {\n        el[prop] = item[1];\n      }\n    });\n  }\n\n  zrUtil.each(zrUtil.keys(elOption), function (key) {\n    // Assign event handlers.\n    // PENDING: should enumerate all event names or use pattern matching?\n    if (key.indexOf('on') === 0) {\n      var val = elOption[key];\n      el[key] = zrUtil.isFunction(val) ? val : null;\n    }\n  });\n\n  if (zrUtil.hasOwn(elOption, 'draggable')) {\n    el.draggable = elOption.draggable;\n  } // Other attributes\n\n\n  elOption.name != null && (el.name = elOption.name);\n  elOption.id != null && (el.id = elOption.id);\n} // Remove unnecessary props to avoid potential problems.\n\n\nfunction getCleanedElOption(elOption) {\n  elOption = zrUtil.extend({}, elOption);\n  zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent', 'clipPath'].concat(layoutUtil.LOCATION_PARAMS), function (name) {\n    delete elOption[name];\n  });\n  return elOption;\n}\n\nfunction setEventData(el, graphicModel, elOption) {\n  var eventData = getECData(el).eventData; // Simple optimize for large amount of elements that no need event.\n\n  if (!el.silent && !el.ignore && !eventData) {\n    eventData = getECData(el).eventData = {\n      componentType: 'graphic',\n      componentIndex: graphicModel.componentIndex,\n      name: el.name\n    };\n  } // `elOption.info` enables user to mount some info on\n  // elements and use them in event handlers.\n\n\n  if (eventData) {\n    eventData.info = elOption.info;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isArray } from 'zrender/lib/core/util.js';\nimport { GraphicComponentModel } from './GraphicModel.js';\nimport { GraphicComponentView } from './GraphicView.js';\nexport function install(registers) {\n  registers.registerComponentModel(GraphicComponentModel);\n  registers.registerComponentView(GraphicComponentView);\n  registers.registerPreprocessor(function (option) {\n    var graphicOption = option.graphic; // Convert\n    // {graphic: [{left: 10, type: 'circle'}, ...]}\n    // or\n    // {graphic: {left: 10, type: 'circle'}}\n    // to\n    // {graphic: [{elements: [{left: 10, type: 'circle'}, ...]}]}\n\n    if (isArray(graphicOption)) {\n      if (!graphicOption[0] || !graphicOption[0].elements) {\n        option.graphic = [{\n          elements: graphicOption\n        }];\n      } else {\n        // Only one graphic instance can be instantiated. (We dont\n        // want that too many views are created in echarts._viewMap)\n        option.graphic = [option.graphic[0]];\n      }\n    } else if (graphicOption && !graphicOption.elements) {\n      option.graphic = [{\n        elements: [graphicOption]\n      }];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { indexOf, createHashMap, assert } from 'zrender/lib/core/util.js';\nexport var DATA_ZOOM_AXIS_DIMENSIONS = ['x', 'y', 'radius', 'angle', 'single']; // Supported coords.\n// FIXME: polar has been broken (but rarely used).\n\nvar SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\nexport function isCoordSupported(seriesModel) {\n  var coordType = seriesModel.get('coordinateSystem');\n  return indexOf(SERIES_COORDS, coordType) >= 0;\n}\nexport function getAxisMainType(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'Axis';\n}\nexport function getAxisIndexPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisIndex';\n}\nexport function getAxisIdPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisId';\n}\n/**\n * If two dataZoomModels has the same axis controlled, we say that they are 'linked'.\n * This function finds all linked dataZoomModels start from the given payload.\n */\n\nexport function findEffectedDataZooms(ecModel, payload) {\n  // Key: `DataZoomAxisDimension`\n  var axisRecords = createHashMap();\n  var effectedModels = []; // Key: uid of dataZoomModel\n\n  var effectedModelMap = createHashMap(); // Find the dataZooms specified by payload.\n\n  ecModel.eachComponent({\n    mainType: 'dataZoom',\n    query: payload\n  }, function (dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid)) {\n      addToEffected(dataZoomModel);\n    }\n  }); // Start from the given dataZoomModels, travel the graph to find\n  // all of the linked dataZoom models.\n\n  var foundNewLink;\n\n  do {\n    foundNewLink = false;\n    ecModel.eachComponent('dataZoom', processSingle);\n  } while (foundNewLink);\n\n  function processSingle(dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\n      addToEffected(dataZoomModel);\n      foundNewLink = true;\n    }\n  }\n\n  function addToEffected(dataZoom) {\n    effectedModelMap.set(dataZoom.uid, true);\n    effectedModels.push(dataZoom);\n    markAxisControlled(dataZoom);\n  }\n\n  function isLinked(dataZoomModel) {\n    var isLink = false;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var axisIdxArr = axisRecords.get(axisDim);\n\n      if (axisIdxArr && axisIdxArr[axisIndex]) {\n        isLink = true;\n      }\n    });\n    return isLink;\n  }\n\n  function markAxisControlled(dataZoomModel) {\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\n    });\n  }\n\n  return effectedModels;\n}\n/**\n * Find the first target coordinate system.\n * Available after model built.\n *\n * @return Like {\n *                  grid: [\n *                      {model: coord0, axisModels: [axis1, axis3], coordIndex: 1},\n *                      {model: coord1, axisModels: [axis0, axis2], coordIndex: 0},\n *                      ...\n *                  ],  // cartesians must not be null/undefined.\n *                  polar: [\n *                      {model: coord0, axisModels: [axis4], coordIndex: 0},\n *                      ...\n *                  ],  // polars must not be null/undefined.\n *                  singleAxis: [\n *                      {model: coord0, axisModels: [], coordIndex: 0}\n *                  ]\n *              }\n */\n\nexport function collectReferCoordSysModelInfo(dataZoomModel) {\n  var ecModel = dataZoomModel.ecModel;\n  var coordSysInfoWrap = {\n    infoList: [],\n    infoMap: createHashMap()\n  };\n  dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n    var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n\n    if (!axisModel) {\n      return;\n    }\n\n    var coordSysModel = axisModel.getCoordSysModel();\n\n    if (!coordSysModel) {\n      return;\n    }\n\n    var coordSysUid = coordSysModel.uid;\n    var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\n\n    if (!coordSysInfo) {\n      coordSysInfo = {\n        model: coordSysModel,\n        axisModels: []\n      };\n      coordSysInfoWrap.infoList.push(coordSysInfo);\n      coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\n    }\n\n    coordSysInfo.axisModels.push(axisModel);\n  });\n  return coordSysInfoWrap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { each, createHashMap, merge, assert } from 'zrender/lib/core/util.js';\nimport ComponentModel from '../../model/Component.js';\nimport { getAxisMainType, DATA_ZOOM_AXIS_DIMENSIONS } from './helper.js';\nimport { MULTIPLE_REFERRING, SINGLE_REFERRING } from '../../util/model.js';\n\nvar DataZoomAxisInfo =\n/** @class */\nfunction () {\n  function DataZoomAxisInfo() {\n    this.indexList = [];\n    this.indexMap = [];\n  }\n\n  DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\n    // Remove duplication.\n    if (!this.indexMap[axisCmptIdx]) {\n      this.indexList.push(axisCmptIdx);\n      this.indexMap[axisCmptIdx] = true;\n    }\n  };\n\n  return DataZoomAxisInfo;\n}();\n\nvar DataZoomModel =\n/** @class */\nfunction (_super) {\n  __extends(DataZoomModel, _super);\n\n  function DataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomModel.type;\n    _this._autoThrottle = true;\n    _this._noTarget = true;\n    /**\n     * It is `[rangeModeForMin, rangeModeForMax]`.\n     * The optional values for `rangeMode`:\n     * + `'value'` mode: the axis extent will always be determined by\n     *     `dataZoom.startValue` and `dataZoom.endValue`, despite\n     *     how data like and how `axis.min` and `axis.max` are.\n     * + `'percent'` mode: `100` represents 100% of the `[dMin, dMax]`,\n     *     where `dMin` is `axis.min` if `axis.min` specified, otherwise `data.extent[0]`,\n     *     and `dMax` is `axis.max` if `axis.max` specified, otherwise `data.extent[1]`.\n     *     Axis extent will be determined by the result of the percent of `[dMin, dMax]`.\n     *\n     * For example, when users are using dynamic data (update data periodically via `setOption`),\n     * if in `'value`' mode, the window will be kept in a fixed value range despite how\n     * data are appended, while if in `'percent'` mode, whe window range will be changed alone with\n     * the appended data (suppose `axis.min` and `axis.max` are not specified).\n     */\n\n    _this._rangePropMode = ['percent', 'percent'];\n    return _this;\n  }\n\n  DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputRawOption = retrieveRawOption(option);\n    /**\n     * Suppose a \"main process\" start at the point that model prepared (that is,\n     * model initialized or merged or method called in `action`).\n     * We should keep the `main process` idempotent, that is, given a set of values\n     * on `option`, we get the same result.\n     *\n     * But sometimes, values on `option` will be updated for providing users\n     * a \"final calculated value\" (`dataZoomProcessor` will do that). Those value\n     * should not be the base/input of the `main process`.\n     *\n     * So in that case we should save and keep the input of the `main process`\n     * separately, called `settledOption`.\n     *\n     * For example, consider the case:\n     * (Step_1) brush zoom the grid by `toolbox.dataZoom`,\n     *     where the original input `option.startValue`, `option.endValue` are earsed by\n     *     calculated value.\n     * (Step)2) click the legend to hide and show a series,\n     *     where the new range is calculated by the earsed `startValue` and `endValue`,\n     *     which brings incorrect result.\n     */\n\n    this.settledOption = inputRawOption;\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype.mergeOption = function (newOption) {\n    var inputRawOption = retrieveRawOption(newOption); //FIX #2591\n\n    merge(this.option, newOption, true);\n    merge(this.settledOption, inputRawOption, true);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype._doInit = function (inputRawOption) {\n    var thisOption = this.option;\n\n    this._setDefaultThrottle(inputRawOption);\n\n    this._updateRangeUse(inputRawOption);\n\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      // start/end has higher priority over startValue/endValue if they\n      // both set, but we should make chart.setOption({endValue: 1000})\n      // effective, rather than chart.setOption({endValue: 1000, end: null}).\n      if (this._rangePropMode[index] === 'value') {\n        thisOption[names[0]] = settledOption[names[0]] = null;\n      } // Otherwise do nothing and use the merge result.\n\n    }, this);\n\n    this._resetTarget();\n  };\n\n  DataZoomModel.prototype._resetTarget = function () {\n    var optionOrient = this.get('orient', true);\n    var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\n\n    var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\n\n    if (hasAxisSpecified) {\n      this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\n    } else {\n      this._orient = optionOrient || 'horizontal';\n\n      this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\n    }\n\n    this._noTarget = true;\n    targetAxisIndexMap.each(function (axisInfo) {\n      if (axisInfo.indexList.length) {\n        this._noTarget = false;\n      }\n    }, this);\n  };\n\n  DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\n    var hasAxisSpecified = false;\n    each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n      var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING); // When user set axisIndex as a empty array, we think that user specify axisIndex\n      // but do not want use auto mode. Because empty array may be encountered when\n      // some error occured.\n\n      if (!refering.specified) {\n        return;\n      }\n\n      hasAxisSpecified = true;\n      var axisInfo = new DataZoomAxisInfo();\n      each(refering.models, function (axisModel) {\n        axisInfo.add(axisModel.componentIndex);\n      });\n      targetAxisIndexMap.set(axisDim, axisInfo);\n    }, this);\n    return hasAxisSpecified;\n  };\n\n  DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\n    var ecModel = this.ecModel;\n    var needAuto = true; // Find axis that parallel to dataZoom as default.\n\n    if (needAuto) {\n      var axisDim = orient === 'vertical' ? 'y' : 'x';\n      var axisModels = ecModel.findComponents({\n        mainType: axisDim + 'Axis'\n      });\n      setParallelAxis(axisModels, axisDim);\n    } // Find axis that parallel to dataZoom as default.\n\n\n    if (needAuto) {\n      var axisModels = ecModel.findComponents({\n        mainType: 'singleAxis',\n        filter: function (axisModel) {\n          return axisModel.get('orient', true) === orient;\n        }\n      });\n      setParallelAxis(axisModels, 'single');\n    }\n\n    function setParallelAxis(axisModels, axisDim) {\n      // At least use the first parallel axis as the target axis.\n      var axisModel = axisModels[0];\n\n      if (!axisModel) {\n        return;\n      }\n\n      var axisInfo = new DataZoomAxisInfo();\n      axisInfo.add(axisModel.componentIndex);\n      targetAxisIndexMap.set(axisDim, axisInfo);\n      needAuto = false; // Find parallel axes in the same grid.\n\n      if (axisDim === 'x' || axisDim === 'y') {\n        var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n        gridModel_1 && each(axisModels, function (axModel) {\n          if (axisModel.componentIndex !== axModel.componentIndex && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\n            axisInfo.add(axModel.componentIndex);\n          }\n        });\n      }\n    }\n\n    if (needAuto) {\n      // If no parallel axis, find the first category axis as default. (Also consider polar).\n      each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n        if (!needAuto) {\n          return;\n        }\n\n        var axisModels = ecModel.findComponents({\n          mainType: getAxisMainType(axisDim),\n          filter: function (axisModel) {\n            return axisModel.get('type', true) === 'category';\n          }\n        });\n\n        if (axisModels[0]) {\n          var axisInfo = new DataZoomAxisInfo();\n          axisInfo.add(axisModels[0].componentIndex);\n          targetAxisIndexMap.set(axisDim, axisInfo);\n          needAuto = false;\n        }\n      }, this);\n    }\n  };\n\n  DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\n    var dim; // Find the first axis\n\n    this.eachTargetAxis(function (axisDim) {\n      !dim && (dim = axisDim);\n    }, this);\n    return dim === 'y' ? 'vertical' : 'horizontal';\n  };\n\n  DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\n    // When first time user set throttle, auto throttle ends.\n    if (inputRawOption.hasOwnProperty('throttle')) {\n      this._autoThrottle = false;\n    }\n\n    if (this._autoThrottle) {\n      var globalOption = this.ecModel.option;\n      this.option.throttle = globalOption.animation && globalOption.animationDurationUpdate > 0 ? 100 : 20;\n    }\n  };\n\n  DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\n    var rangePropMode = this._rangePropMode;\n    var rangeModeInOption = this.get('rangeMode');\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      var percentSpecified = inputRawOption[names[0]] != null;\n      var valueSpecified = inputRawOption[names[1]] != null;\n\n      if (percentSpecified && !valueSpecified) {\n        rangePropMode[index] = 'percent';\n      } else if (!percentSpecified && valueSpecified) {\n        rangePropMode[index] = 'value';\n      } else if (rangeModeInOption) {\n        rangePropMode[index] = rangeModeInOption[index];\n      } else if (percentSpecified) {\n        // percentSpecified && valueSpecified\n        rangePropMode[index] = 'percent';\n      } // else remain its original setting.\n\n    });\n  };\n\n  DataZoomModel.prototype.noTarget = function () {\n    return this._noTarget;\n  };\n\n  DataZoomModel.prototype.getFirstTargetAxisModel = function () {\n    var firstAxisModel;\n    this.eachTargetAxis(function (axisDim, axisIndex) {\n      if (firstAxisModel == null) {\n        firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n      }\n    }, this);\n    return firstAxisModel;\n  };\n  /**\n   * @param {Function} callback param: axisModel, dimNames, axisIndex, dataZoomModel, ecModel\n   */\n\n\n  DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\n    this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\n      each(axisInfo.indexList, function (axisIndex) {\n        callback.call(context, axisDim, axisIndex);\n      });\n    });\n  };\n  /**\n   * @return If not found, return null/undefined.\n   */\n\n\n  DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\n    var axisModel = this.getAxisModel(axisDim, axisIndex);\n\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    }\n  };\n  /**\n   * @return If not found, return null/undefined.\n   */\n\n\n  DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(axisDim && axisIndex != null);\n    }\n\n    var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n    if (axisInfo && axisInfo.indexMap[axisIndex]) {\n      return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n    }\n  };\n  /**\n   * If not specified, set to undefined.\n   */\n\n\n  DataZoomModel.prototype.setRawRange = function (opt) {\n    var thisOption = this.option;\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names) {\n      // Consider the pair <start, startValue>:\n      // If one has value and the other one is `null/undefined`, we both set them\n      // to `settledOption`. This strategy enables the feature to clear the original\n      // value in `settledOption` to `null/undefined`.\n      // But if both of them are `null/undefined`, we do not set them to `settledOption`\n      // and keep `settledOption` with the original value. This strategy enables users to\n      // only set <end or endValue> but not set <start or startValue> when calling\n      // `dispatchAction`.\n      // The pair <end, endValue> is treated in the same way.\n      if (opt[names[0]] != null || opt[names[1]] != null) {\n        thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\n        thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\n      }\n    }, this);\n\n    this._updateRangeUse(opt);\n  };\n\n  DataZoomModel.prototype.setCalculatedRange = function (opt) {\n    var option = this.option;\n    each(['start', 'startValue', 'end', 'endValue'], function (name) {\n      option[name] = opt[name];\n    });\n  };\n\n  DataZoomModel.prototype.getPercentRange = function () {\n    var axisProxy = this.findRepresentativeAxisProxy();\n\n    if (axisProxy) {\n      return axisProxy.getDataPercentWindow();\n    }\n  };\n  /**\n   * For example, chart.getModel().getComponent('dataZoom').getValueRange('y', 0);\n   *\n   * @return [startValue, endValue] value can only be '-' or finite number.\n   */\n\n\n  DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\n    if (axisDim == null && axisIndex == null) {\n      var axisProxy = this.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        return axisProxy.getDataValueWindow();\n      }\n    } else {\n      return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\n    }\n  };\n  /**\n   * @param axisModel If axisModel given, find axisProxy\n   *      corresponding to the axisModel\n   */\n\n\n  DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    } // Find the first hosted axisProxy\n\n\n    var firstProxy;\n\n    var axisDimList = this._targetAxisInfoMap.keys();\n\n    for (var i = 0; i < axisDimList.length; i++) {\n      var axisDim = axisDimList[i];\n\n      var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n      for (var j = 0; j < axisInfo.indexList.length; j++) {\n        var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\n\n        if (proxy.hostedBy(this)) {\n          return proxy;\n        }\n\n        if (!firstProxy) {\n          firstProxy = proxy;\n        }\n      }\n    } // If no hosted proxy found, still need to return a proxy.\n    // This case always happens in toolbox dataZoom, where axes are all hosted by\n    // other dataZooms.\n\n\n    return firstProxy;\n  };\n\n  DataZoomModel.prototype.getRangePropMode = function () {\n    return this._rangePropMode.slice();\n  };\n\n  DataZoomModel.prototype.getOrient = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      // Should not be called before initialized.\n      assert(this._orient);\n    }\n\n    return this._orient;\n  };\n\n  DataZoomModel.type = 'dataZoom';\n  DataZoomModel.dependencies = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'];\n  DataZoomModel.defaultOption = {\n    // zlevel: 0,\n    z: 4,\n    filterMode: 'filter',\n    start: 0,\n    end: 100\n  };\n  return DataZoomModel;\n}(ComponentModel);\n/**\n * Retrieve the those raw params from option, which will be cached separately.\n * becasue they will be overwritten by normalized/calculated values in the main\n * process.\n */\n\n\nfunction retrieveRawOption(option) {\n  var ret = {};\n  each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\n    option.hasOwnProperty(name) && (ret[name] = option[name]);\n  });\n  return ret;\n}\n\nexport default DataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel.js';\n\nvar SelectDataZoomModel =\n/** @class */\nfunction (_super) {\n  __extends(SelectDataZoomModel, _super);\n\n  function SelectDataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomModel.type;\n    return _this;\n  }\n\n  SelectDataZoomModel.type = 'dataZoom.select';\n  return SelectDataZoomModel;\n}(DataZoomModel);\n\nexport default SelectDataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component.js';\n\nvar DataZoomView =\n/** @class */\nfunction (_super) {\n  __extends(DataZoomView, _super);\n\n  function DataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomView.type;\n    return _this;\n  }\n\n  DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    this.dataZoomModel = dataZoomModel;\n    this.ecModel = ecModel;\n    this.api = api;\n  };\n\n  DataZoomView.type = 'dataZoom';\n  return DataZoomView;\n}(ComponentView);\n\nexport default DataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView.js';\n\nvar SelectDataZoomView =\n/** @class */\nfunction (_super) {\n  __extends(SelectDataZoomView, _super);\n\n  function SelectDataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomView.type;\n    return _this;\n  }\n\n  SelectDataZoomView.type = 'dataZoom.select';\n  return SelectDataZoomView;\n}(DataZoomView);\n\nexport default SelectDataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as numberUtil from '../../util/number.js';\nimport sliderMove from '../helper/sliderMove.js';\nimport { unionAxisExtentFromData } from '../../coord/axisHelper.js';\nimport { ensureScaleRawExtentInfo } from '../../coord/scaleRawExtentInfo.js';\nimport { getAxisMainType, isCoordSupported } from './helper.js';\nimport { SINGLE_REFERRING } from '../../util/model.js';\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\n/**\n * Operate single axis.\n * One axis can only operated by one axis operator.\n * Different dataZoomModels may be defined to operate the same axis.\n * (i.e. 'inside' data zoom and 'slider' data zoom components)\n * So dataZoomModels share one axisProxy in that case.\n */\n\nvar AxisProxy =\n/** @class */\nfunction () {\n  function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\n    this._dimName = dimName;\n    this._axisIndex = axisIndex;\n    this.ecModel = ecModel;\n    this._dataZoomModel = dataZoomModel; // /**\n    //  * @readOnly\n    //  * @private\n    //  */\n    // this.hasSeriesStacked;\n  }\n  /**\n   * Whether the axisProxy is hosted by dataZoomModel.\n   */\n\n\n  AxisProxy.prototype.hostedBy = function (dataZoomModel) {\n    return this._dataZoomModel === dataZoomModel;\n  };\n  /**\n   * @return Value can only be NaN or finite value.\n   */\n\n\n  AxisProxy.prototype.getDataValueWindow = function () {\n    return this._valueWindow.slice();\n  };\n  /**\n   * @return {Array.<number>}\n   */\n\n\n  AxisProxy.prototype.getDataPercentWindow = function () {\n    return this._percentWindow.slice();\n  };\n\n  AxisProxy.prototype.getTargetSeriesModels = function () {\n    var seriesModels = [];\n    this.ecModel.eachSeries(function (seriesModel) {\n      if (isCoordSupported(seriesModel)) {\n        var axisMainType = getAxisMainType(this._dimName);\n        var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\n\n        if (axisModel && this._axisIndex === axisModel.componentIndex) {\n          seriesModels.push(seriesModel);\n        }\n      }\n    }, this);\n    return seriesModels;\n  };\n\n  AxisProxy.prototype.getAxisModel = function () {\n    return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\n  };\n\n  AxisProxy.prototype.getMinMaxSpan = function () {\n    return zrUtil.clone(this._minMaxSpan);\n  };\n  /**\n   * Only calculate by given range and this._dataExtent, do not change anything.\n   */\n\n\n  AxisProxy.prototype.calculateDataWindow = function (opt) {\n    var dataExtent = this._dataExtent;\n    var axisModel = this.getAxisModel();\n    var scale = axisModel.axis.scale;\n\n    var rangePropMode = this._dataZoomModel.getRangePropMode();\n\n    var percentExtent = [0, 100];\n    var percentWindow = [];\n    var valueWindow = [];\n    var hasPropModeValue;\n    each(['start', 'end'], function (prop, idx) {\n      var boundPercent = opt[prop];\n      var boundValue = opt[prop + 'Value']; // Notice: dataZoom is based either on `percentProp` ('start', 'end') or\n      // on `valueProp` ('startValue', 'endValue'). (They are based on the data extent\n      // but not min/max of axis, which will be calculated by data window then).\n      // The former one is suitable for cases that a dataZoom component controls multiple\n      // axes with different unit or extent, and the latter one is suitable for accurate\n      // zoom by pixel (e.g., in dataZoomSelect).\n      // we use `getRangePropMode()` to mark which prop is used. `rangePropMode` is updated\n      // only when setOption or dispatchAction, otherwise it remains its original value.\n      // (Why not only record `percentProp` and always map to `valueProp`? Because\n      // the map `valueProp` -> `percentProp` -> `valueProp` probably not the original\n      // `valueProp`. consider two axes constrolled by one dataZoom. They have different\n      // data extent. All of values that are overflow the `dataExtent` will be calculated\n      // to percent '100%').\n\n      if (rangePropMode[idx] === 'percent') {\n        boundPercent == null && (boundPercent = percentExtent[idx]); // Use scale.parse to math round for category or time axis.\n\n        boundValue = scale.parse(numberUtil.linearMap(boundPercent, percentExtent, dataExtent));\n      } else {\n        hasPropModeValue = true;\n        boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue); // Calculating `percent` from `value` may be not accurate, because\n        // This calculation can not be inversed, because all of values that\n        // are overflow the `dataExtent` will be calculated to percent '100%'\n\n        boundPercent = numberUtil.linearMap(boundValue, dataExtent, percentExtent);\n      } // valueWindow[idx] = round(boundValue);\n      // percentWindow[idx] = round(boundPercent);\n\n\n      valueWindow[idx] = boundValue;\n      percentWindow[idx] = boundPercent;\n    });\n    asc(valueWindow);\n    asc(percentWindow); // The windows from user calling of `dispatchAction` might be out of the extent,\n    // or do not obey the `min/maxSpan`, `min/maxValueSpan`. But we dont restrict window\n    // by `zoomLock` here, because we see `zoomLock` just as a interaction constraint,\n    // where API is able to initialize/modify the window size even though `zoomLock`\n    // specified.\n\n    var spans = this._minMaxSpan;\n    hasPropModeValue ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false) : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\n\n    function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\n      var suffix = toValue ? 'Span' : 'ValueSpan';\n      sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\n\n      for (var i = 0; i < 2; i++) {\n        toWindow[i] = numberUtil.linearMap(fromWindow[i], fromExtent, toExtent, true);\n        toValue && (toWindow[i] = scale.parse(toWindow[i]));\n      }\n    }\n\n    return {\n      valueWindow: valueWindow,\n      percentWindow: percentWindow\n    };\n  };\n  /**\n   * Notice: reset should not be called before series.restoreData() called,\n   * so it is recommanded to be called in \"process stage\" but not \"model init\n   * stage\".\n   */\n\n\n  AxisProxy.prototype.reset = function (dataZoomModel) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var targetSeries = this.getTargetSeriesModels(); // Culculate data window and data extent, and record them.\n\n    this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries); // `calculateDataWindow` uses min/maxSpan.\n\n    this._updateMinMaxSpan();\n\n    var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\n    this._valueWindow = dataWindow.valueWindow;\n    this._percentWindow = dataWindow.percentWindow; // Update axis setting then.\n\n    this._setAxisModel();\n  };\n\n  AxisProxy.prototype.filterData = function (dataZoomModel, api) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var axisDim = this._dimName;\n    var seriesModels = this.getTargetSeriesModels();\n    var filterMode = dataZoomModel.get('filterMode');\n    var valueWindow = this._valueWindow;\n\n    if (filterMode === 'none') {\n      return;\n    } // FIXME\n    // Toolbox may has dataZoom injected. And if there are stacked bar chart\n    // with NaN data, NaN will be filtered and stack will be wrong.\n    // So we need to force the mode to be set empty.\n    // In fect, it is not a big deal that do not support filterMode-'filter'\n    // when using toolbox#dataZoom, utill tooltip#dataZoom support \"single axis\n    // selection\" some day, which might need \"adapt to data extent on the\n    // otherAxis\", which is disabled by filterMode-'empty'.\n    // But currently, stack has been fixed to based on value but not index,\n    // so this is not an issue any more.\n    // let otherAxisModel = this.getOtherAxisModel();\n    // if (dataZoomModel.get('$fromToolbox')\n    //     && otherAxisModel\n    //     && otherAxisModel.hasSeriesStacked\n    // ) {\n    //     filterMode = 'empty';\n    // }\n    // TODO\n    // filterMode 'weakFilter' and 'empty' is not optimized for huge data yet.\n\n\n    each(seriesModels, function (seriesModel) {\n      var seriesData = seriesModel.getData();\n      var dataDims = seriesData.mapDimensionsAll(axisDim);\n\n      if (!dataDims.length) {\n        return;\n      }\n\n      if (filterMode === 'weakFilter') {\n        var store_1 = seriesData.getStore();\n        var dataDimIndices_1 = zrUtil.map(dataDims, function (dim) {\n          return seriesData.getDimensionIndex(dim);\n        }, seriesData);\n        seriesData.filterSelf(function (dataIndex) {\n          var leftOut;\n          var rightOut;\n          var hasValue;\n\n          for (var i = 0; i < dataDims.length; i++) {\n            var value = store_1.get(dataDimIndices_1[i], dataIndex);\n            var thisHasValue = !isNaN(value);\n            var thisLeftOut = value < valueWindow[0];\n            var thisRightOut = value > valueWindow[1];\n\n            if (thisHasValue && !thisLeftOut && !thisRightOut) {\n              return true;\n            }\n\n            thisHasValue && (hasValue = true);\n            thisLeftOut && (leftOut = true);\n            thisRightOut && (rightOut = true);\n          } // If both left out and right out, do not filter.\n\n\n          return hasValue && leftOut && rightOut;\n        });\n      } else {\n        each(dataDims, function (dim) {\n          if (filterMode === 'empty') {\n            seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\n              return !isInWindow(value) ? NaN : value;\n            }));\n          } else {\n            var range = {};\n            range[dim] = valueWindow; // console.time('select');\n\n            seriesData.selectRange(range); // console.timeEnd('select');\n          }\n        });\n      }\n\n      each(dataDims, function (dim) {\n        seriesData.setApproximateExtent(valueWindow, dim);\n      });\n    });\n\n    function isInWindow(value) {\n      return value >= valueWindow[0] && value <= valueWindow[1];\n    }\n  };\n\n  AxisProxy.prototype._updateMinMaxSpan = function () {\n    var minMaxSpan = this._minMaxSpan = {};\n    var dataZoomModel = this._dataZoomModel;\n    var dataExtent = this._dataExtent;\n    each(['min', 'max'], function (minMax) {\n      var percentSpan = dataZoomModel.get(minMax + 'Span');\n      var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\n      valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan)); // minValueSpan and maxValueSpan has higher priority than minSpan and maxSpan\n\n      if (valueSpan != null) {\n        percentSpan = numberUtil.linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\n      } else if (percentSpan != null) {\n        valueSpan = numberUtil.linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\n      }\n\n      minMaxSpan[minMax + 'Span'] = percentSpan;\n      minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\n    }, this);\n  };\n\n  AxisProxy.prototype._setAxisModel = function () {\n    var axisModel = this.getAxisModel();\n    var percentWindow = this._percentWindow;\n    var valueWindow = this._valueWindow;\n\n    if (!percentWindow) {\n      return;\n    } // [0, 500]: arbitrary value, guess axis extent.\n\n\n    var precision = numberUtil.getPixelPrecision(valueWindow, [0, 500]);\n    precision = Math.min(precision, 20); // For value axis, if min/max/scale are not set, we just use the extent obtained\n    // by series data, which may be a little different from the extent calculated by\n    // `axisHelper.getScaleExtent`. But the different just affects the experience a\n    // little when zooming. So it will not be fixed until some users require it strongly.\n\n    var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\n\n    if (percentWindow[0] !== 0) {\n      rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\n    }\n\n    if (percentWindow[1] !== 100) {\n      rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\n    }\n\n    rawExtentInfo.freeze();\n  };\n\n  return AxisProxy;\n}();\n\nfunction calculateDataExtent(axisProxy, axisDim, seriesModels) {\n  var dataExtent = [Infinity, -Infinity];\n  each(seriesModels, function (seriesModel) {\n    unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\n  }); // It is important to get \"consistent\" extent when more then one axes is\n  // controlled by a `dataZoom`, otherwise those axes will not be synchronized\n  // when zooming. But it is difficult to know what is \"consistent\", considering\n  // axes have different type or even different meanings (For example, two\n  // time axes are used to compare data of the same date in different years).\n  // So basically dataZoom just obtains extent by series.data (in category axis\n  // extent can be obtained from axis.data).\n  // Nevertheless, user can set min/max/scale on axes to make extent of axes\n  // consistent.\n\n  var axisModel = axisProxy.getAxisModel();\n  var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\n  return [rawExtentResult.min, rawExtentResult.max];\n}\n\nexport default AxisProxy;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { createHashMap, each } from 'zrender/lib/core/util.js';\nimport { getAxisMainType } from './helper.js';\nimport AxisProxy from './AxisProxy.js';\nvar dataZoomProcessor = {\n  // `dataZoomProcessor` will only be performed in needed series. Consider if\n  // there is a line series and a pie series, it is better not to update the\n  // line series if only pie series is needed to be updated.\n  getTargetSeries: function (ecModel) {\n    function eachAxisModel(cb) {\n      ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n        dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n          var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n          cb(axisDim, axisIndex, axisModel, dataZoomModel);\n        });\n      });\n    } // FIXME: it brings side-effect to `getTargetSeries`.\n    // Prepare axis proxies.\n\n\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      // dispose all last axis proxy, in case that some axis are deleted.\n      axisModel.__dzAxisProxy = null;\n    });\n    var proxyList = [];\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      // Different dataZooms may constrol the same axis. In that case,\n      // an axisProxy serves both of them.\n      if (!axisModel.__dzAxisProxy) {\n        // Use the first dataZoomModel as the main model of axisProxy.\n        axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\n        proxyList.push(axisModel.__dzAxisProxy);\n      }\n    });\n    var seriesModelMap = createHashMap();\n    each(proxyList, function (axisProxy) {\n      each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\n        seriesModelMap.set(seriesModel.uid, seriesModel);\n      });\n    });\n    return seriesModelMap;\n  },\n  // Consider appendData, where filter should be performed. Because data process is\n  // in block mode currently, it is not need to worry about that the overallProgress\n  // execute every frame.\n  overallReset: function (ecModel, api) {\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      // We calculate window and reset axis here but not in model\n      // init stage and not after action dispatch handler, because\n      // reset should be called after seriesData.restoreData.\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\n      }); // Caution: data zoom filtering is order sensitive when using\n      // percent range and no min/max/scale set on axis.\n      // For example, we have dataZoom definition:\n      // [\n      //      {xAxisIndex: 0, start: 30, end: 70},\n      //      {yAxisIndex: 0, start: 20, end: 80}\n      // ]\n      // In this case, [20, 80] of y-dataZoom should be based on data\n      // that have filtered by x-dataZoom using range of [30, 70],\n      // but should not be based on full raw data. Thus sliding\n      // x-dataZoom will change both ranges of xAxis and yAxis,\n      // while sliding y-dataZoom will only change the range of yAxis.\n      // So we should filter x-axis after reset x-axis immediately,\n      // and then reset y-axis and filter y-axis.\n\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\n      });\n    });\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      // Fullfill all of the range props so that user\n      // is able to get them from chart.getOption().\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var percentRange = axisProxy.getDataPercentWindow();\n        var valueRange = axisProxy.getDataValueWindow();\n        dataZoomModel.setCalculatedRange({\n          start: percentRange[0],\n          end: percentRange[1],\n          startValue: valueRange[0],\n          endValue: valueRange[1]\n        });\n      }\n    });\n  }\n};\nexport default dataZoomProcessor;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { findEffectedDataZooms } from './helper.js';\nimport { each } from 'zrender/lib/core/util.js';\nexport default function installDataZoomAction(registers) {\n  registers.registerAction('dataZoom', function (payload, ecModel) {\n    var effectedModels = findEffectedDataZooms(ecModel, payload);\n    each(effectedModels, function (dataZoomModel) {\n      dataZoomModel.setRawRange({\n        start: payload.start,\n        end: payload.end,\n        startValue: payload.startValue,\n        endValue: payload.endValue\n      });\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport dataZoomProcessor from './dataZoomProcessor.js';\nimport installDataZoomAction from './dataZoomAction.js';\nvar installed = false;\nexport default function installCommon(registers) {\n  if (installed) {\n    return;\n  }\n\n  installed = true;\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, dataZoomProcessor);\n  installDataZoomAction(registers);\n  registers.registerSubTypeDefaulter('dataZoom', function () {\n    // Default 'slider' when no type specified.\n    return 'slider';\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport SelectZoomModel from './SelectZoomModel.js';\nimport SelectZoomView from './SelectZoomView.js';\nimport installCommon from './installCommon.js';\nexport function install(registers) {\n  registers.registerComponentModel(SelectZoomModel);\n  registers.registerComponentView(SelectZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ToolboxFeature =\n/** @class */\nfunction () {\n  function ToolboxFeature() {}\n\n  return ToolboxFeature;\n}();\n\nexport { ToolboxFeature };\nvar features = {};\nexport function registerFeature(name, ctor) {\n  features[name] = ctor;\n}\nexport function getFeature(name) {\n  return features[name];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as featureManager from './featureManager.js';\nimport ComponentModel from '../../model/Component.js';\n\nvar ToolboxModel =\n/** @class */\nfunction (_super) {\n  __extends(ToolboxModel, _super);\n\n  function ToolboxModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ToolboxModel.type;\n    return _this;\n  }\n\n  ToolboxModel.prototype.optionUpdated = function () {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    var ecModel = this.ecModel;\n    zrUtil.each(this.option.feature, function (featureOpt, featureName) {\n      var Feature = featureManager.getFeature(featureName);\n\n      if (Feature) {\n        if (Feature.getDefaultOption) {\n          Feature.defaultOption = Feature.getDefaultOption(ecModel);\n        }\n\n        zrUtil.merge(featureOpt, Feature.defaultOption);\n      }\n    });\n  };\n\n  ToolboxModel.type = 'toolbox';\n  ToolboxModel.layoutMode = {\n    type: 'box',\n    ignoreSize: true\n  };\n  ToolboxModel.defaultOption = {\n    show: true,\n    z: 6,\n    // zlevel: 0,\n    orient: 'horizontal',\n    left: 'right',\n    top: 'top',\n    // right\n    // bottom\n    backgroundColor: 'transparent',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemSize: 15,\n    itemGap: 8,\n    showTitle: true,\n    iconStyle: {\n      borderColor: '#666',\n      color: 'none'\n    },\n    emphasis: {\n      iconStyle: {\n        borderColor: '#3E98C5'\n      }\n    },\n    // textStyle: {},\n    // feature\n    tooltip: {\n      show: false,\n      position: 'bottom'\n    }\n  };\n  return ToolboxModel;\n}(ComponentModel);\n\nexport default ToolboxModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport { getLayoutRect, box as layoutBox, positionElement } from '../../util/layout.js';\nimport * as formatUtil from '../../util/format.js';\nimport * as graphic from '../../util/graphic.js';\n/**\n * Layout list like component.\n * It will box layout each items in group of component and then position the whole group in the viewport\n * @param {module:zrender/group/Group} group\n * @param {module:echarts/model/Component} componentModel\n * @param {module:echarts/ExtensionAPI}\n */\n\nexport function layout(group, componentModel, api) {\n  var boxLayoutParams = componentModel.getBoxLayoutParams();\n  var padding = componentModel.get('padding');\n  var viewportSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\n  layoutBox(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\n  positionElement(group, boxLayoutParams, viewportSize, padding);\n}\nexport function makeBackground(rect, componentModel) {\n  var padding = formatUtil.normalizeCssArray(componentModel.get('padding'));\n  var style = componentModel.getItemStyle(['color', 'opacity']);\n  style.fill = componentModel.get('backgroundColor');\n  rect = new graphic.Rect({\n    shape: {\n      x: rect.x - padding[3],\n      y: rect.y - padding[0],\n      width: rect.width + padding[1] + padding[3],\n      height: rect.height + padding[0] + padding[2],\n      r: componentModel.get('borderRadius')\n    },\n    style: style,\n    silent: true,\n    z2: -1\n  }); // FIXME\n  // `subPixelOptimizeRect` may bring some gap between edge of viewpart\n  // and background rect when setting like `left: 0`, `top: 0`.\n  // graphic.subPixelOptimizeRect(rect);\n\n  return rect;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as textContain from 'zrender/lib/contain/text.js';\nimport * as graphic from '../../util/graphic.js';\nimport { enterEmphasis, leaveEmphasis } from '../../util/states.js';\nimport Model from '../../model/Model.js';\nimport DataDiffer from '../../data/DataDiffer.js';\nimport * as listComponentHelper from '../helper/listComponent.js';\nimport ComponentView from '../../view/Component.js';\nimport { ToolboxFeature, getFeature } from './featureManager.js';\nimport { getUID } from '../../util/component.js';\nimport ZRText from 'zrender/lib/graphic/Text.js';\n\nvar ToolboxView =\n/** @class */\nfunction (_super) {\n  __extends(ToolboxView, _super);\n\n  function ToolboxView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n\n    if (!toolboxModel.get('show')) {\n      return;\n    }\n\n    var itemSize = +toolboxModel.get('itemSize');\n    var isVertical = toolboxModel.get('orient') === 'vertical';\n    var featureOpts = toolboxModel.get('feature') || {};\n    var features = this._features || (this._features = {});\n    var featureNames = [];\n    zrUtil.each(featureOpts, function (opt, name) {\n      featureNames.push(name);\n    });\n    new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute(); // Keep for diff.\n\n    this._featureNames = featureNames;\n\n    function processFeature(newIndex, oldIndex) {\n      var featureName = featureNames[newIndex];\n      var oldName = featureNames[oldIndex];\n      var featureOpt = featureOpts[featureName];\n      var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\n      var feature; // FIX#11236, merge feature title from MagicType newOption. TODO: consider seriesIndex ?\n\n      if (payload && payload.newTitle != null && payload.featureName === featureName) {\n        featureOpt.title = payload.newTitle;\n      }\n\n      if (featureName && !oldName) {\n        // Create\n        if (isUserFeatureName(featureName)) {\n          feature = {\n            onclick: featureModel.option.onclick,\n            featureName: featureName\n          };\n        } else {\n          var Feature = getFeature(featureName);\n\n          if (!Feature) {\n            return;\n          }\n\n          feature = new Feature();\n        }\n\n        features[featureName] = feature;\n      } else {\n        feature = features[oldName]; // If feature does not exsit.\n\n        if (!feature) {\n          return;\n        }\n      }\n\n      feature.uid = getUID('toolbox-feature');\n      feature.model = featureModel;\n      feature.ecModel = ecModel;\n      feature.api = api;\n      var isToolboxFeature = feature instanceof ToolboxFeature;\n\n      if (!featureName && oldName) {\n        isToolboxFeature && feature.dispose && feature.dispose(ecModel, api);\n        return;\n      }\n\n      if (!featureModel.get('show') || isToolboxFeature && feature.unusable) {\n        isToolboxFeature && feature.remove && feature.remove(ecModel, api);\n        return;\n      }\n\n      createIconPaths(featureModel, feature, featureName);\n\n      featureModel.setIconStatus = function (iconName, status) {\n        var option = this.option;\n        var iconPaths = this.iconPaths;\n        option.iconStatus = option.iconStatus || {};\n        option.iconStatus[iconName] = status;\n\n        if (iconPaths[iconName]) {\n          (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\n        }\n      };\n\n      if (feature instanceof ToolboxFeature) {\n        if (feature.render) {\n          feature.render(featureModel, ecModel, api, payload);\n        }\n      }\n    }\n\n    function createIconPaths(featureModel, feature, featureName) {\n      var iconStyleModel = featureModel.getModel('iconStyle');\n      var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']); // If one feature has mutiple icon. they are orginaized as\n      // {\n      //     icon: {\n      //         foo: '',\n      //         bar: ''\n      //     },\n      //     title: {\n      //         foo: '',\n      //         bar: ''\n      //     }\n      // }\n\n      var icons = feature instanceof ToolboxFeature && feature.getIcons ? feature.getIcons() : featureModel.get('icon');\n      var titles = featureModel.get('title') || {};\n      var iconsMap;\n      var titlesMap;\n\n      if (zrUtil.isString(icons)) {\n        iconsMap = {};\n        iconsMap[featureName] = icons;\n      } else {\n        iconsMap = icons;\n      }\n\n      if (zrUtil.isString(titles)) {\n        titlesMap = {};\n        titlesMap[featureName] = titles;\n      } else {\n        titlesMap = titles;\n      }\n\n      var iconPaths = featureModel.iconPaths = {};\n      zrUtil.each(iconsMap, function (iconStr, iconName) {\n        var path = graphic.createIcon(iconStr, {}, {\n          x: -itemSize / 2,\n          y: -itemSize / 2,\n          width: itemSize,\n          height: itemSize\n        }); // TODO handling image\n\n        path.setStyle(iconStyleModel.getItemStyle());\n        var pathEmphasisState = path.ensureState('emphasis');\n        pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle(); // Text position calculation\n\n        var textContent = new ZRText({\n          style: {\n            text: titlesMap[iconName],\n            align: iconStyleEmphasisModel.get('textAlign'),\n            borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\n            padding: iconStyleEmphasisModel.get('textPadding'),\n            fill: null\n          },\n          ignore: true\n        });\n        path.setTextContent(textContent);\n        graphic.setTooltipConfig({\n          el: path,\n          componentModel: toolboxModel,\n          itemName: iconName,\n          formatterParamsExtra: {\n            title: titlesMap[iconName]\n          }\n        });\n        path.__title = titlesMap[iconName];\n        path.on('mouseover', function () {\n          // Should not reuse above hoverStyle, which might be modified.\n          var hoverStyle = iconStyleEmphasisModel.getItemStyle();\n          var defaultTextPosition = isVertical ? toolboxModel.get('right') == null && toolboxModel.get('left') !== 'right' ? 'right' : 'left' : toolboxModel.get('bottom') == null && toolboxModel.get('top') !== 'bottom' ? 'bottom' : 'top';\n          textContent.setStyle({\n            fill: iconStyleEmphasisModel.get('textFill') || hoverStyle.fill || hoverStyle.stroke || '#000',\n            backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\n          });\n          path.setTextConfig({\n            position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\n          });\n          textContent.ignore = !toolboxModel.get('showTitle'); // Use enterEmphasis and leaveEmphasis provide by ec.\n          // There are flags managed by the echarts.\n\n          api.enterEmphasis(this);\n        }).on('mouseout', function () {\n          if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\n            api.leaveEmphasis(this);\n          }\n\n          textContent.hide();\n        });\n        (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\n        group.add(path);\n        path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName));\n        iconPaths[iconName] = path;\n      });\n    }\n\n    listComponentHelper.layout(group, toolboxModel, api); // Render background after group is layout\n    // FIXME\n\n    group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel)); // Adjust icon title positions to avoid them out of screen\n\n    isVertical || group.eachChild(function (icon) {\n      var titleText = icon.__title; // const hoverStyle = icon.hoverStyle;\n      // TODO simplify code?\n\n      var emphasisState = icon.ensureState('emphasis');\n      var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\n      var textContent = icon.getTextContent();\n      var emphasisTextState = textContent && textContent.ensureState('emphasis'); // May be background element\n\n      if (emphasisTextState && !zrUtil.isFunction(emphasisTextState) && titleText) {\n        var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\n        var rect = textContain.getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\n        var offsetX = icon.x + group.x;\n        var offsetY = icon.y + group.y + itemSize;\n        var needPutOnTop = false;\n\n        if (offsetY + rect.height > api.getHeight()) {\n          emphasisTextConfig.position = 'top';\n          needPutOnTop = true;\n        }\n\n        var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 10;\n\n        if (offsetX + rect.width / 2 > api.getWidth()) {\n          emphasisTextConfig.position = ['100%', topOffset];\n          emphasisTextStyle.align = 'right';\n        } else if (offsetX - rect.width / 2 < 0) {\n          emphasisTextConfig.position = [0, topOffset];\n          emphasisTextStyle.align = 'left';\n        }\n      }\n    });\n  };\n\n  ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\n    });\n  }; // updateLayout(toolboxModel, ecModel, api, payload) {\n  //     zrUtil.each(this._features, function (feature) {\n  //         feature.updateLayout && feature.updateLayout(feature.model, ecModel, api, payload);\n  //     });\n  // },\n\n\n  ToolboxView.prototype.remove = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.remove && feature.remove(ecModel, api);\n    });\n    this.group.removeAll();\n  };\n\n  ToolboxView.prototype.dispose = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.dispose && feature.dispose(ecModel, api);\n    });\n  };\n\n  ToolboxView.type = 'toolbox';\n  return ToolboxView;\n}(ComponentView);\n\nfunction isUserFeatureName(featureName) {\n  return featureName.indexOf('my') === 0;\n}\n\nexport default ToolboxView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/* global Uint8Array, document */\n\nimport env from 'zrender/lib/core/env.js';\nimport { ToolboxFeature } from '../featureManager.js';\nimport { isFunction } from 'zrender/lib/core/util.js';\n/* global window, document */\n\nvar SaveAsImage =\n/** @class */\nfunction (_super) {\n  __extends(SaveAsImage, _super);\n\n  function SaveAsImage() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  SaveAsImage.prototype.onclick = function (ecModel, api) {\n    var model = this.model;\n    var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\n    var isSvg = api.getZr().painter.getType() === 'svg';\n    var type = isSvg ? 'svg' : model.get('type', true) || 'png';\n    var url = api.getConnectedDataURL({\n      type: type,\n      backgroundColor: model.get('backgroundColor', true) || ecModel.get('backgroundColor') || '#fff',\n      connectedBackgroundColor: model.get('connectedBackgroundColor'),\n      excludeComponents: model.get('excludeComponents'),\n      pixelRatio: model.get('pixelRatio')\n    });\n    var browser = env.browser; // Chrome, Firefox, New Edge\n\n    if (isFunction(MouseEvent) && (browser.newEdge || !browser.ie && !browser.edge)) {\n      var $a = document.createElement('a');\n      $a.download = title + '.' + type;\n      $a.target = '_blank';\n      $a.href = url;\n      var evt = new MouseEvent('click', {\n        // some micro front-end framework， window maybe is a Proxy\n        view: document.defaultView,\n        bubbles: true,\n        cancelable: false\n      });\n      $a.dispatchEvent(evt);\n    } // IE or old Edge\n    else {\n        // @ts-ignore\n        if (window.navigator.msSaveOrOpenBlob || isSvg) {\n          var parts = url.split(','); // data:[<mime type>][;charset=<charset>][;base64],<encoded data>\n\n          var base64Encoded = parts[0].indexOf('base64') > -1;\n          var bstr = isSvg // should decode the svg data uri first\n          ? decodeURIComponent(parts[1]) : parts[1]; // only `atob` when the data uri is encoded with base64\n          // otherwise, like `svg` data uri exported by zrender,\n          // there will be an error, for it's not encoded with base64.\n          // (just a url-encoded string through `encodeURIComponent`)\n\n          base64Encoded && (bstr = window.atob(bstr));\n          var filename = title + '.' + type; // @ts-ignore\n\n          if (window.navigator.msSaveOrOpenBlob) {\n            var n = bstr.length;\n            var u8arr = new Uint8Array(n);\n\n            while (n--) {\n              u8arr[n] = bstr.charCodeAt(n);\n            }\n\n            var blob = new Blob([u8arr]); // @ts-ignore\n\n            window.navigator.msSaveOrOpenBlob(blob, filename);\n          } else {\n            var frame = document.createElement('iframe');\n            document.body.appendChild(frame);\n            var cw = frame.contentWindow;\n            var doc = cw.document;\n            doc.open('image/svg+xml', 'replace');\n            doc.write(bstr);\n            doc.close();\n            cw.focus();\n            doc.execCommand('SaveAs', true, filename);\n            document.body.removeChild(frame);\n          }\n        } else {\n          var lang = model.get('lang');\n          var html = '' + '<body style=\"margin:0;\">' + '<img src=\"' + url + '\" style=\"max-width:100%;\" title=\"' + (lang && lang[0] || '') + '\" />' + '</body>';\n          var tab = window.open();\n          tab.document.write(html);\n          tab.document.title = title;\n        }\n      }\n  };\n\n  SaveAsImage.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\n      title: ecModel.getLocaleModel().get(['toolbox', 'saveAsImage', 'title']),\n      type: 'png',\n      // Default use option.backgroundColor\n      // backgroundColor: '#fff',\n      connectedBackgroundColor: '#fff',\n      name: '',\n      excludeComponents: ['toolbox'],\n      // use current pixel ratio of device by default\n      // pixelRatio: 1,\n      lang: ecModel.getLocaleModel().get(['toolbox', 'saveAsImage', 'lang'])\n    };\n    return defaultOption;\n  };\n\n  return SaveAsImage;\n}(ToolboxFeature);\n\nexport default SaveAsImage;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { ToolboxFeature } from '../featureManager.js';\nimport { SINGLE_REFERRING } from '../../../util/model.js';\nvar INNER_STACK_KEYWORD = '__ec_magicType_stack__';\nvar ICON_TYPES = ['line', 'bar', 'stack']; // stack and tiled appears in pair for the title\n\nvar TITLE_TYPES = ['line', 'bar', 'stack', 'tiled'];\nvar radioTypes = [['line', 'bar'], ['stack']];\n\nvar MagicType =\n/** @class */\nfunction (_super) {\n  __extends(MagicType, _super);\n\n  function MagicType() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  MagicType.prototype.getIcons = function () {\n    var model = this.model;\n    var availableIcons = model.get('icon');\n    var icons = {};\n    zrUtil.each(model.get('type'), function (type) {\n      if (availableIcons[type]) {\n        icons[type] = availableIcons[type];\n      }\n    });\n    return icons;\n  };\n\n  MagicType.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      type: [],\n      // Icon group\n      icon: {\n        line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\n        bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\n        // eslint-disable-next-line\n        stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z' // jshint ignore:line\n\n      },\n      // `line`, `bar`, `stack`, `tiled`\n      title: ecModel.getLocaleModel().get(['toolbox', 'magicType', 'title']),\n      option: {},\n      seriesIndex: {}\n    };\n    return defaultOption;\n  };\n\n  MagicType.prototype.onclick = function (ecModel, api, type) {\n    var model = this.model;\n    var seriesIndex = model.get(['seriesIndex', type]); // Not supported magicType\n\n    if (!seriesOptGenreator[type]) {\n      return;\n    }\n\n    var newOption = {\n      series: []\n    };\n\n    var generateNewSeriesTypes = function (seriesModel) {\n      var seriesType = seriesModel.subType;\n      var seriesId = seriesModel.id;\n      var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\n\n      if (newSeriesOpt) {\n        // PENDING If merge original option?\n        zrUtil.defaults(newSeriesOpt, seriesModel.option);\n        newOption.series.push(newSeriesOpt);\n      } // Modify boundaryGap\n\n\n      var coordSys = seriesModel.coordinateSystem;\n\n      if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\n        var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n        if (categoryAxis) {\n          var axisDim = categoryAxis.dim;\n          var axisType = axisDim + 'Axis';\n          var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n          var axisIndex = axisModel.componentIndex;\n          newOption[axisType] = newOption[axisType] || [];\n\n          for (var i = 0; i <= axisIndex; i++) {\n            newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\n          }\n\n          newOption[axisType][axisIndex].boundaryGap = type === 'bar';\n        }\n      }\n    };\n\n    zrUtil.each(radioTypes, function (radio) {\n      if (zrUtil.indexOf(radio, type) >= 0) {\n        zrUtil.each(radio, function (item) {\n          model.setIconStatus(item, 'normal');\n        });\n      }\n    });\n    model.setIconStatus(type, 'emphasis');\n    ecModel.eachComponent({\n      mainType: 'series',\n      query: seriesIndex == null ? null : {\n        seriesIndex: seriesIndex\n      }\n    }, generateNewSeriesTypes);\n    var newTitle;\n    var currentType = type; // Change title of stack\n\n    if (type === 'stack') {\n      // use titles in model instead of ecModel\n      // as stack and tiled appears in pair, just flip them\n      // no need of checking stack state\n      newTitle = zrUtil.merge({\n        stack: model.option.title.tiled,\n        tiled: model.option.title.stack\n      }, model.option.title);\n\n      if (model.get(['iconStatus', type]) !== 'emphasis') {\n        currentType = 'tiled';\n      }\n    }\n\n    api.dispatchAction({\n      type: 'changeMagicType',\n      currentType: currentType,\n      newOption: newOption,\n      newTitle: newTitle,\n      featureName: 'magicType'\n    });\n  };\n\n  return MagicType;\n}(ToolboxFeature);\n\nvar seriesOptGenreator = {\n  'line': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'bar') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'line',\n        // Preserve data related option\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'line']) || {}, true);\n    }\n  },\n  'bar': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'line') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'bar',\n        // Preserve data related option\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'bar']) || {}, true);\n    }\n  },\n  'stack': function (seriesType, seriesId, seriesModel, model) {\n    var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\n\n    if (seriesType === 'line' || seriesType === 'bar') {\n      model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\n      return zrUtil.merge({\n        id: seriesId,\n        stack: isStack ? '' : INNER_STACK_KEYWORD\n      }, model.get(['option', 'stack']) || {}, true);\n    }\n  }\n}; // TODO: SELF REGISTERED.\n\necharts.registerAction({\n  type: 'changeMagicType',\n  event: 'magicTypeChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.mergeOption(payload.newOption);\n});\nexport default MagicType;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/* global document */\n\nimport * as echarts from '../../../core/echarts.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { ToolboxFeature } from '../featureManager.js';\nimport { addEventListener } from 'zrender/lib/core/event.js';\nimport { warn } from '../../../util/log.js';\n/* global document */\n\nvar BLOCK_SPLITER = new Array(60).join('-');\nvar ITEM_SPLITER = '\\t';\n/**\n * Group series into two types\n *  1. on category axis, like line, bar\n *  2. others, like scatter, pie\n */\n\nfunction groupSeries(ecModel) {\n  var seriesGroupByCategoryAxis = {};\n  var otherSeries = [];\n  var meta = [];\n  ecModel.eachRawSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\n      // TODO: TYPE Consider polar? Include polar may increase unecessary bundle size.\n      var baseAxis = coordSys.getBaseAxis();\n\n      if (baseAxis.type === 'category') {\n        var key = baseAxis.dim + '_' + baseAxis.index;\n\n        if (!seriesGroupByCategoryAxis[key]) {\n          seriesGroupByCategoryAxis[key] = {\n            categoryAxis: baseAxis,\n            valueAxis: coordSys.getOtherAxis(baseAxis),\n            series: []\n          };\n          meta.push({\n            axisDim: baseAxis.dim,\n            axisIndex: baseAxis.index\n          });\n        }\n\n        seriesGroupByCategoryAxis[key].series.push(seriesModel);\n      } else {\n        otherSeries.push(seriesModel);\n      }\n    } else {\n      otherSeries.push(seriesModel);\n    }\n  });\n  return {\n    seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\n    other: otherSeries,\n    meta: meta\n  };\n}\n/**\n * Assemble content of series on cateogory axis\n * @inner\n */\n\n\nfunction assembleSeriesWithCategoryAxis(groups) {\n  var tables = [];\n  zrUtil.each(groups, function (group, key) {\n    var categoryAxis = group.categoryAxis;\n    var valueAxis = group.valueAxis;\n    var valueAxisDim = valueAxis.dim;\n    var headers = [' '].concat(zrUtil.map(group.series, function (series) {\n      return series.name;\n    })); // @ts-ignore TODO Polar\n\n    var columns = [categoryAxis.model.getCategories()];\n    zrUtil.each(group.series, function (series) {\n      var rawData = series.getRawData();\n      columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function (val) {\n        return val;\n      }));\n    }); // Assemble table content\n\n    var lines = [headers.join(ITEM_SPLITER)];\n\n    for (var i = 0; i < columns[0].length; i++) {\n      var items = [];\n\n      for (var j = 0; j < columns.length; j++) {\n        items.push(columns[j][i]);\n      }\n\n      lines.push(items.join(ITEM_SPLITER));\n    }\n\n    tables.push(lines.join('\\n'));\n  });\n  return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n/**\n * Assemble content of other series\n */\n\n\nfunction assembleOtherSeries(series) {\n  return zrUtil.map(series, function (series) {\n    var data = series.getRawData();\n    var lines = [series.name];\n    var vals = [];\n    data.each(data.dimensions, function () {\n      var argLen = arguments.length;\n      var dataIndex = arguments[argLen - 1];\n      var name = data.getName(dataIndex);\n\n      for (var i = 0; i < argLen - 1; i++) {\n        vals[i] = arguments[i];\n      }\n\n      lines.push((name ? name + ITEM_SPLITER : '') + vals.join(ITEM_SPLITER));\n    });\n    return lines.join('\\n');\n  }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction getContentFromModel(ecModel) {\n  var result = groupSeries(ecModel);\n  return {\n    value: zrUtil.filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function (str) {\n      return !!str.replace(/[\\n\\t\\s]/g, '');\n    }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\n    meta: result.meta\n  };\n}\n\nfunction trim(str) {\n  return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n}\n/**\n * If a block is tsv format\n */\n\n\nfunction isTSVFormat(block) {\n  // Simple method to find out if a block is tsv format\n  var firstLine = block.slice(0, block.indexOf('\\n'));\n\n  if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\n    return true;\n  }\n}\n\nvar itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\n/**\n * @param {string} tsv\n * @return {Object}\n */\n\nfunction parseTSVContents(tsv) {\n  var tsvLines = tsv.split(/\\n+/g);\n  var headers = trim(tsvLines.shift()).split(itemSplitRegex);\n  var categories = [];\n  var series = zrUtil.map(headers, function (header) {\n    return {\n      name: header,\n      data: []\n    };\n  });\n\n  for (var i = 0; i < tsvLines.length; i++) {\n    var items = trim(tsvLines[i]).split(itemSplitRegex);\n    categories.push(items.shift());\n\n    for (var j = 0; j < items.length; j++) {\n      series[j] && (series[j].data[i] = items[j]);\n    }\n  }\n\n  return {\n    series: series,\n    categories: categories\n  };\n}\n\nfunction parseListContents(str) {\n  var lines = str.split(/\\n+/g);\n  var seriesName = trim(lines.shift());\n  var data = [];\n\n  for (var i = 0; i < lines.length; i++) {\n    // if line is empty, ignore it.\n    // there is a case that a user forgot to delete `\\n`.\n    var line = trim(lines[i]);\n\n    if (!line) {\n      continue;\n    }\n\n    var items = line.split(itemSplitRegex);\n    var name_1 = '';\n    var value = void 0;\n    var hasName = false;\n\n    if (isNaN(items[0])) {\n      // First item is name\n      hasName = true;\n      name_1 = items[0];\n      items = items.slice(1);\n      data[i] = {\n        name: name_1,\n        value: []\n      };\n      value = data[i].value;\n    } else {\n      value = data[i] = [];\n    }\n\n    for (var j = 0; j < items.length; j++) {\n      value.push(+items[j]);\n    }\n\n    if (value.length === 1) {\n      hasName ? data[i].value = value[0] : data[i] = value[0];\n    }\n  }\n\n  return {\n    name: seriesName,\n    data: data\n  };\n}\n\nfunction parseContents(str, blockMetaList) {\n  var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\n  var newOption = {\n    series: []\n  };\n  zrUtil.each(blocks, function (block, idx) {\n    if (isTSVFormat(block)) {\n      var result = parseTSVContents(block);\n      var blockMeta = blockMetaList[idx];\n      var axisKey = blockMeta.axisDim + 'Axis';\n\n      if (blockMeta) {\n        newOption[axisKey] = newOption[axisKey] || [];\n        newOption[axisKey][blockMeta.axisIndex] = {\n          data: result.categories\n        };\n        newOption.series = newOption.series.concat(result.series);\n      }\n    } else {\n      var result = parseListContents(block);\n      newOption.series.push(result);\n    }\n  });\n  return newOption;\n}\n\nvar DataView =\n/** @class */\nfunction (_super) {\n  __extends(DataView, _super);\n\n  function DataView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataView.prototype.onclick = function (ecModel, api) {\n    // FIXME: better way?\n    setTimeout(function () {\n      api.dispatchAction({\n        type: 'hideTip'\n      });\n    });\n    var container = api.getDom();\n    var model = this.model;\n\n    if (this._dom) {\n      container.removeChild(this._dom);\n    }\n\n    var root = document.createElement('div'); // use padding to avoid 5px whitespace\n\n    root.style.cssText = 'position:absolute;top:0;bottom:0;left:0;right:0;padding:5px';\n    root.style.backgroundColor = model.get('backgroundColor') || '#fff'; // Create elements\n\n    var header = document.createElement('h4');\n    var lang = model.get('lang') || [];\n    header.innerHTML = lang[0] || model.get('title');\n    header.style.cssText = 'margin:10px 20px';\n    header.style.color = model.get('textColor');\n    var viewMain = document.createElement('div');\n    var textarea = document.createElement('textarea');\n    viewMain.style.cssText = 'overflow:auto';\n    var optionToContent = model.get('optionToContent');\n    var contentToOption = model.get('contentToOption');\n    var result = getContentFromModel(ecModel);\n\n    if (zrUtil.isFunction(optionToContent)) {\n      var htmlOrDom = optionToContent(api.getOption());\n\n      if (zrUtil.isString(htmlOrDom)) {\n        viewMain.innerHTML = htmlOrDom;\n      } else if (zrUtil.isDom(htmlOrDom)) {\n        viewMain.appendChild(htmlOrDom);\n      }\n    } else {\n      // Use default textarea\n      textarea.readOnly = model.get('readOnly');\n      var style = textarea.style; // eslint-disable-next-line max-len\n\n      style.cssText = 'display:block;width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;resize:none;box-sizing:border-box;outline:none';\n      style.color = model.get('textColor');\n      style.borderColor = model.get('textareaBorderColor');\n      style.backgroundColor = model.get('textareaColor');\n      textarea.value = result.value;\n      viewMain.appendChild(textarea);\n    }\n\n    var blockMetaList = result.meta;\n    var buttonContainer = document.createElement('div');\n    buttonContainer.style.cssText = 'position:absolute;bottom:5px;left:0;right:0'; // eslint-disable-next-line max-len\n\n    var buttonStyle = 'float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\n    var closeButton = document.createElement('div');\n    var refreshButton = document.createElement('div');\n    buttonStyle += ';background-color:' + model.get('buttonColor');\n    buttonStyle += ';color:' + model.get('buttonTextColor');\n    var self = this;\n\n    function close() {\n      container.removeChild(root);\n      self._dom = null;\n    }\n\n    addEventListener(closeButton, 'click', close);\n    addEventListener(refreshButton, 'click', function () {\n      if (contentToOption == null && optionToContent != null || contentToOption != null && optionToContent == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          // eslint-disable-next-line\n          warn('It seems you have just provided one of `contentToOption` and `optionToContent` functions but missed the other one. Data change is ignored.');\n        }\n\n        close();\n        return;\n      }\n\n      var newOption;\n\n      try {\n        if (zrUtil.isFunction(contentToOption)) {\n          newOption = contentToOption(viewMain, api.getOption());\n        } else {\n          newOption = parseContents(textarea.value, blockMetaList);\n        }\n      } catch (e) {\n        close();\n        throw new Error('Data view format error ' + e);\n      }\n\n      if (newOption) {\n        api.dispatchAction({\n          type: 'changeDataView',\n          newOption: newOption\n        });\n      }\n\n      close();\n    });\n    closeButton.innerHTML = lang[1];\n    refreshButton.innerHTML = lang[2];\n    refreshButton.style.cssText = closeButton.style.cssText = buttonStyle;\n    !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\n    buttonContainer.appendChild(closeButton);\n    root.appendChild(header);\n    root.appendChild(viewMain);\n    root.appendChild(buttonContainer);\n    viewMain.style.height = container.clientHeight - 80 + 'px';\n    container.appendChild(root);\n    this._dom = root;\n  };\n\n  DataView.prototype.remove = function (ecModel, api) {\n    this._dom && api.getDom().removeChild(this._dom);\n  };\n\n  DataView.prototype.dispose = function (ecModel, api) {\n    this.remove(ecModel, api);\n  };\n\n  DataView.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      readOnly: false,\n      optionToContent: null,\n      contentToOption: null,\n      // eslint-disable-next-line\n      icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\n      title: ecModel.getLocaleModel().get(['toolbox', 'dataView', 'title']),\n      lang: ecModel.getLocaleModel().get(['toolbox', 'dataView', 'lang']),\n      backgroundColor: '#fff',\n      textColor: '#000',\n      textareaColor: '#fff',\n      textareaBorderColor: '#333',\n      buttonColor: '#c23531',\n      buttonTextColor: '#fff'\n    };\n    return defaultOption;\n  };\n\n  return DataView;\n}(ToolboxFeature);\n/**\n * @inner\n */\n\n\nfunction tryMergeDataOption(newData, originalData) {\n  return zrUtil.map(newData, function (newVal, idx) {\n    var original = originalData && originalData[idx];\n\n    if (zrUtil.isObject(original) && !zrUtil.isArray(original)) {\n      var newValIsObject = zrUtil.isObject(newVal) && !zrUtil.isArray(newVal);\n\n      if (!newValIsObject) {\n        newVal = {\n          value: newVal\n        };\n      } // original data has name but new data has no name\n\n\n      var shouldDeleteName = original.name != null && newVal.name == null; // Original data has option\n\n      newVal = zrUtil.defaults(newVal, original);\n      shouldDeleteName && delete newVal.name;\n      return newVal;\n    } else {\n      return newVal;\n    }\n  });\n} // TODO: SELF REGISTERED.\n\n\necharts.registerAction({\n  type: 'changeDataView',\n  event: 'dataViewChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  var newSeriesOptList = [];\n  zrUtil.each(payload.newOption.series, function (seriesOpt) {\n    var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\n\n    if (!seriesModel) {\n      // New created series\n      // Geuss the series type\n      newSeriesOptList.push(zrUtil.extend({\n        // Default is scatter\n        type: 'scatter'\n      }, seriesOpt));\n    } else {\n      var originalData = seriesModel.get('data');\n      newSeriesOptList.push({\n        name: seriesOpt.name,\n        data: tryMergeDataOption(seriesOpt.data, originalData)\n      });\n    }\n  });\n  ecModel.mergeOption(zrUtil.defaults({\n    series: newSeriesOptList\n  }, payload.newOption));\n});\nexport default DataView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { makeInner } from '../../util/model.js';\nvar each = zrUtil.each;\nvar inner = makeInner();\n/**\n * @param ecModel\n * @param newSnapshot key is dataZoomId\n */\n\nexport function push(ecModel, newSnapshot) {\n  var storedSnapshots = getStoreSnapshots(ecModel); // If previous dataZoom can not be found,\n  // complete an range with current range.\n\n  each(newSnapshot, function (batchItem, dataZoomId) {\n    var i = storedSnapshots.length - 1;\n\n    for (; i >= 0; i--) {\n      var snapshot = storedSnapshots[i];\n\n      if (snapshot[dataZoomId]) {\n        break;\n      }\n    }\n\n    if (i < 0) {\n      // No origin range set, create one by current range.\n      var dataZoomModel = ecModel.queryComponents({\n        mainType: 'dataZoom',\n        subType: 'select',\n        id: dataZoomId\n      })[0];\n\n      if (dataZoomModel) {\n        var percentRange = dataZoomModel.getPercentRange();\n        storedSnapshots[0][dataZoomId] = {\n          dataZoomId: dataZoomId,\n          start: percentRange[0],\n          end: percentRange[1]\n        };\n      }\n    }\n  });\n  storedSnapshots.push(newSnapshot);\n}\nexport function pop(ecModel) {\n  var storedSnapshots = getStoreSnapshots(ecModel);\n  var head = storedSnapshots[storedSnapshots.length - 1];\n  storedSnapshots.length > 1 && storedSnapshots.pop(); // Find top for all dataZoom.\n\n  var snapshot = {};\n  each(head, function (batchItem, dataZoomId) {\n    for (var i = storedSnapshots.length - 1; i >= 0; i--) {\n      batchItem = storedSnapshots[i][dataZoomId];\n\n      if (batchItem) {\n        snapshot[dataZoomId] = batchItem;\n        break;\n      }\n    }\n  });\n  return snapshot;\n}\nexport function clear(ecModel) {\n  inner(ecModel).snapshots = null;\n}\nexport function count(ecModel) {\n  return getStoreSnapshots(ecModel).length;\n}\n/**\n * History length of each dataZoom may be different.\n * this._history[0] is used to store origin range.\n */\n\nfunction getStoreSnapshots(ecModel) {\n  var store = inner(ecModel);\n\n  if (!store.snapshots) {\n    store.snapshots = [{}];\n  }\n\n  return store.snapshots;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts.js';\nimport * as history from '../../dataZoom/history.js';\nimport { ToolboxFeature } from '../featureManager.js';\n\nvar RestoreOption =\n/** @class */\nfunction (_super) {\n  __extends(RestoreOption, _super);\n\n  function RestoreOption() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  RestoreOption.prototype.onclick = function (ecModel, api) {\n    history.clear(ecModel);\n    api.dispatchAction({\n      type: 'restore',\n      from: this.uid\n    });\n  };\n\n  RestoreOption.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      // eslint-disable-next-line\n      icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\n      title: ecModel.getLocaleModel().get(['toolbox', 'restore', 'title'])\n    };\n    return defaultOption;\n  };\n\n  return RestoreOption;\n}(ToolboxFeature); // TODO: SELF REGISTERED.\n\n\necharts.registerAction({\n  type: 'restore',\n  event: 'restore',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.resetOption('recreate');\n});\nexport default RestoreOption;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { each, indexOf, curry, assert, map, createHashMap } from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as brushHelper from './brushHelper.js';\nimport { parseFinder as modelUtilParseFinder } from '../../util/model.js'; // FIXME\n// how to genarialize to more coordinate systems.\n\nvar INCLUDE_FINDER_MAIN_TYPES = ['grid', 'xAxis', 'yAxis', 'geo', 'graph', 'polar', 'radiusAxis', 'angleAxis', 'bmap'];\n\nvar BrushTargetManager =\n/** @class */\nfunction () {\n  /**\n   * @param finder contains Index/Id/Name of xAxis/yAxis/geo/grid\n   *        Each can be {number|Array.<number>}. like: {xAxisIndex: [3, 4]}\n   * @param opt.include include coordinate system types.\n   */\n  function BrushTargetManager(finder, ecModel, opt) {\n    var _this = this;\n\n    this._targetInfoList = [];\n    var foundCpts = parseFinder(ecModel, finder);\n    each(targetInfoBuilders, function (builder, type) {\n      if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\n        builder(foundCpts, _this._targetInfoList);\n      }\n    });\n  }\n\n  BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\n    this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      (area.coordRanges || (area.coordRanges = [])).push(coordRange); // area.coordRange is the first of area.coordRanges\n\n      if (!area.coordRange) {\n        area.coordRange = coordRange; // In 'category' axis, coord to pixel is not reversible, so we can not\n        // rebuild range by coordRange accrately, which may bring trouble when\n        // brushing only one item. So we use __rangeOffset to rebuilding range\n        // by coordRange. And this it only used in brush component so it is no\n        // need to be adapted to coordRanges.\n\n        var result = coordConvert[area.brushType](0, coordSys, coordRange);\n        area.__rangeOffset = {\n          offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\n          xyMinMax: result.xyMinMax\n        };\n      }\n    });\n    return areas;\n  };\n\n  BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (targetInfo && targetInfo !== true) {\n        each(targetInfo.coordSyses, function (coordSys) {\n          var result = coordConvert[area.brushType](1, coordSys, area.range, true);\n          cb(area, result.values, coordSys, ecModel);\n        });\n      }\n    }, this);\n  };\n  /**\n   * the `areas` is `BrushModel.areas`.\n   * Called in layout stage.\n   * convert `area.coordRange` to global range and set panelId to `area.range`.\n   */\n\n\n  BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\n        assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\n      }\n\n      area.range = area.range || []; // convert coordRange to global range and set panelId.\n\n      if (targetInfo && targetInfo !== true) {\n        area.panelId = targetInfo.panelId; // (1) area.range shoule always be calculate from coordRange but does\n        // not keep its original value, for the sake of the dataZoom scenario,\n        // where area.coordRange remains unchanged but area.range may be changed.\n        // (2) Only support converting one coordRange to pixel range in brush\n        // component. So do not consider `coordRanges`.\n        // (3) About __rangeOffset, see comment above.\n\n        var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\n        var rangeOffset = area.__rangeOffset;\n        area.range = rangeOffset ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax)) : result.values;\n      }\n    }, this);\n  };\n\n  BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\n    return map(this._targetInfoList, function (targetInfo) {\n      var rect = targetInfo.getPanelRect();\n      return {\n        panelId: targetInfo.panelId,\n        defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\n        clipPath: brushHelper.makeRectPanelClipPath(rect),\n        isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\n        getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect)\n      };\n    });\n  };\n\n  BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\n    // Check whether area is bound in coord, and series do not belong to that coord.\n    // If do not do this check, some brush (like lineX) will controll all axes.\n    var targetInfo = this.findTargetInfo(area, ecModel);\n    return targetInfo === true || targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0;\n  };\n  /**\n   * If return Object, a coord found.\n   * If reutrn true, global found.\n   * Otherwise nothing found.\n   */\n\n\n  BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\n    var targetInfoList = this._targetInfoList;\n    var foundCpts = parseFinder(ecModel, area);\n\n    for (var i = 0; i < targetInfoList.length; i++) {\n      var targetInfo = targetInfoList[i];\n      var areaPanelId = area.panelId;\n\n      if (areaPanelId) {\n        if (targetInfo.panelId === areaPanelId) {\n          return targetInfo;\n        }\n      } else {\n        for (var j = 0; j < targetInfoMatchers.length; j++) {\n          if (targetInfoMatchers[j](foundCpts, targetInfo)) {\n            return targetInfo;\n          }\n        }\n      }\n    }\n\n    return true;\n  };\n\n  return BrushTargetManager;\n}();\n\nfunction formatMinMax(minMax) {\n  minMax[0] > minMax[1] && minMax.reverse();\n  return minMax;\n}\n\nfunction parseFinder(ecModel, finder) {\n  return modelUtilParseFinder(ecModel, finder, {\n    includeMainTypes: INCLUDE_FINDER_MAIN_TYPES\n  });\n}\n\nvar targetInfoBuilders = {\n  grid: function (foundCpts, targetInfoList) {\n    var xAxisModels = foundCpts.xAxisModels;\n    var yAxisModels = foundCpts.yAxisModels;\n    var gridModels = foundCpts.gridModels; // Remove duplicated.\n\n    var gridModelMap = createHashMap();\n    var xAxesHas = {};\n    var yAxesHas = {};\n\n    if (!xAxisModels && !yAxisModels && !gridModels) {\n      return;\n    }\n\n    each(xAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n    });\n    each(yAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      yAxesHas[gridModel.id] = true;\n    });\n    each(gridModels, function (gridModel) {\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n      yAxesHas[gridModel.id] = true;\n    });\n    gridModelMap.each(function (gridModel) {\n      var grid = gridModel.coordinateSystem;\n      var cartesians = [];\n      each(grid.getCartesians(), function (cartesian, index) {\n        if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0 || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\n          cartesians.push(cartesian);\n        }\n      });\n      targetInfoList.push({\n        panelId: 'grid--' + gridModel.id,\n        gridModel: gridModel,\n        coordSysModel: gridModel,\n        // Use the first one as the representitive coordSys.\n        coordSys: cartesians[0],\n        coordSyses: cartesians,\n        getPanelRect: panelRectBuilders.grid,\n        xAxisDeclared: xAxesHas[gridModel.id],\n        yAxisDeclared: yAxesHas[gridModel.id]\n      });\n    });\n  },\n  geo: function (foundCpts, targetInfoList) {\n    each(foundCpts.geoModels, function (geoModel) {\n      var coordSys = geoModel.coordinateSystem;\n      targetInfoList.push({\n        panelId: 'geo--' + geoModel.id,\n        geoModel: geoModel,\n        coordSysModel: geoModel,\n        coordSys: coordSys,\n        coordSyses: [coordSys],\n        getPanelRect: panelRectBuilders.geo\n      });\n    });\n  }\n};\nvar targetInfoMatchers = [// grid\nfunction (foundCpts, targetInfo) {\n  var xAxisModel = foundCpts.xAxisModel;\n  var yAxisModel = foundCpts.yAxisModel;\n  var gridModel = foundCpts.gridModel;\n  !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\n  !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\n  return gridModel && gridModel === targetInfo.gridModel;\n}, // geo\nfunction (foundCpts, targetInfo) {\n  var geoModel = foundCpts.geoModel;\n  return geoModel && geoModel === targetInfo.geoModel;\n}];\nvar panelRectBuilders = {\n  grid: function () {\n    // grid is not Transformable.\n    return this.coordSys.master.getRect().clone();\n  },\n  geo: function () {\n    var coordSys = this.coordSys;\n    var rect = coordSys.getBoundingRect().clone(); // geo roam and zoom transform\n\n    rect.applyTransform(graphic.getTransform(coordSys));\n    return rect;\n  }\n};\nvar coordConvert = {\n  lineX: curry(axisConvert, 0),\n  lineY: curry(axisConvert, 1),\n  rect: function (to, coordSys, rangeOrCoordRange, clamp) {\n    var xminymin = to ? coordSys.pointToData([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]], clamp) : coordSys.dataToPoint([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]], clamp);\n    var xmaxymax = to ? coordSys.pointToData([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]], clamp) : coordSys.dataToPoint([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]], clamp);\n    var values = [formatMinMax([xminymin[0], xmaxymax[0]]), formatMinMax([xminymin[1], xmaxymax[1]])];\n    return {\n      values: values,\n      xyMinMax: values\n    };\n  },\n  polygon: function (to, coordSys, rangeOrCoordRange, clamp) {\n    var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\n    var values = map(rangeOrCoordRange, function (item) {\n      var p = to ? coordSys.pointToData(item, clamp) : coordSys.dataToPoint(item, clamp);\n      xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\n      xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\n      xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\n      xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\n      return p;\n    });\n    return {\n      values: values,\n      xyMinMax: xyMinMax\n    };\n  }\n};\n\nfunction axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\n  }\n\n  var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\n  var values = formatMinMax(map([0, 1], function (i) {\n    return to ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i]), true) : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\n  }));\n  var xyMinMax = [];\n  xyMinMax[axisNameIndex] = values;\n  xyMinMax[1 - axisNameIndex] = [NaN, NaN];\n  return {\n    values: values,\n    xyMinMax: xyMinMax\n  };\n}\n\nvar diffProcessor = {\n  lineX: curry(axisDiffProcessor, 0),\n  lineY: curry(axisDiffProcessor, 1),\n  rect: function (values, refer, scales) {\n    return [[values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]], [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]];\n  },\n  polygon: function (values, refer, scales) {\n    return map(values, function (item, idx) {\n      return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\n    });\n  }\n};\n\nfunction axisDiffProcessor(axisNameIndex, values, refer, scales) {\n  return [values[0] - scales[axisNameIndex] * refer[0], values[1] - scales[axisNameIndex] * refer[1]];\n} // We have to process scale caused by dataZoom manually,\n// although it might be not accurate.\n// Return [0~1, 0~1]\n\n\nfunction getScales(xyMinMaxCurr, xyMinMaxOrigin) {\n  var sizeCurr = getSize(xyMinMaxCurr);\n  var sizeOrigin = getSize(xyMinMaxOrigin);\n  var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\n  isNaN(scales[0]) && (scales[0] = 1);\n  isNaN(scales[1]) && (scales[1] = 1);\n  return scales;\n}\n\nfunction getSize(xyMinMax) {\n  return xyMinMax ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]] : [NaN, NaN];\n}\n\nexport default BrushTargetManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\"; // TODO depends on DataZoom and Brush\n\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport BrushController from '../../helper/BrushController.js';\nimport BrushTargetManager from '../../helper/BrushTargetManager.js';\nimport * as history from '../../dataZoom/history.js';\nimport sliderMove from '../../helper/sliderMove.js';\nimport { ToolboxFeature } from '../featureManager.js';\nimport { makeInternalComponentId, parseFinder } from '../../../util/model.js';\nimport { registerInternalOptionCreator } from '../../../model/internalComponentCreator.js';\nvar each = zrUtil.each;\nvar DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\nvar ICON_TYPES = ['zoom', 'back'];\n\nvar DataZoomFeature =\n/** @class */\nfunction (_super) {\n  __extends(DataZoomFeature, _super);\n\n  function DataZoomFeature() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\n    if (!this._brushController) {\n      this._brushController = new BrushController(api.getZr());\n\n      this._brushController.on('brush', zrUtil.bind(this._onBrush, this)).mount();\n    }\n\n    updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\n    updateBackBtnStatus(featureModel, ecModel);\n  };\n\n  DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\n    handlers[type].call(this);\n  };\n\n  DataZoomFeature.prototype.remove = function (ecModel, api) {\n    this._brushController && this._brushController.unmount();\n  };\n\n  DataZoomFeature.prototype.dispose = function (ecModel, api) {\n    this._brushController && this._brushController.dispose();\n  };\n\n  DataZoomFeature.prototype._onBrush = function (eventParam) {\n    var areas = eventParam.areas;\n\n    if (!eventParam.isEnd || !areas.length) {\n      return;\n    }\n\n    var snapshot = {};\n    var ecModel = this.ecModel;\n\n    this._brushController.updateCovers([]); // remove cover\n\n\n    var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, {\n      include: ['grid']\n    });\n    brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      if (coordSys.type !== 'cartesian2d') {\n        return;\n      }\n\n      var brushType = area.brushType;\n\n      if (brushType === 'rect') {\n        setBatch('x', coordSys, coordRange[0]);\n        setBatch('y', coordSys, coordRange[1]);\n      } else {\n        setBatch({\n          lineX: 'x',\n          lineY: 'y'\n        }[brushType], coordSys, coordRange);\n      }\n    });\n    history.push(ecModel, snapshot);\n\n    this._dispatchZoomAction(snapshot);\n\n    function setBatch(dimName, coordSys, minMax) {\n      var axis = coordSys.getAxis(dimName);\n      var axisModel = axis.model;\n      var dataZoomModel = findDataZoom(dimName, axisModel, ecModel); // Restrict range.\n\n      var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\n\n      if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\n        minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\n      }\n\n      dataZoomModel && (snapshot[dataZoomModel.id] = {\n        dataZoomId: dataZoomModel.id,\n        startValue: minMax[0],\n        endValue: minMax[1]\n      });\n    }\n\n    function findDataZoom(dimName, axisModel, ecModel) {\n      var found;\n      ecModel.eachComponent({\n        mainType: 'dataZoom',\n        subType: 'select'\n      }, function (dzModel) {\n        var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\n        has && (found = dzModel);\n      });\n      return found;\n    }\n  };\n\n  ;\n\n  DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\n    var batch = []; // Convert from hash map to array.\n\n    each(snapshot, function (batchItem, dataZoomId) {\n      batch.push(zrUtil.clone(batchItem));\n    });\n    batch.length && this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      batch: batch\n    });\n  };\n\n  DataZoomFeature.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      filterMode: 'filter',\n      // Icon group\n      icon: {\n        zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\n        back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\n      },\n      // `zoom`, `back`\n      title: ecModel.getLocaleModel().get(['toolbox', 'dataZoom', 'title']),\n      brushStyle: {\n        borderWidth: 0,\n        color: 'rgba(210,219,238,0.2)'\n      }\n    };\n    return defaultOption;\n  };\n\n  return DataZoomFeature;\n}(ToolboxFeature);\n\nvar handlers = {\n  zoom: function () {\n    var nextActive = !this._isZoomActive;\n    this.api.dispatchAction({\n      type: 'takeGlobalCursor',\n      key: 'dataZoomSelect',\n      dataZoomSelectActive: nextActive\n    });\n  },\n  back: function () {\n    this._dispatchZoomAction(history.pop(this.ecModel));\n  }\n};\n\nfunction makeAxisFinder(dzFeatureModel) {\n  var setting = {\n    xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\n    yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\n    xAxisId: dzFeatureModel.get('xAxisId', true),\n    yAxisId: dzFeatureModel.get('yAxisId', true)\n  }; // If both `xAxisIndex` `xAxisId` not set, it means 'all'.\n  // If both `yAxisIndex` `yAxisId` not set, it means 'all'.\n  // Some old cases set like this below to close yAxis control but leave xAxis control:\n  // `{ feature: { dataZoom: { yAxisIndex: false } }`.\n\n  if (setting.xAxisIndex == null && setting.xAxisId == null) {\n    setting.xAxisIndex = 'all';\n  }\n\n  if (setting.yAxisIndex == null && setting.yAxisId == null) {\n    setting.yAxisIndex = 'all';\n  }\n\n  return setting;\n}\n\nfunction updateBackBtnStatus(featureModel, ecModel) {\n  featureModel.setIconStatus('back', history.count(ecModel) > 1 ? 'emphasis' : 'normal');\n}\n\nfunction updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\n  var zoomActive = view._isZoomActive;\n\n  if (payload && payload.type === 'takeGlobalCursor') {\n    zoomActive = payload.key === 'dataZoomSelect' ? payload.dataZoomSelectActive : false;\n  }\n\n  view._isZoomActive = zoomActive;\n  featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\n  var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, {\n    include: ['grid']\n  });\n  var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\n    return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? 'lineX' : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? 'lineY' : 'rect';\n  });\n\n  view._brushController.setPanels(panels).enableBrush(zoomActive && panels.length ? {\n    brushType: 'auto',\n    brushStyle: featureModel.getModel('brushStyle').getItemStyle()\n  } : false);\n}\n\nregisterInternalOptionCreator('dataZoom', function (ecModel) {\n  var toolboxModel = ecModel.getComponent('toolbox', 0);\n  var featureDataZoomPath = ['feature', 'dataZoom'];\n\n  if (!toolboxModel || toolboxModel.get(featureDataZoomPath) == null) {\n    return;\n  }\n\n  var dzFeatureModel = toolboxModel.getModel(featureDataZoomPath);\n  var dzOptions = [];\n  var finder = makeAxisFinder(dzFeatureModel);\n  var finderResult = parseFinder(ecModel, finder);\n  each(finderResult.xAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex');\n  });\n  each(finderResult.yAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex');\n  });\n\n  function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\n    var axisIndex = axisModel.componentIndex;\n    var newOpt = {\n      type: 'select',\n      $fromToolbox: true,\n      // Default to be filter\n      filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\n      // Id for merge mapping.\n      id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\n    };\n    newOpt[axisIndexPropName] = axisIndex;\n    dzOptions.push(newOpt);\n  }\n\n  return dzOptions;\n});\nexport default DataZoomFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport { install as installDataZoomSelect } from '../../component/dataZoom/installDataZoomSelect.js';\nimport ToolboxModel from './ToolboxModel.js';\nimport ToolboxView from './ToolboxView.js'; // TODOD: REGISTER IN INSTALL\n\nimport { registerFeature } from './featureManager.js';\nimport SaveAsImage from './feature/SaveAsImage.js';\nimport MagicType from './feature/MagicType.js';\nimport DataView from './feature/DataView.js';\nimport Restore from './feature/Restore.js';\nimport DataZoom from './feature/DataZoom.js';\nexport function install(registers) {\n  registers.registerComponentModel(ToolboxModel);\n  registers.registerComponentView(ToolboxView);\n  registerFeature('saveAsImage', SaveAsImage);\n  registerFeature('magicType', MagicType);\n  registerFeature('dataView', DataView);\n  registerFeature('dataZoom', DataZoom);\n  registerFeature('restore', Restore);\n  use(installDataZoomSelect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\n\nvar TooltipModel =\n/** @class */\nfunction (_super) {\n  __extends(TooltipModel, _super);\n\n  function TooltipModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipModel.type;\n    return _this;\n  }\n\n  TooltipModel.type = 'tooltip';\n  TooltipModel.dependencies = ['axisPointer'];\n  TooltipModel.defaultOption = {\n    // zlevel: 0,\n    z: 60,\n    show: true,\n    // tooltip main content\n    showContent: true,\n    // 'trigger' only works on coordinate system.\n    // 'item' | 'axis' | 'none'\n    trigger: 'item',\n    // 'click' | 'mousemove' | 'none'\n    triggerOn: 'mousemove|click',\n    alwaysShowContent: false,\n    displayMode: 'single',\n    renderMode: 'auto',\n    // whether restraint content inside viewRect.\n    // If renderMode: 'richText', default true.\n    // If renderMode: 'html', defaut false (for backward compat).\n    confine: null,\n    showDelay: 0,\n    hideDelay: 100,\n    // Animation transition time, unit is second\n    transitionDuration: 0.4,\n    enterable: false,\n    backgroundColor: '#fff',\n    // box shadow\n    shadowBlur: 10,\n    shadowColor: 'rgba(0, 0, 0, .2)',\n    shadowOffsetX: 1,\n    shadowOffsetY: 2,\n    // tooltip border radius, unit is px, default is 4\n    borderRadius: 4,\n    // tooltip border width, unit is px, default is 0 (no border)\n    borderWidth: 1,\n    // Tooltip inside padding, default is 5 for all direction\n    // Array is allowed to set up, right, bottom, left, same with css\n    // The default value: See `tooltip/tooltipMarkup.ts#getPaddingFromTooltipModel`.\n    padding: null,\n    // Extra css text\n    extraCssText: '',\n    // axis indicator, trigger by axis\n    axisPointer: {\n      // default is line\n      // legal values: 'line' | 'shadow' | 'cross'\n      type: 'line',\n      // Valid when type is line, appoint tooltip line locate on which line. Optional\n      // legal values: 'x' | 'y' | 'angle' | 'radius' | 'auto'\n      // default is 'auto', chose the axis which type is category.\n      // for multiply y axis, cartesian coord chose x axis, polar chose angle axis\n      axis: 'auto',\n      animation: 'auto',\n      animationDurationUpdate: 200,\n      animationEasingUpdate: 'exponentialOut',\n      crossStyle: {\n        color: '#999',\n        width: 1,\n        type: 'dashed',\n        // TODO formatter\n        textStyle: {}\n      } // lineStyle and shadowStyle should not be specified here,\n      // otherwise it will always override those styles on option.axisPointer.\n\n    },\n    textStyle: {\n      color: '#666',\n      fontSize: 14\n    }\n  };\n  return TooltipModel;\n}(ComponentModel);\n\nexport default TooltipModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { toCamelCase } from '../../util/format.js';\nimport env from 'zrender/lib/core/env.js';\n/* global document */\n\nexport function shouldTooltipConfine(tooltipModel) {\n  var confineOption = tooltipModel.get('confine');\n  return confineOption != null ? !!confineOption // In richText mode, the outside part can not be visible.\n  : tooltipModel.get('renderMode') === 'richText';\n}\n\nfunction testStyle(styleProps) {\n  if (!env.domSupported) {\n    return;\n  }\n\n  var style = document.documentElement.style;\n\n  for (var i = 0, len = styleProps.length; i < len; i++) {\n    if (styleProps[i] in style) {\n      return styleProps[i];\n    }\n  }\n}\n\nexport var TRANSFORM_VENDOR = testStyle(['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform']);\nexport var TRANSITION_VENDOR = testStyle(['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']);\nexport function toCSSVendorPrefix(styleVendor, styleProp) {\n  if (!styleVendor) {\n    return styleProp;\n  }\n\n  styleProp = toCamelCase(styleProp, true);\n  var idx = styleVendor.indexOf(styleProp);\n  styleVendor = idx === -1 ? styleProp : \"-\" + styleVendor.slice(0, idx) + \"-\" + styleProp;\n  return styleVendor.toLowerCase();\n}\nexport function getComputedStyle(el, style) {\n  var stl = el.currentStyle || document.defaultView && document.defaultView.getComputedStyle(el);\n  return stl ? style ? stl[style] : stl : null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isString, indexOf, each, bind, isArray, isDom } from 'zrender/lib/core/util.js';\nimport { normalizeEvent } from 'zrender/lib/core/event.js';\nimport { transformLocalCoord } from 'zrender/lib/core/dom.js';\nimport env from 'zrender/lib/core/env.js';\nimport { convertToColorString, toCamelCase, normalizeCssArray } from '../../util/format.js';\nimport { shouldTooltipConfine, toCSSVendorPrefix, getComputedStyle, TRANSFORM_VENDOR, TRANSITION_VENDOR } from './helper.js';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup.js';\n/* global document, window */\n\nvar CSS_TRANSITION_VENDOR = toCSSVendorPrefix(TRANSITION_VENDOR, 'transition');\nvar CSS_TRANSFORM_VENDOR = toCSSVendorPrefix(TRANSFORM_VENDOR, 'transform'); // eslint-disable-next-line\n\nvar gCssText = \"position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;\" + (env.transform3dSupported ? 'will-change:transform;' : '');\n\nfunction mirrorPos(pos) {\n  pos = pos === 'left' ? 'right' : pos === 'right' ? 'left' : pos === 'top' ? 'bottom' : 'top';\n  return pos;\n}\n\nfunction assembleArrow(tooltipModel, borderColor, arrowPosition) {\n  if (!isString(arrowPosition) || arrowPosition === 'inside') {\n    return '';\n  }\n\n  var backgroundColor = tooltipModel.get('backgroundColor');\n  var borderWidth = tooltipModel.get('borderWidth');\n  borderColor = convertToColorString(borderColor);\n  var arrowPos = mirrorPos(arrowPosition);\n  var arrowSize = Math.max(Math.round(borderWidth) * 1.5, 6);\n  var positionStyle = '';\n  var transformStyle = CSS_TRANSFORM_VENDOR + ':';\n  var rotateDeg;\n\n  if (indexOf(['left', 'right'], arrowPos) > -1) {\n    positionStyle += 'top:50%';\n    transformStyle += \"translateY(-50%) rotate(\" + (rotateDeg = arrowPos === 'left' ? -225 : -45) + \"deg)\";\n  } else {\n    positionStyle += 'left:50%';\n    transformStyle += \"translateX(-50%) rotate(\" + (rotateDeg = arrowPos === 'top' ? 225 : 45) + \"deg)\";\n  }\n\n  var rotateRadian = rotateDeg * Math.PI / 180;\n  var arrowWH = arrowSize + borderWidth;\n  var rotatedWH = arrowWH * Math.abs(Math.cos(rotateRadian)) + arrowWH * Math.abs(Math.sin(rotateRadian));\n  var arrowOffset = Math.round(((rotatedWH - Math.SQRT2 * borderWidth) / 2 + Math.SQRT2 * borderWidth - (rotatedWH - arrowWH) / 2) * 100) / 100;\n  positionStyle += \";\" + arrowPos + \":-\" + arrowOffset + \"px\";\n  var borderStyle = borderColor + \" solid \" + borderWidth + \"px;\";\n  var styleCss = [\"position:absolute;width:\" + arrowSize + \"px;height:\" + arrowSize + \"px;\", positionStyle + \";\" + transformStyle + \";\", \"border-bottom:\" + borderStyle, \"border-right:\" + borderStyle, \"background-color:\" + backgroundColor + \";\"];\n  return \"<div style=\\\"\" + styleCss.join('') + \"\\\"></div>\";\n}\n\nfunction assembleTransition(duration, onlyFade) {\n  var transitionCurve = 'cubic-bezier(0.23,1,0.32,1)';\n  var transitionOption = \" \" + duration / 2 + \"s \" + transitionCurve;\n  var transitionText = \"opacity\" + transitionOption + \",visibility\" + transitionOption;\n\n  if (!onlyFade) {\n    transitionOption = \" \" + duration + \"s \" + transitionCurve;\n    transitionText += env.transformSupported ? \",\" + CSS_TRANSFORM_VENDOR + transitionOption : \",left\" + transitionOption + \",top\" + transitionOption;\n  }\n\n  return CSS_TRANSITION_VENDOR + ':' + transitionText;\n}\n\nfunction assembleTransform(x, y, toString) {\n  // If using float on style, the final width of the dom might\n  // keep changing slightly while mouse move. So `toFixed(0)` them.\n  var x0 = x.toFixed(0) + 'px';\n  var y0 = y.toFixed(0) + 'px'; // not support transform, use `left` and `top` instead.\n\n  if (!env.transformSupported) {\n    return toString ? \"top:\" + y0 + \";left:\" + x0 + \";\" : [['top', y0], ['left', x0]];\n  } // support transform\n\n\n  var is3d = env.transform3dSupported;\n  var translate = \"translate\" + (is3d ? '3d' : '') + \"(\" + x0 + \",\" + y0 + (is3d ? ',0' : '') + \")\";\n  return toString ? 'top:0;left:0;' + CSS_TRANSFORM_VENDOR + ':' + translate + ';' : [['top', 0], ['left', 0], [TRANSFORM_VENDOR, translate]];\n}\n/**\n * @param {Object} textStyle\n * @return {string}\n * @inner\n */\n\n\nfunction assembleFont(textStyleModel) {\n  var cssText = [];\n  var fontSize = textStyleModel.get('fontSize');\n  var color = textStyleModel.getTextColor();\n  color && cssText.push('color:' + color);\n  cssText.push('font:' + textStyleModel.getFont());\n  fontSize // @ts-ignore, leave it to the tooltip refactor.\n  && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n  var shadowColor = textStyleModel.get('textShadowColor');\n  var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\n  var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\n  var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\n  shadowColor && shadowBlur && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px ' + shadowBlur + 'px ' + shadowColor);\n  each(['decoration', 'align'], function (name) {\n    var val = textStyleModel.get(name);\n    val && cssText.push('text-' + name + ':' + val);\n  });\n  return cssText.join(';');\n}\n\nfunction assembleCssText(tooltipModel, enableTransition, onlyFade) {\n  var cssText = [];\n  var transitionDuration = tooltipModel.get('transitionDuration');\n  var backgroundColor = tooltipModel.get('backgroundColor');\n  var shadowBlur = tooltipModel.get('shadowBlur');\n  var shadowColor = tooltipModel.get('shadowColor');\n  var shadowOffsetX = tooltipModel.get('shadowOffsetX');\n  var shadowOffsetY = tooltipModel.get('shadowOffsetY');\n  var textStyleModel = tooltipModel.getModel('textStyle');\n  var padding = getPaddingFromTooltipModel(tooltipModel, 'html');\n  var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\n  cssText.push('box-shadow:' + boxShadow); // Animation transition. Do not animate when transitionDuration is 0.\n\n  enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade));\n\n  if (backgroundColor) {\n    cssText.push('background-color:' + backgroundColor);\n  } // Border style\n\n\n  each(['width', 'color', 'radius'], function (name) {\n    var borderName = 'border-' + name;\n    var camelCase = toCamelCase(borderName);\n    var val = tooltipModel.get(camelCase);\n    val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n  }); // Text style\n\n  cssText.push(assembleFont(textStyleModel)); // Padding\n\n  if (padding != null) {\n    cssText.push('padding:' + normalizeCssArray(padding).join('px ') + 'px');\n  }\n\n  return cssText.join(';') + ';';\n} // If not able to make, do not modify the input `out`.\n\n\nfunction makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\n  var zrPainter = zr && zr.painter;\n\n  if (appendToBody) {\n    var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\n\n    if (zrViewportRoot) {\n      // Some APPs might use scale on body, so we support CSS transform here.\n      transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\n    }\n  } else {\n    out[0] = zrX;\n    out[1] = zrY; // xy should be based on canvas root. But tooltipContent is\n    // the sibling of canvas root. So padding of ec container\n    // should be considered here.\n\n    var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\n\n    if (viewportRootOffset) {\n      out[0] += viewportRootOffset.offsetLeft;\n      out[1] += viewportRootOffset.offsetTop;\n    }\n  }\n\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nvar TooltipHTMLContent =\n/** @class */\nfunction () {\n  function TooltipHTMLContent(container, api, opt) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._firstShow = true;\n    this._longHide = true;\n\n    if (env.wxa) {\n      return null;\n    }\n\n    var el = document.createElement('div'); // TODO: TYPE\n\n    el.domBelongToZr = true;\n    this.el = el;\n    var zr = this._zr = api.getZr();\n    var appendToBody = this._appendToBody = opt && opt.appendToBody;\n    makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\n\n    if (appendToBody) {\n      document.body.appendChild(el);\n    } else {\n      container.appendChild(el);\n    }\n\n    this._container = container; // FIXME\n    // Is it needed to trigger zr event manually if\n    // the browser do not support `pointer-events: none`.\n\n    var self = this;\n\n    el.onmouseenter = function () {\n      // clear the timeout in hideLater and keep showing tooltip\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    };\n\n    el.onmousemove = function (e) {\n      e = e || window.event;\n\n      if (!self._enterable) {\n        // `pointer-events: none` is set to tooltip content div\n        // if `enterable` is set as `false`, and `el.onmousemove`\n        // can not be triggered. But in browser that do not\n        // support `pointer-events`, we need to do this:\n        // Try trigger zrender event to avoid mouse\n        // in and out shape too frequently\n        var handler = zr.handler;\n        var zrViewportRoot = zr.painter.getViewportRoot();\n        normalizeEvent(zrViewportRoot, e, true);\n        handler.dispatch('mousemove', e);\n      }\n    };\n\n    el.onmouseleave = function () {\n      // set `_inContent` to `false` before `hideLater`\n      self._inContent = false;\n\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n    };\n  }\n  /**\n   * Update when tooltip is rendered\n   */\n\n\n  TooltipHTMLContent.prototype.update = function (tooltipModel) {\n    // FIXME\n    // Move this logic to ec main?\n    var container = this._container;\n    var position = getComputedStyle(container, 'position');\n    var domStyle = container.style;\n\n    if (domStyle.position !== 'absolute' && position !== 'absolute') {\n      domStyle.position = 'relative';\n    } // move tooltip if chart resized\n\n\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized(); // update className\n\n    this.el.className = tooltipModel.get('className') || ''; // Hide the tooltip\n    // PENDING\n    // this.hide();\n  };\n\n  TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\n    clearTimeout(this._hideTimeout);\n    clearTimeout(this._longHideTimeout);\n    var el = this.el;\n    var style = el.style;\n    var styleCoord = this._styleCoord;\n\n    if (!el.innerHTML) {\n      style.display = 'none';\n    } else {\n      style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide) // initial transform\n      + assembleTransform(styleCoord[0], styleCoord[1], true) + (\"border-color:\" + convertToColorString(nearPointColor) + \";\") + (tooltipModel.get('extraCssText') || '') // If mouse occasionally move over the tooltip, a mouseout event will be\n      // triggered by canvas, and cause some unexpectable result like dragging\n      // stop, \"unfocusAdjacency\". Here `pointer-events: none` is used to solve\n      // it. Although it is not supported by IE8~IE10, fortunately it is a rare\n      // scenario.\n      + (\";pointer-events:\" + (this._enterable ? 'auto' : 'none'));\n    }\n\n    this._show = true;\n    this._firstShow = false;\n    this._longHide = false;\n  };\n\n  TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\n    var el = this.el;\n\n    if (content == null) {\n      el.innerHTML = '';\n      return;\n    }\n\n    var arrow = '';\n\n    if (isString(arrowPosition) && tooltipModel.get('trigger') === 'item' && !shouldTooltipConfine(tooltipModel)) {\n      arrow = assembleArrow(tooltipModel, borderColor, arrowPosition);\n    }\n\n    if (isString(content)) {\n      el.innerHTML = content + arrow;\n    } else if (content) {\n      // Clear previous\n      el.innerHTML = '';\n\n      if (!isArray(content)) {\n        content = [content];\n      }\n\n      for (var i = 0; i < content.length; i++) {\n        if (isDom(content[i]) && content[i].parentNode !== el) {\n          el.appendChild(content[i]);\n        }\n      } // no arrow if empty\n\n\n      if (arrow && el.childNodes.length) {\n        // no need to create a new parent element, but it's not supported by IE 10 and older.\n        // const arrowEl = document.createRange().createContextualFragment(arrow);\n        var arrowEl = document.createElement('div');\n        arrowEl.innerHTML = arrow;\n        el.appendChild(arrowEl);\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipHTMLContent.prototype.getSize = function () {\n    var el = this.el;\n    return [el.offsetWidth, el.offsetHeight];\n  };\n\n  TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\n    var styleCoord = this._styleCoord;\n    makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\n\n    if (styleCoord[0] != null && styleCoord[1] != null) {\n      var style_1 = this.el.style;\n      var transforms = assembleTransform(styleCoord[0], styleCoord[1]);\n      each(transforms, function (transform) {\n        style_1[transform[0]] = transform[1];\n      });\n    }\n  };\n  /**\n   * when `alwaysShowContent` is true,\n   * move the tooltip after chart resized\n   */\n\n\n  TooltipHTMLContent.prototype._moveIfResized = function () {\n    // The ratio of left to width\n    var ratioX = this._styleCoord[2]; // The ratio of top to height\n\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipHTMLContent.prototype.hide = function () {\n    var _this = this;\n\n    var style = this.el.style;\n    style.visibility = 'hidden';\n    style.opacity = '0';\n    env.transform3dSupported && (style.willChange = '');\n    this._show = false;\n    this._longHideTimeout = setTimeout(function () {\n      return _this._longHide = true;\n    }, 500);\n  };\n\n  TooltipHTMLContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time; // Set show false to avoid invoke hideLater multiple times\n\n        this._show = false;\n        this._hideTimeout = setTimeout(bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipHTMLContent.prototype.dispose = function () {\n    this.el.parentNode.removeChild(this.el);\n  };\n\n  return TooltipHTMLContent;\n}();\n\nexport default TooltipHTMLContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport ZRText from 'zrender/lib/graphic/Text.js';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup.js';\nimport { throwError } from '../../util/log.js';\n\nvar TooltipRichContent =\n/** @class */\nfunction () {\n  function TooltipRichContent(api) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._zr = api.getZr();\n    makeStyleCoord(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2);\n  }\n  /**\n   * Update when tooltip is rendered\n   */\n\n\n  TooltipRichContent.prototype.update = function (tooltipModel) {\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized();\n  };\n\n  TooltipRichContent.prototype.show = function () {\n    if (this._hideTimeout) {\n      clearTimeout(this._hideTimeout);\n    }\n\n    this.el.show();\n    this._show = true;\n  };\n  /**\n   * Set tooltip content\n   */\n\n\n  TooltipRichContent.prototype.setContent = function (content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) {\n    var _this = this;\n\n    if (zrUtil.isObject(content)) {\n      throwError(process.env.NODE_ENV !== 'production' ? 'Passing DOM nodes as content is not supported in richText tooltip!' : '');\n    }\n\n    if (this.el) {\n      this._zr.remove(this.el);\n    }\n\n    var textStyleModel = tooltipModel.getModel('textStyle');\n    this.el = new ZRText({\n      style: {\n        rich: markupStyleCreator.richTextStyles,\n        text: content,\n        lineHeight: 22,\n        borderWidth: 1,\n        borderColor: borderColor,\n        textShadowColor: textStyleModel.get('textShadowColor'),\n        fill: tooltipModel.get(['textStyle', 'color']),\n        padding: getPaddingFromTooltipModel(tooltipModel, 'richText'),\n        verticalAlign: 'top',\n        align: 'left'\n      },\n      z: tooltipModel.get('z')\n    });\n    zrUtil.each(['backgroundColor', 'borderRadius', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'], function (propName) {\n      _this.el.style[propName] = tooltipModel.get(propName);\n    });\n    zrUtil.each(['textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'], function (propName) {\n      _this.el.style[propName] = textStyleModel.get(propName) || 0;\n    });\n\n    this._zr.add(this.el);\n\n    var self = this;\n    this.el.on('mouseover', function () {\n      // clear the timeout in hideLater and keep showing tooltip\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    });\n    this.el.on('mouseout', function () {\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n\n      self._inContent = false;\n    });\n  };\n\n  TooltipRichContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipRichContent.prototype.getSize = function () {\n    var el = this.el;\n    var bounding = this.el.getBoundingRect(); // bounding rect does not include shadow. For renderMode richText,\n    // if overflow, it will be cut. So calculate them accurately.\n\n    var shadowOuterSize = calcShadowOuterSize(el.style);\n    return [bounding.width + shadowOuterSize.left + shadowOuterSize.right, bounding.height + shadowOuterSize.top + shadowOuterSize.bottom];\n  };\n\n  TooltipRichContent.prototype.moveTo = function (x, y) {\n    var el = this.el;\n\n    if (el) {\n      var styleCoord = this._styleCoord;\n      makeStyleCoord(styleCoord, this._zr, x, y);\n      x = styleCoord[0];\n      y = styleCoord[1];\n      var style = el.style;\n      var borderWidth = mathMaxWith0(style.borderWidth || 0);\n      var shadowOuterSize = calcShadowOuterSize(style); // rich text x, y do not include border.\n\n      el.x = x + borderWidth + shadowOuterSize.left;\n      el.y = y + borderWidth + shadowOuterSize.top;\n      el.markRedraw();\n    }\n  };\n  /**\n   * when `alwaysShowContent` is true,\n   * move the tooltip after chart resized\n   */\n\n\n  TooltipRichContent.prototype._moveIfResized = function () {\n    // The ratio of left to width\n    var ratioX = this._styleCoord[2]; // The ratio of top to height\n\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipRichContent.prototype.hide = function () {\n    if (this.el) {\n      this.el.hide();\n    }\n\n    this._show = false;\n  };\n\n  TooltipRichContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time; // Set show false to avoid invoke hideLater multiple times\n\n        this._show = false;\n        this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipRichContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipRichContent.prototype.dispose = function () {\n    this._zr.remove(this.el);\n  };\n\n  return TooltipRichContent;\n}();\n\nfunction mathMaxWith0(val) {\n  return Math.max(0, val);\n}\n\nfunction calcShadowOuterSize(style) {\n  var shadowBlur = mathMaxWith0(style.shadowBlur || 0);\n  var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0);\n  var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0);\n  return {\n    left: mathMaxWith0(shadowBlur - shadowOffsetX),\n    right: mathMaxWith0(shadowBlur + shadowOffsetX),\n    top: mathMaxWith0(shadowBlur - shadowOffsetY),\n    bottom: mathMaxWith0(shadowBlur + shadowOffsetY)\n  };\n}\n\nfunction makeStyleCoord(out, zr, zrX, zrY) {\n  out[0] = zrX;\n  out[1] = zrY;\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nexport default TooltipRichContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nimport { bind, each, clone, trim, isString, isFunction, isArray, isObject, extend } from 'zrender/lib/core/util.js';\nimport env from 'zrender/lib/core/env.js';\nimport TooltipHTMLContent from './TooltipHTMLContent.js';\nimport TooltipRichContent from './TooltipRichContent.js';\nimport { convertToColorString, formatTpl } from '../../util/format.js';\nimport { parsePercent } from '../../util/number.js';\nimport { Rect } from '../../util/graphic.js';\nimport findPointFromSeries from '../axisPointer/findPointFromSeries.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport Model from '../../model/Model.js';\nimport * as globalListener from '../axisPointer/globalListener.js';\nimport * as axisHelper from '../../coord/axisHelper.js';\nimport * as axisPointerViewHelper from '../axisPointer/viewHelper.js';\nimport { getTooltipRenderMode, preParseFinder, queryReferringComponents } from '../../util/model.js';\nimport ComponentView from '../../view/Component.js';\nimport { format as timeFormat } from '../../util/time.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { shouldTooltipConfine } from './helper.js';\nimport { normalizeTooltipFormatResult } from '../../model/mixin/dataFormat.js';\nimport { createTooltipMarkup, buildTooltipMarkup, TooltipMarkupStyleCreator } from './tooltipMarkup.js';\nimport { findEventDispatcher } from '../../util/event.js';\nimport { clear, createOrUpdate } from '../../util/throttle.js';\nvar proxyRect = new Rect({\n  shape: {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  }\n});\n\nvar TooltipView =\n/** @class */\nfunction (_super) {\n  __extends(TooltipView, _super);\n\n  function TooltipView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipView.type;\n    return _this;\n  }\n\n  TooltipView.prototype.init = function (ecModel, api) {\n    if (env.node || !api.getDom()) {\n      return;\n    }\n\n    var tooltipModel = ecModel.getComponent('tooltip');\n    var renderMode = this._renderMode = getTooltipRenderMode(tooltipModel.get('renderMode'));\n    this._tooltipContent = renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api.getDom(), api, {\n      appendToBody: tooltipModel.get('appendToBody', true)\n    });\n  };\n\n  TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\n    if (env.node || !api.getDom()) {\n      return;\n    } // Reset\n\n\n    this.group.removeAll();\n    this._tooltipModel = tooltipModel;\n    this._ecModel = ecModel;\n    this._api = api;\n    /**\n     * @private\n     * @type {boolean}\n     */\n\n    this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    var tooltipContent = this._tooltipContent;\n    tooltipContent.update(tooltipModel);\n    tooltipContent.setEnterable(tooltipModel.get('enterable'));\n\n    this._initGlobalListener();\n\n    this._keepShow(); // PENDING\n    // `mousemove` event will be triggered very frequently when the mouse moves fast,\n    // which causes that the `updatePosition` function was also called frequently.\n    // In Chrome with devtools open and Firefox, tooltip looks laggy and shakes. See #14695 #16101\n    // To avoid frequent triggering,\n    // consider throttling it in 50ms when transition is enabled\n\n\n    if (this._renderMode !== 'richText' && tooltipModel.get('transitionDuration')) {\n      createOrUpdate(this, '_updatePosition', 50, 'fixRate');\n    } else {\n      clear(this, '_updatePosition');\n    }\n  };\n\n  TooltipView.prototype._initGlobalListener = function () {\n    var tooltipModel = this._tooltipModel;\n    var triggerOn = tooltipModel.get('triggerOn');\n    globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n      // If 'none', it is not controlled by mouse totally.\n      if (triggerOn !== 'none') {\n        if (triggerOn.indexOf(currTrigger) >= 0) {\n          this._tryShow(e, dispatchAction);\n        } else if (currTrigger === 'leave') {\n          this._hide(dispatchAction);\n        }\n      }\n    }, this));\n  };\n\n  TooltipView.prototype._keepShow = function () {\n    var tooltipModel = this._tooltipModel;\n    var ecModel = this._ecModel;\n    var api = this._api;\n    var triggerOn = tooltipModel.get('triggerOn'); // Try to keep the tooltip show when refreshing\n\n    if (this._lastX != null && this._lastY != null // When user is willing to control tooltip totally using API,\n    // self.manuallyShowTip({x, y}) might cause tooltip hide,\n    // which is not expected.\n    && triggerOn !== 'none' && triggerOn !== 'click') {\n      var self_1 = this;\n      clearTimeout(this._refreshUpdateTimeout);\n      this._refreshUpdateTimeout = setTimeout(function () {\n        // Show tip next tick after other charts are rendered\n        // In case highlight action has wrong result\n        // FIXME\n        !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\n          x: self_1._lastX,\n          y: self_1._lastY,\n          dataByCoordSys: self_1._lastDataByCoordSys\n        });\n      });\n    }\n  };\n  /**\n   * Show tip manually by\n   * dispatchAction({\n   *     type: 'showTip',\n   *     x: 10,\n   *     y: 10\n   * });\n   * Or\n   * dispatchAction({\n   *      type: 'showTip',\n   *      seriesIndex: 0,\n   *      dataIndex or dataIndexInside or name\n   * });\n   *\n   *  TODO Batch\n   */\n\n\n  TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\n    if (payload.from === this.uid || env.node || !api.getDom()) {\n      return;\n    }\n\n    var dispatchAction = makeDispatchAction(payload, api); // Reset ticket\n\n    this._ticket = ''; // When triggered from axisPointer.\n\n    var dataByCoordSys = payload.dataByCoordSys;\n    var cmptRef = findComponentReference(payload, ecModel, api);\n\n    if (cmptRef) {\n      var rect = cmptRef.el.getBoundingRect().clone();\n      rect.applyTransform(cmptRef.el.transform);\n\n      this._tryShow({\n        offsetX: rect.x + rect.width / 2,\n        offsetY: rect.y + rect.height / 2,\n        target: cmptRef.el,\n        position: payload.position,\n        // When manully trigger, the mouse is not on the el, so we'd better to\n        // position tooltip on the bottom of the el and display arrow is possible.\n        positionDefault: 'bottom'\n      }, dispatchAction);\n    } else if (payload.tooltip && payload.x != null && payload.y != null) {\n      var el = proxyRect;\n      el.x = payload.x;\n      el.y = payload.y;\n      el.update();\n      getECData(el).tooltipConfig = {\n        name: null,\n        option: payload.tooltip\n      }; // Manually show tooltip while view is not using zrender elements.\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        target: el\n      }, dispatchAction);\n    } else if (dataByCoordSys) {\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        dataByCoordSys: dataByCoordSys,\n        tooltipOption: payload.tooltipOption\n      }, dispatchAction);\n    } else if (payload.seriesIndex != null) {\n      if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n        return;\n      }\n\n      var pointInfo = findPointFromSeries(payload, ecModel);\n      var cx = pointInfo.point[0];\n      var cy = pointInfo.point[1];\n\n      if (cx != null && cy != null) {\n        this._tryShow({\n          offsetX: cx,\n          offsetY: cy,\n          target: pointInfo.el,\n          position: payload.position,\n          // When manully trigger, the mouse is not on the el, so we'd better to\n          // position tooltip on the bottom of the el and display arrow is possible.\n          positionDefault: 'bottom'\n        }, dispatchAction);\n      }\n    } else if (payload.x != null && payload.y != null) {\n      // FIXME\n      // should wrap dispatchAction like `axisPointer/globalListener` ?\n      api.dispatchAction({\n        type: 'updateAxisPointer',\n        x: payload.x,\n        y: payload.y\n      });\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        target: api.getZr().findHover(payload.x, payload.y).target\n      }, dispatchAction);\n    }\n  };\n\n  TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\n    var tooltipContent = this._tooltipContent;\n\n    if (!this._alwaysShowContent && this._tooltipModel) {\n      tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n    }\n\n    this._lastX = this._lastY = this._lastDataByCoordSys = null;\n\n    if (payload.from !== this.uid) {\n      this._hide(makeDispatchAction(payload, api));\n    }\n  }; // Be compatible with previous design, that is, when tooltip.type is 'axis' and\n  // dispatchAction 'showTip' with seriesIndex and dataIndex will trigger axis pointer\n  // and tooltip.\n\n\n  TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\n    var seriesIndex = payload.seriesIndex;\n    var dataIndex = payload.dataIndex; // @ts-ignore\n\n    var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n    if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n      return;\n    }\n\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (!seriesModel) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var tooltipCascadedModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model], this._tooltipModel);\n\n    if (tooltipCascadedModel.get('trigger') !== 'axis') {\n      return;\n    }\n\n    api.dispatchAction({\n      type: 'updateAxisPointer',\n      seriesIndex: seriesIndex,\n      dataIndex: dataIndex,\n      position: payload.position\n    });\n    return true;\n  };\n\n  TooltipView.prototype._tryShow = function (e, dispatchAction) {\n    var el = e.target;\n    var tooltipModel = this._tooltipModel;\n\n    if (!tooltipModel) {\n      return;\n    } // Save mouse x, mouse y. So we can try to keep showing the tip if chart is refreshed\n\n\n    this._lastX = e.offsetX;\n    this._lastY = e.offsetY;\n    var dataByCoordSys = e.dataByCoordSys;\n\n    if (dataByCoordSys && dataByCoordSys.length) {\n      this._showAxisTooltip(dataByCoordSys, e);\n    } else if (el) {\n      this._lastDataByCoordSys = null;\n      var seriesDispatcher_1;\n      var cmptDispatcher_1;\n      findEventDispatcher(el, function (target) {\n        // Always show item tooltip if mouse is on the element with dataIndex\n        if (getECData(target).dataIndex != null) {\n          seriesDispatcher_1 = target;\n          return true;\n        } // Tooltip provided directly. Like legend.\n\n\n        if (getECData(target).tooltipConfig != null) {\n          cmptDispatcher_1 = target;\n          return true;\n        }\n      }, true);\n\n      if (seriesDispatcher_1) {\n        this._showSeriesItemTooltip(e, seriesDispatcher_1, dispatchAction);\n      } else if (cmptDispatcher_1) {\n        this._showComponentItemTooltip(e, cmptDispatcher_1, dispatchAction);\n      } else {\n        this._hide(dispatchAction);\n      }\n    } else {\n      this._lastDataByCoordSys = null;\n\n      this._hide(dispatchAction);\n    }\n  };\n\n  TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\n    // showDelay is used in this case: tooltip.enterable is set\n    // as true. User intent to move mouse into tooltip and click\n    // something. `showDelay` makes it easier to enter the content\n    // but tooltip do not move immediately.\n    var delay = tooltipModel.get('showDelay');\n    cb = bind(cb, this);\n    clearTimeout(this._showTimout);\n    delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n  };\n\n  TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\n    var ecModel = this._ecModel;\n    var globalTooltipModel = this._tooltipModel;\n    var point = [e.offsetX, e.offsetY];\n    var singleTooltipModel = buildTooltipModel([e.tooltipOption], globalTooltipModel);\n    var renderMode = this._renderMode;\n    var cbParamsList = [];\n    var articleMarkup = createTooltipMarkup('section', {\n      blocks: [],\n      noHeader: true\n    }); // Only for legacy: `Serise['formatTooltip']` returns a string.\n\n    var markupTextArrLegacy = [];\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n    each(dataByCoordSys, function (itemCoordSys) {\n      each(itemCoordSys.dataByAxis, function (axisItem) {\n        var axisModel = ecModel.getComponent(axisItem.axisDim + 'Axis', axisItem.axisIndex);\n        var axisValue = axisItem.value;\n\n        if (!axisModel || axisValue == null) {\n          return;\n        }\n\n        var axisValueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt);\n        var axisSectionMarkup = createTooltipMarkup('section', {\n          header: axisValueLabel,\n          noHeader: !trim(axisValueLabel),\n          sortBlocks: true,\n          blocks: []\n        });\n        articleMarkup.blocks.push(axisSectionMarkup);\n        each(axisItem.seriesDataIndices, function (idxItem) {\n          var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n          var dataIndex = idxItem.dataIndexInside;\n          var cbParams = series.getDataParams(dataIndex); // Can't find data.\n\n          if (cbParams.dataIndex < 0) {\n            return;\n          }\n\n          cbParams.axisDim = axisItem.axisDim;\n          cbParams.axisIndex = axisItem.axisIndex;\n          cbParams.axisType = axisItem.axisType;\n          cbParams.axisId = axisItem.axisId;\n          cbParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, {\n            value: axisValue\n          });\n          cbParams.axisValueLabel = axisValueLabel; // Pre-create marker style for makers. Users can assemble richText\n          // text in `formatter` callback and use those markers style.\n\n          cbParams.marker = markupStyleCreator.makeTooltipMarker('item', convertToColorString(cbParams.color), renderMode);\n          var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null));\n          var frag = seriesTooltipResult.frag;\n\n          if (frag) {\n            var valueFormatter = buildTooltipModel([series], globalTooltipModel).get('valueFormatter');\n            axisSectionMarkup.blocks.push(valueFormatter ? extend({\n              valueFormatter: valueFormatter\n            }, frag) : frag);\n          }\n\n          if (seriesTooltipResult.text) {\n            markupTextArrLegacy.push(seriesTooltipResult.text);\n          }\n\n          cbParamsList.push(cbParams);\n        });\n      });\n    }); // In most cases, the second axis is displays upper on the first one.\n    // So we reverse it to look better.\n\n    articleMarkup.blocks.reverse();\n    markupTextArrLegacy.reverse();\n    var positionExpr = e.position;\n    var orderMode = singleTooltipModel.get('order');\n    var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), singleTooltipModel.get('textStyle'));\n    builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText);\n    var blockBreak = renderMode === 'richText' ? '\\n\\n' : '<br/>';\n    var allMarkupText = markupTextArrLegacy.join(blockBreak);\n\n    this._showOrMove(singleTooltipModel, function () {\n      if (this._updateContentNotChangedOnAxis(dataByCoordSys, cbParamsList)) {\n        this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList);\n      } else {\n        this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + '', point[0], point[1], positionExpr, null, markupStyleCreator);\n      }\n    }); // Do not trigger events here, because this branch only be entered\n    // from dispatchAction.\n\n  };\n\n  TooltipView.prototype._showSeriesItemTooltip = function (e, dispatcher, dispatchAction) {\n    var ecModel = this._ecModel;\n    var ecData = getECData(dispatcher); // Use dataModel in element if possible\n    // Used when mouseover on a element like markPoint or edge\n    // In which case, the data is not main data in series.\n\n    var seriesIndex = ecData.seriesIndex;\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex); // For example, graph link.\n\n    var dataModel = ecData.dataModel || seriesModel;\n    var dataIndex = ecData.dataIndex;\n    var dataType = ecData.dataType;\n    var data = dataModel.getData(dataType);\n    var renderMode = this._renderMode;\n    var positionDefault = e.positionDefault;\n    var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model], this._tooltipModel, positionDefault ? {\n      position: positionDefault\n    } : null);\n    var tooltipTrigger = tooltipModel.get('trigger');\n\n    if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n      return;\n    }\n\n    var params = dataModel.getDataParams(dataIndex, dataType);\n    var markupStyleCreator = new TooltipMarkupStyleCreator(); // Pre-create marker style for makers. Users can assemble richText\n    // text in `formatter` callback and use those markers style.\n\n    params.marker = markupStyleCreator.makeTooltipMarker('item', convertToColorString(params.color), renderMode);\n    var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType));\n    var orderMode = tooltipModel.get('order');\n    var valueFormatter = tooltipModel.get('valueFormatter');\n    var frag = seriesTooltipResult.frag;\n    var markupText = frag ? buildTooltipMarkup(valueFormatter ? extend({\n      valueFormatter: valueFormatter\n    }, frag) : frag, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), tooltipModel.get('textStyle')) : seriesTooltipResult.text;\n    var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n\n    this._showOrMove(tooltipModel, function () {\n      this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator);\n    }); // FIXME\n    // duplicated showtip if manuallyShowTip is called from dispatchAction.\n\n\n    dispatchAction({\n      type: 'showTip',\n      dataIndexInside: dataIndex,\n      dataIndex: data.getRawIndex(dataIndex),\n      seriesIndex: seriesIndex,\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\n    var ecData = getECData(el);\n    var tooltipConfig = ecData.tooltipConfig;\n    var tooltipOpt = tooltipConfig.option || {};\n\n    if (isString(tooltipOpt)) {\n      var content = tooltipOpt;\n      tooltipOpt = {\n        content: content,\n        // Fixed formatter\n        formatter: content\n      };\n    }\n\n    var tooltipModelCascade = [tooltipOpt];\n\n    var cmpt = this._ecModel.getComponent(ecData.componentMainType, ecData.componentIndex);\n\n    if (cmpt) {\n      tooltipModelCascade.push(cmpt);\n    } // In most cases, component tooltip formatter has different params with series tooltip formatter,\n    // so that they can not share the same formatter. Since the global tooltip formatter is used for series\n    // by convension, we do not use it as the default formatter for component.\n\n\n    tooltipModelCascade.push({\n      formatter: tooltipOpt.content\n    });\n    var positionDefault = e.positionDefault;\n    var subTooltipModel = buildTooltipModel(tooltipModelCascade, this._tooltipModel, positionDefault ? {\n      position: positionDefault\n    } : null);\n    var defaultHtml = subTooltipModel.get('content');\n    var asyncTicket = Math.random() + ''; // PENDING: this case do not support richText style yet.\n\n    var markupStyleCreator = new TooltipMarkupStyleCreator(); // Do not check whether `trigger` is 'none' here, because `trigger`\n    // only works on coordinate system. In fact, we have not found case\n    // that requires setting `trigger` nothing on component yet.\n\n    this._showOrMove(subTooltipModel, function () {\n      // Use formatterParams from element defined in component\n      // Avoid users modify it.\n      var formatterParams = clone(subTooltipModel.get('formatterParams') || {});\n\n      this._showTooltipContent(subTooltipModel, defaultHtml, formatterParams, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator);\n    }); // If not dispatch showTip, tip may be hide triggered by axis.\n\n\n    dispatchAction({\n      type: 'showTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showTooltipContent = function ( // Use Model<TooltipOption> insteadof TooltipModel because this model may be from series or other options.\n  // Instead of top level tooltip.\n  tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) {\n    // Reset ticket\n    this._ticket = '';\n\n    if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n      return;\n    }\n\n    var tooltipContent = this._tooltipContent;\n    tooltipContent.setEnterable(tooltipModel.get('enterable'));\n    var formatter = tooltipModel.get('formatter');\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var html = defaultHtml;\n\n    var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'), tooltipModel.get('borderColor'));\n\n    var nearPointColor = nearPoint.color;\n\n    if (formatter) {\n      if (isString(formatter)) {\n        var useUTC = tooltipModel.ecModel.get('useUTC');\n        var params0 = isArray(params) ? params[0] : params;\n        var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf('time') >= 0;\n        html = formatter;\n\n        if (isTimeAxis) {\n          html = timeFormat(params0.axisValue, html, useUTC);\n        }\n\n        html = formatTpl(html, params, true);\n      } else if (isFunction(formatter)) {\n        var callback = bind(function (cbTicket, html) {\n          if (cbTicket === this._ticket) {\n            tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPointColor, positionExpr);\n\n            this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n          }\n        }, this);\n        this._ticket = asyncTicket;\n        html = formatter(params, asyncTicket, callback);\n      } else {\n        html = formatter;\n      }\n    }\n\n    tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPointColor, positionExpr);\n    tooltipContent.show(tooltipModel, nearPointColor);\n\n    this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n  };\n\n  TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger, borderColor) {\n    if (trigger === 'axis' || isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || (this._renderMode === 'html' ? '#fff' : 'none')\n      };\n    }\n\n    if (!isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || tooltipDataParams.color || tooltipDataParams.borderColor\n      };\n    }\n  };\n\n  TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, // Mouse x\n  y, // Mouse y\n  content, params, el) {\n    var viewWidth = this._api.getWidth();\n\n    var viewHeight = this._api.getHeight();\n\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var contentSize = content.getSize();\n    var align = tooltipModel.get('align');\n    var vAlign = tooltipModel.get('verticalAlign');\n    var rect = el && el.getBoundingRect().clone();\n    el && rect.applyTransform(el.transform);\n\n    if (isFunction(positionExpr)) {\n      // Callback of position can be an array or a string specify the position\n      positionExpr = positionExpr([x, y], params, content.el, rect, {\n        viewSize: [viewWidth, viewHeight],\n        contentSize: contentSize.slice()\n      });\n    }\n\n    if (isArray(positionExpr)) {\n      x = parsePercent(positionExpr[0], viewWidth);\n      y = parsePercent(positionExpr[1], viewHeight);\n    } else if (isObject(positionExpr)) {\n      var boxLayoutPosition = positionExpr;\n      boxLayoutPosition.width = contentSize[0];\n      boxLayoutPosition.height = contentSize[1];\n      var layoutRect = getLayoutRect(boxLayoutPosition, {\n        width: viewWidth,\n        height: viewHeight\n      });\n      x = layoutRect.x;\n      y = layoutRect.y;\n      align = null; // When positionExpr is left/top/right/bottom,\n      // align and verticalAlign will not work.\n\n      vAlign = null;\n    } // Specify tooltip position by string 'top' 'bottom' 'left' 'right' around graphic element\n    else if (isString(positionExpr) && el) {\n        var pos = calcTooltipPosition(positionExpr, rect, contentSize, tooltipModel.get('borderWidth'));\n        x = pos[0];\n        y = pos[1];\n      } else {\n        var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n        x = pos[0];\n        y = pos[1];\n      }\n\n    align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n    vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n\n    if (shouldTooltipConfine(tooltipModel)) {\n      var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    content.moveTo(x, y);\n  }; // FIXME\n  // Should we remove this but leave this to user?\n\n\n  TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys, cbParamsList) {\n    var lastCoordSys = this._lastDataByCoordSys;\n    var lastCbParamsList = this._cbParamsList;\n    var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n    contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n      var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\n      var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n      var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n      contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\n      contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n        var thisItem = thisDataByAxis[indexAxis] || {};\n        var lastIndices = lastItem.seriesDataIndices || [];\n        var newIndices = thisItem.seriesDataIndices || [];\n        contentNotChanged = contentNotChanged && lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n        contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n          var newIdxItem = newIndices[j];\n          contentNotChanged = contentNotChanged && lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n        }); // check is cbParams data value changed\n\n        lastCbParamsList && each(lastItem.seriesDataIndices, function (idxItem) {\n          var seriesIdx = idxItem.seriesIndex;\n          var cbParams = cbParamsList[seriesIdx];\n          var lastCbParams = lastCbParamsList[seriesIdx];\n\n          if (cbParams && lastCbParams && lastCbParams.data !== cbParams.data) {\n            contentNotChanged = false;\n          }\n        });\n      });\n    });\n    this._lastDataByCoordSys = dataByCoordSys;\n    this._cbParamsList = cbParamsList;\n    return !!contentNotChanged;\n  };\n\n  TooltipView.prototype._hide = function (dispatchAction) {\n    // Do not directly hideLater here, because this behavior may be prevented\n    // in dispatchAction when showTip is dispatched.\n    // FIXME\n    // duplicated hideTip if manuallyHideTip is called from dispatchAction.\n    this._lastDataByCoordSys = null;\n    dispatchAction({\n      type: 'hideTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype.dispose = function (ecModel, api) {\n    if (env.node || !api.getDom()) {\n      return;\n    }\n\n    clear(this, '_updatePosition');\n\n    this._tooltipContent.dispose();\n\n    globalListener.unregister('itemTooltip', api);\n  };\n\n  TooltipView.type = 'tooltip';\n  return TooltipView;\n}(ComponentView);\n/**\n * From top to bottom. (the last one should be globalTooltipModel);\n */\n\n\nfunction buildTooltipModel(modelCascade, globalTooltipModel, defaultTooltipOption) {\n  // Last is always tooltip model.\n  var ecModel = globalTooltipModel.ecModel;\n  var resultModel;\n\n  if (defaultTooltipOption) {\n    resultModel = new Model(defaultTooltipOption, ecModel, ecModel);\n    resultModel = new Model(globalTooltipModel.option, resultModel, ecModel);\n  } else {\n    resultModel = globalTooltipModel;\n  }\n\n  for (var i = modelCascade.length - 1; i >= 0; i--) {\n    var tooltipOpt = modelCascade[i];\n\n    if (tooltipOpt) {\n      if (tooltipOpt instanceof Model) {\n        tooltipOpt = tooltipOpt.get('tooltip', true);\n      } // In each data item tooltip can be simply write:\n      // {\n      //  value: 10,\n      //  tooltip: 'Something you need to know'\n      // }\n\n\n      if (isString(tooltipOpt)) {\n        tooltipOpt = {\n          formatter: tooltipOpt\n        };\n      }\n\n      if (tooltipOpt) {\n        resultModel = new Model(tooltipOpt, resultModel, ecModel);\n      }\n    }\n  }\n\n  return resultModel;\n}\n\nfunction makeDispatchAction(payload, api) {\n  return payload.dispatchAction || bind(api.dispatchAction, api);\n}\n\nfunction refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\n  var size = content.getSize();\n  var width = size[0];\n  var height = size[1];\n\n  if (gapH != null) {\n    // Add extra 2 pixels for this case:\n    // At present the \"values\" in defaut tooltip are using CSS `float: right`.\n    // When the right edge of the tooltip box is on the right side of the\n    // viewport, the `float` layout might push the \"values\" to the second line.\n    if (x + width + gapH + 2 > viewWidth) {\n      x -= width + gapH;\n    } else {\n      x += gapH;\n    }\n  }\n\n  if (gapV != null) {\n    if (y + height + gapV > viewHeight) {\n      y -= height + gapV;\n    } else {\n      y += gapV;\n    }\n  }\n\n  return [x, y];\n}\n\nfunction confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\n  var size = content.getSize();\n  var width = size[0];\n  var height = size[1];\n  x = Math.min(x + width, viewWidth) - width;\n  y = Math.min(y + height, viewHeight) - height;\n  x = Math.max(x, 0);\n  y = Math.max(y, 0);\n  return [x, y];\n}\n\nfunction calcTooltipPosition(position, rect, contentSize, borderWidth) {\n  var domWidth = contentSize[0];\n  var domHeight = contentSize[1];\n  var offset = Math.ceil(Math.SQRT2 * borderWidth) + 8;\n  var x = 0;\n  var y = 0;\n  var rectWidth = rect.width;\n  var rectHeight = rect.height;\n\n  switch (position) {\n    case 'inside':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'top':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y - domHeight - offset;\n      break;\n\n    case 'bottom':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight + offset;\n      break;\n\n    case 'left':\n      x = rect.x - domWidth - offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'right':\n      x = rect.x + rectWidth + offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n  }\n\n  return [x, y];\n}\n\nfunction isCenterAlign(align) {\n  return align === 'center' || align === 'middle';\n}\n/**\n * Find target component by payload like:\n * ```js\n * { legendId: 'some_id', name: 'xxx' }\n * { toolboxIndex: 1, name: 'xxx' }\n * { geoName: 'some_name', name: 'xxx' }\n * ```\n * PENDING: at present only\n *\n * If not found, return null/undefined.\n */\n\n\nfunction findComponentReference(payload, ecModel, api) {\n  var queryOptionMap = preParseFinder(payload).queryOptionMap;\n  var componentMainType = queryOptionMap.keys()[0];\n\n  if (!componentMainType || componentMainType === 'series') {\n    return;\n  }\n\n  var queryResult = queryReferringComponents(ecModel, componentMainType, queryOptionMap.get(componentMainType), {\n    useDefault: false,\n    enableAll: false,\n    enableNone: false\n  });\n  var model = queryResult.models[0];\n\n  if (!model) {\n    return;\n  }\n\n  var view = api.getViewOfComponentModel(model);\n  var el;\n  view.group.traverse(function (subEl) {\n    var tooltipConfig = getECData(subEl).tooltipConfig;\n\n    if (tooltipConfig && tooltipConfig.name === payload.name) {\n      el = subEl;\n      return true; // stop\n    }\n  });\n\n  if (el) {\n    return {\n      componentMainType: componentMainType,\n      componentIndex: model.componentIndex,\n      el: el\n    };\n  }\n}\n\nexport default TooltipView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { install as installAxisPointer } from '../axisPointer/install.js';\nimport { use } from '../../extension.js';\nimport TooltipModel from './TooltipModel.js';\nimport TooltipView from './TooltipView.js';\nimport { noop } from 'zrender/lib/core/util.js';\nexport function install(registers) {\n  use(installAxisPointer);\n  registers.registerComponentModel(TooltipModel);\n  registers.registerComponentView(TooltipView);\n  /**\n   * @action\n   * @property {string} type\n   * @property {number} seriesIndex\n   * @property {number} dataIndex\n   * @property {number} [x]\n   * @property {number} [y]\n   */\n\n  registers.registerAction({\n    type: 'showTip',\n    event: 'showTip',\n    update: 'tooltip:manuallyShowTip'\n  }, noop);\n  registers.registerAction({\n    type: 'hideTip',\n    event: 'hideTip',\n    update: 'tooltip:manuallyHideTip'\n  }, noop);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { normalizeToArray } from '../../util/model.js';\nvar DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear'];\nexport default function brushPreprocessor(option, isNew) {\n  var brushComponents = normalizeToArray(option ? option.brush : []);\n\n  if (!brushComponents.length) {\n    return;\n  }\n\n  var brushComponentSpecifiedBtns = [];\n  zrUtil.each(brushComponents, function (brushOpt) {\n    var tbs = brushOpt.hasOwnProperty('toolbox') ? brushOpt.toolbox : [];\n\n    if (tbs instanceof Array) {\n      brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs);\n    }\n  });\n  var toolbox = option && option.toolbox;\n\n  if (zrUtil.isArray(toolbox)) {\n    toolbox = toolbox[0];\n  }\n\n  if (!toolbox) {\n    toolbox = {\n      feature: {}\n    };\n    option.toolbox = [toolbox];\n  }\n\n  var toolboxFeature = toolbox.feature || (toolbox.feature = {});\n  var toolboxBrush = toolboxFeature.brush || (toolboxFeature.brush = {});\n  var brushTypes = toolboxBrush.type || (toolboxBrush.type = []);\n  brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns);\n  removeDuplicate(brushTypes);\n\n  if (isNew && !brushTypes.length) {\n    brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS);\n  }\n}\n\nfunction removeDuplicate(arr) {\n  var map = {};\n  zrUtil.each(arr, function (val) {\n    map[val] = 1;\n  });\n  arr.length = 0;\n  zrUtil.each(map, function (flag, val) {\n    arr.push(val);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Visual solution, for consistent option specification.\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapping from './VisualMapping.js';\nimport { getItemVisualFromData, setItemVisualFromData } from './helper.js';\nvar each = zrUtil.each;\n\nfunction hasKeys(obj) {\n  if (obj) {\n    for (var name_1 in obj) {\n      if (obj.hasOwnProperty(name_1)) {\n        return true;\n      }\n    }\n  }\n}\n\nexport function createVisualMappings(option, stateList, supplementVisualOption) {\n  var visualMappings = {};\n  each(stateList, function (state) {\n    var mappings = visualMappings[state] = createMappings();\n    each(option[state], function (visualData, visualType) {\n      if (!VisualMapping.isValidType(visualType)) {\n        return;\n      }\n\n      var mappingOption = {\n        type: visualType,\n        visual: visualData\n      };\n      supplementVisualOption && supplementVisualOption(mappingOption, state);\n      mappings[visualType] = new VisualMapping(mappingOption); // Prepare a alpha for opacity, for some case that opacity\n      // is not supported, such as rendering using gradient color.\n\n      if (visualType === 'opacity') {\n        mappingOption = zrUtil.clone(mappingOption);\n        mappingOption.type = 'colorAlpha';\n        mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);\n      }\n    });\n  });\n  return visualMappings;\n\n  function createMappings() {\n    var Creater = function () {}; // Make sure hidden fields will not be visited by\n    // object iteration (with hasOwnProperty checking).\n\n\n    Creater.prototype.__hidden = Creater.prototype;\n    var obj = new Creater();\n    return obj;\n  }\n}\nexport function replaceVisualOption(thisOption, newOption, keys) {\n  // Visual attributes merge is not supported, otherwise it\n  // brings overcomplicated merge logic. See #2853. So if\n  // newOption has anyone of these keys, all of these keys\n  // will be reset. Otherwise, all keys remain.\n  var has;\n  zrUtil.each(keys, function (key) {\n    if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n      has = true;\n    }\n  });\n  has && zrUtil.each(keys, function (key) {\n    if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n      thisOption[key] = zrUtil.clone(newOption[key]);\n    } else {\n      delete thisOption[key];\n    }\n  });\n}\n/**\n * @param stateList\n * @param visualMappings\n * @param list\n * @param getValueState param: valueOrIndex, return: state.\n * @param scope Scope for getValueState\n * @param dimension Concrete dimension, if used.\n */\n// ???! handle brush?\n\nexport function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {\n  var visualTypesMap = {};\n  zrUtil.each(stateList, function (state) {\n    var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n    visualTypesMap[state] = visualTypes;\n  });\n  var dataIndex;\n\n  function getVisual(key) {\n    return getItemVisualFromData(data, dataIndex, key);\n  }\n\n  function setVisual(key, value) {\n    setItemVisualFromData(data, dataIndex, key, value);\n  }\n\n  if (dimension == null) {\n    data.each(eachItem);\n  } else {\n    data.each([dimension], eachItem);\n  }\n\n  function eachItem(valueOrIndex, index) {\n    dataIndex = dimension == null ? valueOrIndex // First argument is index\n    : index;\n    var rawDataItem = data.getRawDataItem(dataIndex); // Consider performance\n    // @ts-ignore\n\n    if (rawDataItem && rawDataItem.visualMap === false) {\n      return;\n    }\n\n    var valueState = getValueState.call(scope, valueOrIndex);\n    var mappings = visualMappings[valueState];\n    var visualTypes = visualTypesMap[valueState];\n\n    for (var i = 0, len = visualTypes.length; i < len; i++) {\n      var type = visualTypes[i];\n      mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);\n    }\n  }\n}\n/**\n * @param data\n * @param stateList\n * @param visualMappings <state, Object.<visualType, module:echarts/visual/VisualMapping>>\n * @param getValueState param: valueOrIndex, return: state.\n * @param dim dimension or dimension index.\n */\n\nexport function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {\n  var visualTypesMap = {};\n  zrUtil.each(stateList, function (state) {\n    var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n    visualTypesMap[state] = visualTypes;\n  });\n  return {\n    progress: function progress(params, data) {\n      var dimIndex;\n\n      if (dim != null) {\n        dimIndex = data.getDimensionIndex(dim);\n      }\n\n      function getVisual(key) {\n        return getItemVisualFromData(data, dataIndex, key);\n      }\n\n      function setVisual(key, value) {\n        setItemVisualFromData(data, dataIndex, key, value);\n      }\n\n      var dataIndex;\n      var store = data.getStore();\n\n      while ((dataIndex = params.next()) != null) {\n        var rawDataItem = data.getRawDataItem(dataIndex); // Consider performance\n        // @ts-ignore\n\n        if (rawDataItem && rawDataItem.visualMap === false) {\n          continue;\n        }\n\n        var value = dim != null ? store.get(dimIndex, dataIndex) : dataIndex;\n        var valueState = getValueState(value);\n        var mappings = visualMappings[valueState];\n        var visualTypes = visualTypesMap[valueState];\n\n        for (var i = 0, len = visualTypes.length; i < len; i++) {\n          var type = visualTypes[i];\n          mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as polygonContain from 'zrender/lib/contain/polygon.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport { linePolygonIntersect } from '../../util/graphic.js';\nexport function makeBrushCommonSelectorForSeries(area) {\n  var brushType = area.brushType; // Do not use function binding or curry for performance.\n\n  var selectors = {\n    point: function (itemLayout) {\n      return selector[brushType].point(itemLayout, selectors, area);\n    },\n    rect: function (itemLayout) {\n      return selector[brushType].rect(itemLayout, selectors, area);\n    }\n  };\n  return selectors;\n}\nvar selector = {\n  lineX: getLineSelectors(0),\n  lineY: getLineSelectors(1),\n  rect: {\n    point: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]);\n    },\n    rect: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.intersect(itemLayout);\n    }\n  },\n  polygon: {\n    point: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]) && polygonContain.contain(area.range, itemLayout[0], itemLayout[1]);\n    },\n    rect: function (itemLayout, selectors, area) {\n      var points = area.range;\n\n      if (!itemLayout || points.length <= 1) {\n        return false;\n      }\n\n      var x = itemLayout.x;\n      var y = itemLayout.y;\n      var width = itemLayout.width;\n      var height = itemLayout.height;\n      var p = points[0];\n\n      if (polygonContain.contain(points, x, y) || polygonContain.contain(points, x + width, y) || polygonContain.contain(points, x, y + height) || polygonContain.contain(points, x + width, y + height) || BoundingRect.create(itemLayout).contain(p[0], p[1]) || linePolygonIntersect(x, y, x + width, y, points) || linePolygonIntersect(x, y, x, y + height, points) || linePolygonIntersect(x + width, y, x + width, y + height, points) || linePolygonIntersect(x, y + height, x + width, y + height, points)) {\n        return true;\n      }\n    }\n  }\n};\n\nfunction getLineSelectors(xyIndex) {\n  var xy = ['x', 'y'];\n  var wh = ['width', 'height'];\n  return {\n    point: function (itemLayout, selectors, area) {\n      if (itemLayout) {\n        var range = area.range;\n        var p = itemLayout[xyIndex];\n        return inLineRange(p, range);\n      }\n    },\n    rect: function (itemLayout, selectors, area) {\n      if (itemLayout) {\n        var range = area.range;\n        var layoutRange = [itemLayout[xy[xyIndex]], itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]];\n        layoutRange[1] < layoutRange[0] && layoutRange.reverse();\n        return inLineRange(layoutRange[0], range) || inLineRange(layoutRange[1], range) || inLineRange(range[0], layoutRange) || inLineRange(range[1], layoutRange);\n      }\n    }\n  };\n}\n\nfunction inLineRange(p, range) {\n  return range[0] <= p && p <= range[1];\n}\n\nexport default selector;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport * as visualSolution from '../../visual/visualSolution.js';\nimport { makeBrushCommonSelectorForSeries } from './selector.js';\nimport * as throttleUtil from '../../util/throttle.js';\nimport BrushTargetManager from '../helper/BrushTargetManager.js';\nvar STATE_LIST = ['inBrush', 'outOfBrush'];\nvar DISPATCH_METHOD = '__ecBrushSelect';\nvar DISPATCH_FLAG = '__ecInBrushSelectEvent';\n;\nexport function layoutCovers(ecModel) {\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel) {\n    var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\n    brushTargetManager.setInputRanges(brushModel.areas, ecModel);\n  });\n}\n/**\n * Register the visual encoding if this modules required.\n */\n\nexport default function brushVisual(ecModel, api, payload) {\n  var brushSelected = [];\n  var throttleType;\n  var throttleDelay;\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel) {\n    payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : {\n      brushType: false\n    });\n  });\n  layoutCovers(ecModel);\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel, brushIndex) {\n    var thisBrushSelected = {\n      brushId: brushModel.id,\n      brushIndex: brushIndex,\n      brushName: brushModel.name,\n      areas: zrUtil.clone(brushModel.areas),\n      selected: []\n    }; // Every brush component exists in event params, convenient\n    // for user to find by index.\n\n    brushSelected.push(thisBrushSelected);\n    var brushOption = brushModel.option;\n    var brushLink = brushOption.brushLink;\n    var linkedSeriesMap = [];\n    var selectedDataIndexForLink = [];\n    var rangeInfoBySeries = [];\n    var hasBrushExists = false;\n\n    if (!brushIndex) {\n      // Only the first throttle setting works.\n      throttleType = brushOption.throttleType;\n      throttleDelay = brushOption.throttleDelay;\n    } // Add boundingRect and selectors to range.\n\n\n    var areas = zrUtil.map(brushModel.areas, function (area) {\n      var builder = boundingRectBuilders[area.brushType];\n      var selectableArea = zrUtil.defaults({\n        boundingRect: builder ? builder(area) : void 0\n      }, area);\n      selectableArea.selectors = makeBrushCommonSelectorForSeries(selectableArea);\n      return selectableArea;\n    });\n    var visualMappings = visualSolution.createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\n      mappingOption.mappingMethod = 'fixed';\n    });\n    zrUtil.isArray(brushLink) && zrUtil.each(brushLink, function (seriesIndex) {\n      linkedSeriesMap[seriesIndex] = 1;\n    });\n\n    function linkOthers(seriesIndex) {\n      return brushLink === 'all' || !!linkedSeriesMap[seriesIndex];\n    } // If no supported brush or no brush on the series,\n    // all visuals should be in original state.\n\n\n    function brushed(rangeInfoList) {\n      return !!rangeInfoList.length;\n    }\n    /**\n     * Logic for each series: (If the logic has to be modified one day, do it carefully!)\n     *\n     * ( brushed ┬ && ┬hasBrushExist ┬ && linkOthers  ) => StepA: ┬record, ┬ StepB: ┬visualByRecord.\n     *   !brushed┘    ├hasBrushExist ┤                            └nothing,┘        ├visualByRecord.\n     *                └!hasBrushExist┘                                              └nothing.\n     * ( !brushed  && ┬hasBrushExist ┬ && linkOthers  ) => StepA:  nothing,  StepB: ┬visualByRecord.\n     *                └!hasBrushExist┘                                              └nothing.\n     * ( brushed ┬ &&                     !linkOthers ) => StepA:  nothing,  StepB: ┬visualByCheck.\n     *   !brushed┘                                                                  └nothing.\n     * ( !brushed  &&                     !linkOthers ) => StepA:  nothing,  StepB:  nothing.\n     */\n    // Step A\n\n\n    ecModel.eachSeries(function (seriesModel, seriesIndex) {\n      var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\n      seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex) : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\n    });\n\n    function stepAParallel(seriesModel, seriesIndex) {\n      var coordSys = seriesModel.coordinateSystem;\n      hasBrushExists = hasBrushExists || coordSys.hasAxisBrushed();\n      linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\n        activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\n      });\n    }\n\n    function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\n      if (!seriesModel.brushSelector || brushModelNotControll(brushModel, seriesIndex)) {\n        return;\n      }\n\n      zrUtil.each(areas, function (area) {\n        if (brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel)) {\n          rangeInfoList.push(area);\n        }\n\n        hasBrushExists = hasBrushExists || brushed(rangeInfoList);\n      });\n\n      if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\n        var data_1 = seriesModel.getData();\n        data_1.each(function (dataIndex) {\n          if (checkInRange(seriesModel, rangeInfoList, data_1, dataIndex)) {\n            selectedDataIndexForLink[dataIndex] = 1;\n          }\n        });\n      }\n    } // Step B\n\n\n    ecModel.eachSeries(function (seriesModel, seriesIndex) {\n      var seriesBrushSelected = {\n        seriesId: seriesModel.id,\n        seriesIndex: seriesIndex,\n        seriesName: seriesModel.name,\n        dataIndex: []\n      }; // Every series exists in event params, convenient\n      // for user to find series by seriesIndex.\n\n      thisBrushSelected.selected.push(seriesBrushSelected);\n      var rangeInfoList = rangeInfoBySeries[seriesIndex];\n      var data = seriesModel.getData();\n      var getValueState = linkOthers(seriesIndex) ? function (dataIndex) {\n        return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n      } : function (dataIndex) {\n        return checkInRange(seriesModel, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n      }; // If no supported brush or no brush, all visuals are in original state.\n\n      (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && visualSolution.applyVisual(STATE_LIST, visualMappings, data, getValueState);\n    });\n  });\n  dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\n}\n;\n\nfunction dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\n  // This event will not be triggered when `setOpion`, otherwise dead lock may\n  // triggered when do `setOption` in event listener, which we do not find\n  // satisfactory way to solve yet. Some considered resolutions:\n  // (a) Diff with prevoius selected data ant only trigger event when changed.\n  // But store previous data and diff precisely (i.e., not only by dataIndex, but\n  // also detect value changes in selected data) might bring complexity or fragility.\n  // (b) Use spectial param like `silent` to suppress event triggering.\n  // But such kind of volatile param may be weird in `setOption`.\n  if (!payload) {\n    return;\n  }\n\n  var zr = api.getZr();\n\n  if (zr[DISPATCH_FLAG]) {\n    return;\n  }\n\n  if (!zr[DISPATCH_METHOD]) {\n    zr[DISPATCH_METHOD] = doDispatch;\n  }\n\n  var fn = throttleUtil.createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\n  fn(api, brushSelected);\n}\n\nfunction doDispatch(api, brushSelected) {\n  if (!api.isDisposed()) {\n    var zr = api.getZr();\n    zr[DISPATCH_FLAG] = true;\n    api.dispatchAction({\n      type: 'brushSelect',\n      batch: brushSelected\n    });\n    zr[DISPATCH_FLAG] = false;\n  }\n}\n\nfunction checkInRange(seriesModel, rangeInfoList, data, dataIndex) {\n  for (var i = 0, len = rangeInfoList.length; i < len; i++) {\n    var area = rangeInfoList[i];\n\n    if (seriesModel.brushSelector(dataIndex, data, area.selectors, area)) {\n      return true;\n    }\n  }\n}\n\nfunction brushModelNotControll(brushModel, seriesIndex) {\n  var seriesIndices = brushModel.option.seriesIndex;\n  return seriesIndices != null && seriesIndices !== 'all' && (zrUtil.isArray(seriesIndices) ? zrUtil.indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices);\n}\n\nvar boundingRectBuilders = {\n  rect: function (area) {\n    return getBoundingRectFromMinMax(area.range);\n  },\n  polygon: function (area) {\n    var minMax;\n    var range = area.range;\n\n    for (var i = 0, len = range.length; i < len; i++) {\n      minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\n      var rg = range[i];\n      rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\n      rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\n      rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\n      rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\n    }\n\n    return minMax && getBoundingRectFromMinMax(minMax);\n  }\n};\n\nfunction getBoundingRectFromMinMax(minMax) {\n  return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport BrushController from '../helper/BrushController.js';\nimport { layoutCovers } from './visualEncoding.js';\nimport ComponentView from '../../view/Component.js';\n\nvar BrushView =\n/** @class */\nfunction (_super) {\n  __extends(BrushView, _super);\n\n  function BrushView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BrushView.type;\n    return _this;\n  }\n\n  BrushView.prototype.init = function (ecModel, api) {\n    this.ecModel = ecModel;\n    this.api = api;\n    this.model;\n    (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount();\n  };\n\n  BrushView.prototype.render = function (brushModel, ecModel, api, payload) {\n    this.model = brushModel;\n\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateTransform = function (brushModel, ecModel, api, payload) {\n    // PENDING: `updateTransform` is a little tricky, whose layout need\n    // to be calculate mandatorily and other stages will not be performed.\n    // Take care the correctness of the logic. See #11754 .\n    layoutCovers(ecModel);\n\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateVisual = function (brushModel, ecModel, api, payload) {\n    this.updateTransform(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateView = function (brushModel, ecModel, api, payload) {\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype._updateController = function (brushModel, ecModel, api, payload) {\n    // Do not update controller when drawing.\n    (!payload || payload.$from !== brushModel.id) && this._brushController.setPanels(brushModel.brushTargetManager.makePanelOpts(api)).enableBrush(brushModel.brushOption).updateCovers(brushModel.areas.slice());\n  }; // updateLayout: updateController,\n  // updateVisual: updateController,\n\n\n  BrushView.prototype.dispose = function () {\n    this._brushController.dispose();\n  };\n\n  BrushView.prototype._onBrush = function (eventParam) {\n    var modelId = this.model.id;\n    var areas = this.model.brushTargetManager.setOutputRanges(eventParam.areas, this.ecModel); // Action is not dispatched on drag end, because the drag end\n    // emits the same params with the last drag move event, and\n    // may have some delay when using touch pad, which makes\n    // animation not smooth (when using debounce).\n\n    (!eventParam.isEnd || eventParam.removeOnClick) && this.api.dispatchAction({\n      type: 'brush',\n      brushId: modelId,\n      areas: zrUtil.clone(areas),\n      $from: modelId\n    });\n    eventParam.isEnd && this.api.dispatchAction({\n      type: 'brushEnd',\n      brushId: modelId,\n      areas: zrUtil.clone(areas),\n      $from: modelId\n    });\n  };\n\n  BrushView.type = 'brush';\n  return BrushView;\n}(ComponentView);\n\nexport default BrushView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as visualSolution from '../../visual/visualSolution.js';\nimport Model from '../../model/Model.js';\nimport ComponentModel from '../../model/Component.js';\nvar DEFAULT_OUT_OF_BRUSH_COLOR = '#ddd';\n\nvar BrushModel =\n/** @class */\nfunction (_super) {\n  __extends(BrushModel, _super);\n\n  function BrushModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BrushModel.type;\n    /**\n     * @readOnly\n     */\n\n    _this.areas = [];\n    /**\n     * Current brush painting area settings.\n     * @readOnly\n     */\n\n    _this.brushOption = {};\n    return _this;\n  }\n\n  BrushModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n    !isInit && visualSolution.replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\n    var inBrush = thisOption.inBrush = thisOption.inBrush || {}; // Always give default visual, consider setOption at the second time.\n\n    thisOption.outOfBrush = thisOption.outOfBrush || {\n      color: DEFAULT_OUT_OF_BRUSH_COLOR\n    };\n\n    if (!inBrush.hasOwnProperty('liftZ')) {\n      // Bigger than the highlight z lift, otherwise it will\n      // be effected by the highlight z when brush.\n      inBrush.liftZ = 5;\n    }\n  };\n  /**\n   * If `areas` is null/undefined, range state remain.\n   */\n\n\n  BrushModel.prototype.setAreas = function (areas) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(zrUtil.isArray(areas));\n      zrUtil.each(areas, function (area) {\n        zrUtil.assert(area.brushType, 'Illegal areas');\n      });\n    } // If areas is null/undefined, range state remain.\n    // This helps user to dispatchAction({type: 'brush'}) with no areas\n    // set but just want to get the current brush select info from a `brush` event.\n\n\n    if (!areas) {\n      return;\n    }\n\n    this.areas = zrUtil.map(areas, function (area) {\n      return generateBrushOption(this.option, area);\n    }, this);\n  };\n  /**\n   * Set the current painting brush option.\n   */\n\n\n  BrushModel.prototype.setBrushOption = function (brushOption) {\n    this.brushOption = generateBrushOption(this.option, brushOption);\n    this.brushType = this.brushOption.brushType;\n  };\n\n  BrushModel.type = 'brush';\n  BrushModel.dependencies = ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'];\n  BrushModel.defaultOption = {\n    seriesIndex: 'all',\n    brushType: 'rect',\n    brushMode: 'single',\n    transformable: true,\n    brushStyle: {\n      borderWidth: 1,\n      color: 'rgba(210,219,238,0.3)',\n      borderColor: '#D2DBEE'\n    },\n    throttleType: 'fixRate',\n    throttleDelay: 0,\n    removeOnClick: true,\n    z: 10000\n  };\n  return BrushModel;\n}(ComponentModel);\n\nfunction generateBrushOption(option, brushOption) {\n  return zrUtil.merge({\n    brushType: option.brushType,\n    brushMode: option.brushMode,\n    transformable: option.transformable,\n    brushStyle: new Model(option.brushStyle).getItemStyle(),\n    removeOnClick: option.removeOnClick,\n    z: option.z\n  }, brushOption, true);\n}\n\nexport default BrushModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { ToolboxFeature } from '../featureManager.js';\nvar ICON_TYPES = ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'];\n\nvar BrushFeature =\n/** @class */\nfunction (_super) {\n  __extends(BrushFeature, _super);\n\n  function BrushFeature() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  BrushFeature.prototype.render = function (featureModel, ecModel, api) {\n    var brushType;\n    var brushMode;\n    var isBrushed;\n    ecModel.eachComponent({\n      mainType: 'brush'\n    }, function (brushModel) {\n      brushType = brushModel.brushType;\n      brushMode = brushModel.brushOption.brushMode || 'single';\n      isBrushed = isBrushed || !!brushModel.areas.length;\n    });\n    this._brushType = brushType;\n    this._brushMode = brushMode;\n    zrUtil.each(featureModel.get('type', true), function (type) {\n      featureModel.setIconStatus(type, (type === 'keep' ? brushMode === 'multiple' : type === 'clear' ? isBrushed : type === brushType) ? 'emphasis' : 'normal');\n    });\n  };\n\n  BrushFeature.prototype.updateView = function (featureModel, ecModel, api) {\n    this.render(featureModel, ecModel, api);\n  };\n\n  BrushFeature.prototype.getIcons = function () {\n    var model = this.model;\n    var availableIcons = model.get('icon', true);\n    var icons = {};\n    zrUtil.each(model.get('type', true), function (type) {\n      if (availableIcons[type]) {\n        icons[type] = availableIcons[type];\n      }\n    });\n    return icons;\n  };\n\n  ;\n\n  BrushFeature.prototype.onclick = function (ecModel, api, type) {\n    var brushType = this._brushType;\n    var brushMode = this._brushMode;\n\n    if (type === 'clear') {\n      // Trigger parallel action firstly\n      api.dispatchAction({\n        type: 'axisAreaSelect',\n        intervals: []\n      });\n      api.dispatchAction({\n        type: 'brush',\n        command: 'clear',\n        // Clear all areas of all brush components.\n        areas: []\n      });\n    } else {\n      api.dispatchAction({\n        type: 'takeGlobalCursor',\n        key: 'brush',\n        brushOption: {\n          brushType: type === 'keep' ? brushType : brushType === type ? false : type,\n          brushMode: type === 'keep' ? brushMode === 'multiple' ? 'single' : 'multiple' : brushMode\n        }\n      });\n    }\n  };\n\n  ;\n\n  BrushFeature.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      type: ICON_TYPES.slice(),\n      icon: {\n        /* eslint-disable */\n        rect: 'M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13',\n        polygon: 'M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2',\n        lineX: 'M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4',\n        lineY: 'M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4',\n        keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z',\n        clear: 'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2' // jshint ignore:line\n\n        /* eslint-enable */\n\n      },\n      // `rect`, `polygon`, `lineX`, `lineY`, `keep`, `clear`\n      title: ecModel.getLocaleModel().get(['toolbox', 'brush', 'title'])\n    };\n    return defaultOption;\n  };\n\n  return BrushFeature;\n}(ToolboxFeature);\n\nexport default BrushFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport brushPreprocessor from './preprocessor.js';\nimport BrushView from './BrushView.js';\nimport BrushModel from './BrushModel.js';\nimport brushVisual from './visualEncoding.js'; // TODO\n\nimport BrushFeature from '../toolbox/feature/Brush.js';\nimport { registerFeature } from '../toolbox/featureManager.js';\nimport { noop } from 'zrender/lib/core/util.js';\nexport function install(registers) {\n  registers.registerComponentView(BrushView);\n  registers.registerComponentModel(BrushModel);\n  registers.registerPreprocessor(brushPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, brushVisual);\n  registers.registerAction({\n    type: 'brush',\n    event: 'brush',\n    update: 'updateVisual'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'brush',\n      query: payload\n    }, function (brushModel) {\n      brushModel.setAreas(payload.areas);\n    });\n  });\n  /**\n   * payload: {\n   *      brushComponents: [\n   *          {\n   *              brushId,\n   *              brushIndex,\n   *              brushName,\n   *              series: [\n   *                  {\n   *                      seriesId,\n   *                      seriesIndex,\n   *                      seriesName,\n   *                      rawIndices: [21, 34, ...]\n   *                  },\n   *                  ...\n   *              ]\n   *          },\n   *          ...\n   *      ]\n   * }\n   */\n\n  registers.registerAction({\n    type: 'brushSelect',\n    event: 'brushSelected',\n    update: 'none'\n  }, noop);\n  registers.registerAction({\n    type: 'brushEnd',\n    event: 'brushEnd',\n    update: 'none'\n  }, noop);\n  registerFeature('brush', BrushFeature);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport { getLayoutRect } from '../../util/layout.js';\nimport ComponentModel from '../../model/Component.js';\nimport ComponentView from '../../view/Component.js';\nimport { windowOpen } from '../../util/format.js';\n\nvar TitleModel =\n/** @class */\nfunction (_super) {\n  __extends(TitleModel, _super);\n\n  function TitleModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  TitleModel.type = 'title';\n  TitleModel.defaultOption = {\n    // zlevel: 0,\n    z: 6,\n    show: true,\n    text: '',\n    target: 'blank',\n    subtext: '',\n    subtarget: 'blank',\n    left: 0,\n    top: 0,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    textStyle: {\n      fontSize: 18,\n      fontWeight: 'bold',\n      color: '#464646'\n    },\n    subtextStyle: {\n      fontSize: 12,\n      color: '#6E7079'\n    }\n  };\n  return TitleModel;\n}(ComponentModel); // View\n\n\nvar TitleView =\n/** @class */\nfunction (_super) {\n  __extends(TitleView, _super);\n\n  function TitleView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleView.type;\n    return _this;\n  }\n\n  TitleView.prototype.render = function (titleModel, ecModel, api) {\n    this.group.removeAll();\n\n    if (!titleModel.get('show')) {\n      return;\n    }\n\n    var group = this.group;\n    var textStyleModel = titleModel.getModel('textStyle');\n    var subtextStyleModel = titleModel.getModel('subtextStyle');\n    var textAlign = titleModel.get('textAlign');\n    var textVerticalAlign = zrUtil.retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\n    var textEl = new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: titleModel.get('text'),\n        fill: textStyleModel.getTextColor()\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var textRect = textEl.getBoundingRect();\n    var subText = titleModel.get('subtext');\n    var subTextEl = new graphic.Text({\n      style: createTextStyle(subtextStyleModel, {\n        text: subText,\n        fill: subtextStyleModel.getTextColor(),\n        y: textRect.height + titleModel.get('itemGap'),\n        verticalAlign: 'top'\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var link = titleModel.get('link');\n    var sublink = titleModel.get('sublink');\n    var triggerEvent = titleModel.get('triggerEvent', true);\n    textEl.silent = !link && !triggerEvent;\n    subTextEl.silent = !sublink && !triggerEvent;\n\n    if (link) {\n      textEl.on('click', function () {\n        windowOpen(link, '_' + titleModel.get('target'));\n      });\n    }\n\n    if (sublink) {\n      subTextEl.on('click', function () {\n        windowOpen(sublink, '_' + titleModel.get('subtarget'));\n      });\n    }\n\n    getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent ? {\n      componentType: 'title',\n      componentIndex: titleModel.componentIndex\n    } : null;\n    group.add(textEl);\n    subText && group.add(subTextEl); // If no subText, but add subTextEl, there will be an empty line.\n\n    var groupRect = group.getBoundingRect();\n    var layoutOption = titleModel.getBoxLayoutParams();\n    layoutOption.width = groupRect.width;\n    layoutOption.height = groupRect.height;\n    var layoutRect = getLayoutRect(layoutOption, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    }, titleModel.get('padding')); // Adjust text align based on position\n\n    if (!textAlign) {\n      // Align left if title is on the left. center and right is same\n      textAlign = titleModel.get('left') || titleModel.get('right'); // @ts-ignore\n\n      if (textAlign === 'middle') {\n        textAlign = 'center';\n      } // Adjust layout by text align\n\n\n      if (textAlign === 'right') {\n        layoutRect.x += layoutRect.width;\n      } else if (textAlign === 'center') {\n        layoutRect.x += layoutRect.width / 2;\n      }\n    }\n\n    if (!textVerticalAlign) {\n      textVerticalAlign = titleModel.get('top') || titleModel.get('bottom'); // @ts-ignore\n\n      if (textVerticalAlign === 'center') {\n        textVerticalAlign = 'middle';\n      }\n\n      if (textVerticalAlign === 'bottom') {\n        layoutRect.y += layoutRect.height;\n      } else if (textVerticalAlign === 'middle') {\n        layoutRect.y += layoutRect.height / 2;\n      }\n\n      textVerticalAlign = textVerticalAlign || 'top';\n    }\n\n    group.x = layoutRect.x;\n    group.y = layoutRect.y;\n    group.markRedraw();\n    var alignStyle = {\n      align: textAlign,\n      verticalAlign: textVerticalAlign\n    };\n    textEl.setStyle(alignStyle);\n    subTextEl.setStyle(alignStyle); // Render background\n    // Get groupRect again because textAlign has been changed\n\n    groupRect = group.getBoundingRect();\n    var padding = layoutRect.margin;\n    var style = titleModel.getItemStyle(['color', 'opacity']);\n    style.fill = titleModel.get('backgroundColor');\n    var rect = new graphic.Rect({\n      shape: {\n        x: groupRect.x - padding[3],\n        y: groupRect.y - padding[0],\n        width: groupRect.width + padding[1] + padding[3],\n        height: groupRect.height + padding[0] + padding[2],\n        r: titleModel.get('borderRadius')\n      },\n      style: style,\n      subPixelOptimize: true,\n      silent: true\n    });\n    group.add(rect);\n  };\n\n  TitleView.type = 'title';\n  return TitleView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(TitleModel);\n  registers.registerComponentView(TitleView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport { each, isObject, clone } from 'zrender/lib/core/util.js';\nimport { convertOptionIdName, getDataItemValue } from '../../util/model.js';\n\nvar TimelineModel =\n/** @class */\nfunction (_super) {\n  __extends(TimelineModel, _super);\n\n  function TimelineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TimelineModel.type;\n    _this.layoutMode = 'box';\n    return _this;\n  }\n  /**\n   * @override\n   */\n\n\n  TimelineModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._initData();\n  };\n  /**\n   * @override\n   */\n\n\n  TimelineModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    this._initData();\n  };\n\n  TimelineModel.prototype.setCurrentIndex = function (currentIndex) {\n    if (currentIndex == null) {\n      currentIndex = this.option.currentIndex;\n    }\n\n    var count = this._data.count();\n\n    if (this.option.loop) {\n      currentIndex = (currentIndex % count + count) % count;\n    } else {\n      currentIndex >= count && (currentIndex = count - 1);\n      currentIndex < 0 && (currentIndex = 0);\n    }\n\n    this.option.currentIndex = currentIndex;\n  };\n  /**\n   * @return {number} currentIndex\n   */\n\n\n  TimelineModel.prototype.getCurrentIndex = function () {\n    return this.option.currentIndex;\n  };\n  /**\n   * @return {boolean}\n   */\n\n\n  TimelineModel.prototype.isIndexMax = function () {\n    return this.getCurrentIndex() >= this._data.count() - 1;\n  };\n  /**\n   * @param {boolean} state true: play, false: stop\n   */\n\n\n  TimelineModel.prototype.setPlayState = function (state) {\n    this.option.autoPlay = !!state;\n  };\n  /**\n   * @return {boolean} true: play, false: stop\n   */\n\n\n  TimelineModel.prototype.getPlayState = function () {\n    return !!this.option.autoPlay;\n  };\n  /**\n   * @private\n   */\n\n\n  TimelineModel.prototype._initData = function () {\n    var thisOption = this.option;\n    var dataArr = thisOption.data || [];\n    var axisType = thisOption.axisType;\n    var names = this._names = [];\n    var processedDataArr;\n\n    if (axisType === 'category') {\n      processedDataArr = [];\n      each(dataArr, function (item, index) {\n        var value = convertOptionIdName(getDataItemValue(item), '');\n        var newItem;\n\n        if (isObject(item)) {\n          newItem = clone(item);\n          newItem.value = index;\n        } else {\n          newItem = index;\n        }\n\n        processedDataArr.push(newItem);\n        names.push(value);\n      });\n    } else {\n      processedDataArr = dataArr;\n    }\n\n    var dimType = {\n      category: 'ordinal',\n      time: 'time',\n      value: 'number'\n    }[axisType] || 'number';\n    var data = this._data = new SeriesData([{\n      name: 'value',\n      type: dimType\n    }], this);\n    data.initData(processedDataArr, names);\n  };\n\n  TimelineModel.prototype.getData = function () {\n    return this._data;\n  };\n  /**\n   * @public\n   * @return {Array.<string>} categoreis\n   */\n\n\n  TimelineModel.prototype.getCategories = function () {\n    if (this.get('axisType') === 'category') {\n      return this._names.slice();\n    }\n  };\n\n  TimelineModel.type = 'timeline';\n  /**\n   * @protected\n   */\n\n  TimelineModel.defaultOption = {\n    // zlevel: 0,                  // 一级层叠\n    z: 4,\n    show: true,\n    axisType: 'time',\n    realtime: true,\n    left: '20%',\n    top: null,\n    right: '20%',\n    bottom: 0,\n    width: null,\n    height: 40,\n    padding: 5,\n    controlPosition: 'left',\n    autoPlay: false,\n    rewind: false,\n    loop: true,\n    playInterval: 2000,\n    currentIndex: 0,\n    itemStyle: {},\n    label: {\n      color: '#000'\n    },\n    data: []\n  };\n  return TimelineModel;\n}(ComponentModel);\n\nexport default TimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport TimelineModel from './TimelineModel.js';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat.js';\nimport { mixin } from 'zrender/lib/core/util.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar SliderTimelineModel =\n/** @class */\nfunction (_super) {\n  __extends(SliderTimelineModel, _super);\n\n  function SliderTimelineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderTimelineModel.type;\n    return _this;\n  }\n\n  SliderTimelineModel.type = 'timeline.slider';\n  /**\n   * @protected\n   */\n\n  SliderTimelineModel.defaultOption = inheritDefaultOption(TimelineModel.defaultOption, {\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderWidth: 0,\n    orient: 'horizontal',\n    inverse: false,\n    tooltip: {\n      trigger: 'item' // data item may also have tootip attr.\n\n    },\n    symbol: 'circle',\n    symbolSize: 12,\n    lineStyle: {\n      show: true,\n      width: 2,\n      color: '#DAE1F5'\n    },\n    label: {\n      position: 'auto',\n      // When using number, label position is not\n      // restricted by viewRect.\n      // positive: right/bottom, negative: left/top\n      show: true,\n      interval: 'auto',\n      rotate: 0,\n      // formatter: null,\n      // 其余属性默认使用全局文本样式，详见TEXTSTYLE\n      color: '#A4B1D7'\n    },\n    itemStyle: {\n      color: '#A4B1D7',\n      borderWidth: 1\n    },\n    checkpointStyle: {\n      symbol: 'circle',\n      symbolSize: 15,\n      color: '#316bf3',\n      borderColor: '#fff',\n      borderWidth: 2,\n      shadowBlur: 2,\n      shadowOffsetX: 1,\n      shadowOffsetY: 1,\n      shadowColor: 'rgba(0, 0, 0, 0.3)',\n      // borderColor: 'rgba(194,53,49, 0.5)',\n      animation: true,\n      animationDuration: 300,\n      animationEasing: 'quinticInOut'\n    },\n    controlStyle: {\n      show: true,\n      showPlayBtn: true,\n      showPrevBtn: true,\n      showNextBtn: true,\n      itemSize: 24,\n      itemGap: 12,\n      position: 'left',\n      playIcon: 'path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z',\n      stopIcon: 'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z',\n      // eslint-disable-next-line max-len\n      nextIcon: 'M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z',\n      // eslint-disable-next-line max-len\n      prevIcon: 'M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z',\n      prevBtnSize: 18,\n      nextBtnSize: 18,\n      color: '#A4B1D7',\n      borderColor: '#A4B1D7',\n      borderWidth: 1\n    },\n    emphasis: {\n      label: {\n        show: true,\n        // 其余属性默认使用全局文本样式，详见TEXTSTYLE\n        color: '#6f778d'\n      },\n      itemStyle: {\n        color: '#316BF3'\n      },\n      controlStyle: {\n        color: '#316BF3',\n        borderColor: '#316BF3',\n        borderWidth: 2\n      }\n    },\n    progress: {\n      lineStyle: {\n        color: '#316BF3'\n      },\n      itemStyle: {\n        color: '#316BF3'\n      },\n      label: {\n        color: '#6f778d'\n      }\n    },\n    data: []\n  });\n  return SliderTimelineModel;\n}(TimelineModel);\n\nmixin(SliderTimelineModel, DataFormatMixin.prototype);\nexport default SliderTimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component.js';\n\nvar TimelineView =\n/** @class */\nfunction (_super) {\n  __extends(TimelineView, _super);\n\n  function TimelineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TimelineView.type;\n    return _this;\n  }\n\n  TimelineView.type = 'timeline';\n  return TimelineView;\n}(ComponentView);\n\nexport default TimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport Axis from '../../coord/Axis.js';\n/**\n * Extend axis 2d\n */\n\nvar TimelineAxis =\n/** @class */\nfunction (_super) {\n  __extends(TimelineAxis, _super);\n\n  function TimelineAxis(dim, scale, coordExtent, axisType) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    return _this;\n  }\n  /**\n   * @override\n   */\n\n\n  TimelineAxis.prototype.getLabelModel = function () {\n    // Force override\n    return this.model.getModel('label');\n  };\n  /**\n   * @override\n   */\n\n\n  TimelineAxis.prototype.isHorizontal = function () {\n    return this.model.get('orient') === 'horizontal';\n  };\n\n  return TimelineAxis;\n}(Axis);\n\nexport default TimelineAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect.js';\nimport * as matrix from 'zrender/lib/core/matrix.js';\nimport * as graphic from '../../util/graphic.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nimport * as layout from '../../util/layout.js';\nimport TimelineView from './TimelineView.js';\nimport TimelineAxis from './TimelineAxis.js';\nimport { createSymbol, normalizeSymbolOffset, normalizeSymbolSize } from '../../util/symbol.js';\nimport * as numberUtil from '../../util/number.js';\nimport { merge, each, extend, isString, bind, defaults, retrieve2 } from 'zrender/lib/core/util.js';\nimport OrdinalScale from '../../scale/Ordinal.js';\nimport TimeScale from '../../scale/Time.js';\nimport IntervalScale from '../../scale/Interval.js';\nimport { parsePercent } from 'zrender/lib/contain/text.js';\nimport { makeInner } from '../../util/model.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { enableHoverEmphasis } from '../../util/states.js';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup.js';\nvar PI = Math.PI;\nvar labelDataIndexStore = makeInner();\n\nvar SliderTimelineView =\n/** @class */\nfunction (_super) {\n  __extends(SliderTimelineView, _super);\n\n  function SliderTimelineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderTimelineView.type;\n    return _this;\n  }\n\n  SliderTimelineView.prototype.init = function (ecModel, api) {\n    this.api = api;\n  };\n  /**\n   * @override\n   */\n\n\n  SliderTimelineView.prototype.render = function (timelineModel, ecModel, api) {\n    this.model = timelineModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    this.group.removeAll();\n\n    if (timelineModel.get('show', true)) {\n      var layoutInfo_1 = this._layout(timelineModel, api);\n\n      var mainGroup_1 = this._createGroup('_mainGroup');\n\n      var labelGroup = this._createGroup('_labelGroup');\n\n      var axis_1 = this._axis = this._createAxis(layoutInfo_1, timelineModel);\n\n      timelineModel.formatTooltip = function (dataIndex) {\n        var name = axis_1.scale.getLabel({\n          value: dataIndex\n        });\n        return createTooltipMarkup('nameValue', {\n          noName: true,\n          value: name\n        });\n      };\n\n      each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\n        this['_render' + name](layoutInfo_1, mainGroup_1, axis_1, timelineModel);\n      }, this);\n\n      this._renderAxisLabel(layoutInfo_1, labelGroup, axis_1, timelineModel);\n\n      this._position(layoutInfo_1, timelineModel);\n    }\n\n    this._doPlayStop();\n\n    this._updateTicksStatus();\n  };\n  /**\n   * @override\n   */\n\n\n  SliderTimelineView.prototype.remove = function () {\n    this._clearTimer();\n\n    this.group.removeAll();\n  };\n  /**\n   * @override\n   */\n\n\n  SliderTimelineView.prototype.dispose = function () {\n    this._clearTimer();\n  };\n\n  SliderTimelineView.prototype._layout = function (timelineModel, api) {\n    var labelPosOpt = timelineModel.get(['label', 'position']);\n    var orient = timelineModel.get('orient');\n    var viewRect = getViewRect(timelineModel, api);\n    var parsedLabelPos; // Auto label offset.\n\n    if (labelPosOpt == null || labelPosOpt === 'auto') {\n      parsedLabelPos = orient === 'horizontal' ? viewRect.y + viewRect.height / 2 < api.getHeight() / 2 ? '-' : '+' : viewRect.x + viewRect.width / 2 < api.getWidth() / 2 ? '+' : '-';\n    } else if (isString(labelPosOpt)) {\n      parsedLabelPos = {\n        horizontal: {\n          top: '-',\n          bottom: '+'\n        },\n        vertical: {\n          left: '-',\n          right: '+'\n        }\n      }[orient][labelPosOpt];\n    } else {\n      // is number\n      parsedLabelPos = labelPosOpt;\n    }\n\n    var labelAlignMap = {\n      horizontal: 'center',\n      vertical: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'left' : 'right'\n    };\n    var labelBaselineMap = {\n      horizontal: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'top' : 'bottom',\n      vertical: 'middle'\n    };\n    var rotationMap = {\n      horizontal: 0,\n      vertical: PI / 2\n    }; // Position\n\n    var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width;\n    var controlModel = timelineModel.getModel('controlStyle');\n    var showControl = controlModel.get('show', true);\n    var controlSize = showControl ? controlModel.get('itemSize') : 0;\n    var controlGap = showControl ? controlModel.get('itemGap') : 0;\n    var sizePlusGap = controlSize + controlGap; // Special label rotate.\n\n    var labelRotation = timelineModel.get(['label', 'rotate']) || 0;\n    labelRotation = labelRotation * PI / 180; // To radian.\n\n    var playPosition;\n    var prevBtnPosition;\n    var nextBtnPosition;\n    var controlPosition = controlModel.get('position', true);\n    var showPlayBtn = showControl && controlModel.get('showPlayBtn', true);\n    var showPrevBtn = showControl && controlModel.get('showPrevBtn', true);\n    var showNextBtn = showControl && controlModel.get('showNextBtn', true);\n    var xLeft = 0;\n    var xRight = mainLength; // position[0] means left, position[1] means middle.\n\n    if (controlPosition === 'left' || controlPosition === 'bottom') {\n      showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap);\n      showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap);\n      showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n    } else {\n      // 'top' 'right'\n      showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n      showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap);\n      showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n    }\n\n    var axisExtent = [xLeft, xRight];\n\n    if (timelineModel.get('inverse')) {\n      axisExtent.reverse();\n    }\n\n    return {\n      viewRect: viewRect,\n      mainLength: mainLength,\n      orient: orient,\n      rotation: rotationMap[orient],\n      labelRotation: labelRotation,\n      labelPosOpt: parsedLabelPos,\n      labelAlign: timelineModel.get(['label', 'align']) || labelAlignMap[orient],\n      labelBaseline: timelineModel.get(['label', 'verticalAlign']) || timelineModel.get(['label', 'baseline']) || labelBaselineMap[orient],\n      // Based on mainGroup.\n      playPosition: playPosition,\n      prevBtnPosition: prevBtnPosition,\n      nextBtnPosition: nextBtnPosition,\n      axisExtent: axisExtent,\n      controlSize: controlSize,\n      controlGap: controlGap\n    };\n  };\n\n  SliderTimelineView.prototype._position = function (layoutInfo, timelineModel) {\n    // Position is be called finally, because bounding rect is needed for\n    // adapt content to fill viewRect (auto adapt offset).\n    // Timeline may be not all in the viewRect when 'offset' is specified\n    // as a number, because it is more appropriate that label aligns at\n    // 'offset' but not the other edge defined by viewRect.\n    var mainGroup = this._mainGroup;\n    var labelGroup = this._labelGroup;\n    var viewRect = layoutInfo.viewRect;\n\n    if (layoutInfo.orient === 'vertical') {\n      // transform to horizontal, inverse rotate by left-top point.\n      var m = matrix.create();\n      var rotateOriginX = viewRect.x;\n      var rotateOriginY = viewRect.y + viewRect.height;\n      matrix.translate(m, m, [-rotateOriginX, -rotateOriginY]);\n      matrix.rotate(m, m, -PI / 2);\n      matrix.translate(m, m, [rotateOriginX, rotateOriginY]);\n      viewRect = viewRect.clone();\n      viewRect.applyTransform(m);\n    }\n\n    var viewBound = getBound(viewRect);\n    var mainBound = getBound(mainGroup.getBoundingRect());\n    var labelBound = getBound(labelGroup.getBoundingRect());\n    var mainPosition = [mainGroup.x, mainGroup.y];\n    var labelsPosition = [labelGroup.x, labelGroup.y];\n    labelsPosition[0] = mainPosition[0] = viewBound[0][0];\n    var labelPosOpt = layoutInfo.labelPosOpt;\n\n    if (labelPosOpt == null || isString(labelPosOpt)) {\n      // '+' or '-'\n      var mainBoundIdx = labelPosOpt === '+' ? 0 : 1;\n      toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n      toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx);\n    } else {\n      var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1;\n      toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n      labelsPosition[1] = mainPosition[1] + labelPosOpt;\n    }\n\n    mainGroup.setPosition(mainPosition);\n    labelGroup.setPosition(labelsPosition);\n    mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\n    setOrigin(mainGroup);\n    setOrigin(labelGroup);\n\n    function setOrigin(targetGroup) {\n      targetGroup.originX = viewBound[0][0] - targetGroup.x;\n      targetGroup.originY = viewBound[1][0] - targetGroup.y;\n    }\n\n    function getBound(rect) {\n      // [[xmin, xmax], [ymin, ymax]]\n      return [[rect.x, rect.x + rect.width], [rect.y, rect.y + rect.height]];\n    }\n\n    function toBound(fromPos, from, to, dimIdx, boundIdx) {\n      fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx];\n    }\n  };\n\n  SliderTimelineView.prototype._createAxis = function (layoutInfo, timelineModel) {\n    var data = timelineModel.getData();\n    var axisType = timelineModel.get('axisType');\n    var scale = createScaleByModel(timelineModel, axisType); // Customize scale. The `tickValue` is `dataIndex`.\n\n    scale.getTicks = function () {\n      return data.mapArray(['value'], function (value) {\n        return {\n          value: value\n        };\n      });\n    };\n\n    var dataExtent = data.getDataExtent('value');\n    scale.setExtent(dataExtent[0], dataExtent[1]);\n    scale.calcNiceTicks();\n    var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType);\n    axis.model = timelineModel;\n    return axis;\n  };\n\n  SliderTimelineView.prototype._createGroup = function (key) {\n    var newGroup = this[key] = new graphic.Group();\n    this.group.add(newGroup);\n    return newGroup;\n  };\n\n  SliderTimelineView.prototype._renderAxisLine = function (layoutInfo, group, axis, timelineModel) {\n    var axisExtent = axis.getExtent();\n\n    if (!timelineModel.get(['lineStyle', 'show'])) {\n      return;\n    }\n\n    var line = new graphic.Line({\n      shape: {\n        x1: axisExtent[0],\n        y1: 0,\n        x2: axisExtent[1],\n        y2: 0\n      },\n      style: extend({\n        lineCap: 'round'\n      }, timelineModel.getModel('lineStyle').getLineStyle()),\n      silent: true,\n      z2: 1\n    });\n    group.add(line);\n    var progressLine = this._progressLine = new graphic.Line({\n      shape: {\n        x1: axisExtent[0],\n        x2: this._currentPointer ? this._currentPointer.x : axisExtent[0],\n        y1: 0,\n        y2: 0\n      },\n      style: defaults({\n        lineCap: 'round',\n        lineWidth: line.style.lineWidth\n      }, timelineModel.getModel(['progress', 'lineStyle']).getLineStyle()),\n      silent: true,\n      z2: 1\n    });\n    group.add(progressLine);\n  };\n\n  SliderTimelineView.prototype._renderAxisTick = function (layoutInfo, group, axis, timelineModel) {\n    var _this = this;\n\n    var data = timelineModel.getData(); // Show all ticks, despite ignoring strategy.\n\n    var ticks = axis.scale.getTicks();\n    this._tickSymbols = []; // The value is dataIndex, see the costomized scale.\n\n    each(ticks, function (tick) {\n      var tickCoord = axis.dataToCoord(tick.value);\n      var itemModel = data.getItemModel(tick.value);\n      var itemStyleModel = itemModel.getModel('itemStyle');\n      var hoverStyleModel = itemModel.getModel(['emphasis', 'itemStyle']);\n      var progressStyleModel = itemModel.getModel(['progress', 'itemStyle']);\n      var symbolOpt = {\n        x: tickCoord,\n        y: 0,\n        onclick: bind(_this._changeTimeline, _this, tick.value)\n      };\n      var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\n      el.ensureState('emphasis').style = hoverStyleModel.getItemStyle();\n      el.ensureState('progress').style = progressStyleModel.getItemStyle();\n      enableHoverEmphasis(el);\n      var ecData = getECData(el);\n\n      if (itemModel.get('tooltip')) {\n        ecData.dataIndex = tick.value;\n        ecData.dataModel = timelineModel;\n      } else {\n        ecData.dataIndex = ecData.dataModel = null;\n      }\n\n      _this._tickSymbols.push(el);\n    });\n  };\n\n  SliderTimelineView.prototype._renderAxisLabel = function (layoutInfo, group, axis, timelineModel) {\n    var _this = this;\n\n    var labelModel = axis.getLabelModel();\n\n    if (!labelModel.get('show')) {\n      return;\n    }\n\n    var data = timelineModel.getData();\n    var labels = axis.getViewLabels();\n    this._tickLabels = [];\n    each(labels, function (labelItem) {\n      // The tickValue is dataIndex, see the costomized scale.\n      var dataIndex = labelItem.tickValue;\n      var itemModel = data.getItemModel(dataIndex);\n      var normalLabelModel = itemModel.getModel('label');\n      var hoverLabelModel = itemModel.getModel(['emphasis', 'label']);\n      var progressLabelModel = itemModel.getModel(['progress', 'label']);\n      var tickCoord = axis.dataToCoord(labelItem.tickValue);\n      var textEl = new graphic.Text({\n        x: tickCoord,\n        y: 0,\n        rotation: layoutInfo.labelRotation - layoutInfo.rotation,\n        onclick: bind(_this._changeTimeline, _this, dataIndex),\n        silent: false,\n        style: createTextStyle(normalLabelModel, {\n          text: labelItem.formattedLabel,\n          align: layoutInfo.labelAlign,\n          verticalAlign: layoutInfo.labelBaseline\n        })\n      });\n      textEl.ensureState('emphasis').style = createTextStyle(hoverLabelModel);\n      textEl.ensureState('progress').style = createTextStyle(progressLabelModel);\n      group.add(textEl);\n      enableHoverEmphasis(textEl);\n      labelDataIndexStore(textEl).dataIndex = dataIndex;\n\n      _this._tickLabels.push(textEl);\n    });\n  };\n\n  SliderTimelineView.prototype._renderControl = function (layoutInfo, group, axis, timelineModel) {\n    var controlSize = layoutInfo.controlSize;\n    var rotation = layoutInfo.rotation;\n    var itemStyle = timelineModel.getModel('controlStyle').getItemStyle();\n    var hoverStyle = timelineModel.getModel(['emphasis', 'controlStyle']).getItemStyle();\n    var playState = timelineModel.getPlayState();\n    var inverse = timelineModel.get('inverse', true);\n    makeBtn(layoutInfo.nextBtnPosition, 'next', bind(this._changeTimeline, this, inverse ? '-' : '+'));\n    makeBtn(layoutInfo.prevBtnPosition, 'prev', bind(this._changeTimeline, this, inverse ? '+' : '-'));\n    makeBtn(layoutInfo.playPosition, playState ? 'stop' : 'play', bind(this._handlePlayClick, this, !playState), true);\n\n    function makeBtn(position, iconName, onclick, willRotate) {\n      if (!position) {\n        return;\n      }\n\n      var iconSize = parsePercent(retrieve2(timelineModel.get(['controlStyle', iconName + 'BtnSize']), controlSize), controlSize);\n      var rect = [0, -iconSize / 2, iconSize, iconSize];\n      var btn = makeControlIcon(timelineModel, iconName + 'Icon', rect, {\n        x: position[0],\n        y: position[1],\n        originX: controlSize / 2,\n        originY: 0,\n        rotation: willRotate ? -rotation : 0,\n        rectHover: true,\n        style: itemStyle,\n        onclick: onclick\n      });\n      btn.ensureState('emphasis').style = hoverStyle;\n      group.add(btn);\n      enableHoverEmphasis(btn);\n    }\n  };\n\n  SliderTimelineView.prototype._renderCurrentPointer = function (layoutInfo, group, axis, timelineModel) {\n    var data = timelineModel.getData();\n    var currentIndex = timelineModel.getCurrentIndex();\n    var pointerModel = data.getItemModel(currentIndex).getModel('checkpointStyle');\n    var me = this;\n    var callback = {\n      onCreate: function (pointer) {\n        pointer.draggable = true;\n        pointer.drift = bind(me._handlePointerDrag, me);\n        pointer.ondragend = bind(me._handlePointerDragend, me);\n        pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel, true);\n      },\n      onUpdate: function (pointer) {\n        pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel);\n      }\n    }; // Reuse when exists, for animation and drag.\n\n    this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\n  };\n\n  SliderTimelineView.prototype._handlePlayClick = function (nextState) {\n    this._clearTimer();\n\n    this.api.dispatchAction({\n      type: 'timelinePlayChange',\n      playState: nextState,\n      from: this.uid\n    });\n  };\n\n  SliderTimelineView.prototype._handlePointerDrag = function (dx, dy, e) {\n    this._clearTimer();\n\n    this._pointerChangeTimeline([e.offsetX, e.offsetY]);\n  };\n\n  SliderTimelineView.prototype._handlePointerDragend = function (e) {\n    this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\n  };\n\n  SliderTimelineView.prototype._pointerChangeTimeline = function (mousePos, trigger) {\n    var toCoord = this._toAxisCoord(mousePos)[0];\n\n    var axis = this._axis;\n    var axisExtent = numberUtil.asc(axis.getExtent().slice());\n    toCoord > axisExtent[1] && (toCoord = axisExtent[1]);\n    toCoord < axisExtent[0] && (toCoord = axisExtent[0]);\n    this._currentPointer.x = toCoord;\n\n    this._currentPointer.markRedraw();\n\n    this._progressLine.shape.x2 = toCoord;\n\n    this._progressLine.dirty();\n\n    var targetDataIndex = this._findNearestTick(toCoord);\n\n    var timelineModel = this.model;\n\n    if (trigger || targetDataIndex !== timelineModel.getCurrentIndex() && timelineModel.get('realtime')) {\n      this._changeTimeline(targetDataIndex);\n    }\n  };\n\n  SliderTimelineView.prototype._doPlayStop = function () {\n    var _this = this;\n\n    this._clearTimer();\n\n    if (this.model.getPlayState()) {\n      this._timer = setTimeout(function () {\n        // Do not cache\n        var timelineModel = _this.model;\n\n        _this._changeTimeline(timelineModel.getCurrentIndex() + (timelineModel.get('rewind', true) ? -1 : 1));\n      }, this.model.get('playInterval'));\n    }\n  };\n\n  SliderTimelineView.prototype._toAxisCoord = function (vertex) {\n    var trans = this._mainGroup.getLocalTransform();\n\n    return graphic.applyTransform(vertex, trans, true);\n  };\n\n  SliderTimelineView.prototype._findNearestTick = function (axisCoord) {\n    var data = this.model.getData();\n    var dist = Infinity;\n    var targetDataIndex;\n    var axis = this._axis;\n    data.each(['value'], function (value, dataIndex) {\n      var coord = axis.dataToCoord(value);\n      var d = Math.abs(coord - axisCoord);\n\n      if (d < dist) {\n        dist = d;\n        targetDataIndex = dataIndex;\n      }\n    });\n    return targetDataIndex;\n  };\n\n  SliderTimelineView.prototype._clearTimer = function () {\n    if (this._timer) {\n      clearTimeout(this._timer);\n      this._timer = null;\n    }\n  };\n\n  SliderTimelineView.prototype._changeTimeline = function (nextIndex) {\n    var currentIndex = this.model.getCurrentIndex();\n\n    if (nextIndex === '+') {\n      nextIndex = currentIndex + 1;\n    } else if (nextIndex === '-') {\n      nextIndex = currentIndex - 1;\n    }\n\n    this.api.dispatchAction({\n      type: 'timelineChange',\n      currentIndex: nextIndex,\n      from: this.uid\n    });\n  };\n\n  SliderTimelineView.prototype._updateTicksStatus = function () {\n    var currentIndex = this.model.getCurrentIndex();\n    var tickSymbols = this._tickSymbols;\n    var tickLabels = this._tickLabels;\n\n    if (tickSymbols) {\n      for (var i = 0; i < tickSymbols.length; i++) {\n        tickSymbols && tickSymbols[i] && tickSymbols[i].toggleState('progress', i < currentIndex);\n      }\n    }\n\n    if (tickLabels) {\n      for (var i = 0; i < tickLabels.length; i++) {\n        tickLabels && tickLabels[i] && tickLabels[i].toggleState('progress', labelDataIndexStore(tickLabels[i]).dataIndex <= currentIndex);\n      }\n    }\n  };\n\n  SliderTimelineView.type = 'timeline.slider';\n  return SliderTimelineView;\n}(TimelineView);\n\nfunction createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      // Buildin scale\n      case 'category':\n        return new OrdinalScale({\n          ordinalMeta: model.getCategories(),\n          extent: [Infinity, -Infinity]\n        });\n\n      case 'time':\n        return new TimeScale({\n          locale: model.ecModel.getLocaleModel(),\n          useUTC: model.ecModel.get('useUTC')\n        });\n\n      default:\n        // default to be value\n        return new IntervalScale();\n    }\n  }\n}\n\nfunction getViewRect(model, api) {\n  return layout.getLayoutRect(model.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  }, model.get('padding'));\n}\n\nfunction makeControlIcon(timelineModel, objPath, rect, opts) {\n  var style = opts.style;\n  var icon = graphic.createIcon(timelineModel.get(['controlStyle', objPath]), opts || {}, new BoundingRect(rect[0], rect[1], rect[2], rect[3])); // TODO createIcon won't use style in opt.\n\n  if (style) {\n    icon.setStyle(style);\n  }\n\n  return icon;\n}\n/**\n * Create symbol or update symbol\n * opt: basic position and event handlers\n */\n\n\nfunction giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) {\n  var color = itemStyleModel.get('color');\n\n  if (!symbol) {\n    var symbolType = hostModel.get('symbol');\n    symbol = createSymbol(symbolType, -1, -1, 2, 2, color);\n    symbol.setStyle('strokeNoScale', true);\n    group.add(symbol);\n    callback && callback.onCreate(symbol);\n  } else {\n    symbol.setColor(color);\n    group.add(symbol); // Group may be new, also need to add.\n\n    callback && callback.onUpdate(symbol);\n  } // Style\n\n\n  var itemStyle = itemStyleModel.getItemStyle(['color']);\n  symbol.setStyle(itemStyle); // Transform and events.\n\n  opt = merge({\n    rectHover: true,\n    z2: 100\n  }, opt, true);\n  var symbolSize = normalizeSymbolSize(hostModel.get('symbolSize'));\n  opt.scaleX = symbolSize[0] / 2;\n  opt.scaleY = symbolSize[1] / 2;\n  var symbolOffset = normalizeSymbolOffset(hostModel.get('symbolOffset'), symbolSize);\n\n  if (symbolOffset) {\n    opt.x = (opt.x || 0) + symbolOffset[0];\n    opt.y = (opt.y || 0) + symbolOffset[1];\n  }\n\n  var symbolRotate = hostModel.get('symbolRotate');\n  opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n  symbol.attr(opt); // FIXME\n  // (1) When symbol.style.strokeNoScale is true and updateTransform is not performed,\n  // getBoundingRect will return wrong result.\n  // (This is supposed to be resolved in zrender, but it is a little difficult to\n  // leverage performance and auto updateTransform)\n  // (2) All of ancesters of symbol do not scale, so we can just updateTransform symbol.\n\n  symbol.updateTransform();\n  return symbol;\n}\n\nfunction pointerMoveTo(pointer, progressLine, dataIndex, axis, timelineModel, noAnimation) {\n  if (pointer.dragging) {\n    return;\n  }\n\n  var pointerModel = timelineModel.getModel('checkpointStyle');\n  var toCoord = axis.dataToCoord(timelineModel.getData().get('value', dataIndex));\n\n  if (noAnimation || !pointerModel.get('animation', true)) {\n    pointer.attr({\n      x: toCoord,\n      y: 0\n    });\n    progressLine && progressLine.attr({\n      shape: {\n        x2: toCoord\n      }\n    });\n  } else {\n    var animationCfg = {\n      duration: pointerModel.get('animationDuration', true),\n      easing: pointerModel.get('animationEasing', true)\n    };\n    pointer.stopAnimation(null, true);\n    pointer.animateTo({\n      x: toCoord,\n      y: 0\n    }, animationCfg);\n    progressLine && progressLine.animateTo({\n      shape: {\n        x2: toCoord\n      }\n    }, animationCfg);\n  }\n}\n\nexport default SliderTimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { defaults } from 'zrender/lib/core/util.js';\nexport function installTimelineAction(registers) {\n  registers.registerAction({\n    type: 'timelineChange',\n    event: 'timelineChanged',\n    update: 'prepareAndUpdate'\n  }, function (payload, ecModel, api) {\n    var timelineModel = ecModel.getComponent('timeline');\n\n    if (timelineModel && payload.currentIndex != null) {\n      timelineModel.setCurrentIndex(payload.currentIndex);\n\n      if (!timelineModel.get('loop', true) && timelineModel.isIndexMax() && timelineModel.getPlayState()) {\n        timelineModel.setPlayState(false); // The timeline has played to the end, trigger event\n\n        api.dispatchAction({\n          type: 'timelinePlayChange',\n          playState: false,\n          from: payload.from\n        });\n      }\n    } // Set normalized currentIndex to payload.\n\n\n    ecModel.resetOption('timeline', {\n      replaceMerge: timelineModel.get('replaceMerge', true)\n    });\n    return defaults({\n      currentIndex: timelineModel.option.currentIndex\n    }, payload);\n  });\n  registers.registerAction({\n    type: 'timelinePlayChange',\n    event: 'timelinePlayChanged',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var timelineModel = ecModel.getComponent('timeline');\n\n    if (timelineModel && payload.playState != null) {\n      timelineModel.setPlayState(payload.playState);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport default function timelinePreprocessor(option) {\n  var timelineOpt = option && option.timeline;\n\n  if (!zrUtil.isArray(timelineOpt)) {\n    timelineOpt = timelineOpt ? [timelineOpt] : [];\n  }\n\n  zrUtil.each(timelineOpt, function (opt) {\n    if (!opt) {\n      return;\n    }\n\n    compatibleEC2(opt);\n  });\n}\n\nfunction compatibleEC2(opt) {\n  var type = opt.type;\n  var ec2Types = {\n    'number': 'value',\n    'time': 'time'\n  }; // Compatible with ec2\n\n  if (ec2Types[type]) {\n    opt.axisType = ec2Types[type];\n    delete opt.type;\n  }\n\n  transferItem(opt);\n\n  if (has(opt, 'controlPosition')) {\n    var controlStyle = opt.controlStyle || (opt.controlStyle = {});\n\n    if (!has(controlStyle, 'position')) {\n      controlStyle.position = opt.controlPosition;\n    }\n\n    if (controlStyle.position === 'none' && !has(controlStyle, 'show')) {\n      controlStyle.show = false;\n      delete controlStyle.position;\n    }\n\n    delete opt.controlPosition;\n  }\n\n  zrUtil.each(opt.data || [], function (dataItem) {\n    if (zrUtil.isObject(dataItem) && !zrUtil.isArray(dataItem)) {\n      if (!has(dataItem, 'value') && has(dataItem, 'name')) {\n        // In ec2, using name as value.\n        dataItem.value = dataItem.name;\n      }\n\n      transferItem(dataItem);\n    }\n  });\n}\n\nfunction transferItem(opt) {\n  var itemStyle = opt.itemStyle || (opt.itemStyle = {});\n  var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {}); // Transfer label out\n\n  var label = opt.label || opt.label || {};\n  var labelNormal = label.normal || (label.normal = {});\n  var excludeLabelAttr = {\n    normal: 1,\n    emphasis: 1\n  };\n  zrUtil.each(label, function (value, name) {\n    if (!excludeLabelAttr[name] && !has(labelNormal, name)) {\n      labelNormal[name] = value;\n    }\n  });\n\n  if (itemStyleEmphasis.label && !has(label, 'emphasis')) {\n    label.emphasis = itemStyleEmphasis.label;\n    delete itemStyleEmphasis.label;\n  }\n}\n\nfunction has(obj, attr) {\n  return obj.hasOwnProperty(attr);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderTimelineModel from './SliderTimelineModel.js';\nimport SliderTimelineView from './SliderTimelineView.js';\nimport { installTimelineAction } from './timelineAction.js';\nimport preprocessor from './preprocessor.js';\nexport function install(registers) {\n  registers.registerComponentModel(SliderTimelineModel);\n  registers.registerComponentView(SliderTimelineView);\n  registers.registerSubTypeDefaulter('timeline', function () {\n    // Only slider now.\n    return 'slider';\n  });\n  installTimelineAction(registers);\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isArray } from 'zrender/lib/core/util.js';\nexport default function checkMarkerInSeries(seriesOpts, markerType) {\n  if (!seriesOpts) {\n    return false;\n  }\n\n  var seriesOptArr = isArray(seriesOpts) ? seriesOpts : [seriesOpts];\n\n  for (var idx = 0; idx < seriesOptArr.length; idx++) {\n    if (seriesOptArr[idx] && seriesOptArr[idx][markerType]) {\n      return true;\n    }\n  }\n\n  return false;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport env from 'zrender/lib/core/env.js';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat.js';\nimport ComponentModel from '../../model/Component.js';\nimport { makeInner, defaultEmphasis } from '../../util/model.js';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup.js';\n\nfunction fillLabel(opt) {\n  defaultEmphasis(opt, 'label', ['show']);\n} // { [componentType]: MarkerModel }\n\n\nvar inner = makeInner();\n\nvar MarkerModel =\n/** @class */\nfunction (_super) {\n  __extends(MarkerModel, _super);\n\n  function MarkerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerModel.type;\n    /**\n     * If marker model is created by self from series\n     */\n\n    _this.createdBySelf = false;\n    return _this;\n  }\n  /**\n   * @overrite\n   */\n\n\n  MarkerModel.prototype.init = function (option, parentModel, ecModel) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (this.type === 'marker') {\n        throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\n      }\n    }\n\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._mergeOption(option, ecModel, false, true);\n  };\n\n  MarkerModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var hostSeries = this.__hostSeries;\n    return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\n  };\n  /**\n   * @overrite\n   */\n\n\n  MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\n    this._mergeOption(newOpt, ecModel, false, false);\n  };\n\n  MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\n    var componentType = this.mainType;\n\n    if (!createdBySelf) {\n      ecModel.eachSeries(function (seriesModel) {\n        // mainType can be markPoint, markLine, markArea\n        var markerOpt = seriesModel.get(this.mainType, true);\n        var markerModel = inner(seriesModel)[componentType];\n\n        if (!markerOpt || !markerOpt.data) {\n          inner(seriesModel)[componentType] = null;\n          return;\n        }\n\n        if (!markerModel) {\n          if (isInit) {\n            // Default label emphasis `position` and `show`\n            fillLabel(markerOpt);\n          }\n\n          zrUtil.each(markerOpt.data, function (item) {\n            // FIXME Overwrite fillLabel method ?\n            if (item instanceof Array) {\n              fillLabel(item[0]);\n              fillLabel(item[1]);\n            } else {\n              fillLabel(item);\n            }\n          });\n          markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel); // markerModel = new ImplementedMarkerModel(\n          //     markerOpt, this, ecModel\n          // );\n\n          zrUtil.extend(markerModel, {\n            mainType: this.mainType,\n            // Use the same series index and name\n            seriesIndex: seriesModel.seriesIndex,\n            name: seriesModel.name,\n            createdBySelf: true\n          });\n          markerModel.__hostSeries = seriesModel;\n        } else {\n          markerModel._mergeOption(markerOpt, ecModel, true);\n        }\n\n        inner(seriesModel)[componentType] = markerModel;\n      }, this);\n    }\n  };\n\n  MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var itemName = data.getName(dataIndex);\n    return createTooltipMarkup('section', {\n      header: this.name,\n      blocks: [createTooltipMarkup('nameValue', {\n        name: itemName,\n        value: value,\n        noName: !itemName,\n        noValue: value == null\n      })]\n    });\n  };\n\n  MarkerModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  MarkerModel.prototype.setData = function (data) {\n    this._data = data;\n  };\n\n  MarkerModel.getMarkerModelFromSeries = function (seriesModel, // Support three types of markers. Strict check.\n  componentType) {\n    return inner(seriesModel)[componentType];\n  };\n\n  MarkerModel.type = 'marker';\n  MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\n  return MarkerModel;\n}(ComponentModel);\n\nzrUtil.mixin(MarkerModel, DataFormatMixin.prototype);\nexport default MarkerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel.js';\n\nvar MarkPointModel =\n/** @class */\nfunction (_super) {\n  __extends(MarkPointModel, _super);\n\n  function MarkPointModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointModel.type;\n    return _this;\n  }\n\n  MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkPointModel.type = 'markPoint';\n  MarkPointModel.defaultOption = {\n    // zlevel: 0,\n    z: 5,\n    symbol: 'pin',\n    symbolSize: 50,\n    //symbolRotate: 0,\n    //symbolOffset: [0, 0]\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'inside'\n    },\n    itemStyle: {\n      borderWidth: 2\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  };\n  return MarkPointModel;\n}(MarkerModel);\n\nexport default MarkPointModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as numberUtil from '../../util/number.js';\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper.js';\nimport { indexOf, curry, clone, isArray } from 'zrender/lib/core/util.js';\nimport { parseDataValue } from '../../data/helper/dataValueHelper.js';\n\nfunction hasXOrY(item) {\n  return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\n}\n\nfunction hasXAndY(item) {\n  return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\n}\n\nfunction markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\n  var coordArr = [];\n  var stacked = isDimensionStacked(data, targetDataDim\n  /*, otherDataDim*/\n  );\n  var calcDataDim = stacked ? data.getCalculationInfo('stackResultDimension') : targetDataDim;\n  var value = numCalculate(data, calcDataDim, markerType);\n  var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\n  coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\n  coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\n  var coordArrValue = data.get(targetDataDim, dataIndex); // Make it simple, do not visit all stacked value to count precision.\n\n  var precision = numberUtil.getPrecision(data.get(targetDataDim, dataIndex));\n  precision = Math.min(precision, 20);\n\n  if (precision >= 0) {\n    coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\n  }\n\n  return [coordArr, coordArrValue];\n} // TODO Specified percent\n\n\nvar markerTypeCalculator = {\n  min: curry(markerTypeCalculatorWithExtent, 'min'),\n  max: curry(markerTypeCalculatorWithExtent, 'max'),\n  average: curry(markerTypeCalculatorWithExtent, 'average'),\n  median: curry(markerTypeCalculatorWithExtent, 'median')\n};\n/**\n * Transform markPoint data item to format used in List by do the following\n * 1. Calculate statistic like `max`, `min`, `average`\n * 2. Convert `item.xAxis`, `item.yAxis` to `item.coord` array\n */\n\nexport function dataTransform(seriesModel, item) {\n  var data = seriesModel.getData();\n  var coordSys = seriesModel.coordinateSystem; // 1. If not specify the position with pixel directly\n  // 2. If `coord` is not a data array. Which uses `xAxis`,\n  // `yAxis` to specify the coord on each dimension\n  // parseFloat first because item.x and item.y can be percent string like '20%'\n\n  if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\n    var dims = coordSys.dimensions;\n    var axisInfo = getAxisInfo(item, data, coordSys, seriesModel); // Clone the option\n    // Transform the properties xAxis, yAxis, radiusAxis, angleAxis, geoCoord to value\n\n    item = clone(item);\n\n    if (item.type && markerTypeCalculator[item.type] && axisInfo.baseAxis && axisInfo.valueAxis) {\n      var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\n      var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\n      var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\n      item.coord = coordInfo[0]; // Force to use the value of calculated value.\n      // let item use the value without stack.\n\n      item.value = coordInfo[1];\n    } else {\n      // FIXME Only has one of xAxis and yAxis.\n      var coord = [item.xAxis != null ? item.xAxis : item.radiusAxis, item.yAxis != null ? item.yAxis : item.angleAxis]; // Each coord support max, min, average\n\n      for (var i = 0; i < 2; i++) {\n        if (markerTypeCalculator[coord[i]]) {\n          coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\n        }\n      }\n\n      item.coord = coord;\n    }\n  }\n\n  return item;\n}\nexport function getAxisInfo(item, data, coordSys, seriesModel) {\n  var ret = {};\n\n  if (item.valueIndex != null || item.valueDim != null) {\n    ret.valueDataDim = item.valueIndex != null ? data.getDimension(item.valueIndex) : item.valueDim;\n    ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\n    ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n  } else {\n    ret.baseAxis = seriesModel.getBaseAxis();\n    ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n    ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\n  }\n\n  return ret;\n}\n\nfunction dataDimToCoordDim(seriesModel, dataDim) {\n  var dimItem = seriesModel.getData().getDimensionInfo(dataDim);\n  return dimItem && dimItem.coordDim;\n}\n/**\n * Filter data which is out of coordinateSystem range\n * [dataFilter description]\n */\n\n\nexport function dataFilter( // Currently only polar and cartesian has containData.\ncoordSys, item) {\n  // Alwalys return true if there is no coordSys\n  return coordSys && coordSys.containData && item.coord && !hasXOrY(item) ? coordSys.containData(item.coord) : true;\n}\nexport function zoneFilter( // Currently only polar and cartesian has containData.\ncoordSys, item1, item2) {\n  // Alwalys return true if there is no coordSys\n  return coordSys && coordSys.containZone && item1.coord && item2.coord && !hasXOrY(item1) && !hasXOrY(item2) ? coordSys.containZone(item1.coord, item2.coord) : true;\n}\nexport function createMarkerDimValueGetter(inCoordSys, dims) {\n  return inCoordSys ? function (item, dimName, dataIndex, dimIndex) {\n    var rawVal = dimIndex < 2 // x, y, radius, angle\n    ? item.coord && item.coord[dimIndex] : item.value;\n    return parseDataValue(rawVal, dims[dimIndex]);\n  } : function (item, dimName, dataIndex, dimIndex) {\n    return parseDataValue(item.value, dims[dimIndex]);\n  };\n}\nexport function numCalculate(data, valueDataDim, type) {\n  if (type === 'average') {\n    var sum_1 = 0;\n    var count_1 = 0;\n    data.each(valueDataDim, function (val, idx) {\n      if (!isNaN(val)) {\n        sum_1 += val;\n        count_1++;\n      }\n    });\n    return sum_1 / count_1;\n  } else if (type === 'median') {\n    return data.getMedian(valueDataDim);\n  } else {\n    // max & min\n    return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component.js';\nimport { createHashMap, each } from 'zrender/lib/core/util.js';\nimport MarkerModel from './MarkerModel.js';\nimport { makeInner } from '../../util/model.js';\nimport { enterBlur, leaveBlur } from '../../util/states.js';\nvar inner = makeInner();\n\nvar MarkerView =\n/** @class */\nfunction (_super) {\n  __extends(MarkerView, _super);\n\n  function MarkerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerView.type;\n    return _this;\n  }\n\n  MarkerView.prototype.init = function () {\n    this.markerGroupMap = createHashMap();\n  };\n\n  MarkerView.prototype.render = function (markerModel, ecModel, api) {\n    var _this = this;\n\n    var markerGroupMap = this.markerGroupMap;\n    markerGroupMap.each(function (item) {\n      inner(item).keep = false;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n      markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\n    });\n    markerGroupMap.each(function (item) {\n      !inner(item).keep && _this.group.remove(item.group);\n    });\n  };\n\n  MarkerView.prototype.markKeep = function (drawGroup) {\n    inner(drawGroup).keep = true;\n  };\n\n  MarkerView.prototype.toggleBlurSeries = function (seriesModelList, isBlur) {\n    var _this = this;\n\n    each(seriesModelList, function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n\n      if (markerModel) {\n        var data = markerModel.getData();\n        data.eachItemGraphicEl(function (el) {\n          if (el) {\n            isBlur ? enterBlur(el) : leaveBlur(el);\n          }\n        });\n      }\n    });\n  };\n\n  MarkerView.type = 'marker';\n  return MarkerView;\n}(ComponentView);\n\nexport default MarkerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../../chart/helper/SymbolDraw.js';\nimport * as numberUtil from '../../util/number.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport * as markerHelper from './markerHelper.js';\nimport MarkerView from './MarkerView.js';\nimport MarkerModel from './MarkerModel.js';\nimport { isFunction, map, filter, curry, extend } from 'zrender/lib/core/util.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { getVisualFromData } from '../../visual/helper.js';\n\nfunction updateMarkerLayout(mpData, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  mpData.each(function (idx) {\n    var itemModel = mpData.getItemModel(idx);\n    var point;\n    var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n    var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n    if (!isNaN(xPx) && !isNaN(yPx)) {\n      point = [xPx, yPx];\n    } // Chart like bar may have there own marker positioning logic\n    else if (seriesModel.getMarkerPosition) {\n        // Use the getMarkerPoisition\n        point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\n      } else if (coordSys) {\n        var x = mpData.get(coordSys.dimensions[0], idx);\n        var y = mpData.get(coordSys.dimensions[1], idx);\n        point = coordSys.dataToPoint([x, y]);\n      } // Use x, y if has any\n\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n\n    mpData.setItemLayout(idx, point);\n  });\n}\n\nvar MarkPointView =\n/** @class */\nfunction (_super) {\n  __extends(MarkPointView, _super);\n\n  function MarkPointView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointView.type;\n    return _this;\n  }\n\n  MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\n\n      if (mpModel) {\n        updateMarkerLayout(mpModel.getData(), seriesModel, api);\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var symbolDrawMap = this.markerGroupMap;\n    var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw());\n    var mpData = createData(coordSys, seriesModel, mpModel); // FIXME\n\n    mpModel.setData(mpData);\n    updateMarkerLayout(mpModel.getData(), seriesModel, api);\n    mpData.each(function (idx) {\n      var itemModel = mpData.getItemModel(idx);\n      var symbol = itemModel.getShallow('symbol');\n      var symbolSize = itemModel.getShallow('symbolSize');\n      var symbolRotate = itemModel.getShallow('symbolRotate');\n      var symbolOffset = itemModel.getShallow('symbolOffset');\n      var symbolKeepAspect = itemModel.getShallow('symbolKeepAspect'); // TODO: refactor needed: single data item should not support callback function\n\n      if (isFunction(symbol) || isFunction(symbolSize) || isFunction(symbolRotate) || isFunction(symbolOffset)) {\n        var rawIdx = mpModel.getRawValue(idx);\n        var dataParams = mpModel.getDataParams(idx);\n\n        if (isFunction(symbol)) {\n          symbol = symbol(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolSize)) {\n          // FIXME 这里不兼容 ECharts 2.x，2.x 貌似参数是整个数据？\n          symbolSize = symbolSize(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolRotate)) {\n          symbolRotate = symbolRotate(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolOffset)) {\n          symbolOffset = symbolOffset(rawIdx, dataParams);\n        }\n      }\n\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n      }\n\n      mpData.setItemVisual(idx, {\n        symbol: symbol,\n        symbolSize: symbolSize,\n        symbolRotate: symbolRotate,\n        symbolOffset: symbolOffset,\n        symbolKeepAspect: symbolKeepAspect,\n        style: style\n      });\n    }); // TODO Text are wrong\n\n    symbolDraw.updateData(mpData);\n    this.group.add(symbolDraw.group); // Set host model for tooltip\n    // FIXME\n\n    mpData.eachItemGraphicEl(function (el) {\n      el.traverse(function (child) {\n        getECData(child).dataModel = mpModel;\n      });\n    });\n    this.markKeep(symbolDraw);\n    symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkPointView.type = 'markPoint';\n  return MarkPointView;\n}(MarkerView);\n\nfunction createData(coordSys, seriesModel, mpModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n      return extend(extend({}, info), {\n        name: coordDim,\n        // DON'T use ordinalMeta to parse and collect ordinal.\n        ordinalMeta: null\n      });\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var mpData = new SeriesData(coordDimsInfos, mpModel);\n  var dataOpt = map(mpModel.get('data'), curry(markerHelper.dataTransform, seriesModel));\n\n  if (coordSys) {\n    dataOpt = filter(dataOpt, curry(markerHelper.dataFilter, coordSys));\n  }\n\n  var dimValueGetter = markerHelper.createMarkerDimValueGetter(!!coordSys, coordDimsInfos);\n  mpData.initData(dataOpt, null, dimValueGetter);\n  return mpData;\n}\n\nexport default MarkPointView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport checkMarkerInSeries from './checkMarkerInSeries.js';\nimport MarkPointModel from './MarkPointModel.js';\nimport MarkPointView from './MarkPointView.js';\nexport function install(registers) {\n  registers.registerComponentModel(MarkPointModel);\n  registers.registerComponentView(MarkPointView);\n  registers.registerPreprocessor(function (opt) {\n    if (checkMarkerInSeries(opt.series, 'markPoint')) {\n      // Make sure markPoint component is enabled\n      opt.markPoint = opt.markPoint || {};\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel.js';\n\nvar MarkLineModel =\n/** @class */\nfunction (_super) {\n  __extends(MarkLineModel, _super);\n\n  function MarkLineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineModel.type;\n    return _this;\n  }\n\n  MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkLineModel.type = 'markLine';\n  MarkLineModel.defaultOption = {\n    // zlevel: 0,\n    z: 5,\n    symbol: ['circle', 'arrow'],\n    symbolSize: [8, 16],\n    //symbolRotate: 0,\n    symbolOffset: 0,\n    precision: 2,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'end',\n      distance: 5\n    },\n    lineStyle: {\n      type: 'dashed'\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        width: 3\n      }\n    },\n    animationEasing: 'linear'\n  };\n  return MarkLineModel;\n}(MarkerModel);\n\nexport default MarkLineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesData from '../../data/SeriesData.js';\nimport * as numberUtil from '../../util/number.js';\nimport * as markerHelper from './markerHelper.js';\nimport LineDraw from '../../chart/helper/LineDraw.js';\nimport MarkerView from './MarkerView.js';\nimport { getStackedDimension } from '../../data/helper/dataStackHelper.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport { getECData } from '../../util/innerStore.js';\nimport MarkerModel from './MarkerModel.js';\nimport { isArray, retrieve, retrieve2, clone, extend, logError, merge, map, curry, filter, isNumber } from 'zrender/lib/core/util.js';\nimport { makeInner } from '../../util/model.js';\nimport { getVisualFromData } from '../../visual/helper.js';\nvar inner = makeInner();\n\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n  var data = seriesModel.getData();\n  var itemArray;\n\n  if (!isArray(item)) {\n    // Special type markLine like 'min', 'max', 'average', 'median'\n    var mlType = item.type;\n\n    if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' // In case\n    // data: [{\n    //   yAxis: 10\n    // }]\n    || item.xAxis != null || item.yAxis != null) {\n      var valueAxis = void 0;\n      var value = void 0;\n\n      if (item.yAxis != null || item.xAxis != null) {\n        valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\n        value = retrieve(item.yAxis, item.xAxis);\n      } else {\n        var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n        valueAxis = axisInfo.valueAxis;\n        var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\n        value = markerHelper.numCalculate(data, valueDataDim, mlType);\n      }\n\n      var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\n      var baseIndex = 1 - valueIndex; // Normized to 2d data with start and end point\n\n      var mlFrom = clone(item);\n      var mlTo = {\n        coord: []\n      };\n      mlFrom.type = null;\n      mlFrom.coord = [];\n      mlFrom.coord[baseIndex] = -Infinity;\n      mlTo.coord[baseIndex] = Infinity;\n      var precision = mlModel.get('precision');\n\n      if (precision >= 0 && isNumber(value)) {\n        value = +value.toFixed(Math.min(precision, 20));\n      }\n\n      mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n      itemArray = [mlFrom, mlTo, {\n        type: mlType,\n        valueIndex: item.valueIndex,\n        // Force to use the value of calculated value.\n        value: value\n      }];\n    } else {\n      // Invalid data\n      if (process.env.NODE_ENV !== 'production') {\n        logError('Invalid markLine data.');\n      }\n\n      itemArray = [];\n    }\n  } else {\n    itemArray = item;\n  }\n\n  var normalizedItem = [markerHelper.dataTransform(seriesModel, itemArray[0]), markerHelper.dataTransform(seriesModel, itemArray[1]), extend({}, itemArray[2])]; // Avoid line data type is extended by from(to) data type\n\n  normalizedItem[2].type = normalizedItem[2].type || null; // Merge from option and to option into line option\n\n  merge(normalizedItem[2], normalizedItem[0]);\n  merge(normalizedItem[2], normalizedItem[1]);\n  return normalizedItem;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n} // If a markLine has one dim\n\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  var dimName = coordSys.dimensions[dimIndex];\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n  if (coordSys.type === 'cartesian2d') {\n    var fromCoord = item[0].coord;\n    var toCoord = item[1].coord; // In case\n    // {\n    //  markLine: {\n    //    data: [{ yAxis: 2 }]\n    //  }\n    // }\n\n    if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    // Chart like bar may have there own marker positioning logic\n    if (seriesModel.getMarkerPosition) {\n      // Use the getMarkerPoisition\n      point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n    } else {\n      var dims = coordSys.dimensions;\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    } // Expand line to the edge of grid if value on one axis is Inifnity\n    // In case\n    //  markLine: {\n    //    data: [{\n    //      yAxis: 2\n    //      // or\n    //      type: 'average'\n    //    }]\n    //  }\n\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      // TODO: TYPE ts@4.1 may still infer it as Axis instead of Axis2D. Not sure if it's a bug\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var dims = coordSys.dimensions;\n\n      if (isInifinity(data.get(dims[0], idx))) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n      } else if (isInifinity(data.get(dims[1], idx))) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n      }\n    } // Use x, y if has any\n\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  data.setItemLayout(idx, point);\n}\n\nvar MarkLineView =\n/** @class */\nfunction (_super) {\n  __extends(MarkLineView, _super);\n\n  function MarkLineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineView.type;\n    return _this;\n  }\n\n  MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\n\n      if (mlModel) {\n        var mlData_1 = mlModel.getData();\n        var fromData_1 = inner(mlModel).from;\n        var toData_1 = inner(mlModel).to; // Update visual and layout of from symbol and to symbol\n\n        fromData_1.each(function (idx) {\n          updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\n          updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\n        }); // Update layout of line\n\n        mlData_1.each(function (idx) {\n          mlData_1.setItemLayout(idx, [fromData_1.getItemLayout(idx), toData_1.getItemLayout(idx)]);\n        });\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var lineDrawMap = this.markerGroupMap;\n    var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n    this.group.add(lineDraw.group);\n    var mlData = createList(coordSys, seriesModel, mlModel);\n    var fromData = mlData.from;\n    var toData = mlData.to;\n    var lineData = mlData.line;\n    inner(mlModel).from = fromData;\n    inner(mlModel).to = toData; // Line data for tooltip and formatter\n\n    mlModel.setData(lineData); // TODO\n    // Functionally, `symbolSize` & `symbolOffset` can also be 2D array now.\n    // But the related logic and type definition are not finished yet.\n    // Finish it if required\n\n    var symbolType = mlModel.get('symbol');\n    var symbolSize = mlModel.get('symbolSize');\n    var symbolRotate = mlModel.get('symbolRotate');\n    var symbolOffset = mlModel.get('symbolOffset'); // TODO: support callback function like markPoint\n\n    if (!isArray(symbolType)) {\n      symbolType = [symbolType, symbolType];\n    }\n\n    if (!isArray(symbolSize)) {\n      symbolSize = [symbolSize, symbolSize];\n    }\n\n    if (!isArray(symbolRotate)) {\n      symbolRotate = [symbolRotate, symbolRotate];\n    }\n\n    if (!isArray(symbolOffset)) {\n      symbolOffset = [symbolOffset, symbolOffset];\n    } // Update visual and layout of from symbol and to symbol\n\n\n    mlData.from.each(function (idx) {\n      updateDataVisualAndLayout(fromData, idx, true);\n      updateDataVisualAndLayout(toData, idx, false);\n    }); // Update visual and layout of line\n\n    lineData.each(function (idx) {\n      var lineStyle = lineData.getItemModel(idx).getModel('lineStyle').getLineStyle(); // lineData.setItemVisual(idx, {\n      //     color: lineColor || fromData.getItemVisual(idx, 'color')\n      // });\n\n      lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n\n      if (lineStyle.stroke == null) {\n        lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\n      }\n\n      lineData.setItemVisual(idx, {\n        fromSymbolKeepAspect: fromData.getItemVisual(idx, 'symbolKeepAspect'),\n        fromSymbolOffset: fromData.getItemVisual(idx, 'symbolOffset'),\n        fromSymbolRotate: fromData.getItemVisual(idx, 'symbolRotate'),\n        fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\n        fromSymbol: fromData.getItemVisual(idx, 'symbol'),\n        toSymbolKeepAspect: toData.getItemVisual(idx, 'symbolKeepAspect'),\n        toSymbolOffset: toData.getItemVisual(idx, 'symbolOffset'),\n        toSymbolRotate: toData.getItemVisual(idx, 'symbolRotate'),\n        toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\n        toSymbol: toData.getItemVisual(idx, 'symbol'),\n        style: lineStyle\n      });\n    });\n    lineDraw.updateData(lineData); // Set host model for tooltip\n    // FIXME\n\n    mlData.line.eachItemGraphicEl(function (el) {\n      getECData(el).dataModel = mlModel;\n      el.traverse(function (child) {\n        getECData(child).dataModel = mlModel;\n      });\n    });\n\n    function updateDataVisualAndLayout(data, idx, isFrom) {\n      var itemModel = data.getItemModel(idx);\n      updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n\n      if (style.fill == null) {\n        style.fill = getVisualFromData(seriesData, 'color');\n      }\n\n      data.setItemVisual(idx, {\n        symbolKeepAspect: itemModel.get('symbolKeepAspect'),\n        // `0` should be considered as a valid value, so use `retrieve2` instead of `||`\n        symbolOffset: retrieve2(itemModel.get('symbolOffset', true), symbolOffset[isFrom ? 0 : 1]),\n        symbolRotate: retrieve2(itemModel.get('symbolRotate', true), symbolRotate[isFrom ? 0 : 1]),\n        // TODO: when 2d array is supported, it should ignore parent\n        symbolSize: retrieve2(itemModel.get('symbolSize'), symbolSize[isFrom ? 0 : 1]),\n        symbol: retrieve2(itemModel.get('symbol', true), symbolType[isFrom ? 0 : 1]),\n        style: style\n      });\n    }\n\n    this.markKeep(lineDraw);\n    lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkLineView.type = 'markLine';\n  return MarkLineView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mlModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n      return extend(extend({}, info), {\n        name: coordDim,\n        // DON'T use ordinalMeta to parse and collect ordinal.\n        ordinalMeta: null\n      });\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var fromData = new SeriesData(coordDimsInfos, mlModel);\n  var toData = new SeriesData(coordDimsInfos, mlModel); // No dimensions\n\n  var lineData = new SeriesData([], mlModel);\n  var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markLineFilter, coordSys));\n  }\n\n  var dimValueGetter = markerHelper.createMarkerDimValueGetter(!!coordSys, coordDimsInfos);\n  fromData.initData(map(optData, function (item) {\n    return item[0];\n  }), null, dimValueGetter);\n  toData.initData(map(optData, function (item) {\n    return item[1];\n  }), null, dimValueGetter);\n  lineData.initData(map(optData, function (item) {\n    return item[2];\n  }));\n  lineData.hasItemOption = true;\n  return {\n    from: fromData,\n    to: toData,\n    line: lineData\n  };\n}\n\nexport default MarkLineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport checkMarkerInSeries from './checkMarkerInSeries.js';\nimport MarkLineModel from './MarkLineModel.js';\nimport MarkLineView from './MarkLineView.js';\nexport function install(registers) {\n  registers.registerComponentModel(MarkLineModel);\n  registers.registerComponentView(MarkLineView);\n  registers.registerPreprocessor(function (opt) {\n    if (checkMarkerInSeries(opt.series, 'markLine')) {\n      // Make sure markLine component is enabled\n      opt.markLine = opt.markLine || {};\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel.js';\n\nvar MarkAreaModel =\n/** @class */\nfunction (_super) {\n  __extends(MarkAreaModel, _super);\n\n  function MarkAreaModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaModel.type;\n    return _this;\n  }\n\n  MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkAreaModel.type = 'markArea';\n  MarkAreaModel.defaultOption = {\n    // zlevel: 0,\n    // PENDING\n    z: 1,\n    tooltip: {\n      trigger: 'item'\n    },\n    // markArea should fixed on the coordinate system\n    animation: false,\n    label: {\n      show: true,\n      position: 'top'\n    },\n    itemStyle: {\n      // color and borderColor default to use color from series\n      // color: 'auto'\n      // borderColor: 'auto'\n      borderWidth: 0\n    },\n    emphasis: {\n      label: {\n        show: true,\n        position: 'top'\n      }\n    }\n  };\n  return MarkAreaModel;\n}(MarkerModel);\n\nexport default MarkAreaModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\"; // TODO Optimize on polar\n\nimport * as colorUtil from 'zrender/lib/tool/color.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport * as numberUtil from '../../util/number.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, setStatesStylesFromModel } from '../../util/states.js';\nimport * as markerHelper from './markerHelper.js';\nimport MarkerView from './MarkerView.js';\nimport { retrieve, mergeAll, map, curry, filter, extend, isString } from 'zrender/lib/core/util.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport MarkerModel from './MarkerModel.js';\nimport { makeInner } from '../../util/model.js';\nimport { getVisualFromData } from '../../visual/helper.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { parseDataValue } from '../../data/helper/dataValueHelper.js';\nvar inner = makeInner();\n\nvar markAreaTransform = function (seriesModel, coordSys, maModel, item) {\n  var lt = markerHelper.dataTransform(seriesModel, item[0]);\n  var rb = markerHelper.dataTransform(seriesModel, item[1]); // FIXME make sure lt is less than rb\n\n  var ltCoord = lt.coord;\n  var rbCoord = rb.coord;\n  ltCoord[0] = retrieve(ltCoord[0], -Infinity);\n  ltCoord[1] = retrieve(ltCoord[1], -Infinity);\n  rbCoord[0] = retrieve(rbCoord[0], Infinity);\n  rbCoord[1] = retrieve(rbCoord[1], Infinity); // Merge option into one\n\n  var result = mergeAll([{}, lt, rb]);\n  result.coord = [lt.coord, rb.coord];\n  result.x0 = lt.x;\n  result.y0 = lt.y;\n  result.x1 = rb.x;\n  result.y1 = rb.y;\n  return result;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n} // If a markArea has one dim\n\n\nfunction ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n  var fromCoord = item.coord[0];\n  var toCoord = item.coord[1];\n  var item0 = {\n    coord: fromCoord,\n    x: item.x0,\n    y: item.y0\n  };\n  var item1 = {\n    coord: toCoord,\n    x: item.x1,\n    y: item.y1\n  };\n\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    // In case\n    // {\n    //  markArea: {\n    //    data: [{ yAxis: 2 }]\n    //  }\n    // }\n    if (fromCoord && toCoord && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    } //Directly returning true may also do the work,\n    //because markArea will not be shown automatically\n    //when it's not included in coordinate system.\n    //But filtering ahead can avoid keeping rendering markArea\n    //when there are too many of them.\n\n\n    return markerHelper.zoneFilter(coordSys, item0, item1);\n  }\n\n  return markerHelper.dataFilter(coordSys, item0) || markerHelper.dataFilter(coordSys, item1);\n} // dims can be ['x0', 'y0'], ['x1', 'y1'], ['x0', 'y1'], ['x1', 'y0']\n\n\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    // Chart like bar may have there own marker positioning logic\n    if (seriesModel.getMarkerPosition) {\n      // Use the getMarkerPoisition\n      point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\n    } else {\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      var pt = [x, y];\n      coordSys.clampData && coordSys.clampData(pt, pt);\n      point = coordSys.dataToPoint(pt, true);\n    }\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      // TODO: TYPE ts@4.1 may still infer it as Axis instead of Axis2D. Not sure if it's a bug\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n\n      if (isInifinity(x)) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n      } else if (isInifinity(y)) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\n      }\n    } // Use x, y if has any\n\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  return point;\n}\n\nvar dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\n\nvar MarkAreaView =\n/** @class */\nfunction (_super) {\n  __extends(MarkAreaView, _super);\n\n  function MarkAreaView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaView.type;\n    return _this;\n  }\n\n  MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\n\n      if (maModel) {\n        var areaData_1 = maModel.getData();\n        areaData_1.each(function (idx) {\n          var points = map(dimPermutations, function (dim) {\n            return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\n          }); // Layout\n\n          areaData_1.setItemLayout(idx, points);\n          var el = areaData_1.getItemGraphicEl(idx);\n          el.setShape('points', points);\n        });\n      }\n    }, this);\n  };\n\n  MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var areaGroupMap = this.markerGroupMap;\n    var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\n      group: new graphic.Group()\n    });\n    this.group.add(polygonGroup.group);\n    this.markKeep(polygonGroup);\n    var areaData = createList(coordSys, seriesModel, maModel); // Line data for tooltip and formatter\n\n    maModel.setData(areaData); // Update visual and layout of line\n\n    areaData.each(function (idx) {\n      // Layout\n      var points = map(dimPermutations, function (dim) {\n        return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n      });\n      var xAxisScale = coordSys.getAxis('x').scale;\n      var yAxisScale = coordSys.getAxis('y').scale;\n      var xAxisExtent = xAxisScale.getExtent();\n      var yAxisExtent = yAxisScale.getExtent();\n      var xPointExtent = [xAxisScale.parse(areaData.get('x0', idx)), xAxisScale.parse(areaData.get('x1', idx))];\n      var yPointExtent = [yAxisScale.parse(areaData.get('y0', idx)), yAxisScale.parse(areaData.get('y1', idx))];\n      numberUtil.asc(xPointExtent);\n      numberUtil.asc(yPointExtent);\n      var overlapped = !(xAxisExtent[0] > xPointExtent[1] || xAxisExtent[1] < xPointExtent[0] || yAxisExtent[0] > yPointExtent[1] || yAxisExtent[1] < yPointExtent[0]); // If none of the area is inside coordSys, allClipped is set to be true\n      // in layout so that label will not be displayed. See #12591\n\n      var allClipped = !overlapped;\n      areaData.setItemLayout(idx, {\n        points: points,\n        allClipped: allClipped\n      });\n      var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n\n        if (isString(style.fill)) {\n          style.fill = colorUtil.modifyAlpha(style.fill, 0.4);\n        }\n      }\n\n      if (!style.stroke) {\n        style.stroke = color;\n      } // Visual\n\n\n      areaData.setItemVisual(idx, 'style', style);\n    });\n    areaData.diff(inner(polygonGroup).data).add(function (idx) {\n      var layout = areaData.getItemLayout(idx);\n\n      if (!layout.allClipped) {\n        var polygon = new graphic.Polygon({\n          shape: {\n            points: layout.points\n          }\n        });\n        areaData.setItemGraphicEl(idx, polygon);\n        polygonGroup.group.add(polygon);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(oldIdx);\n      var layout = areaData.getItemLayout(newIdx);\n\n      if (!layout.allClipped) {\n        if (polygon) {\n          graphic.updateProps(polygon, {\n            shape: {\n              points: layout.points\n            }\n          }, maModel, newIdx);\n        } else {\n          polygon = new graphic.Polygon({\n            shape: {\n              points: layout.points\n            }\n          });\n        }\n\n        areaData.setItemGraphicEl(newIdx, polygon);\n        polygonGroup.group.add(polygon);\n      } else if (polygon) {\n        polygonGroup.group.remove(polygon);\n      }\n    }).remove(function (idx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(idx);\n      polygonGroup.group.remove(polygon);\n    }).execute();\n    areaData.eachItemGraphicEl(function (polygon, idx) {\n      var itemModel = areaData.getItemModel(idx);\n      var style = areaData.getItemVisual(idx, 'style');\n      polygon.useStyle(areaData.getItemVisual(idx, 'style'));\n      setLabelStyle(polygon, getLabelStatesModels(itemModel), {\n        labelFetcher: maModel,\n        labelDataIndex: idx,\n        defaultText: areaData.getName(idx) || '',\n        inheritColor: isString(style.fill) ? colorUtil.modifyAlpha(style.fill, 1) : '#000'\n      });\n      setStatesStylesFromModel(polygon, itemModel);\n      toggleHoverEmphasis(polygon, null, null, itemModel.get(['emphasis', 'disabled']));\n      getECData(polygon).dataModel = maModel;\n    });\n    inner(polygonGroup).data = areaData;\n    polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkAreaView.type = 'markArea';\n  return MarkAreaView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, maModel) {\n  var areaData;\n  var dataDims;\n  var dims = ['x0', 'y0', 'x1', 'y1'];\n\n  if (coordSys) {\n    var coordDimsInfos_1 = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var data = seriesModel.getData();\n      var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n      return extend(extend({}, info), {\n        name: coordDim,\n        // DON'T use ordinalMeta to parse and collect ordinal.\n        ordinalMeta: null\n      });\n    });\n    dataDims = map(dims, function (dim, idx) {\n      return {\n        name: dim,\n        type: coordDimsInfos_1[idx % 2].type\n      };\n    });\n    areaData = new SeriesData(dataDims, maModel);\n  } else {\n    dataDims = [{\n      name: 'value',\n      type: 'float'\n    }];\n    areaData = new SeriesData(dataDims, maModel);\n  }\n\n  var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markAreaFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\n    // TODO should convert to ParsedValue?\n    var rawVal = item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\n    return parseDataValue(rawVal, dataDims[dimIndex]);\n  } : function (item, dimName, dataIndex, dimIndex) {\n    return parseDataValue(item.value, dataDims[dimIndex]);\n  };\n  areaData.initData(optData, null, dimValueGetter);\n  areaData.hasItemOption = true;\n  return areaData;\n}\n\nexport default MarkAreaView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport checkMarkerInSeries from './checkMarkerInSeries.js';\nimport MarkAreaModel from './MarkAreaModel.js';\nimport MarkAreaView from './MarkAreaView.js';\nexport function install(registers) {\n  registers.registerComponentModel(MarkAreaModel);\n  registers.registerComponentView(MarkAreaView);\n  registers.registerPreprocessor(function (opt) {\n    if (checkMarkerInSeries(opt.series, 'markArea')) {\n      // Make sure markArea component is enabled\n      opt.markArea = opt.markArea || {};\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport Model from '../../model/Model.js';\nimport { isNameSpecified } from '../../util/model.js';\nimport ComponentModel from '../../model/Component.js';\n\nvar getDefaultSelectorOptions = function (ecModel, type) {\n  if (type === 'all') {\n    return {\n      type: 'all',\n      title: ecModel.getLocaleModel().get(['legend', 'selector', 'all'])\n    };\n  } else if (type === 'inverse') {\n    return {\n      type: 'inverse',\n      title: ecModel.getLocaleModel().get(['legend', 'selector', 'inverse'])\n    };\n  }\n};\n\nvar LegendModel =\n/** @class */\nfunction (_super) {\n  __extends(LegendModel, _super);\n\n  function LegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      // legend.width/height are maxWidth/maxHeight actually,\n      // whereas realy width/height is calculated by its content.\n      // (Setting {left: 10, right: 10} does not make sense).\n      // So consider the case:\n      // `setOption({legend: {left: 10});`\n      // then `setOption({legend: {right: 10});`\n      // The previous `left` should be cleared by setting `ignoreSize`.\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  LegendModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n    option.selected = option.selected || {};\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype._updateSelector = function (option) {\n    var selector = option.selector;\n    var ecModel = this.ecModel;\n\n    if (selector === true) {\n      selector = option.selector = ['all', 'inverse'];\n    }\n\n    if (zrUtil.isArray(selector)) {\n      zrUtil.each(selector, function (item, index) {\n        zrUtil.isString(item) && (item = {\n          type: item\n        });\n        selector[index] = zrUtil.merge(item, getDefaultSelectorOptions(ecModel, item.type));\n      });\n    }\n  };\n\n  LegendModel.prototype.optionUpdated = function () {\n    this._updateData(this.ecModel);\n\n    var legendData = this._data; // If selectedMode is single, try to select one\n\n    if (legendData[0] && this.get('selectedMode') === 'single') {\n      var hasSelected = false; // If has any selected in option.selected\n\n      for (var i = 0; i < legendData.length; i++) {\n        var name_1 = legendData[i].get('name');\n\n        if (this.isSelected(name_1)) {\n          // Force to unselect others\n          this.select(name_1);\n          hasSelected = true;\n          break;\n        }\n      } // Try select the first if selectedMode is single\n\n\n      !hasSelected && this.select(legendData[0].get('name'));\n    }\n  };\n\n  LegendModel.prototype._updateData = function (ecModel) {\n    var potentialData = [];\n    var availableNames = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      var seriesName = seriesModel.name;\n      availableNames.push(seriesName);\n      var isPotential;\n\n      if (seriesModel.legendVisualProvider) {\n        var provider = seriesModel.legendVisualProvider;\n        var names = provider.getAllNames();\n\n        if (!ecModel.isSeriesFiltered(seriesModel)) {\n          availableNames = availableNames.concat(names);\n        }\n\n        if (names.length) {\n          potentialData = potentialData.concat(names);\n        } else {\n          isPotential = true;\n        }\n      } else {\n        isPotential = true;\n      }\n\n      if (isPotential && isNameSpecified(seriesModel)) {\n        potentialData.push(seriesModel.name);\n      }\n    });\n    /**\n     * @type {Array.<string>}\n     * @private\n     */\n\n    this._availableNames = availableNames; // If legend.data not specified in option, use availableNames as data,\n    // which is convinient for user preparing option.\n\n    var rawData = this.get('data') || potentialData;\n    var legendData = zrUtil.map(rawData, function (dataItem) {\n      // Can be string or number\n      if (zrUtil.isString(dataItem) || zrUtil.isNumber(dataItem)) {\n        dataItem = {\n          name: dataItem\n        };\n      }\n\n      return new Model(dataItem, this, this.ecModel);\n    }, this);\n    /**\n     * @type {Array.<module:echarts/model/Model>}\n     * @private\n     */\n\n    this._data = legendData;\n  };\n\n  LegendModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  LegendModel.prototype.select = function (name) {\n    var selected = this.option.selected;\n    var selectedMode = this.get('selectedMode');\n\n    if (selectedMode === 'single') {\n      var data = this._data;\n      zrUtil.each(data, function (dataItem) {\n        selected[dataItem.get('name')] = false;\n      });\n    }\n\n    selected[name] = true;\n  };\n\n  LegendModel.prototype.unSelect = function (name) {\n    if (this.get('selectedMode') !== 'single') {\n      this.option.selected[name] = false;\n    }\n  };\n\n  LegendModel.prototype.toggleSelected = function (name) {\n    var selected = this.option.selected; // Default is true\n\n    if (!selected.hasOwnProperty(name)) {\n      selected[name] = true;\n    }\n\n    this[selected[name] ? 'unSelect' : 'select'](name);\n  };\n\n  LegendModel.prototype.allSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      selected[dataItem.get('name', true)] = true;\n    });\n  };\n\n  LegendModel.prototype.inverseSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      var name = dataItem.get('name', true); // Initially, default value is true\n\n      if (!selected.hasOwnProperty(name)) {\n        selected[name] = true;\n      }\n\n      selected[name] = !selected[name];\n    });\n  };\n\n  LegendModel.prototype.isSelected = function (name) {\n    var selected = this.option.selected;\n    return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0;\n  };\n\n  LegendModel.prototype.getOrient = function () {\n    return this.get('orient') === 'vertical' ? {\n      index: 1,\n      name: 'vertical'\n    } : {\n      index: 0,\n      name: 'horizontal'\n    };\n  };\n\n  LegendModel.type = 'legend.plain';\n  LegendModel.dependencies = ['series'];\n  LegendModel.defaultOption = {\n    // zlevel: 0,\n    z: 4,\n    show: true,\n    orient: 'horizontal',\n    left: 'center',\n    // right: 'center',\n    top: 0,\n    // bottom: null,\n    align: 'auto',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    itemWidth: 25,\n    itemHeight: 14,\n    symbolRotate: 'inherit',\n    symbolKeepAspect: true,\n    inactiveColor: '#ccc',\n    inactiveBorderColor: '#ccc',\n    inactiveBorderWidth: 'auto',\n    itemStyle: {\n      color: 'inherit',\n      opacity: 'inherit',\n      borderColor: 'inherit',\n      borderWidth: 'auto',\n      borderCap: 'inherit',\n      borderJoin: 'inherit',\n      borderDashOffset: 'inherit',\n      borderMiterLimit: 'inherit'\n    },\n    lineStyle: {\n      width: 'auto',\n      color: 'inherit',\n      inactiveColor: '#ccc',\n      inactiveWidth: 2,\n      opacity: 'inherit',\n      type: 'inherit',\n      cap: 'inherit',\n      join: 'inherit',\n      dashOffset: 'inherit',\n      miterLimit: 'inherit'\n    },\n    textStyle: {\n      color: '#333'\n    },\n    selectedMode: true,\n    selector: false,\n    selectorLabel: {\n      show: true,\n      borderRadius: 10,\n      padding: [3, 5, 3, 5],\n      fontSize: 12,\n      fontFamily: 'sans-serif',\n      color: '#666',\n      borderWidth: 1,\n      borderColor: '#666'\n    },\n    emphasis: {\n      selectorLabel: {\n        show: true,\n        color: '#eee',\n        backgroundColor: '#666'\n      }\n    },\n    selectorPosition: 'auto',\n    selectorItemGap: 7,\n    selectorButtonGap: 10,\n    tooltip: {\n      show: false\n    }\n  };\n  return LegendModel;\n}(ComponentModel);\n\nexport default LegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { parse, stringify } from 'zrender/lib/tool/color.js';\nimport * as graphic from '../../util/graphic.js';\nimport { enableHoverEmphasis } from '../../util/states.js';\nimport { setLabelStyle, createTextStyle } from '../../label/labelStyle.js';\nimport { makeBackground } from '../helper/listComponent.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport ComponentView from '../../view/Component.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal.js';\nvar curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar Group = graphic.Group;\n\nvar LegendView =\n/** @class */\nfunction (_super) {\n  __extends(LegendView, _super);\n\n  function LegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendView.type;\n    _this.newlineDisabled = false;\n    return _this;\n  }\n\n  LegendView.prototype.init = function () {\n    this.group.add(this._contentGroup = new Group());\n    this.group.add(this._selectorGroup = new Group());\n    this._isFirstRender = true;\n  };\n  /**\n   * @protected\n   */\n\n\n  LegendView.prototype.getContentGroup = function () {\n    return this._contentGroup;\n  };\n  /**\n   * @protected\n   */\n\n\n  LegendView.prototype.getSelectorGroup = function () {\n    return this._selectorGroup;\n  };\n  /**\n   * @override\n   */\n\n\n  LegendView.prototype.render = function (legendModel, ecModel, api) {\n    var isFirstRender = this._isFirstRender;\n    this._isFirstRender = false;\n    this.resetInner();\n\n    if (!legendModel.get('show', true)) {\n      return;\n    }\n\n    var itemAlign = legendModel.get('align');\n    var orient = legendModel.get('orient');\n\n    if (!itemAlign || itemAlign === 'auto') {\n      itemAlign = legendModel.get('left') === 'right' && orient === 'vertical' ? 'right' : 'left';\n    } // selector has been normalized to an array in model\n\n\n    var selector = legendModel.get('selector', true);\n    var selectorPosition = legendModel.get('selectorPosition', true);\n\n    if (selector && (!selectorPosition || selectorPosition === 'auto')) {\n      selectorPosition = orient === 'horizontal' ? 'end' : 'start';\n    }\n\n    this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition); // Perform layout.\n\n    var positionInfo = legendModel.getBoxLayoutParams();\n    var viewportSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var padding = legendModel.get('padding');\n    var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);\n    var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition); // Place mainGroup, based on the calculated `mainRect`.\n\n    var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({\n      width: mainRect.width,\n      height: mainRect.height\n    }, positionInfo), viewportSize, padding);\n    this.group.x = layoutRect.x - mainRect.x;\n    this.group.y = layoutRect.y - mainRect.y;\n    this.group.markRedraw(); // Render background after group is layout.\n\n    this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\n  };\n\n  LegendView.prototype.resetInner = function () {\n    this.getContentGroup().removeAll();\n    this._backgroundEl && this.group.remove(this._backgroundEl);\n    this.getSelectorGroup().removeAll();\n  };\n\n  LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var legendDrawnMap = zrUtil.createHashMap();\n    var selectMode = legendModel.get('selectedMode');\n    var excludeSeriesId = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\n    });\n    each(legendModel.getData(), function (legendItemModel, dataIndex) {\n      var name = legendItemModel.get('name'); // Use empty string or \\n as a newline string\n\n      if (!this.newlineDisabled && (name === '' || name === '\\n')) {\n        var g = new Group(); // @ts-ignore\n\n        g.newline = true;\n        contentGroup.add(g);\n        return;\n      } // Representitive series.\n\n\n      var seriesModel = ecModel.getSeriesByName(name)[0];\n\n      if (legendDrawnMap.get(name)) {\n        // Have been drawed\n        return;\n      } // Legend to control series.\n\n\n      if (seriesModel) {\n        var data = seriesModel.getData();\n        var lineVisualStyle = data.getVisual('legendLineStyle') || {};\n        var legendIcon = data.getVisual('legendIcon');\n        /**\n         * `data.getVisual('style')` may be the color from the register\n         * in series. For example, for line series,\n         */\n\n        var style = data.getVisual('style');\n\n        var itemGroup = this._createItem(seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, lineVisualStyle, style, legendIcon, selectMode, api);\n\n        itemGroup.on('click', curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\n        legendDrawnMap.set(name, true);\n      } else {\n        // Legend to control data. In pie and funnel.\n        ecModel.eachRawSeries(function (seriesModel) {\n          // In case multiple series has same data name\n          if (legendDrawnMap.get(name)) {\n            return;\n          }\n\n          if (seriesModel.legendVisualProvider) {\n            var provider = seriesModel.legendVisualProvider;\n\n            if (!provider.containName(name)) {\n              return;\n            }\n\n            var idx = provider.indexOfName(name);\n            var style = provider.getItemVisual(idx, 'style');\n            var legendIcon = provider.getItemVisual(idx, 'legendIcon');\n            var colorArr = parse(style.fill); // Color may be set to transparent in visualMap when data is out of range.\n            // Do not show nothing.\n\n            if (colorArr && colorArr[3] === 0) {\n              colorArr[3] = 0.2; // TODO color is set to 0, 0, 0, 0. Should show correct RGBA\n\n              style = zrUtil.extend(zrUtil.extend({}, style), {\n                fill: stringify(colorArr, 'rgba')\n              });\n            }\n\n            var itemGroup = this._createItem(seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, {}, style, legendIcon, selectMode, api); // FIXME: consider different series has items with the same name.\n\n\n            itemGroup.on('click', curry(dispatchSelectAction, null, name, api, excludeSeriesId)) // Should not specify the series name, consider legend controls\n            // more than one pie series.\n            .on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId));\n            legendDrawnMap.set(name, true);\n          }\n        }, this);\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!legendDrawnMap.get(name)) {\n          console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\n        }\n      }\n    }, this);\n\n    if (selector) {\n      this._createSelector(selector, legendModel, api, orient, selectorPosition);\n    }\n  };\n\n  LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    each(selector, function createSelectorButton(selectorItem) {\n      var type = selectorItem.type;\n      var labelText = new graphic.Text({\n        style: {\n          x: 0,\n          y: 0,\n          align: 'center',\n          verticalAlign: 'middle'\n        },\n        onclick: function () {\n          api.dispatchAction({\n            type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\n          });\n        }\n      });\n      selectorGroup.add(labelText);\n      var labelModel = legendModel.getModel('selectorLabel');\n      var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\n      setLabelStyle(labelText, {\n        normal: labelModel,\n        emphasis: emphasisLabelModel\n      }, {\n        defaultText: selectorItem.title\n      });\n      enableHoverEmphasis(labelText);\n    });\n  };\n\n  LegendView.prototype._createItem = function (seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, lineVisualStyle, itemVisualStyle, legendIcon, selectMode, api) {\n    var drawType = seriesModel.visualDrawType;\n    var itemWidth = legendModel.get('itemWidth');\n    var itemHeight = legendModel.get('itemHeight');\n    var isSelected = legendModel.isSelected(name);\n    var iconRotate = legendItemModel.get('symbolRotate');\n    var symbolKeepAspect = legendItemModel.get('symbolKeepAspect');\n    var legendIconType = legendItemModel.get('icon');\n    legendIcon = legendIconType || legendIcon || 'roundRect';\n    var style = getLegendStyle(legendIcon, legendItemModel, lineVisualStyle, itemVisualStyle, drawType, isSelected, api);\n    var itemGroup = new Group();\n    var textStyleModel = legendItemModel.getModel('textStyle');\n\n    if (zrUtil.isFunction(seriesModel.getLegendIcon) && (!legendIconType || legendIconType === 'inherit')) {\n      // Series has specific way to define legend icon\n      itemGroup.add(seriesModel.getLegendIcon({\n        itemWidth: itemWidth,\n        itemHeight: itemHeight,\n        icon: legendIcon,\n        iconRotate: iconRotate,\n        itemStyle: style.itemStyle,\n        lineStyle: style.lineStyle,\n        symbolKeepAspect: symbolKeepAspect\n      }));\n    } else {\n      // Use default legend icon policy for most series\n      var rotate = legendIconType === 'inherit' && seriesModel.getData().getVisual('symbol') ? iconRotate === 'inherit' ? seriesModel.getData().getVisual('symbolRotate') : iconRotate : 0; // No rotation for no icon\n\n      itemGroup.add(getDefaultLegendIcon({\n        itemWidth: itemWidth,\n        itemHeight: itemHeight,\n        icon: legendIcon,\n        iconRotate: rotate,\n        itemStyle: style.itemStyle,\n        lineStyle: style.lineStyle,\n        symbolKeepAspect: symbolKeepAspect\n      }));\n    }\n\n    var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\n    var textAlign = itemAlign;\n    var formatter = legendModel.get('formatter');\n    var content = name;\n\n    if (zrUtil.isString(formatter) && formatter) {\n      content = formatter.replace('{name}', name != null ? name : '');\n    } else if (zrUtil.isFunction(formatter)) {\n      content = formatter(name);\n    }\n\n    var inactiveColor = legendItemModel.get('inactiveColor');\n    itemGroup.add(new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: content,\n        x: textX,\n        y: itemHeight / 2,\n        fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\n        align: textAlign,\n        verticalAlign: 'middle'\n      })\n    })); // Add a invisible rect to increase the area of mouse hover\n\n    var hitRect = new graphic.Rect({\n      shape: itemGroup.getBoundingRect(),\n      invisible: true\n    });\n    var tooltipModel = legendItemModel.getModel('tooltip');\n\n    if (tooltipModel.get('show')) {\n      graphic.setTooltipConfig({\n        el: hitRect,\n        componentModel: legendModel,\n        itemName: name,\n        itemTooltipOption: tooltipModel.option\n      });\n    }\n\n    itemGroup.add(hitRect);\n    itemGroup.eachChild(function (child) {\n      child.silent = true;\n    });\n    hitRect.silent = !selectMode;\n    this.getContentGroup().add(itemGroup);\n    enableHoverEmphasis(itemGroup); // @ts-ignore\n\n    itemGroup.__legendDataIndex = dataIndex;\n    return itemGroup;\n  };\n\n  LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var selectorGroup = this.getSelectorGroup(); // Place items in contentGroup.\n\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\n    var contentRect = contentGroup.getBoundingRect();\n    var contentPos = [-contentRect.x, -contentRect.y];\n    selectorGroup.markRedraw();\n    contentGroup.markRedraw();\n\n    if (selector) {\n      // Place buttons in selectorGroup\n      layoutUtil.box( // Buttons in selectorGroup always layout horizontally\n      'horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n      var selectorRect = selectorGroup.getBoundingRect();\n      var selectorPos = [-selectorRect.x, -selectorRect.y];\n      var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n      var orientIdx = legendModel.getOrient().index;\n      var wh = orientIdx === 0 ? 'width' : 'height';\n      var hw = orientIdx === 0 ? 'height' : 'width';\n      var yx = orientIdx === 0 ? 'y' : 'x';\n\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\n      } else {\n        contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\n      } //Always align selector to content as 'middle'\n\n\n      selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      var mainRect = {\n        x: 0,\n        y: 0\n      };\n      mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\n      mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\n      return mainRect;\n    } else {\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      return this.group.getBoundingRect();\n    }\n  };\n  /**\n   * @protected\n   */\n\n\n  LegendView.prototype.remove = function () {\n    this.getContentGroup().removeAll();\n    this._isFirstRender = true;\n  };\n\n  LegendView.type = 'legend.plain';\n  return LegendView;\n}(ComponentView);\n\nfunction getLegendStyle(iconType, legendItemModel, lineVisualStyle, itemVisualStyle, drawType, isSelected, api) {\n  /**\n   * Use series style if is inherit;\n   * elsewise, use legend style\n   */\n  function handleCommonProps(style, visualStyle) {\n    // If lineStyle.width is 'auto', it is set to be 2 if series has border\n    if (style.lineWidth === 'auto') {\n      style.lineWidth = visualStyle.lineWidth > 0 ? 2 : 0;\n    }\n\n    each(style, function (propVal, propName) {\n      style[propName] === 'inherit' && (style[propName] = visualStyle[propName]);\n    });\n  } // itemStyle\n\n\n  var itemStyleModel = legendItemModel.getModel('itemStyle');\n  var itemStyle = itemStyleModel.getItemStyle();\n  var iconBrushType = iconType.lastIndexOf('empty', 0) === 0 ? 'fill' : 'stroke';\n  var decalStyle = itemStyleModel.getShallow('decal');\n  itemStyle.decal = !decalStyle || decalStyle === 'inherit' ? itemVisualStyle.decal : createOrUpdatePatternFromDecal(decalStyle, api);\n\n  if (itemStyle.fill === 'inherit') {\n    /**\n     * Series with visualDrawType as 'stroke' should have\n     * series stroke as legend fill\n     */\n    itemStyle.fill = itemVisualStyle[drawType];\n  }\n\n  if (itemStyle.stroke === 'inherit') {\n    /**\n     * icon type with \"emptyXXX\" should use fill color\n     * in visual style\n     */\n    itemStyle.stroke = itemVisualStyle[iconBrushType];\n  }\n\n  if (itemStyle.opacity === 'inherit') {\n    /**\n     * Use lineStyle.opacity if drawType is stroke\n     */\n    itemStyle.opacity = (drawType === 'fill' ? itemVisualStyle : lineVisualStyle).opacity;\n  }\n\n  handleCommonProps(itemStyle, itemVisualStyle); // lineStyle\n\n  var legendLineModel = legendItemModel.getModel('lineStyle');\n  var lineStyle = legendLineModel.getLineStyle();\n  handleCommonProps(lineStyle, lineVisualStyle); // Fix auto color to real color\n\n  itemStyle.fill === 'auto' && (itemStyle.fill = itemVisualStyle.fill);\n  itemStyle.stroke === 'auto' && (itemStyle.stroke = itemVisualStyle.fill);\n  lineStyle.stroke === 'auto' && (lineStyle.stroke = itemVisualStyle.fill);\n\n  if (!isSelected) {\n    var borderWidth = legendItemModel.get('inactiveBorderWidth');\n    /**\n     * Since stroke is set to be inactiveBorderColor, it may occur that\n     * there is no border in series but border in legend, so we need to\n     * use border only when series has border if is set to be auto\n     */\n\n    var visualHasBorder = itemStyle[iconBrushType];\n    itemStyle.lineWidth = borderWidth === 'auto' ? itemVisualStyle.lineWidth > 0 && visualHasBorder ? 2 : 0 : itemStyle.lineWidth;\n    itemStyle.fill = legendItemModel.get('inactiveColor');\n    itemStyle.stroke = legendItemModel.get('inactiveBorderColor');\n    lineStyle.stroke = legendLineModel.get('inactiveColor');\n    lineStyle.lineWidth = legendLineModel.get('inactiveWidth');\n  }\n\n  return {\n    itemStyle: itemStyle,\n    lineStyle: lineStyle\n  };\n}\n\nfunction getDefaultLegendIcon(opt) {\n  var symboType = opt.icon || 'roundRect';\n  var icon = createSymbol(symboType, 0, 0, opt.itemWidth, opt.itemHeight, opt.itemStyle.fill, opt.symbolKeepAspect);\n  icon.setStyle(opt.itemStyle);\n  icon.rotation = (opt.iconRotate || 0) * Math.PI / 180;\n  icon.setOrigin([opt.itemWidth / 2, opt.itemHeight / 2]);\n\n  if (symboType.indexOf('empty') > -1) {\n    icon.style.stroke = icon.style.fill;\n    icon.style.fill = '#fff';\n    icon.style.lineWidth = 2;\n  }\n\n  return icon;\n}\n\nfunction dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\n  // downplay before unselect\n  dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\n  api.dispatchAction({\n    type: 'legendToggleSelect',\n    name: seriesName != null ? seriesName : dataName\n  }); // highlight after select\n  // TODO higlight immediately may cause animation loss.\n\n  dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\n}\n\nfunction isUseHoverLayer(api) {\n  var list = api.getZr().storage.getDisplayList();\n  var emphasisState;\n  var i = 0;\n  var len = list.length;\n\n  while (i < len && !(emphasisState = list[i].states.emphasis)) {\n    i++;\n  }\n\n  return emphasisState && emphasisState.hoverLayer;\n}\n\nfunction dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\n  // If element hover will move to a hoverLayer.\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'highlight',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nfunction dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\n  // If element hover will move to a hoverLayer.\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'downplay',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nexport default LegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport default function legendFilter(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (legendModels && legendModels.length) {\n    ecModel.filterSeries(function (series) {\n      // If in any legend component the status is not selected.\n      // Because in legend series is assumed selected when it is not in the legend data.\n      for (var i = 0; i < legendModels.length; i++) {\n        if (!legendModels[i].isSelected(series.name)) {\n          return false;\n        }\n      }\n\n      return true;\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport { curry, each } from 'zrender/lib/core/util.js';\n\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n  var selectedMap = {};\n  var isToggleSelect = methodName === 'toggleSelected';\n  var isSelected; // Update all legend components\n\n  ecModel.eachComponent('legend', function (legendModel) {\n    if (isToggleSelect && isSelected != null) {\n      // Force other legend has same selected status\n      // Or the first is toggled to true and other are toggled to false\n      // In the case one legend has some item unSelected in option. And if other legend\n      // doesn't has the item, they will assume it is selected.\n      legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n    } else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\n      legendModel[methodName]();\n    } else {\n      legendModel[methodName](payload.name);\n      isSelected = legendModel.isSelected(payload.name);\n    }\n\n    var legendData = legendModel.getData();\n    each(legendData, function (model) {\n      var name = model.get('name'); // Wrap element\n\n      if (name === '\\n' || name === '') {\n        return;\n      }\n\n      var isItemSelected = legendModel.isSelected(name);\n\n      if (selectedMap.hasOwnProperty(name)) {\n        // Unselected if any legend is unselected\n        selectedMap[name] = selectedMap[name] && isItemSelected;\n      } else {\n        selectedMap[name] = isItemSelected;\n      }\n    });\n  }); // Return the event explicitly\n\n  return methodName === 'allSelect' || methodName === 'inverseSelect' ? {\n    selected: selectedMap\n  } : {\n    name: payload.name,\n    selected: selectedMap\n  };\n}\n\nexport function installLegendAction(registers) {\n  /**\n   * @event legendToggleSelect\n   * @type {Object}\n   * @property {string} type 'legendToggleSelect'\n   * @property {string} [from]\n   * @property {string} name Series name or data item name\n   */\n  registers.registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\n  registers.registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\n  registers.registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\n  /**\n   * @event legendSelect\n   * @type {Object}\n   * @property {string} type 'legendSelect'\n   * @property {string} name Series name or data item name\n   */\n\n  registers.registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\n  /**\n   * @event legendUnSelect\n   * @type {Object}\n   * @property {string} type 'legendUnSelect'\n   * @property {string} name Series name or data item name\n   */\n\n  registers.registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport LegendModel from './LegendModel.js';\nimport LegendView from './LegendView.js';\nimport legendFilter from './legendFilter.js';\nimport { installLegendAction } from './legendAction.js';\nexport function install(registers) {\n  registers.registerComponentModel(LegendModel);\n  registers.registerComponentView(LegendView);\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\n  registers.registerSubTypeDefaulter('legend', function () {\n    return 'plain';\n  });\n  installLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport LegendModel from './LegendModel.js';\nimport { mergeLayoutParam, getLayoutParams } from '../../util/layout.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar ScrollableLegendModel =\n/** @class */\nfunction (_super) {\n  __extends(ScrollableLegendModel, _super);\n\n  function ScrollableLegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendModel.type;\n    return _this;\n  }\n  /**\n   * @param {number} scrollDataIndex\n   */\n\n\n  ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\n    this.option.scrollDataIndex = scrollDataIndex;\n  };\n\n  ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputPositionParams = getLayoutParams(option);\n\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n  };\n  /**\n   * @override\n   */\n\n\n  ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, this.option, option);\n  };\n\n  ScrollableLegendModel.type = 'legend.scroll';\n  ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\n    scrollDataIndex: 0,\n    pageButtonItemGap: 5,\n    pageButtonGap: null,\n    pageButtonPosition: 'end',\n    pageFormatter: '{current}/{total}',\n    pageIcons: {\n      horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n      vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n    },\n    pageIconColor: '#2f4554',\n    pageIconInactiveColor: '#aaa',\n    pageIconSize: 15,\n    pageTextStyle: {\n      color: '#333'\n    },\n    animationDurationUpdate: 800\n  });\n  return ScrollableLegendModel;\n}(LegendModel);\n\n; // Do not `ignoreSize` to enable setting {left: 10, right: 10}.\n\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n  var orient = legendModel.getOrient();\n  var ignoreSize = [1, 1];\n  ignoreSize[orient.index] = 0;\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: !!ignoreSize\n  });\n}\n\nexport default ScrollableLegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * Separate legend and scrollable legend to reduce package size.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as layoutUtil from '../../util/layout.js';\nimport LegendView from './LegendView.js';\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\n\nvar ScrollableLegendView =\n/** @class */\nfunction (_super) {\n  __extends(ScrollableLegendView, _super);\n\n  function ScrollableLegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendView.type;\n    _this.newlineDisabled = true;\n    _this._currentIndex = 0;\n    return _this;\n  }\n\n  ScrollableLegendView.prototype.init = function () {\n    _super.prototype.init.call(this);\n\n    this.group.add(this._containerGroup = new Group());\n\n    this._containerGroup.add(this.getContentGroup());\n\n    this.group.add(this._controllerGroup = new Group());\n  };\n  /**\n   * @override\n   */\n\n\n  ScrollableLegendView.prototype.resetInner = function () {\n    _super.prototype.resetInner.call(this);\n\n    this._controllerGroup.removeAll();\n\n    this._containerGroup.removeClipPath();\n\n    this._containerGroup.__rectSize = null;\n  };\n  /**\n   * @override\n   */\n\n\n  ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var self = this; // Render content items.\n\n    _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n\n    var controllerGroup = this._controllerGroup; // FIXME: support be 'auto' adapt to size number text length,\n    // e.g., '3/12345' should not overlap with the control arrow button.\n\n    var pageIconSize = legendModel.get('pageIconSize', true);\n    var pageIconSizeArr = zrUtil.isArray(pageIconSize) ? pageIconSize : [pageIconSize, pageIconSize];\n    createPageButton('pagePrev', 0);\n    var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n    controllerGroup.add(new graphic.Text({\n      name: 'pageText',\n      style: {\n        // Placeholder to calculate a proper layout.\n        text: 'xx/xx',\n        fill: pageTextStyleModel.getTextColor(),\n        font: pageTextStyleModel.getFont(),\n        verticalAlign: 'middle',\n        align: 'center'\n      },\n      silent: true\n    }));\n    createPageButton('pageNext', 1);\n\n    function createPageButton(name, iconIdx) {\n      var pageDataIndexName = name + 'DataIndex';\n      var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n        // Buttons will be created in each render, so we do not need\n        // to worry about avoiding using legendModel kept in scope.\n        onclick: zrUtil.bind(self._pageGo, self, pageDataIndexName, legendModel, api)\n      }, {\n        x: -pageIconSizeArr[0] / 2,\n        y: -pageIconSizeArr[1] / 2,\n        width: pageIconSizeArr[0],\n        height: pageIconSizeArr[1]\n      });\n      icon.name = name;\n      controllerGroup.add(icon);\n    }\n  };\n  /**\n   * @override\n   */\n\n\n  ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n    var hw = WH[1 - orientIdx];\n    var yx = XY[1 - orientIdx];\n    selector && layoutUtil.box( // Buttons in selectorGroup always layout horizontally\n    'horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n    var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n    var selectorRect = selectorGroup.getBoundingRect();\n    var selectorPos = [-selectorRect.x, -selectorRect.y];\n    var processMaxSize = zrUtil.clone(maxSize);\n    selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n\n    var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy);\n\n    if (selector) {\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n      } else {\n        var offset = selectorRect[wh] + selectorButtonGap;\n        selectorPos[orientIdx] -= offset;\n        mainRect[xy] -= offset;\n      }\n\n      mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n      selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n      mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      selectorGroup.markRedraw();\n    }\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) {\n    var contentGroup = this.getContentGroup();\n    var containerGroup = this._containerGroup;\n    var controllerGroup = this._controllerGroup; // Place items in contentGroup.\n\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n    layoutUtil.box( // Buttons in controller are layout always horizontally.\n    'horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n    var contentRect = contentGroup.getBoundingRect();\n    var controllerRect = controllerGroup.getBoundingRect();\n    var showController = this._showController = contentRect[wh] > maxSize[wh]; // In case that the inner elements of contentGroup layout do not based on [0, 0]\n\n    var contentPos = [-contentRect.x, -contentRect.y]; // Remain contentPos when scroll animation perfroming.\n    // If first rendering, `contentGroup.position` is [0, 0], which\n    // does not make sense and may cause unexepcted animation if adopted.\n\n    if (!isFirstRender) {\n      contentPos[orientIdx] = contentGroup[xy];\n    } // Layout container group based on 0.\n\n\n    var containerPos = [0, 0];\n    var controllerPos = [-controllerRect.x, -controllerRect.y];\n    var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true)); // Place containerGroup and controllerGroup and contentGroup.\n\n    if (showController) {\n      var pageButtonPosition = legendModel.get('pageButtonPosition', true); // controller is on the right / bottom.\n\n      if (pageButtonPosition === 'end') {\n        controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n      } // controller is on the left / top.\n      else {\n          containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n        }\n    } // Always align controller to content as 'middle'.\n\n\n    controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n    contentGroup.setPosition(contentPos);\n    containerGroup.setPosition(containerPos);\n    controllerGroup.setPosition(controllerPos); // Calculate `mainRect` and set `clipPath`.\n    // mainRect should not be calculated by `this.group.getBoundingRect()`\n    // for sake of the overflow.\n\n    var mainRect = {\n      x: 0,\n      y: 0\n    }; // Consider content may be overflow (should be clipped).\n\n    mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n    mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]); // `containerRect[yx] + containerPos[1 - orientIdx]` is 0.\n\n    mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n    containerGroup.__rectSize = maxSize[wh];\n\n    if (showController) {\n      var clipShape = {\n        x: 0,\n        y: 0\n      };\n      clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n      clipShape[hw] = mainRect[hw];\n      containerGroup.setClipPath(new graphic.Rect({\n        shape: clipShape\n      })); // Consider content may be larger than container, container rect\n      // can not be obtained from `containerGroup.getBoundingRect()`.\n\n      containerGroup.__rectSize = clipShape[wh];\n    } else {\n      // Do not remove or ignore controller. Keep them set as placeholders.\n      controllerGroup.eachChild(function (child) {\n        child.attr({\n          invisible: true,\n          silent: true\n        });\n      });\n    } // Content translate animation.\n\n\n    var pageInfo = this._getPageInfo(legendModel);\n\n    pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n      x: pageInfo.contentPosition[0],\n      y: pageInfo.contentPosition[1]\n    }, // When switch from \"show controller\" to \"not show controller\", view should be\n    // updated immediately without animation, otherwise causes weird effect.\n    showController ? legendModel : null);\n\n    this._updatePageInfoView(legendModel, pageInfo);\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\n    var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n    scrollDataIndex != null && api.dispatchAction({\n      type: 'legendScroll',\n      scrollDataIndex: scrollDataIndex,\n      legendId: legendModel.id\n    });\n  };\n\n  ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\n    var controllerGroup = this._controllerGroup;\n    zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n      var key = name + 'DataIndex';\n      var canJump = pageInfo[key] != null;\n      var icon = controllerGroup.childOfName(name);\n\n      if (icon) {\n        icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n        icon.cursor = canJump ? 'pointer' : 'default';\n      }\n    });\n    var pageText = controllerGroup.childOfName('pageText');\n    var pageFormatter = legendModel.get('pageFormatter');\n    var pageIndex = pageInfo.pageIndex;\n    var current = pageIndex != null ? pageIndex + 1 : 0;\n    var total = pageInfo.pageCount;\n    pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current == null ? '' : current + '').replace('{total}', total == null ? '' : total + '') : pageFormatter({\n      current: current,\n      total: total\n    }));\n  };\n  /**\n   *  contentPosition: Array.<number>, null when data item not found.\n   *  pageIndex: number, null when data item not found.\n   *  pageCount: number, always be a number, can be 0.\n   *  pagePrevDataIndex: number, null when no previous page.\n   *  pageNextDataIndex: number, null when no next page.\n   * }\n   */\n\n\n  ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\n    var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n    var contentGroup = this.getContentGroup();\n    var containerRectSize = this._containerGroup.__rectSize;\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n\n    var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n    var children = contentGroup.children();\n    var targetItem = children[targetItemIndex];\n    var itemCount = children.length;\n    var pCount = !itemCount ? 0 : 1;\n    var result = {\n      contentPosition: [contentGroup.x, contentGroup.y],\n      pageCount: pCount,\n      pageIndex: pCount - 1,\n      pagePrevDataIndex: null,\n      pageNextDataIndex: null\n    };\n\n    if (!targetItem) {\n      return result;\n    }\n\n    var targetItemInfo = getItemInfo(targetItem);\n    result.contentPosition[orientIdx] = -targetItemInfo.s; // Strategy:\n    // (1) Always align based on the left/top most item.\n    // (2) It is user-friendly that the last item shown in the\n    // current window is shown at the begining of next window.\n    // Otherwise if half of the last item is cut by the window,\n    // it will have no chance to display entirely.\n    // (3) Consider that item size probably be different, we\n    // have calculate pageIndex by size rather than item index,\n    // and we can not get page index directly by division.\n    // (4) The window is to narrow to contain more than\n    // one item, we should make sure that the page can be fliped.\n\n    for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if ( // Half of the last item is out of the window.\n      !currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || // If the current item does not intersect with the window, the new page\n      // can be started at the current item or the last item.\n      currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n        if (winEndItemInfo.i > winStartItemInfo.i) {\n          winStartItemInfo = winEndItemInfo;\n        } else {\n          // e.g., when page size is smaller than item size.\n          winStartItemInfo = currItemInfo;\n        }\n\n        if (winStartItemInfo) {\n          if (result.pageNextDataIndex == null) {\n            result.pageNextDataIndex = winStartItemInfo.i;\n          }\n\n          ++result.pageCount;\n        }\n      }\n\n      winEndItemInfo = currItemInfo;\n    }\n\n    for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if ( // If the the end item does not intersect with the window started\n      // from the current item, a page can be settled.\n      (!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && // e.g., when page size is smaller than item size.\n      winStartItemInfo.i < winEndItemInfo.i) {\n        winEndItemInfo = winStartItemInfo;\n\n        if (result.pagePrevDataIndex == null) {\n          result.pagePrevDataIndex = winStartItemInfo.i;\n        }\n\n        ++result.pageCount;\n        ++result.pageIndex;\n      }\n\n      winStartItemInfo = currItemInfo;\n    }\n\n    return result;\n\n    function getItemInfo(el) {\n      if (el) {\n        var itemRect = el.getBoundingRect();\n        var start = itemRect[xy] + el[xy];\n        return {\n          s: start,\n          e: start + itemRect[wh],\n          i: el.__legendDataIndex\n        };\n      }\n    }\n\n    function intersect(itemInfo, winStart) {\n      return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n    }\n  };\n\n  ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\n    if (!this._showController) {\n      return 0;\n    }\n\n    var index;\n    var contentGroup = this.getContentGroup();\n    var defaultIndex;\n    contentGroup.eachChild(function (child, idx) {\n      var legendDataIdx = child.__legendDataIndex; // FIXME\n      // If the given targetDataIndex (from model) is illegal,\n      // we use defaultIndex. But the index on the legend model and\n      // action payload is still illegal. That case will not be\n      // changed until some scenario requires.\n\n      if (defaultIndex == null && legendDataIdx != null) {\n        defaultIndex = idx;\n      }\n\n      if (legendDataIdx === targetDataIndex) {\n        index = idx;\n      }\n    });\n    return index != null ? index : defaultIndex;\n  };\n\n  ScrollableLegendView.type = 'legend.scroll';\n  return ScrollableLegendView;\n}(LegendView);\n\nexport default ScrollableLegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport default function installScrollableLegendAction(registers) {\n  /**\n   * @event legendScroll\n   * @type {Object}\n   * @property {string} type 'legendScroll'\n   * @property {string} scrollDataIndex\n   */\n  registers.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n    var scrollDataIndex = payload.scrollDataIndex;\n    scrollDataIndex != null && ecModel.eachComponent({\n      mainType: 'legend',\n      subType: 'scroll',\n      query: payload\n    }, function (legendModel) {\n      legendModel.setScrollDataIndex(scrollDataIndex);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport { install as installLegendPlain } from './installLegendPlain.js';\nimport ScrollableLegendModel from './ScrollableLegendModel.js';\nimport ScrollableLegendView from './ScrollableLegendView.js';\nimport installScrollableLegendAction from './scrollableLegendAction.js';\nexport function install(registers) {\n  use(installLegendPlain);\n  registers.registerComponentModel(ScrollableLegendModel);\n  registers.registerComponentView(ScrollableLegendView);\n  installScrollableLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport { install as installLegendPlain } from './installLegendPlain.js';\nimport { install as installLegendScroll } from './installLegendScroll.js';\nexport function install(registers) {\n  use(installLegendPlain);\n  use(installLegendScroll);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar InsideZoomModel =\n/** @class */\nfunction (_super) {\n  __extends(InsideZoomModel, _super);\n\n  function InsideZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = InsideZoomModel.type;\n    return _this;\n  }\n\n  InsideZoomModel.type = 'dataZoom.inside';\n  InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    disabled: false,\n    zoomLock: false,\n    zoomOnMouseWheel: true,\n    moveOnMouseMove: true,\n    moveOnMouseWheel: false,\n    preventDefaultMouseMove: true\n  });\n  return InsideZoomModel;\n}(DataZoomModel);\n\nexport default InsideZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Only create one roam controller for each coordinate system.\n// one roam controller might be refered by two inside data zoom\n// components (for example, one for x and one for y). When user\n// pan or zoom, only dispatch one action for those data zoom\n// components.\nimport RoamController from '../../component/helper/RoamController.js';\nimport * as throttleUtil from '../../util/throttle.js';\nimport { makeInner } from '../../util/model.js';\nimport { each, curry, createHashMap } from 'zrender/lib/core/util.js';\nimport { collectReferCoordSysModelInfo } from './helper.js';\nvar inner = makeInner();\nexport function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\n  inner(api).coordSysRecordMap.each(function (coordSysRecord) {\n    var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\n\n    if (dzInfo) {\n      dzInfo.getRange = getRange;\n    }\n  });\n}\nexport function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\n  var coordSysRecordMap = inner(api).coordSysRecordMap;\n  var coordSysKeyArr = coordSysRecordMap.keys();\n\n  for (var i = 0; i < coordSysKeyArr.length; i++) {\n    var coordSysKey = coordSysKeyArr[i];\n    var coordSysRecord = coordSysRecordMap.get(coordSysKey);\n    var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n    if (dataZoomInfoMap) {\n      var dzUid = dataZoomModel.uid;\n      var dzInfo = dataZoomInfoMap.get(dzUid);\n\n      if (dzInfo) {\n        dataZoomInfoMap.removeKey(dzUid);\n\n        if (!dataZoomInfoMap.keys().length) {\n          disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        }\n      }\n    }\n  }\n}\n\nfunction disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\n  if (coordSysRecord) {\n    coordSysRecordMap.removeKey(coordSysRecord.model.uid);\n    var controller = coordSysRecord.controller;\n    controller && controller.dispose();\n  }\n}\n\nfunction createCoordSysRecord(api, coordSysModel) {\n  // These init props will never change after record created.\n  var coordSysRecord = {\n    model: coordSysModel,\n    containsPoint: curry(containsPoint, coordSysModel),\n    dispatchAction: curry(dispatchAction, api),\n    dataZoomInfoMap: null,\n    controller: null\n  }; // Must not do anything depends on coordSysRecord outside the event handler here,\n  // because coordSysRecord not completed yet.\n\n  var controller = coordSysRecord.controller = new RoamController(api.getZr());\n  each(['pan', 'zoom', 'scrollMove'], function (eventName) {\n    controller.on(eventName, function (event) {\n      var batch = [];\n      coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\n        // Check whether the behaviors (zoomOnMouseWheel, moveOnMouseMove,\n        // moveOnMouseWheel, ...) enabled.\n        if (!event.isAvailableBehavior(dzInfo.model.option)) {\n          return;\n        }\n\n        var method = (dzInfo.getRange || {})[eventName];\n        var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\n        !dzInfo.model.get('disabled', true) && range && batch.push({\n          dataZoomId: dzInfo.model.id,\n          start: range[0],\n          end: range[1]\n        });\n      });\n      batch.length && coordSysRecord.dispatchAction(batch);\n    });\n  });\n  return coordSysRecord;\n}\n/**\n * This action will be throttled.\n */\n\n\nfunction dispatchAction(api, batch) {\n  if (!api.isDisposed()) {\n    api.dispatchAction({\n      type: 'dataZoom',\n      animation: {\n        easing: 'cubicOut',\n        duration: 100\n      },\n      batch: batch\n    });\n  }\n}\n\nfunction containsPoint(coordSysModel, e, x, y) {\n  return coordSysModel.coordinateSystem.containPoint([x, y]);\n}\n/**\n * Merge roamController settings when multiple dataZooms share one roamController.\n */\n\n\nfunction mergeControllerParams(dataZoomInfoMap) {\n  var controlType; // DO NOT use reserved word (true, false, undefined) as key literally. Even if encapsulated\n  // as string, it is probably revert to reserved word by compress tool. See #7411.\n\n  var prefix = 'type_';\n  var typePriority = {\n    'type_true': 2,\n    'type_move': 1,\n    'type_false': 0,\n    'type_undefined': -1\n  };\n  var preventDefaultMouseMove = true;\n  dataZoomInfoMap.each(function (dataZoomInfo) {\n    var dataZoomModel = dataZoomInfo.model;\n    var oneType = dataZoomModel.get('disabled', true) ? false : dataZoomModel.get('zoomLock', true) ? 'move' : true;\n\n    if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\n      controlType = oneType;\n    } // Prevent default move event by default. If one false, do not prevent. Otherwise\n    // users may be confused why it does not work when multiple insideZooms exist.\n\n\n    preventDefaultMouseMove = preventDefaultMouseMove && dataZoomModel.get('preventDefaultMouseMove', true);\n  });\n  return {\n    controlType: controlType,\n    opt: {\n      // RoamController will enable all of these functionalities,\n      // and the final behavior is determined by its event listener\n      // provided by each inside zoom.\n      zoomOnMouseWheel: true,\n      moveOnMouseMove: true,\n      moveOnMouseWheel: true,\n      preventDefaultMouseMove: !!preventDefaultMouseMove\n    }\n  };\n}\n\nexport function installDataZoomRoamProcessor(registers) {\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\n    var apiInner = inner(api);\n    var coordSysRecordMap = apiInner.coordSysRecordMap || (apiInner.coordSysRecordMap = createHashMap());\n    coordSysRecordMap.each(function (coordSysRecord) {\n      // `coordSysRecordMap` always exists (becuase it hold the `roam controller`, which should\n      // better not re-create each time), but clear `dataZoomInfoMap` each round of the workflow.\n      coordSysRecord.dataZoomInfoMap = null;\n    });\n    ecModel.eachComponent({\n      mainType: 'dataZoom',\n      subType: 'inside'\n    }, function (dataZoomModel) {\n      var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\n      each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\n        var coordSysUid = dzCoordSysInfo.model.uid;\n        var coordSysRecord = coordSysRecordMap.get(coordSysUid) || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\n        var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap || (coordSysRecord.dataZoomInfoMap = createHashMap()); // Notice these props might be changed each time for a single dataZoomModel.\n\n        dataZoomInfoMap.set(dataZoomModel.uid, {\n          dzReferCoordSysInfo: dzCoordSysInfo,\n          model: dataZoomModel,\n          getRange: null\n        });\n      });\n    }); // (1) Merge dataZoom settings for each coord sys and set to the roam controller.\n    // (2) Clear coord sys if not refered by any dataZoom.\n\n    coordSysRecordMap.each(function (coordSysRecord) {\n      var controller = coordSysRecord.controller;\n      var firstDzInfo;\n      var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n      if (dataZoomInfoMap) {\n        var firstDzKey = dataZoomInfoMap.keys()[0];\n\n        if (firstDzKey != null) {\n          firstDzInfo = dataZoomInfoMap.get(firstDzKey);\n        }\n      }\n\n      if (!firstDzInfo) {\n        disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        return;\n      }\n\n      var controllerParams = mergeControllerParams(dataZoomInfoMap);\n      controller.enable(controllerParams.controlType, controllerParams.opt);\n      controller.setPointerChecker(coordSysRecord.containsPoint);\n      throttleUtil.createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView.js';\nimport sliderMove from '../helper/sliderMove.js';\nimport * as roams from './roams.js';\nimport { bind } from 'zrender/lib/core/util.js';\n\nvar InsideZoomView =\n/** @class */\nfunction (_super) {\n  __extends(InsideZoomView, _super);\n\n  function InsideZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataZoom.inside';\n    return _this;\n  }\n\n  InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\n    _super.prototype.render.apply(this, arguments);\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      return;\n    } // Hence the `throttle` util ensures to preserve command order,\n    // here simply updating range all the time will not cause missing\n    // any of the the roam change.\n\n\n    this.range = dataZoomModel.getPercentRange(); // Reset controllers.\n\n    roams.setViewInfoToCoordSysRecord(api, dataZoomModel, {\n      pan: bind(getRangeHandlers.pan, this),\n      zoom: bind(getRangeHandlers.zoom, this),\n      scrollMove: bind(getRangeHandlers.scrollMove, this)\n    });\n  };\n\n  InsideZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  InsideZoomView.prototype._clear = function () {\n    roams.disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\n    this.range = null;\n  };\n\n  InsideZoomView.type = 'dataZoom.inside';\n  return InsideZoomView;\n}(DataZoomView);\n\nvar getRangeHandlers = {\n  zoom: function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice(); // Calculate transform by the first axis.\n\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\n    var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\n    var scale = Math.max(1 / e.scale, 0);\n    range[0] = (range[0] - percentPoint) * scale + percentPoint;\n    range[1] = (range[1] - percentPoint) * scale + percentPoint; // Restrict range.\n\n    var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  },\n  pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength;\n  }),\n  scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\n  })\n};\n\nfunction makeMover(getPercentDelta) {\n  return function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice(); // Calculate transform by the first axis.\n\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\n    sliderMove(percentDelta, range, [0, 100], 'all');\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  };\n}\n\nvar getDirectionInfo = {\n  grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.dim === 'x') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      // axis.dim === 'y'\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var polar = coordSysInfo.model.coordinateSystem;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var angleExtent = polar.getAngleAxis().getExtent();\n    oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\n    newPoint = polar.pointToCoord(newPoint);\n\n    if (axisModel.mainType === 'radiusAxis') {\n      ret.pixel = newPoint[0] - oldPoint[0]; // ret.pixelLength = Math.abs(radiusExtent[1] - radiusExtent[0]);\n      // ret.pixelStart = Math.min(radiusExtent[0], radiusExtent[1]);\n\n      ret.pixelLength = radiusExtent[1] - radiusExtent[0];\n      ret.pixelStart = radiusExtent[0];\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      // 'angleAxis'\n      ret.pixel = newPoint[1] - oldPoint[1]; // ret.pixelLength = Math.abs(angleExtent[1] - angleExtent[0]);\n      // ret.pixelStart = Math.min(angleExtent[0], angleExtent[1]);\n\n      ret.pixelLength = angleExtent[1] - angleExtent[0];\n      ret.pixelStart = angleExtent[0];\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    var ret = {};\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.orient === 'horizontal') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      // 'vertical'\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  }\n};\nexport default InsideZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport InsideZoomModel from './InsideZoomModel.js';\nimport InsideZoomView from './InsideZoomView.js';\nimport { installDataZoomRoamProcessor } from './roams.js';\nimport installCommon from './installCommon.js';\nexport function install(registers) {\n  installCommon(registers);\n  registers.registerComponentModel(InsideZoomModel);\n  registers.registerComponentView(InsideZoomView);\n  installDataZoomRoamProcessor(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar SliderZoomModel =\n/** @class */\nfunction (_super) {\n  __extends(SliderZoomModel, _super);\n\n  function SliderZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomModel.type;\n    return _this;\n  }\n\n  SliderZoomModel.type = 'dataZoom.slider';\n  SliderZoomModel.layoutMode = 'box';\n  SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    show: true,\n    // deault value can only be drived in view stage.\n    right: 'ph',\n    top: 'ph',\n    width: 'ph',\n    height: 'ph',\n    left: null,\n    bottom: null,\n    borderColor: '#d2dbee',\n    borderRadius: 3,\n    backgroundColor: 'rgba(47,69,84,0)',\n    // dataBackgroundColor: '#ddd',\n    dataBackground: {\n      lineStyle: {\n        color: '#d2dbee',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#d2dbee',\n        opacity: 0.2\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#8fb0f7',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#8fb0f7',\n        opacity: 0.2\n      }\n    },\n    // Color of selected window.\n    fillerColor: 'rgba(135,175,274,0.2)',\n    handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\n    // Percent of the slider height\n    handleSize: '100%',\n    handleStyle: {\n      color: '#fff',\n      borderColor: '#ACB8D1'\n    },\n    moveHandleSize: 7,\n    moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\n    moveHandleStyle: {\n      color: '#D2DBEE',\n      opacity: 0.7\n    },\n    showDetail: true,\n    showDataShadow: 'auto',\n    realtime: true,\n    zoomLock: false,\n    textStyle: {\n      color: '#6E7079'\n    },\n    brushSelect: true,\n    brushStyle: {\n      color: 'rgba(135,175,274,0.15)'\n    },\n    emphasis: {\n      handleStyle: {\n        borderColor: '#8FB0F7'\n      },\n      moveHandleStyle: {\n        color: '#8FB0F7'\n      }\n    }\n  });\n  return SliderZoomModel;\n}(DataZoomModel);\n\nexport default SliderZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { bind, each, isFunction, isString, indexOf } from 'zrender/lib/core/util.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as throttle from '../../util/throttle.js';\nimport DataZoomView from './DataZoomView.js';\nimport { linearMap, asc, parsePercent } from '../../util/number.js';\nimport * as layout from '../../util/layout.js';\nimport sliderMove from '../helper/sliderMove.js';\nimport { getAxisMainType, collectReferCoordSysModelInfo } from './helper.js';\nimport { enableHoverEmphasis } from '../../util/states.js';\nimport { createSymbol, symbolBuildProxies } from '../../util/symbol.js';\nimport { deprecateLog } from '../../util/log.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nvar Rect = graphic.Rect; // Constants\n\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar DEFAULT_MOVE_HANDLE_SIZE = 7;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar REALTIME_ANIMATION_CONFIG = {\n  easing: 'cubicOut',\n  duration: 100,\n  delay: 0\n};\n\nvar SliderZoomView =\n/** @class */\nfunction (_super) {\n  __extends(SliderZoomView, _super);\n\n  function SliderZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomView.type;\n    _this._displayables = {};\n    return _this;\n  }\n\n  SliderZoomView.prototype.init = function (ecModel, api) {\n    this.api = api; // A unique handler for each dataZoom component\n\n    this._onBrush = bind(this._onBrush, this);\n    this._onBrushEnd = bind(this._onBrushEnd, this);\n  };\n\n  SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    _super.prototype.render.apply(this, arguments);\n\n    throttle.createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\n    this._orient = dataZoomModel.getOrient();\n\n    if (dataZoomModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    }\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      this.group.removeAll();\n      return;\n    } // Notice: this._resetInterval() should not be executed when payload.type\n    // is 'dataZoom', origin this._range should be maintained, otherwise 'pan'\n    // or 'zoom' info will be missed because of 'throttle' of this.dispatchAction,\n\n\n    if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n      this._buildView();\n    }\n\n    this._updateView();\n  };\n\n  SliderZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  SliderZoomView.prototype._clear = function () {\n    throttle.clear(this, '_dispatchZoomAction');\n    var zr = this.api.getZr();\n    zr.off('mousemove', this._onBrush);\n    zr.off('mouseup', this._onBrushEnd);\n  };\n\n  SliderZoomView.prototype._buildView = function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n    this._brushing = false;\n    this._displayables.brushRect = null;\n\n    this._resetLocation();\n\n    this._resetInterval();\n\n    var barGroup = this._displayables.sliderGroup = new graphic.Group();\n\n    this._renderBackground();\n\n    this._renderHandle();\n\n    this._renderDataShadow();\n\n    thisGroup.add(barGroup);\n\n    this._positionGroup();\n  };\n\n  SliderZoomView.prototype._resetLocation = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var showMoveHandle = dataZoomModel.get('brushSelect');\n    var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0; // If some of x/y/width/height are not specified,\n    // auto-adapt according to target grid.\n\n    var coordRect = this._findCoordRect();\n\n    var ecSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    }; // Default align by coordinate system rect.\n\n    var positionInfo = this._orient === HORIZONTAL ? {\n      // Why using 'right', because right should be used in vertical,\n      // and it is better to be consistent for dealing with position param merge.\n      right: ecSize.width - coordRect.x - coordRect.width,\n      top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize,\n      width: coordRect.width,\n      height: DEFAULT_FILLER_SIZE\n    } : {\n      right: DEFAULT_LOCATION_EDGE_GAP,\n      top: coordRect.y,\n      width: DEFAULT_FILLER_SIZE,\n      height: coordRect.height\n    }; // Do not write back to option and replace value 'ph', because\n    // the 'ph' value should be recalculated when resize.\n\n    var layoutParams = layout.getLayoutParams(dataZoomModel.option); // Replace the placeholder value.\n\n    each(['right', 'top', 'width', 'height'], function (name) {\n      if (layoutParams[name] === 'ph') {\n        layoutParams[name] = positionInfo[name];\n      }\n    });\n    var layoutRect = layout.getLayoutRect(layoutParams, ecSize);\n    this._location = {\n      x: layoutRect.x,\n      y: layoutRect.y\n    };\n    this._size = [layoutRect.width, layoutRect.height];\n    this._orient === VERTICAL && this._size.reverse();\n  };\n\n  SliderZoomView.prototype._positionGroup = function () {\n    var thisGroup = this.group;\n    var location = this._location;\n    var orient = this._orient; // Just use the first axis to determine mapping.\n\n    var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n    var inverse = targetAxisModel && targetAxisModel.get('inverse');\n    var sliderGroup = this._displayables.sliderGroup;\n    var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse; // Transform barGroup.\n\n    sliderGroup.attr(orient === HORIZONTAL && !inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: 1\n    } : orient === HORIZONTAL && inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: -1\n    } : orient === VERTICAL && !inverse ? {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: 1,\n      rotation: Math.PI / 2\n    } // Dont use Math.PI, considering shadow direction.\n    : {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: -1,\n      rotation: Math.PI / 2\n    }); // Position barGroup\n\n    var rect = thisGroup.getBoundingRect([sliderGroup]);\n    thisGroup.x = location.x - rect.x;\n    thisGroup.y = location.y - rect.y;\n    thisGroup.markRedraw();\n  };\n\n  SliderZoomView.prototype._getViewExtent = function () {\n    return [0, this._size[0]];\n  };\n\n  SliderZoomView.prototype._renderBackground = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var size = this._size;\n    var barGroup = this._displayables.sliderGroup;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    barGroup.add(new Rect({\n      silent: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: dataZoomModel.get('backgroundColor')\n      },\n      z2: -40\n    })); // Click panel, over shadow, below handles.\n\n    var clickPanel = new Rect({\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: 'transparent'\n      },\n      z2: 0,\n      onclick: bind(this._onClickPanel, this)\n    });\n    var zr = this.api.getZr();\n\n    if (brushSelect) {\n      clickPanel.on('mousedown', this._onBrushStart, this);\n      clickPanel.cursor = 'crosshair';\n      zr.on('mousemove', this._onBrush);\n      zr.on('mouseup', this._onBrushEnd);\n    } else {\n      zr.off('mousemove', this._onBrush);\n      zr.off('mouseup', this._onBrushEnd);\n    }\n\n    barGroup.add(clickPanel);\n  };\n\n  SliderZoomView.prototype._renderDataShadow = function () {\n    var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n    this._displayables.dataShadowSegs = [];\n\n    if (!info) {\n      return;\n    }\n\n    var size = this._size;\n    var oldSize = this._shadowSize || [];\n    var seriesModel = info.series;\n    var data = seriesModel.getRawData();\n    var otherDim = seriesModel.getShadowDim ? seriesModel.getShadowDim() // @see candlestick\n    : info.otherDim;\n\n    if (otherDim == null) {\n      return;\n    }\n\n    var polygonPts = this._shadowPolygonPts;\n    var polylinePts = this._shadowPolylinePts; // Not re-render if data doesn't change.\n\n    if (data !== this._shadowData || otherDim !== this._shadowDim || size[0] !== oldSize[0] || size[1] !== oldSize[1]) {\n      var otherDataExtent_1 = data.getDataExtent(otherDim); // Nice extent.\n\n      var otherOffset = (otherDataExtent_1[1] - otherDataExtent_1[0]) * 0.3;\n      otherDataExtent_1 = [otherDataExtent_1[0] - otherOffset, otherDataExtent_1[1] + otherOffset];\n      var otherShadowExtent_1 = [0, size[1]];\n      var thisShadowExtent = [0, size[0]];\n      var areaPoints_1 = [[size[0], 0], [0, 0]];\n      var linePoints_1 = [];\n      var step_1 = thisShadowExtent[1] / (data.count() - 1);\n      var thisCoord_1 = 0; // Optimize for large data shadow\n\n      var stride_1 = Math.round(data.count() / size[0]);\n      var lastIsEmpty_1;\n      data.each([otherDim], function (value, index) {\n        if (stride_1 > 0 && index % stride_1) {\n          thisCoord_1 += step_1;\n          return;\n        } // FIXME\n        // Should consider axis.min/axis.max when drawing dataShadow.\n        // FIXME\n        // 应该使用统一的空判断？还是在list里进行空判断？\n\n\n        var isEmpty = value == null || isNaN(value) || value === ''; // See #4235.\n\n        var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent_1, otherShadowExtent_1, true); // Attempt to draw data shadow precisely when there are empty value.\n\n        if (isEmpty && !lastIsEmpty_1 && index) {\n          areaPoints_1.push([areaPoints_1[areaPoints_1.length - 1][0], 0]);\n          linePoints_1.push([linePoints_1[linePoints_1.length - 1][0], 0]);\n        } else if (!isEmpty && lastIsEmpty_1) {\n          areaPoints_1.push([thisCoord_1, 0]);\n          linePoints_1.push([thisCoord_1, 0]);\n        }\n\n        areaPoints_1.push([thisCoord_1, otherCoord]);\n        linePoints_1.push([thisCoord_1, otherCoord]);\n        thisCoord_1 += step_1;\n        lastIsEmpty_1 = isEmpty;\n      });\n      polygonPts = this._shadowPolygonPts = areaPoints_1;\n      polylinePts = this._shadowPolylinePts = linePoints_1;\n    }\n\n    this._shadowData = data;\n    this._shadowDim = otherDim;\n    this._shadowSize = [size[0], size[1]];\n    var dataZoomModel = this.dataZoomModel;\n\n    function createDataShadowGroup(isSelectedArea) {\n      var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\n      var group = new graphic.Group();\n      var polygon = new graphic.Polygon({\n        shape: {\n          points: polygonPts\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('areaStyle').getAreaStyle(),\n        silent: true,\n        z2: -20\n      });\n      var polyline = new graphic.Polyline({\n        shape: {\n          points: polylinePts\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('lineStyle').getLineStyle(),\n        silent: true,\n        z2: -19\n      });\n      group.add(polygon);\n      group.add(polyline);\n      return group;\n    } // let dataBackgroundModel = dataZoomModel.getModel('dataBackground');\n\n\n    for (var i = 0; i < 3; i++) {\n      var group = createDataShadowGroup(i === 1);\n\n      this._displayables.sliderGroup.add(group);\n\n      this._displayables.dataShadowSegs.push(group);\n    }\n  };\n\n  SliderZoomView.prototype._prepareDataShadowInfo = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var showDataShadow = dataZoomModel.get('showDataShadow');\n\n    if (showDataShadow === false) {\n      return;\n    } // Find a representative series.\n\n\n    var result;\n    var ecModel = this.ecModel;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var seriesModels = dataZoomModel.getAxisProxy(axisDim, axisIndex).getTargetSeriesModels();\n      each(seriesModels, function (seriesModel) {\n        if (result) {\n          return;\n        }\n\n        if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n          return;\n        }\n\n        var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\n        var otherDim = getOtherDim(axisDim);\n        var otherAxisInverse;\n        var coordSys = seriesModel.coordinateSystem;\n\n        if (otherDim != null && coordSys.getOtherAxis) {\n          otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n        }\n\n        otherDim = seriesModel.getData().mapDimension(otherDim);\n        result = {\n          thisAxis: thisAxis,\n          series: seriesModel,\n          thisDim: axisDim,\n          otherDim: otherDim,\n          otherAxisInverse: otherAxisInverse\n        };\n      }, this);\n    }, this);\n    return result;\n  };\n\n  SliderZoomView.prototype._renderHandle = function () {\n    var thisGroup = this.group;\n    var displayables = this._displayables;\n    var handles = displayables.handles = [null, null];\n    var handleLabels = displayables.handleLabels = [null, null];\n    var sliderGroup = this._displayables.sliderGroup;\n    var size = this._size;\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var borderRadius = dataZoomModel.get('borderRadius') || 0;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    var filler = displayables.filler = new Rect({\n      silent: brushSelect,\n      style: {\n        fill: dataZoomModel.get('fillerColor')\n      },\n      textConfig: {\n        position: 'inside'\n      }\n    });\n    sliderGroup.add(filler); // Frame border.\n\n    sliderGroup.add(new Rect({\n      silent: true,\n      subPixelOptimize: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1],\n        r: borderRadius\n      },\n      style: {\n        // deprecated option\n        stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n        lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n        fill: 'rgba(0,0,0,0)'\n      }\n    })); // Left and right handle to resize\n\n    each([0, 1], function (handleIndex) {\n      var iconStr = dataZoomModel.get('handleIcon');\n\n      if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0 && iconStr.indexOf('image://') < 0) {\n        // Compatitable with the old icon parsers. Which can use a path string without path://\n        iconStr = 'path://' + iconStr;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\n        }\n      }\n\n      var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\n      path.attr({\n        cursor: getCursor(this._orient),\n        draggable: true,\n        drift: bind(this._onDragMove, this, handleIndex),\n        ondragend: bind(this._onDragEnd, this),\n        onmouseover: bind(this._showDataInfo, this, true),\n        onmouseout: bind(this._showDataInfo, this, false),\n        z2: 5\n      });\n      var bRect = path.getBoundingRect();\n      var handleSize = dataZoomModel.get('handleSize');\n      this._handleHeight = parsePercent(handleSize, this._size[1]);\n      this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n      path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n      path.style.strokeNoScale = true;\n      path.rectHover = true;\n      path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n      enableHoverEmphasis(path);\n      var handleColor = dataZoomModel.get('handleColor'); // deprecated option\n      // Compatitable with previous version\n\n      if (handleColor != null) {\n        path.style.fill = handleColor;\n      }\n\n      sliderGroup.add(handles[handleIndex] = path);\n      var textStyleModel = dataZoomModel.getModel('textStyle');\n      thisGroup.add(handleLabels[handleIndex] = new graphic.Text({\n        silent: true,\n        invisible: true,\n        style: createTextStyle(textStyleModel, {\n          x: 0,\n          y: 0,\n          text: '',\n          verticalAlign: 'middle',\n          align: 'center',\n          fill: textStyleModel.getTextColor(),\n          font: textStyleModel.getFont()\n        }),\n        z2: 10\n      }));\n    }, this); // Handle to move. Only visible when brushSelect is set true.\n\n    var actualMoveZone = filler;\n\n    if (brushSelect) {\n      var moveHandleHeight = parsePercent(dataZoomModel.get('moveHandleSize'), size[1]);\n      var moveHandle_1 = displayables.moveHandle = new graphic.Rect({\n        style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\n        silent: true,\n        shape: {\n          r: [0, 0, 2, 2],\n          y: size[1] - 0.5,\n          height: moveHandleHeight\n        }\n      });\n      var iconSize = moveHandleHeight * 0.8;\n      var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\n      moveHandleIcon.silent = true;\n      moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\n      moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\n      var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\n      actualMoveZone = displayables.moveZone = new graphic.Rect({\n        invisible: true,\n        shape: {\n          y: size[1] - moveZoneExpandSize,\n          height: moveHandleHeight + moveZoneExpandSize\n        }\n      });\n      actualMoveZone.on('mouseover', function () {\n        api.enterEmphasis(moveHandle_1);\n      }).on('mouseout', function () {\n        api.leaveEmphasis(moveHandle_1);\n      });\n      sliderGroup.add(moveHandle_1);\n      sliderGroup.add(moveHandleIcon);\n      sliderGroup.add(actualMoveZone);\n    }\n\n    actualMoveZone.attr({\n      draggable: true,\n      cursor: getCursor(this._orient),\n      drift: bind(this._onDragMove, this, 'all'),\n      ondragstart: bind(this._showDataInfo, this, true),\n      ondragend: bind(this._onDragEnd, this),\n      onmouseover: bind(this._showDataInfo, this, true),\n      onmouseout: bind(this._showDataInfo, this, false)\n    });\n  };\n\n  SliderZoomView.prototype._resetInterval = function () {\n    var range = this._range = this.dataZoomModel.getPercentRange();\n\n    var viewExtent = this._getViewExtent();\n\n    this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n  };\n\n  SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\n    var dataZoomModel = this.dataZoomModel;\n    var handleEnds = this._handleEnds;\n\n    var viewExtend = this._getViewExtent();\n\n    var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    var percentExtent = [0, 100];\n    sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n    var lastRange = this._range;\n    var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n    return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n  };\n\n  SliderZoomView.prototype._updateView = function (nonRealtime) {\n    var displaybles = this._displayables;\n    var handleEnds = this._handleEnds;\n    var handleInterval = asc(handleEnds.slice());\n    var size = this._size;\n    each([0, 1], function (handleIndex) {\n      // Handles\n      var handle = displaybles.handles[handleIndex];\n      var handleHeight = this._handleHeight;\n      handle.attr({\n        scaleX: handleHeight / 2,\n        scaleY: handleHeight / 2,\n        // This is a trick, by adding an extra tiny offset to let the default handle's end point align to the drag window.\n        // NOTE: It may affect some custom shapes a bit. But we prefer to have better result by default.\n        x: handleEnds[handleIndex] + (handleIndex ? -1 : 1),\n        y: size[1] / 2 - handleHeight / 2\n      });\n    }, this); // Filler\n\n    displaybles.filler.setShape({\n      x: handleInterval[0],\n      y: 0,\n      width: handleInterval[1] - handleInterval[0],\n      height: size[1]\n    });\n    var viewExtent = {\n      x: handleInterval[0],\n      width: handleInterval[1] - handleInterval[0]\n    }; // Move handle\n\n    if (displaybles.moveHandle) {\n      displaybles.moveHandle.setShape(viewExtent);\n      displaybles.moveZone.setShape(viewExtent); // Force update path on the invisible object\n\n      displaybles.moveZone.getBoundingRect();\n      displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\n    } // update clip path of shadow.\n\n\n    var dataShadowSegs = displaybles.dataShadowSegs;\n    var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\n\n    for (var i = 0; i < dataShadowSegs.length; i++) {\n      var segGroup = dataShadowSegs[i];\n      var clipPath = segGroup.getClipPath();\n\n      if (!clipPath) {\n        clipPath = new graphic.Rect();\n        segGroup.setClipPath(clipPath);\n      }\n\n      clipPath.setShape({\n        x: segIntervals[i],\n        y: 0,\n        width: segIntervals[i + 1] - segIntervals[i],\n        height: size[1]\n      });\n    }\n\n    this._updateDataInfo(nonRealtime);\n  };\n\n  SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\n    var dataZoomModel = this.dataZoomModel;\n    var displaybles = this._displayables;\n    var handleLabels = displaybles.handleLabels;\n    var orient = this._orient;\n    var labelTexts = ['', '']; // FIXME\n    // date型，支持formatter，autoformatter（ec2 date.getAutoFormatter）\n\n    if (dataZoomModel.get('showDetail')) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var axis = axisProxy.getAxisModel().axis;\n        var range = this._range;\n        var dataInterval = nonRealtime // See #4434, data and axis are not processed and reset yet in non-realtime mode.\n        ? axisProxy.calculateDataWindow({\n          start: range[0],\n          end: range[1]\n        }).valueWindow : axisProxy.getDataValueWindow();\n        labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n      }\n    }\n\n    var orderedHandleEnds = asc(this._handleEnds.slice());\n    setLabel.call(this, 0);\n    setLabel.call(this, 1);\n\n    function setLabel(handleIndex) {\n      // Label\n      // Text should not transform by barGroup.\n      // Ignore handlers transform\n      var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n      var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n      var offset = this._handleWidth / 2 + LABEL_GAP;\n      var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n        align: orient === HORIZONTAL ? direction : 'center',\n        text: labelTexts[handleIndex]\n      });\n    }\n  };\n\n  SliderZoomView.prototype._formatLabel = function (value, axis) {\n    var dataZoomModel = this.dataZoomModel;\n    var labelFormatter = dataZoomModel.get('labelFormatter');\n    var labelPrecision = dataZoomModel.get('labelPrecision');\n\n    if (labelPrecision == null || labelPrecision === 'auto') {\n      labelPrecision = axis.getPixelPrecision();\n    }\n\n    var valueStr = value == null || isNaN(value) ? '' // FIXME Glue code\n    : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel({\n      value: Math.round(value)\n    }) // param of toFixed should less then 20.\n    : value.toFixed(Math.min(labelPrecision, 20));\n    return isFunction(labelFormatter) ? labelFormatter(value, valueStr) : isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n  };\n  /**\n   * @param showOrHide true: show, false: hide\n   */\n\n\n  SliderZoomView.prototype._showDataInfo = function (showOrHide) {\n    // Always show when drgging.\n    showOrHide = this._dragging || showOrHide;\n    var displayables = this._displayables;\n    var handleLabels = displayables.handleLabels;\n    handleLabels[0].attr('invisible', !showOrHide);\n    handleLabels[1].attr('invisible', !showOrHide); // Highlight move handle\n\n    displayables.moveHandle && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\n  };\n\n  SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\n    this._dragging = true; // For mobile device, prevent screen slider on the button.\n\n    eventTool.stop(event.event); // Transform dx, dy to bar coordination.\n\n    var barTransform = this._displayables.sliderGroup.getLocalTransform();\n\n    var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n    var changed = this._updateInterval(handleIndex, vertex[0]);\n\n    var realtime = this.dataZoomModel.get('realtime');\n\n    this._updateView(!realtime); // Avoid dispatch dataZoom repeatly but range not changed,\n    // which cause bad visual effect when progressive enabled.\n\n\n    changed && realtime && this._dispatchZoomAction(true);\n  };\n\n  SliderZoomView.prototype._onDragEnd = function () {\n    this._dragging = false;\n\n    this._showDataInfo(false); // While in realtime mode and stream mode, dispatch action when\n    // drag end will cause the whole view rerender, which is unnecessary.\n\n\n    var realtime = this.dataZoomModel.get('realtime');\n    !realtime && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onClickPanel = function (e) {\n    var size = this._size;\n\n    var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n    if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n      return;\n    }\n\n    var handleEnds = this._handleEnds;\n    var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n    var changed = this._updateInterval('all', localPoint[0] - center);\n\n    this._updateView();\n\n    changed && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrushStart = function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    this._brushStart = new graphic.Point(x, y);\n    this._brushing = true;\n    this._brushStartTime = +new Date(); // this._updateBrushRect(x, y);\n  };\n\n  SliderZoomView.prototype._onBrushEnd = function (e) {\n    if (!this._brushing) {\n      return;\n    }\n\n    var brushRect = this._displayables.brushRect;\n    this._brushing = false;\n\n    if (!brushRect) {\n      return;\n    }\n\n    brushRect.attr('ignore', true);\n    var brushShape = brushRect.shape;\n    var brushEndTime = +new Date(); // console.log(brushEndTime - this._brushStartTime);\n\n    if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\n      // Will treat it as a click\n      return;\n    }\n\n    var viewExtend = this._getViewExtent();\n\n    var percentExtent = [0, 100];\n    this._range = asc([linearMap(brushShape.x, viewExtend, percentExtent, true), linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)]);\n    this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\n\n    this._updateView();\n\n    this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrush = function (e) {\n    if (this._brushing) {\n      // For mobile device, prevent screen slider on the button.\n      eventTool.stop(e.event);\n\n      this._updateBrushRect(e.offsetX, e.offsetY);\n    }\n  };\n\n  SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\n    var displayables = this._displayables;\n    var dataZoomModel = this.dataZoomModel;\n    var brushRect = displayables.brushRect;\n\n    if (!brushRect) {\n      brushRect = displayables.brushRect = new Rect({\n        silent: true,\n        style: dataZoomModel.getModel('brushStyle').getItemStyle()\n      });\n      displayables.sliderGroup.add(brushRect);\n    }\n\n    brushRect.attr('ignore', false);\n    var brushStart = this._brushStart;\n    var sliderGroup = this._displayables.sliderGroup;\n    var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\n    var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\n    var size = this._size;\n    endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\n    brushRect.setShape({\n      x: startPoint[0],\n      y: 0,\n      width: endPoint[0] - startPoint[0],\n      height: size[1]\n    });\n  };\n  /**\n   * This action will be throttled.\n   */\n\n\n  SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\n    var range = this._range;\n    this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      dataZoomId: this.dataZoomModel.id,\n      animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\n      start: range[0],\n      end: range[1]\n    });\n  };\n\n  SliderZoomView.prototype._findCoordRect = function () {\n    // Find the grid coresponding to the first axis referred by dataZoom.\n    var rect;\n    var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\n\n    if (!rect && coordSysInfoList.length) {\n      var coordSys = coordSysInfoList[0].model.coordinateSystem;\n      rect = coordSys.getRect && coordSys.getRect();\n    }\n\n    if (!rect) {\n      var width = this.api.getWidth();\n      var height = this.api.getHeight();\n      rect = {\n        x: width * 0.2,\n        y: height * 0.2,\n        width: width * 0.6,\n        height: height * 0.6\n      };\n    }\n\n    return rect;\n  };\n\n  SliderZoomView.type = 'dataZoom.slider';\n  return SliderZoomView;\n}(DataZoomView);\n\nfunction getOtherDim(thisDim) {\n  // FIXME\n  // 这个逻辑和getOtherAxis里一致，但是写在这里是否不好\n  var map = {\n    x: 'y',\n    y: 'x',\n    radius: 'angle',\n    angle: 'radius'\n  };\n  return map[thisDim];\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default SliderZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport SliderZoomModel from './SliderZoomModel.js';\nimport SliderZoomView from './SliderZoomView.js';\nimport installCommon from './installCommon.js';\nexport function install(registers) {\n  registers.registerComponentModel(SliderZoomModel);\n  registers.registerComponentView(SliderZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport { install as installDataZoomInside } from './installDataZoomInside.js';\nimport { install as installDataZoomSlider } from './installDataZoomSlider.js';\nexport function install(registers) {\n  use(installDataZoomInside);\n  use(installDataZoomSlider); // Do not install './dataZoomSelect',\n  // since it only work for toolbox dataZoom.\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Visual mapping.\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar visualDefault = {\n  /**\n   * @public\n   */\n  get: function (visualType, key, isCategory) {\n    var value = zrUtil.clone((defaultOption[visualType] || {})[key]);\n    return isCategory ? zrUtil.isArray(value) ? value[value.length - 1] : value : value;\n  }\n};\nvar defaultOption = {\n  color: {\n    active: ['#006edd', '#e0ffff'],\n    inactive: ['rgba(0,0,0,0)']\n  },\n  colorHue: {\n    active: [0, 360],\n    inactive: [0, 0]\n  },\n  colorSaturation: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  colorLightness: {\n    active: [0.9, 0.5],\n    inactive: [0, 0]\n  },\n  colorAlpha: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  opacity: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  symbol: {\n    active: ['circle', 'roundRect', 'diamond'],\n    inactive: ['none']\n  },\n  symbolSize: {\n    active: [10, 50],\n    inactive: [0, 0]\n  }\n};\nexport default visualDefault;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport visualDefault from '../../visual/visualDefault.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport * as visualSolution from '../../visual/visualSolution.js';\nimport * as modelUtil from '../../util/model.js';\nimport * as numberUtil from '../../util/number.js';\nimport ComponentModel from '../../model/Component.js';\nvar mapVisual = VisualMapping.mapVisual;\nvar eachVisual = VisualMapping.eachVisual;\nvar isArray = zrUtil.isArray;\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\nvar linearMap = numberUtil.linearMap;\n\nvar VisualMapModel =\n/** @class */\nfunction (_super) {\n  __extends(VisualMapModel, _super);\n\n  function VisualMapModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = VisualMapModel.type;\n    _this.stateList = ['inRange', 'outOfRange'];\n    _this.replacableOptionKeys = ['inRange', 'outOfRange', 'target', 'controller', 'color'];\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    /**\n     * [lowerBound, upperBound]\n     */\n\n    _this.dataBound = [-Infinity, Infinity];\n    _this.targetVisuals = {};\n    _this.controllerVisuals = {};\n    return _this;\n  }\n\n  VisualMapModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  };\n  /**\n   * @protected\n   */\n\n\n  VisualMapModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n    !isInit && visualSolution.replaceVisualOption(thisOption, newOption, this.replacableOptionKeys);\n    this.textStyleModel = this.getModel('textStyle');\n    this.resetItemSize();\n    this.completeVisualOption();\n  };\n  /**\n   * @protected\n   */\n\n\n  VisualMapModel.prototype.resetVisual = function (supplementVisualOption) {\n    var stateList = this.stateList;\n    supplementVisualOption = zrUtil.bind(supplementVisualOption, this);\n    this.controllerVisuals = visualSolution.createVisualMappings(this.option.controller, stateList, supplementVisualOption);\n    this.targetVisuals = visualSolution.createVisualMappings(this.option.target, stateList, supplementVisualOption);\n  };\n  /**\n   * @public\n   */\n\n\n  VisualMapModel.prototype.getItemSymbol = function () {\n    return null;\n  };\n  /**\n   * @protected\n   * @return {Array.<number>} An array of series indices.\n   */\n\n\n  VisualMapModel.prototype.getTargetSeriesIndices = function () {\n    var optionSeriesIndex = this.option.seriesIndex;\n    var seriesIndices = [];\n\n    if (optionSeriesIndex == null || optionSeriesIndex === 'all') {\n      this.ecModel.eachSeries(function (seriesModel, index) {\n        seriesIndices.push(index);\n      });\n    } else {\n      seriesIndices = modelUtil.normalizeToArray(optionSeriesIndex);\n    }\n\n    return seriesIndices;\n  };\n  /**\n   * @public\n   */\n\n\n  VisualMapModel.prototype.eachTargetSeries = function (callback, context) {\n    zrUtil.each(this.getTargetSeriesIndices(), function (seriesIndex) {\n      var seriesModel = this.ecModel.getSeriesByIndex(seriesIndex);\n\n      if (seriesModel) {\n        callback.call(context, seriesModel);\n      }\n    }, this);\n  };\n  /**\n   * @pubilc\n   */\n\n\n  VisualMapModel.prototype.isTargetSeries = function (seriesModel) {\n    var is = false;\n    this.eachTargetSeries(function (model) {\n      model === seriesModel && (is = true);\n    });\n    return is;\n  };\n  /**\n   * @example\n   * this.formatValueText(someVal); // format single numeric value to text.\n   * this.formatValueText(someVal, true); // format single category value to text.\n   * this.formatValueText([min, max]); // format numeric min-max to text.\n   * this.formatValueText([this.dataBound[0], max]); // using data lower bound.\n   * this.formatValueText([min, this.dataBound[1]]); // using data upper bound.\n   *\n   * @param value Real value, or this.dataBound[0 or 1].\n   * @param isCategory Only available when value is number.\n   * @param edgeSymbols Open-close symbol when value is interval.\n   * @protected\n   */\n\n\n  VisualMapModel.prototype.formatValueText = function (value, isCategory, edgeSymbols) {\n    var option = this.option;\n    var precision = option.precision;\n    var dataBound = this.dataBound;\n    var formatter = option.formatter;\n    var isMinMax;\n    edgeSymbols = edgeSymbols || ['<', '>'];\n\n    if (zrUtil.isArray(value)) {\n      value = value.slice();\n      isMinMax = true;\n    }\n\n    var textValue = isCategory ? value // Value is string when isCategory\n    : isMinMax ? [toFixed(value[0]), toFixed(value[1])] : toFixed(value);\n\n    if (zrUtil.isString(formatter)) {\n      return formatter.replace('{value}', isMinMax ? textValue[0] : textValue).replace('{value2}', isMinMax ? textValue[1] : textValue);\n    } else if (zrUtil.isFunction(formatter)) {\n      return isMinMax ? formatter(value[0], value[1]) : formatter(value);\n    }\n\n    if (isMinMax) {\n      if (value[0] === dataBound[0]) {\n        return edgeSymbols[0] + ' ' + textValue[1];\n      } else if (value[1] === dataBound[1]) {\n        return edgeSymbols[1] + ' ' + textValue[0];\n      } else {\n        return textValue[0] + ' - ' + textValue[1];\n      }\n    } else {\n      // Format single value (includes category case).\n      return textValue;\n    }\n\n    function toFixed(val) {\n      return val === dataBound[0] ? 'min' : val === dataBound[1] ? 'max' : (+val).toFixed(Math.min(precision, 20));\n    }\n  };\n  /**\n   * @protected\n   */\n\n\n  VisualMapModel.prototype.resetExtent = function () {\n    var thisOption = this.option; // Can not calculate data extent by data here.\n    // Because series and data may be modified in processing stage.\n    // So we do not support the feature \"auto min/max\".\n\n    var extent = asc([thisOption.min, thisOption.max]);\n    this._dataExtent = extent;\n  };\n  /**\n   * PENDING:\n   * delete this method if no outer usage.\n   *\n   * Return  Concrete dimention. If return null/undefined, no dimension used.\n   */\n  // getDataDimension(data: SeriesData) {\n  //     const optDim = this.option.dimension;\n  //     if (optDim != null) {\n  //         return data.getDimension(optDim);\n  //     }\n  //     const dimNames = data.dimensions;\n  //     for (let i = dimNames.length - 1; i >= 0; i--) {\n  //         const dimName = dimNames[i];\n  //         const dimInfo = data.getDimensionInfo(dimName);\n  //         if (!dimInfo.isCalculationCoord) {\n  //             return dimName;\n  //         }\n  //     }\n  // }\n\n\n  VisualMapModel.prototype.getDataDimensionIndex = function (data) {\n    var optDim = this.option.dimension;\n\n    if (optDim != null) {\n      return data.getDimensionIndex(optDim);\n    }\n\n    var dimNames = data.dimensions;\n\n    for (var i = dimNames.length - 1; i >= 0; i--) {\n      var dimName = dimNames[i];\n      var dimInfo = data.getDimensionInfo(dimName);\n\n      if (!dimInfo.isCalculationCoord) {\n        return dimInfo.storeDimIndex;\n      }\n    }\n  };\n\n  VisualMapModel.prototype.getExtent = function () {\n    return this._dataExtent.slice();\n  };\n\n  VisualMapModel.prototype.completeVisualOption = function () {\n    var ecModel = this.ecModel;\n    var thisOption = this.option;\n    var base = {\n      inRange: thisOption.inRange,\n      outOfRange: thisOption.outOfRange\n    };\n    var target = thisOption.target || (thisOption.target = {});\n    var controller = thisOption.controller || (thisOption.controller = {});\n    zrUtil.merge(target, base); // Do not override\n\n    zrUtil.merge(controller, base); // Do not override\n\n    var isCategory = this.isCategory();\n    completeSingle.call(this, target);\n    completeSingle.call(this, controller);\n    completeInactive.call(this, target, 'inRange', 'outOfRange'); // completeInactive.call(this, target, 'outOfRange', 'inRange');\n\n    completeController.call(this, controller);\n\n    function completeSingle(base) {\n      // Compatible with ec2 dataRange.color.\n      // The mapping order of dataRange.color is: [high value, ..., low value]\n      // whereas inRange.color and outOfRange.color is [low value, ..., high value]\n      // Notice: ec2 has no inverse.\n      if (isArray(thisOption.color) // If there has been inRange: {symbol: ...}, adding color is a mistake.\n      // So adding color only when no inRange defined.\n      && !base.inRange) {\n        base.inRange = {\n          color: thisOption.color.slice().reverse()\n        };\n      } // Compatible with previous logic, always give a defautl color, otherwise\n      // simple config with no inRange and outOfRange will not work.\n      // Originally we use visualMap.color as the default color, but setOption at\n      // the second time the default color will be erased. So we change to use\n      // constant DEFAULT_COLOR.\n      // If user do not want the default color, set inRange: {color: null}.\n\n\n      base.inRange = base.inRange || {\n        color: ecModel.get('gradientColor')\n      };\n    }\n\n    function completeInactive(base, stateExist, stateAbsent) {\n      var optExist = base[stateExist];\n      var optAbsent = base[stateAbsent];\n\n      if (optExist && !optAbsent) {\n        optAbsent = base[stateAbsent] = {};\n        each(optExist, function (visualData, visualType) {\n          if (!VisualMapping.isValidType(visualType)) {\n            return;\n          }\n\n          var defa = visualDefault.get(visualType, 'inactive', isCategory);\n\n          if (defa != null) {\n            optAbsent[visualType] = defa; // Compatibable with ec2:\n            // Only inactive color to rgba(0,0,0,0) can not\n            // make label transparent, so use opacity also.\n\n            if (visualType === 'color' && !optAbsent.hasOwnProperty('opacity') && !optAbsent.hasOwnProperty('colorAlpha')) {\n              optAbsent.opacity = [0, 0];\n            }\n          }\n        });\n      }\n    }\n\n    function completeController(controller) {\n      var symbolExists = (controller.inRange || {}).symbol || (controller.outOfRange || {}).symbol;\n      var symbolSizeExists = (controller.inRange || {}).symbolSize || (controller.outOfRange || {}).symbolSize;\n      var inactiveColor = this.get('inactiveColor');\n      var itemSymbol = this.getItemSymbol();\n      var defaultSymbol = itemSymbol || 'roundRect';\n      each(this.stateList, function (state) {\n        var itemSize = this.itemSize;\n        var visuals = controller[state]; // Set inactive color for controller if no other color\n        // attr (like colorAlpha) specified.\n\n        if (!visuals) {\n          visuals = controller[state] = {\n            color: isCategory ? inactiveColor : [inactiveColor]\n          };\n        } // Consistent symbol and symbolSize if not specified.\n\n\n        if (visuals.symbol == null) {\n          visuals.symbol = symbolExists && zrUtil.clone(symbolExists) || (isCategory ? defaultSymbol : [defaultSymbol]);\n        }\n\n        if (visuals.symbolSize == null) {\n          visuals.symbolSize = symbolSizeExists && zrUtil.clone(symbolSizeExists) || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]);\n        } // Filter none\n\n\n        visuals.symbol = mapVisual(visuals.symbol, function (symbol) {\n          return symbol === 'none' ? defaultSymbol : symbol;\n        }); // Normalize symbolSize\n\n        var symbolSize = visuals.symbolSize;\n\n        if (symbolSize != null) {\n          var max_1 = -Infinity; // symbolSize can be object when categories defined.\n\n          eachVisual(symbolSize, function (value) {\n            value > max_1 && (max_1 = value);\n          });\n          visuals.symbolSize = mapVisual(symbolSize, function (value) {\n            return linearMap(value, [0, max_1], [0, itemSize[0]], true);\n          });\n        }\n      }, this);\n    }\n  };\n\n  VisualMapModel.prototype.resetItemSize = function () {\n    this.itemSize = [parseFloat(this.get('itemWidth')), parseFloat(this.get('itemHeight'))];\n  };\n\n  VisualMapModel.prototype.isCategory = function () {\n    return !!this.option.categories;\n  };\n  /**\n   * @public\n   * @abstract\n   */\n\n\n  VisualMapModel.prototype.setSelected = function (selected) {};\n\n  VisualMapModel.prototype.getSelected = function () {\n    return null;\n  };\n  /**\n   * @public\n   * @abstract\n   */\n\n\n  VisualMapModel.prototype.getValueState = function (value) {\n    return null;\n  };\n  /**\n   * FIXME\n   * Do not publish to thirt-part-dev temporarily\n   * util the interface is stable. (Should it return\n   * a function but not visual meta?)\n   *\n   * @pubilc\n   * @abstract\n   * @param getColorVisual\n   *        params: value, valueState\n   *        return: color\n   * @return {Object} visualMeta\n   *        should includes {stops, outerColors}\n   *        outerColor means [colorBeyondMinValue, colorBeyondMaxValue]\n   */\n\n\n  VisualMapModel.prototype.getVisualMeta = function (getColorVisual) {\n    return null;\n  };\n\n  VisualMapModel.type = 'visualMap';\n  VisualMapModel.dependencies = ['series'];\n  VisualMapModel.defaultOption = {\n    show: true,\n    // zlevel: 0,\n    z: 4,\n    seriesIndex: 'all',\n    min: 0,\n    max: 200,\n    left: 0,\n    right: null,\n    top: null,\n    bottom: 0,\n    itemWidth: null,\n    itemHeight: null,\n    inverse: false,\n    orient: 'vertical',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    contentColor: '#5793f3',\n    inactiveColor: '#aaa',\n    borderWidth: 0,\n    padding: 5,\n    // 接受数组分别设定上右下左边距，同css\n    textGap: 10,\n    precision: 0,\n    textStyle: {\n      color: '#333' // 值域文字颜色\n\n    }\n  };\n  return VisualMapModel;\n}(ComponentModel);\n\nexport default VisualMapModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapModel from './VisualMapModel.js';\nimport * as numberUtil from '../../util/number.js';\nimport { inheritDefaultOption } from '../../util/component.js'; // Constant\n\nvar DEFAULT_BAR_BOUND = [20, 140];\n\nvar ContinuousModel =\n/** @class */\nfunction (_super) {\n  __extends(ContinuousModel, _super);\n\n  function ContinuousModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ContinuousModel.type;\n    return _this;\n  }\n  /**\n   * @override\n   */\n\n\n  ContinuousModel.prototype.optionUpdated = function (newOption, isInit) {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    this.resetExtent();\n    this.resetVisual(function (mappingOption) {\n      mappingOption.mappingMethod = 'linear';\n      mappingOption.dataExtent = this.getExtent();\n    });\n\n    this._resetRange();\n  };\n  /**\n   * @protected\n   * @override\n   */\n\n\n  ContinuousModel.prototype.resetItemSize = function () {\n    _super.prototype.resetItemSize.apply(this, arguments);\n\n    var itemSize = this.itemSize;\n    (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\n    (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\n  };\n  /**\n   * @private\n   */\n\n\n  ContinuousModel.prototype._resetRange = function () {\n    var dataExtent = this.getExtent();\n    var range = this.option.range;\n\n    if (!range || range.auto) {\n      // `range` should always be array (so we dont use other\n      // value like 'auto') for user-friend. (consider getOption).\n      dataExtent.auto = 1;\n      this.option.range = dataExtent;\n    } else if (zrUtil.isArray(range)) {\n      if (range[0] > range[1]) {\n        range.reverse();\n      }\n\n      range[0] = Math.max(range[0], dataExtent[0]);\n      range[1] = Math.min(range[1], dataExtent[1]);\n    }\n  };\n  /**\n   * @protected\n   * @override\n   */\n\n\n  ContinuousModel.prototype.completeVisualOption = function () {\n    _super.prototype.completeVisualOption.apply(this, arguments);\n\n    zrUtil.each(this.stateList, function (state) {\n      var symbolSize = this.option.controller[state].symbolSize;\n\n      if (symbolSize && symbolSize[0] !== symbolSize[1]) {\n        symbolSize[0] = symbolSize[1] / 3; // For good looking.\n      }\n    }, this);\n  };\n  /**\n   * @override\n   */\n\n\n  ContinuousModel.prototype.setSelected = function (selected) {\n    this.option.range = selected.slice();\n\n    this._resetRange();\n  };\n  /**\n   * @public\n   */\n\n\n  ContinuousModel.prototype.getSelected = function () {\n    var dataExtent = this.getExtent();\n    var dataInterval = numberUtil.asc((this.get('range') || []).slice()); // Clamp\n\n    dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\n    dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\n    dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\n    dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\n    return dataInterval;\n  };\n  /**\n   * @override\n   */\n\n\n  ContinuousModel.prototype.getValueState = function (value) {\n    var range = this.option.range;\n    var dataExtent = this.getExtent(); // When range[0] === dataExtent[0], any value larger than dataExtent[0] maps to 'inRange'.\n    // range[1] is processed likewise.\n\n    return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? 'inRange' : 'outOfRange';\n  };\n\n  ContinuousModel.prototype.findTargetDataIndices = function (range) {\n    var result = [];\n    this.eachTargetSeries(function (seriesModel) {\n      var dataIndices = [];\n      var data = seriesModel.getData();\n      data.each(this.getDataDimensionIndex(data), function (value, dataIndex) {\n        range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\n      }, this);\n      result.push({\n        seriesId: seriesModel.id,\n        dataIndex: dataIndices\n      });\n    }, this);\n    return result;\n  };\n  /**\n   * @implement\n   */\n\n\n  ContinuousModel.prototype.getVisualMeta = function (getColorVisual) {\n    var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\n    var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\n    var stops = [];\n\n    function setStop(value, valueState) {\n      stops.push({\n        value: value,\n        color: getColorVisual(value, valueState)\n      });\n    } // Format to: outOfRange -- inRange -- outOfRange.\n\n\n    var iIdx = 0;\n    var oIdx = 0;\n    var iLen = iVals.length;\n    var oLen = oVals.length;\n\n    for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\n      // If oVal[oIdx] === iVals[iIdx], oVal[oIdx] should be ignored.\n      if (oVals[oIdx] < iVals[iIdx]) {\n        setStop(oVals[oIdx], 'outOfRange');\n      }\n    }\n\n    for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\n      // If range is full, value beyond min, max will be clamped.\n      // make a singularity\n      first && stops.length && setStop(iVals[iIdx], 'outOfRange');\n      setStop(iVals[iIdx], 'inRange');\n    }\n\n    for (var first = 1; oIdx < oLen; oIdx++) {\n      if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\n        // make a singularity\n        if (first) {\n          stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\n          first = 0;\n        }\n\n        setStop(oVals[oIdx], 'outOfRange');\n      }\n    }\n\n    var stopsLen = stops.length;\n    return {\n      stops: stops,\n      outerColors: [stopsLen ? stops[0].color : 'transparent', stopsLen ? stops[stopsLen - 1].color : 'transparent']\n    };\n  };\n\n  ContinuousModel.type = 'visualMap.continuous';\n  ContinuousModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n    align: 'auto',\n    calculable: false,\n    hoverLink: true,\n    realtime: true,\n    handleIcon: 'path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z',\n    handleSize: '120%',\n    handleStyle: {\n      borderColor: '#fff',\n      borderWidth: 1\n    },\n    indicatorIcon: 'circle',\n    indicatorSize: '50%',\n    indicatorStyle: {\n      borderColor: '#fff',\n      borderWidth: 2,\n      shadowBlur: 2,\n      shadowOffsetX: 1,\n      shadowOffsetY: 1,\n      shadowColor: 'rgba(0,0,0,0.2)'\n    } // emphasis: {\n    //     handleStyle: {\n    //         shadowBlur: 3,\n    //         shadowOffsetX: 1,\n    //         shadowOffsetY: 1,\n    //         shadowColor: 'rgba(0,0,0,0.2)'\n    //     }\n    // }\n\n  });\n  return ContinuousModel;\n}(VisualMapModel);\n\nfunction getColorStopValues(visualMapModel, valueState, dataExtent) {\n  if (dataExtent[0] === dataExtent[1]) {\n    return dataExtent.slice();\n  } // When using colorHue mapping, it is not linear color any more.\n  // Moreover, canvas gradient seems not to be accurate linear.\n  // FIXME\n  // Should be arbitrary value 100? or based on pixel size?\n\n\n  var count = 200;\n  var step = (dataExtent[1] - dataExtent[0]) / count;\n  var value = dataExtent[0];\n  var stopValues = [];\n\n  for (var i = 0; i <= count && value < dataExtent[1]; i++) {\n    stopValues.push(value);\n    value += step;\n  }\n\n  stopValues.push(dataExtent[1]);\n  return stopValues;\n}\n\nexport default ContinuousModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { Rect } from '../../util/graphic.js';\nimport * as formatUtil from '../../util/format.js';\nimport * as layout from '../../util/layout.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport ComponentView from '../../view/Component.js';\n\nvar VisualMapView =\n/** @class */\nfunction (_super) {\n  __extends(VisualMapView, _super);\n\n  function VisualMapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = VisualMapView.type;\n    _this.autoPositionValues = {\n      left: 1,\n      right: 1,\n      top: 1,\n      bottom: 1\n    };\n    return _this;\n  }\n\n  VisualMapView.prototype.init = function (ecModel, api) {\n    this.ecModel = ecModel;\n    this.api = api;\n  };\n  /**\n   * @protected\n   */\n\n\n  VisualMapView.prototype.render = function (visualMapModel, ecModel, api, payload // TODO: TYPE\n  ) {\n    this.visualMapModel = visualMapModel;\n\n    if (visualMapModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    }\n\n    this.doRender(visualMapModel, ecModel, api, payload);\n  };\n  /**\n   * @protected\n   */\n\n\n  VisualMapView.prototype.renderBackground = function (group) {\n    var visualMapModel = this.visualMapModel;\n    var padding = formatUtil.normalizeCssArray(visualMapModel.get('padding') || 0);\n    var rect = group.getBoundingRect();\n    group.add(new Rect({\n      z2: -1,\n      silent: true,\n      shape: {\n        x: rect.x - padding[3],\n        y: rect.y - padding[0],\n        width: rect.width + padding[3] + padding[1],\n        height: rect.height + padding[0] + padding[2]\n      },\n      style: {\n        fill: visualMapModel.get('backgroundColor'),\n        stroke: visualMapModel.get('borderColor'),\n        lineWidth: visualMapModel.get('borderWidth')\n      }\n    }));\n  };\n  /**\n   * @protected\n   * @param targetValue can be Infinity or -Infinity\n   * @param visualCluster Only can be 'color' 'opacity' 'symbol' 'symbolSize'\n   * @param opts\n   * @param opts.forceState Specify state, instead of using getValueState method.\n   * @param opts.convertOpacityToAlpha For color gradient in controller widget.\n   * @return {*} Visual value.\n   */\n\n\n  VisualMapView.prototype.getControllerVisual = function (targetValue, visualCluster, opts) {\n    opts = opts || {};\n    var forceState = opts.forceState;\n    var visualMapModel = this.visualMapModel;\n    var visualObj = {}; // Default values.\n\n    if (visualCluster === 'color') {\n      var defaultColor = visualMapModel.get('contentColor');\n      visualObj.color = defaultColor;\n    }\n\n    function getter(key) {\n      return visualObj[key];\n    }\n\n    function setter(key, value) {\n      visualObj[key] = value;\n    }\n\n    var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)];\n    var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n    zrUtil.each(visualTypes, function (type) {\n      var visualMapping = mappings[type];\n\n      if (opts.convertOpacityToAlpha && type === 'opacity') {\n        type = 'colorAlpha';\n        visualMapping = mappings.__alphaForOpacity;\n      }\n\n      if (VisualMapping.dependsOn(type, visualCluster)) {\n        visualMapping && visualMapping.applyVisual(targetValue, getter, setter);\n      }\n    });\n    return visualObj[visualCluster];\n  };\n\n  VisualMapView.prototype.positionGroup = function (group) {\n    var model = this.visualMapModel;\n    var api = this.api;\n    layout.positionElement(group, model.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  VisualMapView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {};\n\n  VisualMapView.type = 'visualMap';\n  return VisualMapView;\n}(ComponentView);\n\nexport default VisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { getLayoutRect } from '../../util/layout.js';\nvar paramsSet = [['left', 'right', 'width'], ['top', 'bottom', 'height']];\n/**\n * @param visualMapModel\n * @param api\n * @param itemSize always [short, long]\n * @return {string} 'left' or 'right' or 'top' or 'bottom'\n */\n\nexport function getItemAlign(visualMapModel, api, itemSize) {\n  var modelOption = visualMapModel.option;\n  var itemAlign = modelOption.align;\n\n  if (itemAlign != null && itemAlign !== 'auto') {\n    return itemAlign;\n  } // Auto decision align.\n\n\n  var ecSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var realIndex = modelOption.orient === 'horizontal' ? 1 : 0;\n  var reals = paramsSet[realIndex];\n  var fakeValue = [0, null, 10];\n  var layoutInput = {};\n\n  for (var i = 0; i < 3; i++) {\n    layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i];\n    layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]];\n  }\n\n  var rParam = [['x', 'width', 3], ['y', 'height', 0]][realIndex];\n  var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding);\n  return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5 < ecSize[rParam[1]] * 0.5 ? 0 : 1];\n}\n/**\n * Prepare dataIndex for outside usage, where dataIndex means rawIndex, and\n * dataIndexInside means filtered index.\n */\n// TODO: TYPE more specified payload types.\n\nexport function makeHighDownBatch(batch, visualMapModel) {\n  zrUtil.each(batch || [], function (batchItem) {\n    if (batchItem.dataIndex != null) {\n      batchItem.dataIndexInside = batchItem.dataIndex;\n      batchItem.dataIndex = null;\n    }\n\n    batchItem.highlightKey = 'visualMap' + (visualMapModel ? visualMapModel.componentIndex : '');\n  });\n  return batch;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport VisualMapView from './VisualMapView.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as numberUtil from '../../util/number.js';\nimport sliderMove from '../helper/sliderMove.js';\nimport * as helper from './helper.js';\nimport * as modelUtil from '../../util/model.js';\nimport { parsePercent } from 'zrender/lib/contain/text.js';\nimport { setAsHighDownDispatcher } from '../../util/states.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport ZRImage from 'zrender/lib/graphic/Image.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nvar linearMap = numberUtil.linearMap;\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max; // Arbitrary value\n\nvar HOVER_LINK_SIZE = 12;\nvar HOVER_LINK_OUT = 6; // Notice:\n// Any \"interval\" should be by the order of [low, high].\n// \"handle0\" (handleIndex === 0) maps to\n// low data value: this._dataInterval[0] and has low coord.\n// \"handle1\" (handleIndex === 1) maps to\n// high data value: this._dataInterval[1] and has high coord.\n// The logic of transform is implemented in this._createBarGroup.\n\nvar ContinuousView =\n/** @class */\nfunction (_super) {\n  __extends(ContinuousView, _super);\n\n  function ContinuousView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ContinuousView.type;\n    _this._shapes = {};\n    _this._dataInterval = [];\n    _this._handleEnds = [];\n    _this._hoverLinkDataIndices = [];\n    return _this;\n  }\n\n  ContinuousView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {\n    this._api = api;\n\n    if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\n      this._buildView();\n    }\n  };\n\n  ContinuousView.prototype._buildView = function () {\n    this.group.removeAll();\n    var visualMapModel = this.visualMapModel;\n    var thisGroup = this.group;\n    this._orient = visualMapModel.get('orient');\n    this._useHandle = visualMapModel.get('calculable');\n\n    this._resetInterval();\n\n    this._renderBar(thisGroup);\n\n    var dataRangeText = visualMapModel.get('text');\n\n    this._renderEndsText(thisGroup, dataRangeText, 0);\n\n    this._renderEndsText(thisGroup, dataRangeText, 1); // Do this for background size calculation.\n\n\n    this._updateView(true); // After updating view, inner shapes is built completely,\n    // and then background can be rendered.\n\n\n    this.renderBackground(thisGroup); // Real update view\n\n    this._updateView();\n\n    this._enableHoverLinkToSeries();\n\n    this._enableHoverLinkFromSeries();\n\n    this.positionGroup(thisGroup);\n  };\n\n  ContinuousView.prototype._renderEndsText = function (group, dataRangeText, endsIndex) {\n    if (!dataRangeText) {\n      return;\n    } // Compatible with ec2, text[0] map to high value, text[1] map low value.\n\n\n    var text = dataRangeText[1 - endsIndex];\n    text = text != null ? text + '' : '';\n    var visualMapModel = this.visualMapModel;\n    var textGap = visualMapModel.get('textGap');\n    var itemSize = visualMapModel.itemSize;\n    var barGroup = this._shapes.mainGroup;\n\n    var position = this._applyTransform([itemSize[0] / 2, endsIndex === 0 ? -textGap : itemSize[1] + textGap], barGroup);\n\n    var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\n\n    var orient = this._orient;\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    this.group.add(new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        x: position[0],\n        y: position[1],\n        verticalAlign: orient === 'horizontal' ? 'middle' : align,\n        align: orient === 'horizontal' ? align : 'center',\n        text: text\n      })\n    }));\n  };\n\n  ContinuousView.prototype._renderBar = function (targetGroup) {\n    var visualMapModel = this.visualMapModel;\n    var shapes = this._shapes;\n    var itemSize = visualMapModel.itemSize;\n    var orient = this._orient;\n    var useHandle = this._useHandle;\n    var itemAlign = helper.getItemAlign(visualMapModel, this.api, itemSize);\n\n    var mainGroup = shapes.mainGroup = this._createBarGroup(itemAlign);\n\n    var gradientBarGroup = new graphic.Group();\n    mainGroup.add(gradientBarGroup); // Bar\n\n    gradientBarGroup.add(shapes.outOfRange = createPolygon());\n    gradientBarGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor(this._orient) : null, zrUtil.bind(this._dragHandle, this, 'all', false), zrUtil.bind(this._dragHandle, this, 'all', true))); // A border radius clip.\n\n    gradientBarGroup.setClipPath(new graphic.Rect({\n      shape: {\n        x: 0,\n        y: 0,\n        width: itemSize[0],\n        height: itemSize[1],\n        r: 3\n      }\n    }));\n    var textRect = visualMapModel.textStyleModel.getTextRect('国');\n    var textSize = mathMax(textRect.width, textRect.height); // Handle\n\n    if (useHandle) {\n      shapes.handleThumbs = [];\n      shapes.handleLabels = [];\n      shapes.handleLabelPoints = [];\n\n      this._createHandle(visualMapModel, mainGroup, 0, itemSize, textSize, orient);\n\n      this._createHandle(visualMapModel, mainGroup, 1, itemSize, textSize, orient);\n    }\n\n    this._createIndicator(visualMapModel, mainGroup, itemSize, textSize, orient);\n\n    targetGroup.add(mainGroup);\n  };\n\n  ContinuousView.prototype._createHandle = function (visualMapModel, mainGroup, handleIndex, itemSize, textSize, orient) {\n    var onDrift = zrUtil.bind(this._dragHandle, this, handleIndex, false);\n    var onDragEnd = zrUtil.bind(this._dragHandle, this, handleIndex, true);\n    var handleSize = parsePercent(visualMapModel.get('handleSize'), itemSize[0]);\n    var handleThumb = createSymbol(visualMapModel.get('handleIcon'), -handleSize / 2, -handleSize / 2, handleSize, handleSize, null, true);\n    var cursor = getCursor(this._orient);\n    handleThumb.attr({\n      cursor: cursor,\n      draggable: true,\n      drift: onDrift,\n      ondragend: onDragEnd,\n      onmousemove: function (e) {\n        eventTool.stop(e.event);\n      }\n    });\n    handleThumb.x = itemSize[0] / 2;\n    handleThumb.useStyle(visualMapModel.getModel('handleStyle').getItemStyle());\n    handleThumb.setStyle({\n      strokeNoScale: true,\n      strokeFirst: true\n    });\n    handleThumb.style.lineWidth *= 2;\n    handleThumb.ensureState('emphasis').style = visualMapModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n    setAsHighDownDispatcher(handleThumb, true);\n    mainGroup.add(handleThumb); // Text is always horizontal layout but should not be effected by\n    // transform (orient/inverse). So label is built separately but not\n    // use zrender/graphic/helper/RectText, and is located based on view\n    // group (according to handleLabelPoint) but not barGroup.\n\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    var handleLabel = new graphic.Text({\n      cursor: cursor,\n      draggable: true,\n      drift: onDrift,\n      onmousemove: function (e) {\n        // Fot mobile devicem, prevent screen slider on the button.\n        eventTool.stop(e.event);\n      },\n      ondragend: onDragEnd,\n      style: createTextStyle(textStyleModel, {\n        x: 0,\n        y: 0,\n        text: ''\n      })\n    });\n    handleLabel.ensureState('blur').style = {\n      opacity: 0.1\n    };\n    handleLabel.stateTransition = {\n      duration: 200\n    };\n    this.group.add(handleLabel);\n    var handleLabelPoint = [handleSize, 0];\n    var shapes = this._shapes;\n    shapes.handleThumbs[handleIndex] = handleThumb;\n    shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\n    shapes.handleLabels[handleIndex] = handleLabel;\n  };\n\n  ContinuousView.prototype._createIndicator = function (visualMapModel, mainGroup, itemSize, textSize, orient) {\n    var scale = parsePercent(visualMapModel.get('indicatorSize'), itemSize[0]);\n    var indicator = createSymbol(visualMapModel.get('indicatorIcon'), -scale / 2, -scale / 2, scale, scale, null, true);\n    indicator.attr({\n      cursor: 'move',\n      invisible: true,\n      silent: true,\n      x: itemSize[0] / 2\n    });\n    var indicatorStyle = visualMapModel.getModel('indicatorStyle').getItemStyle();\n\n    if (indicator instanceof ZRImage) {\n      var pathStyle = indicator.style;\n      indicator.useStyle(zrUtil.extend({\n        // TODO other properties like x, y ?\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, indicatorStyle));\n    } else {\n      indicator.useStyle(indicatorStyle);\n    }\n\n    mainGroup.add(indicator);\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    var indicatorLabel = new graphic.Text({\n      silent: true,\n      invisible: true,\n      style: createTextStyle(textStyleModel, {\n        x: 0,\n        y: 0,\n        text: ''\n      })\n    });\n    this.group.add(indicatorLabel);\n    var indicatorLabelPoint = [(orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT) + itemSize[0] / 2, 0];\n    var shapes = this._shapes;\n    shapes.indicator = indicator;\n    shapes.indicatorLabel = indicatorLabel;\n    shapes.indicatorLabelPoint = indicatorLabelPoint;\n    this._firstShowIndicator = true;\n  };\n\n  ContinuousView.prototype._dragHandle = function (handleIndex, isEnd, // dx is event from ondragend if isEnd is true. It's not used\n  dx, dy) {\n    if (!this._useHandle) {\n      return;\n    }\n\n    this._dragging = !isEnd;\n\n    if (!isEnd) {\n      // Transform dx, dy to bar coordination.\n      var vertex = this._applyTransform([dx, dy], this._shapes.mainGroup, true);\n\n      this._updateInterval(handleIndex, vertex[1]);\n\n      this._hideIndicator(); // Considering realtime, update view should be executed\n      // before dispatch action.\n\n\n      this._updateView();\n    } // dragEnd do not dispatch action when realtime.\n\n\n    if (isEnd === !this.visualMapModel.get('realtime')) {\n      // jshint ignore:line\n      this.api.dispatchAction({\n        type: 'selectDataRange',\n        from: this.uid,\n        visualMapId: this.visualMapModel.id,\n        selected: this._dataInterval.slice()\n      });\n    }\n\n    if (isEnd) {\n      !this._hovering && this._clearHoverLinkToSeries();\n    } else if (useHoverLinkOnHandle(this.visualMapModel)) {\n      this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\n    }\n  };\n\n  ContinuousView.prototype._resetInterval = function () {\n    var visualMapModel = this.visualMapModel;\n    var dataInterval = this._dataInterval = visualMapModel.getSelected();\n    var dataExtent = visualMapModel.getExtent();\n    var sizeExtent = [0, visualMapModel.itemSize[1]];\n    this._handleEnds = [linearMap(dataInterval[0], dataExtent, sizeExtent, true), linearMap(dataInterval[1], dataExtent, sizeExtent, true)];\n  };\n  /**\n   * @private\n   * @param {(number|string)} handleIndex 0 or 1 or 'all'\n   * @param {number} dx\n   * @param {number} dy\n   */\n\n\n  ContinuousView.prototype._updateInterval = function (handleIndex, delta) {\n    delta = delta || 0;\n    var visualMapModel = this.visualMapModel;\n    var handleEnds = this._handleEnds;\n    var sizeExtent = [0, visualMapModel.itemSize[1]];\n    sliderMove(delta, handleEnds, sizeExtent, handleIndex, // cross is forbiden\n    0);\n    var dataExtent = visualMapModel.getExtent(); // Update data interval.\n\n    this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)];\n  };\n\n  ContinuousView.prototype._updateView = function (forSketch) {\n    var visualMapModel = this.visualMapModel;\n    var dataExtent = visualMapModel.getExtent();\n    var shapes = this._shapes;\n    var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\n    var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\n\n    var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\n\n    var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\n\n    shapes.inRange.setStyle({\n      fill: visualInRange.barColor // opacity: visualInRange.opacity\n\n    }).setShape('points', visualInRange.barPoints);\n    shapes.outOfRange.setStyle({\n      fill: visualOutOfRange.barColor // opacity: visualOutOfRange.opacity\n\n    }).setShape('points', visualOutOfRange.barPoints);\n\n    this._updateHandle(inRangeHandleEnds, visualInRange);\n  };\n\n  ContinuousView.prototype._createBarVisual = function (dataInterval, dataExtent, handleEnds, forceState) {\n    var opts = {\n      forceState: forceState,\n      convertOpacityToAlpha: true\n    };\n\n    var colorStops = this._makeColorGradient(dataInterval, opts);\n\n    var symbolSizes = [this.getControllerVisual(dataInterval[0], 'symbolSize', opts), this.getControllerVisual(dataInterval[1], 'symbolSize', opts)];\n\n    var barPoints = this._createBarPoints(handleEnds, symbolSizes);\n\n    return {\n      barColor: new LinearGradient(0, 0, 0, 1, colorStops),\n      barPoints: barPoints,\n      handlesColor: [colorStops[0].color, colorStops[colorStops.length - 1].color]\n    };\n  };\n\n  ContinuousView.prototype._makeColorGradient = function (dataInterval, opts) {\n    // Considering colorHue, which is not linear, so we have to sample\n    // to calculate gradient color stops, but not only caculate head\n    // and tail.\n    var sampleNumber = 100; // Arbitrary value.\n\n    var colorStops = [];\n    var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\n    colorStops.push({\n      color: this.getControllerVisual(dataInterval[0], 'color', opts),\n      offset: 0\n    });\n\n    for (var i = 1; i < sampleNumber; i++) {\n      var currValue = dataInterval[0] + step * i;\n\n      if (currValue > dataInterval[1]) {\n        break;\n      }\n\n      colorStops.push({\n        color: this.getControllerVisual(currValue, 'color', opts),\n        offset: i / sampleNumber\n      });\n    }\n\n    colorStops.push({\n      color: this.getControllerVisual(dataInterval[1], 'color', opts),\n      offset: 1\n    });\n    return colorStops;\n  };\n\n  ContinuousView.prototype._createBarPoints = function (handleEnds, symbolSizes) {\n    var itemSize = this.visualMapModel.itemSize;\n    return [[itemSize[0] - symbolSizes[0], handleEnds[0]], [itemSize[0], handleEnds[0]], [itemSize[0], handleEnds[1]], [itemSize[0] - symbolSizes[1], handleEnds[1]]];\n  };\n\n  ContinuousView.prototype._createBarGroup = function (itemAlign) {\n    var orient = this._orient;\n    var inverse = this.visualMapModel.get('inverse');\n    return new graphic.Group(orient === 'horizontal' && !inverse ? {\n      scaleX: itemAlign === 'bottom' ? 1 : -1,\n      rotation: Math.PI / 2\n    } : orient === 'horizontal' && inverse ? {\n      scaleX: itemAlign === 'bottom' ? -1 : 1,\n      rotation: -Math.PI / 2\n    } : orient === 'vertical' && !inverse ? {\n      scaleX: itemAlign === 'left' ? 1 : -1,\n      scaleY: -1\n    } : {\n      scaleX: itemAlign === 'left' ? 1 : -1\n    });\n  };\n\n  ContinuousView.prototype._updateHandle = function (handleEnds, visualInRange) {\n    if (!this._useHandle) {\n      return;\n    }\n\n    var shapes = this._shapes;\n    var visualMapModel = this.visualMapModel;\n    var handleThumbs = shapes.handleThumbs;\n    var handleLabels = shapes.handleLabels;\n    var itemSize = visualMapModel.itemSize;\n    var dataExtent = visualMapModel.getExtent();\n    each([0, 1], function (handleIndex) {\n      var handleThumb = handleThumbs[handleIndex];\n      handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\n      handleThumb.y = handleEnds[handleIndex];\n      var val = linearMap(handleEnds[handleIndex], [0, itemSize[1]], dataExtent, true);\n      var symbolSize = this.getControllerVisual(val, 'symbolSize');\n      handleThumb.scaleX = handleThumb.scaleY = symbolSize / itemSize[0];\n      handleThumb.x = itemSize[0] - symbolSize / 2; // Update handle label position.\n\n      var textPoint = graphic.applyTransform(shapes.handleLabelPoints[handleIndex], graphic.getTransform(handleThumb, this.group));\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\n        verticalAlign: 'middle',\n        align: this._orient === 'vertical' ? this._applyTransform('left', shapes.mainGroup) : 'center'\n      });\n    }, this);\n  };\n\n  ContinuousView.prototype._showIndicator = function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\n    var visualMapModel = this.visualMapModel;\n    var dataExtent = visualMapModel.getExtent();\n    var itemSize = visualMapModel.itemSize;\n    var sizeExtent = [0, itemSize[1]];\n    var shapes = this._shapes;\n    var indicator = shapes.indicator;\n\n    if (!indicator) {\n      return;\n    }\n\n    indicator.attr('invisible', false);\n    var opts = {\n      convertOpacityToAlpha: true\n    };\n    var color = this.getControllerVisual(cursorValue, 'color', opts);\n    var symbolSize = this.getControllerVisual(cursorValue, 'symbolSize');\n    var y = linearMap(cursorValue, dataExtent, sizeExtent, true);\n    var x = itemSize[0] - symbolSize / 2;\n    var oldIndicatorPos = {\n      x: indicator.x,\n      y: indicator.y\n    }; // Update handle label position.\n\n    indicator.y = y;\n    indicator.x = x;\n    var textPoint = graphic.applyTransform(shapes.indicatorLabelPoint, graphic.getTransform(indicator, this.group));\n    var indicatorLabel = shapes.indicatorLabel;\n    indicatorLabel.attr('invisible', false);\n\n    var align = this._applyTransform('left', shapes.mainGroup);\n\n    var orient = this._orient;\n    var isHorizontal = orient === 'horizontal';\n    indicatorLabel.setStyle({\n      text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\n      verticalAlign: isHorizontal ? align : 'middle',\n      align: isHorizontal ? 'center' : align\n    });\n    var indicatorNewProps = {\n      x: x,\n      y: y,\n      style: {\n        fill: color\n      }\n    };\n    var labelNewProps = {\n      style: {\n        x: textPoint[0],\n        y: textPoint[1]\n      }\n    };\n\n    if (visualMapModel.ecModel.isAnimationEnabled() && !this._firstShowIndicator) {\n      var animationCfg = {\n        duration: 100,\n        easing: 'cubicInOut',\n        additive: true\n      };\n      indicator.x = oldIndicatorPos.x;\n      indicator.y = oldIndicatorPos.y;\n      indicator.animateTo(indicatorNewProps, animationCfg);\n      indicatorLabel.animateTo(labelNewProps, animationCfg);\n    } else {\n      indicator.attr(indicatorNewProps);\n      indicatorLabel.attr(labelNewProps);\n    }\n\n    this._firstShowIndicator = false;\n    var handleLabels = this._shapes.handleLabels;\n\n    if (handleLabels) {\n      for (var i = 0; i < handleLabels.length; i++) {\n        // Fade out handle labels.\n        // NOTE: Must use api enter/leave on emphasis/blur/select state. Or the global states manager will change it.\n        this._api.enterBlur(handleLabels[i]);\n      }\n    }\n  };\n\n  ContinuousView.prototype._enableHoverLinkToSeries = function () {\n    var self = this;\n\n    this._shapes.mainGroup.on('mousemove', function (e) {\n      self._hovering = true;\n\n      if (!self._dragging) {\n        var itemSize = self.visualMapModel.itemSize;\n\n        var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.mainGroup, true, true); // For hover link show when hover handle, which might be\n        // below or upper than sizeExtent.\n\n\n        pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]);\n\n        self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\n      }\n    }).on('mouseout', function () {\n      // When mouse is out of handle, hoverLink still need\n      // to be displayed when realtime is set as false.\n      self._hovering = false;\n      !self._dragging && self._clearHoverLinkToSeries();\n    });\n  };\n\n  ContinuousView.prototype._enableHoverLinkFromSeries = function () {\n    var zr = this.api.getZr();\n\n    if (this.visualMapModel.option.hoverLink) {\n      zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\n      zr.on('mouseout', this._hideIndicator, this);\n    } else {\n      this._clearHoverLinkFromSeries();\n    }\n  };\n\n  ContinuousView.prototype._doHoverLinkToSeries = function (cursorPos, hoverOnBar) {\n    var visualMapModel = this.visualMapModel;\n    var itemSize = visualMapModel.itemSize;\n\n    if (!visualMapModel.option.hoverLink) {\n      return;\n    }\n\n    var sizeExtent = [0, itemSize[1]];\n    var dataExtent = visualMapModel.getExtent(); // For hover link show when hover handle, which might be below or upper than sizeExtent.\n\n    cursorPos = mathMin(mathMax(sizeExtent[0], cursorPos), sizeExtent[1]);\n    var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\n    var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\n    var cursorValue = linearMap(cursorPos, sizeExtent, dataExtent, true);\n    var valueRange = [linearMap(hoverRange[0], sizeExtent, dataExtent, true), linearMap(hoverRange[1], sizeExtent, dataExtent, true)]; // Consider data range is out of visualMap range, see test/visualMap-continuous.html,\n    // where china and india has very large population.\n\n    hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\n    hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity); // Do not show indicator when mouse is over handle,\n    // otherwise labels overlap, especially when dragging.\n\n    if (hoverOnBar) {\n      if (valueRange[0] === -Infinity) {\n        this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\n      } else if (valueRange[1] === Infinity) {\n        this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\n      } else {\n        this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize);\n      }\n    } // When realtime is set as false, handles, which are in barGroup,\n    // also trigger hoverLink, which help user to realize where they\n    // focus on when dragging. (see test/heatmap-large.html)\n    // When realtime is set as true, highlight will not show when hover\n    // handle, because the label on handle, which displays a exact value\n    // but not range, might mislead users.\n\n\n    var oldBatch = this._hoverLinkDataIndices;\n    var newBatch = [];\n\n    if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\n      newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\n    }\n\n    var resultBatches = modelUtil.compressBatches(oldBatch, newBatch);\n\n    this._dispatchHighDown('downplay', helper.makeHighDownBatch(resultBatches[0], visualMapModel));\n\n    this._dispatchHighDown('highlight', helper.makeHighDownBatch(resultBatches[1], visualMapModel));\n  };\n\n  ContinuousView.prototype._hoverLinkFromSeriesMouseOver = function (e) {\n    var el = e.target;\n    var visualMapModel = this.visualMapModel;\n\n    if (!el || getECData(el).dataIndex == null) {\n      return;\n    }\n\n    var ecData = getECData(el);\n    var dataModel = this.ecModel.getSeriesByIndex(ecData.seriesIndex);\n\n    if (!visualMapModel.isTargetSeries(dataModel)) {\n      return;\n    }\n\n    var data = dataModel.getData(ecData.dataType);\n    var value = data.getStore().get(visualMapModel.getDataDimensionIndex(data), ecData.dataIndex);\n\n    if (!isNaN(value)) {\n      this._showIndicator(value, value);\n    }\n  };\n\n  ContinuousView.prototype._hideIndicator = function () {\n    var shapes = this._shapes;\n    shapes.indicator && shapes.indicator.attr('invisible', true);\n    shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\n    var handleLabels = this._shapes.handleLabels;\n\n    if (handleLabels) {\n      for (var i = 0; i < handleLabels.length; i++) {\n        // Fade out handle labels.\n        // NOTE: Must use api enter/leave on emphasis/blur/select state. Or the global states manager will change it.\n        this._api.leaveBlur(handleLabels[i]);\n      }\n    }\n  };\n\n  ContinuousView.prototype._clearHoverLinkToSeries = function () {\n    this._hideIndicator();\n\n    var indices = this._hoverLinkDataIndices;\n\n    this._dispatchHighDown('downplay', helper.makeHighDownBatch(indices, this.visualMapModel));\n\n    indices.length = 0;\n  };\n\n  ContinuousView.prototype._clearHoverLinkFromSeries = function () {\n    this._hideIndicator();\n\n    var zr = this.api.getZr();\n    zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\n    zr.off('mouseout', this._hideIndicator);\n  };\n\n  ContinuousView.prototype._applyTransform = function (vertex, element, inverse, global) {\n    var transform = graphic.getTransform(element, global ? null : this.group);\n    return zrUtil.isArray(vertex) ? graphic.applyTransform(vertex, transform, inverse) : graphic.transformDirection(vertex, transform, inverse);\n  }; // TODO: TYPE more specified payload types.\n\n\n  ContinuousView.prototype._dispatchHighDown = function (type, batch) {\n    batch && batch.length && this.api.dispatchAction({\n      type: type,\n      batch: batch\n    });\n  };\n  /**\n   * @override\n   */\n\n\n  ContinuousView.prototype.dispose = function () {\n    this._clearHoverLinkFromSeries();\n\n    this._clearHoverLinkToSeries();\n  };\n  /**\n   * @override\n   */\n\n\n  ContinuousView.prototype.remove = function () {\n    this._clearHoverLinkFromSeries();\n\n    this._clearHoverLinkToSeries();\n  };\n\n  ContinuousView.type = 'visualMap.continuous';\n  return ContinuousView;\n}(VisualMapView);\n\nfunction createPolygon(points, cursor, onDrift, onDragEnd) {\n  return new graphic.Polygon({\n    shape: {\n      points: points\n    },\n    draggable: !!onDrift,\n    cursor: cursor,\n    drift: onDrift,\n    onmousemove: function (e) {\n      // Fot mobile devicem, prevent screen slider on the button.\n      eventTool.stop(e.event);\n    },\n    ondragend: onDragEnd\n  });\n}\n\nfunction getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\n  var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\n  var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\n\n  if (hoverLinkDataSize) {\n    halfHoverLinkSize = linearMap(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\n  }\n\n  return halfHoverLinkSize;\n}\n\nfunction useHoverLinkOnHandle(visualMapModel) {\n  var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\n  return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default ContinuousView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport var visualMapActionInfo = {\n  type: 'selectDataRange',\n  event: 'dataRangeSelected',\n  // FIXME use updateView appears wrong\n  update: 'update'\n};\nexport var visualMapActionHander = function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'visualMap',\n    query: payload\n  }, function (model) {\n    model.setSelected(payload.selected);\n  });\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport * as visualSolution from '../../visual/visualSolution.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport { getVisualFromData } from '../../visual/helper.js';\nexport var visualMapEncodingHandlers = [{\n  createOnAllSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var resetDefines = [];\n    ecModel.eachComponent('visualMap', function (visualMapModel) {\n      var pipelineContext = seriesModel.pipelineContext;\n\n      if (!visualMapModel.isTargetSeries(seriesModel) || pipelineContext && pipelineContext.large) {\n        return;\n      }\n\n      resetDefines.push(visualSolution.incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, zrUtil.bind(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimensionIndex(seriesModel.getData())));\n    });\n    return resetDefines;\n  }\n}, // Only support color.\n{\n  createOnAllSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var visualMetaList = [];\n    ecModel.eachComponent('visualMap', function (visualMapModel) {\n      if (visualMapModel.isTargetSeries(seriesModel)) {\n        var visualMeta = visualMapModel.getVisualMeta(zrUtil.bind(getColorVisual, null, seriesModel, visualMapModel)) || {\n          stops: [],\n          outerColors: []\n        };\n        var dimIdx = visualMapModel.getDataDimensionIndex(data);\n\n        if (dimIdx >= 0) {\n          // visualMeta.dimension should be dimension index, but not concrete dimension.\n          visualMeta.dimension = dimIdx;\n          visualMetaList.push(visualMeta);\n        }\n      }\n    }); // console.log(JSON.stringify(visualMetaList.map(a => a.stops)));\n\n    seriesModel.getData().setVisual('visualMeta', visualMetaList);\n  }\n}]; // FIXME\n// performance and export for heatmap?\n// value can be Infinity or -Infinity\n\nfunction getColorVisual(seriesModel, visualMapModel, value, valueState) {\n  var mappings = visualMapModel.targetVisuals[valueState];\n  var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n  var resultVisual = {\n    color: getVisualFromData(seriesModel.getData(), 'color') // default color.\n\n  };\n\n  for (var i = 0, len = visualTypes.length; i < len; i++) {\n    var type = visualTypes[i];\n    var mapping = mappings[type === 'opacity' ? '__alphaForOpacity' : type];\n    mapping && mapping.applyVisual(value, getVisual, setVisual);\n  }\n\n  return resultVisual.color;\n\n  function getVisual(key) {\n    return resultVisual[key];\n  }\n\n  function setVisual(key, value) {\n    resultVisual[key] = value;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport * as zrUtil from 'zrender/lib/core/util.js';\nvar each = zrUtil.each;\nexport default function visualMapPreprocessor(option) {\n  var visualMap = option && option.visualMap;\n\n  if (!zrUtil.isArray(visualMap)) {\n    visualMap = visualMap ? [visualMap] : [];\n  }\n\n  each(visualMap, function (opt) {\n    if (!opt) {\n      return;\n    } // rename splitList to pieces\n\n\n    if (has(opt, 'splitList') && !has(opt, 'pieces')) {\n      opt.pieces = opt.splitList;\n      delete opt.splitList;\n    }\n\n    var pieces = opt.pieces;\n\n    if (pieces && zrUtil.isArray(pieces)) {\n      each(pieces, function (piece) {\n        if (zrUtil.isObject(piece)) {\n          if (has(piece, 'start') && !has(piece, 'min')) {\n            piece.min = piece.start;\n          }\n\n          if (has(piece, 'end') && !has(piece, 'max')) {\n            piece.max = piece.end;\n          }\n        }\n      });\n    }\n  });\n}\n\nfunction has(obj, name) {\n  return obj && obj.hasOwnProperty && obj.hasOwnProperty(name);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { visualMapActionInfo, visualMapActionHander } from './visualMapAction.js';\nimport { visualMapEncodingHandlers } from './visualEncoding.js';\nimport { each } from 'zrender/lib/core/util.js';\nimport preprocessor from './preprocessor.js';\nvar installed = false;\nexport default function installCommon(registers) {\n  if (installed) {\n    return;\n  }\n\n  installed = true;\n  registers.registerSubTypeDefaulter('visualMap', function (option) {\n    // Compatible with ec2, when splitNumber === 0, continuous visualMap will be used.\n    return !option.categories && (!(option.pieces ? option.pieces.length > 0 : option.splitNumber > 0) || option.calculable) ? 'continuous' : 'piecewise';\n  });\n  registers.registerAction(visualMapActionInfo, visualMapActionHander);\n  each(visualMapEncodingHandlers, function (handler) {\n    registers.registerVisual(registers.PRIORITY.VISUAL.COMPONENT, handler);\n  });\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport ContinuousModel from './ContinuousModel.js';\nimport ContinuousView from './ContinuousView.js';\nimport installCommon from './installCommon.js';\nexport function install(registers) {\n  registers.registerComponentModel(ContinuousModel);\n  registers.registerComponentView(ContinuousView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapModel from './VisualMapModel.js';\nimport VisualMapping from '../../visual/VisualMapping.js';\nimport visualDefault from '../../visual/visualDefault.js';\nimport { reformIntervals } from '../../util/number.js';\nimport { inheritDefaultOption } from '../../util/component.js';\n\nvar PiecewiseModel =\n/** @class */\nfunction (_super) {\n  __extends(PiecewiseModel, _super);\n\n  function PiecewiseModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PiecewiseModel.type;\n    /**\n     * The order is always [low, ..., high].\n     * [{text: string, interval: Array.<number>}, ...]\n     */\n\n    _this._pieceList = [];\n    return _this;\n  }\n\n  PiecewiseModel.prototype.optionUpdated = function (newOption, isInit) {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    this.resetExtent();\n\n    var mode = this._mode = this._determineMode();\n\n    this._pieceList = [];\n\n    resetMethods[this._mode].call(this, this._pieceList);\n\n    this._resetSelected(newOption, isInit);\n\n    var categories = this.option.categories;\n    this.resetVisual(function (mappingOption, state) {\n      if (mode === 'categories') {\n        mappingOption.mappingMethod = 'category';\n        mappingOption.categories = zrUtil.clone(categories);\n      } else {\n        mappingOption.dataExtent = this.getExtent();\n        mappingOption.mappingMethod = 'piecewise';\n        mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\n          piece = zrUtil.clone(piece);\n\n          if (state !== 'inRange') {\n            // FIXME\n            // outOfRange do not support special visual in pieces.\n            piece.visual = null;\n          }\n\n          return piece;\n        });\n      }\n    });\n  };\n  /**\n   * @protected\n   * @override\n   */\n\n\n  PiecewiseModel.prototype.completeVisualOption = function () {\n    // Consider this case:\n    // visualMap: {\n    //      pieces: [{symbol: 'circle', lt: 0}, {symbol: 'rect', gte: 0}]\n    // }\n    // where no inRange/outOfRange set but only pieces. So we should make\n    // default inRange/outOfRange for this case, otherwise visuals that only\n    // appear in `pieces` will not be taken into account in visual encoding.\n    var option = this.option;\n    var visualTypesInPieces = {};\n    var visualTypes = VisualMapping.listVisualTypes();\n    var isCategory = this.isCategory();\n    zrUtil.each(option.pieces, function (piece) {\n      zrUtil.each(visualTypes, function (visualType) {\n        if (piece.hasOwnProperty(visualType)) {\n          visualTypesInPieces[visualType] = 1;\n        }\n      });\n    });\n    zrUtil.each(visualTypesInPieces, function (v, visualType) {\n      var exists = false;\n      zrUtil.each(this.stateList, function (state) {\n        exists = exists || has(option, state, visualType) || has(option.target, state, visualType);\n      }, this);\n      !exists && zrUtil.each(this.stateList, function (state) {\n        (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\n      });\n    }, this);\n\n    function has(obj, state, visualType) {\n      return obj && obj[state] && obj[state].hasOwnProperty(visualType);\n    }\n\n    _super.prototype.completeVisualOption.apply(this, arguments);\n  };\n\n  PiecewiseModel.prototype._resetSelected = function (newOption, isInit) {\n    var thisOption = this.option;\n    var pieceList = this._pieceList; // Selected do not merge but all override.\n\n    var selected = (isInit ? thisOption : newOption).selected || {};\n    thisOption.selected = selected; // Consider 'not specified' means true.\n\n    zrUtil.each(pieceList, function (piece, index) {\n      var key = this.getSelectedMapKey(piece);\n\n      if (!selected.hasOwnProperty(key)) {\n        selected[key] = true;\n      }\n    }, this);\n\n    if (thisOption.selectedMode === 'single') {\n      // Ensure there is only one selected.\n      var hasSel_1 = false;\n      zrUtil.each(pieceList, function (piece, index) {\n        var key = this.getSelectedMapKey(piece);\n\n        if (selected[key]) {\n          hasSel_1 ? selected[key] = false : hasSel_1 = true;\n        }\n      }, this);\n    } // thisOption.selectedMode === 'multiple', default: all selected.\n\n  };\n  /**\n   * @public\n   */\n\n\n  PiecewiseModel.prototype.getItemSymbol = function () {\n    return this.get('itemSymbol');\n  };\n  /**\n   * @public\n   */\n\n\n  PiecewiseModel.prototype.getSelectedMapKey = function (piece) {\n    return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n  };\n  /**\n   * @public\n   */\n\n\n  PiecewiseModel.prototype.getPieceList = function () {\n    return this._pieceList;\n  };\n  /**\n   * @return {string}\n   */\n\n\n  PiecewiseModel.prototype._determineMode = function () {\n    var option = this.option;\n    return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n  };\n  /**\n   * @override\n   */\n\n\n  PiecewiseModel.prototype.setSelected = function (selected) {\n    this.option.selected = zrUtil.clone(selected);\n  };\n  /**\n   * @override\n   */\n\n\n  PiecewiseModel.prototype.getValueState = function (value) {\n    var index = VisualMapping.findPieceIndex(value, this._pieceList);\n    return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\n  };\n  /**\n   * @public\n   * @param pieceIndex piece index in visualMapModel.getPieceList()\n   */\n\n\n  PiecewiseModel.prototype.findTargetDataIndices = function (pieceIndex) {\n    var result = [];\n    var pieceList = this._pieceList;\n    this.eachTargetSeries(function (seriesModel) {\n      var dataIndices = [];\n      var data = seriesModel.getData();\n      data.each(this.getDataDimensionIndex(data), function (value, dataIndex) {\n        // Should always base on model pieceList, because it is order sensitive.\n        var pIdx = VisualMapping.findPieceIndex(value, pieceList);\n        pIdx === pieceIndex && dataIndices.push(dataIndex);\n      }, this);\n      result.push({\n        seriesId: seriesModel.id,\n        dataIndex: dataIndices\n      });\n    }, this);\n    return result;\n  };\n  /**\n   * @private\n   * @param piece piece.value or piece.interval is required.\n   * @return  Can be Infinity or -Infinity\n   */\n\n\n  PiecewiseModel.prototype.getRepresentValue = function (piece) {\n    var representValue;\n\n    if (this.isCategory()) {\n      representValue = piece.value;\n    } else {\n      if (piece.value != null) {\n        representValue = piece.value;\n      } else {\n        var pieceInterval = piece.interval || [];\n        representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\n      }\n    }\n\n    return representValue;\n  };\n\n  PiecewiseModel.prototype.getVisualMeta = function (getColorVisual) {\n    // Do not support category. (category axis is ordinal, numerical)\n    if (this.isCategory()) {\n      return;\n    }\n\n    var stops = [];\n    var outerColors = ['', ''];\n    var visualMapModel = this;\n\n    function setStop(interval, valueState) {\n      var representValue = visualMapModel.getRepresentValue({\n        interval: interval\n      }); // Not category\n\n      if (!valueState) {\n        valueState = visualMapModel.getValueState(representValue);\n      }\n\n      var color = getColorVisual(representValue, valueState);\n\n      if (interval[0] === -Infinity) {\n        outerColors[0] = color;\n      } else if (interval[1] === Infinity) {\n        outerColors[1] = color;\n      } else {\n        stops.push({\n          value: interval[0],\n          color: color\n        }, {\n          value: interval[1],\n          color: color\n        });\n      }\n    } // Suplement\n\n\n    var pieceList = this._pieceList.slice();\n\n    if (!pieceList.length) {\n      pieceList.push({\n        interval: [-Infinity, Infinity]\n      });\n    } else {\n      var edge = pieceList[0].interval[0];\n      edge !== -Infinity && pieceList.unshift({\n        interval: [-Infinity, edge]\n      });\n      edge = pieceList[pieceList.length - 1].interval[1];\n      edge !== Infinity && pieceList.push({\n        interval: [edge, Infinity]\n      });\n    }\n\n    var curr = -Infinity;\n    zrUtil.each(pieceList, function (piece) {\n      var interval = piece.interval;\n\n      if (interval) {\n        // Fulfill gap.\n        interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\n        setStop(interval.slice());\n        curr = interval[1];\n      }\n    }, this);\n    return {\n      stops: stops,\n      outerColors: outerColors\n    };\n  };\n\n  PiecewiseModel.type = 'visualMap.piecewise';\n  PiecewiseModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n    selected: null,\n    minOpen: false,\n    maxOpen: false,\n    align: 'auto',\n    itemWidth: 20,\n    itemHeight: 14,\n    itemSymbol: 'roundRect',\n    pieces: null,\n    categories: null,\n    splitNumber: 5,\n    selectedMode: 'multiple',\n    itemGap: 10,\n    hoverLink: true // Enable hover highlight.\n\n  });\n  return PiecewiseModel;\n}(VisualMapModel);\n\n;\n/**\n * Key is this._mode\n * @type {Object}\n * @this {module:echarts/component/viusalMap/PiecewiseMode}\n */\n\nvar resetMethods = {\n  splitNumber: function (outPieceList) {\n    var thisOption = this.option;\n    var precision = Math.min(thisOption.precision, 20);\n    var dataExtent = this.getExtent();\n    var splitNumber = thisOption.splitNumber;\n    splitNumber = Math.max(parseInt(splitNumber, 10), 1);\n    thisOption.splitNumber = splitNumber;\n    var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber; // Precision auto-adaption\n\n    while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\n      precision++;\n    }\n\n    thisOption.precision = precision;\n    splitStep = +splitStep.toFixed(precision);\n\n    if (thisOption.minOpen) {\n      outPieceList.push({\n        interval: [-Infinity, dataExtent[0]],\n        close: [0, 0]\n      });\n    }\n\n    for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\n      var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n      outPieceList.push({\n        interval: [curr, max],\n        close: [1, 1]\n      });\n    }\n\n    if (thisOption.maxOpen) {\n      outPieceList.push({\n        interval: [dataExtent[1], Infinity],\n        close: [0, 0]\n      });\n    }\n\n    reformIntervals(outPieceList);\n    zrUtil.each(outPieceList, function (piece, index) {\n      piece.index = index;\n      piece.text = this.formatValueText(piece.interval);\n    }, this);\n  },\n  categories: function (outPieceList) {\n    var thisOption = this.option;\n    zrUtil.each(thisOption.categories, function (cate) {\n      // FIXME category模式也使用pieceList，但在visualMapping中不是使用pieceList。\n      // 是否改一致。\n      outPieceList.push({\n        text: this.formatValueText(cate, true),\n        value: cate\n      });\n    }, this); // See \"Order Rule\".\n\n    normalizeReverse(thisOption, outPieceList);\n  },\n  pieces: function (outPieceList) {\n    var thisOption = this.option;\n    zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\n      if (!zrUtil.isObject(pieceListItem)) {\n        pieceListItem = {\n          value: pieceListItem\n        };\n      }\n\n      var item = {\n        text: '',\n        index: index\n      };\n\n      if (pieceListItem.label != null) {\n        item.text = pieceListItem.label;\n      }\n\n      if (pieceListItem.hasOwnProperty('value')) {\n        var value = item.value = pieceListItem.value;\n        item.interval = [value, value];\n        item.close = [1, 1];\n      } else {\n        // `min` `max` is legacy option.\n        // `lt` `gt` `lte` `gte` is recommanded.\n        var interval = item.interval = [];\n        var close_1 = item.close = [0, 0];\n        var closeList = [1, 0, 1];\n        var infinityList = [-Infinity, Infinity];\n        var useMinMax = [];\n\n        for (var lg = 0; lg < 2; lg++) {\n          var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\n\n          for (var i = 0; i < 3 && interval[lg] == null; i++) {\n            interval[lg] = pieceListItem[names[i]];\n            close_1[lg] = closeList[i];\n            useMinMax[lg] = i === 2;\n          }\n\n          interval[lg] == null && (interval[lg] = infinityList[lg]);\n        }\n\n        useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0);\n        useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0);\n\n        if (process.env.NODE_ENV !== 'production') {\n          if (interval[0] > interval[1]) {\n            console.warn('Piece ' + index + 'is illegal: ' + interval + ' lower bound should not greater then uppper bound.');\n          }\n        }\n\n        if (interval[0] === interval[1] && close_1[0] && close_1[1]) {\n          // Consider: [{min: 5, max: 5, visual: {...}}, {min: 0, max: 5}],\n          // we use value to lift the priority when min === max\n          item.value = interval[0];\n        }\n      }\n\n      item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n      outPieceList.push(item);\n    }, this); // See \"Order Rule\".\n\n    normalizeReverse(thisOption, outPieceList); // Only pieces\n\n    reformIntervals(outPieceList);\n    zrUtil.each(outPieceList, function (piece) {\n      var close = piece.close;\n      var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\n      piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\n    }, this);\n  }\n};\n\nfunction normalizeReverse(thisOption, pieceList) {\n  var inverse = thisOption.inverse;\n\n  if (thisOption.orient === 'vertical' ? !inverse : inverse) {\n    pieceList.reverse();\n  }\n}\n\nexport default PiecewiseModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport VisualMapView from './VisualMapView.js';\nimport * as graphic from '../../util/graphic.js';\nimport { createSymbol } from '../../util/symbol.js';\nimport * as layout from '../../util/layout.js';\nimport * as helper from './helper.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\n\nvar PiecewiseVisualMapView =\n/** @class */\nfunction (_super) {\n  __extends(PiecewiseVisualMapView, _super);\n\n  function PiecewiseVisualMapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PiecewiseVisualMapView.type;\n    return _this;\n  }\n\n  PiecewiseVisualMapView.prototype.doRender = function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n    var visualMapModel = this.visualMapModel;\n    var textGap = visualMapModel.get('textGap');\n    var textStyleModel = visualMapModel.textStyleModel;\n    var textFont = textStyleModel.getFont();\n    var textFill = textStyleModel.getTextColor();\n\n    var itemAlign = this._getItemAlign();\n\n    var itemSize = visualMapModel.itemSize;\n\n    var viewData = this._getViewData();\n\n    var endsText = viewData.endsText;\n    var showLabel = zrUtil.retrieve(visualMapModel.get('showLabel', true), !endsText);\n    endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\n    zrUtil.each(viewData.viewPieceList, function (item) {\n      var piece = item.piece;\n      var itemGroup = new graphic.Group();\n      itemGroup.onclick = zrUtil.bind(this._onItemClick, this, piece);\n\n      this._enableHoverLink(itemGroup, item.indexInModelPieceList); // TODO Category\n\n\n      var representValue = visualMapModel.getRepresentValue(piece);\n\n      this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\n\n      if (showLabel) {\n        var visualState = this.visualMapModel.getValueState(representValue);\n        itemGroup.add(new graphic.Text({\n          style: {\n            x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\n            y: itemSize[1] / 2,\n            text: piece.text,\n            verticalAlign: 'middle',\n            align: itemAlign,\n            font: textFont,\n            fill: textFill,\n            opacity: visualState === 'outOfRange' ? 0.5 : 1\n          }\n        }));\n      }\n\n      thisGroup.add(itemGroup);\n    }, this);\n    endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\n    layout.box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\n    this.renderBackground(thisGroup);\n    this.positionGroup(thisGroup);\n  };\n\n  PiecewiseVisualMapView.prototype._enableHoverLink = function (itemGroup, pieceIndex) {\n    var _this = this;\n\n    itemGroup.on('mouseover', function () {\n      return onHoverLink('highlight');\n    }).on('mouseout', function () {\n      return onHoverLink('downplay');\n    });\n\n    var onHoverLink = function (method) {\n      var visualMapModel = _this.visualMapModel; // TODO: TYPE More detailed action types\n\n      visualMapModel.option.hoverLink && _this.api.dispatchAction({\n        type: method,\n        batch: helper.makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel)\n      });\n    };\n  };\n\n  PiecewiseVisualMapView.prototype._getItemAlign = function () {\n    var visualMapModel = this.visualMapModel;\n    var modelOption = visualMapModel.option;\n\n    if (modelOption.orient === 'vertical') {\n      return helper.getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\n    } else {\n      // horizontal, most case left unless specifying right.\n      var align = modelOption.align;\n\n      if (!align || align === 'auto') {\n        align = 'left';\n      }\n\n      return align;\n    }\n  };\n\n  PiecewiseVisualMapView.prototype._renderEndsText = function (group, text, itemSize, showLabel, itemAlign) {\n    if (!text) {\n      return;\n    }\n\n    var itemGroup = new graphic.Group();\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    itemGroup.add(new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        x: showLabel ? itemAlign === 'right' ? itemSize[0] : 0 : itemSize[0] / 2,\n        y: itemSize[1] / 2,\n        verticalAlign: 'middle',\n        align: showLabel ? itemAlign : 'center',\n        text: text\n      })\n    }));\n    group.add(itemGroup);\n  };\n  /**\n   * @private\n   * @return {Object} {peiceList, endsText} The order is the same as screen pixel order.\n   */\n\n\n  PiecewiseVisualMapView.prototype._getViewData = function () {\n    var visualMapModel = this.visualMapModel;\n    var viewPieceList = zrUtil.map(visualMapModel.getPieceList(), function (piece, index) {\n      return {\n        piece: piece,\n        indexInModelPieceList: index\n      };\n    });\n    var endsText = visualMapModel.get('text'); // Consider orient and inverse.\n\n    var orient = visualMapModel.get('orient');\n    var inverse = visualMapModel.get('inverse'); // Order of model pieceList is always [low, ..., high]\n\n    if (orient === 'horizontal' ? inverse : !inverse) {\n      viewPieceList.reverse();\n    } // Origin order of endsText is [high, low]\n    else if (endsText) {\n        endsText = endsText.slice().reverse();\n      }\n\n    return {\n      viewPieceList: viewPieceList,\n      endsText: endsText\n    };\n  };\n\n  PiecewiseVisualMapView.prototype._createItemSymbol = function (group, representValue, shapeParam) {\n    group.add(createSymbol( // symbol will be string\n    this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], // color will be string\n    this.getControllerVisual(representValue, 'color')));\n  };\n\n  PiecewiseVisualMapView.prototype._onItemClick = function (piece) {\n    var visualMapModel = this.visualMapModel;\n    var option = visualMapModel.option;\n    var selectedMode = option.selectedMode;\n\n    if (!selectedMode) {\n      return;\n    }\n\n    var selected = zrUtil.clone(option.selected);\n    var newKey = visualMapModel.getSelectedMapKey(piece);\n\n    if (selectedMode === 'single' || selectedMode === true) {\n      selected[newKey] = true;\n      zrUtil.each(selected, function (o, key) {\n        selected[key] = key === newKey;\n      });\n    } else {\n      selected[newKey] = !selected[newKey];\n    }\n\n    this.api.dispatchAction({\n      type: 'selectDataRange',\n      from: this.uid,\n      visualMapId: this.visualMapModel.id,\n      selected: selected\n    });\n  };\n\n  PiecewiseVisualMapView.type = 'visualMap.piecewise';\n  return PiecewiseVisualMapView;\n}(VisualMapView);\n\nexport default PiecewiseVisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport PiecewiseModel from './PiecewiseModel.js';\nimport PiecewiseView from './PiecewiseView.js';\nimport installCommon from './installCommon.js';\nexport function install(registers) {\n  registers.registerComponentModel(PiecewiseModel);\n  registers.registerComponentView(PiecewiseView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { use } from '../../extension.js';\nimport { install as installVisualMapContinuous } from './installVisualMapContinuous.js';\nimport { install as installVisualMapPiecewise } from './installVisualMapPiecewise.js';\nexport function install(registers) {\n  use(installVisualMapContinuous);\n  use(installVisualMapPiecewise); // Do not install './dataZoomSelect',\n  // since it only work for toolbox dataZoom.\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { makeInner } from '../util/model.js';\nimport { getDecalFromPalette } from '../model/mixin/palette.js';\nvar DEFAULT_OPTION = {\n  label: {\n    enabled: true\n  },\n  decal: {\n    show: false\n  }\n};\nvar inner = makeInner();\nvar decalPaletteScope = {};\nexport default function ariaVisual(ecModel, api) {\n  var ariaModel = ecModel.getModel('aria'); // See \"area enabled\" detection code in `GlobalModel.ts`.\n\n  if (!ariaModel.get('enabled')) {\n    return;\n  }\n\n  var defaultOption = zrUtil.clone(DEFAULT_OPTION);\n  zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);\n  zrUtil.merge(ariaModel.option, defaultOption, false);\n  setDecal();\n  setLabel();\n\n  function setDecal() {\n    var decalModel = ariaModel.getModel('decal');\n    var useDecal = decalModel.get('show');\n\n    if (useDecal) {\n      // Each type of series use one scope.\n      // Pie and funnel are using diferrent scopes\n      var paletteScopeGroupByType_1 = zrUtil.createHashMap();\n      ecModel.eachSeries(function (seriesModel) {\n        if (seriesModel.isColorBySeries()) {\n          return;\n        }\n\n        var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);\n\n        if (!decalScope) {\n          decalScope = {};\n          paletteScopeGroupByType_1.set(seriesModel.type, decalScope);\n        }\n\n        inner(seriesModel).scope = decalScope;\n      });\n      ecModel.eachRawSeries(function (seriesModel) {\n        if (ecModel.isSeriesFiltered(seriesModel)) {\n          return;\n        }\n\n        if (zrUtil.isFunction(seriesModel.enableAriaDecal)) {\n          // Let series define how to use decal palette on data\n          seriesModel.enableAriaDecal();\n          return;\n        }\n\n        var data = seriesModel.getData();\n\n        if (!seriesModel.isColorBySeries()) {\n          var dataAll_1 = seriesModel.getRawData();\n          var idxMap_1 = {};\n          var decalScope_1 = inner(seriesModel).scope;\n          data.each(function (idx) {\n            var rawIdx = data.getRawIndex(idx);\n            idxMap_1[rawIdx] = idx;\n          });\n          var dataCount_1 = dataAll_1.count();\n          dataAll_1.each(function (rawIdx) {\n            var idx = idxMap_1[rawIdx];\n            var name = dataAll_1.getName(rawIdx) || rawIdx + '';\n            var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\n            var specifiedDecal = data.getItemVisual(idx, 'decal');\n            data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\n          });\n        } else {\n          var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\n          var specifiedDecal = data.getVisual('decal');\n          data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\n        }\n\n        function mergeDecal(specifiedDecal, paletteDecal) {\n          // Merge decal from palette to decal from itemStyle.\n          // User do not need to specify all of the decal props.\n          var resultDecal = specifiedDecal ? zrUtil.extend(zrUtil.extend({}, paletteDecal), specifiedDecal) : paletteDecal;\n          resultDecal.dirty = true;\n          return resultDecal;\n        }\n      });\n    }\n  }\n\n  function setLabel() {\n    var labelLocale = ecModel.getLocaleModel().get('aria');\n    var labelModel = ariaModel.getModel('label');\n    labelModel.option = zrUtil.defaults(labelModel.option, labelLocale);\n\n    if (!labelModel.get('enabled')) {\n      return;\n    }\n\n    var dom = api.getZr().dom;\n\n    if (labelModel.get('description')) {\n      dom.setAttribute('aria-label', labelModel.get('description'));\n      return;\n    }\n\n    var seriesCnt = ecModel.getSeriesCount();\n    var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\n    var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\n    var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n    var ariaLabel;\n\n    if (seriesCnt < 1) {\n      // No series, no aria label\n      return;\n    } else {\n      var title = getTitle();\n\n      if (title) {\n        var withTitle = labelModel.get(['general', 'withTitle']);\n        ariaLabel = replace(withTitle, {\n          title: title\n        });\n      } else {\n        ariaLabel = labelModel.get(['general', 'withoutTitle']);\n      }\n\n      var seriesLabels_1 = [];\n      var prefix = seriesCnt > 1 ? labelModel.get(['series', 'multiple', 'prefix']) : labelModel.get(['series', 'single', 'prefix']);\n      ariaLabel += replace(prefix, {\n        seriesCount: seriesCnt\n      });\n      ecModel.eachSeries(function (seriesModel, idx) {\n        if (idx < displaySeriesCnt) {\n          var seriesLabel = void 0;\n          var seriesName = seriesModel.get('name');\n          var withName = seriesName ? 'withName' : 'withoutName';\n          seriesLabel = seriesCnt > 1 ? labelModel.get(['series', 'multiple', withName]) : labelModel.get(['series', 'single', withName]);\n          seriesLabel = replace(seriesLabel, {\n            seriesId: seriesModel.seriesIndex,\n            seriesName: seriesModel.get('name'),\n            seriesType: getSeriesTypeName(seriesModel.subType)\n          });\n          var data = seriesModel.getData();\n\n          if (data.count() > maxDataCnt) {\n            // Show part of data\n            var partialLabel = labelModel.get(['data', 'partialData']);\n            seriesLabel += replace(partialLabel, {\n              displayCnt: maxDataCnt\n            });\n          } else {\n            seriesLabel += labelModel.get(['data', 'allData']);\n          }\n\n          var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\n          var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\n          var dataLabels = [];\n\n          for (var i = 0; i < data.count(); i++) {\n            if (i < maxDataCnt) {\n              var name_1 = data.getName(i);\n              var value = data.getValues(i);\n              var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\n              dataLabels.push(replace(dataLabel, {\n                name: name_1,\n                value: value.join(middleSeparator_1)\n              }));\n            }\n          }\n\n          seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\n          seriesLabels_1.push(seriesLabel);\n        }\n      });\n      var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\n      var middleSeparator = separatorModel.get('middle');\n      var endSeparator = separatorModel.get('end');\n      ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\n      dom.setAttribute('aria-label', ariaLabel);\n    }\n  }\n\n  function replace(str, keyValues) {\n    if (!zrUtil.isString(str)) {\n      return str;\n    }\n\n    var result = str;\n    zrUtil.each(keyValues, function (value, key) {\n      result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n    });\n    return result;\n  }\n\n  function getTitle() {\n    var title = ecModel.get('title');\n\n    if (title && title.length) {\n      title = title[0];\n    }\n\n    return title && title.text;\n  }\n\n  function getSeriesTypeName(type) {\n    return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport default function ariaPreprocessor(option) {\n  if (!option || !option.aria) {\n    return;\n  }\n\n  var aria = option.aria; // aria.show is deprecated and should use aria.enabled instead\n\n  if (aria.show != null) {\n    aria.enabled = aria.show;\n  }\n\n  aria.label = aria.label || {}; // move description, general, series, data to be under aria.label\n\n  zrUtil.each(['description', 'general', 'series', 'data'], function (name) {\n    if (aria[name] != null) {\n      aria.label[name] = aria[name];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport ariaVisual from '../../visual/aria.js';\nimport ariaPreprocessor from './preprocessor.js';\nexport function install(registers) {\n  registers.registerPreprocessor(ariaPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.ARIA, ariaVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { keys, isArray, map, isObject, isString, isRegExp, isArrayLike, hasOwn, isNumber } from 'zrender/lib/core/util.js';\nimport { throwError, makePrintable } from './log.js';\nimport { getRawValueParser, createFilterComparator } from '../data/helper/dataValueHelper.js';\n;\nvar RELATIONAL_EXPRESSION_OP_ALIAS_MAP = {\n  value: 'eq',\n  // PENDING: not good for literal semantic?\n  '<': 'lt',\n  '<=': 'lte',\n  '>': 'gt',\n  '>=': 'gte',\n  '=': 'eq',\n  '!=': 'ne',\n  '<>': 'ne' // Might mileading for sake of the different between '==' and '===',\n  // So dont support them.\n  // '==': 'eq',\n  // '===': 'seq',\n  // '!==': 'sne'\n  // PENDING: Whether support some common alias \"ge\", \"le\", \"neq\"?\n  // ge: 'gte',\n  // le: 'lte',\n  // neq: 'ne',\n\n}; // type RelationalExpressionOpEvaluate = (tarVal: unknown, condVal: unknown) => boolean;\n\nvar RegExpEvaluator =\n/** @class */\nfunction () {\n  function RegExpEvaluator(rVal) {\n    // Support condVal: RegExp | string\n    var condValue = this._condVal = isString(rVal) ? new RegExp(rVal) : isRegExp(rVal) ? rVal : null;\n\n    if (condValue == null) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Illegal regexp', rVal, 'in');\n      }\n\n      throwError(errMsg);\n    }\n  }\n\n  RegExpEvaluator.prototype.evaluate = function (lVal) {\n    var type = typeof lVal;\n    return isString(type) ? this._condVal.test(lVal) : isNumber(type) ? this._condVal.test(lVal + '') : false;\n  };\n\n  return RegExpEvaluator;\n}();\n\nvar ConstConditionInternal =\n/** @class */\nfunction () {\n  function ConstConditionInternal() {}\n\n  ConstConditionInternal.prototype.evaluate = function () {\n    return this.value;\n  };\n\n  return ConstConditionInternal;\n}();\n\nvar AndConditionInternal =\n/** @class */\nfunction () {\n  function AndConditionInternal() {}\n\n  AndConditionInternal.prototype.evaluate = function () {\n    var children = this.children;\n\n    for (var i = 0; i < children.length; i++) {\n      if (!children[i].evaluate()) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  return AndConditionInternal;\n}();\n\nvar OrConditionInternal =\n/** @class */\nfunction () {\n  function OrConditionInternal() {}\n\n  OrConditionInternal.prototype.evaluate = function () {\n    var children = this.children;\n\n    for (var i = 0; i < children.length; i++) {\n      if (children[i].evaluate()) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  return OrConditionInternal;\n}();\n\nvar NotConditionInternal =\n/** @class */\nfunction () {\n  function NotConditionInternal() {}\n\n  NotConditionInternal.prototype.evaluate = function () {\n    return !this.child.evaluate();\n  };\n\n  return NotConditionInternal;\n}();\n\nvar RelationalConditionInternal =\n/** @class */\nfunction () {\n  function RelationalConditionInternal() {}\n\n  RelationalConditionInternal.prototype.evaluate = function () {\n    var needParse = !!this.valueParser; // Call getValue with no `this`.\n\n    var getValue = this.getValue;\n    var tarValRaw = getValue(this.valueGetterParam);\n    var tarValParsed = needParse ? this.valueParser(tarValRaw) : null; // Relational cond follow \"and\" logic internally.\n\n    for (var i = 0; i < this.subCondList.length; i++) {\n      if (!this.subCondList[i].evaluate(needParse ? tarValParsed : tarValRaw)) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  return RelationalConditionInternal;\n}();\n\nfunction parseOption(exprOption, getters) {\n  if (exprOption === true || exprOption === false) {\n    var cond = new ConstConditionInternal();\n    cond.value = exprOption;\n    return cond;\n  }\n\n  var errMsg = '';\n\n  if (!isObjectNotArray(exprOption)) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = makePrintable('Illegal config. Expect a plain object but actually', exprOption);\n    }\n\n    throwError(errMsg);\n  }\n\n  if (exprOption.and) {\n    return parseAndOrOption('and', exprOption, getters);\n  } else if (exprOption.or) {\n    return parseAndOrOption('or', exprOption, getters);\n  } else if (exprOption.not) {\n    return parseNotOption(exprOption, getters);\n  }\n\n  return parseRelationalOption(exprOption, getters);\n}\n\nfunction parseAndOrOption(op, exprOption, getters) {\n  var subOptionArr = exprOption[op];\n  var errMsg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    errMsg = makePrintable('\"and\"/\"or\" condition should only be `' + op + ': [...]` and must not be empty array.', 'Illegal condition:', exprOption);\n  }\n\n  if (!isArray(subOptionArr)) {\n    throwError(errMsg);\n  }\n\n  if (!subOptionArr.length) {\n    throwError(errMsg);\n  }\n\n  var cond = op === 'and' ? new AndConditionInternal() : new OrConditionInternal();\n  cond.children = map(subOptionArr, function (subOption) {\n    return parseOption(subOption, getters);\n  });\n\n  if (!cond.children.length) {\n    throwError(errMsg);\n  }\n\n  return cond;\n}\n\nfunction parseNotOption(exprOption, getters) {\n  var subOption = exprOption.not;\n  var errMsg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    errMsg = makePrintable('\"not\" condition should only be `not: {}`.', 'Illegal condition:', exprOption);\n  }\n\n  if (!isObjectNotArray(subOption)) {\n    throwError(errMsg);\n  }\n\n  var cond = new NotConditionInternal();\n  cond.child = parseOption(subOption, getters);\n\n  if (!cond.child) {\n    throwError(errMsg);\n  }\n\n  return cond;\n}\n\nfunction parseRelationalOption(exprOption, getters) {\n  var errMsg = '';\n  var valueGetterParam = getters.prepareGetValue(exprOption);\n  var subCondList = [];\n  var exprKeys = keys(exprOption);\n  var parserName = exprOption.parser;\n  var valueParser = parserName ? getRawValueParser(parserName) : null;\n\n  for (var i = 0; i < exprKeys.length; i++) {\n    var keyRaw = exprKeys[i];\n\n    if (keyRaw === 'parser' || getters.valueGetterAttrMap.get(keyRaw)) {\n      continue;\n    }\n\n    var op = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw) ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw] : keyRaw;\n    var condValueRaw = exprOption[keyRaw];\n    var condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw;\n    var evaluator = createFilterComparator(op, condValueParsed) || op === 'reg' && new RegExpEvaluator(condValueParsed);\n\n    if (!evaluator) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Illegal relational operation: \"' + keyRaw + '\" in condition:', exprOption);\n      }\n\n      throwError(errMsg);\n    }\n\n    subCondList.push(evaluator);\n  }\n\n  if (!subCondList.length) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = makePrintable('Relational condition must have at least one operator.', 'Illegal condition:', exprOption);\n    } // No relational operator always disabled in case of dangers result.\n\n\n    throwError(errMsg);\n  }\n\n  var cond = new RelationalConditionInternal();\n  cond.valueGetterParam = valueGetterParam;\n  cond.valueParser = valueParser;\n  cond.getValue = getters.getValue;\n  cond.subCondList = subCondList;\n  return cond;\n}\n\nfunction isObjectNotArray(val) {\n  return isObject(val) && !isArrayLike(val);\n}\n\nvar ConditionalExpressionParsed =\n/** @class */\nfunction () {\n  function ConditionalExpressionParsed(exprOption, getters) {\n    this._cond = parseOption(exprOption, getters);\n  }\n\n  ConditionalExpressionParsed.prototype.evaluate = function () {\n    return this._cond.evaluate();\n  };\n\n  return ConditionalExpressionParsed;\n}();\n\n;\nexport function parseConditionalExpression(exprOption, getters) {\n  return new ConditionalExpressionParsed(exprOption, getters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { parseConditionalExpression } from '../../util/conditionalExpression.js';\nimport { hasOwn, createHashMap } from 'zrender/lib/core/util.js';\nimport { makePrintable, throwError } from '../../util/log.js';\nexport var filterTransform = {\n  type: 'echarts:filter',\n  // PEDING: enhance to filter by index rather than create new data\n  transform: function (params) {\n    // [Caveat] Fail-Fast:\n    // Do not return the whole dataset unless user config indicate it explicitly.\n    // For example, if no condition specified by mistake, return an empty result\n    // is better than return the entire raw soruce for user to find the mistake.\n    var upstream = params.upstream;\n    var rawItem;\n    var condition = parseConditionalExpression(params.config, {\n      valueGetterAttrMap: createHashMap({\n        dimension: true\n      }),\n      prepareGetValue: function (exprOption) {\n        var errMsg = '';\n        var dimLoose = exprOption.dimension;\n\n        if (!hasOwn(exprOption, 'dimension')) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = makePrintable('Relation condition must has prop \"dimension\" specified.', 'Illegal condition:', exprOption);\n          }\n\n          throwError(errMsg);\n        }\n\n        var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n        if (!dimInfo) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal condition:', exprOption, '.\\n');\n          }\n\n          throwError(errMsg);\n        }\n\n        return {\n          dimIdx: dimInfo.index\n        };\n      },\n      getValue: function (param) {\n        return upstream.retrieveValueFromItem(rawItem, param.dimIdx);\n      }\n    });\n    var resultData = [];\n\n    for (var i = 0, len = upstream.count(); i < len; i++) {\n      rawItem = upstream.getRawDataItem(i);\n\n      if (condition.evaluate()) {\n        resultData.push(rawItem);\n      }\n    }\n\n    return {\n      data: resultData\n    };\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS } from '../../util/types.js';\nimport { makePrintable, throwError } from '../../util/log.js';\nimport { each } from 'zrender/lib/core/util.js';\nimport { normalizeToArray } from '../../util/model.js';\nimport { getRawValueParser, SortOrderComparator } from '../../data/helper/dataValueHelper.js';\nvar sampleLog = '';\n\nif (process.env.NODE_ENV !== 'production') {\n  sampleLog = ['Valid config is like:', '{ dimension: \"age\", order: \"asc\" }', 'or [{ dimension: \"age\", order: \"asc\"], { dimension: \"date\", order: \"desc\" }]'].join(' ');\n}\n\nexport var sortTransform = {\n  type: 'echarts:sort',\n  transform: function (params) {\n    var upstream = params.upstream;\n    var config = params.config;\n    var errMsg = ''; // Normalize\n    // const orderExprList: OrderExpression[] = isArray(config[0])\n    //     ? config as OrderExpression[]\n    //     : [config as OrderExpression];\n\n    var orderExprList = normalizeToArray(config);\n\n    if (!orderExprList.length) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Empty `config` in sort transform.';\n      }\n\n      throwError(errMsg);\n    }\n\n    var orderDefList = [];\n    each(orderExprList, function (orderExpr) {\n      var dimLoose = orderExpr.dimension;\n      var order = orderExpr.order;\n      var parserName = orderExpr.parser;\n      var incomparable = orderExpr.incomparable;\n\n      if (dimLoose == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Sort transform config must has \"dimension\" specified.' + sampleLog;\n        }\n\n        throwError(errMsg);\n      }\n\n      if (order !== 'asc' && order !== 'desc') {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Sort transform config must has \"order\" specified.' + sampleLog;\n        }\n\n        throwError(errMsg);\n      }\n\n      if (incomparable && incomparable !== 'min' && incomparable !== 'max') {\n        var errMsg_1 = '';\n\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg_1 = 'incomparable must be \"min\" or \"max\" rather than \"' + incomparable + '\".';\n        }\n\n        throwError(errMsg_1);\n      }\n\n      if (order !== 'asc' && order !== 'desc') {\n        var errMsg_2 = '';\n\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg_2 = 'order must be \"asc\" or \"desc\" rather than \"' + order + '\".';\n        }\n\n        throwError(errMsg_2);\n      }\n\n      var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n      if (!dimInfo) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal config:', orderExpr, '.\\n');\n        }\n\n        throwError(errMsg);\n      }\n\n      var parser = parserName ? getRawValueParser(parserName) : null;\n\n      if (parserName && !parser) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = makePrintable('Invalid parser name ' + parserName + '.\\n', 'Illegal config:', orderExpr, '.\\n');\n        }\n\n        throwError(errMsg);\n      }\n\n      orderDefList.push({\n        dimIdx: dimInfo.index,\n        parser: parser,\n        comparator: new SortOrderComparator(order, incomparable)\n      });\n    }); // TODO: support it?\n\n    var sourceFormat = upstream.sourceFormat;\n\n    if (sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'sourceFormat \"' + sourceFormat + '\" is not supported yet';\n      }\n\n      throwError(errMsg);\n    } // Other upstream format are all array.\n\n\n    var resultData = [];\n\n    for (var i = 0, len = upstream.count(); i < len; i++) {\n      resultData.push(upstream.getRawDataItem(i));\n    }\n\n    resultData.sort(function (item0, item1) {\n      for (var i = 0; i < orderDefList.length; i++) {\n        var orderDef = orderDefList[i];\n        var val0 = upstream.retrieveValueFromItem(item0, orderDef.dimIdx);\n        var val1 = upstream.retrieveValueFromItem(item1, orderDef.dimIdx);\n\n        if (orderDef.parser) {\n          val0 = orderDef.parser(val0);\n          val1 = orderDef.parser(val1);\n        }\n\n        var result = orderDef.comparator.evaluate(val0, val1);\n\n        if (result !== 0) {\n          return result;\n        }\n      }\n\n      return 0;\n    });\n    return {\n      data: resultData\n    };\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { filterTransform } from './filterTransform.js';\nimport { sortTransform } from './sortTransform.js';\nexport function install(registers) {\n  registers.registerTransform(filterTransform);\n  registers.registerTransform(sortTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\n/**\n * This module is imported by echarts directly.\n *\n * Notice:\n * Always keep this file exists for backward compatibility.\n * Because before 4.1.0, dataset is an optional component,\n * some users may import this module manually.\n */\n\nimport ComponentModel from '../../model/Component.js';\nimport ComponentView from '../../view/Component.js';\nimport { SERIES_LAYOUT_BY_COLUMN } from '../../util/types.js';\nimport { disableTransformOptionMerge, SourceManager } from '../../data/helper/sourceManager.js';\n\nvar DatasetModel =\n/** @class */\nfunction (_super) {\n  __extends(DatasetModel, _super);\n\n  function DatasetModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetModel.prototype.init = function (option, parentModel, ecModel) {\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    this._sourceManager = new SourceManager(this);\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\n    _super.prototype.mergeOption.call(this, newOption, ecModel);\n\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.optionUpdated = function () {\n    this._sourceManager.dirty();\n  };\n\n  DatasetModel.prototype.getSourceManager = function () {\n    return this._sourceManager;\n  };\n\n  DatasetModel.type = 'dataset';\n  DatasetModel.defaultOption = {\n    seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\n  };\n  return DatasetModel;\n}(ComponentModel);\n\nexport { DatasetModel };\n\nvar DatasetView =\n/** @class */\nfunction (_super) {\n  __extends(DatasetView, _super);\n\n  function DatasetView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetView.type = 'dataset';\n  return DatasetView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(DatasetModel);\n  registers.registerComponentView(DatasetView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nexport { install as GridSimpleComponent } from '../component/grid/installSimple.js';\nexport { install as GridComponent } from '../component/grid/install.js';\nexport { install as PolarComponent } from '../component/polar/install.js';\nexport { install as RadarComponent } from '../component/radar/install.js';\nexport { install as GeoComponent } from '../component/geo/install.js';\nexport { install as SingleAxisComponent } from '../component/singleAxis/install.js';\nexport { install as ParallelComponent } from '../component/parallel/install.js';\nexport { install as CalendarComponent } from '../component/calendar/install.js';\nexport { install as GraphicComponent } from '../component/graphic/install.js';\nexport { install as ToolboxComponent } from '../component/toolbox/install.js';\nexport { install as TooltipComponent } from '../component/tooltip/install.js';\nexport { install as AxisPointerComponent } from '../component/axisPointer/install.js';\nexport { install as BrushComponent } from '../component/brush/install.js';\nexport { install as TitleComponent } from '../component/title/install.js';\nexport { install as TimelineComponent } from '../component/timeline/install.js';\nexport { install as MarkPointComponent } from '../component/marker/installMarkPoint.js';\nexport { install as MarkLineComponent } from '../component/marker/installMarkLine.js';\nexport { install as MarkAreaComponent } from '../component/marker/installMarkArea.js';\nexport { install as LegendComponent } from '../component/legend/install.js';\nexport { install as LegendScrollComponent } from '../component/legend/installLegendScroll.js';\nexport { install as LegendPlainComponent } from '../component/legend/installLegendPlain.js';\nexport { install as DataZoomComponent } from '../component/dataZoom/install.js';\nexport { install as DataZoomInsideComponent } from '../component/dataZoom/installDataZoomInside.js';\nexport { install as DataZoomSliderComponent } from '../component/dataZoom/installDataZoomSlider.js';\nexport { install as VisualMapComponent } from '../component/visualMap/install.js';\nexport { install as VisualMapContinuousComponent } from '../component/visualMap/installVisualMapContinuous.js';\nexport { install as VisualMapPiecewiseComponent } from '../component/visualMap/installVisualMapPiecewise.js';\nexport { install as AriaComponent } from '../component/aria/install.js';\nexport { install as TransformComponent } from '../component/transform/install.js';\nexport { install as DatasetComponent } from '../component/dataset/install.js';","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nexport * from './lib/export/components.js';","import { use } from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport { PieChart, BarChart, LineChart } from 'echarts/charts';\nimport {\n  TitleComponent,\n  TooltipComponent,\n  LegendComponent,\n  GridComponent,\n  MarkLineComponent,\n} from 'echarts/components';\nimport { withInstall } from '../utils/index';\nimport './index.less';\nimport _Pie from './pie/index.vue';\nimport _Bar from './bar/index.vue';\nimport _Line from './line/index.vue';\n\nuse([\n  CanvasRenderer,\n  PieChart,\n  BarChart,\n  LineChart,\n  TitleComponent,\n  TooltipComponent,\n  LegendComponent,\n  GridComponent,\n  MarkLineComponent,\n]);\n\nexport const TlbsPie = withInstall(_Pie);\nexport const TlbsBar = withInstall(_Bar);\nexport const TlbsLine = withInstall(_Line);\n"],"names":["mathSin","Math","sin","mathCos","cos","PI","PI2","degree","SVGPathRebuilder","prototype","reset","precision","_start","_d","_str","_p","pow","moveTo","x","y","_add","lineTo","bezierCurveTo","x2","y2","x3","y3","quadraticCurveTo","arc","cx","cy","r","startAngle","endAngle","anticlockwise","ellipse","rx","ry","psi","dTheta","clockwise","dThetaPositive","abs","isCircle","isAroundZero","unifiedTheta","large","x0","y0","xRot","round","p","dTheta_1","rect","w","h","closePath","length","cmd","a","b","c","d","e","f","g","vals","i","arguments","val","isNaN","_invalid","push","join","generateStr","getStr","NONE","mathRound","pathHasFill","style","fill","pathHasStroke","stroke","strokeProps","svgStrokeProps","map","prop","toLowerCase","mapStyleToAttrs","updateAttr","el","forceUpdate","opacity","ZRImage","normalizeColor","color","fillOpacity","strokeScale","strokeNoScale","getLineScale","strokeWidth","lineWidth","strokeOpacity","strokeFirst","lineDash","_a","getLineDash","lineDashOffset","propName","DEFAULT_PATH_STYLE","SVGNS","XLINKNS","XMLNS","XML_NAMESPACE","createElement","name","document","createElementNS","createVNode","tag","key","attrs","children","text","createElementOpen","attrsStr","part","createElementClose","vNodeToString","opts","S","newline","convertElToString","child","getCssString","selectorNodes","animationNodes","bracketBegin","bracketEnd","selectors","keys","className","attrName","animations","animationName","percent","createBrushScope","zrId","shadowCache","patternCache","gradientCache","clipPathCache","defs","cssNodes","cssAnims","cssClassIdx","cssAnimIdx","shadowIdx","gradientIdx","patternIdx","clipPathIdx","createSVGVNode","width","height","useViewBox","EASING_MAP","cubicIn","cubicOut","cubicInOut","quadraticIn","quadraticOut","quadraticInOut","quarticIn","quarticOut","quarticInOut","quinticIn","quinticOut","quinticInOut","sinusoidalIn","sinusoidalOut","sinusoidalInOut","exponentialIn","exponentialOut","exponentialInOut","circularIn","circularOut","circularInOut","transformOriginKey","buildPathString","kfShape","path","shape","extend","buildPath","svgPathBuilder","getPathPrecision","rebuildPath","setTransformOrigin","target","transform","originX","originY","ANIMATE_STYLE_MAP","addAnimation","cssAnim","scope","createCompoundPathCSSAnimation","paths","composedAnim","cssAnimationCfg","cssAnimationName","each","subScope","animation","createCSSAnimation","animNames","len","lastAnim","kf","indexOf","replace","getEasingFunc","easing","isString","createCubicEasingFunc","onlyShape","animators","cssAnimations","CompoundPath","animationCfg","groupAnimators","animator","cfgArr","getMaxTime","getClip","delay","getDelay","getLoop","cfg","createSingleCSSAnimation","groupAnimator","transformKfs","shapeKfs","finalKfs","animationTimingFunctionAttrName","saveAnimatorTrackToCssKfs","cssKfs","toCssAttrName","tracks","getTracks","maxTime","k","track","needsAnimate","kfs","keyframes","time","kfEasing","rawValue","isNumber","targetProp","targetName","copyTransform","str","getSRTTransformString","timingFunction","canAnimateShape","isFirst","PathProxy","len_1","newLen","percents","allTransformOriginSame","transformOrigin","p0","p1","filter","isImageLike","src","isCanvasLike","isFunction","toDataURL","setStyleAttrs","isFillStroke","isGradient","setGradient","isPattern","setPattern","setShadow","noRotateScale","m","noTranslate","setTransform","compress","mul","getMatrixStr","convertPolyShape","points","strArr","validatePolyShape","smooth","createAttrsConvert","desc","normalizedDesc","item","buitinShapesDef","circle","polyline","polygon","hasShapeAnimation","brushSVGPath","builtinShpDef","type","svgElType","strokePercent","willUpdate","createPathProxy","shapeChanged","beginPath","pathUpdated","pathVersion","getVersion","elExt","__svgPathBuilder","__svgPathVersion","__svgPathStrokePercent","id","brushSVGImage","image","dw","dh","href","brushSVGTSpan","font","DEFAULT_FONT","adjustTextY","getLineHeight","textBaseline","textAlign","TEXT_ALIGN_TO_ANCHOR","hasSeparateFont","separatedFontStr","fontStyle","fontSize","parseFontSize","parseFloat","fontFamily","DEFAULT_FONT_FAMILY","fontWeight","match","undefined","brush","Path","TSpan","hasShadow","shadowKey","getShadowKey","shadowId","globalScale","getGlobalScale","scaleX","scaleY","offsetX","shadowOffsetX","offsetY","shadowOffsetY","blur_1","shadowBlur","shadowColor","stdDx","stdDy","stdDeviation","getIdURL","gradientTag","gradientAttrs","global","isLinearGradient","x1","y1","isRadialGradient","retrieve2","process","env","NODE_ENV","logError","colors","colorStops","offset","round4","stopColor","stopsAttrs","gradientVNode","gradientKey","gradientId","patternAttrs","isImagePattern","imageWidth_1","imageWidth","imageHeight_1","imageHeight","imageSrc","patternImage","Image","errMsg","assert","setSizeToVNode_1","vNode","img","svgEl","elm","setAttribute","createdImage","createOrUpdateImage","patternVNode","svgElement","clone","svgWidth","svgHeight","patternTransform","patternKey","patternId","setClipPath","clipPath","clipPathId","clipPathAttrs","createTextNode","createComment","insertBefore","parentNode","newNode","referenceNode","removeChild","node","appendChild","nextSibling","tagName","setTextContent","textContent","getTextContent","isElement","nodeType","isText","isComment","colonChar","xChar","emptyNode","isUndef","s","isDef","createKeyToOldIdx","beginIdx","endIdx","console","error","sameVnode","vnode1","vnode2","isSameKey","isSameTag","createElm","vnode","updateAttrs","isArray","ch","api","isObject","addVnodes","parentElm","before","vnodes","startIdx","removeVnodes","parent_1","oldVnode","oldAttrs","cur","old","removeAttribute","charCodeAt","setAttributeNS","updateChildren","oldCh","newCh","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","oldKeyToIdx","idxInOld","elmToMove","patchVnode","patch","parent_2","svgId","SVGPainter","root","storage","refreshHover","createMethodNotSupport","configLayer","_opts","_id","_oldVNode","ssr","viewport","_viewport","cssText","svgDom","_svgDom","resize","getType","getViewportRoot","getViewportRootOffset","viewportRoot","offsetLeft","offsetTop","getSvgDom","refresh","renderToVNode","renderOneToVNode","list","getDisplayList","bgColor","_backgroundColor","_width","_height","_bgVNode","mainVNode","_mainVNode","_paintList","animationCssStr","styleNode","renderToString","cssAnimation","setBackgroundColor","backgroundColor","bgVNode","getSvgRoot","out","listLen","clipPathsGroupsStack","clipPathsGroupsStackDepth","currentClipPathGroup","prevClipPaths","clipGroupNodeIdx","displayable","invisible","clipPaths","__clipPaths","prevLen","lca","max","i_1","i_2","groupAttrs","ret","display","getSize","viewportStyle","getWidth","getHeight","dispose","innerHTML","clear","base64","encodeURIComponent","prefix","encodeBase64","method","install","registers","registerPainter","createDom","painter","dpr","newDom","platformApi","createCanvas","newDomStyle","position","left","top","Layer","_super","__extends","_this","call","motionBlur","lastFrameAlpha","virtual","config","incremental","zlevel","maxRepaintRectCount","__dirty","__firstTimePaint","__used","__drawIndex","__startIndex","__endIndex","__prevStartIndex","__prevEndIndex","dom","devicePixelRatio","util","domStyle","onselectstart","padding","margin","borderWidth","getElementCount","afterBrush","initContext","ctx","getContext","setUnpainted","createBackBuffer","domBack","ctxBack","scale","createRepaintRects","displayList","prevList","viewWidth","viewHeight","mergedRepaintRects","full","pendingRect","BoundingRect","addRectToMergePool","isFinite","isZero","boundingRect","copy","isMerged","minDeltaArea","Infinity","bestRectToMergeIdx","mergedRect","intersect","pendingRect_1","union","aArea","bArea","pendingArea","deltaArea","shouldPaint","shouldBePainted","prevRect","__isRendered","REDRAW_BIT","getPrevPaintRect","curRect","getPaintRect","__zr","hasIntersections","splice","j","_paintRects","debugGetPaintRects","slice","clearAll","clearColor","repaintRects","haveMotionBLur","self","globalCompositeOperation","drawImage","doClear","clearRect","clearColorGradientOrPattern","__canvasGradient","getCanvasGradient","createCanvasPattern","dirty","__painter","save","fillStyle","fillRect","restore","globalAlpha","Eventful","HOVER_LAYER_ZLEVEL","CANVAS_ZLEVEL","EL_AFTER_INCREMENTAL_INC","INCREMENTAL_INC","isLayerValid","layer","__builtin__","createRoot","domRoot","CanvasPainter","_zlevelList","_prevDisplayList","_layers","_layerConfig","_needsManuallyCompositing","singleCanvas","nodeName","toUpperCase","_singleCanvas","rootStyle","zlevelList","layers","_domRoot","rootCanvas","mainLayer","isSingleCanvas","paintAll","_redrawId","random","z","useDirtyRect","_paintHoverList","hoverLayer","_hoverlayer","inHover","__inHover","getLayer","getHoverLayer","paintOne","brushSingle","redrawId","_updateLayerStatus","_doPaintList","finished","needsRefreshHover","_compositeManually","self_1","requestAnimationFrame","eachLayer","eachBuiltinLayer","layerList","zi","_loop_1","this_1","start","useTimer","Date","now","startTime","firstEl","notClear","repaint","repaintRect","allClipped","prevEl","_doPaintEl","dTime","prevElClipPaths","clip","wxa","draw","currentLayer","isLast","paintRect","setPrevPaintRect","insertLayer","layersMap","prevLayer","prevDom","firstChild","cb","context","eachOtherLayer","getLayers","updatePrevLayer","idx","incrementalLayerCount","prevZlevel","_clearLayer","layerConfig","_zlevel","delLayer","hasOwnProperty","clearLayer","getRenderedCanvas","imageLayer","pixelRatio","width_1","height_1","renderToCanvas","LineSeriesModel","apply","hasSymbolVisual","getInitialData","option","coordSys","coordinateSystem","Error","createSeriesData","useEncodeDefaulter","getLegendIcon","opt","group","Group","line","createSymbol","itemHeight","itemWidth","lineStyle","add","setStyle","visualType","getData","getVisual","visualRotate","symbolType","size","symbol","itemStyle","symbolRotate","iconRotate","rotation","setOrigin","dependencies","defaultOption","legendHoverLink","label","endLabel","show","valueAnimation","distance","emphasis","step","smoothMonotone","symbolSize","showSymbol","showAllSymbol","connectNulls","sampling","animationEasing","progressive","hoverLayerThreshold","universalTransition","divideShape","triggerLineEvent","SeriesModel","getDefaultLabel","data","dataIndex","labelDims","mapDimensionsAll","rawVal","retrieveRawValue","getDefaultInterpolatedLabel","interpolatedValue","dimIndex","getDimensionIndex","Symbol","seriesScope","updateData","_createSymbol","keepAspect","removeAll","symbolPath","attr","z2","culling","drift","driftSymbol","_symbolType","stopSymbolAnimation","toLastFrame","childAt","stopAnimation","getSymbolType","getSymbolPath","highlight","enterEmphasis","downplay","leaveEmphasis","setZ","setDraggable","draggable","hasCursorOption","cursor","silent","getItemVisual","seriesModel","hostModel","getSymbolSize","isInit","disableAnimation","graphic","saveOldStyle","_updateCommon","_sizeX","_sizeY","emphasisItemStyle","blurItemStyle","selectItemStyle","focus","blurScope","emphasisDisabled","labelStatesModels","hoverScale","cursorStyle","hasItemOption","itemModel","getItemModel","emphasisModel","getModel","getItemStyle","get","getLabelStatesModels","getShallow","symbolOffset","normalizeSymbolOffset","symbolStyle","visualColor","pathStyle","useStyle","__isEmptyBrush","decal","setColor","symbolInnerColor","liftZ","z2Origin","_z2","useNameLabel","setLabelStyle","labelFetcher","labelDataIndex","defaultText","getLabelDefaultText","inheritColor","defaultOpacity","getName","emphasisState","ensureState","scaleRatio","setSymbolScale","toggleHoverEmphasis","fadeOut","getECData","animationOpt","fadeLabel","removeOpt","removeTextContent","normalizeSymbolSize","dx","dy","parent","symbolNeedsDraw","point","isIgnore","clipShape","contain","normalizeUpdateOpt","makeSeriesScope","SymbolDraw","SymbolCtor","_SymbolCtor","SymbolClz","_progressiveEls","oldData","_data","symbolUpdateOpt","getSymbolPoint","getItemLayout","diff","newIdx","symbolEl","setPosition","setItemGraphicEl","update","oldIdx","getItemGraphicEl","remove","newSymbolType","oldSymbolType","execute","_getSymbolPoint","updateLayout","eachItemGraphicEl","markRedraw","incrementalPrepareUpdate","_seriesScope","incrementalUpdate","taskParams","updateIncrementalAndHover","isGroup","end","traverse","eachRendered","enableAnimation","prepareDataCoordInfo","valueOrigin","baseAxis","getBaseAxis","valueAxis","getOtherAxis","valueStart","getValueStart","baseAxisDim","dim","valueAxisDim","valueDim","mapDimension","baseDim","baseDataOffset","dims","dimensions","coordDim","stacked","stackResultDim","getCalculationInfo","isDimensionStacked","dataDimsForPoint","stackedOverDimension","extent","getExtent","getStackedOnPoint","dataCoordInfo","value","NaN","stackedData","dataToPoint","diffData","newData","diffResult","idx1","lineAnimationDiff","oldStackedOnPoints","newStackedOnPoints","oldCoordSys","newCoordSys","oldValueOrigin","newValueOrigin","currPoints","nextPoints","currStackedPoints","nextStackedPoints","status","sortedIndices","rawIndices","newDataOldCoordInfo","oldPoints","getLayout","newPoints","diffItem","pointAdded","oldIdx2","newIdx2","currentX","currentY","nextX","nextY","getRawIndex","newDataDimsForPoint","oldPt","stackedOnPoint","sort","sortedCurrPoints","createFloat32Array","sortedNextPoints","sortedCurrStackedPoints","sortedNextStackedPoints","sortedStatus","i2","idx2","current","next","stackedOnCurrent","stackedOnNext","mathMin","min","mathMax","isPointNull","drawSegment","segLen","allLen","dir","prevX","prevY","cpx0","cpy0","cpx1","cpy1","nextIdx","tmpK","ratioNextSeg","vx","vy","nextCpx0","nextCpy0","dx0","dx1","dy0","dy1","lenPrevSeg","lenNextSeg","dir_1","dir_2","sqrt","ECPolylineShape","smoothConstraint","ECPolyline","getDefaultStyle","getDefaultShape","getPointOn","xOrY","CMD","isDimX","roots","t","M","L","C","nRoot","cubicRootAt","t_1","cubicAt","ECPolygonShape","ECPolygon","stackedOnPoints","stackedOnSmooth","createGridClipPath","cartesian","hasAnimation","done","during","getArea","floor","isHorizontal","isAxisInversed","inverse","duringCb","createPolarClipPath","polar","sectorArea","r0","isRadial","createClipPath","isCoordinateSystemType","isPointsSame","points1","points2","bboxFromPoints","minX","minY","maxX","maxY","getBoundingDiff","min1","max1","_b","min2","max2","getSmooth","zrUtil","getStackedOnPoints","count","pt","turnPointsIntoStep","stepTurnAt","baseIndex","stepPoints","stepPt","nextPt","filteredPoints","middle","stepPt2","clipColorStops","maxSize","newColorStops","prevOutOfRangeColorStop","prevInRangeColorStop","lerpStop","stop0","stop1","clippedCoord","coord0","coord","lerp","stop_1","getVisualGradient","visualMetaList","warn","visualMeta","dimInfo","getDimensionInfo","dimension","axis","getAxis","stops","stop","toGlobalCoord","dataToCoord","stopLen","outerColors","reverse","colorStopsInRange","inRangeStopLen","tinyExtent","minCoord","maxCoord","coordSpan","unshift","gradient","getIsIgnoreFunc","isAuto","categoryAxis","getAxesByScale","canShowAllSymbolForCategory","categoryDataDim","labelMap","getViewLabels","labelItem","ordinalNumber","getRawOrdinalNumber","tickValue","axisExtent","availSize","dataLen","getLastIndexNotNull","getPointAtIndex","getIndexRange","dimIdx","prevIndex","nextIndex","range","anyStateShowEndLabel","SPECIAL_STATES","createLineClipPath","lineView","endLabelModel_1","valueAnimation_1","data_1","labelAnimationRecord_1","lastFrameIndex","clipRect","_endLabelOnDuring","_endLabel","originalX","originalY","rectShape","expandSize","getEndLabelStateSpecified","endLabelModel","isBaseInversed","align","verticalAlign","normal","LineView","init","lineGroup","symbolDraw","_symbolDraw","_lineGroup","render","ecModel","lineStyleModel","areaStyleModel","isCoordSysPolar","prevCoordSys","_coordSys","_polyline","_polygon","isAreaChart","isEmpty","isIgnoreFunc","__temp","clipShapeForSymbol","_clipShapeForSymbol","_step","_initSymbolLabelAnimation","_newPolyline","_newPolygon","_initOrUpdateEndLabel","convertToColorString","oldClipPath","getClipPath","newClipPath","_stackedOnPoints","_points","_doUpdateAnimation","setShape","getLineStyle","lineJoin","setStatesStylesFromModel","emphasisLineStyle","getState","seriesIndex","stackedOnSeries","getAreaStyle","changePolyState","toState","_changePolyState","onHoverStateChange","_valueOrigin","packEventData","eventData","componentType","componentSubType","componentIndex","seriesName","seriesType","payload","modelUtil","Array","symbolLabel","ChartView","setStatesFlag","segmentIgnoreThreshold","isHorizontalOrRadial","isAxisInverse","seriesDuration","seriesDalay","seriesDalayValue","polarClip","pointToCoord","gridClip","ratio","animateTo","duration","setToFinal","animateFrom","disableLabelAnimation","data_2","ignoreClip","enableTextSetter","textConfig","animationRecord","distanceX","distanceY","dataIndexRange","indices","getRawValue","startValue","endValue","labelInner","setLabelText","__points","updatedDataInfo","diffStatus","ptIdx","dirtyShape","pointsLayout","forceStoreInTypedArray","plan","createRenderPlanner","pipelineContext","useTypedArray","dimLen","store","getStore","dimIdx0","dimIdx1","progress","params","segCount","tmpIn","tmpOut","setItemLayout","setLayout","samplers","average","frame","sum","nearest","indexSampler","dataSample","getDevicePixelRatio","rate","setData","lttbDownSample","sampler","downSample","registerChartView","registerSeriesModel","LineSeries","registerLayout","layoutPoints","registerVisual","setVisual","registerProcessor","PRIORITY","PROCESSOR","STATISTIC","BaseBarSeriesModel","getMarkerPosition","clampData","offsetIndex","barMinHeight","barMinAngle","largeThreshold","progressiveChunkMode","registerClass","BarSeriesModel","createInvertedIndices","getProgressive","getProgressiveThreshold","progressiveThreshold","brushSelector","inheritDefaultOption","roundCap","showBackground","backgroundStyle","borderColor","borderType","borderRadius","select","realtimeSort","SausageShape","SausagePath","dr","rCenter","lessThanCircle","unitStartX","unitStartY","unitEndX","unitEndY","createSectorCalculateTextPosition","positionMapping","isRoundCap","textPosition","calculateTextPosition","mappedSectorPosition","sector","middleR","middleAngle","extraDist","textVerticalAlign","adjustAngleDistanceX","adjustAngleDistanceY","setSectorTextRotation","rotateType","setTextConfig","anchorAngle","rotate","angle","isEnd","getClipArea","coordSysClipArea","onBand","expandWidth","BarView","_isFirstFrame","_model","_removeOnRenderedListener","_updateDrawMode","coordinateSystemType","_isLargeDraw","_renderLarge","_renderNormal","incrementalPrepareRender","_clear","_updateLargeClip","incrementalRender","_incrementalRenderLarge","traverseElements","isLargeDraw","animationModel","isAnimationEnabled","realtimeSortCfg","shouldRealtimeSort","_enableRealtimeSort","needsClip","removeClipPath","drawBackground","backgroundModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","isInitSort","isChangeOrder","createBackground","bgLayout","bgEl","createBackgroundEl","layout","hasValue","isValidLayout","isClipped","elementCreator","model","forceLabelAnimation","updateStyle","updateRealtimeAnimation","initProps","ignore","newIndex","oldIndex","createBackgroundShape","updateProps","textEl","labelInnerStore","prevValue","removeElementWithFadeOut","bgGroup","_backgroundGroup","createLarge","_removeBackground","_dispatchInitSort","orderMapping_1","_onRendered","_updateSortWithinSameData","getZr","on","_dataSort","orderMapping","info","dataIdx","mappedValue","ordinalNumbers","_isOrderChangedWithinSameData","ordinalDataDim","lastValue","Number","MAX_VALUE","tickNum","getOrdinalMeta","categories","rawIdx","rawIndexOf","MIN_VALUE","indexOfRawIndex","_isOrderDifferentInView","orderInfo","tickMax","sortInfo","dispatchAction","axisId","index","sortResult","otherAxis","off","cartesian2d","coordSysBoundingRect","signWidth","signHeight","coordSysX2","coordSysY2","xClipped","yClipped","signR","tmp","clipped","axisModel","isUpdate","Rect","__dataIndex","animateProperty","ShapeClass","Sausage","Sector","positionMap","createPolarPositionMapping","sectorShape","animateTarget","realtimeSortOption","seriesAnimationModel","seriesTarget","axisTarget","axisAnimationModel","checkPropertiesNotValid","obj","props","rectPropties","polarPropties","fixedLineWidth","getLineWidth","signX","signY","isZeroOnPolar","arcOrAngle","isPolar","labelPositionOutside","defaultOutsidePosition","inside","setLabelValueAnimation","states","state","rawLayout","LagePathShape","LargePath","baseDimIdx","valueDimIdx","startPoint","barWidth","progressiveEls","largeDataIndices","bgPoints","largePathUpdateDataIndex","throttle","event","largePath","largePathFindDataIndex","ii","coordLayout","ElementClz","BarSeries","VISUAL","LAYOUT","PROGRESSIVE_LAYOUT","createProgressiveLayout","registerAction","eachComponent","mainType","query","componentModel","setCategorySortInfo","RADIAN","getViewRect","getBoxLayoutParams","getBasicPieLayout","viewRect","center","radius","parsePercent","pieLayout","eachSeriesByType","minAngle","validDataCount","getSum","unitRadian","roseType","stillShowZeroSum","getDataExtent","restAngle","valueSumLargerThanMinAngle","currentAngle","linearMap","angle_1","layout_1","layout_2","dataFilter","legendModels","findComponents","filterSelf","isSelected","adjustSingleSide","viewLeft","viewTop","farthestX","recalculateXOnSemiToAlignOnEllipseCurve","semi","rB","rB2","rA","rA2","newX","len2","deltaX","newTargetWidth","targetTextWidth","constrainTextWidth","recalculateX","items","topSemi","bottomSemi","labelAlignTo","linePoints","shiftLayoutOnY","avoidOverlap","labelLayoutList","leftList","rightList","leftmostX","rightmostX","isPositionCenter","labelStyleWidth","labelDistance","edgeDistance","bleedMargin","isAlignToEdge","paddingH","extraPaddingH","realTextWidth","dist","availableWidth","forceRecalculate","textRect","overflow","oldOuterWidth","oldHeight","innerRect","getBoundingRect","ceil","availableInnerWidth","newWidth","unconstrainedWidth","newRect","pieLabelLayout","hasLabelRotate","minShowLabelRadian","setNotShow","isLabelShown","labelLine","getTextGuideLine","labelModel","labelPosition","labelLineModel","labelLineLen","labelLineLen2","midAngle","nx","ny","textX","textY","isLabelInside","labelRotate","radialAngle","rad","atan2","isDown","applyTransform","getComputedTransform","minTurnAngle","maxSurfaceAngle","surfaceNormal","Point","selectState","notShowLabel","limitTurnAngle","limitSurfaceAngle","__hostTarget","textGuideLineConfig","anchor","getSectorCornerRadius","zeroIfNull","cornerRadius","cr","PiePiece","firstCreate","animationType","isFrom","_updateLabel","labelText","visualOpacity","getFormattedLabel","removeTextGuideLine","setTextGuideLine","setLabelLineStyle","getLabelLineStatesModels","retrieve3","PieView","ignoreLabelLineUpdate","_emptyCircleSector","piePiece","labelLayout","containPoint","itemLayout","createSeriesDataSimply","nameList","coordDimensions","encodeDefine","getEncode","source","getSource","prepareSeriesDataSchema","SeriesData","initData","LegendVisualProvider","getDataWithEncodedVisual","getRawData","_getDataWithEncodedVisual","_getRawData","getAllNames","rawData","mapArray","containName","indexOfName","dataWithEncodedVisual","PieSeriesModel","legendVisualProvider","_defaultLabelLine","mergeOption","encodeDefaulter","makeSeriesEncodeForNameBased","getDataParams","valueList","getPercentWithPrecision","$vars","labelLineNormalOpt","labelLineEmphasisOpt","colorBy","minShowLabelAngle","selectedOffset","percentPrecision","right","bottom","alignTo","distanceToLabelLine","length2","borderJoin","showEmptyCircle","emptyCircleStyle","hideOverlap","scaleSize","avoidLabelOverlap","animationDuration","animationTypeUpdate","animationEasingUpdate","animationDurationUpdate","negativeDataFilter","curValue","createLegacyDataSelectAction","curry","ScatterSeriesModel","getZLevelKey","BOOST_SIZE_THRESHOLD","LargeSymbolPathShape","LargeSymbolPath","_off","hoverDataIdx","symbolProxy","symbolProxyShape","canBoost","softClipShape","_ctx","findDataIndex","localPos","transformCoordToLocal","_rect","LargeSymbolDraw","_create","_setCommon","eachChild","startIndex","endIndex","byteOffset","Float32Array","buffer","lastAdded","_newAdded","oldLen","set","extrudeShadow","globalStyle","ecData","ScatterView","_updateSymbolDraw","_getClipShape","_finished","updateTransform","res","clipArea","GridModel","layoutMode","containLabel","ComponentModel","CartesianAxisModel","getCoordSysModel","getReferringComponents","SINGLE_REFERRING","models","AxisModelCommonMixin","nameLocation","nameRotate","nameTruncate","maxWidth","ellipsis","placeholder","nameTextStyle","nameGap","triggerEvent","tooltip","axisPointer","axisLine","onZero","onZeroAxisIndex","axisTick","axisLabel","showMinLabel","showMaxLabel","splitLine","splitArea","areaStyle","boundaryGap","deduplication","alignWithLabel","interval","splitNumber","minorTick","minorSplitLine","timeAxis","rich","primary","logAxis","logBase","category","log","AXIS_TYPES","axisModelCreator","axisName","BaseAxisModelClass","extraDefaultOption","v","axisType","merge","axisDefault","AxisModel","mergeDefaultAndTheme","fetchLayoutMode","inputPositionParams","getLayoutParams","themeModel","getTheme","getDefaultOption","getAxisType","mergeLayoutParam","optionUpdated","thisOption","__ordinalMeta","OrdinalMeta","createByAxisModel","getCategories","registerComponentModel","registerSubTypeDefaulter","Cartesian","_dimList","_axes","getAxes","scaleType","addAxis","cartesian2DDimensions","canCalculateAffineTransform","Cartesian2D","calcAffineTransform","_transform","_invTransform","xAxisScale","yAxisScale","xScaleExtent","yScaleExtent","xScaleSpan","yScaleSpan","translateX","translateY","invert","axisX","axisY","toLocalCoord","containData","containZone","data1","data2","zoneDiag1","zoneDiag2","area","zone","clamp","xVal","yVal","xAxis","yAxis","xScale","yScale","xAxisExtent","yAxisExtent","parse","pointToData","coordToData","xExtent","getGlobalExtent","yExtent","Axis2D","coordExtent","asc","categorySortInfo","setSortInfo","Axis","gridModel","grid","otherAxisOnZeroOf","getAxesOnZeroOf","rawAxisPosition","axisPosition","axisDim","getRect","rectBound","axisOffset","posBound","onZeroCoord","dirMap","labelDirection","tickDirection","nameDirection","labelOffset","labelInside","isCartesian2DSeries","findAxisModels","axisModelMap","xAxisModel","yAxisModel","mathLog","alignScaleTicks","alignToScale","intervalScaleProto","IntervalScale","alignToTicks","getTicks","alignToNicedTicks","alignToSplitNumber","alignToInterval","getInterval","scaleExtent","getScaleExtent","rawExtent","isMinFixed","fixMin","isMaxFixed","fixMax","base","setExtent","calcNiceExtent","increaseInterval","nicedSplitNumber","t0","t1","setInterval","setNiceExtent","ticks","isValueNice","getPrecisionSafe","Grid","_coordsMap","_coordsList","_axesMap","_axesList","axisPointerEnabled","_initCartesian","axesMap","_updateScale","updateAxisTicks","axes","axesIndices","axisNeedsAlign","isIntervalOrLogScale","niceScaleExtent","pop","onZeroRecords","fixAxisOnZero","ignoreContainLabel","boxLayoutParams","isContainLabel","gridRect","getLayoutRect","axesList","adjustAxes","labelUnionRect","estimateLabelUnionRect","updateAxisTransform","axisIndex","axesMapOnDim","getCartesian","xAxisIndex","yAxisIndex","coordList","getCartesians","convertToPixel","finder","_findConvertTarget","convertFromPixel","coordsList","axisPositionUsed","axesCount","createAxisCreator","master","dimName","isAxisUsedInTheGrid","createScaleByModel","isCategory","eachSeries","axesModelMap","unionExtent","getDataDimensionsOnAxis","unionExtentFromData","getTooltipAxes","baseAxes","otherAxes","create","grids","otherAxisDim","canOnZeroToAxis","getOnZeroRecordKey","ifAxisCrossZero","coordBase","axisExtentSum","AxisBuilder","defaults","handleAutoShown","transformGroup","_transformGroup","hasBuilder","builders","getGroup","innerTextLayout","axisRotation","textRotation","direction","rotationDiff","remRadian","isRadianAroundZero","makeAxisEventDataBase","isLabelSilent","tooltipOpt","shown","matrix","pt1","pt2","v2ApplyTransform","lineCap","subPixelOptimize","strokeContainThreshold","anid","arrows","arrowSize","arrowOffset","symbolWidth_1","symbolHeight_1","axisTickLabel","ticksEls","buildAxisMajorTicks","labelEls","buildAxisLabel","fixMinMaxLabelShow","buildAxisMinorTicks","labelList","prepareLayoutList","priority","defaultAttr","retrieve","textStyleModel","gap","gapSignal","pos","isNameLocationCenter","nameRotation","axisNameAvailableWidth","endTextLayout","textFont","getFont","truncateOpt","nameTruncateMaxWidth","createTextStyle","getTextColor","itemName","__fullText","targetType","decomposeTransform","textRotate","onLeft","tickEls","shouldShowAllLabels","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","nextTick","lastTick","prevTick","ignoreEl","isTwoLabelOverlapped","firstRect","nextRect","mRotationBack","matrixUtil","getLocalTransform","createTicks","ticksCoords","tickTransform","tickEndCoord","tickLineStyle","anidPrefix","tickCoord","tickEl","autoBatch","tickModel","isBlank","getTicksCoords","minorTickModel","minorTicksCoords","getMinorTicksCoords","minorTickLineStyle","minorTicksEls","axisLabelShow","labelMargin","labels","labelRotation","rawCategoryData","formattedLabel","rawLabel","itemLabelModel","rawCategoryItem","textStyle","Model","textColor","level","tickIndex","collect","result","axesInfo","seriesInvolved","coordSysAxesInfo","coordSysMap","collectAxesInfo","collectSeriesInfo","globalTooltipModel","getComponent","globalAxisPointerModel","linksOption","linkGroups","getCoordinateSystems","coordSysKey","makeKey","axesInfoInCoordSys","coordSysModel","baseTooltipModel","saveTooltipAxisInfo","triggerAxis","cross","tooltipAxes","fromTooltip","triggerTooltip","axisPointerModel","axisPointerShow","isHandleTrigger","makeAxisPointerModel","snap","axisKey","involveSeries","axisInfo","useHandle","seriesModels","linkGroup","groupIndex","getLinkGroupIndex","mapper","tooltipAxisPointerModel","fields","volatileOption","field","labelOption","tooltipAxisPointerLabelShow","crossStyle","seriesTooltipTrigger","seriesTooltipShow","seriesDataCount","linkOption","checkPropInLink","linkPropValue","axisPropValue","fixValue","getAxisInfo","getAxisPointerModel","axisPointerClazz","AxisView","axisPointerClass","axisPointerModelHelper","_doUpdateAxisPointerClass","updateAxisPointer","_axisPointer","_disposeAxisPointer","forceRender","Clazz","getAxisPointerClass","registerAxisPointerClass","clazz","ComponentView","inner","makeInner","rectCoordAxisBuildSplitArea","axisView","axisGroup","splitAreaModel","areaColors","areaColorsLen","lastSplitAreaColors","splitAreaColors","newSplitAreaColors","colorIndex","cIndex","prev","rectCoordAxisHandleRemove","axisBuilderAttrs","selfBuilderAttrs","CartesianAxisView","oldAxisGroup","_axisGroup","cartesianAxisHelper","axisBuilder","elementType","cartesians","axisElementBuilders","isInitialSortFromBarRacing","splitLineModel","lineColors","lineCount","p2","minorSplitLineModel","CartesianXAxisView","CartesianYAxisView","GridView","extraOption","registerComponentView","registerCoordinateSystem","registerPreprocessor","use","installGridSimple","radarLayout","getIndicatorAxes","isValidPoint","getValueMissingPoint","firstPoint","radarBackwardCompat","polarOptArr","polarNotRadar_1","polarOpt","indicator","radar","series","seriesOpt","polarIndex","radarIndex","RadarView","symbolUtil","updateSymbols","symbolGroup","__dimIdx","getInitialPoints","itemGroup","polygonIgnore","parentModel","stateName","stateModel","stateIgnore","itemHoverStyle","pathEmphasisState","labelDimIndex","RadarSeriesModel","generateCoord","generateCoordCount","formatTooltip","multipleSeries","dataType","indicatorAxes","nameToDisplay","markerColor","retrieveVisualColorForTooltipMarker","createTooltipMarkup","header","sortBlocks","blocks","markerType","sortParam","getTooltipPosition","values","getValues","coordToPoint","valueAxisDefault","defaultsShow","RadarModel","showName","nameFormatter","indicatorModels","indicatorOpt","iNameTextStyle","innerIndicatorOpt","indName","_indicatorModels","getIndicatorModels","axisNameGap","radarModel","_buildAxes","_buildSplitLineAndArea","axisBuilders","indicatorAxis","showSplitLine","showSplitArea","splitLineColors","splitLineColorsArr","splitAreaColorsArr","splitLines","splitAreas","getColorIndex","areaOrLine","areaOrLineColorList","ticksRadius","realSplitNumber_1","axesTicksPoints","prevPoints","concat","IndicatorAxis","radiusExtent","Radar","_indicatorAxes","indicatorModel","indicatorIndex","radian","minRadianDiff","closestAxis","closestAxisIdx","viewSize","numberUtil","radarSeries","dummyScale","pixel","radarList","setItemVisual","installRadarComponent","backwardCompat","ATTR","take","zr","resourceKey","userKey","release","uKey","isTaken","echarts","noop","RoamController","_zr","mousedownHandler","bind","_mousedownHandler","mousemoveHandler","_mousemoveHandler","mouseupHandler","_mouseupHandler","mousewheelHandler","_mousewheelHandler","pinchHandler","_pinchHandler","enable","controlType","disable","_opt","zoomOnMouseWheel","moveOnMouseMove","moveOnMouseWheel","preventDefaultMouseMove","isDragging","_dragging","isPinching","_pinching","setPointerChecker","pointerChecker","eventTool","_x","_y","isAvailableBehavior","gestureEvent","interactionMutex","oldX","oldY","trigger","newY","shouldZoom","shouldMove","wheelDelta","absWheelDeltaDelta","factor","checkPointerAndTrigger","absDelta","scrollDelta","pinchScale","pinchX","pinchY","controller","eventName","behaviorToCheck","contollerEvent","settings","setting","updateViewOnPan","controllerHost","updateViewOnZoom","zoomDelta","zoomX","zoomY","zoomLimit","newZoom","zoom","zoomMin","zoomMax","zoomScale","IRRELEVANT_EXCLUDES","onIrrelevantElement","targetCoordSysModel","getComponentByElement","topTarget","parseXML","svg","parser","DOMParser","parseFromString","svgNode","nodeParsers","INHERITABLE_STYLE_ATTRIBUTES_MAP","INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS","SELF_STYLE_ATTRIBUTES_MAP","SELF_STYLE_ATTRIBUTES_MAP_KEYS","SVGParser","_defs","_root","xml","_defsUsePending","named","viewBox","getAttribute","parseAttributes","_parseNode","applyDefs","viewBoxRect","viewBoxTransform","viewBoxArr","splitNumberSequence","makeViewBoxTransform","ignoreViewBox","elRoot","ignoreRootClip","xmlNode","parentGroup","namedFrom","isInDefs","isInText","namedFromForSub","parser_1","hasOwn","nameAttr","newNamed","svgNodeTagLower","paintServerParsers","def","_parseText","_textX","_textY","inheritStyle","applyTextAlignment","internalField","Circle","Line","Ellipse","pointsStr","pointsArr","parsePoints","Polygon","Polyline","createFromString","parseInt","LinearGradient","parsePaintServerUnit","parseGradientColorStops","RadialGradient","gradientUnits","toLocaleLowerCase","offsetStr","styleVals","parseInlineStyle","__inheritedStyle","pointsString","defsUsePending","onlyInlineStyle","isTextGroup","disp","inheritedStyle","selfStyle","parseTransformAttribute","parseAttributeStyle","getFillStrokeStyle","__selfStyle","visibility","parentSelfStyle","zrTextBaseline","parentInheritedStyle","zrTextAlign","urlRegex","urlMatch","url","trim","numberReg","rawStr","transformRegex","DEGREE_TO_ANGLE","transformOps_1","mt","valueArr","sx","tan","sy","setLocalTransform","styleRegex","inheritableStyleResult","selfStyleResult","lastIndex","styleRegResult","exec","svgStlAttr","zrInheritableStlAttr","zrSelfStlAttr","svgAttrName","attrValue","parseSVG","REGION_AVAILABLE_SVG_TAG_MAP","createHashMap","GeoSVGResource","mapName","_usedGraphicMap","_freedGraphics","_mapName","_parsedXML","load","firstGraphic","_firstGraphic","_buildGraphic","_boundingRect","createRegions","regions","regionsMap","_regions","_regionsMap","svgXML","rootFromParse","message","isGeoSVGGraphicRoot","bRectX","bRectY","bRectWidth","bRectHeight","calculatedBoundingRect","plain","namedItem","setSilent","useGraphic","hostKey","usedRootMap","svgGraphic","freeGraphic","removeKey","region","GeoSVGRegion","geoCoord","nanhaiName","fixNanhai","mapType","GeoJSONRegion","exterior","coordsOffsetMap","fixTextCoords","coordFix","cp","getCenter","setCenter","fixDiaoyuIsland","geometries","DEFAULT_NAME_PROPERTY","GeoJSONResource","geoJSON","specialAreas","_parsedMap","_specialAreas","_geoJSON","parseInput","nameMap","nameProperty","parsed","rawRegions","_parseToRegions","calculateBoundingRect","finalRegions","regionName","cloneShallow","parseGeoJson","fixTextCoord","specialArea","transformTo","getMapForUser","geoJson","regionRect","JSON","Function","registerMap","rawDef","rawSpecialAreas","resource","features","getGeoResource","OPTION_STYLE_ENABLED_TAGS","OPTION_STYLE_ENABLED_TAG_MAP","STATE_TRIGGER_TAG_MAP","LABEL_HOST_MAP","mapLabelRaw","getFixedItemStyle","areaColor","fixLineStyle","styleHost","MapDraw","uid","getUID","_controller","_controllerHost","_regionsGroup","_svgGroup","mapOrGeoModel","fromView","isGeo","subType","mapSeries","getHostGeoModel","geo","regionsGroup","transformInfo","getTransformInfo","transformInfoRaw","raw","transformInfoRoam","roam","isFirstDraw","isVisualEncodedByVisualMap","viewBuildCtx","resourceType","_buildGeoJSON","_buildSVG","_updateController","_updateMapSelectHandler","regionsGroupByName","_regionsGroupByName","regionsInfoByName","projection","projectionStream","stream","transformPoint","project","transformPolygonPoints","inPoints","outPoints","newPt","getPolyShape","regionGroup","regionModel","getRegionModel","polygonSubpaths","polylineSubpaths","geometry","polys","interiors","projectPolys","poly","centerPt","createCompoundPath","subpaths","isLine","compoundPath","applyOptionStyleForRegion","resetLabelForRegion","resetEventTriggerForRegion","resetTooltipForRegion","resetStateTriggerForRegion","_svgResourceChanged","_freeSVG","_useSVG","svgDispatcherMap","_svgDispatcherMap","focusSelf","_svgGraphicRecord","Displayable","z2EmphasisLift","focus_1","els","_enableBlurEntireSVG","blurStyle","opacity_1","setDefaultStateProxy","findHighDownDispatchers","geoModel","_svgMapName","geoSourceManager","getZoom","makeActionBase","action","_mouseDownFlag","roamHelper","resetForLabelLayout","mapDraw","normalStyleModel","emphasisStyleModel","blurStyleModel","selectStyleModel","normalStyle","emphasisStyle","selectStyle","createOrUpdatePatternFromDecal","labelXY","isDataNaN","showLabel","specifiedTextOpt","layoutRect","removeTextConfig","eventTrigger","geoIndex","itemTooltipOption","highDownSilentOnTouch","enableComponentHighDownFeatures","rings","createStream","polygons","curPoly","startPolygon","endPolygon","polygonStart","polygonEnd","lineStart","lineEnd","sphere","ring","MapView","mapModel","from","_mapDraw","seriesId","needsDrawMap","_renderSymbols","originalData","originalDataIndex","Z2_EMPHASIS_LIFT","fullData","mainSeries","name_1","fullIndex_1","MapSeries","seriesGroup","getRegion","dataNameMap","toAppendNames","name_2","geoSource","getMapType","appendValues","seriesNames","otherIndex","noHeader","setZoom","iconType","icon","aspectScale","showLegendSymbol","boundingCoords","scaleLimit","selectedMode","dataStatistics","datas","statisticType","mapKey","mapDataStatistic","seriesGroups","hostGeoModel","seriesList","mapSymbolLayout","processedMapType","mapSymbolOffsets","subMapSeries","vector","View","_roamTransformable","Transformable","_rawTransformable","setBoundingRect","setViewRect","_transformTo","_viewRect","rawTransform","calculateTransform","rawParent","_updateTransform","centerCoord","_center","_updateCenterAndZoom","_zoom","getDefaultCenter","rawRect","getRoamTransform","rawTransformMatrix","roamTransform","defaultCenter","roamTransformable","rawTransformable","_rawTransform","invTransform","dummyTransformable","getViewRectAfterRoam","noRoam","getCoordSys","GEO_DEFAULT_PARAMS","invertLongitute","geo2DDimensions","Geo","_nameCoordMap","defaultParams","unproject","_invertLongitute","getRegionByCoord","addGeoCoord","getGeoCoord","projectedToPoint","pointToProjected","projected","resizeGeo","leftTop_1","rightBottom_1","projection_1","xMin","yMin","xMax","yMax","sampleLine","centerOption","sizeOption","aspect","useCenterAndSize","boxLayoutOption","setGeoCoords","GeoCreator","geoList","getCommonGeoProperties","mapModelGroupBySeries","nameMapList","singleMapSeries","getFilledRegions","originRegionArr","regionsArr","geoCreator","GeoModel","selectedMap","_optionModelMap","optionModelMap","regionOpt","selected","formatter","unSelect","toggleSelected","getCenterCoord","view","updateCenterAndZoom","previousZoom","fixX","fixY","GeoView","focusBlurEnabled","_api","_handleRegionClick","updateSelectStatus","findEventDispatcher","geoId","enterSelect","leaveSelect","registerImpl","makeAction","actionInfo","allSelected","names","installGeo","inRoot","hierNode","defaultAncestor","ancestor","prelim","modifier","change","shift","thread","nodes","isExpand","n","firstWalk","separation","siblings","subtreeW","executeShifts","midPoint","apportion","secondWalk","nodeX","defaultSeparation","radialCoordinate","subtreeV","nodeOutRight","nodeInRight","nodeOutLeft","nodeInLeft","sumOutRight","sumInRight","sumOutLeft","sumInLeft","nextRight","nextLeft","moveSubtree","nextAncestor","wl","wr","node1","node2","TreeEdgeShape","parentPoint","childPoints","TreePath","childLen","firstChildPos","lastChildPos","orient","forkDim","otherDim","forkPosition","tmpPoint","TreeView","_mainGroup","layoutInfo","_updateViewCoordSys","updateNode","removeNode","_nodeScaleRatio","_updateNodeAndLinkScale","bbox","oldMin","_min","oldMax","_max","viewCoordSys","updateLabelLayout","nodeScale","_getNodeGlobalScale","nodeScaleRatio","groupZoom","roamZoom","tree","getNodeByDataIndex","virtualRoot","sourceSymbolEl","sourceLayout","sourceOldLayout","__oldX","__oldY","rawX","__radialOldRawX","rawY","__radialOldRawY","targetLayout","__radialRawX","__radialRawY","realRoot","rootLayout","length_1","isLeft","normalLabelModel","labelRotateRadian","origin","focusDataIndices","getAncestorsIndices","getDescendantIndices","drawEdge","__edge","parentEl","hoverState","HOVER_STATE_BLUR","edgeShape","getOrient","curvature","edgeForkPosition","edge","getEdgeShape","childLayout","removeNodeEdge","removeAnimationOpt","getSourceNode","sourceEdge","layoutOpt","forEach","childNode","cpx2","cpy2","radialCoor1","radialCoor2","radialCoor3","radialCoor4","linkSeriesData","mainData","main","datasAttr","linkAll","TRANSFERABLE_METHODS","methodName","wrapMethod","transferInjection","cloneShallowInjection","CHANGABLE_METHODS","changeInjection","isMainData","linkSingle","struct","getLinkedData","getLinkedDataAll","structAttr","TreeNode","hostTree","depth","viewChildren","isRemoved","eachNode","options","order","suppressVisitSub","updateDepthAndHeight","getNodeById","getId","contains","getAncestors","includeSelf","ancestors","currNode","getValue","getLevelModel","levelModels","getChildIndex","isAncestorOf","isDescendantOf","Tree","_nodes","rawIndex","clearLayouts","clearItemLayouts","createTree","dataRoot","beforeLink","listData","dimMax","buildHierarchy","dataNode","convertOptionIdName","addChild","dimensionsCount","retrieveTargetInfo","validPayloadTypes","targetNode","targetNodeId","getPathToRoot","aboveViewRoot","viewRoot","viewPath","wrapTreePathInfo","treePathInfo","nodeDataIndex","TreeSeriesModel","ignoreStyleOnData","leaves","leavesModel","nodeData","treeDepth","expandAndCollapse","expandTreeDepth","initialTreeDepth","getRawDataItem","collapsed","noValue","treeAncestors","curveness","eachAfter","callback","eachBefore","treeLayout","commonLayout","sep","left_1","right_1","bottom_1","delta","tx_1","kx_1","ky_1","coorX_1","coorY_1","finalCoor","orient_1","treeVisual","existsStyle","ensureUniqueItemVisual","installTreeAction","actionTypes","installTreemapAction","handleRootToNode","types","targetInfo","helper","originViewRoot","getViewRoot","resetViewRoot","enableAriaDecalForTree","decalPaletteScope","getDecalFromPalette","TreemapSeriesModel","preventUsingHoverLayer","completeTreeValue","levels","designatedVisualItemStyle","designatedVisualModel","setDefault","levelDefine","levelModel","setLayoutInfo","mapIdToIndex","idIndexMap","_idIndexMap","_idIndexMapCount","_viewRoot","enableAriaDecal","clipWindow","squareRatio","leafDepth","drillDownIcon","zoomToNodeRatio","nodeClick","breadcrumb","emptyItemWidth","upperLabel","colorAlpha","colorSaturation","gapWidth","borderColorSaturation","visualDimension","visualMin","visualMax","colorMappingBy","visibleMin","childrenVisibleMin","childValue","thisValue","globalColorList","normalizeToArray","globalDecalList","hasColorDefine","hasDecalDefine","modelColor","modelDecal","level0","TEXT_PADDING","ITEM_GAP","ARRAY_LENGTH","Breadcrumb","containerGroup","onSelect","thisGroup","layoutParam","box","totalWidth","renderList","_prepare","_renderContent","getTextRect","lastX","availableSize","itemNode","makeItemPoints","onclick","head","tail","selfType","AnimationWrap","_storage","_elExistsMap","_finishedCallback","checkTerminate","aborted","createWrap","DRAG_THRESHOLD","PATH_LABEL_NOAMAL","PATH_UPPERLABEL_NORMAL","Z2_BASE","Z2_BG","Z2_CONTENT","getStateItemStyle","makeStyleMapper","getItemStyleNormal","TreemapView","_state","createStorage","payloadType","_oldTree","thisStorage","reRoot","rootNodeGroup","nodeGroup","_giveContainerGroup","renderResult","_doRender","_doAnimation","renderFinally","_resetController","_renderBreadcrumb","_containerGroup","_initEvents","thisTree","oldTree","lastsForAnimation","oldStorage","willInvisibleEls","doRenderNode","thisNode","oldNode","renderNode","dualTravel","willDeleteEls","clearStorage","thisViewChildren","oldViewChildren","sameTree","processNode","DataDiffer","getKey","storageName","delEls","willDelete","durationOption","easingOption","animationWrap","animationUtil","innerStore","nodeWidth","nodeHeight","targetX","targetY","last","oldShape","fadein","_onPan","_onZoom","_clearController","rootRect","mouseX","mouseY","findTarget","isLeafRoot","_rootToNode","_zoomToNode","link","linkTarget","windowOpen","_breadcrumb","background","content","thisLayout","nodeModel","isInView","thisWidth","thisHeight","thisInvisible","thisRawIndex","oldRawIndex","upperHeight","isParent","itemStyleNormalModel","itemStyleEmphasisModel","itemStyleBlurModel","itemStyleSelectModel","giveGraphic","isAboveViewRoot","bg","renderBackground","upperLabelHeight","isDisabled","focusOrIndices","isHighDownDispatcher","setAsHighDownDispatcher","enableHoverFocus","renderContent","disableMorphing","useUpperLabel","processInvisible","visualBorderColor","upperLabelWidth","prepareText","contentWidth","contentHeight","nodeStyle","element","rectEl","upperLabelRect","isShow","textPadding","normalizeCssArray","disableLabelLayout","beforeUpdate","truncateMinChar","lineOverflow","addDrillDownIcon","textEmphasisState","iconChar","Ctor","lasts","prepareAnimationWhenHasOld","calculateZ2","prepareAnimationWhenNoOld","lastCfg","parentOldX","parentOldY","parentOldBg","z2InLevel","CATEGORY_DEFAULT_VISUAL_INDEX","VisualMapping","mappingMethod","_normalizeData","normalizers","visualHandler","visualHandlers","applyVisual","getColorMapper","_normalizedToVisual","normalizeVisualRange","preprocessForPiecewise","preprocessForSpecifiedCategory","dataExtent","mapValueToVisual","normalized","getNormalizer","listVisualTypes","isValidType","eachVisual","visual","mapVisual","isPrimary","newVisual","newVal","retrieveVisuals","hasVisual","prepareVisualTypes","visualTypes","types_1","type1","type2","dependsOn","visualType1","visualType2","findPieceIndex","pieceList","findClosestWhenOutside","possibleI","pieceValue","updatePossible","piece","close_1","close","littleThan","newAbs","makeApplyVisual","isNormalized","doMapCategory","returnRGBArray","zrColor","parsedVisual","linear","piecewise","getSpecifiedVisual","fixed","doMapFixed","colorHue","makePartialColorVisualHandler","colorLightness","createNormalizedToNumericVisual","getter","setter","symbolCfg","doMapToArray","hasSpecialVisual","originIndex","categoryMap","cate","visualArr_1","setVisualToOption","visualArr","doNotNeedPair","applyValue","colorChannel","loop","sourceExtent","pieceIndex","ITEM_STYLE_NORMAL","travelTree","designatedVisual","viewRootAncestors","nodeLayout","nodeItemStyleModel","visuals","buildVisuals","thisNodeColor","calculateColor","calculateBorderColor","mapping_1","buildVisualMapping","childVisual","visualName","getValueVisualDefine","modifyHSL","modifyAlpha","rangeVisual","getRangeVisual","mapping","drColorMappingBy","childVisuals","mappingType","retrieveValue","PATH_BORDER_WIDTH","PATH_GAP_WIDTH","PATH_UPPER_LABEL_SHOW","PATH_UPPER_LABEL_HEIGHT","ecWidth","ecHeight","seriesOption","containerWidth","containerHeight","viewAbovePath","rootSize","estimateRootSize","sort_1","viewRootLayout_1","squarify","treeRoot","calculateRootPosition","prunning","hideChildren","halfGapWidth","getUpperLabelHeight","layoutOffset","layoutOffsetUpper","totalArea","initChildren","rowFixedLength","best","row","score","worst","orderBy","overLeafDepth","statistic","filterByThreshold","orderedChildren","deletePoint","areaMax","areaMin","squareArea","flush","idx0WhenH","idx1WhenH","xy","wh","rowOtherLength","rowLen","wh1","remain","modWH","wh0","defaultSize","viewArea","currNodeValue","MAX_SAFE_INTEGER","defaultPosition","targetCenter","nodeInViewAbovePath","childClipRect","treemapVisual","treemapLayout","categoryFilter","graphSeries","categoriesData","getCategoriesData","graph","getGraph","categoryNames","categoryVisual","paletteScope","categoryNameIdxMap","getColorFromPalette","symbolVisualList","symbolVisual","categoryIdx","categoryStyle","visualList","normalize","graphEdgeVisual","edgeData","getEdgeData","getEdgeByIndex","KEY_DELIMITER","getAutoCurvenessParams","createCurveness","appendLength","autoCurvenessParmas","curvenessList","__curvenessList","getKeyOfEdges","n1","n2","getOppositeKey","split","getEdgeFromMap","__edgeMap","getTotalLengthBetweenNodes","getEdgeMapLengthWithKey","lenV","edgeMap","initCurvenessList","createEdgeMapForCurveness","oppositeEdges","isForward","getCurvenessForEdge","needReverse","autoCurvenessParams","isArrayParam","edgeArray","edgeIndex","totalLen","curKey","parityCorrection","oppositeKey","resValue","simpleLayout","simpleLayoutEdge","eachEdge","vec2","graphSimpleLayout","dimensions_1","getNodeGlobalScale","_symbolRadiansHalf","circularLayout","basedOn","_layoutNodesBasedOn","cp1","x12","y12","unitAngle","radianHalf","sumRadian","symbolRadianHalf","asin","halfRemainRadian","graphCircularLayout","scaleAndAdd","forceLayout","inNodes","inEdges","edges","gravity","pp","initialFriction","friction","beforeStepCallback","afterStepCallback","warmUp","setFixed","setUnfixed","beforeStep","afterStep","v12","nLen","ignoreForceLayout","repFact","rep","graphForceLayout","preservedPoints_1","preservedPoints","graph_1","nodeData_1","forceModel","initLayout","nodeDataExtent_1","edgeDataExtent_1","repulsion","edgeLength","repulsionArr_1","edgeLengthArr_1","nodes_1","edgeModel","forceInstance","l","getNodeByIndex","stopped","createViewCoordSys","viewList","coordSysType","positions","bbWidth","bbHeight","straightLineProto","bezierCurveProto","StraightLineShape","CurveShape","isStraightLine","ECLinePath","pointAt","tangentAt","SYMBOL_CATEGORIES","makeSymbolTypeKey","symbolCategory","lineData","symbolKeepAspect","symbolSizeArr","symbolOffsetArr","__specifiedRotation","createLine","setLinePoints","targetShape","_createLine","_updateCommonStl","childOfName","getLinePath","blurLineStyle","selectLineStyle","lineState","lineStateStyle","stateStyle","labelNormalModel","__align","__verticalAlign","__position","__labelDistance","local","linePath","symbolFrom","symbolTo","invScale","fromPos","toPos","setSymbolRotation","specifiedRotation","tangent","halfPercent","LineDraw","LineCtor","_LineCtor","LineGroup","lineDraw","oldLineData","_lineData","_doAdd","_doUpdate","isEffectObject","lineNeedsDraw","newLineData","itemEl","isPointNaN","pts","v1","v2","v3","quadraticAt","curveTool","v2DistSquare","mathAbs","intersectCurveCircle","curvePoints","radiusSquare","_t","nextDiff","adjustEdge","tmp0","quadraticSubdivide","pts2","fromSymbol","toSymbol","__original","originalPoints","isViewCoordSys","GraphView","_lineDraw","_firstRender","groupNewProp","clearTimeout","_layoutTimeout","layoutAnimation","_startForceLayoutIteration","getGraphicEl","_layouting","getAdjacentDataIndices","circularRotateLabel","setTimeout","generateNodeKey","Graph","directed","_nodesMap","_edgesMap","_directed","isDirected","addNode","nodesMap","GraphNode","hostGraph","addEdge","edgesMap","GraphEdge","outEdges","getEdge","breadthFirstTraverse","startNode","edgeType","__visited","queue","currentNode","otherNode","inDegree","outDegree","dataIndices","adjacentEdge","createGraphDataProxyMixin","hostName","dataName","createGraphFromNodeEdge","linkNameList","validEdges","linkCount","coordSysCtor","CoordinateSystem","GraphSeriesModel","_categoriesData","fillDataTextStyle","links","_updateCategoriesData","defaultEmphasis","categoriesModels","_categoriesModels","categoryModel","oldGetModel","newGetModel","resolveParentPath","pathArr","newPathArr","sourceName","nameArr","nodeMarkup","defaultSeriesFormatTooltip","circular","rotateLabel","force","edgeSymbol","edgeSymbolSize","edgeLabel","edgeVisual","POST_CHART_LAYOUT","createView","PointerShape","PointerPath","parsePosition","formatLabel","labelFormatter","GaugeView","colorList","posInfo","_renderMain","axisLineModel","MainPath","showAxis","axisLineWidth","angles","normalizeArcAngles","angleRangeSpan","prevEndAngle","getColor","_renderTicks","_renderTitleAndDetail","_renderAnchor","_renderPointer","minVal","maxVal","subSplitNumber","splitLineLen","tickLen","subStep","splitLineStyle","splitLineDistance","unitX","unitY","autoColor","tickLine","oldProgressData","_progressEls","progressList","showPointer","progressModel","showProgress","valueExtent","angleExtent","createPointer","pointerModel","pointerWidth","pointerLength","pointerStr","pointerOffset","pointerOffsetX","pointerOffsetY","pointerKeepAspect","pointer","createProgress","ProgressPath","isOverlap","progressWidth","isClip","setCommonECData","previousPointer","previousRotate","previousProgress","previousEndAngle","anchorModel","showAnchor","anchorSize","anchorType","offsetCenter","anchorKeepAspect","contentGroup","newTitleEls","newDetailEls","showPointerAbove","_titleEls","_detailEls","itemTitleModel","titleOffsetCenter","titleX","titleY","labelEl","itemDetailModel","detailOffsetCenter","detailX","detailY","detailColor","formatter_1","animateLabelValue","fmt","extendParams","GaugeSeriesModel","visualStyleAccessPath","overlap","showAbove","title","detail","lineHeight","opacityAccessPath","FunnelPiece","insideStroke","outsideFill","FunnelView","funnelPiece","FunnelSeriesModel","toFixed","minSize","funnelAlign","getSortedIndices","isAscending","funnelLayout","sizeExtent","itemSize","getLinePoints","val_1","DEFAULT_SMOOTH","ParallelView","_dataGroup","_initialized","dataGroup","newDataIndex","addEl","updateElCommon","oldDataIndex","createLinePoints","createGridClipShape","parallelModel","isEmptyValue","numericToNumber","eqNaN","ParallelSeriesModel","visualDrawType","makeDefaultEncode","getRawIndicesByActiveState","activeState","eachActiveState","theActiveState","parallelIndex","inactiveOpacity","activeOpacity","dataDimIndex","convertDimNameToNumber","parallelVisual","opacityMap","active","inactive","itemOpacity","parallelPreprocessor","createParallelIfNeeded","mergeAxisOptionFromParallel","parallel","hasParallelSeries","parallelAxis","axisOption","parallelOption","parallelAxisDefault","CLICK_THRESHOLD","_handlers","handlers","handler","createOrUpdate","_throttledDispatchExpand","_dispatchExpand","mousedown","checkTrigger","_mouseDownPoint","mouseup","mouseDownPoint","getSlidedAxisExpandWindow","behavior","axisExpandWindow","mousemove","debounceNextCall","triggerOn","ParallelModel","newOption","_initDimensions","setAxisExpand","parallelAxisIndex","axisModels","queryComponents","axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandRate","axisExpandDebounce","axisExpandSlideTriggerArea","axisExpandTriggerOn","ParallelAxis","sliderMove","handleEnds","handleIndex","minSpan","maxSpan","extentSpan","restrict","handleSpan","originalDistSign","getSpanSign","extentMinSpan","realExtent","sign","currDistSign","span","mathFloor","mathCeil","Parallel","_axesLayout","_init","axisHelper","_updateAxesFromSeries","_makeLayoutInfo","axisBase","layoutBase","pixelDimIndex","pAxis","pLayout","axisLength","layoutLength","layoutUtil","_layoutAxes","layoutExtent","axisCount","winSize","axisCollapseWidth","winInnerIndices","axisExpandWindow0Pos","layoutAxisWithExpand","layoutAxisWithoutExpand","positionTable","horizontal","vertical","rotationTable","axisCoordToPoint","dataDimensions","hasActiveSet","hasAxisBrushed","lenj","getActiveState","axisLayout","getAxisLayout","pointCoord","triggerArea","useJump","winSize2","createParallelCoordSys","coordSysList","parallelCoordSysCreator","ParallelAxisModel","activeIntervals","getAreaSelectStyle","setActiveIntervals","intervals","BRUSH_PANEL_GLOBAL","mathPow","COVER_Z","UNSELECT_THRESHOLD","MIN_RESIZE_LINE_WIDTH","MUTEX_RESOURCE_KEY","DIRECTION_MAP","CURSOR_MAP","ne","sw","nw","se","DEFAULT_BRUSH_OPT","brushStyle","transformable","brushMode","removeOnClick","baseUID","BrushController","_track","_covers","_uid","pointerHandlers","enableBrush","brushOption","_mounted","_brushType","_doDisableBrush","brushType","_doEnableBrush","_enableGlobalPan","_brushOption","setPanels","panelOpts","panels_1","_panels","panelId","mount","enableGlobalPan","updateCovers","coverConfigList","coverConfig","tmpIdPrefix","oldCovers","newCovers","creatingCover","_creatingCover","oldGetKey","addOrUpdate","cover","__brushOption","newBrushInternal","endCreating","createCover","updateCoverAfterCreation","unmount","clearCovers","coverRenderers","updateZ","coverRenderer","getCoverRenderer","updateCoverShape","updateCommon","getPanelByPoint","localCursorPoint","panels","panel","pn","isTargetByCursor","getPanelByCover","covers","originalLength","areas","shouldShowCover","getTrackEnds","createBaseRectCover","rectRangeConverter","edgeNameSequences","makeStyle","driftRect","ondragend","nameSequence","updateBaseRect","localRange","handleSize","xa","ya","x2a","y2a","widtha","heighta","updateRectShape","mainEl","globalDir","getGlobalDirection1","getGlobalDirection2","pointsToRect","clipByPanel","formatRectRange","getTransform","localDirName","inverseMap","localDirNameSeq","dirNameSequence","rectRange","toRectRange","localDelta","toLocalDelta","dirName","ind","fromRectRange","driftPolygon","localD","localZero","xmin","ymin","xmax","ymax","resetCursor","isOutsideZrArea","currPanel","setCursorStyle","preventDefault","rawE","mainShapeContain","updateCoverByMouse","_creatingPanel","thisBrushOption","eventParams","determineBrushType","coverBrushOption","getCreatingRange","defaultBrushType","handleDragEnd","lineX","getLineRenderer","lineY","returnInput","localTrack","ends","xyIndex","otherExtent","getLinearBrushOtherExtent","makeRectPanelClipPath","normalizeRect","localPoints","graphicUtil","makeLinearBrushOtherExtent","specifiedXYIndex","brushWidth","makeRectIsTargetByCursor","targetModel","elementList","ParallelAxisView","_brushController","_onBrush","fromAxisAreaSelect","areaSelectStyle","areaWidth","builderOpt","_refreshBrushController","extentLen","extra","brushHelper","getCoverInfoList","eventParam","coverInfoList","coverInfo","realtime","parallelAxisId","installParallelActions","parallelAxisModel","defaultAxisOption","installParallelComponent","BRUSH","SankeyPathShape","SankeyPath","SankeyView","_focusAdjacencyDisabled","sankeyView","curve","n1Layout","node1Model","dragX1","dragY1","n2Layout","node2Model","dragX2","dragY2","edgeLayout","ty","sourceColor","targetColor","dragX","dragY","localX","localY","SankeySeriesModel","nodeDepth","setNodePosition","localPosition","dataItem","rawDataOpt","edgeValue","edgeName","nodeValue","nodeGap","layoutIterations","nodeAlign","sankeyLayout","computeNodeValues","filteredNodes","iterations","layoutSankey","computeNodeBreadths","computeNodeDepths","computeEdgeDepths","value1","getEdgeValue","value2","nodeRawValue","remainEdges","indegreeArr","zeroIndegrees","nextTargetNode","maxNodeDepth","isItemDepth","edgeIdx","indexEdge","nodeIndex","maxDepth","adjustNodeWithNodeAlign","kx","scaleNodeBreadths","isNodeDepth","nextSourceNode","remainNodes","skNodeHeight","moveSinksRight","nodesByBreadth","prepareNodesByBreadth","initializeNodeDepth","resolveCollisions","alpha","relaxRightToLeft","relaxLeftToRight","keyAttr","groupResult","groupData","buckets","minKy","ky","nodeDy","edgeDy","nodeDyAttr","weightedTarget","centerTarget","nodeY","weightedSource","centerSource","array","sankeyVisual","minValue_1","maxValue_1","mapValueToColor","customColor","WhiskerBoxCommonMixin","ordinalMeta","xAxisType","yAxisType","addOrdinal","coordDims","baseAxisDimIndex","_baseAxisDim","baseAxisType","otherAxisType","newOptionData_1","newItem","defaultValueDimensions","getDimensionTypeByAxis","otherDims","dimsDef","makeSeriesEncodeForAxisCoordSys","BoxplotSeriesModel","defaultTooltip","boxWidth","mixin","BoxplotView","constDim","createNormalBox","updateNormalBoxData","BoxPathShape","BoxPath","transInit","updateMethod","initBaseline","boxplotVisual","boxplotLayout","groupSeriesByAxis","groupItem","calculateBase","layoutSingleSeries","boxOffsetList","boxWidthList","axisList","seriesCount","boundList","bandWidth","getBandWidth","maxDataCount_1","boxWidthBound","boxGap","halfWidth","cDimIdx","vDimIdx","cDim","vDims","axisDimVal","median","getPoint","end1","end2","end4","end5","addBodyEnd","layEndLine","point1","point2","endCenter","to","prepareBoxplotData","boxData","outliers","boundIQR","useExtreme","ascList","Q1","quantile","Q2","Q3","bound","low","high","itemNameFormatter","outlier","boxplotTransform","upstream","sourceFormat","SOURCE_FORMAT_ARRAY_ROWS","makePrintable","throwError","registerTransform","SKIP_PROPS","CandlestickView","_incrementalRenderNormal","isSimpleBox","isNormalBoxClipped","setBoxCommon","NormalBoxPathShape","NormalBoxPath","__simpleBox","LargeBoxPathShape","LargeBoxPath","__sign","largePoints","elP","elN","setLargeStyle","CandlestickSeriesModel","getShadowDim","brushRect","color0","borderColor0","barMaxWidth","barMinWidth","candlestickPreprocessor","seriesItem","positiveBorderColorQuery","negativeBorderColorQuery","positiveColorQuery","negativeColorQuery","candlestickVisual","performRawSeries","getBorderColor","isSeriesFiltered","isLargeRender","candlestickLayout","candleWidth","calculateCandleWidth","cDimI","vDimsI","openDimI","closeDimI","lowestDimI","highestDimI","largeProgress","normalProgress","openVal","closeVal","lowestVal","highestVal","ocLow","ocHigh","ocLowPoint","ocHighPoint","lowestPoint","highestPoint","subPixelOptimizePoint","getSign","makeBrushRect","pmin","pmax","preprocessor","updateRipplePath","rippleGroup","effectCfg","rippleEffectColor","ripplePath","EffectSymbol","stopEffectAnimation","startEffectAnimation","rippleNumber","period","effectOffset","animate","when","rippleScale","animateStyle","updateEffectAnimation","oldEffectCfg","_effectCfg","DIFFICULT_PROPS","setScale","showEffectOn","EffectScatterView","effectSymbolDraw","_updateGroupTransform","EffectScatterSeriesModel","effectType","rippleEffect","number","EffectLine","_updateEffectSymbol","effectModel","_symbolScale","_updateEffectAnimation","constantSpeed","delayExpr","_updateAnimationPoints","_getLineLength","_period","_loop","delayNum","__t","_animateSymbol","_updateSymbolPosition","__p1","__cp1","__p2","lastPos","curveUtil","quadraticDerivativeAt","tx","__lastT","_createPolyline","lineEmphasisState","EffectPolyline","_lastFrame","_lastFramePercent","accLenArr","_length","_offsets","offsets","lastFrame","LargeLinesPathShape","segs","LargeLinesPath","lineContain","quadraticContain","LargeLineDraw","lineEl","oldSegs","newSegs","isIncremental","linesLayout","isPolyline","isLarge","lineCoords","totalCoordsCount","getLineCoordsCount","getLineCoords","LinesView","_updateLineDraw","trailLength","isSvg","_lastZlevel","_showEffect","progressiveRender","hasEffect","_hasEffet","_isPolyline","Uint32Arr","Uint32Array","Float64Arr","Float64Array","compatEc2","itemOpt","coords","fromName","toName","mergeAll","LinesSeriesModel","_processFlatCoordsArray","_flatCoords","flatCoords","_flatCoordsOffset","flatCoordsOffset","appendData","concatArray","_getCoordsFromItemModel","stringify","startOffset","coordsOffsetAndLenStorage","coordsStorage","coordsCursor","offsetCursor","dataCount","CoordSys","preventIncremental","effect","linesVisual","dataEach","GRADIENT_LEVELS","HeatmapLayer","blurSize","pointSize","maxOpacity","minOpacity","_gradientPixels","inRange","outOfRange","canvas","colorFunc","isInRange","_getBrush","gradientInRange","_getGradient","gradientOutOfRange","imageData","getImageData","pixels","pixelLen","diffOpacity","gradientOffset","putImageData","brushCanvas","_brushCanvas","gradientPixels","pixelsSingleState","Uint8ClampedArray","getIsInPiecewiseRange","dataSpan","getIsInContinuousRange","isGeoCoordSys","HeatmapView","visualMapOfThisSeries","visualMap","eachTargetSeries","targetSeries","_renderOnCartesianAndCalendar","_renderOnGeo","isCartesian2d","dataDims","dataDimX","dataDimY","dataToRect","contentShape","emphasisModel_1","visualMapModel","inRangeVisuals","targetVisuals","outOfRangeVisuals","hmLayer","_hmLayer","lng","lat","getPieceList","HeatmapSeriesModel","coordSysCreator","BAR_BORDER_WIDTH_QUERY","LAYOUT_ATTRS","posDesc","pathForLineWidth","PictorialBarView","coordSysRect","ecSize","coordSysExtent","categoryDim","symbolMeta","getSymbolMeta","bar","createBar","pictorialShapeStr","getShapeStr","__pictorialShapeStr","updateBar","__pictorialSymbolMeta","removeBar","symbolRepeat","symbolClip","symbolPosition","symbolPatternSize","symbolRepeatDirection","prepareBarLength","prepareSymbolSize","boundingLength","pxSign","prepareLineWidth","symbolScale","prepareLayoutInfo","valueLineWidth","repeatCutLength","outputSymbolMeta","symbolBoundingData","zeroPx","pxSignIdx","symbolBoundingExtent","convertToCoordOnAxis","categorySize","parsedSymbolSize","unitLength","pathLen","absBoundingLength","symbolMargin","hasEndGap","lastIndexOf","symbolMarginNumeric","uLenWithMargin","endFix","repeatSpecified","isNumeric","repeatTimes","toIntTimes","mDiff","sizeFix","pathPosition","bundlePosition","barRectShape","createPath","createOrUpdateRepeatSymbols","bundle","__pictorialBundle","unit","eachPath","__pictorialAnimationIndex","__pictorialRepeatTimes","makeTarget","createOrUpdateSingleSymbol","mainPath","__pictorialMainPath","createOrUpdateBarRect","barRect","__pictorialBarRect","createOrUpdateClip","__pictorialClipPath","getAnimationDelayParams","labelRect","immediateAttrs","animationAttrs","barPositionOutside","times","roundedTimes","PictorialBarSeriesModel","defaultSymbol","stack","barGap","ThemeRiverView","layersSeries","getLayerSeries","keyGetter","dataDiffer","_layersSeries","newLayersGroups","oldLayersGroups","points0","textLayout","layerGroup","DATA_NAME_INDEX","ThemeRiverSeriesModel","fixData","rawDataLength","timeValueKeys","layerData","dataList","layerNum","timeValue","singleAxisModel","filterData","dimensionsDefine","single","lenCount","indexArr","timeDim","layerSeries","index1","index2","getAxisTooltipData","nestestValue","minDist","nearestIdx","pointNum","theValue","singleAxisIndex","themeRiverLayout","doThemeRiverLayout","layerPoints","singleLayer","computeBaseline","baseLine","baseY0","layerIndex","sums","temp","DEFAULT_SECTOR_Z","DEFAULT_TEXT_Z","SunburstPiece","_seriesModel","_ecModel","itemStyleModel","labelMinAngle","isNormalShown","DISPLAY_STATES","labelStateModel","isNormal","isShown","getLabelAttr","sectorState","labelColor","labelPadding","stateAttr","dirtyStyle","ROOT_TO_NODE_ACTION","HIGHLIGHT_ACTION","UNHIGHLIGHT_ACTION","installSunburstAction","handleHighlight","deprecateReplaceLog","SunburstView","newRoot","renderLabelForZeroData","newChildren","oldChildren","_oldChildren","renderRollUp","virtualPiece","targetFound","SunburstSeriesModel","_levelModels","blur","sunburstLayout","rootDepth","renderRollupNode","rPerLevel","rStart","rEnd","r0_1","r_1","radius_1","siblingAngle_1","sortOrder","sortTargets","isAsc_1","sunburstVisual","pickColor","treeHeight","lift","STYLE_VISUAL_TYPE","NON_STYLE_VISUAL_PROPS","legendIcon","customInnerStore","CustomSeriesModel","currentZLevel","currentZ","dataToCoordSize","dataSize","halfSize","cartesianPrepareCustom","geoPrepareCustom","singlePrepareCustom","getterName","polarPrepareCustom","radiusAxis","getRadiusAxis","angleAxis","getAngleAxis","dataToRadius","dataToAngle","calendarPrepareCustom","rangeInfo","getRangeInfo","cellWidth","getCellWidth","cellHeight","getCellHeight","weeks","dayCount","allDay","deprecatedLogs","isEC4CompatibleStyle","elType","hasOwnTextContentOption","hasOwnTextConfig","legacy","convertFromEC4CompatibleStyle","hostStyle","srcStyle","textContentStyle","textFill","textStroke","hasOwnPos","textOffset","textDistance","convertEC4CompatibleRichItem","richItem","textStrokeWidth","textLineHeight","textWidth","textHeight","textBackgroundColor","textBorderColor","textBorderWidth","textBorderRadius","textBoxShadowColor","textBoxShadowBlur","textBoxShadowOffsetX","textBoxShadowOffsetY","convertToEC4StyleForCustomSerise","itemStl","txStl","txCfg","isInside","hostFill","convertToEC4RichItem","textFillNotSet","insideFill","outsideStroke","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","warnDeprecated","deprecated","insteadApproach","LEGACY_TRANSFORM_PROPS_MAP","LEGACY_TRANSFORM_PROPS","TRANSFORM_PROPS_MAP","reduce","TRANSFORMABLE_PROPS","transformPropNamesStr","ELEMENT_ANIMATABLE_PROPS","transitionInnerStore","getElementAnimationConfig","elOption","animationProp","getAnimationConfig","userDuring","duringCall","applyUpdateTransition","animatableModel","clearStyle","styleOpt","transFromProps","propsToSet","prepareTransformAllPropsFinal","prepareShapeOrExtraAllPropsFinal","prepareTransformTransitionFrom","prepareShapeOrExtraTransitionFrom","prepareStyleTransitionFrom","applyPropsDirectly","applyMiscProps","enterFromProps_1","enterFrom","applyPropsTransition","updateLeaveTo","leaveToProps","leaveTo","applyLeaveTransition","onRemove","isTransitionAll","transition","allPropsFinal","changeTarget","tmpDuringScope","transitionDuringAPI","assertNotReserved","getShape","getStyle","setExtra","getExtra","latestUserDuring","scopeUserDuring","mainAttr","fromEl","attrOpt","elPropsInAttr","transFromPropsInAttr","attrTransition","transitionKeys","elVal","elPropsInAttrKeys","isNonStyleTransitionEnabled","allProps","allPropsInAttr","keysInAttr","cloneValue","checkTransformPropRefer","legacyName","xyName","legacyArr","fromElStyle","transFromStyleProps","styleTransition","elTransition","getAnimationStyleProps","animationProps","animationStyleProps","styleKeys","optVal","isArrayLike","usedIn","getStateToRestore","KEYFRAME_EXCLUDE_KEYS","stopPreviousKeyframeAnimationAndRestore","applyKeyframeAnimation","animationOpts","singleAnimationOpts","stateToRestore","targetPropName","endFrameIsSet","kfValues","propKeys","stopTracks","savedTarget","whenWithKeys","EMPHASIS","NORMAL","BLUR","SELECT","STATES","PATH_ITEM_STYLE","PATH_LABEL","DEFAULT_TRANSITION","GROUP_DIFF_PREFIX","attachedTxInfoTmp","prepareCustoms","prepareCartesian2d","prepareGeo","prepareSingleAxis","preparePolar","calendar","prepareCalendar","isPath","isDisplayable","copyElement","sourceEl","targetEl","CustomChartView","customSeries","renderItem","makeRenderItem","createOrUpdateItem","oldEl","setIncrementalAndHoverLayer","filterForExposedEvent","eventType","packedEvent","elementName","createEl","graphicType","pathRect","pathData","getPathData","customPathData","customImagePath","Clz","customGraphicType","z2SelectLift","updateElNormal","attachedTxInfo","txCfgOpt","textOptionStyle","decalPattern","decalObj","__decalPattern","keyframeAnimation","updateElOnState","elStateOpt","elDisplayable","stateObj","existingEmphasisState","optZ2","updateZForEachState","retrieveStateOption","prepareResult","userAPI","ordinalRawValue","styleEmphasis","barLayout","currentSeriesIndices","userParams","dataInsideLength","encode","wrapEncodeDef","currDataIndexInside","currItemModel","currItemStyleModels","currLabelModels","seriesItemStyleModels","seriesLabelModels","dataIndexInside","getItemStyleModel","getLabelModel","actionType","userProps","labelStyleHelper","preFetchFromExtra","applyUserPropsAfter","style_1","getLayoutOnAxis","getCurrentSeriesIndices","encodeDef","isExtraCoord","coordDimIndex","existsEl","doCreateOrUpdateEl","toBeReplacedIdx","doesElNeedRecreate","childrenRef","clearStates","morph","conOpt","isLegacy","doCreateOrUpdateAttachedTx","doCreateOrUpdateClipPath","otherStateOpt","otherStyleOpt","retrieveStyleOptionOnState","mergeChildren","replaceAt","elInner","elOptionType","elOptionShape","elOptionStyle","isUniversalTransitionEnabled","hasOwnPathData","clipPathOpt","processTxInfo","txConOptNormal","txConOptEmphasis","txConOptBlur","txConOptSelect","txConStlOptNormal","txConOptOtherState","stateOpt","txConOpt","convertResult","txConOptNormal_1","stateOptionNormal","stateOption","$mergeChildren","byName","diffChildrenByName","notMerge","diffGroupChildren","childCount","processAddUpdate","processRemove","childOption","BaseAxisPointer","animationThreshold","_axisModel","_axisPointerModel","_lastValue","_lastStatus","_group","handle","_handle","hide","makeElOption","graphicKey","_lastGraphicKey","moveAnimation","_moveAnimation","determineAnimation","createPointerEl","createLabelEl","doUpdateProps","updatePointerEl","updateLabelEl","updateMandatoryProps","_renderHandle","isCategoryAxis","useSnap","pointerOption","pointerEl","updateLabelShowHide","updateHandleTransform","handleModel","onmousemove","onmousedown","_onHandleDragMove","_onHandleDragEnd","throttleUtil","_moveHandleToValue","getHandleTransProps","getHandleTransform","trans","_payloadInfo","lastProp","_doDispatchAxisPointer","payloadInfo","cursorPoint","tooltipOption","buildLabel","xDimIndex","propsEqual","lastProps","newProps","equals_1","buildElStyle","axisPointerType","styleModel","buildLabelElOption","labelPos","getValueLabel","paddings","formatUtil","textContain","confineInContainer","seriesDataIndices","getLabel","params_1","axisDimension","seriesData","idxItem","getSeriesByIndex","dataParams","getTransformedPosition","buildCartesianSingleLabelElOption","makeLineShape","makeRectShape","makeSectorShape","CartesianAxisPointer","pixelValue","elStyle","viewHelper","pointerShapeBuilder","currPosition","cursorOtherValue","tooltipOptions","getAxisDimIndex","shadow","AxisPointerModel","shadowStyle","register","records","initGlobalListeners","record","initialized","useHandler","doEnter","onLeave","dis","makeDispatchAction","dispatchTooltipFinally","pendings","showLen","showTip","hideLen","hideTip","actuallyPayload","currTrigger","pendingList","unregister","AxisPointerView","globalListener","findPointFromSeries","isStacked","axisTrigger","illegalPoint","isIllegalPoint","inputAxesInfo","shouldHide","outputPayload","showValueMap","dataByCoordSys","updaters","showTooltip","coordSysContainsPoint","inputAxisInfo","findInputAxisInfo","processOnAxis","linkTriggers","tarAxisInfo","tarKey","srcAxisInfo","srcKey","srcValItem","makeMapperParam","updateModelActually","dispatchTooltipActually","dispatchHighDownActually","newValue","noSnap","outputFinder","buildPayloadsBySeries","payloadBatch","snapToValue","minDiff","dataDim","seriesNestestValue","indicesOfNearest","modelHelper","coordSysItem","coordSysId","coordSysIndex","coordSysMainType","dataByAxis","valueLabelOpt","outputAxesInfo","valItem","sampleItem","escapeConnect","highDownKey","lastHighlights","newHighlights","batchItem","toHighlight","toDownplay","notBlur","batch","installSimple","installAxisPointer","PolarAxisPointer","coordValue","getLabelPosition","axisAngle","PolarModel","findAxisModel","foundAxisModel","PolarAxisModel","AngleAxisModel","RadiusAxisModel","RadiusAxis","radiusToData","AngleAxis","calculateCategoryInterval","ordinalScale","ordinalExtent","tickCount","unitSpan","unitH","maxH","cache","lastAutoInterval","lastTickCount","angleToData","polarDimensions","Polar","_radiusAxis","_angleAxis","maxAngle","d2","polarModel","resizePolar","parsedRadius","updatePolarScale","isAngleAxisModel","setAxis","polarCreator","polarList","radiusAxisModel","angleAxisModel","getAxisLineShape","rExtent","getRadiusIdx","fixAngleOverlap","firstItem","lastItem","AngleAxisView","ticksAngles","minorTickAngles","angelAxisElementsBuilders","rId","r0Id","lines","tickAngleItem","tickAngles","commonLabelModel","labelTextAlign","labelTextVerticalAlign","prevAngle","r1","RadiusAxisView","newAxisGroup","layoutAxis","prevRadius","getSeriesStackId","getAxisKey","barLayoutPolar","lastStackCoords","barWidthAndOffset","calRadialBar","getSeriesByType","stackId","columnLayoutInfo","columnOffset","columnWidth","clampLayout","valueAxisStart","baseValue","baseCoord","radiusSpan","angleSpan","barSeries","columnsMap","columnsOnAxis","remainedWidth","autoWidthCount","categoryGap","stacks","barCategoryGap","coordSysName","barGapPercent","autoWidth","column","widthSum","lastColumn","angleAxisExtraOption","radiusAxisExtraOption","PolarView","directionMap","SingleAxisView","singleAxisHelper","SingleAxisModel","SingleAxis","singleDimensions","Single","_axis","_adjustAxis","_updateAxisTransform","extentSum","singleModel","singles","singleCreator","XY","WH","SingleAxisPointer","getPointDimIndex","SingleView","CalendarModel","mergeAndNormalizeLayoutParams","getCellSize","cellSize","dayLabel","firstDay","monthLabel","yearLabel","cellSizeArr","ignoreSize","hvIdx","sizeCalculable","CalendarView","calendarModel","rangeData","localeModel","getLocaleModel","_renderDayRect","_renderLines","_renderYearText","_renderMonthText","_renderWeekText","itemRectStyleModel","sh","getNextNDay","tl","_tlpoints","_blpoints","_firstDayOfMonth","_firstDayPoints","addPoints","formatedDate","getDateInfo","date","setMonth","getMonth","_getLinePointsOfOneWeek","_drawSplitline","_getEdgesPoints","rs","poyline","parsedDate","tmpD","day","_formatterLabel","formatTplSimple","_yearTextPositionControl","aligns","xc","yc","posPoints","yearText","_monthTextPositionControl","isCenter","vAlign","termPoints","firstDayPoints","yyyy","yy","MM","monthText","_weekTextPositionControl","isStart","firstDayOfWeek","getFirstDayOfWeek","dayOfWeekShort","lweek","fweek","weekText","PROXIMATE_ONE_DAY","Calendar","getDimensionsInfo","_rangeInfo","_sw","_sh","_orient","_firstDayOfWeek","getFullYear","mStr","getDate","dStr","getDay","getTime","setDate","_lineWidth","_getRangeInfo","_initRangeOption","whNames","layoutParams","cellNumbers","cellSizeSpecified","whGlobal","calendarRect","dayInfo","week","nthWeek","pointToDate","tr","br","bl","nthX","nthY","_getDateByWeeksAndDay","normalizedRange","rangeStr","toString","test","parsedRange","reversed","startDateNum","endDateNum","dateNum","nthDay","calendarList","calendarSeries","setKeyInfoToNewElOption","resultItem","newElOption","existElOption","existing","keyInfo","parentId","newElParentOption","parentOption","isSetLoc","isSet","mergeNewElOptionToExist","existList","newElOptCopy","$action","newType","copyLayoutParams","copyTransitionInfo","TRANSITION_PROPS_TO_COPY","ROOT_TRANSITION_PROPS_TO_COPY","setLayoutInfoToExist","existItem","hv","existingGroupOpt","newGroupOpt","GraphicComponentModel","preventAutoZ","elements","newList","flattenedList","_flatten","mappingResult","elOptionsToUpdate","_elOptionsToUpdate","optionList","useElOptionsToUpdate","nonShapeGraphicElements","Text","GraphicComponentView","_elMap","graphicModel","_lastGraphicModel","_updateElements","_relocate","elMap","rootGroup","globalZ","globalZLevel","elExisting","targetElParent","textContentOption","elOptionCleaned","getCleanedElOption","isMerge","isReplace","el_1","isNew","updateCommonAttrs","removeEl","el_2","textContentExisting","clipPathOption","clipPathType","newEl","setEventData","elOptions","apiWidth","apiHeight","isParentRoot","parentElInner","containerInfo","layoutPos","layouted","boundingMode","bounding","animatePos","existElParent","defaultZ","defaultZlevel","graphicOption","DATA_ZOOM_AXIS_DIMENSIONS","SERIES_COORDS","isCoordSupported","coordType","getAxisMainType","getAxisIndexPropName","getAxisIdPropName","findEffectedDataZooms","axisRecords","effectedModels","effectedModelMap","dataZoomModel","addToEffected","foundNewLink","processSingle","isLinked","dataZoom","markAxisControlled","isLink","eachTargetAxis","axisIdxArr","collectReferCoordSysModelInfo","coordSysInfoWrap","infoList","infoMap","coordSysUid","coordSysInfo","DataZoomAxisInfo","indexList","indexMap","axisCmptIdx","DataZoomModel","_autoThrottle","_noTarget","_rangePropMode","inputRawOption","retrieveRawOption","settledOption","_doInit","_setDefaultThrottle","_updateRangeUse","_resetTarget","optionOrient","targetAxisIndexMap","_targetAxisInfoMap","hasAxisSpecified","_fillSpecifiedTargetAxis","_makeAutoOrientByTargetAxis","_fillAutoTargetAxisByOrient","refering","MULTIPLE_REFERRING","specified","needAuto","setParallelAxis","gridModel_1","axModel","globalOption","rangePropMode","rangeModeInOption","percentSpecified","valueSpecified","noTarget","getFirstTargetAxisModel","firstAxisModel","getAxisProxy","getAxisModel","__dzAxisProxy","setRawRange","setCalculatedRange","getPercentRange","axisProxy","findRepresentativeAxisProxy","getDataPercentWindow","getValueRange","getDataValueWindow","firstProxy","axisDimList","proxy","hostedBy","getRangePropMode","filterMode","SelectDataZoomModel","DataZoomView","SelectDataZoomView","AxisProxy","_dimName","_axisIndex","_dataZoomModel","_valueWindow","_percentWindow","getTargetSeriesModels","axisMainType","getMinMaxSpan","_minMaxSpan","calculateDataWindow","_dataExtent","percentExtent","percentWindow","valueWindow","hasPropModeValue","boundPercent","boundValue","spans","restrictSet","fromWindow","toWindow","fromExtent","toExtent","toValue","suffix","calculateDataExtent","_updateMinMaxSpan","dataWindow","_setAxisModel","store_1","dataDimIndices_1","leftOut","rightOut","thisHasValue","thisLeftOut","thisRightOut","isInWindow","selectRange","setApproximateExtent","minMaxSpan","minMax","percentSpan","valueSpan","rawExtentInfo","setDeterminedMinMax","freeze","unionAxisExtentFromData","rawExtentResult","ensureScaleRawExtentInfo","calculate","dataZoomProcessor","getTargetSeries","eachAxisModel","proxyList","seriesModelMap","overallReset","percentRange","valueRange","installDataZoomAction","installed","installCommon","FILTER","SelectZoomModel","SelectZoomView","ToolboxFeature","registerFeature","ctor","getFeature","ToolboxModel","feature","featureOpt","featureName","Feature","featureManager","itemGap","showTitle","iconStyle","viewportSize","layoutBox","positionElement","makeBackground","ToolboxView","toolboxModel","isVertical","featureOpts","_features","featureNames","_featureNames","processFeature","oldName","featureModel","newTitle","isUserFeatureName","isToolboxFeature","unusable","createIconPaths","setIconStatus","iconName","iconPaths","iconStatus","iconStyleModel","iconStyleEmphasisModel","icons","getIcons","titles","iconsMap","titlesMap","iconStr","ZRText","formatterParamsExtra","__title","hoverStyle","defaultTextPosition","listComponentHelper","titleText","emphasisTextConfig","emphasisTextState","emphasisTextStyle","makeFont","needPutOnTop","topOffset","updateView","SaveAsImage","getConnectedDataURL","connectedBackgroundColor","excludeComponents","browser","MouseEvent","newEdge","ie","$a","download","evt","defaultView","bubbles","cancelable","dispatchEvent","window","navigator","msSaveOrOpenBlob","parts","base64Encoded","bstr","decodeURIComponent","atob","filename","u8arr","Uint8Array","blob","Blob","body","cw","contentWindow","doc","open","write","execCommand","lang","html","tab","INNER_STACK_KEYWORD","ICON_TYPES","TITLE_TYPES","radioTypes","MagicType","availableIcons","seriesOptGenreator","generateNewSeriesTypes","newSeriesOpt","radio","currentType","tiled","markPoint","markLine","isStack","BLOCK_SPLITER","ITEM_SPLITER","groupSeries","seriesGroupByCategoryAxis","otherSeries","meta","eachRawSeries","other","assembleSeriesWithCategoryAxis","groups","tables","headers","columns","assembleOtherSeries","argLen","getContentFromModel","isTSVFormat","block","firstLine","itemSplitRegex","RegExp","parseTSVContents","tsv","tsvLines","parseListContents","hasName","parseContents","blockMetaList","blockMeta","DataView","container","getDom","_dom","viewMain","textarea","optionToContent","contentToOption","htmlOrDom","getOption","readOnly","buttonContainer","buttonStyle","closeButton","refreshButton","addEventListener","clientHeight","textareaColor","textareaBorderColor","buttonColor","buttonTextColor","tryMergeDataOption","original","newValIsObject","shouldDeleteName","newSeriesOptList","getSeriesByName","newSnapshot","storedSnapshots","getStoreSnapshots","dataZoomId","snapshot","snapshots","RestoreOption","history","resetOption","INCLUDE_FINDER_MAIN_TYPES","BrushTargetManager","_targetInfoList","foundCpts","parseFinder","targetInfoBuilders","builder","include","setOutputRanges","matchOutputRanges","coordRange","coordRanges","coordConvert","__rangeOffset","diffProcessor","xyMinMax","findTargetInfo","coordSyses","setInputRanges","rangeOffset","getScales","makePanelOpts","getDefaultBrushType","getPanelRect","controlSeries","targetInfoList","areaPanelId","targetInfoMatchers","formatMinMax","modelUtilParseFinder","includeMainTypes","xAxisModels","yAxisModels","gridModels","gridModelMap","xAxesHas","yAxesHas","panelRectBuilders","xAxisDeclared","yAxisDeclared","geoModels","axisConvert","rangeOrCoordRange","xminymin","xmaxymax","axisNameIndex","axisDiffProcessor","refer","scales","xyMinMaxCurr","xyMinMaxOrigin","sizeCurr","sizeOrigin","DATA_ZOOM_ID_BASE","makeInternalComponentId","DataZoomFeature","updateZoomBtnStatus","updateBackBtnStatus","brushTargetManager","makeAxisFinder","setBatch","_dispatchZoomAction","findDataZoom","minValueSpan","maxValueSpan","found","dzModel","has","back","nextActive","_isZoomActive","dataZoomSelectActive","dzFeatureModel","xAxisId","yAxisId","zoomActive","registerInternalOptionCreator","featureDataZoomPath","dzOptions","finderResult","buildInternalOptions","axisIndexPropName","newOpt","$fromToolbox","DataZoom","Restore","installDataZoomSelect","TooltipModel","showContent","alwaysShowContent","displayMode","renderMode","confine","showDelay","hideDelay","transitionDuration","enterable","extraCssText","shouldTooltipConfine","tooltipModel","confineOption","testStyle","styleProps","domSupported","documentElement","TRANSFORM_VENDOR","TRANSITION_VENDOR","toCSSVendorPrefix","styleVendor","styleProp","toCamelCase","getComputedStyle","stl","currentStyle","CSS_TRANSITION_VENDOR","CSS_TRANSFORM_VENDOR","gCssText","transform3dSupported","mirrorPos","assembleArrow","arrowPosition","arrowPos","positionStyle","transformStyle","rotateDeg","rotateRadian","arrowWH","rotatedWH","SQRT2","borderStyle","styleCss","assembleTransition","onlyFade","transitionCurve","transitionOption","transitionText","transformSupported","assembleTransform","is3d","translate","assembleFont","assembleCssText","enableTransition","getPaddingFromTooltipModel","boxShadow","borderName","camelCase","makeStyleCoord","appendToBody","zrX","zrY","zrPainter","zrViewportRoot","transformLocalCoord","viewportRootOffset","TooltipHTMLContent","_show","_styleCoord","_enterable","_firstShow","_longHide","domBelongToZr","_appendToBody","_container","onmouseenter","_hideTimeout","_inContent","normalizeEvent","dispatch","onmouseleave","hideLater","_hideDelay","_moveIfResized","nearPointColor","_longHideTimeout","styleCoord","setContent","markers","arrow","isDom","childNodes","arrowEl","setEnterable","offsetWidth","offsetHeight","transforms","ratioX","ratioY","willChange","TooltipRichContent","markupStyleCreator","richTextStyles","shadowOuterSize","calcShadowOuterSize","mathMaxWith0","proxyRect","TooltipView","_renderMode","getTooltipRenderMode","_tooltipContent","_tooltipModel","_alwaysShowContent","tooltipContent","_initGlobalListener","_keepShow","_tryShow","_hide","_lastX","_lastY","_refreshUpdateTimeout","isDisposed","manuallyShowTip","_lastDataByCoordSys","_ticket","cmptRef","findComponentReference","positionDefault","tooltipConfig","_manuallyAxisShowTip","pointInfo","findHover","manuallyHideTip","tooltipCascadedModel","buildTooltipModel","_showAxisTooltip","seriesDispatcher_1","cmptDispatcher_1","_showSeriesItemTooltip","_showComponentItemTooltip","_showOrMove","_showTimout","singleTooltipModel","cbParamsList","articleMarkup","markupTextArrLegacy","TooltipMarkupStyleCreator","itemCoordSys","axisItem","axisValue","axisValueLabel","axisPointerViewHelper","axisSectionMarkup","cbParams","marker","makeTooltipMarker","seriesTooltipResult","normalizeTooltipFormatResult","frag","valueFormatter","positionExpr","orderMode","builtMarkupText","buildTooltipMarkup","blockBreak","allMarkupText","_updateContentNotChangedOnAxis","_updatePosition","_showTooltipContent","dispatcher","dataModel","tooltipTrigger","markupText","asyncTicket","tooltipModelCascade","cmpt","componentMainType","subTooltipModel","defaultHtml","formatterParams","nearPoint","_getNearestPoint","useUTC","params0","isTimeAxis","timeFormat","formatTpl","cbTicket","tooltipDataParams","contentSize","boxLayoutPosition","calcTooltipPosition","refixTooltipPosition","isCenterAlign","confineTooltipPosition","lastCoordSys","lastCbParamsList","_cbParamsList","contentNotChanged","lastItemCoordSys","indexCoordSys","lastDataByAxis","thisItemCoordSys","thisDataByAxis","indexAxis","thisItem","lastIndices","newIndices","lastIdxItem","newIdxItem","seriesIdx","lastCbParams","modelCascade","defaultTooltipOption","resultModel","gapH","gapV","domWidth","domHeight","rectWidth","rectHeight","queryOptionMap","preParseFinder","queryResult","queryReferringComponents","useDefault","enableAll","enableNone","getViewOfComponentModel","subEl","DEFAULT_TOOLBOX_BTNS","brushPreprocessor","brushComponents","brushComponentSpecifiedBtns","brushOpt","tbs","toolbox","toolboxFeature","toolboxBrush","brushTypes","removeDuplicate","arr","flag","hasKeys","createVisualMappings","stateList","supplementVisualOption","visualMappings","mappings","createMappings","visualData","mappingOption","__hidden","__alphaForOpacity","Creater","replaceVisualOption","getValueState","visualTypesMap","getItemVisualFromData","setItemVisualFromData","eachItem","valueOrIndex","rawDataItem","valueState","incrementalApplyVisual","makeBrushCommonSelectorForSeries","selector","getLineSelectors","polygonContain","linePolygonIntersect","inLineRange","layoutRange","STATE_LIST","DISPATCH_METHOD","DISPATCH_FLAG","layoutCovers","brushModel","brushVisual","brushSelected","throttleType","throttleDelay","setBrushOption","brushIndex","thisBrushSelected","brushId","brushName","brushLink","linkedSeriesMap","selectedDataIndexForLink","rangeInfoBySeries","hasBrushExists","boundingRectBuilders","selectableArea","visualSolution","linkOthers","brushed","rangeInfoList","stepAParallel","stepAOthers","brushModelNotControll","checkInRange","seriesBrushSelected","doDispatch","fn","seriesIndices","getBoundingRectFromMinMax","rg","BrushView","updateVisual","$from","modelId","DEFAULT_OUT_OF_BRUSH_COLOR","BrushModel","inBrush","outOfBrush","setAreas","generateBrushOption","BrushFeature","isBrushed","_brushMode","command","keep","TitleModel","subtext","subtarget","subtextStyle","TitleView","titleModel","subtextStyleModel","disableBox","subText","subTextEl","sublink","groupRect","layoutOption","alignStyle","TimelineModel","_initData","setCurrentIndex","currentIndex","getCurrentIndex","isIndexMax","setPlayState","autoPlay","getPlayState","dataArr","_names","processedDataArr","getDataItemValue","dimType","controlPosition","rewind","playInterval","SliderTimelineModel","checkpointStyle","controlStyle","showPlayBtn","showPrevBtn","showNextBtn","playIcon","stopIcon","nextIcon","prevIcon","prevBtnSize","nextBtnSize","DataFormatMixin","TimelineView","TimelineAxis","labelDataIndexStore","SliderTimelineView","timelineModel","layoutInfo_1","_layout","mainGroup_1","_createGroup","labelGroup","axis_1","_createAxis","noName","_renderAxisLabel","_position","_doPlayStop","_updateTicksStatus","_clearTimer","labelPosOpt","parsedLabelPos","labelAlignMap","labelBaselineMap","rotationMap","mainLength","controlModel","showControl","controlSize","controlGap","sizePlusGap","playPosition","prevBtnPosition","nextBtnPosition","xLeft","xRight","labelAlign","labelBaseline","mainGroup","_labelGroup","rotateOriginX","rotateOriginY","viewBound","getBound","mainBound","labelBound","mainPosition","labelsPosition","mainBoundIdx","toBound","targetGroup","boundIdx","calcNiceTicks","newGroup","_renderAxisLine","progressLine","_progressLine","_currentPointer","_renderAxisTick","_tickSymbols","tick","hoverStyleModel","progressStyleModel","symbolOpt","_changeTimeline","giveSymbol","enableHoverEmphasis","_tickLabels","hoverLabelModel","progressLabelModel","_renderControl","playState","makeBtn","_handlePlayClick","willRotate","iconSize","btn","makeControlIcon","rectHover","_renderCurrentPointer","me","onCreate","_handlePointerDrag","_handlePointerDragend","pointerMoveTo","onUpdate","nextState","_pointerChangeTimeline","mousePos","toCoord","_toAxisCoord","targetDataIndex","_findNearestTick","_timer","vertex","axisCoord","tickSymbols","tickLabels","toggleState","OrdinalScale","TimeScale","locale","objPath","noAnimation","dragging","installTimelineAction","replaceMerge","timelinePreprocessor","timelineOpt","timeline","compatibleEC2","ec2Types","transferItem","itemStyleEmphasis","labelNormal","excludeLabelAttr","checkMarkerInSeries","seriesOpts","seriesOptArr","fillLabel","MarkerModel","createdBySelf","_mergeOption","hostSeries","__hostSeries","markerOpt","markerModel","createMarkerModelFromSeries","getMarkerModelFromSeries","MarkPointModel","masterMarkerModel","hasXOrY","hasXAndY","markerTypeCalculatorWithExtent","otherDataDim","targetDataDim","otherCoordIndex","targetCoordIndex","coordArr","calcDataDim","numCalculate","coordArrValue","markerTypeCalculator","dataTransform","coordInfo","baseDataDim","valueDataDim","valueIndex","getDimension","dataDimToCoordDim","dimItem","zoneFilter","item1","item2","createMarkerDimValueGetter","inCoordSys","parseDataValue","sum_1","count_1","getMedian","MarkerView","markerGroupMap","renderSeries","markKeep","drawGroup","toggleBlurSeries","seriesModelList","isBlur","enterBlur","leaveBlur","updateMarkerLayout","mpData","xPx","yPx","MarkPointView","markPointModel","mpModel","symbolDrawMap","createData","getVisualFromData","coordDimsInfos","dataOpt","markerHelper","dimValueGetter","MarkLineModel","markLineTransform","mlModel","itemArray","mlType","getStackedDimension","mlFrom","mlTo","normalizedItem","isInifinity","ifMarkLineHasOnlyDim","fromCoord","otherDimIndex","markLineFilter","updateSingleMarkerEndLayout","MarkLineView","markLineModel","mlData_1","fromData_1","toData_1","lineDrawMap","mlData","createList","fromData","toData","updateDataVisualAndLayout","fromSymbolKeepAspect","fromSymbolOffset","fromSymbolRotate","fromSymbolSize","toSymbolKeepAspect","toSymbolOffset","toSymbolRotate","toSymbolSize","optData","MarkAreaModel","markAreaTransform","maModel","lt","rb","ltCoord","rbCoord","ifMarkAreaHasOnlyDim","markAreaFilter","item0","getSingleMarkerEndPoint","dimPermutations","MarkAreaView","markAreaModel","areaData_1","areaGroupMap","polygonGroup","areaData","xPointExtent","yPointExtent","overlapped","colorUtil","coordDimsInfos_1","markArea","getDefaultSelectorOptions","LegendModel","_updateSelector","_updateData","legendData","hasSelected","potentialData","availableNames","isPotential","provider","isNameSpecified","_availableNames","allSelect","inverseSelect","inactiveColor","inactiveBorderColor","inactiveBorderWidth","borderCap","borderDashOffset","borderMiterLimit","inactiveWidth","cap","dashOffset","miterLimit","selectorLabel","selectorPosition","selectorItemGap","selectorButtonGap","LegendView","newlineDisabled","_contentGroup","_selectorGroup","_isFirstRender","getContentGroup","getSelectorGroup","legendModel","isFirstRender","resetInner","itemAlign","renderInner","positionInfo","mainRect","layoutInner","_backgroundEl","legendDrawnMap","selectMode","excludeSeriesId","legendItemModel","lineVisualStyle","_createItem","dispatchSelectAction","dispatchHighlightAction","dispatchDownplayAction","colorArr","_createSelector","selectorGroup","createSelectorButton","selectorItem","emphasisLabelModel","itemVisualStyle","drawType","legendIconType","getLegendStyle","getDefaultLegendIcon","hitRect","__legendDataIndex","contentRect","contentPos","selectorRect","selectorPos","orientIdx","hw","yx","handleCommonProps","visualStyle","propVal","iconBrushType","decalStyle","legendLineModel","visualHasBorder","symboType","isUseHoverLayer","legendFilter","filterSeries","legendSelectActionHandler","isToggleSelect","isItemSelected","installLegendAction","SERIES_FILTER","ScrollableLegendModel","setScrollDataIndex","scrollDataIndex","pageButtonItemGap","pageButtonGap","pageButtonPosition","pageFormatter","pageIcons","pageIconColor","pageIconInactiveColor","pageIconSize","pageTextStyle","ScrollableLegendView","_currentIndex","_controllerGroup","__rectSize","controllerGroup","pageIconSizeArr","createPageButton","pageTextStyleModel","iconIdx","pageDataIndexName","_pageGo","processMaxSize","_layoutContentAndController","controllerRect","showController","_showController","containerPos","controllerPos","pageInfo","_getPageInfo","pageIndex","contentPosition","_updatePageInfoView","legendId","canJump","pageText","total","pageCount","containerRectSize","targetItemIndex","_findTargetItemIndex","targetItem","itemCount","pCount","pagePrevDataIndex","pageNextDataIndex","targetItemInfo","getItemInfo","winStartItemInfo","winEndItemInfo","currItemInfo","itemRect","itemInfo","winStart","defaultIndex","legendDataIdx","installScrollableLegendAction","installLegendPlain","installLegendScroll","InsideZoomModel","disabled","zoomLock","setViewInfoToCoordSysRecord","getRange","coordSysRecordMap","coordSysRecord","dzInfo","dataZoomInfoMap","disposeCoordSysRecordIfNeeded","coordSysKeyArr","dzUid","disposeCoordSysRecord","createCoordSysRecord","containsPoint","dzReferCoordSysInfo","mergeControllerParams","typePriority","dataZoomInfo","oneType","installDataZoomRoamProcessor","apiInner","dzReferCoordSysWrap","dzCoordSysInfo","firstDzInfo","firstDzKey","controllerParams","InsideZoomView","roams","pan","getRangeHandlers","scrollMove","lastRange","directionInfo","getDirectionInfo","percentPoint","signal","pixelStart","pixelLength","makeMover","getPercentDelta","percentDelta","oldPoint","newPoint","singleAxis","SliderZoomModel","dataBackground","selectedDataBackground","fillerColor","handleIcon","handleStyle","moveHandleSize","moveHandleIcon","moveHandleStyle","showDetail","showDataShadow","brushSelect","DEFAULT_LOCATION_EDGE_GAP","DEFAULT_FRAME_BORDER_WIDTH","DEFAULT_FILLER_SIZE","DEFAULT_MOVE_HANDLE_SIZE","HORIZONTAL","VERTICAL","LABEL_GAP","SHOW_DATA_SHADOW_SERIES_TYPE","REALTIME_ANIMATION_CONFIG","SliderZoomView","_displayables","_onBrushEnd","_buildView","_updateView","_brushing","_resetLocation","_resetInterval","barGroup","sliderGroup","_renderBackground","_renderDataShadow","_positionGroup","showMoveHandle","coordRect","_findCoordRect","_location","_size","location","targetAxisModel","otherAxisInverse","_dataShadowInfo","_getViewExtent","clickPanel","_onClickPanel","_onBrushStart","_prepareDataShadowInfo","dataShadowSegs","oldSize","_shadowSize","polygonPts","_shadowPolygonPts","polylinePts","_shadowPolylinePts","_shadowData","_shadowDim","otherDataExtent_1","otherOffset","otherShadowExtent_1","thisShadowExtent","areaPoints_1","linePoints_1","step_1","thisCoord_1","stride_1","lastIsEmpty_1","otherCoord","createDataShadowGroup","isSelectedArea","thisAxis","getOtherDim","thisDim","displayables","handles","handleLabels","filler","symbolBuildProxies","deprecateLog","getCursor","_onDragMove","_onDragEnd","onmouseover","_showDataInfo","onmouseout","bRect","_handleHeight","_handleWidth","handleColor","actualMoveZone","moveHandleHeight","moveHandle_1","moveHandle","moveZoneExpandSize","moveZone","ondragstart","_range","viewExtent","_handleEnds","_updateInterval","viewExtend","nonRealtime","displaybles","handleInterval","handleHeight","segIntervals","segGroup","_updateDataInfo","labelTexts","dataInterval","_formatLabel","orderedHandleEnds","setLabel","barTransform","textPoint","labelPrecision","getPixelPrecision","valueStr","showOrHide","changed","localPoint","_brushStart","_brushStartTime","brushShape","brushEndTime","_updateBrushRect","brushStart","endPoint","coordSysInfoList","installDataZoomInside","installDataZoomSlider","visualDefault","VisualMapModel","replacableOptionKeys","dataBound","controllerVisuals","resetItemSize","completeVisualOption","resetVisual","getItemSymbol","getTargetSeriesIndices","optionSeriesIndex","isTargetSeries","is","formatValueText","edgeSymbols","isMinMax","textValue","resetExtent","getDataDimensionIndex","optDim","dimNames","isCalculationCoord","storeDimIndex","completeSingle","completeInactive","completeController","stateExist","stateAbsent","optExist","optAbsent","defa","symbolExists","symbolSizeExists","itemSymbol","max_1","setSelected","getSelected","getVisualMeta","getColorVisual","contentColor","textGap","DEFAULT_BAR_BOUND","ContinuousModel","_resetRange","auto","findTargetDataIndices","oVals","getColorStopValues","iVals","setStop","iIdx","oIdx","iLen","oLen","first","stopsLen","calculable","hoverLink","indicatorIcon","indicatorSize","indicatorStyle","stopValues","VisualMapView","autoPositionValues","doRender","getControllerVisual","targetValue","visualCluster","forceState","visualObj","defaultColor","visualMapping","convertOpacityToAlpha","positionGroup","paramsSet","getItemAlign","modelOption","realIndex","reals","fakeValue","layoutInput","rParam","makeHighDownBatch","highlightKey","HOVER_LINK_SIZE","HOVER_LINK_OUT","ContinuousView","_shapes","_dataInterval","_hoverLinkDataIndices","_useHandle","_renderBar","dataRangeText","_renderEndsText","_enableHoverLinkToSeries","_enableHoverLinkFromSeries","endsIndex","_applyTransform","shapes","_createBarGroup","gradientBarGroup","createPolygon","_dragHandle","textSize","handleThumbs","handleLabelPoints","_createHandle","_createIndicator","onDrift","onDragEnd","handleThumb","handleLabel","stateTransition","handleLabelPoint","indicatorLabel","indicatorLabelPoint","_firstShowIndicator","_hideIndicator","visualMapId","_hovering","_clearHoverLinkToSeries","useHoverLinkOnHandle","_doHoverLinkToSeries","forSketch","outOfRangeHandleEnds","inRangeHandleEnds","visualInRange","_createBarVisual","visualOutOfRange","barColor","barPoints","_updateHandle","_makeColorGradient","symbolSizes","_createBarPoints","handlesColor","sampleNumber","currValue","_showIndicator","cursorValue","rangeSymbol","halfHoverLinkSize","oldIndicatorPos","indicatorNewProps","labelNewProps","additive","_hoverLinkFromSeriesMouseOver","_clearHoverLinkFromSeries","cursorPos","hoverOnBar","getHalfHoverLinkSize","hoverRange","oldBatch","newBatch","resultBatches","_dispatchHighDown","hoverLinkDataSize","hoverLinkOnHandle","visualMapActionInfo","visualMapActionHander","visualMapEncodingHandlers","createOnAllSeries","resetDefines","resultVisual","visualMapPreprocessor","pieces","splitList","COMPONENT","PiecewiseModel","_pieceList","mode","_mode","_determineMode","resetMethods","_resetSelected","visualTypesInPieces","exists","getSelectedMapKey","hasSel_1","pIdx","getRepresentValue","representValue","pieceInterval","curr","minOpen","maxOpen","outPieceList","splitStep","reformIntervals","normalizeReverse","pieceListItem","closeList","infinityList","useMinMax","lg","PiecewiseVisualMapView","_getItemAlign","viewData","_getViewData","endsText","viewPieceList","_onItemClick","_enableHoverLink","indexInModelPieceList","_createItemSymbol","visualState","onHoverLink","shapeParam","newKey","o","PiecewiseView","installVisualMapContinuous","installVisualMapPiecewise","DEFAULT_OPTION","enabled","ariaVisual","ariaModel","setDecal","decalModel","useDecal","paletteScopeGroupByType_1","isColorBySeries","decalScope","dataAll_1","idxMap_1","decalScope_1","dataCount_1","paletteDecal","specifiedDecal","mergeDecal","getSeriesCount","resultDecal","labelLocale","seriesCnt","maxDataCnt","maxSeriesCnt","displaySeriesCnt","ariaLabel","getTitle","withTitle","seriesLabels_1","seriesLabel","withName","getSeriesTypeName","partialLabel","displayCnt","middleSeparator_1","endSeparator_1","dataLabels","dataLabel","separatorModel","middleSeparator","endSeparator","keyValues","ariaPreprocessor","aria","ARIA","RELATIONAL_EXPRESSION_OP_ALIAS_MAP","RegExpEvaluator","rVal","condValue","_condVal","isRegExp","evaluate","lVal","ConstConditionInternal","AndConditionInternal","OrConditionInternal","NotConditionInternal","RelationalConditionInternal","needParse","valueParser","tarValRaw","valueGetterParam","tarValParsed","subCondList","parseOption","exprOption","getters","cond","isObjectNotArray","and","parseAndOrOption","or","not","parseNotOption","parseRelationalOption","op","subOptionArr","subOption","prepareGetValue","exprKeys","parserName","getRawValueParser","keyRaw","valueGetterAttrMap","condValueRaw","condValueParsed","evaluator","createFilterComparator","ConditionalExpressionParsed","_cond","parseConditionalExpression","filterTransform","rawItem","condition","dimLoose","cloneAllDimensionInfo","param","retrieveValueFromItem","resultData","sampleLog","sortTransform","orderExprList","orderDefList","orderExpr","incomparable","errMsg_1","errMsg_2","comparator","SortOrderComparator","SOURCE_FORMAT_OBJECT_ROWS","orderDef","val0","val1","DatasetModel","_sourceManager","SourceManager","disableTransformOptionMerge","getSourceManager","seriesLayoutBy","SERIES_LAYOUT_BY_COLUMN","DatasetView","CanvasRenderer","PieChart","BarChart","LineChart","TitleComponent","TooltipComponent","LegendComponent","GridComponent","MarkLineComponent","TlbsPie","withInstall","_Pie","TlbsBar","_Bar","TlbsLine","_Line"],"mappings":";;;;;;;AACA,IAAIA,OAAO,GAAGC,IAAI,CAACC,GAAnB,CAAA;AACA,IAAIC,OAAO,GAAGF,IAAI,CAACG,GAAnB,CAAA;AACA,IAAIC,IAAE,GAAGJ,IAAI,CAACI,EAAd,CAAA;AACA,IAAIC,KAAG,GAAGL,IAAI,CAACI,EAAL,GAAU,CAApB,CAAA;AACA,IAAIE,MAAM,GAAG,GAAA,GAAMF,IAAnB,CAAA;;AACA,IAAIG,gBAAgB,GAAI,YAAY;EAChC,SAASA,gBAAT,GAA4B,EAC3B;;AACDA,EAAAA,gBAAgB,CAACC,SAAjB,CAA2BC,KAA3B,GAAmC,UAAUC,SAAV,EAAqB;IACpD,IAAKC,CAAAA,MAAL,GAAc,IAAd,CAAA;IACA,IAAKC,CAAAA,EAAL,GAAU,EAAV,CAAA;IACA,IAAKC,CAAAA,IAAL,GAAY,EAAZ,CAAA;IACA,IAAKC,CAAAA,EAAL,GAAUd,IAAI,CAACe,GAAL,CAAS,EAAT,EAAaL,SAAS,IAAI,CAA1B,CAAV,CAAA;GAJJ,CAAA;;EAMAH,gBAAgB,CAACC,SAAjB,CAA2BQ,MAA3B,GAAoC,UAAUC,CAAV,EAAaC,CAAb,EAAgB;AAChD,IAAA,IAAA,CAAKC,IAAL,CAAU,GAAV,EAAeF,CAAf,EAAkBC,CAAlB,CAAA,CAAA;GADJ,CAAA;;EAGAX,gBAAgB,CAACC,SAAjB,CAA2BY,MAA3B,GAAoC,UAAUH,CAAV,EAAaC,CAAb,EAAgB;AAChD,IAAA,IAAA,CAAKC,IAAL,CAAU,GAAV,EAAeF,CAAf,EAAkBC,CAAlB,CAAA,CAAA;GADJ,CAAA;;AAGAX,EAAAA,gBAAgB,CAACC,SAAjB,CAA2Ba,aAA3B,GAA2C,UAAUJ,CAAV,EAAaC,CAAb,EAAgBI,EAAhB,EAAoBC,EAApB,EAAwBC,EAAxB,EAA4BC,EAA5B,EAAgC;AACvE,IAAA,IAAA,CAAKN,IAAL,CAAU,GAAV,EAAeF,CAAf,EAAkBC,CAAlB,EAAqBI,EAArB,EAAyBC,EAAzB,EAA6BC,EAA7B,EAAiCC,EAAjC,CAAA,CAAA;GADJ,CAAA;;AAGAlB,EAAAA,gBAAgB,CAACC,SAAjB,CAA2BkB,gBAA3B,GAA8C,UAAUT,CAAV,EAAaC,CAAb,EAAgBI,EAAhB,EAAoBC,EAApB,EAAwB;IAClE,IAAKJ,CAAAA,IAAL,CAAU,GAAV,EAAeF,CAAf,EAAkBC,CAAlB,EAAqBI,EAArB,EAAyBC,EAAzB,CAAA,CAAA;GADJ,CAAA;;AAGAhB,EAAAA,gBAAgB,CAACC,SAAjB,CAA2BmB,GAA3B,GAAiC,UAAUC,EAAV,EAAcC,EAAd,EAAkBC,CAAlB,EAAqBC,UAArB,EAAiCC,QAAjC,EAA2CC,aAA3C,EAA0D;AACvF,IAAA,IAAA,CAAKC,OAAL,CAAaN,EAAb,EAAiBC,EAAjB,EAAqBC,CAArB,EAAwBA,CAAxB,EAA2B,CAA3B,EAA8BC,UAA9B,EAA0CC,QAA1C,EAAoDC,aAApD,CAAA,CAAA;GADJ,CAAA;;EAGA1B,gBAAgB,CAACC,SAAjB,CAA2B0B,OAA3B,GAAqC,UAAUN,EAAV,EAAcC,EAAd,EAAkBM,EAAlB,EAAsBC,EAAtB,EAA0BC,GAA1B,EAA+BN,UAA/B,EAA2CC,QAA3C,EAAqDC,aAArD,EAAoE;AACrG,IAAA,IAAIK,MAAM,GAAGN,QAAQ,GAAGD,UAAxB,CAAA;IACA,IAAIQ,SAAS,GAAG,CAACN,aAAjB,CAAA;AACA,IAAA,IAAIO,cAAc,GAAGxC,IAAI,CAACyC,GAAL,CAASH,MAAT,CAArB,CAAA;AACA,IAAA,IAAII,QAAQ,GAAGC,YAAY,CAACH,cAAc,GAAGnC,KAAlB,CAAZ,KACPkC,SAAS,GAAGD,MAAM,IAAIjC,KAAb,GAAmB,CAACiC,MAAD,IAAWjC,KADhC,CAAf,CAAA;AAEA,IAAA,IAAIuC,YAAY,GAAGN,MAAM,GAAG,CAAT,GAAaA,MAAM,GAAGjC,KAAtB,GAA6BiC,MAAM,GAAGjC,KAAT,GAAeA,KAA/D,CAAA;IACA,IAAIwC,KAAK,GAAG,KAAZ,CAAA;;AACA,IAAA,IAAIH,QAAJ,EAAc;AACVG,MAAAA,KAAK,GAAG,IAAR,CAAA;AACH,KAFD,MAGK,IAAIF,YAAY,CAACH,cAAD,CAAhB,EAAkC;AACnCK,MAAAA,KAAK,GAAG,KAAR,CAAA;AACH,KAFI,MAGA;AACDA,MAAAA,KAAK,GAAID,YAAY,IAAIxC,IAAjB,KAAyB,CAAC,CAACmC,SAAnC,CAAA;AACH,KAAA;;IACD,IAAIO,EAAE,GAAGlB,EAAE,GAAGO,EAAE,GAAGjC,OAAO,CAAC6B,UAAD,CAA1B,CAAA;IACA,IAAIgB,EAAE,GAAGlB,EAAE,GAAGO,EAAE,GAAGrC,OAAO,CAACgC,UAAD,CAA1B,CAAA;;IACA,IAAI,IAAA,CAAKpB,MAAT,EAAiB;AACb,MAAA,IAAA,CAAKQ,IAAL,CAAU,GAAV,EAAe2B,EAAf,EAAmBC,EAAnB,CAAA,CAAA;AACH,KAAA;;IACD,IAAIC,IAAI,GAAGhD,IAAI,CAACiD,KAAL,CAAWZ,GAAG,GAAG/B,MAAjB,CAAX,CAAA;;AACA,IAAA,IAAIoC,QAAJ,EAAc;AACV,MAAA,IAAIQ,CAAC,GAAG,CAAI,GAAA,IAAA,CAAKpC,EAAjB,CAAA;AACA,MAAA,IAAIqC,QAAQ,GAAG,CAACZ,SAAS,GAAG,CAAH,GAAO,CAAC,CAAlB,KAAwBlC,KAAG,GAAG6C,CAA9B,CAAf,CAAA;;AACA,MAAA,IAAA,CAAK/B,IAAL,CAAU,GAAV,EAAegB,EAAf,EAAmBC,EAAnB,EAAuBY,IAAvB,EAA6B,CAA7B,EAAgC,CAACT,SAAjC,EAA4CX,EAAE,GAAGO,EAAE,GAAGjC,OAAO,CAAC6B,UAAU,GAAGoB,QAAd,CAA7D,EAAsFtB,EAAE,GAAGO,EAAE,GAAGrC,OAAO,CAACgC,UAAU,GAAGoB,QAAd,CAAvG,CAAA,CAAA;;MACA,IAAID,CAAC,GAAG,IAAR,EAAc;AACV,QAAA,IAAA,CAAK/B,IAAL,CAAU,GAAV,EAAegB,EAAf,EAAmBC,EAAnB,EAAuBY,IAAvB,EAA6B,CAA7B,EAAgC,CAACT,SAAjC,EAA4CO,EAA5C,EAAgDC,EAAhD,CAAA,CAAA;AACH,OAAA;AACJ,KAPD,MAQK;MACD,IAAI9B,CAAC,GAAGW,EAAE,GAAGO,EAAE,GAAGjC,OAAO,CAAC8B,QAAD,CAAzB,CAAA;MACA,IAAId,CAAC,GAAGW,EAAE,GAAGO,EAAE,GAAGrC,OAAO,CAACiC,QAAD,CAAzB,CAAA;;AACA,MAAA,IAAA,CAAKb,IAAL,CAAU,GAAV,EAAegB,EAAf,EAAmBC,EAAnB,EAAuBY,IAAvB,EAA6B,CAACH,KAA9B,EAAqC,CAACN,SAAtC,EAAiDtB,CAAjD,EAAoDC,CAApD,CAAA,CAAA;AACH,KAAA;GAnCL,CAAA;;AAqCAX,EAAAA,gBAAgB,CAACC,SAAjB,CAA2B4C,IAA3B,GAAkC,UAAUnC,CAAV,EAAaC,CAAb,EAAgBmC,CAAhB,EAAmBC,CAAnB,EAAsB;AACpD,IAAA,IAAA,CAAKnC,IAAL,CAAU,GAAV,EAAeF,CAAf,EAAkBC,CAAlB,CAAA,CAAA;;AACA,IAAA,IAAA,CAAKC,IAAL,CAAU,GAAV,EAAekC,CAAf,EAAkB,CAAlB,CAAA,CAAA;;AACA,IAAA,IAAA,CAAKlC,IAAL,CAAU,GAAV,EAAe,CAAf,EAAkBmC,CAAlB,CAAA,CAAA;;AACA,IAAA,IAAA,CAAKnC,IAAL,CAAU,GAAV,EAAe,CAACkC,CAAhB,EAAmB,CAAnB,CAAA,CAAA;;IACA,IAAKlC,CAAAA,IAAL,CAAU,GAAV,CAAA,CAAA;GALJ,CAAA;;AAOAZ,EAAAA,gBAAgB,CAACC,SAAjB,CAA2B+C,SAA3B,GAAuC,YAAY;AAC/C,IAAA,IAAI,KAAK3C,EAAL,CAAQ4C,MAAR,GAAiB,CAArB,EAAwB;MACpB,IAAKrC,CAAAA,IAAL,CAAU,GAAV,CAAA,CAAA;AACH,KAAA;GAHL,CAAA;;EAKAZ,gBAAgB,CAACC,SAAjB,CAA2BW,IAA3B,GAAkC,UAAUsC,GAAV,EAAeC,CAAf,EAAkBC,CAAlB,EAAqBC,CAArB,EAAwBC,CAAxB,EAA2BC,CAA3B,EAA8BC,CAA9B,EAAiCC,CAAjC,EAAoCV,CAApC,EAAuC;IACrE,IAAIW,IAAI,GAAG,EAAX,CAAA;IACA,IAAIf,CAAC,GAAG,IAAA,CAAKpC,EAAb,CAAA;;AACA,IAAA,KAAK,IAAIoD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGC,SAAS,CAACX,MAA9B,EAAsCU,CAAC,EAAvC,EAA2C;AACvC,MAAA,IAAIE,GAAG,GAAGD,SAAS,CAACD,CAAD,CAAnB,CAAA;;AACA,MAAA,IAAIG,KAAK,CAACD,GAAD,CAAT,EAAgB;QACZ,IAAKE,CAAAA,QAAL,GAAgB,IAAhB,CAAA;AACA,QAAA,OAAA;AACH,OAAA;;MACDL,IAAI,CAACM,IAAL,CAAUvE,IAAI,CAACiD,KAAL,CAAWmB,GAAG,GAAGlB,CAAjB,CAAA,GAAsBA,CAAhC,CAAA,CAAA;AACH,KAAA;;IACD,IAAKtC,CAAAA,EAAL,CAAQ2D,IAAR,CAAad,GAAG,GAAGQ,IAAI,CAACO,IAAL,CAAU,GAAV,CAAnB,CAAA,CAAA;;AACA,IAAA,IAAA,CAAK7D,MAAL,GAAc8C,GAAG,KAAK,GAAtB,CAAA;GAZJ,CAAA;;AAcAlD,EAAAA,gBAAgB,CAACC,SAAjB,CAA2BiE,WAA3B,GAAyC,YAAY;AACjD,IAAA,IAAA,CAAK5D,IAAL,GAAY,IAAKyD,CAAAA,QAAL,GAAgB,EAAhB,GAAqB,IAAA,CAAK1D,EAAL,CAAQ4D,IAAR,CAAa,EAAb,CAAjC,CAAA;IACA,IAAK5D,CAAAA,EAAL,GAAU,EAAV,CAAA;GAFJ,CAAA;;AAIAL,EAAAA,gBAAgB,CAACC,SAAjB,CAA2BkE,MAA3B,GAAoC,YAAY;AAC5C,IAAA,OAAO,KAAK7D,IAAZ,CAAA;GADJ,CAAA;;AAGA,EAAA,OAAON,gBAAP,CAAA;AACH,CA/FuB,EAAxB;;ACDA,IAAIoE,IAAI,GAAG,MAAX,CAAA;AACA,IAAIC,SAAS,GAAG5E,IAAI,CAACiD,KAArB,CAAA;;AACA,SAAS4B,WAAT,CAAqBC,KAArB,EAA4B;AACxB,EAAA,IAAIC,IAAI,GAAGD,KAAK,CAACC,IAAjB,CAAA;AACA,EAAA,OAAOA,IAAI,IAAI,IAAR,IAAgBA,IAAI,KAAKJ,IAAhC,CAAA;AACH,CAAA;;AACD,SAASK,aAAT,CAAuBF,KAAvB,EAA8B;AAC1B,EAAA,IAAIG,MAAM,GAAGH,KAAK,CAACG,MAAnB,CAAA;AACA,EAAA,OAAOA,MAAM,IAAI,IAAV,IAAkBA,MAAM,KAAKN,IAApC,CAAA;AACH,CAAA;;AACD,IAAIO,WAAW,GAAG,CAAC,SAAD,EAAY,YAAZ,EAA0B,UAA1B,CAAlB,CAAA;AACA,IAAIC,cAAc,GAAGC,GAAG,CAACF,WAAD,EAAc,UAAUG,IAAV,EAAgB;AAAE,EAAA,OAAO,SAAYA,GAAAA,IAAI,CAACC,WAAL,EAAnB,CAAA;AAAwC,CAAxE,CAAxB,CAAA;AACe,SAASC,eAAT,CAAyBC,UAAzB,EAAqCV,KAArC,EAA4CW,EAA5C,EAAgDC,WAAhD,EAA6D;AACxE,EAAA,IAAIC,OAAO,GAAGb,KAAK,CAACa,OAAN,IAAiB,IAAjB,GAAwB,CAAxB,GAA4Bb,KAAK,CAACa,OAAhD,CAAA;;EACA,IAAIF,EAAE,YAAYG,OAAlB,EAA2B;AACvBJ,IAAAA,UAAU,CAAC,SAAD,EAAYG,OAAZ,CAAV,CAAA;AACA,IAAA,OAAA;AACH,GAAA;;AACD,EAAA,IAAId,WAAW,CAACC,KAAD,CAAf,EAAwB;AACpB,IAAA,IAAIC,IAAI,GAAGc,cAAc,CAACf,KAAK,CAACC,IAAP,CAAzB,CAAA;AACAS,IAAAA,UAAU,CAAC,MAAD,EAAST,IAAI,CAACe,KAAd,CAAV,CAAA;IACA,IAAIC,WAAW,GAAGjB,KAAK,CAACiB,WAAN,IAAqB,IAArB,GACZjB,KAAK,CAACiB,WAAN,GAAoBhB,IAAI,CAACY,OAAzB,GAAmCA,OADvB,GAEZZ,IAAI,CAACY,OAAL,GAAeA,OAFrB,CAAA;;AAGA,IAAA,IAAID,WAAW,IAAIK,WAAW,GAAG,CAAjC,EAAoC;AAChCP,MAAAA,UAAU,CAAC,cAAD,EAAiBO,WAAjB,CAAV,CAAA;AACH,KAAA;AACJ,GATD,MAUK;AACDP,IAAAA,UAAU,CAAC,MAAD,EAASb,IAAT,CAAV,CAAA;AACH,GAAA;;AACD,EAAA,IAAIK,aAAa,CAACF,KAAD,CAAjB,EAA0B;AACtB,IAAA,IAAIG,MAAM,GAAGY,cAAc,CAACf,KAAK,CAACG,MAAP,CAA3B,CAAA;AACAO,IAAAA,UAAU,CAAC,QAAD,EAAWP,MAAM,CAACa,KAAlB,CAAV,CAAA;IACA,IAAIE,WAAW,GAAGlB,KAAK,CAACmB,aAAN,GACZR,EAAE,CAACS,YAAH,EADY,GAEZ,CAFN,CAAA;AAGA,IAAA,IAAIC,WAAW,GAAIH,WAAW,GAAG,CAAClB,KAAK,CAACsB,SAAN,IAAmB,CAApB,IAAyBJ,WAA5B,GAA0C,CAAxE,CAAA;IACA,IAAIK,aAAa,GAAGvB,KAAK,CAACuB,aAAN,IAAuB,IAAvB,GACdvB,KAAK,CAACuB,aAAN,GAAsBpB,MAAM,CAACU,OAA7B,GAAuCA,OADzB,GAEdV,MAAM,CAACU,OAAP,GAAiBA,OAFvB,CAAA;AAGA,IAAA,IAAIW,WAAW,GAAGxB,KAAK,CAACwB,WAAxB,CAAA;;AACA,IAAA,IAAIZ,WAAW,IAAIS,WAAW,KAAK,CAAnC,EAAsC;AAClCX,MAAAA,UAAU,CAAC,cAAD,EAAiBW,WAAjB,CAAV,CAAA;AACH,KAAA;;IACD,IAAIT,WAAW,IAAIY,WAAnB,EAAgC;MAC5Bd,UAAU,CAAC,aAAD,EAAgBc,WAAW,GAAG,QAAH,GAAc,MAAzC,CAAV,CAAA;AACH,KAAA;;AACD,IAAA,IAAIZ,WAAW,IAAIW,aAAa,GAAG,CAAnC,EAAsC;AAClCb,MAAAA,UAAU,CAAC,gBAAD,EAAmBa,aAAnB,CAAV,CAAA;AACH,KAAA;;IACD,IAAIvB,KAAK,CAACyB,QAAV,EAAoB;AAChB,MAAA,IAAIC,EAAE,GAAGC,WAAW,CAAChB,EAAD,CAApB;AAAA,UAA0Bc,QAAQ,GAAGC,EAAE,CAAC,CAAD,CAAvC;AAAA,UAA4CE,cAAc,GAAGF,EAAE,CAAC,CAAD,CAA/D,CAAA;;AACA,MAAA,IAAID,QAAJ,EAAc;AACVG,QAAAA,cAAc,GAAG9B,SAAS,CAAC8B,cAAc,IAAI,CAAnB,CAA1B,CAAA;QACAlB,UAAU,CAAC,kBAAD,EAAqBe,QAAQ,CAAC/B,IAAT,CAAc,GAAd,CAArB,CAAV,CAAA;;QACA,IAAIkC,cAAc,IAAIhB,WAAtB,EAAmC;AAC/BF,UAAAA,UAAU,CAAC,mBAAD,EAAsBkB,cAAtB,CAAV,CAAA;AACH,SAAA;AACJ,OAAA;KARL,MAUK,IAAIhB,WAAJ,EAAiB;AAClBF,MAAAA,UAAU,CAAC,kBAAD,EAAqBb,IAArB,CAAV,CAAA;AACH,KAAA;;AACD,IAAA,KAAK,IAAIT,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgB,WAAW,CAAC1B,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AACzC,MAAA,IAAIyC,QAAQ,GAAGzB,WAAW,CAAChB,CAAD,CAA1B,CAAA;;MACA,IAAIwB,WAAW,IAAIZ,KAAK,CAAC6B,QAAD,CAAL,KAAoBC,kBAAkB,CAACD,QAAD,CAAzD,EAAqE;QACjE,IAAIvC,GAAG,GAAGU,KAAK,CAAC6B,QAAD,CAAL,IAAmBC,kBAAkB,CAACD,QAAD,CAA/C,CAAA;QACAvC,GAAG,IAAIoB,UAAU,CAACL,cAAc,CAACjB,CAAD,CAAf,EAAoBE,GAApB,CAAjB,CAAA;AACH,OAAA;AACJ,KAAA;GAvCL,MAyCK,IAAIsB,WAAJ,EAAiB;AAClBF,IAAAA,UAAU,CAAC,QAAD,EAAWb,IAAX,CAAV,CAAA;AACH,GAAA;AACJ;;AC/EM,IAAIkC,KAAK,GAAG,4BAAZ,CAAA;AACA,IAAIC,OAAO,GAAG,8BAAd,CAAA;AACA,IAAIC,KAAK,GAAG,+BAAZ,CAAA;AACA,IAAIC,aAAa,GAAG,sCAApB,CAAA;AACA,SAASC,aAAT,CAAuBC,IAAvB,EAA6B;AAChC,EAAA,OAAOC,QAAQ,CAACC,eAAT,CAAyBP,KAAzB,EAAgCK,IAAhC,CAAP,CAAA;AACH,CAAA;AACD,CAAA;AACO,SAASG,WAAT,CAAqBC,GAArB,EAA0BC,GAA1B,EAA+BC,KAA/B,EAAsCC,QAAtC,EAAgDC,IAAhD,EAAsD;EACzD,OAAO;AACHJ,IAAAA,GAAG,EAAEA,GADF;IAEHE,KAAK,EAAEA,KAAK,IAAI,EAFb;AAGHC,IAAAA,QAAQ,EAAEA,QAHP;AAIHC,IAAAA,IAAI,EAAEA,IAJH;AAKHH,IAAAA,GAAG,EAAEA,GAAAA;GALT,CAAA;AAOH,CAAA;;AACD,SAASI,iBAAT,CAA2BT,IAA3B,EAAiCM,KAAjC,EAAwC;EACpC,IAAII,QAAQ,GAAG,EAAf,CAAA;;AACA,EAAA,IAAIJ,KAAJ,EAAW;AACP,IAAA,KAAK,IAAID,GAAT,IAAgBC,KAAhB,EAAuB;AACnB,MAAA,IAAIpD,GAAG,GAAGoD,KAAK,CAACD,GAAD,CAAf,CAAA;MACA,IAAIM,IAAI,GAAGN,GAAX,CAAA;;MACA,IAAInD,GAAG,KAAK,KAAZ,EAAmB;AACf,QAAA,SAAA;OADJ,MAGK,IAAIA,GAAG,KAAK,IAAR,IAAgBA,GAAG,IAAI,IAA3B,EAAiC;AAClCyD,QAAAA,IAAI,IAAI,KAAA,GAAQzD,GAAR,GAAc,IAAtB,CAAA;AACH,OAAA;;MACDwD,QAAQ,CAACrD,IAAT,CAAcsD,IAAd,CAAA,CAAA;AACH,KAAA;AACJ,GAAA;;AACD,EAAA,OAAO,GAAMX,GAAAA,IAAN,GAAa,GAAb,GAAmBU,QAAQ,CAACpD,IAAT,CAAc,GAAd,CAAnB,GAAwC,GAA/C,CAAA;AACH,CAAA;;AACD,SAASsD,kBAAT,CAA4BZ,IAA5B,EAAkC;EAC9B,OAAO,IAAA,GAAOA,IAAP,GAAc,GAArB,CAAA;AACH,CAAA;;AACM,SAASa,aAAT,CAAuBtC,EAAvB,EAA2BuC,IAA3B,EAAiC;EACpCA,IAAI,GAAGA,IAAI,IAAI,EAAf,CAAA;EACA,IAAIC,CAAC,GAAGD,IAAI,CAACE,OAAL,GAAe,IAAf,GAAsB,EAA9B,CAAA;;EACA,SAASC,iBAAT,CAA2B1C,EAA3B,EAA+B;AAC3B,IAAA,IAAIgC,QAAQ,GAAGhC,EAAE,CAACgC,QAAlB;AAAA,QAA4BH,GAAG,GAAG7B,EAAE,CAAC6B,GAArC;AAAA,QAA0CE,KAAK,GAAG/B,EAAE,CAAC+B,KAArD,CAAA;IACA,OAAOG,iBAAiB,CAACL,GAAD,EAAME,KAAN,CAAjB,IACA/B,EAAE,CAACiC,IAAH,IAAW,EADX,KAEAD,QAAQ,GAAG,EAAKQ,GAAAA,CAAL,GAAS7C,GAAG,CAACqC,QAAD,EAAW,UAAUW,KAAV,EAAiB;MAAE,OAAOD,iBAAiB,CAACC,KAAD,CAAxB,CAAA;AAAkC,KAAhE,CAAH,CAAqE5D,IAArE,CAA0EyD,CAA1E,CAAT,GAAwFA,CAA3F,GAA+F,EAFvG,CAAA,GAGDH,kBAAkB,CAACR,GAAD,CAHxB,CAAA;AAIH,GAAA;;EACD,OAAOa,iBAAiB,CAAC1C,EAAD,CAAxB,CAAA;AACH,CAAA;AACM,SAAS4C,YAAT,CAAsBC,aAAtB,EAAqCC,cAArC,EAAqDP,IAArD,EAA2D;EAC9DA,IAAI,GAAGA,IAAI,IAAI,EAAf,CAAA;EACA,IAAIC,CAAC,GAAGD,IAAI,CAACE,OAAL,GAAe,IAAf,GAAsB,EAA9B,CAAA;EACA,IAAIM,YAAY,GAAG,IAAA,GAAOP,CAA1B,CAAA;AACA,EAAA,IAAIQ,UAAU,GAAGR,CAAC,GAAG,GAArB,CAAA;EACA,IAAIS,SAAS,GAAGtD,GAAG,CAACuD,IAAI,CAACL,aAAD,CAAL,EAAsB,UAAUM,SAAV,EAAqB;AAC1D,IAAA,OAAOA,SAAS,GAAGJ,YAAZ,GAA2BpD,GAAG,CAACuD,IAAI,CAACL,aAAa,CAACM,SAAD,CAAd,CAAL,EAAiC,UAAUC,QAAV,EAAoB;AACtF,MAAA,OAAOA,QAAQ,GAAG,GAAX,GAAiBP,aAAa,CAACM,SAAD,CAAb,CAAyBC,QAAzB,CAAjB,GAAsD,GAA7D,CAAA;AACH,KAFoC,CAAH,CAE/BrE,IAF+B,CAE1ByD,CAF0B,CAA3B,GAEMQ,UAFb,CAAA;AAGH,GAJkB,CAAH,CAIbjE,IAJa,CAIRyD,CAJQ,CAAhB,CAAA;EAKA,IAAIa,UAAU,GAAG1D,GAAG,CAACuD,IAAI,CAACJ,cAAD,CAAL,EAAuB,UAAUQ,aAAV,EAAyB;AAChE,IAAA,OAAO,gBAAgBA,aAAhB,GAAgCP,YAAhC,GAA+CpD,GAAG,CAACuD,IAAI,CAACJ,cAAc,CAACQ,aAAD,CAAf,CAAL,EAAsC,UAAUC,OAAV,EAAmB;AAC9G,MAAA,OAAOA,OAAO,GAAGR,YAAV,GAAyBpD,GAAG,CAACuD,IAAI,CAACJ,cAAc,CAACQ,aAAD,CAAd,CAA8BC,OAA9B,CAAD,CAAL,EAA+C,UAAUH,QAAV,EAAoB;QAClG,IAAIzE,GAAG,GAAGmE,cAAc,CAACQ,aAAD,CAAd,CAA8BC,OAA9B,CAAuCH,CAAAA,QAAvC,CAAV,CAAA;;QACA,IAAIA,QAAQ,KAAK,GAAjB,EAAsB;AAClBzE,UAAAA,GAAG,GAAG,SAAA,GAAYA,GAAZ,GAAkB,KAAxB,CAAA;AACH,SAAA;;AACD,QAAA,OAAOyE,QAAQ,GAAG,GAAX,GAAiBzE,GAAjB,GAAuB,GAA9B,CAAA;AACH,OANkC,CAAH,CAM7BI,IAN6B,CAMxByD,CANwB,CAAzB,GAMMQ,UANb,CAAA;AAOH,KARwD,CAAH,CAQnDjE,IARmD,CAQ9CyD,CAR8C,CAA/C,GAQMQ,UARb,CAAA;AASH,GAVmB,CAAH,CAUdjE,IAVc,CAUTyD,CAVS,CAAjB,CAAA;;AAWA,EAAA,IAAI,CAACS,SAAD,IAAc,CAACI,UAAnB,EAA+B;AAC3B,IAAA,OAAO,EAAP,CAAA;AACH,GAAA;;AACD,EAAA,OAAO,CAAC,WAAD,EAAcJ,SAAd,EAAyBI,UAAzB,EAAqC,KAArC,CAA4CtE,CAAAA,IAA5C,CAAiDyD,CAAjD,CAAP,CAAA;AACH,CAAA;AACM,SAASgB,gBAAT,CAA0BC,IAA1B,EAAgC;EACnC,OAAO;AACHA,IAAAA,IAAI,EAAEA,IADH;AAEHC,IAAAA,WAAW,EAAE,EAFV;AAGHC,IAAAA,YAAY,EAAE,EAHX;AAIHC,IAAAA,aAAa,EAAE,EAJZ;AAKHC,IAAAA,aAAa,EAAE,EALZ;AAMHC,IAAAA,IAAI,EAAE,EANH;AAOHC,IAAAA,QAAQ,EAAE,EAPP;AAQHC,IAAAA,QAAQ,EAAE,EARP;AASHC,IAAAA,WAAW,EAAE,CATV;AAUHC,IAAAA,UAAU,EAAE,CAVT;AAWHC,IAAAA,SAAS,EAAE,CAXR;AAYHC,IAAAA,WAAW,EAAE,CAZV;AAaHC,IAAAA,UAAU,EAAE,CAbT;AAcHC,IAAAA,WAAW,EAAE,CAAA;GAdjB,CAAA;AAgBH,CAAA;AACM,SAASC,cAAT,CAAwBC,KAAxB,EAA+BC,MAA/B,EAAuCzC,QAAvC,EAAiD0C,UAAjD,EAA6D;AAChE,EAAA,OAAO9C,WAAW,CAAC,KAAD,EAAQ,MAAR,EAAgB;AAC9B,IAAA,OAAA,EAAS4C,KADqB;AAE9B,IAAA,QAAA,EAAUC,MAFoB;AAG9B,IAAA,OAAA,EAASrD,KAHqB;AAI9B,IAAA,aAAA,EAAeC,OAJe;AAK9B,IAAA,SAAA,EAAW,KALmB;AAM9B,IAAA,aAAA,EAAe,MANe;IAO9B,SAAWqD,EAAAA,UAAU,GAAG,MAASF,GAAAA,KAAT,GAAiB,GAAjB,GAAuBC,MAA1B,GAAmC,KAAA;GAP1C,EAQfzC,QARe,CAAlB,CAAA;AASH;;AChGM,IAAI2C,UAAU,GAAG;AACpBC,EAAAA,OAAO,EAAE,eADW;AAEpBC,EAAAA,QAAQ,EAAE,eAFU;AAGpBC,EAAAA,UAAU,EAAE,eAHQ;AAIpBC,EAAAA,WAAW,EAAE,cAJO;AAKpBC,EAAAA,YAAY,EAAE,cALM;AAMpBC,EAAAA,cAAc,EAAE,eANI;AAOpBC,EAAAA,SAAS,EAAE,cAPS;AAQpBC,EAAAA,UAAU,EAAE,cARQ;AASpBC,EAAAA,YAAY,EAAE,eATM;AAUpBC,EAAAA,SAAS,EAAE,eAVS;AAWpBC,EAAAA,UAAU,EAAE,eAXQ;AAYpBC,EAAAA,YAAY,EAAE,eAZM;AAapBC,EAAAA,YAAY,EAAE,eAbM;AAcpBC,EAAAA,aAAa,EAAE,eAdK;AAepBC,EAAAA,eAAe,EAAE,eAfG;AAgBpBC,EAAAA,aAAa,EAAE,cAhBK;AAiBpBC,EAAAA,cAAc,EAAE,cAjBI;AAkBpBC,EAAAA,gBAAgB,EAAE,eAlBE;AAmBpBC,EAAAA,UAAU,EAAE,eAnBQ;AAoBpBC,EAAAA,WAAW,EAAE,eApBO;AAqBpBC,EAAAA,aAAa,EAAE,eAAA;AArBK,CAAjB,CAAA;AAuBP,IAAIC,kBAAkB,GAAG,kBAAzB,CAAA;;AACA,SAASC,eAAT,CAAyBlG,EAAzB,EAA6BmG,OAA7B,EAAsCC,IAAtC,EAA4C;EACxC,IAAIC,KAAK,GAAGC,MAAM,CAAC,EAAD,EAAKtG,EAAE,CAACqG,KAAR,CAAlB,CAAA;AACAC,EAAAA,MAAM,CAACD,KAAD,EAAQF,OAAR,CAAN,CAAA;AACAnG,EAAAA,EAAE,CAACuG,SAAH,CAAaH,IAAb,EAAmBC,KAAnB,CAAA,CAAA;AACA,EAAA,IAAIG,cAAc,GAAG,IAAI1L,gBAAJ,EAArB,CAAA;AACA0L,EAAAA,cAAc,CAACxL,KAAf,CAAqByL,gBAAgB,CAACzG,EAAD,CAArC,CAAA,CAAA;AACAoG,EAAAA,IAAI,CAACM,WAAL,CAAiBF,cAAjB,EAAiC,CAAjC,CAAA,CAAA;AACAA,EAAAA,cAAc,CAACxH,WAAf,EAAA,CAAA;EACA,OAAOwH,cAAc,CAACvH,MAAf,EAAP,CAAA;AACH,CAAA;;AACD,SAAS0H,kBAAT,CAA4BC,MAA5B,EAAoCC,SAApC,EAA+C;AAC3C,EAAA,IAAIC,OAAO,GAAGD,SAAS,CAACC,OAAxB;AAAA,MAAiCC,OAAO,GAAGF,SAAS,CAACE,OAArD,CAAA;;EACA,IAAID,OAAO,IAAIC,OAAf,EAAwB;IACpBH,MAAM,CAACX,kBAAD,CAAN,GAA6Ba,OAAO,GAAG,KAAV,GAAkBC,OAAlB,GAA4B,IAAzD,CAAA;AACH,GAAA;AACJ,CAAA;;AACM,IAAIC,iBAAiB,GAAG;AAC3B1H,EAAAA,IAAI,EAAE,MADqB;AAE3BY,EAAAA,OAAO,EAAE,SAFkB;AAG3BS,EAAAA,SAAS,EAAE,cAHgB;AAI3BM,EAAAA,cAAc,EAAE,mBAAA;AAJW,CAAxB,CAAA;;AAMP,SAASgG,YAAT,CAAsBC,OAAtB,EAA+BC,KAA/B,EAAsC;EAClC,IAAI7D,aAAa,GAAG6D,KAAK,CAAC1D,IAAN,GAAa,OAAb,GAAuB0D,KAAK,CAACjD,UAAN,EAA3C,CAAA;AACAiD,EAAAA,KAAK,CAACnD,QAAN,CAAeV,aAAf,IAAgC4D,OAAhC,CAAA;AACA,EAAA,OAAO5D,aAAP,CAAA;AACH,CAAA;;AACD,SAAS8D,8BAAT,CAAwCpH,EAAxC,EAA4C+B,KAA5C,EAAmDoF,KAAnD,EAA0D;AACtD,EAAA,IAAIE,KAAK,GAAGrH,EAAE,CAACqG,KAAH,CAASgB,KAArB,CAAA;EACA,IAAIC,YAAY,GAAG,EAAnB,CAAA;AACA,EAAA,IAAIC,eAAJ,CAAA;AACA,EAAA,IAAIC,gBAAJ,CAAA;AACAC,EAAAA,MAAI,CAACJ,KAAD,EAAQ,UAAUjB,IAAV,EAAgB;AACxB,IAAA,IAAIsB,QAAQ,GAAGlE,gBAAgB,CAAC2D,KAAK,CAAC1D,IAAP,CAA/B,CAAA;IACAiE,QAAQ,CAACC,SAAT,GAAqB,IAArB,CAAA;IACAC,kBAAkB,CAACxB,IAAD,EAAO,EAAP,EAAWsB,QAAX,EAAqB,IAArB,CAAlB,CAAA;AACA,IAAA,IAAI1D,QAAQ,GAAG0D,QAAQ,CAAC1D,QAAxB,CAAA;AACA,IAAA,IAAID,QAAQ,GAAG2D,QAAQ,CAAC3D,QAAxB,CAAA;AACA,IAAA,IAAI8D,SAAS,GAAG3E,IAAI,CAACc,QAAD,CAApB,CAAA;AACA,IAAA,IAAI8D,GAAG,GAAGD,SAAS,CAAC9J,MAApB,CAAA;;IACA,IAAI,CAAC+J,GAAL,EAAU;AACN,MAAA,OAAA;AACH,KAAA;;AACDN,IAAAA,gBAAgB,GAAGK,SAAS,CAACC,GAAG,GAAG,CAAP,CAA5B,CAAA;AACA,IAAA,IAAIC,QAAQ,GAAG/D,QAAQ,CAACwD,gBAAD,CAAvB,CAAA;;AACA,IAAA,KAAK,IAAIjE,OAAT,IAAoBwE,QAApB,EAA8B;AAC1B,MAAA,IAAIC,EAAE,GAAGD,QAAQ,CAACxE,OAAD,CAAjB,CAAA;MACA+D,YAAY,CAAC/D,OAAD,CAAZ,GAAwB+D,YAAY,CAAC/D,OAAD,CAAZ,IAAyB;AAAEnF,QAAAA,CAAC,EAAE,EAAA;OAAtD,CAAA;MACAkJ,YAAY,CAAC/D,OAAD,CAAZ,CAAsBnF,CAAtB,IAA2B4J,EAAE,CAAC5J,CAAH,IAAQ,EAAnC,CAAA;AACH,KAAA;;AACD,IAAA,KAAK,IAAI+E,SAAT,IAAsBY,QAAtB,EAAgC;AAC5B,MAAA,IAAIpF,GAAG,GAAGoF,QAAQ,CAACZ,SAAD,CAAR,CAAoBwE,SAA9B,CAAA;;AACA,MAAA,IAAIhJ,GAAG,CAACsJ,OAAJ,CAAYT,gBAAZ,CAAA,IAAiC,CAArC,EAAwC;AACpCD,QAAAA,eAAe,GAAG5I,GAAlB,CAAA;AACH,OAAA;AACJ,KAAA;AACJ,GAxBG,CAAJ,CAAA;;EAyBA,IAAI,CAAC4I,eAAL,EAAsB;AAClB,IAAA,OAAA;AACH,GAAA;;EACDxF,KAAK,CAAC3D,CAAN,GAAU,KAAV,CAAA;AACA,EAAA,IAAIkF,aAAa,GAAG2D,YAAY,CAACK,YAAD,EAAeH,KAAf,CAAhC,CAAA;AACA,EAAA,OAAOI,eAAe,CAACW,OAAhB,CAAwBV,gBAAxB,EAA0ClE,aAA1C,CAAP,CAAA;AACH,CAAA;;AACD,SAAS6E,aAAT,CAAuBC,MAAvB,EAA+B;EAC3B,OAAOC,QAAQ,CAACD,MAAD,CAAR,GACDzD,UAAU,CAACyD,MAAD,CAAV,GACI,eAAA,GAAkBzD,UAAU,CAACyD,MAAD,CAA5B,GAAuC,GAD3C,GAEIE,qBAAqB,CAACF,MAAD,CAArB,GAAgCA,MAAhC,GAAyC,EAH5C,GAID,EAJN,CAAA;AAKH,CAAA;;AACM,SAASR,kBAAT,CAA4B5H,EAA5B,EAAgC+B,KAAhC,EAAuCoF,KAAvC,EAA8CoB,SAA9C,EAAyD;AAC5D,EAAA,IAAIC,SAAS,GAAGxI,EAAE,CAACwI,SAAnB,CAAA;AACA,EAAA,IAAIV,GAAG,GAAGU,SAAS,CAACzK,MAApB,CAAA;EACA,IAAI0K,aAAa,GAAG,EAApB,CAAA;;EACA,IAAIzI,EAAE,YAAY0I,YAAlB,EAAgC;IAC5B,IAAIC,YAAY,GAAGvB,8BAA8B,CAACpH,EAAD,EAAK+B,KAAL,EAAYoF,KAAZ,CAAjD,CAAA;;AACA,IAAA,IAAIwB,YAAJ,EAAkB;MACdF,aAAa,CAAC3J,IAAd,CAAmB6J,YAAnB,CAAA,CAAA;AACH,KAFD,MAGK,IAAI,CAACb,GAAL,EAAU;AACX,MAAA,OAAA;AACH,KAAA;AACJ,GARD,MASK,IAAI,CAACA,GAAL,EAAU;AACX,IAAA,OAAA;AACH,GAAA;;EACD,IAAIc,cAAc,GAAG,EAArB,CAAA;;EACA,KAAK,IAAInK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,EAAyBrJ,CAAC,EAA1B,EAA8B;AAC1B,IAAA,IAAIoK,QAAQ,GAAGL,SAAS,CAAC/J,CAAD,CAAxB,CAAA;IACA,IAAIqK,MAAM,GAAG,CAACD,QAAQ,CAACE,UAAT,EAAwB,GAAA,IAAxB,GAA+B,GAAhC,CAAb,CAAA;IACA,IAAIX,MAAM,GAAGD,aAAa,CAACU,QAAQ,CAACG,OAAT,EAAmBZ,CAAAA,MAApB,CAA1B,CAAA;AACA,IAAA,IAAIa,KAAK,GAAGJ,QAAQ,CAACK,QAAT,EAAZ,CAAA;;AACA,IAAA,IAAId,MAAJ,EAAY;MACRU,MAAM,CAAChK,IAAP,CAAYsJ,MAAZ,CAAA,CAAA;AACH,KAFD,MAGK;MACDU,MAAM,CAAChK,IAAP,CAAY,QAAZ,CAAA,CAAA;AACH,KAAA;;AACD,IAAA,IAAImK,KAAJ,EAAW;AACPH,MAAAA,MAAM,CAAChK,IAAP,CAAYmK,KAAK,GAAG,IAAR,GAAe,GAA3B,CAAA,CAAA;AACH,KAAA;;AACD,IAAA,IAAIJ,QAAQ,CAACM,OAAT,EAAJ,EAAwB;MACpBL,MAAM,CAAChK,IAAP,CAAY,UAAZ,CAAA,CAAA;AACH,KAAA;;AACD,IAAA,IAAIsK,GAAG,GAAGN,MAAM,CAAC/J,IAAP,CAAY,GAAZ,CAAV,CAAA;AACA6J,IAAAA,cAAc,CAACQ,GAAD,CAAd,GAAsBR,cAAc,CAACQ,GAAD,CAAd,IAAuB,CAACA,GAAD,EAAM,EAAN,CAA7C,CAAA;IACAR,cAAc,CAACQ,GAAD,CAAd,CAAoB,CAApB,CAAuBtK,CAAAA,IAAvB,CAA4B+J,QAA5B,CAAA,CAAA;AACH,GAAA;;EACD,SAASQ,wBAAT,CAAkCC,aAAlC,EAAiD;AAC7C,IAAA,IAAId,SAAS,GAAGc,aAAa,CAAC,CAAD,CAA7B,CAAA;AACA,IAAA,IAAIxB,GAAG,GAAGU,SAAS,CAACzK,MAApB,CAAA;IACA,IAAIwL,YAAY,GAAG,EAAnB,CAAA;IACA,IAAIC,QAAQ,GAAG,EAAf,CAAA;IACA,IAAIC,QAAQ,GAAG,EAAf,CAAA;IACA,IAAIC,+BAA+B,GAAG,2BAAtC,CAAA;;AACA,IAAA,SAASC,yBAAT,CAAmCd,QAAnC,EAA6Ce,MAA7C,EAAqDC,aAArD,EAAoE;AAChE,MAAA,IAAIC,MAAM,GAAGjB,QAAQ,CAACkB,SAAT,EAAb,CAAA;AACA,MAAA,IAAIC,OAAO,GAAGnB,QAAQ,CAACE,UAAT,EAAd,CAAA;;AACA,MAAA,KAAK,IAAIkB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,MAAM,CAAC/L,MAA3B,EAAmCkM,CAAC,EAApC,EAAwC;AACpC,QAAA,IAAIC,KAAK,GAAGJ,MAAM,CAACG,CAAD,CAAlB,CAAA;;AACA,QAAA,IAAIC,KAAK,CAACC,YAAN,EAAJ,EAA0B;AACtB,UAAA,IAAIC,GAAG,GAAGF,KAAK,CAACG,SAAhB,CAAA;AACA,UAAA,IAAIjH,QAAQ,GAAG8G,KAAK,CAAChJ,QAArB,CAAA;AACA2I,UAAAA,aAAa,KAAKzG,QAAQ,GAAGyG,aAAa,CAACzG,QAAD,CAA7B,CAAb,CAAA;;AACA,UAAA,IAAIA,QAAJ,EAAc;AACV,YAAA,KAAK,IAAI3E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2L,GAAG,CAACrM,MAAxB,EAAgCU,CAAC,EAAjC,EAAqC;AACjC,cAAA,IAAIuJ,EAAE,GAAGoC,GAAG,CAAC3L,CAAD,CAAZ,CAAA;AACA,cAAA,IAAI8E,OAAO,GAAGhJ,IAAI,CAACiD,KAAL,CAAWwK,EAAE,CAACsC,IAAH,GAAUN,OAAV,GAAoB,GAA/B,IAAsC,GAApD,CAAA;AACA,cAAA,IAAIO,QAAQ,GAAGpC,aAAa,CAACH,EAAE,CAACI,MAAJ,CAA5B,CAAA;AACA,cAAA,IAAIoC,QAAQ,GAAGxC,EAAE,CAACwC,QAAlB,CAAA;;cACA,IAAInC,QAAQ,CAACmC,QAAD,CAAR,IAAsBC,QAAQ,CAACD,QAAD,CAAlC,EAA8C;gBAC1CZ,MAAM,CAACrG,OAAD,CAAN,GAAkBqG,MAAM,CAACrG,OAAD,CAAN,IAAmB,EAArC,CAAA;gBACAqG,MAAM,CAACrG,OAAD,CAAN,CAAgBH,QAAhB,CAA4B4E,GAAAA,EAAE,CAACwC,QAA/B,CAAA;;AACA,gBAAA,IAAID,QAAJ,EAAc;AACVX,kBAAAA,MAAM,CAACrG,OAAD,CAAN,CAAgBmG,+BAAhB,IAAmDa,QAAnD,CAAA;AACH,iBAAA;AACJ,eAAA;AACJ,aAAA;AACJ,WAAA;AACJ,SAAA;AACJ,OAAA;AACJ,KAAA;;IACD,KAAK,IAAI9L,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,EAAyBrJ,CAAC,EAA1B,EAA8B;AAC1B,MAAA,IAAIoK,QAAQ,GAAGL,SAAS,CAAC/J,CAAD,CAAxB,CAAA;AACA,MAAA,IAAIiM,UAAU,GAAG7B,QAAQ,CAAC8B,UAA1B,CAAA;;MACA,IAAI,CAACD,UAAL,EAAiB;AACb,QAAA,CAACnC,SAAD,IAAcoB,yBAAyB,CAACd,QAAD,EAAWU,YAAX,CAAvC,CAAA;AACH,OAFD,MAGK,IAAImB,UAAU,KAAK,OAAnB,EAA4B;AAC7Bf,QAAAA,yBAAyB,CAACd,QAAD,EAAWW,QAAX,CAAzB,CAAA;AACH,OAAA;AACJ,KAAA;;AACD,IAAA,KAAK,IAAIjG,OAAT,IAAoBgG,YAApB,EAAkC;MAC9B,IAAI1C,SAAS,GAAG,EAAhB,CAAA;AACA+D,MAAAA,aAAa,CAAC/D,SAAD,EAAY7G,EAAZ,CAAb,CAAA;AACAsG,MAAAA,MAAM,CAACO,SAAD,EAAY0C,YAAY,CAAChG,OAAD,CAAxB,CAAN,CAAA;AACA,MAAA,IAAIsH,GAAG,GAAGC,qBAAqB,CAACjE,SAAD,CAA/B,CAAA;MACA,IAAIkE,cAAc,GAAGxB,YAAY,CAAChG,OAAD,CAAZ,CAAsBmG,+BAAtB,CAArB,CAAA;AACAD,MAAAA,QAAQ,CAAClG,OAAD,CAAR,GAAoBsH,GAAG,GAAG;AACtBhE,QAAAA,SAAS,EAAEgE,GAAAA;AADW,OAAH,GAEnB,EAFJ,CAAA;AAGAlE,MAAAA,kBAAkB,CAAC8C,QAAQ,CAAClG,OAAD,CAAT,EAAoBsD,SAApB,CAAlB,CAAA;;AACA,MAAA,IAAIkE,cAAJ,EAAoB;AAChBtB,QAAAA,QAAQ,CAAClG,OAAD,CAAR,CAAkBmG,+BAAlB,IAAqDqB,cAArD,CAAA;AACH,OAAA;AACJ,KAAA;;AACD,IAAA,CAAA;AACA,IAAA,IAAI3E,IAAJ,CAAA;IACA,IAAI4E,eAAe,GAAG,IAAtB,CAAA;;AACA,IAAA,KAAK,IAAIzH,OAAT,IAAoBiG,QAApB,EAA8B;MAC1BC,QAAQ,CAAClG,OAAD,CAAR,GAAoBkG,QAAQ,CAAClG,OAAD,CAAR,IAAqB,EAAzC,CAAA;MACA,IAAI0H,OAAO,GAAG,CAAC7E,IAAf,CAAA;MACA,IAAI2E,cAAc,GAAGvB,QAAQ,CAACjG,OAAD,CAAR,CAAkBmG,+BAAlB,CAArB,CAAA;;AACA,MAAA,IAAIuB,OAAJ,EAAa;QACT7E,IAAI,GAAG,IAAI8E,SAAJ,EAAP,CAAA;AACH,OAAA;;AACD,MAAA,IAAIC,KAAK,GAAG/E,IAAI,CAAC0B,GAAL,EAAZ,CAAA;AACA1B,MAAAA,IAAI,CAACpL,KAAL,EAAA,CAAA;AACAyO,MAAAA,QAAQ,CAAClG,OAAD,CAAR,CAAkBnF,CAAlB,GAAsB8H,eAAe,CAAClG,EAAD,EAAKwJ,QAAQ,CAACjG,OAAD,CAAb,EAAwB6C,IAAxB,CAArC,CAAA;AACA,MAAA,IAAIgF,MAAM,GAAGhF,IAAI,CAAC0B,GAAL,EAAb,CAAA;;AACA,MAAA,IAAI,CAACmD,OAAD,IAAYE,KAAK,KAAKC,MAA1B,EAAkC;AAC9BJ,QAAAA,eAAe,GAAG,KAAlB,CAAA;AACA,QAAA,MAAA;AACH,OAAA;;AACD,MAAA,IAAID,cAAJ,EAAoB;AAChBtB,QAAAA,QAAQ,CAAClG,OAAD,CAAR,CAAkBmG,+BAAlB,IAAqDqB,cAArD,CAAA;AACH,OAAA;AACJ,KAAA;;AACD,IAAA,CAAA;;IACA,IAAI,CAACC,eAAL,EAAsB;AAClB,MAAA,KAAK,IAAIzH,OAAT,IAAoBkG,QAApB,EAA8B;AAC1B,QAAA,OAAOA,QAAQ,CAAClG,OAAD,CAAR,CAAkBnF,CAAzB,CAAA;AACH,OAAA;AACJ,KAAA;;IACD,IAAI,CAACmK,SAAL,EAAgB;MACZ,KAAK,IAAI9J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,EAAyBrJ,CAAC,EAA1B,EAA8B;AAC1B,QAAA,IAAIoK,QAAQ,GAAGL,SAAS,CAAC/J,CAAD,CAAxB,CAAA;AACA,QAAA,IAAIiM,UAAU,GAAG7B,QAAQ,CAAC8B,UAA1B,CAAA;;QACA,IAAID,UAAU,KAAK,OAAnB,EAA4B;AACxBf,UAAAA,yBAAyB,CAACd,QAAD,EAAWY,QAAX,EAAqB,UAAUvI,QAAV,EAAoB;YAAE,OAAO8F,iBAAiB,CAAC9F,QAAD,CAAxB,CAAA;AAAqC,WAAhF,CAAzB,CAAA;AACH,SAAA;AACJ,OAAA;AACJ,KAAA;;AACD,IAAA,IAAImK,QAAQ,GAAGnI,IAAI,CAACuG,QAAD,CAAnB,CAAA;IACA,IAAI6B,sBAAsB,GAAG,IAA7B,CAAA;AACA,IAAA,IAAIC,eAAJ,CAAA;;AACA,IAAA,KAAK,IAAI9M,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4M,QAAQ,CAACtN,MAA7B,EAAqCU,CAAC,EAAtC,EAA0C;AACtC,MAAA,IAAI+M,EAAE,GAAGH,QAAQ,CAAC5M,CAAC,GAAG,CAAL,CAAjB,CAAA;AACA,MAAA,IAAIgN,EAAE,GAAGJ,QAAQ,CAAC5M,CAAD,CAAjB,CAAA;;AACA,MAAA,IAAIgL,QAAQ,CAAC+B,EAAD,CAAR,CAAavF,kBAAb,CAAA,KAAqCwD,QAAQ,CAACgC,EAAD,CAAR,CAAaxF,kBAAb,CAAzC,EAA2E;AACvEqF,QAAAA,sBAAsB,GAAG,KAAzB,CAAA;AACA,QAAA,MAAA;AACH,OAAA;;AACDC,MAAAA,eAAe,GAAG9B,QAAQ,CAAC+B,EAAD,CAAR,CAAavF,kBAAb,CAAlB,CAAA;AACH,KAAA;;IACD,IAAIqF,sBAAsB,IAAIC,eAA9B,EAA+C;AAC3C,MAAA,KAAK,IAAIhI,OAAT,IAAoBkG,QAApB,EAA8B;AAC1B,QAAA,IAAIA,QAAQ,CAAClG,OAAD,CAAR,CAAkB0C,kBAAlB,CAAJ,EAA2C;AACvC,UAAA,OAAOwD,QAAQ,CAAClG,OAAD,CAAR,CAAkB0C,kBAAlB,CAAP,CAAA;AACH,SAAA;AACJ,OAAA;;AACDlE,MAAAA,KAAK,CAACkE,kBAAD,CAAL,GAA4BsF,eAA5B,CAAA;AACH,KAAA;;AACD,IAAA,IAAIG,MAAM,CAACL,QAAD,EAAW,UAAU9H,OAAV,EAAmB;MAAE,OAAOL,IAAI,CAACuG,QAAQ,CAAClG,OAAD,CAAT,CAAJ,CAAwBxF,MAAxB,GAAiC,CAAxC,CAAA;KAAhC,CAAN,CAAoFA,MAAxF,EAAgG;AAC5F,MAAA,IAAIuF,aAAa,GAAG2D,YAAY,CAACwC,QAAD,EAAWtC,KAAX,CAAhC,CAAA;MACA,OAAO7D,aAAa,GAAG,GAAhB,GAAsBgG,aAAa,CAAC,CAAD,CAAnC,GAAyC,OAAhD,CAAA;AACH,KAAA;AACJ,GAAA;;AACD,EAAA,KAAK,IAAIxH,GAAT,IAAgB8G,cAAhB,EAAgC;IAC5B,IAAID,YAAY,GAAGU,wBAAwB,CAACT,cAAc,CAAC9G,GAAD,CAAf,CAA3C,CAAA;;AACA,IAAA,IAAI6G,YAAJ,EAAkB;MACdF,aAAa,CAAC3J,IAAd,CAAmB6J,YAAnB,CAAA,CAAA;AACH,KAAA;AACJ,GAAA;;EACD,IAAIF,aAAa,CAAC1K,MAAlB,EAA0B;IACtB,IAAIoF,SAAS,GAAGgE,KAAK,CAAC1D,IAAN,GAAa,OAAb,GAAuB0D,KAAK,CAAClD,WAAN,EAAvC,CAAA;AACAkD,IAAAA,KAAK,CAACpD,QAAN,CAAe,GAAA,GAAMZ,SAArB,CAAkC,GAAA;AAC9BwE,MAAAA,SAAS,EAAEc,aAAa,CAAC1J,IAAd,CAAmB,GAAnB,CAAA;KADf,CAAA;AAGAgD,IAAAA,KAAK,CAAC,OAAD,CAAL,GAAiBoB,SAAjB,CAAA;AACH,GAAA;AACJ;;ACrQD,IAAI3F,OAAK,GAAGjD,IAAI,CAACiD,KAAjB,CAAA;;AACA,SAASmO,WAAT,CAAqBhN,GAArB,EAA0B;AACtB,EAAA,OAAOA,GAAG,IAAI0J,QAAQ,CAAC1J,GAAG,CAACiN,GAAL,CAAtB,CAAA;AACH,CAAA;;AACD,SAASC,YAAT,CAAsBlN,GAAtB,EAA2B;AACvB,EAAA,OAAOA,GAAG,IAAImN,UAAU,CAACnN,GAAG,CAACoN,SAAL,CAAxB,CAAA;AACH,CAAA;;AACD,SAASC,aAAT,CAAuBjK,KAAvB,EAA8B1C,KAA9B,EAAqCW,EAArC,EAAyCmH,KAAzC,EAAgD;AAC5CrH,EAAAA,eAAe,CAAC,UAAUgC,GAAV,EAAenD,GAAf,EAAoB;IAChC,IAAIsN,YAAY,GAAGnK,GAAG,KAAK,MAAR,IAAkBA,GAAG,KAAK,QAA7C,CAAA;;AACA,IAAA,IAAImK,YAAY,IAAIC,UAAU,CAACvN,GAAD,CAA9B,EAAqC;MACjCwN,WAAW,CAAC9M,KAAD,EAAQ0C,KAAR,EAAeD,GAAf,EAAoBqF,KAApB,CAAX,CAAA;KADJ,MAGK,IAAI8E,YAAY,IAAIG,SAAS,CAACzN,GAAD,CAA7B,EAAoC;MACrC0N,UAAU,CAACrM,EAAD,EAAK+B,KAAL,EAAYD,GAAZ,EAAiBqF,KAAjB,CAAV,CAAA;AACH,KAFI,MAGA;AACDpF,MAAAA,KAAK,CAACD,GAAD,CAAL,GAAanD,GAAb,CAAA;AACH,KAAA;AACJ,GAXc,EAWZU,KAXY,EAWLW,EAXK,EAWD,KAXC,CAAf,CAAA;AAYAsM,EAAAA,SAAS,CAACtM,EAAD,EAAK+B,KAAL,EAAYoF,KAAZ,CAAT,CAAA;AACH,CAAA;;AACD,SAASoF,aAAT,CAAuBC,CAAvB,EAA0B;AACtB,EAAA,OAAOtP,YAAY,CAACsP,CAAC,CAAC,CAAD,CAAD,GAAO,CAAR,CAAZ,IACAtP,YAAY,CAACsP,CAAC,CAAC,CAAD,CAAF,CADZ,IAEAtP,YAAY,CAACsP,CAAC,CAAC,CAAD,CAAF,CAFZ,IAGAtP,YAAY,CAACsP,CAAC,CAAC,CAAD,CAAD,GAAO,CAAR,CAHnB,CAAA;AAIH,CAAA;;AACD,SAASC,WAAT,CAAqBD,CAArB,EAAwB;AACpB,EAAA,OAAOtP,YAAY,CAACsP,CAAC,CAAC,CAAD,CAAF,CAAZ,IAAsBtP,YAAY,CAACsP,CAAC,CAAC,CAAD,CAAF,CAAzC,CAAA;AACH,CAAA;;AACD,SAASE,YAAT,CAAsB3K,KAAtB,EAA6ByK,CAA7B,EAAgCG,QAAhC,EAA0C;AACtC,EAAA,IAAIH,CAAC,IAAI,EAAEC,WAAW,CAACD,CAAD,CAAX,IAAkBD,aAAa,CAACC,CAAD,CAAjC,CAAT,EAAgD;AAC5C,IAAA,IAAII,GAAG,GAAGD,QAAQ,GAAG,EAAH,GAAQ,GAA1B,CAAA;AACA5K,IAAAA,KAAK,CAAC8E,SAAN,GAAkB0F,aAAa,CAACC,CAAD,CAAb,GACZ,YAAA,GAAehP,OAAK,CAACgP,CAAC,CAAC,CAAD,CAAD,GAAOI,GAAR,CAAL,GAAoBA,GAAnC,GAAyC,GAAzC,GAA+CpP,OAAK,CAACgP,CAAC,CAAC,CAAD,CAAD,GAAOI,GAAR,CAAL,GAAoBA,GAAnE,GAAyE,GAD7D,GACmEC,YAAY,CAACL,CAAD,CADjG,CAAA;AAEH,GAAA;AACJ,CAAA;;AACD,SAASM,gBAAT,CAA0BzG,KAA1B,EAAiCtE,KAAjC,EAAwC6K,GAAxC,EAA6C;AACzC,EAAA,IAAIG,MAAM,GAAG1G,KAAK,CAAC0G,MAAnB,CAAA;EACA,IAAIC,MAAM,GAAG,EAAb,CAAA;;AACA,EAAA,KAAK,IAAIvO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsO,MAAM,CAAChP,MAA3B,EAAmCU,CAAC,EAApC,EAAwC;AACpCuO,IAAAA,MAAM,CAAClO,IAAP,CAAYtB,OAAK,CAACuP,MAAM,CAACtO,CAAD,CAAN,CAAU,CAAV,CAAA,GAAemO,GAAhB,CAAL,GAA4BA,GAAxC,CAAA,CAAA;AACAI,IAAAA,MAAM,CAAClO,IAAP,CAAYtB,OAAK,CAACuP,MAAM,CAACtO,CAAD,CAAN,CAAU,CAAV,CAAA,GAAemO,GAAhB,CAAL,GAA4BA,GAAxC,CAAA,CAAA;AACH,GAAA;;EACD7K,KAAK,CAACgL,MAAN,GAAeC,MAAM,CAACjO,IAAP,CAAY,GAAZ,CAAf,CAAA;AACH,CAAA;;AACD,SAASkO,iBAAT,CAA2B5G,KAA3B,EAAkC;EAC9B,OAAO,CAACA,KAAK,CAAC6G,MAAd,CAAA;AACH,CAAA;;AACD,SAASC,kBAAT,CAA4BC,IAA5B,EAAkC;EAC9B,IAAIC,cAAc,GAAG1N,GAAG,CAACyN,IAAD,EAAO,UAAUE,IAAV,EAAgB;IAC3C,OAAQ,OAAOA,IAAP,KAAgB,QAAhB,GAA2B,CAACA,IAAD,EAAOA,IAAP,CAA3B,GAA0CA,IAAlD,CAAA;AACH,GAFuB,CAAxB,CAAA;AAGA,EAAA,OAAO,UAAUjH,KAAV,EAAiBtE,KAAjB,EAAwB6K,GAAxB,EAA6B;AAChC,IAAA,KAAK,IAAInO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4O,cAAc,CAACtP,MAAnC,EAA2CU,CAAC,EAA5C,EAAgD;AAC5C,MAAA,IAAI6O,IAAI,GAAGD,cAAc,CAAC5O,CAAD,CAAzB,CAAA;MACA,IAAIE,GAAG,GAAG0H,KAAK,CAACiH,IAAI,CAAC,CAAD,CAAL,CAAf,CAAA;;MACA,IAAI3O,GAAG,IAAI,IAAX,EAAiB;AACboD,QAAAA,KAAK,CAACuL,IAAI,CAAC,CAAD,CAAL,CAAL,GAAiB9P,OAAK,CAACmB,GAAG,GAAGiO,GAAP,CAAL,GAAmBA,GAApC,CAAA;AACH,OAAA;AACJ,KAAA;GAPL,CAAA;AASH,CAAA;;AACD,IAAIW,eAAe,GAAG;AAClBC,EAAAA,MAAM,EAAE,CAACL,kBAAkB,CAAC,CAAC,IAAD,EAAO,IAAP,EAAa,GAAb,CAAD,CAAnB,CADU;AAElBM,EAAAA,QAAQ,EAAE,CAACX,gBAAD,EAAmBG,iBAAnB,CAFQ;AAGlBS,EAAAA,OAAO,EAAE,CAACZ,gBAAD,EAAmBG,iBAAnB,CAAA;AAHS,CAAtB,CAAA;;AAKA,SAASU,iBAAT,CAA2B3N,EAA3B,EAA+B;AAC3B,EAAA,IAAIwI,SAAS,GAAGxI,EAAE,CAACwI,SAAnB,CAAA;;AACA,EAAA,KAAK,IAAI/J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+J,SAAS,CAACzK,MAA9B,EAAsCU,CAAC,EAAvC,EAA2C;IACvC,IAAI+J,SAAS,CAAC/J,CAAD,CAAT,CAAakM,UAAb,KAA4B,OAAhC,EAAyC;AACrC,MAAA,OAAO,IAAP,CAAA;AACH,KAAA;AACJ,GAAA;;AACD,EAAA,OAAO,KAAP,CAAA;AACH,CAAA;;AACM,SAASiD,YAAT,CAAsB5N,EAAtB,EAA0BmH,KAA1B,EAAiC;AACpC,EAAA,IAAI9H,KAAK,GAAGW,EAAE,CAACX,KAAf,CAAA;AACA,EAAA,IAAIgH,KAAK,GAAGrG,EAAE,CAACqG,KAAf,CAAA;AACA,EAAA,IAAIwH,aAAa,GAAGN,eAAe,CAACvN,EAAE,CAAC8N,IAAJ,CAAnC,CAAA;EACA,IAAI/L,KAAK,GAAG,EAAZ,CAAA;AACA,EAAA,IAAIoI,YAAY,GAAGhD,KAAK,CAACQ,SAAzB,CAAA;EACA,IAAIoG,SAAS,GAAG,MAAhB,CAAA;AACA,EAAA,IAAIC,aAAa,GAAGhO,EAAE,CAACX,KAAH,CAAS2O,aAA7B,CAAA;EACA,IAAI/S,SAAS,GAAIkM,KAAK,CAACwF,QAAN,IAAkBlG,gBAAgB,CAACzG,EAAD,CAAnC,IAA4C,CAA5D,CAAA;;AACA,EAAA,IAAI6N,aAAa,IACV,CAAC1G,KAAK,CAAC8G,UADV,IAEG,EAAEJ,aAAa,CAAC,CAAD,CAAb,IAAoB,CAACA,aAAa,CAAC,CAAD,CAAb,CAAiBxH,KAAjB,CAAvB,CAFH,IAGG,EAAE8D,YAAY,IAAIwD,iBAAiB,CAAC3N,EAAD,CAAnC,CAHH,IAIG,EAAEgO,aAAa,GAAG,CAAlB,CAJP,EAI6B;IACzBD,SAAS,GAAG/N,EAAE,CAAC8N,IAAf,CAAA;IACA,IAAIlB,GAAG,GAAGrS,IAAI,CAACe,GAAL,CAAS,EAAT,EAAaL,SAAb,CAAV,CAAA;IACA4S,aAAa,CAAC,CAAD,CAAb,CAAiBxH,KAAjB,EAAwBtE,KAAxB,EAA+B6K,GAA/B,CAAA,CAAA;AACH,GARD,MASK;AACD,IAAA,IAAI,CAAC5M,EAAE,CAACoG,IAAR,EAAc;AACVpG,MAAAA,EAAE,CAACkO,eAAH,EAAA,CAAA;AACH,KAAA;;AACD,IAAA,IAAI9H,IAAI,GAAGpG,EAAE,CAACoG,IAAd,CAAA;;AACA,IAAA,IAAIpG,EAAE,CAACmO,YAAH,EAAJ,EAAuB;AACnB/H,MAAAA,IAAI,CAACgI,SAAL,EAAA,CAAA;AACApO,MAAAA,EAAE,CAACuG,SAAH,CAAaH,IAAb,EAAmBpG,EAAE,CAACqG,KAAtB,CAAA,CAAA;AACArG,MAAAA,EAAE,CAACqO,WAAH,EAAA,CAAA;AACH,KAAA;;AACD,IAAA,IAAIC,WAAW,GAAGlI,IAAI,CAACmI,UAAL,EAAlB,CAAA;IACA,IAAIC,KAAK,GAAGxO,EAAZ,CAAA;AACA,IAAA,IAAIwG,cAAc,GAAGgI,KAAK,CAACC,gBAA3B,CAAA;;AACA,IAAA,IAAID,KAAK,CAACE,gBAAN,KAA2BJ,WAA3B,IACG,CAAC9H,cADJ,IAEGwH,aAAa,KAAKQ,KAAK,CAACG,sBAF/B,EAEuD;MACnD,IAAI,CAACnI,cAAL,EAAqB;AACjBA,QAAAA,cAAc,GAAGgI,KAAK,CAACC,gBAAN,GAAyB,IAAI3T,gBAAJ,EAA1C,CAAA;AACH,OAAA;;MACD0L,cAAc,CAACxL,KAAf,CAAqBC,SAArB,CAAA,CAAA;AACAmL,MAAAA,IAAI,CAACM,WAAL,CAAiBF,cAAjB,EAAiCwH,aAAjC,CAAA,CAAA;AACAxH,MAAAA,cAAc,CAACxH,WAAf,EAAA,CAAA;MACAwP,KAAK,CAACE,gBAAN,GAAyBJ,WAAzB,CAAA;MACAE,KAAK,CAACG,sBAAN,GAA+BX,aAA/B,CAAA;AACH,KAAA;;AACDjM,IAAAA,KAAK,CAAC3D,CAAN,GAAUoI,cAAc,CAACvH,MAAf,EAAV,CAAA;AACH,GAAA;;AACDyN,EAAAA,YAAY,CAAC3K,KAAD,EAAQ/B,EAAE,CAAC6G,SAAX,CAAZ,CAAA;EACAmF,aAAa,CAACjK,KAAD,EAAQ1C,KAAR,EAAeW,EAAf,EAAmBmH,KAAnB,CAAb,CAAA;EACAA,KAAK,CAACQ,SAAN,IAAmBC,kBAAkB,CAAC5H,EAAD,EAAK+B,KAAL,EAAYoF,KAAZ,CAArC,CAAA;EACA,OAAOvF,WAAW,CAACmM,SAAD,EAAY/N,EAAE,CAAC4O,EAAH,GAAQ,EAApB,EAAwB7M,KAAxB,CAAlB,CAAA;AACH,CAAA;AACM,SAAS8M,aAAT,CAAuB7O,EAAvB,EAA2BmH,KAA3B,EAAkC;AACrC,EAAA,IAAI9H,KAAK,GAAGW,EAAE,CAACX,KAAf,CAAA;AACA,EAAA,IAAIyP,KAAK,GAAGzP,KAAK,CAACyP,KAAlB,CAAA;;AACA,EAAA,IAAIA,KAAK,IAAI,CAACzG,QAAQ,CAACyG,KAAD,CAAtB,EAA+B;AAC3B,IAAA,IAAInD,WAAW,CAACmD,KAAD,CAAf,EAAwB;MACpBA,KAAK,GAAGA,KAAK,CAAClD,GAAd,CAAA;AACH,KAFD,MAGK,IAAIC,YAAY,CAACiD,KAAD,CAAhB,EAAyB;AAC1BA,MAAAA,KAAK,GAAGA,KAAK,CAAC/C,SAAN,EAAR,CAAA;AACH,KAAA;AACJ,GAAA;;EACD,IAAI,CAAC+C,KAAL,EAAY;AACR,IAAA,OAAA;AACH,GAAA;;AACD,EAAA,IAAItT,CAAC,GAAG6D,KAAK,CAAC7D,CAAN,IAAW,CAAnB,CAAA;AACA,EAAA,IAAIC,CAAC,GAAG4D,KAAK,CAAC5D,CAAN,IAAW,CAAnB,CAAA;AACA,EAAA,IAAIsT,EAAE,GAAG1P,KAAK,CAACmF,KAAf,CAAA;AACA,EAAA,IAAIwK,EAAE,GAAG3P,KAAK,CAACoF,MAAf,CAAA;AACA,EAAA,IAAI1C,KAAK,GAAG;AACRkN,IAAAA,IAAI,EAAEH,KADE;AAERtK,IAAAA,KAAK,EAAEuK,EAFC;AAGRtK,IAAAA,MAAM,EAAEuK,EAAAA;GAHZ,CAAA;;AAKA,EAAA,IAAIxT,CAAJ,EAAO;IACHuG,KAAK,CAACvG,CAAN,GAAUA,CAAV,CAAA;AACH,GAAA;;AACD,EAAA,IAAIC,CAAJ,EAAO;IACHsG,KAAK,CAACtG,CAAN,GAAUA,CAAV,CAAA;AACH,GAAA;;AACDiR,EAAAA,YAAY,CAAC3K,KAAD,EAAQ/B,EAAE,CAAC6G,SAAX,CAAZ,CAAA;EACAmF,aAAa,CAACjK,KAAD,EAAQ1C,KAAR,EAAeW,EAAf,EAAmBmH,KAAnB,CAAb,CAAA;EACAA,KAAK,CAACQ,SAAN,IAAmBC,kBAAkB,CAAC5H,EAAD,EAAK+B,KAAL,EAAYoF,KAAZ,CAArC,CAAA;EACA,OAAOvF,WAAW,CAAC,OAAD,EAAU5B,EAAE,CAAC4O,EAAH,GAAQ,EAAlB,EAAsB7M,KAAtB,CAAlB,CAAA;AACH,CAAA;AACD,CAAA;AACO,SAASmN,aAAT,CAAuBlP,EAAvB,EAA2BmH,KAA3B,EAAkC;AACrC,EAAA,IAAI9H,KAAK,GAAGW,EAAE,CAACX,KAAf,CAAA;AACA,EAAA,IAAI4C,IAAI,GAAG5C,KAAK,CAAC4C,IAAjB,CAAA;AACAA,EAAAA,IAAI,IAAI,IAAR,KAAiBA,IAAI,IAAI,EAAzB,CAAA,CAAA;;AACA,EAAA,IAAI,CAACA,IAAD,IAASrD,KAAK,CAACS,KAAK,CAAC7D,CAAP,CAAd,IAA2BoD,KAAK,CAACS,KAAK,CAAC5D,CAAP,CAApC,EAA+C;AAC3C,IAAA,OAAA;AACH,GAAA;;AACD,EAAA,IAAI0T,IAAI,GAAG9P,KAAK,CAAC8P,IAAN,IAAcC,YAAzB,CAAA;AACA,EAAA,IAAI5T,CAAC,GAAG6D,KAAK,CAAC7D,CAAN,IAAW,CAAnB,CAAA;AACA,EAAA,IAAIC,CAAC,GAAG4T,WAAW,CAAChQ,KAAK,CAAC5D,CAAN,IAAW,CAAZ,EAAe6T,aAAa,CAACH,IAAD,CAA5B,EAAoC9P,KAAK,CAACkQ,YAA1C,CAAnB,CAAA;EACA,IAAIC,SAAS,GAAGC,oBAAoB,CAACpQ,KAAK,CAACmQ,SAAP,CAApB,IACTnQ,KAAK,CAACmQ,SADb,CAAA;AAEA,EAAA,IAAIzN,KAAK,GAAG;AACR,IAAA,mBAAA,EAAqB,SADb;IAER,aAAeyN,EAAAA,SAAAA;GAFnB,CAAA;;AAIA,EAAA,IAAIE,eAAe,CAACrQ,KAAD,CAAnB,EAA4B;IACxB,IAAIsQ,gBAAgB,GAAG,EAAvB,CAAA;AACA,IAAA,IAAIC,SAAS,GAAGvQ,KAAK,CAACuQ,SAAtB,CAAA;AACA,IAAA,IAAIC,QAAQ,GAAGC,aAAa,CAACzQ,KAAK,CAACwQ,QAAP,CAA5B,CAAA;;AACA,IAAA,IAAI,CAACE,UAAU,CAACF,QAAD,CAAf,EAA2B;AACvB,MAAA,OAAA;AACH,KAAA;;AACD,IAAA,IAAIG,UAAU,GAAG3Q,KAAK,CAAC2Q,UAAN,IAAoBC,mBAArC,CAAA;AACA,IAAA,IAAIC,UAAU,GAAG7Q,KAAK,CAAC6Q,UAAvB,CAAA;IACAP,gBAAgB,IAAI,eAAeE,QAAf,GAA0B,eAA1B,GAA4CG,UAA5C,GAAyD,GAA7E,CAAA;;AACA,IAAA,IAAIJ,SAAS,IAAIA,SAAS,KAAK,QAA/B,EAAyC;AACrCD,MAAAA,gBAAgB,IAAI,aAAA,GAAgBC,SAAhB,GAA4B,GAAhD,CAAA;AACH,KAAA;;AACD,IAAA,IAAIM,UAAU,IAAIA,UAAU,KAAK,QAAjC,EAA2C;AACvCP,MAAAA,gBAAgB,IAAI,cAAA,GAAiBO,UAAjB,GAA8B,GAAlD,CAAA;AACH,KAAA;;IACDnO,KAAK,CAAC1C,KAAN,GAAcsQ,gBAAd,CAAA;AACH,GAjBD,MAkBK;AACD5N,IAAAA,KAAK,CAAC1C,KAAN,GAAc,QAAA,GAAW8P,IAAzB,CAAA;AACH,GAAA;;AACD,EAAA,IAAIlN,IAAI,CAACkO,KAAL,CAAW,IAAX,CAAJ,EAAsB;AAClBpO,IAAAA,KAAK,CAAC,WAAD,CAAL,GAAqB,UAArB,CAAA;AACH,GAAA;;AACD,EAAA,IAAIvG,CAAJ,EAAO;IACHuG,KAAK,CAACvG,CAAN,GAAUA,CAAV,CAAA;AACH,GAAA;;AACD,EAAA,IAAIC,CAAJ,EAAO;IACHsG,KAAK,CAACtG,CAAN,GAAUA,CAAV,CAAA;AACH,GAAA;;AACDiR,EAAAA,YAAY,CAAC3K,KAAD,EAAQ/B,EAAE,CAAC6G,SAAX,CAAZ,CAAA;EACAmF,aAAa,CAACjK,KAAD,EAAQ1C,KAAR,EAAeW,EAAf,EAAmBmH,KAAnB,CAAb,CAAA;EACAA,KAAK,CAACQ,SAAN,IAAmBC,kBAAkB,CAAC5H,EAAD,EAAK+B,KAAL,EAAYoF,KAAZ,CAArC,CAAA;AACA,EAAA,OAAOvF,WAAW,CAAC,MAAD,EAAS5B,EAAE,CAAC4O,EAAH,GAAQ,EAAjB,EAAqB7M,KAArB,EAA4BqO,SAA5B,EAAuCnO,IAAvC,CAAlB,CAAA;AACH,CAAA;AACM,SAASoO,KAAT,CAAerQ,EAAf,EAAmBmH,KAAnB,EAA0B;EAC7B,IAAInH,EAAE,YAAYsQ,IAAlB,EAAwB;AACpB,IAAA,OAAO1C,YAAY,CAAC5N,EAAD,EAAKmH,KAAL,CAAnB,CAAA;AACH,GAFD,MAGK,IAAInH,EAAE,YAAYG,OAAlB,EAA2B;AAC5B,IAAA,OAAO0O,aAAa,CAAC7O,EAAD,EAAKmH,KAAL,CAApB,CAAA;AACH,GAFI,MAGA,IAAInH,EAAE,YAAYuQ,KAAlB,EAAyB;AAC1B,IAAA,OAAOrB,aAAa,CAAClP,EAAD,EAAKmH,KAAL,CAApB,CAAA;AACH,GAAA;AACJ,CAAA;;AACD,SAASmF,SAAT,CAAmBtM,EAAnB,EAAuB+B,KAAvB,EAA8BoF,KAA9B,EAAqC;AACjC,EAAA,IAAI9H,KAAK,GAAGW,EAAE,CAACX,KAAf,CAAA;;AACA,EAAA,IAAImR,SAAS,CAACnR,KAAD,CAAb,EAAsB;AAClB,IAAA,IAAIoR,SAAS,GAAGC,YAAY,CAAC1Q,EAAD,CAA5B,CAAA;AACA,IAAA,IAAI0D,WAAW,GAAGyD,KAAK,CAACzD,WAAxB,CAAA;AACA,IAAA,IAAIiN,QAAQ,GAAGjN,WAAW,CAAC+M,SAAD,CAA1B,CAAA;;IACA,IAAI,CAACE,QAAL,EAAe;AACX,MAAA,IAAIC,WAAW,GAAG5Q,EAAE,CAAC6Q,cAAH,EAAlB,CAAA;AACA,MAAA,IAAIC,MAAM,GAAGF,WAAW,CAAC,CAAD,CAAxB,CAAA;AACA,MAAA,IAAIG,MAAM,GAAGH,WAAW,CAAC,CAAD,CAAxB,CAAA;;AACA,MAAA,IAAI,CAACE,MAAD,IAAW,CAACC,MAAhB,EAAwB;AACpB,QAAA,OAAA;AACH,OAAA;;AACD,MAAA,IAAIC,OAAO,GAAG3R,KAAK,CAAC4R,aAAN,IAAuB,CAArC,CAAA;AACA,MAAA,IAAIC,OAAO,GAAG7R,KAAK,CAAC8R,aAAN,IAAuB,CAArC,CAAA;AACA,MAAA,IAAIC,MAAM,GAAG/R,KAAK,CAACgS,UAAnB,CAAA;;AACA,MAAA,IAAItQ,EAAE,GAAGX,cAAc,CAACf,KAAK,CAACiS,WAAP,CAAvB;AAAA,UAA4CpR,OAAO,GAAGa,EAAE,CAACb,OAAzD;AAAA,UAAkEG,KAAK,GAAGU,EAAE,CAACV,KAA7E,CAAA;;AACA,MAAA,IAAIkR,KAAK,GAAGH,MAAM,GAAG,CAAT,GAAaN,MAAzB,CAAA;AACA,MAAA,IAAIU,KAAK,GAAGJ,MAAM,GAAG,CAAT,GAAaL,MAAzB,CAAA;AACA,MAAA,IAAIU,YAAY,GAAGF,KAAK,GAAG,GAAR,GAAcC,KAAjC,CAAA;MACAb,QAAQ,GAAGxJ,KAAK,CAAC1D,IAAN,GAAa,IAAb,GAAoB0D,KAAK,CAAChD,SAAN,EAA/B,CAAA;MACAgD,KAAK,CAACrD,IAAN,CAAW6M,QAAX,CAAA,GAAuB/O,WAAW,CAAC,QAAD,EAAW+O,QAAX,EAAqB;AACnD,QAAA,IAAA,EAAMA,QAD6C;AAEnD,QAAA,GAAA,EAAK,OAF8C;AAGnD,QAAA,GAAA,EAAK,OAH8C;AAInD,QAAA,OAAA,EAAS,MAJ0C;QAKnD,QAAU,EAAA,MAAA;AALyC,OAArB,EAM/B,CACC/O,WAAW,CAAC,cAAD,EAAiB,EAAjB,EAAqB;QAC5B,IAAMoP,EAAAA,OAAO,GAAGF,MADY;QAE5B,IAAMI,EAAAA,OAAO,GAAGH,MAFY;AAG5B,QAAA,cAAA,EAAgBU,YAHY;AAI5B,QAAA,aAAA,EAAepR,KAJa;QAK5B,eAAiBH,EAAAA,OAAAA;OALV,CADZ,CAN+B,CAAlC,CAAA;AAeAwD,MAAAA,WAAW,CAAC+M,SAAD,CAAX,GAAyBE,QAAzB,CAAA;AACH,KAAA;;AACD5O,IAAAA,KAAK,CAAC2J,MAAN,GAAegG,QAAQ,CAACf,QAAD,CAAvB,CAAA;AACH,GAAA;AACJ,CAAA;;AACD,SAASxE,WAAT,CAAqB9M,KAArB,EAA4B0C,KAA5B,EAAmC6E,MAAnC,EAA2CO,KAA3C,EAAkD;AAC9C,EAAA,IAAIxI,GAAG,GAAGU,KAAK,CAACuH,MAAD,CAAf,CAAA;AACA,EAAA,IAAI+K,WAAJ,CAAA;AACA,EAAA,IAAIC,aAAa,GAAG;AAChB,IAAA,eAAA,EAAiBjT,GAAG,CAACkT,MAAJ,GACX,gBADW,GAEX,mBAAA;GAHV,CAAA;;AAKA,EAAA,IAAIC,gBAAgB,CAACnT,GAAD,CAApB,EAA2B;AACvBgT,IAAAA,WAAW,GAAG,gBAAd,CAAA;AACAC,IAAAA,aAAa,CAACG,EAAd,GAAmBpT,GAAG,CAACnD,CAAvB,CAAA;AACAoW,IAAAA,aAAa,CAACI,EAAd,GAAmBrT,GAAG,CAAClD,CAAvB,CAAA;AACAmW,IAAAA,aAAa,CAAC/V,EAAd,GAAmB8C,GAAG,CAAC9C,EAAvB,CAAA;AACA+V,IAAAA,aAAa,CAAC9V,EAAd,GAAmB6C,GAAG,CAAC7C,EAAvB,CAAA;AACH,GAND,MAOK,IAAImW,gBAAgB,CAACtT,GAAD,CAApB,EAA2B;AAC5BgT,IAAAA,WAAW,GAAG,gBAAd,CAAA;IACAC,aAAa,CAACzV,EAAd,GAAmB+V,SAAS,CAACvT,GAAG,CAACnD,CAAL,EAAQ,GAAR,CAA5B,CAAA;IACAoW,aAAa,CAACxV,EAAd,GAAmB8V,SAAS,CAACvT,GAAG,CAAClD,CAAL,EAAQ,GAAR,CAA5B,CAAA;IACAmW,aAAa,CAACvV,CAAd,GAAkB6V,SAAS,CAACvT,GAAG,CAACtC,CAAL,EAAQ,GAAR,CAA3B,CAAA;AACH,GALI,MAMA;AACD,IAAA,IAAI8V,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACvCC,QAAQ,CAAC,wBAAD,CAAR,CAAA;AACH,KAAA;;AACD,IAAA,OAAA;AACH,GAAA;;AACD,EAAA,IAAIC,MAAM,GAAG5T,GAAG,CAAC6T,UAAjB,CAAA;EACA,IAAIA,UAAU,GAAG,EAAjB,CAAA;;AACA,EAAA,KAAK,IAAI/T,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGyK,MAAM,CAACxU,MAA7B,EAAqCU,CAAC,GAAGqJ,GAAzC,EAA8C,EAAErJ,CAAhD,EAAmD;AAC/C,IAAA,IAAIgU,MAAM,GAAGC,MAAM,CAACH,MAAM,CAAC9T,CAAD,CAAN,CAAUgU,MAAX,CAAN,GAA2B,GAA3B,GAAiC,GAA9C,CAAA;AACA,IAAA,IAAIE,SAAS,GAAGJ,MAAM,CAAC9T,CAAD,CAAN,CAAU4B,KAA1B,CAAA;;AACA,IAAA,IAAIU,EAAE,GAAGX,cAAc,CAACuS,SAAD,CAAvB;AAAA,QAAoCtS,KAAK,GAAGU,EAAE,CAACV,KAA/C;AAAA,QAAsDH,OAAO,GAAGa,EAAE,CAACb,OAAnE,CAAA;;AACA,IAAA,IAAI0S,UAAU,GAAG;MACb,QAAUH,EAAAA,MAAAA;KADd,CAAA;AAGAG,IAAAA,UAAU,CAAC,YAAD,CAAV,GAA2BvS,KAA3B,CAAA;;IACA,IAAIH,OAAO,GAAG,CAAd,EAAiB;AACb0S,MAAAA,UAAU,CAAC,cAAD,CAAV,GAA6B1S,OAA7B,CAAA;AACH,KAAA;;AACDsS,IAAAA,UAAU,CAAC1T,IAAX,CAAgB8C,WAAW,CAAC,MAAD,EAASnD,CAAC,GAAG,EAAb,EAAiBmU,UAAjB,CAA3B,CAAA,CAAA;AACH,GAAA;;EACD,IAAIC,aAAa,GAAGjR,WAAW,CAAC+P,WAAD,EAAc,EAAd,EAAkBC,aAAlB,EAAiCY,UAAjC,CAA/B,CAAA;AACA,EAAA,IAAIM,WAAW,GAAGxQ,aAAa,CAACuQ,aAAD,CAA/B,CAAA;AACA,EAAA,IAAIjP,aAAa,GAAGuD,KAAK,CAACvD,aAA1B,CAAA;AACA,EAAA,IAAImP,UAAU,GAAGnP,aAAa,CAACkP,WAAD,CAA9B,CAAA;;EACA,IAAI,CAACC,UAAL,EAAiB;IACbA,UAAU,GAAG5L,KAAK,CAAC1D,IAAN,GAAa,IAAb,GAAoB0D,KAAK,CAAC/C,WAAN,EAAjC,CAAA;AACAR,IAAAA,aAAa,CAACkP,WAAD,CAAb,GAA6BC,UAA7B,CAAA;IACAnB,aAAa,CAAChD,EAAd,GAAmBmE,UAAnB,CAAA;AACA5L,IAAAA,KAAK,CAACrD,IAAN,CAAWiP,UAAX,IAAyBnR,WAAW,CAAC+P,WAAD,EAAcoB,UAAd,EAA0BnB,aAA1B,EAAyCY,UAAzC,CAApC,CAAA;AACH,GAAA;;AACDzQ,EAAAA,KAAK,CAAC6E,MAAD,CAAL,GAAgB8K,QAAQ,CAACqB,UAAD,CAAxB,CAAA;AACH,CAAA;;AACD,SAAS1G,UAAT,CAAoBrM,EAApB,EAAwB+B,KAAxB,EAA+B6E,MAA/B,EAAuCO,KAAvC,EAA8C;AAC1C,EAAA,IAAIxI,GAAG,GAAGqB,EAAE,CAACX,KAAH,CAASuH,MAAT,CAAV,CAAA;AACA,EAAA,IAAIoM,YAAY,GAAG;IACf,cAAgB,EAAA,gBAAA;GADpB,CAAA;AAGA,EAAA,IAAIrQ,KAAJ,CAAA;;AACA,EAAA,IAAIsQ,cAAc,CAACtU,GAAD,CAAlB,EAAyB;AACrB,IAAA,IAAIuU,YAAY,GAAGvU,GAAG,CAACwU,UAAvB,CAAA;AACA,IAAA,IAAIC,aAAa,GAAGzU,GAAG,CAAC0U,WAAxB,CAAA;IACA,IAAIC,QAAQ,GAAG,KAAK,CAApB,CAAA;AACA,IAAA,IAAIC,YAAY,GAAG5U,GAAG,CAACmQ,KAAvB,CAAA;;AACA,IAAA,IAAIzG,QAAQ,CAACkL,YAAD,CAAZ,EAA4B;AACxBD,MAAAA,QAAQ,GAAGC,YAAX,CAAA;AACH,KAFD,MAGK,IAAI5H,WAAW,CAAC4H,YAAD,CAAf,EAA+B;MAChCD,QAAQ,GAAGC,YAAY,CAAC3H,GAAxB,CAAA;AACH,KAFI,MAGA,IAAIC,YAAY,CAAC0H,YAAD,CAAhB,EAAgC;AACjCD,MAAAA,QAAQ,GAAGC,YAAY,CAACxH,SAAb,EAAX,CAAA;AACH,KAAA;;AACD,IAAA,IAAI,OAAOyH,KAAP,KAAiB,WAArB,EAAkC;MAC9B,IAAIC,MAAM,GAAG,mEAAb,CAAA;AACAC,MAAAA,MAAM,CAACR,YAAD,EAAeO,MAAf,CAAN,CAAA;AACAC,MAAAA,MAAM,CAACN,aAAD,EAAgBK,MAAhB,CAAN,CAAA;KAHJ,MAKK,IAAIP,YAAY,IAAI,IAAhB,IAAwBE,aAAa,IAAI,IAA7C,EAAmD;MACpD,IAAIO,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAUC,KAAV,EAAiBC,GAAjB,EAAsB;AACzC,QAAA,IAAID,KAAJ,EAAW;AACP,UAAA,IAAIE,KAAK,GAAGF,KAAK,CAACG,GAAlB,CAAA;AACA,UAAA,IAAIvP,KAAK,GAAIoP,KAAK,CAAC7R,KAAN,CAAYyC,KAAZ,GAAoB0O,YAAY,IAAIW,GAAG,CAACrP,KAArD,CAAA;AACA,UAAA,IAAIC,MAAM,GAAImP,KAAK,CAAC7R,KAAN,CAAY0C,MAAZ,GAAqB2O,aAAa,IAAIS,GAAG,CAACpP,MAAxD,CAAA;;AACA,UAAA,IAAIqP,KAAJ,EAAW;AACPA,YAAAA,KAAK,CAACE,YAAN,CAAmB,OAAnB,EAA4BxP,KAA5B,CAAA,CAAA;AACAsP,YAAAA,KAAK,CAACE,YAAN,CAAmB,QAAnB,EAA6BvP,MAA7B,CAAA,CAAA;AACH,WAAA;AACJ,SAAA;OATL,CAAA;;AAWA,MAAA,IAAIwP,YAAY,GAAGC,mBAAmB,CAACZ,QAAD,EAAW,IAAX,EAAiBtT,EAAjB,EAAqB,UAAU6T,GAAV,EAAe;AACtEF,QAAAA,gBAAgB,CAACQ,YAAD,EAAeN,GAAf,CAAhB,CAAA;AACAF,QAAAA,gBAAgB,CAAChR,KAAD,EAAQkR,GAAR,CAAhB,CAAA;AACH,OAHqC,CAAtC,CAAA;;MAIA,IAAII,YAAY,IAAIA,YAAY,CAACzP,KAA7B,IAAsCyP,YAAY,CAACxP,MAAvD,EAA+D;AAC3DyO,QAAAA,YAAY,GAAGA,YAAY,IAAIe,YAAY,CAACzP,KAA5C,CAAA;AACA4O,QAAAA,aAAa,GAAGA,aAAa,IAAIa,YAAY,CAACxP,MAA9C,CAAA;AACH,OAAA;AACJ,KAAA;;AACD9B,IAAAA,KAAK,GAAGf,WAAW,CAAC,OAAD,EAAU,KAAV,EAAiB;AAChCqN,MAAAA,IAAI,EAAEqE,QAD0B;AAEhC9O,MAAAA,KAAK,EAAE0O,YAFyB;AAGhCzO,MAAAA,MAAM,EAAE2O,aAAAA;AAHwB,KAAjB,CAAnB,CAAA;IAKAJ,YAAY,CAACxO,KAAb,GAAqB0O,YAArB,CAAA;IACAF,YAAY,CAACvO,MAAb,GAAsB2O,aAAtB,CAAA;AACH,GA/CD,MAgDK,IAAIzU,GAAG,CAACyV,UAAR,EAAoB;AACrBzR,IAAAA,KAAK,GAAG0R,OAAK,CAAC1V,GAAG,CAACyV,UAAL,CAAb,CAAA;AACApB,IAAAA,YAAY,CAACxO,KAAb,GAAqB7F,GAAG,CAAC2V,QAAzB,CAAA;AACAtB,IAAAA,YAAY,CAACvO,MAAb,GAAsB9F,GAAG,CAAC4V,SAA1B,CAAA;AACH,GAAA;;EACD,IAAI,CAAC5R,KAAL,EAAY;AACR,IAAA,OAAA;AACH,GAAA;;AACDqQ,EAAAA,YAAY,CAACwB,gBAAb,GAAgC1J,qBAAqB,CAACnM,GAAD,CAArD,CAAA;AACA,EAAA,IAAIwV,YAAY,GAAGvS,WAAW,CAAC,SAAD,EAAY,EAAZ,EAAgBoR,YAAhB,EAA8B,CAACrQ,KAAD,CAA9B,CAA9B,CAAA;AACA,EAAA,IAAI8R,UAAU,GAAGnS,aAAa,CAAC6R,YAAD,CAA9B,CAAA;AACA,EAAA,IAAIxQ,YAAY,GAAGwD,KAAK,CAACxD,YAAzB,CAAA;AACA,EAAA,IAAI+Q,SAAS,GAAG/Q,YAAY,CAAC8Q,UAAD,CAA5B,CAAA;;EACA,IAAI,CAACC,SAAL,EAAgB;IACZA,SAAS,GAAGvN,KAAK,CAAC1D,IAAN,GAAa,IAAb,GAAoB0D,KAAK,CAAC9C,UAAN,EAAhC,CAAA;AACAV,IAAAA,YAAY,CAAC8Q,UAAD,CAAZ,GAA2BC,SAA3B,CAAA;IACA1B,YAAY,CAACpE,EAAb,GAAkB8F,SAAlB,CAAA;AACAP,IAAAA,YAAY,GAAGhN,KAAK,CAACrD,IAAN,CAAW4Q,SAAX,IAAwB9S,WAAW,CAAC,SAAD,EAAY8S,SAAZ,EAAuB1B,YAAvB,EAAqC,CAACrQ,KAAD,CAArC,CAAlD,CAAA;AACH,GAAA;;AACDZ,EAAAA,KAAK,CAAC6E,MAAD,CAAL,GAAgB8K,QAAQ,CAACgD,SAAD,CAAxB,CAAA;AACH,CAAA;;AACM,SAASC,WAAT,CAAqBC,QAArB,EAA+B7S,KAA/B,EAAsCoF,KAAtC,EAA6C;AAChD,EAAA,IAAItD,aAAa,GAAGsD,KAAK,CAACtD,aAA1B;AAAA,MAAyCC,IAAI,GAAGqD,KAAK,CAACrD,IAAtD,CAAA;AACA,EAAA,IAAI+Q,UAAU,GAAGhR,aAAa,CAAC+Q,QAAQ,CAAChG,EAAV,CAA9B,CAAA;;EACA,IAAI,CAACiG,UAAL,EAAiB;IACbA,UAAU,GAAG1N,KAAK,CAAC1D,IAAN,GAAa,IAAb,GAAoB0D,KAAK,CAAC7C,WAAN,EAAjC,CAAA;AACA,IAAA,IAAIwQ,aAAa,GAAG;AAChBlG,MAAAA,EAAE,EAAEiG,UAAAA;KADR,CAAA;AAGAhR,IAAAA,aAAa,CAAC+Q,QAAQ,CAAChG,EAAV,CAAb,GAA6BiG,UAA7B,CAAA;IACA/Q,IAAI,CAAC+Q,UAAD,CAAJ,GAAmBjT,WAAW,CAAC,UAAD,EAAaiT,UAAb,EAAyBC,aAAzB,EAAwC,CAAClH,YAAY,CAACgH,QAAD,EAAWzN,KAAX,CAAb,CAAxC,CAA9B,CAAA;AACH,GAAA;;AACDpF,EAAAA,KAAK,CAAC,WAAD,CAAL,GAAqB2P,QAAQ,CAACmD,UAAD,CAA7B,CAAA;AACH;;ACpaM,SAASE,cAAT,CAAwB9S,IAAxB,EAA8B;AACjC,EAAA,OAAOP,QAAQ,CAACqT,cAAT,CAAwB9S,IAAxB,CAAP,CAAA;AACH,CAAA;AACM,SAAS+S,aAAT,CAAuB/S,IAAvB,EAA6B;AAChC,EAAA,OAAOP,QAAQ,CAACsT,aAAT,CAAuB/S,IAAvB,CAAP,CAAA;AACH,CAAA;AACM,SAASgT,YAAT,CAAsBC,UAAtB,EAAkCC,OAAlC,EAA2CC,aAA3C,EAA0D;AAC7DF,EAAAA,UAAU,CAACD,YAAX,CAAwBE,OAAxB,EAAiCC,aAAjC,CAAA,CAAA;AACH,CAAA;AACM,SAASC,WAAT,CAAqBC,IAArB,EAA2B3S,KAA3B,EAAkC;EACrC2S,IAAI,CAACD,WAAL,CAAiB1S,KAAjB,CAAA,CAAA;AACH,CAAA;AACM,SAAS4S,WAAT,CAAqBD,IAArB,EAA2B3S,KAA3B,EAAkC;EACrC2S,IAAI,CAACC,WAAL,CAAiB5S,KAAjB,CAAA,CAAA;AACH,CAAA;AACM,SAASuS,UAAT,CAAoBI,IAApB,EAA0B;EAC7B,OAAOA,IAAI,CAACJ,UAAZ,CAAA;AACH,CAAA;AACM,SAASM,WAAT,CAAqBF,IAArB,EAA2B;EAC9B,OAAOA,IAAI,CAACE,WAAZ,CAAA;AACH,CAAA;AACM,SAASC,OAAT,CAAiB1B,GAAjB,EAAsB;EACzB,OAAOA,GAAG,CAAC0B,OAAX,CAAA;AACH,CAAA;AACM,SAASC,cAAT,CAAwBJ,IAAxB,EAA8BrT,IAA9B,EAAoC;EACvCqT,IAAI,CAACK,WAAL,GAAmB1T,IAAnB,CAAA;AACH,CAAA;AACM,SAAS2T,cAAT,CAAwBN,IAAxB,EAA8B;EACjC,OAAOA,IAAI,CAACK,WAAZ,CAAA;AACH,CAAA;AACM,SAASE,SAAT,CAAmBP,IAAnB,EAAyB;AAC5B,EAAA,OAAOA,IAAI,CAACQ,QAAL,KAAkB,CAAzB,CAAA;AACH,CAAA;AACM,SAASC,MAAT,CAAgBT,IAAhB,EAAsB;AACzB,EAAA,OAAOA,IAAI,CAACQ,QAAL,KAAkB,CAAzB,CAAA;AACH,CAAA;AACM,SAASE,SAAT,CAAmBV,IAAnB,EAAyB;AAC5B,EAAA,OAAOA,IAAI,CAACQ,QAAL,KAAkB,CAAzB,CAAA;AACH;;ACnCD,IAAIG,SAAS,GAAG,EAAhB,CAAA;AACA,IAAIC,KAAK,GAAG,GAAZ,CAAA;AACA,IAAIC,SAAS,GAAGvU,WAAW,CAAC,EAAD,EAAK,EAAL,CAA3B,CAAA;;AACA,SAASwU,OAAT,CAAiBC,CAAjB,EAAoB;EAChB,OAAOA,CAAC,KAAKjG,SAAb,CAAA;AACH,CAAA;;AACD,SAASkG,KAAT,CAAeD,CAAf,EAAkB;EACd,OAAOA,CAAC,KAAKjG,SAAb,CAAA;AACH,CAAA;;AACD,SAASmG,iBAAT,CAA2BvU,QAA3B,EAAqCwU,QAArC,EAA+CC,MAA/C,EAAuD;EACnD,IAAI9W,GAAG,GAAG,EAAV,CAAA;;EACA,KAAK,IAAIlB,CAAC,GAAG+X,QAAb,EAAuB/X,CAAC,IAAIgY,MAA5B,EAAoC,EAAEhY,CAAtC,EAAyC;AACrC,IAAA,IAAIqD,GAAG,GAAGE,QAAQ,CAACvD,CAAD,CAAR,CAAYqD,GAAtB,CAAA;;IACA,IAAIA,GAAG,KAAKsO,SAAZ,EAAuB;AACnB,MAAA,IAAI+B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACvC,QAAA,IAAI1S,GAAG,CAACmC,GAAD,CAAH,IAAY,IAAhB,EAAsB;AAClB4U,UAAAA,OAAO,CAACC,KAAR,CAAc,gBAAA,GAAmB7U,GAAjC,CAAA,CAAA;AACH,SAAA;AACJ,OAAA;;AACDnC,MAAAA,GAAG,CAACmC,GAAD,CAAH,GAAWrD,CAAX,CAAA;AACH,KAAA;AACJ,GAAA;;AACD,EAAA,OAAOkB,GAAP,CAAA;AACH,CAAA;;AACD,SAASiX,SAAT,CAAmBC,MAAnB,EAA2BC,MAA3B,EAAmC;EAC/B,IAAIC,SAAS,GAAGF,MAAM,CAAC/U,GAAP,KAAegV,MAAM,CAAChV,GAAtC,CAAA;EACA,IAAIkV,SAAS,GAAGH,MAAM,CAAChV,GAAP,KAAeiV,MAAM,CAACjV,GAAtC,CAAA;EACA,OAAOmV,SAAS,IAAID,SAApB,CAAA;AACH,CAAA;;AACD,SAASE,SAAT,CAAmBC,KAAnB,EAA0B;AACtB,EAAA,IAAIzY,CAAJ,CAAA;AACA,EAAA,IAAIuD,QAAQ,GAAGkV,KAAK,CAAClV,QAArB,CAAA;AACA,EAAA,IAAIH,GAAG,GAAGqV,KAAK,CAACrV,GAAhB,CAAA;;AACA,EAAA,IAAIyU,KAAK,CAACzU,GAAD,CAAT,EAAgB;IACZ,IAAIkS,GAAG,GAAImD,KAAK,CAACnD,GAAN,GAAYvS,aAAa,CAACK,GAAD,CAApC,CAAA;AACAsV,IAAAA,WAAW,CAAChB,SAAD,EAAYe,KAAZ,CAAX,CAAA;;AACA,IAAA,IAAIE,SAAO,CAACpV,QAAD,CAAX,EAAuB;AACnB,MAAA,KAAKvD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGuD,QAAQ,CAACjE,MAAzB,EAAiC,EAAEU,CAAnC,EAAsC;AAClC,QAAA,IAAI4Y,EAAE,GAAGrV,QAAQ,CAACvD,CAAD,CAAjB,CAAA;;QACA,IAAI4Y,EAAE,IAAI,IAAV,EAAgB;UACZC,WAAA,CAAgBvD,GAAhB,EAAqBkD,SAAS,CAACI,EAAD,CAA9B,CAAA,CAAA;AACH,SAAA;AACJ,OAAA;AACJ,KAPD,MAQK,IAAIf,KAAK,CAACY,KAAK,CAACjV,IAAP,CAAL,IAAqB,CAACsV,UAAQ,CAACL,KAAK,CAACjV,IAAP,CAAlC,EAAgD;AACjDqV,MAAAA,WAAA,CAAgBvD,GAAhB,EAAqBuD,cAAA,CAAmBJ,KAAK,CAACjV,IAAzB,CAArB,CAAA,CAAA;AACH,KAAA;AACJ,GAdD,MAeK;IACDiV,KAAK,CAACnD,GAAN,GAAYuD,cAAA,CAAmBJ,KAAK,CAACjV,IAAzB,CAAZ,CAAA;AACH,GAAA;;EACD,OAAOiV,KAAK,CAACnD,GAAb,CAAA;AACH,CAAA;;AACD,SAASyD,SAAT,CAAmBC,SAAnB,EAA8BC,MAA9B,EAAsCC,MAAtC,EAA8CC,QAA9C,EAAwDnB,MAAxD,EAAgE;AAC5D,EAAA,OAAOmB,QAAQ,IAAInB,MAAnB,EAA2B,EAAEmB,QAA7B,EAAuC;AACnC,IAAA,IAAIP,EAAE,GAAGM,MAAM,CAACC,QAAD,CAAf,CAAA;;IACA,IAAIP,EAAE,IAAI,IAAV,EAAgB;MACZC,YAAA,CAAiBG,SAAjB,EAA4BR,SAAS,CAACI,EAAD,CAArC,EAA2CK,MAA3C,CAAA,CAAA;AACH,KAAA;AACJ,GAAA;AACJ,CAAA;;AACD,SAASG,YAAT,CAAsBJ,SAAtB,EAAiCE,MAAjC,EAAyCC,QAAzC,EAAmDnB,MAAnD,EAA2D;AACvD,EAAA,OAAOmB,QAAQ,IAAInB,MAAnB,EAA2B,EAAEmB,QAA7B,EAAuC;AACnC,IAAA,IAAIP,EAAE,GAAGM,MAAM,CAACC,QAAD,CAAf,CAAA;;IACA,IAAIP,EAAE,IAAI,IAAV,EAAgB;AACZ,MAAA,IAAIf,KAAK,CAACe,EAAE,CAACxV,GAAJ,CAAT,EAAmB;QACf,IAAIiW,QAAQ,GAAGR,UAAA,CAAeD,EAAE,CAACtD,GAAlB,CAAf,CAAA;AACAuD,QAAAA,WAAA,CAAgBQ,QAAhB,EAA0BT,EAAE,CAACtD,GAA7B,CAAA,CAAA;AACH,OAHD,MAIK;AACDuD,QAAAA,WAAA,CAAgBG,SAAhB,EAA2BJ,EAAE,CAACtD,GAA9B,CAAA,CAAA;AACH,OAAA;AACJ,KAAA;AACJ,GAAA;AACJ,CAAA;;AACM,SAASoD,WAAT,CAAqBY,QAArB,EAA+Bb,KAA/B,EAAsC;AACzC,EAAA,IAAIpV,GAAJ,CAAA;AACA,EAAA,IAAIiS,GAAG,GAAGmD,KAAK,CAACnD,GAAhB,CAAA;EACA,IAAIiE,QAAQ,GAAGD,QAAQ,IAAIA,QAAQ,CAAChW,KAArB,IAA8B,EAA7C,CAAA;AACA,EAAA,IAAIA,KAAK,GAAGmV,KAAK,CAACnV,KAAN,IAAe,EAA3B,CAAA;;EACA,IAAIiW,QAAQ,KAAKjW,KAAjB,EAAwB;AACpB,IAAA,OAAA;AACH,GAAA;;EACD,KAAKD,GAAL,IAAYC,KAAZ,EAAmB;AACf,IAAA,IAAIkW,GAAG,GAAGlW,KAAK,CAACD,GAAD,CAAf,CAAA;AACA,IAAA,IAAIoW,GAAG,GAAGF,QAAQ,CAAClW,GAAD,CAAlB,CAAA;;IACA,IAAIoW,GAAG,KAAKD,GAAZ,EAAiB;MACb,IAAIA,GAAG,KAAK,IAAZ,EAAkB;AACdlE,QAAAA,GAAG,CAACC,YAAJ,CAAiBlS,GAAjB,EAAsB,EAAtB,CAAA,CAAA;AACH,OAFD,MAGK,IAAImW,GAAG,KAAK,KAAZ,EAAmB;QACpBlE,GAAG,CAACoE,eAAJ,CAAoBrW,GAApB,CAAA,CAAA;AACH,OAFI,MAGA;AACD,QAAA,IAAIA,GAAG,CAACsW,UAAJ,CAAe,CAAf,CAAA,KAAsBlC,KAA1B,EAAiC;AAC7BnC,UAAAA,GAAG,CAACC,YAAJ,CAAiBlS,GAAjB,EAAsBmW,GAAtB,CAAA,CAAA;SADJ,MAGK,IAAInW,GAAG,KAAK,aAAR,IAAyBA,GAAG,KAAK,OAArC,EAA8C;AAC/CiS,UAAAA,GAAG,CAACsE,cAAJ,CAAmB/W,KAAnB,EAA0BQ,GAA1B,EAA+BmW,GAA/B,CAAA,CAAA;SADC,MAGA,IAAInW,GAAG,CAACsW,UAAJ,CAAe,CAAf,CAAsBnC,KAAAA,SAA1B,EAAqC;AACtClC,UAAAA,GAAG,CAACsE,cAAJ,CAAmB9W,aAAnB,EAAkCO,GAAlC,EAAuCmW,GAAvC,CAAA,CAAA;SADC,MAGA,IAAInW,GAAG,CAACsW,UAAJ,CAAe,CAAf,CAAsBnC,KAAAA,SAA1B,EAAqC;AACtClC,UAAAA,GAAG,CAACsE,cAAJ,CAAmBhX,OAAnB,EAA4BS,GAA5B,EAAiCmW,GAAjC,CAAA,CAAA;AACH,SAFI,MAGA;AACDlE,UAAAA,GAAG,CAACC,YAAJ,CAAiBlS,GAAjB,EAAsBmW,GAAtB,CAAA,CAAA;AACH,SAAA;AACJ,OAAA;AACJ,KAAA;AACJ,GAAA;;EACD,KAAKnW,GAAL,IAAYkW,QAAZ,EAAsB;AAClB,IAAA,IAAI,EAAElW,GAAG,IAAIC,KAAT,CAAJ,EAAqB;MACjBgS,GAAG,CAACoE,eAAJ,CAAoBrW,GAApB,CAAA,CAAA;AACH,KAAA;AACJ,GAAA;AACJ,CAAA;;AACD,SAASwW,cAAT,CAAwBb,SAAxB,EAAmCc,KAAnC,EAA0CC,KAA1C,EAAiD;EAC7C,IAAIC,WAAW,GAAG,CAAlB,CAAA;EACA,IAAIC,WAAW,GAAG,CAAlB,CAAA;AACA,EAAA,IAAIC,SAAS,GAAGJ,KAAK,CAACxa,MAAN,GAAe,CAA/B,CAAA;AACA,EAAA,IAAI6a,aAAa,GAAGL,KAAK,CAAC,CAAD,CAAzB,CAAA;AACA,EAAA,IAAIM,WAAW,GAAGN,KAAK,CAACI,SAAD,CAAvB,CAAA;AACA,EAAA,IAAIG,SAAS,GAAGN,KAAK,CAACza,MAAN,GAAe,CAA/B,CAAA;AACA,EAAA,IAAIgb,aAAa,GAAGP,KAAK,CAAC,CAAD,CAAzB,CAAA;AACA,EAAA,IAAIQ,WAAW,GAAGR,KAAK,CAACM,SAAD,CAAvB,CAAA;AACA,EAAA,IAAIG,WAAJ,CAAA;AACA,EAAA,IAAIC,QAAJ,CAAA;AACA,EAAA,IAAIC,SAAJ,CAAA;AACA,EAAA,IAAIzB,MAAJ,CAAA;;AACA,EAAA,OAAOe,WAAW,IAAIE,SAAf,IAA4BD,WAAW,IAAII,SAAlD,EAA6D;IACzD,IAAIF,aAAa,IAAI,IAArB,EAA2B;AACvBA,MAAAA,aAAa,GAAGL,KAAK,CAAC,EAAEE,WAAH,CAArB,CAAA;AACH,KAFD,MAGK,IAAII,WAAW,IAAI,IAAnB,EAAyB;AAC1BA,MAAAA,WAAW,GAAGN,KAAK,CAAC,EAAEI,SAAH,CAAnB,CAAA;AACH,KAFI,MAGA,IAAII,aAAa,IAAI,IAArB,EAA2B;AAC5BA,MAAAA,aAAa,GAAGP,KAAK,CAAC,EAAEE,WAAH,CAArB,CAAA;AACH,KAFI,MAGA,IAAIM,WAAW,IAAI,IAAnB,EAAyB;AAC1BA,MAAAA,WAAW,GAAGR,KAAK,CAAC,EAAEM,SAAH,CAAnB,CAAA;KADC,MAGA,IAAIlC,SAAS,CAACgC,aAAD,EAAgBG,aAAhB,CAAb,EAA6C;AAC9CK,MAAAA,UAAU,CAACR,aAAD,EAAgBG,aAAhB,CAAV,CAAA;AACAH,MAAAA,aAAa,GAAGL,KAAK,CAAC,EAAEE,WAAH,CAArB,CAAA;AACAM,MAAAA,aAAa,GAAGP,KAAK,CAAC,EAAEE,WAAH,CAArB,CAAA;KAHC,MAKA,IAAI9B,SAAS,CAACiC,WAAD,EAAcG,WAAd,CAAb,EAAyC;AAC1CI,MAAAA,UAAU,CAACP,WAAD,EAAcG,WAAd,CAAV,CAAA;AACAH,MAAAA,WAAW,GAAGN,KAAK,CAAC,EAAEI,SAAH,CAAnB,CAAA;AACAK,MAAAA,WAAW,GAAGR,KAAK,CAAC,EAAEM,SAAH,CAAnB,CAAA;KAHC,MAKA,IAAIlC,SAAS,CAACgC,aAAD,EAAgBI,WAAhB,CAAb,EAA2C;AAC5CI,MAAAA,UAAU,CAACR,aAAD,EAAgBI,WAAhB,CAAV,CAAA;AACA1B,MAAAA,YAAA,CAAiBG,SAAjB,EAA4BmB,aAAa,CAAC7E,GAA1C,EAA+CuD,WAAA,CAAgBuB,WAAW,CAAC9E,GAA5B,CAA/C,CAAA,CAAA;AACA6E,MAAAA,aAAa,GAAGL,KAAK,CAAC,EAAEE,WAAH,CAArB,CAAA;AACAO,MAAAA,WAAW,GAAGR,KAAK,CAAC,EAAEM,SAAH,CAAnB,CAAA;KAJC,MAMA,IAAIlC,SAAS,CAACiC,WAAD,EAAcE,aAAd,CAAb,EAA2C;AAC5CK,MAAAA,UAAU,CAACP,WAAD,EAAcE,aAAd,CAAV,CAAA;MACAzB,YAAA,CAAiBG,SAAjB,EAA4BoB,WAAW,CAAC9E,GAAxC,EAA6C6E,aAAa,CAAC7E,GAA3D,CAAA,CAAA;AACA8E,MAAAA,WAAW,GAAGN,KAAK,CAAC,EAAEI,SAAH,CAAnB,CAAA;AACAI,MAAAA,aAAa,GAAGP,KAAK,CAAC,EAAEE,WAAH,CAArB,CAAA;AACH,KALI,MAMA;AACD,MAAA,IAAItC,OAAO,CAAC6C,WAAD,CAAX,EAA0B;QACtBA,WAAW,GAAG1C,iBAAiB,CAACgC,KAAD,EAAQE,WAAR,EAAqBE,SAArB,CAA/B,CAAA;AACH,OAAA;;AACDO,MAAAA,QAAQ,GAAGD,WAAW,CAACF,aAAa,CAACjX,GAAf,CAAtB,CAAA;;AACA,MAAA,IAAIsU,OAAO,CAAC8C,QAAD,CAAX,EAAuB;AACnB5B,QAAAA,YAAA,CAAiBG,SAAjB,EAA4BR,SAAS,CAAC8B,aAAD,CAArC,EAAsDH,aAAa,CAAC7E,GAApE,CAAA,CAAA;AACH,OAFD,MAGK;AACDoF,QAAAA,SAAS,GAAGZ,KAAK,CAACW,QAAD,CAAjB,CAAA;;AACA,QAAA,IAAIC,SAAS,CAACtX,GAAV,KAAkBkX,aAAa,CAAClX,GAApC,EAAyC;AACrCyV,UAAAA,YAAA,CAAiBG,SAAjB,EAA4BR,SAAS,CAAC8B,aAAD,CAArC,EAAsDH,aAAa,CAAC7E,GAApE,CAAA,CAAA;AACH,SAFD,MAGK;AACDqF,UAAAA,UAAU,CAACD,SAAD,EAAYJ,aAAZ,CAAV,CAAA;AACAR,UAAAA,KAAK,CAACW,QAAD,CAAL,GAAkB9I,SAAlB,CAAA;UACAkH,YAAA,CAAiBG,SAAjB,EAA4B0B,SAAS,CAACpF,GAAtC,EAA2C6E,aAAa,CAAC7E,GAAzD,CAAA,CAAA;AACH,SAAA;AACJ,OAAA;;AACDgF,MAAAA,aAAa,GAAGP,KAAK,CAAC,EAAEE,WAAH,CAArB,CAAA;AACH,KAAA;AACJ,GAAA;;AACD,EAAA,IAAID,WAAW,IAAIE,SAAf,IAA4BD,WAAW,IAAII,SAA/C,EAA0D;IACtD,IAAIL,WAAW,GAAGE,SAAlB,EAA6B;AACzBjB,MAAAA,MAAM,GAAGc,KAAK,CAACM,SAAS,GAAG,CAAb,CAAL,IAAwB,IAAxB,GAA+B,IAA/B,GAAsCN,KAAK,CAACM,SAAS,GAAG,CAAb,CAAL,CAAqB/E,GAApE,CAAA;MACAyD,SAAS,CAACC,SAAD,EAAYC,MAAZ,EAAoBc,KAApB,EAA2BE,WAA3B,EAAwCI,SAAxC,CAAT,CAAA;AACH,KAHD,MAIK;MACDjB,YAAY,CAACJ,SAAD,EAAYc,KAAZ,EAAmBE,WAAnB,EAAgCE,SAAhC,CAAZ,CAAA;AACH,KAAA;AACJ,GAAA;AACJ,CAAA;;AACD,SAASS,UAAT,CAAoBrB,QAApB,EAA8Bb,KAA9B,EAAqC;EACjC,IAAInD,GAAG,GAAImD,KAAK,CAACnD,GAAN,GAAYgE,QAAQ,CAAChE,GAAhC,CAAA;AACA,EAAA,IAAIwE,KAAK,GAAGR,QAAQ,CAAC/V,QAArB,CAAA;AACA,EAAA,IAAIqV,EAAE,GAAGH,KAAK,CAAClV,QAAf,CAAA;;EACA,IAAI+V,QAAQ,KAAKb,KAAjB,EAAwB;AACpB,IAAA,OAAA;AACH,GAAA;;AACDC,EAAAA,WAAW,CAACY,QAAD,EAAWb,KAAX,CAAX,CAAA;;AACA,EAAA,IAAId,OAAO,CAACc,KAAK,CAACjV,IAAP,CAAX,EAAyB;IACrB,IAAIqU,KAAK,CAACiC,KAAD,CAAL,IAAgBjC,KAAK,CAACe,EAAD,CAAzB,EAA+B;MAC3B,IAAIkB,KAAK,KAAKlB,EAAd,EAAkB;AACdiB,QAAAA,cAAc,CAACvE,GAAD,EAAMwE,KAAN,EAAalB,EAAb,CAAd,CAAA;AACH,OAAA;AACJ,KAJD,MAKK,IAAIf,KAAK,CAACe,EAAD,CAAT,EAAe;AAChB,MAAA,IAAIf,KAAK,CAACyB,QAAQ,CAAC9V,IAAV,CAAT,EAA0B;AACtBqV,QAAAA,cAAA,CAAmBvD,GAAnB,EAAwB,EAAxB,CAAA,CAAA;AACH,OAAA;;AACDyD,MAAAA,SAAS,CAACzD,GAAD,EAAM,IAAN,EAAYsD,EAAZ,EAAgB,CAAhB,EAAmBA,EAAE,CAACtZ,MAAH,GAAY,CAA/B,CAAT,CAAA;AACH,KALI,MAMA,IAAIuY,KAAK,CAACiC,KAAD,CAAT,EAAkB;AACnBV,MAAAA,YAAY,CAAC9D,GAAD,EAAMwE,KAAN,EAAa,CAAb,EAAgBA,KAAK,CAACxa,MAAN,GAAe,CAA/B,CAAZ,CAAA;KADC,MAGA,IAAIuY,KAAK,CAACyB,QAAQ,CAAC9V,IAAV,CAAT,EAA0B;AAC3BqV,MAAAA,cAAA,CAAmBvD,GAAnB,EAAwB,EAAxB,CAAA,CAAA;AACH,KAAA;GAjBL,MAmBK,IAAIgE,QAAQ,CAAC9V,IAAT,KAAkBiV,KAAK,CAACjV,IAA5B,EAAkC;AACnC,IAAA,IAAIqU,KAAK,CAACiC,KAAD,CAAT,EAAkB;AACdV,MAAAA,YAAY,CAAC9D,GAAD,EAAMwE,KAAN,EAAa,CAAb,EAAgBA,KAAK,CAACxa,MAAN,GAAe,CAA/B,CAAZ,CAAA;AACH,KAAA;;AACDuZ,IAAAA,cAAA,CAAmBvD,GAAnB,EAAwBmD,KAAK,CAACjV,IAA9B,CAAA,CAAA;AACH,GAAA;AACJ,CAAA;;AACc,SAASoX,KAAT,CAAetB,QAAf,EAAyBb,KAAzB,EAAgC;AAC3C,EAAA,IAAIN,SAAS,CAACmB,QAAD,EAAWb,KAAX,CAAb,EAAgC;AAC5BkC,IAAAA,UAAU,CAACrB,QAAD,EAAWb,KAAX,CAAV,CAAA;AACH,GAFD,MAGK;AACD,IAAA,IAAInD,GAAG,GAAGgE,QAAQ,CAAChE,GAAnB,CAAA;AACA,IAAA,IAAIuF,QAAQ,GAAGhC,UAAA,CAAevD,GAAf,CAAf,CAAA;IACAkD,SAAS,CAACC,KAAD,CAAT,CAAA;;IACA,IAAIoC,QAAQ,KAAK,IAAjB,EAAuB;AACnBhC,MAAAA,YAAA,CAAiBgC,QAAjB,EAA2BpC,KAAK,CAACnD,GAAjC,EAAsCuD,WAAA,CAAgBvD,GAAhB,CAAtC,CAAA,CAAA;MACA8D,YAAY,CAACyB,QAAD,EAAW,CAACvB,QAAD,CAAX,EAAuB,CAAvB,EAA0B,CAA1B,CAAZ,CAAA;AACH,KAAA;AACJ,GAAA;;AACD,EAAA,OAAOb,KAAP,CAAA;AACH;;ACnPD,IAAIqC,KAAK,GAAG,CAAZ,CAAA;;AACA,IAAIC,UAAU,GAAI,YAAY;AAC1B,EAAA,SAASA,UAAT,CAAoBC,IAApB,EAA0BC,OAA1B,EAAmCnX,IAAnC,EAAyC;IACrC,IAAKuL,CAAAA,IAAL,GAAY,KAAZ,CAAA;AACA,IAAA,IAAA,CAAK6L,YAAL,GAAoBC,sBAAsB,CAAC,cAAD,CAA1C,CAAA;AACA,IAAA,IAAA,CAAKC,WAAL,GAAmBD,sBAAsB,CAAC,aAAD,CAAzC,CAAA;IACA,IAAKF,CAAAA,OAAL,GAAeA,OAAf,CAAA;IACA,IAAKI,CAAAA,KAAL,GAAavX,IAAI,GAAG+D,MAAM,CAAC,EAAD,EAAK/D,IAAL,CAA1B,CAAA;IACA,IAAKkX,CAAAA,IAAL,GAAYA,IAAZ,CAAA;AACA,IAAA,IAAA,CAAKM,GAAL,GAAW,IAAOR,GAAAA,KAAK,EAAvB,CAAA;IACA,IAAKS,CAAAA,SAAL,GAAiBzV,cAAc,CAAChC,IAAI,CAACiC,KAAN,EAAajC,IAAI,CAACkC,MAAlB,CAA/B,CAAA;;AACA,IAAA,IAAIgV,IAAI,IAAI,CAAClX,IAAI,CAAC0X,GAAlB,EAAuB;MACnB,IAAIC,QAAQ,GAAG,IAAA,CAAKC,SAAL,GAAiBzY,QAAQ,CAACF,aAAT,CAAuB,KAAvB,CAAhC,CAAA;AACA0Y,MAAAA,QAAQ,CAAC7a,KAAT,CAAe+a,OAAf,GAAyB,mCAAzB,CAAA;AACA,MAAA,IAAIC,MAAM,GAAG,IAAKC,CAAAA,OAAL,GAAe,IAAA,CAAKN,SAAL,CAAejG,GAAf,GAAqBvS,aAAa,CAAC,KAAD,CAA9D,CAAA;AACA2V,MAAAA,WAAW,CAAC,IAAD,EAAO,IAAA,CAAK6C,SAAZ,CAAX,CAAA;MACAE,QAAQ,CAAC3E,WAAT,CAAqB8E,MAArB,CAAA,CAAA;MACAZ,IAAI,CAAClE,WAAL,CAAiB2E,QAAjB,CAAA,CAAA;AACH,KAAA;;IACD,IAAKK,CAAAA,MAAL,CAAYhY,IAAI,CAACiC,KAAjB,EAAwBjC,IAAI,CAACkC,MAA7B,CAAA,CAAA;AACH,GAAA;;AACD+U,EAAAA,UAAU,CAACze,SAAX,CAAqByf,OAArB,GAA+B,YAAY;AACvC,IAAA,OAAO,KAAK1M,IAAZ,CAAA;GADJ,CAAA;;AAGA0L,EAAAA,UAAU,CAACze,SAAX,CAAqB0f,eAArB,GAAuC,YAAY;AAC/C,IAAA,OAAO,KAAKN,SAAZ,CAAA;GADJ,CAAA;;AAGAX,EAAAA,UAAU,CAACze,SAAX,CAAqB2f,qBAArB,GAA6C,YAAY;AACrD,IAAA,IAAIC,YAAY,GAAG,IAAKF,CAAAA,eAAL,EAAnB,CAAA;;AACA,IAAA,IAAIE,YAAJ,EAAkB;MACd,OAAO;AACHC,QAAAA,UAAU,EAAED,YAAY,CAACC,UAAb,IAA2B,CADpC;AAEHC,QAAAA,SAAS,EAAEF,YAAY,CAACE,SAAb,IAA0B,CAAA;OAFzC,CAAA;AAIH,KAAA;GAPL,CAAA;;AASArB,EAAAA,UAAU,CAACze,SAAX,CAAqB+f,SAArB,GAAiC,YAAY;AACzC,IAAA,OAAO,KAAKR,OAAZ,CAAA;GADJ,CAAA;;AAGAd,EAAAA,UAAU,CAACze,SAAX,CAAqBggB,OAArB,GAA+B,YAAY;IACvC,IAAI,IAAA,CAAKtB,IAAT,EAAe;AACX,MAAA,IAAIvC,KAAK,GAAG,IAAK8D,CAAAA,aAAL,CAAmB;AAC3B/M,QAAAA,UAAU,EAAE,IAAA;AADe,OAAnB,CAAZ,CAAA;AAGAiJ,MAAAA,KAAK,CAACnV,KAAN,CAAY1C,KAAZ,GAAoB,iDAApB,CAAA;AACAga,MAAAA,KAAK,CAAC,IAAA,CAAKW,SAAN,EAAiB9C,KAAjB,CAAL,CAAA;MACA,IAAK8C,CAAAA,SAAL,GAAiB9C,KAAjB,CAAA;AACH,KAAA;GARL,CAAA;;AAUAsC,EAAAA,UAAU,CAACze,SAAX,CAAqBkgB,gBAArB,GAAwC,UAAUjb,EAAV,EAAc;IAClD,OAAOqQ,KAAK,CAACrQ,EAAD,EAAKwD,gBAAgB,CAAC,IAAA,CAAKuW,GAAN,CAArB,CAAZ,CAAA;GADJ,CAAA;;AAGAP,EAAAA,UAAU,CAACze,SAAX,CAAqBigB,aAArB,GAAqC,UAAUzY,IAAV,EAAgB;IACjDA,IAAI,GAAGA,IAAI,IAAI,EAAf,CAAA;IACA,IAAI2Y,IAAI,GAAG,IAAKxB,CAAAA,OAAL,CAAayB,cAAb,CAA4B,IAA5B,CAAX,CAAA;IACA,IAAIC,OAAO,GAAG,IAAA,CAAKC,gBAAnB,CAAA;IACA,IAAI7W,KAAK,GAAG,IAAA,CAAK8W,MAAjB,CAAA;IACA,IAAI7W,MAAM,GAAG,IAAA,CAAK8W,OAAlB,CAAA;AACA,IAAA,IAAIpU,KAAK,GAAG3D,gBAAgB,CAAC,IAAA,CAAKuW,GAAN,CAA5B,CAAA;AACA5S,IAAAA,KAAK,CAACQ,SAAN,GAAkBpF,IAAI,CAACoF,SAAvB,CAAA;AACAR,IAAAA,KAAK,CAAC8G,UAAN,GAAmB1L,IAAI,CAAC0L,UAAxB,CAAA;AACA9G,IAAAA,KAAK,CAACwF,QAAN,GAAiBpK,IAAI,CAACoK,QAAtB,CAAA;IACA,IAAI3K,QAAQ,GAAG,EAAf,CAAA;;AACA,IAAA,IAAIoZ,OAAO,IAAIA,OAAO,KAAK,MAA3B,EAAmC;AAC/B,MAAA,IAAIra,EAAE,GAAGX,cAAc,CAACgb,OAAD,CAAvB;AAAA,UAAkC/a,KAAK,GAAGU,EAAE,CAACV,KAA7C;AAAA,UAAoDH,OAAO,GAAGa,EAAE,CAACb,OAAjE,CAAA;;AACA,MAAA,IAAA,CAAKsb,QAAL,GAAgB5Z,WAAW,CAAC,MAAD,EAAS,IAAT,EAAe;AACtC4C,QAAAA,KAAK,EAAEA,KAD+B;AAEtCC,QAAAA,MAAM,EAAEA,MAF8B;AAGtCjJ,QAAAA,CAAC,EAAE,GAHmC;AAItCC,QAAAA,CAAC,EAAE,GAJmC;AAKtCmT,QAAAA,EAAE,EAAE,GALkC;AAMtCtP,QAAAA,IAAI,EAAEe,KANgC;QAOtC,cAAgBH,EAAAA,OAAAA;AAPsB,OAAf,CAA3B,CAAA;AASA8B,MAAAA,QAAQ,CAAClD,IAAT,CAAc,IAAA,CAAK0c,QAAnB,CAAA,CAAA;AACH,KAZD,MAaK;MACD,IAAKA,CAAAA,QAAL,GAAgB,IAAhB,CAAA;AACH,KAAA;;IACD,IAAIC,SAAS,GAAG,CAAClZ,IAAI,CAACoK,QAAN,GACT,KAAK+O,UAAL,GAAkB9Z,WAAW,CAAC,GAAD,EAAM,MAAN,EAAc,EAAd,EAAkB,EAAlB,CADpB,GAC6C,IAD7D,CAAA;;AAEA,IAAA,IAAA,CAAK+Z,UAAL,CAAgBT,IAAhB,EAAsB/T,KAAtB,EAA6BsU,SAAS,GAAGA,SAAS,CAACzZ,QAAb,GAAwBA,QAA9D,CAAA,CAAA;;AACAyZ,IAAAA,SAAS,IAAIzZ,QAAQ,CAAClD,IAAT,CAAc2c,SAAd,CAAb,CAAA;AACA,IAAA,IAAI3X,IAAI,GAAGnE,GAAG,CAACuD,IAAI,CAACiE,KAAK,CAACrD,IAAP,CAAL,EAAmB,UAAU8K,EAAV,EAAc;AAAE,MAAA,OAAOzH,KAAK,CAACrD,IAAN,CAAW8K,EAAX,CAAP,CAAA;AAAwB,KAA3D,CAAd,CAAA;;IACA,IAAI9K,IAAI,CAAC/F,MAAT,EAAiB;AACbiE,MAAAA,QAAQ,CAAClD,IAAT,CAAc8C,WAAW,CAAC,MAAD,EAAS,MAAT,EAAiB,EAAjB,EAAqBkC,IAArB,CAAzB,CAAA,CAAA;AACH,KAAA;;IACD,IAAIvB,IAAI,CAACoF,SAAT,EAAoB;MAChB,IAAIiU,eAAe,GAAGhZ,YAAY,CAACuE,KAAK,CAACpD,QAAP,EAAiBoD,KAAK,CAACnD,QAAvB,EAAiC;AAAEvB,QAAAA,OAAO,EAAE,IAAA;AAAX,OAAjC,CAAlC,CAAA;;AACA,MAAA,IAAImZ,eAAJ,EAAqB;AACjB,QAAA,IAAIC,SAAS,GAAGja,WAAW,CAAC,OAAD,EAAU,KAAV,EAAiB,EAAjB,EAAqB,EAArB,EAAyBga,eAAzB,CAA3B,CAAA;QACA5Z,QAAQ,CAAClD,IAAT,CAAc+c,SAAd,CAAA,CAAA;AACH,OAAA;AACJ,KAAA;;IACD,OAAOtX,cAAc,CAACC,KAAD,EAAQC,MAAR,EAAgBzC,QAAhB,EAA0BO,IAAI,CAACmC,UAA/B,CAArB,CAAA;GA1CJ,CAAA;;AA4CA8U,EAAAA,UAAU,CAACze,SAAX,CAAqB+gB,cAArB,GAAsC,UAAUvZ,IAAV,EAAgB;IAClDA,IAAI,GAAGA,IAAI,IAAI,EAAf,CAAA;AACA,IAAA,OAAOD,aAAa,CAAC,IAAK0Y,CAAAA,aAAL,CAAmB;MACpCrT,SAAS,EAAEuK,SAAS,CAAC3P,IAAI,CAACwZ,YAAN,EAAoB,IAApB,CADgB;AAEpC9N,MAAAA,UAAU,EAAE,KAFwB;AAGpCtB,MAAAA,QAAQ,EAAE,IAH0B;AAIpCjI,MAAAA,UAAU,EAAEwN,SAAS,CAAC3P,IAAI,CAACmC,UAAN,EAAkB,IAAlB,CAAA;AAJe,KAAnB,CAAD,EAKhB;AAAEjC,MAAAA,OAAO,EAAE,IAAA;AAAX,KALgB,CAApB,CAAA;GAFJ,CAAA;;AASA+W,EAAAA,UAAU,CAACze,SAAX,CAAqBihB,kBAArB,GAA0C,UAAUC,eAAV,EAA2B;IACjE,IAAKZ,CAAAA,gBAAL,GAAwBY,eAAxB,CAAA;IACA,IAAIC,OAAO,GAAG,IAAA,CAAKV,QAAnB,CAAA;;AACA,IAAA,IAAIU,OAAO,IAAIA,OAAO,CAACnI,GAAvB,EAA4B;AACxB,MAAA,IAAIhT,EAAE,GAAGX,cAAc,CAAC6b,eAAD,CAAvB;AAAA,UAA0C5b,KAAK,GAAGU,EAAE,CAACV,KAArD;AAAA,UAA4DH,OAAO,GAAGa,EAAE,CAACb,OAAzE,CAAA;;AACAgc,MAAAA,OAAO,CAACnI,GAAR,CAAYC,YAAZ,CAAyB,MAAzB,EAAiC3T,KAAjC,CAAA,CAAA;;MACA,IAAIH,OAAO,GAAG,CAAd,EAAiB;AACbgc,QAAAA,OAAO,CAACnI,GAAR,CAAYC,YAAZ,CAAyB,cAAzB,EAAyC9T,OAAzC,CAAA,CAAA;AACH,OAAA;AACJ,KAAA;GATL,CAAA;;AAWAsZ,EAAAA,UAAU,CAACze,SAAX,CAAqBohB,UAArB,GAAkC,YAAY;AAC1C,IAAA,OAAO,KAAKT,UAAL,IAAmB,IAAKA,CAAAA,UAAL,CAAgB3H,GAA1C,CAAA;GADJ,CAAA;;EAGAyF,UAAU,CAACze,SAAX,CAAqB4gB,UAArB,GAAkC,UAAUT,IAAV,EAAgB/T,KAAhB,EAAuBiV,GAAvB,EAA4B;AAC1D,IAAA,IAAIC,OAAO,GAAGnB,IAAI,CAACnd,MAAnB,CAAA;IACA,IAAIue,oBAAoB,GAAG,EAA3B,CAAA;IACA,IAAIC,yBAAyB,GAAG,CAAhC,CAAA;AACA,IAAA,IAAIC,oBAAJ,CAAA;AACA,IAAA,IAAIC,aAAJ,CAAA;IACA,IAAIC,gBAAgB,GAAG,CAAvB,CAAA;;IACA,KAAK,IAAIje,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4d,OAApB,EAA6B5d,CAAC,EAA9B,EAAkC;AAC9B,MAAA,IAAIke,WAAW,GAAGzB,IAAI,CAACzc,CAAD,CAAtB,CAAA;;AACA,MAAA,IAAI,CAACke,WAAW,CAACC,SAAjB,EAA4B;AACxB,QAAA,IAAIC,SAAS,GAAGF,WAAW,CAACG,WAA5B,CAAA;QACA,IAAIhV,GAAG,GAAG+U,SAAS,IAAIA,SAAS,CAAC9e,MAAvB,IAAiC,CAA3C,CAAA;QACA,IAAIgf,OAAO,GAAGN,aAAa,IAAIA,aAAa,CAAC1e,MAA/B,IAAyC,CAAvD,CAAA;QACA,IAAIif,GAAG,GAAG,KAAK,CAAf,CAAA;;QACA,KAAKA,GAAG,GAAGziB,IAAI,CAAC0iB,GAAL,CAASnV,GAAG,GAAG,CAAf,EAAkBiV,OAAO,GAAG,CAA5B,CAAX,EAA2CC,GAAG,IAAI,CAAlD,EAAqDA,GAAG,EAAxD,EAA4D;AACxD,UAAA,IAAIH,SAAS,IAAIJ,aAAb,IACGI,SAAS,CAACG,GAAD,CAAT,KAAmBP,aAAa,CAACO,GAAD,CADvC,EAC8C;AAC1C,YAAA,MAAA;AACH,WAAA;AACJ,SAAA;;AACD,QAAA,KAAK,IAAIE,GAAG,GAAGH,OAAO,GAAG,CAAzB,EAA4BG,GAAG,GAAGF,GAAlC,EAAuCE,GAAG,EAA1C,EAA8C;UAC1CX,yBAAyB,EAAA,CAAA;AACzBC,UAAAA,oBAAoB,GAAGF,oBAAoB,CAACC,yBAAyB,GAAG,CAA7B,CAA3C,CAAA;AACH,SAAA;;AACD,QAAA,KAAK,IAAIY,GAAG,GAAGH,GAAG,GAAG,CAArB,EAAwBG,GAAG,GAAGrV,GAA9B,EAAmCqV,GAAG,EAAtC,EAA0C;UACtC,IAAIC,UAAU,GAAG,EAAjB,CAAA;UACAzI,WAAW,CAACkI,SAAS,CAACM,GAAD,CAAV,EAAiBC,UAAjB,EAA6BjW,KAA7B,CAAX,CAAA;AACA,UAAA,IAAI5I,CAAC,GAAGqD,WAAW,CAAC,GAAD,EAAM,SAAY8a,GAAAA,gBAAgB,EAAlC,EAAsCU,UAAtC,EAAkD,EAAlD,CAAnB,CAAA;UACA,CAACZ,oBAAoB,GAAGA,oBAAoB,CAACxa,QAAxB,GAAmCoa,GAAxD,EAA6Dtd,IAA7D,CAAkEP,CAAlE,CAAA,CAAA;AACA+d,UAAAA,oBAAoB,CAACC,yBAAyB,EAA1B,CAApB,GAAoDhe,CAApD,CAAA;AACAie,UAAAA,oBAAoB,GAAGje,CAAvB,CAAA;AACH,SAAA;;AACDke,QAAAA,aAAa,GAAGI,SAAhB,CAAA;AACA,QAAA,IAAIQ,GAAG,GAAGhN,KAAK,CAACsM,WAAD,EAAcxV,KAAd,CAAf,CAAA;;AACA,QAAA,IAAIkW,GAAJ,EAAS;UACL,CAACb,oBAAoB,GAAGA,oBAAoB,CAACxa,QAAxB,GAAmCoa,GAAxD,EAA6Dtd,IAA7D,CAAkEue,GAAlE,CAAA,CAAA;AACH,SAAA;AACJ,OAAA;AACJ,KAAA;GAtCL,CAAA;;EAwCA7D,UAAU,CAACze,SAAX,CAAqBwf,MAArB,GAA8B,UAAU/V,KAAV,EAAiBC,MAAjB,EAAyB;IACnD,IAAIlC,IAAI,GAAG,IAAA,CAAKuX,KAAhB,CAAA;IACA,IAAIL,IAAI,GAAG,IAAA,CAAKA,IAAhB,CAAA;IACA,IAAIS,QAAQ,GAAG,IAAA,CAAKC,SAApB,CAAA;AACA3V,IAAAA,KAAK,IAAI,IAAT,KAAkBjC,IAAI,CAACiC,KAAL,GAAaA,KAA/B,CAAA,CAAA;AACAC,IAAAA,MAAM,IAAI,IAAV,KAAmBlC,IAAI,CAACkC,MAAL,GAAcA,MAAjC,CAAA,CAAA;;IACA,IAAIgV,IAAI,IAAIS,QAAZ,EAAsB;AAClBA,MAAAA,QAAQ,CAAC7a,KAAT,CAAeie,OAAf,GAAyB,MAAzB,CAAA;MACA9Y,KAAK,GAAG+Y,SAAO,CAAC9D,IAAD,EAAO,CAAP,EAAUlX,IAAV,CAAf,CAAA;MACAkC,MAAM,GAAG8Y,SAAO,CAAC9D,IAAD,EAAO,CAAP,EAAUlX,IAAV,CAAhB,CAAA;AACA2X,MAAAA,QAAQ,CAAC7a,KAAT,CAAeie,OAAf,GAAyB,EAAzB,CAAA;AACH,KAAA;;IACD,IAAI,IAAA,CAAKhC,MAAL,KAAgB9W,KAAhB,IAAyB,IAAK+W,CAAAA,OAAL,KAAiB9W,MAA9C,EAAsD;MAClD,IAAK6W,CAAAA,MAAL,GAAc9W,KAAd,CAAA;MACA,IAAK+W,CAAAA,OAAL,GAAe9W,MAAf,CAAA;;AACA,MAAA,IAAIyV,QAAJ,EAAc;AACV,QAAA,IAAIsD,aAAa,GAAGtD,QAAQ,CAAC7a,KAA7B,CAAA;AACAme,QAAAA,aAAa,CAAChZ,KAAd,GAAsBA,KAAK,GAAG,IAA9B,CAAA;AACAgZ,QAAAA,aAAa,CAAC/Y,MAAd,GAAuBA,MAAM,GAAG,IAAhC,CAAA;AACH,OAAA;;MACD,IAAI4V,MAAM,GAAG,IAAA,CAAKC,OAAlB,CAAA;;AACA,MAAA,IAAID,MAAJ,EAAY;AACRA,QAAAA,MAAM,CAACrG,YAAP,CAAoB,OAApB,EAA6BxP,KAA7B,CAAA,CAAA;AACA6V,QAAAA,MAAM,CAACrG,YAAP,CAAoB,QAApB,EAA8BvP,MAA9B,CAAA,CAAA;AACH,OAAA;AACJ,KAAA;GAzBL,CAAA;;AA2BA+U,EAAAA,UAAU,CAACze,SAAX,CAAqB0iB,QAArB,GAAgC,YAAY;AACxC,IAAA,OAAO,KAAKnC,MAAZ,CAAA;GADJ,CAAA;;AAGA9B,EAAAA,UAAU,CAACze,SAAX,CAAqB2iB,SAArB,GAAiC,YAAY;AACzC,IAAA,OAAO,KAAKnC,OAAZ,CAAA;GADJ,CAAA;;AAGA/B,EAAAA,UAAU,CAACze,SAAX,CAAqB4iB,OAArB,GAA+B,YAAY;IACvC,IAAI,IAAA,CAAKlE,IAAT,EAAe;AACX,MAAA,IAAA,CAAKA,IAAL,CAAUmE,SAAV,GAAsB,EAAtB,CAAA;AACH,KAAA;;AACD,IAAA,IAAA,CAAKtD,OAAL,GACI,IAAA,CAAKH,SAAL,GACI,KAAKT,OAAL,GACI,IAAKM,CAAAA,SAAL,GACI,IAAKwB,CAAAA,QAAL,GACI,IAAKE,CAAAA,UAAL,GAAkB,IALtC,CAAA;GAJJ,CAAA;;AAWAlC,EAAAA,UAAU,CAACze,SAAX,CAAqB8iB,KAArB,GAA6B,YAAY;IACrC,IAAI,IAAA,CAAKvD,OAAT,EAAkB;AACd,MAAA,IAAA,CAAKA,OAAL,CAAasD,SAAb,GAAyB,IAAzB,CAAA;AACH,KAAA;;IACD,IAAK5D,CAAAA,SAAL,GAAiB,IAAjB,CAAA;GAJJ,CAAA;;AAMAR,EAAAA,UAAU,CAACze,SAAX,CAAqBgR,SAArB,GAAiC,UAAU+R,MAAV,EAAkB;AAC/C,IAAA,IAAIjT,GAAG,GAAGkT,kBAAkB,CAAC,IAAKjC,CAAAA,cAAL,EAAD,CAA5B,CAAA;IACA,IAAIkC,MAAM,GAAG,qBAAb,CAAA;;AACA,IAAA,IAAIF,MAAJ,EAAY;AACRjT,MAAAA,GAAG,GAAGoT,YAAY,CAACpT,GAAD,CAAlB,CAAA;AACA,MAAA,OAAOA,GAAG,IAAImT,MAAM,GAAG,SAAT,GAAqBnT,GAAnC,CAAA;AACH,KAAA;;AACD,IAAA,OAAOmT,MAAM,GAAG,gBAAT,GAA4BnT,GAAnC,CAAA;GAPJ,CAAA;;AASA,EAAA,OAAO2O,UAAP,CAAA;AACH,CA1NiB,EAAlB,CAAA;;AA2NA,SAASI,sBAAT,CAAgCsE,MAAhC,EAAwC;AACpC,EAAA,OAAO,YAAY;AACf,IAAA,IAAI/L,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACvCC,MAAAA,QAAQ,CAAC,0CAAA,GAA6C4L,MAA7C,GAAsD,GAAvD,CAAR,CAAA;AACH,KAAA;GAHL,CAAA;AAKH;;ACvOD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BO,SAASC,SAAT,CAAiBC,SAAjB,EAA4B;AACjCA,EAAAA,SAAS,CAACC,eAAV,CAA0B,KAA1B,EAAiC7E,UAAjC,CAAA,CAAA;AACD;;ACrCD,SAAS8E,SAAT,CAAmB1P,EAAnB,EAAuB2P,OAAvB,EAAgCC,GAAhC,EAAqC;AACjC,EAAA,IAAIC,MAAM,GAAGC,WAAW,CAACC,YAAZ,EAAb,CAAA;AACA,EAAA,IAAIna,KAAK,GAAG+Z,OAAO,CAACd,QAAR,EAAZ,CAAA;AACA,EAAA,IAAIhZ,MAAM,GAAG8Z,OAAO,CAACb,SAAR,EAAb,CAAA;AACA,EAAA,IAAIkB,WAAW,GAAGH,MAAM,CAACpf,KAAzB,CAAA;;AACA,EAAA,IAAIuf,WAAJ,EAAiB;IACbA,WAAW,CAACC,QAAZ,GAAuB,UAAvB,CAAA;IACAD,WAAW,CAACE,IAAZ,GAAmB,GAAnB,CAAA;IACAF,WAAW,CAACG,GAAZ,GAAkB,GAAlB,CAAA;AACAH,IAAAA,WAAW,CAACpa,KAAZ,GAAoBA,KAAK,GAAG,IAA5B,CAAA;AACAoa,IAAAA,WAAW,CAACna,MAAZ,GAAqBA,MAAM,GAAG,IAA9B,CAAA;AACAga,IAAAA,MAAM,CAACzK,YAAP,CAAoB,gBAApB,EAAsCpF,EAAtC,CAAA,CAAA;AACH,GAAA;;AACD6P,EAAAA,MAAM,CAACja,KAAP,GAAeA,KAAK,GAAGga,GAAvB,CAAA;AACAC,EAAAA,MAAM,CAACha,MAAP,GAAgBA,MAAM,GAAG+Z,GAAzB,CAAA;AACA,EAAA,OAAOC,MAAP,CAAA;AACH,CAAA;;AACD,CAAA;;AACA,IAAIO,KAAK,GAAI,UAAUC,MAAV,EAAkB;AAC3BC,EAAAA,SAAS,CAACF,KAAD,EAAQC,MAAR,CAAT,CAAA;;AACA,EAAA,SAASD,KAAT,CAAepQ,EAAf,EAAmB2P,OAAnB,EAA4BC,GAA5B,EAAiC;IAC7B,IAAIW,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,KAAqB,IAAjC,CAAA;;IACAD,KAAK,CAACE,UAAN,GAAmB,KAAnB,CAAA;IACAF,KAAK,CAACG,cAAN,GAAuB,GAAvB,CAAA;IACAH,KAAK,CAACX,GAAN,GAAY,CAAZ,CAAA;IACAW,KAAK,CAACI,OAAN,GAAgB,KAAhB,CAAA;IACAJ,KAAK,CAACK,MAAN,GAAe,EAAf,CAAA;IACAL,KAAK,CAACM,WAAN,GAAoB,KAApB,CAAA;IACAN,KAAK,CAACO,MAAN,GAAe,CAAf,CAAA;IACAP,KAAK,CAACQ,mBAAN,GAA4B,CAA5B,CAAA;IACAR,KAAK,CAACS,OAAN,GAAgB,IAAhB,CAAA;IACAT,KAAK,CAACU,gBAAN,GAAyB,IAAzB,CAAA;IACAV,KAAK,CAACW,MAAN,GAAe,KAAf,CAAA;IACAX,KAAK,CAACY,WAAN,GAAoB,CAApB,CAAA;IACAZ,KAAK,CAACa,YAAN,GAAqB,CAArB,CAAA;IACAb,KAAK,CAACc,UAAN,GAAmB,CAAnB,CAAA;IACAd,KAAK,CAACe,gBAAN,GAAyB,IAAzB,CAAA;IACAf,KAAK,CAACgB,cAAN,GAAuB,IAAvB,CAAA;AACA,IAAA,IAAIC,GAAJ,CAAA;IACA5B,GAAG,GAAGA,GAAG,IAAI6B,gBAAb,CAAA;;AACA,IAAA,IAAI,OAAOzR,EAAP,KAAc,QAAlB,EAA4B;MACxBwR,GAAG,GAAG9B,SAAS,CAAC1P,EAAD,EAAK2P,OAAL,EAAcC,GAAd,CAAf,CAAA;KADJ,MAGK,IAAI8B,UAAA,CAAc1R,EAAd,CAAJ,EAAuB;AACxBwR,MAAAA,GAAG,GAAGxR,EAAN,CAAA;MACAA,EAAE,GAAGwR,GAAG,CAACxR,EAAT,CAAA;AACH,KAAA;;IACDuQ,KAAK,CAACvQ,EAAN,GAAWA,EAAX,CAAA;IACAuQ,KAAK,CAACiB,GAAN,GAAYA,GAAZ,CAAA;AACA,IAAA,IAAIG,QAAQ,GAAGH,GAAG,CAAC/gB,KAAnB,CAAA;;AACA,IAAA,IAAIkhB,QAAJ,EAAc;MACVD,iBAAA,CAAuBF,GAAvB,CAAA,CAAA;;MACAA,GAAG,CAACI,aAAJ,GAAoB,YAAY;AAAE,QAAA,OAAO,KAAP,CAAA;OAAlC,CAAA;;MACAD,QAAQ,CAACE,OAAT,GAAmB,GAAnB,CAAA;MACAF,QAAQ,CAACG,MAAT,GAAkB,GAAlB,CAAA;MACAH,QAAQ,CAACI,WAAT,GAAuB,GAAvB,CAAA;AACH,KAAA;;IACDxB,KAAK,CAACZ,OAAN,GAAgBA,OAAhB,CAAA;IACAY,KAAK,CAACX,GAAN,GAAYA,GAAZ,CAAA;AACA,IAAA,OAAOW,KAAP,CAAA;AACH,GAAA;;AACDH,EAAAA,KAAK,CAACjkB,SAAN,CAAgB6lB,eAAhB,GAAkC,YAAY;AAC1C,IAAA,OAAO,IAAKX,CAAAA,UAAL,GAAkB,IAAA,CAAKD,YAA9B,CAAA;GADJ,CAAA;;AAGAhB,EAAAA,KAAK,CAACjkB,SAAN,CAAgB8lB,UAAhB,GAA6B,YAAY;IACrC,IAAKX,CAAAA,gBAAL,GAAwB,IAAA,CAAKF,YAA7B,CAAA;IACA,IAAKG,CAAAA,cAAL,GAAsB,IAAA,CAAKF,UAA3B,CAAA;GAFJ,CAAA;;AAIAjB,EAAAA,KAAK,CAACjkB,SAAN,CAAgB+lB,WAAhB,GAA8B,YAAY;IACtC,IAAKC,CAAAA,GAAL,GAAW,IAAKX,CAAAA,GAAL,CAASY,UAAT,CAAoB,IAApB,CAAX,CAAA;AACA,IAAA,IAAA,CAAKD,GAAL,CAASvC,GAAT,GAAe,KAAKA,GAApB,CAAA;GAFJ,CAAA;;AAIAQ,EAAAA,KAAK,CAACjkB,SAAN,CAAgBkmB,YAAhB,GAA+B,YAAY;IACvC,IAAKpB,CAAAA,gBAAL,GAAwB,IAAxB,CAAA;GADJ,CAAA;;AAGAb,EAAAA,KAAK,CAACjkB,SAAN,CAAgBmmB,gBAAhB,GAAmC,YAAY;IAC3C,IAAI1C,GAAG,GAAG,IAAA,CAAKA,GAAf,CAAA;AACA,IAAA,IAAA,CAAK2C,OAAL,GAAe7C,SAAS,CAAC,OAAU,GAAA,IAAA,CAAK1P,EAAhB,EAAoB,IAAK2P,CAAAA,OAAzB,EAAkCC,GAAlC,CAAxB,CAAA;IACA,IAAK4C,CAAAA,OAAL,GAAe,IAAKD,CAAAA,OAAL,CAAaH,UAAb,CAAwB,IAAxB,CAAf,CAAA;;IACA,IAAIxC,GAAG,KAAK,CAAZ,EAAe;AACX,MAAA,IAAA,CAAK4C,OAAL,CAAaC,KAAb,CAAmB7C,GAAnB,EAAwBA,GAAxB,CAAA,CAAA;AACH,KAAA;GANL,CAAA;;AAQAQ,EAAAA,KAAK,CAACjkB,SAAN,CAAgBumB,kBAAhB,GAAqC,UAAUC,WAAV,EAAuBC,QAAvB,EAAiCC,SAAjC,EAA4CC,UAA5C,EAAwD;IACzF,IAAI,IAAA,CAAK7B,gBAAT,EAA2B;MACvB,IAAKA,CAAAA,gBAAL,GAAwB,KAAxB,CAAA;AACA,MAAA,OAAO,IAAP,CAAA;AACH,KAAA;;IACD,IAAI8B,kBAAkB,GAAG,EAAzB,CAAA;IACA,IAAIhC,mBAAmB,GAAG,IAAA,CAAKA,mBAA/B,CAAA;IACA,IAAIiC,IAAI,GAAG,KAAX,CAAA;AACA,IAAA,IAAIC,WAAW,GAAG,IAAIC,YAAJ,CAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAAlB,CAAA;;IACA,SAASC,kBAAT,CAA4BpkB,IAA5B,EAAkC;MAC9B,IAAI,CAACA,IAAI,CAACqkB,QAAL,EAAD,IAAoBrkB,IAAI,CAACskB,MAAL,EAAxB,EAAuC;AACnC,QAAA,OAAA;AACH,OAAA;;AACD,MAAA,IAAIN,kBAAkB,CAAC5jB,MAAnB,KAA8B,CAAlC,EAAqC;AACjC,QAAA,IAAImkB,YAAY,GAAG,IAAIJ,YAAJ,CAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAAnB,CAAA;QACAI,YAAY,CAACC,IAAb,CAAkBxkB,IAAlB,CAAA,CAAA;QACAgkB,kBAAkB,CAAC7iB,IAAnB,CAAwBojB,YAAxB,CAAA,CAAA;AACH,OAJD,MAKK;QACD,IAAIE,QAAQ,GAAG,KAAf,CAAA;QACA,IAAIC,YAAY,GAAGC,QAAnB,CAAA;QACA,IAAIC,kBAAkB,GAAG,CAAzB,CAAA;;AACA,QAAA,KAAK,IAAI9jB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkjB,kBAAkB,CAAC5jB,MAAvC,EAA+C,EAAEU,CAAjD,EAAoD;AAChD,UAAA,IAAI+jB,UAAU,GAAGb,kBAAkB,CAACljB,CAAD,CAAnC,CAAA;;AACA,UAAA,IAAI+jB,UAAU,CAACC,SAAX,CAAqB9kB,IAArB,CAAJ,EAAgC;AAC5B,YAAA,IAAI+kB,aAAa,GAAG,IAAIZ,YAAJ,CAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAApB,CAAA;YACAY,aAAa,CAACP,IAAd,CAAmBK,UAAnB,CAAA,CAAA;YACAE,aAAa,CAACC,KAAd,CAAoBhlB,IAApB,CAAA,CAAA;AACAgkB,YAAAA,kBAAkB,CAACljB,CAAD,CAAlB,GAAwBikB,aAAxB,CAAA;AACAN,YAAAA,QAAQ,GAAG,IAAX,CAAA;AACA,YAAA,MAAA;WANJ,MAQK,IAAIR,IAAJ,EAAU;YACXC,WAAW,CAACM,IAAZ,CAAiBxkB,IAAjB,CAAA,CAAA;YACAkkB,WAAW,CAACc,KAAZ,CAAkBH,UAAlB,CAAA,CAAA;YACA,IAAII,KAAK,GAAGjlB,IAAI,CAAC6G,KAAL,GAAa7G,IAAI,CAAC8G,MAA9B,CAAA;YACA,IAAIoe,KAAK,GAAGL,UAAU,CAAChe,KAAX,GAAmBge,UAAU,CAAC/d,MAA1C,CAAA;YACA,IAAIqe,WAAW,GAAGjB,WAAW,CAACrd,KAAZ,GAAoBqd,WAAW,CAACpd,MAAlD,CAAA;AACA,YAAA,IAAIse,SAAS,GAAGD,WAAW,GAAGF,KAAd,GAAsBC,KAAtC,CAAA;;YACA,IAAIE,SAAS,GAAGV,YAAhB,EAA8B;AAC1BA,cAAAA,YAAY,GAAGU,SAAf,CAAA;AACAR,cAAAA,kBAAkB,GAAG9jB,CAArB,CAAA;AACH,aAAA;AACJ,WAAA;AACJ,SAAA;;AACD,QAAA,IAAImjB,IAAJ,EAAU;AACND,UAAAA,kBAAkB,CAACY,kBAAD,CAAlB,CAAuCI,KAAvC,CAA6ChlB,IAA7C,CAAA,CAAA;AACAykB,UAAAA,QAAQ,GAAG,IAAX,CAAA;AACH,SAAA;;QACD,IAAI,CAACA,QAAL,EAAe;AACX,UAAA,IAAIF,YAAY,GAAG,IAAIJ,YAAJ,CAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAAnB,CAAA;UACAI,YAAY,CAACC,IAAb,CAAkBxkB,IAAlB,CAAA,CAAA;UACAgkB,kBAAkB,CAAC7iB,IAAnB,CAAwBojB,YAAxB,CAAA,CAAA;AACH,SAAA;;QACD,IAAI,CAACN,IAAL,EAAW;AACPA,UAAAA,IAAI,GAAGD,kBAAkB,CAAC5jB,MAAnB,IAA6B4hB,mBAApC,CAAA;AACH,SAAA;AACJ,OAAA;AACJ,KAAA;;AACD,IAAA,KAAK,IAAIlhB,CAAC,GAAG,IAAA,CAAKuhB,YAAlB,EAAgCvhB,CAAC,GAAG,IAAKwhB,CAAAA,UAAzC,EAAqD,EAAExhB,CAAvD,EAA0D;AACtD,MAAA,IAAIuB,EAAE,GAAGuhB,WAAW,CAAC9iB,CAAD,CAApB,CAAA;;AACA,MAAA,IAAIuB,EAAJ,EAAQ;AACJ,QAAA,IAAIgjB,WAAW,GAAGhjB,EAAE,CAACijB,eAAH,CAAmBxB,SAAnB,EAA8BC,UAA9B,EAA0C,IAA1C,EAAgD,IAAhD,CAAlB,CAAA;QACA,IAAIwB,QAAQ,GAAGljB,EAAE,CAACmjB,YAAH,KAAqBnjB,EAAE,CAAC4f,OAAH,GAAawD,UAAd,IAA6B,CAACJ,WAAlD,CACThjB,GAAAA,EAAE,CAACqjB,gBAAH,EADS,GAET,IAFN,CAAA;;AAGA,QAAA,IAAIH,QAAJ,EAAc;UACVnB,kBAAkB,CAACmB,QAAD,CAAlB,CAAA;AACH,SAAA;;QACD,IAAII,OAAO,GAAGN,WAAW,KAAMhjB,EAAE,CAAC4f,OAAH,GAAawD,UAAd,IAA6B,CAACpjB,EAAE,CAACmjB,YAAtC,CAAX,GACRnjB,EAAE,CAACujB,YAAH,EADQ,GAER,IAFN,CAAA;;AAGA,QAAA,IAAID,OAAJ,EAAa;UACTvB,kBAAkB,CAACuB,OAAD,CAAlB,CAAA;AACH,SAAA;AACJ,OAAA;AACJ,KAAA;;AACD,IAAA,KAAK,IAAI7kB,CAAC,GAAG,IAAA,CAAKyhB,gBAAlB,EAAoCzhB,CAAC,GAAG,IAAK0hB,CAAAA,cAA7C,EAA6D,EAAE1hB,CAA/D,EAAkE;AAC9D,MAAA,IAAIuB,EAAE,GAAGwhB,QAAQ,CAAC/iB,CAAD,CAAjB,CAAA;AACA,MAAA,IAAIukB,WAAW,GAAGhjB,EAAE,CAACijB,eAAH,CAAmBxB,SAAnB,EAA8BC,UAA9B,EAA0C,IAA1C,EAAgD,IAAhD,CAAlB,CAAA;;AACA,MAAA,IAAI1hB,EAAE,KAAK,CAACgjB,WAAD,IAAgB,CAAChjB,EAAE,CAACwjB,IAAzB,CAAF,IAAoCxjB,EAAE,CAACmjB,YAA3C,EAAyD;AACrD,QAAA,IAAID,QAAQ,GAAGljB,EAAE,CAACqjB,gBAAH,EAAf,CAAA;;AACA,QAAA,IAAIH,QAAJ,EAAc;UACVnB,kBAAkB,CAACmB,QAAD,CAAlB,CAAA;AACH,SAAA;AACJ,OAAA;AACJ,KAAA;;AACD,IAAA,IAAIO,gBAAJ,CAAA;;IACA,GAAG;AACCA,MAAAA,gBAAgB,GAAG,KAAnB,CAAA;;MACA,KAAK,IAAIhlB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkjB,kBAAkB,CAAC5jB,MAAvC,GAAgD;AAC5C,QAAA,IAAI4jB,kBAAkB,CAACljB,CAAD,CAAlB,CAAsBwjB,MAAtB,EAAJ,EAAoC;AAChCN,UAAAA,kBAAkB,CAAC+B,MAAnB,CAA0BjlB,CAA1B,EAA6B,CAA7B,CAAA,CAAA;AACA,UAAA,SAAA;AACH,SAAA;;AACD,QAAA,KAAK,IAAIklB,CAAC,GAAGllB,CAAC,GAAG,CAAjB,EAAoBklB,CAAC,GAAGhC,kBAAkB,CAAC5jB,MAA3C,GAAoD;AAChD,UAAA,IAAI4jB,kBAAkB,CAACljB,CAAD,CAAlB,CAAsBgkB,SAAtB,CAAgCd,kBAAkB,CAACgC,CAAD,CAAlD,CAAJ,EAA4D;AACxDF,YAAAA,gBAAgB,GAAG,IAAnB,CAAA;YACA9B,kBAAkB,CAACljB,CAAD,CAAlB,CAAsBkkB,KAAtB,CAA4BhB,kBAAkB,CAACgC,CAAD,CAA9C,CAAA,CAAA;AACAhC,YAAAA,kBAAkB,CAAC+B,MAAnB,CAA0BC,CAA1B,EAA6B,CAA7B,CAAA,CAAA;AACH,WAJD,MAKK;YACDA,CAAC,EAAA,CAAA;AACJ,WAAA;AACJ,SAAA;;QACDllB,CAAC,EAAA,CAAA;AACJ,OAAA;AACJ,KAnBD,QAmBSglB,gBAnBT,EAAA;;IAoBA,IAAKG,CAAAA,WAAL,GAAmBjC,kBAAnB,CAAA;AACA,IAAA,OAAOA,kBAAP,CAAA;GA7GJ,CAAA;;AA+GA3C,EAAAA,KAAK,CAACjkB,SAAN,CAAgB8oB,kBAAhB,GAAqC,YAAY;AAC7C,IAAA,OAAO,CAAC,IAAKD,CAAAA,WAAL,IAAoB,EAArB,EAAyBE,KAAzB,EAAP,CAAA;GADJ,CAAA;;EAGA9E,KAAK,CAACjkB,SAAN,CAAgBwf,MAAhB,GAAyB,UAAU/V,KAAV,EAAiBC,MAAjB,EAAyB;IAC9C,IAAI+Z,GAAG,GAAG,IAAA,CAAKA,GAAf,CAAA;IACA,IAAI4B,GAAG,GAAG,IAAA,CAAKA,GAAf,CAAA;AACA,IAAA,IAAIG,QAAQ,GAAGH,GAAG,CAAC/gB,KAAnB,CAAA;IACA,IAAI8hB,OAAO,GAAG,IAAA,CAAKA,OAAnB,CAAA;;AACA,IAAA,IAAIZ,QAAJ,EAAc;AACVA,MAAAA,QAAQ,CAAC/b,KAAT,GAAiBA,KAAK,GAAG,IAAzB,CAAA;AACA+b,MAAAA,QAAQ,CAAC9b,MAAT,GAAkBA,MAAM,GAAG,IAA3B,CAAA;AACH,KAAA;;AACD2b,IAAAA,GAAG,CAAC5b,KAAJ,GAAYA,KAAK,GAAGga,GAApB,CAAA;AACA4B,IAAAA,GAAG,CAAC3b,MAAJ,GAAaA,MAAM,GAAG+Z,GAAtB,CAAA;;AACA,IAAA,IAAI2C,OAAJ,EAAa;AACTA,MAAAA,OAAO,CAAC3c,KAAR,GAAgBA,KAAK,GAAGga,GAAxB,CAAA;AACA2C,MAAAA,OAAO,CAAC1c,MAAR,GAAiBA,MAAM,GAAG+Z,GAA1B,CAAA;;MACA,IAAIA,GAAG,KAAK,CAAZ,EAAe;AACX,QAAA,IAAA,CAAK4C,OAAL,CAAaC,KAAb,CAAmB7C,GAAnB,EAAwBA,GAAxB,CAAA,CAAA;AACH,OAAA;AACJ,KAAA;GAjBL,CAAA;;EAmBAQ,KAAK,CAACjkB,SAAN,CAAgB8iB,KAAhB,GAAwB,UAAUkG,QAAV,EAAoBC,UAApB,EAAgCC,YAAhC,EAA8C;IAClE,IAAI7D,GAAG,GAAG,IAAA,CAAKA,GAAf,CAAA;IACA,IAAIW,GAAG,GAAG,IAAA,CAAKA,GAAf,CAAA;AACA,IAAA,IAAIvc,KAAK,GAAG4b,GAAG,CAAC5b,KAAhB,CAAA;AACA,IAAA,IAAIC,MAAM,GAAG2b,GAAG,CAAC3b,MAAjB,CAAA;AACAuf,IAAAA,UAAU,GAAGA,UAAU,IAAI,IAAA,CAAKA,UAAhC,CAAA;AACA,IAAA,IAAIE,cAAc,GAAG,IAAA,CAAK7E,UAAL,IAAmB,CAAC0E,QAAzC,CAAA;IACA,IAAIzE,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;IACA,IAAId,GAAG,GAAG,IAAA,CAAKA,GAAf,CAAA;IACA,IAAI2F,IAAI,GAAG,IAAX,CAAA;;AACA,IAAA,IAAID,cAAJ,EAAoB;MAChB,IAAI,CAAC,IAAK/C,CAAAA,OAAV,EAAmB;AACf,QAAA,IAAA,CAAKD,gBAAL,EAAA,CAAA;AACH,OAAA;;AACD,MAAA,IAAA,CAAKE,OAAL,CAAagD,wBAAb,GAAwC,MAAxC,CAAA;AACA,MAAA,IAAA,CAAKhD,OAAL,CAAaiD,SAAb,CAAuBjE,GAAvB,EAA4B,CAA5B,EAA+B,CAA/B,EAAkC5b,KAAK,GAAGga,GAA1C,EAA+C/Z,MAAM,GAAG+Z,GAAxD,CAAA,CAAA;AACH,KAAA;;IACD,IAAI2C,OAAO,GAAG,IAAA,CAAKA,OAAnB,CAAA;;IACA,SAASmD,OAAT,CAAiB9oB,CAAjB,EAAoBC,CAApB,EAAuB+I,KAAvB,EAA8BC,MAA9B,EAAsC;MAClCsc,GAAG,CAACwD,SAAJ,CAAc/oB,CAAd,EAAiBC,CAAjB,EAAoB+I,KAApB,EAA2BC,MAA3B,CAAA,CAAA;;AACA,MAAA,IAAIuf,UAAU,IAAIA,UAAU,KAAK,aAAjC,EAAgD;QAC5C,IAAIQ,2BAA2B,GAAG,KAAK,CAAvC,CAAA;;AACA,QAAA,IAAIlE,gBAAA,CAAsB0D,UAAtB,CAAJ,EAAuC;UACnCQ,2BAA2B,GAAGR,UAAU,CAACS,gBAAX,IACvBC,iBAAiB,CAAC3D,GAAD,EAAMiD,UAAN,EAAkB;AAClCxoB,YAAAA,CAAC,EAAE,CAD+B;AAElCC,YAAAA,CAAC,EAAE,CAF+B;AAGlC+I,YAAAA,KAAK,EAAEA,KAH2B;AAIlCC,YAAAA,MAAM,EAAEA,MAAAA;AAJ0B,WAAlB,CADxB,CAAA;UAOAuf,UAAU,CAACS,gBAAX,GAA8BD,2BAA9B,CAAA;SARJ,MAUK,IAAIlE,oBAAA,CAA0B0D,UAA1B,CAAJ,EAA2C;AAC5CQ,UAAAA,2BAA2B,GAAGG,mBAAmB,CAAC5D,GAAD,EAAMiD,UAAN,EAAkB;AAC/DY,YAAAA,KAAK,EAAE,SAAY,KAAA,GAAA;AACfT,cAAAA,IAAI,CAAClD,YAAL,EAAA,CAAA;;cACAkD,IAAI,CAACU,SAAL,CAAe9J,OAAf,EAAA,CAAA;AACH,aAAA;AAJ8D,WAAlB,CAAjD,CAAA;AAMH,SAAA;;AACDgG,QAAAA,GAAG,CAAC+D,IAAJ,EAAA,CAAA;AACA/D,QAAAA,GAAG,CAACgE,SAAJ,GAAgBP,2BAA2B,IAAIR,UAA/C,CAAA;QACAjD,GAAG,CAACiE,QAAJ,CAAaxpB,CAAb,EAAgBC,CAAhB,EAAmB+I,KAAnB,EAA0BC,MAA1B,CAAA,CAAA;AACAsc,QAAAA,GAAG,CAACkE,OAAJ,EAAA,CAAA;AACH,OAAA;;AACD,MAAA,IAAIf,cAAJ,EAAoB;AAChBnD,QAAAA,GAAG,CAAC+D,IAAJ,EAAA,CAAA;QACA/D,GAAG,CAACmE,WAAJ,GAAkB5F,cAAlB,CAAA;QACAyB,GAAG,CAACsD,SAAJ,CAAclD,OAAd,EAAuB3lB,CAAvB,EAA0BC,CAA1B,EAA6B+I,KAA7B,EAAoCC,MAApC,CAAA,CAAA;AACAsc,QAAAA,GAAG,CAACkE,OAAJ,EAAA,CAAA;AACH,OAAA;AACJ,KAAA;;AACD,IAAA,CAAA;;AACA,IAAA,IAAI,CAAChB,YAAD,IAAiBC,cAArB,EAAqC;MACjCI,OAAO,CAAC,CAAD,EAAI,CAAJ,EAAO9f,KAAP,EAAcC,MAAd,CAAP,CAAA;AACH,KAFD,MAGK,IAAIwf,YAAY,CAAClmB,MAAjB,EAAyB;AAC1BuiB,MAAAA,MAAA,CAAU2D,YAAV,EAAwB,UAAUtmB,IAAV,EAAgB;QACpC2mB,OAAO,CAAC3mB,IAAI,CAACnC,CAAL,GAASgjB,GAAV,EAAe7gB,IAAI,CAAClC,CAAL,GAAS+iB,GAAxB,EAA6B7gB,IAAI,CAAC6G,KAAL,GAAaga,GAA1C,EAA+C7gB,IAAI,CAAC8G,MAAL,GAAc+Z,GAA7D,CAAP,CAAA;OADJ,CAAA,CAAA;AAGH,KAAA;GA5DL,CAAA;;AA8DA,EAAA,OAAOQ,KAAP,CAAA;AACH,CArQY,CAqQXmG,QArQW,CAAb;;ACnBA,IAAIC,kBAAkB,GAAG,GAAzB,CAAA;AACA,IAAIC,aAAa,GAAG,MAApB,CAAA;AACA,IAAIC,wBAAwB,GAAG,IAA/B,CAAA;AACA,IAAIC,eAAe,GAAG,KAAtB,CAAA;;AACA,SAASC,YAAT,CAAsBC,KAAtB,EAA6B;EACzB,IAAI,CAACA,KAAL,EAAY;AACR,IAAA,OAAO,KAAP,CAAA;AACH,GAAA;;EACD,IAAIA,KAAK,CAACC,WAAV,EAAuB;AACnB,IAAA,OAAO,IAAP,CAAA;AACH,GAAA;;AACD,EAAA,IAAI,OAAQD,KAAK,CAAClL,MAAd,KAA0B,UAA1B,IACG,OAAQkL,KAAK,CAAC1K,OAAd,KAA2B,UADlC,EAC8C;AAC1C,IAAA,OAAO,KAAP,CAAA;AACH,GAAA;;AACD,EAAA,OAAO,IAAP,CAAA;AACH,CAAA;;AACD,SAAS4K,UAAT,CAAoBnhB,KAApB,EAA2BC,MAA3B,EAAmC;AAC/B,EAAA,IAAImhB,OAAO,GAAGlkB,QAAQ,CAACF,aAAT,CAAuB,KAAvB,CAAd,CAAA;AACAokB,EAAAA,OAAO,CAACvmB,KAAR,CAAc+a,OAAd,GAAwB,CACpB,mBADoB,EAEpB,QAAW5V,GAAAA,KAAX,GAAmB,IAFC,EAGpB,SAAA,GAAYC,MAAZ,GAAqB,IAHD,EAIpB,WAJoB,EAKpB,UALoB,EAMpB,gBANoB,CAAA,CAOtB1F,IAPsB,CAOjB,GAPiB,CAAA,GAOV,GAPd,CAAA;AAQA,EAAA,OAAO6mB,OAAP,CAAA;AACH,CAAA;;AACD,IAAIC,aAAa,GAAI,YAAY;EAC7B,SAASA,aAAT,CAAuBpM,IAAvB,EAA6BC,OAA7B,EAAsCnX,IAAtC,EAA4CqM,EAA5C,EAAgD;IAC5C,IAAKd,CAAAA,IAAL,GAAY,QAAZ,CAAA;IACA,IAAKgY,CAAAA,WAAL,GAAmB,EAAnB,CAAA;IACA,IAAKC,CAAAA,gBAAL,GAAwB,EAAxB,CAAA;IACA,IAAKC,CAAAA,OAAL,GAAe,EAAf,CAAA;IACA,IAAKC,CAAAA,YAAL,GAAoB,EAApB,CAAA;IACA,IAAKC,CAAAA,yBAAL,GAAiC,KAAjC,CAAA;IACA,IAAKpY,CAAAA,IAAL,GAAY,QAAZ,CAAA;AACA,IAAA,IAAIqY,YAAY,GAAG,CAAC1M,IAAI,CAAC2M,QAAN,IACZ3M,IAAI,CAAC2M,QAAL,CAAcC,WAAd,OAAgC,QADvC,CAAA;AAEA,IAAA,IAAA,CAAKvM,KAAL,GAAavX,IAAI,GAAG+d,MAAA,CAAY,EAAZ,EAAgB/d,IAAI,IAAI,EAAxB,CAApB,CAAA;AACA,IAAA,IAAA,CAAKic,GAAL,GAAWjc,IAAI,CAAC8d,gBAAL,IAAyBA,gBAApC,CAAA;IACA,IAAKiG,CAAAA,aAAL,GAAqBH,YAArB,CAAA;IACA,IAAK1M,CAAAA,IAAL,GAAYA,IAAZ,CAAA;AACA,IAAA,IAAI8M,SAAS,GAAG9M,IAAI,CAACpa,KAArB,CAAA;;AACA,IAAA,IAAIknB,SAAJ,EAAe;MACXjG,iBAAA,CAAuB7G,IAAvB,CAAA,CAAA;MACAA,IAAI,CAACmE,SAAL,GAAiB,EAAjB,CAAA;AACH,KAAA;;IACD,IAAKlE,CAAAA,OAAL,GAAeA,OAAf,CAAA;IACA,IAAI8M,UAAU,GAAG,IAAA,CAAKV,WAAtB,CAAA;IACA,IAAKC,CAAAA,gBAAL,GAAwB,EAAxB,CAAA;IACA,IAAIU,MAAM,GAAG,IAAA,CAAKT,OAAlB,CAAA;;IACA,IAAI,CAACG,YAAL,EAAmB;MACf,IAAK7K,CAAAA,MAAL,GAAciC,SAAO,CAAC9D,IAAD,EAAO,CAAP,EAAUlX,IAAV,CAArB,CAAA;MACA,IAAKgZ,CAAAA,OAAL,GAAegC,SAAO,CAAC9D,IAAD,EAAO,CAAP,EAAUlX,IAAV,CAAtB,CAAA;AACA,MAAA,IAAIqjB,OAAO,GAAG,IAAKc,CAAAA,QAAL,GAAgBf,UAAU,CAAC,IAAA,CAAKrK,MAAN,EAAc,IAAKC,CAAAA,OAAnB,CAAxC,CAAA;MACA9B,IAAI,CAAClE,WAAL,CAAiBqQ,OAAjB,CAAA,CAAA;AACH,KALD,MAMK;MACD,IAAIe,UAAU,GAAGlN,IAAjB,CAAA;AACA,MAAA,IAAIjV,KAAK,GAAGmiB,UAAU,CAACniB,KAAvB,CAAA;AACA,MAAA,IAAIC,MAAM,GAAGkiB,UAAU,CAACliB,MAAxB,CAAA;;AACA,MAAA,IAAIlC,IAAI,CAACiC,KAAL,IAAc,IAAlB,EAAwB;QACpBA,KAAK,GAAGjC,IAAI,CAACiC,KAAb,CAAA;AACH,OAAA;;AACD,MAAA,IAAIjC,IAAI,CAACkC,MAAL,IAAe,IAAnB,EAAyB;QACrBA,MAAM,GAAGlC,IAAI,CAACkC,MAAd,CAAA;AACH,OAAA;;AACD,MAAA,IAAA,CAAK+Z,GAAL,GAAWjc,IAAI,CAAC8d,gBAAL,IAAyB,CAApC,CAAA;AACAsG,MAAAA,UAAU,CAACniB,KAAX,GAAmBA,KAAK,GAAG,KAAKga,GAAhC,CAAA;AACAmI,MAAAA,UAAU,CAACliB,MAAX,GAAoBA,MAAM,GAAG,KAAK+Z,GAAlC,CAAA;MACA,IAAKlD,CAAAA,MAAL,GAAc9W,KAAd,CAAA;MACA,IAAK+W,CAAAA,OAAL,GAAe9W,MAAf,CAAA;MACA,IAAImiB,SAAS,GAAG,IAAI5H,KAAJ,CAAU2H,UAAV,EAAsB,IAAtB,EAA4B,IAAKnI,CAAAA,GAAjC,CAAhB,CAAA;MACAoI,SAAS,CAAClB,WAAV,GAAwB,IAAxB,CAAA;AACAkB,MAAAA,SAAS,CAAC9F,WAAV,EAAA,CAAA;AACA2F,MAAAA,MAAM,CAACpB,aAAD,CAAN,GAAwBuB,SAAxB,CAAA;MACAA,SAAS,CAAClH,MAAV,GAAmB2F,aAAnB,CAAA;MACAmB,UAAU,CAAC1nB,IAAX,CAAgBumB,aAAhB,CAAA,CAAA;MACA,IAAKqB,CAAAA,QAAL,GAAgBjN,IAAhB,CAAA;AACH,KAAA;AACJ,GAAA;;AACDoM,EAAAA,aAAa,CAAC9qB,SAAd,CAAwByf,OAAxB,GAAkC,YAAY;AAC1C,IAAA,OAAO,QAAP,CAAA;GADJ,CAAA;;AAGAqL,EAAAA,aAAa,CAAC9qB,SAAd,CAAwB8rB,cAAxB,GAAyC,YAAY;AACjD,IAAA,OAAO,KAAKP,aAAZ,CAAA;GADJ,CAAA;;AAGAT,EAAAA,aAAa,CAAC9qB,SAAd,CAAwB0f,eAAxB,GAA0C,YAAY;AAClD,IAAA,OAAO,KAAKiM,QAAZ,CAAA;GADJ,CAAA;;AAGAb,EAAAA,aAAa,CAAC9qB,SAAd,CAAwB2f,qBAAxB,GAAgD,YAAY;AACxD,IAAA,IAAIC,YAAY,GAAG,IAAKF,CAAAA,eAAL,EAAnB,CAAA;;AACA,IAAA,IAAIE,YAAJ,EAAkB;MACd,OAAO;AACHC,QAAAA,UAAU,EAAED,YAAY,CAACC,UAAb,IAA2B,CADpC;AAEHC,QAAAA,SAAS,EAAEF,YAAY,CAACE,SAAb,IAA0B,CAAA;OAFzC,CAAA;AAIH,KAAA;GAPL,CAAA;;AASAgL,EAAAA,aAAa,CAAC9qB,SAAd,CAAwBggB,OAAxB,GAAkC,UAAU+L,QAAV,EAAoB;IAClD,IAAI5L,IAAI,GAAG,IAAKxB,CAAAA,OAAL,CAAayB,cAAb,CAA4B,IAA5B,CAAX,CAAA;IACA,IAAIqG,QAAQ,GAAG,IAAA,CAAKuE,gBAApB,CAAA;IACA,IAAIS,UAAU,GAAG,IAAA,CAAKV,WAAtB,CAAA;AACA,IAAA,IAAA,CAAKiB,SAAL,GAAiBxsB,IAAI,CAACysB,MAAL,EAAjB,CAAA;;IACA,IAAKrL,CAAAA,UAAL,CAAgBT,IAAhB,EAAsBsG,QAAtB,EAAgCsF,QAAhC,EAA0C,IAAA,CAAKC,SAA/C,CAAA,CAAA;;AACA,IAAA,KAAK,IAAItoB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+nB,UAAU,CAACzoB,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;AACxC,MAAA,IAAIwoB,CAAC,GAAGT,UAAU,CAAC/nB,CAAD,CAAlB,CAAA;AACA,MAAA,IAAIgnB,KAAK,GAAG,IAAA,CAAKO,OAAL,CAAaiB,CAAb,CAAZ,CAAA;;MACA,IAAI,CAACxB,KAAK,CAACC,WAAP,IAAsBD,KAAK,CAAC1K,OAAhC,EAAyC;QACrC,IAAIiJ,UAAU,GAAGvlB,CAAC,KAAK,CAAN,GAAU,IAAA,CAAK4c,gBAAf,GAAkC,IAAnD,CAAA;QACAoK,KAAK,CAAC1K,OAAN,CAAciJ,UAAd,CAAA,CAAA;AACH,OAAA;AACJ,KAAA;;AACD,IAAA,IAAI,IAAKlK,CAAAA,KAAL,CAAWoN,YAAf,EAA6B;AACzB,MAAA,IAAA,CAAKnB,gBAAL,GAAwB7K,IAAI,CAAC4I,KAAL,EAAxB,CAAA;AACH,KAAA;;AACD,IAAA,OAAO,IAAP,CAAA;GAjBJ,CAAA;;AAmBA+B,EAAAA,aAAa,CAAC9qB,SAAd,CAAwB4e,YAAxB,GAAuC,YAAY;IAC/C,IAAKwN,CAAAA,eAAL,CAAqB,IAAKzN,CAAAA,OAAL,CAAayB,cAAb,CAA4B,KAA5B,CAArB,CAAA,CAAA;GADJ,CAAA;;AAGA0K,EAAAA,aAAa,CAAC9qB,SAAd,CAAwBosB,eAAxB,GAA0C,UAAUjM,IAAV,EAAgB;AACtD,IAAA,IAAIpT,GAAG,GAAGoT,IAAI,CAACnd,MAAf,CAAA;IACA,IAAIqpB,UAAU,GAAG,IAAA,CAAKC,WAAtB,CAAA;AACAD,IAAAA,UAAU,IAAIA,UAAU,CAACvJ,KAAX,EAAd,CAAA;;IACA,IAAI,CAAC/V,GAAL,EAAU;AACN,MAAA,OAAA;AACH,KAAA;;AACD,IAAA,IAAIX,KAAK,GAAG;AACRmgB,MAAAA,OAAO,EAAE,IADD;MAER7F,SAAS,EAAE,KAAKnG,MAFR;AAGRoG,MAAAA,UAAU,EAAE,IAAKnG,CAAAA,OAAAA;KAHrB,CAAA;AAKA,IAAA,IAAIwF,GAAJ,CAAA;;IACA,KAAK,IAAItiB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,EAAyBrJ,CAAC,EAA1B,EAA8B;AAC1B,MAAA,IAAIuB,EAAE,GAAGkb,IAAI,CAACzc,CAAD,CAAb,CAAA;;MACA,IAAIuB,EAAE,CAACunB,SAAP,EAAkB;QACd,IAAI,CAACH,UAAL,EAAiB;UACbA,UAAU,GAAG,KAAKC,WAAL,GAAmB,KAAKG,QAAL,CAAcpC,kBAAd,CAAhC,CAAA;AACH,SAAA;;QACD,IAAI,CAACrE,GAAL,EAAU;UACNA,GAAG,GAAGqG,UAAU,CAACrG,GAAjB,CAAA;AACAA,UAAAA,GAAG,CAAC+D,IAAJ,EAAA,CAAA;AACH,SAAA;;AACDzU,QAAAA,OAAK,CAAC0Q,GAAD,EAAM/gB,EAAN,EAAUmH,KAAV,EAAiB1I,CAAC,KAAKqJ,GAAG,GAAG,CAA7B,CAAL,CAAA;AACH,OAAA;AACJ,KAAA;;AACD,IAAA,IAAIiZ,GAAJ,EAAS;AACLA,MAAAA,GAAG,CAACkE,OAAJ,EAAA,CAAA;AACH,KAAA;GA5BL,CAAA;;AA8BAY,EAAAA,aAAa,CAAC9qB,SAAd,CAAwB0sB,aAAxB,GAAwC,YAAY;AAChD,IAAA,OAAO,IAAKD,CAAAA,QAAL,CAAcpC,kBAAd,CAAP,CAAA;GADJ,CAAA;;EAGAS,aAAa,CAAC9qB,SAAd,CAAwB2sB,QAAxB,GAAmC,UAAU3G,GAAV,EAAe/gB,EAAf,EAAmB;AAClD2nB,IAAAA,WAAW,CAAC5G,GAAD,EAAM/gB,EAAN,CAAX,CAAA;GADJ,CAAA;;AAGA6lB,EAAAA,aAAa,CAAC9qB,SAAd,CAAwB4gB,UAAxB,GAAqC,UAAUT,IAAV,EAAgBsG,QAAhB,EAA0BsF,QAA1B,EAAoCc,QAApC,EAA8C;AAC/E,IAAA,IAAI,IAAKb,CAAAA,SAAL,KAAmBa,QAAvB,EAAiC;AAC7B,MAAA,OAAA;AACH,KAAA;;IACDd,QAAQ,GAAGA,QAAQ,IAAI,KAAvB,CAAA;;IACA,IAAKe,CAAAA,kBAAL,CAAwB3M,IAAxB,CAAA,CAAA;;IACA,IAAIna,EAAE,GAAG,IAAA,CAAK+mB,YAAL,CAAkB5M,IAAlB,EAAwBsG,QAAxB,EAAkCsF,QAAlC,CAAT;AAAA,QAAsDiB,QAAQ,GAAGhnB,EAAE,CAACgnB,QAApE;AAAA,QAA8EC,iBAAiB,GAAGjnB,EAAE,CAACinB,iBAArG,CAAA;;IACA,IAAI,IAAA,CAAK9B,yBAAT,EAAoC;AAChC,MAAA,IAAA,CAAK+B,kBAAL,EAAA,CAAA;AACH,KAAA;;AACD,IAAA,IAAID,iBAAJ,EAAuB;MACnB,IAAKb,CAAAA,eAAL,CAAqBjM,IAArB,CAAA,CAAA;AACH,KAAA;;IACD,IAAI,CAAC6M,QAAL,EAAe;MACX,IAAIG,MAAM,GAAG,IAAb,CAAA;AACAC,MAAAA,qBAAqB,CAAC,YAAY;QAC9BD,MAAM,CAACvM,UAAP,CAAkBT,IAAlB,EAAwBsG,QAAxB,EAAkCsF,QAAlC,EAA4Cc,QAA5C,CAAA,CAAA;AACH,OAFoB,CAArB,CAAA;AAGH,KALD,MAMK;AACD,MAAA,IAAA,CAAKQ,SAAL,CAAe,UAAU3C,KAAV,EAAiB;AAC5BA,QAAAA,KAAK,CAAC5E,UAAN,IAAoB4E,KAAK,CAAC5E,UAAN,EAApB,CAAA;OADJ,CAAA,CAAA;AAGH,KAAA;GAvBL,CAAA;;AAyBAgF,EAAAA,aAAa,CAAC9qB,SAAd,CAAwBktB,kBAAxB,GAA6C,YAAY;AACrD,IAAA,IAAIlH,GAAG,GAAG,IAAA,CAAKyG,QAAL,CAAcnC,aAAd,EAA6BtE,GAAvC,CAAA;AACA,IAAA,IAAIvc,KAAK,GAAG,IAAKkiB,CAAAA,QAAL,CAAcliB,KAA1B,CAAA;AACA,IAAA,IAAIC,MAAM,GAAG,IAAKiiB,CAAAA,QAAL,CAAcjiB,MAA3B,CAAA;IACAsc,GAAG,CAACwD,SAAJ,CAAc,CAAd,EAAiB,CAAjB,EAAoB/f,KAApB,EAA2BC,MAA3B,CAAA,CAAA;AACA,IAAA,IAAA,CAAK4jB,gBAAL,CAAsB,UAAU5C,KAAV,EAAiB;MACnC,IAAIA,KAAK,CAAClG,OAAV,EAAmB;AACfwB,QAAAA,GAAG,CAACsD,SAAJ,CAAcoB,KAAK,CAACrF,GAApB,EAAyB,CAAzB,EAA4B,CAA5B,EAA+B5b,KAA/B,EAAsCC,MAAtC,CAAA,CAAA;AACH,OAAA;KAHL,CAAA,CAAA;GALJ,CAAA;;EAWAohB,aAAa,CAAC9qB,SAAd,CAAwB+sB,YAAxB,GAAuC,UAAU5M,IAAV,EAAgBsG,QAAhB,EAA0BsF,QAA1B,EAAoC;IACvE,IAAI3H,KAAK,GAAG,IAAZ,CAAA;;IACA,IAAImJ,SAAS,GAAG,EAAhB,CAAA;AACA,IAAA,IAAIpB,YAAY,GAAG,IAAKpN,CAAAA,KAAL,CAAWoN,YAA9B,CAAA;;AACA,IAAA,KAAK,IAAIqB,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAG,IAAKzC,CAAAA,WAAL,CAAiB/nB,MAAvC,EAA+CwqB,EAAE,EAAjD,EAAqD;AACjD,MAAA,IAAI7I,MAAM,GAAG,IAAA,CAAKoG,WAAL,CAAiByC,EAAjB,CAAb,CAAA;AACA,MAAA,IAAI9C,KAAK,GAAG,IAAA,CAAKO,OAAL,CAAatG,MAAb,CAAZ,CAAA;;AACA,MAAA,IAAI+F,KAAK,CAACC,WAAN,IACGD,KAAK,KAAK,IAAA,CAAK4B,WADlB,KAEI5B,KAAK,CAAC7F,OAAN,IAAiBkH,QAFrB,CAAJ,EAEoC;QAChCwB,SAAS,CAACxpB,IAAV,CAAe2mB,KAAf,CAAA,CAAA;AACH,OAAA;AACJ,KAAA;;IACD,IAAIsC,QAAQ,GAAG,IAAf,CAAA;IACA,IAAIC,iBAAiB,GAAG,KAAxB,CAAA;;AACA,IAAA,IAAIQ,OAAO,GAAG,SAAVA,OAAU,CAAUve,CAAV,EAAa;AACvB,MAAA,IAAIwb,KAAK,GAAG6C,SAAS,CAACre,CAAD,CAArB,CAAA;AACA,MAAA,IAAI8W,GAAG,GAAG0E,KAAK,CAAC1E,GAAhB,CAAA;AACA,MAAA,IAAIkD,YAAY,GAAGiD,YAAY,IACxBzB,KAAK,CAACnE,kBAAN,CAAyBpG,IAAzB,EAA+BsG,QAA/B,EAAyCiH,MAAM,CAACnN,MAAhD,EAAwDmN,MAAM,CAAClN,OAA/D,CADP,CAAA;MAEA,IAAImN,KAAK,GAAG5B,QAAQ,GAAGrB,KAAK,CAACzF,YAAT,GAAwByF,KAAK,CAAC1F,WAAlD,CAAA;MACA,IAAI4I,QAAQ,GAAG,CAAC7B,QAAD,IAAarB,KAAK,CAAChG,WAAnB,IAAkCmJ,IAAI,CAACC,GAAtD,CAAA;AACA,MAAA,IAAIC,SAAS,GAAGH,QAAQ,IAAIC,IAAI,CAACC,GAAL,EAA5B,CAAA;AACA,MAAA,IAAI7E,UAAU,GAAGyB,KAAK,CAAC/F,MAAN,KAAiB+I,MAAM,CAAC3C,WAAP,CAAmB,CAAnB,CAAjB,GACX2C,MAAM,CAACpN,gBADI,GACe,IADhC,CAAA;;AAEA,MAAA,IAAIoK,KAAK,CAACzF,YAAN,KAAuByF,KAAK,CAACxF,UAAjC,EAA6C;AACzCwF,QAAAA,KAAK,CAAC5H,KAAN,CAAY,KAAZ,EAAmBmG,UAAnB,EAA+BC,YAA/B,CAAA,CAAA;AACH,OAFD,MAGK,IAAIyE,KAAK,KAAKjD,KAAK,CAACzF,YAApB,EAAkC;AACnC,QAAA,IAAI+I,OAAO,GAAG7N,IAAI,CAACwN,KAAD,CAAlB,CAAA;;QACA,IAAI,CAACK,OAAO,CAACtJ,WAAT,IAAwB,CAACsJ,OAAO,CAACC,QAAjC,IAA6ClC,QAAjD,EAA2D;AACvDrB,UAAAA,KAAK,CAAC5H,KAAN,CAAY,KAAZ,EAAmBmG,UAAnB,EAA+BC,YAA/B,CAAA,CAAA;AACH,SAAA;AACJ,OAAA;;AACD,MAAA,IAAIyE,KAAK,KAAK,CAAC,CAAf,EAAkB;QACdhS,OAAO,CAACC,KAAR,CAAc,0CAAd,CAAA,CAAA;QACA+R,KAAK,GAAGjD,KAAK,CAACzF,YAAd,CAAA;AACH,OAAA;;AACD,MAAA,IAAIvhB,CAAJ,CAAA;;AACA,MAAA,IAAIwqB,OAAO,GAAG,SAAVA,OAAU,CAAUC,WAAV,EAAuB;AACjC,QAAA,IAAI/hB,KAAK,GAAG;AACRmgB,UAAAA,OAAO,EAAE,KADD;AAER6B,UAAAA,UAAU,EAAE,KAFJ;AAGRC,UAAAA,MAAM,EAAE,IAHA;UAIR3H,SAAS,EAAEtC,KAAK,CAAC7D,MAJT;UAKRoG,UAAU,EAAEvC,KAAK,CAAC5D,OAAAA;SALtB,CAAA;;AAOA,QAAA,KAAK9c,CAAC,GAAGiqB,KAAT,EAAgBjqB,CAAC,GAAGgnB,KAAK,CAACxF,UAA1B,EAAsCxhB,CAAC,EAAvC,EAA2C;AACvC,UAAA,IAAIuB,EAAE,GAAGkb,IAAI,CAACzc,CAAD,CAAb,CAAA;;UACA,IAAIuB,EAAE,CAACunB,SAAP,EAAkB;AACdS,YAAAA,iBAAiB,GAAG,IAApB,CAAA;AACH,WAAA;;AACD7I,UAAAA,KAAK,CAACkK,UAAN,CAAiBrpB,EAAjB,EAAqBylB,KAArB,EAA4ByB,YAA5B,EAA0CgC,WAA1C,EAAuD/hB,KAAvD,EAA8D1I,CAAC,KAAKgnB,KAAK,CAACxF,UAAN,GAAmB,CAAvF,CAAA,CAAA;;AACA,UAAA,IAAI0I,QAAJ,EAAc;AACV,YAAA,IAAIW,KAAK,GAAGV,IAAI,CAACC,GAAL,KAAaC,SAAzB,CAAA;;YACA,IAAIQ,KAAK,GAAG,EAAZ,EAAgB;AACZ,cAAA,MAAA;AACH,aAAA;AACJ,WAAA;AACJ,SAAA;;QACD,IAAIniB,KAAK,CAACoiB,eAAV,EAA2B;AACvBxI,UAAAA,GAAG,CAACkE,OAAJ,EAAA,CAAA;AACH,SAAA;OAvBL,CAAA;;AAyBA,MAAA,IAAIhB,YAAJ,EAAkB;AACd,QAAA,IAAIA,YAAY,CAAClmB,MAAb,KAAwB,CAA5B,EAA+B;UAC3BU,CAAC,GAAGgnB,KAAK,CAACxF,UAAV,CAAA;AACH,SAFD,MAGK;AACD,UAAA,IAAIzB,GAAG,GAAGiK,MAAM,CAACjK,GAAjB,CAAA;;AACA,UAAA,KAAK,IAAIniB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4nB,YAAY,CAAClmB,MAAjC,EAAyC,EAAE1B,CAA3C,EAA8C;AAC1C,YAAA,IAAIsB,IAAI,GAAGsmB,YAAY,CAAC5nB,CAAD,CAAvB,CAAA;AACA0kB,YAAAA,GAAG,CAAC+D,IAAJ,EAAA,CAAA;AACA/D,YAAAA,GAAG,CAAC3S,SAAJ,EAAA,CAAA;YACA2S,GAAG,CAACpjB,IAAJ,CAASA,IAAI,CAACnC,CAAL,GAASgjB,GAAlB,EAAuB7gB,IAAI,CAAClC,CAAL,GAAS+iB,GAAhC,EAAqC7gB,IAAI,CAAC6G,KAAL,GAAaga,GAAlD,EAAuD7gB,IAAI,CAAC8G,MAAL,GAAc+Z,GAArE,CAAA,CAAA;AACAuC,YAAAA,GAAG,CAACyI,IAAJ,EAAA,CAAA;YACAP,OAAO,CAACtrB,IAAD,CAAP,CAAA;AACAojB,YAAAA,GAAG,CAACkE,OAAJ,EAAA,CAAA;AACH,WAAA;AACJ,SAAA;AACJ,OAhBD,MAiBK;AACDlE,QAAAA,GAAG,CAAC+D,IAAJ,EAAA,CAAA;QACAmE,OAAO,EAAA,CAAA;AACPlI,QAAAA,GAAG,CAACkE,OAAJ,EAAA,CAAA;AACH,OAAA;;MACDQ,KAAK,CAAC1F,WAAN,GAAoBthB,CAApB,CAAA;;AACA,MAAA,IAAIgnB,KAAK,CAAC1F,WAAN,GAAoB0F,KAAK,CAACxF,UAA9B,EAA0C;AACtC8H,QAAAA,QAAQ,GAAG,KAAX,CAAA;AACH,OAAA;KA1EL,CAAA;;IA4EA,IAAIU,MAAM,GAAG,IAAb,CAAA;;AACA,IAAA,KAAK,IAAIxe,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqe,SAAS,CAACvqB,MAA9B,EAAsCkM,CAAC,EAAvC,EAA2C;MACvCue,OAAO,CAACve,CAAD,CAAP,CAAA;AACH,KAAA;;IACD,IAAImI,GAAG,CAACqX,GAAR,EAAa;MACTnJ,MAAA,CAAU,IAAA,CAAK0F,OAAf,EAAwB,UAAUP,KAAV,EAAiB;QACrC,IAAIA,KAAK,IAAIA,KAAK,CAAC1E,GAAf,IAAsB0E,KAAK,CAAC1E,GAAN,CAAU2I,IAApC,EAA0C;UACtCjE,KAAK,CAAC1E,GAAN,CAAU2I,IAAV,EAAA,CAAA;AACH,SAAA;OAHL,CAAA,CAAA;AAKH,KAAA;;IACD,OAAO;AACH3B,MAAAA,QAAQ,EAAEA,QADP;AAEHC,MAAAA,iBAAiB,EAAEA,iBAAAA;KAFvB,CAAA;GAtGJ,CAAA;;AA2GAnC,EAAAA,aAAa,CAAC9qB,SAAd,CAAwBsuB,UAAxB,GAAqC,UAAUrpB,EAAV,EAAc2pB,YAAd,EAA4BzC,YAA5B,EAA0CgC,WAA1C,EAAuD/hB,KAAvD,EAA8DyiB,MAA9D,EAAsE;AACvG,IAAA,IAAI7I,GAAG,GAAG4I,YAAY,CAAC5I,GAAvB,CAAA;;AACA,IAAA,IAAImG,YAAJ,EAAkB;AACd,MAAA,IAAI2C,SAAS,GAAG7pB,EAAE,CAACujB,YAAH,EAAhB,CAAA;;MACA,IAAI,CAAC2F,WAAD,IAAgBW,SAAS,IAAIA,SAAS,CAACpH,SAAV,CAAoByG,WAApB,CAAjC,EAAmE;QAC/D7Y,OAAK,CAAC0Q,GAAD,EAAM/gB,EAAN,EAAUmH,KAAV,EAAiByiB,MAAjB,CAAL,CAAA;QACA5pB,EAAE,CAAC8pB,gBAAH,CAAoBD,SAApB,CAAA,CAAA;AACH,OAAA;AACJ,KAND,MAOK;MACDxZ,OAAK,CAAC0Q,GAAD,EAAM/gB,EAAN,EAAUmH,KAAV,EAAiByiB,MAAjB,CAAL,CAAA;AACH,KAAA;GAXL,CAAA;;EAaA/D,aAAa,CAAC9qB,SAAd,CAAwBysB,QAAxB,GAAmC,UAAU9H,MAAV,EAAkBH,OAAlB,EAA2B;AAC1D,IAAA,IAAI,KAAK+G,aAAL,IAAsB,CAAC,IAAA,CAAKJ,yBAAhC,EAA2D;AACvDxG,MAAAA,MAAM,GAAG2F,aAAT,CAAA;AACH,KAAA;;AACD,IAAA,IAAII,KAAK,GAAG,IAAA,CAAKO,OAAL,CAAatG,MAAb,CAAZ,CAAA;;IACA,IAAI,CAAC+F,KAAL,EAAY;MACRA,KAAK,GAAG,IAAIzG,KAAJ,CAAU,KAAA,GAAQU,MAAlB,EAA0B,IAA1B,EAAgC,IAAKlB,CAAAA,GAArC,CAAR,CAAA;MACAiH,KAAK,CAAC/F,MAAN,GAAeA,MAAf,CAAA;MACA+F,KAAK,CAACC,WAAN,GAAoB,IAApB,CAAA;;AACA,MAAA,IAAI,IAAKO,CAAAA,YAAL,CAAkBvG,MAAlB,CAAJ,EAA+B;QAC3BY,KAAA,CAAWmF,KAAX,EAAkB,IAAKQ,CAAAA,YAAL,CAAkBvG,MAAlB,CAAlB,EAA6C,IAA7C,CAAA,CAAA;OADJ,MAGK,IAAI,IAAKuG,CAAAA,YAAL,CAAkBvG,MAAM,GAAG4F,wBAA3B,CAAJ,EAA0D;AAC3DhF,QAAAA,KAAA,CAAWmF,KAAX,EAAkB,IAAA,CAAKQ,YAAL,CAAkBvG,MAAM,GAAG4F,wBAA3B,CAAlB,EAAwE,IAAxE,CAAA,CAAA;AACH,OAAA;;AACD,MAAA,IAAI/F,OAAJ,EAAa;QACTkG,KAAK,CAAClG,OAAN,GAAgBA,OAAhB,CAAA;AACH,OAAA;;AACD,MAAA,IAAA,CAAKwK,WAAL,CAAiBrK,MAAjB,EAAyB+F,KAAzB,CAAA,CAAA;AACAA,MAAAA,KAAK,CAAC3E,WAAN,EAAA,CAAA;AACH,KAAA;;AACD,IAAA,OAAO2E,KAAP,CAAA;GArBJ,CAAA;;EAuBAI,aAAa,CAAC9qB,SAAd,CAAwBgvB,WAAxB,GAAsC,UAAUrK,MAAV,EAAkB+F,KAAlB,EAAyB;IAC3D,IAAIuE,SAAS,GAAG,IAAA,CAAKhE,OAArB,CAAA;IACA,IAAIQ,UAAU,GAAG,IAAA,CAAKV,WAAtB,CAAA;AACA,IAAA,IAAIhe,GAAG,GAAG0e,UAAU,CAACzoB,MAArB,CAAA;IACA,IAAI6nB,OAAO,GAAG,IAAA,CAAKc,QAAnB,CAAA;IACA,IAAIuD,SAAS,GAAG,IAAhB,CAAA;IACA,IAAIxrB,CAAC,GAAG,CAAC,CAAT,CAAA;;AACA,IAAA,IAAIurB,SAAS,CAACtK,MAAD,CAAb,EAAuB;AACnB,MAAA,IAAIvN,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACvCiO,QAAAA,QAAA,CAAc,SAAYZ,GAAAA,MAAZ,GAAqB,wBAAnC,CAAA,CAAA;AACH,OAAA;;AACD,MAAA,OAAA;AACH,KAAA;;AACD,IAAA,IAAI,CAAC8F,YAAY,CAACC,KAAD,CAAjB,EAA0B;AACtB,MAAA,IAAItT,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACvCiO,QAAAA,QAAA,CAAc,kBAAqBZ,GAAAA,MAArB,GAA8B,eAA5C,CAAA,CAAA;AACH,OAAA;;AACD,MAAA,OAAA;AACH,KAAA;;IACD,IAAI5X,GAAG,GAAG,CAAN,IAAW4X,MAAM,GAAG8G,UAAU,CAAC,CAAD,CAAlC,EAAuC;AACnC,MAAA,KAAK/nB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGqJ,GAAG,GAAG,CAAtB,EAAyBrJ,CAAC,EAA1B,EAA8B;AAC1B,QAAA,IAAI+nB,UAAU,CAAC/nB,CAAD,CAAV,GAAgBihB,MAAhB,IACG8G,UAAU,CAAC/nB,CAAC,GAAG,CAAL,CAAV,GAAoBihB,MAD3B,EACmC;AAC/B,UAAA,MAAA;AACH,SAAA;AACJ,OAAA;;AACDuK,MAAAA,SAAS,GAAGD,SAAS,CAACxD,UAAU,CAAC/nB,CAAD,CAAX,CAArB,CAAA;AACH,KAAA;;IACD+nB,UAAU,CAAC9C,MAAX,CAAkBjlB,CAAC,GAAG,CAAtB,EAAyB,CAAzB,EAA4BihB,MAA5B,CAAA,CAAA;AACAsK,IAAAA,SAAS,CAACtK,MAAD,CAAT,GAAoB+F,KAApB,CAAA;;AACA,IAAA,IAAI,CAACA,KAAK,CAAClG,OAAX,EAAoB;AAChB,MAAA,IAAI0K,SAAJ,EAAe;AACX,QAAA,IAAIC,OAAO,GAAGD,SAAS,CAAC7J,GAAxB,CAAA;;QACA,IAAI8J,OAAO,CAAC1U,WAAZ,EAAyB;UACrBoQ,OAAO,CAAC3Q,YAAR,CAAqBwQ,KAAK,CAACrF,GAA3B,EAAgC8J,OAAO,CAAC1U,WAAxC,CAAA,CAAA;AACH,SAFD,MAGK;AACDoQ,UAAAA,OAAO,CAACrQ,WAAR,CAAoBkQ,KAAK,CAACrF,GAA1B,CAAA,CAAA;AACH,SAAA;AACJ,OARD,MASK;QACD,IAAIwF,OAAO,CAACuE,UAAZ,EAAwB;UACpBvE,OAAO,CAAC3Q,YAAR,CAAqBwQ,KAAK,CAACrF,GAA3B,EAAgCwF,OAAO,CAACuE,UAAxC,CAAA,CAAA;AACH,SAFD,MAGK;AACDvE,UAAAA,OAAO,CAACrQ,WAAR,CAAoBkQ,KAAK,CAACrF,GAA1B,CAAA,CAAA;AACH,SAAA;AACJ,OAAA;AACJ,KAAA;;IACDqF,KAAK,CAACZ,SAAN,GAAkB,IAAlB,CAAA;GAjDJ,CAAA;;EAmDAgB,aAAa,CAAC9qB,SAAd,CAAwBqtB,SAAxB,GAAoC,UAAUgC,EAAV,EAAcC,OAAd,EAAuB;IACvD,IAAI7D,UAAU,GAAG,IAAA,CAAKV,WAAtB,CAAA;;AACA,IAAA,KAAK,IAAIrnB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+nB,UAAU,CAACzoB,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;AACxC,MAAA,IAAIwoB,CAAC,GAAGT,UAAU,CAAC/nB,CAAD,CAAlB,CAAA;MACA2rB,EAAE,CAAChL,IAAH,CAAQiL,OAAR,EAAiB,IAAKrE,CAAAA,OAAL,CAAaiB,CAAb,CAAjB,EAAkCA,CAAlC,CAAA,CAAA;AACH,KAAA;GALL,CAAA;;EAOApB,aAAa,CAAC9qB,SAAd,CAAwBstB,gBAAxB,GAA2C,UAAU+B,EAAV,EAAcC,OAAd,EAAuB;IAC9D,IAAI7D,UAAU,GAAG,IAAA,CAAKV,WAAtB,CAAA;;AACA,IAAA,KAAK,IAAIrnB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+nB,UAAU,CAACzoB,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;AACxC,MAAA,IAAIwoB,CAAC,GAAGT,UAAU,CAAC/nB,CAAD,CAAlB,CAAA;AACA,MAAA,IAAIgnB,KAAK,GAAG,IAAA,CAAKO,OAAL,CAAaiB,CAAb,CAAZ,CAAA;;MACA,IAAIxB,KAAK,CAACC,WAAV,EAAuB;AACnB0E,QAAAA,EAAE,CAAChL,IAAH,CAAQiL,OAAR,EAAiB5E,KAAjB,EAAwBwB,CAAxB,CAAA,CAAA;AACH,OAAA;AACJ,KAAA;GARL,CAAA;;EAUApB,aAAa,CAAC9qB,SAAd,CAAwBuvB,cAAxB,GAAyC,UAAUF,EAAV,EAAcC,OAAd,EAAuB;IAC5D,IAAI7D,UAAU,GAAG,IAAA,CAAKV,WAAtB,CAAA;;AACA,IAAA,KAAK,IAAIrnB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+nB,UAAU,CAACzoB,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;AACxC,MAAA,IAAIwoB,CAAC,GAAGT,UAAU,CAAC/nB,CAAD,CAAlB,CAAA;AACA,MAAA,IAAIgnB,KAAK,GAAG,IAAA,CAAKO,OAAL,CAAaiB,CAAb,CAAZ,CAAA;;AACA,MAAA,IAAI,CAACxB,KAAK,CAACC,WAAX,EAAwB;AACpB0E,QAAAA,EAAE,CAAChL,IAAH,CAAQiL,OAAR,EAAiB5E,KAAjB,EAAwBwB,CAAxB,CAAA,CAAA;AACH,OAAA;AACJ,KAAA;GARL,CAAA;;AAUApB,EAAAA,aAAa,CAAC9qB,SAAd,CAAwBwvB,SAAxB,GAAoC,YAAY;AAC5C,IAAA,OAAO,KAAKvE,OAAZ,CAAA;GADJ,CAAA;;AAGAH,EAAAA,aAAa,CAAC9qB,SAAd,CAAwB8sB,kBAAxB,GAA6C,UAAU3M,IAAV,EAAgB;AACzD,IAAA,IAAA,CAAKmN,gBAAL,CAAsB,UAAU5C,KAAV,EAAiBwB,CAAjB,EAAoB;AACtCxB,MAAAA,KAAK,CAAC7F,OAAN,GAAgB6F,KAAK,CAAC3F,MAAN,GAAe,KAA/B,CAAA;KADJ,CAAA,CAAA;;IAGA,SAAS0K,eAAT,CAAyBC,GAAzB,EAA8B;AAC1B,MAAA,IAAIR,SAAJ,EAAe;AACX,QAAA,IAAIA,SAAS,CAAChK,UAAV,KAAyBwK,GAA7B,EAAkC;UAC9BR,SAAS,CAACrK,OAAV,GAAoB,IAApB,CAAA;AACH,SAAA;;QACDqK,SAAS,CAAChK,UAAV,GAAuBwK,GAAvB,CAAA;AACH,OAAA;AACJ,KAAA;;IACD,IAAI,IAAA,CAAKnE,aAAT,EAAwB;AACpB,MAAA,KAAK,IAAIpJ,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAGhC,IAAI,CAACnd,MAA7B,EAAqCmf,GAAG,EAAxC,EAA4C;AACxC,QAAA,IAAIld,EAAE,GAAGkb,IAAI,CAACgC,GAAD,CAAb,CAAA;;AACA,QAAA,IAAIld,EAAE,CAAC0f,MAAH,KAAcxE,IAAI,CAACgC,GAAG,GAAG,CAAP,CAAJ,CAAcwC,MAA5B,IAAsC1f,EAAE,CAACyf,WAA7C,EAA0D;UACtD,IAAKyG,CAAAA,yBAAL,GAAiC,IAAjC,CAAA;AACA,UAAA,MAAA;AACH,SAAA;AACJ,OAAA;AACJ,KAAA;;IACD,IAAI+D,SAAS,GAAG,IAAhB,CAAA;IACA,IAAIS,qBAAqB,GAAG,CAA5B,CAAA;AACA,IAAA,IAAIC,UAAJ,CAAA;AACA,IAAA,IAAIlsB,CAAJ,CAAA;;AACA,IAAA,KAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGyc,IAAI,CAACnd,MAArB,EAA6BU,CAAC,EAA9B,EAAkC;AAC9B,MAAA,IAAIuB,EAAE,GAAGkb,IAAI,CAACzc,CAAD,CAAb,CAAA;AACA,MAAA,IAAIihB,MAAM,GAAG1f,EAAE,CAAC0f,MAAhB,CAAA;MACA,IAAI+F,KAAK,GAAG,KAAK,CAAjB,CAAA;;MACA,IAAIkF,UAAU,KAAKjL,MAAnB,EAA2B;AACvBiL,QAAAA,UAAU,GAAGjL,MAAb,CAAA;AACAgL,QAAAA,qBAAqB,GAAG,CAAxB,CAAA;AACH,OAAA;;MACD,IAAI1qB,EAAE,CAACyf,WAAP,EAAoB;QAChBgG,KAAK,GAAG,IAAK+B,CAAAA,QAAL,CAAc9H,MAAM,GAAG6F,eAAvB,EAAwC,IAAKW,CAAAA,yBAA7C,CAAR,CAAA;QACAT,KAAK,CAAChG,WAAN,GAAoB,IAApB,CAAA;AACAiL,QAAAA,qBAAqB,GAAG,CAAxB,CAAA;AACH,OAJD,MAKK;AACDjF,QAAAA,KAAK,GAAG,IAAK+B,CAAAA,QAAL,CAAc9H,MAAM,IAAIgL,qBAAqB,GAAG,CAAxB,GAA4BpF,wBAA5B,GAAuD,CAA3D,CAApB,EAAmF,IAAA,CAAKY,yBAAxF,CAAR,CAAA;AACH,OAAA;;AACD,MAAA,IAAI,CAACT,KAAK,CAACC,WAAX,EAAwB;QACpBpF,QAAA,CAAc,SAAYZ,GAAAA,MAAZ,GAAqB,iCAArB,GAAyD+F,KAAK,CAAC7W,EAA7E,CAAA,CAAA;AACH,OAAA;;MACD,IAAI6W,KAAK,KAAKwE,SAAd,EAAyB;QACrBxE,KAAK,CAAC3F,MAAN,GAAe,IAAf,CAAA;;AACA,QAAA,IAAI2F,KAAK,CAACzF,YAAN,KAAuBvhB,CAA3B,EAA8B;UAC1BgnB,KAAK,CAAC7F,OAAN,GAAgB,IAAhB,CAAA;AACH,SAAA;;QACD6F,KAAK,CAACzF,YAAN,GAAqBvhB,CAArB,CAAA;;AACA,QAAA,IAAI,CAACgnB,KAAK,CAAChG,WAAX,EAAwB;UACpBgG,KAAK,CAAC1F,WAAN,GAAoBthB,CAApB,CAAA;AACH,SAFD,MAGK;AACDgnB,UAAAA,KAAK,CAAC1F,WAAN,GAAoB,CAAC,CAArB,CAAA;AACH,SAAA;;QACDyK,eAAe,CAAC/rB,CAAD,CAAf,CAAA;AACAwrB,QAAAA,SAAS,GAAGxE,KAAZ,CAAA;AACH,OAAA;;MACD,IAAKzlB,EAAE,CAAC4f,OAAH,GAAawD,UAAd,IAA6B,CAACpjB,EAAE,CAACunB,SAArC,EAAgD;QAC5C9B,KAAK,CAAC7F,OAAN,GAAgB,IAAhB,CAAA;;QACA,IAAI6F,KAAK,CAAChG,WAAN,IAAqBgG,KAAK,CAAC1F,WAAN,GAAoB,CAA7C,EAAgD;UAC5C0F,KAAK,CAAC1F,WAAN,GAAoBthB,CAApB,CAAA;AACH,SAAA;AACJ,OAAA;AACJ,KAAA;;IACD+rB,eAAe,CAAC/rB,CAAD,CAAf,CAAA;AACA,IAAA,IAAA,CAAK4pB,gBAAL,CAAsB,UAAU5C,KAAV,EAAiBwB,CAAjB,EAAoB;MACtC,IAAI,CAACxB,KAAK,CAAC3F,MAAP,IAAiB2F,KAAK,CAAC7E,eAAN,EAA0B,GAAA,CAA/C,EAAkD;QAC9C6E,KAAK,CAAC7F,OAAN,GAAgB,IAAhB,CAAA;QACA6F,KAAK,CAACzF,YAAN,GAAqByF,KAAK,CAACxF,UAAN,GAAmBwF,KAAK,CAAC1F,WAAN,GAAoB,CAA5D,CAAA;AACH,OAAA;;MACD,IAAI0F,KAAK,CAAC7F,OAAN,IAAiB6F,KAAK,CAAC1F,WAAN,GAAoB,CAAzC,EAA4C;AACxC0F,QAAAA,KAAK,CAAC1F,WAAN,GAAoB0F,KAAK,CAACzF,YAA1B,CAAA;AACH,OAAA;KAPL,CAAA,CAAA;GAnEJ,CAAA;;AA6EA6F,EAAAA,aAAa,CAAC9qB,SAAd,CAAwB8iB,KAAxB,GAAgC,YAAY;IACxC,IAAKwK,CAAAA,gBAAL,CAAsB,IAAA,CAAKuC,WAA3B,CAAA,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;GAFJ,CAAA;;AAIA/E,EAAAA,aAAa,CAAC9qB,SAAd,CAAwB6vB,WAAxB,GAAsC,UAAUnF,KAAV,EAAiB;AACnDA,IAAAA,KAAK,CAAC5H,KAAN,EAAA,CAAA;GADJ,CAAA;;AAGAgI,EAAAA,aAAa,CAAC9qB,SAAd,CAAwBihB,kBAAxB,GAA6C,UAAUC,eAAV,EAA2B;IACpE,IAAKZ,CAAAA,gBAAL,GAAwBY,eAAxB,CAAA;IACAqE,MAAA,CAAU,IAAA,CAAK0F,OAAf,EAAwB,UAAUP,KAAV,EAAiB;AACrCA,MAAAA,KAAK,CAACxE,YAAN,EAAA,CAAA;KADJ,CAAA,CAAA;GAFJ,CAAA;;EAMA4E,aAAa,CAAC9qB,SAAd,CAAwB8e,WAAxB,GAAsC,UAAU6F,MAAV,EAAkBF,MAAlB,EAA0B;AAC5D,IAAA,IAAIA,MAAJ,EAAY;MACR,IAAIqL,WAAW,GAAG,IAAA,CAAK5E,YAAvB,CAAA;;AACA,MAAA,IAAI,CAAC4E,WAAW,CAACnL,MAAD,CAAhB,EAA0B;AACtBmL,QAAAA,WAAW,CAACnL,MAAD,CAAX,GAAsBF,MAAtB,CAAA;AACH,OAFD,MAGK;QACDc,KAAA,CAAWuK,WAAW,CAACnL,MAAD,CAAtB,EAAgCF,MAAhC,EAAwC,IAAxC,CAAA,CAAA;AACH,OAAA;;AACD,MAAA,KAAK,IAAI/gB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAKqnB,CAAAA,WAAL,CAAiB/nB,MAArC,EAA6CU,CAAC,EAA9C,EAAkD;AAC9C,QAAA,IAAIqsB,OAAO,GAAG,IAAA,CAAKhF,WAAL,CAAiBrnB,CAAjB,CAAd,CAAA;;QACA,IAAIqsB,OAAO,KAAKpL,MAAZ,IAAsBoL,OAAO,KAAKpL,MAAM,GAAG4F,wBAA/C,EAAyE;AACrE,UAAA,IAAIG,KAAK,GAAG,IAAA,CAAKO,OAAL,CAAa8E,OAAb,CAAZ,CAAA;UACAxK,KAAA,CAAWmF,KAAX,EAAkBoF,WAAW,CAACnL,MAAD,CAA7B,EAAuC,IAAvC,CAAA,CAAA;AACH,SAAA;AACJ,OAAA;AACJ,KAAA;GAhBL,CAAA;;AAkBAmG,EAAAA,aAAa,CAAC9qB,SAAd,CAAwBgwB,QAAxB,GAAmC,UAAUrL,MAAV,EAAkB;IACjD,IAAI+G,MAAM,GAAG,IAAA,CAAKT,OAAlB,CAAA;IACA,IAAIQ,UAAU,GAAG,IAAA,CAAKV,WAAtB,CAAA;AACA,IAAA,IAAIL,KAAK,GAAGgB,MAAM,CAAC/G,MAAD,CAAlB,CAAA;;IACA,IAAI,CAAC+F,KAAL,EAAY;AACR,MAAA,OAAA;AACH,KAAA;;IACDA,KAAK,CAACrF,GAAN,CAAUlL,UAAV,CAAqBG,WAArB,CAAiCoQ,KAAK,CAACrF,GAAvC,CAAA,CAAA;IACA,OAAOqG,MAAM,CAAC/G,MAAD,CAAb,CAAA;AACA8G,IAAAA,UAAU,CAAC9C,MAAX,CAAkBpD,OAAA,CAAakG,UAAb,EAAyB9G,MAAzB,CAAlB,EAAoD,CAApD,CAAA,CAAA;GATJ,CAAA;;EAWAmG,aAAa,CAAC9qB,SAAd,CAAwBwf,MAAxB,GAAiC,UAAU/V,KAAV,EAAiBC,MAAjB,EAAyB;AACtD,IAAA,IAAI,CAAC,IAAA,CAAKiiB,QAAL,CAAcrnB,KAAnB,EAA0B;AACtB,MAAA,IAAImF,KAAK,IAAI,IAAT,IAAiBC,MAAM,IAAI,IAA/B,EAAqC;AACjC,QAAA,OAAA;AACH,OAAA;;MACD,IAAK6W,CAAAA,MAAL,GAAc9W,KAAd,CAAA;MACA,IAAK+W,CAAAA,OAAL,GAAe9W,MAAf,CAAA;MACA,IAAK+iB,CAAAA,QAAL,CAAcnC,aAAd,CAAA,CAA6B9K,MAA7B,CAAoC/V,KAApC,EAA2CC,MAA3C,CAAA,CAAA;AACH,KAPD,MAQK;MACD,IAAImhB,OAAO,GAAG,IAAA,CAAKc,QAAnB,CAAA;AACAd,MAAAA,OAAO,CAACvmB,KAAR,CAAcie,OAAd,GAAwB,MAAxB,CAAA;MACA,IAAI/a,IAAI,GAAG,IAAA,CAAKuX,KAAhB,CAAA;MACA,IAAIL,IAAI,GAAG,IAAA,CAAKA,IAAhB,CAAA;AACAjV,MAAAA,KAAK,IAAI,IAAT,KAAkBjC,IAAI,CAACiC,KAAL,GAAaA,KAA/B,CAAA,CAAA;AACAC,MAAAA,MAAM,IAAI,IAAV,KAAmBlC,IAAI,CAACkC,MAAL,GAAcA,MAAjC,CAAA,CAAA;MACAD,KAAK,GAAG+Y,SAAO,CAAC9D,IAAD,EAAO,CAAP,EAAUlX,IAAV,CAAf,CAAA;MACAkC,MAAM,GAAG8Y,SAAO,CAAC9D,IAAD,EAAO,CAAP,EAAUlX,IAAV,CAAhB,CAAA;AACAqjB,MAAAA,OAAO,CAACvmB,KAAR,CAAcie,OAAd,GAAwB,EAAxB,CAAA;;MACA,IAAI,IAAA,CAAKhC,MAAL,KAAgB9W,KAAhB,IAAyBC,MAAM,KAAK,IAAK8W,CAAAA,OAA7C,EAAsD;AAClDqK,QAAAA,OAAO,CAACvmB,KAAR,CAAcmF,KAAd,GAAsBA,KAAK,GAAG,IAA9B,CAAA;AACAohB,QAAAA,OAAO,CAACvmB,KAAR,CAAcoF,MAAd,GAAuBA,MAAM,GAAG,IAAhC,CAAA;;AACA,QAAA,KAAK,IAAImK,EAAT,IAAe,IAAA,CAAKoX,OAApB,EAA6B;AACzB,UAAA,IAAI,KAAKA,OAAL,CAAagF,cAAb,CAA4Bpc,EAA5B,CAAJ,EAAqC;YACjC,IAAKoX,CAAAA,OAAL,CAAapX,EAAb,CAAA,CAAiB2L,MAAjB,CAAwB/V,KAAxB,EAA+BC,MAA/B,CAAA,CAAA;AACH,WAAA;AACJ,SAAA;;QACD,IAAKsW,CAAAA,OAAL,CAAa,IAAb,CAAA,CAAA;AACH,OAAA;;MACD,IAAKO,CAAAA,MAAL,GAAc9W,KAAd,CAAA;MACA,IAAK+W,CAAAA,OAAL,GAAe9W,MAAf,CAAA;AACH,KAAA;;AACD,IAAA,OAAO,IAAP,CAAA;GAhCJ,CAAA;;AAkCAohB,EAAAA,aAAa,CAAC9qB,SAAd,CAAwBkwB,UAAxB,GAAqC,UAAUvL,MAAV,EAAkB;AACnD,IAAA,IAAI+F,KAAK,GAAG,IAAA,CAAKO,OAAL,CAAatG,MAAb,CAAZ,CAAA;;AACA,IAAA,IAAI+F,KAAJ,EAAW;AACPA,MAAAA,KAAK,CAAC5H,KAAN,EAAA,CAAA;AACH,KAAA;GAJL,CAAA;;AAMAgI,EAAAA,aAAa,CAAC9qB,SAAd,CAAwB4iB,OAAxB,GAAkC,YAAY;AAC1C,IAAA,IAAA,CAAKlE,IAAL,CAAUmE,SAAV,GAAsB,EAAtB,CAAA;IACA,IAAKnE,CAAAA,IAAL,GACI,IAAA,CAAKC,OAAL,GACI,IAAKgN,CAAAA,QAAL,GACI,IAAA,CAAKV,OAAL,GAAe,IAH3B,CAAA;GAFJ,CAAA;;AAOAH,EAAAA,aAAa,CAAC9qB,SAAd,CAAwBmwB,iBAAxB,GAA4C,UAAU3oB,IAAV,EAAgB;IACxDA,IAAI,GAAGA,IAAI,IAAI,EAAf,CAAA;;AACA,IAAA,IAAI,KAAK+jB,aAAL,IAAsB,CAAC,IAAA,CAAK2B,kBAAhC,EAAoD;AAChD,MAAA,OAAO,IAAKjC,CAAAA,OAAL,CAAaX,aAAb,EAA4BjF,GAAnC,CAAA;AACH,KAAA;;AACD,IAAA,IAAI+K,UAAU,GAAG,IAAInM,KAAJ,CAAU,OAAV,EAAmB,IAAnB,EAAyBzc,IAAI,CAAC6oB,UAAL,IAAmB,IAAA,CAAK5M,GAAjD,CAAjB,CAAA;AACA2M,IAAAA,UAAU,CAACrK,WAAX,EAAA,CAAA;IACAqK,UAAU,CAACtN,KAAX,CAAiB,KAAjB,EAAwBtb,IAAI,CAAC0Z,eAAL,IAAwB,IAAA,CAAKZ,gBAArD,CAAA,CAAA;AACA,IAAA,IAAI0F,GAAG,GAAGoK,UAAU,CAACpK,GAArB,CAAA;;AACA,IAAA,IAAIxe,IAAI,CAAC6oB,UAAL,IAAmB,IAAA,CAAK5M,GAA5B,EAAiC;AAC7B,MAAA,IAAA,CAAKzD,OAAL,EAAA,CAAA;AACA,MAAA,IAAIsQ,OAAO,GAAGF,UAAU,CAAC/K,GAAX,CAAe5b,KAA7B,CAAA;AACA,MAAA,IAAI8mB,QAAQ,GAAGH,UAAU,CAAC/K,GAAX,CAAe3b,MAA9B,CAAA;AACA,MAAA,IAAA,CAAK2jB,SAAL,CAAe,UAAU3C,KAAV,EAAiB;QAC5B,IAAIA,KAAK,CAACC,WAAV,EAAuB;AACnB3E,UAAAA,GAAG,CAACsD,SAAJ,CAAcoB,KAAK,CAACrF,GAApB,EAAyB,CAAzB,EAA4B,CAA5B,EAA+BiL,OAA/B,EAAwCC,QAAxC,CAAA,CAAA;AACH,SAFD,MAGK,IAAI7F,KAAK,CAAC8F,cAAV,EAA0B;AAC3BxK,UAAAA,GAAG,CAAC+D,IAAJ,EAAA,CAAA;UACAW,KAAK,CAAC8F,cAAN,CAAqBxK,GAArB,CAAA,CAAA;AACAA,UAAAA,GAAG,CAACkE,OAAJ,EAAA,CAAA;AACH,SAAA;OARL,CAAA,CAAA;AAUH,KAdD,MAeK;AACD,MAAA,IAAI9d,KAAK,GAAG;AACRmgB,QAAAA,OAAO,EAAE,KADD;QAER7F,SAAS,EAAE,KAAKnG,MAFR;AAGRoG,QAAAA,UAAU,EAAE,IAAKnG,CAAAA,OAAAA;OAHrB,CAAA;MAKA,IAAIgG,WAAW,GAAG,IAAK7H,CAAAA,OAAL,CAAayB,cAAb,CAA4B,IAA5B,CAAlB,CAAA;;AACA,MAAA,KAAK,IAAI1c,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGyZ,WAAW,CAACxjB,MAAlC,EAA0CU,CAAC,GAAGqJ,GAA9C,EAAmDrJ,CAAC,EAApD,EAAwD;AACpD,QAAA,IAAIuB,EAAE,GAAGuhB,WAAW,CAAC9iB,CAAD,CAApB,CAAA;AACA4R,QAAAA,OAAK,CAAC0Q,GAAD,EAAM/gB,EAAN,EAAUmH,KAAV,EAAiB1I,CAAC,KAAKqJ,GAAG,GAAG,CAA7B,CAAL,CAAA;AACH,OAAA;AACJ,KAAA;;IACD,OAAOqjB,UAAU,CAAC/K,GAAlB,CAAA;GApCJ,CAAA;;AAsCAyF,EAAAA,aAAa,CAAC9qB,SAAd,CAAwB0iB,QAAxB,GAAmC,YAAY;AAC3C,IAAA,OAAO,KAAKnC,MAAZ,CAAA;GADJ,CAAA;;AAGAuK,EAAAA,aAAa,CAAC9qB,SAAd,CAAwB2iB,SAAxB,GAAoC,YAAY;AAC5C,IAAA,OAAO,KAAKnC,OAAZ,CAAA;GADJ,CAAA;;AAGA,EAAA,OAAOsK,aAAP,CAAA;AACH,CAzlBoB,EAArB,CAAA;AA2lBA;;AC/nBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BO,SAAS1H,SAAT,CAAiBC,SAAjB,EAA4B;AACjCA,EAAAA,SAAS,CAACC,eAAV,CAA0B,QAA1B,EAAoCwH,aAApC,CAAA,CAAA;AACD;;AC7CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,IAAI2F,eAAe;AACnB;AACA,UAAUvM,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACsM,eAAD,EAAkBvM,MAAlB,CAAT,CAAA;;AAEA,EAAA,SAASuM,eAAT,GAA2B;AACzB,IAAA,IAAIrM,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa0d,eAAe,CAAC1d,IAA7B,CAAA;IACAqR,KAAK,CAACuM,eAAN,GAAwB,IAAxB,CAAA;AACA,IAAA,OAAOvM,KAAP,CAAA;AACD,GAAA;;AAEDqM,EAAAA,eAAe,CAACzwB,SAAhB,CAA0B4wB,cAA1B,GAA2C,UAAUC,MAAV,EAAkB;AAC3D,IAAA,IAAIzZ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,MAAA,IAAIwZ,QAAQ,GAAGD,MAAM,CAACE,gBAAtB,CAAA;;AAEA,MAAA,IAAID,QAAQ,KAAK,OAAb,IAAwBA,QAAQ,KAAK,aAAzC,EAAwD;AACtD,QAAA,MAAM,IAAIE,KAAJ,CAAU,+DAAV,CAAN,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAOC,gBAAgB,CAAC,IAAD,EAAO,IAAP,EAAa;AAClCC,MAAAA,kBAAkB,EAAE,IAAA;AADc,KAAb,CAAvB,CAAA;GATF,CAAA;;AAcAT,EAAAA,eAAe,CAACzwB,SAAhB,CAA0BmxB,aAA1B,GAA0C,UAAUC,GAAV,EAAe;AACvD,IAAA,IAAIC,KAAK,GAAG,IAAIC,OAAJ,EAAZ,CAAA;IACA,IAAIC,IAAI,GAAGC,cAAY,CAAC,MAAD,EAAS,CAAT,EAAYJ,GAAG,CAACK,UAAJ,GAAiB,CAA7B,EAAgCL,GAAG,CAACM,SAApC,EAA+C,CAA/C,EAAkDN,GAAG,CAACO,SAAJ,CAAcltB,MAAhE,EAAwE,KAAxE,CAAvB,CAAA;IACA4sB,KAAK,CAACO,GAAN,CAAUL,IAAV,CAAA,CAAA;AACAA,IAAAA,IAAI,CAACM,QAAL,CAAcT,GAAG,CAACO,SAAlB,CAAA,CAAA;IACA,IAAIG,UAAU,GAAG,IAAKC,CAAAA,OAAL,GAAeC,SAAf,CAAyB,QAAzB,CAAjB,CAAA;IACA,IAAIC,YAAY,GAAG,IAAKF,CAAAA,OAAL,GAAeC,SAAf,CAAyB,cAAzB,CAAnB,CAAA;IACA,IAAIE,UAAU,GAAGJ,UAAU,KAAK,MAAf,GAAwB,QAAxB,GAAmCA,UAApD,CAPuD;;AASvD,IAAA,IAAIK,IAAI,GAAGf,GAAG,CAACK,UAAJ,GAAiB,GAA5B,CAAA;AACA,IAAA,IAAIW,MAAM,GAAGZ,cAAY,CAACU,UAAD,EAAa,CAACd,GAAG,CAACM,SAAJ,GAAgBS,IAAjB,IAAyB,CAAtC,EAAyC,CAACf,GAAG,CAACK,UAAJ,GAAiBU,IAAlB,IAA0B,CAAnE,EAAsEA,IAAtE,EAA4EA,IAA5E,EAAkFf,GAAG,CAACiB,SAAJ,CAAc9tB,IAAhG,CAAzB,CAAA;IACA8sB,KAAK,CAACO,GAAN,CAAUQ,MAAV,CAAA,CAAA;AACAA,IAAAA,MAAM,CAACP,QAAP,CAAgBT,GAAG,CAACiB,SAApB,CAAA,CAAA;AACA,IAAA,IAAIC,YAAY,GAAGlB,GAAG,CAACmB,UAAJ,KAAmB,SAAnB,GAA+BN,YAA/B,GAA8Cb,GAAG,CAACmB,UAAJ,IAAkB,CAAnF,CAAA;IACAH,MAAM,CAACI,QAAP,GAAkBF,YAAY,GAAG9yB,IAAI,CAACI,EAApB,GAAyB,GAA3C,CAAA;AACAwyB,IAAAA,MAAM,CAACK,SAAP,CAAiB,CAACrB,GAAG,CAACM,SAAJ,GAAgB,CAAjB,EAAoBN,GAAG,CAACK,UAAJ,GAAiB,CAArC,CAAjB,CAAA,CAAA;;IAEA,IAAIS,UAAU,CAAChlB,OAAX,CAAmB,OAAnB,CAA8B,GAAA,CAAC,CAAnC,EAAsC;MACpCklB,MAAM,CAAC9tB,KAAP,CAAaG,MAAb,GAAsB2tB,MAAM,CAAC9tB,KAAP,CAAaC,IAAnC,CAAA;AACA6tB,MAAAA,MAAM,CAAC9tB,KAAP,CAAaC,IAAb,GAAoB,MAApB,CAAA;AACA6tB,MAAAA,MAAM,CAAC9tB,KAAP,CAAasB,SAAb,GAAyB,CAAzB,CAAA;AACD,KAAA;;AAED,IAAA,OAAOyrB,KAAP,CAAA;GAvBF,CAAA;;EA0BAZ,eAAe,CAAC1d,IAAhB,GAAuB,aAAvB,CAAA;AACA0d,EAAAA,eAAe,CAACiC,YAAhB,GAA+B,CAAC,MAAD,EAAS,OAAT,CAA/B,CAAA;EACAjC,eAAe,CAACkC,aAAhB,GAAgC;AAC9B;AACAzG,IAAAA,CAAC,EAAE,CAF2B;AAG9B6E,IAAAA,gBAAgB,EAAE,aAHY;AAI9B6B,IAAAA,eAAe,EAAE,IAJa;AAK9BnE,IAAAA,IAAI,EAAE,IALwB;AAM9BoE,IAAAA,KAAK,EAAE;AACL/O,MAAAA,QAAQ,EAAE,KAAA;KAPkB;AAS9B;AACA;AACAgP,IAAAA,QAAQ,EAAE;AACRC,MAAAA,IAAI,EAAE,KADE;AAERC,MAAAA,cAAc,EAAE,IAFR;AAGRC,MAAAA,QAAQ,EAAE,CAAA;KAdkB;AAgB9BtB,IAAAA,SAAS,EAAE;AACTloB,MAAAA,KAAK,EAAE,CADE;AAETsJ,MAAAA,IAAI,EAAE,OAAA;KAlBsB;AAoB9BmgB,IAAAA,QAAQ,EAAE;AACR5M,MAAAA,KAAK,EAAE,IAAA;KArBqB;AAuB9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA6M,IAAAA,IAAI,EAAE,KA/BwB;AAgC9B;AACAhhB,IAAAA,MAAM,EAAE,KAjCsB;AAkC9BihB,IAAAA,cAAc,EAAE,IAlCc;AAmC9BhB,IAAAA,MAAM,EAAE,aAnCsB;AAoC9BiB,IAAAA,UAAU,EAAE,CApCkB;AAqC9Bf,IAAAA,YAAY,EAAE,IArCgB;AAsC9BgB,IAAAA,UAAU,EAAE,IAtCkB;AAuC9B;AACA;AACA;AACA;AACAC,IAAAA,aAAa,EAAE,MA3Ce;AA4C9B;AACAC,IAAAA,YAAY,EAAE,KA7CgB;AA8C9B;AACAC,IAAAA,QAAQ,EAAE,MA/CoB;AAgD9BC,IAAAA,eAAe,EAAE,QAhDa;AAiD9B;AACAC,IAAAA,WAAW,EAAE,CAlDiB;AAmD9BC,IAAAA,mBAAmB,EAAErM,QAnDS;AAoD9BsM,IAAAA,mBAAmB,EAAE;AACnBC,MAAAA,WAAW,EAAE,OAAA;KArDe;AAuD9BC,IAAAA,gBAAgB,EAAE,KAAA;GAvDpB,CAAA;AAyDA,EAAA,OAAOtD,eAAP,CAAA;AACD,CA/GD,CA+GEuD,WA/GF,CAFA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA;AACA;AACA;;AAEO,SAASC,eAAT,CAAyBC,IAAzB,EAA+BC,SAA/B,EAA0C;AAC/C,EAAA,IAAIC,SAAS,GAAGF,IAAI,CAACG,gBAAL,CAAsB,gBAAtB,CAAhB,CAAA;AACA,EAAA,IAAItnB,GAAG,GAAGqnB,SAAS,CAACpxB,MAApB,CAF+C;;EAI/C,IAAI+J,GAAG,KAAK,CAAZ,EAAe;AACb,IAAA,IAAIunB,MAAM,GAAGC,gBAAgB,CAACL,IAAD,EAAOC,SAAP,EAAkBC,SAAS,CAAC,CAAD,CAA3B,CAA7B,CAAA;IACA,OAAOE,MAAM,IAAI,IAAV,GAAiBA,MAAM,GAAG,EAA1B,GAA+B,IAAtC,CAAA;GAFF,MAGO,IAAIvnB,GAAJ,EAAS;IACd,IAAItJ,IAAI,GAAG,EAAX,CAAA;;AAEA,IAAA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0wB,SAAS,CAACpxB,MAA9B,EAAsCU,CAAC,EAAvC,EAA2C;AACzCD,MAAAA,IAAI,CAACM,IAAL,CAAUwwB,gBAAgB,CAACL,IAAD,EAAOC,SAAP,EAAkBC,SAAS,CAAC1wB,CAAD,CAA3B,CAA1B,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,OAAOD,IAAI,CAACO,IAAL,CAAU,GAAV,CAAP,CAAA;AACD,GAAA;AACF,CAAA;AACM,SAASwwB,2BAAT,CAAqCN,IAArC,EAA2CO,iBAA3C,EAA8D;AACnE,EAAA,IAAIL,SAAS,GAAGF,IAAI,CAACG,gBAAL,CAAsB,gBAAtB,CAAhB,CAAA;;AAEA,EAAA,IAAI,CAAChY,SAAO,CAACoY,iBAAD,CAAZ,EAAiC;IAC/B,OAAOA,iBAAiB,GAAG,EAA3B,CAAA;AACD,GAAA;;EAED,IAAIhxB,IAAI,GAAG,EAAX,CAAA;;AAEA,EAAA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0wB,SAAS,CAACpxB,MAA9B,EAAsCU,CAAC,EAAvC,EAA2C;IACzC,IAAIgxB,QAAQ,GAAGR,IAAI,CAACS,iBAAL,CAAuBP,SAAS,CAAC1wB,CAAD,CAAhC,CAAf,CAAA;;IAEA,IAAIgxB,QAAQ,IAAI,CAAhB,EAAmB;AACjBjxB,MAAAA,IAAI,CAACM,IAAL,CAAU0wB,iBAAiB,CAACC,QAAD,CAA3B,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAOjxB,IAAI,CAACO,IAAL,CAAU,GAAV,CAAP,CAAA;AACD;;ACnFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoCA,IAAI4wB,MAAM;AACV;AACA,UAAU1Q,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACyQ,MAAD,EAAS1Q,MAAT,CAAT,CAAA;;EAEA,SAAS0Q,MAAT,CAAgBV,IAAhB,EAAsBxE,GAAtB,EAA2BmF,WAA3B,EAAwCrtB,IAAxC,EAA8C;IAC5C,IAAI4c,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,KAAqB,IAAjC,CAAA;;IAEAD,KAAK,CAAC0Q,UAAN,CAAiBZ,IAAjB,EAAuBxE,GAAvB,EAA4BmF,WAA5B,EAAyCrtB,IAAzC,CAAA,CAAA;;AAEA,IAAA,OAAO4c,KAAP,CAAA;AACD,GAAA;;AAEDwQ,EAAAA,MAAM,CAAC50B,SAAP,CAAiB+0B,aAAjB,GAAiC,UAAU7C,UAAV,EAAsBgC,IAAtB,EAA4BxE,GAA5B,EAAiC2D,UAAjC,EAA6C2B,UAA7C,EAAyD;AACxF;IACA,IAAKC,CAAAA,SAAL,GAFwF;AAGxF;AACA;AACA;AACA;AACA;;AAEA,IAAA,IAAIC,UAAU,GAAG1D,cAAY,CAACU,UAAD,EAAa,CAAC,CAAd,EAAiB,CAAC,CAAlB,EAAqB,CAArB,EAAwB,CAAxB,EAA2B,IAA3B,EAAiC8C,UAAjC,CAA7B,CAAA;IACAE,UAAU,CAACC,IAAX,CAAgB;AACdC,MAAAA,EAAE,EAAE,GADU;AAEdC,MAAAA,OAAO,EAAE,IAFK;AAGdtf,MAAAA,MAAM,EAAEsd,UAAU,CAAC,CAAD,CAAV,GAAgB,CAHV;AAIdrd,MAAAA,MAAM,EAAEqd,UAAU,CAAC,CAAD,CAAV,GAAgB,CAAA;AAJV,KAAhB,EAVwF;;IAiBxF6B,UAAU,CAACI,KAAX,GAAmBC,WAAnB,CAAA;IACA,IAAKC,CAAAA,WAAL,GAAmBtD,UAAnB,CAAA;IACA,IAAKN,CAAAA,GAAL,CAASsD,UAAT,CAAA,CAAA;GAnBF,CAAA;AAqBA;AACF;AACA;AACA;;;AAGEN,EAAAA,MAAM,CAAC50B,SAAP,CAAiBy1B,mBAAjB,GAAuC,UAAUC,WAAV,EAAuB;IAC5D,IAAKC,CAAAA,OAAL,CAAa,CAAb,CAAA,CAAgBC,aAAhB,CAA8B,IAA9B,EAAoCF,WAApC,CAAA,CAAA;GADF,CAAA;;AAIAd,EAAAA,MAAM,CAAC50B,SAAP,CAAiB61B,aAAjB,GAAiC,YAAY;AAC3C,IAAA,OAAO,KAAKL,WAAZ,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGEZ,EAAAA,MAAM,CAAC50B,SAAP,CAAiB81B,aAAjB,GAAiC,YAAY;AAC3C,IAAA,OAAO,IAAKH,CAAAA,OAAL,CAAa,CAAb,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEf,EAAAA,MAAM,CAAC50B,SAAP,CAAiB+1B,SAAjB,GAA6B,YAAY;AACvCC,IAAAA,aAAa,CAAC,IAAKL,CAAAA,OAAL,CAAa,CAAb,CAAD,CAAb,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEf,EAAAA,MAAM,CAAC50B,SAAP,CAAiBi2B,QAAjB,GAA4B,YAAY;AACtCC,IAAAA,aAAa,CAAC,IAAKP,CAAAA,OAAL,CAAa,CAAb,CAAD,CAAb,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;;;EAGEf,MAAM,CAAC50B,SAAP,CAAiBm2B,IAAjB,GAAwB,UAAUxR,MAAV,EAAkBuH,CAAlB,EAAqB;AAC3C,IAAA,IAAIgJ,UAAU,GAAG,IAAA,CAAKS,OAAL,CAAa,CAAb,CAAjB,CAAA;IACAT,UAAU,CAACvQ,MAAX,GAAoBA,MAApB,CAAA;IACAuQ,UAAU,CAAChJ,CAAX,GAAeA,CAAf,CAAA;GAHF,CAAA;;EAMA0I,MAAM,CAAC50B,SAAP,CAAiBo2B,YAAjB,GAAgC,UAAUC,SAAV,EAAqBC,eAArB,EAAsC;AACpE,IAAA,IAAIpB,UAAU,GAAG,IAAA,CAAKS,OAAL,CAAa,CAAb,CAAjB,CAAA;IACAT,UAAU,CAACmB,SAAX,GAAuBA,SAAvB,CAAA;AACAnB,IAAAA,UAAU,CAACqB,MAAX,GAAoB,CAACD,eAAD,IAAoBD,SAApB,GAAgC,MAAhC,GAAyCnB,UAAU,CAACqB,MAAxE,CAAA;GAHF,CAAA;AAKA;AACF;AACA;;;AAGE3B,EAAAA,MAAM,CAAC50B,SAAP,CAAiB80B,UAAjB,GAA8B,UAAUZ,IAAV,EAAgBxE,GAAhB,EAAqBmF,WAArB,EAAkCrtB,IAAlC,EAAwC;IACpE,IAAKgvB,CAAAA,MAAL,GAAc,KAAd,CAAA;IACA,IAAItE,UAAU,GAAGgC,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,QAAxB,CAAA,IAAqC,QAAtD,CAAA;AACA,IAAA,IAAIgH,WAAW,GAAGxC,IAAI,CAACyC,SAAvB,CAAA;IACA,IAAItD,UAAU,GAAGuB,MAAM,CAACgC,aAAP,CAAqB1C,IAArB,EAA2BxE,GAA3B,CAAjB,CAAA;AACA,IAAA,IAAImH,MAAM,GAAG3E,UAAU,KAAK,KAAKsD,WAAjC,CAAA;AACA,IAAA,IAAIsB,gBAAgB,GAAGtvB,IAAI,IAAIA,IAAI,CAACsvB,gBAApC,CAAA;;AAEA,IAAA,IAAID,MAAJ,EAAY;MACV,IAAI7B,UAAU,GAAGd,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,kBAAxB,CAAjB,CAAA;;MAEA,IAAKqF,CAAAA,aAAL,CAAmB7C,UAAnB,EAA+BgC,IAA/B,EAAqCxE,GAArC,EAA0C2D,UAA1C,EAAsD2B,UAAtD,CAAA,CAAA;AACD,KAJD,MAIO;AACL,MAAA,IAAIE,UAAU,GAAG,IAAA,CAAKS,OAAL,CAAa,CAAb,CAAjB,CAAA;MACAT,UAAU,CAACsB,MAAX,GAAoB,KAApB,CAAA;AACA,MAAA,IAAI3qB,MAAM,GAAG;AACXkK,QAAAA,MAAM,EAAEsd,UAAU,CAAC,CAAD,CAAV,GAAgB,CADb;AAEXrd,QAAAA,MAAM,EAAEqd,UAAU,CAAC,CAAD,CAAV,GAAgB,CAAA;OAF1B,CAAA;AAIAyD,MAAAA,gBAAgB,GAAG5B,UAAU,CAACC,IAAX,CAAgBtpB,MAAhB,CAAH,GAA6BkrB,aAAA,CAAoB7B,UAApB,EAAgCrpB,MAAhC,EAAwC6qB,WAAxC,EAAqDhH,GAArD,CAA7C,CAAA;MACAsH,YAAY,CAAC9B,UAAD,CAAZ,CAAA;AACD,KAAA;;IAED,IAAK+B,CAAAA,aAAL,CAAmB/C,IAAnB,EAAyBxE,GAAzB,EAA8B2D,UAA9B,EAA0CwB,WAA1C,EAAuDrtB,IAAvD,CAAA,CAAA;;AAEA,IAAA,IAAIqvB,MAAJ,EAAY;AACV,MAAA,IAAI3B,UAAU,GAAG,IAAA,CAAKS,OAAL,CAAa,CAAb,CAAjB,CAAA;;MAEA,IAAI,CAACmB,gBAAL,EAAuB;AACrB,QAAA,IAAIjrB,MAAM,GAAG;UACXkK,MAAM,EAAE,KAAKmhB,MADF;UAEXlhB,MAAM,EAAE,KAAKmhB,MAFF;AAGX7yB,UAAAA,KAAK,EAAE;AACL;AACAa,YAAAA,OAAO,EAAE+vB,UAAU,CAAC5wB,KAAX,CAAiBa,OAAAA;AAFrB,WAAA;SAHT,CAAA;AAQA+vB,QAAAA,UAAU,CAACnf,MAAX,GAAoBmf,UAAU,CAAClf,MAAX,GAAoB,CAAxC,CAAA;AACAkf,QAAAA,UAAU,CAAC5wB,KAAX,CAAiBa,OAAjB,GAA2B,CAA3B,CAAA;QACA4xB,SAAA,CAAkB7B,UAAlB,EAA8BrpB,MAA9B,EAAsC6qB,WAAtC,EAAmDhH,GAAnD,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAIoH,gBAAJ,EAAsB;AACpB;AACA,MAAA,IAAA,CAAKnB,OAAL,CAAa,CAAb,CAAgBC,CAAAA,aAAhB,CAA8B,OAA9B,CAAA,CAAA;AACD,KAAA;GA9CH,CAAA;;AAiDAhB,EAAAA,MAAM,CAAC50B,SAAP,CAAiBi3B,aAAjB,GAAiC,UAAU/C,IAAV,EAAgBxE,GAAhB,EAAqB2D,UAArB,EAAiCwB,WAAjC,EAA8CrtB,IAA9C,EAAoD;AACnF,IAAA,IAAI0tB,UAAU,GAAG,IAAA,CAAKS,OAAL,CAAa,CAAb,CAAjB,CAAA;AACA,IAAA,IAAIe,WAAW,GAAGxC,IAAI,CAACyC,SAAvB,CAAA;AACA,IAAA,IAAIS,iBAAJ,CAAA;AACA,IAAA,IAAIC,aAAJ,CAAA;AACA,IAAA,IAAIC,eAAJ,CAAA;AACA,IAAA,IAAIC,KAAJ,CAAA;AACA,IAAA,IAAIC,SAAJ,CAAA;AACA,IAAA,IAAIC,gBAAJ,CAAA;AACA,IAAA,IAAIC,iBAAJ,CAAA;AACA,IAAA,IAAIC,UAAJ,CAAA;AACA,IAAA,IAAIC,WAAJ,CAAA;;AAEA,IAAA,IAAI/C,WAAJ,EAAiB;MACfuC,iBAAiB,GAAGvC,WAAW,CAACuC,iBAAhC,CAAA;MACAC,aAAa,GAAGxC,WAAW,CAACwC,aAA5B,CAAA;MACAC,eAAe,GAAGzC,WAAW,CAACyC,eAA9B,CAAA;MACAC,KAAK,GAAG1C,WAAW,CAAC0C,KAApB,CAAA;MACAC,SAAS,GAAG3C,WAAW,CAAC2C,SAAxB,CAAA;MACAE,iBAAiB,GAAG7C,WAAW,CAAC6C,iBAAhC,CAAA;MACAC,UAAU,GAAG9C,WAAW,CAAC8C,UAAzB,CAAA;MACAC,WAAW,GAAG/C,WAAW,CAAC+C,WAA1B,CAAA;MACAH,gBAAgB,GAAG5C,WAAW,CAAC4C,gBAA/B,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAAC5C,WAAD,IAAgBX,IAAI,CAAC2D,aAAzB,EAAwC;AACtC,MAAA,IAAIC,SAAS,GAAGjD,WAAW,IAAIA,WAAW,CAACiD,SAA3B,GAAuCjD,WAAW,CAACiD,SAAnD,GAA+D5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAA/E,CAAA;AACA,MAAA,IAAIsI,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAApB,CAAA;MACAb,iBAAiB,GAAGY,aAAa,CAACC,QAAd,CAAuB,WAAvB,CAAA,CAAoCC,YAApC,EAApB,CAAA;AACAZ,MAAAA,eAAe,GAAGQ,SAAS,CAACG,QAAV,CAAmB,CAAC,QAAD,EAAW,WAAX,CAAnB,CAA4CC,CAAAA,YAA5C,EAAlB,CAAA;AACAb,MAAAA,aAAa,GAAGS,SAAS,CAACG,QAAV,CAAmB,CAAC,MAAD,EAAS,WAAT,CAAnB,CAA0CC,CAAAA,YAA1C,EAAhB,CAAA;AACAX,MAAAA,KAAK,GAAGS,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAR,CAAA;AACAX,MAAAA,SAAS,GAAGQ,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAZ,CAAA;AACAV,MAAAA,gBAAgB,GAAGO,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAnB,CAAA;AACAT,MAAAA,iBAAiB,GAAGU,oBAAoB,CAACN,SAAD,CAAxC,CAAA;AACAH,MAAAA,UAAU,GAAGK,aAAa,CAACK,UAAd,CAAyB,OAAzB,CAAb,CAAA;AACAT,MAAAA,WAAW,GAAGE,SAAS,CAACO,UAAV,CAAqB,QAArB,CAAd,CAAA;AACD,KAAA;;IAED,IAAI/F,YAAY,GAAG4B,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,cAAxB,CAAnB,CAAA;AACAwF,IAAAA,UAAU,CAACC,IAAX,CAAgB,UAAhB,EAA4B,CAAC7C,YAAY,IAAI,CAAjB,IAAsB9yB,IAAI,CAACI,EAA3B,GAAgC,GAAhC,IAAuC,CAAnE,CAAA,CAAA;AACA,IAAA,IAAI04B,YAAY,GAAGC,qBAAqB,CAACrE,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,cAAxB,CAAD,EAA0C2D,UAA1C,CAAxC,CAAA;;AAEA,IAAA,IAAIiF,YAAJ,EAAkB;AAChBpD,MAAAA,UAAU,CAACz0B,CAAX,GAAe63B,YAAY,CAAC,CAAD,CAA3B,CAAA;AACApD,MAAAA,UAAU,CAACx0B,CAAX,GAAe43B,YAAY,CAAC,CAAD,CAA3B,CAAA;AACD,KAAA;;IAEDV,WAAW,IAAI1C,UAAU,CAACC,IAAX,CAAgB,QAAhB,EAA0ByC,WAA1B,CAAf,CAAA;IACA,IAAIY,WAAW,GAAGtE,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,OAAxB,CAAlB,CAAA;AACA,IAAA,IAAI+I,WAAW,GAAGD,WAAW,CAACj0B,IAA9B,CAAA;;IAEA,IAAI2wB,UAAU,YAAY9vB,OAA1B,EAAmC;AACjC,MAAA,IAAIszB,SAAS,GAAGxD,UAAU,CAAC5wB,KAA3B,CAAA;AACA4wB,MAAAA,UAAU,CAACyD,QAAX,CAAoBptB,MAAM,CAAC;AACzB;QACAwI,KAAK,EAAE2kB,SAAS,CAAC3kB,KAFQ;QAGzBtT,CAAC,EAAEi4B,SAAS,CAACj4B,CAHY;QAIzBC,CAAC,EAAEg4B,SAAS,CAACh4B,CAJY;QAKzB+I,KAAK,EAAEivB,SAAS,CAACjvB,KALQ;QAMzBC,MAAM,EAAEgvB,SAAS,CAAChvB,MAAAA;OANM,EAOvB8uB,WAPuB,CAA1B,CAAA,CAAA;AAQD,KAVD,MAUO;MACL,IAAItD,UAAU,CAAC0D,cAAf,EAA+B;AAC7B;AACA;AACA;QACA1D,UAAU,CAACyD,QAAX,CAAoBptB,MAAM,CAAC,EAAD,EAAKitB,WAAL,CAA1B,CAAA,CAAA;AACD,OALD,MAKO;QACLtD,UAAU,CAACyD,QAAX,CAAoBH,WAApB,CAAA,CAAA;AACD,OARI;;;AAWLtD,MAAAA,UAAU,CAAC5wB,KAAX,CAAiBu0B,KAAjB,GAAyB,IAAzB,CAAA;MACA3D,UAAU,CAAC4D,QAAX,CAAoBL,WAApB,EAAiCjxB,IAAI,IAAIA,IAAI,CAACuxB,gBAA9C,CAAA,CAAA;AACA7D,MAAAA,UAAU,CAAC5wB,KAAX,CAAiBmB,aAAjB,GAAiC,IAAjC,CAAA;AACD,KAAA;;IAED,IAAIuzB,KAAK,GAAG9E,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,OAAxB,CAAZ,CAAA;IACA,IAAIuJ,QAAQ,GAAG,IAAA,CAAKC,GAApB,CAAA;;IAEA,IAAIF,KAAK,IAAI,IAAb,EAAmB;MACjB,IAAIC,QAAQ,IAAI,IAAhB,EAAsB;AACpB,QAAA,IAAA,CAAKC,GAAL,GAAWhE,UAAU,CAACE,EAAtB,CAAA;QACAF,UAAU,CAACE,EAAX,IAAiB4D,KAAjB,CAAA;AACD,OAAA;AACF,KALD,MAKO,IAAIC,QAAQ,IAAI,IAAhB,EAAsB;MAC3B/D,UAAU,CAACE,EAAX,GAAgB6D,QAAhB,CAAA;MACA,IAAKC,CAAAA,GAAL,GAAW,IAAX,CAAA;AACD,KAAA;;AAED,IAAA,IAAIC,YAAY,GAAG3xB,IAAI,IAAIA,IAAI,CAAC2xB,YAAhC,CAAA;AACAC,IAAAA,aAAa,CAAClE,UAAD,EAAawC,iBAAb,EAAgC;AAC3C2B,MAAAA,YAAY,EAAE3C,WAD6B;AAE3C4C,MAAAA,cAAc,EAAE5J,GAF2B;AAG3C6J,MAAAA,WAAW,EAAEC,mBAH8B;AAI3CC,MAAAA,YAAY,EAAEhB,WAJ6B;MAK3CiB,cAAc,EAAElB,WAAW,CAACrzB,OAAAA;KALjB,CAAb,CA5FmF;;IAoGnF,SAASq0B,mBAAT,CAA6B9J,GAA7B,EAAkC;AAChC,MAAA,OAAOyJ,YAAY,GAAGjF,IAAI,CAACyF,OAAL,CAAajK,GAAb,CAAH,GAAuBuE,eAAe,CAACC,IAAD,EAAOxE,GAAP,CAAzD,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKwH,MAAL,GAAc7D,UAAU,CAAC,CAAD,CAAV,GAAgB,CAA9B,CAAA;AACA,IAAA,IAAA,CAAK8D,MAAL,GAAc9D,UAAU,CAAC,CAAD,CAAV,GAAgB,CAA9B,CAAA;AACA,IAAA,IAAIuG,aAAa,GAAG1E,UAAU,CAAC2E,WAAX,CAAuB,UAAvB,CAApB,CAAA;IACAD,aAAa,CAACt1B,KAAd,GAAsB8yB,iBAAtB,CAAA;AACAlC,IAAAA,UAAU,CAAC2E,WAAX,CAAuB,QAAvB,CAAiCv1B,CAAAA,KAAjC,GAAyCgzB,eAAzC,CAAA;AACApC,IAAAA,UAAU,CAAC2E,WAAX,CAAuB,MAAvB,CAA+Bv1B,CAAAA,KAA/B,GAAuC+yB,aAAvC,CAAA;;AAEA,IAAA,IAAIM,UAAJ,EAAgB;AACd,MAAA,IAAImC,UAAU,GAAGt6B,IAAI,CAAC0iB,GAAL,CAASxS,QAAQ,CAACioB,UAAD,CAAR,GAAuBA,UAAvB,GAAoC,GAA7C,EAAkD,CAAI,GAAA,IAAA,CAAKR,MAA3D,CAAjB,CAAA;AACAyC,MAAAA,aAAa,CAAC7jB,MAAd,GAAuB,IAAKmhB,CAAAA,MAAL,GAAc4C,UAArC,CAAA;AACAF,MAAAA,aAAa,CAAC5jB,MAAd,GAAuB,IAAKmhB,CAAAA,MAAL,GAAc2C,UAArC,CAAA;AACD,KAAA;;IAED,IAAKC,CAAAA,cAAL,CAAoB,CAApB,CAAA,CAAA;IACAC,mBAAmB,CAAC,IAAD,EAAOzC,KAAP,EAAcC,SAAd,EAAyBC,gBAAzB,CAAnB,CAAA;GAtHF,CAAA;;AAyHA7C,EAAAA,MAAM,CAAC50B,SAAP,CAAiB+5B,cAAjB,GAAkC,UAAUzT,KAAV,EAAiB;AACjD,IAAA,IAAA,CAAKvQ,MAAL,GAAc,IAAKC,CAAAA,MAAL,GAAcsQ,KAA5B,CAAA;GADF,CAAA;;EAIAsO,MAAM,CAAC50B,SAAP,CAAiBi6B,OAAjB,GAA2B,UAAU5K,EAAV,EAAcqH,WAAd,EAA2BtF,GAA3B,EAAgC;AACzD,IAAA,IAAI8D,UAAU,GAAG,IAAA,CAAKS,OAAL,CAAa,CAAb,CAAjB,CAAA;AACA,IAAA,IAAIxB,SAAS,GAAG+F,SAAS,CAAC,IAAD,CAAT,CAAgB/F,SAAhC,CAAA;IACA,IAAIgG,YAAY,GAAG/I,GAAG,IAAIA,GAAG,CAACxkB,SAA9B,CAHyD;;IAKzD,IAAK4pB,CAAAA,MAAL,GAActB,UAAU,CAACsB,MAAX,GAAoB,IAAlC,CALyD;;AAOzD,IAAA,IAAIpF,GAAG,IAAIA,GAAG,CAACgJ,SAAf,EAA0B;AACxB,MAAA,IAAIxf,WAAW,GAAGsa,UAAU,CAACra,cAAX,EAAlB,CAAA;;AAEA,MAAA,IAAID,WAAJ,EAAiB;AACfmc,QAAAA,aAAA,CAAsBnc,WAAtB,EAAmC;AACjCtW,UAAAA,KAAK,EAAE;AACLa,YAAAA,OAAO,EAAE,CAAA;AADJ,WAAA;SADT,EAIGuxB,WAJH,EAIgB;AACdvC,UAAAA,SAAS,EAAEA,SADG;AAEdkG,UAAAA,SAAS,EAAEF,YAFG;AAGd9K,UAAAA,EAAE,EAAE,SAAY,EAAA,GAAA;AACd6F,YAAAA,UAAU,CAACoF,iBAAX,EAAA,CAAA;AACD,WAAA;SATH,CAAA,CAAA;AAWD,OAAA;AACF,KAhBD,MAgBO;AACLpF,MAAAA,UAAU,CAACoF,iBAAX,EAAA,CAAA;AACD,KAAA;;AAEDvD,IAAAA,aAAA,CAAsB7B,UAAtB,EAAkC;AAChC5wB,MAAAA,KAAK,EAAE;AACLa,QAAAA,OAAO,EAAE,CAAA;OAFqB;AAIhC4Q,MAAAA,MAAM,EAAE,CAJwB;AAKhCC,MAAAA,MAAM,EAAE,CAAA;KALV,EAMG0gB,WANH,EAMgB;AACdvC,MAAAA,SAAS,EAAEA,SADG;AAEd9E,MAAAA,EAAE,EAAEA,EAFU;AAGdgL,MAAAA,SAAS,EAAEF,YAAAA;KATb,CAAA,CAAA;GA3BF,CAAA;;AAwCAvF,EAAAA,MAAM,CAACgC,aAAP,GAAuB,UAAU1C,IAAV,EAAgBxE,GAAhB,EAAqB;IAC1C,OAAO6K,mBAAmB,CAACrG,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,YAAxB,CAAD,CAA1B,CAAA;GADF,CAAA;;AAIA,EAAA,OAAOkF,MAAP,CAAA;AACD,CA5TD,CA4TEmC,OA5TF,CAFA,CAAA;;AAgUA,SAASxB,WAAT,CAAqBiF,EAArB,EAAyBC,EAAzB,EAA6B;AAC3B,EAAA,IAAA,CAAKC,MAAL,CAAYpF,KAAZ,CAAkBkF,EAAlB,EAAsBC,EAAtB,CAAA,CAAA;AACD;;ACvXD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,SAASE,iBAAT,CAAyBzG,IAAzB,EAA+B0G,KAA/B,EAAsClL,GAAtC,EAA2C0B,GAA3C,EAAgD;AAC9C,EAAA,OAAOwJ,KAAK,IAAI,CAAC/2B,KAAK,CAAC+2B,KAAK,CAAC,CAAD,CAAN,CAAf,IAA6B,CAAC/2B,KAAK,CAAC+2B,KAAK,CAAC,CAAD,CAAN,CAAnC,IAAiD,EAAExJ,GAAG,CAACyJ,QAAJ,IAAgBzJ,GAAG,CAACyJ,QAAJ,CAAanL,GAAb,CAAlB,CAAjD;AACP;AACA;AAFO,KAGJ,EAAE0B,GAAG,CAAC0J,SAAJ,IAAiB,CAAC1J,GAAG,CAAC0J,SAAJ,CAAcC,OAAd,CAAsBH,KAAK,CAAC,CAAD,CAA3B,EAAgCA,KAAK,CAAC,CAAD,CAArC,CAApB,CAHI,IAG8D1G,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,QAAxB,MAAsC,MAH3G,CAAA;AAID,CAAA;;AAED,SAASsL,kBAAT,CAA4B5J,GAA5B,EAAiC;EAC/B,IAAIA,GAAG,IAAI,IAAP,IAAe,CAAC5U,UAAQ,CAAC4U,GAAD,CAA5B,EAAmC;AACjCA,IAAAA,GAAG,GAAG;AACJyJ,MAAAA,QAAQ,EAAEzJ,GAAAA;KADZ,CAAA;AAGD,GAAA;;EAED,OAAOA,GAAG,IAAI,EAAd,CAAA;AACD,CAAA;;AAED,SAAS6J,iBAAT,CAAyB/G,IAAzB,EAA+B;AAC7B,EAAA,IAAIwC,WAAW,GAAGxC,IAAI,CAACyC,SAAvB,CAAA;AACA,EAAA,IAAIqB,aAAa,GAAGtB,WAAW,CAACuB,QAAZ,CAAqB,UAArB,CAApB,CAAA;EACA,OAAO;IACLb,iBAAiB,EAAEY,aAAa,CAACC,QAAd,CAAuB,WAAvB,CAAA,CAAoCC,YAApC,EADd;AAELb,IAAAA,aAAa,EAAEX,WAAW,CAACuB,QAAZ,CAAqB,CAAC,MAAD,EAAS,WAAT,CAArB,CAA4CC,CAAAA,YAA5C,EAFV;AAGLZ,IAAAA,eAAe,EAAEZ,WAAW,CAACuB,QAAZ,CAAqB,CAAC,QAAD,EAAW,WAAX,CAArB,CAA8CC,CAAAA,YAA9C,EAHZ;AAILX,IAAAA,KAAK,EAAES,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAJF;AAKLX,IAAAA,SAAS,EAAEQ,aAAa,CAACG,GAAd,CAAkB,WAAlB,CALN;AAMLV,IAAAA,gBAAgB,EAAEO,aAAa,CAACG,GAAd,CAAkB,UAAlB,CANb;AAOLR,IAAAA,UAAU,EAAEK,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAPP;AAQLT,IAAAA,iBAAiB,EAAEU,oBAAoB,CAAC1B,WAAD,CARlC;AASLkB,IAAAA,WAAW,EAAElB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAA;GATf,CAAA;AAWD,CAAA;;AAED,IAAI+C,UAAU;AACd;AACA,YAAY;EACV,SAASA,UAAT,CAAoBC,UAApB,EAAgC;AAC9B,IAAA,IAAA,CAAK9J,KAAL,GAAa,IAAI0F,OAAJ,EAAb,CAAA;AACA,IAAA,IAAA,CAAKqE,WAAL,GAAmBD,UAAU,IAAIE,MAAjC,CAAA;AACD,GAAA;AACD;AACF;AACA;;;EAGEH,UAAU,CAACl7B,SAAX,CAAqB80B,UAArB,GAAkC,UAAUZ,IAAV,EAAgB9C,GAAhB,EAAqB;AACrD;IACA,IAAKkK,CAAAA,eAAL,GAAuB,IAAvB,CAAA;AACAlK,IAAAA,GAAG,GAAG4J,kBAAkB,CAAC5J,GAAD,CAAxB,CAAA;IACA,IAAIC,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAIqF,WAAW,GAAGxC,IAAI,CAACyC,SAAvB,CAAA;IACA,IAAI4E,OAAO,GAAG,IAAA,CAAKC,KAAnB,CAAA;IACA,IAAIL,UAAU,GAAG,IAAA,CAAKC,WAAtB,CAAA;AACA,IAAA,IAAItE,gBAAgB,GAAG1F,GAAG,CAAC0F,gBAA3B,CAAA;AACA,IAAA,IAAIjC,WAAW,GAAGoG,iBAAe,CAAC/G,IAAD,CAAjC,CAAA;AACA,IAAA,IAAIuH,eAAe,GAAG;AACpB3E,MAAAA,gBAAgB,EAAEA,gBAAAA;KADpB,CAAA;;IAIA,IAAI4E,cAAc,GAAGtK,GAAG,CAACsK,cAAJ,IAAsB,UAAUhM,GAAV,EAAe;AACxD,MAAA,OAAOwE,IAAI,CAACyH,aAAL,CAAmBjM,GAAnB,CAAP,CAAA;AACD,KAFD,CAdqD;AAiBrD;;;IAGA,IAAI,CAAC6L,OAAL,EAAc;AACZlK,MAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;AACD,KAAA;;IAEDf,IAAI,CAAC0H,IAAL,CAAUL,OAAV,EAAmB3J,GAAnB,CAAuB,UAAUiK,MAAV,EAAkB;AACvC,MAAA,IAAIjB,KAAK,GAAGc,cAAc,CAACG,MAAD,CAA1B,CAAA;;MAEA,IAAIlB,iBAAe,CAACzG,IAAD,EAAO0G,KAAP,EAAciB,MAAd,EAAsBzK,GAAtB,CAAnB,EAA+C;AAC7C,QAAA,IAAI0K,QAAQ,GAAG,IAAIX,UAAJ,CAAejH,IAAf,EAAqB2H,MAArB,EAA6BhH,WAA7B,EAA0C4G,eAA1C,CAAf,CAAA;QACAK,QAAQ,CAACC,WAAT,CAAqBnB,KAArB,CAAA,CAAA;AACA1G,QAAAA,IAAI,CAAC8H,gBAAL,CAAsBH,MAAtB,EAA8BC,QAA9B,CAAA,CAAA;QACAzK,KAAK,CAACO,GAAN,CAAUkK,QAAV,CAAA,CAAA;AACD,OAAA;AACF,KATD,EASGG,MATH,CASU,UAAUJ,MAAV,EAAkBK,MAAlB,EAA0B;AAClC,MAAA,IAAIJ,QAAQ,GAAGP,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAf,CAAA;AACA,MAAA,IAAItB,KAAK,GAAGc,cAAc,CAACG,MAAD,CAA1B,CAAA;;MAEA,IAAI,CAAClB,iBAAe,CAACzG,IAAD,EAAO0G,KAAP,EAAciB,MAAd,EAAsBzK,GAAtB,CAApB,EAAgD;QAC9CC,KAAK,CAAC+K,MAAN,CAAaN,QAAb,CAAA,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;MAED,IAAIO,aAAa,GAAGnI,IAAI,CAACuC,aAAL,CAAmBoF,MAAnB,EAA2B,QAA3B,CAAA,IAAwC,QAA5D,CAAA;MACA,IAAIS,aAAa,GAAGR,QAAQ,IAAIA,QAAQ,CAACjG,aAArB,IAAsCiG,QAAQ,CAACjG,aAAT,EAA1D,CAAA;;MAEA,IAAI,CAACiG,QAAD;AAAA,SACDQ,aAAa,IAAIA,aAAa,KAAKD,aADtC,EACqD;QACnDhL,KAAK,CAAC+K,MAAN,CAAaN,QAAb,CAAA,CAAA;QACAA,QAAQ,GAAG,IAAIX,UAAJ,CAAejH,IAAf,EAAqB2H,MAArB,EAA6BhH,WAA7B,EAA0C4G,eAA1C,CAAX,CAAA;QACAK,QAAQ,CAACC,WAAT,CAAqBnB,KAArB,CAAA,CAAA;AACD,OALD,MAKO;QACLkB,QAAQ,CAAChH,UAAT,CAAoBZ,IAApB,EAA0B2H,MAA1B,EAAkChH,WAAlC,EAA+C4G,eAA/C,CAAA,CAAA;AACA,QAAA,IAAI5vB,MAAM,GAAG;AACXpL,UAAAA,CAAC,EAAEm6B,KAAK,CAAC,CAAD,CADG;UAEXl6B,CAAC,EAAEk6B,KAAK,CAAC,CAAD,CAAA;SAFV,CAAA;AAIA9D,QAAAA,gBAAgB,GAAGgF,QAAQ,CAAC3G,IAAT,CAActpB,MAAd,CAAH,GAA2BkrB,aAAA,CAAoB+E,QAApB,EAA8BjwB,MAA9B,EAAsC6qB,WAAtC,CAA3C,CAAA;AACD,OAxBiC;;;MA2BlCrF,KAAK,CAACO,GAAN,CAAUkK,QAAV,CAAA,CAAA;AACA5H,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBH,MAAtB,EAA8BC,QAA9B,CAAA,CAAA;AACD,KAtCD,CAsCGM,CAAAA,MAtCH,CAsCU,UAAUF,MAAV,EAAkB;AAC1B,MAAA,IAAIj3B,EAAE,GAAGs2B,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAT,CAAA;AACAj3B,MAAAA,EAAE,IAAIA,EAAE,CAACg1B,OAAH,CAAW,YAAY;QAC3B5I,KAAK,CAAC+K,MAAN,CAAan3B,EAAb,CAAA,CAAA;OADI,EAEHyxB,WAFG,CAAN,CAAA;AAGD,KA3CD,EA2CG6F,OA3CH,EAAA,CAAA;IA4CA,IAAKC,CAAAA,eAAL,GAAuBd,cAAvB,CAAA;IACA,IAAKF,CAAAA,KAAL,GAAatH,IAAb,CAAA;GArEF,CAAA;;AAwEA,EAAA,CAAA;;AAEAgH,EAAAA,UAAU,CAACl7B,SAAX,CAAqBy8B,YAArB,GAAoC,YAAY;IAC9C,IAAIrY,KAAK,GAAG,IAAZ,CAAA;;IAEA,IAAI8P,IAAI,GAAG,IAAA,CAAKsH,KAAhB,CAAA;;AAEA,IAAA,IAAItH,IAAJ,EAAU;AACR;AACAA,MAAAA,IAAI,CAACwI,iBAAL,CAAuB,UAAUz3B,EAAV,EAAcyqB,GAAd,EAAmB;AACxC,QAAA,IAAIkL,KAAK,GAAGxW,KAAK,CAACoY,eAAN,CAAsB9M,GAAtB,CAAZ,CAAA;;QAEAzqB,EAAE,CAAC82B,WAAH,CAAenB,KAAf,CAAA,CAAA;AACA31B,QAAAA,EAAE,CAAC03B,UAAH,EAAA,CAAA;OAJF,CAAA,CAAA;AAMD,KAAA;GAbH,CAAA;;AAgBA,EAAA,CAAA;;AAEAzB,EAAAA,UAAU,CAACl7B,SAAX,CAAqB48B,wBAArB,GAAgD,UAAU1I,IAAV,EAAgB;AAC9D,IAAA,IAAA,CAAK2I,YAAL,GAAoB5B,iBAAe,CAAC/G,IAAD,CAAnC,CAAA;IACA,IAAKsH,CAAAA,KAAL,GAAa,IAAb,CAAA;IACA,IAAKnK,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;GAHF,CAAA;;AAMA,EAAA,CAAA;AACA;AACF;AACA;;EAEEiG,UAAU,CAACl7B,SAAX,CAAqB88B,iBAArB,GAAyC,UAAUC,UAAV,EAAsB7I,IAAtB,EAA4B9C,GAA5B,EAAiC;AACxE;IACA,IAAKkK,CAAAA,eAAL,GAAuB,EAAvB,CAAA;AACAlK,IAAAA,GAAG,GAAG4J,kBAAkB,CAAC5J,GAAD,CAAxB,CAAA;;IAEA,SAAS4L,yBAAT,CAAmC/3B,EAAnC,EAAuC;AACrC,MAAA,IAAI,CAACA,EAAE,CAACg4B,OAAR,EAAiB;QACfh4B,EAAE,CAACyf,WAAH,GAAiB,IAAjB,CAAA;AACAzf,QAAAA,EAAE,CAAC40B,WAAH,CAAe,UAAf,CAA2BxN,CAAAA,UAA3B,GAAwC,IAAxC,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,KAAK,IAAIqD,GAAG,GAAGqN,UAAU,CAACpP,KAA1B,EAAiC+B,GAAG,GAAGqN,UAAU,CAACG,GAAlD,EAAuDxN,GAAG,EAA1D,EAA8D;AAC5D,MAAA,IAAIkL,KAAK,GAAG1G,IAAI,CAACyH,aAAL,CAAmBjM,GAAnB,CAAZ,CAAA;;MAEA,IAAIiL,iBAAe,CAACzG,IAAD,EAAO0G,KAAP,EAAclL,GAAd,EAAmB0B,GAAnB,CAAnB,EAA4C;AAC1C,QAAA,IAAInsB,EAAE,GAAG,IAAI,IAAA,CAAKm2B,WAAT,CAAqBlH,IAArB,EAA2BxE,GAA3B,EAAgC,IAAKmN,CAAAA,YAArC,CAAT,CAAA;QACA53B,EAAE,CAACk4B,QAAH,CAAYH,yBAAZ,CAAA,CAAA;QACA/3B,EAAE,CAAC82B,WAAH,CAAenB,KAAf,CAAA,CAAA;AACA,QAAA,IAAA,CAAKvJ,KAAL,CAAWO,GAAX,CAAe3sB,EAAf,CAAA,CAAA;AACAivB,QAAAA,IAAI,CAAC8H,gBAAL,CAAsBtM,GAAtB,EAA2BzqB,EAA3B,CAAA,CAAA;;AAEA,QAAA,IAAA,CAAKq2B,eAAL,CAAqBv3B,IAArB,CAA0BkB,EAA1B,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GAxBH,CAAA;;AA2BA,EAAA,CAAA;;AAEAi2B,EAAAA,UAAU,CAACl7B,SAAX,CAAqBo9B,YAArB,GAAoC,UAAU/N,EAAV,EAAc;IAChD0H,gBAAA,CAAyB,IAAA,CAAKuE,eAAL,IAAwB,IAAA,CAAKjK,KAAtD,EAA6DhC,EAA7D,CAAA,CAAA;GADF,CAAA;;AAIA6L,EAAAA,UAAU,CAACl7B,SAAX,CAAqBo8B,MAArB,GAA8B,UAAUiB,eAAV,EAA2B;IACvD,IAAIhM,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAI6C,IAAI,GAAG,IAAKsH,CAAAA,KAAhB,CAFuD;;IAIvD,IAAItH,IAAI,IAAImJ,eAAZ,EAA6B;AAC3BnJ,MAAAA,IAAI,CAACwI,iBAAL,CAAuB,UAAUz3B,EAAV,EAAc;QACnCA,EAAE,CAACg1B,OAAH,CAAW,YAAY;UACrB5I,KAAK,CAAC+K,MAAN,CAAan3B,EAAb,CAAA,CAAA;SADF,EAEGivB,IAAI,CAACyC,SAFR,CAAA,CAAA;OADF,CAAA,CAAA;AAKD,KAND,MAMO;AACLtF,MAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;AACD,KAAA;GAZH,CAAA;;AAeA,EAAA,CAAA;AACA,EAAA,OAAOiG,UAAP,CAAA;AACD,CAnKD,EAFA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BO,SAASoC,oBAAT,CAA8BxM,QAA9B,EAAwCoD,IAAxC,EAA8CqJ,WAA9C,EAA2D;AAChE,EAAA,IAAIC,QAAQ,GAAG1M,QAAQ,CAAC2M,WAAT,EAAf,CAAA;AACA,EAAA,IAAIC,SAAS,GAAG5M,QAAQ,CAAC6M,YAAT,CAAsBH,QAAtB,CAAhB,CAAA;AACA,EAAA,IAAII,UAAU,GAAGC,aAAa,CAACH,SAAD,EAAYH,WAAZ,CAA9B,CAAA;AACA,EAAA,IAAIO,WAAW,GAAGN,QAAQ,CAACO,GAA3B,CAAA;AACA,EAAA,IAAIC,YAAY,GAAGN,SAAS,CAACK,GAA7B,CAAA;AACA,EAAA,IAAIE,QAAQ,GAAG/J,IAAI,CAACgK,YAAL,CAAkBF,YAAlB,CAAf,CAAA;AACA,EAAA,IAAIG,OAAO,GAAGjK,IAAI,CAACgK,YAAL,CAAkBJ,WAAlB,CAAd,CAAA;AACA,EAAA,IAAIM,cAAc,GAAGJ,YAAY,KAAK,GAAjB,IAAwBA,YAAY,KAAK,QAAzC,GAAoD,CAApD,GAAwD,CAA7E,CAAA;EACA,IAAIK,IAAI,GAAGz5B,GAAG,CAACksB,QAAQ,CAACwN,UAAV,EAAsB,UAAUC,QAAV,EAAoB;AACtD,IAAA,OAAOrK,IAAI,CAACgK,YAAL,CAAkBK,QAAlB,CAAP,CAAA;AACD,GAFa,CAAd,CAAA;EAGA,IAAIC,OAAO,GAAG,KAAd,CAAA;AACA,EAAA,IAAIC,cAAc,GAAGvK,IAAI,CAACwK,kBAAL,CAAwB,sBAAxB,CAArB,CAAA;;AAEA,EAAA,IAAIC,kBAAkB,CAACzK,IAAD,EAAOmK,IAAI,CAAC,CAAD,CAAA;AACjC;AADsB,GAAtB,EAEG;AACD;AACAG,IAAAA,OAAO,GAAG,IAAV,CAAA;AACAH,IAAAA,IAAI,CAAC,CAAD,CAAJ,GAAUI,cAAV,CAAA;AACD,GAAA;;AAED,EAAA,IAAIE,kBAAkB,CAACzK,IAAD,EAAOmK,IAAI,CAAC,CAAD,CAAA;AACjC;AADsB,GAAtB,EAEG;AACD;AACAG,IAAAA,OAAO,GAAG,IAAV,CAAA;AACAH,IAAAA,IAAI,CAAC,CAAD,CAAJ,GAAUI,cAAV,CAAA;AACD,GAAA;;EAED,OAAO;AACLG,IAAAA,gBAAgB,EAAEP,IADb;AAELT,IAAAA,UAAU,EAAEA,UAFP;AAGLI,IAAAA,YAAY,EAAEA,YAHT;AAILF,IAAAA,WAAW,EAAEA,WAJR;IAKLU,OAAO,EAAE,CAAC,CAACA,OALN;AAMLP,IAAAA,QAAQ,EAAEA,QANL;AAOLE,IAAAA,OAAO,EAAEA,OAPJ;AAQLC,IAAAA,cAAc,EAAEA,cARX;AASLS,IAAAA,oBAAoB,EAAE3K,IAAI,CAACwK,kBAAL,CAAwB,sBAAxB,CAAA;GATxB,CAAA;AAWD,CAAA;;AAED,SAASb,aAAT,CAAuBH,SAAvB,EAAkCH,WAAlC,EAA+C;EAC7C,IAAIK,UAAU,GAAG,CAAjB,CAAA;AACA,EAAA,IAAIkB,MAAM,GAAGpB,SAAS,CAACpX,KAAV,CAAgByY,SAAhB,EAAb,CAAA;;EAEA,IAAIxB,WAAW,KAAK,OAApB,EAA6B;AAC3BK,IAAAA,UAAU,GAAGkB,MAAM,CAAC,CAAD,CAAnB,CAAA;AACD,GAFD,MAEO,IAAIvB,WAAW,KAAK,KAApB,EAA2B;AAChCK,IAAAA,UAAU,GAAGkB,MAAM,CAAC,CAAD,CAAnB,CAAA;AACD,GAFM;AAGP;OACK,IAAIpvB,QAAQ,CAAC6tB,WAAD,CAAR,IAAyB,CAAC15B,KAAK,CAAC05B,WAAD,CAAnC,EAAkD;AACnDK,IAAAA,UAAU,GAAGL,WAAb,CAAA;AACD,GAFE;OAGE;AACD;AACA,IAAA,IAAIuB,MAAM,CAAC,CAAD,CAAN,GAAY,CAAhB,EAAmB;AACjBlB,MAAAA,UAAU,GAAGkB,MAAM,CAAC,CAAD,CAAnB,CAAA;AACD,KAFD;AAAA,SAGK,IAAIA,MAAM,CAAC,CAAD,CAAN,GAAY,CAAhB,EAAmB;AACpBlB,MAAAA,UAAU,GAAGkB,MAAM,CAAC,CAAD,CAAnB,CAAA;AACD,KAPF;;AASF,GAAA;;AAEL,EAAA,OAAOlB,UAAP,CAAA;AACD,CAAA;;AAEM,SAASoB,iBAAT,CAA2BC,aAA3B,EAA0CnO,QAA1C,EAAoDoD,IAApD,EAA0DxE,GAA1D,EAA+D;EACpE,IAAIwP,KAAK,GAAGC,GAAZ,CAAA;;EAEA,IAAIF,aAAa,CAACT,OAAlB,EAA2B;AACzBU,IAAAA,KAAK,GAAGhL,IAAI,CAACiE,GAAL,CAASjE,IAAI,CAACwK,kBAAL,CAAwB,sBAAxB,CAAT,EAA0DhP,GAA1D,CAAR,CAAA;AACD,GAAA;;AAED,EAAA,IAAI7rB,KAAK,CAACq7B,KAAD,CAAT,EAAkB;IAChBA,KAAK,GAAGD,aAAa,CAACrB,UAAtB,CAAA;AACD,GAAA;;AAED,EAAA,IAAIQ,cAAc,GAAGa,aAAa,CAACb,cAAnC,CAAA;EACA,IAAIgB,WAAW,GAAG,EAAlB,CAAA;AACAA,EAAAA,WAAW,CAAChB,cAAD,CAAX,GAA8BlK,IAAI,CAACiE,GAAL,CAAS8G,aAAa,CAACd,OAAvB,EAAgCzO,GAAhC,CAA9B,CAAA;AACA0P,EAAAA,WAAW,CAAC,CAAA,GAAIhB,cAAL,CAAX,GAAkCc,KAAlC,CAAA;AACA,EAAA,OAAOpO,QAAQ,CAACuO,WAAT,CAAqBD,WAArB,CAAP,CAAA;AACD;;ACnID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,SAASE,QAAT,CAAkB/D,OAAlB,EAA2BgE,OAA3B,EAAoC;EAClC,IAAIC,UAAU,GAAG,EAAjB,CAAA;EACAD,OAAO,CAAC3D,IAAR,CAAaL,OAAb,EAAsB3J,GAAtB,CAA0B,UAAUlC,GAAV,EAAe;IACvC8P,UAAU,CAACz7B,IAAX,CAAgB;AACdd,MAAAA,GAAG,EAAE,GADS;AAEdysB,MAAAA,GAAG,EAAEA,GAAAA;KAFP,CAAA,CAAA;AAID,GALD,EAKGuM,MALH,CAKU,UAAUJ,MAAV,EAAkBK,MAAlB,EAA0B;IAClCsD,UAAU,CAACz7B,IAAX,CAAgB;AACdd,MAAAA,GAAG,EAAE,GADS;AAEdysB,MAAAA,GAAG,EAAEwM,MAFS;AAGduD,MAAAA,IAAI,EAAE5D,MAAAA;KAHR,CAAA,CAAA;AAKD,GAXD,CAWGO,CAAAA,MAXH,CAWU,UAAU1M,GAAV,EAAe;IACvB8P,UAAU,CAACz7B,IAAX,CAAgB;AACdd,MAAAA,GAAG,EAAE,GADS;AAEdysB,MAAAA,GAAG,EAAEA,GAAAA;KAFP,CAAA,CAAA;AAID,GAhBD,EAgBG6M,OAhBH,EAAA,CAAA;AAiBA,EAAA,OAAOiD,UAAP,CAAA;AACD,CAAA;;AAEc,SAASE,iBAAT,CAA2BnE,OAA3B,EAAoCgE,OAApC,EAA6CI,kBAA7C,EAAiEC,kBAAjE,EAAqFC,WAArF,EAAkGC,WAAlG,EAA+GC,cAA/G,EAA+HC,cAA/H,EAA+I;EAC5J,IAAIpE,IAAI,GAAG0D,QAAQ,CAAC/D,OAAD,EAAUgE,OAAV,CAAnB,CAD4J;AAE5J;AACA;AACA;AACA;;EAEA,IAAIU,UAAU,GAAG,EAAjB,CAAA;AACA,EAAA,IAAIC,UAAU,GAAG,EAAjB,CAR4J;;EAU5J,IAAIC,iBAAiB,GAAG,EAAxB,CAAA;EACA,IAAIC,iBAAiB,GAAG,EAAxB,CAAA;EACA,IAAIC,MAAM,GAAG,EAAb,CAAA;EACA,IAAIC,aAAa,GAAG,EAApB,CAAA;EACA,IAAIC,UAAU,GAAG,EAAjB,CAAA;EACA,IAAIC,mBAAmB,GAAGlD,oBAAoB,CAACuC,WAAD,EAAcN,OAAd,EAAuBQ,cAAvB,CAA9C,CAf4J;;EAiB5J,IAAIU,SAAS,GAAGlF,OAAO,CAACmF,SAAR,CAAkB,QAAlB,KAA+B,EAA/C,CAAA;EACA,IAAIC,SAAS,GAAGpB,OAAO,CAACmB,SAAR,CAAkB,QAAlB,KAA+B,EAA/C,CAAA;;AAEA,EAAA,KAAK,IAAIh9B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGk4B,IAAI,CAAC54B,MAAzB,EAAiCU,CAAC,EAAlC,EAAsC;AACpC,IAAA,IAAIk9B,QAAQ,GAAGhF,IAAI,CAACl4B,CAAD,CAAnB,CAAA;IACA,IAAIm9B,UAAU,GAAG,IAAjB,CAAA;IACA,IAAIC,OAAO,GAAG,KAAK,CAAnB,CAAA;AACA,IAAA,IAAIC,OAAO,GAAG,KAAK,CAAnB,CAJoC;AAKpC;;IAEA,QAAQH,QAAQ,CAAC39B,GAAjB;AACE,MAAA,KAAK,GAAL;AACE69B,QAAAA,OAAO,GAAGF,QAAQ,CAAClR,GAAT,GAAe,CAAzB,CAAA;AACAqR,QAAAA,OAAO,GAAGH,QAAQ,CAACnB,IAAT,GAAgB,CAA1B,CAAA;AACA,QAAA,IAAIuB,QAAQ,GAAGP,SAAS,CAACK,OAAD,CAAxB,CAAA;AACA,QAAA,IAAIG,QAAQ,GAAGR,SAAS,CAACK,OAAO,GAAG,CAAX,CAAxB,CAAA;AACA,QAAA,IAAII,KAAK,GAAGP,SAAS,CAACI,OAAD,CAArB,CAAA;QACA,IAAII,KAAK,GAAGR,SAAS,CAACI,OAAO,GAAG,CAAX,CAArB,CANF;;QAQE,IAAIl9B,KAAK,CAACm9B,QAAD,CAAL,IAAmBn9B,KAAK,CAACo9B,QAAD,CAA5B,EAAwC;AACtCD,UAAAA,QAAQ,GAAGE,KAAX,CAAA;AACAD,UAAAA,QAAQ,GAAGE,KAAX,CAAA;AACD,SAAA;;AAEDlB,QAAAA,UAAU,CAACl8B,IAAX,CAAgBi9B,QAAhB,EAA0BC,QAA1B,CAAA,CAAA;AACAf,QAAAA,UAAU,CAACn8B,IAAX,CAAgBm9B,KAAhB,EAAuBC,KAAvB,CAAA,CAAA;AACAhB,QAAAA,iBAAiB,CAACp8B,IAAlB,CAAuB47B,kBAAkB,CAACmB,OAAD,CAAzC,EAAoDnB,kBAAkB,CAACmB,OAAO,GAAG,CAAX,CAAtE,CAAA,CAAA;AACAV,QAAAA,iBAAiB,CAACr8B,IAAlB,CAAuB67B,kBAAkB,CAACmB,OAAD,CAAzC,EAAoDnB,kBAAkB,CAACmB,OAAO,GAAG,CAAX,CAAtE,CAAA,CAAA;QACAR,UAAU,CAACx8B,IAAX,CAAgBw7B,OAAO,CAAC6B,WAAR,CAAoBR,QAAQ,CAACnB,IAA7B,CAAhB,CAAA,CAAA;AACA,QAAA,MAAA;;AAEF,MAAA,KAAK,GAAL;AACE,QAAA,IAAI5D,MAAM,GAAG+E,QAAQ,CAAClR,GAAtB,CAAA;AACA,QAAA,IAAI2R,mBAAmB,GAAGb,mBAAmB,CAAC5B,gBAA9C,CAAA;AACA,QAAA,IAAI0C,KAAK,GAAGzB,WAAW,CAACR,WAAZ,CAAwB,CAACE,OAAO,CAACpH,GAAR,CAAYkJ,mBAAmB,CAAC,CAAD,CAA/B,EAAoCxF,MAApC,CAAD,EAA8C0D,OAAO,CAACpH,GAAR,CAAYkJ,mBAAmB,CAAC,CAAD,CAA/B,EAAoCxF,MAApC,CAA9C,CAAxB,CAAZ,CAAA;QACAkF,OAAO,GAAGlF,MAAM,GAAG,CAAnB,CAAA;QACAoE,UAAU,CAACl8B,IAAX,CAAgBu9B,KAAK,CAAC,CAAD,CAArB,EAA0BA,KAAK,CAAC,CAAD,CAA/B,CAAA,CAAA;AACApB,QAAAA,UAAU,CAACn8B,IAAX,CAAgB48B,SAAS,CAACI,OAAD,CAAzB,EAAoCJ,SAAS,CAACI,OAAO,GAAG,CAAX,CAA7C,CAAA,CAAA;QACA,IAAIQ,cAAc,GAAGvC,iBAAiB,CAACwB,mBAAD,EAAsBX,WAAtB,EAAmCN,OAAnC,EAA4C1D,MAA5C,CAAtC,CAAA;QACAsE,iBAAiB,CAACp8B,IAAlB,CAAuBw9B,cAAc,CAAC,CAAD,CAArC,EAA0CA,cAAc,CAAC,CAAD,CAAxD,CAAA,CAAA;AACAnB,QAAAA,iBAAiB,CAACr8B,IAAlB,CAAuB67B,kBAAkB,CAACmB,OAAD,CAAzC,EAAoDnB,kBAAkB,CAACmB,OAAO,GAAG,CAAX,CAAtE,CAAA,CAAA;QACAR,UAAU,CAACx8B,IAAX,CAAgBw7B,OAAO,CAAC6B,WAAR,CAAoBvF,MAApB,CAAhB,CAAA,CAAA;AACA,QAAA,MAAA;;AAEF,MAAA,KAAK,GAAL;AACEgF,QAAAA,UAAU,GAAG,KAAb,CAAA;AAnCJ,KAPoC;;;AA8CpC,IAAA,IAAIA,UAAJ,EAAgB;MACdR,MAAM,CAACt8B,IAAP,CAAY68B,QAAZ,CAAA,CAAA;AACAN,MAAAA,aAAa,CAACv8B,IAAd,CAAmBu8B,aAAa,CAACt9B,MAAjC,CAAA,CAAA;AACD,KAAA;AACF,GAtE2J;AAuE5J;;;AAGAs9B,EAAAA,aAAa,CAACkB,IAAd,CAAmB,UAAUt+B,CAAV,EAAaC,CAAb,EAAgB;IACjC,OAAOo9B,UAAU,CAACr9B,CAAD,CAAV,GAAgBq9B,UAAU,CAACp9B,CAAD,CAAjC,CAAA;GADF,CAAA,CAAA;AAGA,EAAA,IAAI4J,GAAG,GAAGkzB,UAAU,CAACj9B,MAArB,CAAA;AACA,EAAA,IAAIy+B,gBAAgB,GAAGC,kBAAkB,CAAC30B,GAAD,CAAzC,CAAA;AACA,EAAA,IAAI40B,gBAAgB,GAAGD,kBAAkB,CAAC30B,GAAD,CAAzC,CAAA;AACA,EAAA,IAAI60B,uBAAuB,GAAGF,kBAAkB,CAAC30B,GAAD,CAAhD,CAAA;AACA,EAAA,IAAI80B,uBAAuB,GAAGH,kBAAkB,CAAC30B,GAAD,CAAhD,CAAA;EACA,IAAI+0B,YAAY,GAAG,EAAnB,CAAA;;AAEA,EAAA,KAAK,IAAIp+B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG48B,aAAa,CAACt9B,MAAlC,EAA0CU,CAAC,EAA3C,EAA+C;AAC7C,IAAA,IAAIgsB,GAAG,GAAG4Q,aAAa,CAAC58B,CAAD,CAAvB,CAAA;AACA,IAAA,IAAIq+B,EAAE,GAAGr+B,CAAC,GAAG,CAAb,CAAA;AACA,IAAA,IAAIs+B,IAAI,GAAGtS,GAAG,GAAG,CAAjB,CAAA;AACA+R,IAAAA,gBAAgB,CAACM,EAAD,CAAhB,GAAuB9B,UAAU,CAAC+B,IAAD,CAAjC,CAAA;IACAP,gBAAgB,CAACM,EAAE,GAAG,CAAN,CAAhB,GAA2B9B,UAAU,CAAC+B,IAAI,GAAG,CAAR,CAArC,CAAA;AACAL,IAAAA,gBAAgB,CAACI,EAAD,CAAhB,GAAuB7B,UAAU,CAAC8B,IAAD,CAAjC,CAAA;IACAL,gBAAgB,CAACI,EAAE,GAAG,CAAN,CAAhB,GAA2B7B,UAAU,CAAC8B,IAAI,GAAG,CAAR,CAArC,CAAA;AACAJ,IAAAA,uBAAuB,CAACG,EAAD,CAAvB,GAA8B5B,iBAAiB,CAAC6B,IAAD,CAA/C,CAAA;IACAJ,uBAAuB,CAACG,EAAE,GAAG,CAAN,CAAvB,GAAkC5B,iBAAiB,CAAC6B,IAAI,GAAG,CAAR,CAAnD,CAAA;AACAH,IAAAA,uBAAuB,CAACE,EAAD,CAAvB,GAA8B3B,iBAAiB,CAAC4B,IAAD,CAA/C,CAAA;IACAH,uBAAuB,CAACE,EAAE,GAAG,CAAN,CAAvB,GAAkC3B,iBAAiB,CAAC4B,IAAI,GAAG,CAAR,CAAnD,CAAA;AACAF,IAAAA,YAAY,CAACp+B,CAAD,CAAZ,GAAkB28B,MAAM,CAAC3Q,GAAD,CAAxB,CAAA;AACD,GAAA;;EAED,OAAO;AACLuS,IAAAA,OAAO,EAAER,gBADJ;AAELS,IAAAA,IAAI,EAAEP,gBAFD;AAGLQ,IAAAA,gBAAgB,EAAEP,uBAHb;AAILQ,IAAAA,aAAa,EAAEP,uBAJV;AAKLxB,IAAAA,MAAM,EAAEyB,YAAAA;GALV,CAAA;AAOD;;AC7KD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BA,IAAIO,SAAO,GAAG7iC,IAAI,CAAC8iC,GAAnB,CAAA;AACA,IAAIC,SAAO,GAAG/iC,IAAI,CAAC0iB,GAAnB,CAAA;;AAEA,SAASsgB,aAAT,CAAqB/hC,CAArB,EAAwBC,CAAxB,EAA2B;EACzB,OAAOmD,KAAK,CAACpD,CAAD,CAAL,IAAYoD,KAAK,CAACnD,CAAD,CAAxB,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;;;AAGA,SAAS+hC,WAAT,CAAqBzc,GAArB,EAA0BhU,MAA1B,EAAkC2b,KAAlC,EAAyC+U,MAAzC,EAAiDC,MAAjD,EAAyDC,GAAzD,EAA8DzwB,MAA9D,EAAsEihB,cAAtE,EAAsFI,YAAtF,EAAoG;AAClG,EAAA,IAAIqP,KAAJ,CAAA;AACA,EAAA,IAAIC,KAAJ,CAAA;AACA,EAAA,IAAIC,IAAJ,CAAA;AACA,EAAA,IAAIC,IAAJ,CAAA;AACA,EAAA,IAAIC,IAAJ,CAAA;AACA,EAAA,IAAIC,IAAJ,CAAA;EACA,IAAIxT,GAAG,GAAG/B,KAAV,CAAA;EACA,IAAIze,CAAC,GAAG,CAAR,CAAA;;AAEA,EAAA,OAAOA,CAAC,GAAGwzB,MAAX,EAAmBxzB,CAAC,EAApB,EAAwB;AACtB,IAAA,IAAIzO,CAAC,GAAGuR,MAAM,CAAC0d,GAAG,GAAG,CAAP,CAAd,CAAA;IACA,IAAIhvB,CAAC,GAAGsR,MAAM,CAAC0d,GAAG,GAAG,CAAN,GAAU,CAAX,CAAd,CAAA;;AAEA,IAAA,IAAIA,GAAG,IAAIiT,MAAP,IAAiBjT,GAAG,GAAG,CAA3B,EAA8B;AAC5B,MAAA,MAAA;AACD,KAAA;;AAED,IAAA,IAAI8S,aAAW,CAAC/hC,CAAD,EAAIC,CAAJ,CAAf,EAAuB;AACrB,MAAA,IAAI8yB,YAAJ,EAAkB;AAChB9D,QAAAA,GAAG,IAAIkT,GAAP,CAAA;AACA,QAAA,SAAA;AACD,OAAA;;AAED,MAAA,MAAA;AACD,KAAA;;IAED,IAAIlT,GAAG,KAAK/B,KAAZ,EAAmB;AACjB3H,MAAAA,GAAG,CAAC4c,GAAG,GAAG,CAAN,GAAU,QAAV,GAAqB,QAAtB,CAAH,CAAmCniC,CAAnC,EAAsCC,CAAtC,CAAA,CAAA;AACAqiC,MAAAA,IAAI,GAAGtiC,CAAP,CAAA;AACAuiC,MAAAA,IAAI,GAAGtiC,CAAP,CAAA;AACD,KAJD,MAIO;AACL,MAAA,IAAI85B,EAAE,GAAG/5B,CAAC,GAAGoiC,KAAb,CAAA;AACA,MAAA,IAAIpI,EAAE,GAAG/5B,CAAC,GAAGoiC,KAAb,CAFK;;MAIL,IAAItI,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAf,GAAoB,GAAxB,EAA6B;AAC3B/K,QAAAA,GAAG,IAAIkT,GAAP,CAAA;AACA,QAAA,SAAA;AACD,OAAA;;MAED,IAAIzwB,MAAM,GAAG,CAAb,EAAgB;AACd,QAAA,IAAIgxB,OAAO,GAAGzT,GAAG,GAAGkT,GAApB,CAAA;AACA,QAAA,IAAI1B,KAAK,GAAGlvB,MAAM,CAACmxB,OAAO,GAAG,CAAX,CAAlB,CAAA;QACA,IAAIhC,KAAK,GAAGnvB,MAAM,CAACmxB,OAAO,GAAG,CAAV,GAAc,CAAf,CAAlB,CAHc;;QAKd,OAAOjC,KAAK,KAAKzgC,CAAV,IAAe0gC,KAAK,KAAKzgC,CAAzB,IAA8BwO,CAAC,GAAGwzB,MAAzC,EAAiD;UAC/CxzB,CAAC,EAAA,CAAA;AACDi0B,UAAAA,OAAO,IAAIP,GAAX,CAAA;AACAlT,UAAAA,GAAG,IAAIkT,GAAP,CAAA;AACA1B,UAAAA,KAAK,GAAGlvB,MAAM,CAACmxB,OAAO,GAAG,CAAX,CAAd,CAAA;UACAhC,KAAK,GAAGnvB,MAAM,CAACmxB,OAAO,GAAG,CAAV,GAAc,CAAf,CAAd,CAAA;AACA1iC,UAAAA,CAAC,GAAGuR,MAAM,CAAC0d,GAAG,GAAG,CAAP,CAAV,CAAA;UACAhvB,CAAC,GAAGsR,MAAM,CAAC0d,GAAG,GAAG,CAAN,GAAU,CAAX,CAAV,CAAA;UACA8K,EAAE,GAAG/5B,CAAC,GAAGoiC,KAAT,CAAA;UACApI,EAAE,GAAG/5B,CAAC,GAAGoiC,KAAT,CAAA;AACD,SAAA;;AAED,QAAA,IAAIM,IAAI,GAAGl0B,CAAC,GAAG,CAAf,CAAA;;AAEA,QAAA,IAAIskB,YAAJ,EAAkB;AAChB;UACA,OAAOgP,aAAW,CAACtB,KAAD,EAAQC,KAAR,CAAX,IAA6BiC,IAAI,GAAGV,MAA3C,EAAmD;YACjDU,IAAI,EAAA,CAAA;AACJD,YAAAA,OAAO,IAAIP,GAAX,CAAA;AACA1B,YAAAA,KAAK,GAAGlvB,MAAM,CAACmxB,OAAO,GAAG,CAAX,CAAd,CAAA;YACAhC,KAAK,GAAGnvB,MAAM,CAACmxB,OAAO,GAAG,CAAV,GAAc,CAAf,CAAd,CAAA;AACD,WAAA;AACF,SAAA;;QAED,IAAIE,YAAY,GAAG,GAAnB,CAAA;QACA,IAAIC,EAAE,GAAG,CAAT,CAAA;QACA,IAAIC,EAAE,GAAG,CAAT,CAAA;QACA,IAAIC,QAAQ,GAAG,KAAK,CAApB,CAAA;AACA,QAAA,IAAIC,QAAQ,GAAG,KAAK,CAApB,CAjCc;;QAmCd,IAAIL,IAAI,IAAIV,MAAR,IAAkBF,aAAW,CAACtB,KAAD,EAAQC,KAAR,CAAjC,EAAiD;AAC/C8B,UAAAA,IAAI,GAAGxiC,CAAP,CAAA;AACAyiC,UAAAA,IAAI,GAAGxiC,CAAP,CAAA;AACD,SAHD,MAGO;UACL4iC,EAAE,GAAGpC,KAAK,GAAG2B,KAAb,CAAA;UACAU,EAAE,GAAGpC,KAAK,GAAG2B,KAAb,CAAA;AACA,UAAA,IAAIY,GAAG,GAAGjjC,CAAC,GAAGoiC,KAAd,CAAA;AACA,UAAA,IAAIc,GAAG,GAAGzC,KAAK,GAAGzgC,CAAlB,CAAA;AACA,UAAA,IAAImjC,GAAG,GAAGljC,CAAC,GAAGoiC,KAAd,CAAA;AACA,UAAA,IAAIe,GAAG,GAAG1C,KAAK,GAAGzgC,CAAlB,CAAA;UACA,IAAIojC,UAAU,GAAG,KAAK,CAAtB,CAAA;UACA,IAAIC,UAAU,GAAG,KAAK,CAAtB,CAAA;;UAEA,IAAI3Q,cAAc,KAAK,GAAvB,EAA4B;AAC1B0Q,YAAAA,UAAU,GAAGtkC,IAAI,CAACyC,GAAL,CAASyhC,GAAT,CAAb,CAAA;AACAK,YAAAA,UAAU,GAAGvkC,IAAI,CAACyC,GAAL,CAAS0hC,GAAT,CAAb,CAAA;YACA,IAAIK,KAAK,GAAGV,EAAE,GAAG,CAAL,GAAS,CAAT,GAAa,CAAC,CAA1B,CAAA;AACAL,YAAAA,IAAI,GAAGxiC,CAAC,GAAGujC,KAAK,GAAGF,UAAR,GAAqB3xB,MAAhC,CAAA;AACA+wB,YAAAA,IAAI,GAAGxiC,CAAP,CAAA;AACA8iC,YAAAA,QAAQ,GAAG/iC,CAAC,GAAGujC,KAAK,GAAGD,UAAR,GAAqB5xB,MAApC,CAAA;AACAsxB,YAAAA,QAAQ,GAAG/iC,CAAX,CAAA;AACD,WARD,MAQO,IAAI0yB,cAAc,KAAK,GAAvB,EAA4B;AACjC0Q,YAAAA,UAAU,GAAGtkC,IAAI,CAACyC,GAAL,CAAS2hC,GAAT,CAAb,CAAA;AACAG,YAAAA,UAAU,GAAGvkC,IAAI,CAACyC,GAAL,CAAS4hC,GAAT,CAAb,CAAA;YACA,IAAII,KAAK,GAAGV,EAAE,GAAG,CAAL,GAAS,CAAT,GAAa,CAAC,CAA1B,CAAA;AACAN,YAAAA,IAAI,GAAGxiC,CAAP,CAAA;AACAyiC,YAAAA,IAAI,GAAGxiC,CAAC,GAAGujC,KAAK,GAAGH,UAAR,GAAqB3xB,MAAhC,CAAA;AACAqxB,YAAAA,QAAQ,GAAG/iC,CAAX,CAAA;AACAgjC,YAAAA,QAAQ,GAAG/iC,CAAC,GAAGujC,KAAK,GAAGF,UAAR,GAAqB5xB,MAApC,CAAA;AACD,WARM,MAQA;AACL2xB,YAAAA,UAAU,GAAGtkC,IAAI,CAAC0kC,IAAL,CAAUR,GAAG,GAAGA,GAAN,GAAYE,GAAG,GAAGA,GAA5B,CAAb,CAAA;AACAG,YAAAA,UAAU,GAAGvkC,IAAI,CAAC0kC,IAAL,CAAUP,GAAG,GAAGA,GAAN,GAAYE,GAAG,GAAGA,GAA5B,CAAb,CAFK;;AAILR,YAAAA,YAAY,GAAGU,UAAU,IAAIA,UAAU,GAAGD,UAAjB,CAAzB,CAAA;YACAb,IAAI,GAAGxiC,CAAC,GAAG6iC,EAAE,GAAGnxB,MAAL,IAAe,CAAIkxB,GAAAA,YAAnB,CAAX,CAAA;YACAH,IAAI,GAAGxiC,CAAC,GAAG6iC,EAAE,GAAGpxB,MAAL,IAAe,CAAIkxB,GAAAA,YAAnB,CAAX,CANK;;AAQLG,YAAAA,QAAQ,GAAG/iC,CAAC,GAAG6iC,EAAE,GAAGnxB,MAAL,GAAckxB,YAA7B,CAAA;YACAI,QAAQ,GAAG/iC,CAAC,GAAG6iC,EAAE,GAAGpxB,MAAL,GAAckxB,YAA7B,CATK;AAUL;;YAEAG,QAAQ,GAAGnB,SAAO,CAACmB,QAAD,EAAWjB,SAAO,CAACrB,KAAD,EAAQzgC,CAAR,CAAlB,CAAlB,CAAA;YACAgjC,QAAQ,GAAGpB,SAAO,CAACoB,QAAD,EAAWlB,SAAO,CAACpB,KAAD,EAAQzgC,CAAR,CAAlB,CAAlB,CAAA;YACA8iC,QAAQ,GAAGjB,SAAO,CAACiB,QAAD,EAAWnB,SAAO,CAACnB,KAAD,EAAQzgC,CAAR,CAAlB,CAAlB,CAAA;AACAgjC,YAAAA,QAAQ,GAAGlB,SAAO,CAACkB,QAAD,EAAWpB,SAAO,CAAClB,KAAD,EAAQzgC,CAAR,CAAlB,CAAlB,CAfK;;YAiBL4iC,EAAE,GAAGE,QAAQ,GAAG/iC,CAAhB,CAAA;YACA8iC,EAAE,GAAGE,QAAQ,GAAG/iC,CAAhB,CAAA;AACAuiC,YAAAA,IAAI,GAAGxiC,CAAC,GAAG6iC,EAAE,GAAGQ,UAAL,GAAkBC,UAA7B,CAAA;YACAb,IAAI,GAAGxiC,CAAC,GAAG6iC,EAAE,GAAGO,UAAL,GAAkBC,UAA7B,CApBK;AAqBL;;YAEAd,IAAI,GAAGZ,SAAO,CAACY,IAAD,EAAOV,SAAO,CAACM,KAAD,EAAQpiC,CAAR,CAAd,CAAd,CAAA;YACAyiC,IAAI,GAAGb,SAAO,CAACa,IAAD,EAAOX,SAAO,CAACO,KAAD,EAAQpiC,CAAR,CAAd,CAAd,CAAA;YACAuiC,IAAI,GAAGV,SAAO,CAACU,IAAD,EAAOZ,SAAO,CAACQ,KAAD,EAAQpiC,CAAR,CAAd,CAAd,CAAA;AACAyiC,YAAAA,IAAI,GAAGX,SAAO,CAACW,IAAD,EAAOb,SAAO,CAACS,KAAD,EAAQpiC,CAAR,CAAd,CAAd,CA1BK;;YA4BL4iC,EAAE,GAAG7iC,CAAC,GAAGwiC,IAAT,CAAA;YACAM,EAAE,GAAG7iC,CAAC,GAAGwiC,IAAT,CAAA;AACAM,YAAAA,QAAQ,GAAG/iC,CAAC,GAAG6iC,EAAE,GAAGS,UAAL,GAAkBD,UAAjC,CAAA;AACAL,YAAAA,QAAQ,GAAG/iC,CAAC,GAAG6iC,EAAE,GAAGQ,UAAL,GAAkBD,UAAjC,CAAA;AACD,WAAA;AACF,SAAA;;AAED9d,QAAAA,GAAG,CAACnlB,aAAJ,CAAkBkiC,IAAlB,EAAwBC,IAAxB,EAA8BC,IAA9B,EAAoCC,IAApC,EAA0CziC,CAA1C,EAA6CC,CAA7C,CAAA,CAAA;AACAqiC,QAAAA,IAAI,GAAGS,QAAP,CAAA;AACAR,QAAAA,IAAI,GAAGS,QAAP,CAAA;AACD,OAtGD,MAsGO;AACLzd,QAAAA,GAAG,CAACplB,MAAJ,CAAWH,CAAX,EAAcC,CAAd,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;AAEDmiC,IAAAA,KAAK,GAAGpiC,CAAR,CAAA;AACAqiC,IAAAA,KAAK,GAAGpiC,CAAR,CAAA;AACAgvB,IAAAA,GAAG,IAAIkT,GAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAO1zB,CAAP,CAAA;AACD,CAAA;;AAED,IAAIi1B,eAAe;AACnB;AACA,YAAY;AACV,EAAA,SAASA,eAAT,GAA2B;IACzB,IAAKhyB,CAAAA,MAAL,GAAc,CAAd,CAAA;IACA,IAAKiyB,CAAAA,gBAAL,GAAwB,IAAxB,CAAA;AACD,GAAA;;AAED,EAAA,OAAOD,eAAP,CAAA;AACD,CAPD,EAFA,CAAA;;AAWA,IAAIE,UAAU;AACd;AACA,UAAUngB,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACkgB,UAAD,EAAangB,MAAb,CAAT,CAAA;;EAEA,SAASmgB,UAAT,CAAoB78B,IAApB,EAA0B;IACxB,IAAI4c,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB7c,IAAlB,CAAA,IAA2B,IAAvC,CAAA;;IAEA4c,KAAK,CAACrR,IAAN,GAAa,aAAb,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDigB,EAAAA,UAAU,CAACrkC,SAAX,CAAqBskC,eAArB,GAAuC,YAAY;IACjD,OAAO;AACL7/B,MAAAA,MAAM,EAAE,MADH;AAELF,MAAAA,IAAI,EAAE,IAAA;KAFR,CAAA;GADF,CAAA;;AAOA8/B,EAAAA,UAAU,CAACrkC,SAAX,CAAqBukC,eAArB,GAAuC,YAAY;IACjD,OAAO,IAAIJ,eAAJ,EAAP,CAAA;GADF,CAAA;;EAIAE,UAAU,CAACrkC,SAAX,CAAqBwL,SAArB,GAAiC,UAAUwa,GAAV,EAAe1a,KAAf,EAAsB;AACrD,IAAA,IAAI0G,MAAM,GAAG1G,KAAK,CAAC0G,MAAnB,CAAA;IACA,IAAItO,CAAC,GAAG,CAAR,CAAA;IACA,IAAIqJ,GAAG,GAAGiF,MAAM,CAAChP,MAAP,GAAgB,CAA1B,CAHqD;;IAKrD,IAAIsI,KAAK,CAACkoB,YAAV,EAAwB;AACtB;AACA,MAAA,OAAOzmB,GAAG,GAAG,CAAb,EAAgBA,GAAG,EAAnB,EAAuB;QACrB,IAAI,CAACy1B,aAAW,CAACxwB,MAAM,CAACjF,GAAG,GAAG,CAAN,GAAU,CAAX,CAAP,EAAsBiF,MAAM,CAACjF,GAAG,GAAG,CAAN,GAAU,CAAX,CAA5B,CAAhB,EAA4D;AAC1D,UAAA,MAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,OAAOrJ,CAAC,GAAGqJ,GAAX,EAAgBrJ,CAAC,EAAjB,EAAqB;AACnB,QAAA,IAAI,CAAC8+B,aAAW,CAACxwB,MAAM,CAACtO,CAAC,GAAG,CAAL,CAAP,EAAgBsO,MAAM,CAACtO,CAAC,GAAG,CAAJ,GAAQ,CAAT,CAAtB,CAAhB,EAAoD;AAClD,UAAA,MAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;IAED,OAAOA,CAAC,GAAGqJ,GAAX,EAAgB;AACdrJ,MAAAA,CAAC,IAAI++B,WAAW,CAACzc,GAAD,EAAMhU,MAAN,EAActO,CAAd,EAAiBqJ,GAAjB,EAAsBA,GAAtB,EAA2B,CAA3B,EAA8BzB,KAAK,CAAC6G,MAApC,EAA4C7G,KAAK,CAAC8nB,cAAlD,EAAkE9nB,KAAK,CAACkoB,YAAxE,CAAX,GAAmG,CAAxG,CAAA;AACD,KAAA;GAtBH,CAAA;;EAyBA6Q,UAAU,CAACrkC,SAAX,CAAqBwkC,UAArB,GAAkC,UAAUC,IAAV,EAAgB1G,GAAhB,EAAqB;IACrD,IAAI,CAAC,IAAK1yB,CAAAA,IAAV,EAAgB;AACd,MAAA,IAAA,CAAK8H,eAAL,EAAA,CAAA;AACA,MAAA,IAAA,CAAK3H,SAAL,CAAe,IAAA,CAAKH,IAApB,EAA0B,KAAKC,KAA/B,CAAA,CAAA;AACD,KAAA;;IAED,IAAID,IAAI,GAAG,IAAA,CAAKA,IAAhB,CAAA;AACA,IAAA,IAAI6oB,IAAI,GAAG7oB,IAAI,CAAC6oB,IAAhB,CAAA;AACA,IAAA,IAAIwQ,GAAG,GAAGv0B,SAAS,CAACu0B,GAApB,CAAA;AACA,IAAA,IAAIpiC,EAAJ,CAAA;AACA,IAAA,IAAIC,EAAJ,CAAA;AACA,IAAA,IAAIoiC,MAAM,GAAG5G,GAAG,KAAK,GAArB,CAAA;IACA,IAAI6G,KAAK,GAAG,EAAZ,CAAA;;IAEA,KAAK,IAAIlhC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwwB,IAAI,CAAClxB,MAAzB,GAAkC;AAChC,MAAA,IAAIC,GAAG,GAAGixB,IAAI,CAACxwB,CAAC,EAAF,CAAd,CAAA;MACA,IAAIjD,CAAC,GAAG,KAAK,CAAb,CAAA;MACA,IAAIC,CAAC,GAAG,KAAK,CAAb,CAAA;MACA,IAAII,EAAE,GAAG,KAAK,CAAd,CAAA;MACA,IAAIC,EAAE,GAAG,KAAK,CAAd,CAAA;MACA,IAAIC,EAAE,GAAG,KAAK,CAAd,CAAA;MACA,IAAIC,EAAE,GAAG,KAAK,CAAd,CAAA;MACA,IAAI4jC,CAAC,GAAG,KAAK,CAAb,CAAA;;AAEA,MAAA,QAAQ5hC,GAAR;QACE,KAAKyhC,GAAG,CAACI,CAAT;AACExiC,UAAAA,EAAE,GAAG4xB,IAAI,CAACxwB,CAAC,EAAF,CAAT,CAAA;AACAnB,UAAAA,EAAE,GAAG2xB,IAAI,CAACxwB,CAAC,EAAF,CAAT,CAAA;AACA,UAAA,MAAA;;QAEF,KAAKghC,GAAG,CAACK,CAAT;AACEtkC,UAAAA,CAAC,GAAGyzB,IAAI,CAACxwB,CAAC,EAAF,CAAR,CAAA;AACAhD,UAAAA,CAAC,GAAGwzB,IAAI,CAACxwB,CAAC,EAAF,CAAR,CAAA;UACAmhC,CAAC,GAAGF,MAAM,GAAG,CAACF,IAAI,GAAGniC,EAAR,KAAe7B,CAAC,GAAG6B,EAAnB,CAAH,GAA4B,CAACmiC,IAAI,GAAGliC,EAAR,KAAe7B,CAAC,GAAG6B,EAAnB,CAAtC,CAAA;;AAEA,UAAA,IAAIsiC,CAAC,IAAI,CAAL,IAAUA,CAAC,IAAI,CAAnB,EAAsB;YACpB,IAAIjhC,GAAG,GAAG+gC,MAAM,GAAG,CAACjkC,CAAC,GAAG6B,EAAL,IAAWsiC,CAAX,GAAetiC,EAAlB,GAAuB,CAAC9B,CAAC,GAAG6B,EAAL,IAAWuiC,CAAX,GAAeviC,EAAtD,CAAA;AACA,YAAA,OAAOqiC,MAAM,GAAG,CAACF,IAAD,EAAO7gC,GAAP,CAAH,GAAiB,CAACA,GAAD,EAAM6gC,IAAN,CAA9B,CAAA;AACD,WAAA;;AAEDniC,UAAAA,EAAE,GAAG7B,CAAL,CAAA;AACA8B,UAAAA,EAAE,GAAG7B,CAAL,CAAA;AACA,UAAA,MAAA;;QAEF,KAAKgkC,GAAG,CAACM,CAAT;AACEvkC,UAAAA,CAAC,GAAGyzB,IAAI,CAACxwB,CAAC,EAAF,CAAR,CAAA;AACAhD,UAAAA,CAAC,GAAGwzB,IAAI,CAACxwB,CAAC,EAAF,CAAR,CAAA;AACA5C,UAAAA,EAAE,GAAGozB,IAAI,CAACxwB,CAAC,EAAF,CAAT,CAAA;AACA3C,UAAAA,EAAE,GAAGmzB,IAAI,CAACxwB,CAAC,EAAF,CAAT,CAAA;AACA1C,UAAAA,EAAE,GAAGkzB,IAAI,CAACxwB,CAAC,EAAF,CAAT,CAAA;AACAzC,UAAAA,EAAE,GAAGizB,IAAI,CAACxwB,CAAC,EAAF,CAAT,CAAA;AACA,UAAA,IAAIuhC,KAAK,GAAGN,MAAM,GAAGO,WAAW,CAAC5iC,EAAD,EAAK7B,CAAL,EAAQK,EAAR,EAAYE,EAAZ,EAAgByjC,IAAhB,EAAsBG,KAAtB,CAAd,GAA6CM,WAAW,CAAC3iC,EAAD,EAAK7B,CAAL,EAAQK,EAAR,EAAYE,EAAZ,EAAgBwjC,IAAhB,EAAsBG,KAAtB,CAA1E,CAAA;;UAEA,IAAIK,KAAK,GAAG,CAAZ,EAAe;YACb,KAAK,IAAI9iB,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAG8iB,KAAxB,EAA+B9iB,GAAG,EAAlC,EAAsC;AACpC,cAAA,IAAIgjB,GAAG,GAAGP,KAAK,CAACziB,GAAD,CAAf,CAAA;;AAEA,cAAA,IAAIgjB,GAAG,IAAI,CAAP,IAAYA,GAAG,IAAI,CAAvB,EAA0B;AACxB,gBAAA,IAAIvhC,GAAG,GAAG+gC,MAAM,GAAGS,OAAO,CAAC7iC,EAAD,EAAK7B,CAAL,EAAQK,EAAR,EAAYE,EAAZ,EAAgBkkC,GAAhB,CAAV,GAAiCC,OAAO,CAAC9iC,EAAD,EAAK7B,CAAL,EAAQK,EAAR,EAAYE,EAAZ,EAAgBmkC,GAAhB,CAAxD,CAAA;AACA,gBAAA,OAAOR,MAAM,GAAG,CAACF,IAAD,EAAO7gC,GAAP,CAAH,GAAiB,CAACA,GAAD,EAAM6gC,IAAN,CAA9B,CAAA;AACD,eAAA;AACF,aAAA;AACF,WAAA;;AAEDniC,UAAAA,EAAE,GAAGtB,EAAL,CAAA;AACAuB,UAAAA,EAAE,GAAGtB,EAAL,CAAA;AACA,UAAA,MAAA;AA1CJ,OAAA;AA4CD,KAAA;GApEH,CAAA;;AAuEA,EAAA,OAAOojC,UAAP,CAAA;AACD,CAtHD,CAsHE9uB,IAtHF,CAFA,CAAA;;AA4HA,IAAI8vB,cAAc;AAClB;AACA,UAAUnhB,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACkhB,cAAD,EAAiBnhB,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAASmhB,cAAT,GAA0B;AACxB,IAAA,OAAOnhB,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;;AAED,EAAA,OAAO0hC,cAAP,CAAA;AACD,CARD,CAQElB,eARF,CAFA,CAAA;;AAYA,IAAImB,SAAS;AACb;AACA,UAAUphB,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACmhB,SAAD,EAAYphB,MAAZ,CAAT,CAAA;;EAEA,SAASohB,SAAT,CAAmB99B,IAAnB,EAAyB;IACvB,IAAI4c,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB7c,IAAlB,CAAA,IAA2B,IAAvC,CAAA;;IAEA4c,KAAK,CAACrR,IAAN,GAAa,YAAb,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDkhB,EAAAA,SAAS,CAACtlC,SAAV,CAAoBukC,eAApB,GAAsC,YAAY;IAChD,OAAO,IAAIc,cAAJ,EAAP,CAAA;GADF,CAAA;;EAIAC,SAAS,CAACtlC,SAAV,CAAoBwL,SAApB,GAAgC,UAAUwa,GAAV,EAAe1a,KAAf,EAAsB;AACpD,IAAA,IAAI0G,MAAM,GAAG1G,KAAK,CAAC0G,MAAnB,CAAA;AACA,IAAA,IAAIuzB,eAAe,GAAGj6B,KAAK,CAACi6B,eAA5B,CAAA;IACA,IAAI7hC,CAAC,GAAG,CAAR,CAAA;AACA,IAAA,IAAIqJ,GAAG,GAAGiF,MAAM,CAAChP,MAAP,GAAgB,CAA1B,CAAA;AACA,IAAA,IAAIowB,cAAc,GAAG9nB,KAAK,CAAC8nB,cAA3B,CAAA;;IAEA,IAAI9nB,KAAK,CAACkoB,YAAV,EAAwB;AACtB;AACA,MAAA,OAAOzmB,GAAG,GAAG,CAAb,EAAgBA,GAAG,EAAnB,EAAuB;QACrB,IAAI,CAACy1B,aAAW,CAACxwB,MAAM,CAACjF,GAAG,GAAG,CAAN,GAAU,CAAX,CAAP,EAAsBiF,MAAM,CAACjF,GAAG,GAAG,CAAN,GAAU,CAAX,CAA5B,CAAhB,EAA4D;AAC1D,UAAA,MAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,OAAOrJ,CAAC,GAAGqJ,GAAX,EAAgBrJ,CAAC,EAAjB,EAAqB;AACnB,QAAA,IAAI,CAAC8+B,aAAW,CAACxwB,MAAM,CAACtO,CAAC,GAAG,CAAL,CAAP,EAAgBsO,MAAM,CAACtO,CAAC,GAAG,CAAJ,GAAQ,CAAT,CAAtB,CAAhB,EAAoD;AAClD,UAAA,MAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;IAED,OAAOA,CAAC,GAAGqJ,GAAX,EAAgB;MACd,IAAImC,CAAC,GAAGuzB,WAAW,CAACzc,GAAD,EAAMhU,MAAN,EAActO,CAAd,EAAiBqJ,GAAjB,EAAsBA,GAAtB,EAA2B,CAA3B,EAA8BzB,KAAK,CAAC6G,MAApC,EAA4CihB,cAA5C,EAA4D9nB,KAAK,CAACkoB,YAAlE,CAAnB,CAAA;MACAiP,WAAW,CAACzc,GAAD,EAAMuf,eAAN,EAAuB7hC,CAAC,GAAGwL,CAAJ,GAAQ,CAA/B,EAAkCA,CAAlC,EAAqCnC,GAArC,EAA0C,CAAC,CAA3C,EAA8CzB,KAAK,CAACk6B,eAApD,EAAqEpS,cAArE,EAAqF9nB,KAAK,CAACkoB,YAA3F,CAAX,CAAA;MACA9vB,CAAC,IAAIwL,CAAC,GAAG,CAAT,CAAA;AACA8W,MAAAA,GAAG,CAACjjB,SAAJ,EAAA,CAAA;AACD,KAAA;GA3BH,CAAA;;AA8BA,EAAA,OAAOuiC,SAAP,CAAA;AACD,CA7CD,CA6CE/vB,IA7CF,CAFA;;AC1WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,SAASkwB,kBAAT,CAA4BC,SAA5B,EAAuCC,YAAvC,EAAqDjP,WAArD,EAAkEkP,IAAlE,EAAwEC,MAAxE,EAAgF;AAC9E,EAAA,IAAIjjC,IAAI,GAAG8iC,SAAS,CAACI,OAAV,EAAX,CAAA;AACA,EAAA,IAAIrlC,CAAC,GAAGmC,IAAI,CAACnC,CAAb,CAAA;AACA,EAAA,IAAIC,CAAC,GAAGkC,IAAI,CAAClC,CAAb,CAAA;AACA,EAAA,IAAI+I,KAAK,GAAG7G,IAAI,CAAC6G,KAAjB,CAAA;AACA,EAAA,IAAIC,MAAM,GAAG9G,IAAI,CAAC8G,MAAlB,CAAA;AACA,EAAA,IAAI9D,SAAS,GAAG8wB,WAAW,CAACyB,GAAZ,CAAgB,CAAC,WAAD,EAAc,OAAd,CAAhB,CAA2C,IAAA,CAA3D,CAN8E;;EAQ9E13B,CAAC,IAAImF,SAAS,GAAG,CAAjB,CAAA;EACAlF,CAAC,IAAIkF,SAAS,GAAG,CAAjB,CAAA;AACA6D,EAAAA,KAAK,IAAI7D,SAAT,CAAA;EACA8D,MAAM,IAAI9D,SAAV,CAX8E;;AAa9EnF,EAAAA,CAAC,GAAGjB,IAAI,CAACumC,KAAL,CAAWtlC,CAAX,CAAJ,CAAA;AACAgJ,EAAAA,KAAK,GAAGjK,IAAI,CAACiD,KAAL,CAAWgH,KAAX,CAAR,CAAA;AACA,EAAA,IAAIoQ,QAAQ,GAAG,IAAIkd,MAAJ,CAAiB;AAC9BzrB,IAAAA,KAAK,EAAE;AACL7K,MAAAA,CAAC,EAAEA,CADE;AAELC,MAAAA,CAAC,EAAEA,CAFE;AAGL+I,MAAAA,KAAK,EAAEA,KAHF;AAILC,MAAAA,MAAM,EAAEA,MAAAA;AAJH,KAAA;AADuB,GAAjB,CAAf,CAAA;;AASA,EAAA,IAAIi8B,YAAJ,EAAkB;AAChB,IAAA,IAAInI,QAAQ,GAAGkI,SAAS,CAACjI,WAAV,EAAf,CAAA;AACA,IAAA,IAAIuI,YAAY,GAAGxI,QAAQ,CAACwI,YAAT,EAAnB,CAAA;AACA,IAAA,IAAIC,cAAc,GAAGzI,QAAQ,CAAC0I,OAA9B,CAAA;;AAEA,IAAA,IAAIF,YAAJ,EAAkB;AAChB,MAAA,IAAIC,cAAJ,EAAoB;AAClBpsB,QAAAA,QAAQ,CAACvO,KAAT,CAAe7K,CAAf,IAAoBgJ,KAApB,CAAA;AACD,OAAA;;AAEDoQ,MAAAA,QAAQ,CAACvO,KAAT,CAAe7B,KAAf,GAAuB,CAAvB,CAAA;AACD,KAND,MAMO;MACL,IAAI,CAACw8B,cAAL,EAAqB;AACnBpsB,QAAAA,QAAQ,CAACvO,KAAT,CAAe5K,CAAf,IAAoBgJ,MAApB,CAAA;AACD,OAAA;;AAEDmQ,MAAAA,QAAQ,CAACvO,KAAT,CAAe5B,MAAf,GAAwB,CAAxB,CAAA;AACD,KAAA;;IAED,IAAIy8B,QAAQ,GAAGp1B,UAAU,CAAC80B,MAAD,CAAV,GAAqB,UAAUr9B,OAAV,EAAmB;AACrDq9B,MAAAA,MAAM,CAACr9B,OAAD,EAAUqR,QAAV,CAAN,CAAA;AACD,KAFc,GAEX,IAFJ,CAAA;AAGAkd,IAAAA,SAAA,CAAkBld,QAAlB,EAA4B;AAC1BvO,MAAAA,KAAK,EAAE;AACL7B,QAAAA,KAAK,EAAEA,KADF;AAELC,QAAAA,MAAM,EAAEA,MAFH;AAGLjJ,QAAAA,CAAC,EAAEA,CAHE;AAILC,QAAAA,CAAC,EAAEA,CAAAA;AAJE,OAAA;AADmB,KAA5B,EAOGg2B,WAPH,EAOgB,IAPhB,EAOsBkP,IAPtB,EAO4BO,QAP5B,CAAA,CAAA;AAQD,GAAA;;AAED,EAAA,OAAOtsB,QAAP,CAAA;AACD,CAAA;;AAED,SAASusB,mBAAT,CAA6BC,KAA7B,EAAoCV,YAApC,EAAkDjP,WAAlD,EAA+D;AAC7D,EAAA,IAAI4P,UAAU,GAAGD,KAAK,CAACP,OAAN,EAAjB,CAD6D;;EAG7D,IAAIS,EAAE,GAAG9jC,OAAK,CAAC6jC,UAAU,CAACC,EAAZ,EAAgB,CAAhB,CAAd,CAAA;EACA,IAAIjlC,CAAC,GAAGmB,OAAK,CAAC6jC,UAAU,CAAChlC,CAAZ,EAAe,CAAf,CAAb,CAAA;AACA,EAAA,IAAIuY,QAAQ,GAAG,IAAIkd,MAAJ,CAAmB;AAChCzrB,IAAAA,KAAK,EAAE;MACLlK,EAAE,EAAEqB,OAAK,CAAC4jC,KAAK,CAACjlC,EAAP,EAAW,CAAX,CADJ;MAELC,EAAE,EAAEoB,OAAK,CAAC4jC,KAAK,CAAChlC,EAAP,EAAW,CAAX,CAFJ;AAGLklC,MAAAA,EAAE,EAAEA,EAHC;AAILjlC,MAAAA,CAAC,EAAEA,CAJE;MAKLC,UAAU,EAAE+kC,UAAU,CAAC/kC,UALlB;MAMLC,QAAQ,EAAE8kC,UAAU,CAAC9kC,QANhB;MAOLO,SAAS,EAAEukC,UAAU,CAACvkC,SAAAA;AAPjB,KAAA;AADyB,GAAnB,CAAf,CAAA;;AAYA,EAAA,IAAI4jC,YAAJ,EAAkB;IAChB,IAAIa,QAAQ,GAAGH,KAAK,CAAC5I,WAAN,EAAoBM,CAAAA,GAApB,KAA4B,OAA3C,CAAA;;AAEA,IAAA,IAAIyI,QAAJ,EAAc;AACZ3sB,MAAAA,QAAQ,CAACvO,KAAT,CAAe9J,QAAf,GAA0B8kC,UAAU,CAAC/kC,UAArC,CAAA;AACD,KAFD,MAEO;AACLsY,MAAAA,QAAQ,CAACvO,KAAT,CAAehK,CAAf,GAAmBilC,EAAnB,CAAA;AACD,KAAA;;AAEDxP,IAAAA,SAAA,CAAkBld,QAAlB,EAA4B;AAC1BvO,MAAAA,KAAK,EAAE;QACL9J,QAAQ,EAAE8kC,UAAU,CAAC9kC,QADhB;AAELF,QAAAA,CAAC,EAAEA,CAAAA;AAFE,OAAA;AADmB,KAA5B,EAKGo1B,WALH,CAAA,CAAA;AAMD,GAAA;;AAED,EAAA,OAAO7c,QAAP,CAAA;AACD,CAAA;;AAED,SAAS4sB,cAAT,CAAwB3V,QAAxB,EAAkC6U,YAAlC,EAAgDjP,WAAhD,EAA6DkP,IAA7D,EAAmEC,MAAnE,EAA2E;EACzE,IAAI,CAAC/U,QAAL,EAAe;AACb,IAAA,OAAO,IAAP,CAAA;AACD,GAFD,MAEO,IAAIA,QAAQ,CAAC/d,IAAT,KAAkB,OAAtB,EAA+B;AACpC,IAAA,OAAOqzB,mBAAmB,CAACtV,QAAD,EAAW6U,YAAX,EAAyBjP,WAAzB,CAA1B,CAAA;AACD,GAFM,MAEA,IAAI5F,QAAQ,CAAC/d,IAAT,KAAkB,aAAtB,EAAqC;IAC1C,OAAO0yB,kBAAkB,CAAC3U,QAAD,EAAW6U,YAAX,EAAyBjP,WAAzB,EAAsCkP,IAAtC,EAA4CC,MAA5C,CAAzB,CAAA;AACD,GAAA;;AAED,EAAA,OAAO,IAAP,CAAA;AACD;;ACxJD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASa,sBAAT,CAAgC5V,QAAhC,EAA0C/d,IAA1C,EAAgD;AACrD,EAAA,OAAO+d,QAAQ,CAAC/d,IAAT,KAAkBA,IAAzB,CAAA;AACD;;AC5CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8CA,SAAS4zB,YAAT,CAAsBC,OAAtB,EAA+BC,OAA/B,EAAwC;AACtC,EAAA,IAAID,OAAO,CAAC5jC,MAAR,KAAmB6jC,OAAO,CAAC7jC,MAA/B,EAAuC;AACrC,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,KAAK,IAAIU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkjC,OAAO,CAAC5jC,MAA5B,EAAoCU,CAAC,EAArC,EAAyC;IACvC,IAAIkjC,OAAO,CAACljC,CAAD,CAAP,KAAemjC,OAAO,CAACnjC,CAAD,CAA1B,EAA+B;AAC7B,MAAA,OAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAO,IAAP,CAAA;AACD,CAAA;;AAED,SAASojC,cAAT,CAAwB90B,MAAxB,EAAgC;EAC9B,IAAI+0B,IAAI,GAAGxf,QAAX,CAAA;EACA,IAAIyf,IAAI,GAAGzf,QAAX,CAAA;EACA,IAAI0f,IAAI,GAAG,CAAC1f,QAAZ,CAAA;EACA,IAAI2f,IAAI,GAAG,CAAC3f,QAAZ,CAAA;;EAEA,KAAK,IAAI7jB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsO,MAAM,CAAChP,MAA3B,GAAoC;AAClC,IAAA,IAAIvC,CAAC,GAAGuR,MAAM,CAACtO,CAAC,EAAF,CAAd,CAAA;AACA,IAAA,IAAIhD,CAAC,GAAGsR,MAAM,CAACtO,CAAC,EAAF,CAAd,CAAA;;AAEA,IAAA,IAAI,CAACG,KAAK,CAACpD,CAAD,CAAV,EAAe;MACbsmC,IAAI,GAAGvnC,IAAI,CAAC8iC,GAAL,CAAS7hC,CAAT,EAAYsmC,IAAZ,CAAP,CAAA;MACAE,IAAI,GAAGznC,IAAI,CAAC0iB,GAAL,CAASzhB,CAAT,EAAYwmC,IAAZ,CAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAACpjC,KAAK,CAACnD,CAAD,CAAV,EAAe;MACbsmC,IAAI,GAAGxnC,IAAI,CAAC8iC,GAAL,CAAS5hC,CAAT,EAAYsmC,IAAZ,CAAP,CAAA;MACAE,IAAI,GAAG1nC,IAAI,CAAC0iB,GAAL,CAASxhB,CAAT,EAAYwmC,IAAZ,CAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAO,CAAC,CAACH,IAAD,EAAOC,IAAP,CAAD,EAAe,CAACC,IAAD,EAAOC,IAAP,CAAf,CAAP,CAAA;AACD,CAAA;;AAED,SAASC,eAAT,CAAyBP,OAAzB,EAAkCC,OAAlC,EAA2C;AACzC,EAAA,IAAI7gC,EAAE,GAAG8gC,cAAc,CAACF,OAAD,CAAvB;AAAA,MACIQ,IAAI,GAAGphC,EAAE,CAAC,CAAD,CADb;AAAA,MAEIqhC,IAAI,GAAGrhC,EAAE,CAAC,CAAD,CAFb,CAAA;;AAIA,EAAA,IAAIshC,EAAE,GAAGR,cAAc,CAACD,OAAD,CAAvB;AAAA,MACIU,IAAI,GAAGD,EAAE,CAAC,CAAD,CADb;AAAA,MAEIE,IAAI,GAAGF,EAAE,CAAC,CAAD,CAFb,CALyC;;;AAUzC,EAAA,OAAO9nC,IAAI,CAAC0iB,GAAL,CAAS1iB,IAAI,CAACyC,GAAL,CAASmlC,IAAI,CAAC,CAAD,CAAJ,GAAUG,IAAI,CAAC,CAAD,CAAvB,CAAT,EAAsC/nC,IAAI,CAACyC,GAAL,CAASmlC,IAAI,CAAC,CAAD,CAAJ,GAAUG,IAAI,CAAC,CAAD,CAAvB,CAAtC,EAAmE/nC,IAAI,CAACyC,GAAL,CAASolC,IAAI,CAAC,CAAD,CAAJ,GAAUG,IAAI,CAAC,CAAD,CAAvB,CAAnE,EAAgGhoC,IAAI,CAACyC,GAAL,CAASolC,IAAI,CAAC,CAAD,CAAJ,GAAUG,IAAI,CAAC,CAAD,CAAvB,CAAhG,CAAP,CAAA;AACD,CAAA;;AAED,SAASC,SAAT,CAAmBt1B,MAAnB,EAA2B;AACzB,EAAA,OAAOu1B,QAAA,CAAgBv1B,MAAhB,CAAA,GAA0BA,MAA1B,GAAmCA,MAAM,GAAG,GAAH,GAAS,CAAzD,CAAA;AACD,CAAA;;AAED,SAASw1B,kBAAT,CAA4B7W,QAA5B,EAAsCoD,IAAtC,EAA4C+K,aAA5C,EAA2D;AACzD,EAAA,IAAI,CAACA,aAAa,CAAChB,QAAnB,EAA6B;AAC3B,IAAA,OAAO,EAAP,CAAA;AACD,GAAA;;AAED,EAAA,IAAIlxB,GAAG,GAAGmnB,IAAI,CAAC0T,KAAL,EAAV,CAAA;AACA,EAAA,IAAI51B,MAAM,GAAG0vB,kBAAkB,CAAC30B,GAAG,GAAG,CAAP,CAA/B,CAAA;;EAEA,KAAK,IAAI2iB,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAG3iB,GAAxB,EAA6B2iB,GAAG,EAAhC,EAAoC;IAClC,IAAImY,EAAE,GAAG7I,iBAAiB,CAACC,aAAD,EAAgBnO,QAAhB,EAA0BoD,IAA1B,EAAgCxE,GAAhC,CAA1B,CAAA;IACA1d,MAAM,CAAC0d,GAAG,GAAG,CAAP,CAAN,GAAkBmY,EAAE,CAAC,CAAD,CAApB,CAAA;IACA71B,MAAM,CAAC0d,GAAG,GAAG,CAAN,GAAU,CAAX,CAAN,GAAsBmY,EAAE,CAAC,CAAD,CAAxB,CAAA;AACD,GAAA;;AAED,EAAA,OAAO71B,MAAP,CAAA;AACD,CAAA;;AAED,SAAS81B,kBAAT,CAA4B91B,MAA5B,EAAoC8e,QAApC,EAA8CiX,UAA9C,EAA0DvU,YAA1D,EAAwE;AACtE,EAAA,IAAIgK,QAAQ,GAAG1M,QAAQ,CAAC2M,WAAT,EAAf,CAAA;AACA,EAAA,IAAIuK,SAAS,GAAGxK,QAAQ,CAACO,GAAT,KAAiB,GAAjB,IAAwBP,QAAQ,CAACO,GAAT,KAAiB,QAAzC,GAAoD,CAApD,GAAwD,CAAxE,CAAA;EACA,IAAIkK,UAAU,GAAG,EAAjB,CAAA;EACA,IAAIvkC,CAAC,GAAG,CAAR,CAAA;EACA,IAAIwkC,MAAM,GAAG,EAAb,CAAA;EACA,IAAIL,EAAE,GAAG,EAAT,CAAA;EACA,IAAIM,MAAM,GAAG,EAAb,CAAA;EACA,IAAIC,cAAc,GAAG,EAArB,CAAA;;AAEA,EAAA,IAAI5U,YAAJ,EAAkB;AAChB,IAAA,KAAK9vB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGsO,MAAM,CAAChP,MAAvB,EAA+BU,CAAC,IAAI,CAApC,EAAuC;AACrC,MAAA,IAAI,CAACG,KAAK,CAACmO,MAAM,CAACtO,CAAD,CAAP,CAAN,IAAqB,CAACG,KAAK,CAACmO,MAAM,CAACtO,CAAC,GAAG,CAAL,CAAP,CAA/B,EAAgD;AAC9C0kC,QAAAA,cAAc,CAACrkC,IAAf,CAAoBiO,MAAM,CAACtO,CAAD,CAA1B,EAA+BsO,MAAM,CAACtO,CAAC,GAAG,CAAL,CAArC,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;AAEDsO,IAAAA,MAAM,GAAGo2B,cAAT,CAAA;AACD,GAAA;;AAED,EAAA,KAAK1kC,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGsO,MAAM,CAAChP,MAAP,GAAgB,CAAhC,EAAmCU,CAAC,IAAI,CAAxC,EAA2C;IACzCykC,MAAM,CAAC,CAAD,CAAN,GAAYn2B,MAAM,CAACtO,CAAC,GAAG,CAAL,CAAlB,CAAA;IACAykC,MAAM,CAAC,CAAD,CAAN,GAAYn2B,MAAM,CAACtO,CAAC,GAAG,CAAL,CAAlB,CAAA;AACAmkC,IAAAA,EAAE,CAAC,CAAD,CAAF,GAAQ71B,MAAM,CAACtO,CAAD,CAAd,CAAA;IACAmkC,EAAE,CAAC,CAAD,CAAF,GAAQ71B,MAAM,CAACtO,CAAC,GAAG,CAAL,CAAd,CAAA;IACAukC,UAAU,CAAClkC,IAAX,CAAgB8jC,EAAE,CAAC,CAAD,CAAlB,EAAuBA,EAAE,CAAC,CAAD,CAAzB,CAAA,CAAA;;AAEA,IAAA,QAAQE,UAAR;AACE,MAAA,KAAK,KAAL;AACEG,QAAAA,MAAM,CAACF,SAAD,CAAN,GAAoBG,MAAM,CAACH,SAAD,CAA1B,CAAA;QACAE,MAAM,CAAC,IAAIF,SAAL,CAAN,GAAwBH,EAAE,CAAC,CAAIG,GAAAA,SAAL,CAA1B,CAAA;QACAC,UAAU,CAAClkC,IAAX,CAAgBmkC,MAAM,CAAC,CAAD,CAAtB,EAA2BA,MAAM,CAAC,CAAD,CAAjC,CAAA,CAAA;AACA,QAAA,MAAA;;AAEF,MAAA,KAAK,QAAL;AACE,QAAA,IAAIG,MAAM,GAAG,CAACR,EAAE,CAACG,SAAD,CAAF,GAAgBG,MAAM,CAACH,SAAD,CAAvB,IAAsC,CAAnD,CAAA;QACA,IAAIM,OAAO,GAAG,EAAd,CAAA;QACAJ,MAAM,CAACF,SAAD,CAAN,GAAoBM,OAAO,CAACN,SAAD,CAAP,GAAqBK,MAAzC,CAAA;QACAH,MAAM,CAAC,IAAIF,SAAL,CAAN,GAAwBH,EAAE,CAAC,CAAIG,GAAAA,SAAL,CAA1B,CAAA;QACAM,OAAO,CAAC,IAAIN,SAAL,CAAP,GAAyBG,MAAM,CAAC,CAAIH,GAAAA,SAAL,CAA/B,CAAA;QACAC,UAAU,CAAClkC,IAAX,CAAgBmkC,MAAM,CAAC,CAAD,CAAtB,EAA2BA,MAAM,CAAC,CAAD,CAAjC,CAAA,CAAA;QACAD,UAAU,CAAClkC,IAAX,CAAgBukC,OAAO,CAAC,CAAD,CAAvB,EAA4BA,OAAO,CAAC,CAAD,CAAnC,CAAA,CAAA;AACA,QAAA,MAAA;;AAEF,MAAA;AACE;AACAJ,QAAAA,MAAM,CAACF,SAAD,CAAN,GAAoBH,EAAE,CAACG,SAAD,CAAtB,CAAA;QACAE,MAAM,CAAC,IAAIF,SAAL,CAAN,GAAwBG,MAAM,CAAC,CAAIH,GAAAA,SAAL,CAA9B,CAAA;QACAC,UAAU,CAAClkC,IAAX,CAAgBmkC,MAAM,CAAC,CAAD,CAAtB,EAA2BA,MAAM,CAAC,CAAD,CAAjC,CAAA,CAAA;AArBJ,KAAA;AAuBD,GAlDqE;;;AAqDtED,EAAAA,UAAU,CAAClkC,IAAX,CAAgBiO,MAAM,CAACtO,CAAC,EAAF,CAAtB,EAA6BsO,MAAM,CAACtO,CAAC,EAAF,CAAnC,CAAA,CAAA;AACA,EAAA,OAAOukC,UAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASM,cAAT,CAAwB9wB,UAAxB,EAAoC+wB,OAApC,EAA6C;EAC3C,IAAIC,aAAa,GAAG,EAApB,CAAA;AACA,EAAA,IAAI17B,GAAG,GAAG0K,UAAU,CAACzU,MAArB,CAF2C;;AAI3C,EAAA,IAAI0lC,uBAAJ,CAAA;AACA,EAAA,IAAIC,oBAAJ,CAAA;;AAEA,EAAA,SAASC,QAAT,CAAkBC,KAAlB,EAAyBC,KAAzB,EAAgCC,YAAhC,EAA8C;AAC5C,IAAA,IAAIC,MAAM,GAAGH,KAAK,CAACI,KAAnB,CAAA;AACA,IAAA,IAAIvmC,CAAC,GAAG,CAACqmC,YAAY,GAAGC,MAAhB,KAA2BF,KAAK,CAACG,KAAN,GAAcD,MAAzC,CAAR,CAAA;AACA,IAAA,IAAI1jC,KAAK,GAAG4jC,IAAI,CAACxmC,CAAD,EAAI,CAACmmC,KAAK,CAACvjC,KAAP,EAAcwjC,KAAK,CAACxjC,KAApB,CAAJ,CAAhB,CAAA;IACA,OAAO;AACL2jC,MAAAA,KAAK,EAAEF,YADF;AAELzjC,MAAAA,KAAK,EAAEA,KAAAA;KAFT,CAAA;AAID,GAAA;;EAED,KAAK,IAAI5B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,EAAyBrJ,CAAC,EAA1B,EAA8B;AAC5B,IAAA,IAAIylC,MAAM,GAAG1xB,UAAU,CAAC/T,CAAD,CAAvB,CAAA;AACA,IAAA,IAAIulC,KAAK,GAAGE,MAAM,CAACF,KAAnB,CAAA;;IAEA,IAAIA,KAAK,GAAG,CAAZ,EAAe;AACbP,MAAAA,uBAAuB,GAAGS,MAA1B,CAAA;AACD,KAFD,MAEO,IAAIF,KAAK,GAAGT,OAAZ,EAAqB;AAC1B,MAAA,IAAIG,oBAAJ,EAA0B;QACxBF,aAAa,CAAC1kC,IAAd,CAAmB6kC,QAAQ,CAACD,oBAAD,EAAuBQ,MAAvB,EAA+BX,OAA/B,CAA3B,CAAA,CAAA;OADF,MAEO,IAAIE,uBAAJ,EAA6B;AAClC;AACAD,QAAAA,aAAa,CAAC1kC,IAAd,CAAmB6kC,QAAQ,CAACF,uBAAD,EAA0BS,MAA1B,EAAkC,CAAlC,CAA3B,EAAiEP,QAAQ,CAACF,uBAAD,EAA0BS,MAA1B,EAAkCX,OAAlC,CAAzE,CAAA,CAAA;AACD,OANyB;;;AAS1B,MAAA,MAAA;AACD,KAVM,MAUA;AACL,MAAA,IAAIE,uBAAJ,EAA6B;AAC3BD,QAAAA,aAAa,CAAC1kC,IAAd,CAAmB6kC,QAAQ,CAACF,uBAAD,EAA0BS,MAA1B,EAAkC,CAAlC,CAA3B,CAAA,CAD2B;;AAG3BT,QAAAA,uBAAuB,GAAG,IAA1B,CAAA;AACD,OAAA;;MAEDD,aAAa,CAAC1kC,IAAd,CAAmBolC,MAAnB,CAAA,CAAA;AACAR,MAAAA,oBAAoB,GAAGQ,MAAvB,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAOV,aAAP,CAAA;AACD,CAAA;;AAED,SAASW,iBAAT,CAA2BlV,IAA3B,EAAiCpD,QAAjC,EAA2CvU,GAA3C,EAAgD;AAC9C,EAAA,IAAI8sB,cAAc,GAAGnV,IAAI,CAAClC,SAAL,CAAe,YAAf,CAArB,CAAA;;AAEA,EAAA,IAAI,CAACqX,cAAD,IAAmB,CAACA,cAAc,CAACrmC,MAAnC,IAA6C,CAACkxB,IAAI,CAAC0T,KAAL,EAAlD,EAAgE;AAC9D;AACA,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI9W,QAAQ,CAAC/d,IAAT,KAAkB,aAAtB,EAAqC;AACnC,IAAA,IAAIqE,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzCqE,OAAO,CAAC2tB,IAAR,CAAa,4DAAb,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI/K,QAAJ,CAAA;AACA,EAAA,IAAIgL,UAAJ,CAAA;;AAEA,EAAA,KAAK,IAAI7lC,CAAC,GAAG2lC,cAAc,CAACrmC,MAAf,GAAwB,CAArC,EAAwCU,CAAC,IAAI,CAA7C,EAAgDA,CAAC,EAAjD,EAAqD;AACnD,IAAA,IAAI8lC,OAAO,GAAGtV,IAAI,CAACuV,gBAAL,CAAsBJ,cAAc,CAAC3lC,CAAD,CAAd,CAAkBgmC,SAAxC,CAAd,CAAA;AACAnL,IAAAA,QAAQ,GAAGiL,OAAO,IAAIA,OAAO,CAACjL,QAA9B,CAFmD;;AAInD,IAAA,IAAIA,QAAQ,KAAK,GAAb,IAAoBA,QAAQ,KAAK,GAArC,EAA0C;AACxCgL,MAAAA,UAAU,GAAGF,cAAc,CAAC3lC,CAAD,CAA3B,CAAA;AACA,MAAA,MAAA;AACD,KAAA;AACF,GAAA;;EAED,IAAI,CAAC6lC,UAAL,EAAiB;AACf,IAAA,IAAInyB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzCqE,OAAO,CAAC2tB,IAAR,CAAa,yDAAb,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,OAAA;AACD,GAnC6C;AAoC9C;AACA;AACA;AACA;AACA;;;EAGA,IAAIK,IAAI,GAAG7Y,QAAQ,CAAC8Y,OAAT,CAAiBrL,QAAjB,CAAX,CA3C8C;;AA6C9C,EAAA,IAAI9mB,UAAU,GAAGiwB,GAAA,CAAW6B,UAAU,CAACM,KAAtB,EAA6B,UAAUC,IAAV,EAAgB;AAC5D;IACA,OAAO;AACLb,MAAAA,KAAK,EAAEU,IAAI,CAACI,aAAL,CAAmBJ,IAAI,CAACK,WAAL,CAAiBF,IAAI,CAAC5K,KAAtB,CAAnB,CADF;MAEL55B,KAAK,EAAEwkC,IAAI,CAACxkC,KAAAA;KAFd,CAAA;AAID,GANgB,CAAjB,CAAA;AAOA,EAAA,IAAI2kC,OAAO,GAAGxyB,UAAU,CAACzU,MAAzB,CAAA;AACA,EAAA,IAAIknC,WAAW,GAAGX,UAAU,CAACW,WAAX,CAAuBnhB,KAAvB,EAAlB,CAAA;;AAEA,EAAA,IAAIkhB,OAAO,IAAIxyB,UAAU,CAAC,CAAD,CAAV,CAAcwxB,KAAd,GAAsBxxB,UAAU,CAACwyB,OAAO,GAAG,CAAX,CAAV,CAAwBhB,KAA7D,EAAoE;AAClExxB,IAAAA,UAAU,CAAC0yB,OAAX,EAAA,CAAA;AACAD,IAAAA,WAAW,CAACC,OAAZ,EAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAIC,iBAAiB,GAAG7B,cAAc,CAAC9wB,UAAD,EAAa8mB,QAAQ,KAAK,GAAb,GAAmBhiB,GAAG,CAACmG,QAAJ,EAAnB,GAAoCnG,GAAG,CAACoG,SAAJ,EAAjD,CAAtC,CAAA;AACA,EAAA,IAAI0nB,cAAc,GAAGD,iBAAiB,CAACpnC,MAAvC,CAAA;;AAEA,EAAA,IAAI,CAACqnC,cAAD,IAAmBJ,OAAvB,EAAgC;AAC9B;AACA,IAAA,OAAOxyB,UAAU,CAAC,CAAD,CAAV,CAAcwxB,KAAd,GAAsB,CAAtB,GAA0BiB,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAA5B,GAAkCzyB,UAAU,CAACwyB,OAAO,GAAG,CAAX,CAAV,CAAwB3kC,KAApF,GAA4F4kC,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAA5B,GAAkCzyB,UAAU,CAAC,CAAD,CAAV,CAAcnS,KAAnJ,CAAA;AACD,GAAA;;AAED,EAAA,IAAIglC,UAAU,GAAG,EAAjB,CApE8C;;EAsE9C,IAAIC,QAAQ,GAAGH,iBAAiB,CAAC,CAAD,CAAjB,CAAqBnB,KAArB,GAA6BqB,UAA5C,CAAA;EACA,IAAIE,QAAQ,GAAGJ,iBAAiB,CAACC,cAAc,GAAG,CAAlB,CAAjB,CAAsCpB,KAAtC,GAA8CqB,UAA7D,CAAA;AACA,EAAA,IAAIG,SAAS,GAAGD,QAAQ,GAAGD,QAA3B,CAAA;;EAEA,IAAIE,SAAS,GAAG,IAAhB,EAAsB;AACpB,IAAA,OAAO,aAAP,CAAA;AACD,GAAA;;AAED/C,EAAAA,MAAA,CAAY0C,iBAAZ,EAA+B,UAAUN,IAAV,EAAgB;IAC7CA,IAAI,CAACpyB,MAAL,GAAc,CAACoyB,IAAI,CAACb,KAAL,GAAasB,QAAd,IAA0BE,SAAxC,CAAA;GADF,CAAA,CAAA;EAGAL,iBAAiB,CAACrmC,IAAlB,CAAuB;AACrB;AACA2T,IAAAA,MAAM,EAAE2yB,cAAc,GAAGD,iBAAiB,CAACC,cAAc,GAAG,CAAlB,CAAjB,CAAsC3yB,MAAzC,GAAkD,GAFnD;AAGrBpS,IAAAA,KAAK,EAAE4kC,WAAW,CAAC,CAAD,CAAX,IAAkB,aAAA;GAH3B,CAAA,CAAA;EAKAE,iBAAiB,CAACM,OAAlB,CAA0B;IACxBhzB,MAAM,EAAE2yB,cAAc,GAAGD,iBAAiB,CAAC,CAAD,CAAjB,CAAqB1yB,MAAxB,GAAiC,GAD/B;AAExBpS,IAAAA,KAAK,EAAE4kC,WAAW,CAAC,CAAD,CAAX,IAAkB,aAAA;GAF3B,CAAA,CAAA;AAIA,EAAA,IAAIS,QAAQ,GAAG,IAAI5T,cAAJ,CAA2B,CAA3B,EAA8B,CAA9B,EAAiC,CAAjC,EAAoC,CAApC,EAAuCqT,iBAAvC,EAA0D,IAA1D,CAAf,CAAA;AACAO,EAAAA,QAAQ,CAACpM,QAAD,CAAR,GAAqBgM,QAArB,CAAA;AACAI,EAAAA,QAAQ,CAACpM,QAAQ,GAAG,GAAZ,CAAR,GAA2BiM,QAA3B,CAAA;AACA,EAAA,OAAOG,QAAP,CAAA;AACD,CAAA;;AAED,SAASC,eAAT,CAAyBlU,WAAzB,EAAsCxC,IAAtC,EAA4CpD,QAA5C,EAAsD;AACpD,EAAA,IAAIyC,aAAa,GAAGmD,WAAW,CAACyB,GAAZ,CAAgB,eAAhB,CAApB,CAAA;AACA,EAAA,IAAI0S,MAAM,GAAGtX,aAAa,KAAK,MAA/B,CAAA;;AAEA,EAAA,IAAIA,aAAa,IAAI,CAACsX,MAAtB,EAA8B;AAC5B,IAAA,OAAA;AACD,GAAA;;EAED,IAAIC,YAAY,GAAGha,QAAQ,CAACia,cAAT,CAAwB,SAAxB,CAAmC,CAAA,CAAnC,CAAnB,CAAA;;EAEA,IAAI,CAACD,YAAL,EAAmB;AACjB,IAAA,OAAA;AACD,GAZmD;AAapD;AACA;;;AAGA,EAAA,IAAID,MAAM;AAAA,KACPG,2BAA2B,CAACF,YAAD,EAAe5W,IAAf,CAD9B,EACoD;AAClD,IAAA,OAAA;AACD,GApBmD;;;EAuBpD,IAAI+W,eAAe,GAAG/W,IAAI,CAACgK,YAAL,CAAkB4M,YAAY,CAAC/M,GAA/B,CAAtB,CAAA;EACA,IAAImN,QAAQ,GAAG,EAAf,CAAA;EACAxD,MAAA,CAAYoD,YAAY,CAACK,aAAb,EAAZ,EAA0C,UAAUC,SAAV,EAAqB;IAC7D,IAAIC,aAAa,GAAGP,YAAY,CAACxkB,KAAb,CAAmBglB,mBAAnB,CAAuCF,SAAS,CAACG,SAAjD,CAApB,CAAA;AACAL,IAAAA,QAAQ,CAACG,aAAD,CAAR,GAA0B,CAA1B,CAAA;GAFF,CAAA,CAAA;EAIA,OAAO,UAAUlX,SAAV,EAAqB;AAC1B,IAAA,OAAO,CAAC+W,QAAQ,CAACjb,cAAT,CAAwBiE,IAAI,CAACiE,GAAL,CAAS8S,eAAT,EAA0B9W,SAA1B,CAAxB,CAAR,CAAA;GADF,CAAA;AAGD,CAAA;;AAED,SAAS6W,2BAAT,CAAqCF,YAArC,EAAmD5W,IAAnD,EAAyD;AACvD;AACA;AACA;AACA;AACA,EAAA,IAAIsX,UAAU,GAAGV,YAAY,CAAC/L,SAAb,EAAjB,CAAA;EACA,IAAI0M,SAAS,GAAGjsC,IAAI,CAACyC,GAAL,CAASupC,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAnC,CAAA,GAA0CV,YAAY,CAACxkB,KAAb,CAAmBshB,KAAnB,EAA1D,CAAA;EACA/jC,KAAK,CAAC4nC,SAAD,CAAL,KAAqBA,SAAS,GAAG,CAAjC,EAPuD;AAQvD;;AAEA,EAAA,IAAIC,OAAO,GAAGxX,IAAI,CAAC0T,KAAL,EAAd,CAAA;AACA,EAAA,IAAIzU,IAAI,GAAG3zB,IAAI,CAAC0iB,GAAL,CAAS,CAAT,EAAY1iB,IAAI,CAACiD,KAAL,CAAWipC,OAAO,GAAG,CAArB,CAAZ,CAAX,CAAA;;AAEA,EAAA,KAAK,IAAIvX,SAAS,GAAG,CAArB,EAAwBA,SAAS,GAAGuX,OAApC,EAA6CvX,SAAS,IAAIhB,IAA1D,EAAgE;AAC9D,IAAA,IAAIkI,MAAS,CAACzE,aAAV,CAAwB1C,IAAxB,EAA8BC,SAA9B;AAAA,KAAA,CACF2W,YAAY,CAAC9E,YAAb,KAA8B,CAA9B,GAAkC,CADhC,CACmC;MACrC,GAFE,GAEIyF,SAFR,EAEmB;AACjB,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAO,IAAP,CAAA;AACD,CAAA;;AAED,SAASjJ,WAAT,CAAqB/hC,CAArB,EAAwBC,CAAxB,EAA2B;EACzB,OAAOmD,KAAK,CAACpD,CAAD,CAAL,IAAYoD,KAAK,CAACnD,CAAD,CAAxB,CAAA;AACD,CAAA;;AAED,SAASirC,mBAAT,CAA6B35B,MAA7B,EAAqC;AACnC,EAAA,IAAIjF,GAAG,GAAGiF,MAAM,CAAChP,MAAP,GAAgB,CAA1B,CAAA;;AAEA,EAAA,OAAO+J,GAAG,GAAG,CAAb,EAAgBA,GAAG,EAAnB,EAAuB;IACrB,IAAI,CAACy1B,WAAW,CAACxwB,MAAM,CAACjF,GAAG,GAAG,CAAN,GAAU,CAAX,CAAP,EAAsBiF,MAAM,CAACjF,GAAG,GAAG,CAAN,GAAU,CAAX,CAA5B,CAAhB,EAA4D;AAC1D,MAAA,MAAA;AACD,KAAA;AACF,GAAA;;EAED,OAAOA,GAAG,GAAG,CAAb,CAAA;AACD,CAAA;;AAED,SAAS6+B,eAAT,CAAyB55B,MAAzB,EAAiC0d,GAAjC,EAAsC;AACpC,EAAA,OAAO,CAAC1d,MAAM,CAAC0d,GAAG,GAAG,CAAP,CAAP,EAAkB1d,MAAM,CAAC0d,GAAG,GAAG,CAAN,GAAU,CAAX,CAAxB,CAAP,CAAA;AACD,CAAA;;AAED,SAASmc,aAAT,CAAuB75B,MAAvB,EAA+ByyB,IAA/B,EAAqC1G,GAArC,EAA0C;AACxC,EAAA,IAAIhxB,GAAG,GAAGiF,MAAM,CAAChP,MAAP,GAAgB,CAA1B,CAAA;EACA,IAAI8oC,MAAM,GAAG/N,GAAG,KAAK,GAAR,GAAc,CAAd,GAAkB,CAA/B,CAAA;AACA,EAAA,IAAI76B,CAAJ,CAAA;AACA,EAAA,IAAIC,CAAJ,CAAA;EACA,IAAI4oC,SAAS,GAAG,CAAhB,CAAA;EACA,IAAIC,SAAS,GAAG,CAAC,CAAjB,CAAA;;EAEA,KAAK,IAAItoC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,EAAyBrJ,CAAC,EAA1B,EAA8B;IAC5BP,CAAC,GAAG6O,MAAM,CAACtO,CAAC,GAAG,CAAJ,GAAQooC,MAAT,CAAV,CAAA;;AAEA,IAAA,IAAIjoC,KAAK,CAACV,CAAD,CAAL,IAAYU,KAAK,CAACmO,MAAM,CAACtO,CAAC,GAAG,CAAJ,GAAQ,CAAR,GAAYooC,MAAb,CAAP,CAArB,EAAmD;AACjD,MAAA,SAAA;AACD,KAAA;;IAED,IAAIpoC,CAAC,KAAK,CAAV,EAAa;AACXR,MAAAA,CAAC,GAAGC,CAAJ,CAAA;AACA,MAAA,SAAA;AACD,KAAA;;AAED,IAAA,IAAID,CAAC,IAAIuhC,IAAL,IAAathC,CAAC,IAAIshC,IAAlB,IAA0BvhC,CAAC,IAAIuhC,IAAL,IAAathC,CAAC,IAAIshC,IAAhD,EAAsD;AACpDuH,MAAAA,SAAS,GAAGtoC,CAAZ,CAAA;AACA,MAAA,MAAA;AACD,KAAA;;AAEDqoC,IAAAA,SAAS,GAAGroC,CAAZ,CAAA;AACAR,IAAAA,CAAC,GAAGC,CAAJ,CAAA;AACD,GAAA;;EAED,OAAO;AACL8oC,IAAAA,KAAK,EAAE,CAACF,SAAD,EAAYC,SAAZ,CADF;IAELnH,CAAC,EAAE,CAACJ,IAAI,GAAGvhC,CAAR,KAAcC,CAAC,GAAGD,CAAlB,CAAA;GAFL,CAAA;AAID,CAAA;;AAED,SAASgpC,oBAAT,CAA8BxV,WAA9B,EAA2C;EACzC,IAAIA,WAAW,CAACyB,GAAZ,CAAgB,CAAC,UAAD,EAAa,MAAb,CAAhB,CAAJ,EAA2C;AACzC,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;AAED,EAAA,KAAK,IAAIz0B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyoC,cAAc,CAACnpC,MAAnC,EAA2CU,CAAC,EAA5C,EAAgD;AAC9C,IAAA,IAAIgzB,WAAW,CAACyB,GAAZ,CAAgB,CAACgU,cAAc,CAACzoC,CAAD,CAAf,EAAoB,UAApB,EAAgC,MAAhC,CAAhB,CAAJ,EAA8D;AAC5D,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAO,KAAP,CAAA;AACD,CAAA;;AAED,SAAS0oC,kBAAT,CAA4BC,QAA5B,EAAsCvb,QAAtC,EAAgD6U,YAAhD,EAA8DjP,WAA9D,EAA2E;AACzE,EAAA,IAAIgQ,sBAAsB,CAAC5V,QAAD,EAAW,aAAX,CAA1B,EAAqD;AACnD,IAAA,IAAIwb,eAAe,GAAG5V,WAAW,CAACuB,QAAZ,CAAqB,UAArB,CAAtB,CAAA;AACA,IAAA,IAAIsU,gBAAgB,GAAGD,eAAe,CAACnU,GAAhB,CAAoB,gBAApB,CAAvB,CAAA;AACA,IAAA,IAAIqU,MAAM,GAAG9V,WAAW,CAAC3E,OAAZ,EAAb,CAAA;AACA,IAAA,IAAI0a,sBAAsB,GAAG;AAC3BC,MAAAA,cAAc,EAAE,CAAA;KADlB,CAAA;IAGA,IAAI7G,MAAM,GAAGqG,oBAAoB,CAACxV,WAAD,CAApB,GAAoC,UAAUluB,OAAV,EAAmBmkC,QAAnB,EAA6B;AAC5EN,MAAAA,QAAQ,CAACO,iBAAT,CAA2BpkC,OAA3B,EAAoCmkC,QAApC,EAA8CH,MAA9C,EAAsDC,sBAAtD,EAA8EF,gBAA9E,EAAgGD,eAAhG,EAAiHxb,QAAjH,CAAA,CAAA;AACD,KAFY,GAET,IAFJ,CAAA;AAGA,IAAA,IAAIkV,YAAY,GAAGlV,QAAQ,CAAC2M,WAAT,EAAA,CAAuBuI,YAAvB,EAAnB,CAAA;IACA,IAAInsB,QAAQ,GAAG4rB,kBAAkB,CAAC3U,QAAD,EAAW6U,YAAX,EAAyBjP,WAAzB,EAAsC,YAAY;AACjF,MAAA,IAAI5D,QAAQ,GAAGuZ,QAAQ,CAACQ,SAAxB,CAAA;;MAEA,IAAI/Z,QAAQ,IAAI6S,YAAhB,EAA8B;AAC5B,QAAA,IAAI8G,sBAAsB,CAACK,SAAvB,IAAoC,IAAxC,EAA8C;UAC5Cha,QAAQ,CAACqC,IAAT,CAAc;YACZ10B,CAAC,EAAEgsC,sBAAsB,CAACK,SADd;YAEZpsC,CAAC,EAAE+rC,sBAAsB,CAACM,SAAAA;WAF5B,CAAA,CAAA;AAID,SAAA;AACF,OAAA;AACF,KAXgC,EAW9BlH,MAX8B,CAAjC,CAXmD;;IAwBnD,IAAI,CAACnP,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,EAAwB,IAAxB,CAAL,EAAoC;AAClC,MAAA,IAAI6U,SAAS,GAAGnzB,QAAQ,CAACvO,KAAzB,CAAA;AACA,MAAA,IAAI2hC,UAAU,GAAGztC,IAAI,CAAC0iB,GAAL,CAAS8qB,SAAS,CAACvjC,KAAnB,EAA0BujC,SAAS,CAACtjC,MAApC,CAAjB,CAAA;;AAEA,MAAA,IAAIs8B,YAAJ,EAAkB;QAChBgH,SAAS,CAACtsC,CAAV,IAAeusC,UAAf,CAAA;AACAD,QAAAA,SAAS,CAACtjC,MAAV,IAAoBujC,UAAU,GAAG,CAAjC,CAAA;AACD,OAHD,MAGO;QACLD,SAAS,CAACvsC,CAAV,IAAewsC,UAAf,CAAA;AACAD,QAAAA,SAAS,CAACvjC,KAAV,IAAmBwjC,UAAU,GAAG,CAAhC,CAAA;AACD,OAAA;AACF,KAnCkD;;;AAsCnD,IAAA,IAAIpH,MAAJ,EAAY;AACVA,MAAAA,MAAM,CAAC,CAAD,EAAIhsB,QAAJ,CAAN,CAAA;AACD,KAAA;;AAED,IAAA,OAAOA,QAAP,CAAA;AACD,GA3CD,MA2CO;AACL,IAAA,IAAIzC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC,IAAIof,WAAW,CAACyB,GAAZ,CAAgB,CAAC,UAAD,EAAa,MAAb,CAAhB,CAAJ,EAA2C;QACzCxc,OAAO,CAAC2tB,IAAR,CAAa,uDAAb,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAOlD,mBAAmB,CAACtV,QAAD,EAAW6U,YAAX,EAAyBjP,WAAzB,CAA1B,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASwW,yBAAT,CAAmCC,aAAnC,EAAkDrc,QAAlD,EAA4D;AAC1D,EAAA,IAAI0M,QAAQ,GAAG1M,QAAQ,CAAC2M,WAAT,EAAf,CAAA;AACA,EAAA,IAAIuI,YAAY,GAAGxI,QAAQ,CAACwI,YAAT,EAAnB,CAAA;AACA,EAAA,IAAIoH,cAAc,GAAG5P,QAAQ,CAAC0I,OAA9B,CAAA;EACA,IAAImH,KAAK,GAAGrH,YAAY,GAAGoH,cAAc,GAAG,OAAH,GAAa,MAA9B,GAAuC,QAA/D,CAAA;EACA,IAAIE,aAAa,GAAGtH,YAAY,GAAG,QAAH,GAAcoH,cAAc,GAAG,KAAH,GAAW,QAAvE,CAAA;EACA,OAAO;AACLG,IAAAA,MAAM,EAAE;AACNF,MAAAA,KAAK,EAAEF,aAAa,CAAChV,GAAd,CAAkB,OAAlB,KAA8BkV,KAD/B;AAENC,MAAAA,aAAa,EAAEH,aAAa,CAAChV,GAAd,CAAkB,eAAlB,CAAsCmV,IAAAA,aAAAA;AAF/C,KAAA;GADV,CAAA;AAMD,CAAA;;AAED,IAAIE,QAAQ;AACZ;AACA,UAAUtpB,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACqpB,QAAD,EAAWtpB,MAAX,CAAT,CAAA;;AAEA,EAAA,SAASspB,QAAT,GAAoB;AAClB,IAAA,OAAOtpB,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;;AAED6pC,EAAAA,QAAQ,CAACxtC,SAAT,CAAmBytC,IAAnB,GAA0B,YAAY;AACpC,IAAA,IAAIC,SAAS,GAAG,IAAI3W,OAAJ,EAAhB,CAAA;AACA,IAAA,IAAI4W,UAAU,GAAG,IAAIzS,UAAJ,EAAjB,CAAA;AACA,IAAA,IAAA,CAAK7J,KAAL,CAAWO,GAAX,CAAe+b,UAAU,CAACtc,KAA1B,CAAA,CAAA;IACA,IAAKuc,CAAAA,WAAL,GAAmBD,UAAnB,CAAA;IACA,IAAKE,CAAAA,UAAL,GAAkBH,SAAlB,CAAA;GALF,CAAA;;EAQAF,QAAQ,CAACxtC,SAAT,CAAmB8tC,MAAnB,GAA4B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;IAC/D,IAAI6H,KAAK,GAAG,IAAZ,CAAA;;AAEA,IAAA,IAAI0M,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;IACA,IAAIM,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAI6C,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAIic,cAAc,GAAGtX,WAAW,CAACuB,QAAZ,CAAqB,WAArB,CAArB,CAAA;AACA,IAAA,IAAIgW,cAAc,GAAGvX,WAAW,CAACuB,QAAZ,CAAqB,WAArB,CAArB,CAAA;IACA,IAAIjmB,MAAM,GAAGkiB,IAAI,CAACwM,SAAL,CAAe,QAAf,KAA4B,EAAzC,CAAA;AACA,IAAA,IAAIwN,eAAe,GAAGpd,QAAQ,CAAC/d,IAAT,KAAkB,OAAxC,CAAA;IACA,IAAIo7B,YAAY,GAAG,IAAA,CAAKC,SAAxB,CAAA;IACA,IAAIT,UAAU,GAAG,IAAA,CAAKC,WAAtB,CAAA;IACA,IAAIl7B,QAAQ,GAAG,IAAA,CAAK27B,SAApB,CAAA;IACA,IAAI17B,OAAO,GAAG,IAAA,CAAK27B,QAAnB,CAAA;IACA,IAAIZ,SAAS,GAAG,IAAA,CAAKG,UAArB,CAAA;AACA,IAAA,IAAIlI,YAAY,GAAGjP,WAAW,CAACyB,GAAZ,CAAgB,WAAhB,CAAnB,CAAA;AACA,IAAA,IAAIoW,WAAW,GAAG,CAACN,cAAc,CAACO,OAAf,EAAnB,CAAA;AACA,IAAA,IAAIjR,WAAW,GAAG0Q,cAAc,CAAC9V,GAAf,CAAmB,QAAnB,CAAlB,CAAA;IACA,IAAI8G,aAAa,GAAG3B,oBAAoB,CAACxM,QAAD,EAAWoD,IAAX,EAAiBqJ,WAAjB,CAAxC,CAAA;IACA,IAAIgI,eAAe,GAAGgJ,WAAW,IAAI5G,kBAAkB,CAAC7W,QAAD,EAAWoD,IAAX,EAAiB+K,aAAjB,CAAvD,CAAA;AACA,IAAA,IAAI3L,UAAU,GAAGoD,WAAW,CAACyB,GAAZ,CAAgB,YAAhB,CAAjB,CAAA;AACA,IAAA,IAAI3E,YAAY,GAAGkD,WAAW,CAACyB,GAAZ,CAAgB,cAAhB,CAAnB,CAAA;AACA,IAAA,IAAIsW,YAAY,GAAGnb,UAAU,IAAI,CAAC4a,eAAf,IAAkCtD,eAAe,CAAClU,WAAD,EAAcxC,IAAd,EAAoBpD,QAApB,CAApE,CAtB+D;;IAwB/D,IAAIyK,OAAO,GAAG,IAAA,CAAKC,KAAnB,CAAA;IACAD,OAAO,IAAIA,OAAO,CAACmB,iBAAR,CAA0B,UAAUz3B,EAAV,EAAcyqB,GAAd,EAAmB;MACtD,IAAIzqB,EAAE,CAACypC,MAAP,EAAe;QACbrd,KAAK,CAAC+K,MAAN,CAAan3B,EAAb,CAAA,CAAA;AACAs2B,QAAAA,OAAO,CAACS,gBAAR,CAAyBtM,GAAzB,EAA8B,IAA9B,CAAA,CAAA;AACD,OAAA;KAJQ,CAAX,CAzB+D;;IAgC/D,IAAI,CAAC4D,UAAL,EAAiB;AACfqa,MAAAA,UAAU,CAACvR,MAAX,EAAA,CAAA;AACD,KAAA;;AAED/K,IAAAA,KAAK,CAACO,GAAN,CAAU8b,SAAV,EApC+D;;AAsC/D,IAAA,IAAIva,IAAI,GAAG,CAAC+a,eAAD,GAAmBxX,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,CAAnB,GAA6C,KAAxD,CAAA;AACA,IAAA,IAAIwW,kBAAJ,CAAA;;AAEA,IAAA,IAAI7d,QAAQ,IAAIA,QAAQ,CAACgV,OAArB,IAAgCpP,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,EAAwB,IAAxB,CAApC,EAAmE;AACjEwW,MAAAA,kBAAkB,GAAG7d,QAAQ,CAACgV,OAAT,EAArB,CADiE;AAEjE;;AAEA,MAAA,IAAI6I,kBAAkB,CAACllC,KAAnB,IAA4B,IAAhC,EAAsC;QACpCklC,kBAAkB,CAACluC,CAAnB,IAAwB,GAAxB,CAAA;QACAkuC,kBAAkB,CAACjuC,CAAnB,IAAwB,GAAxB,CAAA;QACAiuC,kBAAkB,CAACllC,KAAnB,IAA4B,GAA5B,CAAA;QACAklC,kBAAkB,CAACjlC,MAAnB,IAA6B,GAA7B,CAAA;AACD,OALD,MAKO,IAAIilC,kBAAkB,CAACpI,EAAvB,EAA2B;QAChCoI,kBAAkB,CAACpI,EAAnB,IAAyB,GAAzB,CAAA;QACAoI,kBAAkB,CAACrtC,CAAnB,IAAwB,GAAxB,CAAA;AACD,OAAA;AACF,KAAA;;IAED,IAAKstC,CAAAA,mBAAL,GAA2BD,kBAA3B,CAAA;IACA,IAAIlW,WAAW,GAAG2Q,iBAAiB,CAAClV,IAAD,EAAOpD,QAAP,EAAiBvU,GAAjB,CAAjB,IAA0C2X,IAAI,CAAClC,SAAL,CAAe,OAAf,CAAA,CAAwBkC,IAAI,CAAClC,SAAL,CAAe,UAAf,CAAxB,CAA5D,CAzD+D;;AA2D/D,IAAA,IAAI,EAAEtf,QAAQ,IAAIy7B,YAAY,CAACp7B,IAAb,KAAsB+d,QAAQ,CAAC/d,IAA3C,IAAmDogB,IAAI,KAAK,IAAK0b,CAAAA,KAAnE,CAAJ,EAA+E;AAC7Evb,MAAAA,UAAU,IAAIqa,UAAU,CAAC7Y,UAAX,CAAsBZ,IAAtB,EAA4B;AACxC2G,QAAAA,QAAQ,EAAE4T,YAD8B;AAExC3T,QAAAA,SAAS,EAAE6T,kBAF6B;AAGxC7X,QAAAA,gBAAgB,EAAE,IAHsB;QAIxC4E,cAAc,EAAE,SAAUhM,cAAAA,CAAAA,GAAV,EAAe;AAC7B,UAAA,OAAO,CAAC1d,MAAM,CAAC0d,GAAG,GAAG,CAAP,CAAP,EAAkB1d,MAAM,CAAC0d,GAAG,GAAG,CAAN,GAAU,CAAX,CAAxB,CAAP,CAAA;AACD,SAAA;AANuC,OAA5B,CAAd,CAAA;MAQAiW,YAAY,IAAI,KAAKmJ,yBAAL,CAA+B5a,IAA/B,EAAqCpD,QAArC,EAA+C6d,kBAA/C,CAAhB,CAAA;;AAEA,MAAA,IAAIxb,IAAJ,EAAU;AACR;QACAnhB,MAAM,GAAG81B,kBAAkB,CAAC91B,MAAD,EAAS8e,QAAT,EAAmBqC,IAAnB,EAAyBK,YAAzB,CAA3B,CAAA;;AAEA,QAAA,IAAI+R,eAAJ,EAAqB;UACnBA,eAAe,GAAGuC,kBAAkB,CAACvC,eAAD,EAAkBzU,QAAlB,EAA4BqC,IAA5B,EAAkCK,YAAlC,CAApC,CAAA;AACD,SAAA;AACF,OAAA;;AAED9gB,MAAAA,QAAQ,GAAG,IAAA,CAAKq8B,YAAL,CAAkB/8B,MAAlB,CAAX,CAAA;;AAEA,MAAA,IAAIu8B,WAAJ,EAAiB;AACf57B,QAAAA,OAAO,GAAG,IAAKq8B,CAAAA,WAAL,CAAiBh9B,MAAjB,EAAyBuzB,eAAzB,CAAV,CAAA;AACD,OAFD;WAGK,IAAI5yB,OAAJ,EAAa;QACd+6B,SAAS,CAACtR,MAAV,CAAiBzpB,OAAjB,CAAA,CAAA;AACAA,QAAAA,OAAO,GAAG,IAAA,CAAK27B,QAAL,GAAgB,IAA1B,CAAA;AACD,OA5B0E;;;MA+B7E,IAAI,CAACJ,eAAL,EAAsB;QACpB,IAAKe,CAAAA,qBAAL,CAA2BvY,WAA3B,EAAwC5F,QAAxC,EAAkDoe,oBAAoB,CAACzW,WAAD,CAAtE,CAAA,CAAA;AACD,OAAA;;AAEDiV,MAAAA,SAAS,CAAC9zB,WAAV,CAAsBwyB,kBAAkB,CAAC,IAAD,EAAOtb,QAAP,EAAiB,IAAjB,EAAuB4F,WAAvB,CAAxC,CAAA,CAAA;AACD,KApCD,MAoCO;AACL,MAAA,IAAI6X,WAAW,IAAI,CAAC57B,OAApB,EAA6B;AAC3B;AACAA,QAAAA,OAAO,GAAG,IAAKq8B,CAAAA,WAAL,CAAiBh9B,MAAjB,EAAyBuzB,eAAzB,CAAV,CAAA;AACD,OAHD,MAGO,IAAI5yB,OAAO,IAAI,CAAC47B,WAAhB,EAA6B;AAClC;QACAb,SAAS,CAACtR,MAAV,CAAiBzpB,OAAjB,CAAA,CAAA;AACAA,QAAAA,OAAO,GAAG,IAAA,CAAK27B,QAAL,GAAgB,IAA1B,CAAA;AACD,OARI;;;MAWL,IAAI,CAACJ,eAAL,EAAsB;QACpB,IAAKe,CAAAA,qBAAL,CAA2BvY,WAA3B,EAAwC5F,QAAxC,EAAkDoe,oBAAoB,CAACzW,WAAD,CAAtE,CAAA,CAAA;AACD,OAbI;;;AAgBL,MAAA,IAAI0W,WAAW,GAAGzB,SAAS,CAAC0B,WAAV,EAAlB,CAAA;;AAEA,MAAA,IAAID,WAAJ,EAAiB;QACf,IAAIE,WAAW,GAAGjD,kBAAkB,CAAC,IAAD,EAAOtb,QAAP,EAAiB,KAAjB,EAAwB4F,WAAxB,CAApC,CAAA;AACAK,QAAAA,SAAA,CAAkBoY,WAAlB,EAA+B;UAC7B7jC,KAAK,EAAE+jC,WAAW,CAAC/jC,KAAAA;AADU,SAA/B,EAEGorB,WAFH,CAAA,CAAA;AAGD,OALD,MAKO;AACLgX,QAAAA,SAAS,CAAC9zB,WAAV,CAAsBwyB,kBAAkB,CAAC,IAAD,EAAOtb,QAAP,EAAiB,IAAjB,EAAuB4F,WAAvB,CAAxC,CAAA,CAAA;AACD,OAzBI;AA0BL;;;AAGApD,MAAAA,UAAU,IAAIqa,UAAU,CAAC7Y,UAAX,CAAsBZ,IAAtB,EAA4B;AACxC2G,QAAAA,QAAQ,EAAE4T,YAD8B;AAExC3T,QAAAA,SAAS,EAAE6T,kBAF6B;AAGxC7X,QAAAA,gBAAgB,EAAE,IAHsB;QAIxC4E,cAAc,EAAE,SAAUhM,cAAAA,CAAAA,GAAV,EAAe;AAC7B,UAAA,OAAO,CAAC1d,MAAM,CAAC0d,GAAG,GAAG,CAAP,CAAP,EAAkB1d,MAAM,CAAC0d,GAAG,GAAG,CAAN,GAAU,CAAX,CAAxB,CAAP,CAAA;AACD,SAAA;OANW,CAAd,CA7BK;AAqCL;;AAEA,MAAA,IAAI,CAACiX,YAAY,CAAC,IAAK2I,CAAAA,gBAAN,EAAwB/J,eAAxB,CAAb,IAAyD,CAACoB,YAAY,CAAC,IAAA,CAAK4I,OAAN,EAAev9B,MAAf,CAA1E,EAAkG;AAChG,QAAA,IAAI2zB,YAAJ,EAAkB;AAChB,UAAA,IAAA,CAAK6J,kBAAL,CAAwBtb,IAAxB,EAA8BqR,eAA9B,EAA+CzU,QAA/C,EAAyDvU,GAAzD,EAA8D4W,IAA9D,EAAoEoK,WAApE,EAAiF/J,YAAjF,CAAA,CAAA;AACD,SAFD,MAEO;AACL;AACA,UAAA,IAAIL,IAAJ,EAAU;AACR;YACAnhB,MAAM,GAAG81B,kBAAkB,CAAC91B,MAAD,EAAS8e,QAAT,EAAmBqC,IAAnB,EAAyBK,YAAzB,CAA3B,CAAA;;AAEA,YAAA,IAAI+R,eAAJ,EAAqB;cACnBA,eAAe,GAAGuC,kBAAkB,CAACvC,eAAD,EAAkBzU,QAAlB,EAA4BqC,IAA5B,EAAkCK,YAAlC,CAApC,CAAA;AACD,aAAA;AACF,WAAA;;UAED9gB,QAAQ,CAAC+8B,QAAT,CAAkB;AAChBz9B,YAAAA,MAAM,EAAEA,MAAAA;WADV,CAAA,CAAA;AAGAW,UAAAA,OAAO,IAAIA,OAAO,CAAC88B,QAAR,CAAiB;AAC1Bz9B,YAAAA,MAAM,EAAEA,MADkB;AAE1BuzB,YAAAA,eAAe,EAAEA,eAAAA;AAFS,WAAjB,CAAX,CAAA;AAID,SAAA;AACF,OAAA;AACF,KAAA;;AAED,IAAA,IAAIvN,aAAa,GAAGtB,WAAW,CAACuB,QAAZ,CAAqB,UAArB,CAApB,CAAA;AACA,IAAA,IAAIV,KAAK,GAAGS,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAZ,CAAA;AACA,IAAA,IAAIX,SAAS,GAAGQ,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAhB,CAAA;AACA,IAAA,IAAIV,gBAAgB,GAAGO,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAvB,CAAA;AACAzlB,IAAAA,QAAQ,CAACimB,QAAT,CAAkB+O,QAAA;IAClBsG,cAAc,CAAC0B,YAAf,EADkB,EACa;AAC7BnrC,MAAAA,IAAI,EAAE,MADuB;AAE7BE,MAAAA,MAAM,EAAEg0B,WAFqB;AAG7BkX,MAAAA,QAAQ,EAAE,OAAA;AAHmB,KADb,CAAlB,CAAA,CAAA;AAMAC,IAAAA,wBAAwB,CAACl9B,QAAD,EAAWgkB,WAAX,EAAwB,WAAxB,CAAxB,CAAA;;IAEA,IAAIhkB,QAAQ,CAACpO,KAAT,CAAesB,SAAf,GAA2B,CAA3B,IAAgC8wB,WAAW,CAACyB,GAAZ,CAAgB,CAAC,UAAD,EAAa,WAAb,EAA0B,OAA1B,CAAhB,CAAwD,KAAA,QAA5F,EAAsG;MACpG,IAAI0X,iBAAiB,GAAGn9B,QAAQ,CAACo9B,QAAT,CAAkB,UAAlB,EAA8BxrC,KAAtD,CAAA;MACAurC,iBAAiB,CAACjqC,SAAlB,GAA8B,CAAC8M,QAAQ,CAACpO,KAAT,CAAesB,SAAhB,GAA4B,CAA1D,CAAA;AACD,KA9K8D;;;IAiL/Ds0B,SAAS,CAACxnB,QAAD,CAAT,CAAoBq9B,WAApB,GAAkCrZ,WAAW,CAACqZ,WAA9C,CAAA;IACA/V,mBAAmB,CAACtnB,QAAD,EAAW6kB,KAAX,EAAkBC,SAAlB,EAA6BC,gBAA7B,CAAnB,CAAA;IACA,IAAItlB,MAAM,GAAGs1B,SAAS,CAAC/Q,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAD,CAAtB,CAAA;AACA,IAAA,IAAI/E,cAAc,GAAGsD,WAAW,CAACyB,GAAZ,CAAgB,gBAAhB,CAArB,CAAA;IACAzlB,QAAQ,CAAC+8B,QAAT,CAAkB;AAChBt9B,MAAAA,MAAM,EAAEA,MADQ;AAEhBihB,MAAAA,cAAc,EAAEA,cAFA;AAGhBI,MAAAA,YAAY,EAAEA,YAAAA;KAHhB,CAAA,CAAA;;AAMA,IAAA,IAAI7gB,OAAJ,EAAa;AACX,MAAA,IAAIq9B,eAAe,GAAG9b,IAAI,CAACwK,kBAAL,CAAwB,iBAAxB,CAAtB,CAAA;MACA,IAAI8G,eAAe,GAAG,CAAtB,CAAA;MACA7yB,OAAO,CAACgmB,QAAR,CAAiB+O,QAAA,CAAgBuG,cAAc,CAACgC,YAAf,EAAhB,EAA+C;AAC9D1rC,QAAAA,IAAI,EAAEk0B,WADwD;AAE9DtzB,QAAAA,OAAO,EAAE,GAFqD;AAG9DwqC,QAAAA,QAAQ,EAAE,OAHoD;AAI9D9W,QAAAA,KAAK,EAAE3E,IAAI,CAAClC,SAAL,CAAe,OAAf,CAAwB6G,CAAAA,KAAAA;AAJ+B,OAA/C,CAAjB,CAAA,CAAA;;AAOA,MAAA,IAAImX,eAAJ,EAAqB;QACnBxK,eAAe,GAAGiC,SAAS,CAACuI,eAAe,CAAC7X,GAAhB,CAAoB,QAApB,CAAD,CAA3B,CAAA;AACD,OAAA;;MAEDxlB,OAAO,CAAC88B,QAAR,CAAiB;AACft9B,QAAAA,MAAM,EAAEA,MADO;AAEfqzB,QAAAA,eAAe,EAAEA,eAFF;AAGfpS,QAAAA,cAAc,EAAEA,cAHD;AAIfI,QAAAA,YAAY,EAAEA,YAAAA;OAJhB,CAAA,CAAA;MAMAoc,wBAAwB,CAACj9B,OAAD,EAAU+jB,WAAV,EAAuB,WAAvB,CAAxB,CApBW;;MAsBXwD,SAAS,CAACvnB,OAAD,CAAT,CAAmBo9B,WAAnB,GAAiCrZ,WAAW,CAACqZ,WAA7C,CAAA;MACA/V,mBAAmB,CAACrnB,OAAD,EAAU4kB,KAAV,EAAiBC,SAAjB,EAA4BC,gBAA5B,CAAnB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIyY,eAAe,GAAG,SAAlBA,eAAkB,CAAUC,OAAV,EAAmB;MACvC/rB,KAAK,CAACgsB,gBAAN,CAAuBD,OAAvB,CAAA,CAAA;KADF,CAAA;;AAIAjc,IAAAA,IAAI,CAACwI,iBAAL,CAAuB,UAAUz3B,EAAV,EAAc;AACnC;AACAA,MAAAA,EAAE,KAAKA,EAAE,CAACorC,kBAAH,GAAwBH,eAA7B,CAAF,CAAA;KAFF,CAAA,CAAA;AAIA,IAAA,IAAA,CAAK7B,SAAL,CAAegC,kBAAf,GAAoCH,eAApC,CAAA;AACA,IAAA,IAAA,CAAK1U,KAAL,GAAatH,IAAb,CA9N+D;;IAgO/D,IAAKka,CAAAA,SAAL,GAAiBtd,QAAjB,CAAA;IACA,IAAKwe,CAAAA,gBAAL,GAAwB/J,eAAxB,CAAA;IACA,IAAKgK,CAAAA,OAAL,GAAev9B,MAAf,CAAA;IACA,IAAK68B,CAAAA,KAAL,GAAa1b,IAAb,CAAA;IACA,IAAKmd,CAAAA,YAAL,GAAoB/S,WAApB,CAAA;;AAEA,IAAA,IAAI7G,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,CAAJ,EAAyC;AACvC,MAAA,IAAA,CAAKoY,aAAL,CAAmB7Z,WAAnB,EAAgChkB,QAAhC,CAAA,CAAA;AACAC,MAAAA,OAAO,IAAI,IAAK49B,CAAAA,aAAL,CAAmB7Z,WAAnB,EAAgC/jB,OAAhC,CAAX,CAAA;AACD,KAAA;GAzOH,CAAA;;EA4OA66B,QAAQ,CAACxtC,SAAT,CAAmBuwC,aAAnB,GAAmC,UAAU7Z,WAAV,EAAuBzxB,EAAvB,EAA2B;AAC5Di1B,IAAAA,SAAS,CAACj1B,EAAD,CAAT,CAAcurC,SAAd,GAA0B;AACxBC,MAAAA,aAAa,EAAE,QADS;AAExBC,MAAAA,gBAAgB,EAAE,MAFM;MAGxBC,cAAc,EAAEja,WAAW,CAACia,cAHJ;MAIxBZ,WAAW,EAAErZ,WAAW,CAACqZ,WAJD;MAKxBa,UAAU,EAAEla,WAAW,CAAChwB,IALA;AAMxBmqC,MAAAA,UAAU,EAAE,MAAA;KANd,CAAA;GADF,CAAA;;AAWArD,EAAAA,QAAQ,CAACxtC,SAAT,CAAmB+1B,SAAnB,GAA+B,UAAUW,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqCu0B,OAArC,EAA8C;AAC3E,IAAA,IAAI5c,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAIoC,SAAS,GAAG4c,cAAA,CAAyB7c,IAAzB,EAA+B4c,OAA/B,CAAhB,CAAA;;IAEA,IAAKV,CAAAA,gBAAL,CAAsB,UAAtB,CAAA,CAAA;;AAEA,IAAA,IAAI,EAAEjc,SAAS,YAAY6c,KAAvB,CAAiC7c,IAAAA,SAAS,IAAI,IAA9C,IAAsDA,SAAS,IAAI,CAAvE,EAA0E;AACxE,MAAA,IAAIniB,MAAM,GAAGkiB,IAAI,CAACwM,SAAL,CAAe,QAAf,CAAb,CAAA;AACA,MAAA,IAAItO,MAAM,GAAG8B,IAAI,CAACiI,gBAAL,CAAsBhI,SAAtB,CAAb,CAAA;;MAEA,IAAI,CAAC/B,MAAL,EAAa;AACX;AACA,QAAA,IAAI3xB,CAAC,GAAGuR,MAAM,CAACmiB,SAAS,GAAG,CAAb,CAAd,CAAA;QACA,IAAIzzB,CAAC,GAAGsR,MAAM,CAACmiB,SAAS,GAAG,CAAZ,GAAgB,CAAjB,CAAd,CAAA;;QAEA,IAAItwB,KAAK,CAACpD,CAAD,CAAL,IAAYoD,KAAK,CAACnD,CAAD,CAArB,EAA0B;AACxB;AACA,UAAA,OAAA;AACD,SARU;;;AAWX,QAAA,IAAI,IAAKkuC,CAAAA,mBAAL,IAA4B,CAAC,IAAKA,CAAAA,mBAAL,CAAyB7T,OAAzB,CAAiCt6B,CAAjC,EAAoCC,CAApC,CAAjC,EAAyE;AACvE,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAIikB,MAAM,GAAG+R,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;AACA,QAAA,IAAIjM,CAAC,GAAGwK,WAAW,CAACyB,GAAZ,CAAgB,GAAhB,CAAR,CAAA;AACA/F,QAAAA,MAAM,GAAG,IAAIiJ,MAAJ,CAAcnH,IAAd,EAAoBC,SAApB,CAAT,CAAA;QACA/B,MAAM,CAAC3xB,CAAP,GAAWA,CAAX,CAAA;QACA2xB,MAAM,CAAC1xB,CAAP,GAAWA,CAAX,CAAA;AACA0xB,QAAAA,MAAM,CAAC+D,IAAP,CAAYxR,MAAZ,EAAoBuH,CAApB,EApBW;;AAsBX,QAAA,IAAI+kB,WAAW,GAAG7e,MAAM,CAAC0D,aAAP,EAAA,CAAuBjb,cAAvB,EAAlB,CAAA;;AAEA,QAAA,IAAIo2B,WAAJ,EAAiB;UACfA,WAAW,CAACtsB,MAAZ,GAAqBA,MAArB,CAAA;UACAssB,WAAW,CAAC/kB,CAAZ,GAAgBA,CAAhB,CAAA;UACA+kB,WAAW,CAAC7b,EAAZ,GAAiB,IAAA,CAAKiZ,SAAL,CAAejZ,EAAf,GAAoB,CAArC,CAAA;AACD,SAAA;;QAEDhD,MAAM,CAACsc,MAAP,GAAgB,IAAhB,CAAA;AACAxa,QAAAA,IAAI,CAAC8H,gBAAL,CAAsB7H,SAAtB,EAAiC/B,MAAjC,EA/BW;;QAiCXA,MAAM,CAACqD,mBAAP,CAA2B,IAA3B,CAAA,CAAA;AACA,QAAA,IAAA,CAAKpE,KAAL,CAAWO,GAAX,CAAeQ,MAAf,CAAA,CAAA;AACD,OAAA;;AAEDA,MAAAA,MAAM,CAAC2D,SAAP,EAAA,CAAA;AACD,KA1CD,MA0CO;AACL;AACAmb,MAAAA,SAAS,CAAClxC,SAAV,CAAoB+1B,SAApB,CAA8B1R,IAA9B,CAAmC,IAAnC,EAAyCqS,WAAzC,EAAsDqX,OAAtD,EAA+DxxB,GAA/D,EAAoEu0B,OAApE,CAAA,CAAA;AACD,KAAA;GAnDH,CAAA;;AAsDAtD,EAAAA,QAAQ,CAACxtC,SAAT,CAAmBi2B,QAAnB,GAA8B,UAAUS,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqCu0B,OAArC,EAA8C;AAC1E,IAAA,IAAI5c,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAIoC,SAAS,GAAG4c,cAAA,CAAyB7c,IAAzB,EAA+B4c,OAA/B,CAAhB,CAAA;;IAEA,IAAKV,CAAAA,gBAAL,CAAsB,QAAtB,CAAA,CAAA;;AAEA,IAAA,IAAIjc,SAAS,IAAI,IAAb,IAAqBA,SAAS,IAAI,CAAtC,EAAyC;AACvC,MAAA,IAAI/B,MAAM,GAAG8B,IAAI,CAACiI,gBAAL,CAAsBhI,SAAtB,CAAb,CAAA;;AAEA,MAAA,IAAI/B,MAAJ,EAAY;QACV,IAAIA,MAAM,CAACsc,MAAX,EAAmB;AACjBxa,UAAAA,IAAI,CAAC8H,gBAAL,CAAsB7H,SAAtB,EAAiC,IAAjC,CAAA,CAAA;AACA,UAAA,IAAA,CAAK9C,KAAL,CAAW+K,MAAX,CAAkBhK,MAAlB,CAAA,CAAA;AACD,SAHD,MAGO;AACLA,UAAAA,MAAM,CAAC6D,QAAP,EAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAXD,MAWO;AACL;AACA;AACA;AACAib,MAAAA,SAAS,CAAClxC,SAAV,CAAoBi2B,QAApB,CAA6B5R,IAA7B,CAAkC,IAAlC,EAAwCqS,WAAxC,EAAqDqX,OAArD,EAA8DxxB,GAA9D,EAAmEu0B,OAAnE,CAAA,CAAA;AACD,KAAA;GAtBH,CAAA;;AAyBAtD,EAAAA,QAAQ,CAACxtC,SAAT,CAAmBowC,gBAAnB,GAAsC,UAAUD,OAAV,EAAmB;IACvD,IAAIx9B,OAAO,GAAG,IAAA,CAAK27B,QAAnB,CAAA;AACA6C,IAAAA,aAAa,CAAC,IAAA,CAAK9C,SAAN,EAAiB8B,OAAjB,CAAb,CAAA;AACAx9B,IAAAA,OAAO,IAAIw+B,aAAa,CAACx+B,OAAD,EAAUw9B,OAAV,CAAxB,CAAA;GAHF,CAAA;;AAMA3C,EAAAA,QAAQ,CAACxtC,SAAT,CAAmB+uC,YAAnB,GAAkC,UAAU/8B,MAAV,EAAkB;AAClD,IAAA,IAAIU,QAAQ,GAAG,IAAK27B,CAAAA,SAApB,CADkD;;AAGlD,IAAA,IAAI37B,QAAJ,EAAc;AACZ,MAAA,IAAA,CAAKm7B,UAAL,CAAgBzR,MAAhB,CAAuB1pB,QAAvB,CAAA,CAAA;AACD,KAAA;;IAEDA,QAAQ,GAAG,IAAI2xB,UAAJ,CAAe;AACxB/4B,MAAAA,KAAK,EAAE;AACL0G,QAAAA,MAAM,EAAEA,MAAAA;OAFc;AAIxBo/B,MAAAA,sBAAsB,EAAE,CAJA;AAKxBhc,MAAAA,EAAE,EAAE,EAAA;AALoB,KAAf,CAAX,CAAA;;AAQA,IAAA,IAAA,CAAKyY,UAAL,CAAgBjc,GAAhB,CAAoBlf,QAApB,CAAA,CAAA;;IAEA,IAAK27B,CAAAA,SAAL,GAAiB37B,QAAjB,CAAA;AACA,IAAA,OAAOA,QAAP,CAAA;GAlBF,CAAA;;EAqBA86B,QAAQ,CAACxtC,SAAT,CAAmBgvC,WAAnB,GAAiC,UAAUh9B,MAAV,EAAkBuzB,eAAlB,EAAmC;AAClE,IAAA,IAAI5yB,OAAO,GAAG,IAAK27B,CAAAA,QAAnB,CADkE;;AAGlE,IAAA,IAAI37B,OAAJ,EAAa;AACX,MAAA,IAAA,CAAKk7B,UAAL,CAAgBzR,MAAhB,CAAuBzpB,OAAvB,CAAA,CAAA;AACD,KAAA;;IAEDA,OAAO,GAAG,IAAI2yB,SAAJ,CAAc;AACtBh6B,MAAAA,KAAK,EAAE;AACL0G,QAAAA,MAAM,EAAEA,MADH;AAELuzB,QAAAA,eAAe,EAAEA,eAAAA;OAHG;AAKtB6L,MAAAA,sBAAsB,EAAE,CAAA;AALF,KAAd,CAAV,CAAA;;AAQA,IAAA,IAAA,CAAKvD,UAAL,CAAgBjc,GAAhB,CAAoBjf,OAApB,CAAA,CAAA;;IAEA,IAAK27B,CAAAA,QAAL,GAAgB37B,OAAhB,CAAA;AACA,IAAA,OAAOA,OAAP,CAAA;GAlBF,CAAA;;EAqBA66B,QAAQ,CAACxtC,SAAT,CAAmB8uC,yBAAnB,GAA+C,UAAU5a,IAAV,EAAgBpD,QAAhB,EAA0BgK,SAA1B,EAAqC;AAClF,IAAA,IAAIuW,oBAAJ,CAAA;AACA,IAAA,IAAInD,eAAJ,CAAA;AACA,IAAA,IAAI1Q,QAAQ,GAAG1M,QAAQ,CAAC2M,WAAT,EAAf,CAAA;AACA,IAAA,IAAI6T,aAAa,GAAG9T,QAAQ,CAAC0I,OAA7B,CAAA;;AAEA,IAAA,IAAIpV,QAAQ,CAAC/d,IAAT,KAAkB,aAAtB,EAAqC;AACnCs+B,MAAAA,oBAAoB,GAAG7T,QAAQ,CAACwI,YAAT,EAAvB,CAAA;AACAkI,MAAAA,eAAe,GAAG,KAAlB,CAAA;AACD,KAHD,MAGO,IAAIpd,QAAQ,CAAC/d,IAAT,KAAkB,OAAtB,EAA+B;AACpCs+B,MAAAA,oBAAoB,GAAG7T,QAAQ,CAACO,GAAT,KAAiB,OAAxC,CAAA;AACAmQ,MAAAA,eAAe,GAAG,IAAlB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIxX,WAAW,GAAGxC,IAAI,CAACyC,SAAvB,CAAA;AACA,IAAA,IAAI4a,cAAc,GAAG7a,WAAW,CAACyB,GAAZ,CAAgB,mBAAhB,CAArB,CAAA;;AAEA,IAAA,IAAIuP,UAAA,CAAkB6J,cAAlB,CAAJ,EAAuC;AACrCA,MAAAA,cAAc,GAAGA,cAAc,CAAC,IAAD,CAA/B,CAAA;AACD,KAAA;;IAED,IAAIC,WAAW,GAAG9a,WAAW,CAACyB,GAAZ,CAAgB,gBAAhB,KAAqC,CAAvD,CAAA;AACA,IAAA,IAAIsZ,gBAAgB,GAAG/J,UAAA,CAAkB8J,WAAlB,CAAA,GAAiCA,WAAW,CAAC,IAAD,CAA5C,GAAqDA,WAA5E,CAAA;AACAtd,IAAAA,IAAI,CAACwI,iBAAL,CAAuB,UAAUtK,MAAV,EAAkB1C,GAAlB,EAAuB;MAC5C,IAAIzqB,EAAE,GAAGmtB,MAAT,CAAA;;AAEA,MAAA,IAAIntB,EAAJ,EAAQ;QACN,IAAI21B,KAAK,GAAG,CAACxI,MAAM,CAAC3xB,CAAR,EAAW2xB,MAAM,CAAC1xB,CAAlB,CAAZ,CAAA;QACA,IAAIitB,KAAK,GAAG,KAAK,CAAjB,CAAA;QACA,IAAIuP,GAAG,GAAG,KAAK,CAAf,CAAA;QACA,IAAI+E,OAAO,GAAG,KAAK,CAAnB,CAAA;;AAEA,QAAA,IAAInH,SAAJ,EAAe;AACb,UAAA,IAAIoT,eAAJ,EAAqB;YACnB,IAAIwD,SAAS,GAAG5W,SAAhB,CAAA;AACA,YAAA,IAAImO,KAAK,GAAGnY,QAAQ,CAAC6gB,YAAT,CAAsB/W,KAAtB,CAAZ,CAAA;;AAEA,YAAA,IAAIyW,oBAAJ,EAA0B;cACxB1jB,KAAK,GAAG+jB,SAAS,CAACnwC,UAAlB,CAAA;cACA27B,GAAG,GAAGwU,SAAS,CAAClwC,QAAhB,CAAA;cACAygC,OAAO,GAAG,CAACgH,KAAK,CAAC,CAAD,CAAN,GAAY,GAAZ,GAAkBzpC,IAAI,CAACI,EAAjC,CAAA;AACD,aAJD,MAIO;cACL+tB,KAAK,GAAG+jB,SAAS,CAACnL,EAAlB,CAAA;cACArJ,GAAG,GAAGwU,SAAS,CAACpwC,CAAhB,CAAA;AACA2gC,cAAAA,OAAO,GAAGgH,KAAK,CAAC,CAAD,CAAf,CAAA;AACD,aAAA;AACF,WAbD,MAaO;YACL,IAAI2I,QAAQ,GAAG9W,SAAf,CAAA;;AAEA,YAAA,IAAIuW,oBAAJ,EAA0B;cACxB1jB,KAAK,GAAGikB,QAAQ,CAACnxC,CAAjB,CAAA;AACAy8B,cAAAA,GAAG,GAAG0U,QAAQ,CAACnxC,CAAT,GAAamxC,QAAQ,CAACnoC,KAA5B,CAAA;cACAw4B,OAAO,GAAG7P,MAAM,CAAC3xB,CAAjB,CAAA;AACD,aAJD,MAIO;AACLktB,cAAAA,KAAK,GAAGikB,QAAQ,CAAClxC,CAAT,GAAakxC,QAAQ,CAACloC,MAA9B,CAAA;cACAwzB,GAAG,GAAG0U,QAAQ,CAAClxC,CAAf,CAAA;cACAuhC,OAAO,GAAG7P,MAAM,CAAC1xB,CAAjB,CAAA;AACD,aAAA;AACF,WAAA;AACF,SAAA;;AAED,QAAA,IAAImxC,KAAK,GAAG3U,GAAG,KAAKvP,KAAR,GAAgB,CAAhB,GAAoB,CAACsU,OAAO,GAAGtU,KAAX,KAAqBuP,GAAG,GAAGvP,KAA3B,CAAhC,CAAA;;AAEA,QAAA,IAAI2jB,aAAJ,EAAmB;UACjBO,KAAK,GAAG,IAAIA,KAAZ,CAAA;AACD,SAAA;;AAED,QAAA,IAAI3jC,KAAK,GAAGw5B,UAAA,CAAkB8J,WAAlB,CAAA,GAAiCA,WAAW,CAAC9hB,GAAD,CAA5C,GAAoD6hB,cAAc,GAAGM,KAAjB,GAAyBJ,gBAAzF,CAAA;AACA,QAAA,IAAIvc,UAAU,GAAGjwB,EAAE,CAAC6wB,aAAH,EAAjB,CAAA;AACA,QAAA,IAAI5uB,IAAI,GAAGguB,UAAU,CAACra,cAAX,EAAX,CAAA;QACA5V,EAAE,CAACkwB,IAAH,CAAQ;AACNpf,UAAAA,MAAM,EAAE,CADF;AAENC,UAAAA,MAAM,EAAE,CAAA;SAFV,CAAA,CAAA;QAIA/Q,EAAE,CAAC6sC,SAAH,CAAa;AACX/7B,UAAAA,MAAM,EAAE,CADG;AAEXC,UAAAA,MAAM,EAAE,CAAA;AAFG,SAAb,EAGG;AACD+7B,UAAAA,QAAQ,EAAE,GADT;AAEDC,UAAAA,UAAU,EAAE,IAFX;AAGD9jC,UAAAA,KAAK,EAAEA,KAAAA;SANT,CAAA,CAAA;;AASA,QAAA,IAAIhH,IAAJ,EAAU;UACRA,IAAI,CAAC+qC,WAAL,CAAiB;AACf3tC,YAAAA,KAAK,EAAE;AACLa,cAAAA,OAAO,EAAE,CAAA;AADJ,aAAA;AADQ,WAAjB,EAIG;AACD4sC,YAAAA,QAAQ,EAAE,GADT;AAED7jC,YAAAA,KAAK,EAAEA,KAAAA;WANT,CAAA,CAAA;AAQD,SAAA;;QAEDgnB,UAAU,CAACgd,qBAAX,GAAmC,IAAnC,CAAA;AACD,OAAA;KAxEH,CAAA,CAAA;GAvBF,CAAA;;EAmGA1E,QAAQ,CAACxtC,SAAT,CAAmBivC,qBAAnB,GAA2C,UAAUvY,WAAV,EAAuB5F,QAAvB,EAAiC2I,YAAjC,EAA+C;AACxF,IAAA,IAAI0T,aAAa,GAAGzW,WAAW,CAACuB,QAAZ,CAAqB,UAArB,CAApB,CAAA;;AAEA,IAAA,IAAIiU,oBAAoB,CAACxV,WAAD,CAAxB,EAAuC;AACrC,MAAA,IAAIyb,MAAM,GAAGzb,WAAW,CAAC3E,OAAZ,EAAb,CAAA;AACA,MAAA,IAAIrf,QAAQ,GAAG,IAAK27B,CAAAA,SAApB,CAFqC;;AAIrC,MAAA,IAAIr8B,MAAM,GAAGmgC,MAAM,CAACzR,SAAP,CAAiB,QAAjB,CAAb,CAAA;;MAEA,IAAI,CAAC1uB,MAAL,EAAa;AACXU,QAAAA,QAAQ,CAAC4nB,iBAAT,EAAA,CAAA;QACA,IAAKuS,CAAAA,SAAL,GAAiB,IAAjB,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;MAED,IAAI/Z,QAAQ,GAAG,IAAA,CAAK+Z,SAApB,CAAA;;MAEA,IAAI,CAAC/Z,QAAL,EAAe;QACbA,QAAQ,GAAG,KAAK+Z,SAAL,GAAiB,IAAI9V,MAAJ,CAAiB;UAC3C3B,EAAE,EAAE,GADuC;;AAAA,SAAjB,CAA5B,CAAA;QAIAtC,QAAQ,CAACsf,UAAT,GAAsB,IAAtB,CAAA;AACA1/B,QAAAA,QAAQ,CAACiI,cAAT,CAAwB,IAAA,CAAKkyB,SAA7B,CAAA,CAAA;QACAn6B,QAAQ,CAACw/B,qBAAT,GAAiC,IAAjC,CAAA;AACD,OAtBoC;;;AAyBrC,MAAA,IAAI/d,SAAS,GAAGwX,mBAAmB,CAAC35B,MAAD,CAAnC,CAAA;;MAEA,IAAImiB,SAAS,IAAI,CAAjB,EAAoB;QAClBiF,aAAa,CAAC1mB,QAAD,EAAW0lB,oBAAoB,CAAC1B,WAAD,EAAc,UAAd,CAA/B,EAA0D;AACrE+C,UAAAA,YAAY,EAAEA,YADuD;AAErEJ,UAAAA,YAAY,EAAE3C,WAFuD;AAGrE4C,UAAAA,cAAc,EAAEnF,SAHqD;AAIrEoF,UAAAA,WAAW,EAAE,SAAUpF,WAAAA,CAAAA,SAAV,EAAqB/C,GAArB,EAA0BqD,iBAA1B,EAA6C;AACxD,YAAA,OAAOA,iBAAiB,IAAI,IAArB,GAA4BD,2BAA2B,CAAC2d,MAAD,EAAS1d,iBAAT,CAAvD,GAAqFR,eAAe,CAACke,MAAD,EAAShe,SAAT,CAA3G,CAAA;WALmE;AAOrEke,UAAAA,gBAAgB,EAAE,IAAA;AAPmD,SAA1D,EAQVnF,yBAAyB,CAACC,aAAD,EAAgBrc,QAAhB,CARf,CAAb,CAAA;AASApe,QAAAA,QAAQ,CAAC4/B,UAAT,CAAoBxuB,QAApB,GAA+B,IAA/B,CAAA;AACD,OAAA;AACF,KAvCD,MAuCO,IAAI,IAAK+oB,CAAAA,SAAT,EAAoB;MACzB,IAAKwB,CAAAA,SAAL,CAAe/T,iBAAf,EAAA,CAAA;;MAEA,IAAKuS,CAAAA,SAAL,GAAiB,IAAjB,CAAA;AACD,KAAA;GA9CH,CAAA;;AAiDAW,EAAAA,QAAQ,CAACxtC,SAAT,CAAmB4sC,iBAAnB,GAAuC,UAAUpkC,OAAV,EAAmBmkC,QAAnB,EAA6BzY,IAA7B,EAAmCqe,eAAnC,EAAoDvf,cAApD,EAAoEma,aAApE,EAAmFrc,QAAnF,EAA6F;IAClI,IAAIgC,QAAQ,GAAG,IAAA,CAAK+Z,SAApB,CAAA;IACA,IAAIn6B,QAAQ,GAAG,IAAA,CAAK27B,SAApB,CAAA;;AAEA,IAAA,IAAIvb,QAAJ,EAAc;AACZ;AACA;MACA,IAAItqB,OAAO,GAAG,CAAV,IAAe+pC,eAAe,CAACzF,SAAhB,IAA6B,IAAhD,EAAsD;AACpDyF,QAAAA,eAAe,CAACzF,SAAhB,GAA4Bha,QAAQ,CAACryB,CAArC,CAAA;AACA8xC,QAAAA,eAAe,CAACxF,SAAhB,GAA4Bja,QAAQ,CAACpyB,CAArC,CAAA;AACD,OAAA;;AAED,MAAA,IAAIsR,MAAM,GAAGkiB,IAAI,CAACwM,SAAL,CAAe,QAAf,CAAb,CAAA;AACA,MAAA,IAAIhK,WAAW,GAAGxC,IAAI,CAACyC,SAAvB,CAAA;AACA,MAAA,IAAInD,YAAY,GAAGkD,WAAW,CAACyB,GAAZ,CAAgB,cAAhB,CAAnB,CAAA;AACA,MAAA,IAAIj4B,SAAS,GAAGitC,aAAa,CAAChV,GAAd,CAAkB,WAAlB,CAAhB,CAAA;MACA,IAAIlF,QAAQ,GAAGka,aAAa,CAAChV,GAAd,CAAkB,UAAlB,KAAiC,CAAhD,CAAA;AACA,MAAA,IAAIqF,QAAQ,GAAG1M,QAAQ,CAAC2M,WAAT,EAAf,CAAA;AACA,MAAA,IAAIuI,YAAY,GAAGxI,QAAQ,CAACwI,YAAT,EAAnB,CAAA;AACA,MAAA,IAAIoH,cAAc,GAAG5P,QAAQ,CAAC0I,OAA9B,CAAA;AACA,MAAA,IAAIpL,SAAS,GAAG6R,QAAQ,CAACrhC,KAAzB,CAAA;AACA,MAAA,IAAIm5B,IAAI,GAAG2I,cAAc,GAAGpH,YAAY,GAAGlL,SAAS,CAACr6B,CAAb,GAAiBq6B,SAAS,CAACp6B,CAAV,GAAco6B,SAAS,CAACpxB,MAAxD,GAAiEs8B,YAAY,GAAGlL,SAAS,CAACr6B,CAAV,GAAcq6B,SAAS,CAACrxB,KAA3B,GAAmCqxB,SAAS,CAACp6B,CAAnJ,CAAA;AACA,MAAA,IAAI8xC,SAAS,GAAG,CAACxM,YAAY,GAAG/S,QAAH,GAAc,CAA3B,KAAiCma,cAAc,GAAG,CAAC,CAAJ,GAAQ,CAAvD,CAAhB,CAAA;AACA,MAAA,IAAIqF,SAAS,GAAG,CAACzM,YAAY,GAAG,CAAH,GAAO,CAAC/S,QAArB,KAAkCma,cAAc,GAAG,CAAC,CAAJ,GAAQ,CAAxD,CAAhB,CAAA;AACA,MAAA,IAAIrP,GAAG,GAAGiI,YAAY,GAAG,GAAH,GAAS,GAA/B,CAAA;MACA,IAAI0M,cAAc,GAAG7G,aAAa,CAAC75B,MAAD,EAASyyB,IAAT,EAAe1G,GAAf,CAAlC,CAAA;AACA,MAAA,IAAI4U,OAAO,GAAGD,cAAc,CAACzG,KAA7B,CAAA;MACA,IAAIrQ,IAAI,GAAG+W,OAAO,CAAC,CAAD,CAAP,GAAaA,OAAO,CAAC,CAAD,CAA/B,CAAA;MACA,IAAIzT,KAAK,GAAG,KAAK,CAAjB,CAAA;;MAEA,IAAItD,IAAI,IAAI,CAAZ,EAAe;AACb;AACA,QAAA,IAAIA,IAAI,GAAG,CAAP,IAAY,CAACpI,YAAjB,EAA+B;UAC7B,IAAIqU,EAAE,GAAG+D,eAAe,CAAC55B,MAAD,EAAS2gC,OAAO,CAAC,CAAD,CAAhB,CAAxB,CAAA;UACA7f,QAAQ,CAACqC,IAAT,CAAc;AACZ10B,YAAAA,CAAC,EAAEonC,EAAE,CAAC,CAAD,CAAF,GAAQ2K,SADC;AAEZ9xC,YAAAA,CAAC,EAAEmnC,EAAE,CAAC,CAAD,CAAF,GAAQ4K,SAAAA;WAFb,CAAA,CAAA;AAIAzf,UAAAA,cAAc,KAAKkM,KAAK,GAAGxI,WAAW,CAACkc,WAAZ,CAAwBD,OAAO,CAAC,CAAD,CAA/B,CAAb,CAAd,CAAA;AACD,SAPD,MAOO;UACL,IAAI9K,EAAE,GAAGn1B,QAAQ,CAAC8xB,UAAT,CAAoBC,IAApB,EAA0B1G,GAA1B,CAAT,CAAA;AACA8J,UAAAA,EAAE,IAAI/U,QAAQ,CAACqC,IAAT,CAAc;AAClB10B,YAAAA,CAAC,EAAEonC,EAAE,CAAC,CAAD,CAAF,GAAQ2K,SADO;AAElB9xC,YAAAA,CAAC,EAAEmnC,EAAE,CAAC,CAAD,CAAF,GAAQ4K,SAAAA;AAFO,WAAd,CAAN,CAAA;UAIA,IAAII,UAAU,GAAGnc,WAAW,CAACkc,WAAZ,CAAwBD,OAAO,CAAC,CAAD,CAA/B,CAAjB,CAAA;UACA,IAAIG,QAAQ,GAAGpc,WAAW,CAACkc,WAAZ,CAAwBD,OAAO,CAAC,CAAD,CAA/B,CAAf,CAAA;AACA3f,UAAAA,cAAc,KAAKkM,KAAK,GAAG6R,oBAAA,CAA+B7c,IAA/B,EAAqCh0B,SAArC,EAAgD2yC,UAAhD,EAA4DC,QAA5D,EAAsEJ,cAAc,CAAC7N,CAArF,CAAb,CAAd,CAAA;AACD,SAAA;;AAED0N,QAAAA,eAAe,CAAC7F,cAAhB,GAAiCiG,OAAO,CAAC,CAAD,CAAxC,CAAA;AACD,OArBD,MAqBO;AACL;AACA;AACA,QAAA,IAAIjjB,GAAG,GAAGlnB,OAAO,KAAK,CAAZ,IAAiB+pC,eAAe,CAAC7F,cAAhB,GAAiC,CAAlD,GAAsDiG,OAAO,CAAC,CAAD,CAA7D,GAAmE,CAA7E,CAAA;AACA,QAAA,IAAI9K,EAAE,GAAG+D,eAAe,CAAC55B,MAAD,EAAS0d,GAAT,CAAxB,CAAA;QACAsD,cAAc,KAAKkM,KAAK,GAAGxI,WAAW,CAACkc,WAAZ,CAAwBljB,GAAxB,CAAb,CAAd,CAAA;QACAoD,QAAQ,CAACqC,IAAT,CAAc;AACZ10B,UAAAA,CAAC,EAAEonC,EAAE,CAAC,CAAD,CAAF,GAAQ2K,SADC;AAEZ9xC,UAAAA,CAAC,EAAEmnC,EAAE,CAAC,CAAD,CAAF,GAAQ4K,SAAAA;SAFb,CAAA,CAAA;AAID,OAAA;;AAED,MAAA,IAAIzf,cAAJ,EAAoB;AAClB+f,QAAAA,UAAU,CAACjgB,QAAD,CAAV,CAAqBkgB,YAArB,CAAkC9T,KAAlC,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GAlEH,CAAA;AAoEA;AACF;AACA;AACE;;;AAGAsO,EAAAA,QAAQ,CAACxtC,SAAT,CAAmBwvC,kBAAnB,GAAwC,UAAUtb,IAAV,EAAgBqR,eAAhB,EAAiCzU,QAAjC,EAA2CvU,GAA3C,EAAgD4W,IAAhD,EAAsDoK,WAAtD,EAAmE/J,YAAnE,EAAiF;IACvH,IAAI9gB,QAAQ,GAAG,IAAA,CAAK27B,SAApB,CAAA;IACA,IAAI17B,OAAO,GAAG,IAAA,CAAK27B,QAAnB,CAAA;AACA,IAAA,IAAI5X,WAAW,GAAGxC,IAAI,CAACyC,SAAvB,CAAA;IACA,IAAIiF,IAAI,GAAG8D,iBAAiB,CAAC,KAAKlE,KAAN,EAAatH,IAAb,EAAmB,IAAKob,CAAAA,gBAAxB,EAA0C/J,eAA1C,EAA2D,IAAK6I,CAAAA,SAAhE,EAA2Etd,QAA3E,EAAqF,IAAKwf,CAAAA,YAA1F,EAAwG/S,WAAxG,CAA5B,CAAA;AACA,IAAA,IAAI0E,OAAO,GAAGrG,IAAI,CAACqG,OAAnB,CAAA;AACA,IAAA,IAAIE,gBAAgB,GAAGvG,IAAI,CAACuG,gBAA5B,CAAA;AACA,IAAA,IAAID,IAAI,GAAGtG,IAAI,CAACsG,IAAhB,CAAA;AACA,IAAA,IAAIE,aAAa,GAAGxG,IAAI,CAACwG,aAAzB,CAAA;;AAEA,IAAA,IAAIjP,IAAJ,EAAU;AACR;AACA8O,MAAAA,OAAO,GAAG6F,kBAAkB,CAAClM,IAAI,CAACqG,OAAN,EAAenR,QAAf,EAAyBqC,IAAzB,EAA+BK,YAA/B,CAA5B,CAAA;AACA2O,MAAAA,gBAAgB,GAAG2F,kBAAkB,CAAClM,IAAI,CAACuG,gBAAN,EAAwBrR,QAAxB,EAAkCqC,IAAlC,EAAwCK,YAAxC,CAArC,CAAA;AACA0O,MAAAA,IAAI,GAAG4F,kBAAkB,CAAClM,IAAI,CAACsG,IAAN,EAAYpR,QAAZ,EAAsBqC,IAAtB,EAA4BK,YAA5B,CAAzB,CAAA;AACA4O,MAAAA,aAAa,GAAG0F,kBAAkB,CAAClM,IAAI,CAACwG,aAAN,EAAqBtR,QAArB,EAA+BqC,IAA/B,EAAqCK,YAArC,CAAlC,CAAA;AACD,KAhBsH;AAiBvH;AACA;;;AAGA,IAAA,IAAI2T,eAAe,CAAClF,OAAD,EAAUC,IAAV,CAAf,GAAiC,IAAjC,IAAyCvvB,OAAO,IAAIw0B,eAAe,CAAChF,gBAAD,EAAmBC,aAAnB,CAAf,GAAmD,IAA3G,EAAiH;AAC/G1vB,MAAAA,QAAQ,CAACkjB,aAAT,EAAA,CAAA;MACAljB,QAAQ,CAAC+8B,QAAT,CAAkB;AAChBz9B,QAAAA,MAAM,EAAEkwB,IAAAA;OADV,CAAA,CAAA;;AAIA,MAAA,IAAIvvB,OAAJ,EAAa;AACXA,QAAAA,OAAO,CAACijB,aAAR,EAAA,CAAA;QACAjjB,OAAO,CAAC88B,QAAR,CAAiB;AACfz9B,UAAAA,MAAM,EAAEkwB,IADO;AAEfqD,UAAAA,eAAe,EAAEnD,aAAAA;SAFnB,CAAA,CAAA;AAID,OAAA;;AAED,MAAA,OAAA;AACD,KAAA;;AAED1vB,IAAAA,QAAQ,CAACpH,KAAT,CAAe2nC,QAAf,GAA0BrX,IAAI,CAACqG,OAA/B,CAAA;AACAvvB,IAAAA,QAAQ,CAACpH,KAAT,CAAe0G,MAAf,GAAwBiwB,OAAxB,CAAA;AACA,IAAA,IAAIp2B,MAAM,GAAG;AACXP,MAAAA,KAAK,EAAE;AACL0G,QAAAA,MAAM,EAAEkwB,IAAAA;AADH,OAAA;AADI,KAAb,CAxCuH;AA6CvH;;AAEA,IAAA,IAAItG,IAAI,CAACqG,OAAL,KAAiBA,OAArB,EAA8B;AAC5Bp2B,MAAAA,MAAM,CAACP,KAAP,CAAa2nC,QAAb,GAAwBrX,IAAI,CAACsG,IAA7B,CAAA;AACD,KAjDsH;;;AAoDvHxvB,IAAAA,QAAQ,CAACkjB,aAAT,EAAA,CAAA;AACAmB,IAAAA,aAAA,CAAoBrkB,QAApB,EAA8B7G,MAA9B,EAAsC6qB,WAAtC,CAAA,CAAA;;AAEA,IAAA,IAAI/jB,OAAJ,EAAa;MACXA,OAAO,CAAC88B,QAAR,CAAiB;AACf;AACAz9B,QAAAA,MAAM,EAAEiwB,OAFO;AAGfsD,QAAAA,eAAe,EAAEpD,gBAAAA;OAHnB,CAAA,CAAA;AAKAxvB,MAAAA,OAAO,CAACijB,aAAR,EAAA,CAAA;AACAmB,MAAAA,aAAA,CAAoBpkB,OAApB,EAA6B;AAC3BrH,QAAAA,KAAK,EAAE;AACLi6B,UAAAA,eAAe,EAAEnD,aAAAA;AADZ,SAAA;OADT,EAIG1L,WAJH,CAAA,CAPW;;MAaX,IAAIhkB,QAAQ,CAACpH,KAAT,CAAe0G,MAAf,KAA0BW,OAAO,CAACrH,KAAR,CAAc0G,MAA5C,EAAoD;QAClDW,OAAO,CAACrH,KAAR,CAAc0G,MAAd,GAAuBU,QAAQ,CAACpH,KAAT,CAAe0G,MAAtC,CAAA;AACD,OAAA;AACF,KAAA;;IAED,IAAIkhC,eAAe,GAAG,EAAtB,CAAA;AACA,IAAA,IAAIC,UAAU,GAAGvX,IAAI,CAACyE,MAAtB,CAAA;;AAEA,IAAA,KAAK,IAAI38B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyvC,UAAU,CAACnwC,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;AAC1C,MAAA,IAAIT,GAAG,GAAGkwC,UAAU,CAACzvC,CAAD,CAAV,CAAcT,GAAxB,CAAA;;MAEA,IAAIA,GAAG,KAAK,GAAZ,EAAiB;AACf,QAAA,IAAIgC,EAAE,GAAGivB,IAAI,CAACiI,gBAAL,CAAsBgX,UAAU,CAACzvC,CAAD,CAAV,CAAc+7B,IAApC,CAAT,CAAA;;AAEA,QAAA,IAAIx6B,EAAJ,EAAQ;UACNiuC,eAAe,CAACnvC,IAAhB,CAAqB;AACnBkB,YAAAA,EAAE,EAAEA,EADe;YAEnBmuC,KAAK,EAAE1vC,CAFY;;WAArB,CAAA,CAAA;AAKD,SAAA;AACF,OAAA;AACF,KAAA;;IAED,IAAIgP,QAAQ,CAACjF,SAAT,IAAsBiF,QAAQ,CAACjF,SAAT,CAAmBzK,MAA7C,EAAqD;AACnD0P,MAAAA,QAAQ,CAACjF,SAAT,CAAmB,CAAnB,CAAsBo4B,CAAAA,MAAtB,CAA6B,YAAY;AACvClzB,QAAAA,OAAO,IAAIA,OAAO,CAAC0gC,UAAR,EAAX,CAAA;AACA,QAAA,IAAIrhC,MAAM,GAAGU,QAAQ,CAACpH,KAAT,CAAe2nC,QAA5B,CAAA;;AAEA,QAAA,KAAK,IAAIvvC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwvC,eAAe,CAAClwC,MAApC,EAA4CU,CAAC,EAA7C,EAAiD;AAC/C,UAAA,IAAIuB,EAAE,GAAGiuC,eAAe,CAACxvC,CAAD,CAAf,CAAmBuB,EAA5B,CAAA;UACA,IAAIyS,MAAM,GAAGw7B,eAAe,CAACxvC,CAAD,CAAf,CAAmB0vC,KAAnB,GAA2B,CAAxC,CAAA;AACAnuC,UAAAA,EAAE,CAACxE,CAAH,GAAOuR,MAAM,CAAC0F,MAAD,CAAb,CAAA;UACAzS,EAAE,CAACvE,CAAH,GAAOsR,MAAM,CAAC0F,MAAM,GAAG,CAAV,CAAb,CAAA;AACAzS,UAAAA,EAAE,CAAC03B,UAAH,EAAA,CAAA;AACD,SAAA;OAVH,CAAA,CAAA;AAYD,KAAA;GAzGH,CAAA;;AA4GA6Q,EAAAA,QAAQ,CAACxtC,SAAT,CAAmBo8B,MAAnB,GAA4B,UAAU2R,OAAV,EAAmB;IAC7C,IAAI1c,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACA,IAAIkK,OAAO,GAAG,IAAA,CAAKC,KAAnB,CAAA;;IAEA,IAAKqS,CAAAA,UAAL,CAAgB5Y,SAAhB,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAK2Y,WAAL,CAAiBxR,MAAjB,CAAwB,IAAxB,EAN6C;;;IAS7Cb,OAAO,IAAIA,OAAO,CAACmB,iBAAR,CAA0B,UAAUz3B,EAAV,EAAcyqB,GAAd,EAAmB;MACtD,IAAIzqB,EAAE,CAACypC,MAAP,EAAe;QACbrd,KAAK,CAAC+K,MAAN,CAAan3B,EAAb,CAAA,CAAA;AACAs2B,QAAAA,OAAO,CAACS,gBAAR,CAAyBtM,GAAzB,EAA8B,IAA9B,CAAA,CAAA;AACD,OAAA;AACF,KALU,CAAX,CAAA;IAMA,IAAK2e,CAAAA,SAAL,GAAiB,IAAKC,CAAAA,QAAL,GAAgB,IAAKF,CAAAA,SAAL,GAAiB,IAAKmB,CAAAA,OAAL,GAAe,IAAKD,CAAAA,gBAAL,GAAwB,IAAKzC,CAAAA,SAAL,GAAiB,IAAKrR,CAAAA,KAAL,GAAa,IAAvH,CAAA;GAfF,CAAA;;EAkBAgS,QAAQ,CAACz6B,IAAT,GAAgB,MAAhB,CAAA;AACA,EAAA,OAAOy6B,QAAP,CAAA;AACD,CAnuBD,CAmuBE0D,SAnuBF,CAFA;;AC3hBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6Be,SAASoC,YAAT,CAAsBzC,UAAtB,EAAkC0C,sBAAlC,EAA0D;EACvE,OAAO;AACL1C,IAAAA,UAAU,EAAEA,UADP;IAEL2C,IAAI,EAAEC,mBAAmB,EAFpB;IAGLxzC,KAAK,EAAE,SAAUy2B,KAAAA,CAAAA,WAAV,EAAuB;AAC5B,MAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,MAAA,IAAIjB,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,MAAA,IAAI2iB,eAAe,GAAGhd,WAAW,CAACgd,eAAlC,CAAA;AACA,MAAA,IAAIC,aAAa,GAAGJ,sBAAsB,IAAIG,eAAe,CAACrxC,KAA9D,CAAA;;MAEA,IAAI,CAACyuB,QAAL,EAAe;AACb,QAAA,OAAA;AACD,OAAA;;MAED,IAAIuN,IAAI,GAAGz5B,GAAG,CAACksB,QAAQ,CAACwN,UAAV,EAAsB,UAAUP,GAAV,EAAe;AACjD,QAAA,OAAO7J,IAAI,CAACgK,YAAL,CAAkBH,GAAlB,CAAP,CAAA;AACD,OAFa,CAAH,CAERhV,KAFQ,CAEF,CAFE,EAEC,CAFD,CAAX,CAAA;AAGA,MAAA,IAAI6qB,MAAM,GAAGvV,IAAI,CAACr7B,MAAlB,CAAA;AACA,MAAA,IAAIy7B,cAAc,GAAGvK,IAAI,CAACwK,kBAAL,CAAwB,sBAAxB,CAArB,CAAA;;MAEA,IAAIC,kBAAkB,CAACzK,IAAD,EAAOmK,IAAI,CAAC,CAAD,CAAX,CAAtB,EAAuC;AACrCA,QAAAA,IAAI,CAAC,CAAD,CAAJ,GAAUI,cAAV,CAAA;AACD,OAAA;;MAED,IAAIE,kBAAkB,CAACzK,IAAD,EAAOmK,IAAI,CAAC,CAAD,CAAX,CAAtB,EAAuC;AACrCA,QAAAA,IAAI,CAAC,CAAD,CAAJ,GAAUI,cAAV,CAAA;AACD,OAAA;;AAED,MAAA,IAAIoV,KAAK,GAAG3f,IAAI,CAAC4f,QAAL,EAAZ,CAAA;MACA,IAAIC,OAAO,GAAG7f,IAAI,CAACS,iBAAL,CAAuB0J,IAAI,CAAC,CAAD,CAA3B,CAAd,CAAA;MACA,IAAI2V,OAAO,GAAG9f,IAAI,CAACS,iBAAL,CAAuB0J,IAAI,CAAC,CAAD,CAA3B,CAAd,CAAA;AACA,MAAA,OAAOuV,MAAM,IAAI;AACfK,QAAAA,QAAQ,EAAE,SAAA,QAAA,CAAUC,MAAV,EAAkBhgB,IAAlB,EAAwB;UAChC,IAAIigB,QAAQ,GAAGD,MAAM,CAAChX,GAAP,GAAagX,MAAM,CAACvmB,KAAnC,CAAA;UACA,IAAI3b,MAAM,GAAG2hC,aAAa,IAAIjS,kBAAkB,CAACyS,QAAQ,GAAGP,MAAZ,CAAhD,CAAA;UACA,IAAIQ,KAAK,GAAG,EAAZ,CAAA;UACA,IAAIC,MAAM,GAAG,EAAb,CAAA;;AAEA,UAAA,KAAK,IAAI3wC,CAAC,GAAGwwC,MAAM,CAACvmB,KAAf,EAAsBjW,MAAM,GAAG,CAApC,EAAuChU,CAAC,GAAGwwC,MAAM,CAAChX,GAAlD,EAAuDx5B,CAAC,EAAxD,EAA4D;YAC1D,IAAIk3B,KAAK,GAAG,KAAK,CAAjB,CAAA;;YAEA,IAAIgZ,MAAM,KAAK,CAAf,EAAkB;cAChB,IAAInzC,CAAC,GAAGozC,KAAK,CAAC1b,GAAN,CAAU4b,OAAV,EAAmBrwC,CAAnB,CAAR,CADgB;;cAGhBk3B,KAAK,GAAG9J,QAAQ,CAACuO,WAAT,CAAqB5+B,CAArB,EAAwB,IAAxB,EAA8B4zC,MAA9B,CAAR,CAAA;AACD,aAJD,MAIO;cACLD,KAAK,CAAC,CAAD,CAAL,GAAWP,KAAK,CAAC1b,GAAN,CAAU4b,OAAV,EAAmBrwC,CAAnB,CAAX,CAAA;AACA0wC,cAAAA,KAAK,CAAC,CAAD,CAAL,GAAWP,KAAK,CAAC1b,GAAN,CAAU6b,OAAV,EAAmBtwC,CAAnB,CAAX,CAFK;;cAILk3B,KAAK,GAAG9J,QAAQ,CAACuO,WAAT,CAAqB+U,KAArB,EAA4B,IAA5B,EAAkCC,MAAlC,CAAR,CAAA;AACD,aAAA;;AAED,YAAA,IAAIV,aAAJ,EAAmB;cACjB3hC,MAAM,CAAC0F,MAAM,EAAP,CAAN,GAAmBkjB,KAAK,CAAC,CAAD,CAAxB,CAAA;cACA5oB,MAAM,CAAC0F,MAAM,EAAP,CAAN,GAAmBkjB,KAAK,CAAC,CAAD,CAAxB,CAAA;AACD,aAHD,MAGO;cACL1G,IAAI,CAACogB,aAAL,CAAmB5wC,CAAnB,EAAsBk3B,KAAK,CAAC7R,KAAN,EAAtB,CAAA,CAAA;AACD,aAAA;AACF,WAAA;;UAED4qB,aAAa,IAAIzf,IAAI,CAACqgB,SAAL,CAAe,QAAf,EAAyBviC,MAAzB,CAAjB,CAAA;AACD,SAAA;OA9BH,CAAA;AAgCD,KAAA;GA9DH,CAAA;AAgED,CAAA;AACD;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BA,IAAIwiC,QAAQ,GAAG;EACbC,OAAO,EAAE,SAAUC,OAAAA,CAAAA,KAAV,EAAiB;IACxB,IAAIC,GAAG,GAAG,CAAV,CAAA;IACA,IAAI/M,KAAK,GAAG,CAAZ,CAAA;;AAEA,IAAA,KAAK,IAAIlkC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgxC,KAAK,CAAC1xC,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;MACrC,IAAI,CAACG,KAAK,CAAC6wC,KAAK,CAAChxC,CAAD,CAAN,CAAV,EAAsB;AACpBixC,QAAAA,GAAG,IAAID,KAAK,CAAChxC,CAAD,CAAZ,CAAA;QACAkkC,KAAK,EAAA,CAAA;AACN,OAAA;AACF,KATuB;;;IAYxB,OAAOA,KAAK,KAAK,CAAV,GAAczI,GAAd,GAAoBwV,GAAG,GAAG/M,KAAjC,CAAA;GAbW;EAeb+M,GAAG,EAAE,SAAUD,GAAAA,CAAAA,KAAV,EAAiB;IACpB,IAAIC,GAAG,GAAG,CAAV,CAAA;;AAEA,IAAA,KAAK,IAAIjxC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgxC,KAAK,CAAC1xC,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;AACrC;AACAixC,MAAAA,GAAG,IAAID,KAAK,CAAChxC,CAAD,CAAL,IAAY,CAAnB,CAAA;AACD,KAAA;;AAED,IAAA,OAAOixC,GAAP,CAAA;GAvBW;EAyBbzyB,GAAG,EAAE,SAAUwyB,GAAAA,CAAAA,KAAV,EAAiB;IACpB,IAAIxyB,GAAG,GAAG,CAACqF,QAAX,CAAA;;AAEA,IAAA,KAAK,IAAI7jB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgxC,KAAK,CAAC1xC,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;MACrCgxC,KAAK,CAAChxC,CAAD,CAAL,GAAWwe,GAAX,KAAmBA,GAAG,GAAGwyB,KAAK,CAAChxC,CAAD,CAA9B,CAAA,CAAA;AACD,KALmB;;;AAQpB,IAAA,OAAOujB,QAAQ,CAAC/E,GAAD,CAAR,GAAgBA,GAAhB,GAAsBid,GAA7B,CAAA;GAjCW;EAmCbmD,GAAG,EAAE,SAAUoS,GAAAA,CAAAA,KAAV,EAAiB;IACpB,IAAIpS,GAAG,GAAG/a,QAAV,CAAA;;AAEA,IAAA,KAAK,IAAI7jB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgxC,KAAK,CAAC1xC,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;MACrCgxC,KAAK,CAAChxC,CAAD,CAAL,GAAW4+B,GAAX,KAAmBA,GAAG,GAAGoS,KAAK,CAAChxC,CAAD,CAA9B,CAAA,CAAA;AACD,KALmB;;;AAQpB,IAAA,OAAOujB,QAAQ,CAACqb,GAAD,CAAR,GAAgBA,GAAhB,GAAsBnD,GAA7B,CAAA;GA3CW;AA6Cb;AACA;EACAyV,OAAO,EAAE,SAAUF,OAAAA,CAAAA,KAAV,EAAiB;IACxB,OAAOA,KAAK,CAAC,CAAD,CAAZ,CAAA;AACD,GAAA;AAjDY,CAAf,CAAA;;AAoDA,IAAIG,YAAY,GAAG,SAAfA,YAAe,CAAUH,KAAV,EAAiB;EAClC,OAAOl1C,IAAI,CAACiD,KAAL,CAAWiyC,KAAK,CAAC1xC,MAAN,GAAe,CAA1B,CAAP,CAAA;AACD,CAFD,CAAA;;AAIe,SAAS8xC,UAAT,CAAoBjE,UAApB,EAAgC;EAC7C,OAAO;AACLA,IAAAA,UAAU,EAAEA,UADP;AAEL;AACA;AACA5wC,IAAAA,KAAK,EAAE,SAAUy2B,KAAAA,CAAAA,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AAC1C,MAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,MAAA,IAAI0B,QAAQ,GAAGiD,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,CAAf,CAAA;AACA,MAAA,IAAIrH,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,MAAA,IAAI6W,KAAK,GAAG1T,IAAI,CAAC0T,KAAL,EAAZ,CAJ0C;;MAM1C,IAAIA,KAAK,GAAG,EAAR,IAAc9W,QAAQ,CAAC/d,IAAT,KAAkB,aAAhC,IAAiD0gB,QAArD,EAA+D;AAC7D,QAAA,IAAI+J,QAAQ,GAAG1M,QAAQ,CAAC2M,WAAT,EAAf,CAAA;AACA,QAAA,IAAIC,SAAS,GAAG5M,QAAQ,CAAC6M,YAAT,CAAsBH,QAAtB,CAAhB,CAAA;AACA,QAAA,IAAIsB,MAAM,GAAGtB,QAAQ,CAACuB,SAAT,EAAb,CAAA;AACA,QAAA,IAAItb,GAAG,GAAGlH,GAAG,CAACw4B,mBAAJ,EAAV,CAJ6D;;AAM7D,QAAA,IAAI5iB,IAAI,GAAG3yB,IAAI,CAACyC,GAAL,CAAS68B,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAA3B,KAAmCrb,GAAG,IAAI,CAA1C,CAAX,CAAA;QACA,IAAIuxB,IAAI,GAAGx1C,IAAI,CAACiD,KAAL,CAAWmlC,KAAK,GAAGzV,IAAnB,CAAX,CAAA;;QAEA,IAAIlL,QAAQ,CAAC+tB,IAAD,CAAR,IAAkBA,IAAI,GAAG,CAA7B,EAAgC;UAC9B,IAAIvhB,QAAQ,KAAK,MAAjB,EAAyB;AACvBiD,YAAAA,WAAW,CAACue,OAAZ,CAAoB/gB,IAAI,CAACghB,cAAL,CAAoBhhB,IAAI,CAACgK,YAAL,CAAkBR,SAAS,CAACK,GAA5B,CAApB,EAAsD,CAAA,GAAIiX,IAA1D,CAApB,CAAA,CAAA;AACD,WAAA;;UAED,IAAIG,OAAO,GAAG,KAAK,CAAnB,CAAA;;AAEA,UAAA,IAAI7nC,QAAQ,CAACmmB,QAAD,CAAZ,EAAwB;AACtB0hB,YAAAA,OAAO,GAAGX,QAAQ,CAAC/gB,QAAD,CAAlB,CAAA;AACD,WAFD,MAEO,IAAI1iB,UAAU,CAAC0iB,QAAD,CAAd,EAA0B;AAC/B0hB,YAAAA,OAAO,GAAG1hB,QAAV,CAAA;AACD,WAAA;;AAED,UAAA,IAAI0hB,OAAJ,EAAa;AACX;YACAze,WAAW,CAACue,OAAZ,CAAoB/gB,IAAI,CAACkhB,UAAL,CAAgBlhB,IAAI,CAACgK,YAAL,CAAkBR,SAAS,CAACK,GAA5B,CAAhB,EAAkD,CAAA,GAAIiX,IAAtD,EAA4DG,OAA5D,EAAqEN,YAArE,CAApB,CAAA,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;AACF,KAAA;GAtCH,CAAA;AAwCD;;AC5ID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BO,SAASzxB,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4B7H,QAA5B,CAAA,CAAA;EACAnqB,SAAS,CAACiyB,mBAAV,CAA8BC,eAA9B,CAAA,CAAA;EACAlyB,SAAS,CAACmyB,cAAV,CAAyBC,YAAY,CAAC,MAAD,EAAS,IAAT,CAArC,CAAA,CAAA;EACApyB,SAAS,CAACqyB,cAAV,CAAyB;AACvB7E,IAAAA,UAAU,EAAE,MADW;IAEvB5wC,KAAK,EAAE,SAAUy2B,KAAAA,CAAAA,WAAV,EAAuB;AAC5B,MAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAD4B;;MAG5B,IAAIJ,SAAS,GAAG+E,WAAW,CAACuB,QAAZ,CAAqB,WAArB,CAAkCyX,CAAAA,YAAlC,EAAhB,CAAA;;AAEA,MAAA,IAAI/d,SAAS,IAAI,CAACA,SAAS,CAACltB,MAA5B,EAAoC;AAClC;AACA;QACAktB,SAAS,CAACltB,MAAV,GAAmByvB,IAAI,CAAClC,SAAL,CAAe,OAAf,CAAA,CAAwBztB,IAA3C,CAAA;AACD,OAAA;;AAED2vB,MAAAA,IAAI,CAACyhB,SAAL,CAAe,iBAAf,EAAkChkB,SAAlC,CAAA,CAAA;AACD,KAAA;AAdsB,GAAzB,EAJiC;;AAqBjCtO,EAAAA,SAAS,CAACuyB,iBAAV,CAA4BvyB,SAAS,CAACwyB,QAAV,CAAmBC,SAAnB,CAA6BC,SAAzD,EAAoEjB,UAAU,CAAC,MAAD,CAA9E,CAAA,CAAA;AACD;;ACrED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,IAAIkB,kBAAkB;AACtB;AACA,UAAU9xB,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC6xB,kBAAD,EAAqB9xB,MAArB,CAAT,CAAA;;AAEA,EAAA,SAAS8xB,kBAAT,GAA8B;AAC5B,IAAA,IAAI5xB,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaijC,kBAAkB,CAACjjC,IAAhC,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED4xB,kBAAkB,CAACh2C,SAAnB,CAA6B4wB,cAA7B,GAA8C,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;AACvE,IAAA,OAAO9c,gBAAgB,CAAC,IAAD,EAAO,IAAP,EAAa;AAClCC,MAAAA,kBAAkB,EAAE,IAAA;AADc,KAAb,CAAvB,CAAA;GADF,CAAA;;AAMA8kB,EAAAA,kBAAkB,CAACh2C,SAAnB,CAA6Bi2C,iBAA7B,GAAiD,UAAU/W,KAAV,EAAiB;IAChE,IAAIpO,QAAQ,GAAG,IAAA,CAAKC,gBAApB,CAAA;;AAEA,IAAA,IAAID,QAAQ,IAAIA,QAAQ,CAAColB,SAAzB,EAAoC;AAClC;AACA,MAAA,IAAIrO,EAAE,GAAG/W,QAAQ,CAACuO,WAAT,CAAqBvO,QAAQ,CAAColB,SAAT,CAAmBhX,KAAnB,CAArB,CAAT,CAAA;AACA,MAAA,IAAIhL,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;AACA,MAAA,IAAIra,MAAM,GAAGwc,IAAI,CAACwM,SAAL,CAAe,QAAf,CAAb,CAAA;AACA,MAAA,IAAIvO,IAAI,GAAG+B,IAAI,CAACwM,SAAL,CAAe,MAAf,CAAX,CAAA;MACA,IAAIyV,WAAW,GAAGrlB,QAAQ,CAAC2M,WAAT,GAAuBuI,YAAvB,EAAA,GAAwC,CAAxC,GAA4C,CAA9D,CAAA;MACA6B,EAAE,CAACsO,WAAD,CAAF,IAAmBz+B,MAAM,GAAGya,IAAI,GAAG,CAAnC,CAAA;AACA,MAAA,OAAO0V,EAAP,CAAA;AACD,KAAA;;AAED,IAAA,OAAO,CAAC1I,GAAD,EAAMA,GAAN,CAAP,CAAA;GAdF,CAAA;;EAiBA6W,kBAAkB,CAACjjC,IAAnB,GAA0B,qBAA1B,CAAA;EACAijC,kBAAkB,CAACrjB,aAAnB,GAAmC;AACjC;AACAzG,IAAAA,CAAC,EAAE,CAF8B;AAGjC6E,IAAAA,gBAAgB,EAAE,aAHe;AAIjC6B,IAAAA,eAAe,EAAE,IAJgB;AAKjC;AACA;AACA;AACA;AACAwjB,IAAAA,YAAY,EAAE,CATmB;AAUjCC,IAAAA,WAAW,EAAE,CAVoB;AAWjC;AACAh0C,IAAAA,KAAK,EAAE,KAZ0B;AAajCi0C,IAAAA,cAAc,EAAE,GAbiB;AAcjC3iB,IAAAA,WAAW,EAAE,GAdoB;AAejC4iB,IAAAA,oBAAoB,EAAE,KAAA;GAfxB,CAAA;AAiBA,EAAA,OAAOP,kBAAP,CAAA;AACD,CApDD,CAoDEhiB,WApDF,CAFA,CAAA;;AAwDAA,WAAW,CAACwiB,aAAZ,CAA0BR,kBAA1B,CAAA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAIS,cAAc;AAClB;AACA,UAAUvyB,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACsyB,cAAD,EAAiBvyB,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAASuyB,cAAT,GAA0B;AACxB,IAAA,IAAIryB,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa0jC,cAAc,CAAC1jC,IAA5B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDqyB,EAAAA,cAAc,CAACz2C,SAAf,CAAyB4wB,cAAzB,GAA0C,YAAY;AACpD,IAAA,OAAOK,gBAAgB,CAAC,IAAD,EAAO,IAAP,EAAa;AAClCC,MAAAA,kBAAkB,EAAE,IADc;MAElCwlB,qBAAqB,EAAE,CAAC,CAAC,IAAKve,CAAAA,GAAL,CAAS,cAAT,EAAyB,IAAzB,CAAF,IAAoC,IAAA;AAFzB,KAAb,CAAvB,CAAA;GADF,CAAA;AAMA;AACF;AACA;;;AAGEse,EAAAA,cAAc,CAACz2C,SAAf,CAAyB22C,cAAzB,GAA0C,YAAY;AACpD;IACA,OAAO,IAAA,CAAKxe,GAAL,CAAS,OAAT,CAAA,GAAoB,IAAKA,CAAAA,GAAL,CAAS,aAAT,CAApB,GAA8C,KAArD,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;AAGEse,EAAAA,cAAc,CAACz2C,SAAf,CAAyB42C,uBAAzB,GAAmD,YAAY;AAC7D;AACA,IAAA,IAAIC,oBAAoB,GAAG,IAAA,CAAK1e,GAAL,CAAS,sBAAT,CAA3B,CAAA;AACA,IAAA,IAAIme,cAAc,GAAG,IAAA,CAAKne,GAAL,CAAS,gBAAT,CAArB,CAAA;;IAEA,IAAIme,cAAc,GAAGO,oBAArB,EAA2C;AACzCA,MAAAA,oBAAoB,GAAGP,cAAvB,CAAA;AACD,KAAA;;AAED,IAAA,OAAOO,oBAAP,CAAA;GATF,CAAA;;EAYAJ,cAAc,CAACz2C,SAAf,CAAyB82C,aAAzB,GAAyC,UAAU3iB,SAAV,EAAqBD,IAArB,EAA2BhsB,SAA3B,EAAsC;IAC7E,OAAOA,SAAS,CAACtF,IAAV,CAAesxB,IAAI,CAACyH,aAAL,CAAmBxH,SAAnB,CAAf,CAAP,CAAA;GADF,CAAA;;EAIAsiB,cAAc,CAAC1jC,IAAf,GAAsB,YAAtB,CAAA;AACA0jC,EAAAA,cAAc,CAAC/jB,YAAf,GAA8B,CAAC,MAAD,EAAS,OAAT,CAA9B,CAAA;EACA+jB,cAAc,CAAC9jB,aAAf,GAA+BokB,oBAAoB,CAACf,kBAAkB,CAACrjB,aAApB,EAAmC;AACpF;AACA;AACAlE,IAAAA,IAAI,EAAE,IAH8E;AAIpFuoB,IAAAA,QAAQ,EAAE,KAJ0E;AAKpFC,IAAAA,cAAc,EAAE,KALoE;AAMpFC,IAAAA,eAAe,EAAE;AACf5xC,MAAAA,KAAK,EAAE,0BADQ;AAEf6xC,MAAAA,WAAW,EAAE,IAFE;AAGfvxB,MAAAA,WAAW,EAAE,CAHE;AAIfwxB,MAAAA,UAAU,EAAE,OAJG;AAKfC,MAAAA,YAAY,EAAE,CALC;AAMf/gC,MAAAA,UAAU,EAAE,CANG;AAOfC,MAAAA,WAAW,EAAE,IAPE;AAQfL,MAAAA,aAAa,EAAE,CARA;AASfE,MAAAA,aAAa,EAAE,CATA;AAUfjR,MAAAA,OAAO,EAAE,CAAA;KAhByE;AAkBpFmyC,IAAAA,MAAM,EAAE;AACNjlB,MAAAA,SAAS,EAAE;AACT8kB,QAAAA,WAAW,EAAE,SAAA;AADJ,OAAA;KAnBuE;AAuBpFI,IAAAA,YAAY,EAAE,KAAA;AAvBsE,GAAnC,CAAnD,CAAA;AAyBA,EAAA,OAAOd,cAAP,CAAA;AACD,CA1ED,CA0EET,kBA1EF,CAFA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA;AACA;AACA;;AAEA,IAAIwB,YAAY;AAChB;AACA,YAAY;AACV,EAAA,SAASA,YAAT,GAAwB;IACtB,IAAKp2C,CAAAA,EAAL,GAAU,CAAV,CAAA;IACA,IAAKC,CAAAA,EAAL,GAAU,CAAV,CAAA;IACA,IAAKklC,CAAAA,EAAL,GAAU,CAAV,CAAA;IACA,IAAKjlC,CAAAA,CAAL,GAAS,CAAT,CAAA;IACA,IAAKC,CAAAA,UAAL,GAAkB,CAAlB,CAAA;AACA,IAAA,IAAA,CAAKC,QAAL,GAAgBhC,IAAI,CAACI,EAAL,GAAU,CAA1B,CAAA;IACA,IAAKmC,CAAAA,SAAL,GAAiB,IAAjB,CAAA;AACD,GAAA;;AAED,EAAA,OAAOy1C,YAAP,CAAA;AACD,CAZD,EAFA,CAAA;;AAgBA,IAAIC,WAAW;AACf;AACA,UAAUvzB,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACszB,WAAD,EAAcvzB,MAAd,CAAT,CAAA;;EAEA,SAASuzB,WAAT,CAAqBjwC,IAArB,EAA2B;IACzB,IAAI4c,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB7c,IAAlB,CAAA,IAA2B,IAAvC,CAAA;;IAEA4c,KAAK,CAACrR,IAAN,GAAa,SAAb,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDqzB,EAAAA,WAAW,CAACz3C,SAAZ,CAAsBukC,eAAtB,GAAwC,YAAY;IAClD,OAAO,IAAIiT,YAAJ,EAAP,CAAA;GADF,CAAA;;EAIAC,WAAW,CAACz3C,SAAZ,CAAsBwL,SAAtB,GAAkC,UAAUwa,GAAV,EAAe1a,KAAf,EAAsB;AACtD,IAAA,IAAIlK,EAAE,GAAGkK,KAAK,CAAClK,EAAf,CAAA;AACA,IAAA,IAAIC,EAAE,GAAGiK,KAAK,CAACjK,EAAf,CAAA;AACA,IAAA,IAAIklC,EAAE,GAAG/mC,IAAI,CAAC0iB,GAAL,CAAS5W,KAAK,CAACi7B,EAAN,IAAY,CAArB,EAAwB,CAAxB,CAAT,CAAA;IACA,IAAIjlC,CAAC,GAAG9B,IAAI,CAAC0iB,GAAL,CAAS5W,KAAK,CAAChK,CAAf,EAAkB,CAAlB,CAAR,CAAA;AACA,IAAA,IAAIo2C,EAAE,GAAG,CAACp2C,CAAC,GAAGilC,EAAL,IAAW,GAApB,CAAA;AACA,IAAA,IAAIoR,OAAO,GAAGpR,EAAE,GAAGmR,EAAnB,CAAA;AACA,IAAA,IAAIn2C,UAAU,GAAG+J,KAAK,CAAC/J,UAAvB,CAAA;AACA,IAAA,IAAIC,QAAQ,GAAG8J,KAAK,CAAC9J,QAArB,CAAA;AACA,IAAA,IAAIO,SAAS,GAAGuJ,KAAK,CAACvJ,SAAtB,CAAA;AACA,IAAA,IAAIlC,GAAG,GAAGL,IAAI,CAACI,EAAL,GAAU,CAApB,CAAA;AACA,IAAA,IAAIg4C,cAAc,GAAG71C,SAAS,GAAGP,QAAQ,GAAGD,UAAX,GAAwB1B,GAA3B,GAAiC0B,UAAU,GAAGC,QAAb,GAAwB3B,GAAvF,CAAA;;IAEA,IAAI,CAAC+3C,cAAL,EAAqB;AACnB;MACAr2C,UAAU,GAAGC,QAAQ,IAAIO,SAAS,GAAGlC,GAAH,GAAS,CAACA,GAAvB,CAArB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIg4C,UAAU,GAAGr4C,IAAI,CAACG,GAAL,CAAS4B,UAAT,CAAjB,CAAA;AACA,IAAA,IAAIu2C,UAAU,GAAGt4C,IAAI,CAACC,GAAL,CAAS8B,UAAT,CAAjB,CAAA;AACA,IAAA,IAAIw2C,QAAQ,GAAGv4C,IAAI,CAACG,GAAL,CAAS6B,QAAT,CAAf,CAAA;AACA,IAAA,IAAIw2C,QAAQ,GAAGx4C,IAAI,CAACC,GAAL,CAAS+B,QAAT,CAAf,CAAA;;AAEA,IAAA,IAAIo2C,cAAJ,EAAoB;AAClB5xB,MAAAA,GAAG,CAACxlB,MAAJ,CAAWq3C,UAAU,GAAGtR,EAAb,GAAkBnlC,EAA7B,EAAiC02C,UAAU,GAAGvR,EAAb,GAAkBllC,EAAnD,CAAA,CAAA;MACA2kB,GAAG,CAAC7kB,GAAJ,CAAQ02C,UAAU,GAAGF,OAAb,GAAuBv2C,EAA/B,EAAmC02C,UAAU,GAAGH,OAAb,GAAuBt2C,EAA1D,EAA8Dq2C,EAA9D,EAAkE,CAACl4C,IAAI,CAACI,EAAN,GAAW2B,UAA7E,EAAyFA,UAAzF,EAAqG,CAACQ,SAAtG,CAAA,CAAA;AACD,KAHD,MAGO;AACLikB,MAAAA,GAAG,CAACxlB,MAAJ,CAAWq3C,UAAU,GAAGv2C,CAAb,GAAiBF,EAA5B,EAAgC02C,UAAU,GAAGx2C,CAAb,GAAiBD,EAAjD,CAAA,CAAA;AACD,KAAA;;AAED2kB,IAAAA,GAAG,CAAC7kB,GAAJ,CAAQC,EAAR,EAAYC,EAAZ,EAAgBC,CAAhB,EAAmBC,UAAnB,EAA+BC,QAA/B,EAAyC,CAACO,SAA1C,CAAA,CAAA;AACAikB,IAAAA,GAAG,CAAC7kB,GAAJ,CAAQ42C,QAAQ,GAAGJ,OAAX,GAAqBv2C,EAA7B,EAAiC42C,QAAQ,GAAGL,OAAX,GAAqBt2C,EAAtD,EAA0Dq2C,EAA1D,EAA8Dl2C,QAAQ,GAAGhC,IAAI,CAACI,EAAL,GAAU,CAAnF,EAAsF4B,QAAQ,GAAGhC,IAAI,CAACI,EAAtG,EAA0G,CAACmC,SAA3G,CAAA,CAAA;;IAEA,IAAIwkC,EAAE,KAAK,CAAX,EAAc;AACZvgB,MAAAA,GAAG,CAAC7kB,GAAJ,CAAQC,EAAR,EAAYC,EAAZ,EAAgBklC,EAAhB,EAAoB/kC,QAApB,EAA8BD,UAA9B,EAA0CQ,SAA1C,CAAA,CAAA;AACD,KAnCqD;;GAAxD,CAAA;;AAuCA,EAAA,OAAO01C,WAAP,CAAA;AACD,CAtDD,CAsDEliC,IAtDF,CAFA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BO,SAAS0iC,iCAAT,CAA2CC,eAA3C,EAA4D1wC,IAA5D,EAAkE;EACvEA,IAAI,GAAGA,IAAI,IAAI,EAAf,CAAA;AACA,EAAA,IAAI2wC,UAAU,GAAG3wC,IAAI,CAAC2wC,UAAtB,CAAA;AACA,EAAA,OAAO,UAAU92B,GAAV,EAAe7Z,IAAf,EAAqB2f,YAArB,EAAmC;AACxC,IAAA,IAAIixB,YAAY,GAAG5wC,IAAI,CAACsc,QAAxB,CAAA;;AAEA,IAAA,IAAI,CAACs0B,YAAD,IAAiBA,YAAY,YAAYpH,KAA7C,EAAoD;AAClD,MAAA,OAAOqH,qBAAqB,CAACh3B,GAAD,EAAM7Z,IAAN,EAAY2f,YAAZ,CAA5B,CAAA;AACD,KAAA;;AAED,IAAA,IAAImxB,oBAAoB,GAAGJ,eAAe,CAACE,YAAD,CAA1C,CAAA;AACA,IAAA,IAAInlB,QAAQ,GAAGzrB,IAAI,CAACyrB,QAAL,IAAiB,IAAjB,GAAwBzrB,IAAI,CAACyrB,QAA7B,GAAwC,CAAvD,CAAA;IACA,IAAIslB,MAAM,GAAG,IAAA,CAAKjtC,KAAlB,CAAA;AACA,IAAA,IAAIlK,EAAE,GAAGm3C,MAAM,CAACn3C,EAAhB,CAAA;AACA,IAAA,IAAIC,EAAE,GAAGk3C,MAAM,CAACl3C,EAAhB,CAAA;AACA,IAAA,IAAIC,CAAC,GAAGi3C,MAAM,CAACj3C,CAAf,CAAA;AACA,IAAA,IAAIilC,EAAE,GAAGgS,MAAM,CAAChS,EAAhB,CAAA;AACA,IAAA,IAAIiS,OAAO,GAAG,CAACl3C,CAAC,GAAGilC,EAAL,IAAW,CAAzB,CAAA;AACA,IAAA,IAAIhlC,UAAU,GAAGg3C,MAAM,CAACh3C,UAAxB,CAAA;AACA,IAAA,IAAIC,QAAQ,GAAG+2C,MAAM,CAAC/2C,QAAtB,CAAA;AACA,IAAA,IAAIi3C,WAAW,GAAG,CAACl3C,UAAU,GAAGC,QAAd,IAA0B,CAA5C,CAAA;AACA,IAAA,IAAIk3C,SAAS,GAAGP,UAAU,GAAG34C,IAAI,CAACyC,GAAL,CAASX,CAAC,GAAGilC,EAAb,CAAmB,GAAA,CAAtB,GAA0B,CAApD,CAAA;AACA,IAAA,IAAI7mC,OAAO,GAAGF,IAAI,CAACG,GAAnB,CAAA;AACA,IAAA,IAAIJ,OAAO,GAAGC,IAAI,CAACC,GAAnB,CApBwC;;IAsBxC,IAAIgB,CAAC,GAAGW,EAAE,GAAGE,CAAC,GAAG5B,OAAO,CAAC6B,UAAD,CAAxB,CAAA;IACA,IAAIb,CAAC,GAAGW,EAAE,GAAGC,CAAC,GAAG/B,OAAO,CAACgC,UAAD,CAAxB,CAAA;IACA,IAAIkT,SAAS,GAAG,MAAhB,CAAA;IACA,IAAIkkC,iBAAiB,GAAG,KAAxB,CAAA;;AAEA,IAAA,QAAQL,oBAAR;AACE,MAAA,KAAK,UAAL;QACE73C,CAAC,GAAGW,EAAE,GAAG,CAACmlC,EAAE,GAAGtT,QAAN,IAAkBvzB,OAAO,CAAC+4C,WAAD,CAAlC,CAAA;QACA/3C,CAAC,GAAGW,EAAE,GAAG,CAACklC,EAAE,GAAGtT,QAAN,IAAkB1zB,OAAO,CAACk5C,WAAD,CAAlC,CAAA;AACAhkC,QAAAA,SAAS,GAAG,QAAZ,CAAA;AACAkkC,QAAAA,iBAAiB,GAAG,KAApB,CAAA;AACA,QAAA,MAAA;;AAEF,MAAA,KAAK,gBAAL;QACEl4C,CAAC,GAAGW,EAAE,GAAG,CAACmlC,EAAE,GAAGtT,QAAN,IAAkBvzB,OAAO,CAAC+4C,WAAD,CAAlC,CAAA;QACA/3C,CAAC,GAAGW,EAAE,GAAG,CAACklC,EAAE,GAAGtT,QAAN,IAAkB1zB,OAAO,CAACk5C,WAAD,CAAlC,CAAA;AACAhkC,QAAAA,SAAS,GAAG,QAAZ,CAAA;AACAkkC,QAAAA,iBAAiB,GAAG,QAApB,CAAA;AACA,QAAA,MAAA;;AAEF,MAAA,KAAK,YAAL;AACEl4C,QAAAA,CAAC,GAAGW,EAAE,GAAGo3C,OAAO,GAAG94C,OAAO,CAAC6B,UAAD,CAAtB,GAAqCq3C,oBAAoB,CAACr3C,UAAD,EAAa0xB,QAAQ,GAAGylB,SAAxB,EAAmC,KAAnC,CAA7D,CAAA;AACAh4C,QAAAA,CAAC,GAAGW,EAAE,GAAGm3C,OAAO,GAAGj5C,OAAO,CAACgC,UAAD,CAAtB,GAAqCs3C,oBAAoB,CAACt3C,UAAD,EAAa0xB,QAAQ,GAAGylB,SAAxB,EAAmC,KAAnC,CAA7D,CAAA;AACAjkC,QAAAA,SAAS,GAAG,OAAZ,CAAA;AACAkkC,QAAAA,iBAAiB,GAAG,QAApB,CAAA;AACA,QAAA,MAAA;;AAEF,MAAA,KAAK,kBAAL;QACEl4C,CAAC,GAAGW,EAAE,GAAGo3C,OAAO,GAAG94C,OAAO,CAAC6B,UAAD,CAAtB,GAAqCq3C,oBAAoB,CAACr3C,UAAD,EAAa,CAAC0xB,QAAD,GAAYylB,SAAzB,EAAoC,KAApC,CAA7D,CAAA;QACAh4C,CAAC,GAAGW,EAAE,GAAGm3C,OAAO,GAAGj5C,OAAO,CAACgC,UAAD,CAAtB,GAAqCs3C,oBAAoB,CAACt3C,UAAD,EAAa,CAAC0xB,QAAD,GAAYylB,SAAzB,EAAoC,KAApC,CAA7D,CAAA;AACAjkC,QAAAA,SAAS,GAAG,MAAZ,CAAA;AACAkkC,QAAAA,iBAAiB,GAAG,QAApB,CAAA;AACA,QAAA,MAAA;;AAEF,MAAA,KAAK,QAAL;QACEl4C,CAAC,GAAGW,EAAE,GAAGo3C,OAAO,GAAG94C,OAAO,CAAC+4C,WAAD,CAA1B,CAAA;QACA/3C,CAAC,GAAGW,EAAE,GAAGm3C,OAAO,GAAGj5C,OAAO,CAACk5C,WAAD,CAA1B,CAAA;AACAhkC,QAAAA,SAAS,GAAG,QAAZ,CAAA;AACAkkC,QAAAA,iBAAiB,GAAG,QAApB,CAAA;AACA,QAAA,MAAA;;AAEF,MAAA,KAAK,QAAL;QACEl4C,CAAC,GAAGW,EAAE,GAAG,CAACE,CAAC,GAAG2xB,QAAL,IAAiBvzB,OAAO,CAAC+4C,WAAD,CAAjC,CAAA;QACA/3C,CAAC,GAAGW,EAAE,GAAG,CAACC,CAAC,GAAG2xB,QAAL,IAAiB1zB,OAAO,CAACk5C,WAAD,CAAjC,CAAA;AACAhkC,QAAAA,SAAS,GAAG,QAAZ,CAAA;AACAkkC,QAAAA,iBAAiB,GAAG,QAApB,CAAA;AACA,QAAA,MAAA;;AAEF,MAAA,KAAK,cAAL;QACEl4C,CAAC,GAAGW,EAAE,GAAG,CAACE,CAAC,GAAG2xB,QAAL,IAAiBvzB,OAAO,CAAC+4C,WAAD,CAAjC,CAAA;QACA/3C,CAAC,GAAGW,EAAE,GAAG,CAACC,CAAC,GAAG2xB,QAAL,IAAiB1zB,OAAO,CAACk5C,WAAD,CAAjC,CAAA;AACAhkC,QAAAA,SAAS,GAAG,QAAZ,CAAA;AACAkkC,QAAAA,iBAAiB,GAAG,KAApB,CAAA;AACA,QAAA,MAAA;;AAEF,MAAA,KAAK,UAAL;AACEl4C,QAAAA,CAAC,GAAGW,EAAE,GAAGo3C,OAAO,GAAG94C,OAAO,CAAC8B,QAAD,CAAtB,GAAmCo3C,oBAAoB,CAACp3C,QAAD,EAAWyxB,QAAQ,GAAGylB,SAAtB,EAAiC,IAAjC,CAA3D,CAAA;AACAh4C,QAAAA,CAAC,GAAGW,EAAE,GAAGm3C,OAAO,GAAGj5C,OAAO,CAACiC,QAAD,CAAtB,GAAmCq3C,oBAAoB,CAACr3C,QAAD,EAAWyxB,QAAQ,GAAGylB,SAAtB,EAAiC,IAAjC,CAA3D,CAAA;AACAjkC,QAAAA,SAAS,GAAG,MAAZ,CAAA;AACAkkC,QAAAA,iBAAiB,GAAG,QAApB,CAAA;AACA,QAAA,MAAA;;AAEF,MAAA,KAAK,gBAAL;QACEl4C,CAAC,GAAGW,EAAE,GAAGo3C,OAAO,GAAG94C,OAAO,CAAC8B,QAAD,CAAtB,GAAmCo3C,oBAAoB,CAACp3C,QAAD,EAAW,CAACyxB,QAAD,GAAYylB,SAAvB,EAAkC,IAAlC,CAA3D,CAAA;QACAh4C,CAAC,GAAGW,EAAE,GAAGm3C,OAAO,GAAGj5C,OAAO,CAACiC,QAAD,CAAtB,GAAmCq3C,oBAAoB,CAACr3C,QAAD,EAAW,CAACyxB,QAAD,GAAYylB,SAAvB,EAAkC,IAAlC,CAA3D,CAAA;AACAjkC,QAAAA,SAAS,GAAG,OAAZ,CAAA;AACAkkC,QAAAA,iBAAiB,GAAG,QAApB,CAAA;AACA,QAAA,MAAA;;AAEF,MAAA;AACE,QAAA,OAAON,qBAAqB,CAACh3B,GAAD,EAAM7Z,IAAN,EAAY2f,YAAZ,CAA5B,CAAA;AAjEJ,KAAA;;IAoEA9F,GAAG,GAAGA,GAAG,IAAI,EAAb,CAAA;IACAA,GAAG,CAAC5gB,CAAJ,GAAQA,CAAR,CAAA;IACA4gB,GAAG,CAAC3gB,CAAJ,GAAQA,CAAR,CAAA;IACA2gB,GAAG,CAACgsB,KAAJ,GAAY54B,SAAZ,CAAA;IACA4M,GAAG,CAACisB,aAAJ,GAAoBqL,iBAApB,CAAA;AACA,IAAA,OAAOt3B,GAAP,CAAA;GApGF,CAAA;AAsGD,CAAA;AACM,SAASy3B,qBAAT,CAA+BP,MAA/B,EAAuCH,YAAvC,EAAqDF,eAArD,EAAsEa,UAAtE,EAAkF;AACvF,EAAA,IAAIrpC,QAAQ,CAACqpC,UAAD,CAAZ,EAA0B;AACxB;IACAR,MAAM,CAACS,aAAP,CAAqB;AACnBxmB,MAAAA,QAAQ,EAAEumB,UAAAA;KADZ,CAAA,CAAA;AAGA,IAAA,OAAA;AACD,GAND,MAMO,IAAI18B,SAAO,CAAC+7B,YAAD,CAAX,EAA2B;AAChC;IACAG,MAAM,CAACS,aAAP,CAAqB;AACnBxmB,MAAAA,QAAQ,EAAE,CAAA;KADZ,CAAA,CAAA;AAGA,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIlnB,KAAK,GAAGitC,MAAM,CAACjtC,KAAnB,CAAA;AACA,EAAA,IAAI/J,UAAU,GAAG+J,KAAK,CAACvJ,SAAN,GAAkBuJ,KAAK,CAAC/J,UAAxB,GAAqC+J,KAAK,CAAC9J,QAA5D,CAAA;AACA,EAAA,IAAIA,QAAQ,GAAG8J,KAAK,CAACvJ,SAAN,GAAkBuJ,KAAK,CAAC9J,QAAxB,GAAmC8J,KAAK,CAAC/J,UAAxD,CAAA;AACA,EAAA,IAAIk3C,WAAW,GAAG,CAACl3C,UAAU,GAAGC,QAAd,IAA0B,CAA5C,CAAA;AACA,EAAA,IAAIy3C,WAAJ,CAAA;AACA,EAAA,IAAIX,oBAAoB,GAAGJ,eAAe,CAACE,YAAD,CAA1C,CAAA;;AAEA,EAAA,QAAQE,oBAAR;AACE,IAAA,KAAK,UAAL,CAAA;AACA,IAAA,KAAK,gBAAL,CAAA;AACA,IAAA,KAAK,QAAL,CAAA;AACA,IAAA,KAAK,cAAL,CAAA;AACA,IAAA,KAAK,QAAL;AACEW,MAAAA,WAAW,GAAGR,WAAd,CAAA;AACA,MAAA,MAAA;;AAEF,IAAA,KAAK,YAAL,CAAA;AACA,IAAA,KAAK,kBAAL;AACEQ,MAAAA,WAAW,GAAG13C,UAAd,CAAA;AACA,MAAA,MAAA;;AAEF,IAAA,KAAK,UAAL,CAAA;AACA,IAAA,KAAK,gBAAL;AACE03C,MAAAA,WAAW,GAAGz3C,QAAd,CAAA;AACA,MAAA,MAAA;;AAEF,IAAA;MACE+2C,MAAM,CAACS,aAAP,CAAqB;AACnBxmB,QAAAA,QAAQ,EAAE,CAAA;OADZ,CAAA,CAAA;AAGA,MAAA,OAAA;AAvBJ,GAAA;;EA0BA,IAAI0mB,MAAM,GAAG15C,IAAI,CAACI,EAAL,GAAU,GAAV,GAAgBq5C,WAA7B,CAAA;AACA;AACF;AACA;AACA;AACA;AACA;AACA;;AAEE,EAAA,IAAIX,oBAAoB,KAAK,QAAzB,IAAqCY,MAAM,GAAG15C,IAAI,CAACI,EAAL,GAAU,CAAxD,IAA6Ds5C,MAAM,GAAG15C,IAAI,CAACI,EAAL,GAAU,GAApF,EAAyF;IACvFs5C,MAAM,IAAI15C,IAAI,CAACI,EAAf,CAAA;AACD,GAAA;;EAED24C,MAAM,CAACS,aAAP,CAAqB;AACnBxmB,IAAAA,QAAQ,EAAE0mB,MAAAA;GADZ,CAAA,CAAA;AAGD,CAAA;;AAED,SAASN,oBAAT,CAA8BO,KAA9B,EAAqClmB,QAArC,EAA+CmmB,KAA/C,EAAsD;AACpD,EAAA,OAAOnmB,QAAQ,GAAGzzB,IAAI,CAACC,GAAL,CAAS05C,KAAT,CAAX,IAA8BC,KAAK,GAAG,CAAC,CAAJ,GAAQ,CAA3C,CAAP,CAAA;AACD,CAAA;;AAED,SAASP,oBAAT,CAA8BM,KAA9B,EAAqClmB,QAArC,EAA+CmmB,KAA/C,EAAsD;AACpD,EAAA,OAAOnmB,QAAQ,GAAGzzB,IAAI,CAACG,GAAL,CAASw5C,KAAT,CAAX,IAA8BC,KAAK,GAAG,CAAH,GAAO,CAAC,CAA3C,CAAP,CAAA;AACD;;AC9ND;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0CA,IAAI7W,SAAO,GAAG/iC,IAAI,CAAC0iB,GAAnB,CAAA;AACA,IAAImgB,SAAO,GAAG7iC,IAAI,CAAC8iC,GAAnB,CAAA;;AAEA,SAAS+W,WAAT,CAAqBpQ,KAArB,EAA4B/U,IAA5B,EAAkC;EAChC,IAAIolB,gBAAgB,GAAGrQ,KAAK,CAACnD,OAAN,IAAiBmD,KAAK,CAACnD,OAAN,EAAxC,CAAA;;AAEA,EAAA,IAAIY,sBAAsB,CAACuC,KAAD,EAAQ,aAAR,CAA1B,EAAkD;AAChD,IAAA,IAAIzL,QAAQ,GAAGyL,KAAK,CAACxL,WAAN,EAAf,CADgD;AAEhD;AACA;;IAEA,IAAID,QAAQ,CAACzqB,IAAT,KAAkB,UAAlB,IAAgC,CAACyqB,QAAQ,CAAC+b,MAA9C,EAAsD;AACpD,MAAA,IAAIC,WAAW,GAAGtlB,IAAI,CAACwM,SAAL,CAAe,WAAf,CAAlB,CAAA;;AAEA,MAAA,IAAIlD,QAAQ,CAACwI,YAAT,EAAJ,EAA6B;QAC3BsT,gBAAgB,CAAC74C,CAAjB,IAAsB+4C,WAAtB,CAAA;AACAF,QAAAA,gBAAgB,CAAC7vC,KAAjB,IAA0B+vC,WAAW,GAAG,CAAxC,CAAA;AACD,OAHD,MAGO;QACLF,gBAAgB,CAAC54C,CAAjB,IAAsB84C,WAAtB,CAAA;AACAF,QAAAA,gBAAgB,CAAC5vC,MAAjB,IAA2B8vC,WAAW,GAAG,CAAzC,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;AAED,EAAA,OAAOF,gBAAP,CAAA;AACD,CAAA;;AAED,IAAIG,OAAO;AACX;AACA,UAAUv1B,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACs1B,OAAD,EAAUv1B,MAAV,CAAT,CAAA;;AAEA,EAAA,SAASu1B,OAAT,GAAmB;IACjB,IAAIr1B,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,KAAqB,IAAjC,CAAA;;AAEAD,IAAAA,KAAK,CAACrR,IAAN,GAAa0mC,OAAO,CAAC1mC,IAArB,CAAA;IACAqR,KAAK,CAACs1B,aAAN,GAAsB,IAAtB,CAAA;AACA,IAAA,OAAOt1B,KAAP,CAAA;AACD,GAAA;;AAEDq1B,EAAAA,OAAO,CAACz5C,SAAR,CAAkB8tC,MAAlB,GAA2B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqCu0B,OAArC,EAA8C;IACvE,IAAK6I,CAAAA,MAAL,GAAcjjB,WAAd,CAAA;;IAEA,IAAKkjB,CAAAA,yBAAL,CAA+Br9B,GAA/B,CAAA,CAAA;;IAEA,IAAKs9B,CAAAA,eAAL,CAAqBnjB,WAArB,CAAA,CAAA;;AAEA,IAAA,IAAIojB,oBAAoB,GAAGpjB,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,CAA3B,CAAA;;AAEA,IAAA,IAAI2hB,oBAAoB,KAAK,aAAzB,IAA0CA,oBAAoB,KAAK,OAAvE,EAAgF;AAC9E;MACA,IAAKxe,CAAAA,eAAL,GAAuB,IAAvB,CAAA;MACA,IAAKye,CAAAA,YAAL,GAAoB,IAAKC,CAAAA,YAAL,CAAkBtjB,WAAlB,EAA+BqX,OAA/B,EAAwCxxB,GAAxC,CAApB,GAAmE,IAAK09B,CAAAA,aAAL,CAAmBvjB,WAAnB,EAAgCqX,OAAhC,EAAyCxxB,GAAzC,EAA8Cu0B,OAA9C,CAAnE,CAAA;KAHF,MAIO,IAAI15B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MAChDgyB,IAAI,CAAC,+CAAD,CAAJ,CAAA;AACD,KAAA;GAfH,CAAA;;AAkBAmQ,EAAAA,OAAO,CAACz5C,SAAR,CAAkBk6C,wBAAlB,GAA6C,UAAUxjB,WAAV,EAAuB;AAClE,IAAA,IAAA,CAAKyjB,MAAL,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAKN,eAAL,CAAqBnjB,WAArB,CAAA,CAHkE;AAIlE;;;IAGA,IAAK0jB,CAAAA,gBAAL,CAAsB1jB,WAAtB,CAAA,CAAA;GAPF,CAAA;;EAUA+iB,OAAO,CAACz5C,SAAR,CAAkBq6C,iBAAlB,GAAsC,UAAUnG,MAAV,EAAkBxd,WAAlB,EAA+B;AACnE;AACA,IAAA,IAAA,CAAK4E,eAAL,GAAuB,EAAvB,CAFmE;;AAInE,IAAA,IAAA,CAAKgf,uBAAL,CAA6BpG,MAA7B,EAAqCxd,WAArC,CAAA,CAAA;GAJF,CAAA;;AAOA+iB,EAAAA,OAAO,CAACz5C,SAAR,CAAkBo9B,YAAlB,GAAiC,UAAU/N,EAAV,EAAc;IAC7CkrB,gBAAgB,CAAC,KAAKjf,eAAL,IAAwB,KAAKjK,KAA9B,EAAqChC,EAArC,CAAhB,CAAA;GADF,CAAA;;AAIAoqB,EAAAA,OAAO,CAACz5C,SAAR,CAAkB65C,eAAlB,GAAoC,UAAUnjB,WAAV,EAAuB;AACzD,IAAA,IAAI8jB,WAAW,GAAG9jB,WAAW,CAACgd,eAAZ,CAA4BrxC,KAA9C,CAAA;;IAEA,IAAI,IAAA,CAAK03C,YAAL,IAAqB,IAArB,IAA6BS,WAAW,KAAK,IAAKT,CAAAA,YAAtD,EAAoE;MAClE,IAAKA,CAAAA,YAAL,GAAoBS,WAApB,CAAA;;AAEA,MAAA,IAAA,CAAKL,MAAL,EAAA,CAAA;AACD,KAAA;GAPH,CAAA;;AAUAV,EAAAA,OAAO,CAACz5C,SAAR,CAAkBi6C,aAAlB,GAAkC,UAAUvjB,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqCu0B,OAArC,EAA8C;IAC9E,IAAIzf,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAI6C,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAIwJ,OAAO,GAAG,IAAA,CAAKC,KAAnB,CAAA;AACA,IAAA,IAAIyN,KAAK,GAAGvS,WAAW,CAAC3F,gBAAxB,CAAA;AACA,IAAA,IAAIyM,QAAQ,GAAGyL,KAAK,CAACxL,WAAN,EAAf,CAAA;AACA,IAAA,IAAI4T,oBAAJ,CAAA;;AAEA,IAAA,IAAIpI,KAAK,CAACl2B,IAAN,KAAe,aAAnB,EAAkC;AAChCs+B,MAAAA,oBAAoB,GAAG7T,QAAQ,CAACwI,YAAT,EAAvB,CAAA;AACD,KAFD,MAEO,IAAIiD,KAAK,CAACl2B,IAAN,KAAe,OAAnB,EAA4B;AACjCs+B,MAAAA,oBAAoB,GAAG7T,QAAQ,CAACO,GAAT,KAAiB,OAAxC,CAAA;AACD,KAAA;;IAED,IAAI0c,cAAc,GAAG/jB,WAAW,CAACgkB,kBAAZ,EAAmChkB,GAAAA,WAAnC,GAAiD,IAAtE,CAAA;AACA,IAAA,IAAIikB,eAAe,GAAGC,kBAAkB,CAAClkB,WAAD,EAAcuS,KAAd,CAAxC,CAAA;;AAEA,IAAA,IAAI0R,eAAJ,EAAqB;AACnB,MAAA,IAAA,CAAKE,mBAAL,CAAyBF,eAAzB,EAA0CzmB,IAA1C,EAAgD3X,GAAhD,CAAA,CAAA;AACD,KAAA;;IAED,IAAIu+B,SAAS,GAAGpkB,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,EAAwB,IAAxB,CAAA,IAAiCwiB,eAAjD,CAAA;IACA,IAAIrB,gBAAgB,GAAGD,WAAW,CAACpQ,KAAD,EAAQ/U,IAAR,CAAlC,CAtB8E;;IAwB9E7C,KAAK,CAAC0pB,cAAN,EAAA,CAxB8E;AAyB9E;;IAEA,IAAI/D,QAAQ,GAAGtgB,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,EAA4B,IAA5B,CAAf,CAAA;IACA,IAAI6iB,cAAc,GAAGtkB,WAAW,CAACyB,GAAZ,CAAgB,gBAAhB,EAAkC,IAAlC,CAArB,CAAA;AACA,IAAA,IAAI8iB,eAAe,GAAGvkB,WAAW,CAACuB,QAAZ,CAAqB,iBAArB,CAAtB,CAAA;IACA,IAAIijB,eAAe,GAAGD,eAAe,CAAC9iB,GAAhB,CAAoB,cAApB,KAAuC,CAA7D,CAAA;IACA,IAAIgjB,KAAK,GAAG,EAAZ,CAAA;IACA,IAAIC,QAAQ,GAAG,IAAA,CAAKC,cAApB,CAAA;AACA,IAAA,IAAIC,UAAU,GAAGxK,OAAO,IAAIA,OAAO,CAACwK,UAApC,CAAA;IACA,IAAIC,aAAa,GAAGzK,OAAO,IAAIA,OAAO,CAAC/9B,IAAR,KAAiB,iBAAhD,CAAA;;IAEA,SAASyoC,gBAAT,CAA0BrnB,SAA1B,EAAqC;AACnC,MAAA,IAAIsnB,QAAQ,GAAG/a,SAAS,CAACuI,KAAK,CAACl2B,IAAP,CAAT,CAAsBmhB,IAAtB,EAA4BC,SAA5B,CAAf,CAAA;MACA,IAAIunB,IAAI,GAAGC,kBAAkB,CAAC1S,KAAD,EAAQoI,oBAAR,EAA8BoK,QAA9B,CAA7B,CAAA;MACAC,IAAI,CAAC/iB,QAAL,CAAcsiB,eAAe,CAAC/iB,YAAhB,EAAd,EAHmC;;AAKnC,MAAA,IAAI+Q,KAAK,CAACl2B,IAAN,KAAe,aAAnB,EAAkC;AAChC2oC,QAAAA,IAAI,CAACjM,QAAL,CAAc,GAAd,EAAmByL,eAAnB,CAAA,CAAA;AACD,OAAA;;AAEDC,MAAAA,KAAK,CAAChnB,SAAD,CAAL,GAAmBunB,IAAnB,CAAA;AACA,MAAA,OAAOA,IAAP,CAAA;AACD,KAAA;;AAED,IAAA,CAAA;IACAxnB,IAAI,CAAC0H,IAAL,CAAUL,OAAV,EAAmB3J,GAAnB,CAAuB,UAAUuC,SAAV,EAAqB;AAC1C,MAAA,IAAI2D,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkB5D,SAAlB,CAAhB,CAAA;AACA,MAAA,IAAIynB,MAAM,GAAGlb,SAAS,CAACuI,KAAK,CAACl2B,IAAP,CAAT,CAAsBmhB,IAAtB,EAA4BC,SAA5B,EAAuC2D,SAAvC,CAAb,CAAA;;AAEA,MAAA,IAAIkjB,cAAJ,EAAoB;QAClBQ,gBAAgB,CAACrnB,SAAD,CAAhB,CAAA;AACD,OANyC;;;AAS1C,MAAA,IAAI,CAACD,IAAI,CAAC2nB,QAAL,CAAc1nB,SAAd,CAAD,IAA6B,CAAC2nB,aAAa,CAAC7S,KAAK,CAACl2B,IAAP,CAAb,CAA0B6oC,MAA1B,CAAlC,EAAqE;AACnE,QAAA,OAAA;AACD,OAAA;;MAED,IAAIG,SAAS,GAAG,KAAhB,CAAA;;AAEA,MAAA,IAAIjB,SAAJ,EAAe;AACb;AACA;QACAiB,SAAS,GAAGttB,IAAI,CAACwa,KAAK,CAACl2B,IAAP,CAAJ,CAAiBumC,gBAAjB,EAAmCsC,MAAnC,CAAZ,CAAA;AACD,OAAA;;AAED,MAAA,IAAI32C,EAAE,GAAG+2C,cAAc,CAAC/S,KAAK,CAACl2B,IAAP,CAAd,CAA2B2jB,WAA3B,EAAwCxC,IAAxC,EAA8CC,SAA9C,EAAyDynB,MAAzD,EAAiEvK,oBAAjE,EAAuFoJ,cAAvF,EAAuGjd,QAAQ,CAACye,KAAhH,EAAuH,KAAvH,EAA8HjF,QAA9H,CAAT,CAAA;;AAEA,MAAA,IAAI2D,eAAJ,EAAqB;AACnB;AACR;AACA;AACA;AACA;AACA;AACA;AACA;QACQ11C,EAAE,CAACi3C,mBAAH,GAAyB,IAAzB,CAAA;AACD,OAAA;;MAEDC,WAAW,CAACl3C,EAAD,EAAKivB,IAAL,EAAWC,SAAX,EAAsB2D,SAAtB,EAAiC8jB,MAAjC,EAAyCllB,WAAzC,EAAsD2a,oBAAtD,EAA4EpI,KAAK,CAACl2B,IAAN,KAAe,OAA3F,CAAX,CAAA;;AAEA,MAAA,IAAIuoC,UAAJ,EAAgB;QACdr2C,EAAE,CAACkwB,IAAH,CAAQ;AACN7pB,UAAAA,KAAK,EAAEswC,MAAAA;SADT,CAAA,CAAA;OADF,MAIO,IAAIjB,eAAJ,EAAqB;AAC1ByB,QAAAA,uBAAuB,CAACzB,eAAD,EAAkBF,cAAlB,EAAkCx1C,EAAlC,EAAsC22C,MAAtC,EAA8CznB,SAA9C,EAAyDkd,oBAAzD,EAA+E,KAA/E,EAAsF,KAAtF,CAAvB,CAAA;AACD,OAFM,MAEA;QACLgL,SAAS,CAACp3C,EAAD,EAAK;AACZqG,UAAAA,KAAK,EAAEswC,MAAAA;AADK,SAAL,EAENllB,WAFM,EAEOvC,SAFP,CAAT,CAAA;AAGD,OAAA;;AAEDD,MAAAA,IAAI,CAAC8H,gBAAL,CAAsB7H,SAAtB,EAAiClvB,EAAjC,CAAA,CAAA;MACAosB,KAAK,CAACO,GAAN,CAAU3sB,EAAV,CAAA,CAAA;MACAA,EAAE,CAACq3C,MAAH,GAAYP,SAAZ,CAAA;AACD,KApDD,EAoDG9f,MApDH,CAoDU,UAAUsgB,QAAV,EAAoBC,QAApB,EAA8B;AACtC,MAAA,IAAI1kB,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBwkB,QAAlB,CAAhB,CAAA;AACA,MAAA,IAAIX,MAAM,GAAGlb,SAAS,CAACuI,KAAK,CAACl2B,IAAP,CAAT,CAAsBmhB,IAAtB,EAA4BqoB,QAA5B,EAAsCzkB,SAAtC,CAAb,CAAA;;AAEA,MAAA,IAAIkjB,cAAJ,EAAoB;QAClB,IAAIU,IAAI,GAAG,KAAK,CAAhB,CAAA;;AAEA,QAAA,IAAIN,QAAQ,CAACp4C,MAAT,KAAoB,CAAxB,EAA2B;AACzB04C,UAAAA,IAAI,GAAGF,gBAAgB,CAACgB,QAAD,CAAvB,CAAA;AACD,SAFD,MAEO;AACLd,UAAAA,IAAI,GAAGN,QAAQ,CAACoB,QAAD,CAAf,CAAA;UACAd,IAAI,CAAC/iB,QAAL,CAAcsiB,eAAe,CAAC/iB,YAAhB,EAAd,EAFK;;AAIL,UAAA,IAAI+Q,KAAK,CAACl2B,IAAN,KAAe,aAAnB,EAAkC;AAChC2oC,YAAAA,IAAI,CAACjM,QAAL,CAAc,GAAd,EAAmByL,eAAnB,CAAA,CAAA;AACD,WAAA;;AAEDC,UAAAA,KAAK,CAACoB,QAAD,CAAL,GAAkBb,IAAlB,CAAA;AACD,SAAA;;AAED,QAAA,IAAID,QAAQ,GAAG/a,SAAS,CAACuI,KAAK,CAACl2B,IAAP,CAAT,CAAsBmhB,IAAtB,EAA4BqoB,QAA5B,CAAf,CAAA;QACA,IAAIjxC,KAAK,GAAGmxC,qBAAqB,CAACpL,oBAAD,EAAuBoK,QAAvB,EAAiCxS,KAAjC,CAAjC,CAAA;QACAyT,aAAW,CAAChB,IAAD,EAAO;AAChBpwC,UAAAA,KAAK,EAAEA,KAAAA;AADS,SAAP,EAERmvC,cAFQ,EAEQ8B,QAFR,CAAX,CAAA;AAGD,OAAA;;AAED,MAAA,IAAIt3C,EAAE,GAAGs2B,OAAO,CAACY,gBAAR,CAAyBqgB,QAAzB,CAAT,CAAA;;AAEA,MAAA,IAAI,CAACtoB,IAAI,CAAC2nB,QAAL,CAAcU,QAAd,CAAD,IAA4B,CAACT,aAAa,CAAC7S,KAAK,CAACl2B,IAAP,CAAb,CAA0B6oC,MAA1B,CAAjC,EAAoE;QAClEvqB,KAAK,CAAC+K,MAAN,CAAan3B,EAAb,CAAA,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;MAED,IAAI82C,SAAS,GAAG,KAAhB,CAAA;;AAEA,MAAA,IAAIjB,SAAJ,EAAe;QACbiB,SAAS,GAAGttB,IAAI,CAACwa,KAAK,CAACl2B,IAAP,CAAJ,CAAiBumC,gBAAjB,EAAmCsC,MAAnC,CAAZ,CAAA;;AAEA,QAAA,IAAIG,SAAJ,EAAe;UACb1qB,KAAK,CAAC+K,MAAN,CAAan3B,EAAb,CAAA,CAAA;AACD,SAAA;AACF,OAAA;;MAED,IAAI,CAACA,EAAL,EAAS;AACPA,QAAAA,EAAE,GAAG+2C,cAAc,CAAC/S,KAAK,CAACl2B,IAAP,CAAd,CAA2B2jB,WAA3B,EAAwCxC,IAAxC,EAA8CqoB,QAA9C,EAAwDX,MAAxD,EAAgEvK,oBAAhE,EAAsFoJ,cAAtF,EAAsGjd,QAAQ,CAACye,KAA/G,EAAsH,CAAC,CAACh3C,EAAxH,EAA4H+xC,QAA5H,CAAL,CAAA;AACD,OAFD,MAEO;QACLhgB,YAAY,CAAC/xB,EAAD,CAAZ,CAAA;AACD,OAAA;;AAED,MAAA,IAAI01C,eAAJ,EAAqB;QACnB11C,EAAE,CAACi3C,mBAAH,GAAyB,IAAzB,CAAA;AACD,OAAA;;AAED,MAAA,IAAIX,aAAJ,EAAmB;AACjB,QAAA,IAAIoB,MAAM,GAAG13C,EAAE,CAAC4V,cAAH,EAAb,CAAA;;AAEA,QAAA,IAAI8hC,MAAJ,EAAY;AACV,UAAA,IAAIC,eAAe,GAAG7J,UAAU,CAAC4J,MAAD,CAAhC,CAAA;;AAEA,UAAA,IAAIC,eAAe,CAACC,SAAhB,IAA6B,IAAjC,EAAuC;AACrC;AACZ;AACA;AACA;AACA;AACA;AACYD,YAAAA,eAAe,CAACC,SAAhB,GAA4BD,eAAe,CAAC1d,KAA5C,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAhBD;AAiBA;WACK;QACDid,WAAW,CAACl3C,EAAD,EAAKivB,IAAL,EAAWqoB,QAAX,EAAqBzkB,SAArB,EAAgC8jB,MAAhC,EAAwCllB,WAAxC,EAAqD2a,oBAArD,EAA2EpI,KAAK,CAACl2B,IAAN,KAAe,OAA1F,CAAX,CAAA;AACD,OAAA;;AAEH,MAAA,IAAIuoC,UAAJ,EAAgB;QACdr2C,EAAE,CAACkwB,IAAH,CAAQ;AACN7pB,UAAAA,KAAK,EAAEswC,MAAAA;SADT,CAAA,CAAA;OADF,MAIO,IAAIjB,eAAJ,EAAqB;AAC1ByB,QAAAA,uBAAuB,CAACzB,eAAD,EAAkBF,cAAlB,EAAkCx1C,EAAlC,EAAsC22C,MAAtC,EAA8CW,QAA9C,EAAwDlL,oBAAxD,EAA8E,IAA9E,EAAoFkK,aAApF,CAAvB,CAAA;AACD,OAFM,MAEA;QACLmB,aAAW,CAACz3C,EAAD,EAAK;AACdqG,UAAAA,KAAK,EAAEswC,MAAAA;AADO,SAAL,EAERllB,WAFQ,EAEK6lB,QAFL,EAEe,IAFf,CAAX,CAAA;AAGD,OAAA;;AAEDroB,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBugB,QAAtB,EAAgCt3C,EAAhC,CAAA,CAAA;MACAA,EAAE,CAACq3C,MAAH,GAAYP,SAAZ,CAAA;MACA1qB,KAAK,CAACO,GAAN,CAAU3sB,EAAV,CAAA,CAAA;AACD,KA/ID,CA+IGm3B,CAAAA,MA/IH,CA+IU,UAAUjI,SAAV,EAAqB;AAC7B,MAAA,IAAIlvB,EAAE,GAAGs2B,OAAO,CAACY,gBAAR,CAAyBhI,SAAzB,CAAT,CAAA;MACAlvB,EAAE,IAAI63C,wBAAwB,CAAC73C,EAAD,EAAKyxB,WAAL,EAAkBvC,SAAlB,CAA9B,CAAA;AACD,KAlJD,EAkJGoI,OAlJH,EAAA,CAAA;IAmJA,IAAIwgB,OAAO,GAAG,IAAA,CAAKC,gBAAL,KAA0B,IAAKA,CAAAA,gBAAL,GAAwB,IAAI1rB,OAAJ,EAAlD,CAAd,CAAA;AACAyrB,IAAAA,OAAO,CAAC9nB,SAAR,EAAA,CAAA;;AAEA,IAAA,KAAK,IAAIvxB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGy3C,KAAK,CAACn4C,MAA1B,EAAkC,EAAEU,CAApC,EAAuC;AACrCq5C,MAAAA,OAAO,CAACnrB,GAAR,CAAYupB,KAAK,CAACz3C,CAAD,CAAjB,CAAA,CAAA;AACD,KAAA;;IAED2tB,KAAK,CAACO,GAAN,CAAUmrB,OAAV,CAAA,CAAA;IACA,IAAK1B,CAAAA,cAAL,GAAsBF,KAAtB,CAAA;IACA,IAAK3f,CAAAA,KAAL,GAAatH,IAAb,CAAA;GA9MF,CAAA;;EAiNAulB,OAAO,CAACz5C,SAAR,CAAkBg6C,YAAlB,GAAiC,UAAUtjB,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AACpE,IAAA,IAAA,CAAK49B,MAAL,EAAA,CAAA;;AAEA8C,IAAAA,aAAW,CAACvmB,WAAD,EAAc,IAAA,CAAKrF,KAAnB,CAAX,CAAA;;IAEA,IAAK+oB,CAAAA,gBAAL,CAAsB1jB,WAAtB,CAAA,CAAA;GALF,CAAA;;EAQA+iB,OAAO,CAACz5C,SAAR,CAAkBs6C,uBAAlB,GAA4C,UAAUpG,MAAV,EAAkBxd,WAAlB,EAA+B;AACzE,IAAA,IAAA,CAAKwmB,iBAAL,EAAA,CAAA;;IAEAD,aAAW,CAACvmB,WAAD,EAAc,IAAKrF,CAAAA,KAAnB,EAA0B,IAAKiK,CAAAA,eAA/B,EAAgD,IAAhD,CAAX,CAAA;GAHF,CAAA;;AAMAme,EAAAA,OAAO,CAACz5C,SAAR,CAAkBo6C,gBAAlB,GAAqC,UAAU1jB,WAAV,EAAuB;AAC1D;AACA,IAAA,IAAI7c,QAAQ,GAAG6c,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,EAAwB,IAAxB,KAAiCsO,cAAc,CAAC/P,WAAW,CAAC3F,gBAAb,EAA+B,KAA/B,EAAsC2F,WAAtC,CAA9D,CAAA;IACA,IAAIrF,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;;AAEA,IAAA,IAAIxX,QAAJ,EAAc;MACZwX,KAAK,CAACzX,WAAN,CAAkBC,QAAlB,CAAA,CAAA;AACD,KAFD,MAEO;AACLwX,MAAAA,KAAK,CAAC0pB,cAAN,EAAA,CAAA;AACD,KAAA;GATH,CAAA;;EAYAtB,OAAO,CAACz5C,SAAR,CAAkB66C,mBAAlB,GAAwC,UAAUF,eAAV,EAA2BzmB,IAA3B,EAAiC3X,GAAjC,EAAsC;AAC5E,IAAA,IAAI6H,KAAK,GAAG,IAAZ,CAD4E;;;AAI5E,IAAA,IAAI,CAAC8P,IAAI,CAAC0T,KAAL,EAAL,EAAmB;AACjB,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIpK,QAAQ,GAAGmd,eAAe,CAACnd,QAA/B,CAAA;;IAEA,IAAI,IAAA,CAAKkc,aAAT,EAAwB;AACtB,MAAA,IAAA,CAAKyD,iBAAL,CAAuBjpB,IAAvB,EAA6BymB,eAA7B,EAA8Cp+B,GAA9C,CAAA,CAAA;;MAEA,IAAKm9B,CAAAA,aAAL,GAAqB,KAArB,CAAA;AACD,KAJD,MAIO;AACL,MAAA,IAAI0D,cAAc,GAAG,SAAjBA,cAAiB,CAAU1tB,GAAV,EAAe;AAClC,QAAA,IAAIzqB,EAAE,GAAGivB,IAAI,CAACiI,gBAAL,CAAsBzM,GAAtB,CAAT,CAAA;AACA,QAAA,IAAIpkB,KAAK,GAAGrG,EAAE,IAAIA,EAAE,CAACqG,KAArB,CAAA;AACA,QAAA,OAAOA,KAAK;AACZ;AACA9L,QAAAA,IAAI,CAACyC,GAAL,CAASu7B,QAAQ,CAACwI,YAAT,EAAA,GAA0B16B,KAAK,CAAC5B,MAAhC,GAAyC4B,KAAK,CAAC7B,KAAxD,CAFO;AAAA,WAGJ,CAHH,CAAA;OAHF,CAAA;;MASA,IAAK4zC,CAAAA,WAAL,GAAmB,YAAY;QAC7Bj5B,KAAK,CAACk5B,yBAAN,CAAgCppB,IAAhC,EAAsCkpB,cAAtC,EAAsD5f,QAAtD,EAAgEjhB,GAAhE,CAAA,CAAA;OADF,CAAA;;MAIAA,GAAG,CAACghC,KAAJ,EAAYC,CAAAA,EAAZ,CAAe,UAAf,EAA2B,KAAKH,WAAhC,CAAA,CAAA;AACD,KAAA;GA7BH,CAAA;;EAgCA5D,OAAO,CAACz5C,SAAR,CAAkBy9C,SAAlB,GAA8B,UAAUvpB,IAAV,EAAgBsJ,QAAhB,EAA0BkgB,YAA1B,EAAwC;IACpE,IAAIC,IAAI,GAAG,EAAX,CAAA;AACAzpB,IAAAA,IAAI,CAACxnB,IAAL,CAAUwnB,IAAI,CAACgK,YAAL,CAAkBV,QAAQ,CAACO,GAA3B,CAAV,EAA2C,UAAUsN,aAAV,EAAyBuS,OAAzB,EAAkC;AAC3E,MAAA,IAAIC,WAAW,GAAGH,YAAY,CAACE,OAAD,CAA9B,CAAA;AACAC,MAAAA,WAAW,GAAGA,WAAW,IAAI,IAAf,GAAsB1e,GAAtB,GAA4B0e,WAA1C,CAAA;MACAF,IAAI,CAAC55C,IAAL,CAAU;AACRowB,QAAAA,SAAS,EAAEypB,OADH;AAERC,QAAAA,WAAW,EAAEA,WAFL;AAGRxS,QAAAA,aAAa,EAAEA,aAAAA;OAHjB,CAAA,CAAA;KAHF,CAAA,CAAA;AASAsS,IAAAA,IAAI,CAACnc,IAAL,CAAU,UAAUt+B,CAAV,EAAaC,CAAb,EAAgB;AACxB;AACA,MAAA,OAAOA,CAAC,CAAC06C,WAAF,GAAgB36C,CAAC,CAAC26C,WAAzB,CAAA;KAFF,CAAA,CAAA;IAIA,OAAO;AACLC,MAAAA,cAAc,EAAEl5C,GAAG,CAAC+4C,IAAD,EAAO,UAAUprC,IAAV,EAAgB;QACxC,OAAOA,IAAI,CAAC84B,aAAZ,CAAA;OADiB,CAAA;KADrB,CAAA;GAfF,CAAA;;EAsBAoO,OAAO,CAACz5C,SAAR,CAAkB+9C,6BAAlB,GAAkD,UAAU7pB,IAAV,EAAgBwpB,YAAhB,EAA8BlgB,QAA9B,EAAwC;AACxF,IAAA,IAAIlX,KAAK,GAAGkX,QAAQ,CAAClX,KAArB,CAAA;IACA,IAAI03B,cAAc,GAAG9pB,IAAI,CAACgK,YAAL,CAAkBV,QAAQ,CAACO,GAA3B,CAArB,CAAA;AACA,IAAA,IAAIkgB,SAAS,GAAGC,MAAM,CAACC,SAAvB,CAAA;;IAEA,KAAK,IAAIC,OAAO,GAAG,CAAd,EAAiBrxC,GAAG,GAAGuZ,KAAK,CAAC+3B,cAAN,GAAuBC,UAAvB,CAAkCt7C,MAA9D,EAAsEo7C,OAAO,GAAGrxC,GAAhF,EAAqF,EAAEqxC,OAAvF,EAAgG;AAC9F,MAAA,IAAIG,MAAM,GAAGrqB,IAAI,CAACsqB,UAAL,CAAgBR,cAAhB,EAAgC13B,KAAK,CAACglB,mBAAN,CAA0B8S,OAA1B,CAAhC,CAAb,CAAA;AACA,MAAA,IAAIlf,KAAK,GAAGqf,MAAM,GAAG,CAAT;QACVL,MAAM,CAACO,SADG;QAEVf,YAAY,CAACxpB,IAAI,CAACwqB,eAAL,CAAqBH,MAArB,CAAD,CAFd,CAAA;;MAIA,IAAIrf,KAAK,GAAG+e,SAAZ,EAAuB;AACrB,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;;AAEDA,MAAAA,SAAS,GAAG/e,KAAZ,CAAA;AACD,KAAA;;AAED,IAAA,OAAO,KAAP,CAAA;GAlBF,CAAA;AAoBA;AACF;AACA;AACA;AACA;;;EAGEua,OAAO,CAACz5C,SAAR,CAAkB2+C,uBAAlB,GAA4C,UAAUC,SAAV,EAAqBphB,QAArB,EAA+B;AACzE,IAAA,IAAIlX,KAAK,GAAGkX,QAAQ,CAAClX,KAArB,CAAA;AACA,IAAA,IAAIwY,MAAM,GAAGxY,KAAK,CAACyY,SAAN,EAAb,CAAA;AACA,IAAA,IAAIqf,OAAO,GAAG5+C,IAAI,CAAC0iB,GAAL,CAAS,CAAT,EAAY4c,MAAM,CAAC,CAAD,CAAlB,CAAd,CAAA;IACA,IAAI+f,OAAO,GAAGr/C,IAAI,CAAC8iC,GAAL,CAASxD,MAAM,CAAC,CAAD,CAAf,EAAoBxY,KAAK,CAAC+3B,cAAN,EAAuBC,CAAAA,UAAvB,CAAkCt7C,MAAlC,GAA2C,CAA/D,CAAd,CAAA;;AAEA,IAAA,OAAOo7C,OAAO,IAAIS,OAAlB,EAA2B,EAAET,OAA7B,EAAsC;AACpC,MAAA,IAAIQ,SAAS,CAACd,cAAV,CAAyBM,OAAzB,CAAA,KAAsC93B,KAAK,CAACglB,mBAAN,CAA0B8S,OAA1B,CAA1C,EAA8E;AAC5E,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;AACF,KAAA;GAVH,CAAA;;AAaA3E,EAAAA,OAAO,CAACz5C,SAAR,CAAkBs9C,yBAAlB,GAA8C,UAAUppB,IAAV,EAAgBwpB,YAAhB,EAA8BlgB,QAA9B,EAAwCjhB,GAAxC,EAA6C;IACzF,IAAI,CAAC,IAAKwhC,CAAAA,6BAAL,CAAmC7pB,IAAnC,EAAyCwpB,YAAzC,EAAuDlgB,QAAvD,CAAL,EAAuE;AACrE,MAAA,OAAA;AACD,KAAA;;IAED,IAAIshB,QAAQ,GAAG,IAAA,CAAKrB,SAAL,CAAevpB,IAAf,EAAqBsJ,QAArB,EAA+BkgB,YAA/B,CAAf,CAAA;;AAEA,IAAA,IAAI,KAAKiB,uBAAL,CAA6BG,QAA7B,EAAuCthB,QAAvC,CAAJ,EAAsD;MACpD,IAAKoc,CAAAA,yBAAL,CAA+Br9B,GAA/B,CAAA,CAAA;;MAEAA,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,QAAAA,IAAI,EAAE,iBADW;AAEjB09B,QAAAA,aAAa,EAAEjT,QAAQ,CAACO,GAAT,GAAe,MAFb;QAGjBihB,MAAM,EAAExhB,QAAQ,CAACyhB,KAHA;AAIjBH,QAAAA,QAAQ,EAAEA,QAAAA;OAJZ,CAAA,CAAA;AAMD,KAAA;GAhBH,CAAA;;EAmBArF,OAAO,CAACz5C,SAAR,CAAkBm9C,iBAAlB,GAAsC,UAAUjpB,IAAV,EAAgBymB,eAAhB,EAAiCp+B,GAAjC,EAAsC;AAC1E,IAAA,IAAIihB,QAAQ,GAAGmd,eAAe,CAACnd,QAA/B,CAAA;;IAEA,IAAI0hB,UAAU,GAAG,IAAA,CAAKzB,SAAL,CAAevpB,IAAf,EAAqBsJ,QAArB,EAA+B,UAAUogB,OAAV,EAAmB;AACjE,MAAA,OAAO1pB,IAAI,CAACiE,GAAL,CAASjE,IAAI,CAACgK,YAAL,CAAkByc,eAAe,CAACwE,SAAhB,CAA0BphB,GAA5C,CAAT,EAA2D6f,OAA3D,CAAP,CAAA;AACD,KAFgB,CAAjB,CAAA;;IAIArhC,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,MAAAA,IAAI,EAAE,iBADW;AAEjB09B,MAAAA,aAAa,EAAEjT,QAAQ,CAACO,GAAT,GAAe,MAFb;AAGjBud,MAAAA,UAAU,EAAE,IAHK;MAIjB0D,MAAM,EAAExhB,QAAQ,CAACyhB,KAJA;AAKjBH,MAAAA,QAAQ,EAAEI,UAAAA;KALZ,CAAA,CAAA;GAPF,CAAA;;EAgBAzF,OAAO,CAACz5C,SAAR,CAAkBo8B,MAAlB,GAA2B,UAAU2R,OAAV,EAAmBxxB,GAAnB,EAAwB;IACjD,IAAK49B,CAAAA,MAAL,CAAY,IAAA,CAAKR,MAAjB,CAAA,CAAA;;IAEA,IAAKC,CAAAA,yBAAL,CAA+Br9B,GAA/B,CAAA,CAAA;GAHF,CAAA;;EAMAk9B,OAAO,CAACz5C,SAAR,CAAkB4iB,OAAlB,GAA4B,UAAUmrB,OAAV,EAAmBxxB,GAAnB,EAAwB;IAClD,IAAKq9B,CAAAA,yBAAL,CAA+Br9B,GAA/B,CAAA,CAAA;GADF,CAAA;;AAIAk9B,EAAAA,OAAO,CAACz5C,SAAR,CAAkB45C,yBAAlB,GAA8C,UAAUr9B,GAAV,EAAe;IAC3D,IAAI,IAAA,CAAK8gC,WAAT,EAAsB;MACpB9gC,GAAG,CAACghC,KAAJ,EAAY6B,CAAAA,GAAZ,CAAgB,UAAhB,EAA4B,KAAK/B,WAAjC,CAAA,CAAA;MACA,IAAKA,CAAAA,WAAL,GAAmB,IAAnB,CAAA;AACD,KAAA;GAJH,CAAA;;AAOA5D,EAAAA,OAAO,CAACz5C,SAAR,CAAkBm6C,MAAlB,GAA2B,UAAU8B,KAAV,EAAiB;IAC1C,IAAI5qB,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACA,IAAI6C,IAAI,GAAG,IAAA,CAAKsH,KAAhB,CAAA;;AAEA,IAAA,IAAIygB,KAAK,IAAIA,KAAK,CAACvB,kBAAN,EAAT,IAAuCxmB,IAAvC,IAA+C,CAAC,IAAK6lB,CAAAA,YAAzD,EAAuE;AACrE,MAAA,IAAA,CAAKmD,iBAAL,EAAA,CAAA;;MAEA,IAAK7B,CAAAA,cAAL,GAAsB,EAAtB,CAAA;AACAnnB,MAAAA,IAAI,CAACwI,iBAAL,CAAuB,UAAUz3B,EAAV,EAAc;QACnC63C,wBAAwB,CAAC73C,EAAD,EAAKg3C,KAAL,EAAY/hB,SAAS,CAACj1B,EAAD,CAAT,CAAckvB,SAA1B,CAAxB,CAAA;OADF,CAAA,CAAA;AAGD,KAPD,MAOO;AACL9C,MAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;AACD,KAAA;;IAED,IAAKuG,CAAAA,KAAL,GAAa,IAAb,CAAA;IACA,IAAKke,CAAAA,aAAL,GAAqB,IAArB,CAAA;GAhBF,CAAA;;AAmBAD,EAAAA,OAAO,CAACz5C,SAAR,CAAkBk9C,iBAAlB,GAAsC,YAAY;AAChD,IAAA,IAAA,CAAK7rB,KAAL,CAAW+K,MAAX,CAAkB,KAAK4gB,gBAAvB,CAAA,CAAA;IACA,IAAKA,CAAAA,gBAAL,GAAwB,IAAxB,CAAA;GAFF,CAAA;;EAKAvD,OAAO,CAAC1mC,IAAR,GAAe,KAAf,CAAA;AACA,EAAA,OAAO0mC,OAAP,CAAA;AACD,CAndD,CAmdEvI,SAndF,CAFA,CAAA;;AAudA,IAAIziB,IAAI,GAAG;AACT4wB,EAAAA,WAAW,EAAE,SAAA,WAAA,CAAUC,oBAAV,EAAgC1D,MAAhC,EAAwC;IACnD,IAAI2D,SAAS,GAAG3D,MAAM,CAACnyC,KAAP,GAAe,CAAf,GAAmB,CAAC,CAApB,GAAwB,CAAxC,CAAA;AACA,IAAA,IAAI+1C,UAAU,GAAG5D,MAAM,CAAClyC,MAAP,GAAgB,CAAhB,GAAoB,CAAC,CAArB,GAAyB,CAA1C,CAFmD;;IAInD,IAAI61C,SAAS,GAAG,CAAhB,EAAmB;AACjB3D,MAAAA,MAAM,CAACn7C,CAAP,IAAYm7C,MAAM,CAACnyC,KAAnB,CAAA;AACAmyC,MAAAA,MAAM,CAACnyC,KAAP,GAAe,CAACmyC,MAAM,CAACnyC,KAAvB,CAAA;AACD,KAAA;;IAED,IAAI+1C,UAAU,GAAG,CAAjB,EAAoB;AAClB5D,MAAAA,MAAM,CAACl7C,CAAP,IAAYk7C,MAAM,CAAClyC,MAAnB,CAAA;AACAkyC,MAAAA,MAAM,CAAClyC,MAAP,GAAgB,CAACkyC,MAAM,CAAClyC,MAAxB,CAAA;AACD,KAAA;;IAED,IAAI+1C,UAAU,GAAGH,oBAAoB,CAAC7+C,CAArB,GAAyB6+C,oBAAoB,CAAC71C,KAA/D,CAAA;IACA,IAAIi2C,UAAU,GAAGJ,oBAAoB,CAAC5+C,CAArB,GAAyB4+C,oBAAoB,CAAC51C,MAA/D,CAAA;IACA,IAAIjJ,CAAC,GAAG8hC,SAAO,CAACqZ,MAAM,CAACn7C,CAAR,EAAW6+C,oBAAoB,CAAC7+C,CAAhC,CAAf,CAAA;AACA,IAAA,IAAIK,EAAE,GAAGuhC,SAAO,CAACuZ,MAAM,CAACn7C,CAAP,GAAWm7C,MAAM,CAACnyC,KAAnB,EAA0Bg2C,UAA1B,CAAhB,CAAA;IACA,IAAI/+C,CAAC,GAAG6hC,SAAO,CAACqZ,MAAM,CAACl7C,CAAR,EAAW4+C,oBAAoB,CAAC5+C,CAAhC,CAAf,CAAA;AACA,IAAA,IAAIK,EAAE,GAAGshC,SAAO,CAACuZ,MAAM,CAACl7C,CAAP,GAAWk7C,MAAM,CAAClyC,MAAnB,EAA2Bg2C,UAA3B,CAAhB,CAAA;AACA,IAAA,IAAIC,QAAQ,GAAG7+C,EAAE,GAAGL,CAApB,CAAA;AACA,IAAA,IAAIm/C,QAAQ,GAAG7+C,EAAE,GAAGL,CAApB,CArBmD;AAsBnD;AACA;AACA;;IAEAk7C,MAAM,CAACn7C,CAAP,GAAWk/C,QAAQ,IAAIl/C,CAAC,GAAGg/C,UAAhB,GAA6B3+C,EAA7B,GAAkCL,CAA7C,CAAA;IACAm7C,MAAM,CAACl7C,CAAP,GAAWk/C,QAAQ,IAAIl/C,CAAC,GAAGg/C,UAAhB,GAA6B3+C,EAA7B,GAAkCL,CAA7C,CAAA;IACAk7C,MAAM,CAACnyC,KAAP,GAAek2C,QAAQ,GAAG,CAAH,GAAO7+C,EAAE,GAAGL,CAAnC,CAAA;IACAm7C,MAAM,CAAClyC,MAAP,GAAgBk2C,QAAQ,GAAG,CAAH,GAAO7+C,EAAE,GAAGL,CAApC,CA7BmD;;IA+BnD,IAAI6+C,SAAS,GAAG,CAAhB,EAAmB;AACjB3D,MAAAA,MAAM,CAACn7C,CAAP,IAAYm7C,MAAM,CAACnyC,KAAnB,CAAA;AACAmyC,MAAAA,MAAM,CAACnyC,KAAP,GAAe,CAACmyC,MAAM,CAACnyC,KAAvB,CAAA;AACD,KAAA;;IAED,IAAI+1C,UAAU,GAAG,CAAjB,EAAoB;AAClB5D,MAAAA,MAAM,CAACl7C,CAAP,IAAYk7C,MAAM,CAAClyC,MAAnB,CAAA;AACAkyC,MAAAA,MAAM,CAAClyC,MAAP,GAAgB,CAACkyC,MAAM,CAAClyC,MAAxB,CAAA;AACD,KAAA;;IAED,OAAOi2C,QAAQ,IAAIC,QAAnB,CAAA;GA1CO;AA4CTvZ,EAAAA,KAAK,EAAE,SAAA,KAAA,CAAUiT,gBAAV,EAA4BsC,MAA5B,EAAoC;AACzC,IAAA,IAAIiE,KAAK,GAAGjE,MAAM,CAACrV,EAAP,IAAaqV,MAAM,CAACt6C,CAApB,GAAwB,CAAxB,GAA4B,CAAC,CAAzC,CADyC;;IAGzC,IAAIu+C,KAAK,GAAG,CAAZ,EAAe;AACb,MAAA,IAAIC,GAAG,GAAGlE,MAAM,CAACt6C,CAAjB,CAAA;AACAs6C,MAAAA,MAAM,CAACt6C,CAAP,GAAWs6C,MAAM,CAACrV,EAAlB,CAAA;MACAqV,MAAM,CAACrV,EAAP,GAAYuZ,GAAZ,CAAA;AACD,KAAA;;IAED,IAAIx+C,CAAC,GAAG+gC,SAAO,CAACuZ,MAAM,CAACt6C,CAAR,EAAWg4C,gBAAgB,CAACh4C,CAA5B,CAAf,CAAA;IACA,IAAIilC,EAAE,GAAGhE,SAAO,CAACqZ,MAAM,CAACrV,EAAR,EAAY+S,gBAAgB,CAAC/S,EAA7B,CAAhB,CAAA;IACAqV,MAAM,CAACt6C,CAAP,GAAWA,CAAX,CAAA;IACAs6C,MAAM,CAACrV,EAAP,GAAYA,EAAZ,CAAA;IACA,IAAIwZ,OAAO,GAAGz+C,CAAC,GAAGilC,EAAJ,GAAS,CAAvB,CAbyC;;IAezC,IAAIsZ,KAAK,GAAG,CAAZ,EAAe;AACb,MAAA,IAAIC,GAAG,GAAGlE,MAAM,CAACt6C,CAAjB,CAAA;AACAs6C,MAAAA,MAAM,CAACt6C,CAAP,GAAWs6C,MAAM,CAACrV,EAAlB,CAAA;MACAqV,MAAM,CAACrV,EAAP,GAAYuZ,GAAZ,CAAA;AACD,KAAA;;AAED,IAAA,OAAOC,OAAP,CAAA;AACD,GAAA;AAlEQ,CAAX,CAAA;AAoEA,IAAI/D,cAAc,GAAG;AACnBqD,EAAAA,WAAW,EAAE,SAAU3oB,WAAAA,CAAAA,WAAV,EAAuBxC,IAAvB,EAA6BqoB,QAA7B,EAAuCX,MAAvC,EAA+C5V,YAA/C,EAA6DyU,cAA7D,EAA6EuF,SAA7E,EAAwFC,QAAxF,EAAkGjJ,QAAlG,EAA4G;AACvH,IAAA,IAAIp0C,IAAI,GAAG,IAAIs9C,MAAJ,CAAS;AAClB50C,MAAAA,KAAK,EAAEC,MAAM,CAAC,EAAD,EAAKqwC,MAAL,CADK;AAElBxmB,MAAAA,EAAE,EAAE,CAAA;AAFc,KAAT,CAAX,CAAA;IAIAxyB,IAAI,CAACu9C,WAAL,GAAmB5D,QAAnB,CAAA;IACA35C,IAAI,CAAC8D,IAAL,GAAY,MAAZ,CAAA;;AAEA,IAAA,IAAI+zC,cAAJ,EAAoB;AAClB,MAAA,IAAIzN,SAAS,GAAGpqC,IAAI,CAAC0I,KAArB,CAAA;AACA,MAAA,IAAI80C,eAAe,GAAGpa,YAAY,GAAG,QAAH,GAAc,OAAhD,CAAA;AACAgH,MAAAA,SAAS,CAACoT,eAAD,CAAT,GAA6B,CAA7B,CAAA;AACD,KAAA;;AAED,IAAA,OAAOx9C,IAAP,CAAA;GAfiB;AAiBnByjC,EAAAA,KAAK,EAAE,SAAU3P,KAAAA,CAAAA,WAAV,EAAuBxC,IAAvB,EAA6BqoB,QAA7B,EAAuCX,MAAvC,EAA+CpV,QAA/C,EAAyDiU,cAAzD,EAAyEuF,SAAzE,EAAoFC,QAApF,EAA8FjJ,QAA9F,EAAwG;IAC7G,IAAIqJ,UAAU,GAAG,CAAC7Z,QAAD,IAAawQ,QAAb,GAAwBsJ,WAAxB,GAAkCC,MAAnD,CAAA;AACA,IAAA,IAAIhI,MAAM,GAAG,IAAI8H,UAAJ,CAAe;AAC1B/0C,MAAAA,KAAK,EAAEswC,MADmB;AAE1BxmB,MAAAA,EAAE,EAAE,CAAA;AAFsB,KAAf,CAAb,CAAA;IAIAmjB,MAAM,CAAC7xC,IAAP,GAAc,MAAd,CAAA;AACA,IAAA,IAAI85C,WAAW,GAAGC,0BAA0B,CAACja,QAAD,CAA5C,CAAA;AACA+R,IAAAA,MAAM,CAACF,qBAAP,GAA+BJ,iCAAiC,CAACuI,WAAD,EAAc;MAC5ErI,UAAU,EAAEkI,UAAU,KAAKC,WAAAA;KADmC,CAAhE,CAR6G;;AAY7G,IAAA,IAAI7F,cAAJ,EAAoB;AAClB,MAAA,IAAIiG,WAAW,GAAGnI,MAAM,CAACjtC,KAAzB,CAAA;AACA,MAAA,IAAI80C,eAAe,GAAG5Z,QAAQ,GAAG,GAAH,GAAS,UAAvC,CAAA;MACA,IAAIma,aAAa,GAAG,EAApB,CAAA;MACAD,WAAW,CAACN,eAAD,CAAX,GAA+B5Z,QAAQ,GAAG,CAAH,GAAOoV,MAAM,CAACr6C,UAArD,CAAA;AACAo/C,MAAAA,aAAa,CAACP,eAAD,CAAb,GAAiCxE,MAAM,CAACwE,eAAD,CAAvC,CAAA;AACA,MAAA,CAACH,QAAQ,GAAGvD,aAAH,GAAiBL,SAA1B,EAAqC9D,MAArC,EAA6C;QAC3CjtC,KAAK,EAAEq1C,aADoC;;AAAA,OAA7C,EAGGlG,cAHH,CAAA,CAAA;AAID,KAAA;;AAED,IAAA,OAAOlC,MAAP,CAAA;AACD,GAAA;AA1CkB,CAArB,CAAA;;AA6CA,SAASqC,kBAAT,CAA4BlkB,WAA5B,EAAyC5F,QAAzC,EAAmD;EACjD,IAAI8vB,kBAAkB,GAAGlqB,WAAW,CAACyB,GAAZ,CAAgB,cAAhB,EAAgC,IAAhC,CAAzB,CAAA;AACA,EAAA,IAAIqF,QAAQ,GAAG1M,QAAQ,CAAC2M,WAAT,EAAf,CAAA;;AAEA,EAAA,IAAIrmB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,IAAA,IAAIspC,kBAAJ,EAAwB;AACtB,MAAA,IAAIpjB,QAAQ,CAACzqB,IAAT,KAAkB,UAAtB,EAAkC;QAChCu2B,IAAI,CAAC,uFAAD,CAAJ,CAAA;AACD,OAAA;;AAED,MAAA,IAAIxY,QAAQ,CAAC/d,IAAT,KAAkB,aAAtB,EAAqC;QACnCu2B,IAAI,CAAC,6EAAD,CAAJ,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;AAED,EAAA,IAAIsX,kBAAkB,IAAIpjB,QAAQ,CAACzqB,IAAT,KAAkB,UAAxC,IAAsD+d,QAAQ,CAAC/d,IAAT,KAAkB,aAA5E,EAA2F;IACzF,OAAO;AACLyqB,MAAAA,QAAQ,EAAEA,QADL;AAEL2hB,MAAAA,SAAS,EAAEruB,QAAQ,CAAC6M,YAAT,CAAsBH,QAAtB,CAAA;KAFb,CAAA;AAID,GAAA;AACF,CAAA;;AAED,SAAS4e,uBAAT,CAAiCzB,eAAjC,EAAkDkG,oBAAlD,EAAwE57C,EAAxE,EAA4E22C,MAA5E,EAAoFW,QAApF,EAA8FvW,YAA9F,EAA4Gia,QAA5G,EAAsH1E,aAAtH,EAAqI;AACnI,EAAA,IAAIuF,YAAJ,CAAA;AACA,EAAA,IAAIC,UAAJ,CAAA;;AAEA,EAAA,IAAI/a,YAAJ,EAAkB;AAChB+a,IAAAA,UAAU,GAAG;MACXtgD,CAAC,EAAEm7C,MAAM,CAACn7C,CADC;MAEXgJ,KAAK,EAAEmyC,MAAM,CAACnyC,KAAAA;KAFhB,CAAA;AAIAq3C,IAAAA,YAAY,GAAG;MACbpgD,CAAC,EAAEk7C,MAAM,CAACl7C,CADG;MAEbgJ,MAAM,EAAEkyC,MAAM,CAAClyC,MAAAA;KAFjB,CAAA;AAID,GATD,MASO;AACLq3C,IAAAA,UAAU,GAAG;MACXrgD,CAAC,EAAEk7C,MAAM,CAACl7C,CADC;MAEXgJ,MAAM,EAAEkyC,MAAM,CAAClyC,MAAAA;KAFjB,CAAA;AAIAo3C,IAAAA,YAAY,GAAG;MACbrgD,CAAC,EAAEm7C,MAAM,CAACn7C,CADG;MAEbgJ,KAAK,EAAEmyC,MAAM,CAACnyC,KAAAA;KAFhB,CAAA;AAID,GAAA;;EAED,IAAI,CAAC8xC,aAAL,EAAoB;AAClB;AACA;AACA,IAAA,CAAC0E,QAAQ,GAAGvD,aAAH,GAAiBL,SAA1B,EAAqCp3C,EAArC,EAAyC;AACvCqG,MAAAA,KAAK,EAAEw1C,YAAAA;AADgC,KAAzC,EAEGD,oBAFH,EAEyBtE,QAFzB,EAEmC,IAFnC,CAAA,CAAA;AAGD,GAAA;;EAED,IAAIyE,kBAAkB,GAAGH,oBAAoB,GAAGlG,eAAe,CAACnd,QAAhB,CAAyBye,KAA5B,GAAoC,IAAjF,CAAA;AACA,EAAA,CAACgE,QAAQ,GAAGvD,aAAH,GAAiBL,SAA1B,EAAqCp3C,EAArC,EAAyC;AACvCqG,IAAAA,KAAK,EAAEy1C,UAAAA;GADT,EAEGC,kBAFH,EAEuBzE,QAFvB,CAAA,CAAA;AAGD,CAAA;;AAED,SAAS0E,uBAAT,CAAiCC,GAAjC,EAAsCC,KAAtC,EAA6C;AAC3C,EAAA,KAAK,IAAIz9C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGy9C,KAAK,CAACn+C,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;IACrC,IAAI,CAACujB,QAAQ,CAACi6B,GAAG,CAACC,KAAK,CAACz9C,CAAD,CAAN,CAAJ,CAAb,EAA8B;AAC5B,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAO,KAAP,CAAA;AACD,CAAA;;AAED,IAAI09C,YAAY,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,OAAX,EAAoB,QAApB,CAAnB,CAAA;AACA,IAAIC,aAAa,GAAG,CAAC,IAAD,EAAO,IAAP,EAAa,GAAb,EAAkB,YAAlB,EAAgC,UAAhC,CAApB,CAAA;AACA,IAAIvF,aAAa,GAAG;EAClBuD,WAAW,EAAE,SAAUzD,WAAAA,CAAAA,MAAV,EAAkB;AAC7B,IAAA,OAAO,CAACqF,uBAAuB,CAACrF,MAAD,EAASwF,YAAT,CAA/B,CAAA;GAFgB;EAIlB/a,KAAK,EAAE,SAAUuV,KAAAA,CAAAA,MAAV,EAAkB;AACvB,IAAA,OAAO,CAACqF,uBAAuB,CAACrF,MAAD,EAASyF,aAAT,CAA/B,CAAA;AACD,GAAA;AANiB,CAApB,CAAA;AAQA,IAAI3gB,SAAS,GAAG;AACd;AACA;AACA2e,EAAAA,WAAW,EAAE,SAAUnrB,WAAAA,CAAAA,IAAV,EAAgBC,SAAhB,EAA2B2D,SAA3B,EAAsC;AACjD,IAAA,IAAI8jB,MAAM,GAAG1nB,IAAI,CAACyH,aAAL,CAAmBxH,SAAnB,CAAb,CAAA;AACA,IAAA,IAAImtB,cAAc,GAAGxpB,SAAS,GAAGypB,YAAY,CAACzpB,SAAD,EAAY8jB,MAAZ,CAAf,GAAqC,CAAnE,CAFiD;;IAIjD,IAAI4F,KAAK,GAAG5F,MAAM,CAACnyC,KAAP,GAAe,CAAf,GAAmB,CAAnB,GAAuB,CAAC,CAApC,CAAA;IACA,IAAIg4C,KAAK,GAAG7F,MAAM,CAAClyC,MAAP,GAAgB,CAAhB,GAAoB,CAApB,GAAwB,CAAC,CAArC,CAAA;IACA,OAAO;MACLjJ,CAAC,EAAEm7C,MAAM,CAACn7C,CAAP,GAAW+gD,KAAK,GAAGF,cAAR,GAAyB,CADlC;MAEL5gD,CAAC,EAAEk7C,MAAM,CAACl7C,CAAP,GAAW+gD,KAAK,GAAGH,cAAR,GAAyB,CAFlC;AAGL73C,MAAAA,KAAK,EAAEmyC,MAAM,CAACnyC,KAAP,GAAe+3C,KAAK,GAAGF,cAHzB;AAIL53C,MAAAA,MAAM,EAAEkyC,MAAM,CAAClyC,MAAP,GAAgB+3C,KAAK,GAAGH,cAAAA;KAJlC,CAAA;GATY;AAgBdjb,EAAAA,KAAK,EAAE,SAAUnS,KAAAA,CAAAA,IAAV,EAAgBC,SAAhB,EAA2B2D,SAA3B,EAAsC;AAC3C,IAAA,IAAI8jB,MAAM,GAAG1nB,IAAI,CAACyH,aAAL,CAAmBxH,SAAnB,CAAb,CAAA;IACA,OAAO;MACL/yB,EAAE,EAAEw6C,MAAM,CAACx6C,EADN;MAELC,EAAE,EAAEu6C,MAAM,CAACv6C,EAFN;MAGLklC,EAAE,EAAEqV,MAAM,CAACrV,EAHN;MAILjlC,CAAC,EAAEs6C,MAAM,CAACt6C,CAJL;MAKLC,UAAU,EAAEq6C,MAAM,CAACr6C,UALd;MAMLC,QAAQ,EAAEo6C,MAAM,CAACp6C,QANZ;MAOLO,SAAS,EAAE65C,MAAM,CAAC75C,SAAAA;KAPpB,CAAA;AASD,GAAA;AA3Ba,CAAhB,CAAA;;AA8BA,SAAS2/C,aAAT,CAAuB9F,MAAvB,EAA+B;AAC7B,EAAA,OAAOA,MAAM,CAACr6C,UAAP,IAAqB,IAArB,IAA6Bq6C,MAAM,CAACp6C,QAAP,IAAmB,IAAhD,IAAwDo6C,MAAM,CAACr6C,UAAP,KAAsBq6C,MAAM,CAACp6C,QAA5F,CAAA;AACD,CAAA;;AAED,SAASi/C,0BAAT,CAAoCja,QAApC,EAA8C;EAC5C,OAAO,UAAUA,QAAV,EAAoB;AACzB,IAAA,IAAImb,UAAU,GAAGnb,QAAQ,GAAG,KAAH,GAAW,OAApC,CAAA;IACA,OAAO,UAAU1iB,QAAV,EAAoB;AACzB,MAAA,QAAQA,QAAR;AACE,QAAA,KAAK,OAAL,CAAA;AACA,QAAA,KAAK,aAAL,CAAA;AACA,QAAA,KAAK,KAAL,CAAA;AACA,QAAA,KAAK,WAAL;UACE,OAAOA,QAAQ,GAAG69B,UAAlB,CAAA;;AAEF,QAAA;AACE,UAAA,OAAO79B,QAAP,CAAA;AARJ,OAAA;KADF,CAAA;GAFK,CAcL0iB,QAdK,CAAP,CAAA;AAeD,CAAA;;AAED,SAAS2V,WAAT,CAAqBl3C,EAArB,EAAyBivB,IAAzB,EAA+BC,SAA/B,EAA0C2D,SAA1C,EAAqD8jB,MAArD,EAA6DllB,WAA7D,EAA0E2a,oBAA1E,EAAgGuQ,OAAhG,EAAyG;EACvG,IAAIt9C,KAAK,GAAG4vB,IAAI,CAACuC,aAAL,CAAmBtC,SAAnB,EAA8B,OAA9B,CAAZ,CAAA;;EAEA,IAAI,CAACytB,OAAL,EAAc;AACZ38C,IAAAA,EAAE,CAACwqC,QAAH,CAAY,GAAZ,EAAiB3X,SAAS,CAACK,GAAV,CAAc,CAAC,WAAD,EAAc,cAAd,CAAd,KAAgD,CAAjE,CAAA,CAAA;AACD,GAAA;;EAEDlzB,EAAE,CAAC0zB,QAAH,CAAYr0B,KAAZ,CAAA,CAAA;AACA,EAAA,IAAIszB,WAAW,GAAGE,SAAS,CAACO,UAAV,CAAqB,QAArB,CAAlB,CAAA;EACAT,WAAW,IAAI3yB,EAAE,CAACkwB,IAAH,CAAQ,QAAR,EAAkByC,WAAlB,CAAf,CAAA;EACA,IAAIiqB,oBAAoB,GAAGD,OAAO,GAAGvQ,oBAAoB,GAAGuK,MAAM,CAACt6C,CAAP,IAAYs6C,MAAM,CAACrV,EAAnB,GAAwB,QAAxB,GAAmC,UAAtC,GAAmDqV,MAAM,CAACp6C,QAAP,IAAmBo6C,MAAM,CAACr6C,UAA1B,GAAuC,UAAvC,GAAoD,YAA9H,GAA6I8vC,oBAAoB,GAAGuK,MAAM,CAAClyC,MAAP,IAAiB,CAAjB,GAAqB,QAArB,GAAgC,KAAnC,GAA2CkyC,MAAM,CAACnyC,KAAP,IAAgB,CAAhB,GAAoB,OAApB,GAA8B,MAA5Q,CAAA;AACA,EAAA,IAAIiuB,iBAAiB,GAAGU,oBAAoB,CAACN,SAAD,CAA5C,CAAA;AACAsB,EAAAA,aAAa,CAACn0B,EAAD,EAAKyyB,iBAAL,EAAwB;AACnC2B,IAAAA,YAAY,EAAE3C,WADqB;AAEnC4C,IAAAA,cAAc,EAAEnF,SAFmB;IAGnCoF,WAAW,EAAEtF,eAAe,CAACyC,WAAW,CAAC3E,OAAZ,EAAD,EAAwBoC,SAAxB,CAHO;IAInCsF,YAAY,EAAEn1B,KAAK,CAACC,IAJe;IAKnCm1B,cAAc,EAAEp1B,KAAK,CAACa,OALa;AAMnC28C,IAAAA,sBAAsB,EAAED,oBAAAA;AANW,GAAxB,CAAb,CAAA;AAQA,EAAA,IAAIhvB,KAAK,GAAG5tB,EAAE,CAAC4V,cAAH,EAAZ,CAAA;;EAEA,IAAI+mC,OAAO,IAAI/uB,KAAf,EAAsB;IACpB,IAAI/O,QAAQ,GAAGgU,SAAS,CAACK,GAAV,CAAc,CAAC,OAAD,EAAU,UAAV,CAAd,CAAf,CAAA;IACAlzB,EAAE,CAACqtC,UAAH,CAAcyP,MAAd,GAAuBj+B,QAAQ,KAAK,QAAb,GAAwB,IAAxB,GAA+B,IAAtD,CAAA;IACAg1B,qBAAqB,CAAC7zC,EAAD,EAAK6e,QAAQ,KAAK,SAAb,GAAyB+9B,oBAAzB,GAAgD/9B,QAArD,EAA+D28B,0BAA0B,CAACpP,oBAAD,CAAzF,EAAiHvZ,SAAS,CAACK,GAAV,CAAc,CAAC,OAAD,EAAU,QAAV,CAAd,CAAjH,CAArB,CAAA;AACD,GAAA;;AAED6pB,EAAAA,sBAAsB,CAACnvB,KAAD,EAAQ6E,iBAAR,EAA2BhB,WAAW,CAACkc,WAAZ,CAAwBze,SAAxB,CAA3B,EAA+D,UAAU+K,KAAV,EAAiB;AACpG,IAAA,OAAO1K,2BAA2B,CAACN,IAAD,EAAOgL,KAAP,CAAlC,CAAA;AACD,GAFqB,CAAtB,CAAA;EAGA,IAAIlH,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,CAAC,UAAD,CAAnB,CAApB,CAAA;EACA+B,mBAAmB,CAAC/0B,EAAD,EAAK+yB,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAL,EAAiCH,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAjC,EAAiEH,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAjE,CAAnB,CAAA;AACAyX,EAAAA,wBAAwB,CAAC3qC,EAAD,EAAK6yB,SAAL,CAAxB,CAAA;;AAEA,EAAA,IAAI4pB,aAAa,CAAC9F,MAAD,CAAjB,EAA2B;AACzB32C,IAAAA,EAAE,CAACX,KAAH,CAASC,IAAT,GAAgB,MAAhB,CAAA;AACAU,IAAAA,EAAE,CAACX,KAAH,CAASG,MAAT,GAAkB,MAAlB,CAAA;AACAiI,IAAAA,MAAI,CAACzH,EAAE,CAACg9C,MAAJ,EAAY,UAAUC,KAAV,EAAiB;MAC/B,IAAIA,KAAK,CAAC59C,KAAV,EAAiB;QACf49C,KAAK,CAAC59C,KAAN,CAAYC,IAAZ,GAAmB29C,KAAK,CAAC59C,KAAN,CAAYG,MAAZ,GAAqB,MAAxC,CAAA;AACD,OAAA;AACF,KAJG,CAAJ,CAAA;AAKD,GAAA;AACF;;;AAGD,SAAS88C,YAAT,CAAsBzpB,SAAtB,EAAiCqqB,SAAjC,EAA4C;AAC1C;EACA,IAAIhL,WAAW,GAAGrf,SAAS,CAACK,GAAV,CAAc,CAAC,WAAD,EAAc,aAAd,CAAd,CAAlB,CAAA;;AAEA,EAAA,IAAI,CAACgf,WAAD,IAAgBA,WAAW,KAAK,MAApC,EAA4C;AAC1C,IAAA,OAAO,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,IAAIvxC,SAAS,GAAGkyB,SAAS,CAACK,GAAV,CAAc,CAAC,WAAD,EAAc,aAAd,CAAd,CAA+C,IAAA,CAA/D,CAR0C;;EAU1C,IAAI1uB,KAAK,GAAG5F,KAAK,CAACs+C,SAAS,CAAC14C,KAAX,CAAL,GAAyBy0C,MAAM,CAACC,SAAhC,GAA4C3+C,IAAI,CAACyC,GAAL,CAASkgD,SAAS,CAAC14C,KAAnB,CAAxD,CAAA;EACA,IAAIC,MAAM,GAAG7F,KAAK,CAACs+C,SAAS,CAACz4C,MAAX,CAAL,GAA0Bw0C,MAAM,CAACC,SAAjC,GAA6C3+C,IAAI,CAACyC,GAAL,CAASkgD,SAAS,CAACz4C,MAAnB,CAA1D,CAAA;EACA,OAAOlK,IAAI,CAAC8iC,GAAL,CAAS18B,SAAT,EAAoB6D,KAApB,EAA2BC,MAA3B,CAAP,CAAA;AACD,CAAA;;AAED,IAAI04C,aAAa;AACjB;AACA,YAAY;EACV,SAASA,aAAT,GAAyB,EAAE;;AAE3B,EAAA,OAAOA,aAAP,CAAA;AACD,CAJD,EAFA,CAAA;;AAQA,IAAIC,SAAS;AACb;AACA,UAAUn+B,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACk+B,SAAD,EAAYn+B,MAAZ,CAAT,CAAA;;EAEA,SAASm+B,SAAT,CAAmB76C,IAAnB,EAAyB;IACvB,IAAI4c,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB7c,IAAlB,CAAA,IAA2B,IAAvC,CAAA;;IAEA4c,KAAK,CAACrR,IAAN,GAAa,UAAb,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDi+B,EAAAA,SAAS,CAACriD,SAAV,CAAoBukC,eAApB,GAAsC,YAAY;IAChD,OAAO,IAAI6d,aAAJ,EAAP,CAAA;GADF,CAAA;;EAIAC,SAAS,CAACriD,SAAV,CAAoBwL,SAApB,GAAgC,UAAUwa,GAAV,EAAe1a,KAAf,EAAsB;AACpD;AACA;AACA,IAAA,IAAI0G,MAAM,GAAG1G,KAAK,CAAC0G,MAAnB,CAAA;IACA,IAAIswC,UAAU,GAAG,IAAA,CAAKA,UAAtB,CAAA;AACA,IAAA,IAAIC,WAAW,GAAG,CAAI,GAAA,IAAA,CAAKD,UAA3B,CAAA;IACA,IAAIE,UAAU,GAAG,EAAjB,CAAA;IACA,IAAIrwB,IAAI,GAAG,EAAX,CAAA;IACA,IAAIswB,QAAQ,GAAG,IAAA,CAAKA,QAApB,CAAA;;AAEA,IAAA,KAAK,IAAI/+C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsO,MAAM,CAAChP,MAA3B,EAAmCU,CAAC,IAAI,CAAxC,EAA2C;AACzCyuB,MAAAA,IAAI,CAACmwB,UAAD,CAAJ,GAAmBG,QAAnB,CAAA;MACAtwB,IAAI,CAACowB,WAAD,CAAJ,GAAoBvwC,MAAM,CAACtO,CAAC,GAAG,CAAL,CAA1B,CAAA;MACA8+C,UAAU,CAACF,UAAD,CAAV,GAAyBtwC,MAAM,CAACtO,CAAC,GAAG4+C,UAAL,CAA/B,CAAA;MACAE,UAAU,CAACD,WAAD,CAAV,GAA0BvwC,MAAM,CAACtO,CAAC,GAAG6+C,WAAL,CAAhC,CAAA;MACAv8B,GAAG,CAACpjB,IAAJ,CAAS4/C,UAAU,CAAC,CAAD,CAAnB,EAAwBA,UAAU,CAAC,CAAD,CAAlC,EAAuCrwB,IAAI,CAAC,CAAD,CAA3C,EAAgDA,IAAI,CAAC,CAAD,CAApD,CAAA,CAAA;AACD,KAAA;GAhBH,CAAA;;AAmBA,EAAA,OAAOkwB,SAAP,CAAA;AACD,CAlCD,CAkCE9sC,IAlCF,CAFA,CAAA;;AAsCA,SAAS0nC,aAAT,CAAqBvmB,WAArB,EAAkCrF,KAAlC,EAAyCqxB,cAAzC,EAAyDh+B,WAAzD,EAAsE;AACpE;AACA,EAAA,IAAIwP,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;EACA,IAAIuwB,UAAU,GAAGpuB,IAAI,CAACwM,SAAL,CAAe,qBAAf,CAAA,GAAwC,CAAxC,GAA4C,CAA7D,CAAA;AACA,EAAA,IAAIiiB,gBAAgB,GAAGzuB,IAAI,CAACwM,SAAL,CAAe,kBAAf,CAAvB,CAAA;AACA,EAAA,IAAI+hB,QAAQ,GAAGvuB,IAAI,CAACwM,SAAL,CAAe,MAAf,CAAf,CAAA;AACA,EAAA,IAAIua,eAAe,GAAGvkB,WAAW,CAACuB,QAAZ,CAAqB,iBAArB,CAAtB,CAAA;AACA,EAAA,IAAI2qB,QAAQ,GAAG1uB,IAAI,CAACwM,SAAL,CAAe,uBAAf,CAAf,CAAA;;AAEA,EAAA,IAAIkiB,QAAJ,EAAc;AACZ,IAAA,IAAIlH,IAAI,GAAG,IAAI2G,SAAJ,CAAc;AACvB/2C,MAAAA,KAAK,EAAE;AACL0G,QAAAA,MAAM,EAAE4wC,QAAAA;OAFa;MAIvBl+B,WAAW,EAAE,CAAC,CAACA,WAJQ;AAKvB8R,MAAAA,MAAM,EAAE,IALe;AAMvBpB,MAAAA,EAAE,EAAE,CAAA;AANmB,KAAd,CAAX,CAAA;IAQAsmB,IAAI,CAAC4G,UAAL,GAAkBA,UAAlB,CAAA;IACA5G,IAAI,CAACiH,gBAAL,GAAwBA,gBAAxB,CAAA;IACAjH,IAAI,CAAC+G,QAAL,GAAgBA,QAAhB,CAAA;AACA/G,IAAAA,IAAI,CAAC/iB,QAAL,CAAcsiB,eAAe,CAAC/iB,YAAhB,EAAd,CAAA,CAAA;IACA7G,KAAK,CAACO,GAAN,CAAU8pB,IAAV,CAAA,CAAA;AACAgH,IAAAA,cAAc,IAAIA,cAAc,CAAC3+C,IAAf,CAAoB23C,IAApB,CAAlB,CAAA;AACD,GAAA;;AAED,EAAA,IAAIz2C,EAAE,GAAG,IAAIo9C,SAAJ,CAAc;AACrB/2C,IAAAA,KAAK,EAAE;AACL0G,MAAAA,MAAM,EAAEkiB,IAAI,CAACwM,SAAL,CAAe,aAAf,CAAA;KAFW;IAIrBhc,WAAW,EAAE,CAAC,CAACA,WAJM;AAKrB0Q,IAAAA,EAAE,EAAE,CAAA;AALiB,GAAd,CAAT,CAAA;EAOAnwB,EAAE,CAACq9C,UAAH,GAAgBA,UAAhB,CAAA;EACAr9C,EAAE,CAAC09C,gBAAH,GAAsBA,gBAAtB,CAAA;EACA19C,EAAE,CAACw9C,QAAH,GAAcA,QAAd,CAAA;EACApxB,KAAK,CAACO,GAAN,CAAU3sB,EAAV,CAAA,CAAA;EACAA,EAAE,CAAC0zB,QAAH,CAAYzE,IAAI,CAAClC,SAAL,CAAe,OAAf,CAAZ,CAAA,CArCoE;;EAuCpEkI,SAAS,CAACj1B,EAAD,CAAT,CAAc8qC,WAAd,GAA4BrZ,WAAW,CAACqZ,WAAxC,CAAA;;AAEA,EAAA,IAAI,CAACrZ,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAL,EAAgC;AAC9BlzB,IAAAA,EAAE,CAACu4C,EAAH,CAAM,WAAN,EAAmBqF,wBAAnB,CAAA,CAAA;AACA59C,IAAAA,EAAE,CAACu4C,EAAH,CAAM,WAAN,EAAmBqF,wBAAnB,CAAA,CAAA;AACD,GAAA;;AAEDH,EAAAA,cAAc,IAAIA,cAAc,CAAC3+C,IAAf,CAAoBkB,EAApB,CAAlB,CAAA;AACD;;;AAGD,IAAI49C,wBAAwB,GAAGC,QAAQ,CAAC,UAAUC,KAAV,EAAiB;EACvD,IAAIC,SAAS,GAAG,IAAhB,CAAA;AACA,EAAA,IAAI7uB,SAAS,GAAG8uB,sBAAsB,CAACD,SAAD,EAAYD,KAAK,CAAC9sC,OAAlB,EAA2B8sC,KAAK,CAAC5sC,OAAjC,CAAtC,CAAA;AACA+jB,EAAAA,SAAS,CAAC8oB,SAAD,CAAT,CAAqB7uB,SAArB,GAAiCA,SAAS,IAAI,CAAb,GAAiBA,SAAjB,GAA6B,IAA9D,CAAA;AACD,CAJsC,EAIpC,EAJoC,EAIhC,KAJgC,CAAvC,CAAA;;AAMA,SAAS8uB,sBAAT,CAAgCD,SAAhC,EAA2CviD,CAA3C,EAA8CC,CAA9C,EAAiD;AAC/C,EAAA,IAAI4hD,UAAU,GAAGU,SAAS,CAACV,UAA3B,CAAA;EACA,IAAIC,WAAW,GAAG,CAAA,GAAID,UAAtB,CAAA;AACA,EAAA,IAAItwC,MAAM,GAAGgxC,SAAS,CAAC13C,KAAV,CAAgB0G,MAA7B,CAAA;AACA,EAAA,IAAI2wC,gBAAgB,GAAGK,SAAS,CAACL,gBAAjC,CAAA;EACA,IAAIH,UAAU,GAAG,EAAjB,CAAA;EACA,IAAIrwB,IAAI,GAAG,EAAX,CAAA;AACA,EAAA,IAAIswB,QAAQ,GAAGO,SAAS,CAACP,QAAzB,CAAA;;AAEA,EAAA,KAAK,IAAI/+C,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGiF,MAAM,CAAChP,MAAP,GAAgB,CAAtC,EAAyCU,CAAC,GAAGqJ,GAA7C,EAAkDrJ,CAAC,EAAnD,EAAuD;AACrD,IAAA,IAAIw/C,EAAE,GAAGx/C,CAAC,GAAG,CAAb,CAAA;AACAyuB,IAAAA,IAAI,CAACmwB,UAAD,CAAJ,GAAmBG,QAAnB,CAAA;IACAtwB,IAAI,CAACowB,WAAD,CAAJ,GAAoBvwC,MAAM,CAACkxC,EAAE,GAAG,CAAN,CAA1B,CAAA;IACAV,UAAU,CAACF,UAAD,CAAV,GAAyBtwC,MAAM,CAACkxC,EAAE,GAAGZ,UAAN,CAA/B,CAAA;IACAE,UAAU,CAACD,WAAD,CAAV,GAA0BvwC,MAAM,CAACkxC,EAAE,GAAGX,WAAN,CAAhC,CAAA;;AAEA,IAAA,IAAIpwB,IAAI,CAACowB,WAAD,CAAJ,GAAoB,CAAxB,EAA2B;AACzBC,MAAAA,UAAU,CAACD,WAAD,CAAV,IAA2BpwB,IAAI,CAACowB,WAAD,CAA/B,CAAA;MACApwB,IAAI,CAACowB,WAAD,CAAJ,GAAoB,CAACpwB,IAAI,CAACowB,WAAD,CAAzB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI9hD,CAAC,IAAI+hD,UAAU,CAAC,CAAD,CAAf,IAAsB/hD,CAAC,IAAI+hD,UAAU,CAAC,CAAD,CAAV,GAAgBrwB,IAAI,CAAC,CAAD,CAA/C,IAAsDzxB,CAAC,IAAI8hD,UAAU,CAAC,CAAD,CAArE,IAA4E9hD,CAAC,IAAI8hD,UAAU,CAAC,CAAD,CAAV,GAAgBrwB,IAAI,CAAC,CAAD,CAAzG,EAA8G;MAC5G,OAAOwwB,gBAAgB,CAACj/C,CAAD,CAAvB,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAO,CAAC,CAAR,CAAA;AACD,CAAA;;AAED,SAAS+4C,qBAAT,CAA+BpL,oBAA/B,EAAqDuK,MAArD,EAA6D3S,KAA7D,EAAoE;AAClE,EAAA,IAAIvC,sBAAsB,CAACuC,KAAD,EAAQ,aAAR,CAA1B,EAAkD;IAChD,IAAI+D,SAAS,GAAG4O,MAAhB,CAAA;AACA,IAAA,IAAIuH,WAAW,GAAGla,KAAK,CAACnD,OAAN,EAAlB,CAAA;IACA,OAAO;MACLrlC,CAAC,EAAE4wC,oBAAoB,GAAGrE,SAAS,CAACvsC,CAAb,GAAiB0iD,WAAW,CAAC1iD,CAD/C;MAELC,CAAC,EAAE2wC,oBAAoB,GAAG8R,WAAW,CAACziD,CAAf,GAAmBssC,SAAS,CAACtsC,CAF/C;MAGL+I,KAAK,EAAE4nC,oBAAoB,GAAGrE,SAAS,CAACvjC,KAAb,GAAqB05C,WAAW,CAAC15C,KAHvD;MAILC,MAAM,EAAE2nC,oBAAoB,GAAG8R,WAAW,CAACz5C,MAAf,GAAwBsjC,SAAS,CAACtjC,MAAAA;KAJhE,CAAA;AAMD,GATD,MASO;AACL,IAAA,IAAIy5C,WAAW,GAAGla,KAAK,CAACnD,OAAN,EAAlB,CAAA;IACA,IAAI4a,WAAW,GAAG9E,MAAlB,CAAA;IACA,OAAO;MACLx6C,EAAE,EAAE+hD,WAAW,CAAC/hD,EADX;MAELC,EAAE,EAAE8hD,WAAW,CAAC9hD,EAFX;MAGLklC,EAAE,EAAE8K,oBAAoB,GAAG8R,WAAW,CAAC5c,EAAf,GAAoBma,WAAW,CAACna,EAHnD;MAILjlC,CAAC,EAAE+vC,oBAAoB,GAAG8R,WAAW,CAAC7hD,CAAf,GAAmBo/C,WAAW,CAACp/C,CAJjD;AAKLC,MAAAA,UAAU,EAAE8vC,oBAAoB,GAAGqP,WAAW,CAACn/C,UAAf,GAA4B,CALvD;MAMLC,QAAQ,EAAE6vC,oBAAoB,GAAGqP,WAAW,CAACl/C,QAAf,GAA0BhC,IAAI,CAACI,EAAL,GAAU,CAAA;KANpE,CAAA;AAQD,GAAA;AACF,CAAA;;AAED,SAAS+7C,kBAAT,CAA4B1S,KAA5B,EAAmCoI,oBAAnC,EAAyDuK,MAAzD,EAAiE;EAC/D,IAAIwH,UAAU,GAAGna,KAAK,CAACl2B,IAAN,KAAe,OAAf,GAAyBwtC,MAAzB,GAAkCL,MAAnD,CAAA;EACA,OAAO,IAAIkD,UAAJ,CAAe;IACpB93C,KAAK,EAAEmxC,qBAAqB,CAACpL,oBAAD,EAAuBuK,MAAvB,EAA+B3S,KAA/B,CADR;AAEpBzS,IAAAA,MAAM,EAAE,IAFY;AAGpBpB,IAAAA,EAAE,EAAE,CAAA;AAHgB,GAAf,CAAP,CAAA;AAKD;;ACpgCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BO,SAAShS,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4BoE,OAA5B,CAAA,CAAA;EACAp2B,SAAS,CAACiyB,mBAAV,CAA8B+N,cAA9B,CAAA,CAAA;EACAhgC,SAAS,CAACmyB,cAAV,CAAyBnyB,SAAS,CAACwyB,QAAV,CAAmByN,MAAnB,CAA0BC,MAAnD,EAA2D7b,OAAA,CAAakU,QAAb,EAAqB,KAArB,CAA3D,EAHiC;;AAKjCv4B,EAAAA,SAAS,CAACmyB,cAAV,CAAyBnyB,SAAS,CAACwyB,QAAV,CAAmByN,MAAnB,CAA0BE,kBAAnD,EAAuEC,uBAAuB,CAAC,KAAD,CAA9F,EALiC;;AAOjCpgC,EAAAA,SAAS,CAACuyB,iBAAV,CAA4BvyB,SAAS,CAACwyB,QAAV,CAAmBC,SAAnB,CAA6BC,SAAzD,EAAoEjB,UAAU,CAAC,KAAD,CAA9E,CAAA,CAAA;AACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAEEzxB,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,iBADiB;AAEvBgwC,IAAAA,KAAK,EAAE,iBAFgB;AAGvB9mB,IAAAA,MAAM,EAAE,QAAA;AAHe,GAAzB,EAIG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4B;AAC7B,IAAA,IAAI0C,aAAa,GAAGK,OAAO,CAACL,aAAR,IAAyB,QAA7C,CAAA;IACA1C,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAEnT,aADU;AAEpBoT,MAAAA,KAAK,EAAE/S,OAAAA;KAFT,EAGG,UAAUgT,cAAV,EAA0B;MAC3B,IAAIhT,OAAO,CAACgO,QAAZ,EAAsB;AACpBgF,QAAAA,cAAc,CAACna,IAAf,CAAoBoa,mBAApB,CAAwCjT,OAAO,CAACgO,QAAhD,CAAA,CAAA;AACD,OAAA;KANH,CAAA,CAAA;GANF,CAAA,CAAA;AAeD;;AChFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA,IAAIj/C,GAAG,GAAGL,IAAI,CAACI,EAAL,GAAU,CAApB,CAAA;AACA,IAAIokD,QAAM,GAAGxkD,IAAI,CAACI,EAAL,GAAU,GAAvB,CAAA;;AAEA,SAASqkD,aAAT,CAAqBvtB,WAArB,EAAkCna,GAAlC,EAAuC;EACrC,OAAOq/B,aAAA,CAAqBllB,WAAW,CAACwtB,kBAAZ,EAArB,EAAuD;AAC5Dz6C,IAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADqD;IAE5DhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;AAFoD,GAAvD,CAAP,CAAA;AAID,CAAA;;AAEM,SAASwhC,iBAAT,CAA2BztB,WAA3B,EAAwCna,GAAxC,EAA6C;AAClD,EAAA,IAAI6nC,QAAQ,GAAGH,aAAW,CAACvtB,WAAD,EAAcna,GAAd,CAA1B,CAAA;AACA,EAAA,IAAI8nC,MAAM,GAAG3tB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;AACA,EAAA,IAAImsB,MAAM,GAAG5tB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;;AAEA,EAAA,IAAI,CAACuP,SAAA,CAAe4c,MAAf,CAAL,EAA6B;AAC3BA,IAAAA,MAAM,GAAG,CAAC,CAAD,EAAIA,MAAJ,CAAT,CAAA;AACD,GAAA;;AAED,EAAA,IAAI,CAAC5c,SAAA,CAAe2c,MAAf,CAAL,EAA6B;AAC3BA,IAAAA,MAAM,GAAG,CAACA,MAAD,EAASA,MAAT,CAAT,CAAA;AACD,GAAA;;AAED,EAAA,IAAI56C,KAAK,GAAG86C,YAAY,CAACH,QAAQ,CAAC36C,KAAV,EAAiB8S,GAAG,CAACmG,QAAJ,EAAjB,CAAxB,CAAA;AACA,EAAA,IAAIhZ,MAAM,GAAG66C,YAAY,CAACH,QAAQ,CAAC16C,MAAV,EAAkB6S,GAAG,CAACoG,SAAJ,EAAlB,CAAzB,CAAA;EACA,IAAIwP,IAAI,GAAG3yB,IAAI,CAAC8iC,GAAL,CAAS74B,KAAT,EAAgBC,MAAhB,CAAX,CAAA;AACA,EAAA,IAAItI,EAAE,GAAGmjD,YAAY,CAACF,MAAM,CAAC,CAAD,CAAP,EAAY56C,KAAZ,CAAZ,GAAiC26C,QAAQ,CAAC3jD,CAAnD,CAAA;AACA,EAAA,IAAIY,EAAE,GAAGkjD,YAAY,CAACF,MAAM,CAAC,CAAD,CAAP,EAAY36C,MAAZ,CAAZ,GAAkC06C,QAAQ,CAAC1jD,CAApD,CAAA;AACA,EAAA,IAAI6lC,EAAE,GAAGge,YAAY,CAACD,MAAM,CAAC,CAAD,CAAP,EAAYnyB,IAAI,GAAG,CAAnB,CAArB,CAAA;AACA,EAAA,IAAI7wB,CAAC,GAAGijD,YAAY,CAACD,MAAM,CAAC,CAAD,CAAP,EAAYnyB,IAAI,GAAG,CAAnB,CAApB,CAAA;EACA,OAAO;AACL/wB,IAAAA,EAAE,EAAEA,EADC;AAELC,IAAAA,EAAE,EAAEA,EAFC;AAGLklC,IAAAA,EAAE,EAAEA,EAHC;AAILjlC,IAAAA,CAAC,EAAEA,CAAAA;GAJL,CAAA;AAMD,CAAA;AACc,SAASkjD,SAAT,CAAmB3T,UAAnB,EAA+B9C,OAA/B,EAAwCxxB,GAAxC,EAA6C;AAC1DwxB,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB5T,UAAzB,EAAqC,UAAUna,WAAV,EAAuB;AAC1D,IAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAIkM,QAAQ,GAAG/J,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAf,CAAA;AACA,IAAA,IAAIkmB,QAAQ,GAAGH,aAAW,CAACvtB,WAAD,EAAcna,GAAd,CAA1B,CAAA;;AAEA,IAAA,IAAIvW,EAAE,GAAGm+C,iBAAiB,CAACztB,WAAD,EAAcna,GAAd,CAA1B;AAAA,QACInb,EAAE,GAAG4E,EAAE,CAAC5E,EADZ;AAAA,QAEIC,EAAE,GAAG2E,EAAE,CAAC3E,EAFZ;AAAA,QAGIC,CAAC,GAAG0E,EAAE,CAAC1E,CAHX;AAAA,QAIIilC,EAAE,GAAGvgC,EAAE,CAACugC,EAJZ,CAAA;;IAMA,IAAIhlC,UAAU,GAAG,CAACm1B,WAAW,CAACyB,GAAZ,CAAgB,YAAhB,CAAD,GAAiC6rB,QAAlD,CAAA;IACA,IAAIU,QAAQ,GAAGhuB,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,IAA8B6rB,QAA7C,CAAA;IACA,IAAIW,cAAc,GAAG,CAArB,CAAA;AACAzwB,IAAAA,IAAI,CAACxnB,IAAL,CAAUuxB,QAAV,EAAoB,UAAUiB,KAAV,EAAiB;AACnC,MAAA,CAACr7B,KAAK,CAACq7B,KAAD,CAAN,IAAiBylB,cAAc,EAA/B,CAAA;KADF,CAAA,CAAA;IAGA,IAAIhQ,GAAG,GAAGzgB,IAAI,CAAC0wB,MAAL,CAAY3mB,QAAZ,CAAV,CAjB0D;;IAmB1D,IAAI4mB,UAAU,GAAGrlD,IAAI,CAACI,EAAL,IAAW+0C,GAAG,IAAIgQ,cAAlB,CAAA,GAAoC,CAArD,CAAA;AACA,IAAA,IAAI5iD,SAAS,GAAG20B,WAAW,CAACyB,GAAZ,CAAgB,WAAhB,CAAhB,CAAA;AACA,IAAA,IAAI2sB,QAAQ,GAAGpuB,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,CAAf,CAAA;IACA,IAAI4sB,gBAAgB,GAAGruB,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,CAAvB,CAtB0D;;AAwB1D,IAAA,IAAI2G,MAAM,GAAG5K,IAAI,CAAC8wB,aAAL,CAAmB/mB,QAAnB,CAAb,CAAA;AACAa,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,CAAZ,CAzB0D;;IA2B1D,IAAImmB,SAAS,GAAGplD,GAAhB,CAAA;IACA,IAAIqlD,0BAA0B,GAAG,CAAjC,CAAA;IACA,IAAIC,YAAY,GAAG5jD,UAAnB,CAAA;AACA,IAAA,IAAIqhC,GAAG,GAAG7gC,SAAS,GAAG,CAAH,GAAO,CAAC,CAA3B,CAAA;IACAmyB,IAAI,CAACqgB,SAAL,CAAe;AACb6P,MAAAA,QAAQ,EAAEA,QADG;AAEb9iD,MAAAA,CAAC,EAAEA,CAAAA;KAFL,CAAA,CAAA;IAIA4yB,IAAI,CAACxnB,IAAL,CAAUuxB,QAAV,EAAoB,UAAUiB,KAAV,EAAiBxP,GAAjB,EAAsB;AACxC,MAAA,IAAIypB,KAAJ,CAAA;;AAEA,MAAA,IAAIt1C,KAAK,CAACq7B,KAAD,CAAT,EAAkB;AAChBhL,QAAAA,IAAI,CAACogB,aAAL,CAAmB5kB,GAAnB,EAAwB;AACtBypB,UAAAA,KAAK,EAAEha,GADe;AAEtB59B,UAAAA,UAAU,EAAE49B,GAFU;AAGtB39B,UAAAA,QAAQ,EAAE29B,GAHY;AAItBp9B,UAAAA,SAAS,EAAEA,SAJW;AAKtBX,UAAAA,EAAE,EAAEA,EALkB;AAMtBC,UAAAA,EAAE,EAAEA,EANkB;AAOtBklC,UAAAA,EAAE,EAAEA,EAPkB;AAQtBjlC,UAAAA,CAAC,EAAEwjD,QAAQ,GAAG3lB,GAAH,GAAS79B,CAAAA;SARtB,CAAA,CAAA;AAUA,QAAA,OAAA;AACD,OAfuC;;;MAkBxC,IAAIwjD,QAAQ,KAAK,MAAjB,EAAyB;QACvB3L,KAAK,GAAGxE,GAAG,KAAK,CAAR,IAAaoQ,gBAAb,GAAgCF,UAAhC,GAA6C3lB,KAAK,GAAG2lB,UAA7D,CAAA;AACD,OAFD,MAEO;QACL1L,KAAK,GAAGt5C,GAAG,GAAG8kD,cAAd,CAAA;AACD,OAAA;;MAED,IAAIxL,KAAK,GAAGuL,QAAZ,EAAsB;AACpBvL,QAAAA,KAAK,GAAGuL,QAAR,CAAA;AACAO,QAAAA,SAAS,IAAIP,QAAb,CAAA;AACD,OAHD,MAGO;AACLQ,QAAAA,0BAA0B,IAAIhmB,KAA9B,CAAA;AACD,OAAA;;AAED,MAAA,IAAI19B,QAAQ,GAAG2jD,YAAY,GAAGviB,GAAG,GAAGuW,KAApC,CAAA;AACAjlB,MAAAA,IAAI,CAACogB,aAAL,CAAmB5kB,GAAnB,EAAwB;AACtBypB,QAAAA,KAAK,EAAEA,KADe;AAEtB53C,QAAAA,UAAU,EAAE4jD,YAFU;AAGtB3jD,QAAAA,QAAQ,EAAEA,QAHY;AAItBO,QAAAA,SAAS,EAAEA,SAJW;AAKtBX,QAAAA,EAAE,EAAEA,EALkB;AAMtBC,QAAAA,EAAE,EAAEA,EANkB;AAOtBklC,QAAAA,EAAE,EAAEA,EAPkB;AAQtBjlC,QAAAA,CAAC,EAAEwjD,QAAQ,GAAGM,WAAS,CAAClmB,KAAD,EAAQJ,MAAR,EAAgB,CAACyH,EAAD,EAAKjlC,CAAL,CAAhB,CAAZ,GAAuCA,CAAAA;OARpD,CAAA,CAAA;AAUA6jD,MAAAA,YAAY,GAAG3jD,QAAf,CAAA;AACD,KA3CD,EAnC0D;AA+E1D;;AAEA,IAAA,IAAIyjD,SAAS,GAAGplD,GAAZ,IAAmB8kD,cAAvB,EAAuC;AACrC;AACA;MACA,IAAIM,SAAS,IAAI,IAAjB,EAAuB;AACrB,QAAA,IAAII,OAAO,GAAGxlD,GAAG,GAAG8kD,cAApB,CAAA;QACAzwB,IAAI,CAACxnB,IAAL,CAAUuxB,QAAV,EAAoB,UAAUiB,KAAV,EAAiBxP,GAAjB,EAAsB;AACxC,UAAA,IAAI,CAAC7rB,KAAK,CAACq7B,KAAD,CAAV,EAAmB;AACjB,YAAA,IAAIomB,QAAQ,GAAGpxB,IAAI,CAACyH,aAAL,CAAmBjM,GAAnB,CAAf,CAAA;YACA41B,QAAQ,CAACnM,KAAT,GAAiBkM,OAAjB,CAAA;YACAC,QAAQ,CAAC/jD,UAAT,GAAsBA,UAAU,GAAGqhC,GAAG,GAAGlT,GAAN,GAAY21B,OAA/C,CAAA;AACAC,YAAAA,QAAQ,CAAC9jD,QAAT,GAAoBD,UAAU,GAAGqhC,GAAG,IAAIlT,GAAG,GAAG,CAAV,CAAH,GAAkB21B,OAAnD,CAAA;AACD,WAAA;SANH,CAAA,CAAA;AAQD,OAVD,MAUO;QACLR,UAAU,GAAGI,SAAS,GAAGC,0BAAzB,CAAA;AACAC,QAAAA,YAAY,GAAG5jD,UAAf,CAAA;QACA2yB,IAAI,CAACxnB,IAAL,CAAUuxB,QAAV,EAAoB,UAAUiB,KAAV,EAAiBxP,GAAjB,EAAsB;AACxC,UAAA,IAAI,CAAC7rB,KAAK,CAACq7B,KAAD,CAAV,EAAmB;AACjB,YAAA,IAAIqmB,QAAQ,GAAGrxB,IAAI,CAACyH,aAAL,CAAmBjM,GAAnB,CAAf,CAAA;AACA,YAAA,IAAIypB,KAAK,GAAGoM,QAAQ,CAACpM,KAAT,KAAmBuL,QAAnB,GAA8BA,QAA9B,GAAyCxlB,KAAK,GAAG2lB,UAA7D,CAAA;YACAU,QAAQ,CAAChkD,UAAT,GAAsB4jD,YAAtB,CAAA;AACAI,YAAAA,QAAQ,CAAC/jD,QAAT,GAAoB2jD,YAAY,GAAGviB,GAAG,GAAGuW,KAAzC,CAAA;YACAgM,YAAY,IAAIviB,GAAG,GAAGuW,KAAtB,CAAA;AACD,WAAA;SAPH,CAAA,CAAA;AASD,OAAA;AACF,KAAA;GA3GH,CAAA,CAAA;AA6GD;;AChMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASqM,YAAT,CAAoB3U,UAApB,EAAgC;EAC7C,OAAO;AACLA,IAAAA,UAAU,EAAEA,UADP;AAEL5wC,IAAAA,KAAK,EAAE,SAAA,KAAA,CAAUy2B,WAAV,EAAuBqX,OAAvB,EAAgC;AACrC,MAAA,IAAI0X,YAAY,GAAG1X,OAAO,CAAC2X,cAAR,CAAuB;AACxC9B,QAAAA,QAAQ,EAAE,QAAA;AAD8B,OAAvB,CAAnB,CAAA;;AAIA,MAAA,IAAI,CAAC6B,YAAD,IAAiB,CAACA,YAAY,CAACziD,MAAnC,EAA2C;AACzC,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIkxB,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACAmC,MAAAA,IAAI,CAACyxB,UAAL,CAAgB,UAAUj2B,GAAV,EAAe;QAC7B,IAAIhpB,IAAI,GAAGwtB,IAAI,CAACyF,OAAL,CAAajK,GAAb,CAAX,CAD6B;;AAG7B,QAAA,KAAK,IAAIhsB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+hD,YAAY,CAACziD,MAAjC,EAAyCU,CAAC,EAA1C,EAA8C;AAC5C;UACA,IAAI,CAAC+hD,YAAY,CAAC/hD,CAAD,CAAZ,CAAgBkiD,UAAhB,CAA2Bl/C,IAA3B,CAAL,EAAuC;AACrC,YAAA,OAAO,KAAP,CAAA;AACD,WAAA;AACF,SAAA;;AAED,QAAA,OAAO,IAAP,CAAA;OAVF,CAAA,CAAA;AAYD,KAAA;GAxBH,CAAA;AA0BD;;ACrED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA,IAAIs9C,QAAM,GAAGxkD,IAAI,CAACI,EAAL,GAAU,GAAvB,CAAA;;AAEA,SAASimD,gBAAT,CAA0B1lC,IAA1B,EAAgC/e,EAAhC,EAAoCC,EAApC,EAAwCC,CAAxC,EAA2CshC,GAA3C,EAAgDlc,SAAhD,EAA2DC,UAA3D,EAAuEm/B,QAAvE,EAAiFC,OAAjF,EAA0FC,SAA1F,EAAqG;AACnG,EAAA,IAAI7lC,IAAI,CAACnd,MAAL,GAAc,CAAlB,EAAqB;AACnB,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,CAAA;;EAEA,SAASijD,uCAAT,CAAiDC,IAAjD,EAAuD;AACrD,IAAA,IAAIC,EAAE,GAAGD,IAAI,CAACC,EAAd,CAAA;AACA,IAAA,IAAIC,GAAG,GAAGD,EAAE,GAAGA,EAAf,CAAA;;AAEA,IAAA,KAAK,IAAIziD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwiD,IAAI,CAAC/lC,IAAL,CAAUnd,MAA9B,EAAsCU,CAAC,EAAvC,EAA2C;AACzC,MAAA,IAAI6O,IAAI,GAAG2zC,IAAI,CAAC/lC,IAAL,CAAUzc,CAAV,CAAX,CAAA;AACA,MAAA,IAAI+2B,EAAE,GAAGj7B,IAAI,CAACyC,GAAL,CAASsQ,IAAI,CAACsgB,KAAL,CAAWnyB,CAAX,GAAeW,EAAxB,CAAT,CAFyC;;AAIzC,MAAA,IAAIglD,EAAE,GAAG/kD,CAAC,GAAGiR,IAAI,CAACxF,GAAlB,CAAA;AACA,MAAA,IAAIu5C,GAAG,GAAGD,EAAE,GAAGA,EAAf,CALyC;;MAOzC,IAAI7rB,EAAE,GAAGh7B,IAAI,CAAC0kC,IAAL,CAAU,CAAC,IAAI1kC,IAAI,CAACyC,GAAL,CAASw4B,EAAE,GAAGA,EAAL,GAAU2rB,GAAnB,CAAL,IAAgCE,GAA1C,CAAT,CAAA;MACA,IAAIC,IAAI,GAAGnlD,EAAE,GAAG,CAACo5B,EAAE,GAAGjoB,IAAI,CAACi0C,IAAX,IAAmB5jB,GAAnC,CAAA;MACA,IAAI6jB,MAAM,GAAGF,IAAI,GAAGh0C,IAAI,CAACsgB,KAAL,CAAWpyB,CAA/B,CAAA;MACA,IAAIimD,cAAc,GAAGn0C,IAAI,CAACo0C,eAAL,GAAuBF,MAAM,GAAG7jB,GAArD,CAVyC;;AAYzCgkB,MAAAA,kBAAkB,CAACr0C,IAAD,EAAOm0C,cAAP,EAAuB,IAAvB,CAAlB,CAAA;AACAn0C,MAAAA,IAAI,CAACsgB,KAAL,CAAWpyB,CAAX,GAAe8lD,IAAf,CAAA;AACD,KAAA;AACF,GA1BkG;;;EA6BnG,SAASM,YAAT,CAAsBC,KAAtB,EAA6B;AAC3B;AACA,IAAA,IAAIC,OAAO,GAAG;AACZ5mC,MAAAA,IAAI,EAAE,EADM;AAEZ+mB,MAAAA,IAAI,EAAE,CAAA;KAFR,CAAA;AAIA,IAAA,IAAI8f,UAAU,GAAG;AACf7mC,MAAAA,IAAI,EAAE,EADS;AAEf+mB,MAAAA,IAAI,EAAE,CAAA;KAFR,CAAA;;AAKA,IAAA,KAAK,IAAIxjC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGojD,KAAK,CAAC9jD,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;MACrC,IAAIojD,KAAK,CAACpjD,CAAD,CAAL,CAASujD,YAAT,KAA0B,MAA9B,EAAsC;AACpC,QAAA,SAAA;AACD,OAAA;;AAED,MAAA,IAAI10C,IAAI,GAAGu0C,KAAK,CAACpjD,CAAD,CAAhB,CAAA;AACA,MAAA,IAAIwiD,IAAI,GAAG3zC,IAAI,CAACsgB,KAAL,CAAWnyB,CAAX,GAAeW,EAAf,GAAoB2lD,UAApB,GAAiCD,OAA5C,CAAA;AACA,MAAA,IAAItsB,EAAE,GAAGj7B,IAAI,CAACyC,GAAL,CAASsQ,IAAI,CAACsgB,KAAL,CAAWnyB,CAAX,GAAeW,EAAxB,CAAT,CAAA;;AAEA,MAAA,IAAIo5B,EAAE,IAAIyrB,IAAI,CAAChf,IAAf,EAAqB;AACnB,QAAA,IAAI1M,EAAE,GAAGjoB,IAAI,CAACsgB,KAAL,CAAWpyB,CAAX,GAAeW,EAAf,GAAoBmR,IAAI,CAACi0C,IAAL,GAAY5jB,GAAzC,CADmB;;QAGnB,IAAIyjB,EAAE,GAAG/kD,CAAC,GAAGiR,IAAI,CAACxF,GAAlB,CAHmB;;AAKnB,QAAA,IAAIo5C,EAAE,GAAG3mD,IAAI,CAACyC,GAAL,CAASu4B,EAAT,CAAA,GAAe6rB,EAAf,GAAoB7mD,IAAI,CAAC0kC,IAAL,CAAUzJ,EAAE,GAAGA,EAAL,IAAW,CAAID,GAAAA,EAAE,GAAGA,EAAL,GAAU6rB,EAAV,GAAeA,EAA9B,CAAV,CAApB,GAAmEA,EAA5E,CAAA;QACAH,IAAI,CAACC,EAAL,GAAUA,EAAV,CAAA;QACAD,IAAI,CAAChf,IAAL,GAAYzM,EAAZ,CAAA;AACD,OAAA;;AAEDyrB,MAAAA,IAAI,CAAC/lC,IAAL,CAAUpc,IAAV,CAAewO,IAAf,CAAA,CAAA;AACD,KAAA;;IAED0zC,uCAAuC,CAACc,OAAD,CAAvC,CAAA;IACAd,uCAAuC,CAACe,UAAD,CAAvC,CAAA;AACD,GAAA;;AAED,EAAA,IAAIj6C,GAAG,GAAGoT,IAAI,CAACnd,MAAf,CAAA;;EAEA,KAAK,IAAIU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,EAAyBrJ,CAAC,EAA1B,EAA8B;AAC5B,IAAA,IAAIyc,IAAI,CAACzc,CAAD,CAAJ,CAAQogB,QAAR,KAAqB,OAArB,IAAgC3D,IAAI,CAACzc,CAAD,CAAJ,CAAQujD,YAAR,KAAyB,WAA7D,EAA0E;MACxE,IAAIzsB,EAAE,GAAGra,IAAI,CAACzc,CAAD,CAAJ,CAAQmvB,KAAR,CAAcpyB,CAAd,GAAkBulD,SAA3B,CAAA;MACA7lC,IAAI,CAACzc,CAAD,CAAJ,CAAQwjD,UAAR,CAAmB,CAAnB,CAAA,CAAsB,CAAtB,CAAA,IAA4B1sB,EAA5B,CAAA;MACAra,IAAI,CAACzc,CAAD,CAAJ,CAAQmvB,KAAR,CAAcpyB,CAAd,GAAkBulD,SAAlB,CAAA;AACD,KAAA;AACF,GAAA;;EAED,IAAImB,cAAc,CAAChnC,IAAD,EAAO4lC,OAAP,EAAgBA,OAAO,GAAGp/B,UAA1B,CAAlB,EAAyD;IACvDkgC,YAAY,CAAC1mC,IAAD,CAAZ,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASinC,YAAT,CAAsBC,eAAtB,EAAuCjmD,EAAvC,EAA2CC,EAA3C,EAA+CC,CAA/C,EAAkDolB,SAAlD,EAA6DC,UAA7D,EAAyEm/B,QAAzE,EAAmFC,OAAnF,EAA4F;EAC1F,IAAIuB,QAAQ,GAAG,EAAf,CAAA;EACA,IAAIC,SAAS,GAAG,EAAhB,CAAA;AACA,EAAA,IAAIC,SAAS,GAAGtJ,MAAM,CAACC,SAAvB,CAAA;AACA,EAAA,IAAIsJ,UAAU,GAAG,CAACvJ,MAAM,CAACC,SAAzB,CAAA;;AAEA,EAAA,KAAK,IAAIz6C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2jD,eAAe,CAACrkD,MAApC,EAA4CU,CAAC,EAA7C,EAAiD;AAC/C,IAAA,IAAImvB,KAAK,GAAGw0B,eAAe,CAAC3jD,CAAD,CAAf,CAAmBmvB,KAA/B,CAAA;;AAEA,IAAA,IAAI60B,gBAAgB,CAACL,eAAe,CAAC3jD,CAAD,CAAhB,CAApB,EAA0C;AACxC,MAAA,SAAA;AACD,KAAA;;AAED,IAAA,IAAImvB,KAAK,CAACpyB,CAAN,GAAUW,EAAd,EAAkB;MAChBomD,SAAS,GAAGhoD,IAAI,CAAC8iC,GAAL,CAASklB,SAAT,EAAoB30B,KAAK,CAACpyB,CAA1B,CAAZ,CAAA;AACA6mD,MAAAA,QAAQ,CAACvjD,IAAT,CAAcsjD,eAAe,CAAC3jD,CAAD,CAA7B,CAAA,CAAA;AACD,KAHD,MAGO;MACL+jD,UAAU,GAAGjoD,IAAI,CAAC0iB,GAAL,CAASulC,UAAT,EAAqB50B,KAAK,CAACpyB,CAA3B,CAAb,CAAA;AACA8mD,MAAAA,SAAS,CAACxjD,IAAV,CAAesjD,eAAe,CAAC3jD,CAAD,CAA9B,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,KAAK,IAAIA,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2jD,eAAe,CAACrkD,MAApC,EAA4CU,CAAC,EAA7C,EAAiD;AAC/C,IAAA,IAAIk4C,MAAM,GAAGyL,eAAe,CAAC3jD,CAAD,CAA5B,CAAA;;IAEA,IAAI,CAACgkD,gBAAgB,CAAC9L,MAAD,CAAjB,IAA6BA,MAAM,CAACsL,UAAxC,EAAoD;AAClD,MAAA,IAAItL,MAAM,CAAC+L,eAAP,IAA0B,IAA9B,EAAoC;AAClC,QAAA,SAAA;AACD,OAAA;;AAED,MAAA,IAAI90B,KAAK,GAAG+oB,MAAM,CAAC/oB,KAAnB,CAAA;AACA,MAAA,IAAIq0B,UAAU,GAAGtL,MAAM,CAACsL,UAAxB,CAAA;MACA,IAAIP,eAAe,GAAG,KAAK,CAA3B,CAAA;;AAEA,MAAA,IAAI/K,MAAM,CAACqL,YAAP,KAAwB,MAA5B,EAAoC;AAClC,QAAA,IAAIp0B,KAAK,CAACpyB,CAAN,GAAUW,EAAd,EAAkB;AAChBulD,UAAAA,eAAe,GAAGO,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAA,GAAmBtL,MAAM,CAACgM,aAA1B,GAA0C9B,QAA1C,GAAqDlK,MAAM,CAACiM,YAA9E,CAAA;AACD,SAFD,MAEO;AACLlB,UAAAA,eAAe,GAAGb,QAAQ,GAAGp/B,SAAX,GAAuBk1B,MAAM,CAACiM,YAA9B,GAA6CX,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAA7C,GAAgEtL,MAAM,CAACgM,aAAzF,CAAA;AACD,SAAA;AACF,OAND,MAMO,IAAIhM,MAAM,CAACqL,YAAP,KAAwB,WAA5B,EAAyC;AAC9C,QAAA,IAAIp0B,KAAK,CAACpyB,CAAN,GAAUW,EAAd,EAAkB;AAChBulD,UAAAA,eAAe,GAAGa,SAAS,GAAG1B,QAAZ,GAAuBlK,MAAM,CAACkM,WAAhD,CAAA;AACD,SAFD,MAEO;UACLnB,eAAe,GAAGb,QAAQ,GAAGp/B,SAAX,GAAuB+gC,UAAvB,GAAoC7L,MAAM,CAACkM,WAA7D,CAAA;AACD,SAAA;AACF,OANM,MAMA;AACL,QAAA,IAAIj1B,KAAK,CAACpyB,CAAN,GAAUW,EAAd,EAAkB;UAChBulD,eAAe,GAAG9zB,KAAK,CAACpyB,CAAN,GAAUqlD,QAAV,GAAqBlK,MAAM,CAACkM,WAA9C,CAAA;AACD,SAFD,MAEO;UACLnB,eAAe,GAAGb,QAAQ,GAAGp/B,SAAX,GAAuBmM,KAAK,CAACpyB,CAA7B,GAAiCm7C,MAAM,CAACkM,WAA1D,CAAA;AACD,SAAA;AACF,OAAA;;MAEDlM,MAAM,CAAC+K,eAAP,GAAyBA,eAAzB,CAAA;AACAC,MAAAA,kBAAkB,CAAChL,MAAD,EAAS+K,eAAT,CAAlB,CAAA;AACD,KAAA;AACF,GAAA;;EAEDd,gBAAgB,CAAC0B,SAAD,EAAYnmD,EAAZ,EAAgBC,EAAhB,EAAoBC,CAApB,EAAuB,CAAvB,EAA0BolB,SAA1B,EAAqCC,UAArC,EAAiDm/B,QAAjD,EAA2DC,OAA3D,EAAoE0B,UAApE,CAAhB,CAAA;EACA5B,gBAAgB,CAACyB,QAAD,EAAWlmD,EAAX,EAAeC,EAAf,EAAmBC,CAAnB,EAAsB,CAAC,CAAvB,EAA0BolB,SAA1B,EAAqCC,UAArC,EAAiDm/B,QAAjD,EAA2DC,OAA3D,EAAoEyB,SAApE,CAAhB,CAAA;;AAEA,EAAA,KAAK,IAAI9jD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2jD,eAAe,CAACrkD,MAApC,EAA4CU,CAAC,EAA7C,EAAiD;AAC/C,IAAA,IAAIk4C,MAAM,GAAGyL,eAAe,CAAC3jD,CAAD,CAA5B,CAAA;;IAEA,IAAI,CAACgkD,gBAAgB,CAAC9L,MAAD,CAAjB,IAA6BA,MAAM,CAACsL,UAAxC,EAAoD;AAClD,MAAA,IAAIr0B,KAAK,GAAG+oB,MAAM,CAAC/oB,KAAnB,CAAA;AACA,MAAA,IAAIq0B,UAAU,GAAGtL,MAAM,CAACsL,UAAxB,CAAA;AACA,MAAA,IAAIa,aAAa,GAAGnM,MAAM,CAACqL,YAAP,KAAwB,MAA5C,CAAA;AACA,MAAA,IAAIvhC,OAAO,GAAGmN,KAAK,CAACvuB,KAAN,CAAYohB,OAA1B,CAAA;AACA,MAAA,IAAIsiC,QAAQ,GAAGtiC,OAAO,GAAGA,OAAO,CAAC,CAAD,CAAP,GAAaA,OAAO,CAAC,CAAD,CAAvB,GAA6B,CAAnD,CALkD;;MAOlD,IAAIuiC,aAAa,GAAGp1B,KAAK,CAACvuB,KAAN,CAAY4c,eAAZ,GAA8B,CAA9B,GAAkC8mC,QAAtD,CAAA;MACA,IAAIE,aAAa,GAAGtM,MAAM,CAACh5C,IAAP,CAAY6G,KAAZ,GAAoBw+C,aAAxC,CAAA;AACA,MAAA,IAAIE,IAAI,GAAGjB,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAA,GAAmBA,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAA9B,CAAA;;AAEA,MAAA,IAAIa,aAAJ,EAAmB;AACjB,QAAA,IAAIl1B,KAAK,CAACpyB,CAAN,GAAUW,EAAd,EAAkB;AAChB8lD,UAAAA,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,IAAmBpB,QAAQ,GAAGlK,MAAM,CAACiM,YAAlB,GAAiCK,aAAjC,GAAiDtM,MAAM,CAACgM,aAA3E,CAAA;AACD,SAFD,MAEO;AACLV,UAAAA,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAA,GAAmBpB,QAAQ,GAAGp/B,SAAX,GAAuBk1B,MAAM,CAACiM,YAA9B,GAA6CK,aAA7C,GAA6DtM,MAAM,CAACgM,aAAvF,CAAA;AACD,SAAA;AACF,OAND,MAMO;AACL,QAAA,IAAI/0B,KAAK,CAACpyB,CAAN,GAAUW,EAAd,EAAkB;AAChB8lD,UAAAA,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAA,GAAmBr0B,KAAK,CAACpyB,CAAN,GAAUm7C,MAAM,CAACgM,aAApC,CAAA;AACD,SAFD,MAEO;AACLV,UAAAA,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAA,GAAmBr0B,KAAK,CAACpyB,CAAN,GAAUm7C,MAAM,CAACgM,aAApC,CAAA;AACD,SAAA;;AAEDV,QAAAA,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAA,GAAmBA,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,IAAmBiB,IAAtC,CAAA;AACD,OAAA;;AAEDjB,MAAAA,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAmBA,GAAAA,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAmBr0B,GAAAA,KAAK,CAACnyB,CAA5C,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASkmD,kBAAT,CAA4BhL,MAA5B,EAAoCwM,cAApC,EAAoDC,gBAApD,EAAsE;AACpE,EAAA,IAAIA,gBAAgB,KAAK,KAAK,CAA9B,EAAiC;AAC/BA,IAAAA,gBAAgB,GAAG,KAAnB,CAAA;AACD,GAAA;;AAED,EAAA,IAAIzM,MAAM,CAAC+L,eAAP,IAA0B,IAA9B,EAAoC;AAClC;AACA,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI90B,KAAK,GAAG+oB,MAAM,CAAC/oB,KAAnB,CAAA;AACA,EAAA,IAAIvuB,KAAK,GAAGuuB,KAAK,CAACvuB,KAAlB,CAAA;AACA,EAAA,IAAIgkD,QAAQ,GAAG1M,MAAM,CAACh5C,IAAtB,CAAA;AACA,EAAA,IAAIyd,OAAO,GAAG/b,KAAK,CAAC4c,eAApB,CAAA;AACA,EAAA,IAAIwE,OAAO,GAAGphB,KAAK,CAACohB,OAApB,CAAA;AACA,EAAA,IAAIsiC,QAAQ,GAAGtiC,OAAO,GAAGA,OAAO,CAAC,CAAD,CAAP,GAAaA,OAAO,CAAC,CAAD,CAAvB,GAA6B,CAAnD,CAAA;AACA,EAAA,IAAI6iC,QAAQ,GAAGjkD,KAAK,CAACikD,QAArB,CAhBoE;;EAkBpE,IAAIC,aAAa,GAAGF,QAAQ,CAAC7+C,KAAT,IAAkB4W,OAAO,GAAG,CAAH,GAAO2nC,QAAhC,CAApB,CAAA;;AAEA,EAAA,IAAII,cAAc,GAAGI,aAAjB,IAAkCH,gBAAtC,EAAwD;AACtD,IAAA,IAAII,SAAS,GAAGH,QAAQ,CAAC5+C,MAAzB,CAAA;;IAEA,IAAI6+C,QAAQ,IAAIA,QAAQ,CAACnzC,KAAT,CAAe,OAAf,CAAhB,EAAyC;AACvC;AACA;AACAyd,MAAAA,KAAK,CAAChB,QAAN,CAAe,iBAAf,EAAkC,IAAlC,EAHuC;;MAKvCgB,KAAK,CAAChB,QAAN,CAAe,OAAf,EAAwBu2B,cAAc,GAAGJ,QAAzC,CAAA,CALuC;;AAOvC,MAAA,IAAIU,SAAS,GAAG71B,KAAK,CAAC81B,eAAN,EAAhB,CAAA;AACA91B,MAAAA,KAAK,CAAChB,QAAN,CAAe,OAAf,EAAwBryB,IAAI,CAACopD,IAAL,CAAUF,SAAS,CAACj/C,KAApB,CAAxB,CAAA,CAAA;AACAopB,MAAAA,KAAK,CAAChB,QAAN,CAAe,iBAAf,EAAkCxR,OAAlC,CAAA,CAAA;AACD,KAVD,MAUO;AACL,MAAA,IAAIwoC,mBAAmB,GAAGT,cAAc,GAAGJ,QAA3C,CAAA;AACA,MAAA,IAAIc,QAAQ,GAAGV,cAAc,GAAGI,aAAjB;AAAA,QACbK,mBADa;AAEf;AACAR,MAAAA,gBAAgB,GAAGQ,mBAAmB,GAAGjN,MAAM,CAACmN,kBAA7B;AACnB;AACA;AAFmB,QAGjB,IAHiB;AAInB;AACA;AALmB,QAMjBF,mBANc;AAOhB;MACA,IAXA,CAAA;AAYAh2B,MAAAA,KAAK,CAAChB,QAAN,CAAe,OAAf,EAAwBi3B,QAAxB,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIE,OAAO,GAAGn2B,KAAK,CAAC81B,eAAN,EAAd,CAAA;AACAL,IAAAA,QAAQ,CAAC7+C,KAAT,GAAiBu/C,OAAO,CAACv/C,KAAzB,CAAA;IACA,IAAIkc,MAAM,GAAG,CAACkN,KAAK,CAACvuB,KAAN,CAAYqhB,MAAZ,IAAsB,CAAvB,IAA4B,GAAzC,CAAA;AACA2iC,IAAAA,QAAQ,CAAC5+C,MAAT,GAAkBs/C,OAAO,CAACt/C,MAAR,GAAiBic,MAAnC,CAAA;IACA2iC,QAAQ,CAAC5nD,CAAT,IAAc,CAAC4nD,QAAQ,CAAC5+C,MAAT,GAAkB++C,SAAnB,IAAgC,CAA9C,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASf,gBAAT,CAA0BhH,WAA1B,EAAuC;AACrC;AACA,EAAA,OAAOA,WAAW,CAAC58B,QAAZ,KAAyB,QAAhC,CAAA;AACD,CAAA;;AAEc,SAASmlC,cAAT,CAAwBvyB,WAAxB,EAAqC;AAClD,EAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;EACA,IAAIs1B,eAAe,GAAG,EAAtB,CAAA;AACA,EAAA,IAAIjmD,EAAJ,CAAA;AACA,EAAA,IAAIC,EAAJ,CAAA;EACA,IAAI6nD,cAAc,GAAG,KAArB,CAAA;EACA,IAAIC,kBAAkB,GAAG,CAACzyB,WAAW,CAACyB,GAAZ,CAAgB,mBAAhB,CAAA,IAAwC,CAAzC,IAA8C6rB,QAAvE,CAAA;AACA,EAAA,IAAII,QAAQ,GAAGlwB,IAAI,CAACwM,SAAL,CAAe,UAAf,CAAf,CAAA;AACA,EAAA,IAAIp/B,CAAC,GAAG4yB,IAAI,CAACwM,SAAL,CAAe,GAAf,CAAR,CAAA;AACA,EAAA,IAAIha,SAAS,GAAG09B,QAAQ,CAAC36C,KAAzB,CAAA;AACA,EAAA,IAAIq8C,QAAQ,GAAG1B,QAAQ,CAAC3jD,CAAxB,CAAA;AACA,EAAA,IAAIslD,OAAO,GAAG3B,QAAQ,CAAC1jD,CAAvB,CAAA;AACA,EAAA,IAAIimB,UAAU,GAAGy9B,QAAQ,CAAC16C,MAA1B,CAAA;;EAEA,SAAS0/C,UAAT,CAAoBnkD,EAApB,EAAwB;IACtBA,EAAE,CAACq3C,MAAH,GAAY,IAAZ,CAAA;AACD,GAAA;;EAED,SAAS+M,YAAT,CAAsBx2B,KAAtB,EAA6B;AAC3B,IAAA,IAAI,CAACA,KAAK,CAACypB,MAAX,EAAmB;AACjB,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;;AAED,IAAA,KAAK,IAAIv1C,GAAT,IAAgB8rB,KAAK,CAACovB,MAAtB,EAA8B;MAC5B,IAAIpvB,KAAK,CAACovB,MAAN,CAAal7C,GAAb,CAAkBu1C,CAAAA,MAAlB,KAA6B,KAAjC,EAAwC;AACtC,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;AAEDpoB,EAAAA,IAAI,CAACxnB,IAAL,CAAU,UAAUgjB,GAAV,EAAe;AACvB,IAAA,IAAI6oB,MAAM,GAAGrkB,IAAI,CAACiI,gBAAL,CAAsBzM,GAAtB,CAAb,CAAA;AACA,IAAA,IAAIgxB,WAAW,GAAGnI,MAAM,CAACjtC,KAAzB,CAAA;AACA,IAAA,IAAIunB,KAAK,GAAG0lB,MAAM,CAAC19B,cAAP,EAAZ,CAAA;AACA,IAAA,IAAIyuC,SAAS,GAAG/Q,MAAM,CAACgR,gBAAP,EAAhB,CAAA;AACA,IAAA,IAAIzxB,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;IACA,IAAI85B,UAAU,GAAG1xB,SAAS,CAACG,QAAV,CAAmB,OAAnB,CAAjB,CANuB;;AAQvB,IAAA,IAAIwxB,aAAa,GAAGD,UAAU,CAACrxB,GAAX,CAAe,UAAf,CAA8BL,IAAAA,SAAS,CAACK,GAAV,CAAc,CAAC,UAAD,EAAa,OAAb,EAAsB,UAAtB,CAAd,CAAlD,CAAA;AACA,IAAA,IAAIyvB,aAAa,GAAG4B,UAAU,CAACrxB,GAAX,CAAe,qBAAf,CAApB,CAAA;AACA,IAAA,IAAI8uB,YAAY,GAAGuC,UAAU,CAACrxB,GAAX,CAAe,SAAf,CAAnB,CAAA;AACA,IAAA,IAAI0vB,YAAY,GAAGtD,YAAY,CAACiF,UAAU,CAACrxB,GAAX,CAAe,cAAf,CAAD,EAAiCzR,SAAjC,CAA/B,CAAA;AACA,IAAA,IAAIohC,WAAW,GAAG0B,UAAU,CAACrxB,GAAX,CAAe,aAAf,CAAlB,CAAA;AACA,IAAA,IAAIuxB,cAAc,GAAG5xB,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAArB,CAAA;AACA,IAAA,IAAI0xB,YAAY,GAAGD,cAAc,CAACvxB,GAAf,CAAmB,QAAnB,CAAnB,CAAA;AACAwxB,IAAAA,YAAY,GAAGpF,YAAY,CAACoF,YAAD,EAAejjC,SAAf,CAA3B,CAAA;AACA,IAAA,IAAIkjC,aAAa,GAAGF,cAAc,CAACvxB,GAAf,CAAmB,SAAnB,CAApB,CAAA;AACAyxB,IAAAA,aAAa,GAAGrF,YAAY,CAACqF,aAAD,EAAgBljC,SAAhB,CAA5B,CAAA;;AAEA,IAAA,IAAIlnB,IAAI,CAACyC,GAAL,CAASy+C,WAAW,CAACl/C,QAAZ,GAAuBk/C,WAAW,CAACn/C,UAA5C,CAAA,GAA0D4nD,kBAA9D,EAAkF;AAChFz8C,MAAAA,MAAI,CAACmmB,KAAK,CAACovB,MAAP,EAAemH,UAAf,CAAJ,CAAA;MACAv2B,KAAK,CAACypB,MAAN,GAAe,IAAf,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAAC+M,YAAY,CAACx2B,KAAD,CAAjB,EAA0B;AACxB,MAAA,OAAA;AACD,KAAA;;IAED,IAAIg3B,QAAQ,GAAG,CAACnJ,WAAW,CAACn/C,UAAZ,GAAyBm/C,WAAW,CAACl/C,QAAtC,IAAkD,CAAjE,CAAA;AACA,IAAA,IAAIsoD,EAAE,GAAGtqD,IAAI,CAACG,GAAL,CAASkqD,QAAT,CAAT,CAAA;AACA,IAAA,IAAIE,EAAE,GAAGvqD,IAAI,CAACC,GAAL,CAASoqD,QAAT,CAAT,CAAA;AACA,IAAA,IAAIG,KAAJ,CAAA;AACA,IAAA,IAAIC,KAAJ,CAAA;AACA,IAAA,IAAI/C,UAAJ,CAAA;AACA,IAAA,IAAIzyC,SAAJ,CAAA;IACArT,EAAE,GAAGs/C,WAAW,CAACt/C,EAAjB,CAAA;IACAC,EAAE,GAAGq/C,WAAW,CAACr/C,EAAjB,CAAA;IACA,IAAI6oD,aAAa,GAAGT,aAAa,KAAK,QAAlB,IAA8BA,aAAa,KAAK,OAApE,CAAA;;IAEA,IAAIA,aAAa,KAAK,QAAtB,EAAgC;MAC9BO,KAAK,GAAGtJ,WAAW,CAACt/C,EAApB,CAAA;MACA6oD,KAAK,GAAGvJ,WAAW,CAACr/C,EAApB,CAAA;AACAoT,MAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,KAJD,MAIO;MACL,IAAIuC,EAAE,GAAG,CAACkzC,aAAa,GAAG,CAACxJ,WAAW,CAACp/C,CAAZ,GAAgBo/C,WAAW,CAACna,EAA7B,IAAmC,CAAnC,GAAuCujB,EAA1C,GAA+CpJ,WAAW,CAACp/C,CAAZ,GAAgBwoD,EAA7E,IAAmF1oD,EAA5F,CAAA;MACA,IAAI6V,EAAE,GAAG,CAACizC,aAAa,GAAG,CAACxJ,WAAW,CAACp/C,CAAZ,GAAgBo/C,WAAW,CAACna,EAA7B,IAAmC,CAAnC,GAAuCwjB,EAA1C,GAA+CrJ,WAAW,CAACp/C,CAAZ,GAAgByoD,EAA7E,IAAmF1oD,EAA5F,CAAA;AACA2oD,MAAAA,KAAK,GAAGhzC,EAAE,GAAG8yC,EAAE,GAAG,CAAlB,CAAA;AACAG,MAAAA,KAAK,GAAGhzC,EAAE,GAAG8yC,EAAE,GAAG,CAAlB,CAAA;;MAEA,IAAI,CAACG,aAAL,EAAoB;AAClB;AACA,QAAA,IAAIppD,EAAE,GAAGkW,EAAE,GAAG8yC,EAAE,IAAIH,YAAY,GAAGroD,CAAf,GAAmBo/C,WAAW,CAACp/C,CAAnC,CAAhB,CAAA;AACA,QAAA,IAAIP,EAAE,GAAGkW,EAAE,GAAG8yC,EAAE,IAAIJ,YAAY,GAAGroD,CAAf,GAAmBo/C,WAAW,CAACp/C,CAAnC,CAAhB,CAAA;AACA,QAAA,IAAIN,EAAE,GAAGF,EAAE,GAAG,CAACgpD,EAAE,GAAG,CAAL,GAAS,CAAC,CAAV,GAAc,CAAf,IAAoBF,aAAlC,CAAA;QACA,IAAI3oD,EAAE,GAAGF,EAAT,CAAA;;QAEA,IAAIkmD,YAAY,KAAK,MAArB,EAA6B;AAC3B;AACA+C,UAAAA,KAAK,GAAGF,EAAE,GAAG,CAAL,GAAShE,QAAQ,GAAG+B,YAApB,GAAmC/B,QAAQ,GAAGp/B,SAAX,GAAuBmhC,YAAlE,CAAA;AACD,SAHD,MAGO;UACLmC,KAAK,GAAGhpD,EAAE,IAAI8oD,EAAE,GAAG,CAAL,GAAS,CAAClC,aAAV,GAA0BA,aAA9B,CAAV,CAAA;AACD,SAAA;;AAEDqC,QAAAA,KAAK,GAAGhpD,EAAR,CAAA;AACAimD,QAAAA,UAAU,GAAG,CAAC,CAAClwC,EAAD,EAAKC,EAAL,CAAD,EAAW,CAACnW,EAAD,EAAKC,EAAL,CAAX,EAAqB,CAACC,EAAD,EAAKC,EAAL,CAArB,CAAb,CAAA;AACD,OAAA;;MAEDwT,SAAS,GAAGy1C,aAAa,GAAG,QAAH,GAAcjD,YAAY,KAAK,MAAjB,GAA0B6C,EAAE,GAAG,CAAL,GAAS,OAAT,GAAmB,MAA7C,GAAsDA,EAAE,GAAG,CAAL,GAAS,MAAT,GAAkB,OAA/G,CAAA;AACD,KAAA;;AAED,IAAA,IAAIlqD,EAAE,GAAGJ,IAAI,CAACI,EAAd,CAAA;IACA,IAAIuqD,WAAW,GAAG,CAAlB,CAAA;AACA,IAAA,IAAIjR,MAAM,GAAGsQ,UAAU,CAACrxB,GAAX,CAAe,QAAf,CAAb,CAAA;;AAEA,IAAA,IAAIzoB,QAAQ,CAACwpC,MAAD,CAAZ,EAAsB;AACpBiR,MAAAA,WAAW,GAAGjR,MAAM,IAAIt5C,EAAE,GAAG,GAAT,CAApB,CAAA;AACD,KAFD,MAEO,IAAI6pD,aAAa,KAAK,QAAtB,EAAgC;AACrCU,MAAAA,WAAW,GAAG,CAAd,CAAA;KADK,MAEA,IAAIjR,MAAM,KAAK,QAAX,IAAuBA,MAAM,KAAK,IAAtC,EAA4C;AACjD,MAAA,IAAIkR,WAAW,GAAGN,EAAE,GAAG,CAAL,GAAS,CAACD,QAAD,GAAYjqD,EAArB,GAA0B,CAACiqD,QAA7C,CAAA;AACAM,MAAAA,WAAW,GAAGC,WAAd,CAAA;AACD,KAHM,MAGA,IAAIlR,MAAM,KAAK,YAAX,IAA2BuQ,aAAa,KAAK,SAA7C,IAA0DA,aAAa,KAAK,OAAhF,EAAyF;MAC9F,IAAIY,GAAG,GAAG7qD,IAAI,CAAC8qD,KAAL,CAAWR,EAAX,EAAeC,EAAf,CAAV,CAAA;;MAEA,IAAIM,GAAG,GAAG,CAAV,EAAa;AACXA,QAAAA,GAAG,GAAGzqD,EAAE,GAAG,CAAL,GAASyqD,GAAf,CAAA;AACD,OAAA;;AAED,MAAA,IAAIE,MAAM,GAAGR,EAAE,GAAG,CAAlB,CAAA;;AAEA,MAAA,IAAIQ,MAAJ,EAAY;QACVF,GAAG,GAAGzqD,EAAE,GAAGyqD,GAAX,CAAA;AACD,OAAA;;MAEDF,WAAW,GAAGE,GAAG,GAAGzqD,EAApB,CAAA;AACD,KAAA;;IAEDspD,cAAc,GAAG,CAAC,CAACiB,WAAnB,CAAA;IACAt3B,KAAK,CAACpyB,CAAN,GAAUupD,KAAV,CAAA;IACAn3B,KAAK,CAACnyB,CAAN,GAAUupD,KAAV,CAAA;IACAp3B,KAAK,CAACL,QAAN,GAAiB23B,WAAjB,CAAA;IACAt3B,KAAK,CAAChB,QAAN,CAAe;AACbyb,MAAAA,aAAa,EAAE,QAAA;AADF,KAAf,EAtGuB;;IA0GvB,IAAI,CAAC4c,aAAL,EAAoB;AAClB,MAAA,IAAI5B,QAAQ,GAAGz1B,KAAK,CAAC81B,eAAN,EAAA,CAAwBrvC,KAAxB,EAAf,CAAA;MACAgvC,QAAQ,CAACkC,cAAT,CAAwB33B,KAAK,CAAC43B,oBAAN,EAAxB,EAFkB;;MAIlB,IAAI9kC,MAAM,GAAG,CAACkN,KAAK,CAACvuB,KAAN,CAAYqhB,MAAZ,IAAsB,CAAvB,IAA4B,GAAzC,CAAA;AACA2iC,MAAAA,QAAQ,CAAC5nD,CAAT,IAAcilB,MAAM,GAAG,CAAvB,CAAA;MACA2iC,QAAQ,CAAC5+C,MAAT,IAAmBic,MAAnB,CAAA;MACA0hC,eAAe,CAACtjD,IAAhB,CAAqB;AACnB8uB,QAAAA,KAAK,EAAEA,KADY;AAEnBy2B,QAAAA,SAAS,EAAEA,SAFQ;AAGnBxlC,QAAAA,QAAQ,EAAE2lC,aAHS;AAInB18C,QAAAA,GAAG,EAAE48C,YAJc;AAKnBnD,QAAAA,IAAI,EAAEoD,aALa;AAMnBc,QAAAA,YAAY,EAAEhB,cAAc,CAACvxB,GAAf,CAAmB,cAAnB,CANK;AAOnBwyB,QAAAA,eAAe,EAAEjB,cAAc,CAACvxB,GAAf,CAAmB,iBAAnB,CAPE;AAQnByyB,QAAAA,aAAa,EAAE,IAAIC,KAAJ,CAAUf,EAAV,EAAcC,EAAd,CARI;AASnB7C,QAAAA,UAAU,EAAEA,UATO;AAUnBzyC,QAAAA,SAAS,EAAEA,SAVQ;AAWnBmzC,QAAAA,aAAa,EAAEA,aAXI;AAYnBX,QAAAA,YAAY,EAAEA,YAZK;AAanBY,QAAAA,YAAY,EAAEA,YAbK;AAcnBC,QAAAA,WAAW,EAAEA,WAdM;AAenBllD,QAAAA,IAAI,EAAE0lD,QAfa;QAgBnBS,kBAAkB,EAAET,QAAQ,CAAC7+C,KAhBV;AAiBnBk+C,QAAAA,eAAe,EAAE90B,KAAK,CAACvuB,KAAN,CAAYmF,KAAAA;OAjB/B,CAAA,CAAA;AAmBD,KA1BD,MA0BO;MACLopB,KAAK,CAAChB,QAAN,CAAe;AACbwb,QAAAA,KAAK,EAAE54B,SAAAA;OADT,CAAA,CAAA;AAGA,MAAA,IAAIq2C,WAAW,GAAGj4B,KAAK,CAACovB,MAAN,CAAa3K,MAA/B,CAAA;;AAEA,MAAA,IAAIwT,WAAJ,EAAiB;AACfA,QAAAA,WAAW,CAACrqD,CAAZ,IAAiBoyB,KAAK,CAACpyB,CAAvB,CAAA;AACAqqD,QAAAA,WAAW,CAACpqD,CAAZ,IAAiBmyB,KAAK,CAACnyB,CAAvB,CAAA;AACD,OAAA;AACF,KAAA;;IAED63C,MAAM,CAACS,aAAP,CAAqB;AACnB+I,MAAAA,MAAM,EAAEmI,aAAAA;KADV,CAAA,CAAA;GAhJF,CAAA,CAAA;;EAqJA,IAAI,CAAChB,cAAD,IAAmBxyB,WAAW,CAACyB,GAAZ,CAAgB,mBAAhB,CAAvB,EAA6D;AAC3DivB,IAAAA,YAAY,CAACC,eAAD,EAAkBjmD,EAAlB,EAAsBC,EAAtB,EAA0BC,CAA1B,EAA6BolB,SAA7B,EAAwCC,UAAxC,EAAoDm/B,QAApD,EAA8DC,OAA9D,CAAZ,CAAA;AACD,GAAA;;AAED,EAAA,KAAK,IAAIriD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2jD,eAAe,CAACrkD,MAApC,EAA4CU,CAAC,EAA7C,EAAiD;AAC/C,IAAA,IAAIk4C,MAAM,GAAGyL,eAAe,CAAC3jD,CAAD,CAA5B,CAAA;AACA,IAAA,IAAImvB,KAAK,GAAG+oB,MAAM,CAAC/oB,KAAnB,CAAA;AACA,IAAA,IAAIy2B,SAAS,GAAG1N,MAAM,CAAC0N,SAAvB,CAAA;AACA,IAAA,IAAIyB,YAAY,GAAGlnD,KAAK,CAACgvB,KAAK,CAACpyB,CAAP,CAAL,IAAkBoD,KAAK,CAACgvB,KAAK,CAACnyB,CAAP,CAA1C,CAAA;;AAEA,IAAA,IAAImyB,KAAJ,EAAW;MACTA,KAAK,CAAChB,QAAN,CAAe;QACbwb,KAAK,EAAEuO,MAAM,CAACnnC,SAAAA;OADhB,CAAA,CAAA;;AAIA,MAAA,IAAIs2C,YAAJ,EAAkB;AAChBr+C,QAAAA,MAAI,CAACmmB,KAAK,CAACovB,MAAP,EAAemH,UAAf,CAAJ,CAAA;QACAv2B,KAAK,CAACypB,MAAN,GAAe,IAAf,CAAA;AACD,OAAA;;AAED,MAAA,IAAIwO,WAAW,GAAGj4B,KAAK,CAACovB,MAAN,CAAa3K,MAA/B,CAAA;;AAEA,MAAA,IAAIwT,WAAJ,EAAiB;AACfA,QAAAA,WAAW,CAACrqD,CAAZ,IAAiBoyB,KAAK,CAACpyB,CAAvB,CAAA;AACAqqD,QAAAA,WAAW,CAACpqD,CAAZ,IAAiBmyB,KAAK,CAACnyB,CAAvB,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAI4oD,SAAJ,EAAe;AACb,MAAA,IAAIpC,UAAU,GAAGtL,MAAM,CAACsL,UAAxB,CAAA;;AAEA,MAAA,IAAI6D,YAAY,IAAI,CAAC7D,UAArB,EAAiC;AAC/Bx6C,QAAAA,MAAI,CAAC48C,SAAS,CAACrH,MAAX,EAAmBmH,UAAnB,CAAJ,CAAA;QACAE,SAAS,CAAChN,MAAV,GAAmB,IAAnB,CAAA;AACD,OAHD,MAGO;AACL0O,QAAAA,cAAc,CAAC9D,UAAD,EAAatL,MAAM,CAAC8O,YAApB,CAAd,CAAA;QACAO,iBAAiB,CAAC/D,UAAD,EAAatL,MAAM,CAACgP,aAApB,EAAmChP,MAAM,CAAC+O,eAA1C,CAAjB,CAAA;QACArB,SAAS,CAAC7Z,QAAV,CAAmB;AACjBz9B,UAAAA,MAAM,EAAEk1C,UAAAA;AADS,SAAnB,EAHK;;AAOLr0B,QAAAA,KAAK,CAACq4B,YAAN,CAAmBC,mBAAnB,GAAyC;AACvCC,UAAAA,MAAM,EAAE,IAAIP,KAAJ,CAAU3D,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAV,EAA4BA,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAA5B,CAAA;SADV,CAAA;AAGD,OAAA;AACF,KAAA;AACF,GAAA;AACF;;AClhBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BO,SAASmE,qBAAT,CAA+BpP,KAA/B,EAAsC3wC,KAAtC,EAA6CggD,UAA7C,EAAyD;AAC9D,EAAA,IAAIC,YAAY,GAAGtP,KAAK,CAAC9jB,GAAN,CAAU,cAAV,CAAnB,CAAA;;EAEA,IAAIozB,YAAY,IAAI,IAApB,EAA0B;AACxB,IAAA,OAAOD,UAAU,GAAG;AAClBC,MAAAA,YAAY,EAAE,CAAA;AADI,KAAH,GAEb,IAFJ,CAAA;AAGD,GAAA;;AAED,EAAA,IAAI,CAAClvC,SAAO,CAACkvC,YAAD,CAAZ,EAA4B;IAC1BA,YAAY,GAAG,CAACA,YAAD,EAAeA,YAAf,EAA6BA,YAA7B,EAA2CA,YAA3C,CAAf,CAAA;AACD,GAAA;;AAED,EAAA,IAAI7T,EAAE,GAAGl4C,IAAI,CAACyC,GAAL,CAASqJ,KAAK,CAAChK,CAAN,IAAW,IAAIgK,KAAK,CAACi7B,EAArB,IAA2B,CAApC,CAAT,CAAA;EACA,OAAO;AACLglB,IAAAA,YAAY,EAAE3mD,GAAG,CAAC2mD,YAAD,EAAe,UAAUC,EAAV,EAAc;AAC5C,MAAA,OAAOjH,cAAY,CAACiH,EAAD,EAAK9T,EAAL,CAAnB,CAAA;KADe,CAAA;GADnB,CAAA;AAKD;;AC/DD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoCA;AACA;AACA;;AAEA,IAAI+T,QAAQ;AACZ;AACA,UAAUvnC,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACsnC,QAAD,EAAWvnC,MAAX,CAAT,CAAA;;AAEA,EAAA,SAASunC,QAAT,CAAkBv3B,IAAlB,EAAwBxE,GAAxB,EAA6BnuB,UAA7B,EAAyC;IACvC,IAAI6iB,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,KAAqB,IAAjC,CAAA;;IAEAD,KAAK,CAACgR,EAAN,GAAW,CAAX,CAAA;AACA,IAAA,IAAIluB,IAAI,GAAG,IAAI6vB,MAAJ,EAAX,CAAA;;IAEA3S,KAAK,CAACzJ,cAAN,CAAqBzT,IAArB,CAAA,CAAA;;IAEAkd,KAAK,CAAC0Q,UAAN,CAAiBZ,IAAjB,EAAuBxE,GAAvB,EAA4BnuB,UAA5B,EAAwC,IAAxC,CAAA,CAAA;;AAEA,IAAA,OAAO6iB,KAAP,CAAA;AACD,GAAA;;AAEDqnC,EAAAA,QAAQ,CAACzrD,SAAT,CAAmB80B,UAAnB,GAAgC,UAAUZ,IAAV,EAAgBxE,GAAhB,EAAqBnuB,UAArB,EAAiCmqD,WAAjC,EAA8C;IAC5E,IAAInT,MAAM,GAAG,IAAb,CAAA;AACA,IAAA,IAAI7hB,WAAW,GAAGxC,IAAI,CAACyC,SAAvB,CAAA;AACA,IAAA,IAAImB,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;AACA,IAAA,IAAIsI,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAApB,CAAA;IACA,IAAI2jB,MAAM,GAAG1nB,IAAI,CAACyH,aAAL,CAAmBjM,GAAnB,CAAb,CAL4E;AAM5E;;IAEA,IAAIgxB,WAAW,GAAGn1C,MAAM,CAAC8/C,qBAAqB,CAACvzB,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAAD,EAAkC2jB,MAAlC,EAA0C,IAA1C,CAAtB,EAAuEA,MAAvE,CAAxB,CAR4E;;AAU5E,IAAA,IAAI/3C,KAAK,CAAC68C,WAAW,CAACn/C,UAAb,CAAT,EAAmC;AACjC;MACAg3C,MAAM,CAAC9I,QAAP,CAAgBiR,WAAhB,CAAA,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIgL,WAAJ,EAAiB;MACfnT,MAAM,CAAC9I,QAAP,CAAgBiR,WAAhB,CAAA,CAAA;AACA,MAAA,IAAIiL,aAAa,GAAGj1B,WAAW,CAAC2B,UAAZ,CAAuB,eAAvB,CAApB,CAAA;;AAEA,MAAA,IAAI3B,WAAW,CAACqX,OAAZ,CAAoB7uB,GAAxB,EAA6B;AAC3B;AACA;AACA6X,QAAAA,SAAA,CAAkBwhB,MAAlB,EAA0B;AACxBxiC,UAAAA,MAAM,EAAE,CADgB;AAExBC,UAAAA,MAAM,EAAE,CAAA;SAFV,EAGG0gB,WAHH,EAGgB;AACdvC,UAAAA,SAAS,EAAEzE,GADG;AAEdk8B,UAAAA,MAAM,EAAE,IAAA;SALV,CAAA,CAAA;AAOArT,QAAAA,MAAM,CAACxsC,OAAP,GAAiB20C,WAAW,CAACt/C,EAA7B,CAAA;AACAm3C,QAAAA,MAAM,CAACvsC,OAAP,GAAiB00C,WAAW,CAACr/C,EAA7B,CAAA;AACD,OAZD,MAYO,IAAIsqD,aAAa,KAAK,OAAtB,EAA+B;AACpCpT,QAAAA,MAAM,CAACjtC,KAAP,CAAahK,CAAb,GAAiBs6C,MAAM,CAACrV,EAAxB,CAAA;AACAxP,QAAAA,SAAA,CAAkBwhB,MAAlB,EAA0B;AACxBjtC,UAAAA,KAAK,EAAE;YACLhK,CAAC,EAAEs6C,MAAM,CAACt6C,CAAAA;AADL,WAAA;SADT,EAIGo1B,WAJH,EAIgBhH,GAJhB,CAAA,CAAA;AAKD,OAPM;WAQF;QACD,IAAInuB,UAAU,IAAI,IAAlB,EAAwB;UACtBg3C,MAAM,CAAC9I,QAAP,CAAgB;AACdluC,YAAAA,UAAU,EAAEA,UADE;AAEdC,YAAAA,QAAQ,EAAED,UAAAA;WAFZ,CAAA,CAAA;AAIAw1B,UAAAA,SAAA,CAAkBwhB,MAAlB,EAA0B;AACxBjtC,YAAAA,KAAK,EAAE;cACL/J,UAAU,EAAEq6C,MAAM,CAACr6C,UADd;cAELC,QAAQ,EAAEo6C,MAAM,CAACp6C,QAAAA;AAFZ,aAAA;WADT,EAKGk1B,WALH,EAKgBhH,GALhB,CAAA,CAAA;AAMD,SAXD,MAWO;AACL6oB,UAAAA,MAAM,CAACjtC,KAAP,CAAa9J,QAAb,GAAwBo6C,MAAM,CAACr6C,UAA/B,CAAA;AACAw1B,UAAAA,aAAA,CAAoBwhB,MAApB,EAA4B;AAC1BjtC,YAAAA,KAAK,EAAE;cACL9J,QAAQ,EAAEo6C,MAAM,CAACp6C,QAAAA;AADZ,aAAA;WADT,EAIGk1B,WAJH,EAIgBhH,GAJhB,CAAA,CAAA;AAKD,SAAA;AACF,OAAA;AACJ,KA7CD,MA6CO;AACLsH,MAAAA,YAAY,CAACuhB,MAAD,CAAZ,CADK;;AAGLxhB,MAAAA,aAAA,CAAoBwhB,MAApB,EAA4B;AAC1BjtC,QAAAA,KAAK,EAAEo1C,WAAAA;OADT,EAEGhqB,WAFH,EAEgBhH,GAFhB,CAAA,CAAA;AAGD,KAAA;;IAED6oB,MAAM,CAAC5f,QAAP,CAAgBzE,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,OAAxB,CAAhB,CAAA,CAAA;AACAkgB,IAAAA,wBAAwB,CAAC2I,MAAD,EAASzgB,SAAT,CAAxB,CAAA;IACA,IAAI+xB,QAAQ,GAAG,CAACjO,MAAM,CAACr6C,UAAP,GAAoBq6C,MAAM,CAACp6C,QAA5B,IAAwC,CAAvD,CAAA;AACA,IAAA,IAAIkW,MAAM,GAAGgf,WAAW,CAACyB,GAAZ,CAAgB,gBAAhB,CAAb,CAAA;IACA,IAAIqC,EAAE,GAAGh7B,IAAI,CAACG,GAAL,CAASkqD,QAAT,IAAqBnyC,MAA9B,CAAA;IACA,IAAI+iB,EAAE,GAAGj7B,IAAI,CAACC,GAAL,CAASoqD,QAAT,IAAqBnyC,MAA9B,CAAA;AACA,IAAA,IAAIkgB,WAAW,GAAGE,SAAS,CAACO,UAAV,CAAqB,QAArB,CAAlB,CAAA;IACAT,WAAW,IAAI2gB,MAAM,CAACpjB,IAAP,CAAY,QAAZ,EAAsByC,WAAtB,CAAf,CAAA;;AAEA,IAAA,IAAA,CAAKi0B,YAAL,CAAkBn1B,WAAlB,EAA+BxC,IAA/B,EAAqCxE,GAArC,CAAA,CAAA;;IAEA6oB,MAAM,CAAC1e,WAAP,CAAmB,UAAnB,EAA+BvuB,KAA/B,GAAuCC,MAAM,CAAC;AAC5CjK,MAAAA,CAAC,EAAEs6C,MAAM,CAACt6C,CAAP,IAAY02B,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAA6BH,GAAAA,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAkC,IAAA,CAA/D,GAAmE,CAA/E,CAAA;AADyC,KAAD,EAE1CkzB,qBAAqB,CAACrzB,aAAa,CAACC,QAAd,CAAuB,WAAvB,CAAD,EAAsC2jB,MAAtC,CAFqB,CAA7C,CAAA;AAGArwC,IAAAA,MAAM,CAACgtC,MAAM,CAAC1e,WAAP,CAAmB,QAAnB,CAAD,EAA+B;AACnCp5B,MAAAA,CAAC,EAAE+5B,EADgC;AAEnC95B,MAAAA,CAAC,EAAE+5B,EAFgC;AAGnCnvB,MAAAA,KAAK,EAAE+/C,qBAAqB,CAACvzB,SAAS,CAACG,QAAV,CAAmB,CAAC,QAAD,EAAW,WAAX,CAAnB,CAAD,EAA8C2jB,MAA9C,CAAA;AAHO,KAA/B,CAAN,CAAA;AAKArwC,IAAAA,MAAM,CAACgtC,MAAM,CAAC1e,WAAP,CAAmB,MAAnB,CAAD,EAA6B;AACjCvuB,MAAAA,KAAK,EAAE+/C,qBAAqB,CAACvzB,SAAS,CAACG,QAAV,CAAmB,CAAC,MAAD,EAAS,WAAT,CAAnB,CAAD,EAA4C2jB,MAA5C,CAAA;AADK,KAA7B,CAAN,CAAA;AAGA,IAAA,IAAI0N,SAAS,GAAG/Q,MAAM,CAACgR,gBAAP,EAAhB,CAAA;AACA,IAAA,IAAIuC,SAAS,GAAGvT,MAAM,CAAC19B,cAAP,EAAhB,CAAA;IACAyuC,SAAS,IAAI/9C,MAAM,CAAC+9C,SAAS,CAACzvB,WAAV,CAAsB,QAAtB,CAAD,EAAkC;AACnDp5B,MAAAA,CAAC,EAAE+5B,EADgD;AAEnD95B,MAAAA,CAAC,EAAE+5B,EAAAA;KAFc,CAAnB,CA7F4E;;AAkG5ElvB,IAAAA,MAAM,CAACugD,SAAS,CAACjyB,WAAV,CAAsB,QAAtB,CAAD,EAAkC;AACtCp5B,MAAAA,CAAC,EAAE+5B,EADmC;AAEtC95B,MAAAA,CAAC,EAAE+5B,EAAAA;AAFmC,KAAlC,CAAN,CAAA;IAIAT,mBAAmB,CAAC,IAAD,EAAOhC,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAP,EAAmCH,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAnC,EAAmEH,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAnE,CAAnB,CAAA;GAtGF,CAAA;;EAyGAszB,QAAQ,CAACzrD,SAAT,CAAmB6rD,YAAnB,GAAkC,UAAUn1B,WAAV,EAAuBxC,IAAvB,EAA6BxE,GAA7B,EAAkC;IAClE,IAAI6oB,MAAM,GAAG,IAAb,CAAA;AACA,IAAA,IAAIzgB,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;AACA,IAAA,IAAIg6B,cAAc,GAAG5xB,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAArB,CAAA;IACA,IAAI3zB,KAAK,GAAG4vB,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,OAAxB,CAAZ,CAAA;AACA,IAAA,IAAI+I,WAAW,GAAGn0B,KAAK,IAAIA,KAAK,CAACC,IAAjC,CAAA;AACA,IAAA,IAAIwnD,aAAa,GAAGznD,KAAK,IAAIA,KAAK,CAACa,OAAnC,CAAA;AACAi0B,IAAAA,aAAa,CAACmf,MAAD,EAASngB,oBAAoB,CAACN,SAAD,CAA7B,EAA0C;MACrDuB,YAAY,EAAEnF,IAAI,CAACyC,SADkC;AAErD2C,MAAAA,cAAc,EAAE5J,GAFqC;AAGrD+J,MAAAA,YAAY,EAAEhB,WAHuC;AAIrDiB,MAAAA,cAAc,EAAEqyB,aAJqC;AAKrDxyB,MAAAA,WAAW,EAAE7C,WAAW,CAACs1B,iBAAZ,CAA8Bt8B,GAA9B,EAAmC,QAAnC,CAAgDwE,IAAAA,IAAI,CAACyF,OAAL,CAAajK,GAAb,CAAA;AALR,KAA1C,CAAb,CAAA;AAOA,IAAA,IAAIo8B,SAAS,GAAGvT,MAAM,CAAC19B,cAAP,EAAhB,CAdkE;;IAgBlE09B,MAAM,CAACS,aAAP,CAAqB;AACnB;AACAl1B,MAAAA,QAAQ,EAAE,IAFS;AAGnB0O,MAAAA,QAAQ,EAAE,IAAA;AAHS,KAArB,EAhBkE;AAqBlE;;IAEAs5B,SAAS,CAAC32B,IAAV,CAAe;AACbC,MAAAA,EAAE,EAAE,EAAA;KADN,CAAA,CAAA;IAGA,IAAIq0B,aAAa,GAAG/yB,WAAW,CAACyB,GAAZ,CAAgB,CAAC,OAAD,EAAU,UAAV,CAAhB,CAApB,CAAA;;AAEA,IAAA,IAAIsxB,aAAa,KAAK,SAAlB,IAA+BA,aAAa,KAAK,OAArD,EAA8D;AAC5DlR,MAAAA,MAAM,CAAC0T,mBAAP,EAAA,CAAA;AACD,KAFD,MAEO;AACL,MAAA,IAAIv5C,QAAQ,GAAG,IAAK62C,CAAAA,gBAAL,EAAf,CAAA;;MAEA,IAAI,CAAC72C,QAAL,EAAe;AACbA,QAAAA,QAAQ,GAAG,IAAIqkB,UAAJ,EAAX,CAAA;QACA,IAAKm1B,CAAAA,gBAAL,CAAsBx5C,QAAtB,CAAA,CAAA;AACD,OANI;;;AASLy5C,MAAAA,iBAAiB,CAAC,IAAD,EAAOC,wBAAwB,CAACt0B,SAAD,CAA/B,EAA4C;AAC3DrzB,QAAAA,MAAM,EAAEg0B,WADmD;AAE3DtzB,QAAAA,OAAO,EAAEknD,SAAS,CAAC3C,cAAc,CAACvxB,GAAf,CAAmB,CAAC,WAAD,EAAc,SAAd,CAAnB,CAAD,EAA+C4zB,aAA/C,EAA8D,CAA9D,CAAA;AAFyC,OAA5C,CAAjB,CAAA;AAID,KAAA;GA3CH,CAAA;;AA8CA,EAAA,OAAON,QAAP,CAAA;AACD,CAxKD,CAwKE10B,MAxKF,CAFA;;;AA6KA,IAAIu1B,OAAO;AACX;AACA,UAAUpoC,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACmoC,OAAD,EAAUpoC,MAAV,CAAT,CAAA;;AAEA,EAAA,SAASooC,OAAT,GAAmB;AACjB,IAAA,IAAIloC,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;IAEAygB,KAAK,CAACmoC,qBAAN,GAA8B,IAA9B,CAAA;AACA,IAAA,OAAOnoC,KAAP,CAAA;AACD,GAAA;;AAEDkoC,EAAAA,OAAO,CAACtsD,SAAR,CAAkB8tC,MAAlB,GAA2B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqCu0B,OAArC,EAA8C;AACvE,IAAA,IAAI5c,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAIwJ,OAAO,GAAG,IAAA,CAAKC,KAAnB,CAAA;IACA,IAAInK,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACA,IAAI9vB,UAAJ,CAJuE;;IAMvE,IAAI,CAACg6B,OAAD,IAAYrH,IAAI,CAAC0T,KAAL,EAAA,GAAe,CAA/B,EAAkC;AAChC,MAAA,IAAIt8B,KAAK,GAAG4oB,IAAI,CAACyH,aAAL,CAAmB,CAAnB,CAAZ,CAAA;;MAEA,KAAK,IAAIrgB,CAAC,GAAG,CAAb,EAAgBzX,KAAK,CAACyH,KAAK,IAAIA,KAAK,CAAC/J,UAAhB,CAAL,IAAoC+Z,CAAC,GAAG4Y,IAAI,CAAC0T,KAAL,EAAxD,EAAsE,EAAEtsB,CAAxE,EAA2E;AACzEhQ,QAAAA,KAAK,GAAG4oB,IAAI,CAACyH,aAAL,CAAmBrgB,CAAnB,CAAR,CAAA;AACD,OAAA;;AAED,MAAA,IAAIhQ,KAAJ,EAAW;QACT/J,UAAU,GAAG+J,KAAK,CAAC/J,UAAnB,CAAA;AACD,OAAA;AACF,KAhBsE;;;IAmBvE,IAAI,IAAA,CAAKirD,kBAAT,EAA6B;AAC3Bn7B,MAAAA,KAAK,CAAC+K,MAAN,CAAa,IAAA,CAAKowB,kBAAlB,CAAA,CAAA;AACD,KArBsE;;;AAwBvE,IAAA,IAAIt4B,IAAI,CAAC0T,KAAL,EAAA,KAAiB,CAAjB,IAAsBlR,WAAW,CAACyB,GAAZ,CAAgB,iBAAhB,CAA1B,EAA8D;AAC5D,MAAA,IAAIogB,MAAM,GAAG,IAAIxhB,MAAJ,CAAmB;AAC9BzrB,QAAAA,KAAK,EAAE64C,iBAAiB,CAACztB,WAAD,EAAcna,GAAd,CAAA;AADM,OAAnB,CAAb,CAAA;MAGAg8B,MAAM,CAAC5f,QAAP,CAAgBjC,WAAW,CAACuB,QAAZ,CAAqB,kBAArB,CAAyCC,CAAAA,YAAzC,EAAhB,CAAA,CAAA;MACA,IAAKs0B,CAAAA,kBAAL,GAA0BjU,MAA1B,CAAA;MACAlnB,KAAK,CAACO,GAAN,CAAU2mB,MAAV,CAAA,CAAA;AACD,KAAA;;IAEDrkB,IAAI,CAAC0H,IAAL,CAAUL,OAAV,EAAmB3J,GAAnB,CAAuB,UAAUlC,GAAV,EAAe;MACpC,IAAI+8B,QAAQ,GAAG,IAAIhB,QAAJ,CAAav3B,IAAb,EAAmBxE,GAAnB,EAAwBnuB,UAAxB,CAAf,CAAA;AACA2yB,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBtM,GAAtB,EAA2B+8B,QAA3B,CAAA,CAAA;MACAp7B,KAAK,CAACO,GAAN,CAAU66B,QAAV,CAAA,CAAA;AACD,KAJD,EAIGxwB,MAJH,CAIU,UAAUJ,MAAV,EAAkBK,MAAlB,EAA0B;AAClC,MAAA,IAAIuwB,QAAQ,GAAGlxB,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAf,CAAA;AACAuwB,MAAAA,QAAQ,CAAC33B,UAAT,CAAoBZ,IAApB,EAA0B2H,MAA1B,EAAkCt6B,UAAlC,CAAA,CAAA;MACAkrD,QAAQ,CAACrN,GAAT,CAAa,OAAb,CAAA,CAAA;MACA/tB,KAAK,CAACO,GAAN,CAAU66B,QAAV,CAAA,CAAA;AACAv4B,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBH,MAAtB,EAA8B4wB,QAA9B,CAAA,CAAA;AACD,KAVD,CAUGrwB,CAAAA,MAVH,CAUU,UAAU1M,GAAV,EAAe;AACvB,MAAA,IAAI+8B,QAAQ,GAAGlxB,OAAO,CAACY,gBAAR,CAAyBzM,GAAzB,CAAf,CAAA;AACAqH,MAAAA,wBAAA,CAAiC01B,QAAjC,EAA2C/1B,WAA3C,EAAwDhH,GAAxD,CAAA,CAAA;AACD,KAbD,EAaG6M,OAbH,EAAA,CAAA;AAcAmwB,IAAAA,cAAW,CAACh2B,WAAD,CAAX,CA/CuE;;AAiDvE,IAAA,IAAIA,WAAW,CAACyB,GAAZ,CAAgB,qBAAhB,CAAA,KAA2C,WAA/C,EAA4D;MAC1D,IAAKqD,CAAAA,KAAL,GAAatH,IAAb,CAAA;AACD,KAAA;GAnDH,CAAA;;AAsDAo4B,EAAAA,OAAO,CAACtsD,SAAR,CAAkB4iB,OAAlB,GAA4B,YAAY,EAAxC,CAAA;;EAEA0pC,OAAO,CAACtsD,SAAR,CAAkB2sD,YAAlB,GAAiC,UAAU/xB,KAAV,EAAiBlE,WAAjB,EAA8B;AAC7D,IAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAI66B,UAAU,GAAG14B,IAAI,CAACyH,aAAL,CAAmB,CAAnB,CAAjB,CAAA;;AAEA,IAAA,IAAIixB,UAAJ,EAAgB;MACd,IAAIpyB,EAAE,GAAGI,KAAK,CAAC,CAAD,CAAL,GAAWgyB,UAAU,CAACxrD,EAA/B,CAAA;MACA,IAAIq5B,EAAE,GAAGG,KAAK,CAAC,CAAD,CAAL,GAAWgyB,UAAU,CAACvrD,EAA/B,CAAA;AACA,MAAA,IAAIijD,MAAM,GAAG9kD,IAAI,CAAC0kC,IAAL,CAAU1J,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAzB,CAAb,CAAA;MACA,OAAO6pB,MAAM,IAAIsI,UAAU,CAACtrD,CAArB,IAA0BgjD,MAAM,IAAIsI,UAAU,CAACrmB,EAAtD,CAAA;AACD,KAAA;GATH,CAAA;;EAYA+lB,OAAO,CAACv5C,IAAR,GAAe,KAAf,CAAA;AACA,EAAA,OAAOu5C,OAAP,CAAA;AACD,CAhFD,CAgFEpb,SAhFF,CAFA;;ACtOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,SAAS2b,sBAAT,CAAgCn2B,WAAhC,EAA6CtF,GAA7C,EAAkD07B,QAAlD,EAA4D;AACzE17B,EAAAA,GAAG,GAAG/U,SAAO,CAAC+U,GAAD,CAAP,IAAgB;AACpB27B,IAAAA,eAAe,EAAE37B,GAAAA;GADb,IAED7lB,MAAM,CAAC;IACVyhD,YAAY,EAAEt2B,WAAW,CAACu2B,SAAZ,EAAA;GADL,EAER77B,GAFQ,CAFX,CAAA;AAKA,EAAA,IAAI87B,MAAM,GAAGx2B,WAAW,CAACy2B,SAAZ,EAAb,CAAA;EACA,IAAI7uB,UAAU,GAAG8uB,uBAAuB,CAACF,MAAD,EAAS97B,GAAT,CAAvB,CAAqCkN,UAAtD,CAAA;EACA,IAAIne,IAAI,GAAG,IAAIktC,UAAJ,CAAe/uB,UAAf,EAA2B5H,WAA3B,CAAX,CAAA;AACAvW,EAAAA,IAAI,CAACmtC,QAAL,CAAcJ,MAAd,EAAsBJ,QAAtB,CAAA,CAAA;AACA,EAAA,OAAO3sC,IAAP,CAAA;AACD;;ACnED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAIotC,oBAAoB;AACxB;AACA,YAAY;AACV,EAAA,SAASA,oBAAT;AACAC,EAAAA,wBADA;AAEAC,EAAAA,UAFA,EAEY;IACV,IAAKC,CAAAA,yBAAL,GAAiCF,wBAAjC,CAAA;IACA,IAAKG,CAAAA,WAAL,GAAmBF,UAAnB,CAAA;AACD,GAAA;;AAEDF,EAAAA,oBAAoB,CAACvtD,SAArB,CAA+B4tD,WAA/B,GAA6C,YAAY;AACvD,IAAA,IAAIC,OAAO,GAAG,IAAA,CAAKF,WAAL,EAAd,CADuD;AAEvD;;;AAGA,IAAA,OAAOE,OAAO,CAACC,QAAR,CAAiBD,OAAO,CAACl0B,OAAzB,CAAP,CAAA;GALF,CAAA;;AAQA4zB,EAAAA,oBAAoB,CAACvtD,SAArB,CAA+B+tD,WAA/B,GAA6C,UAAUrnD,IAAV,EAAgB;AAC3D,IAAA,IAAImnD,OAAO,GAAG,IAAKF,CAAAA,WAAL,EAAd,CAAA;;AAEA,IAAA,OAAOE,OAAO,CAACG,WAAR,CAAoBtnD,IAApB,KAA6B,CAApC,CAAA;GAHF,CAAA;;AAMA6mD,EAAAA,oBAAoB,CAACvtD,SAArB,CAA+BguD,WAA/B,GAA6C,UAAUtnD,IAAV,EAAgB;AAC3D;AACA;AACA;AACA,IAAA,IAAIunD,qBAAqB,GAAG,IAAKP,CAAAA,yBAAL,EAA5B,CAAA;;AAEA,IAAA,OAAOO,qBAAqB,CAACD,WAAtB,CAAkCtnD,IAAlC,CAAP,CAAA;GANF,CAAA;;EASA6mD,oBAAoB,CAACvtD,SAArB,CAA+By2B,aAA/B,GAA+C,UAAUtC,SAAV,EAAqBptB,GAArB,EAA0B;AACvE;AACA,IAAA,IAAIknD,qBAAqB,GAAG,IAAKP,CAAAA,yBAAL,EAA5B,CAAA;;AAEA,IAAA,OAAOO,qBAAqB,CAACx3B,aAAtB,CAAoCtC,SAApC,EAA+CptB,GAA/C,CAAP,CAAA;GAJF,CAAA;;AAOA,EAAA,OAAOwmD,oBAAP,CAAA;AACD,CAvCD,EAFA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkCA,IAAIW,cAAc;AAClB;AACA,UAAUhqC,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC+pC,cAAD,EAAiBhqC,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAASgqC,cAAT,GAA0B;AACxB,IAAA,OAAOhqC,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEuqD,EAAAA,cAAc,CAACluD,SAAf,CAAyBytC,IAAzB,GAAgC,UAAU5c,MAAV,EAAkB;IAChD3M,MAAM,CAAClkB,SAAP,CAAiBytC,IAAjB,CAAsB/c,KAAtB,CAA4B,IAA5B,EAAkC/sB,SAAlC,CAAA,CADgD;AAEhD;;;IAGA,IAAKwqD,CAAAA,oBAAL,GAA4B,IAAIZ,oBAAJ,CAAyB7lB,MAAA,CAAY,IAAA,CAAK3V,OAAjB,EAA0B,IAA1B,CAAzB,EAA0D2V,MAAA,CAAY,KAAK+lB,UAAjB,EAA6B,IAA7B,CAA1D,CAA5B,CAAA;;IAEA,IAAKW,CAAAA,iBAAL,CAAuBv9B,MAAvB,CAAA,CAAA;GAPF,CAAA;AASA;AACF;AACA;;;AAGEq9B,EAAAA,cAAc,CAACluD,SAAf,CAAyBquD,WAAzB,GAAuC,YAAY;IACjDnqC,MAAM,CAAClkB,SAAP,CAAiBquD,WAAjB,CAA6B39B,KAA7B,CAAmC,IAAnC,EAAyC/sB,SAAzC,CAAA,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEuqD,EAAAA,cAAc,CAACluD,SAAf,CAAyB4wB,cAAzB,GAA0C,YAAY;IACpD,OAAOi8B,sBAAsB,CAAC,IAAD,EAAO;MAClCE,eAAe,EAAE,CAAC,OAAD,CADiB;AAElCuB,MAAAA,eAAe,EAAE5mB,OAAA,CAAa6mB,4BAAb,EAA2C,IAA3C,CAAA;AAFiB,KAAP,CAA7B,CAAA;GADF,CAAA;AAMA;AACF;AACA;;;AAGEL,EAAAA,cAAc,CAACluD,SAAf,CAAyBwuD,aAAzB,GAAyC,UAAUr6B,SAAV,EAAqB;AAC5D,IAAA,IAAID,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;;AAEA,IAAA,IAAImiB,MAAM,GAAGhwB,MAAM,CAAClkB,SAAP,CAAiBwuD,aAAjB,CAA+BnqC,IAA/B,CAAoC,IAApC,EAA0C8P,SAA1C,CAAb,CAH4D;;;IAM5D,IAAIs6B,SAAS,GAAG,EAAhB,CAAA;AACAv6B,IAAAA,IAAI,CAACxnB,IAAL,CAAUwnB,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAV,EAAsC,UAAUgB,KAAV,EAAiB;MACrDuvB,SAAS,CAAC1qD,IAAV,CAAem7B,KAAf,CAAA,CAAA;KADF,CAAA,CAAA;AAGAgV,IAAAA,MAAM,CAAC1rC,OAAP,GAAiBkmD,uBAAuB,CAACD,SAAD,EAAYt6B,SAAZ,EAAuBD,IAAI,CAACyC,SAAL,CAAewB,GAAf,CAAmB,kBAAnB,CAAvB,CAAxC,CAAA;AACA+b,IAAAA,MAAM,CAACya,KAAP,CAAa5qD,IAAb,CAAkB,SAAlB,CAAA,CAAA;AACA,IAAA,OAAOmwC,MAAP,CAAA;GAZF,CAAA;;AAeAga,EAAAA,cAAc,CAACluD,SAAf,CAAyBouD,iBAAzB,GAA6C,UAAUv9B,MAAV,EAAkB;AAC7D;IACAkgB,eAAA,CAA0BlgB,MAA1B,EAAkC,WAAlC,EAA+C,CAAC,MAAD,CAA/C,CAAA,CAAA;AACA,IAAA,IAAI+9B,kBAAkB,GAAG/9B,MAAM,CAACy4B,SAAhC,CAAA;IACA,IAAIuF,oBAAoB,GAAGh+B,MAAM,CAACqC,QAAP,CAAgBo2B,SAA3C,CAJ6D;;IAM7DsF,kBAAkB,CAAC77B,IAAnB,GAA0B67B,kBAAkB,CAAC77B,IAAnB,IAA2BlC,MAAM,CAACgC,KAAP,CAAaE,IAAlE,CAAA;AACA87B,IAAAA,oBAAoB,CAAC97B,IAArB,GAA4B87B,oBAAoB,CAAC97B,IAArB,IAA6BlC,MAAM,CAACqC,QAAP,CAAgBL,KAAhB,CAAsBE,IAA/E,CAAA;GAPF,CAAA;;EAUAm7B,cAAc,CAACn7C,IAAf,GAAsB,YAAtB,CAAA;EACAm7C,cAAc,CAACv7B,aAAf,GAA+B;AAC7B;AACAzG,IAAAA,CAAC,EAAE,CAF0B;AAG7B0G,IAAAA,eAAe,EAAE,IAHY;AAI7Bk8B,IAAAA,OAAO,EAAE,MAJoB;AAK7B;AACAzK,IAAAA,MAAM,EAAE,CAAC,KAAD,EAAQ,KAAR,CANqB;AAO7BC,IAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,KAAJ,CAPqB;AAQ7B;AACAviD,IAAAA,SAAS,EAAE,IATkB;AAU7BR,IAAAA,UAAU,EAAE,EAViB;AAW7B;AACAmjD,IAAAA,QAAQ,EAAE,CAZmB;AAa7B;AACA;AACAqK,IAAAA,iBAAiB,EAAE,CAfU;AAgB7B;AACAC,IAAAA,cAAc,EAAE,EAjBa;AAkB7B;AACA;AACA;AACA;AACAC,IAAAA,gBAAgB,EAAE,CAtBW;AAuB7B;AACAlK,IAAAA,gBAAgB,EAAE,IAxBW;AAyB7B;AACAhhC,IAAAA,IAAI,EAAE,CA1BuB;AA2B7BC,IAAAA,GAAG,EAAE,CA3BwB;AA4B7BkrC,IAAAA,KAAK,EAAE,CA5BsB;AA6B7BC,IAAAA,MAAM,EAAE,CA7BqB;AA8B7B1lD,IAAAA,KAAK,EAAE,IA9BsB;AA+B7BC,IAAAA,MAAM,EAAE,IA/BqB;AAgC7BmpB,IAAAA,KAAK,EAAE;AACL;AACA;AACAqmB,MAAAA,MAAM,EAAE,CAHH;AAILnmB,MAAAA,IAAI,EAAE,IAJD;AAKLw1B,MAAAA,QAAQ,EAAE,UALL;AAML;AACAzkC,MAAAA,QAAQ,EAAE,OAPL;AAQL;AACAsrC,MAAAA,OAAO,EAAE,MATJ;AAUL;AACA;AACAvH,MAAAA,YAAY,EAAE,KAZT;AAaL;AACAC,MAAAA,WAAW,EAAE,EAdR;AAeL;MACAuH,mBAAmB,EAAE,CAhBhB;AAiBL;AACA;;KAlD2B;AAqD7B;AACA/F,IAAAA,SAAS,EAAE;AACTv2B,MAAAA,IAAI,EAAE,IADG;AAET;AACA/vB,MAAAA,MAAM,EAAE,EAHC;AAIT;AACAssD,MAAAA,OAAO,EAAE,EALA;AAMTn9C,MAAAA,MAAM,EAAE,KANC;AAOTu4C,MAAAA,YAAY,EAAE,EAPL;AAQTC,MAAAA,eAAe,EAAE,EARR;AASTh5B,MAAAA,SAAS,EAAE;AACT;AACAloB,QAAAA,KAAK,EAAE,CAFE;AAGTsJ,QAAAA,IAAI,EAAE,OAAA;AAHG,OAAA;KA/DgB;AAqE7Bsf,IAAAA,SAAS,EAAE;AACTzM,MAAAA,WAAW,EAAE,CADJ;AAET2pC,MAAAA,UAAU,EAAE,OAAA;KAvEe;AAyE7BC,IAAAA,eAAe,EAAE,IAzEY;AA0E7BC,IAAAA,gBAAgB,EAAE;AAChBnqD,MAAAA,KAAK,EAAE,WADS;AAEhBH,MAAAA,OAAO,EAAE,CAAA;KA5EkB;AA8E7BunD,IAAAA,WAAW,EAAE;AACX;AACAgD,MAAAA,WAAW,EAAE,IAAA;KAhFc;AAkF7Bx8B,IAAAA,QAAQ,EAAE;AACR5M,MAAAA,KAAK,EAAE,IADC;AAERqpC,MAAAA,SAAS,EAAE,CAAA;KApFgB;AAsF7B;AACAC,IAAAA,iBAAiB,EAAE,IAvFU;AAwF7B;AACAjE,IAAAA,aAAa,EAAE,WAzFc;AA0F7BkE,IAAAA,iBAAiB,EAAE,IA1FU;AA2F7B;AACAC,IAAAA,mBAAmB,EAAE,YA5FQ;AA6F7BC,IAAAA,qBAAqB,EAAE,YA7FM;AA8F7BC,IAAAA,uBAAuB,EAAE,GA9FI;AA+F7Bt8B,IAAAA,eAAe,EAAE,YAAA;GA/FnB,CAAA;AAiGA,EAAA,OAAOw6B,cAAP,CAAA;AACD,CAxKD,CAwKEl6B,WAxKF,CAFA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0Be,SAASi8B,kBAAT,CAA4Bpf,UAA5B,EAAwC;EACrD,OAAO;AACLA,IAAAA,UAAU,EAAEA,UADP;AAEL5wC,IAAAA,KAAK,EAAE,SAAA,KAAA,CAAUy2B,WAAV,EAAuBqX,OAAvB,EAAgC;AACrC,MAAA,IAAI7Z,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACAmC,MAAAA,IAAI,CAACyxB,UAAL,CAAgB,UAAUj2B,GAAV,EAAe;AAC7B;AACA,QAAA,IAAIuO,QAAQ,GAAG/J,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAf,CAAA;QACA,IAAIgyB,QAAQ,GAAGh8B,IAAI,CAACiE,GAAL,CAAS8F,QAAT,EAAmBvO,GAAnB,CAAf,CAAA;;AAEA,QAAA,IAAIhgB,QAAQ,CAACwgD,QAAD,CAAR,IAAsB,CAACrsD,KAAK,CAACqsD,QAAD,CAA5B,IAA0CA,QAAQ,GAAG,CAAzD,EAA4D;AAC1D,UAAA,OAAO,KAAP,CAAA;AACD,SAAA;;AAED,QAAA,OAAO,IAAP,CAAA;OATF,CAAA,CAAA;AAWD,KAAA;GAfH,CAAA;AAiBD;;AC7DD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCO,SAAS9sC,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4BiX,OAA5B,CAAA,CAAA;EACAjpC,SAAS,CAACiyB,mBAAV,CAA8B4Y,cAA9B,CAAA,CAAA;AACAiC,EAAAA,4BAA4B,CAAC,KAAD,EAAQ9sC,SAAS,CAACqgC,cAAlB,CAA5B,CAAA;EACArgC,SAAS,CAACmyB,cAAV,CAAyB4a,OAAK,CAAC5L,SAAD,EAAY,KAAZ,CAA9B,CAAA,CAAA;AACAnhC,EAAAA,SAAS,CAACuyB,iBAAV,CAA4B4P,YAAU,CAAC,KAAD,CAAtC,CAAA,CAAA;AACAniC,EAAAA,SAAS,CAACuyB,iBAAV,CAA4Bqa,kBAAkB,CAAC,KAAD,CAA9C,CAAA,CAAA;AACD;;ACxDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,IAAII,kBAAkB;AACtB;AACA,UAAUnsC,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACksC,kBAAD,EAAqBnsC,MAArB,CAAT,CAAA;;AAEA,EAAA,SAASmsC,kBAAT,GAA8B;AAC5B,IAAA,IAAIjsC,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAas9C,kBAAkB,CAACt9C,IAAhC,CAAA;IACAqR,KAAK,CAACuM,eAAN,GAAwB,IAAxB,CAAA;AACA,IAAA,OAAOvM,KAAP,CAAA;AACD,GAAA;;EAEDisC,kBAAkB,CAACrwD,SAAnB,CAA6B4wB,cAA7B,GAA8C,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;AACvE,IAAA,OAAO9c,gBAAgB,CAAC,IAAD,EAAO,IAAP,EAAa;AAClCC,MAAAA,kBAAkB,EAAE,IAAA;AADc,KAAb,CAAvB,CAAA;GADF,CAAA;;AAMAm/B,EAAAA,kBAAkB,CAACrwD,SAAnB,CAA6B22C,cAA7B,GAA8C,YAAY;AACxD,IAAA,IAAIhjB,WAAW,GAAG,IAAK9C,CAAAA,MAAL,CAAY8C,WAA9B,CAAA;;IAEA,IAAIA,WAAW,IAAI,IAAnB,EAAyB;AACvB;MACA,OAAO,IAAA,CAAK9C,MAAL,CAAYxuB,KAAZ,GAAoB,GAApB,GAA0B,IAAK81B,CAAAA,GAAL,CAAS,aAAT,CAAjC,CAAA;AACD,KAAA;;AAED,IAAA,OAAOxE,WAAP,CAAA;GARF,CAAA;;AAWA08B,EAAAA,kBAAkB,CAACrwD,SAAnB,CAA6B42C,uBAA7B,GAAuD,YAAY;AACjE,IAAA,IAAIC,oBAAoB,GAAG,IAAKhmB,CAAAA,MAAL,CAAYgmB,oBAAvC,CAAA;;IAEA,IAAIA,oBAAoB,IAAI,IAA5B,EAAkC;AAChC;MACA,OAAO,IAAA,CAAKhmB,MAAL,CAAYxuB,KAAZ,GAAoB,GAApB,GAA0B,IAAK81B,CAAAA,GAAL,CAAS,sBAAT,CAAjC,CAAA;AACD,KAAA;;AAED,IAAA,OAAO0e,oBAAP,CAAA;GARF,CAAA;;EAWAwZ,kBAAkB,CAACrwD,SAAnB,CAA6B82C,aAA7B,GAA6C,UAAU3iB,SAAV,EAAqBD,IAArB,EAA2BhsB,SAA3B,EAAsC;IACjF,OAAOA,SAAS,CAAC0yB,KAAV,CAAgB1G,IAAI,CAACyH,aAAL,CAAmBxH,SAAnB,CAAhB,CAAP,CAAA;GADF,CAAA;;AAIAk8B,EAAAA,kBAAkB,CAACrwD,SAAnB,CAA6BswD,YAA7B,GAA4C,YAAY;AACtD;AACA,IAAA,OAAO,IAAKv+B,CAAAA,OAAL,EAAe6V,CAAAA,KAAf,EAAyB,GAAA,IAAA,CAAKgP,uBAAL,EAAzB,GAA0D,IAAA,CAAK/iC,EAA/D,GAAoE,EAA3E,CAAA;GAFF,CAAA;;EAKAw8C,kBAAkB,CAACt9C,IAAnB,GAA0B,gBAA1B,CAAA;AACAs9C,EAAAA,kBAAkB,CAAC39B,YAAnB,GAAkC,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,EAAyB,YAAzB,EAAuC,UAAvC,CAAlC,CAAA;EACA29B,kBAAkB,CAAC19B,aAAnB,GAAmC;AACjC5B,IAAAA,gBAAgB,EAAE,aADe;AAEjC;AACA7E,IAAAA,CAAC,EAAE,CAH8B;AAIjC0G,IAAAA,eAAe,EAAE,IAJgB;AAKjCS,IAAAA,UAAU,EAAE,EALqB;AAMjC;AACAhxB,IAAAA,KAAK,EAAE,KAP0B;AAQjC;AACAi0C,IAAAA,cAAc,EAAE,IATiB;AAUjC;AACAjkB,IAAAA,SAAS,EAAE;MACTltB,OAAO,EAAE,GADA;;KAXsB;AAejC+tB,IAAAA,QAAQ,EAAE;AACR5M,MAAAA,KAAK,EAAE,IAAA;KAhBwB;AAkBjC;AACA;AACAmI,IAAAA,IAAI,EAAE,IApB2B;AAqBjC6oB,IAAAA,MAAM,EAAE;AACNjlB,MAAAA,SAAS,EAAE;AACT8kB,QAAAA,WAAW,EAAE,SAAA;AADJ,OAAA;KAtBoB;AA0BjCtjB,IAAAA,mBAAmB,EAAE;AACnBC,MAAAA,WAAW,EAAE,OAAA;AADM,KA1BY;;GAAnC,CAAA;AA+BA,EAAA,OAAOu8B,kBAAP,CAAA;AACD,CAlFD,CAkFEr8B,WAlFF,CAFA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA,IAAIu8B,oBAAoB,GAAG,CAA3B,CAAA;;AAEA,IAAIC,oBAAoB;AACxB;AACA,YAAY;EACV,SAASA,oBAAT,GAAgC,EAAE;;AAElC,EAAA,OAAOA,oBAAP,CAAA;AACD,CAJD,EAFA,CAAA;;AAQA,IAAIC,eAAe;AACnB;AACA,UAAUvsC,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACssC,eAAD,EAAkBvsC,MAAlB,CAAT,CAAA;;EAEA,SAASusC,eAAT,CAAyBjpD,IAAzB,EAA+B;IAC7B,IAAI4c,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB7c,IAAlB,CAAA,IAA2B,IAAvC,CAAA;;IAEA4c,KAAK,CAACssC,IAAN,GAAa,CAAb,CAAA;AACAtsC,IAAAA,KAAK,CAACusC,YAAN,GAAqB,CAAC,CAAtB,CAAA;AACA,IAAA,OAAOvsC,KAAP,CAAA;AACD,GAAA;;AAEDqsC,EAAAA,eAAe,CAACzwD,SAAhB,CAA0BukC,eAA1B,GAA4C,YAAY;IACtD,OAAO,IAAIisB,oBAAJ,EAAP,CAAA;GADF,CAAA;;AAIAC,EAAAA,eAAe,CAACzwD,SAAhB,CAA0BC,KAA1B,GAAkC,YAAY;IAC5C,IAAKguB,CAAAA,QAAL,GAAgB,KAAhB,CAAA;IACA,IAAKyiC,CAAAA,IAAL,GAAY,CAAZ,CAAA;GAFF,CAAA;;EAKAD,eAAe,CAACzwD,SAAhB,CAA0BwL,SAA1B,GAAsC,UAAUH,IAAV,EAAgBC,KAAhB,EAAuB;AAC3D,IAAA,IAAI0G,MAAM,GAAG1G,KAAK,CAAC0G,MAAnB,CAAA;AACA,IAAA,IAAImgB,IAAI,GAAG7mB,KAAK,CAAC6mB,IAAjB,CAAA;IACA,IAAIy+B,WAAW,GAAG,IAAA,CAAKA,WAAvB,CAAA;AACA,IAAA,IAAIC,gBAAgB,GAAGD,WAAW,CAACtlD,KAAnC,CAAA;IACA,IAAI0a,GAAG,GAAG3a,IAAI,CAAC4a,UAAL,GAAkB5a,IAAI,CAAC4a,UAAL,EAAlB,GAAsC5a,IAAhD,CAAA;IACA,IAAIylD,QAAQ,GAAG9qC,GAAG,IAAImM,IAAI,CAAC,CAAD,CAAJ,GAAUo+B,oBAAhC,CAAA;IACA,IAAIQ,aAAa,GAAG,IAAA,CAAKA,aAAzB,CAAA;IACA,IAAIrtD,CAAJ,CAR2D;;AAU3D,IAAA,IAAIotD,QAAJ,EAAc;MACZ,IAAKE,CAAAA,IAAL,GAAYhrC,GAAZ,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;IAED,IAAKgrC,CAAAA,IAAL,GAAY,IAAZ,CAAA;;IAEA,KAAKttD,CAAC,GAAG,IAAA,CAAKgtD,IAAd,EAAoBhtD,CAAC,GAAGsO,MAAM,CAAChP,MAA/B,GAAwC;AACtC,MAAA,IAAIvC,CAAC,GAAGuR,MAAM,CAACtO,CAAC,EAAF,CAAd,CAAA;AACA,MAAA,IAAIhD,CAAC,GAAGsR,MAAM,CAACtO,CAAC,EAAF,CAAd,CAAA;;MAEA,IAAIG,KAAK,CAACpD,CAAD,CAAL,IAAYoD,KAAK,CAACnD,CAAD,CAArB,EAA0B;AACxB,QAAA,SAAA;AACD,OAAA;;MAED,IAAIqwD,aAAa,IAAI,CAACA,aAAa,CAACh2B,OAAd,CAAsBt6B,CAAtB,EAAyBC,CAAzB,CAAtB,EAAmD;AACjD,QAAA,SAAA;AACD,OAAA;;MAEDmwD,gBAAgB,CAACpwD,CAAjB,GAAqBA,CAAC,GAAG0xB,IAAI,CAAC,CAAD,CAAJ,GAAU,CAAnC,CAAA;MACA0+B,gBAAgB,CAACnwD,CAAjB,GAAqBA,CAAC,GAAGyxB,IAAI,CAAC,CAAD,CAAJ,GAAU,CAAnC,CAAA;AACA0+B,MAAAA,gBAAgB,CAACpnD,KAAjB,GAAyB0oB,IAAI,CAAC,CAAD,CAA7B,CAAA;AACA0+B,MAAAA,gBAAgB,CAACnnD,MAAjB,GAA0ByoB,IAAI,CAAC,CAAD,CAA9B,CAAA;AACAy+B,MAAAA,WAAW,CAACplD,SAAZ,CAAsBH,IAAtB,EAA4BwlD,gBAA5B,EAA8C,IAA9C,CAAA,CAAA;AACD,KAAA;;IAED,IAAI,IAAA,CAAKnsC,WAAT,EAAsB;MACpB,IAAKgsC,CAAAA,IAAL,GAAYhtD,CAAZ,CAAA;MACA,IAAKuqB,CAAAA,QAAL,GAAgB,IAAhB,CAAA;AACD,KAAA;GAvCH,CAAA;;AA0CAwiC,EAAAA,eAAe,CAACzwD,SAAhB,CAA0B8lB,UAA1B,GAAuC,YAAY;IACjD,IAAIxa,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAI0G,MAAM,GAAG1G,KAAK,CAAC0G,MAAnB,CAAA;AACA,IAAA,IAAImgB,IAAI,GAAG7mB,KAAK,CAAC6mB,IAAjB,CAAA;IACA,IAAInM,GAAG,GAAG,IAAA,CAAKgrC,IAAf,CAAA;IACA,IAAID,aAAa,GAAG,IAAA,CAAKA,aAAzB,CAAA;AACA,IAAA,IAAIrtD,CAAJ,CAAA;;IAEA,IAAI,CAACsiB,GAAL,EAAU;AACR,MAAA,OAAA;AACD,KAVgD;;;IAajD,KAAKtiB,CAAC,GAAG,IAAA,CAAKgtD,IAAd,EAAoBhtD,CAAC,GAAGsO,MAAM,CAAChP,MAA/B,GAAwC;AACtC,MAAA,IAAIvC,CAAC,GAAGuR,MAAM,CAACtO,CAAC,EAAF,CAAd,CAAA;AACA,MAAA,IAAIhD,CAAC,GAAGsR,MAAM,CAACtO,CAAC,EAAF,CAAd,CAAA;;MAEA,IAAIG,KAAK,CAACpD,CAAD,CAAL,IAAYoD,KAAK,CAACnD,CAAD,CAArB,EAA0B;AACxB,QAAA,SAAA;AACD,OAAA;;MAED,IAAIqwD,aAAa,IAAI,CAACA,aAAa,CAACh2B,OAAd,CAAsBt6B,CAAtB,EAAyBC,CAAzB,CAAtB,EAAmD;AACjD,QAAA,SAAA;AACD,OAVqC;AAWtC;;;AAGAslB,MAAAA,GAAG,CAACiE,QAAJ,CAAaxpB,CAAC,GAAG0xB,IAAI,CAAC,CAAD,CAAJ,GAAU,CAA3B,EAA8BzxB,CAAC,GAAGyxB,IAAI,CAAC,CAAD,CAAJ,GAAU,CAA5C,EAA+CA,IAAI,CAAC,CAAD,CAAnD,EAAwDA,IAAI,CAAC,CAAD,CAA5D,CAAA,CAAA;AACD,KAAA;;IAED,IAAI,IAAA,CAAKzN,WAAT,EAAsB;MACpB,IAAKgsC,CAAAA,IAAL,GAAYhtD,CAAZ,CAAA;MACA,IAAKuqB,CAAAA,QAAL,GAAgB,IAAhB,CAAA;AACD,KAAA;GAjCH,CAAA;;EAoCAwiC,eAAe,CAACzwD,SAAhB,CAA0BixD,aAA1B,GAA0C,UAAUxwD,CAAV,EAAaC,CAAb,EAAgB;AACxD;AACA;IACA,IAAI4K,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAI0G,MAAM,GAAG1G,KAAK,CAAC0G,MAAnB,CAAA;AACA,IAAA,IAAImgB,IAAI,GAAG7mB,KAAK,CAAC6mB,IAAjB,CAAA;AACA,IAAA,IAAItvB,CAAC,GAAGrD,IAAI,CAAC0iB,GAAL,CAASiQ,IAAI,CAAC,CAAD,CAAb,EAAkB,CAAlB,CAAR,CAAA;AACA,IAAA,IAAIrvB,CAAC,GAAGtD,IAAI,CAAC0iB,GAAL,CAASiQ,IAAI,CAAC,CAAD,CAAb,EAAkB,CAAlB,CAAR,CAPwD;AAQxD;AACA;;AAEA,IAAA,KAAK,IAAIzC,GAAG,GAAG1d,MAAM,CAAChP,MAAP,GAAgB,CAAhB,GAAoB,CAAnC,EAAsC0sB,GAAG,IAAI,CAA7C,EAAgDA,GAAG,EAAnD,EAAuD;AACrD,MAAA,IAAIhsB,CAAC,GAAGgsB,GAAG,GAAG,CAAd,CAAA;MACA,IAAIptB,EAAE,GAAG0P,MAAM,CAACtO,CAAD,CAAN,GAAYb,CAAC,GAAG,CAAzB,CAAA;MACA,IAAIN,EAAE,GAAGyP,MAAM,CAACtO,CAAC,GAAG,CAAL,CAAN,GAAgBZ,CAAC,GAAG,CAA7B,CAAA;;AAEA,MAAA,IAAIrC,CAAC,IAAI6B,EAAL,IAAW5B,CAAC,IAAI6B,EAAhB,IAAsB9B,CAAC,IAAI6B,EAAE,GAAGO,CAAhC,IAAqCnC,CAAC,IAAI6B,EAAE,GAAGO,CAAnD,EAAsD;AACpD,QAAA,OAAO4sB,GAAP,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAO,CAAC,CAAR,CAAA;GArBF,CAAA;;EAwBA+gC,eAAe,CAACzwD,SAAhB,CAA0B+6B,OAA1B,GAAoC,UAAUt6B,CAAV,EAAaC,CAAb,EAAgB;IAClD,IAAIwwD,QAAQ,GAAG,IAAKC,CAAAA,qBAAL,CAA2B1wD,CAA3B,EAA8BC,CAA9B,CAAf,CAAA;AACA,IAAA,IAAIkC,IAAI,GAAG,IAAK+lD,CAAAA,eAAL,EAAX,CAAA;AACAloD,IAAAA,CAAC,GAAGywD,QAAQ,CAAC,CAAD,CAAZ,CAAA;AACAxwD,IAAAA,CAAC,GAAGwwD,QAAQ,CAAC,CAAD,CAAZ,CAAA;;IAEA,IAAItuD,IAAI,CAACm4B,OAAL,CAAat6B,CAAb,EAAgBC,CAAhB,CAAJ,EAAwB;AACtB;MACA,IAAIk9C,OAAO,GAAG,IAAA,CAAK+S,YAAL,GAAoB,IAAKM,CAAAA,aAAL,CAAmBxwD,CAAnB,EAAsBC,CAAtB,CAAlC,CAAA;MACA,OAAOk9C,OAAO,IAAI,CAAlB,CAAA;AACD,KAAA;;IAED,IAAK+S,CAAAA,YAAL,GAAoB,CAAC,CAArB,CAAA;AACA,IAAA,OAAO,KAAP,CAAA;GAbF,CAAA;;AAgBAF,EAAAA,eAAe,CAACzwD,SAAhB,CAA0B2oD,eAA1B,GAA4C,YAAY;AACtD;IACA,IAAI/lD,IAAI,GAAG,IAAA,CAAKwuD,KAAhB,CAAA;;IAEA,IAAI,CAACxuD,IAAL,EAAW;MACT,IAAI0I,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,MAAA,IAAI0G,MAAM,GAAG1G,KAAK,CAAC0G,MAAnB,CAAA;AACA,MAAA,IAAImgB,IAAI,GAAG7mB,KAAK,CAAC6mB,IAAjB,CAAA;AACA,MAAA,IAAItvB,CAAC,GAAGsvB,IAAI,CAAC,CAAD,CAAZ,CAAA;AACA,MAAA,IAAIrvB,CAAC,GAAGqvB,IAAI,CAAC,CAAD,CAAZ,CAAA;MACA,IAAI4U,IAAI,GAAGxf,QAAX,CAAA;MACA,IAAIyf,IAAI,GAAGzf,QAAX,CAAA;MACA,IAAI0f,IAAI,GAAG,CAAC1f,QAAZ,CAAA;MACA,IAAI2f,IAAI,GAAG,CAAC3f,QAAZ,CAAA;;MAEA,KAAK,IAAI7jB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsO,MAAM,CAAChP,MAA3B,GAAoC;AAClC,QAAA,IAAIvC,CAAC,GAAGuR,MAAM,CAACtO,CAAC,EAAF,CAAd,CAAA;AACA,QAAA,IAAIhD,CAAC,GAAGsR,MAAM,CAACtO,CAAC,EAAF,CAAd,CAAA;QACAqjC,IAAI,GAAGvnC,IAAI,CAAC8iC,GAAL,CAAS7hC,CAAT,EAAYsmC,IAAZ,CAAP,CAAA;QACAE,IAAI,GAAGznC,IAAI,CAAC0iB,GAAL,CAASzhB,CAAT,EAAYwmC,IAAZ,CAAP,CAAA;QACAD,IAAI,GAAGxnC,IAAI,CAAC8iC,GAAL,CAAS5hC,CAAT,EAAYsmC,IAAZ,CAAP,CAAA;QACAE,IAAI,GAAG1nC,IAAI,CAAC0iB,GAAL,CAASxhB,CAAT,EAAYwmC,IAAZ,CAAP,CAAA;AACD,OAAA;;AAEDtkC,MAAAA,IAAI,GAAG,IAAA,CAAKwuD,KAAL,GAAa,IAAIr6B,YAAJ,CAAyBgQ,IAAI,GAAGlkC,CAAC,GAAG,CAApC,EAAuCmkC,IAAI,GAAGlkC,CAAC,GAAG,CAAlD,EAAqDmkC,IAAI,GAAGF,IAAP,GAAclkC,CAAnE,EAAsEqkC,IAAI,GAAGF,IAAP,GAAclkC,CAApF,CAApB,CAAA;AACD,KAAA;;AAED,IAAA,OAAOF,IAAP,CAAA;GA3BF,CAAA;;AA8BA,EAAA,OAAO6tD,eAAP,CAAA;AACD,CAzKD,CAyKE15B,IAzKF,CAFA,CAAA;;AA6KA,IAAIs6B,eAAe;AACnB;AACA,YAAY;AACV,EAAA,SAASA,eAAT,GAA2B;AACzB,IAAA,IAAA,CAAKhgC,KAAL,GAAa,IAAI0F,OAAJ,EAAb,CAAA;AACD,GAAA;AACD;AACF;AACA;;;EAGEs6B,eAAe,CAACrxD,SAAhB,CAA0B80B,UAA1B,GAAuC,UAAUZ,IAAV,EAAgB9C,GAAhB,EAAqB;AAC1D,IAAA,IAAA,CAAK+oB,MAAL,EAAA,CAAA;;AAEA,IAAA,IAAIre,QAAQ,GAAG,IAAKw1B,CAAAA,OAAL,EAAf,CAAA;;IAEAx1B,QAAQ,CAAC2T,QAAT,CAAkB;AAChBz9B,MAAAA,MAAM,EAAEkiB,IAAI,CAACwM,SAAL,CAAe,QAAf,CAAA;KADV,CAAA,CAAA;;AAIA,IAAA,IAAA,CAAK6wB,UAAL,CAAgBz1B,QAAhB,EAA0B5H,IAA1B,EAAgC9C,GAAhC,CAAA,CAAA;GATF,CAAA;;AAYAigC,EAAAA,eAAe,CAACrxD,SAAhB,CAA0By8B,YAA1B,GAAyC,UAAUvI,IAAV,EAAgB;AACvD,IAAA,IAAIliB,MAAM,GAAGkiB,IAAI,CAACwM,SAAL,CAAe,QAAf,CAAb,CAAA;AACA,IAAA,IAAA,CAAKrP,KAAL,CAAWmgC,SAAX,CAAqB,UAAU5pD,KAAV,EAAiB;AACpC,MAAA,IAAIA,KAAK,CAAC6pD,UAAN,IAAoB,IAAxB,EAA8B;QAC5B,IAAI1kD,GAAG,GAAG,CAACnF,KAAK,CAAC8pD,QAAN,GAAiB9pD,KAAK,CAAC6pD,UAAxB,IAAsC,CAAhD,CAAA;QACA,IAAIE,UAAU,GAAG/pD,KAAK,CAAC6pD,UAAN,GAAmB,CAAnB,GAAuB,CAAxC,CAAA;QACAz/C,MAAM,GAAG,IAAI4/C,YAAJ,CAAiB5/C,MAAM,CAAC6/C,MAAxB,EAAgCF,UAAhC,EAA4C5kD,GAA5C,CAAT,CAAA;AACD,OAAA;;AAEDnF,MAAAA,KAAK,CAAC6nC,QAAN,CAAe,QAAf,EAAyBz9B,MAAzB,EAPoC;;AASpCpK,MAAAA,KAAK,CAAC3H,KAAN,EAAA,CAAA;KATF,CAAA,CAAA;GAFF,CAAA;;AAeAoxD,EAAAA,eAAe,CAACrxD,SAAhB,CAA0B48B,wBAA1B,GAAqD,UAAU1I,IAAV,EAAgB;AACnE,IAAA,IAAA,CAAKimB,MAAL,EAAA,CAAA;GADF,CAAA;;EAIAkX,eAAe,CAACrxD,SAAhB,CAA0B88B,iBAA1B,GAA8C,UAAUC,UAAV,EAAsB7I,IAAtB,EAA4B9C,GAA5B,EAAiC;AAC7E,IAAA,IAAI0gC,SAAS,GAAG,IAAA,CAAKC,SAAL,CAAe,CAAf,CAAhB,CAAA;AACA,IAAA,IAAI//C,MAAM,GAAGkiB,IAAI,CAACwM,SAAL,CAAe,QAAf,CAAb,CAAA;IACA,IAAID,SAAS,GAAGqxB,SAAS,IAAIA,SAAS,CAACxmD,KAAV,CAAgB0G,MAA7C,CAH6E;AAI7E;;AAEA,IAAA,IAAIyuB,SAAS,IAAIA,SAAS,CAACz9B,MAAV,GAAmB,GAApC,EAAyC;AACvC,MAAA,IAAIgvD,MAAM,GAAGvxB,SAAS,CAACz9B,MAAvB,CAAA;AACA,MAAA,IAAI29B,SAAS,GAAG,IAAIixB,YAAJ,CAAiBI,MAAM,GAAGhgD,MAAM,CAAChP,MAAjC,CAAhB,CAFuC;;MAIvC29B,SAAS,CAACsxB,GAAV,CAAcxxB,SAAd,CAAA,CAAA;AACAE,MAAAA,SAAS,CAACsxB,GAAV,CAAcjgD,MAAd,EAAsBggD,MAAtB,EALuC;;AAOvCF,MAAAA,SAAS,CAACJ,QAAV,GAAqB30B,UAAU,CAACG,GAAhC,CAAA;MACA40B,SAAS,CAACriB,QAAV,CAAmB;AACjBz9B,QAAAA,MAAM,EAAE2uB,SAAAA;OADV,CAAA,CAAA;AAGD,KAXD,MAWO;AACL;MACA,IAAKoxB,CAAAA,SAAL,GAAiB,EAAjB,CAAA;;AAEA,MAAA,IAAIj2B,QAAQ,GAAG,IAAKw1B,CAAAA,OAAL,EAAf,CAAA;;AAEAx1B,MAAAA,QAAQ,CAAC21B,UAAT,GAAsB10B,UAAU,CAACpP,KAAjC,CAAA;AACAmO,MAAAA,QAAQ,CAAC41B,QAAT,GAAoB30B,UAAU,CAACG,GAA/B,CAAA;MACApB,QAAQ,CAACpX,WAAT,GAAuB,IAAvB,CAAA;MACAoX,QAAQ,CAAC2T,QAAT,CAAkB;AAChBz9B,QAAAA,MAAM,EAAEA,MAAAA;OADV,CAAA,CAAA;;AAIA,MAAA,IAAA,CAAKu/C,UAAL,CAAgBz1B,QAAhB,EAA0B5H,IAA1B,EAAgC9C,GAAhC,CAAA,CAAA;AACD,KAAA;GA/BH,CAAA;;AAkCAigC,EAAAA,eAAe,CAACrxD,SAAhB,CAA0Bo9B,YAA1B,GAAyC,UAAU/N,EAAV,EAAc;IACrD,IAAK0iC,CAAAA,SAAL,CAAe,CAAf,CAAqB1iC,IAAAA,EAAE,CAAC,IAAA,CAAK0iC,SAAL,CAAe,CAAf,CAAD,CAAvB,CAAA;GADF,CAAA;;AAIAV,EAAAA,eAAe,CAACrxD,SAAhB,CAA0BsxD,OAA1B,GAAoC,YAAY;AAC9C,IAAA,IAAIx1B,QAAQ,GAAG,IAAI20B,eAAJ,CAAoB;AACjCl6B,MAAAA,MAAM,EAAE,SAAA;AADyB,KAApB,CAAf,CAAA;AAGA,IAAA,IAAA,CAAKlF,KAAL,CAAWO,GAAX,CAAekK,QAAf,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKi2B,SAAL,CAAehuD,IAAf,CAAoB+3B,QAApB,CAAA,CAAA;;AAEA,IAAA,OAAOA,QAAP,CAAA;GARF,CAAA;;EAWAu1B,eAAe,CAACrxD,SAAhB,CAA0BuxD,UAA1B,GAAuC,UAAUz1B,QAAV,EAAoB5H,IAApB,EAA0B9C,GAA1B,EAA+B;AACpE,IAAA,IAAIuF,SAAS,GAAGzC,IAAI,CAACyC,SAArB,CAAA;IACAvF,GAAG,GAAGA,GAAG,IAAI,EAAb,CAAA;AACA,IAAA,IAAIe,IAAI,GAAG+B,IAAI,CAAClC,SAAL,CAAe,YAAf,CAAX,CAAA;AACA8J,IAAAA,QAAQ,CAAC2T,QAAT,CAAkB,MAAlB,EAA0Btd,IAAI,YAAY6e,KAAhB,GAAwB7e,IAAxB,GAA+B,CAACA,IAAD,EAAOA,IAAP,CAAzD,CAAA,CAAA;IACA2J,QAAQ,CAACi1B,aAAT,GAAyB3/B,GAAG,CAAC0J,SAAJ,IAAiB,IAA1C,CALoE;;IAOpEgB,QAAQ,CAAC80B,WAAT,GAAuBp/B,cAAY,CAAC0C,IAAI,CAAClC,SAAL,CAAe,QAAf,CAAD,EAA2B,CAA3B,EAA8B,CAA9B,EAAiC,CAAjC,EAAoC,CAApC,CAAnC,CAPoE;;AASpE8J,IAAAA,QAAQ,CAAChD,QAAT,GAAoBgD,QAAQ,CAAC80B,WAAT,CAAqB93B,QAAzC,CAAA;IACA,IAAIo5B,aAAa,GAAGp2B,QAAQ,CAACxwB,KAAT,CAAe6mB,IAAf,CAAoB,CAApB,CAAA,GAAyBo+B,oBAA7C,CAAA;IACAz0B,QAAQ,CAACnD,QAAT;IACAhC,SAAS,CAACsB,QAAV,CAAmB,WAAnB,EAAgCC,YAAhC,CAA6Cg6B,aAAa,GAAG,CAAC,OAAD,EAAU,YAAV,EAAwB,aAAxB,CAAH,GAA4C,CAAC,OAAD,CAAtG,CADA,CAAA,CAAA;AAEA,IAAA,IAAIC,WAAW,GAAGj+B,IAAI,CAAClC,SAAL,CAAe,OAAf,CAAlB,CAAA;AACA,IAAA,IAAIyG,WAAW,GAAG05B,WAAW,IAAIA,WAAW,CAAC5tD,IAA7C,CAAA;;AAEA,IAAA,IAAIk0B,WAAJ,EAAiB;MACfqD,QAAQ,CAAChD,QAAT,CAAkBL,WAAlB,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAI25B,MAAM,GAAGl4B,SAAS,CAAC4B,QAAD,CAAtB,CApBoE;AAqBpE;;AAEAs2B,IAAAA,MAAM,CAACriB,WAAP,GAAqBpZ,SAAS,CAACoZ,WAA/B,CAAA;AACAjU,IAAAA,QAAQ,CAAC0hB,EAAT,CAAY,WAAZ,EAAyB,UAAUl6C,CAAV,EAAa;MACpC8uD,MAAM,CAACj+B,SAAP,GAAmB,IAAnB,CAAA;AACA,MAAA,IAAIA,SAAS,GAAG2H,QAAQ,CAAC60B,YAAzB,CAAA;;MAEA,IAAIx8B,SAAS,IAAI,CAAjB,EAAoB;AAClB;QACAi+B,MAAM,CAACj+B,SAAP,GAAmBA,SAAS,IAAI2H,QAAQ,CAAC21B,UAAT,IAAuB,CAA3B,CAA5B,CAAA;AACD,OAAA;KAPH,CAAA,CAAA;GAxBF,CAAA;;AAmCAJ,EAAAA,eAAe,CAACrxD,SAAhB,CAA0Bo8B,MAA1B,GAAmC,YAAY;AAC7C,IAAA,IAAA,CAAK+d,MAAL,EAAA,CAAA;GADF,CAAA;;AAIAkX,EAAAA,eAAe,CAACrxD,SAAhB,CAA0Bm6C,MAA1B,GAAmC,YAAY;IAC7C,IAAK4X,CAAAA,SAAL,GAAiB,EAAjB,CAAA;IACA,IAAK1gC,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;GAFF,CAAA;;AAKA,EAAA,OAAOo8B,eAAP,CAAA;AACD,CAtID,EAFA;;ACxOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,IAAIgB,WAAW;AACf;AACA,UAAUnuC,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACkuC,WAAD,EAAcnuC,MAAd,CAAT,CAAA;;AAEA,EAAA,SAASmuC,WAAT,GAAuB;AACrB,IAAA,IAAIjuC,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAas/C,WAAW,CAACt/C,IAAzB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDiuC,WAAW,CAACryD,SAAZ,CAAsB8tC,MAAtB,GAA+B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AAClE,IAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;;IAEA,IAAI4b,UAAU,GAAG,IAAK2kB,CAAAA,iBAAL,CAAuBp+B,IAAvB,EAA6BwC,WAA7B,CAAjB,CAAA;;AAEAiX,IAAAA,UAAU,CAAC7Y,UAAX,CAAsBZ,IAAtB,EAA4B;AAC1B;AACA;AACA;AACA;AACA4G,MAAAA,SAAS,EAAE,IAAA,CAAKy3B,aAAL,CAAmB77B,WAAnB,CAAA;KALb,CAAA,CAAA;IAOA,IAAK87B,CAAAA,SAAL,GAAiB,IAAjB,CAAA;GAZF,CAAA;;EAeAH,WAAW,CAACryD,SAAZ,CAAsBk6C,wBAAtB,GAAiD,UAAUxjB,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AACpF,IAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;;IAEA,IAAI4b,UAAU,GAAG,IAAK2kB,CAAAA,iBAAL,CAAuBp+B,IAAvB,EAA6BwC,WAA7B,CAAjB,CAAA;;IAEAiX,UAAU,CAAC/Q,wBAAX,CAAoC1I,IAApC,CAAA,CAAA;IACA,IAAKs+B,CAAAA,SAAL,GAAiB,KAAjB,CAAA;GANF,CAAA;;EASAH,WAAW,CAACryD,SAAZ,CAAsBq6C,iBAAtB,GAA0C,UAAUtd,UAAV,EAAsBrG,WAAtB,EAAmCqX,OAAnC,EAA4C;IACpF,IAAKH,CAAAA,WAAL,CAAiB9Q,iBAAjB,CAAmCC,UAAnC,EAA+CrG,WAAW,CAAC3E,OAAZ,EAA/C,EAAsE;AACpE+I,MAAAA,SAAS,EAAE,IAAA,CAAKy3B,aAAL,CAAmB77B,WAAnB,CAAA;KADb,CAAA,CAAA;;IAIA,IAAK87B,CAAAA,SAAL,GAAiBz1B,UAAU,CAACG,GAAX,KAAmBxG,WAAW,CAAC3E,OAAZ,EAAsB6V,CAAAA,KAAtB,EAApC,CAAA;GALF,CAAA;;EAQAyqB,WAAW,CAACryD,SAAZ,CAAsByyD,eAAtB,GAAwC,UAAU/7B,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AAC3E,IAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAD2E;AAE3E;;IAEA,IAAKV,CAAAA,KAAL,CAAWxH,KAAX,EAAA,CAAA;;IAEA,IAAI,CAAC,KAAK2oC,SAAN,IAAmBt+B,IAAI,CAAC0T,KAAL,EAAe,GAAA,GAAtC,EAA2C;MACzC,OAAO;AACL3L,QAAAA,MAAM,EAAE,IAAA;OADV,CAAA;AAGD,KAJD,MAIO;AACL,MAAA,IAAIy2B,GAAG,GAAGpf,YAAY,CAAC,EAAD,CAAZ,CAAiBrzC,KAAjB,CAAuBy2B,WAAvB,EAAoCqX,OAApC,EAA6CxxB,GAA7C,CAAV,CAAA;;MAEA,IAAIm2C,GAAG,CAACze,QAAR,EAAkB;QAChBye,GAAG,CAACze,QAAJ,CAAa;AACXtmB,UAAAA,KAAK,EAAE,CADI;AAEXuP,UAAAA,GAAG,EAAEhJ,IAAI,CAAC0T,KAAL,EAFM;UAGXA,KAAK,EAAE1T,IAAI,CAAC0T,KAAL,EAAA;AAHI,SAAb,EAIG1T,IAJH,CAAA,CAAA;AAKD,OAAA;;AAED,MAAA,IAAA,CAAK0Z,WAAL,CAAiBnR,YAAjB,CAA8BvI,IAA9B,CAAA,CAAA;AACD,KAAA;GAtBH,CAAA;;AAyBAm+B,EAAAA,WAAW,CAACryD,SAAZ,CAAsBo9B,YAAtB,GAAqC,UAAU/N,EAAV,EAAc;IACjD,IAAKue,CAAAA,WAAL,IAAoB,IAAKA,CAAAA,WAAL,CAAiBxQ,YAAjB,CAA8B/N,EAA9B,CAApB,CAAA;GADF,CAAA;;AAIAgjC,EAAAA,WAAW,CAACryD,SAAZ,CAAsBuyD,aAAtB,GAAsC,UAAU77B,WAAV,EAAuB;AAC3D,IAAA,IAAI5F,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;IACA,IAAI4hC,QAAQ,GAAG7hC,QAAQ,IAAIA,QAAQ,CAACgV,OAArB,IAAgChV,QAAQ,CAACgV,OAAT,EAA/C,CAAA;IACA,OAAOpP,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,EAAwB,IAAxB,CAAA,GAAgCw6B,QAAhC,GAA2C,IAAlD,CAAA;GAHF,CAAA;;EAMAN,WAAW,CAACryD,SAAZ,CAAsBsyD,iBAAtB,GAA0C,UAAUp+B,IAAV,EAAgBwC,WAAhB,EAA6B;IACrE,IAAIiX,UAAU,GAAG,IAAA,CAAKC,WAAtB,CAAA;AACA,IAAA,IAAI8F,eAAe,GAAGhd,WAAW,CAACgd,eAAlC,CAAA;AACA,IAAA,IAAI8G,WAAW,GAAG9G,eAAe,CAACrxC,KAAlC,CAAA;;AAEA,IAAA,IAAI,CAACsrC,UAAD,IAAe6M,WAAW,KAAK,IAAA,CAAKT,YAAxC,EAAsD;AACpDpM,MAAAA,UAAU,IAAIA,UAAU,CAACvR,MAAX,EAAd,CAAA;AACAuR,MAAAA,UAAU,GAAG,IAAA,CAAKC,WAAL,GAAmB4M,WAAW,GAAG,IAAI6W,eAAJ,EAAH,GAA2B,IAAIn2B,UAAJ,EAAtE,CAAA;MACA,IAAK6e,CAAAA,YAAL,GAAoBS,WAApB,CAAA;MACA,IAAKnpB,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAK5D,KAAL,CAAWO,GAAX,CAAe+b,UAAU,CAACtc,KAA1B,CAAA,CAAA;AACA,IAAA,OAAOsc,UAAP,CAAA;GAbF,CAAA;;EAgBA0kB,WAAW,CAACryD,SAAZ,CAAsBo8B,MAAtB,GAA+B,UAAU2R,OAAV,EAAmBxxB,GAAnB,EAAwB;IACrD,IAAKqxB,CAAAA,WAAL,IAAoB,IAAKA,CAAAA,WAAL,CAAiBxR,MAAjB,CAAwB,IAAxB,CAApB,CAAA;IACA,IAAKwR,CAAAA,WAAL,GAAmB,IAAnB,CAAA;GAFF,CAAA;;AAKAykB,EAAAA,WAAW,CAACryD,SAAZ,CAAsB4iB,OAAtB,GAAgC,YAAY,EAA5C,CAAA;;EAEAyvC,WAAW,CAACt/C,IAAZ,GAAmB,SAAnB,CAAA;AACA,EAAA,OAAOs/C,WAAP,CAAA;AACD,CAtGD,CAsGEnhB,SAtGF,CAFA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAI0hB,SAAS;AACb;AACA,UAAU1uC,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACyuC,SAAD,EAAY1uC,MAAZ,CAAT,CAAA;;AAEA,EAAA,SAAS0uC,SAAT,GAAqB;AACnB,IAAA,OAAO1uC,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;;EAEDivD,SAAS,CAAC7/C,IAAV,GAAiB,MAAjB,CAAA;AACA6/C,EAAAA,SAAS,CAAClgC,YAAV,GAAyB,CAAC,OAAD,EAAU,OAAV,CAAzB,CAAA;EACAkgC,SAAS,CAACC,UAAV,GAAuB,KAAvB,CAAA;EACAD,SAAS,CAACjgC,aAAV,GAA0B;AACxBI,IAAAA,IAAI,EAAE,KADkB;AAExB;AACA7G,IAAAA,CAAC,EAAE,CAHqB;AAIxBnI,IAAAA,IAAI,EAAE,KAJkB;AAKxBC,IAAAA,GAAG,EAAE,EALmB;AAMxBkrC,IAAAA,KAAK,EAAE,KANiB;AAOxBC,IAAAA,MAAM,EAAE,EAPgB;AAQxB;AACA2D,IAAAA,YAAY,EAAE,KATU;AAUxB;AACA;AACA5xC,IAAAA,eAAe,EAAE,eAZO;AAaxB0E,IAAAA,WAAW,EAAE,CAbW;AAcxBuxB,IAAAA,WAAW,EAAE,MAAA;GAdf,CAAA;AAgBA,EAAA,OAAOyb,SAAP,CAAA;AACD,CA3BD,CA2BEG,cA3BF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,IAAIC,kBAAkB;AACtB;AACA,UAAU9uC,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC6uC,kBAAD,EAAqB9uC,MAArB,CAAT,CAAA;;AAEA,EAAA,SAAS8uC,kBAAT,GAA8B;AAC5B,IAAA,OAAO9uC,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;;AAEDqvD,EAAAA,kBAAkB,CAAChzD,SAAnB,CAA6BizD,gBAA7B,GAAgD,YAAY;IAC1D,OAAO,IAAA,CAAKC,sBAAL,CAA4B,MAA5B,EAAoCC,gBAApC,CAAsDC,CAAAA,MAAtD,CAA6D,CAA7D,CAAP,CAAA;GADF,CAAA;;EAIAJ,kBAAkB,CAACjgD,IAAnB,GAA0B,iBAA1B,CAAA;AACA,EAAA,OAAOigD,kBAAP,CAAA;AACD,CAbD,CAaED,cAbF,CAFA,CAAA;AAkBArrB,KAAA,CAAasrB,kBAAb,EAAiCK,oBAAjC,CAAA;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BA,IAAI1gC,eAAa,GAAG;AAClBI,EAAAA,IAAI,EAAE,IADY;AAElB;AACA7G,EAAAA,CAAC,EAAE,CAHe;AAIlB;AACAga,EAAAA,OAAO,EAAE,KALS;AAMlB;AACAx/B,EAAAA,IAAI,EAAE,EAPY;AAQlB;AACA4sD,EAAAA,YAAY,EAAE,KATI;AAUlB;AACAC,EAAAA,UAAU,EAAE,IAXM;AAYlBC,EAAAA,YAAY,EAAE;AACZC,IAAAA,QAAQ,EAAE,IADE;AAEZC,IAAAA,QAAQ,EAAE,KAFE;AAGZC,IAAAA,WAAW,EAAE,GAAA;GAfG;AAiBlB;AACAC,EAAAA,aAAa,EAAE,EAlBG;AAmBlB;AACAC,EAAAA,OAAO,EAAE,EApBS;AAqBlB;AACAr9B,EAAAA,MAAM,EAAE,KAtBU;AAuBlB;AACAs9B,EAAAA,YAAY,EAAE,KAxBI;AAyBlBC,EAAAA,OAAO,EAAE;AACPhhC,IAAAA,IAAI,EAAE,KAAA;GA1BU;AA4BlBihC,EAAAA,WAAW,EAAE,EA5BK;AA6BlBC,EAAAA,QAAQ,EAAE;AACRlhC,IAAAA,IAAI,EAAE,IADE;AAERmhC,IAAAA,MAAM,EAAE,IAFA;AAGRC,IAAAA,eAAe,EAAE,IAHT;AAIRxiC,IAAAA,SAAS,EAAE;AACTrsB,MAAAA,KAAK,EAAE,SADE;AAETmE,MAAAA,KAAK,EAAE,CAFE;AAGTsJ,MAAAA,IAAI,EAAE,OAAA;KAPA;AASR;AACAqf,IAAAA,MAAM,EAAE,CAAC,MAAD,EAAS,MAAT,CAVA;AAWRiB,IAAAA,UAAU,EAAE,CAAC,EAAD,EAAK,EAAL,CAAA;GAxCI;AA0ClB+gC,EAAAA,QAAQ,EAAE;AACRrhC,IAAAA,IAAI,EAAE,IADE;AAER;AACAgvB,IAAAA,MAAM,EAAE,KAHA;AAIR;AACA/+C,IAAAA,MAAM,EAAE,CALA;AAMR2uB,IAAAA,SAAS,EAAE;AACTloB,MAAAA,KAAK,EAAE,CAAA;AADE,KAAA;GAhDK;AAoDlB4qD,EAAAA,SAAS,EAAE;AACTthC,IAAAA,IAAI,EAAE,IADG;AAET;AACAgvB,IAAAA,MAAM,EAAE,KAHC;AAIT7I,IAAAA,MAAM,EAAE,CAJC;AAKT;AACAob,IAAAA,YAAY,EAAE,IANL;AAOT;AACAC,IAAAA,YAAY,EAAE,IARL;AAST5uC,IAAAA,MAAM,EAAE,CATC;AAUT;AACA7Q,IAAAA,QAAQ,EAAE,EAAA;GA/DM;AAiElB0/C,EAAAA,SAAS,EAAE;AACTzhC,IAAAA,IAAI,EAAE,IADG;AAETpB,IAAAA,SAAS,EAAE;MACTrsB,KAAK,EAAE,CAAC,SAAD,CADE;AAETmE,MAAAA,KAAK,EAAE,CAFE;AAGTsJ,MAAAA,IAAI,EAAE,OAAA;AAHG,KAAA;GAnEK;AAyElB0hD,EAAAA,SAAS,EAAE;AACT1hC,IAAAA,IAAI,EAAE,KADG;AAET2hC,IAAAA,SAAS,EAAE;AACTpvD,MAAAA,KAAK,EAAE,CAAC,uBAAD,EAA0B,uBAA1B,CAAA;AADE,KAAA;AAFF,GAAA;AAzEO,CAApB,CAAA;AAgFA,IAAIwlC,YAAY,GAAGpD,KAAA,CAAa;AAC9B;AACAitB,EAAAA,WAAW,EAAE,IAFiB;AAG9B;AACAC,EAAAA,aAAa,EAAE,IAJe;AAK9B;AACA;AACA;AACAJ,EAAAA,SAAS,EAAE;AACTzhC,IAAAA,IAAI,EAAE,KAAA;GATsB;AAW9BqhC,EAAAA,QAAQ,EAAE;AACR;AACAS,IAAAA,cAAc,EAAE,KAFR;AAGRC,IAAAA,QAAQ,EAAE,MAAA;GAdkB;AAgB9BT,EAAAA,SAAS,EAAE;AACTS,IAAAA,QAAQ,EAAE,MAAA;AADD,GAAA;AAhBmB,CAAb,EAmBhBniC,eAnBgB,CAAnB,CAAA;AAoBA,IAAI+K,SAAS,GAAGgK,KAAA,CAAa;AAC3BitB,EAAAA,WAAW,EAAE,CAAC,CAAD,EAAI,CAAJ,CADc;AAE3BV,EAAAA,QAAQ,EAAE;AACR;AACAlhC,IAAAA,IAAI,EAAE,MAAA;GAJmB;AAM3BqhC,EAAAA,QAAQ,EAAE;AACR;AACArhC,IAAAA,IAAI,EAAE,MAAA;GARmB;AAU3B;AACA;AACAgiC,EAAAA,WAAW,EAAE,CAZc;AAa3BC,EAAAA,SAAS,EAAE;AACT;AACAjiC,IAAAA,IAAI,EAAE,KAFG;AAGT;AACAgiC,IAAAA,WAAW,EAAE,CAJJ;AAKT;AACA/xD,IAAAA,MAAM,EAAE,CANC;AAOT;AACA2uB,IAAAA,SAAS,EAAE;AAAA,KAAA;GArBc;AAwB3BsjC,EAAAA,cAAc,EAAE;AACdliC,IAAAA,IAAI,EAAE,KADQ;AAEdpB,IAAAA,SAAS,EAAE;AACTrsB,MAAAA,KAAK,EAAE,SADE;AAETmE,MAAAA,KAAK,EAAE,CAAA;AAFE,KAAA;AAFG,GAAA;AAxBW,CAAb,EA+BbkpB,eA/Ba,CAAhB,CAAA;AAgCA,IAAIuiC,QAAQ,GAAGxtB,KAAA,CAAa;AAC1BqtB,EAAAA,WAAW,EAAE,CADa;AAE1BV,EAAAA,SAAS,EAAE;AACT;AACAC,IAAAA,YAAY,EAAE,KAFL;AAGTC,IAAAA,YAAY,EAAE,KAHL;AAITY,IAAAA,IAAI,EAAE;AACJC,MAAAA,OAAO,EAAE;AACPjgD,QAAAA,UAAU,EAAE,MAAA;AADL,OAAA;AADL,KAAA;GANkB;AAY1Bq/C,EAAAA,SAAS,EAAE;AACTzhC,IAAAA,IAAI,EAAE,KAAA;AADG,GAAA;AAZe,CAAb,EAeZ2K,SAfY,CAAf,CAAA;AAgBA,IAAI23B,OAAO,GAAG3tB,QAAA,CAAgB;AAC5B4tB,EAAAA,OAAO,EAAE,EAAA;AADmB,CAAhB,EAEX53B,SAFW,CAAd,CAAA;AAGA,kBAAe;AACb63B,EAAAA,QAAQ,EAAEzqB,YADG;AAEb5L,EAAAA,KAAK,EAAExB,SAFM;AAGbnuB,EAAAA,IAAI,EAAE2lD,QAHO;AAIbM,EAAAA,GAAG,EAAEH,OAAAA;AAJQ,CAAf;;AClMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAII,UAAU,GAAG;AACtBv2B,EAAAA,KAAK,EAAE,CADe;AAEtBq2B,EAAAA,QAAQ,EAAE,CAFY;AAGtBhmD,EAAAA,IAAI,EAAE,CAHgB;AAItBimD,EAAAA,GAAG,EAAE,CAAA;AAJiB,CAAjB;;AC1CP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA;AACA;AACA;AACA;;AAEe,SAASE,gBAAT,CAA0BryC,SAA1B,EAAqCsyC,QAArC,EAA+CC,kBAA/C,EAAmEC,kBAAnE,EAAuF;AACpGnpD,EAAAA,MAAI,CAAC+oD,UAAD,EAAa,UAAUK,CAAV,EAAaC,QAAb,EAAuB;AACtC,IAAA,IAAIpjC,aAAa,GAAGqjC,KAAK,CAACA,KAAK,CAAC,EAAD,EAAKC,WAAW,CAACF,QAAD,CAAhB,EAA4B,IAA5B,CAAN,EAAyCF,kBAAzC,EAA6D,IAA7D,CAAzB,CAAA;;AAEA,IAAA,IAAIK,SAAS;AACb;AACA,IAAA,UAAUhyC,MAAV,EAAkB;AAChBC,MAAAA,WAAS,CAAC+xC,SAAD,EAAYhyC,MAAZ,CAAT,CAAA;;AAEA,MAAA,SAASgyC,SAAT,GAAqB;AACnB,QAAA,IAAI9xC,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,QAAAA,KAAK,CAACrR,IAAN,GAAa4iD,QAAQ,GAAG,OAAX,GAAqBI,QAAlC,CAAA;AACA,QAAA,OAAO3xC,KAAP,CAAA;AACD,OAAA;;MAED8xC,SAAS,CAACl2D,SAAV,CAAoBm2D,oBAApB,GAA2C,UAAUtlC,MAAV,EAAkBkd,OAAlB,EAA2B;AACpE,QAAA,IAAI8kB,UAAU,GAAGuD,eAAe,CAAC,IAAD,CAAhC,CAAA;QACA,IAAIC,mBAAmB,GAAGxD,UAAU,GAAGyD,eAAe,CAACzlC,MAAD,CAAlB,GAA6B,EAAjE,CAAA;AACA,QAAA,IAAI0lC,UAAU,GAAGxoB,OAAO,CAACyoB,QAAR,EAAjB,CAAA;QACAR,KAAK,CAACnlC,MAAD,EAAS0lC,UAAU,CAACp+B,GAAX,CAAe49B,QAAQ,GAAG,MAA1B,CAAT,CAAL,CAAA;AACAC,QAAAA,KAAK,CAACnlC,MAAD,EAAS,IAAK4lC,CAAAA,gBAAL,EAAT,CAAL,CAAA;AACA5lC,QAAAA,MAAM,CAAC9d,IAAP,GAAc2jD,WAAW,CAAC7lC,MAAD,CAAzB,CAAA;;AAEA,QAAA,IAAIgiC,UAAJ,EAAgB;AACd8D,UAAAA,gBAAgB,CAAC9lC,MAAD,EAASwlC,mBAAT,EAA8BxD,UAA9B,CAAhB,CAAA;AACD,SAAA;OAVH,CAAA;;AAaAqD,MAAAA,SAAS,CAACl2D,SAAV,CAAoB42D,aAApB,GAAoC,YAAY;QAC9C,IAAIC,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;;AAEA,QAAA,IAAIgmC,UAAU,CAAC9jD,IAAX,KAAoB,UAAxB,EAAoC;AAClC,UAAA,IAAA,CAAK+jD,aAAL,GAAqBC,WAAW,CAACC,iBAAZ,CAA8B,IAA9B,CAArB,CAAA;AACD,SAAA;OALH,CAAA;AAOA;AACN;AACA;AACA;;;AAGMd,MAAAA,SAAS,CAACl2D,SAAV,CAAoBi3D,aAApB,GAAoC,UAAUpJ,OAAV,EAAmB;AACrD,QAAA,IAAIh9B,MAAM,GAAG,IAAKA,CAAAA,MAAlB,CADqD;AAErD;;AAEA,QAAA,IAAIA,MAAM,CAAC9d,IAAP,KAAgB,UAApB,EAAgC;AAC9B,UAAA,IAAI86C,OAAJ,EAAa;YACX,OAAOh9B,MAAM,CAACqD,IAAd,CAAA;AACD,WAAA;;UAED,OAAO,IAAA,CAAK4iC,aAAL,CAAmBxY,UAA1B,CAAA;AACD,SAAA;OAVH,CAAA;;AAaA4X,MAAAA,SAAS,CAACl2D,SAAV,CAAoBq+C,cAApB,GAAqC,YAAY;AAC/C,QAAA,OAAO,KAAKyY,aAAZ,CAAA;OADF,CAAA;;AAIAZ,MAAAA,SAAS,CAACnjD,IAAV,GAAiB4iD,QAAQ,GAAG,OAAX,GAAqBI,QAAtC,CAAA;MACAG,SAAS,CAACvjC,aAAV,GAA0BA,aAA1B,CAAA;AACA,MAAA,OAAOujC,SAAP,CAAA;KAvDF,CAwDEN,kBAxDF,CAFA,CAAA;;IA4DAvyC,SAAS,CAAC6zC,sBAAV,CAAiChB,SAAjC,CAAA,CAAA;AACD,GAhEG,CAAJ,CAAA;AAiEA7yC,EAAAA,SAAS,CAAC8zC,wBAAV,CAAmCxB,QAAQ,GAAG,MAA9C,EAAsDe,WAAtD,CAAA,CAAA;AACD,CAAA;;AAED,SAASA,WAAT,CAAqB7lC,MAArB,EAA6B;AAC3B;EACA,OAAOA,MAAM,CAAC9d,IAAP,KAAgB8d,MAAM,CAACqD,IAAP,GAAc,UAAd,GAA2B,OAA3C,CAAP,CAAA;AACD;;AC7HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA,IAAIkjC,SAAS;AACb;AACA,YAAY;EACV,SAASA,SAAT,CAAmB1wD,IAAnB,EAAyB;IACvB,IAAKqM,CAAAA,IAAL,GAAY,WAAZ,CAAA;IACA,IAAKskD,CAAAA,QAAL,GAAgB,EAAhB,CAAA;IACA,IAAKC,CAAAA,KAAL,GAAa,EAAb,CAAA;AACA,IAAA,IAAA,CAAK5wD,IAAL,GAAYA,IAAI,IAAI,EAApB,CAAA;AACD,GAAA;;AAED0wD,EAAAA,SAAS,CAACp3D,SAAV,CAAoB4pC,OAApB,GAA8B,UAAU7L,GAAV,EAAe;AAC3C,IAAA,OAAO,IAAKu5B,CAAAA,KAAL,CAAWv5B,GAAX,CAAP,CAAA;GADF,CAAA;;AAIAq5B,EAAAA,SAAS,CAACp3D,SAAV,CAAoBu3D,OAApB,GAA8B,YAAY;IACxC,OAAO7vB,GAAA,CAAW,KAAK2vB,QAAhB,EAA0B,UAAUt5B,GAAV,EAAe;AAC9C,MAAA,OAAO,IAAKu5B,CAAAA,KAAL,CAAWv5B,GAAX,CAAP,CAAA;KADK,EAEJ,IAFI,CAAP,CAAA;GADF,CAAA;;AAMAq5B,EAAAA,SAAS,CAACp3D,SAAV,CAAoB+qC,cAApB,GAAqC,UAAUysB,SAAV,EAAqB;AACxDA,IAAAA,SAAS,GAAGA,SAAS,CAAC1yD,WAAV,EAAZ,CAAA;IACA,OAAO4iC,MAAA,CAAc,IAAA,CAAK6vB,OAAL,EAAd,EAA8B,UAAU5tB,IAAV,EAAgB;AACnD,MAAA,OAAOA,IAAI,CAACrjB,KAAL,CAAWvT,IAAX,KAAoBykD,SAA3B,CAAA;AACD,KAFM,CAAP,CAAA;GAFF,CAAA;;AAOAJ,EAAAA,SAAS,CAACp3D,SAAV,CAAoBy3D,OAApB,GAA8B,UAAU9tB,IAAV,EAAgB;AAC5C,IAAA,IAAI5L,GAAG,GAAG4L,IAAI,CAAC5L,GAAf,CAAA;AACA,IAAA,IAAA,CAAKu5B,KAAL,CAAWv5B,GAAX,CAAA,GAAkB4L,IAAlB,CAAA;;AAEA,IAAA,IAAA,CAAK0tB,QAAL,CAActzD,IAAd,CAAmBg6B,GAAnB,CAAA,CAAA;GAJF,CAAA;;AAOA,EAAA,OAAOq5B,SAAP,CAAA;AACD,CAjCD,EAFA,CAAA;;AAqCA;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BO,IAAIM,qBAAqB,GAAG,CAAC,GAAD,EAAM,GAAN,CAA5B,CAAA;;AAEP,SAASC,2BAAT,CAAqCrxC,KAArC,EAA4C;EAC1C,OAAOA,KAAK,CAACvT,IAAN,KAAe,UAAf,IAA6BuT,KAAK,CAACvT,IAAN,KAAe,MAAnD,CAAA;AACD,CAAA;;AAED,IAAI6kD,WAAW;AACf;AACA,UAAU1zC,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACyzC,WAAD,EAAc1zC,MAAd,CAAT,CAAA;;AAEA,EAAA,SAAS0zC,WAAT,GAAuB;AACrB,IAAA,IAAIxzC,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;IAEAygB,KAAK,CAACrR,IAAN,GAAa,aAAb,CAAA;IACAqR,KAAK,CAACka,UAAN,GAAmBo5B,qBAAnB,CAAA;AACA,IAAA,OAAOtzC,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;AACA;;;AAGEwzC,EAAAA,WAAW,CAAC53D,SAAZ,CAAsB63D,mBAAtB,GAA4C,YAAY;AACtD,IAAA,IAAA,CAAKC,UAAL,GAAkB,IAAKC,CAAAA,aAAL,GAAqB,IAAvC,CAAA;AACA,IAAA,IAAIC,UAAU,GAAG,IAAA,CAAKpuB,OAAL,CAAa,GAAb,EAAkBtjB,KAAnC,CAAA;AACA,IAAA,IAAI2xC,UAAU,GAAG,IAAA,CAAKruB,OAAL,CAAa,GAAb,EAAkBtjB,KAAnC,CAAA;;IAEA,IAAI,CAACqxC,2BAA2B,CAACK,UAAD,CAA5B,IAA4C,CAACL,2BAA2B,CAACM,UAAD,CAA5E,EAA0F;AACxF,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIC,YAAY,GAAGF,UAAU,CAACj5B,SAAX,EAAnB,CAAA;AACA,IAAA,IAAIo5B,YAAY,GAAGF,UAAU,CAACl5B,SAAX,EAAnB,CAAA;AACA,IAAA,IAAIpR,KAAK,GAAG,IAAA,CAAK0R,WAAL,CAAiB,CAAC64B,YAAY,CAAC,CAAD,CAAb,EAAkBC,YAAY,CAAC,CAAD,CAA9B,CAAjB,CAAZ,CAAA;AACA,IAAA,IAAIj7B,GAAG,GAAG,IAAA,CAAKmC,WAAL,CAAiB,CAAC64B,YAAY,CAAC,CAAD,CAAb,EAAkBC,YAAY,CAAC,CAAD,CAA9B,CAAjB,CAAV,CAAA;IACA,IAAIC,UAAU,GAAGF,YAAY,CAAC,CAAD,CAAZ,GAAkBA,YAAY,CAAC,CAAD,CAA/C,CAAA;IACA,IAAIG,UAAU,GAAGF,YAAY,CAAC,CAAD,CAAZ,GAAkBA,YAAY,CAAC,CAAD,CAA/C,CAAA;;AAEA,IAAA,IAAI,CAACC,UAAD,IAAe,CAACC,UAApB,EAAgC;AAC9B,MAAA,OAAA;AACD,KAlBqD;;;AAqBtD,IAAA,IAAItiD,MAAM,GAAG,CAACmnB,GAAG,CAAC,CAAD,CAAH,GAASvP,KAAK,CAAC,CAAD,CAAf,IAAsByqC,UAAnC,CAAA;AACA,IAAA,IAAIpiD,MAAM,GAAG,CAACknB,GAAG,CAAC,CAAD,CAAH,GAASvP,KAAK,CAAC,CAAD,CAAf,IAAsB0qC,UAAnC,CAAA;AACA,IAAA,IAAIC,UAAU,GAAG3qC,KAAK,CAAC,CAAD,CAAL,GAAWuqC,YAAY,CAAC,CAAD,CAAZ,GAAkBniD,MAA9C,CAAA;AACA,IAAA,IAAIwiD,UAAU,GAAG5qC,KAAK,CAAC,CAAD,CAAL,GAAWwqC,YAAY,CAAC,CAAD,CAAZ,GAAkBniD,MAA9C,CAAA;AACA,IAAA,IAAIvE,CAAC,GAAG,IAAA,CAAKqmD,UAAL,GAAkB,CAAC/hD,MAAD,EAAS,CAAT,EAAY,CAAZ,EAAeC,MAAf,EAAuBsiD,UAAvB,EAAmCC,UAAnC,CAA1B,CAAA;AACA,IAAA,IAAA,CAAKR,aAAL,GAAqBS,MAAM,CAAC,EAAD,EAAK/mD,CAAL,CAA3B,CAAA;GA1BF,CAAA;AA4BA;AACF;AACA;;;AAGEmmD,EAAAA,WAAW,CAAC53D,SAAZ,CAAsBy9B,WAAtB,GAAoC,YAAY;AAC9C,IAAA,OAAO,KAAKsN,cAAL,CAAoB,SAApB,CAA+B,CAAA,CAA/B,KAAqC,IAAKA,CAAAA,cAAL,CAAoB,MAApB,CAAA,CAA4B,CAA5B,CAArC,IAAuE,KAAKnB,OAAL,CAAa,GAAb,CAA9E,CAAA;GADF,CAAA;;AAIAguB,EAAAA,WAAW,CAAC53D,SAAZ,CAAsB2sD,YAAtB,GAAqC,UAAU/xB,KAAV,EAAiB;AACpD,IAAA,IAAI69B,KAAK,GAAG,IAAA,CAAK7uB,OAAL,CAAa,GAAb,CAAZ,CAAA;AACA,IAAA,IAAI8uB,KAAK,GAAG,IAAA,CAAK9uB,OAAL,CAAa,GAAb,CAAZ,CAAA;IACA,OAAO6uB,KAAK,CAAC19B,OAAN,CAAc09B,KAAK,CAACE,YAAN,CAAmB/9B,KAAK,CAAC,CAAD,CAAxB,CAAd,CAA+C89B,IAAAA,KAAK,CAAC39B,OAAN,CAAc29B,KAAK,CAACC,YAAN,CAAmB/9B,KAAK,CAAC,CAAD,CAAxB,CAAd,CAAtD,CAAA;GAHF,CAAA;;AAMAg9B,EAAAA,WAAW,CAAC53D,SAAZ,CAAsB44D,WAAtB,GAAoC,UAAU1kC,IAAV,EAAgB;IAClD,OAAO,IAAA,CAAK0V,OAAL,CAAa,GAAb,EAAkBgvB,WAAlB,CAA8B1kC,IAAI,CAAC,CAAD,CAAlC,KAA0C,IAAK0V,CAAAA,OAAL,CAAa,GAAb,CAAkBgvB,CAAAA,WAAlB,CAA8B1kC,IAAI,CAAC,CAAD,CAAlC,CAAjD,CAAA;GADF,CAAA;;EAIA0jC,WAAW,CAAC53D,SAAZ,CAAsB64D,WAAtB,GAAoC,UAAUC,KAAV,EAAiBC,KAAjB,EAAwB;AAC1D,IAAA,IAAIC,SAAS,GAAG,IAAA,CAAK35B,WAAL,CAAiBy5B,KAAjB,CAAhB,CAAA;AACA,IAAA,IAAIG,SAAS,GAAG,IAAA,CAAK55B,WAAL,CAAiB05B,KAAjB,CAAhB,CAAA;AACA,IAAA,IAAIG,IAAI,GAAG,IAAKpzB,CAAAA,OAAL,EAAX,CAAA;AACA,IAAA,IAAIqzB,IAAI,GAAG,IAAIpyC,YAAJ,CAAiBiyC,SAAS,CAAC,CAAD,CAA1B,EAA+BA,SAAS,CAAC,CAAD,CAAxC,EAA6CC,SAAS,CAAC,CAAD,CAAT,GAAeD,SAAS,CAAC,CAAD,CAArE,EAA0EC,SAAS,CAAC,CAAD,CAAT,GAAeD,SAAS,CAAC,CAAD,CAAlG,CAAX,CAAA;AACA,IAAA,OAAOE,IAAI,CAACxxC,SAAL,CAAeyxC,IAAf,CAAP,CAAA;GALF,CAAA;;EAQAvB,WAAW,CAAC53D,SAAZ,CAAsBq/B,WAAtB,GAAoC,UAAUnL,IAAV,EAAgBklC,KAAhB,EAAuB/3C,GAAvB,EAA4B;IAC9DA,GAAG,GAAGA,GAAG,IAAI,EAAb,CAAA;AACA,IAAA,IAAIg4C,IAAI,GAAGnlC,IAAI,CAAC,CAAD,CAAf,CAAA;AACA,IAAA,IAAIolC,IAAI,GAAGplC,IAAI,CAAC,CAAD,CAAf,CAH8D;;IAK9D,IAAI,IAAA,CAAK4jC,UAAL;AAAA,OACDuB,IAAI,IAAI,IADP,IACepyC,QAAQ,CAACoyC,IAAD,CADvB,IACiCC,IAAI,IAAI,IADzC,IACiDryC,QAAQ,CAACqyC,IAAD,CAD7D,EACqE;MACnE,OAAO9O,cAAc,CAACnpC,GAAD,EAAM6S,IAAN,EAAY,IAAA,CAAK4jC,UAAjB,CAArB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIyB,KAAK,GAAG,IAAA,CAAK3vB,OAAL,CAAa,GAAb,CAAZ,CAAA;AACA,IAAA,IAAI4vB,KAAK,GAAG,IAAA,CAAK5vB,OAAL,CAAa,GAAb,CAAZ,CAAA;AACAvoB,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASk4C,KAAK,CAACxvB,aAAN,CAAoBwvB,KAAK,CAACvvB,WAAN,CAAkBqvB,IAAlB,EAAwBD,KAAxB,CAApB,CAAT,CAAA;AACA/3C,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASm4C,KAAK,CAACzvB,aAAN,CAAoByvB,KAAK,CAACxvB,WAAN,CAAkBsvB,IAAlB,EAAwBF,KAAxB,CAApB,CAAT,CAAA;AACA,IAAA,OAAO/3C,GAAP,CAAA;GAdF,CAAA;;EAiBAu2C,WAAW,CAAC53D,SAAZ,CAAsBk2C,SAAtB,GAAkC,UAAUhiB,IAAV,EAAgB7S,GAAhB,EAAqB;AACrD,IAAA,IAAIo4C,MAAM,GAAG,IAAA,CAAK7vB,OAAL,CAAa,GAAb,EAAkBtjB,KAA/B,CAAA;AACA,IAAA,IAAIozC,MAAM,GAAG,IAAA,CAAK9vB,OAAL,CAAa,GAAb,EAAkBtjB,KAA/B,CAAA;AACA,IAAA,IAAIqzC,WAAW,GAAGF,MAAM,CAAC16B,SAAP,EAAlB,CAAA;AACA,IAAA,IAAI66B,WAAW,GAAGF,MAAM,CAAC36B,SAAP,EAAlB,CAAA;IACA,IAAIt+B,CAAC,GAAGg5D,MAAM,CAACI,KAAP,CAAa3lC,IAAI,CAAC,CAAD,CAAjB,CAAR,CAAA;IACA,IAAIxzB,CAAC,GAAGg5D,MAAM,CAACG,KAAP,CAAa3lC,IAAI,CAAC,CAAD,CAAjB,CAAR,CAAA;IACA7S,GAAG,GAAGA,GAAG,IAAI,EAAb,CAAA;IACAA,GAAG,CAAC,CAAD,CAAH,GAAS7hB,IAAI,CAAC8iC,GAAL,CAAS9iC,IAAI,CAAC0iB,GAAL,CAAS1iB,IAAI,CAAC8iC,GAAL,CAASq3B,WAAW,CAAC,CAAD,CAApB,EAAyBA,WAAW,CAAC,CAAD,CAApC,CAAT,EAAmDl5D,CAAnD,CAAT,EAAgEjB,IAAI,CAAC0iB,GAAL,CAASy3C,WAAW,CAAC,CAAD,CAApB,EAAyBA,WAAW,CAAC,CAAD,CAApC,CAAhE,CAAT,CAAA;IACAt4C,GAAG,CAAC,CAAD,CAAH,GAAS7hB,IAAI,CAAC8iC,GAAL,CAAS9iC,IAAI,CAAC0iB,GAAL,CAAS1iB,IAAI,CAAC8iC,GAAL,CAASs3B,WAAW,CAAC,CAAD,CAApB,EAAyBA,WAAW,CAAC,CAAD,CAApC,CAAT,EAAmDl5D,CAAnD,CAAT,EAAgElB,IAAI,CAAC0iB,GAAL,CAAS03C,WAAW,CAAC,CAAD,CAApB,EAAyBA,WAAW,CAAC,CAAD,CAApC,CAAhE,CAAT,CAAA;AACA,IAAA,OAAOv4C,GAAP,CAAA;GAVF,CAAA;;EAaAu2C,WAAW,CAAC53D,SAAZ,CAAsB85D,WAAtB,GAAoC,UAAUl/B,KAAV,EAAiBw+B,KAAjB,EAAwB;IAC1D,IAAI/3C,GAAG,GAAG,EAAV,CAAA;;IAEA,IAAI,IAAA,CAAK02C,aAAT,EAAwB;MACtB,OAAOvN,cAAc,CAACnpC,GAAD,EAAMuZ,KAAN,EAAa,IAAA,CAAKm9B,aAAlB,CAArB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIwB,KAAK,GAAG,IAAA,CAAK3vB,OAAL,CAAa,GAAb,CAAZ,CAAA;AACA,IAAA,IAAI4vB,KAAK,GAAG,IAAA,CAAK5vB,OAAL,CAAa,GAAb,CAAZ,CAAA;AACAvoB,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASk4C,KAAK,CAACQ,WAAN,CAAkBR,KAAK,CAACZ,YAAN,CAAmB/9B,KAAK,CAAC,CAAD,CAAxB,CAAlB,EAAgDw+B,KAAhD,CAAT,CAAA;AACA/3C,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASm4C,KAAK,CAACO,WAAN,CAAkBP,KAAK,CAACb,YAAN,CAAmB/9B,KAAK,CAAC,CAAD,CAAxB,CAAlB,EAAgDw+B,KAAhD,CAAT,CAAA;AACA,IAAA,OAAO/3C,GAAP,CAAA;GAXF,CAAA;;AAcAu2C,EAAAA,WAAW,CAAC53D,SAAZ,CAAsB29B,YAAtB,GAAqC,UAAUgM,IAAV,EAAgB;AACnD,IAAA,OAAO,IAAKC,CAAAA,OAAL,CAAaD,IAAI,CAAC5L,GAAL,KAAa,GAAb,GAAmB,GAAnB,GAAyB,GAAtC,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;;;AAGE65B,EAAAA,WAAW,CAAC53D,SAAZ,CAAsB8lC,OAAtB,GAAgC,YAAY;IAC1C,IAAIk0B,OAAO,GAAG,IAAKpwB,CAAAA,OAAL,CAAa,GAAb,CAAA,CAAkBqwB,eAAlB,EAAd,CAAA;IACA,IAAIC,OAAO,GAAG,IAAKtwB,CAAAA,OAAL,CAAa,GAAb,CAAA,CAAkBqwB,eAAlB,EAAd,CAAA;AACA,IAAA,IAAIx5D,CAAC,GAAGjB,IAAI,CAAC8iC,GAAL,CAAS03B,OAAO,CAAC,CAAD,CAAhB,EAAqBA,OAAO,CAAC,CAAD,CAA5B,CAAR,CAAA;AACA,IAAA,IAAIt5D,CAAC,GAAGlB,IAAI,CAAC8iC,GAAL,CAAS43B,OAAO,CAAC,CAAD,CAAhB,EAAqBA,OAAO,CAAC,CAAD,CAA5B,CAAR,CAAA;AACA,IAAA,IAAIzwD,KAAK,GAAGjK,IAAI,CAAC0iB,GAAL,CAAS83C,OAAO,CAAC,CAAD,CAAhB,EAAqBA,OAAO,CAAC,CAAD,CAA5B,IAAmCv5D,CAA/C,CAAA;AACA,IAAA,IAAIiJ,MAAM,GAAGlK,IAAI,CAAC0iB,GAAL,CAASg4C,OAAO,CAAC,CAAD,CAAhB,EAAqBA,OAAO,CAAC,CAAD,CAA5B,IAAmCx5D,CAAhD,CAAA;IACA,OAAO,IAAIqmB,YAAJ,CAAiBtmB,CAAjB,EAAoBC,CAApB,EAAuB+I,KAAvB,EAA8BC,MAA9B,CAAP,CAAA;GAPF,CAAA;;AAUA,EAAA,OAAOkuD,WAAP,CAAA;AACD,CAvID,CAuIER,SAvIF,CAFA,CAAA;;AA2IA;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAI+C,MAAM;AACV;AACA,UAAUj2C,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACg2C,MAAD,EAASj2C,MAAT,CAAT,CAAA;;EAEA,SAASi2C,MAAT,CAAgBp8B,GAAhB,EAAqBzX,KAArB,EAA4B8zC,WAA5B,EAAyCrE,QAAzC,EAAmDjyC,QAAnD,EAA6D;AAC3D,IAAA,IAAIM,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB0Z,GAAlB,EAAuBzX,KAAvB,EAA8B8zC,WAA9B,KAA8C,IAA1D,CAAA;AACA;AACJ;AACA;AACA;;;IAGIh2C,KAAK,CAAC66B,KAAN,GAAc,CAAd,CAAA;AACA76B,IAAAA,KAAK,CAACrR,IAAN,GAAagjD,QAAQ,IAAI,OAAzB,CAAA;AACA3xC,IAAAA,KAAK,CAACN,QAAN,GAAiBA,QAAQ,IAAI,QAA7B,CAAA;AACA,IAAA,OAAOM,KAAP,CAAA;AACD,GAAA;;AAED+1C,EAAAA,MAAM,CAACn6D,SAAP,CAAiBgmC,YAAjB,GAAgC,YAAY;IAC1C,IAAIliB,QAAQ,GAAG,IAAA,CAAKA,QAApB,CAAA;AACA,IAAA,OAAOA,QAAQ,KAAK,KAAb,IAAsBA,QAAQ,KAAK,QAA1C,CAAA;GAFF,CAAA;AAIA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGEq2C,EAAAA,MAAM,CAACn6D,SAAP,CAAiBi6D,eAAjB,GAAmC,UAAUI,GAAV,EAAe;AAChD,IAAA,IAAI/3C,GAAG,GAAG,IAAKyc,CAAAA,SAAL,EAAV,CAAA;IACAzc,GAAG,CAAC,CAAD,CAAH,GAAS,IAAA,CAAKynB,aAAL,CAAmBznB,GAAG,CAAC,CAAD,CAAtB,CAAT,CAAA;IACAA,GAAG,CAAC,CAAD,CAAH,GAAS,IAAA,CAAKynB,aAAL,CAAmBznB,GAAG,CAAC,CAAD,CAAtB,CAAT,CAAA;AACA+3C,IAAAA,GAAG,IAAI/3C,GAAG,CAAC,CAAD,CAAH,GAASA,GAAG,CAAC,CAAD,CAAnB,IAA0BA,GAAG,CAAC6nB,OAAJ,EAA1B,CAAA;AACA,IAAA,OAAO7nB,GAAP,CAAA;GALF,CAAA;;EAQA63C,MAAM,CAACn6D,SAAP,CAAiB85D,WAAjB,GAA+B,UAAUl/B,KAAV,EAAiBw+B,KAAjB,EAAwB;IACrD,OAAO,IAAA,CAAKW,WAAL,CAAiB,IAAA,CAAKpB,YAAL,CAAkB/9B,KAAK,CAAC,IAAKmD,CAAAA,GAAL,KAAa,GAAb,GAAmB,CAAnB,GAAuB,CAAxB,CAAvB,CAAjB,EAAqEq7B,KAArE,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;;;AAGEe,EAAAA,MAAM,CAACn6D,SAAP,CAAiB+jD,mBAAjB,GAAuC,UAAUpG,IAAV,EAAgB;AACrD,IAAA,IAAI,IAAK5qC,CAAAA,IAAL,KAAc,UAAlB,EAA8B;AAC5B,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKkpC,KAAL,CAAWprB,MAAX,CAAkBypC,gBAAlB,GAAqC3c,IAArC,CAAA;AACA,IAAA,IAAA,CAAKr3B,KAAL,CAAWi0C,WAAX,CAAuB5c,IAAvB,CAAA,CAAA;GANF,CAAA;;AASA,EAAA,OAAOwc,MAAP,CAAA;AACD,CA1DD,CA0DEK,IA1DF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA;AACA;AACA;AACA;;AAEO,SAAS5e,QAAT,CAAgB6e,SAAhB,EAA2Bza,SAA3B,EAAsC5uB,GAAtC,EAA2C;EAChDA,GAAG,GAAGA,GAAG,IAAI,EAAb,CAAA;AACA,EAAA,IAAIspC,IAAI,GAAGD,SAAS,CAAC1pC,gBAArB,CAAA;AACA,EAAA,IAAI4Y,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;EACA,IAAIiS,MAAM,GAAG,EAAb,CAAA;AACA,EAAA,IAAI+e,iBAAiB,GAAGhxB,IAAI,CAACixB,eAAL,EAAA,CAAuB,CAAvB,CAAxB,CAAA;AACA,EAAA,IAAIC,eAAe,GAAGlxB,IAAI,CAAC7lB,QAA3B,CAAA;AACA,EAAA,IAAIg3C,YAAY,GAAGH,iBAAiB,GAAG,QAAH,GAAcE,eAAlD,CAAA;AACA,EAAA,IAAIE,OAAO,GAAGpxB,IAAI,CAAC5L,GAAnB,CAAA;AACA,EAAA,IAAIn7B,IAAI,GAAG83D,IAAI,CAACM,OAAL,EAAX,CAAA;EACA,IAAIC,SAAS,GAAG,CAACr4D,IAAI,CAACnC,CAAN,EAASmC,IAAI,CAACnC,CAAL,GAASmC,IAAI,CAAC6G,KAAvB,EAA8B7G,IAAI,CAAClC,CAAnC,EAAsCkC,IAAI,CAAClC,CAAL,GAASkC,IAAI,CAAC8G,MAApD,CAAhB,CAAA;AACA,EAAA,IAAIgmB,GAAG,GAAG;AACR3L,IAAAA,IAAI,EAAE,CADE;AAERmrC,IAAAA,KAAK,EAAE,CAFC;AAGRlrC,IAAAA,GAAG,EAAE,CAHG;AAIRmrC,IAAAA,MAAM,EAAE,CAJA;AAKR+E,IAAAA,MAAM,EAAE,CAAA;GALV,CAAA;EAOA,IAAIgH,UAAU,GAAGlb,SAAS,CAAC7nB,GAAV,CAAc,QAAd,KAA2B,CAA5C,CAAA;AACA,EAAA,IAAIgjC,QAAQ,GAAGJ,OAAO,KAAK,GAAZ,GAAkB,CAACE,SAAS,CAAC,CAAD,CAAT,GAAeC,UAAhB,EAA4BD,SAAS,CAAC,CAAD,CAAT,GAAeC,UAA3C,CAAlB,GAA2E,CAACD,SAAS,CAAC,CAAD,CAAT,GAAeC,UAAhB,EAA4BD,SAAS,CAAC,CAAD,CAAT,GAAeC,UAA3C,CAA1F,CAAA;;AAEA,EAAA,IAAIP,iBAAJ,EAAuB;AACrB,IAAA,IAAIS,WAAW,GAAGT,iBAAiB,CAAC5wB,aAAlB,CAAgC4wB,iBAAiB,CAAC3wB,WAAlB,CAA8B,CAA9B,CAAhC,CAAlB,CAAA;IACAmxB,QAAQ,CAACzrC,GAAG,CAACwkC,MAAL,CAAR,GAAuB10D,IAAI,CAAC0iB,GAAL,CAAS1iB,IAAI,CAAC8iC,GAAL,CAAS84B,WAAT,EAAsBD,QAAQ,CAAC,CAAD,CAA9B,CAAT,EAA6CA,QAAQ,CAAC,CAAD,CAArD,CAAvB,CAAA;AACD,GAxB+C;;;AA2BhDvf,EAAAA,MAAM,CAAC93B,QAAP,GAAkB,CAACi3C,OAAO,KAAK,GAAZ,GAAkBI,QAAQ,CAACzrC,GAAG,CAACorC,YAAD,CAAJ,CAA1B,GAAgDG,SAAS,CAAC,CAAD,CAA1D,EAA+DF,OAAO,KAAK,GAAZ,GAAkBI,QAAQ,CAACzrC,GAAG,CAACorC,YAAD,CAAJ,CAA1B,GAAgDG,SAAS,CAAC,CAAD,CAAxH,CAAlB,CA3BgD;;AA6BhDrf,EAAAA,MAAM,CAACppB,QAAP,GAAkBhzB,IAAI,CAACI,EAAL,GAAU,CAAV,IAAem7D,OAAO,KAAK,GAAZ,GAAkB,CAAlB,GAAsB,CAArC,CAAlB,CA7BgD;;AA+BhD,EAAA,IAAIM,MAAM,GAAG;IACXr3C,GAAG,EAAE,CAAC,CADK;AAEXmrC,IAAAA,MAAM,EAAE,CAFG;IAGXprC,IAAI,EAAE,CAAC,CAHI;AAIXmrC,IAAAA,KAAK,EAAE,CAAA;GAJT,CAAA;AAMAtT,EAAAA,MAAM,CAAC0f,cAAP,GAAwB1f,MAAM,CAAC2f,aAAP,GAAuB3f,MAAM,CAAC4f,aAAP,GAAuBH,MAAM,CAACR,eAAD,CAA5E,CAAA;EACAjf,MAAM,CAAC6f,WAAP,GAAqBd,iBAAiB,GAAGQ,QAAQ,CAACzrC,GAAG,CAACmrC,eAAD,CAAJ,CAAR,GAAiCM,QAAQ,CAACzrC,GAAG,CAACwkC,MAAL,CAA5C,GAA2D,CAAjG,CAAA;;EAEA,IAAIlU,SAAS,CAAC7nB,GAAV,CAAc,CAAC,UAAD,EAAa,QAAb,CAAd,CAAJ,EAA2C;AACzCyjB,IAAAA,MAAM,CAAC2f,aAAP,GAAuB,CAAC3f,MAAM,CAAC2f,aAA/B,CAAA;AACD,GAAA;;AAED,EAAA,IAAI7zB,QAAA,CAAgBtW,GAAG,CAACsqC,WAApB,EAAiC1b,SAAS,CAAC7nB,GAAV,CAAc,CAAC,WAAD,EAAc,QAAd,CAAd,CAAjC,CAAJ,EAA8E;AAC5EyjB,IAAAA,MAAM,CAAC0f,cAAP,GAAwB,CAAC1f,MAAM,CAAC0f,cAAhC,CAAA;AACD,GA9C+C;;;EAiDhD,IAAInR,WAAW,GAAGnK,SAAS,CAAC7nB,GAAV,CAAc,CAAC,WAAD,EAAc,QAAd,CAAd,CAAlB,CAAA;AACAyjB,EAAAA,MAAM,CAACuO,WAAP,GAAqB2Q,YAAY,KAAK,KAAjB,GAAyB,CAAC3Q,WAA1B,GAAwCA,WAA7D,CAlDgD;;EAoDhDvO,MAAM,CAACxmB,EAAP,GAAY,CAAZ,CAAA;AACA,EAAA,OAAOwmB,MAAP,CAAA;AACD,CAAA;AACM,SAAS+f,mBAAT,CAA6BjlC,WAA7B,EAA0C;AAC/C,EAAA,OAAOA,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,MAAwC,aAA/C,CAAA;AACD,CAAA;AACM,SAASyjC,cAAT,CAAwBllC,WAAxB,EAAqC;AAC1C,EAAA,IAAImlC,YAAY,GAAG;AACjBC,IAAAA,UAAU,EAAE,IADK;AAEjBC,IAAAA,UAAU,EAAE,IAAA;GAFd,CAAA;EAIAr0B,MAAA,CAAYm0B,YAAZ,EAA0B,UAAU/F,CAAV,EAAa/uD,GAAb,EAAkB;IAC1C,IAAIgvD,QAAQ,GAAGhvD,GAAG,CAACoG,OAAJ,CAAY,QAAZ,EAAsB,EAAtB,CAAf,CAAA;AACA,IAAA,IAAI6yC,SAAS,GAAGtpB,WAAW,CAACw8B,sBAAZ,CAAmC6C,QAAnC,EAA6C5C,gBAA7C,CAAA,CAA+DC,MAA/D,CAAsE,CAAtE,CAAhB,CAAA;;AAEA,IAAA,IAAIh8C,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC,IAAI,CAAC0oC,SAAL,EAAgB;AACd,QAAA,MAAM,IAAIhvB,KAAJ,CAAU+kC,QAAQ,GAAG,IAAX,GAAkBruB,SAAA,CAAiBhR,WAAW,CAACyB,GAAZ,CAAgB49B,QAAQ,GAAG,OAA3B,CAAjB,EAAsDr/B,WAAW,CAACyB,GAAZ,CAAgB49B,QAAQ,GAAG,IAA3B,CAAtD,EAAwF,CAAxF,CAAlB,GAA+G,aAAzH,CAAN,CAAA;AACD,OAAA;AACF,KAAA;;AAED8F,IAAAA,YAAY,CAAC90D,GAAD,CAAZ,GAAoBi5C,SAApB,CAAA;GAVF,CAAA,CAAA;AAYA,EAAA,OAAO6b,YAAP,CAAA;AACD;;AC7HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BA,IAAIG,OAAO,GAAGx8D,IAAI,CAACg2D,GAAnB,CAAA;AACO,SAASyG,eAAT,CAAyB31C,KAAzB,EAAgC05B,SAAhC,EAA2Ckc,YAA3C,EAAyD;AAC9D,EAAA,IAAIC,kBAAkB,GAAGC,aAAa,CAACp8D,SAAvC,CAD8D;AAE9D;AACA;AACA;;EAEA,IAAIq8D,YAAY,GAAGF,kBAAkB,CAACG,QAAnB,CAA4Bj4C,IAA5B,CAAiC63C,YAAjC,CAAnB,CAAA;EACA,IAAIK,iBAAiB,GAAGJ,kBAAkB,CAACG,QAAnB,CAA4Bj4C,IAA5B,CAAiC63C,YAAjC,EAA+C,IAA/C,CAAxB,CAAA;AACA,EAAA,IAAIM,kBAAkB,GAAGH,YAAY,CAACr5D,MAAb,GAAsB,CAA/C,CAAA;EACA,IAAIy5D,eAAe,GAAGN,kBAAkB,CAACO,WAAnB,CAA+Br4C,IAA/B,CAAoC63C,YAApC,CAAtB,CAAA;AACA,EAAA,IAAIS,WAAW,GAAGC,cAAc,CAACt2C,KAAD,EAAQ05B,SAAR,CAAhC,CAAA;AACA,EAAA,IAAI6c,SAAS,GAAGF,WAAW,CAAC79B,MAA5B,CAAA;AACA,EAAA,IAAIg+B,UAAU,GAAGH,WAAW,CAACI,MAA7B,CAAA;AACA,EAAA,IAAIC,UAAU,GAAGL,WAAW,CAACM,MAA7B,CAAA;;AAEA,EAAA,IAAI32C,KAAK,CAACvT,IAAN,KAAe,KAAnB,EAA0B;AACxB,IAAA,IAAIuiD,OAAO,GAAG0G,OAAO,CAAC11C,KAAK,CAAC42C,IAAP,CAArB,CAAA;IACAL,SAAS,GAAG,CAACb,OAAO,CAACa,SAAS,CAAC,CAAD,CAAV,CAAP,GAAwBvH,OAAzB,EAAkC0G,OAAO,CAACa,SAAS,CAAC,CAAD,CAAV,CAAP,GAAwBvH,OAA1D,CAAZ,CAAA;AACD,GAAA;;EAEDhvC,KAAK,CAAC62C,SAAN,CAAgBN,SAAS,CAAC,CAAD,CAAzB,EAA8BA,SAAS,CAAC,CAAD,CAAvC,CAAA,CAAA;EACAv2C,KAAK,CAAC82C,cAAN,CAAqB;AACnBrI,IAAAA,WAAW,EAAEyH,kBADM;AAEnBO,IAAAA,MAAM,EAAED,UAFW;AAGnBG,IAAAA,MAAM,EAAED,UAAAA;GAHV,CAAA,CAAA;EAKA,IAAIl+B,MAAM,GAAGq9B,kBAAkB,CAACp9B,SAAnB,CAA6B1a,IAA7B,CAAkCiC,KAAlC,CAAb,CA1B8D;AA2B9D;;AAEA,EAAA,IAAIw2C,UAAJ,EAAgB;AACdD,IAAAA,SAAS,CAAC,CAAD,CAAT,GAAe/9B,MAAM,CAAC,CAAD,CAArB,CAAA;AACD,GAAA;;AAED,EAAA,IAAIk+B,UAAJ,EAAgB;AACdH,IAAAA,SAAS,CAAC,CAAD,CAAT,GAAe/9B,MAAM,CAAC,CAAD,CAArB,CAAA;AACD,GAAA;;EAED,IAAIg2B,QAAQ,GAAGqH,kBAAkB,CAACO,WAAnB,CAA+Br4C,IAA/B,CAAoCiC,KAApC,CAAf,CAAA;AACA,EAAA,IAAIgc,GAAG,GAAGu6B,SAAS,CAAC,CAAD,CAAnB,CAAA;AACA,EAAA,IAAI36C,GAAG,GAAG26C,SAAS,CAAC,CAAD,CAAnB,CAAA;;EAEA,IAAIC,UAAU,IAAIE,UAAlB,EAA8B;AAC5B;AACAlI,IAAAA,QAAQ,GAAG,CAAC5yC,GAAG,GAAGogB,GAAP,IAAck6B,kBAAzB,CAAA;GAFF,MAGO,IAAIM,UAAJ,EAAgB;IACrB56C,GAAG,GAAG26C,SAAS,CAAC,CAAD,CAAT,GAAe/H,QAAQ,GAAG0H,kBAAhC,CADqB;;AAGrB,IAAA,OAAOt6C,GAAG,GAAG26C,SAAS,CAAC,CAAD,CAAf,IAAsB51C,QAAQ,CAAC/E,GAAD,CAA9B,IAAuC+E,QAAQ,CAAC41C,SAAS,CAAC,CAAD,CAAV,CAAtD,EAAsE;AACpE/H,MAAAA,QAAQ,GAAGuI,gBAAgB,CAACvI,QAAD,CAA3B,CAAA;MACA5yC,GAAG,GAAG26C,SAAS,CAAC,CAAD,CAAT,GAAe/H,QAAQ,GAAG0H,kBAAhC,CAAA;AACD,KAAA;GANI,MAOA,IAAIQ,UAAJ,EAAgB;AACrB;IACA16B,GAAG,GAAGu6B,SAAS,CAAC,CAAD,CAAT,GAAe/H,QAAQ,GAAG0H,kBAAhC,CAAA;;AAEA,IAAA,OAAOl6B,GAAG,GAAGu6B,SAAS,CAAC,CAAD,CAAf,IAAsB51C,QAAQ,CAACqb,GAAD,CAA9B,IAAuCrb,QAAQ,CAAC41C,SAAS,CAAC,CAAD,CAAV,CAAtD,EAAsE;AACpE/H,MAAAA,QAAQ,GAAGuI,gBAAgB,CAACvI,QAAD,CAA3B,CAAA;MACAxyB,GAAG,GAAGu6B,SAAS,CAAC,CAAD,CAAT,GAAe/H,QAAQ,GAAG0H,kBAAhC,CAAA;AACD,KAAA;AACF,GARM,MAQA;IACL,IAAIc,gBAAgB,GAAGh3C,KAAK,CAACg2C,QAAN,EAAiBt5D,CAAAA,MAAjB,GAA0B,CAAjD,CAAA;;IAEA,IAAIs6D,gBAAgB,GAAGd,kBAAvB,EAA2C;AACzC1H,MAAAA,QAAQ,GAAGuI,gBAAgB,CAACvI,QAAD,CAA3B,CAAA;AACD,KAAA;;AAED,IAAA,IAAI7oB,KAAK,GAAG6oB,QAAQ,GAAG0H,kBAAvB,CAAA;AACAt6C,IAAAA,GAAG,GAAG1iB,IAAI,CAACopD,IAAL,CAAUiU,SAAS,CAAC,CAAD,CAAT,GAAe/H,QAAzB,CAAA,GAAqCA,QAA3C,CAAA;IACAxyB,GAAG,GAAG7/B,OAAK,CAACyf,GAAG,GAAG+pB,KAAP,CAAX,CATK;;IAWL,IAAI3J,GAAG,GAAG,CAAN,IAAWu6B,SAAS,CAAC,CAAD,CAAT,IAAgB,CAA/B,EAAkC;AAChCv6B,MAAAA,GAAG,GAAG,CAAN,CAAA;AACApgB,MAAAA,GAAG,GAAGzf,OAAK,CAACwpC,KAAD,CAAX,CAAA;AACD,KAHD,MAGO,IAAI/pB,GAAG,GAAG,CAAN,IAAW26C,SAAS,CAAC,CAAD,CAAT,IAAgB,CAA/B,EAAkC;AACvC36C,MAAAA,GAAG,GAAG,CAAN,CAAA;AACAogB,MAAAA,GAAG,GAAG,CAAC7/B,OAAK,CAACwpC,KAAD,CAAZ,CAAA;AACD,KAAA;AACF,GA7E6D;;;AAgF9D,EAAA,IAAIsxB,EAAE,GAAG,CAAClB,YAAY,CAAC,CAAD,CAAZ,CAAgBn9B,KAAhB,GAAwBq9B,iBAAiB,CAAC,CAAD,CAAjB,CAAqBr9B,KAA9C,IAAuDu9B,eAAhE,CAAA;AACA,EAAA,IAAIe,EAAE,GAAG,CAACnB,YAAY,CAACG,kBAAD,CAAZ,CAAiCt9B,KAAjC,GAAyCq9B,iBAAiB,CAACC,kBAAD,CAAjB,CAAsCt9B,KAAhF,IAAyFu9B,eAAlG,CAjF8D;;AAmF9DN,EAAAA,kBAAkB,CAACgB,SAAnB,CAA6B94C,IAA7B,CAAkCiC,KAAlC,EAAyCgc,GAAG,GAAGwyB,QAAQ,GAAGyI,EAA1D,EAA8Dr7C,GAAG,GAAG4yC,QAAQ,GAAG0I,EAA/E,CAAA,CAAA;AACArB,EAAAA,kBAAkB,CAACsB,WAAnB,CAA+Bp5C,IAA/B,CAAoCiC,KAApC,EAA2CwuC,QAA3C,CAAA,CAAA;;EAEA,IAAIyI,EAAE,IAAIC,EAAV,EAAc;AACZrB,IAAAA,kBAAkB,CAACuB,aAAnB,CAAiCr5C,IAAjC,CAAsCiC,KAAtC,EAA6Cgc,GAAG,GAAGwyB,QAAnD,EAA6D5yC,GAAG,GAAG4yC,QAAnE,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAI19C,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;IACzC,IAAIqmD,KAAK,GAAGxB,kBAAkB,CAACG,QAAnB,CAA4Bj4C,IAA5B,CAAiCiC,KAAjC,CAAZ,CAAA;;IAEA,IAAIq3C,KAAK,CAAC,CAAD,CAAL,KAAa,CAACC,WAAW,CAAC9I,QAAD,CAAZ,IAA0B+I,gBAAgB,CAACF,KAAK,CAAC,CAAD,CAAL,CAASz+B,KAAV,CAAhB,GAAmC2+B,gBAAgB,CAAC/I,QAAD,CAA1F,CAAJ,EAA2G;AACzGxrB,MAAAA,IAAI;AACJ,MAAA,8CAAA,GAAiD0W,SAAS,CAAC7nB,GAAV,CAAc,KAAd,CAAjD,GAAwE,SAAxE,GAAoF6nB,SAAS,CAAC7nB,GAAV,CAAc,KAAd,CAApF,GAA2G,uBADvG,CAAJ,CAAA;AAED,KAAA;AACF,GAAA;AACF;;AClJD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyCA,IAAI2lC,IAAI;AACR;AACA,YAAY;AACV,EAAA,SAASA,IAAT,CAAcrD,SAAd,EAAyB1sB,OAAzB,EAAkCxxB,GAAlC,EAAuC;AACrC;IACA,IAAKxJ,CAAAA,IAAL,GAAY,MAAZ,CAAA;IACA,IAAKgrD,CAAAA,UAAL,GAAkB,EAAlB,CAAA;IACA,IAAKC,CAAAA,WAAL,GAAmB,EAAnB,CAAA;IACA,IAAKC,CAAAA,QAAL,GAAgB,EAAhB,CAAA;IACA,IAAKC,CAAAA,SAAL,GAAiB,EAAjB,CAAA;IACA,IAAKC,CAAAA,kBAAL,GAA0B,IAA1B,CAAA;IACA,IAAK7/B,CAAAA,UAAL,GAAkBo5B,qBAAlB,CAAA;;AAEA,IAAA,IAAA,CAAK0G,cAAL,CAAoB3D,SAApB,EAA+B1sB,OAA/B,EAAwCxxB,GAAxC,CAAA,CAAA;;IAEA,IAAK0/B,CAAAA,KAAL,GAAawe,SAAb,CAAA;AACD,GAAA;;AAEDqD,EAAAA,IAAI,CAAC99D,SAAL,CAAeg7D,OAAf,GAAyB,YAAY;AACnC,IAAA,OAAO,KAAK5J,KAAZ,CAAA;GADF,CAAA;;EAIA0M,IAAI,CAAC99D,SAAL,CAAei8B,MAAf,GAAwB,UAAU8R,OAAV,EAAmBxxB,GAAnB,EAAwB;IAC9C,IAAI8hD,OAAO,GAAG,IAAA,CAAKJ,QAAnB,CAAA;;AAEA,IAAA,IAAA,CAAKK,YAAL,CAAkBvwB,OAAlB,EAA2B,KAAKkO,KAAhC,CAAA,CAAA;;IAEA,SAASsiB,eAAT,CAAyBC,IAAzB,EAA+B;MAC7B,IAAIpP,OAAJ,CAD6B;;AAG7B,MAAA,IAAIqP,WAAW,GAAGt2D,IAAI,CAACq2D,IAAD,CAAtB,CAAA;AACA,MAAA,IAAIzxD,GAAG,GAAG0xD,WAAW,CAACz7D,MAAtB,CAAA;;MAEA,IAAI,CAAC+J,GAAL,EAAU;AACR,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAI2xD,cAAc,GAAG,EAArB,CAV6B;;AAY7B,MAAA,KAAK,IAAIh7D,CAAC,GAAGqJ,GAAG,GAAG,CAAnB,EAAsBrJ,CAAC,IAAI,CAA3B,EAA8BA,CAAC,EAA/B,EAAmC;QACjC,IAAIgsB,GAAG,GAAG,CAAC+uC,WAAW,CAAC/6D,CAAD,CAAtB,CADiC;;AAGjC,QAAA,IAAIimC,IAAI,GAAG60B,IAAI,CAAC9uC,GAAD,CAAf,CAAA;AACA,QAAA,IAAIusB,KAAK,GAAGtS,IAAI,CAACsS,KAAjB,CAAA;AACA,QAAA,IAAI31B,KAAK,GAAGqjB,IAAI,CAACrjB,KAAjB,CAAA;;QAEA;AACAq4C,QAAAA,oBAAoB,CAACr4C,KAAD,CAApB,IAA+B21B,KAAK,CAAC9jB,GAAN,CAAU,YAAV,CAA/B,IAA0D8jB,KAAK,CAAC9jB,GAAN,CAAU,UAAV,CAAA,IAAyB,IADnF,EACyF;UACvFumC,cAAc,CAAC36D,IAAf,CAAoB4lC,IAApB,CAAA,CAAA;AACD,SAHD,MAGO;AACLi1B,UAAAA,eAAe,CAACt4C,KAAD,EAAQ21B,KAAR,CAAf,CAAA;;AAEA,UAAA,IAAI0iB,oBAAoB,CAACr4C,KAAD,CAAxB,EAAiC;AAC/B;AACA8oC,YAAAA,OAAO,GAAGzlB,IAAV,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAED,MAAA,CAhC6B;AAiC7B;;MAEA,IAAI+0B,cAAc,CAAC17D,MAAnB,EAA2B;QACzB,IAAI,CAACosD,OAAL,EAAc;AACZA,UAAAA,OAAO,GAAGsP,cAAc,CAACG,GAAf,EAAV,CAAA;UACAD,eAAe,CAACxP,OAAO,CAAC9oC,KAAT,EAAgB8oC,OAAO,CAACnT,KAAxB,CAAf,CAAA;AACD,SAAA;;AAEDvvC,QAAAA,MAAI,CAACgyD,cAAD,EAAiB,UAAU/0B,IAAV,EAAgB;AACnCsyB,UAAAA,eAAe,CAACtyB,IAAI,CAACrjB,KAAN,EAAaqjB,IAAI,CAACsS,KAAlB,EAAyBmT,OAAO,CAAC9oC,KAAjC,CAAf,CAAA;AACD,SAFG,CAAJ,CAAA;AAGD,OAAA;AACF,KAAA;;AAEDi4C,IAAAA,eAAe,CAACF,OAAO,CAAC59D,CAAT,CAAf,CAAA;AACA89D,IAAAA,eAAe,CAACF,OAAO,CAAC39D,CAAT,CAAf,CArD8C;;IAuD9C,IAAIo+D,aAAa,GAAG,EAApB,CAAA;AACApyD,IAAAA,MAAI,CAAC2xD,OAAO,CAAC59D,CAAT,EAAY,UAAU84D,KAAV,EAAiB;MAC/BwF,aAAa,CAACV,OAAD,EAAU,GAAV,EAAe9E,KAAf,EAAsBuF,aAAtB,CAAb,CAAA;AACD,KAFG,CAAJ,CAAA;AAGApyD,IAAAA,MAAI,CAAC2xD,OAAO,CAAC39D,CAAT,EAAY,UAAU84D,KAAV,EAAiB;MAC/BuF,aAAa,CAACV,OAAD,EAAU,GAAV,EAAe7E,KAAf,EAAsBsF,aAAtB,CAAb,CAAA;KADE,CAAJ,CA3D8C;AA8D9C;;AAEA,IAAA,IAAA,CAAKt/C,MAAL,CAAY,IAAKy8B,CAAAA,KAAjB,EAAwB1/B,GAAxB,CAAA,CAAA;GAhEF,CAAA;AAkEA;AACF;AACA;;;EAGEuhD,IAAI,CAAC99D,SAAL,CAAewf,MAAf,GAAwB,UAAUi7C,SAAV,EAAqBl+C,GAArB,EAA0ByiD,kBAA1B,EAA8C;AACpE,IAAA,IAAIC,eAAe,GAAGxE,SAAS,CAACvW,kBAAV,EAAtB,CAAA;IACA,IAAIgb,cAAc,GAAG,CAACF,kBAAD,IAAuBvE,SAAS,CAACtiC,GAAV,CAAc,cAAd,CAA5C,CAAA;AACA,IAAA,IAAIgnC,QAAQ,GAAGC,aAAa,CAACH,eAAD,EAAkB;AAC5Cx1D,MAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADqC;MAE5ChZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;AAFoC,KAAlB,CAA5B,CAAA;IAIA,IAAKyuC,CAAAA,KAAL,GAAa+N,QAAb,CAAA;IACA,IAAIE,QAAQ,GAAG,IAAA,CAAKnB,SAApB,CAAA;AACAoB,IAAAA,UAAU,GAT0D;;AAWpE,IAAA,IAAIJ,cAAJ,EAAoB;AAClBxyD,MAAAA,MAAI,CAAC2yD,QAAD,EAAW,UAAU11B,IAAV,EAAgB;AAC7B,QAAA,IAAI,CAACA,IAAI,CAACsS,KAAL,CAAW9jB,GAAX,CAAe,CAAC,WAAD,EAAc,QAAd,CAAf,CAAL,EAA8C;AAC5C,UAAA,IAAIonC,cAAc,GAAGC,sBAAsB,CAAC71B,IAAD,CAA3C,CAAA;;AAEA,UAAA,IAAI41B,cAAJ,EAAoB;YAClB,IAAIxhC,GAAG,GAAG4L,IAAI,CAAC3D,YAAL,EAAsB,GAAA,QAAtB,GAAiC,OAA3C,CAAA;AACA,YAAA,IAAIrgB,MAAM,GAAGgkB,IAAI,CAACsS,KAAL,CAAW9jB,GAAX,CAAe,CAAC,WAAD,EAAc,QAAd,CAAf,CAAb,CAAA;YACAgnC,QAAQ,CAACphC,GAAD,CAAR,IAAiBwhC,cAAc,CAACxhC,GAAD,CAAd,GAAsBpY,MAAvC,CAAA;;AAEA,YAAA,IAAIgkB,IAAI,CAAC7lB,QAAL,KAAkB,KAAtB,EAA6B;AAC3Bq7C,cAAAA,QAAQ,CAACz+D,CAAT,IAAc6+D,cAAc,CAAC71D,MAAf,GAAwBic,MAAtC,CAAA;AACD,aAFD,MAEO,IAAIgkB,IAAI,CAAC7lB,QAAL,KAAkB,MAAtB,EAA8B;AACnCq7C,cAAAA,QAAQ,CAAC1+D,CAAT,IAAc8+D,cAAc,CAAC91D,KAAf,GAAuBkc,MAArC,CAAA;AACD,aAAA;AACF,WAAA;AACF,SAAA;AACF,OAhBG,CAAJ,CAAA;MAiBA25C,UAAU,EAAA,CAAA;AACX,KAAA;;AAED5yD,IAAAA,MAAI,CAAC,IAAKsxD,CAAAA,WAAN,EAAmB,UAAU/0B,KAAV,EAAiB;AACtC;AACA;AACAA,MAAAA,KAAK,CAAC4uB,mBAAN,EAAA,CAAA;AACD,KAJG,CAAJ,CAAA;;AAMA,IAAA,SAASyH,UAAT,GAAsB;AACpB5yD,MAAAA,MAAI,CAAC2yD,QAAD,EAAW,UAAU11B,IAAV,EAAgB;AAC7B,QAAA,IAAI3D,YAAY,GAAG2D,IAAI,CAAC3D,YAAL,EAAnB,CAAA;AACA,QAAA,IAAIlH,MAAM,GAAGkH,YAAY,GAAG,CAAC,CAAD,EAAIm5B,QAAQ,CAAC11D,KAAb,CAAH,GAAyB,CAAC,CAAD,EAAI01D,QAAQ,CAACz1D,MAAb,CAAlD,CAAA;QACA,IAAIgmB,GAAG,GAAGia,IAAI,CAACzD,OAAL,GAAe,CAAf,GAAmB,CAA7B,CAAA;AACAyD,QAAAA,IAAI,CAACwzB,SAAL,CAAer+B,MAAM,CAACpP,GAAD,CAArB,EAA4BoP,MAAM,CAAC,CAAIpP,GAAAA,GAAL,CAAlC,CAAA,CAAA;AACA+vC,QAAAA,mBAAmB,CAAC91B,IAAD,EAAO3D,YAAY,GAAGm5B,QAAQ,CAAC1+D,CAAZ,GAAgB0+D,QAAQ,CAACz+D,CAA5C,CAAnB,CAAA;AACD,OANG,CAAJ,CAAA;AAOD,KAAA;GA9CH,CAAA;;EAiDAo9D,IAAI,CAAC99D,SAAL,CAAe4pC,OAAf,GAAyB,UAAU7L,GAAV,EAAe2hC,SAAf,EAA0B;AACjD,IAAA,IAAIC,YAAY,GAAG,IAAA,CAAK1B,QAAL,CAAclgC,GAAd,CAAnB,CAAA;;IAEA,IAAI4hC,YAAY,IAAI,IAApB,EAA0B;AACxB,MAAA,OAAOA,YAAY,CAACD,SAAS,IAAI,CAAd,CAAnB,CAAA;AACD,KAAA;GALH,CAAA;;AAQA5B,EAAAA,IAAI,CAAC99D,SAAL,CAAeu3D,OAAf,GAAyB,YAAY;AACnC,IAAA,OAAO,IAAK2G,CAAAA,SAAL,CAAen1C,KAAf,EAAP,CAAA;GADF,CAAA;;EAIA+0C,IAAI,CAAC99D,SAAL,CAAe4/D,YAAf,GAA8B,UAAUC,UAAV,EAAsBC,UAAtB,EAAkC;AAC9D,IAAA,IAAID,UAAU,IAAI,IAAd,IAAsBC,UAAU,IAAI,IAAxC,EAA8C;AAC5C,MAAA,IAAI/4D,GAAG,GAAG,GAAA,GAAM84D,UAAN,GAAmB,GAAnB,GAAyBC,UAAnC,CAAA;AACA,MAAA,OAAO,IAAK/B,CAAAA,UAAL,CAAgBh3D,GAAhB,CAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAIyV,UAAQ,CAACqjD,UAAD,CAAZ,EAA0B;MACxBC,UAAU,GAAGD,UAAU,CAACC,UAAxB,CAAA;MACAD,UAAU,GAAGA,UAAU,CAACA,UAAxB,CAAA;AACD,KAAA;;AAED,IAAA,KAAK,IAAIn8D,CAAC,GAAG,CAAR,EAAWq8D,SAAS,GAAG,IAAK/B,CAAAA,WAAjC,EAA8Ct6D,CAAC,GAAGq8D,SAAS,CAAC/8D,MAA5D,EAAoEU,CAAC,EAArE,EAAyE;MACvE,IAAIq8D,SAAS,CAACr8D,CAAD,CAAT,CAAakmC,OAAb,CAAqB,GAArB,CAA0BqV,CAAAA,KAA1B,KAAoC4gB,UAApC,IAAkDE,SAAS,CAACr8D,CAAD,CAAT,CAAakmC,OAAb,CAAqB,GAArB,CAA0BqV,CAAAA,KAA1B,KAAoC6gB,UAA1F,EAAsG;QACpG,OAAOC,SAAS,CAACr8D,CAAD,CAAhB,CAAA;AACD,OAAA;AACF,KAAA;GAfH,CAAA;;AAkBAo6D,EAAAA,IAAI,CAAC99D,SAAL,CAAeggE,aAAf,GAA+B,YAAY;AACzC,IAAA,OAAO,IAAKhC,CAAAA,WAAL,CAAiBj1C,KAAjB,EAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;EAGE+0C,IAAI,CAAC99D,SAAL,CAAeigE,cAAf,GAAgC,UAAUlyB,OAAV,EAAmBmyB,MAAnB,EAA2BhhC,KAA3B,EAAkC;AAChE,IAAA,IAAIrzB,MAAM,GAAG,IAAA,CAAKs0D,kBAAL,CAAwBD,MAAxB,CAAb,CAAA;;AAEA,IAAA,OAAOr0D,MAAM,CAAC65B,SAAP,GAAmB75B,MAAM,CAAC65B,SAAP,CAAiBrG,WAAjB,CAA6BH,KAA7B,CAAnB,GAAyDrzB,MAAM,CAAC89B,IAAP,GAAc99B,MAAM,CAAC89B,IAAP,CAAYI,aAAZ,CAA0Bl+B,MAAM,CAAC89B,IAAP,CAAYK,WAAZ,CAAwB9K,KAAxB,CAA1B,CAAd,GAA0E,IAA1I,CAAA;GAHF,CAAA;AAKA;AACF;AACA;;;EAGE4+B,IAAI,CAAC99D,SAAL,CAAeogE,gBAAf,GAAkC,UAAUryB,OAAV,EAAmBmyB,MAAnB,EAA2BhhC,KAA3B,EAAkC;AAClE,IAAA,IAAIrzB,MAAM,GAAG,IAAA,CAAKs0D,kBAAL,CAAwBD,MAAxB,CAAb,CAAA;;AAEA,IAAA,OAAOr0D,MAAM,CAAC65B,SAAP,GAAmB75B,MAAM,CAAC65B,SAAP,CAAiBo0B,WAAjB,CAA6B56B,KAA7B,CAAnB,GAAyDrzB,MAAM,CAAC89B,IAAP,GAAc99B,MAAM,CAAC89B,IAAP,CAAYowB,WAAZ,CAAwBluD,MAAM,CAAC89B,IAAP,CAAYgvB,YAAZ,CAAyBz5B,KAAzB,CAAxB,CAAd,GAAyE,IAAzI,CAAA;GAHF,CAAA;;AAMA4+B,EAAAA,IAAI,CAAC99D,SAAL,CAAemgE,kBAAf,GAAoC,UAAUD,MAAV,EAAkB;AACpD,IAAA,IAAIxpC,WAAW,GAAGwpC,MAAM,CAACxpC,WAAzB,CAAA;AACA,IAAA,IAAIolC,UAAU,GAAGoE,MAAM,CAACpE,UAAP,IAAqBplC,WAAW,IAAIA,WAAW,CAACw8B,sBAAZ,CAAmC,OAAnC,EAA4CC,gBAA5C,EAA8DC,MAA9D,CAAqE,CAArE,CAArD,CAAA;AACA,IAAA,IAAI2I,UAAU,GAAGmE,MAAM,CAACnE,UAAP,IAAqBrlC,WAAW,IAAIA,WAAW,CAACw8B,sBAAZ,CAAmC,OAAnC,EAA4CC,gBAA5C,EAA8DC,MAA9D,CAAqE,CAArE,CAArD,CAAA;AACA,IAAA,IAAIqH,SAAS,GAAGyF,MAAM,CAACzF,SAAvB,CAAA;IACA,IAAI4F,UAAU,GAAG,IAAA,CAAKrC,WAAtB,CAAA;AACA,IAAA,IAAIt4B,SAAJ,CAAA;AACA,IAAA,IAAIiE,IAAJ,CAAA;;AAEA,IAAA,IAAIjT,WAAJ,EAAiB;MACfgP,SAAS,GAAGhP,WAAW,CAAC3F,gBAAxB,CAAA;MACA7jB,OAAO,CAACmzD,UAAD,EAAa36B,SAAb,CAAP,GAAiC,CAAjC,KAAuCA,SAAS,GAAG,IAAnD,CAAA,CAAA;AACD,KAHD,MAGO,IAAIo2B,UAAU,IAAIC,UAAlB,EAA8B;MACnCr2B,SAAS,GAAG,IAAKk6B,CAAAA,YAAL,CAAkB9D,UAAU,CAACnrB,cAA7B,EAA6CorB,UAAU,CAACprB,cAAxD,CAAZ,CAAA;KADK,MAEA,IAAImrB,UAAJ,EAAgB;MACrBnyB,IAAI,GAAG,KAAKC,OAAL,CAAa,GAAb,EAAkBkyB,UAAU,CAACnrB,cAA7B,CAAP,CAAA;KADK,MAEA,IAAIorB,UAAJ,EAAgB;MACrBpyB,IAAI,GAAG,KAAKC,OAAL,CAAa,GAAb,EAAkBmyB,UAAU,CAACprB,cAA7B,CAAP,CAAA;AACD,KAFM;SAGF,IAAI8pB,SAAJ,EAAe;AAChB,MAAA,IAAIC,IAAI,GAAGD,SAAS,CAAC1pC,gBAArB,CAAA;;MAEA,IAAI2pC,IAAI,KAAK,IAAb,EAAmB;AACjBh1B,QAAAA,SAAS,GAAG,IAAA,CAAKs4B,WAAL,CAAiB,CAAjB,CAAZ,CAAA;AACD,OAAA;AACF,KAAA;;IAEH,OAAO;AACLt4B,MAAAA,SAAS,EAAEA,SADN;AAELiE,MAAAA,IAAI,EAAEA,IAAAA;KAFR,CAAA;GA3BF,CAAA;AAgCA;AACF;AACA;;;AAGEm0B,EAAAA,IAAI,CAAC99D,SAAL,CAAe2sD,YAAf,GAA8B,UAAU/xB,KAAV,EAAiB;AAC7C,IAAA,IAAIqO,KAAK,GAAG,IAAA,CAAK+0B,WAAL,CAAiB,CAAjB,CAAZ,CAAA;;AAEA,IAAA,IAAI/0B,KAAJ,EAAW;AACT,MAAA,OAAOA,KAAK,CAAC0jB,YAAN,CAAmB/xB,KAAnB,CAAP,CAAA;AACD,KAAA;GALH,CAAA;AAOA;AACF;AACA;;;EAGEkjC,IAAI,CAAC99D,SAAL,CAAeo+D,cAAf,GAAgC,UAAU3D,SAAV,EAAqB1sB,OAArB,EAA8BxxB,GAA9B,EAAmC;IACjE,IAAI6H,KAAK,GAAG,IAAZ,CAAA;;IAEA,IAAIs2C,IAAI,GAAG,IAAX,CAAA;AACA,IAAA,IAAI4F,gBAAgB,GAAG;AACrBv8C,MAAAA,IAAI,EAAE,KADe;AAErBmrC,MAAAA,KAAK,EAAE,KAFc;AAGrBlrC,MAAAA,GAAG,EAAE,KAHgB;AAIrBmrC,MAAAA,MAAM,EAAE,KAAA;KAJV,CAAA;AAMA,IAAA,IAAIkP,OAAO,GAAG;AACZ59D,MAAAA,CAAC,EAAE,EADS;AAEZC,MAAAA,CAAC,EAAE,EAAA;KAFL,CAAA;AAIA,IAAA,IAAI6/D,SAAS,GAAG;AACd9/D,MAAAA,CAAC,EAAE,CADW;AAEdC,MAAAA,CAAC,EAAE,CAAA;AAFW,KAAhB,CAdiE;;IAmBjEqtC,OAAO,CAAC4V,aAAR,CAAsB,OAAtB,EAA+B6c,iBAAiB,CAAC,GAAD,CAAhD,EAAuD,IAAvD,CAAA,CAAA;IACAzyB,OAAO,CAAC4V,aAAR,CAAsB,OAAtB,EAA+B6c,iBAAiB,CAAC,GAAD,CAAhD,EAAuD,IAAvD,CAAA,CAAA;;IAEA,IAAI,CAACD,SAAS,CAAC9/D,CAAX,IAAgB,CAAC8/D,SAAS,CAAC7/D,CAA/B,EAAkC;AAChC;MACA,IAAKu9D,CAAAA,QAAL,GAAgB,EAAhB,CAAA;MACA,IAAKC,CAAAA,SAAL,GAAiB,EAAjB,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKD,QAAL,GAAgBI,OAAhB,CA7BiE;;IA+BjE3xD,MAAI,CAAC2xD,OAAO,CAAC59D,CAAT,EAAY,UAAU84D,KAAV,EAAiBsG,UAAjB,EAA6B;MAC3CnzD,MAAI,CAAC2xD,OAAO,CAAC39D,CAAT,EAAY,UAAU84D,KAAV,EAAiBsG,UAAjB,EAA6B;AAC3C,QAAA,IAAI/4D,GAAG,GAAG,GAAA,GAAM84D,UAAN,GAAmB,GAAnB,GAAyBC,UAAnC,CAAA;AACA,QAAA,IAAIp6B,SAAS,GAAG,IAAIkyB,WAAJ,CAAgB7wD,GAAhB,CAAhB,CAAA;QACA2+B,SAAS,CAAC+6B,MAAV,GAAmBr8C,KAAnB,CAAA;QACAshB,SAAS,CAACuW,KAAV,GAAkBwe,SAAlB,CAAA;AACAr2C,QAAAA,KAAK,CAAC25C,UAAN,CAAiBh3D,GAAjB,IAAwB2+B,SAAxB,CAAA;;AAEAthB,QAAAA,KAAK,CAAC45C,WAAN,CAAkBj6D,IAAlB,CAAuB2hC,SAAvB,CAAA,CAAA;;QAEAA,SAAS,CAAC+xB,OAAV,CAAkB8B,KAAlB,CAAA,CAAA;QACA7zB,SAAS,CAAC+xB,OAAV,CAAkB+B,KAAlB,CAAA,CAAA;AACD,OAXG,CAAJ,CAAA;AAYD,KAbG,CAAJ,CAAA;;IAeA,SAASgH,iBAAT,CAA2BE,OAA3B,EAAoC;AAClC,MAAA,OAAO,UAAU1gB,SAAV,EAAqBtwB,GAArB,EAA0B;AAC/B,QAAA,IAAI,CAACixC,mBAAmB,CAAC3gB,SAAD,EAAYya,SAAZ,CAAxB,EAAgD;AAC9C,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAIK,YAAY,GAAG9a,SAAS,CAAC7nB,GAAV,CAAc,UAAd,CAAnB,CAAA;;QAEA,IAAIuoC,OAAO,KAAK,GAAhB,EAAqB;AACnB;AACA,UAAA,IAAI5F,YAAY,KAAK,KAAjB,IAA0BA,YAAY,KAAK,QAA/C,EAAyD;AACvD;AACAA,YAAAA,YAAY,GAAGwF,gBAAgB,CAACnR,MAAjB,GAA0B,KAA1B,GAAkC,QAAjD,CAAA;AACD,WAAA;AACF,SAND,MAMO;AACL;AACA,UAAA,IAAI2L,YAAY,KAAK,MAAjB,IAA2BA,YAAY,KAAK,OAAhD,EAAyD;AACvD;AACAA,YAAAA,YAAY,GAAGwF,gBAAgB,CAACv8C,IAAjB,GAAwB,OAAxB,GAAkC,MAAjD,CAAA;AACD,WAAA;AACF,SAAA;;AAEDu8C,QAAAA,gBAAgB,CAACxF,YAAD,CAAhB,GAAiC,IAAjC,CAAA;QACA,IAAInxB,IAAI,GAAG,IAAIwwB,MAAJ,CAAWuG,OAAX,EAAoBE,oBAAkB,CAAC5gB,SAAD,CAAtC,EAAmD,CAAC,CAAD,EAAI,CAAJ,CAAnD,EAA2DA,SAAS,CAAC7nB,GAAV,CAAc,MAAd,CAA3D,EAAkF2iC,YAAlF,CAAX,CAAA;AACA,QAAA,IAAI+F,UAAU,GAAGl3B,IAAI,CAAC52B,IAAL,KAAc,UAA/B,CAAA;QACA42B,IAAI,CAAC4P,MAAL,GAAcsnB,UAAU,IAAI7gB,SAAS,CAAC7nB,GAAV,CAAc,aAAd,CAA5B,CAAA;QACAwR,IAAI,CAACzD,OAAL,GAAe8Z,SAAS,CAAC7nB,GAAV,CAAc,SAAd,CAAf,CAzB+B;;AA2B/B6nB,QAAAA,SAAS,CAACrW,IAAV,GAAiBA,IAAjB,CA3B+B;;AA6B/BA,QAAAA,IAAI,CAACsS,KAAL,GAAa+D,SAAb,CA7B+B;;AA+B/BrW,QAAAA,IAAI,CAAC+wB,IAAL,GAAYA,IAAZ,CA/B+B;;QAiC/B/wB,IAAI,CAACsV,KAAL,GAAavvB,GAAb,CAAA;;AAEAgrC,QAAAA,IAAI,CAACwD,SAAL,CAAen6D,IAAf,CAAoB4lC,IAApB,CAAA,CAAA;;AAEA00B,QAAAA,OAAO,CAACqC,OAAD,CAAP,CAAiBhxC,GAAjB,IAAwBia,IAAxB,CAAA;QACA42B,SAAS,CAACG,OAAD,CAAT,EAAA,CAAA;OAtCF,CAAA;AAwCD,KAAA;GAvFH,CAAA;AAyFA;AACF;AACA;;;EAGE5C,IAAI,CAAC99D,SAAL,CAAes+D,YAAf,GAA8B,UAAUvwB,OAAV,EAAmB0sB,SAAnB,EAA8B;AAC1D;AACA/tD,IAAAA,MAAI,CAAC,IAAKwxD,CAAAA,SAAN,EAAiB,UAAUv0B,IAAV,EAAgB;MACnCA,IAAI,CAACrjB,KAAL,CAAW62C,SAAX,CAAqB51C,QAArB,EAA+B,CAACA,QAAhC,CAAA,CAAA;;AAEA,MAAA,IAAIoiB,IAAI,CAAC52B,IAAL,KAAc,UAAlB,EAA8B;QAC5B,IAAIunD,gBAAgB,GAAG3wB,IAAI,CAACsS,KAAL,CAAW9jB,GAAX,CAAe,kBAAf,CAAvB,CAAA;AACAwR,QAAAA,IAAI,CAACrjB,KAAL,CAAWi0C,WAAX,CAAuBD,gBAAvB,CAAA,CAAA;AACD,OAAA;AACF,KAPG,CAAJ,CAAA;AAQAvsB,IAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;AACxC,MAAA,IAAIilC,mBAAmB,CAACjlC,WAAD,CAAvB,EAAsC;AACpC,QAAA,IAAIqqC,YAAY,GAAGnF,cAAc,CAACllC,WAAD,CAAjC,CAAA;AACA,QAAA,IAAIolC,UAAU,GAAGiF,YAAY,CAACjF,UAA9B,CAAA;AACA,QAAA,IAAIC,UAAU,GAAGgF,YAAY,CAAChF,UAA9B,CAAA;;AAEA,QAAA,IAAI,CAAC4E,mBAAmB,CAAC7E,UAAD,EAAarB,SAAb,CAApB,IAA+C,CAACkG,mBAAmB,CAAC5E,UAAD,EAAatB,SAAb,CAAvE,EAAgG;AAC9F,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAI/0B,SAAS,GAAG,IAAKk6B,CAAAA,YAAL,CAAkB9D,UAAU,CAACnrB,cAA7B,EAA6CorB,UAAU,CAACprB,cAAxD,CAAhB,CAAA;AACA,QAAA,IAAIzc,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,QAAA,IAAIwnC,KAAK,GAAG7zB,SAAS,CAACkE,OAAV,CAAkB,GAAlB,CAAZ,CAAA;AACA,QAAA,IAAI4vB,KAAK,GAAG9zB,SAAS,CAACkE,OAAV,CAAkB,GAAlB,CAAZ,CAAA;AACAo3B,QAAAA,WAAW,CAAC9sC,IAAD,EAAOqlC,KAAP,CAAX,CAAA;AACAyH,QAAAA,WAAW,CAAC9sC,IAAD,EAAOslC,KAAP,CAAX,CAAA;AACD,OAAA;AACF,KAjBD,EAiBG,IAjBH,CAAA,CAAA;;AAmBA,IAAA,SAASwH,WAAT,CAAqB9sC,IAArB,EAA2ByV,IAA3B,EAAiC;AAC/Bj9B,MAAAA,MAAI,CAACu0D,uBAAuB,CAAC/sC,IAAD,EAAOyV,IAAI,CAAC5L,GAAZ,CAAxB,EAA0C,UAAUA,GAAV,EAAe;AAC3D4L,QAAAA,IAAI,CAACrjB,KAAL,CAAW46C,mBAAX,CAA+BhtC,IAA/B,EAAqC6J,GAArC,CAAA,CAAA;AACD,OAFG,CAAJ,CAAA;AAGD,KAAA;GAjCH,CAAA;AAmCA;AACF;AACA;;;AAGE+/B,EAAAA,IAAI,CAAC99D,SAAL,CAAemhE,cAAf,GAAgC,UAAUpjC,GAAV,EAAe;IAC7C,IAAIqjC,QAAQ,GAAG,EAAf,CAAA;IACA,IAAIC,SAAS,GAAG,EAAhB,CAAA;AACA30D,IAAAA,MAAI,CAAC,IAAKszD,CAAAA,aAAL,EAAD,EAAuB,UAAUt6B,SAAV,EAAqB;MAC9C,IAAIlI,QAAQ,GAAGO,GAAG,IAAI,IAAP,IAAeA,GAAG,KAAK,MAAvB,GAAgC2H,SAAS,CAACkE,OAAV,CAAkB7L,GAAlB,CAAhC,GAAyD2H,SAAS,CAACjI,WAAV,EAAxE,CAAA;AACA,MAAA,IAAI0hB,SAAS,GAAGzZ,SAAS,CAAC/H,YAAV,CAAuBH,QAAvB,CAAhB,CAAA;AACAtwB,MAAAA,OAAO,CAACk0D,QAAD,EAAW5jC,QAAX,CAAP,GAA8B,CAA9B,IAAmC4jC,QAAQ,CAACr9D,IAAT,CAAcy5B,QAAd,CAAnC,CAAA;AACAtwB,MAAAA,OAAO,CAACm0D,SAAD,EAAYliB,SAAZ,CAAP,GAAgC,CAAhC,IAAqCkiB,SAAS,CAACt9D,IAAV,CAAeo7C,SAAf,CAArC,CAAA;AACD,KALG,CAAJ,CAAA;IAMA,OAAO;AACLiiB,MAAAA,QAAQ,EAAEA,QADL;AAELC,MAAAA,SAAS,EAAEA,SAAAA;KAFb,CAAA;GATF,CAAA;;AAeAvD,EAAAA,IAAI,CAACwD,MAAL,GAAc,UAAUvzB,OAAV,EAAmBxxB,GAAnB,EAAwB;IACpC,IAAIglD,KAAK,GAAG,EAAZ,CAAA;IACAxzB,OAAO,CAAC4V,aAAR,CAAsB,MAAtB,EAA8B,UAAU8W,SAAV,EAAqB/qC,GAArB,EAA0B;MACtD,IAAIgrC,IAAI,GAAG,IAAIoD,IAAJ,CAASrD,SAAT,EAAoB1sB,OAApB,EAA6BxxB,GAA7B,CAAX,CAAA;AACAm+C,MAAAA,IAAI,CAACh0D,IAAL,GAAY,OAAUgpB,GAAAA,GAAtB,CAFsD;AAGtD;;AAEAgrC,MAAAA,IAAI,CAACl7C,MAAL,CAAYi7C,SAAZ,EAAuBl+C,GAAvB,EAA4B,IAA5B,CAAA,CAAA;MACAk+C,SAAS,CAAC1pC,gBAAV,GAA6B2pC,IAA7B,CAAA;MACA6G,KAAK,CAACx9D,IAAN,CAAW22D,IAAX,CAAA,CAAA;AACD,KARD,EAFoC;;AAYpC3sB,IAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;AACxC,MAAA,IAAI,CAACilC,mBAAmB,CAACjlC,WAAD,CAAxB,EAAuC;AACrC,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIqqC,YAAY,GAAGnF,cAAc,CAACllC,WAAD,CAAjC,CAAA;AACA,MAAA,IAAIolC,UAAU,GAAGiF,YAAY,CAACjF,UAA9B,CAAA;AACA,MAAA,IAAIC,UAAU,GAAGgF,YAAY,CAAChF,UAA9B,CAAA;AACA,MAAA,IAAItB,SAAS,GAAGqB,UAAU,CAAC7I,gBAAX,EAAhB,CAAA;;AAEA,MAAA,IAAI77C,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;QACzC,IAAI,CAACmjD,SAAL,EAAgB;UACd,MAAM,IAAIzpC,KAAJ,CAAU,QAAWq7B,GAAAA,SAAS,CAACyP,UAAU,CAAC3jC,GAAX,CAAe,WAAf,CAAD,EAA8B2jC,UAAU,CAAC3jC,GAAX,CAAe,QAAf,CAA9B,EAAwD,CAAxD,CAApB,GAAiF,aAA3F,CAAN,CAAA;AACD,SAAA;;QAED,IAAI2jC,UAAU,CAAC7I,gBAAX,EAAA,KAAkC8I,UAAU,CAAC9I,gBAAX,EAAtC,EAAqE;AACnE,UAAA,MAAM,IAAIjiC,KAAJ,CAAU,wCAAV,CAAN,CAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,IAAI0pC,IAAI,GAAGD,SAAS,CAAC1pC,gBAArB,CAAA;AACA2F,MAAAA,WAAW,CAAC3F,gBAAZ,GAA+B2pC,IAAI,CAACkF,YAAL,CAAkB9D,UAAU,CAACnrB,cAA7B,EAA6CorB,UAAU,CAACprB,cAAxD,CAA/B,CAAA;KArBF,CAAA,CAAA;AAuBA,IAAA,OAAO4wB,KAAP,CAAA;AACD,GApCD,CAxYU;;;EA+aVzD,IAAI,CAACx/B,UAAL,GAAkBo5B,qBAAlB,CAAA;AACA,EAAA,OAAOoG,IAAP,CAAA;AACD,CAjbD,EAFA,CAAA;AAobA;AACA;AACA;;;AAGA,SAAS6C,mBAAT,CAA6B3gB,SAA7B,EAAwCya,SAAxC,EAAmD;AACjD,EAAA,OAAOza,SAAS,CAACiT,gBAAV,EAAA,KAAiCwH,SAAxC,CAAA;AACD,CAAA;;AAED,SAASsE,aAAT,CAAuBV,OAAvB,EAAgCmD,YAAhC,EAA8C73B,IAA9C;AACAm1B,aADA,EACe;EACbn1B,IAAI,CAACixB,eAAL,GAAuB,YAAY;AACjC;AACA,IAAA,OAAOD,iBAAiB,GAAG,CAACA,iBAAD,CAAH,GAAyB,EAAjD,CAAA;AACD,GAHD,CADa;AAKb;AACA;;;AAGA,EAAA,IAAI0G,SAAS,GAAGhD,OAAO,CAACmD,YAAD,CAAvB,CAAA;AACA,EAAA,IAAI7G,iBAAJ,CAAA;AACA,EAAA,IAAI3a,SAAS,GAAGrW,IAAI,CAACsS,KAArB,CAAA;EACA,IAAIiY,MAAM,GAAGlU,SAAS,CAAC7nB,GAAV,CAAc,CAAC,UAAD,EAAa,QAAb,CAAd,CAAb,CAAA;EACA,IAAIg8B,eAAe,GAAGnU,SAAS,CAAC7nB,GAAV,CAAc,CAAC,UAAD,EAAa,iBAAb,CAAd,CAAtB,CAAA;;EAEA,IAAI,CAAC+7B,MAAL,EAAa;AACX,IAAA,OAAA;AACD,GAjBY;;;EAoBb,IAAIC,eAAe,IAAI,IAAvB,EAA6B;AAC3B,IAAA,IAAIsN,eAAe,CAACJ,SAAS,CAAClN,eAAD,CAAV,CAAnB,EAAiD;AAC/CwG,MAAAA,iBAAiB,GAAG0G,SAAS,CAAClN,eAAD,CAA7B,CAAA;AACD,KAAA;AACF,GAJD,MAIO;AACL;AACA,IAAA,KAAK,IAAIzkC,GAAT,IAAgB2xC,SAAhB,EAA2B;AACzB,MAAA,IAAIA,SAAS,CAACpxC,cAAV,CAAyBP,GAAzB,CAAA,IAAiC+xC,eAAe,CAACJ,SAAS,CAAC3xC,GAAD,CAAV,CAAhD;AACJ;SACG,CAACovC,aAAa,CAAC4C,kBAAkB,CAACL,SAAS,CAAC3xC,GAAD,CAAV,CAAnB,CAFjB,EAEuD;AACrDirC,QAAAA,iBAAiB,GAAG0G,SAAS,CAAC3xC,GAAD,CAA7B,CAAA;AACA,QAAA,MAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;AAED,EAAA,IAAIirC,iBAAJ,EAAuB;AACrBmE,IAAAA,aAAa,CAAC4C,kBAAkB,CAAC/G,iBAAD,CAAnB,CAAb,GAAuD,IAAvD,CAAA;AACD,GAAA;;EAED,SAAS+G,kBAAT,CAA4B/3B,IAA5B,EAAkC;IAChC,OAAOA,IAAI,CAAC5L,GAAL,GAAW,GAAX,GAAiB4L,IAAI,CAACsV,KAA7B,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASwiB,eAAT,CAAyB93B,IAAzB,EAA+B;AAC7B,EAAA,OAAOA,IAAI,IAAIA,IAAI,CAAC52B,IAAL,KAAc,UAAtB,IAAoC42B,IAAI,CAAC52B,IAAL,KAAc,MAAlD,IAA4D4uD,eAAe,CAACh4B,IAAD,CAAlF,CAAA;AACD,CAAA;;AAED,SAAS81B,mBAAT,CAA6B91B,IAA7B,EAAmCi4B,SAAnC,EAA8C;AAC5C,EAAA,IAAIp2B,UAAU,GAAG7B,IAAI,CAAC5K,SAAL,EAAjB,CAAA;AACA,EAAA,IAAI8iC,aAAa,GAAGr2B,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAA9C,CAF4C;;EAI5C7B,IAAI,CAACI,aAAL,GAAqBJ,IAAI,CAAC5L,GAAL,KAAa,GAAb,GAAmB,UAAUkL,KAAV,EAAiB;IACvD,OAAOA,KAAK,GAAG24B,SAAf,CAAA;GADmB,GAEjB,UAAU34B,KAAV,EAAiB;AACnB,IAAA,OAAO44B,aAAa,GAAG54B,KAAhB,GAAwB24B,SAA/B,CAAA;GAHF,CAAA;EAKAj4B,IAAI,CAACgvB,YAAL,GAAoBhvB,IAAI,CAAC5L,GAAL,KAAa,GAAb,GAAmB,UAAUkL,KAAV,EAAiB;IACtD,OAAOA,KAAK,GAAG24B,SAAf,CAAA;GADkB,GAEhB,UAAU34B,KAAV,EAAiB;AACnB,IAAA,OAAO44B,aAAa,GAAG54B,KAAhB,GAAwB24B,SAA/B,CAAA;GAHF,CAAA;AAKD;;ACvjBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoCA,IAAIhiE,IAAE,GAAGJ,IAAI,CAACI,EAAd,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIkiE,WAAW;AACf;AACA,YAAY;AACV,EAAA,SAASA,WAAT,CAAqB9hB,SAArB,EAAgC5uB,GAAhC,EAAqC;AACnC,IAAA,IAAA,CAAKC,KAAL,GAAa,IAAI0F,OAAJ,EAAb,CAAA;IACA,IAAK3F,CAAAA,GAAL,GAAWA,GAAX,CAAA;AACA,IAAA,IAAA,CAAK4uB,SAAL,GAAiBA,SAAjB,CAHmC;;IAKnC+hB,QAAQ,CAAC3wC,GAAD,EAAM;AACZqqC,MAAAA,WAAW,EAAE,CADD;AAEZD,MAAAA,aAAa,EAAE,CAFH;AAGZD,MAAAA,aAAa,EAAE,CAHH;AAIZD,MAAAA,cAAc,EAAE,CAJJ;AAKZ9kC,MAAAA,MAAM,EAAE,IALI;AAMZwrC,MAAAA,eAAe,EAAE,SAAY,eAAA,GAAA;AAC3B,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;KARK,CAAR,CALmC;;AAgBnC,IAAA,IAAIC,cAAc,GAAG,IAAIlrC,OAAJ,CAAkB;AACrCt2B,MAAAA,CAAC,EAAE2wB,GAAG,CAACtN,QAAJ,CAAa,CAAb,CADkC;AAErCpjB,MAAAA,CAAC,EAAE0wB,GAAG,CAACtN,QAAJ,CAAa,CAAb,CAFkC;MAGrC0O,QAAQ,EAAEpB,GAAG,CAACoB,QAAAA;KAHK,CAArB,CAhBmC;AAqBnC;;AAEAyvC,IAAAA,cAAc,CAACxP,eAAf,EAAA,CAAA;IACA,IAAKyP,CAAAA,eAAL,GAAuBD,cAAvB,CAAA;AACD,GAAA;;AAEDH,EAAAA,WAAW,CAAC9hE,SAAZ,CAAsBmiE,UAAtB,GAAmC,UAAUz7D,IAAV,EAAgB;AACjD,IAAA,OAAO,CAAC,CAAC07D,QAAQ,CAAC17D,IAAD,CAAjB,CAAA;GADF,CAAA;;AAIAo7D,EAAAA,WAAW,CAAC9hE,SAAZ,CAAsB4xB,GAAtB,GAA4B,UAAUlrB,IAAV,EAAgB;AAC1C07D,IAAAA,QAAQ,CAAC17D,IAAD,CAAR,CAAe,KAAK0qB,GAApB,EAAyB,IAAK4uB,CAAAA,SAA9B,EAAyC,IAAA,CAAK3uB,KAA9C,EAAqD,KAAK6wC,eAA1D,CAAA,CAAA;GADF,CAAA;;AAIAJ,EAAAA,WAAW,CAAC9hE,SAAZ,CAAsBqiE,QAAtB,GAAiC,YAAY;AAC3C,IAAA,OAAO,KAAKhxC,KAAZ,CAAA;GADF,CAAA;;EAIAywC,WAAW,CAACQ,eAAZ,GAA8B,UAAUC,YAAV,EAAwBC,YAAxB,EAAsCC,SAAtC,EAAiD;AAC7E,IAAA,IAAIC,YAAY,GAAGC,SAAS,CAACH,YAAY,GAAGD,YAAhB,CAA5B,CAAA;AACA,IAAA,IAAI9tD,SAAJ,CAAA;AACA,IAAA,IAAIkkC,iBAAJ,CAAA;;AAEA,IAAA,IAAIiqB,kBAAkB,CAACF,YAAD,CAAtB,EAAsC;AACpC;AACA/pB,MAAAA,iBAAiB,GAAG8pB,SAAS,GAAG,CAAZ,GAAgB,KAAhB,GAAwB,QAA5C,CAAA;AACAhuD,MAAAA,SAAS,GAAG,QAAZ,CAAA;KAHF,MAIO,IAAImuD,kBAAkB,CAACF,YAAY,GAAG9iE,IAAhB,CAAtB,EAA2C;AAChD;AACA+4C,MAAAA,iBAAiB,GAAG8pB,SAAS,GAAG,CAAZ,GAAgB,QAAhB,GAA2B,KAA/C,CAAA;AACAhuD,MAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,KAJM,MAIA;AACLkkC,MAAAA,iBAAiB,GAAG,QAApB,CAAA;;AAEA,MAAA,IAAI+pB,YAAY,GAAG,CAAf,IAAoBA,YAAY,GAAG9iE,IAAvC,EAA2C;AACzC6U,QAAAA,SAAS,GAAGguD,SAAS,GAAG,CAAZ,GAAgB,OAAhB,GAA0B,MAAtC,CAAA;AACD,OAFD,MAEO;AACLhuD,QAAAA,SAAS,GAAGguD,SAAS,GAAG,CAAZ,GAAgB,MAAhB,GAAyB,OAArC,CAAA;AACD,OAAA;AACF,KAAA;;IAED,OAAO;AACLjwC,MAAAA,QAAQ,EAAEkwC,YADL;AAELjuD,MAAAA,SAAS,EAAEA,SAFN;AAGLkkC,MAAAA,iBAAiB,EAAEA,iBAAAA;KAHrB,CAAA;GAvBF,CAAA;;AA8BAmpB,EAAAA,WAAW,CAACe,qBAAZ,GAAoC,UAAU7iB,SAAV,EAAqB;AACvD,IAAA,IAAIxP,SAAS,GAAG;MACdC,aAAa,EAAEuP,SAAS,CAAC4D,QADX;MAEdjT,cAAc,EAAEqP,SAAS,CAACrP,cAAAA;KAF5B,CAAA;IAIAH,SAAS,CAACwP,SAAS,CAAC4D,QAAV,GAAqB,OAAtB,CAAT,GAA0C5D,SAAS,CAACrP,cAApD,CAAA;AACA,IAAA,OAAOH,SAAP,CAAA;GANF,CAAA;;AASAsxB,EAAAA,WAAW,CAACgB,aAAZ,GAA4B,UAAU9iB,SAAV,EAAqB;AAC/C,IAAA,IAAI+iB,UAAU,GAAG/iB,SAAS,CAAC7nB,GAAV,CAAc,SAAd,CAAjB,CAAA;AACA,IAAA,OAAO6nB,SAAS,CAAC7nB,GAAV,CAAc,QAAd,CAAwB;AAAxB,OACJ,EAAE6nB,SAAS,CAAC7nB,GAAV,CAAc,cAAd,CAAiC4qC,IAAAA,UAAU,IAAIA,UAAU,CAAChwC,IAA5D,CADH,CAAA;GAFF,CAAA;;AAMA,EAAA,OAAO+uC,WAAP,CAAA;AACD,CAtFD,EAFA,CAAA;;AA0FA,CAAA;AACA,IAAIM,QAAQ,GAAG;EACbnO,QAAQ,EAAE,kBAAU7iC,GAAV,EAAe4uB,SAAf,EAA0B3uB,KAA1B,EAAiC4wC,cAAjC,EAAiD;IACzD,IAAIe,KAAK,GAAGhjB,SAAS,CAAC7nB,GAAV,CAAc,CAAC,UAAD,EAAa,MAAb,CAAd,CAAZ,CAAA;;AAEA,IAAA,IAAI6qC,KAAK,KAAK,MAAV,IAAoB5xC,GAAG,CAAC4wC,eAA5B,EAA6C;AAC3CgB,MAAAA,KAAK,GAAG5xC,GAAG,CAAC4wC,eAAJ,CAAoB,UAApB,CAAR,CAAA;AACD,KAAA;;IAED,IAAI,CAACgB,KAAL,EAAY;AACV,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIlkC,MAAM,GAAGkhB,SAAS,CAACrW,IAAV,CAAe5K,SAAf,EAAb,CAAA;AACA,IAAA,IAAIkkC,MAAM,GAAGhB,cAAc,CAACn2D,SAA5B,CAAA;IACA,IAAIo3D,GAAG,GAAG,CAACpkC,MAAM,CAAC,CAAD,CAAP,EAAY,CAAZ,CAAV,CAAA;IACA,IAAIqkC,GAAG,GAAG,CAACrkC,MAAM,CAAC,CAAD,CAAP,EAAY,CAAZ,CAAV,CAAA;;AAEA,IAAA,IAAImkC,MAAJ,EAAY;AACVG,MAAAA,cAAgB,CAACF,GAAD,EAAMA,GAAN,EAAWD,MAAX,CAAhB,CAAA;AACAG,MAAAA,cAAgB,CAACD,GAAD,EAAMA,GAAN,EAAWF,MAAX,CAAhB,CAAA;AACD,KAAA;;IAED,IAAItxC,SAAS,GAAGpmB,MAAM,CAAC;AACrB83D,MAAAA,OAAO,EAAE,OAAA;AADY,KAAD,EAEnBrjB,SAAS,CAAC/nB,QAAV,CAAmB,CAAC,UAAD,EAAa,WAAb,CAAnB,CAA8CyX,CAAAA,YAA9C,EAFmB,CAAtB,CAAA;AAGA,IAAA,IAAIne,IAAI,GAAG,IAAIwF,MAAJ,CAAiB;AAC1B;AACAusC,MAAAA,gBAAgB,EAAE,IAFQ;AAG1Bh4D,MAAAA,KAAK,EAAE;AACL0L,QAAAA,EAAE,EAAEksD,GAAG,CAAC,CAAD,CADF;AAELjsD,QAAAA,EAAE,EAAEisD,GAAG,CAAC,CAAD,CAFF;AAGLpiE,QAAAA,EAAE,EAAEqiE,GAAG,CAAC,CAAD,CAHF;QAILpiE,EAAE,EAAEoiE,GAAG,CAAC,CAAD,CAAA;OAPiB;AAS1B7+D,MAAAA,KAAK,EAAEqtB,SATmB;AAU1B4xC,MAAAA,sBAAsB,EAAEnyC,GAAG,CAACmyC,sBAAJ,IAA8B,CAV5B;AAW1B/sC,MAAAA,MAAM,EAAE,IAXkB;AAY1BpB,MAAAA,EAAE,EAAE,CAAA;AAZsB,KAAjB,CAAX,CAAA;IAcA7D,IAAI,CAACiyC,IAAL,GAAY,MAAZ,CAAA;IACAnyC,KAAK,CAACO,GAAN,CAAUL,IAAV,CAAA,CAAA;IACA,IAAIkyC,MAAM,GAAGzjB,SAAS,CAAC7nB,GAAV,CAAc,CAAC,UAAD,EAAa,QAAb,CAAd,CAAb,CAAA;;IAEA,IAAIsrC,MAAM,IAAI,IAAd,EAAoB;MAClB,IAAIC,SAAS,GAAG1jB,SAAS,CAAC7nB,GAAV,CAAc,CAAC,UAAD,EAAa,YAAb,CAAd,CAAhB,CAAA;;AAEA,MAAA,IAAI7qB,QAAQ,CAACm2D,MAAD,CAAZ,EAAsB;AACpB;AACAA,QAAAA,MAAM,GAAG,CAACA,MAAD,EAASA,MAAT,CAAT,CAAA;AACD,OAAA;;MAED,IAAIn2D,QAAQ,CAACo2D,SAAD,CAAR,IAAuBh0D,QAAQ,CAACg0D,SAAD,CAAnC,EAAgD;AAC9C;AACAA,QAAAA,SAAS,GAAG,CAACA,SAAD,EAAYA,SAAZ,CAAZ,CAAA;AACD,OAAA;;AAED,MAAA,IAAIC,WAAW,GAAGprC,qBAAqB,CAACynB,SAAS,CAAC7nB,GAAV,CAAc,CAAC,UAAD,EAAa,cAAb,CAAd,KAA+C,CAAhD,EAAmDurC,SAAnD,CAAvC,CAAA;AACA,MAAA,IAAIE,aAAa,GAAGF,SAAS,CAAC,CAAD,CAA7B,CAAA;AACA,MAAA,IAAIG,cAAc,GAAGH,SAAS,CAAC,CAAD,CAA9B,CAAA;AACAh3D,MAAAA,MAAI,CAAC,CAAC;QACJwsC,MAAM,EAAE9nB,GAAG,CAACoB,QAAJ,GAAehzB,IAAI,CAACI,EAAL,GAAU,CAD7B;AAEJ8X,QAAAA,MAAM,EAAEisD,WAAW,CAAC,CAAD,CAFf;AAGJriE,QAAAA,CAAC,EAAE,CAAA;AAHC,OAAD,EAIF;QACD43C,MAAM,EAAE9nB,GAAG,CAACoB,QAAJ,GAAehzB,IAAI,CAACI,EAAL,GAAU,CADhC;AAED8X,QAAAA,MAAM,EAAEisD,WAAW,CAAC,CAAD,CAFlB;QAGDriE,CAAC,EAAE9B,IAAI,CAAC0kC,IAAL,CAAU,CAACg/B,GAAG,CAAC,CAAD,CAAH,GAASC,GAAG,CAAC,CAAD,CAAb,KAAqBD,GAAG,CAAC,CAAD,CAAH,GAASC,GAAG,CAAC,CAAD,CAAjC,CAAA,GAAwC,CAACD,GAAG,CAAC,CAAD,CAAH,GAASC,GAAG,CAAC,CAAD,CAAb,KAAqBD,GAAG,CAAC,CAAD,CAAH,GAASC,GAAG,CAAC,CAAD,CAAjC,CAAlD,CAAA;AAHF,OAJE,CAAD,EAQA,UAAUvoC,KAAV,EAAiBqkB,KAAjB,EAAwB;AAC1B,QAAA,IAAIwkB,MAAM,CAACxkB,KAAD,CAAN,KAAkB,MAAlB,IAA4BwkB,MAAM,CAACxkB,KAAD,CAAN,IAAiB,IAAjD,EAAuD;AACrD,UAAA,IAAI7sB,MAAM,GAAGZ,cAAY,CAACiyC,MAAM,CAACxkB,KAAD,CAAP,EAAgB,CAAC2kB,aAAD,GAAiB,CAAjC,EAAoC,CAACC,cAAD,GAAkB,CAAtD,EAAyDD,aAAzD,EAAwEC,cAAxE,EAAwFlyC,SAAS,CAACltB,MAAlG,EAA0G,IAA1G,CAAzB,CADqD;;UAGrD,IAAInD,CAAC,GAAGs5B,KAAK,CAACt5B,CAAN,GAAUs5B,KAAK,CAACljB,MAAxB,CAAA;UACA0a,MAAM,CAAC+C,IAAP,CAAY;YACV3C,QAAQ,EAAEoI,KAAK,CAACse,MADN;AAEVz4C,YAAAA,CAAC,EAAEyiE,GAAG,CAAC,CAAD,CAAH,GAAS5hE,CAAC,GAAG9B,IAAI,CAACG,GAAL,CAASyxB,GAAG,CAACoB,QAAb,CAFN;AAGV9xB,YAAAA,CAAC,EAAEwiE,GAAG,CAAC,CAAD,CAAH,GAAS5hE,CAAC,GAAG9B,IAAI,CAACC,GAAL,CAAS2xB,GAAG,CAACoB,QAAb,CAHN;AAIVgE,YAAAA,MAAM,EAAE,IAJE;AAKVpB,YAAAA,EAAE,EAAE,EAAA;WALN,CAAA,CAAA;UAOA/D,KAAK,CAACO,GAAN,CAAUQ,MAAV,CAAA,CAAA;AACD,SAAA;AACF,OAtBG,CAAJ,CAAA;AAuBD,KAAA;GAlFU;EAoFb0xC,aAAa,EAAE,uBAAU1yC,GAAV,EAAe4uB,SAAf,EAA0B3uB,KAA1B,EAAiC4wC,cAAjC,EAAiD;IAC9D,IAAI8B,QAAQ,GAAGC,mBAAmB,CAAC3yC,KAAD,EAAQ4wC,cAAR,EAAwBjiB,SAAxB,EAAmC5uB,GAAnC,CAAlC,CAAA;IACA,IAAI6yC,QAAQ,GAAGC,cAAc,CAAC7yC,KAAD,EAAQ4wC,cAAR,EAAwBjiB,SAAxB,EAAmC5uB,GAAnC,CAA7B,CAAA;AACA+yC,IAAAA,kBAAkB,CAACnkB,SAAD,EAAYikB,QAAZ,EAAsBF,QAAtB,CAAlB,CAAA;AACAK,IAAAA,mBAAmB,CAAC/yC,KAAD,EAAQ4wC,cAAR,EAAwBjiB,SAAxB,EAAmC5uB,GAAG,CAACmqC,aAAvC,CAAnB,CAJ8D;AAK9D;;IAEA,IAAIvb,SAAS,CAAC7nB,GAAV,CAAc,CAAC,WAAD,EAAc,aAAd,CAAd,CAAJ,EAAiD;MAC/C,IAAIksC,SAAS,GAAGC,iBAAiB,CAAC1/D,GAAG,CAACq/D,QAAD,EAAW,UAAUpxC,KAAV,EAAiB;QAC/D,OAAO;AACLA,UAAAA,KAAK,EAAEA,KADF;UAEL0xC,QAAQ,EAAE1xC,KAAK,CAACuC,EAFX;AAGLovC,UAAAA,WAAW,EAAE;YACXloB,MAAM,EAAEzpB,KAAK,CAACypB,MAAAA;AADH,WAAA;SAHf,CAAA;AAOD,OARoC,CAAJ,CAAjC,CAAA;MASAoT,WAAW,CAAC2U,SAAD,CAAX,CAAA;AACD,KAAA;GAtGU;EAwGb1O,QAAQ,EAAE,kBAAUvkC,GAAV,EAAe4uB,SAAf,EAA0B3uB,KAA1B,EAAiC4wC,cAAjC,EAAiD;AACzD,IAAA,IAAIv7D,IAAI,GAAG+9D,QAAQ,CAACrzC,GAAG,CAACukC,QAAL,EAAe3V,SAAS,CAAC7nB,GAAV,CAAc,MAAd,CAAf,CAAnB,CAAA;;IAEA,IAAI,CAACzxB,IAAL,EAAW;AACT,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI4sD,YAAY,GAAGtT,SAAS,CAAC7nB,GAAV,CAAc,cAAd,CAAnB,CAAA;AACA,IAAA,IAAIqjC,aAAa,GAAGpqC,GAAG,CAACoqC,aAAxB,CAAA;AACA,IAAA,IAAIkJ,cAAc,GAAG1kB,SAAS,CAAC/nB,QAAV,CAAmB,eAAnB,CAArB,CAAA;IACA,IAAI0sC,GAAG,GAAG3kB,SAAS,CAAC7nB,GAAV,CAAc,SAAd,KAA4B,CAAtC,CAAA;AACA,IAAA,IAAI2G,MAAM,GAAGkhB,SAAS,CAACrW,IAAV,CAAe5K,SAAf,EAAb,CAAA;AACA,IAAA,IAAI6lC,SAAS,GAAG9lC,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAlB,GAAwB,CAAC,CAAzB,GAA6B,CAA7C,CAAA;AACA,IAAA,IAAI+lC,GAAG,GAAG,CAACvR,YAAY,KAAK,OAAjB,GAA2Bx0B,MAAM,CAAC,CAAD,CAAN,GAAY8lC,SAAS,GAAGD,GAAnD,GAAyDrR,YAAY,KAAK,KAAjB,GAAyBx0B,MAAM,CAAC,CAAD,CAAN,GAAY8lC,SAAS,GAAGD,GAAjD,GAAuD,CAAC7lC,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAnB,IAA0B,CAA3I;AACVgmC,IAAAA,oBAAoB,CAACxR,YAAD,CAApB,GAAqCliC,GAAG,CAACqqC,WAAJ,GAAkBD,aAAa,GAAGmJ,GAAvE,GAA6E,CADnE,CAAV,CAAA;AAEA,IAAA,IAAIjY,WAAJ,CAAA;AACA,IAAA,IAAIqY,YAAY,GAAG/kB,SAAS,CAAC7nB,GAAV,CAAc,YAAd,CAAnB,CAAA;;IAEA,IAAI4sC,YAAY,IAAI,IAApB,EAA0B;AACxBA,MAAAA,YAAY,GAAGA,YAAY,GAAGnlE,IAAf,GAAoB,GAAnC,CADwB;AAEzB,KAAA;;AAED,IAAA,IAAIolE,sBAAJ,CAAA;;AAEA,IAAA,IAAIF,oBAAoB,CAACxR,YAAD,CAAxB,EAAwC;AACtC5G,MAAAA,WAAW,GAAGoV,WAAW,CAACQ,eAAZ,CAA4BlxC,GAAG,CAACoB,QAAhC,EAA0CuyC,YAAY,IAAI,IAAhB,GAAuBA,YAAvB,GAAsC3zC,GAAG,CAACoB,QAApF;AACdgpC,MAAAA,aADc,CAAd,CAAA;AAED,KAHD,MAGO;AACL9O,MAAAA,WAAW,GAAGuY,aAAa,CAAC7zC,GAAG,CAACoB,QAAL,EAAe8gC,YAAf,EAA6ByR,YAAY,IAAI,CAA7C,EAAgDjmC,MAAhD,CAA3B,CAAA;MACAkmC,sBAAsB,GAAG5zC,GAAG,CAAC4zC,sBAA7B,CAAA;;MAEA,IAAIA,sBAAsB,IAAI,IAA9B,EAAoC;AAClCA,QAAAA,sBAAsB,GAAGxlE,IAAI,CAACyC,GAAL,CAAS+iE,sBAAsB,GAAGxlE,IAAI,CAACC,GAAL,CAASitD,WAAW,CAACl6B,QAArB,CAAlC,CAAzB,CAAA;AACA,QAAA,CAACvL,QAAQ,CAAC+9C,sBAAD,CAAT,KAAsCA,sBAAsB,GAAG,IAA/D,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAIE,QAAQ,GAAGR,cAAc,CAACS,OAAf,EAAf,CAAA;IACA,IAAIC,WAAW,GAAGplB,SAAS,CAAC7nB,GAAV,CAAc,cAAd,EAA8B,IAA9B,CAAA,IAAuC,EAAzD,CAAA;AACA,IAAA,IAAIu7B,QAAQ,GAAG0R,WAAW,CAAC1R,QAA3B,CAAA;AACA,IAAA,IAAID,QAAQ,GAAGgR,QAAQ,CAACrzC,GAAG,CAACi0C,oBAAL,EAA2BD,WAAW,CAAC3R,QAAvC,EAAiDuR,sBAAjD,CAAvB,CAAA;AACA,IAAA,IAAIroB,MAAM,GAAG,IAAI5lB,MAAJ,CAAiB;AAC5Bt2B,MAAAA,CAAC,EAAEokE,GAAG,CAAC,CAAD,CADsB;AAE5BnkE,MAAAA,CAAC,EAAEmkE,GAAG,CAAC,CAAD,CAFsB;MAG5BryC,QAAQ,EAAEk6B,WAAW,CAACl6B,QAHM;AAI5BgE,MAAAA,MAAM,EAAEsrC,WAAW,CAACgB,aAAZ,CAA0B9iB,SAA1B,CAJoB;AAK5B17C,MAAAA,KAAK,EAAEghE,eAAe,CAACZ,cAAD,EAAiB;AACrCx9D,QAAAA,IAAI,EAAER,IAD+B;AAErC0N,QAAAA,IAAI,EAAE8wD,QAF+B;AAGrC3c,QAAAA,QAAQ,EAAE,UAH2B;AAIrC9+C,QAAAA,KAAK,EAAEgqD,QAJ8B;AAKrCC,QAAAA,QAAQ,EAAEA,QAL2B;AAMrCnvD,QAAAA,IAAI,EAAEmgE,cAAc,CAACa,YAAf,EAAA,IAAiCvlB,SAAS,CAAC7nB,GAAV,CAAc,CAAC,UAAD,EAAa,WAAb,EAA0B,OAA1B,CAAd,CANF;QAOrCkV,KAAK,EAAEq3B,cAAc,CAACvsC,GAAf,CAAmB,OAAnB,CAAA,IAA+Bu0B,WAAW,CAACj4C,SAPb;QAQrC64B,aAAa,EAAEo3B,cAAc,CAACvsC,GAAf,CAAmB,eAAnB,CAAA,IAAuCu0B,WAAW,CAAC/T,iBAAAA;AAR7B,OAAjB,CALM;AAe5BvjB,MAAAA,EAAE,EAAE,CAAA;AAfwB,KAAjB,CAAb,CAAA;IAiBA2B,gBAAA,CAAyB;AACvB9xB,MAAAA,EAAE,EAAE03C,MADmB;AAEvBmH,MAAAA,cAAc,EAAE9D,SAFO;AAGvBwlB,MAAAA,QAAQ,EAAE9+D,IAAAA;KAHZ,CAAA,CAAA;AAKAi2C,IAAAA,MAAM,CAAC8oB,UAAP,GAAoB/+D,IAApB,CA/DyD;;IAiEzDi2C,MAAM,CAAC6mB,IAAP,GAAc,MAAd,CAAA;;AAEA,IAAA,IAAIxjB,SAAS,CAAC7nB,GAAV,CAAc,cAAd,CAAJ,EAAmC;AACjC,MAAA,IAAIqY,SAAS,GAAGsxB,WAAW,CAACe,qBAAZ,CAAkC7iB,SAAlC,CAAhB,CAAA;MACAxP,SAAS,CAACk1B,UAAV,GAAuB,UAAvB,CAAA;MACAl1B,SAAS,CAAC9pC,IAAV,GAAiBA,IAAjB,CAAA;AACAwzB,MAAAA,SAAS,CAACyiB,MAAD,CAAT,CAAkBnM,SAAlB,GAA8BA,SAA9B,CAAA;AACD,KAxEwD;;;IA2EzDyxB,cAAc,CAACrwC,GAAf,CAAmB+qB,MAAnB,CAAA,CAAA;AACAA,IAAAA,MAAM,CAAC8V,eAAP,EAAA,CAAA;IACAphC,KAAK,CAACO,GAAN,CAAU+qB,MAAV,CAAA,CAAA;AACAA,IAAAA,MAAM,CAACgpB,kBAAP,EAAA,CAAA;AACD,GAAA;AAvLY,CAAf,CAAA;;AA0LA,SAASV,aAAT,CAAuBzyC,QAAvB,EAAiC4lB,YAAjC,EAA+CwtB,UAA/C,EAA2D9mC,MAA3D,EAAmE;AACjE,EAAA,IAAI4jC,YAAY,GAAGC,SAAS,CAACiD,UAAU,GAAGpzC,QAAd,CAA5B,CAAA;AACA,EAAA,IAAI/d,SAAJ,CAAA;AACA,EAAA,IAAIkkC,iBAAJ,CAAA;EACA,IAAIzS,OAAO,GAAGpH,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAhC,CAAA;AACA,EAAA,IAAI+mC,MAAM,GAAGztB,YAAY,KAAK,OAAjB,IAA4B,CAAClS,OAA7B,IAAwCkS,YAAY,KAAK,OAAjB,IAA4BlS,OAAjF,CAAA;;EAEA,IAAI08B,kBAAkB,CAACF,YAAY,GAAG9iE,IAAE,GAAG,CAArB,CAAtB,EAA+C;AAC7C+4C,IAAAA,iBAAiB,GAAGktB,MAAM,GAAG,QAAH,GAAc,KAAxC,CAAA;AACApxD,IAAAA,SAAS,GAAG,QAAZ,CAAA;GAFF,MAGO,IAAImuD,kBAAkB,CAACF,YAAY,GAAG9iE,IAAE,GAAG,GAArB,CAAtB,EAAiD;AACtD+4C,IAAAA,iBAAiB,GAAGktB,MAAM,GAAG,KAAH,GAAW,QAArC,CAAA;AACApxD,IAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,GAHM,MAGA;AACLkkC,IAAAA,iBAAiB,GAAG,QAApB,CAAA;;IAEA,IAAI+pB,YAAY,GAAG9iE,IAAE,GAAG,GAApB,IAA2B8iE,YAAY,GAAG9iE,IAAE,GAAG,CAAnD,EAAsD;AACpD6U,MAAAA,SAAS,GAAGoxD,MAAM,GAAG,MAAH,GAAY,OAA9B,CAAA;AACD,KAFD,MAEO;AACLpxD,MAAAA,SAAS,GAAGoxD,MAAM,GAAG,OAAH,GAAa,MAA/B,CAAA;AACD,KAAA;AACF,GAAA;;EAED,OAAO;AACLrzC,IAAAA,QAAQ,EAAEkwC,YADL;AAELjuD,IAAAA,SAAS,EAAEA,SAFN;AAGLkkC,IAAAA,iBAAiB,EAAEA,iBAAAA;GAHrB,CAAA;AAKD,CAAA;;AAED,SAASwrB,kBAAT,CAA4BnkB,SAA5B,EAAuCikB,QAAvC,EAAiD6B,OAAjD,EAA0D;AACxD,EAAA,IAAIC,mBAAmB,CAAC/lB,SAAS,CAACrW,IAAX,CAAvB,EAAyC;AACvC,IAAA,OAAA;AACD,GAHuD;AAIxD;AACA;;;EAGA,IAAI2qB,YAAY,GAAGtU,SAAS,CAAC7nB,GAAV,CAAc,CAAC,WAAD,EAAc,cAAd,CAAd,CAAnB,CAAA;AACA,EAAA,IAAIo8B,YAAY,GAAGvU,SAAS,CAAC7nB,GAAV,CAAc,CAAC,WAAD,EAAc,cAAd,CAAd,CAAnB,CATwD;AAUxD;;EAEA8rC,QAAQ,GAAGA,QAAQ,IAAI,EAAvB,CAAA;EACA6B,OAAO,GAAGA,OAAO,IAAI,EAArB,CAAA;AACA,EAAA,IAAIE,UAAU,GAAG/B,QAAQ,CAAC,CAAD,CAAzB,CAAA;AACA,EAAA,IAAIgC,SAAS,GAAGhC,QAAQ,CAAC,CAAD,CAAxB,CAAA;EACA,IAAIiC,SAAS,GAAGjC,QAAQ,CAACA,QAAQ,CAACjhE,MAAT,GAAkB,CAAnB,CAAxB,CAAA;EACA,IAAImjE,SAAS,GAAGlC,QAAQ,CAACA,QAAQ,CAACjhE,MAAT,GAAkB,CAAnB,CAAxB,CAAA;AACA,EAAA,IAAIojE,SAAS,GAAGN,OAAO,CAAC,CAAD,CAAvB,CAAA;AACA,EAAA,IAAIO,QAAQ,GAAGP,OAAO,CAAC,CAAD,CAAtB,CAAA;EACA,IAAIQ,QAAQ,GAAGR,OAAO,CAACA,OAAO,CAAC9iE,MAAR,GAAiB,CAAlB,CAAtB,CAAA;EACA,IAAIujE,QAAQ,GAAGT,OAAO,CAACA,OAAO,CAAC9iE,MAAR,GAAiB,CAAlB,CAAtB,CAAA;;EAEA,IAAIsxD,YAAY,KAAK,KAArB,EAA4B;IAC1BkS,QAAQ,CAACR,UAAD,CAAR,CAAA;IACAQ,QAAQ,CAACJ,SAAD,CAAR,CAAA;GAFF,MAGO,IAAIK,oBAAoB,CAACT,UAAD,EAAaC,SAAb,CAAxB,EAAiD;AACtD,IAAA,IAAI3R,YAAJ,EAAkB;MAChBkS,QAAQ,CAACP,SAAD,CAAR,CAAA;MACAO,QAAQ,CAACH,QAAD,CAAR,CAAA;AACD,KAHD,MAGO;MACLG,QAAQ,CAACR,UAAD,CAAR,CAAA;MACAQ,QAAQ,CAACJ,SAAD,CAAR,CAAA;AACD,KAAA;AACF,GAAA;;EAED,IAAI7R,YAAY,KAAK,KAArB,EAA4B;IAC1BiS,QAAQ,CAACN,SAAD,CAAR,CAAA;IACAM,QAAQ,CAACF,QAAD,CAAR,CAAA;GAFF,MAGO,IAAIG,oBAAoB,CAACN,SAAD,EAAYD,SAAZ,CAAxB,EAAgD;AACrD,IAAA,IAAI3R,YAAJ,EAAkB;MAChBiS,QAAQ,CAACL,SAAD,CAAR,CAAA;MACAK,QAAQ,CAACD,QAAD,CAAR,CAAA;AACD,KAHD,MAGO;MACLC,QAAQ,CAACN,SAAD,CAAR,CAAA;MACAM,QAAQ,CAACF,QAAD,CAAR,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAASE,QAAT,CAAkBvhE,EAAlB,EAAsB;AACpBA,EAAAA,EAAE,KAAKA,EAAE,CAACq3C,MAAH,GAAY,IAAjB,CAAF,CAAA;AACD,CAAA;;AAED,SAASmqB,oBAAT,CAA8BxkC,OAA9B,EAAuCC,IAAvC,EAA6C;AAC3C;EACA,IAAIwkC,SAAS,GAAGzkC,OAAO,IAAIA,OAAO,CAAC0mB,eAAR,EAA0BrvC,CAAAA,KAA1B,EAA3B,CAAA;EACA,IAAIqtD,QAAQ,GAAGzkC,IAAI,IAAIA,IAAI,CAACymB,eAAL,EAAuBrvC,CAAAA,KAAvB,EAAvB,CAAA;;AAEA,EAAA,IAAI,CAACotD,SAAD,IAAc,CAACC,QAAnB,EAA6B;AAC3B,IAAA,OAAA;AACD,GAP0C;AAQ3C;;;AAGA,EAAA,IAAIC,aAAa,GAAGC,QAAA,CAAoB,EAApB,CAApB,CAAA;EACAA,MAAA,CAAkBD,aAAlB,EAAiCA,aAAjC,EAAgD,CAAC3kC,OAAO,CAACzP,QAAzD,CAAA,CAAA;AACAk0C,EAAAA,SAAS,CAAClc,cAAV,CAAyBqc,GAAA,CAAe,EAAf,EAAmBD,aAAnB,EAAkC3kC,OAAO,CAAC6kC,iBAAR,EAAlC,CAAzB,CAAA,CAAA;AACAH,EAAAA,QAAQ,CAACnc,cAAT,CAAwBqc,GAAA,CAAe,EAAf,EAAmBD,aAAnB,EAAkC1kC,IAAI,CAAC4kC,iBAAL,EAAlC,CAAxB,CAAA,CAAA;AACA,EAAA,OAAOJ,SAAS,CAACh/C,SAAV,CAAoBi/C,QAApB,CAAP,CAAA;AACD,CAAA;;AAED,SAAS7B,oBAAT,CAA8BxR,YAA9B,EAA4C;AAC1C,EAAA,OAAOA,YAAY,KAAK,QAAjB,IAA6BA,YAAY,KAAK,QAArD,CAAA;AACD,CAAA;;AAED,SAASyT,WAAT,CAAqBC,WAArB,EAAkCC,aAAlC,EAAiDC,YAAjD,EAA+DC,aAA/D,EAA8EC,UAA9E,EAA0F;EACxF,IAAItB,OAAO,GAAG,EAAd,CAAA;EACA,IAAI5C,GAAG,GAAG,EAAV,CAAA;EACA,IAAIC,GAAG,GAAG,EAAV,CAAA;;AAEA,EAAA,KAAK,IAAIz/D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsjE,WAAW,CAAChkE,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C,IAAA,IAAI2jE,SAAS,GAAGL,WAAW,CAACtjE,CAAD,CAAX,CAAeulC,KAA/B,CAAA;AACAi6B,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASmE,SAAT,CAAA;AACAnE,IAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT,CAAA;AACAC,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASkE,SAAT,CAAA;AACAlE,IAAAA,GAAG,CAAC,CAAD,CAAH,GAAS+D,YAAT,CAAA;;AAEA,IAAA,IAAID,aAAJ,EAAmB;AACjB7D,MAAAA,cAAgB,CAACF,GAAD,EAAMA,GAAN,EAAW+D,aAAX,CAAhB,CAAA;AACA7D,MAAAA,cAAgB,CAACD,GAAD,EAAMA,GAAN,EAAW8D,aAAX,CAAhB,CAAA;AACD,KAV0C;;;AAa3C,IAAA,IAAIK,MAAM,GAAG,IAAIvwC,MAAJ,CAAiB;AAC5BusC,MAAAA,gBAAgB,EAAE,IADU;AAE5Bh4D,MAAAA,KAAK,EAAE;AACL0L,QAAAA,EAAE,EAAEksD,GAAG,CAAC,CAAD,CADF;AAELjsD,QAAAA,EAAE,EAAEisD,GAAG,CAAC,CAAD,CAFF;AAGLpiE,QAAAA,EAAE,EAAEqiE,GAAG,CAAC,CAAD,CAHF;QAILpiE,EAAE,EAAEoiE,GAAG,CAAC,CAAD,CAAA;OANmB;AAQ5B7+D,MAAAA,KAAK,EAAE6iE,aARqB;AAS5B/xC,MAAAA,EAAE,EAAE,CATwB;AAU5BmyC,MAAAA,SAAS,EAAE,IAViB;AAW5B/wC,MAAAA,MAAM,EAAE,IAAA;AAXoB,KAAjB,CAAb,CAAA;AAaA8wC,IAAAA,MAAM,CAAC9D,IAAP,GAAc4D,UAAU,GAAG,GAAb,GAAmBJ,WAAW,CAACtjE,CAAD,CAAX,CAAe6nC,SAAhD,CAAA;IACAu6B,OAAO,CAAC/hE,IAAR,CAAaujE,MAAb,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,OAAOxB,OAAP,CAAA;AACD,CAAA;;AAED,SAAS9B,mBAAT,CAA6B3yC,KAA7B,EAAoC4wC,cAApC,EAAoDjiB,SAApD,EAA+D5uB,GAA/D,EAAoE;AAClE,EAAA,IAAIuY,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;AACA,EAAA,IAAI69B,SAAS,GAAGxnB,SAAS,CAAC/nB,QAAV,CAAmB,UAAnB,CAAhB,CAAA;AACA,EAAA,IAAI+qC,KAAK,GAAGwE,SAAS,CAACrvC,GAAV,CAAc,MAAd,CAAZ,CAAA;;AAEA,EAAA,IAAI6qC,KAAK,KAAK,MAAV,IAAoB5xC,GAAG,CAAC4wC,eAA5B,EAA6C;AAC3CgB,IAAAA,KAAK,GAAG5xC,GAAG,CAAC4wC,eAAJ,CAAoB,UAApB,CAAR,CAAA;AACD,GAAA;;EAED,IAAI,CAACgB,KAAD,IAAUr5B,IAAI,CAACrjB,KAAL,CAAWmhD,OAAX,EAAd,EAAoC;AAClC,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIz5B,cAAc,GAAGw5B,SAAS,CAACvvC,QAAV,CAAmB,WAAnB,CAArB,CAAA;EACA,IAAIivC,YAAY,GAAG91C,GAAG,CAACmqC,aAAJ,GAAoBiM,SAAS,CAACrvC,GAAV,CAAc,QAAd,CAAvC,CAAA;AACA,EAAA,IAAI6uC,WAAW,GAAGr9B,IAAI,CAAC+9B,cAAL,EAAlB,CAAA;AACA,EAAA,IAAI3D,QAAQ,GAAGgD,WAAW,CAACC,WAAD,EAAc/E,cAAc,CAACn2D,SAA7B,EAAwCo7D,YAAxC,EAAsDnF,QAAQ,CAAC/zB,cAAc,CAAC0B,YAAf,EAAD,EAAgC;IACtHjrC,MAAM,EAAEu7C,SAAS,CAAC7nB,GAAV,CAAc,CAAC,UAAD,EAAa,WAAb,EAA0B,OAA1B,CAAd,CAAA;GAD8E,CAA9D,EAEtB,OAFsB,CAA1B,CAAA;;AAIA,EAAA,KAAK,IAAIz0B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqgE,QAAQ,CAAC/gE,MAA7B,EAAqCU,CAAC,EAAtC,EAA0C;AACxC2tB,IAAAA,KAAK,CAACO,GAAN,CAAUmyC,QAAQ,CAACrgE,CAAD,CAAlB,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,OAAOqgE,QAAP,CAAA;AACD,CAAA;;AAED,SAASK,mBAAT,CAA6B/yC,KAA7B,EAAoC4wC,cAApC,EAAoDjiB,SAApD,EAA+Dub,aAA/D,EAA8E;AAC5E,EAAA,IAAI5xB,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;AACA,EAAA,IAAIg+B,cAAc,GAAG3nB,SAAS,CAAC/nB,QAAV,CAAmB,WAAnB,CAArB,CAAA;;AAEA,EAAA,IAAI,CAAC0vC,cAAc,CAACxvC,GAAf,CAAmB,MAAnB,CAAD,IAA+BwR,IAAI,CAACrjB,KAAL,CAAWmhD,OAAX,EAAnC,EAAyD;AACvD,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIG,gBAAgB,GAAGj+B,IAAI,CAACk+B,mBAAL,EAAvB,CAAA;;AAEA,EAAA,IAAI,CAACD,gBAAgB,CAAC5kE,MAAtB,EAA8B;AAC5B,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIgrC,cAAc,GAAG25B,cAAc,CAAC1vC,QAAf,CAAwB,WAAxB,CAArB,CAAA;EACA,IAAIivC,YAAY,GAAG3L,aAAa,GAAGoM,cAAc,CAACxvC,GAAf,CAAmB,QAAnB,CAAnC,CAAA;AACA,EAAA,IAAI2vC,kBAAkB,GAAG/F,QAAQ,CAAC/zB,cAAc,CAAC0B,YAAf,EAAD,EAAgCqyB,QAAQ,CAAC/hB,SAAS,CAAC/nB,QAAV,CAAmB,UAAnB,CAA+ByX,CAAAA,YAA/B,EAAD,EAAgD;IACvHjrC,MAAM,EAAEu7C,SAAS,CAAC7nB,GAAV,CAAc,CAAC,UAAD,EAAa,WAAb,EAA0B,OAA1B,CAAd,CAAA;AAD+G,GAAhD,CAAxC,CAAjC,CAAA;;AAIA,EAAA,KAAK,IAAIz0B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkkE,gBAAgB,CAAC5kE,MAArC,EAA6CU,CAAC,EAA9C,EAAkD;AAChD,IAAA,IAAIqkE,aAAa,GAAGhB,WAAW,CAACa,gBAAgB,CAAClkE,CAAD,CAAjB,EAAsBu+D,cAAc,CAACn2D,SAArC,EAAgDo7D,YAAhD,EAA8DY,kBAA9D,EAAkF,aAAA,GAAgBpkE,CAAlG,CAA/B,CAAA;;AAEA,IAAA,KAAK,IAAIwL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG64D,aAAa,CAAC/kE,MAAlC,EAA0CkM,CAAC,EAA3C,EAA+C;AAC7CmiB,MAAAA,KAAK,CAACO,GAAN,CAAUm2C,aAAa,CAAC74D,CAAD,CAAvB,CAAA,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAASg1D,cAAT,CAAwB7yC,KAAxB,EAA+B4wC,cAA/B,EAA+CjiB,SAA/C,EAA0D5uB,GAA1D,EAA+D;AAC7D,EAAA,IAAIuY,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;AACA,EAAA,IAAI5W,IAAI,GAAG0xC,QAAQ,CAACrzC,GAAG,CAAC42C,aAAL,EAAoBhoB,SAAS,CAAC7nB,GAAV,CAAc,CAAC,WAAD,EAAc,MAAd,CAAd,CAApB,CAAnB,CAAA;;EAEA,IAAI,CAACpF,IAAD,IAAS4W,IAAI,CAACrjB,KAAL,CAAWmhD,OAAX,EAAb,EAAmC;AACjC,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIje,UAAU,GAAGxJ,SAAS,CAAC/nB,QAAV,CAAmB,WAAnB,CAAjB,CAAA;AACA,EAAA,IAAIgwC,WAAW,GAAGze,UAAU,CAACrxB,GAAX,CAAe,QAAf,CAAlB,CAAA;AACA,EAAA,IAAI+vC,MAAM,GAAGv+B,IAAI,CAACwB,aAAL,EAAb,CAV6D;;EAY7D,IAAIg9B,aAAa,GAAG,CAAC1D,QAAQ,CAACrzC,GAAG,CAAC+4B,WAAL,EAAkBX,UAAU,CAACrxB,GAAX,CAAe,QAAf,CAAlB,CAAR,IAAuD,CAAxD,IAA6Dv4B,IAA7D,GAAkE,GAAtF,CAAA;AACA,EAAA,IAAI8sD,WAAW,GAAGoV,WAAW,CAACQ,eAAZ,CAA4BlxC,GAAG,CAACoB,QAAhC,EAA0C21C,aAA1C,EAAyD/2C,GAAG,CAACkqC,cAA7D,CAAlB,CAAA;EACA,IAAI8M,eAAe,GAAGpoB,SAAS,CAACiX,aAAV,IAA2BjX,SAAS,CAACiX,aAAV,CAAwB,IAAxB,CAAjD,CAAA;EACA,IAAIgN,QAAQ,GAAG,EAAf,CAAA;AACA,EAAA,IAAIztC,MAAM,GAAGsrC,WAAW,CAACgB,aAAZ,CAA0B9iB,SAA1B,CAAb,CAAA;AACA,EAAA,IAAI8T,YAAY,GAAG9T,SAAS,CAAC7nB,GAAV,CAAc,cAAd,CAAnB,CAAA;AACAzrB,EAAAA,MAAI,CAACw7D,MAAD,EAAS,UAAU98B,SAAV,EAAqB6T,KAArB,EAA4B;IACvC,IAAI1T,SAAS,GAAG5B,IAAI,CAACrjB,KAAL,CAAWvT,IAAX,KAAoB,SAApB,GAAgC42B,IAAI,CAACrjB,KAAL,CAAWglB,mBAAX,CAA+BF,SAAS,CAACG,SAAzC,CAAhC,GAAsFH,SAAS,CAACG,SAAhH,CAAA;AACA,IAAA,IAAI88B,cAAc,GAAGj9B,SAAS,CAACi9B,cAA/B,CAAA;AACA,IAAA,IAAIC,QAAQ,GAAGl9B,SAAS,CAACk9B,QAAzB,CAAA;IACA,IAAIC,cAAc,GAAG/e,UAArB,CAAA;;AAEA,IAAA,IAAI4e,eAAe,IAAIA,eAAe,CAAC78B,SAAD,CAAtC,EAAmD;AACjD,MAAA,IAAIi9B,eAAe,GAAGJ,eAAe,CAAC78B,SAAD,CAArC,CAAA;;MAEA,IAAI/uB,UAAQ,CAACgsD,eAAD,CAAR,IAA6BA,eAAe,CAACC,SAAjD,EAA4D;AAC1DF,QAAAA,cAAc,GAAG,IAAIG,KAAJ,CAAUF,eAAe,CAACC,SAA1B,EAAqCjf,UAArC,EAAiDxJ,SAAS,CAACjS,OAA3D,CAAjB,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAI46B,SAAS,GAAGJ,cAAc,CAAChD,YAAf,MAAiCvlB,SAAS,CAAC7nB,GAAV,CAAc,CAAC,UAAD,EAAa,WAAb,EAA0B,OAA1B,CAAd,CAAjD,CAAA;AACA,IAAA,IAAIkvC,SAAS,GAAG19B,IAAI,CAACK,WAAL,CAAiBuB,SAAjB,CAAhB,CAAA;AACA,IAAA,IAAIoR,MAAM,GAAG,IAAI5lB,MAAJ,CAAiB;AAC5Bt2B,MAAAA,CAAC,EAAE4mE,SADyB;MAE5B3mE,CAAC,EAAE0wB,GAAG,CAACqqC,WAAJ,GAAkBrqC,GAAG,CAACkqC,cAAJ,GAAqB2M,WAFd;MAG5Bz1C,QAAQ,EAAEk6B,WAAW,CAACl6B,QAHM;AAI5BgE,MAAAA,MAAM,EAAEA,MAJoB;AAK5BpB,MAAAA,EAAE,EAAE,EAAMgW,IAAAA,SAAS,CAACw9B,KAAV,IAAmB,CAAzB,CALwB;AAM5BtkE,MAAAA,KAAK,EAAEghE,eAAe,CAACiD,cAAD,EAAiB;AACrCrhE,QAAAA,IAAI,EAAEmhE,cAD+B;QAErCh7B,KAAK,EAAEk7B,cAAc,CAAClwC,UAAf,CAA0B,OAA1B,EAAmC,IAAnC,CAAA,IAA4Cq0B,WAAW,CAACj4C,SAF1B;QAGrC64B,aAAa,EAAEi7B,cAAc,CAAClwC,UAAf,CAA0B,eAA1B,EAA2C,IAA3C,CAAoDkwC,IAAAA,cAAc,CAAClwC,UAAf,CAA0B,UAA1B,EAAsC,IAAtC,CAApD,IAAmGq0B,WAAW,CAAC/T,iBAHzF;AAIrCp0C,QAAAA,IAAI,EAAEwM,UAAU,CAAC43D,SAAD,CAAV,GAAwBA,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;QACAh/B,IAAI,CAAC52B,IAAL,KAAc,UAAd,GAA2Bu1D,QAA3B,GAAsC3+B,IAAI,CAAC52B,IAAL,KAAc,OAAd,GAAwBw4B,SAAS,GAAG,EAApC,GAAyCA,SAPxC,EAOmD0T,KAPnD,CAAjC,GAO6F0pB,SAAAA;OAX/E,CAAA;AANM,KAAjB,CAAb,CAAA;AAoBAhsB,IAAAA,MAAM,CAAC6mB,IAAP,GAAc,QAAWj4B,GAAAA,SAAzB,CApCuC;;AAsCvC,IAAA,IAAIuoB,YAAJ,EAAkB;AAChB,MAAA,IAAItjB,SAAS,GAAGsxB,WAAW,CAACe,qBAAZ,CAAkC7iB,SAAlC,CAAhB,CAAA;MACAxP,SAAS,CAACk1B,UAAV,GAAuB,WAAvB,CAAA;MACAl1B,SAAS,CAACtR,KAAV,GAAkBopC,QAAlB,CAAA;MACA93B,SAAS,CAACq4B,SAAV,GAAsB5pB,KAAtB,CAAA;;AAEA,MAAA,IAAItV,IAAI,CAAC52B,IAAL,KAAc,UAAlB,EAA8B;QAC5By9B,SAAS,CAACrc,SAAV,GAAsBoX,SAAtB,CAAA;AACD,OAAA;;AAEDrR,MAAAA,SAAS,CAACyiB,MAAD,CAAT,CAAkBnM,SAAlB,GAA8BA,SAA9B,CAAA;AACD,KAjDsC;;;IAoDvCyxB,cAAc,CAACrwC,GAAf,CAAmB+qB,MAAnB,CAAA,CAAA;AACAA,IAAAA,MAAM,CAAC8V,eAAP,EAAA,CAAA;IACAwR,QAAQ,CAAClgE,IAAT,CAAc44C,MAAd,CAAA,CAAA;IACAtrB,KAAK,CAACO,GAAN,CAAU+qB,MAAV,CAAA,CAAA;AACAA,IAAAA,MAAM,CAACgpB,kBAAP,EAAA,CAAA;AACD,GAzDG,CAAJ,CAAA;AA0DA,EAAA,OAAO1B,QAAP,CAAA;AACD;;ACvnBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA;;AAEO,SAAS6E,OAAT,CAAiB/6B,OAAjB,EAA0BxxB,GAA1B,EAA+B;AACpC,EAAA,IAAIwsD,MAAM,GAAG;AACX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,IAAAA,QAAQ,EAAE,EAdC;AAeXC,IAAAA,cAAc,EAAE,KAfL;;AAiBX;AACJ;AACA;AACA;AACIC,IAAAA,gBAAgB,EAAE,EArBP;AAsBXC,IAAAA,WAAW,EAAE,EAAA;GAtBf,CAAA;EAwBAC,eAAe,CAACL,MAAD,EAASh7B,OAAT,EAAkBxxB,GAAlB,CAAf,CAzBoC;;EA2BpCwsD,MAAM,CAACE,cAAP,IAAyBI,iBAAiB,CAACN,MAAD,EAASh7B,OAAT,CAA1C,CAAA;AACA,EAAA,OAAOg7B,MAAP,CAAA;AACD,CAAA;;AAED,SAASK,eAAT,CAAyBL,MAAzB,EAAiCh7B,OAAjC,EAA0CxxB,GAA1C,EAA+C;AAC7C,EAAA,IAAI+sD,kBAAkB,GAAGv7B,OAAO,CAACw7B,YAAR,CAAqB,SAArB,CAAzB,CAAA;EACA,IAAIC,sBAAsB,GAAGz7B,OAAO,CAACw7B,YAAR,CAAqB,aAArB,CAA7B,CAF6C;;EAI7C,IAAIE,WAAW,GAAGD,sBAAsB,CAACrxC,GAAvB,CAA2B,MAA3B,EAAmC,IAAnC,CAAA,IAA4C,EAA9D,CAAA;AACA,EAAA,IAAIuxC,UAAU,GAAG,EAAjB,CAL6C;;EAO7Ch9D,MAAI,CAAC6P,GAAG,CAACotD,oBAAJ,EAAD,EAA6B,UAAU74C,QAAV,EAAoB;AACnD;AACA,IAAA,IAAI,CAACA,QAAQ,CAACqtC,kBAAd,EAAkC;AAChC,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIyL,WAAW,GAAGC,OAAO,CAAC/4C,QAAQ,CAACmrB,KAAV,CAAzB,CAAA;IACA,IAAI6tB,kBAAkB,GAAGf,MAAM,CAACG,gBAAP,CAAwBU,WAAxB,IAAuC,EAAhE,CAAA;AACAb,IAAAA,MAAM,CAACI,WAAP,CAAmBS,WAAnB,CAAkC94C,GAAAA,QAAlC,CARmD;AASnD;;AAEA,IAAA,IAAIi5C,aAAa,GAAGj5C,QAAQ,CAACmrB,KAA7B,CAAA;IACA,IAAI+tB,gBAAgB,GAAGD,aAAa,CAAC9xC,QAAd,CAAuB,SAAvB,EAAkCqxC,kBAAlC,CAAvB,CAAA;AACA58D,IAAAA,MAAI,CAACokB,QAAQ,CAACymC,OAAT,EAAD,EAAqBnH,OAAK,CAAC6Z,mBAAD,EAAsB,KAAtB,EAA6B,IAA7B,CAA1B,CAAJ,CAbmD;AAcnD;;AAEA,IAAA,IAAIn5C,QAAQ,CAACqwC,cAAT,IAA2BmI,kBAA3B;AACJ;AADI,OAEDU,gBAAgB,CAAC7xC,GAAjB,CAAqB,MAArB,CAFH,EAEiC;AAC/B;AACA;MACA,IAAI+xC,WAAW,GAAGF,gBAAgB,CAAC7xC,GAAjB,CAAqB,SAArB,MAAoC,MAAtD,CAAA;AACA,MAAA,IAAIgyC,KAAK,GAAGH,gBAAgB,CAAC7xC,GAAjB,CAAqB,CAAC,aAAD,EAAgB,MAAhB,CAArB,CAAA,KAAkD,OAA9D,CAAA;AACA,MAAA,IAAIiyC,WAAW,GAAGt5C,QAAQ,CAACqwC,cAAT,CAAwB6I,gBAAgB,CAAC7xC,GAAjB,CAAqB,CAAC,aAAD,EAAgB,MAAhB,CAArB,CAAxB,CAAlB,CAAA;;MAEA,IAAI+xC,WAAW,IAAIC,KAAnB,EAA0B;AACxBz9D,QAAAA,MAAI,CAAC09D,WAAW,CAAChJ,QAAb,EAAuBhR,OAAK,CAAC6Z,mBAAD,EAAsBE,KAAK,GAAG,OAAH,GAAa,IAAxC,EAA8CD,WAA9C,CAA5B,CAAJ,CAAA;AACD,OAAA;;AAED,MAAA,IAAIC,KAAJ,EAAW;AACTz9D,QAAAA,MAAI,CAAC09D,WAAW,CAAC/I,SAAb,EAAwBjR,OAAK,CAAC6Z,mBAAD,EAAsB,OAAtB,EAA+B,KAA/B,CAA7B,CAAJ,CAAA;AACD,OAAA;AACF,KAhCkD;AAiCnD;;;AAGA,IAAA,SAASA,mBAAT,CAA6BI,WAA7B,EAA0CC,cAA1C,EAA0D3gC,IAA1D,EAAgE;MAC9D,IAAI4gC,gBAAgB,GAAG5gC,IAAI,CAACsS,KAAL,CAAWhkB,QAAX,CAAoB,aAApB,EAAmCuxC,sBAAnC,CAAvB,CAAA;AACA,MAAA,IAAIgB,eAAe,GAAGD,gBAAgB,CAACpyC,GAAjB,CAAqB,MAArB,CAAtB,CAAA;;AAEA,MAAA,IAAI,CAACqyC,eAAD,IAAoBA,eAAe,KAAK,MAApB,IAA8B,CAACH,WAA/B,IAA8C,CAACI,eAAe,CAACF,gBAAD,CAAtF,EAA0G;AACxG,QAAA,OAAA;AACD,OAAA;;MAED,IAAID,cAAc,IAAI,IAAtB,EAA4B;AAC1BA,QAAAA,cAAc,GAAGC,gBAAgB,CAACpyC,GAAjB,CAAqB,gBAArB,CAAjB,CAAA;AACD,OAAA;;AAEDoyC,MAAAA,gBAAgB,GAAGF,WAAW,GAAGK,oBAAoB,CAAC/gC,IAAD,EAAOqgC,gBAAP,EAAyBR,sBAAzB,EAAiDz7B,OAAjD,EAA0Ds8B,WAA1D,EAAuEC,cAAvE,CAAvB,GAAgHC,gBAA9I,CAAA;AACA,MAAA,IAAII,IAAI,GAAGJ,gBAAgB,CAACpyC,GAAjB,CAAqB,MAArB,CAAX,CAAA;AACA,MAAA,IAAIyyC,OAAO,GAAGf,OAAO,CAAClgC,IAAI,CAACsS,KAAN,CAArB,CAAA;AACA,MAAA,IAAI4uB,aAAa,GAAGP,cAAc,IAAIK,IAAlB,IAA0BhhC,IAAI,CAAC52B,IAAL,KAAc,UAA5D,CAf8D;;AAiB9D,MAAA,IAAI+3D,QAAQ,GAAG/B,MAAM,CAACC,QAAP,CAAgB4B,OAAhB,CAA2B,GAAA;AACxC7jE,QAAAA,GAAG,EAAE6jE,OADmC;AAExCjhC,QAAAA,IAAI,EAAEA,IAFkC;AAGxC7Y,QAAAA,QAAQ,EAAEA,QAH8B;AAIxCy5C,QAAAA,gBAAgB,EAAEA,gBAJsB;AAKxCD,QAAAA,cAAc,EAAEA,cALwB;AAMxCO,QAAAA,aAAa,EAAEA,aANyB;AAOxCF,QAAAA,IAAI,EAAEA,IAPkC;AAQxCI,QAAAA,SAAS,EAAEN,eAAe,CAACF,gBAAD,CARc;AASxCS,QAAAA,YAAY,EAAE,EAT0B;AAUxCC,QAAAA,SAAS,EAAE,IAAA;OAVb,CAAA;AAYAnB,MAAAA,kBAAkB,CAACc,OAAD,CAAlB,GAA8BE,QAA9B,CAAA;AACA/B,MAAAA,MAAM,CAACE,cAAP,GAAwBF,MAAM,CAACE,cAAP,IAAyB4B,aAAjD,CAAA;AACA,MAAA,IAAIK,UAAU,GAAGC,iBAAiB,CAAC1B,WAAD,EAAc9/B,IAAd,CAAlC,CAAA;;MAEA,IAAIuhC,UAAU,IAAI,IAAlB,EAAwB;QACtB,IAAID,SAAS,GAAGvB,UAAU,CAACwB,UAAD,CAAV,KAA2BxB,UAAU,CAACwB,UAAD,CAAV,GAAyB;AAClElC,UAAAA,QAAQ,EAAE,EAAA;AADwD,SAApD,CAAhB,CAAA;AAGAiC,QAAAA,SAAS,CAACjC,QAAV,CAAmB4B,OAAnB,IAA8BE,QAA9B,CAAA;QACAG,SAAS,CAACG,MAAV,GAAmB3B,WAAW,CAACyB,UAAD,CAAX,CAAwBE,MAA3C,CAAA;QACAN,QAAQ,CAACG,SAAT,GAAqBA,SAArB,CAAA;AACD,OAAA;AACF,KAAA;AACF,GA9EG,CAAJ,CAAA;AA+ED,CAAA;;AAED,SAASP,oBAAT,CAA8B/gC,IAA9B,EAAoCqgC,gBAApC,EAAsDR,sBAAtD,EAA8Ez7B,OAA9E,EAAuFs8B,WAAvF,EAAoGC,cAApG,EAAoH;AAClH,EAAA,IAAIe,uBAAuB,GAAGrB,gBAAgB,CAAC/xC,QAAjB,CAA0B,aAA1B,CAA9B,CAAA;EACA,IAAIqzC,MAAM,GAAG,CAAC,MAAD,EAAS,MAAT,EAAiB,WAAjB,EAA8B,aAA9B,EAA6C,OAA7C,EAAsD,WAAtD,EAAmE,yBAAnE,EAA8F,uBAA9F,EAAuH,GAAvH,CAAb,CAAA;EACA,IAAIC,cAAc,GAAG,EAArB,CAAA;AACA7+D,EAAAA,MAAI,CAAC4+D,MAAD,EAAS,UAAUE,KAAV,EAAiB;AAC5BD,IAAAA,cAAc,CAACC,KAAD,CAAd,GAAwBlyD,OAAK,CAAC+xD,uBAAuB,CAAClzC,GAAxB,CAA4BqzC,KAA5B,CAAD,CAA7B,CAAA;GADE,CAAJ,CAJkH;AAOlH;AACA;;AAEAD,EAAAA,cAAc,CAACZ,IAAf,GAAsBhhC,IAAI,CAAC52B,IAAL,KAAc,UAAd,IAA4B,CAAC,CAACu3D,cAApD,CAVkH;AAWlH;;AAEA,EAAA,IAAIe,uBAAuB,CAAClzC,GAAxB,CAA4B,MAA5B,CAAA,KAAwC,OAA5C,EAAqD;IACnDozC,cAAc,CAACx4D,IAAf,GAAsB,MAAtB,CAAA;AACD,GAAA;;AAED,EAAA,IAAI04D,WAAW,GAAGF,cAAc,CAAC14C,KAAf,KAAyB04C,cAAc,CAAC14C,KAAf,GAAuB,EAAhD,CAAlB,CAjBkH;;EAmBlH44C,WAAW,CAAC14C,IAAZ,IAAoB,IAApB,KAA6B04C,WAAW,CAAC14C,IAAZ,GAAmB,KAAhD,CAAA,CAAA;;EAEA,IAAIs3C,WAAW,KAAK,OAApB,EAA6B;AAC3B;IACA,IAAIqB,2BAA2B,GAAGL,uBAAuB,CAAClzC,GAAxB,CAA4B,CAAC,OAAD,EAAU,MAAV,CAA5B,CAAlC,CAAA;IACAszC,WAAW,CAAC14C,IAAZ,GAAmB24C,2BAA2B,IAAI,IAA/B,GAAsCA,2BAAtC,GAAoE,IAAvF,CAH2B;AAI3B;;IAEA,IAAI,CAACpB,cAAL,EAAqB;MACnB,IAAIqB,UAAU,GAAGJ,cAAc,CAAC55C,SAAf,GAA2B05C,uBAAuB,CAAClzC,GAAxB,CAA4B,YAA5B,CAA5C,CAAA;MACAwzC,UAAU,IAAI5J,QAAQ,CAAC0J,WAAD,EAAcE,UAAU,CAAClD,SAAzB,CAAtB,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAO9+B,IAAI,CAACsS,KAAL,CAAWhkB,QAAX,CAAoB,aAApB,EAAmC,IAAIywC,KAAJ,CAAU6C,cAAV,EAA0B/B,sBAA1B,EAAkDz7B,OAAlD,CAAnC,CAAP,CAAA;AACD,CAAA;;AAED,SAASs7B,iBAAT,CAA2BN,MAA3B,EAAmCh7B,OAAnC,EAA4C;AAC1C;AACAA,EAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;AACxC;AACA,IAAA,IAAI5F,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,IAAA,IAAI66C,oBAAoB,GAAGl1C,WAAW,CAACyB,GAAZ,CAAgB,CAAC,SAAD,EAAY,SAAZ,CAAhB,EAAwC,IAAxC,CAA3B,CAAA;AACA,IAAA,IAAI0zC,iBAAiB,GAAGn1C,WAAW,CAACyB,GAAZ,CAAgB,CAAC,SAAD,EAAY,MAAZ,CAAhB,EAAqC,IAArC,CAAxB,CAAA;;AAEA,IAAA,IAAI,CAACrH,QAAD,IAAa86C,oBAAoB,KAAK,MAAtC,IAAgDA,oBAAoB,KAAK,KAAzE,IAAkFA,oBAAoB,KAAK,MAA3G,IAAqHC,iBAAiB,KAAK,KAA3I,IAAoJn1C,WAAW,CAACyB,GAAZ,CAAgB,CAAC,aAAD,EAAgB,MAAhB,CAAhB,EAAyC,IAAzC,CAAA,KAAmD,KAA3M,EAAkN;AAChN,MAAA,OAAA;AACD,KAAA;;AAEDzrB,IAAAA,MAAI,CAACq8D,MAAM,CAACG,gBAAP,CAAwBW,OAAO,CAAC/4C,QAAQ,CAACmrB,KAAV,CAA/B,CAAD,EAAmD,UAAU6uB,QAAV,EAAoB;AACzE,MAAA,IAAInhC,IAAI,GAAGmhC,QAAQ,CAACnhC,IAApB,CAAA;;MAEA,IAAI7Y,QAAQ,CAAC8Y,OAAT,CAAiBD,IAAI,CAAC5L,GAAtB,CAA+B4L,KAAAA,IAAnC,EAAyC;AACvCmhC,QAAAA,QAAQ,CAACE,YAAT,CAAsBjnE,IAAtB,CAA2B2yB,WAA3B,CAAA,CAAA;QACAo0C,QAAQ,CAACgB,eAAT,IAA4B,IAA5B,KAAqChB,QAAQ,CAACgB,eAAT,GAA2B,CAAhE,CAAA,CAAA;QACAhB,QAAQ,CAACgB,eAAT,IAA4Bp1C,WAAW,CAAC3E,OAAZ,EAAA,CAAsB6V,KAAtB,EAA5B,CAAA;AACD,OAAA;AACF,KARG,CAAJ,CAAA;GAVF,CAAA,CAAA;AAoBD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASujC,iBAAT,CAA2B1B,WAA3B,EAAwC9/B,IAAxC,EAA8C;AAC5C,EAAA,IAAIqW,SAAS,GAAGrW,IAAI,CAACsS,KAArB,CAAA;AACA,EAAA,IAAIle,GAAG,GAAG4L,IAAI,CAAC5L,GAAf,CAAA;;AAEA,EAAA,KAAK,IAAIr6B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+lE,WAAW,CAACzmE,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C,IAAA,IAAIqoE,UAAU,GAAGtC,WAAW,CAAC/lE,CAAD,CAAX,IAAkB,EAAnC,CAAA;;AAEA,IAAA,IAAIsoE,eAAe,CAACD,UAAU,CAAChuC,GAAG,GAAG,QAAP,CAAX,EAA6BiiB,SAAS,CAACnsC,EAAvC,CAAf,IAA6Dm4D,eAAe,CAACD,UAAU,CAAChuC,GAAG,GAAG,WAAP,CAAX,EAAgCiiB,SAAS,CAACrP,cAA1C,CAA5E,IAAyIq7B,eAAe,CAACD,UAAU,CAAChuC,GAAG,GAAG,UAAP,CAAX,EAA+BiiB,SAAS,CAACt5C,IAAzC,CAA5J,EAA4M;AAC1M,MAAA,OAAOhD,CAAP,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAASsoE,eAAT,CAAyBC,aAAzB,EAAwCC,aAAxC,EAAuD;EACrD,OAAOD,aAAa,KAAK,KAAlB,IAA2B5vD,SAAO,CAAC4vD,aAAD,CAAP,IAA0B/+D,OAAO,CAAC++D,aAAD,EAAgBC,aAAhB,CAAP,IAAyC,CAA9F,IAAmGD,aAAa,KAAKC,aAA5H,CAAA;AACD,CAAA;;AAEM,SAASC,QAAT,CAAkBnsB,SAAlB,EAA6B;AAClC,EAAA,IAAI8qB,QAAQ,GAAGsB,aAAW,CAACpsB,SAAD,CAA1B,CAAA;;EAEA,IAAI,CAAC8qB,QAAL,EAAe;AACb,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIP,gBAAgB,GAAGO,QAAQ,CAACP,gBAAhC,CAAA;AACA,EAAA,IAAIjkD,KAAK,GAAGwkD,QAAQ,CAACnhC,IAAT,CAAcrjB,KAA1B,CAAA;AACA,EAAA,IAAIuK,MAAM,GAAG05C,gBAAgB,CAAC15C,MAA9B,CAAA;AACA,EAAA,IAAIwP,MAAM,GAAGkqC,gBAAgB,CAACpyC,GAAjB,CAAqB,QAArB,CAAb,CAAA;EACA,IAAI+G,KAAK,GAAGqrC,gBAAgB,CAACpyC,GAAjB,CAAqB,OAArB,CAAZ,CAXkC;;EAalC,IAAI+G,KAAK,IAAI,IAAb,EAAmB;AACjBA,IAAAA,KAAK,GAAG5Y,KAAK,CAACuzC,KAAN,CAAY36B,KAAZ,CAAR,CAAA;AACD,GAAA;;AAED,EAAA,IAAI6rC,SAAS,GAAGN,eAAe,CAACF,gBAAD,CAA/B,CAjBkC;AAkBlC;;EAEA,IAAIlqC,MAAM,IAAI,IAAd,EAAoB;AAClBxP,IAAAA,MAAM,CAACwP,MAAP,GAAgB0qC,SAAS,GAAG,MAAH,GAAY,MAArC,CAAA;AACD,GAAA;;AAED,EAAA,IAAIjsC,MAAM,GAAGxY,KAAK,CAACyY,SAAN,EAAA,CAAkBhW,KAAlB,EAAb,CAAA;AACA+V,EAAAA,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAlB,IAAyBA,MAAM,CAACqL,OAAP,EAAzB,CAAA;;EAEA;EACAjL,KAAK,IAAI,IAAT;AACA;AADA,KAEGA,KAAK,GAAGJ,MAAM,CAAC,CAAD,CAHjB,EAGsB;AACpB;AACAI,IAAAA,KAAK,GAAGJ,MAAM,CAAC,CAAD,CAAd,CAAA;AACD,GAAA;;AAED,EAAA,IAAII,KAAK,GAAGJ,MAAM,CAAC,CAAD,CAAlB,EAAuB;AACrBI,IAAAA,KAAK,GAAGJ,MAAM,CAAC,CAAD,CAAd,CAAA;AACD,GAAA;;EAEDjO,MAAM,CAACqO,KAAP,GAAeA,KAAf,CAAA;;AAEA,EAAA,IAAI6rC,SAAJ,EAAe;AACbl6C,IAAAA,MAAM,CAACwP,MAAP,GAAgByqC,QAAQ,CAACnhC,IAAT,CAAcrjB,KAAd,CAAoBmhD,OAApB,EAAgC,GAAA,MAAhC,GAAyC,MAAzD,CAAA;AACD,GAAA;AACF,CAAA;AACM,SAAS2E,aAAT,CAAqBpsB,SAArB,EAAgC;AACrC,EAAA,IAAIkpB,gBAAgB,GAAG,CAAClpB,SAAS,CAACjS,OAAV,CAAkBw7B,YAAlB,CAA+B,aAA/B,CAAiD,IAAA,EAAlD,EAAsDL,gBAA7E,CAAA;EACA,OAAOA,gBAAgB,IAAIA,gBAAgB,CAACF,QAAjB,CAA0Ba,OAAO,CAAC7pB,SAAD,CAAjC,CAA3B,CAAA;AACD,CAAA;AACM,SAASqsB,mBAAT,CAA6BrsB,SAA7B,EAAwC;AAC7C,EAAA,IAAI8qB,QAAQ,GAAGsB,aAAW,CAACpsB,SAAD,CAA1B,CAAA;AACA,EAAA,OAAO8qB,QAAQ,IAAIA,QAAQ,CAACP,gBAA5B,CAAA;AACD,CAAA;;AAED,SAASE,eAAT,CAAyBF,gBAAzB,EAA2C;EACzC,OAAO,CAAC,CAACA,gBAAgB,CAACpyC,GAAjB,CAAqB,CAAC,QAAD,EAAW,MAAX,CAArB,CAAT,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;;;AAGO,SAAS0xC,OAAT,CAAiB5tB,KAAjB,EAAwB;EAC7B,OAAOA,KAAK,CAAClpC,IAAN,GAAa,IAAb,GAAoBkpC,KAAK,CAACpoC,EAAjC,CAAA;AACD;;AClUD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA,IAAIy4D,gBAAgB,GAAG,EAAvB,CAAA;AACA;AACA;AACA;;AAEA,IAAIC,QAAQ;AACZ;AACA,UAAUroD,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACooD,QAAD,EAAWroD,MAAX,CAAT,CAAA;;AAEA,EAAA,SAASqoD,QAAT,GAAoB;AAClB,IAAA,IAAInoD,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaw5D,QAAQ,CAACx5D,IAAtB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEmoD,EAAAA,QAAQ,CAACvsE,SAAT,CAAmB8tC,MAAnB,GAA4B,UAAUkS,SAAV,EAAqBjS,OAArB,EAA8BxxB,GAA9B,EAAmCu0B,OAAnC,EAA4C;AACtE;AACA;AACA;AACA;AACA;AACA,IAAA,IAAA,CAAK07B,gBAAL,IAAyBC,QAAA,CAAgCzsB,SAAhC,CAAzB,CAAA;;IAEA97B,MAAM,CAAClkB,SAAP,CAAiB8tC,MAAjB,CAAwBpd,KAAxB,CAA8B,IAA9B,EAAoC/sB,SAApC,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAK+oE,yBAAL,CAA+B1sB,SAA/B,EAA0CzjC,GAA1C,EAA+C,IAA/C,CAAA,CAAA;GAVF,CAAA;AAYA;AACF;AACA;;;AAGEgwD,EAAAA,QAAQ,CAACvsE,SAAT,CAAmB2sE,iBAAnB,GAAuC,UAAU3sB,SAAV,EAAqBjS,OAArB,EAA8BxxB,GAA9B,EAAmCu0B,OAAnC,EAA4C;AACjF,IAAA,IAAA,CAAK47B,yBAAL,CAA+B1sB,SAA/B,EAA0CzjC,GAA1C,EAA+C,KAA/C,CAAA,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;EAGEgwD,QAAQ,CAACvsE,SAAT,CAAmBo8B,MAAnB,GAA4B,UAAU2R,OAAV,EAAmBxxB,GAAnB,EAAwB;IAClD,IAAIy3C,WAAW,GAAG,IAAA,CAAK4Y,YAAvB,CAAA;AACA5Y,IAAAA,WAAW,IAAIA,WAAW,CAAC53B,MAAZ,CAAmB7f,GAAnB,CAAf,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;EAGEgwD,QAAQ,CAACvsE,SAAT,CAAmB4iB,OAAnB,GAA6B,UAAUmrB,OAAV,EAAmBxxB,GAAnB,EAAwB;IACnD,IAAKswD,CAAAA,mBAAL,CAAyBtwD,GAAzB,CAAA,CAAA;;IAEA2H,MAAM,CAAClkB,SAAP,CAAiB4iB,OAAjB,CAAyB8N,KAAzB,CAA+B,IAA/B,EAAqC/sB,SAArC,CAAA,CAAA;GAHF,CAAA;;EAMA4oE,QAAQ,CAACvsE,SAAT,CAAmB0sE,yBAAnB,GAA+C,UAAU1sB,SAAV,EAAqBzjC,GAArB,EAA0BuwD,WAA1B,EAAuC;IACpF,IAAIC,KAAK,GAAGR,QAAQ,CAACS,mBAAT,CAA6B,IAAA,CAAKR,gBAAlC,CAAZ,CAAA;;IAEA,IAAI,CAACO,KAAL,EAAY;AACV,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIxC,gBAAgB,GAAGkC,mBAAA,CAA2CzsB,SAA3C,CAAvB,CAAA;AACAuqB,IAAAA,gBAAgB,GAAG,CAAC,IAAKqC,CAAAA,YAAL,KAAsB,IAAA,CAAKA,YAAL,GAAoB,IAAIG,KAAJ,EAA1C,CAAD,EAAyDj/B,MAAzD,CAAgEkS,SAAhE,EAA2EuqB,gBAA3E,EAA6FhuD,GAA7F,EAAkGuwD,WAAlG,CAAH,GAAoH,IAAKD,CAAAA,mBAAL,CAAyBtwD,GAAzB,CAApI,CAAA;GARF,CAAA;;AAWAgwD,EAAAA,QAAQ,CAACvsE,SAAT,CAAmB6sE,mBAAnB,GAAyC,UAAUtwD,GAAV,EAAe;IACtD,IAAKqwD,CAAAA,YAAL,IAAqB,IAAKA,CAAAA,YAAL,CAAkBhqD,OAAlB,CAA0BrG,GAA1B,CAArB,CAAA;IACA,IAAKqwD,CAAAA,YAAL,GAAoB,IAApB,CAAA;GAFF,CAAA;;AAKAL,EAAAA,QAAQ,CAACU,wBAAT,GAAoC,UAAUl6D,IAAV,EAAgBm6D,KAAhB,EAAuB;AACzD,IAAA,IAAI91D,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,MAAA,IAAIg1D,gBAAgB,CAACv5D,IAAD,CAApB,EAA4B;AAC1B,QAAA,MAAM,IAAIie,KAAJ,CAAU,iBAAiBje,IAAjB,GAAwB,SAAlC,CAAN,CAAA;AACD,OAAA;AACF,KAAA;;AAEDu5D,IAAAA,gBAAgB,CAACv5D,IAAD,CAAhB,GAAyBm6D,KAAzB,CAAA;GAPF,CAAA;;AAUA,EAAA,CAAA;;AAEAX,EAAAA,QAAQ,CAACS,mBAAT,GAA+B,UAAUj6D,IAAV,EAAgB;AAC7C,IAAA,OAAOA,IAAI,IAAIu5D,gBAAgB,CAACv5D,IAAD,CAA/B,CAAA;GADF,CAAA;;AAIA,EAAA,CAAA;EACAw5D,QAAQ,CAACx5D,IAAT,GAAgB,MAAhB,CAAA;AACA,EAAA,OAAOw5D,QAAP,CAAA;AACD,CAzFD,CAyFEY,aAzFF,CAFA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA,IAAIC,OAAK,GAAGC,SAAS,EAArB,CAAA;AACO,SAASC,2BAAT,CAAqCC,QAArC,EAA+CC,SAA/C,EAA0DxtB,SAA1D,EAAqEya,SAArE,EAAgF;AACrF,EAAA,IAAI9wB,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;;AAEA,EAAA,IAAIA,IAAI,CAACrjB,KAAL,CAAWmhD,OAAX,EAAJ,EAA0B;AACxB,IAAA,OAAA;AACD,GALoF;;;AAQrF,EAAA,IAAIgG,cAAc,GAAGztB,SAAS,CAAC/nB,QAAV,CAAmB,WAAnB,CAArB,CAAA;AACA,EAAA,IAAIgW,cAAc,GAAGw/B,cAAc,CAACx1C,QAAf,CAAwB,WAAxB,CAArB,CAAA;AACA,EAAA,IAAIy1C,UAAU,GAAGz/B,cAAc,CAAC9V,GAAf,CAAmB,OAAnB,CAAjB,CAAA;AACA,EAAA,IAAIgnC,QAAQ,GAAG1E,SAAS,CAAC1pC,gBAAV,CAA2BiqC,OAA3B,EAAf,CAAA;AACA,EAAA,IAAIgM,WAAW,GAAGr9B,IAAI,CAAC+9B,cAAL,CAAoB;AACpCF,IAAAA,SAAS,EAAEiG,cADyB;AAEpCrU,IAAAA,KAAK,EAAE,IAAA;AAF6B,GAApB,CAAlB,CAAA;;AAKA,EAAA,IAAI,CAAC4N,WAAW,CAAChkE,MAAjB,EAAyB;AACvB,IAAA,OAAA;AACD,GAnBoF;AAoBrF;;;AAGA,EAAA,IAAI2qE,aAAa,GAAGD,UAAU,CAAC1qE,MAA/B,CAAA;AACA,EAAA,IAAI4qE,mBAAmB,GAAGR,OAAK,CAACG,QAAD,CAAL,CAAgBM,eAA1C,CAAA;AACA,EAAA,IAAIC,kBAAkB,GAAGpmC,aAAA,EAAzB,CAAA;EACA,IAAIqmC,UAAU,GAAG,CAAjB,CAAA;;AAEA,EAAA,IAAIH,mBAAJ,EAAyB;AACvB,IAAA,KAAK,IAAIlqE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsjE,WAAW,CAAChkE,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C,MAAA,IAAIsqE,MAAM,GAAGJ,mBAAmB,CAACz1C,GAApB,CAAwB6uC,WAAW,CAACtjE,CAAD,CAAX,CAAe6nC,SAAvC,CAAb,CAAA;;MAEA,IAAIyiC,MAAM,IAAI,IAAd,EAAoB;QAClBD,UAAU,GAAG,CAACC,MAAM,GAAG,CAACL,aAAa,GAAG,CAAjB,IAAsBjqE,CAAhC,IAAqCiqE,aAAlD,CAAA;AACA,QAAA,MAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;AAED,EAAA,IAAIM,IAAI,GAAGtkC,IAAI,CAACI,aAAL,CAAmBi9B,WAAW,CAAC,CAAD,CAAX,CAAe/9B,KAAlC,CAAX,CAAA;AACA,EAAA,IAAIyrB,SAAS,GAAGzmB,cAAc,CAACgC,YAAf,EAAhB,CAAA;EACAy9B,UAAU,GAAGhmC,SAAA,CAAegmC,UAAf,CAAA,GAA6BA,UAA7B,GAA0C,CAACA,UAAD,CAAvD,CAAA;;AAEA,EAAA,KAAK,IAAIhqE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsjE,WAAW,CAAChkE,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C,IAAA,IAAI2jE,SAAS,GAAG19B,IAAI,CAACI,aAAL,CAAmBi9B,WAAW,CAACtjE,CAAD,CAAX,CAAeulC,KAAlC,CAAhB,CAAA;IACA,IAAIxoC,CAAC,GAAG,KAAK,CAAb,CAAA;IACA,IAAIC,CAAC,GAAG,KAAK,CAAb,CAAA;IACA,IAAI+I,KAAK,GAAG,KAAK,CAAjB,CAAA;IACA,IAAIC,MAAM,GAAG,KAAK,CAAlB,CAAA;;AAEA,IAAA,IAAIigC,IAAI,CAAC3D,YAAL,EAAJ,EAAyB;AACvBvlC,MAAAA,CAAC,GAAGwtE,IAAJ,CAAA;MACAvtE,CAAC,GAAGy+D,QAAQ,CAACz+D,CAAb,CAAA;MACA+I,KAAK,GAAG49D,SAAS,GAAG5mE,CAApB,CAAA;MACAiJ,MAAM,GAAGy1D,QAAQ,CAACz1D,MAAlB,CAAA;MACAukE,IAAI,GAAGxtE,CAAC,GAAGgJ,KAAX,CAAA;AACD,KAND,MAMO;MACLhJ,CAAC,GAAG0+D,QAAQ,CAAC1+D,CAAb,CAAA;AACAC,MAAAA,CAAC,GAAGutE,IAAJ,CAAA;MACAxkE,KAAK,GAAG01D,QAAQ,CAAC11D,KAAjB,CAAA;MACAC,MAAM,GAAG29D,SAAS,GAAG3mE,CAArB,CAAA;MACAutE,IAAI,GAAGvtE,CAAC,GAAGgJ,MAAX,CAAA;AACD,KAAA;;IAED,IAAI6hC,SAAS,GAAGy7B,WAAW,CAACtjE,CAAC,GAAG,CAAL,CAAX,CAAmB6nC,SAAnC,CAAA;IACAA,SAAS,IAAI,IAAb,IAAqBuiC,kBAAkB,CAAC7b,GAAnB,CAAuB1mB,SAAvB,EAAkCwiC,UAAlC,CAArB,CAAA;AACAP,IAAAA,SAAS,CAAC57C,GAAV,CAAc,IAAImF,MAAJ,CAAiB;MAC7BysC,IAAI,EAAEj4B,SAAS,IAAI,IAAb,GAAoB,OAAUA,GAAAA,SAA9B,GAA0C,IADnB;AAE7BjgC,MAAAA,KAAK,EAAE;AACL7K,QAAAA,CAAC,EAAEA,CADE;AAELC,QAAAA,CAAC,EAAEA,CAFE;AAGL+I,QAAAA,KAAK,EAAEA,KAHF;AAILC,QAAAA,MAAM,EAAEA,MAAAA;OANmB;AAQ7BpF,MAAAA,KAAK,EAAEojC,QAAA,CAAgB;QACrBnjC,IAAI,EAAEmpE,UAAU,CAACK,UAAD,CAAA;OADX,EAEJrZ,SAFI,CARsB;AAW7B6S,MAAAA,SAAS,EAAE,IAXkB;AAY7B/wC,MAAAA,MAAM,EAAE,IAAA;AAZqB,KAAjB,CAAd,CAAA,CAAA;AAcAu3C,IAAAA,UAAU,GAAG,CAACA,UAAU,GAAG,CAAd,IAAmBJ,aAAhC,CAAA;AACD,GAAA;;AAEDP,EAAAA,OAAK,CAACG,QAAD,CAAL,CAAgBM,eAAhB,GAAkCC,kBAAlC,CAAA;AACD,CAAA;AACM,SAASI,yBAAT,CAAmCX,QAAnC,EAA6C;AAClDH,EAAAA,OAAK,CAACG,QAAD,CAAL,CAAgBM,eAAhB,GAAkC,IAAlC,CAAA;AACD;;ACrID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiCA,IAAIM,kBAAgB,GAAG,CAAC,UAAD,EAAa,eAAb,EAA8B,UAA9B,CAAvB,CAAA;AACA,IAAIC,kBAAgB,GAAG,CAAC,WAAD,EAAc,WAAd,EAA2B,gBAA3B,CAAvB,CAAA;;AAEA,IAAIC,iBAAiB;AACrB;AACA,UAAUnqD,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACkqD,iBAAD,EAAoBnqD,MAApB,CAAT,CAAA;;AAEA,EAAA,SAASmqD,iBAAT,GAA6B;AAC3B,IAAA,IAAIjqD,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAas7D,iBAAiB,CAACt7D,IAA/B,CAAA;IACAqR,KAAK,CAACooD,gBAAN,GAAyB,sBAAzB,CAAA;AACA,IAAA,OAAOpoD,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEiqD,EAAAA,iBAAiB,CAACruE,SAAlB,CAA4B8tC,MAA5B,GAAqC,UAAUkS,SAAV,EAAqBjS,OAArB,EAA8BxxB,GAA9B,EAAmCu0B,OAAnC,EAA4C;IAC/E,IAAKzf,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;IACA,IAAIq5C,YAAY,GAAG,IAAA,CAAKC,UAAxB,CAAA;AACA,IAAA,IAAA,CAAKA,UAAL,GAAkB,IAAIx3C,OAAJ,EAAlB,CAAA;AACA,IAAA,IAAA,CAAK1F,KAAL,CAAWO,GAAX,CAAe,KAAK28C,UAApB,CAAA,CAAA;;AAEA,IAAA,IAAI,CAACvuB,SAAS,CAAC7nB,GAAV,CAAc,MAAd,CAAL,EAA4B;AAC1B,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIsiC,SAAS,GAAGza,SAAS,CAACiT,gBAAV,EAAhB,CAAA;IACA,IAAIrX,MAAM,GAAG4yB,QAAA,CAA2B/T,SAA3B,EAAsCza,SAAtC,CAAb,CAAA;IACA,IAAIyuB,WAAW,GAAG,IAAI3M,WAAJ,CAAgB9hB,SAAhB,EAA2BtY,MAAA,CAAc;MACzDs6B,eAAe,EAAE,SAAU0M,eAAAA,CAAAA,WAAV,EAAuB;AACtC,QAAA,IAAIC,UAAU,GAAGlU,SAAS,CAAC1pC,gBAAV,CAA2BivC,aAA3B,EAAjB,CAAA;;AAEA,QAAA,KAAK,IAAIt8D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGirE,UAAU,CAAC3rE,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;AAC1C,UAAA,IAAIi7D,oBAAoB,CAACgQ,UAAU,CAACjrE,CAAD,CAAV,CAAci6B,YAAd,CAA2BqiB,SAAS,CAACrW,IAArC,CAA2CrjB,CAAAA,KAA5C,CAAxB,EAA4E;AAC1E;AACA,YAAA,OAAO,IAAP,CAAA;AACD,WAAA;AACF,SARqC;;;AAWtC,QAAA,OAAO,KAAP,CAAA;AACD,OAAA;KAb0C,EAc1Cs1B,MAd0C,CAA3B,CAAlB,CAAA;IAeAlU,MAAA,CAAYymC,kBAAZ,EAA8BM,WAAW,CAAC78C,GAA1C,EAA+C68C,WAA/C,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKF,UAAL,CAAgB38C,GAAhB,CAAoB68C,WAAW,CAACpM,QAAZ,EAApB,CAAA,CAAA;;AAEA36B,IAAAA,MAAA,CAAY0mC,kBAAZ,EAA8B,UAAU1nE,IAAV,EAAgB;MAC5C,IAAIs5C,SAAS,CAAC7nB,GAAV,CAAc,CAACzxB,IAAD,EAAO,MAAP,CAAd,CAAJ,EAAmC;QACjCkoE,qBAAmB,CAACloE,IAAD,CAAnB,CAA0B,IAA1B,EAAgC,IAAA,CAAK6nE,UAArC,EAAiDvuB,SAAjD,EAA4Dya,SAA5D,CAAA,CAAA;AACD,OAAA;KAHH,EAIG,IAJH,CAAA,CA/B+E;AAoC/E;AACA;;AAEA,IAAA,IAAIoU,0BAA0B,GAAG/9B,OAAO,IAAIA,OAAO,CAAC/9B,IAAR,KAAiB,iBAA5B,IAAiD+9B,OAAO,CAACwK,UAA1F,CAAA;;IAEA,IAAI,CAACuzB,0BAAL,EAAiC;MAC/B93C,eAAA,CAAwBu3C,YAAxB,EAAsC,IAAKC,CAAAA,UAA3C,EAAuDvuB,SAAvD,CAAA,CAAA;AACD,KAAA;;AAED97B,IAAAA,MAAM,CAAClkB,SAAP,CAAiB8tC,MAAjB,CAAwBzpB,IAAxB,CAA6B,IAA7B,EAAmC27B,SAAnC,EAA8CjS,OAA9C,EAAuDxxB,GAAvD,EAA4Du0B,OAA5D,CAAA,CAAA;GA7CF,CAAA;;AAgDAu9B,EAAAA,iBAAiB,CAACruE,SAAlB,CAA4Bo8B,MAA5B,GAAqC,YAAY;IAC/C8xC,yBAAyB,CAAC,IAAD,CAAzB,CAAA;GADF,CAAA;;EAIAG,iBAAiB,CAACt7D,IAAlB,GAAyB,eAAzB,CAAA;AACA,EAAA,OAAOs7D,iBAAP,CAAA;AACD,CArED,CAqEE9B,QArEF,CAFA,CAAA;;AAyEA,IAAIqC,qBAAmB,GAAG;EACxBpa,SAAS,EAAE,mBAAU+Y,QAAV,EAAoBC,SAApB,EAA+BxtB,SAA/B,EAA0Cya,SAA1C,EAAqD;AAC9D,IAAA,IAAI9wB,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;;AAEA,IAAA,IAAIA,IAAI,CAACrjB,KAAL,CAAWmhD,OAAX,EAAJ,EAA0B;AACxB,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIqH,cAAc,GAAG9uB,SAAS,CAAC/nB,QAAV,CAAmB,WAAnB,CAArB,CAAA;AACA,IAAA,IAAI+V,cAAc,GAAG8gC,cAAc,CAAC72C,QAAf,CAAwB,WAAxB,CAArB,CAAA;AACA,IAAA,IAAI82C,UAAU,GAAG/gC,cAAc,CAAC7V,GAAf,CAAmB,OAAnB,CAAjB,CAAA;IACA42C,UAAU,GAAGrnC,SAAA,CAAeqnC,UAAf,CAAA,GAA6BA,UAA7B,GAA0C,CAACA,UAAD,CAAvD,CAAA;AACA,IAAA,IAAI5P,QAAQ,GAAG1E,SAAS,CAAC1pC,gBAAV,CAA2BiqC,OAA3B,EAAf,CAAA;AACA,IAAA,IAAIh1B,YAAY,GAAG2D,IAAI,CAAC3D,YAAL,EAAnB,CAAA;IACA,IAAIgpC,SAAS,GAAG,CAAhB,CAAA;AACA,IAAA,IAAIhI,WAAW,GAAGr9B,IAAI,CAAC+9B,cAAL,CAAoB;AACpCF,MAAAA,SAAS,EAAEsH,cAAAA;AADyB,KAApB,CAAlB,CAAA;IAGA,IAAIp+D,EAAE,GAAG,EAAT,CAAA;IACA,IAAIu+D,EAAE,GAAG,EAAT,CAAA;AACA,IAAA,IAAIt9C,SAAS,GAAGqc,cAAc,CAAC0B,YAAf,EAAhB,CAAA;;AAEA,IAAA,KAAK,IAAIhsC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsjE,WAAW,CAAChkE,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C,MAAA,IAAI2jE,SAAS,GAAG19B,IAAI,CAACI,aAAL,CAAmBi9B,WAAW,CAACtjE,CAAD,CAAX,CAAeulC,KAAlC,CAAhB,CAAA;;AAEA,MAAA,IAAIjD,YAAJ,EAAkB;AAChBt1B,QAAAA,EAAE,CAAC,CAAD,CAAF,GAAQ22D,SAAR,CAAA;AACA32D,QAAAA,EAAE,CAAC,CAAD,CAAF,GAAQyuD,QAAQ,CAACz+D,CAAjB,CAAA;AACAuuE,QAAAA,EAAE,CAAC,CAAD,CAAF,GAAQ5H,SAAR,CAAA;QACA4H,EAAE,CAAC,CAAD,CAAF,GAAQ9P,QAAQ,CAACz+D,CAAT,GAAay+D,QAAQ,CAACz1D,MAA9B,CAAA;AACD,OALD,MAKO;AACLgH,QAAAA,EAAE,CAAC,CAAD,CAAF,GAAQyuD,QAAQ,CAAC1+D,CAAjB,CAAA;AACAiQ,QAAAA,EAAE,CAAC,CAAD,CAAF,GAAQ22D,SAAR,CAAA;QACA4H,EAAE,CAAC,CAAD,CAAF,GAAQ9P,QAAQ,CAAC1+D,CAAT,GAAa0+D,QAAQ,CAAC11D,KAA9B,CAAA;AACAwlE,QAAAA,EAAE,CAAC,CAAD,CAAF,GAAQ5H,SAAR,CAAA;AACD,OAAA;;AAED,MAAA,IAAI0G,UAAU,GAAGiB,SAAS,EAAKD,GAAAA,UAAU,CAAC/rE,MAA1C,CAAA;AACA,MAAA,IAAIuoC,SAAS,GAAGy7B,WAAW,CAACtjE,CAAD,CAAX,CAAe6nC,SAA/B,CAAA;AACAiiC,MAAAA,SAAS,CAAC57C,GAAV,CAAc,IAAImF,MAAJ,CAAiB;AAC7BysC,QAAAA,IAAI,EAAEj4B,SAAS,IAAI,IAAb,GAAoB,OAAA,GAAUy7B,WAAW,CAACtjE,CAAD,CAAX,CAAe6nC,SAA7C,GAAyD,IADlC;AAE7B+3B,QAAAA,gBAAgB,EAAE,IAFW;AAG7BiE,QAAAA,SAAS,EAAE,IAHkB;AAI7Bj8D,QAAAA,KAAK,EAAE;AACL0L,UAAAA,EAAE,EAAEtG,EAAE,CAAC,CAAD,CADD;AAELuG,UAAAA,EAAE,EAAEvG,EAAE,CAAC,CAAD,CAFD;AAGL5P,UAAAA,EAAE,EAAEmuE,EAAE,CAAC,CAAD,CAHD;UAILluE,EAAE,EAAEkuE,EAAE,CAAC,CAAD,CAAA;SARqB;AAU7B3qE,QAAAA,KAAK,EAAEojC,QAAA,CAAgB;UACrBjjC,MAAM,EAAEsqE,UAAU,CAAChB,UAAD,CAAA;SADb,EAEJp8C,SAFI,CAVsB;AAa7B6E,QAAAA,MAAM,EAAE,IAAA;AAbqB,OAAjB,CAAd,CAAA,CAAA;AAeD,KAAA;GAtDqB;EAwDxBy+B,cAAc,EAAE,wBAAUsY,QAAV,EAAoBC,SAApB,EAA+BxtB,SAA/B,EAA0Cya,SAA1C,EAAqD;AACnE,IAAA,IAAI9wB,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;AACA,IAAA,IAAIulC,mBAAmB,GAAGlvB,SAAS,CAAC/nB,QAAV,CAAmB,gBAAnB,CAA1B,CAAA;AACA,IAAA,IAAI+V,cAAc,GAAGkhC,mBAAmB,CAACj3C,QAApB,CAA6B,WAA7B,CAArB,CAAA;AACA,IAAA,IAAIknC,QAAQ,GAAG1E,SAAS,CAAC1pC,gBAAV,CAA2BiqC,OAA3B,EAAf,CAAA;AACA,IAAA,IAAIh1B,YAAY,GAAG2D,IAAI,CAAC3D,YAAL,EAAnB,CAAA;AACA,IAAA,IAAI4hC,gBAAgB,GAAGj+B,IAAI,CAACk+B,mBAAL,EAAvB,CAAA;;AAEA,IAAA,IAAI,CAACD,gBAAgB,CAAC5kE,MAAtB,EAA8B;AAC5B,MAAA,OAAA;AACD,KAAA;;IAED,IAAI0N,EAAE,GAAG,EAAT,CAAA;IACA,IAAIu+D,EAAE,GAAG,EAAT,CAAA;AACA,IAAA,IAAIt9C,SAAS,GAAGqc,cAAc,CAAC0B,YAAf,EAAhB,CAAA;;AAEA,IAAA,KAAK,IAAIhsC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkkE,gBAAgB,CAAC5kE,MAArC,EAA6CU,CAAC,EAA9C,EAAkD;AAChD,MAAA,KAAK,IAAIwL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG04D,gBAAgB,CAAClkE,CAAD,CAAhB,CAAoBV,MAAxC,EAAgDkM,CAAC,EAAjD,EAAqD;AACnD,QAAA,IAAIm4D,SAAS,GAAG19B,IAAI,CAACI,aAAL,CAAmB69B,gBAAgB,CAAClkE,CAAD,CAAhB,CAAoBwL,CAApB,CAAA,CAAuB+5B,KAA1C,CAAhB,CAAA;;AAEA,QAAA,IAAIjD,YAAJ,EAAkB;AAChBt1B,UAAAA,EAAE,CAAC,CAAD,CAAF,GAAQ22D,SAAR,CAAA;AACA32D,UAAAA,EAAE,CAAC,CAAD,CAAF,GAAQyuD,QAAQ,CAACz+D,CAAjB,CAAA;AACAuuE,UAAAA,EAAE,CAAC,CAAD,CAAF,GAAQ5H,SAAR,CAAA;UACA4H,EAAE,CAAC,CAAD,CAAF,GAAQ9P,QAAQ,CAACz+D,CAAT,GAAay+D,QAAQ,CAACz1D,MAA9B,CAAA;AACD,SALD,MAKO;AACLgH,UAAAA,EAAE,CAAC,CAAD,CAAF,GAAQyuD,QAAQ,CAAC1+D,CAAjB,CAAA;AACAiQ,UAAAA,EAAE,CAAC,CAAD,CAAF,GAAQ22D,SAAR,CAAA;UACA4H,EAAE,CAAC,CAAD,CAAF,GAAQ9P,QAAQ,CAAC1+D,CAAT,GAAa0+D,QAAQ,CAAC11D,KAA9B,CAAA;AACAwlE,UAAAA,EAAE,CAAC,CAAD,CAAF,GAAQ5H,SAAR,CAAA;AACD,SAAA;;AAEDmG,QAAAA,SAAS,CAAC57C,GAAV,CAAc,IAAImF,MAAJ,CAAiB;UAC7BysC,IAAI,EAAE,gBAAgBoE,gBAAgB,CAAClkE,CAAD,CAAhB,CAAoBwL,CAApB,CAAA,CAAuBq8B,SADhB;AAE7B+3B,UAAAA,gBAAgB,EAAE,IAFW;AAG7BiE,UAAAA,SAAS,EAAE,IAHkB;AAI7Bj8D,UAAAA,KAAK,EAAE;AACL0L,YAAAA,EAAE,EAAEtG,EAAE,CAAC,CAAD,CADD;AAELuG,YAAAA,EAAE,EAAEvG,EAAE,CAAC,CAAD,CAFD;AAGL5P,YAAAA,EAAE,EAAEmuE,EAAE,CAAC,CAAD,CAHD;YAILluE,EAAE,EAAEkuE,EAAE,CAAC,CAAD,CAAA;WARqB;AAU7B3qE,UAAAA,KAAK,EAAEqtB,SAVsB;AAW7B6E,UAAAA,MAAM,EAAE,IAAA;AAXqB,SAAjB,CAAd,CAAA,CAAA;AAaD,OAAA;AACF,KAAA;GAtGqB;EAwGxBi+B,SAAS,EAAE,mBAAU8Y,QAAV,EAAoBC,SAApB,EAA+BxtB,SAA/B,EAA0Cya,SAA1C,EAAqD;IAC9D6S,2BAA2B,CAACC,QAAD,EAAWC,SAAX,EAAsBxtB,SAAtB,EAAiCya,SAAjC,CAA3B,CAAA;AACD,GAAA;AA1GuB,CAA1B,CAAA;;AA6GA,IAAI0U,kBAAkB;AACtB;AACA,UAAUjrD,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACgrD,kBAAD,EAAqBjrD,MAArB,CAAT,CAAA;;AAEA,EAAA,SAASirD,kBAAT,GAA8B;AAC5B,IAAA,IAAI/qD,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAao8D,kBAAkB,CAACp8D,IAAhC,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED+qD,kBAAkB,CAACp8D,IAAnB,GAA0B,OAA1B,CAAA;AACA,EAAA,OAAOo8D,kBAAP,CAAA;AACD,CAZD,CAYEd,iBAZF,CAFA,CAAA;;AAkBA,IAAIe,kBAAkB;AACtB;AACA,UAAUlrD,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACirD,kBAAD,EAAqBlrD,MAArB,CAAT,CAAA;;AAEA,EAAA,SAASkrD,kBAAT,GAA8B;AAC5B,IAAA,IAAIhrD,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAao8D,kBAAkB,CAACp8D,IAAhC,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDgrD,kBAAkB,CAACr8D,IAAnB,GAA0B,OAA1B,CAAA;AACA,EAAA,OAAOq8D,kBAAP,CAAA;AACD,CAZD,CAYEf,iBAZF,CAFA;;AC7PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmCA,IAAIgB,QAAQ;AACZ;AACA,UAAUnrD,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACkrD,QAAD,EAAWnrD,MAAX,CAAT,CAAA;;AAEA,EAAA,SAASmrD,QAAT,GAAoB;AAClB,IAAA,IAAIjrD,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;IAEAygB,KAAK,CAACrR,IAAN,GAAa,MAAb,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDirD,QAAQ,CAACrvE,SAAT,CAAmB8tC,MAAnB,GAA4B,UAAU2sB,SAAV,EAAqB1sB,OAArB,EAA8B;IACxD,IAAK1c,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;;AAEA,IAAA,IAAIwlC,SAAS,CAACtiC,GAAV,CAAc,MAAd,CAAJ,EAA2B;AACzB,MAAA,IAAA,CAAK9G,KAAL,CAAWO,GAAX,CAAe,IAAIsuB,MAAJ,CAAS;AACtB50C,QAAAA,KAAK,EAAEmvD,SAAS,CAAC1pC,gBAAV,CAA2BiqC,OAA3B,EADe;QAEtB12D,KAAK,EAAEy9D,QAAQ,CAAC;AACdx9D,UAAAA,IAAI,EAAEk2D,SAAS,CAACtiC,GAAV,CAAc,iBAAd,CAAA;AADQ,SAAD,EAEZsiC,SAAS,CAACviC,YAAV,EAFY,CAFO;AAKtB1B,QAAAA,MAAM,EAAE,IALc;AAMtBpB,QAAAA,EAAE,EAAE,CAAC,CAAA;AANiB,OAAT,CAAf,CAAA,CAAA;AAQD,KAAA;GAZH,CAAA;;EAeAi6C,QAAQ,CAACt8D,IAAT,GAAgB,MAAhB,CAAA;AACA,EAAA,OAAOs8D,QAAP,CAAA;AACD,CA3BD,CA2BElC,aA3BF,CAFA,CAAA;;AA+BA,IAAImC,WAAW,GAAG;AAChB;AACA;AACA53D,EAAAA,MAAM,EAAE,CAAA;AAHQ,CAAlB,CAAA;AAKO,SAAS0L,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACksD,qBAAV,CAAgCF,QAAhC,CAAA,CAAA;EACAhsD,SAAS,CAAC6zC,sBAAV,CAAiCtE,SAAjC,CAAA,CAAA;AACAvvC,EAAAA,SAAS,CAACmsD,wBAAV,CAAmC,aAAnC,EAAkD1R,IAAlD,CAAA,CAAA;EACApI,gBAAgB,CAACryC,SAAD,EAAY,GAAZ,EAAiB2vC,kBAAjB,EAAqCsc,WAArC,CAAhB,CAAA;EACA5Z,gBAAgB,CAACryC,SAAD,EAAY,GAAZ,EAAiB2vC,kBAAjB,EAAqCsc,WAArC,CAAhB,CAAA;EACAjsD,SAAS,CAACksD,qBAAV,CAAgCJ,kBAAhC,CAAA,CAAA;EACA9rD,SAAS,CAACksD,qBAAV,CAAgCH,kBAAhC,CAAA,CAAA;AACA/rD,EAAAA,SAAS,CAACosD,oBAAV,CAA+B,UAAU5+C,MAAV,EAAkB;AAC/C;AACA,IAAA,IAAIA,MAAM,CAAC0oC,KAAP,IAAgB1oC,MAAM,CAAC2oC,KAAvB,IAAgC,CAAC3oC,MAAM,CAAC6pC,IAA5C,EAAkD;MAChD7pC,MAAM,CAAC6pC,IAAP,GAAc,EAAd,CAAA;AACD,KAAA;GAJH,CAAA,CAAA;AAMD;;ACtGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BO,SAASt3C,SAAT,CAAiBC,SAAjB,EAA4B;AACjC;EACAqsD,GAAG,CAACC,SAAD,CAAH,CAAA;EACAtsD,SAAS,CAACiyB,mBAAV,CAA8B+a,kBAA9B,CAAA,CAAA;EACAhtC,SAAS,CAACgyB,iBAAV,CAA4Bgd,WAA5B,CAAA,CAAA;AACAhvC,EAAAA,SAAS,CAACmyB,cAAV,CAAyBC,YAAY,CAAC,SAAD,CAArC,CAAA,CAAA;AACD;;ACrDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0Be,SAASm6B,WAAT,CAAqB7hC,OAArB,EAA8B;AAC3CA,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,OAAzB,EAAkC,UAAU/tB,WAAV,EAAuB;AACvD,IAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAI/f,MAAM,GAAG,EAAb,CAAA;AACA,IAAA,IAAI8e,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;IAEA,IAAI,CAACD,QAAL,EAAe;AACb,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI0tC,IAAI,GAAG1tC,QAAQ,CAAC++C,gBAAT,EAAX,CAAA;IACAnoC,MAAA,CAAY82B,IAAZ,EAAkB,UAAU70B,IAAV,EAAgB+1B,SAAhB,EAA2B;AAC3CxrC,MAAAA,IAAI,CAACxnB,IAAL,CAAUwnB,IAAI,CAACgK,YAAL,CAAkBsgC,IAAI,CAACkB,SAAD,CAAJ,CAAgB3hC,GAAlC,CAAV,EAAkD,UAAUn6B,GAAV,EAAeuwB,SAAf,EAA0B;QAC1EniB,MAAM,CAACmiB,SAAD,CAAN,GAAoBniB,MAAM,CAACmiB,SAAD,CAAN,IAAqB,EAAzC,CAAA;QACA,IAAIyG,KAAK,GAAG9J,QAAQ,CAACuO,WAAT,CAAqBz7B,GAArB,EAA0B87D,SAA1B,CAAZ,CAAA;AACA1tD,QAAAA,MAAM,CAACmiB,SAAD,CAAN,CAAkBurC,SAAlB,IAA+BoQ,YAAY,CAACl1C,KAAD,CAAZ,GAAsBA,KAAtB,GAA8Bm1C,oBAAoB,CAACj/C,QAAD,CAAjF,CAAA;OAHF,CAAA,CAAA;AAKD,KAND,EAVuD;;AAkBvDoD,IAAAA,IAAI,CAACxnB,IAAL,CAAU,UAAUgjB,GAAV,EAAe;AACvB;AACA;AACA;AACA,MAAA,IAAIsgD,UAAU,GAAGtoC,IAAA,CAAY11B,MAAM,CAAC0d,GAAD,CAAlB,EAAyB,UAAUkL,KAAV,EAAiB;QACzD,OAAOk1C,YAAY,CAACl1C,KAAD,CAAnB,CAAA;AACD,OAFgB,KAEXm1C,oBAAoB,CAACj/C,QAAD,CAF1B,CAJuB;;MAQvB9e,MAAM,CAAC0d,GAAD,CAAN,CAAY3rB,IAAZ,CAAiBisE,UAAU,CAACjnD,KAAX,EAAjB,CAAA,CAAA;MACAmL,IAAI,CAACogB,aAAL,CAAmB5kB,GAAnB,EAAwB1d,MAAM,CAAC0d,GAAD,CAA9B,CAAA,CAAA;KATF,CAAA,CAAA;GAlBF,CAAA,CAAA;AA8BD,CAAA;;AAED,SAASogD,YAAT,CAAsBl1C,KAAtB,EAA6B;AAC3B,EAAA,OAAO,CAAC/2B,KAAK,CAAC+2B,KAAK,CAAC,CAAD,CAAN,CAAN,IAAoB,CAAC/2B,KAAK,CAAC+2B,KAAK,CAAC,CAAD,CAAN,CAAjC,CAAA;AACD,CAAA;;AAED,SAASm1C,oBAAT,CAA8Bj/C,QAA9B,EAAwC;AACtC;AACA;EACA,OAAO,CAACA,QAAQ,CAAC1vB,EAAV,EAAc0vB,QAAQ,CAACzvB,EAAvB,CAAP,CAAA;AACD;;ACpFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4Be,SAAS4uE,mBAAT,CAA6Bp/C,MAA7B,EAAqC;AAClD,EAAA,IAAIq/C,WAAW,GAAGr/C,MAAM,CAACwV,KAAzB,CAAA;;AAEA,EAAA,IAAI6pC,WAAJ,EAAiB;AACf,IAAA,IAAI,CAACxoC,SAAA,CAAewoC,WAAf,CAAL,EAAkC;MAChCA,WAAW,GAAG,CAACA,WAAD,CAAd,CAAA;AACD,KAAA;;IAED,IAAIC,eAAe,GAAG,EAAtB,CAAA;IACAzoC,MAAA,CAAYwoC,WAAZ,EAAyB,UAAUE,QAAV,EAAoB1gD,GAApB,EAAyB;MAChD,IAAI0gD,QAAQ,CAACC,SAAb,EAAwB;QACtB,IAAID,QAAQ,CAACr9D,IAAT,IAAiB,CAACq9D,QAAQ,CAAC9kE,KAA/B,EAAsC;AACpC8kE,UAAAA,QAAQ,CAAC9kE,KAAT,GAAiB8kE,QAAQ,CAACr9D,IAA1B,CAAA;AACD,SAAA;;AAED8d,QAAAA,MAAM,CAACy/C,KAAP,GAAez/C,MAAM,CAACy/C,KAAP,IAAgB,EAA/B,CAAA;;QAEA,IAAI,CAAC5oC,SAAA,CAAe7W,MAAM,CAACy/C,KAAtB,CAAL,EAAmC;AACjCz/C,UAAAA,MAAM,CAACy/C,KAAP,GAAe,CAACz/C,MAAM,CAACy/C,KAAR,CAAf,CAAA;AACD,SAAA;;AAEDz/C,QAAAA,MAAM,CAACy/C,KAAP,CAAavsE,IAAb,CAAkBqsE,QAAlB,CAAA,CAAA;AACD,OAZD,MAYO;QACLD,eAAe,CAACpsE,IAAhB,CAAqBqsE,QAArB,CAAA,CAAA;AACD,OAAA;KAfH,CAAA,CAAA;IAiBAv/C,MAAM,CAACwV,KAAP,GAAe8pC,eAAf,CAAA;AACD,GAAA;;EAEDzoC,MAAA,CAAY7W,MAAM,CAAC0/C,MAAnB,EAA2B,UAAUC,SAAV,EAAqB;IAC9C,IAAIA,SAAS,IAAIA,SAAS,CAACz9D,IAAV,KAAmB,OAAhC,IAA2Cy9D,SAAS,CAACC,UAAzD,EAAqE;AACnED,MAAAA,SAAS,CAACE,UAAV,GAAuBF,SAAS,CAACC,UAAjC,CAAA;AACD,KAAA;GAHH,CAAA,CAAA;AAKD;;AC/ED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmCA,IAAIE,WAAS;AACb;AACA,UAAUzsD,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACwsD,SAAD,EAAYzsD,MAAZ,CAAT,CAAA;;AAEA,EAAA,SAASysD,SAAT,GAAqB;AACnB,IAAA,IAAIvsD,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa49D,SAAS,CAAC59D,IAAvB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDusD,SAAS,CAAC3wE,SAAV,CAAoB8tC,MAApB,GAA6B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AAChE,IAAA,IAAI8pB,KAAK,GAAG3P,WAAW,CAAC3F,gBAAxB,CAAA;IACA,IAAIM,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAI6C,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAIwJ,OAAO,GAAG,IAAA,CAAKC,KAAnB,CAAA;;AAEA,IAAA,SAAShK,YAAT,CAAsB0C,IAAtB,EAA4BxE,GAA5B,EAAiC;MAC/B,IAAIwC,UAAU,GAAGgC,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,QAAxB,CAAA,IAAqC,QAAtD,CAAA;;MAEA,IAAIwC,UAAU,KAAK,MAAnB,EAA2B;AACzB,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAImB,UAAU,GAAGu9C,mBAAA,CAA+B18C,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,YAAxB,CAA/B,CAAjB,CAAA;AACA,MAAA,IAAIwF,UAAU,GAAG07C,cAAA,CAAwB1+C,UAAxB,EAAoC,CAAC,CAArC,EAAwC,CAAC,CAAzC,EAA4C,CAA5C,EAA+C,CAA/C,CAAjB,CAAA;MACA,IAAII,YAAY,GAAG4B,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,cAAxB,CAAA,IAA2C,CAA9D,CAAA;MACAwF,UAAU,CAACC,IAAX,CAAgB;AACd7wB,QAAAA,KAAK,EAAE;AACLmB,UAAAA,aAAa,EAAE,IAAA;SAFH;AAId2vB,QAAAA,EAAE,EAAE,GAJU;AAKdrf,QAAAA,MAAM,EAAEsd,UAAU,CAAC,CAAD,CAAV,GAAgB,CALV;AAMdrd,QAAAA,MAAM,EAAEqd,UAAU,CAAC,CAAD,CAAV,GAAgB,CANV;QAOdb,QAAQ,EAAEF,YAAY,GAAG9yB,IAAI,CAACI,EAApB,GAAyB,GAAzB,IAAgC,CAAA;OAP5C,CAAA,CAAA;AASA,MAAA,OAAOs1B,UAAP,CAAA;AACD,KAAA;;AAED,IAAA,SAAS27C,aAAT,CAAuBpwC,SAAvB,EAAkCE,SAAlC,EAA6CmwC,WAA7C,EAA0D58C,IAA1D,EAAgExE,GAAhE,EAAqEmH,MAArE,EAA6E;AAC3E;AACAi6C,MAAAA,WAAW,CAAC77C,SAAZ,EAAA,CAAA;;AAEA,MAAA,KAAK,IAAIvxB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi9B,SAAS,CAAC39B,MAAV,GAAmB,CAAvC,EAA0CU,CAAC,EAA3C,EAA+C;AAC7C,QAAA,IAAIwxB,UAAU,GAAG1D,YAAY,CAAC0C,IAAD,EAAOxE,GAAP,CAA7B,CAAA;;AAEA,QAAA,IAAIwF,UAAJ,EAAgB;UACdA,UAAU,CAAC67C,QAAX,GAAsBrtE,CAAtB,CAAA;;AAEA,UAAA,IAAI+8B,SAAS,CAAC/8B,CAAD,CAAb,EAAkB;AAChBwxB,YAAAA,UAAU,CAAC6G,WAAX,CAAuB0E,SAAS,CAAC/8B,CAAD,CAAhC,CAAA,CAAA;YACAqzB,OAAO,CAACF,MAAM,GAAG,WAAH,GAAiB,aAAxB,CAAP,CAA8C3B,UAA9C,EAA0D;AACxDz0B,cAAAA,CAAC,EAAEkgC,SAAS,CAACj9B,CAAD,CAAT,CAAa,CAAb,CADqD;AAExDhD,cAAAA,CAAC,EAAEigC,SAAS,CAACj9B,CAAD,CAAT,CAAa,CAAb,CAAA;aAFL,EAGGgzB,WAHH,EAGgBhH,GAHhB,CAAA,CAAA;AAID,WAND,MAMO;AACLwF,YAAAA,UAAU,CAAC6G,WAAX,CAAuB4E,SAAS,CAACj9B,CAAD,CAAhC,CAAA,CAAA;AACD,WAAA;;UAEDotE,WAAW,CAACl/C,GAAZ,CAAgBsD,UAAhB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;IAED,SAAS87C,gBAAT,CAA0Bh/D,MAA1B,EAAkC;MAChC,OAAO01B,GAAA,CAAW11B,MAAX,EAAmB,UAAU61B,EAAV,EAAc;QACtC,OAAO,CAACxB,KAAK,CAACjlC,EAAP,EAAWilC,KAAK,CAAChlC,EAAjB,CAAP,CAAA;AACD,OAFM,CAAP,CAAA;AAGD,KAAA;;IAED6yB,IAAI,CAAC0H,IAAL,CAAUL,OAAV,EAAmB3J,GAAnB,CAAuB,UAAUlC,GAAV,EAAe;AACpC,MAAA,IAAI1d,MAAM,GAAGkiB,IAAI,CAACyH,aAAL,CAAmBjM,GAAnB,CAAb,CAAA;;MAEA,IAAI,CAAC1d,MAAL,EAAa;AACX,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIW,OAAO,GAAG,IAAIokB,OAAJ,EAAd,CAAA;AACA,MAAA,IAAIrkB,QAAQ,GAAG,IAAIqkB,UAAJ,EAAf,CAAA;AACA,MAAA,IAAIlrB,MAAM,GAAG;AACXP,QAAAA,KAAK,EAAE;AACL0G,UAAAA,MAAM,EAAEA,MAAAA;AADH,SAAA;OADT,CAAA;MAKAW,OAAO,CAACrH,KAAR,CAAc0G,MAAd,GAAuBg/D,gBAAgB,CAACh/D,MAAD,CAAvC,CAAA;MACAU,QAAQ,CAACpH,KAAT,CAAe0G,MAAf,GAAwBg/D,gBAAgB,CAACh/D,MAAD,CAAxC,CAAA;MACA+kB,SAAA,CAAkBpkB,OAAlB,EAA2B9G,MAA3B,EAAmC6qB,WAAnC,EAAgDhH,GAAhD,CAAA,CAAA;MACAqH,SAAA,CAAkBrkB,QAAlB,EAA4B7G,MAA5B,EAAoC6qB,WAApC,EAAiDhH,GAAjD,CAAA,CAAA;AACA,MAAA,IAAIuhD,SAAS,GAAG,IAAIl6C,OAAJ,EAAhB,CAAA;AACA,MAAA,IAAI+5C,WAAW,GAAG,IAAI/5C,OAAJ,EAAlB,CAAA;MACAk6C,SAAS,CAACr/C,GAAV,CAAclf,QAAd,CAAA,CAAA;MACAu+D,SAAS,CAACr/C,GAAV,CAAcjf,OAAd,CAAA,CAAA;MACAs+D,SAAS,CAACr/C,GAAV,CAAck/C,WAAd,CAAA,CAAA;AACAD,MAAAA,aAAa,CAACn+D,QAAQ,CAACpH,KAAT,CAAe0G,MAAhB,EAAwBA,MAAxB,EAAgC8+D,WAAhC,EAA6C58C,IAA7C,EAAmDxE,GAAnD,EAAwD,IAAxD,CAAb,CAAA;AACAwE,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBtM,GAAtB,EAA2BuhD,SAA3B,CAAA,CAAA;AACD,KAzBD,EAyBGh1C,MAzBH,CAyBU,UAAUJ,MAAV,EAAkBK,MAAlB,EAA0B;AAClC,MAAA,IAAI+0C,SAAS,GAAG11C,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAhB,CAAA;AACA,MAAA,IAAIxpB,QAAQ,GAAGu+D,SAAS,CAACt7C,OAAV,CAAkB,CAAlB,CAAf,CAAA;AACA,MAAA,IAAIhjB,OAAO,GAAGs+D,SAAS,CAACt7C,OAAV,CAAkB,CAAlB,CAAd,CAAA;AACA,MAAA,IAAIm7C,WAAW,GAAGG,SAAS,CAACt7C,OAAV,CAAkB,CAAlB,CAAlB,CAAA;AACA,MAAA,IAAI9pB,MAAM,GAAG;AACXP,QAAAA,KAAK,EAAE;AACL0G,UAAAA,MAAM,EAAEkiB,IAAI,CAACyH,aAAL,CAAmBE,MAAnB,CAAA;AADH,SAAA;OADT,CAAA;;AAMA,MAAA,IAAI,CAAChwB,MAAM,CAACP,KAAP,CAAa0G,MAAlB,EAA0B;AACxB,QAAA,OAAA;AACD,OAAA;;MAED6+D,aAAa,CAACn+D,QAAQ,CAACpH,KAAT,CAAe0G,MAAhB,EAAwBnG,MAAM,CAACP,KAAP,CAAa0G,MAArC,EAA6C8+D,WAA7C,EAA0D58C,IAA1D,EAAgE2H,MAAhE,EAAwE,KAAxE,CAAb,CAAA;MACA7E,YAAY,CAACrkB,OAAD,CAAZ,CAAA;MACAqkB,YAAY,CAACtkB,QAAD,CAAZ,CAAA;AACAqkB,MAAAA,aAAA,CAAoBrkB,QAApB,EAA8B7G,MAA9B,EAAsC6qB,WAAtC,CAAA,CAAA;AACAK,MAAAA,aAAA,CAAoBpkB,OAApB,EAA6B9G,MAA7B,EAAqC6qB,WAArC,CAAA,CAAA;AACAxC,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBH,MAAtB,EAA8Bo1C,SAA9B,CAAA,CAAA;AACD,KA9CD,CA8CG70C,CAAAA,MA9CH,CA8CU,UAAU1M,GAAV,EAAe;MACvB2B,KAAK,CAAC+K,MAAN,CAAab,OAAO,CAACY,gBAAR,CAAyBzM,GAAzB,CAAb,CAAA,CAAA;AACD,KAhDD,EAgDG6M,OAhDH,EAAA,CAAA;AAiDArI,IAAAA,IAAI,CAACwI,iBAAL,CAAuB,UAAUu0C,SAAV,EAAqBvhD,GAArB,EAA0B;AAC/C,MAAA,IAAIoI,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;AACA,MAAA,IAAIhd,QAAQ,GAAGu+D,SAAS,CAACt7C,OAAV,CAAkB,CAAlB,CAAf,CAAA;AACA,MAAA,IAAIhjB,OAAO,GAAGs+D,SAAS,CAACt7C,OAAV,CAAkB,CAAlB,CAAd,CAAA;MACA,IAAIm7C,WAAW,GAAGG,SAAS,CAACt7C,OAAV,CAAkB,CAAlB,CAAlB,CAJ+C;;MAM/C,IAAItD,SAAS,GAAG6B,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,OAAxB,CAAhB,CAAA;AACA,MAAA,IAAIpqB,KAAK,GAAG+sB,SAAS,CAAC9tB,IAAtB,CAAA;MACA8sB,KAAK,CAACO,GAAN,CAAUq/C,SAAV,CAAA,CAAA;AACAv+D,MAAAA,QAAQ,CAACimB,QAAT,CAAkB+O,QAAA,CAAgB5P,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAAgCyX,CAAAA,YAAhC,EAAhB,EAAgE;AAChFnrC,QAAAA,IAAI,EAAE,MAD0E;AAEhFE,QAAAA,MAAM,EAAEa,KAAAA;AAFwE,OAAhE,CAAlB,CAAA,CAAA;AAIAsqC,MAAAA,wBAAwB,CAACl9B,QAAD,EAAWolB,SAAX,EAAsB,WAAtB,CAAxB,CAAA;AACA8X,MAAAA,wBAAwB,CAACj9B,OAAD,EAAUmlB,SAAV,EAAqB,WAArB,CAAxB,CAAA;AACA,MAAA,IAAImW,cAAc,GAAGnW,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAArB,CAAA;MACA,IAAIi5C,aAAa,GAAGjjC,cAAc,CAACO,OAAf,EAA4BP,IAAAA,cAAc,CAACkjC,WAAf,CAA2B3iC,OAA3B,EAAhD,CAAA;MACA77B,OAAO,CAAC2pC,MAAR,GAAiB40B,aAAjB,CAAA;AACAxpC,MAAAA,MAAA,CAAY,CAAC,UAAD,EAAa,QAAb,EAAuB,MAAvB,CAAZ,EAA4C,UAAU0pC,SAAV,EAAqB;QAC/D,IAAIC,UAAU,GAAGv5C,SAAS,CAACG,QAAV,CAAmB,CAACm5C,SAAD,EAAY,WAAZ,CAAnB,CAAjB,CAAA;AACA,QAAA,IAAIE,WAAW,GAAGD,UAAU,CAAC7iC,OAAX,EAAA,IAAwB6iC,UAAU,CAACF,WAAX,CAAuB3iC,OAAvB,EAA1C,CAF+D;;QAI/D77B,OAAO,CAACknB,WAAR,CAAoBu3C,SAApB,EAA+B90B,MAA/B,GAAwCg1B,WAAW,IAAIJ,aAAvD,CAAA;OAJF,CAAA,CAAA;MAMAv+D,OAAO,CAACgmB,QAAR,CAAiB+O,QAAA,CAAgBuG,cAAc,CAACgC,YAAf,EAAhB,EAA+C;AAC9D1rC,QAAAA,IAAI,EAAEe,KADwD;AAE9DH,QAAAA,OAAO,EAAE,GAFqD;QAG9D0zB,KAAK,EAAExG,SAAS,CAACwG,KAAAA;AAH6C,OAA/C,CAAjB,CAAA,CAAA;AAKA,MAAA,IAAIb,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAApB,CAAA;MACA,IAAIs5C,cAAc,GAAGv5C,aAAa,CAACC,QAAd,CAAuB,WAAvB,CAAoCC,CAAAA,YAApC,EAArB,CAAA;AACA44C,MAAAA,WAAW,CAACtf,SAAZ,CAAsB,UAAUt8B,UAAV,EAAsB;QAC1C,IAAIA,UAAU,YAAY9vB,OAA1B,EAAmC;AACjC,UAAA,IAAIszB,SAAS,GAAGxD,UAAU,CAAC5wB,KAA3B,CAAA;AACA4wB,UAAAA,UAAU,CAACyD,QAAX,CAAoB+O,MAAA,CAAc;AAChC;YACA3zB,KAAK,EAAE2kB,SAAS,CAAC3kB,KAFe;YAGhCtT,CAAC,EAAEi4B,SAAS,CAACj4B,CAHmB;YAIhCC,CAAC,EAAEg4B,SAAS,CAACh4B,CAJmB;YAKhC+I,KAAK,EAAEivB,SAAS,CAACjvB,KALe;YAMhCC,MAAM,EAAEgvB,SAAS,CAAChvB,MAAAA;WANA,EAOjB2oB,SAPiB,CAApB,CAAA,CAAA;AAQD,SAVD,MAUO;UACL6C,UAAU,CAACyD,QAAX,CAAoBtG,SAApB,CAAA,CAAA;UACA6C,UAAU,CAAC4D,QAAX,CAAoBxzB,KAApB,CAAA,CAAA;AACA4vB,UAAAA,UAAU,CAAC5wB,KAAX,CAAiBmB,aAAjB,GAAiC,IAAjC,CAAA;AACD,SAAA;;AAED,QAAA,IAAI+rE,iBAAiB,GAAGt8C,UAAU,CAAC2E,WAAX,CAAuB,UAAvB,CAAxB,CAAA;QACA23C,iBAAiB,CAACltE,KAAlB,GAA0BojC,OAAA,CAAa6pC,cAAb,CAA1B,CAAA;AACA,QAAA,IAAIh4C,WAAW,GAAGrF,IAAI,CAAC4f,QAAL,EAAA,CAAgB3b,GAAhB,CAAoBjE,IAAI,CAACS,iBAAL,CAAuBO,UAAU,CAAC67C,QAAlC,CAApB,EAAiErhD,GAAjE,CAAlB,CAAA;QACA,CAAC6J,WAAW,IAAI,IAAf,IAAuB11B,KAAK,CAAC01B,WAAD,CAA7B,MAAgDA,WAAW,GAAG,EAA9D,CAAA,CAAA;AACAH,QAAAA,aAAa,CAAClE,UAAD,EAAakD,oBAAoB,CAACN,SAAD,CAAjC,EAA8C;UACzDuB,YAAY,EAAEnF,IAAI,CAACyC,SADsC;AAEzD2C,UAAAA,cAAc,EAAE5J,GAFyC;UAGzD+hD,aAAa,EAAEv8C,UAAU,CAAC67C,QAH+B;AAIzDx3C,UAAAA,WAAW,EAAEA,WAJ4C;AAKzDE,UAAAA,YAAY,EAAEn0B,KAL2C;UAMzDo0B,cAAc,EAAErH,SAAS,CAACltB,OAAAA;AAN+B,SAA9C,CAAb,CAAA;OArBF,CAAA,CAAA;MA8BA60B,mBAAmB,CAACi3C,SAAD,EAAYj5C,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAZ,EAAwCH,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAxC,EAAwEH,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAxE,CAAnB,CAAA;KA7DF,CAAA,CAAA;IA+DA,IAAKqD,CAAAA,KAAL,GAAatH,IAAb,CAAA;GA3KF,CAAA;;AA8KAy8C,EAAAA,SAAS,CAAC3wE,SAAV,CAAoBo8B,MAApB,GAA6B,YAAY;IACvC,IAAK/K,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;IACA,IAAKuG,CAAAA,KAAL,GAAa,IAAb,CAAA;GAFF,CAAA;;EAKAm1C,SAAS,CAAC59D,IAAV,GAAiB,OAAjB,CAAA;AACA,EAAA,OAAO49D,SAAP,CAAA;AACD,CA/LD,CA+LEz/B,SA/LF,CAFA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgCA,IAAIwgC,gBAAgB;AACpB;AACA,UAAUxtD,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACutD,gBAAD,EAAmBxtD,MAAnB,CAAT,CAAA;;AAEA,EAAA,SAASwtD,gBAAT,GAA4B;AAC1B,IAAA,IAAIttD,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa2+D,gBAAgB,CAAC3+D,IAA9B,CAAA;IACAqR,KAAK,CAACuM,eAAN,GAAwB,IAAxB,CAAA;AACA,IAAA,OAAOvM,KAAP,CAAA;AACD,GATe;;;AAYhBstD,EAAAA,gBAAgB,CAAC1xE,SAAjB,CAA2BytC,IAA3B,GAAkC,UAAU5c,MAAV,EAAkB;IAClD3M,MAAM,CAAClkB,SAAP,CAAiBytC,IAAjB,CAAsB/c,KAAtB,CAA4B,IAA5B,EAAkC/sB,SAAlC,CAAA,CADkD;AAElD;;;IAGA,IAAKwqD,CAAAA,oBAAL,GAA4B,IAAIZ,oBAAJ,CAAyB7lB,MAAA,CAAY,IAAA,CAAK3V,OAAjB,EAA0B,IAA1B,CAAzB,EAA0D2V,MAAA,CAAY,KAAK+lB,UAAjB,EAA6B,IAA7B,CAA1D,CAA5B,CAAA;GALF,CAAA;;EAQAikB,gBAAgB,CAAC1xE,SAAjB,CAA2B4wB,cAA3B,GAA4C,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;IACrE,OAAO8e,sBAAsB,CAAC,IAAD,EAAO;AAClC8kB,MAAAA,aAAa,EAAE,YADmB;AAElCC,MAAAA,kBAAkB,EAAErqD,QAAAA;AAFc,KAAP,CAA7B,CAAA;GADF,CAAA;;EAOAmqD,gBAAgB,CAAC1xE,SAAjB,CAA2B6xE,aAA3B,GAA2C,UAAU19C,SAAV,EAAqB29C,cAArB,EAAqCC,QAArC,EAA+C;AACxF,IAAA,IAAI79C,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;IACA,IAAIjB,QAAQ,GAAG,IAAA,CAAKC,gBAApB,CAAA;AACA,IAAA,IAAIihD,aAAa,GAAGlhD,QAAQ,CAAC++C,gBAAT,EAApB,CAAA;IACA,IAAInpE,IAAI,GAAG,IAAKqrB,CAAAA,OAAL,GAAe4H,OAAf,CAAuBxF,SAAvB,CAAX,CAAA;IACA,IAAI89C,aAAa,GAAGvrE,IAAI,KAAK,EAAT,GAAc,IAAA,CAAKA,IAAnB,GAA0BA,IAA9C,CAAA;AACA,IAAA,IAAIwrE,WAAW,GAAGC,mCAAmC,CAAC,IAAD,EAAOh+C,SAAP,CAArD,CAAA;IACA,OAAOi+C,mBAAmB,CAAC,SAAD,EAAY;AACpCC,MAAAA,MAAM,EAAEJ,aAD4B;AAEpCK,MAAAA,UAAU,EAAE,IAFwB;MAGpCC,MAAM,EAAE7qC,GAAA,CAAWsqC,aAAX,EAA0B,UAAUroC,IAAV,EAAgB;AAChD,QAAA,IAAI/lC,GAAG,GAAGswB,IAAI,CAACiE,GAAL,CAASjE,IAAI,CAACgK,YAAL,CAAkByL,IAAI,CAAC5L,GAAvB,CAAT,EAAsC5J,SAAtC,CAAV,CAAA;QACA,OAAOi+C,mBAAmB,CAAC,WAAD,EAAc;AACtCI,UAAAA,UAAU,EAAE,SAD0B;AAEtCN,UAAAA,WAAW,EAAEA,WAFyB;UAGtCxrE,IAAI,EAAEijC,IAAI,CAACjjC,IAH2B;AAItCw4B,UAAAA,KAAK,EAAEt7B,GAJ+B;AAKtC6uE,UAAAA,SAAS,EAAE7uE,GAAAA;AAL2B,SAAd,CAA1B,CAAA;OAFM,CAAA;AAH4B,KAAZ,CAA1B,CAAA;GAPF,CAAA;;AAuBA8tE,EAAAA,gBAAgB,CAAC1xE,SAAjB,CAA2B0yE,kBAA3B,GAAgD,UAAUv+C,SAAV,EAAqB;IACnE,IAAIA,SAAS,IAAI,IAAjB,EAAuB;AACrB,MAAA,IAAIqY,MAAM,GAAG,IAAKza,CAAAA,OAAL,EAAb,CAAA;MACA,IAAIjB,QAAQ,GAAG,IAAA,CAAKC,gBAApB,CAAA;AACA,MAAA,IAAI4hD,MAAM,GAAGnmC,MAAM,CAAComC,SAAP,CAAiBlrC,GAAA,CAAW5W,QAAQ,CAACwN,UAApB,EAAgC,UAAUP,GAAV,EAAe;AAC3E,QAAA,OAAOyO,MAAM,CAACtO,YAAP,CAAoBH,GAApB,CAAP,CAAA;OAD4B,CAAjB,EAET5J,SAFS,CAAb,CAAA;;AAIA,MAAA,KAAK,IAAIzwB,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAG4lE,MAAM,CAAC3vE,MAA7B,EAAqCU,CAAC,GAAGqJ,GAAzC,EAA8CrJ,CAAC,EAA/C,EAAmD;QACjD,IAAI,CAACG,KAAK,CAAC8uE,MAAM,CAACjvE,CAAD,CAAP,CAAV,EAAuB;AACrB,UAAA,IAAIsuE,aAAa,GAAGlhD,QAAQ,CAAC++C,gBAAT,EAApB,CAAA;AACA,UAAA,OAAO/+C,QAAQ,CAAC+hD,YAAT,CAAsBb,aAAa,CAACtuE,CAAD,CAAb,CAAiBsmC,WAAjB,CAA6B2oC,MAAM,CAACjvE,CAAD,CAAnC,CAAtB,EAA+DA,CAA/D,CAAP,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;GAdH,CAAA;;EAiBAguE,gBAAgB,CAAC3+D,IAAjB,GAAwB,cAAxB,CAAA;AACA2+D,EAAAA,gBAAgB,CAACh/C,YAAjB,GAAgC,CAAC,OAAD,CAAhC,CAAA;EACAg/C,gBAAgB,CAAC/+C,aAAjB,GAAiC;AAC/B;AACAzG,IAAAA,CAAC,EAAE,CAF4B;AAG/B4iC,IAAAA,OAAO,EAAE,MAHsB;AAI/B/9B,IAAAA,gBAAgB,EAAE,OAJa;AAK/B6B,IAAAA,eAAe,EAAE,IALc;AAM/B89C,IAAAA,UAAU,EAAE,CANmB;AAO/B/+C,IAAAA,SAAS,EAAE;AACTloB,MAAAA,KAAK,EAAE,CADE;AAETsJ,MAAAA,IAAI,EAAE,OAFG;AAGT/O,MAAAA,IAAI,EAAE,OAAA;KAVuB;AAY/B6uB,IAAAA,KAAK,EAAE;AACL/O,MAAAA,QAAQ,EAAE,KAAA;KAbmB;AAe/B;AACA;AACA;IACAuP,UAAU,EAAE,CAlBmB;;GAAjC,CAAA;AAqBA,EAAA,OAAOq+C,gBAAP,CAAA;AACD,CA3FD,CA2FE19C,WA3FF,CAFA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA,IAAI8+C,gBAAgB,GAAG7c,WAAW,CAAC/2B,KAAnC,CAAA;;AAEA,SAAS6zC,YAAT,CAAsB3hD,GAAtB,EAA2B2B,IAA3B,EAAiC;EAC/B,OAAO2U,QAAA,CAAgB;AACrB3U,IAAAA,IAAI,EAAEA,IAAAA;GADD,EAEJ3B,GAFI,CAAP,CAAA;AAGD,CAAA;;AAED,IAAI4hD,UAAU;AACd;AACA,UAAU9uD,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC6uD,UAAD,EAAa9uD,MAAb,CAAT,CAAA;;AAEA,EAAA,SAAS8uD,UAAT,GAAsB;AACpB,IAAA,IAAI5uD,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaigE,UAAU,CAACjgE,IAAxB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAED4uD,EAAAA,UAAU,CAAChzE,SAAX,CAAqB42D,aAArB,GAAqC,YAAY;AAC/C,IAAA,IAAIjC,WAAW,GAAG,IAAA,CAAKx8B,GAAL,CAAS,aAAT,CAAlB,CAAA;AACA,IAAA,IAAI48B,WAAW,GAAG,IAAA,CAAK58B,GAAL,CAAS,aAAT,CAAlB,CAAA;AACA,IAAA,IAAI7R,KAAK,GAAG,IAAA,CAAK6R,GAAL,CAAS,OAAT,CAAZ,CAAA;AACA,IAAA,IAAI87B,QAAQ,GAAG,IAAA,CAAK97B,GAAL,CAAS,UAAT,CAAf,CAAA;IACA,IAAIi8B,QAAQ,GAAG,IAAKj8B,CAAAA,GAAL,CAAS,UAAT,CAAf,CAL+C;;AAO/C,IAAA,IAAIk8B,SAAS,GAAG,IAAA,CAAKl8B,GAAL,CAAS,WAAT,CAAhB,CAAA;AACA,IAAA,IAAIy7B,aAAa,GAAG,IAAA,CAAKz7B,GAAL,CAAS,UAAT,CAApB,CAAA;IACA,IAAI86C,QAAQ,GAAG,IAAA,CAAK96C,GAAL,CAAS,CAAC,UAAD,EAAa,MAAb,CAAT,CAAf,CAAA;IACA,IAAI+6C,aAAa,GAAG,IAAA,CAAK/6C,GAAL,CAAS,CAAC,UAAD,EAAa,WAAb,CAAT,CAApB,CAAA;AACA,IAAA,IAAI07B,OAAO,GAAG,IAAA,CAAK17B,GAAL,CAAS,aAAT,CAAd,CAAA;AACA,IAAA,IAAI27B,YAAY,GAAG,IAAA,CAAK37B,GAAL,CAAS,cAAT,CAAnB,CAAA;AACA,IAAA,IAAIg7C,eAAe,GAAGzrC,GAAA,CAAW,IAAA,CAAKvP,GAAL,CAAS,WAAT,CAAyB,IAAA,EAApC,EAAwC,UAAUi7C,YAAV,EAAwB;AACpF;AACA,MAAA,IAAIA,YAAY,CAAClxD,GAAb,IAAoB,IAApB,IAA4BkxD,YAAY,CAAClxD,GAAb,GAAmB,CAA/C,IAAoD,CAACkxD,YAAY,CAAC9wC,GAAtE,EAA2E;QACzE8wC,YAAY,CAAC9wC,GAAb,GAAmB,CAAnB,CAAA;AACD,OAFD,MAEO,IAAI8wC,YAAY,CAAC9wC,GAAb,IAAoB,IAApB,IAA4B8wC,YAAY,CAAC9wC,GAAb,GAAmB,CAA/C,IAAoD,CAAC8wC,YAAY,CAAClxD,GAAtE,EAA2E;QAChFkxD,YAAY,CAAClxD,GAAb,GAAmB,CAAnB,CAAA;AACD,OAAA;;MAED,IAAImxD,cAAc,GAAGzf,aAArB,CAAA;;AAEA,MAAA,IAAIwf,YAAY,CAAC9tE,KAAb,IAAsB,IAA1B,EAAgC;AAC9B+tE,QAAAA,cAAc,GAAG3rC,QAAA,CAAgB;UAC/BpiC,KAAK,EAAE8tE,YAAY,CAAC9tE,KAAAA;SADL,EAEdsuD,aAFc,CAAjB,CAAA;AAGD,OAdmF;;;AAiBpF,MAAA,IAAI0f,iBAAiB,GAAG5rC,KAAA,CAAaA,OAAA,CAAa0rC,YAAb,CAAb,EAAyC;AAC/Dze,QAAAA,WAAW,EAAEA,WADkD;AAE/DI,QAAAA,WAAW,EAAEA,WAFkD;AAG/DzuC,QAAAA,KAAK,EAAEA,KAHwD;AAI/D2tC,QAAAA,QAAQ,EAAEA,QAJqD;AAK/DG,QAAAA,QAAQ,EAAEA,QALqD;AAM/D;AACAC,QAAAA,SAAS,EAAEA,SAPoD;AAQ/D;QACA3tD,IAAI,EAAE0sE,YAAY,CAAClsE,IAT4C;AAU/D+rE,QAAAA,QAAQ,EAAEA,QAVqD;AAW/D3f,QAAAA,YAAY,EAAE,KAXiD;AAY/DO,QAAAA,OAAO,EAAEA,OAZsD;AAa/D;AACAD,QAAAA,aAAa,EAAEyf,cAdgD;AAe/Dvf,QAAAA,YAAY,EAAEA,YAAAA;OAfQ,EAgBrB,KAhBqB,CAAxB,CAAA;;AAkBA,MAAA,IAAIpsB,QAAA,CAAgBwrC,aAAhB,CAAJ,EAAoC;AAClC,QAAA,IAAIK,OAAO,GAAGD,iBAAiB,CAAC5sE,IAAhC,CAAA;AACA4sE,QAAAA,iBAAiB,CAAC5sE,IAAlB,GAAyBwsE,aAAa,CAAC/lE,OAAd,CAAsB,SAAtB,EAAiComE,OAAO,IAAI,IAAX,GAAkBA,OAAlB,GAA4B,EAA7D,CAAzB,CAAA;OAFF,MAGO,IAAI7rC,UAAA,CAAkBwrC,aAAlB,CAAJ,EAAsC;QAC3CI,iBAAiB,CAAC5sE,IAAlB,GAAyBwsE,aAAa,CAACI,iBAAiB,CAAC5sE,IAAnB,EAAyB4sE,iBAAzB,CAAtC,CAAA;AACD,OAAA;;MAED,IAAIr3B,KAAK,GAAG,IAAIysB,KAAJ,CAAU4K,iBAAV,EAA6B,IAA7B,EAAmC,IAAKvlC,CAAAA,OAAxC,CAAZ,CAAA;MACArG,KAAA,CAAauU,KAAb,EAAoBoX,oBAAoB,CAACrzD,SAAzC,CAAA,CA3CoF;;MA6CpFi8C,KAAK,CAAC2H,QAAN,GAAiB,OAAjB,CAAA;AACA3H,MAAAA,KAAK,CAACtL,cAAN,GAAuB,IAAA,CAAKA,cAA5B,CAAA;AACA,MAAA,OAAOsL,KAAP,CAAA;KA/CoB,EAgDnB,IAhDmB,CAAtB,CAAA;IAiDA,IAAKu3B,CAAAA,gBAAL,GAAwBL,eAAxB,CAAA;GA9DF,CAAA;;AAiEAH,EAAAA,UAAU,CAAChzE,SAAX,CAAqByzE,kBAArB,GAA0C,YAAY;AACpD,IAAA,OAAO,KAAKD,gBAAZ,CAAA;GADF,CAAA;;EAIAR,UAAU,CAACjgE,IAAX,GAAkB,OAAlB,CAAA;EACAigE,UAAU,CAACrgD,aAAX,GAA2B;AACzB;AACAzG,IAAAA,CAAC,EAAE,CAFsB;AAGzBm4B,IAAAA,MAAM,EAAE,CAAC,KAAD,EAAQ,KAAR,CAHiB;AAIzBC,IAAAA,MAAM,EAAE,KAJiB;AAKzB/iD,IAAAA,UAAU,EAAE,EALa;AAMzBo0D,IAAAA,QAAQ,EAAE;MACR5iC,IAAI,EAAE,IADE;AAER;;KARuB;AAWzB4hC,IAAAA,WAAW,EAAE,CAAC,CAAD,EAAI,CAAJ,CAXY;AAYzBI,IAAAA,WAAW,EAAE,CAZY;AAazB2e,IAAAA,WAAW,EAAE,EAbY;AAczBptD,IAAAA,KAAK,EAAE,KAdkB;AAezB;AACAhb,IAAAA,KAAK,EAAE,SAhBkB;AAiBzB2oD,IAAAA,QAAQ,EAAEvsB,KAAA,CAAa;AACrB/V,MAAAA,SAAS,EAAE;AACTrsB,QAAAA,KAAK,EAAE,MAAA;AADE,OAAA;AADU,KAAb,EAIPwtE,gBAAgB,CAAC7e,QAJV,CAjBe;IAsBzBI,SAAS,EAAE0e,YAAY,CAACD,gBAAgB,CAACze,SAAlB,EAA6B,KAA7B,CAtBE;IAuBzBD,QAAQ,EAAE2e,YAAY,CAACD,gBAAgB,CAAC1e,QAAlB,EAA4B,KAA5B,CAvBG;AAwBzB;IACAI,SAAS,EAAEue,YAAY,CAACD,gBAAgB,CAACte,SAAlB,EAA6B,IAA7B,CAzBE;IA0BzBC,SAAS,EAAEse,YAAY,CAACD,gBAAgB,CAACre,SAAlB,EAA6B,IAA7B,CA1BE;AA2BzB;AACA4b,IAAAA,SAAS,EAAE,EAAA;GA5Bb,CAAA;AA8BA,EAAA,OAAO2C,UAAP,CAAA;AACD,CA/GD,CA+GEjgB,cA/GF,CAFA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BA,IAAIob,kBAAgB,GAAG,CAAC,UAAD,EAAa,eAAb,EAA8B,UAA9B,CAAvB,CAAA;;AAEA,IAAIwC,SAAS;AACb;AACA,UAAUzsD,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACwsD,SAAD,EAAYzsD,MAAZ,CAAT,CAAA;;AAEA,EAAA,SAASysD,SAAT,GAAqB;AACnB,IAAA,IAAIvsD,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa49D,SAAS,CAAC59D,IAAvB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDusD,SAAS,CAAC3wE,SAAV,CAAoB8tC,MAApB,GAA6B,UAAU6lC,UAAV,EAAsB5lC,OAAtB,EAA+BxxB,GAA/B,EAAoC;IAC/D,IAAI8U,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACAA,IAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;;IAEA,IAAK2+C,CAAAA,UAAL,CAAgBD,UAAhB,CAAA,CAAA;;IAEA,IAAKE,CAAAA,sBAAL,CAA4BF,UAA5B,CAAA,CAAA;GANF,CAAA;;AASAhD,EAAAA,SAAS,CAAC3wE,SAAV,CAAoB4zE,UAApB,GAAiC,UAAUD,UAAV,EAAsB;AACrD,IAAA,IAAIrD,KAAK,GAAGqD,UAAU,CAAC5iD,gBAAvB,CAAA;AACA,IAAA,IAAIihD,aAAa,GAAG1B,KAAK,CAACT,gBAAN,EAApB,CAAA;IACA,IAAIiE,YAAY,GAAGpsC,GAAA,CAAWsqC,aAAX,EAA0B,UAAU+B,aAAV,EAAyB;AACpE,MAAA,IAAIpe,QAAQ,GAAGoe,aAAa,CAAC93B,KAAd,CAAoB9jB,GAApB,CAAwB,UAAxB,CAAA,GAAsC47C,aAAa,CAACrtE,IAApD,GAA2D,EAA1E,CADoE;;MAGpE,IAAI+nE,WAAW,GAAG,IAAI3M,WAAJ,CAAgBiS,aAAa,CAAC93B,KAA9B,EAAqC;AACrD0Z,QAAAA,QAAQ,EAAEA,QAD2C;QAErD7xC,QAAQ,EAAE,CAACwsD,KAAK,CAAClvE,EAAP,EAAWkvE,KAAK,CAACjvE,EAAjB,CAF2C;QAGrDmxB,QAAQ,EAAEuhD,aAAa,CAAC56B,KAH6B;QAIrDmiB,cAAc,EAAE,CAAC,CAJoC;QAKrDC,aAAa,EAAE,CAAC,CALqC;AAMrDC,QAAAA,aAAa,EAAE,CAAA;AANsC,OAArC,CAAlB,CAAA;AAQA,MAAA,OAAOiT,WAAP,CAAA;AACD,KAZkB,CAAnB,CAAA;AAaA/mC,IAAAA,MAAA,CAAYosC,YAAZ,EAA0B,UAAUrF,WAAV,EAAuB;MAC/C/mC,MAAA,CAAYymC,kBAAZ,EAA8BM,WAAW,CAAC78C,GAA1C,EAA+C68C,WAA/C,CAAA,CAAA;AACA,MAAA,IAAA,CAAKp9C,KAAL,CAAWO,GAAX,CAAe68C,WAAW,CAACpM,QAAZ,EAAf,CAAA,CAAA;AACD,KAHD,EAGG,IAHH,CAAA,CAAA;GAhBF,CAAA;;AAsBAsO,EAAAA,SAAS,CAAC3wE,SAAV,CAAoB6zE,sBAApB,GAA6C,UAAUF,UAAV,EAAsB;AACjE,IAAA,IAAIrD,KAAK,GAAGqD,UAAU,CAAC5iD,gBAAvB,CAAA;AACA,IAAA,IAAIihD,aAAa,GAAG1B,KAAK,CAACT,gBAAN,EAApB,CAAA;;AAEA,IAAA,IAAI,CAACmC,aAAa,CAAChvE,MAAnB,EAA2B;AACzB,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIsI,KAAK,GAAGqoE,UAAU,CAACx7C,GAAX,CAAe,OAAf,CAAZ,CAAA;AACA,IAAA,IAAI22C,cAAc,GAAG6E,UAAU,CAAC17C,QAAX,CAAoB,WAApB,CAArB,CAAA;AACA,IAAA,IAAIw1C,cAAc,GAAGkG,UAAU,CAAC17C,QAAX,CAAoB,WAApB,CAArB,CAAA;AACA,IAAA,IAAI+V,cAAc,GAAG8gC,cAAc,CAAC72C,QAAf,CAAwB,WAAxB,CAArB,CAAA;AACA,IAAA,IAAIgW,cAAc,GAAGw/B,cAAc,CAACx1C,QAAf,CAAwB,WAAxB,CAArB,CAAA;AACA,IAAA,IAAI+7C,aAAa,GAAGlF,cAAc,CAAC32C,GAAf,CAAmB,MAAnB,CAApB,CAAA;AACA,IAAA,IAAI87C,aAAa,GAAGxG,cAAc,CAACt1C,GAAf,CAAmB,MAAnB,CAApB,CAAA;AACA,IAAA,IAAI+7C,eAAe,GAAGlmC,cAAc,CAAC7V,GAAf,CAAmB,OAAnB,CAAtB,CAAA;AACA,IAAA,IAAI01C,eAAe,GAAG5/B,cAAc,CAAC9V,GAAf,CAAmB,OAAnB,CAAtB,CAAA;AACA,IAAA,IAAIg8C,kBAAkB,GAAGzsC,SAAA,CAAewsC,eAAf,CAAA,GAAkCA,eAAlC,GAAoD,CAACA,eAAD,CAA7E,CAAA;AACA,IAAA,IAAIE,kBAAkB,GAAG1sC,SAAA,CAAemmC,eAAf,CAAA,GAAkCA,eAAlC,GAAoD,CAACA,eAAD,CAA7E,CAAA;IACA,IAAIwG,UAAU,GAAG,EAAjB,CAAA;IACA,IAAIC,UAAU,GAAG,EAAjB,CAAA;;AAEA,IAAA,SAASC,aAAT,CAAuBC,UAAvB,EAAmCC,mBAAnC,EAAwD/kD,GAAxD,EAA6D;AAC3D,MAAA,IAAIq+C,UAAU,GAAGr+C,GAAG,GAAG+kD,mBAAmB,CAACzxE,MAA3C,CAAA;MACAwxE,UAAU,CAACzG,UAAD,CAAV,GAAyByG,UAAU,CAACzG,UAAD,CAAV,IAA0B,EAAnD,CAAA;AACA,MAAA,OAAOA,UAAP,CAAA;AACD,KAAA;;IAED,IAAIziE,KAAK,KAAK,QAAd,EAAwB;MACtB,IAAIopE,WAAW,GAAG1C,aAAa,CAAC,CAAD,CAAb,CAAiBtK,cAAjB,EAAlB,CAAA;AACA,MAAA,IAAItmE,EAAE,GAAGkvE,KAAK,CAAClvE,EAAf,CAAA;AACA,MAAA,IAAIC,EAAE,GAAGivE,KAAK,CAACjvE,EAAf,CAAA;;AAEA,MAAA,KAAK,IAAIqC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgxE,WAAW,CAAC1xE,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C,QAAA,IAAIswE,aAAJ,EAAmB;UACjB,IAAIjG,UAAU,GAAGwG,aAAa,CAACF,UAAD,EAAaF,kBAAb,EAAiCzwE,CAAjC,CAA9B,CAAA;UACA2wE,UAAU,CAACtG,UAAD,CAAV,CAAuBhqE,IAAvB,CAA4B,IAAIgzB,MAAJ,CAAmB;AAC7CzrB,YAAAA,KAAK,EAAE;AACLlK,cAAAA,EAAE,EAAEA,EADC;AAELC,cAAAA,EAAE,EAAEA,EAFC;AAGLC,cAAAA,CAAC,EAAEozE,WAAW,CAAChxE,CAAD,CAAX,CAAeulC,KAAAA;AAHb,aAAA;AADsC,WAAnB,CAA5B,CAAA,CAAA;AAOD,SAAA;;QAED,IAAIgrC,aAAa,IAAIvwE,CAAC,GAAGgxE,WAAW,CAAC1xE,MAAZ,GAAqB,CAA9C,EAAiD;UAC/C,IAAI+qE,UAAU,GAAGwG,aAAa,CAACD,UAAD,EAAaF,kBAAb,EAAiC1wE,CAAjC,CAA9B,CAAA;UACA4wE,UAAU,CAACvG,UAAD,CAAV,CAAuBhqE,IAAvB,CAA4B,IAAIgzB,IAAJ,CAAiB;AAC3CzrB,YAAAA,KAAK,EAAE;AACLlK,cAAAA,EAAE,EAAEA,EADC;AAELC,cAAAA,EAAE,EAAEA,EAFC;AAGLklC,cAAAA,EAAE,EAAEmuC,WAAW,CAAChxE,CAAD,CAAX,CAAeulC,KAHd;AAIL3nC,cAAAA,CAAC,EAAEozE,WAAW,CAAChxE,CAAC,GAAG,CAAL,CAAX,CAAmBulC,KAAAA;AAJjB,aAAA;AADoC,WAAjB,CAA5B,CAAA,CAAA;AAQD,SAAA;AACF,OAAA;AACF,KA7BD;SA8BK;AACD,MAAA,IAAI0rC,iBAAJ,CAAA;AACA,MAAA,IAAIC,eAAe,GAAGltC,GAAA,CAAWsqC,aAAX,EAA0B,UAAU+B,aAAV,EAAyBrkD,GAAzB,EAA8B;AAC5E,QAAA,IAAIs3C,WAAW,GAAG+M,aAAa,CAACrM,cAAd,EAAlB,CAAA;QACAiN,iBAAiB,GAAGA,iBAAiB,IAAI,IAArB,GAA4B3N,WAAW,CAAChkE,MAAZ,GAAqB,CAAjD,GAAqDxD,IAAI,CAAC8iC,GAAL,CAAS0kC,WAAW,CAAChkE,MAAZ,GAAqB,CAA9B,EAAiC2xE,iBAAjC,CAAzE,CAAA;QACA,OAAOjtC,GAAA,CAAWs/B,WAAX,EAAwB,UAAUK,SAAV,EAAqB;UAClD,OAAOiJ,KAAK,CAACuC,YAAN,CAAmBxL,SAAS,CAACp+B,KAA7B,EAAoCvZ,GAApC,CAAP,CAAA;AACD,SAFM,CAAP,CAAA;AAGD,OANqB,CAAtB,CAAA;MAOA,IAAImlD,UAAU,GAAG,EAAjB,CAAA;;MAEA,KAAK,IAAInxE,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAIixE,iBAArB,EAAwCjxE,CAAC,EAAzC,EAA6C;QAC3C,IAAIsO,MAAM,GAAG,EAAb,CAAA;;AAEA,QAAA,KAAK,IAAI4W,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGopD,aAAa,CAAChvE,MAAlC,EAA0C4lB,CAAC,EAA3C,EAA+C;UAC7C5W,MAAM,CAACjO,IAAP,CAAY6wE,eAAe,CAAChsD,CAAD,CAAf,CAAmBllB,CAAnB,CAAZ,CAAA,CAAA;AACD,SAL0C;;;AAQ3C,QAAA,IAAIsO,MAAM,CAAC,CAAD,CAAV,EAAe;UACbA,MAAM,CAACjO,IAAP,CAAYiO,MAAM,CAAC,CAAD,CAAN,CAAU+W,KAAV,EAAZ,CAAA,CAAA;AACD,SAFD,MAEO;AACL,UAAA,IAAI3R,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCqE,YAAAA,OAAO,CAACC,KAAR,CAAc,yBAAA,GAA4BlY,CAA1C,CAAA,CAAA;AACD,WAAA;AACF,SAAA;;AAED,QAAA,IAAIswE,aAAJ,EAAmB;UACjB,IAAIjG,UAAU,GAAGwG,aAAa,CAACF,UAAD,EAAaF,kBAAb,EAAiCzwE,CAAjC,CAA9B,CAAA;UACA2wE,UAAU,CAACtG,UAAD,CAAV,CAAuBhqE,IAAvB,CAA4B,IAAIgzB,UAAJ,CAAqB;AAC/CzrB,YAAAA,KAAK,EAAE;AACL0G,cAAAA,MAAM,EAAEA,MAAAA;AADH,aAAA;AADwC,WAArB,CAA5B,CAAA,CAAA;AAKD,SAAA;;QAED,IAAIiiE,aAAa,IAAIY,UAArB,EAAiC;UAC/B,IAAI9G,UAAU,GAAGwG,aAAa,CAACD,UAAD,EAAaF,kBAAb,EAAiC1wE,CAAC,GAAG,CAArC,CAA9B,CAAA;UACA4wE,UAAU,CAACvG,UAAD,CAAV,CAAuBhqE,IAAvB,CAA4B,IAAIgzB,OAAJ,CAAoB;AAC9CzrB,YAAAA,KAAK,EAAE;AACL0G,cAAAA,MAAM,EAAEA,MAAM,CAAC8iE,MAAP,CAAcD,UAAd,CAAA;AADH,aAAA;AADuC,WAApB,CAA5B,CAAA,CAAA;AAKD,SAAA;;AAEDA,QAAAA,UAAU,GAAG7iE,MAAM,CAAC+W,KAAP,EAAA,CAAeohB,OAAf,EAAb,CAAA;AACD,OAAA;AACF,KAAA;;AAEH,IAAA,IAAIxY,SAAS,GAAGqc,cAAc,CAAC0B,YAAf,EAAhB,CAAA;AACA,IAAA,IAAIglB,SAAS,GAAGzmB,cAAc,CAACgC,YAAf,EAAhB,CA5GiE;;IA8GjEvI,MAAA,CAAY4sC,UAAZ,EAAwB,UAAUA,UAAV,EAAsB5kD,GAAtB,EAA2B;MACjD,IAAK2B,CAAAA,KAAL,CAAWO,GAAX,CAAemF,SAAA,CAAkBu9C,UAAlB,EAA8B;AAC3ChwE,QAAAA,KAAK,EAAEojC,QAAA,CAAgB;AACrBjjC,UAAAA,MAAM,EAAE,MADa;AAErBF,UAAAA,IAAI,EAAE6vE,kBAAkB,CAAC1kD,GAAG,GAAG0kD,kBAAkB,CAACpxE,MAA1B,CAAA;SAFnB,EAGJ0xD,SAHI,CADoC;AAK3Cl+B,QAAAA,MAAM,EAAE,IAAA;AALmC,OAA9B,CAAf,CAAA,CAAA;AAOD,KARD,EAQG,IARH,CAAA,CAAA;IASAkR,MAAA,CAAY2sC,UAAZ,EAAwB,UAAUA,UAAV,EAAsB3kD,GAAtB,EAA2B;MACjD,IAAK2B,CAAAA,KAAL,CAAWO,GAAX,CAAemF,SAAA,CAAkBs9C,UAAlB,EAA8B;AAC3C/vE,QAAAA,KAAK,EAAEojC,QAAA,CAAgB;AACrBnjC,UAAAA,IAAI,EAAE,MADe;AAErBE,UAAAA,MAAM,EAAE0vE,kBAAkB,CAACzkD,GAAG,GAAGykD,kBAAkB,CAACnxE,MAA1B,CAAA;SAFrB,EAGJ2uB,SAHI,CADoC;AAK3C6E,QAAAA,MAAM,EAAE,IAAA;AALmC,OAA9B,CAAf,CAAA,CAAA;AAOD,KARD,EAQG,IARH,CAAA,CAAA;GAvHF,CAAA;;EAkIAm6C,SAAS,CAAC59D,IAAV,GAAiB,OAAjB,CAAA;AACA,EAAA,OAAO49D,SAAP,CAAA;AACD,CA7KD,CA6KExD,aA7KF,CAFA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAI4H,aAAa;AACjB;AACA,UAAU7wD,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC4wD,aAAD,EAAgB7wD,MAAhB,CAAT,CAAA;;AAEA,EAAA,SAAS6wD,aAAT,CAAuBh3C,GAAvB,EAA4BzX,KAA5B,EAAmC0uD,YAAnC,EAAiD;AAC/C,IAAA,IAAI5wD,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB0Z,GAAlB,EAAuBzX,KAAvB,EAA8B0uD,YAA9B,KAA+C,IAA3D,CAAA;;IAEA5wD,KAAK,CAACrR,IAAN,GAAa,OAAb,CAAA;IACAqR,KAAK,CAAC+0B,KAAN,GAAc,CAAd,CAAA;IACA/0B,KAAK,CAAC1d,IAAN,GAAa,EAAb,CAAA;AACA,IAAA,OAAO0d,KAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAO2wD,aAAP,CAAA;AACD,CAbD,CAaEva,IAbF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgCA,IAAIya,KAAK;AACT;AACA,YAAY;AACV,EAAA,SAASA,KAAT,CAAetB,UAAf,EAA2B5lC,OAA3B,EAAoCxxB,GAApC,EAAyC;AACvC;AACJ;AACA;AACA;IACI,IAAK+hB,CAAAA,UAAL,GAAkB,EAAlB,CAAA;IACA,IAAKqb,CAAAA,MAAL,GAAcg6B,UAAd,CAAA;AACA,IAAA,IAAA,CAAKuB,cAAL,GAAsBtwE,GAAG,CAAC+uE,UAAU,CAACF,kBAAX,EAAD,EAAkC,UAAU0B,cAAV,EAA0BzlD,GAA1B,EAA+B;MACxF,IAAIqO,GAAG,GAAG,YAAA,GAAerO,GAAzB,CAAA;MACA,IAAIqkD,aAAa,GAAG,IAAIgB,aAAJ,CAAkBh3C,GAAlB,EAAuB,IAAIq+B,aAAJ,EAAvB;OAApB,CAAA;MAEA2X,aAAa,CAACrtE,IAAd,GAAqByuE,cAAc,CAACh9C,GAAf,CAAmB,MAAnB,CAArB,CAJwF;;MAMxF47C,aAAa,CAAC93B,KAAd,GAAsBk5B,cAAtB,CAAA;MACAA,cAAc,CAACxrC,IAAf,GAAsBoqC,aAAtB,CAAA;AACA,MAAA,IAAA,CAAKz1C,UAAL,CAAgBv6B,IAAhB,CAAqBg6B,GAArB,CAAA,CAAA;AACA,MAAA,OAAOg2C,aAAP,CAAA;KATuB,EAUtB,IAVsB,CAAzB,CAAA;AAWA,IAAA,IAAA,CAAKv0D,MAAL,CAAYm0D,UAAZ,EAAwBp3D,GAAxB,CAAA,CAAA;AACD,GAAA;;AAED04D,EAAAA,KAAK,CAACj1E,SAAN,CAAgB6vE,gBAAhB,GAAmC,YAAY;AAC7C,IAAA,OAAO,KAAKqF,cAAZ,CAAA;GADF,CAAA;;EAIAD,KAAK,CAACj1E,SAAN,CAAgBq/B,WAAhB,GAA8B,UAAUH,KAAV,EAAiBk2C,cAAjB,EAAiC;AAC7D,IAAA,IAAIrB,aAAa,GAAG,IAAA,CAAKmB,cAAL,CAAoBE,cAApB,CAApB,CAAA;IACA,OAAO,IAAA,CAAKvC,YAAL,CAAkBkB,aAAa,CAAC/pC,WAAd,CAA0B9K,KAA1B,CAAlB,EAAoDk2C,cAApD,CAAP,CAAA;AACD,GAHD,CA1BU;;;EAgCVH,KAAK,CAACj1E,SAAN,CAAgB6yE,YAAhB,GAA+B,UAAU5pC,KAAV,EAAiBmsC,cAAjB,EAAiC;AAC9D,IAAA,IAAIrB,aAAa,GAAG,IAAA,CAAKmB,cAAL,CAAoBE,cAApB,CAApB,CAAA;AACA,IAAA,IAAIj8B,KAAK,GAAG46B,aAAa,CAAC56B,KAA1B,CAAA;AACA,IAAA,IAAI14C,CAAC,GAAG,IAAKW,CAAAA,EAAL,GAAU6nC,KAAK,GAAGzpC,IAAI,CAACG,GAAL,CAASw5C,KAAT,CAA1B,CAAA;AACA,IAAA,IAAIz4C,CAAC,GAAG,IAAKW,CAAAA,EAAL,GAAU4nC,KAAK,GAAGzpC,IAAI,CAACC,GAAL,CAAS05C,KAAT,CAA1B,CAAA;AACA,IAAA,OAAO,CAAC14C,CAAD,EAAIC,CAAJ,CAAP,CAAA;GALF,CAAA;;AAQAu0E,EAAAA,KAAK,CAACj1E,SAAN,CAAgB85D,WAAhB,GAA8B,UAAUjyB,EAAV,EAAc;IAC1C,IAAIrN,EAAE,GAAGqN,EAAE,CAAC,CAAD,CAAF,GAAQ,KAAKzmC,EAAtB,CAAA;IACA,IAAIq5B,EAAE,GAAGoN,EAAE,CAAC,CAAD,CAAF,GAAQ,KAAKxmC,EAAtB,CAAA;AACA,IAAA,IAAIijD,MAAM,GAAG9kD,IAAI,CAAC0kC,IAAL,CAAU1J,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAzB,CAAb,CAAA;AACAD,IAAAA,EAAE,IAAI8pB,MAAN,CAAA;AACA7pB,IAAAA,EAAE,IAAI6pB,MAAN,CAAA;AACA,IAAA,IAAI+wB,MAAM,GAAG71E,IAAI,CAAC8qD,KAAL,CAAW,CAAC7vB,EAAZ,EAAgBD,EAAhB,CAAb,CAN0C;AAO1C;;IAEA,IAAI86C,aAAa,GAAG/tD,QAApB,CAAA;AACA,IAAA,IAAIguD,WAAJ,CAAA;IACA,IAAIC,cAAc,GAAG,CAAC,CAAtB,CAAA;;AAEA,IAAA,KAAK,IAAI9xE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAKwxE,CAAAA,cAAL,CAAoBlyE,MAAxC,EAAgDU,CAAC,EAAjD,EAAqD;AACnD,MAAA,IAAIqwE,aAAa,GAAG,IAAA,CAAKmB,cAAL,CAAoBxxE,CAApB,CAApB,CAAA;MACA,IAAIk4B,IAAI,GAAGp8B,IAAI,CAACyC,GAAL,CAASozE,MAAM,GAAGtB,aAAa,CAAC56B,KAAhC,CAAX,CAAA;;MAEA,IAAIvd,IAAI,GAAG05C,aAAX,EAA0B;AACxBC,QAAAA,WAAW,GAAGxB,aAAd,CAAA;AACAyB,QAAAA,cAAc,GAAG9xE,CAAjB,CAAA;AACA4xE,QAAAA,aAAa,GAAG15C,IAAhB,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAO,CAAC45C,cAAD,EAAiB,EAAED,WAAW,IAAIA,WAAW,CAACxb,WAAZ,CAAwBzV,MAAxB,CAAjB,CAAjB,CAAP,CAAA;GAxBF,CAAA;;EA2BA2wB,KAAK,CAACj1E,SAAN,CAAgBwf,MAAhB,GAAyB,UAAUm0D,UAAV,EAAsBp3D,GAAtB,EAA2B;AAClD,IAAA,IAAI8nC,MAAM,GAAGsvB,UAAU,CAACx7C,GAAX,CAAe,QAAf,CAAb,CAAA;AACA,IAAA,IAAIzR,SAAS,GAAGnK,GAAG,CAACmG,QAAJ,EAAhB,CAAA;AACA,IAAA,IAAIiE,UAAU,GAAGpK,GAAG,CAACoG,SAAJ,EAAjB,CAAA;IACA,IAAI8yD,QAAQ,GAAGj2E,IAAI,CAAC8iC,GAAL,CAAS5b,SAAT,EAAoBC,UAApB,CAAA,GAAkC,CAAjD,CAAA;AACA,IAAA,IAAA,CAAKvlB,EAAL,GAAUs0E,YAAA,CAAwBrxB,MAAM,CAAC,CAAD,CAA9B,EAAmC39B,SAAnC,CAAV,CAAA;AACA,IAAA,IAAA,CAAKrlB,EAAL,GAAUq0E,YAAA,CAAwBrxB,MAAM,CAAC,CAAD,CAA9B,EAAmC19B,UAAnC,CAAV,CAAA;AACA,IAAA,IAAA,CAAKplB,UAAL,GAAkBoyE,UAAU,CAACx7C,GAAX,CAAe,YAAf,CAA+B34B,GAAAA,IAAI,CAACI,EAApC,GAAyC,GAA3D,CAPkD;;AASlD,IAAA,IAAI0kD,MAAM,GAAGqvB,UAAU,CAACx7C,GAAX,CAAe,QAAf,CAAb,CAAA;;IAEA,IAAI7qB,QAAQ,CAACg3C,MAAD,CAAR,IAAoB50C,QAAQ,CAAC40C,MAAD,CAAhC,EAA0C;AACxCA,MAAAA,MAAM,GAAG,CAAC,CAAD,EAAIA,MAAJ,CAAT,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAK/d,EAAL,GAAUmvC,YAAA,CAAwBpxB,MAAM,CAAC,CAAD,CAA9B,EAAmCmxB,QAAnC,CAAV,CAAA;AACA,IAAA,IAAA,CAAKn0E,CAAL,GAASo0E,YAAA,CAAwBpxB,MAAM,CAAC,CAAD,CAA9B,EAAmCmxB,QAAnC,CAAT,CAAA;IACA/oE,MAAI,CAAC,KAAKwoE,cAAN,EAAsB,UAAUnB,aAAV,EAAyBrkD,GAAzB,EAA8B;AACtDqkD,MAAAA,aAAa,CAAC5W,SAAd,CAAwB,KAAK52B,EAA7B,EAAiC,KAAKjlC,CAAtC,CAAA,CAAA;AACA,MAAA,IAAI63C,KAAK,GAAG,IAAA,CAAK53C,UAAL,GAAkBmuB,GAAG,GAAGlwB,IAAI,CAACI,EAAX,GAAgB,CAAhB,GAAoB,IAAA,CAAKs1E,cAAL,CAAoBlyE,MAAtE,CAFsD;;AAItDm2C,MAAAA,KAAK,GAAG35C,IAAI,CAAC8qD,KAAL,CAAW9qD,IAAI,CAACC,GAAL,CAAS05C,KAAT,CAAX,EAA4B35C,IAAI,CAACG,GAAL,CAASw5C,KAAT,CAA5B,CAAR,CAAA;MACA46B,aAAa,CAAC56B,KAAd,GAAsBA,KAAtB,CAAA;KALE,EAMD,IANC,CAAJ,CAAA;GAjBF,CAAA;;EA0BA87B,KAAK,CAACj1E,SAAN,CAAgBi8B,MAAhB,GAAyB,UAAU8R,OAAV,EAAmBxxB,GAAnB,EAAwB;IAC/C,IAAIy1D,aAAa,GAAG,IAAA,CAAKkD,cAAzB,CAAA;IACA,IAAIvB,UAAU,GAAG,IAAA,CAAKh6B,MAAtB,CAAA;AACAjtC,IAAAA,MAAI,CAACslE,aAAD,EAAgB,UAAU+B,aAAV,EAAyB;MAC3CA,aAAa,CAACztD,KAAd,CAAoB62C,SAApB,CAA8B51C,QAA9B,EAAwC,CAACA,QAAzC,CAAA,CAAA;AACD,KAFG,CAAJ,CAAA;IAGAwmB,OAAO,CAAC0W,gBAAR,CAAyB,OAAzB,EAAkC,UAAUkxB,WAAV,EAAuBjmD,GAAvB,EAA4B;AAC5D,MAAA,IAAIimD,WAAW,CAACx9C,GAAZ,CAAgB,kBAAhB,CAAA,KAAwC,OAAxC;AAAA,SACD4V,OAAO,CAACw7B,YAAR,CAAqB,OAArB,EAA8BoM,WAAW,CAACx9C,GAAZ,CAAgB,YAAhB,CAA9B,CAAA,KAAiEw7C,UADpE,EACgF;AAC9E,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIz/C,IAAI,GAAGyhD,WAAW,CAAC5jD,OAAZ,EAAX,CAAA;AACArlB,MAAAA,MAAI,CAACslE,aAAD,EAAgB,UAAU+B,aAAV,EAAyB;AAC3CA,QAAAA,aAAa,CAACztD,KAAd,CAAoB46C,mBAApB,CAAwChtC,IAAxC,EAA8CA,IAAI,CAACgK,YAAL,CAAkB61C,aAAa,CAACh2C,GAAhC,CAA9C,CAAA,CAAA;AACD,OAFG,CAAJ,CAAA;AAGD,KAVD,EAUG,IAVH,CAAA,CAAA;AAWA,IAAA,IAAIg3B,WAAW,GAAG4e,UAAU,CAACx7C,GAAX,CAAe,aAAf,CAAlB,CAAA;AACA,IAAA,IAAIy9C,UAAU,GAAG,IAAIxZ,aAAJ,EAAjB,CAAA;AACAwZ,IAAAA,UAAU,CAACzY,SAAX,CAAqB,CAArB,EAAwBpI,WAAxB,CAAA,CAAA;AACA6gB,IAAAA,UAAU,CAACnY,WAAX,CAAuB,CAAvB,EApB+C;;AAsB/C/wD,IAAAA,MAAI,CAACslE,aAAD,EAAgB,UAAU+B,aAAV,EAAyBrkD,GAAzB,EAA8B;MAChDusC,eAAe,CAAC8X,aAAa,CAACztD,KAAf,EAAsBytD,aAAa,CAAC93B,KAApC,EAA2C25B,UAA3C,CAAf,CAAA;AACD,KAFG,CAAJ,CAAA;GAtBF,CAAA;;EA2BAX,KAAK,CAACj1E,SAAN,CAAgBigE,cAAhB,GAAiC,UAAUlyB,OAAV,EAAmBmyB,MAAnB,EAA2BhhC,KAA3B,EAAkC;IACjEvjB,OAAO,CAAC2tB,IAAR,CAAa,kBAAb,CAAA,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;GAFF,CAAA;;EAKA2rC,KAAK,CAACj1E,SAAN,CAAgBogE,gBAAhB,GAAmC,UAAUryB,OAAV,EAAmBmyB,MAAnB,EAA2B2V,KAA3B,EAAkC;IACnEl6D,OAAO,CAAC2tB,IAAR,CAAa,kBAAb,CAAA,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;GAFF,CAAA;;AAKA2rC,EAAAA,KAAK,CAACj1E,SAAN,CAAgB2sD,YAAhB,GAA+B,UAAU/xB,KAAV,EAAiB;IAC9Cjf,OAAO,CAAC2tB,IAAR,CAAa,kBAAb,CAAA,CAAA;AACA,IAAA,OAAO,KAAP,CAAA;GAFF,CAAA;;AAKA2rC,EAAAA,KAAK,CAAC3T,MAAN,GAAe,UAAUvzB,OAAV,EAAmBxxB,GAAnB,EAAwB;IACrC,IAAIu5D,SAAS,GAAG,EAAhB,CAAA;AACA/nC,IAAAA,OAAO,CAAC4V,aAAR,CAAsB,OAAtB,EAA+B,UAAUgwB,UAAV,EAAsB;MACnD,IAAIrD,KAAK,GAAG,IAAI2E,KAAJ,CAAUtB,UAAV,EAAsB5lC,OAAtB,EAA+BxxB,GAA/B,CAAZ,CAAA;MACAu5D,SAAS,CAAC/xE,IAAV,CAAeusE,KAAf,CAAA,CAAA;MACAqD,UAAU,CAAC5iD,gBAAX,GAA8Bu/C,KAA9B,CAAA;KAHF,CAAA,CAAA;AAKAviC,IAAAA,OAAO,CAAC0W,gBAAR,CAAyB,OAAzB,EAAkC,UAAUkxB,WAAV,EAAuB;AACvD,MAAA,IAAIA,WAAW,CAACx9C,GAAZ,CAAgB,kBAAhB,CAAA,KAAwC,OAA5C,EAAqD;AACnD;AACA;AACAw9C,QAAAA,WAAW,CAAC5kD,gBAAZ,GAA+B+kD,SAAS,CAACH,WAAW,CAACx9C,GAAZ,CAAgB,YAAhB,CAAiC,IAAA,CAAlC,CAAxC,CAAA;AACD,OAAA;KALH,CAAA,CAAA;AAOA,IAAA,OAAO29C,SAAP,CAAA;GAdF,CAAA;AAgBA;AACF;AACA;;;EAGEb,KAAK,CAAC32C,UAAN,GAAmB,EAAnB,CAAA;AACA,EAAA,OAAO22C,KAAP,CAAA;AACD,CA9JD,EAFA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAAS7xD,SAAT,CAAiBC,SAAjB,EAA4B;AACjCA,EAAAA,SAAS,CAACmsD,wBAAV,CAAmC,OAAnC,EAA4CyF,KAA5C,CAAA,CAAA;EACA5xD,SAAS,CAAC6zC,sBAAV,CAAiC8b,UAAjC,CAAA,CAAA;EACA3vD,SAAS,CAACksD,qBAAV,CAAgCoB,SAAhC,CAAA,CAAA;EACAttD,SAAS,CAACqyB,cAAV,CAAyB;AACvB7E,IAAAA,UAAU,EAAE,OADW;IAEvB5wC,KAAK,EAAE,SAAUy2B,KAAAA,CAAAA,WAAV,EAAuB;AAC5B,MAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAD4B;;AAG5BmC,MAAAA,IAAI,CAACxnB,IAAL,CAAU,UAAUgjB,GAAV,EAAe;AACvBwE,QAAAA,IAAI,CAAC6hD,aAAL,CAAmBrmD,GAAnB,EAAwB,YAAxB,EAAsC,WAAtC,CAAA,CAAA;AACD,OAFD,EAH4B;;AAO5BwE,MAAAA,IAAI,CAACyhB,SAAL,CAAe,YAAf,EAA6B,WAA7B,CAAA,CAAA;AACD,KAAA;GAVH,CAAA,CAAA;AAYD;;AC7DD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCO,SAASvyB,SAAT,CAAiBC,SAAjB,EAA4B;EACjCqsD,GAAG,CAACsG,SAAD,CAAH,CAAA;EACA3yD,SAAS,CAACgyB,iBAAV,CAA4Bs7B,WAA5B,CAAA,CAAA;EACAttD,SAAS,CAACiyB,mBAAV,CAA8Bo8B,gBAA9B,CAAA,CAAA;EACAruD,SAAS,CAACmyB,cAAV,CAAyBo6B,WAAzB,CAAA,CAAA;AACAvsD,EAAAA,SAAS,CAACuyB,iBAAV,CAA4B4P,YAAU,CAAC,OAAD,CAAtC,CAAA,CAAA;EACAniC,SAAS,CAACosD,oBAAV,CAA+BwG,mBAA/B,CAAA,CAAA;AACD;;ACxDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA,IAAIC,IAAI,GAAG,yBAAX,CAAA;AACO,SAASC,IAAT,CAAcC,EAAd,EAAkBC,WAAlB,EAA+BC,OAA/B,EAAwC;AAC7C,EAAA,IAAIziC,KAAK,GAAGC,QAAQ,CAACsiC,EAAD,CAApB,CAAA;AACAviC,EAAAA,KAAK,CAACwiC,WAAD,CAAL,GAAqBC,OAArB,CAAA;AACD,CAAA;AACM,SAASC,OAAT,CAAiBH,EAAjB,EAAqBC,WAArB,EAAkCC,OAAlC,EAA2C;AAChD,EAAA,IAAIziC,KAAK,GAAGC,QAAQ,CAACsiC,EAAD,CAApB,CAAA;AACA,EAAA,IAAII,IAAI,GAAG3iC,KAAK,CAACwiC,WAAD,CAAhB,CAAA;;EAEA,IAAIG,IAAI,KAAKF,OAAb,EAAsB;AACpBziC,IAAAA,KAAK,CAACwiC,WAAD,CAAL,GAAqB,IAArB,CAAA;AACD,GAAA;AACF,CAAA;AACM,SAASI,OAAT,CAAiBL,EAAjB,EAAqBC,WAArB,EAAkC;EACvC,OAAO,CAAC,CAACviC,QAAQ,CAACsiC,EAAD,CAAR,CAAaC,WAAb,CAAT,CAAA;AACD,CAAA;;AAED,SAASviC,QAAT,CAAkBsiC,EAAlB,EAAsB;EACpB,OAAOA,EAAE,CAACF,IAAD,CAAF,KAAaE,EAAE,CAACF,IAAD,CAAF,GAAW,EAAxB,CAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGAQ,cAAA,CAAuB;AACrB3jE,EAAAA,IAAI,EAAE,kBADe;AAErBgwC,EAAAA,KAAK,EAAE,mBAFc;AAGrB9mB,EAAAA,MAAM,EAAE,QAAA;AAHa,CAAvB,EAIG06C,IAJH,CAAA;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BA,CAAA;;AAEA,IAAIC,cAAc;AAClB;AACA,UAAU1yD,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACyyD,cAAD,EAAiB1yD,MAAjB,CAAT,CAAA;;EAEA,SAAS0yD,cAAT,CAAwBR,EAAxB,EAA4B;IAC1B,IAAIhyD,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,KAAqB,IAAjC,CAAA;;AAEAD,IAAAA,KAAK,CAACyyD,GAAN,GAAYT,EAAZ,CAH0B;;IAK1B,IAAIU,gBAAgB,GAAGC,MAAI,CAAC3yD,KAAK,CAAC4yD,iBAAP,EAA0B5yD,KAA1B,CAA3B,CAAA;IACA,IAAI6yD,gBAAgB,GAAGF,MAAI,CAAC3yD,KAAK,CAAC8yD,iBAAP,EAA0B9yD,KAA1B,CAA3B,CAAA;IACA,IAAI+yD,cAAc,GAAGJ,MAAI,CAAC3yD,KAAK,CAACgzD,eAAP,EAAwBhzD,KAAxB,CAAzB,CAAA;IACA,IAAIizD,iBAAiB,GAAGN,MAAI,CAAC3yD,KAAK,CAACkzD,kBAAP,EAA2BlzD,KAA3B,CAA5B,CAAA;IACA,IAAImzD,YAAY,GAAGR,MAAI,CAAC3yD,KAAK,CAACozD,aAAP,EAAsBpzD,KAAtB,CAAvB,CAAA;AACA;AACJ;AACA;AACA;AACA;;AAEIA,IAAAA,KAAK,CAACqzD,MAAN,GAAe,UAAUC,WAAV,EAAuBtmD,GAAvB,EAA4B;AACzC;AACA,MAAA,IAAA,CAAKumD,OAAL,EAAA,CAAA;MACA,IAAKC,CAAAA,IAAL,GAAY7V,QAAQ,CAACzoD,OAAK,CAAC8X,GAAD,CAAL,IAAc,EAAf,EAAmB;AACrCymD,QAAAA,gBAAgB,EAAE,IADmB;AAErCC,QAAAA,eAAe,EAAE,IAFoB;AAGrC;AACAC,QAAAA,gBAAgB,EAAE,KAJmB;AAKrCC,QAAAA,uBAAuB,EAAE,IAAA;AALY,OAAnB,CAApB,CAAA;;MAQA,IAAIN,WAAW,IAAI,IAAnB,EAAyB;AACvBA,QAAAA,WAAW,GAAG,IAAd,CAAA;AACD,OAAA;;MAED,IAAIA,WAAW,KAAK,IAAhB,IAAwBA,WAAW,KAAK,MAAxC,IAAkDA,WAAW,KAAK,KAAtE,EAA6E;AAC3EtB,QAAAA,EAAE,CAAC54B,EAAH,CAAM,WAAN,EAAmBs5B,gBAAnB,CAAA,CAAA;AACAV,QAAAA,EAAE,CAAC54B,EAAH,CAAM,WAAN,EAAmBy5B,gBAAnB,CAAA,CAAA;AACAb,QAAAA,EAAE,CAAC54B,EAAH,CAAM,SAAN,EAAiB25B,cAAjB,CAAA,CAAA;AACD,OAAA;;MAED,IAAIO,WAAW,KAAK,IAAhB,IAAwBA,WAAW,KAAK,OAAxC,IAAmDA,WAAW,KAAK,MAAvE,EAA+E;AAC7EtB,QAAAA,EAAE,CAAC54B,EAAH,CAAM,YAAN,EAAoB65B,iBAApB,CAAA,CAAA;AACAjB,QAAAA,EAAE,CAAC54B,EAAH,CAAM,OAAN,EAAe+5B,YAAf,CAAA,CAAA;AACD,OAAA;KAxBH,CAAA;;IA2BAnzD,KAAK,CAACuzD,OAAN,GAAgB,YAAY;AAC1BvB,MAAAA,EAAE,CAACh3B,GAAH,CAAO,WAAP,EAAoB03B,gBAApB,CAAA,CAAA;AACAV,MAAAA,EAAE,CAACh3B,GAAH,CAAO,WAAP,EAAoB63B,gBAApB,CAAA,CAAA;AACAb,MAAAA,EAAE,CAACh3B,GAAH,CAAO,SAAP,EAAkB+3B,cAAlB,CAAA,CAAA;AACAf,MAAAA,EAAE,CAACh3B,GAAH,CAAO,YAAP,EAAqBi4B,iBAArB,CAAA,CAAA;AACAjB,MAAAA,EAAE,CAACh3B,GAAH,CAAO,OAAP,EAAgBm4B,YAAhB,CAAA,CAAA;KALF,CAAA;;AAQA,IAAA,OAAOnzD,KAAP,CAAA;AACD,GAAA;;AAEDwyD,EAAAA,cAAc,CAAC52E,SAAf,CAAyBi4E,UAAzB,GAAsC,YAAY;AAChD,IAAA,OAAO,KAAKC,SAAZ,CAAA;GADF,CAAA;;AAIAtB,EAAAA,cAAc,CAAC52E,SAAf,CAAyBm4E,UAAzB,GAAsC,YAAY;AAChD,IAAA,OAAO,KAAKC,SAAZ,CAAA;GADF,CAAA;;AAIAxB,EAAAA,cAAc,CAAC52E,SAAf,CAAyBq4E,iBAAzB,GAA6C,UAAUC,cAAV,EAA0B;IACrE,IAAKA,CAAAA,cAAL,GAAsBA,cAAtB,CAAA;GADF,CAAA;;AAIA1B,EAAAA,cAAc,CAAC52E,SAAf,CAAyB4iB,OAAzB,GAAmC,YAAY;AAC7C,IAAA,IAAA,CAAK+0D,OAAL,EAAA,CAAA;GADF,CAAA;;AAIAf,EAAAA,cAAc,CAAC52E,SAAf,CAAyBg3E,iBAAzB,GAA6C,UAAU1zE,CAAV,EAAa;AACxD,IAAA,IAAIi1E,kCAAA,CAA6Cj1E,CAA7C,CAAmDA,IAAAA,CAAC,CAACuI,MAAF,IAAYvI,CAAC,CAACuI,MAAF,CAASwqB,SAA5E,EAAuF;AACrF,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI51B,CAAC,GAAG6C,CAAC,CAAC2S,OAAV,CAAA;AACA,IAAA,IAAIvV,CAAC,GAAG4C,CAAC,CAAC6S,OAAV,CANwD;AAOxD;;AAEA,IAAA,IAAI,IAAKmiE,CAAAA,cAAL,IAAuB,IAAA,CAAKA,cAAL,CAAoBh1E,CAApB,EAAuB7C,CAAvB,EAA0BC,CAA1B,CAA3B,EAAyD;MACvD,IAAK83E,CAAAA,EAAL,GAAU/3E,CAAV,CAAA;MACA,IAAKg4E,CAAAA,EAAL,GAAU/3E,CAAV,CAAA;MACA,IAAKw3E,CAAAA,SAAL,GAAiB,IAAjB,CAAA;AACD,KAAA;GAbH,CAAA;;AAgBAtB,EAAAA,cAAc,CAAC52E,SAAf,CAAyBk3E,iBAAzB,GAA6C,UAAU5zE,CAAV,EAAa;AACxD,IAAA,IAAI,CAAC,IAAA,CAAK40E,SAAN,IAAmB,CAACQ,mBAAmB,CAAC,iBAAD,EAAoBp1E,CAApB,EAAuB,IAAA,CAAKs0E,IAA5B,CAAvC,IAA4Et0E,CAAC,CAACq1E,YAAF,KAAmB,OAA/F,IAA0GC,OAAA,CAAyB,IAAK/B,CAAAA,GAA9B,EAAmC,WAAnC,CAA9G,EAA+J;AAC7J,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIp2E,CAAC,GAAG6C,CAAC,CAAC2S,OAAV,CAAA;AACA,IAAA,IAAIvV,CAAC,GAAG4C,CAAC,CAAC6S,OAAV,CAAA;IACA,IAAI0iE,IAAI,GAAG,IAAA,CAAKL,EAAhB,CAAA;IACA,IAAIM,IAAI,GAAG,IAAA,CAAKL,EAAhB,CAAA;AACA,IAAA,IAAIj+C,EAAE,GAAG/5B,CAAC,GAAGo4E,IAAb,CAAA;AACA,IAAA,IAAIp+C,EAAE,GAAG/5B,CAAC,GAAGo4E,IAAb,CAAA;IACA,IAAKN,CAAAA,EAAL,GAAU/3E,CAAV,CAAA;IACA,IAAKg4E,CAAAA,EAAL,GAAU/3E,CAAV,CAAA;IACA,IAAKk3E,CAAAA,IAAL,CAAUI,uBAAV,IAAqCO,IAAA,CAAej1E,CAAC,CAACy/C,KAAjB,CAArC,CAAA;IACAg2B,SAAO,CAAC,IAAD,EAAO,KAAP,EAAc,iBAAd,EAAiCz1E,CAAjC,EAAoC;AACzCk3B,MAAAA,EAAE,EAAEA,EADqC;AAEzCC,MAAAA,EAAE,EAAEA,EAFqC;AAGzCo+C,MAAAA,IAAI,EAAEA,IAHmC;AAIzCC,MAAAA,IAAI,EAAEA,IAJmC;AAKzCvyB,MAAAA,IAAI,EAAE9lD,CALmC;AAMzCu4E,MAAAA,IAAI,EAAEt4E,CANmC;AAOzCg4E,MAAAA,mBAAmB,EAAE,IAAA;AAPoB,KAApC,CAAP,CAAA;GAdF,CAAA;;AAyBA9B,EAAAA,cAAc,CAAC52E,SAAf,CAAyBo3E,eAAzB,GAA2C,UAAU9zE,CAAV,EAAa;AACtD,IAAA,IAAI,CAACi1E,kCAAA,CAA6Cj1E,CAA7C,CAAL,EAAsD;MACpD,IAAK40E,CAAAA,SAAL,GAAiB,KAAjB,CAAA;AACD,KAAA;GAHH,CAAA;;AAMAtB,EAAAA,cAAc,CAAC52E,SAAf,CAAyBs3E,kBAAzB,GAA8C,UAAUh0E,CAAV,EAAa;IACzD,IAAI21E,UAAU,GAAGP,mBAAmB,CAAC,kBAAD,EAAqBp1E,CAArB,EAAwB,IAAKs0E,CAAAA,IAA7B,CAApC,CAAA;IACA,IAAIsB,UAAU,GAAGR,mBAAmB,CAAC,kBAAD,EAAqBp1E,CAArB,EAAwB,IAAKs0E,CAAAA,IAA7B,CAApC,CAAA;AACA,IAAA,IAAIuB,UAAU,GAAG71E,CAAC,CAAC61E,UAAnB,CAAA;AACA,IAAA,IAAIC,kBAAkB,GAAG55E,IAAI,CAACyC,GAAL,CAASk3E,UAAT,CAAzB,CAAA;AACA,IAAA,IAAIptE,OAAO,GAAGzI,CAAC,CAAC2S,OAAhB,CAAA;AACA,IAAA,IAAIjK,OAAO,GAAG1I,CAAC,CAAC6S,OAAhB,CANyD;;IAQzD,IAAIgjE,UAAU,KAAK,CAAf,IAAoB,CAACF,UAAD,IAAe,CAACC,UAAxC,EAAoD;AAClD,MAAA,OAAA;AACD,KAVwD;AAWzD;AACA;;;AAGA,IAAA,IAAID,UAAJ,EAAgB;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAA,IAAII,MAAM,GAAGD,kBAAkB,GAAG,CAArB,GAAyB,GAAzB,GAA+BA,kBAAkB,GAAG,CAArB,GAAyB,GAAzB,GAA+B,GAA3E,CAAA;MACA,IAAI9yD,KAAK,GAAG6yD,UAAU,GAAG,CAAb,GAAiBE,MAAjB,GAA0B,CAAA,GAAIA,MAA1C,CAAA;MACAC,sBAAsB,CAAC,IAAD,EAAO,MAAP,EAAe,kBAAf,EAAmCh2E,CAAnC,EAAsC;AAC1DgjB,QAAAA,KAAK,EAAEA,KADmD;AAE1Dva,QAAAA,OAAO,EAAEA,OAFiD;AAG1DC,QAAAA,OAAO,EAAEA,OAHiD;AAI1D0sE,QAAAA,mBAAmB,EAAE,IAAA;AAJqC,OAAtC,CAAtB,CAAA;AAMD,KAAA;;AAED,IAAA,IAAIQ,UAAJ,EAAgB;AACd;MACA,IAAIK,QAAQ,GAAG/5E,IAAI,CAACyC,GAAL,CAASk3E,UAAT,CAAf,CAFc;;MAId,IAAIK,WAAW,GAAG,CAACL,UAAU,GAAG,CAAb,GAAiB,CAAjB,GAAqB,CAAC,CAAvB,KAA6BI,QAAQ,GAAG,CAAX,GAAe,GAAf,GAAqBA,QAAQ,GAAG,CAAX,GAAe,IAAf,GAAsB,IAAxE,CAAlB,CAAA;MACAD,sBAAsB,CAAC,IAAD,EAAO,YAAP,EAAqB,kBAArB,EAAyCh2E,CAAzC,EAA4C;AAChEk2E,QAAAA,WAAW,EAAEA,WADmD;AAEhEztE,QAAAA,OAAO,EAAEA,OAFuD;AAGhEC,QAAAA,OAAO,EAAEA,OAHuD;AAIhE0sE,QAAAA,mBAAmB,EAAE,IAAA;AAJ2C,OAA5C,CAAtB,CAAA;AAMD,KAAA;GA7CH,CAAA;;AAgDA9B,EAAAA,cAAc,CAAC52E,SAAf,CAAyBw3E,aAAzB,GAAyC,UAAUl0E,CAAV,EAAa;IACpD,IAAIs1E,OAAA,CAAyB,KAAK/B,GAA9B,EAAmC,WAAnC,CAAJ,EAAqD;AACnD,MAAA,OAAA;AACD,KAAA;;IAED,IAAIvwD,KAAK,GAAGhjB,CAAC,CAACm2E,UAAF,GAAe,CAAf,GAAmB,GAAnB,GAAyB,CAAA,GAAI,GAAzC,CAAA;IACAH,sBAAsB,CAAC,IAAD,EAAO,MAAP,EAAe,IAAf,EAAqBh2E,CAArB,EAAwB;AAC5CgjB,MAAAA,KAAK,EAAEA,KADqC;MAE5Cva,OAAO,EAAEzI,CAAC,CAACo2E,MAFiC;MAG5C1tE,OAAO,EAAE1I,CAAC,CAACq2E,MAHiC;AAI5CjB,MAAAA,mBAAmB,EAAE,IAAA;AAJuB,KAAxB,CAAtB,CAAA;GANF,CAAA;;AAcA,EAAA,OAAO9B,cAAP,CAAA;AACD,CAvLD,CAuLExsD,QAvLF,CAFA,CAAA;;AA2LA,SAASkvD,sBAAT,CAAgCM,UAAhC,EAA4CC,SAA5C,EAAuDC,eAAvD,EAAwEx2E,CAAxE,EAA2Ey2E,cAA3E,EAA2F;AACzF,EAAA,IAAIH,UAAU,CAACtB,cAAX,IAA6BsB,UAAU,CAACtB,cAAX,CAA0Bh1E,CAA1B,EAA6By2E,cAAc,CAAChuE,OAA5C,EAAqDguE,cAAc,CAAC/tE,OAApE,CAAjC,EAA+G;AAC7G;AACA;AACA;AACAusE,IAAAA,IAAA,CAAej1E,CAAC,CAACy/C,KAAjB,CAAA,CAAA;IACAg2B,SAAO,CAACa,UAAD,EAAaC,SAAb,EAAwBC,eAAxB,EAAyCx2E,CAAzC,EAA4Cy2E,cAA5C,CAAP,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAShB,SAAT,CAAiBa,UAAjB,EAA6BC,SAA7B,EAAwCC,eAAxC,EAAyDx2E,CAAzD,EAA4Dy2E,cAA5D,EAA4E;AAC1E;AACA;AACAA,EAAAA,cAAc,CAACrB,mBAAf,GAAqC3B,MAAI,CAAC2B,mBAAD,EAAsB,IAAtB,EAA4BoB,eAA5B,EAA6Cx2E,CAA7C,CAAzC,CAH0E;;AAK1Es2E,EAAAA,UAAU,CAACb,OAAX,CAAmBc,SAAnB,EAA8BE,cAA9B,CAAA,CAAA;AACD;AACD;AACA;AACA;AACA;AACA;;;AAGA,SAASrB,mBAAT,CAA6BoB,eAA7B,EAA8Cx2E,CAA9C,EAAiD02E,QAAjD,EAA2D;AACzD,EAAA,IAAIC,OAAO,GAAGD,QAAQ,CAACF,eAAD,CAAtB,CAAA;AACA,EAAA,OAAO,CAACA,eAAD,IAAoBG,OAAO,KAAK,CAAC3sE,QAAQ,CAAC2sE,OAAD,CAAT,IAAsB32E,CAAC,CAACy/C,KAAF,CAAQk3B,OAAO,GAAG,KAAlB,CAA3B,CAAlC,CAAA;AACD;;ACvQD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO,SAASC,eAAT,CAAyBC,cAAzB,EAAyC3/C,EAAzC,EAA6CC,EAA7C,EAAiD;AACtD,EAAA,IAAI5uB,MAAM,GAAGsuE,cAAc,CAACtuE,MAA5B,CAAA;EACAA,MAAM,CAACpL,CAAP,IAAY+5B,EAAZ,CAAA;EACA3uB,MAAM,CAACnL,CAAP,IAAY+5B,EAAZ,CAAA;AACA5uB,EAAAA,MAAM,CAACge,KAAP,EAAA,CAAA;AACD,CAAA;AACD;AACA;AACA;;AAEO,SAASuwD,gBAAT,CAA0BD,cAA1B,EAA0CE,SAA1C,EAAqDC,KAArD,EAA4DC,KAA5D,EAAmE;AACxE,EAAA,IAAI1uE,MAAM,GAAGsuE,cAAc,CAACtuE,MAA5B,CAAA;AACA,EAAA,IAAI2uE,SAAS,GAAGL,cAAc,CAACK,SAA/B,CAAA;EACA,IAAIC,OAAO,GAAGN,cAAc,CAACO,IAAf,GAAsBP,cAAc,CAACO,IAAf,IAAuB,CAA3D,CAAA;AACAD,EAAAA,OAAO,IAAIJ,SAAX,CAAA;;AAEA,EAAA,IAAIG,SAAJ,EAAe;AACb,IAAA,IAAIG,OAAO,GAAGH,SAAS,CAACl4C,GAAV,IAAiB,CAA/B,CAAA;AACA,IAAA,IAAIs4C,OAAO,GAAGJ,SAAS,CAACt4D,GAAV,IAAiBqF,QAA/B,CAAA;AACAkzD,IAAAA,OAAO,GAAGj7E,IAAI,CAAC0iB,GAAL,CAAS1iB,IAAI,CAAC8iC,GAAL,CAASs4C,OAAT,EAAkBH,OAAlB,CAAT,EAAqCE,OAArC,CAAV,CAAA;AACD,GAAA;;AAED,EAAA,IAAIE,SAAS,GAAGJ,OAAO,GAAGN,cAAc,CAACO,IAAzC,CAAA;AACAP,EAAAA,cAAc,CAACO,IAAf,GAAsBD,OAAtB,CAbwE;;AAexE5uE,EAAAA,MAAM,CAACpL,CAAP,IAAY,CAAC65E,KAAK,GAAGzuE,MAAM,CAACpL,CAAhB,KAAsBo6E,SAAS,GAAG,CAAlC,CAAZ,CAAA;AACAhvE,EAAAA,MAAM,CAACnL,CAAP,IAAY,CAAC65E,KAAK,GAAG1uE,MAAM,CAACnL,CAAhB,KAAsBm6E,SAAS,GAAG,CAAlC,CAAZ,CAAA;EACAhvE,MAAM,CAACkK,MAAP,IAAiB8kE,SAAjB,CAAA;EACAhvE,MAAM,CAACmK,MAAP,IAAiB6kE,SAAjB,CAAA;AACAhvE,EAAAA,MAAM,CAACge,KAAP,EAAA,CAAA;AACD;;AC5ED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIixD,mBAAmB,GAAG;AACxB,EAAA,aAAA,EAAe,CADS;AAExB,EAAA,SAAA,EAAW,CAFa;EAGxB,OAAS,EAAA,CAAA;AAHe,CAA1B,CAAA;AAKA;AACA;AACA;AACA;;AAEO,SAASC,mBAAT,CAA6Bz3E,CAA7B,EAAgCiZ,GAAhC,EAAqCy+D,mBAArC,EAA0D;EAC/D,IAAI/+B,KAAK,GAAG1/B,GAAG,CAAC0+D,qBAAJ,CAA0B33E,CAAC,CAAC43E,SAA5B,CAAZ,CAD+D;;AAG/D,EAAA,IAAIpqD,QAAQ,GAAGmrB,KAAK,IAAIA,KAAK,CAAClrB,gBAA9B,CAAA;EACA,OAAOkrB,KAAK,IAAIA,KAAK,KAAK++B,mBAAnB,IAA0C,CAACF,mBAAmB,CAAC7qD,cAApB,CAAmCgsB,KAAK,CAAC2H,QAAzC,CAA3C,IAAiG9yB,QAAjG,IAA6GA,QAAQ,CAACmrB,KAAT,KAAmB++B,mBAAvI,CAAA;AACD;;ACzDM,SAASG,QAAT,CAAkBC,GAAlB,EAAuB;AAC1B,EAAA,IAAI9tE,QAAQ,CAAC8tE,GAAD,CAAZ,EAAmB;AACf,IAAA,IAAIC,MAAM,GAAG,IAAIC,SAAJ,EAAb,CAAA;IACAF,GAAG,GAAGC,MAAM,CAACE,eAAP,CAAuBH,GAAvB,EAA4B,UAA5B,CAAN,CAAA;AACH,GAAA;;EACD,IAAII,OAAO,GAAGJ,GAAd,CAAA;;AACA,EAAA,IAAII,OAAO,CAACzgE,QAAR,KAAqB,CAAzB,EAA4B;IACxBygE,OAAO,GAAGA,OAAO,CAACpsD,UAAlB,CAAA;AACH,GAAA;;AACD,EAAA,OAAOosD,OAAO,CAACnwD,QAAR,CAAiBvmB,WAAjB,EAAA,KAAmC,KAAnC,IAA4C02E,OAAO,CAACzgE,QAAR,KAAqB,CAAxE,EAA2E;IACvEygE,OAAO,GAAGA,OAAO,CAAC/gE,WAAlB,CAAA;AACH,GAAA;;AACD,EAAA,OAAO+gE,OAAP,CAAA;AACH;;ACCD,CAAA;AACA,IAAIC,WAAJ,CAAA;AACA,IAAIC,gCAAgC,GAAG;AACnC,EAAA,MAAA,EAAQ,MAD2B;AAEnC,EAAA,QAAA,EAAU,QAFyB;AAGnC,EAAA,cAAA,EAAgB,WAHmB;AAInC,EAAA,SAAA,EAAW,SAJwB;AAKnC,EAAA,cAAA,EAAgB,aALmB;AAMnC,EAAA,gBAAA,EAAkB,eANiB;AAOnC,EAAA,kBAAA,EAAoB,UAPe;AAQnC,EAAA,mBAAA,EAAqB,gBARc;AASnC,EAAA,gBAAA,EAAkB,SATiB;AAUnC,EAAA,iBAAA,EAAmB,UAVgB;AAWnC,EAAA,mBAAA,EAAqB,YAXc;AAYnC,EAAA,aAAA,EAAe,YAZoB;AAanC,EAAA,WAAA,EAAa,UAbsB;AAcnC,EAAA,YAAA,EAAc,WAdqB;AAenC,EAAA,aAAA,EAAe,YAfoB;AAgBnC,EAAA,aAAA,EAAe,WAhBoB;AAiBnC,EAAA,YAAA,EAAc,YAjBqB;EAkBnC,SAAW,EAAA,SAAA;AAlBwB,CAAvC,CAAA;AAoBA,IAAIC,qCAAqC,GAAGxzE,IAAI,CAACuzE,gCAAD,CAAhD,CAAA;AACA,IAAIE,yBAAyB,GAAG;AAC5B,EAAA,oBAAA,EAAsB,cADM;EAE5B,YAAc,EAAA,WAAA;AAFc,CAAhC,CAAA;AAIA,IAAIC,8BAA8B,GAAG1zE,IAAI,CAACyzE,yBAAD,CAAzC,CAAA;;AACA,IAAIE,SAAS,GAAI,YAAY;AACzB,EAAA,SAASA,SAAT,GAAqB;IACjB,IAAKC,CAAAA,KAAL,GAAa,EAAb,CAAA;IACA,IAAKC,CAAAA,KAAL,GAAa,IAAb,CAAA;AACH,GAAA;;EACDF,SAAS,CAAC97E,SAAV,CAAoB65D,KAApB,GAA4B,UAAUoiB,GAAV,EAAe7qD,GAAf,EAAoB;IAC5CA,GAAG,GAAGA,GAAG,IAAI,EAAb,CAAA;AACA,IAAA,IAAIgqD,GAAG,GAAGD,QAAQ,CAACc,GAAD,CAAlB,CAAA;;AACA,IAAA,IAAI7kE,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACvC,IAAI,CAAC8jE,GAAL,EAAU;AACN,QAAA,MAAM,IAAIpqD,KAAJ,CAAU,aAAV,CAAN,CAAA;AACH,OAAA;AACJ,KAAA;;IACD,IAAKkrD,CAAAA,eAAL,GAAuB,EAAvB,CAAA;AACA,IAAA,IAAIx9D,IAAI,GAAG,IAAI4S,OAAJ,EAAX,CAAA;IACA,IAAK0qD,CAAAA,KAAL,GAAat9D,IAAb,CAAA;IACA,IAAIy9D,KAAK,GAAG,EAAZ,CAAA;IACA,IAAIC,OAAO,GAAGhB,GAAG,CAACiB,YAAJ,CAAiB,SAAjB,KAA+B,EAA7C,CAAA;AACA,IAAA,IAAI5yE,KAAK,GAAGuL,UAAU,CAAEomE,GAAG,CAACiB,YAAJ,CAAiB,OAAjB,CAAA,IAA6BjrD,GAAG,CAAC3nB,KAAnC,CAAtB,CAAA;AACA,IAAA,IAAIC,MAAM,GAAGsL,UAAU,CAAEomE,GAAG,CAACiB,YAAJ,CAAiB,QAAjB,CAAA,IAA8BjrD,GAAG,CAAC1nB,MAApC,CAAvB,CAAA;AACA7F,IAAAA,KAAK,CAAC4F,KAAD,CAAL,KAAiBA,KAAK,GAAG,IAAzB,CAAA,CAAA;AACA5F,IAAAA,KAAK,CAAC6F,MAAD,CAAL,KAAkBA,MAAM,GAAG,IAA3B,CAAA,CAAA;IACA4yE,eAAe,CAAClB,GAAD,EAAM18D,IAAN,EAAY,IAAZ,EAAkB,IAAlB,EAAwB,KAAxB,CAAf,CAAA;AACA,IAAA,IAAI9W,KAAK,GAAGwzE,GAAG,CAAChsD,UAAhB,CAAA;;AACA,IAAA,OAAOxnB,KAAP,EAAc;AACV,MAAA,IAAA,CAAK20E,UAAL,CAAgB30E,KAAhB,EAAuB8W,IAAvB,EAA6By9D,KAA7B,EAAoC,IAApC,EAA0C,KAA1C,EAAiD,KAAjD,CAAA,CAAA;;MACAv0E,KAAK,GAAGA,KAAK,CAAC6S,WAAd,CAAA;AACH,KAAA;;AACD+hE,IAAAA,SAAS,CAAC,IAAKT,CAAAA,KAAN,EAAa,IAAA,CAAKG,eAAlB,CAAT,CAAA;IACA,IAAKA,CAAAA,eAAL,GAAuB,EAAvB,CAAA;AACA,IAAA,IAAIO,WAAJ,CAAA;AACA,IAAA,IAAIC,gBAAJ,CAAA;;AACA,IAAA,IAAIN,OAAJ,EAAa;AACT,MAAA,IAAIO,UAAU,GAAGC,mBAAmB,CAACR,OAAD,CAApC,CAAA;;AACA,MAAA,IAAIO,UAAU,CAAC35E,MAAX,IAAqB,CAAzB,EAA4B;AACxBy5E,QAAAA,WAAW,GAAG;UACVh8E,CAAC,EAAEuU,UAAU,CAAE2nE,UAAU,CAAC,CAAD,CAAV,IAAiB,CAAnB,CADH;UAEVj8E,CAAC,EAAEsU,UAAU,CAAE2nE,UAAU,CAAC,CAAD,CAAV,IAAiB,CAAnB,CAFH;AAGVlzE,UAAAA,KAAK,EAAEuL,UAAU,CAAC2nE,UAAU,CAAC,CAAD,CAAX,CAHP;AAIVjzE,UAAAA,MAAM,EAAEsL,UAAU,CAAC2nE,UAAU,CAAC,CAAD,CAAX,CAAA;SAJtB,CAAA;AAMH,OAAA;AACJ,KAAA;;IACD,IAAIF,WAAW,IAAIhzE,KAAK,IAAI,IAAxB,IAAgCC,MAAM,IAAI,IAA9C,EAAoD;AAChDgzE,MAAAA,gBAAgB,GAAGG,oBAAoB,CAACJ,WAAD,EAAc;AAAEh8E,QAAAA,CAAC,EAAE,CAAL;AAAQC,QAAAA,CAAC,EAAE,CAAX;AAAc+I,QAAAA,KAAK,EAAEA,KAArB;AAA4BC,QAAAA,MAAM,EAAEA,MAAAA;AAApC,OAAd,CAAvC,CAAA;;AACA,MAAA,IAAI,CAAC0nB,GAAG,CAAC0rD,aAAT,EAAwB;QACpB,IAAIC,MAAM,GAAGr+D,IAAb,CAAA;QACAA,IAAI,GAAG,IAAI4S,OAAJ,EAAP,CAAA;QACA5S,IAAI,CAACkT,GAAL,CAASmrD,MAAT,CAAA,CAAA;QACAA,MAAM,CAAChnE,MAAP,GAAgBgnE,MAAM,CAAC/mE,MAAP,GAAgB0mE,gBAAgB,CAACp2D,KAAjD,CAAA;AACAy2D,QAAAA,MAAM,CAACt8E,CAAP,GAAWi8E,gBAAgB,CAACj8E,CAA5B,CAAA;AACAs8E,QAAAA,MAAM,CAACr8E,CAAP,GAAWg8E,gBAAgB,CAACh8E,CAA5B,CAAA;AACH,OAAA;AACJ,KAAA;;AACD,IAAA,IAAI,CAAC0wB,GAAG,CAAC4rD,cAAL,IAAuBvzE,KAAK,IAAI,IAAhC,IAAwCC,MAAM,IAAI,IAAtD,EAA4D;AACxDgV,MAAAA,IAAI,CAAC9E,WAAL,CAAiB,IAAIsmC,MAAJ,CAAS;AACtB50C,QAAAA,KAAK,EAAE;AAAE7K,UAAAA,CAAC,EAAE,CAAL;AAAQC,UAAAA,CAAC,EAAE,CAAX;AAAc+I,UAAAA,KAAK,EAAEA,KAArB;AAA4BC,UAAAA,MAAM,EAAEA,MAAAA;AAApC,SAAA;AADe,OAAT,CAAjB,CAAA,CAAA;AAGH,KAAA;;IACD,OAAO;AACHgV,MAAAA,IAAI,EAAEA,IADH;AAEHjV,MAAAA,KAAK,EAAEA,KAFJ;AAGHC,MAAAA,MAAM,EAAEA,MAHL;AAIH+yE,MAAAA,WAAW,EAAEA,WAJV;AAKHC,MAAAA,gBAAgB,EAAEA,gBALf;AAMHP,MAAAA,KAAK,EAAEA,KAAAA;KANX,CAAA;GAtDJ,CAAA;;AA+DAL,EAAAA,SAAS,CAAC97E,SAAV,CAAoBu8E,UAApB,GAAiC,UAAUU,OAAV,EAAmBC,WAAnB,EAAgCf,KAAhC,EAAuCgB,SAAvC,EAAkDC,QAAlD,EAA4DC,QAA5D,EAAsE;AACnG,IAAA,IAAIhyD,QAAQ,GAAG4xD,OAAO,CAAC5xD,QAAR,CAAiBvmB,WAAjB,EAAf,CAAA;AACA,IAAA,IAAIG,EAAJ,CAAA;IACA,IAAIq4E,eAAe,GAAGH,SAAtB,CAAA;;IACA,IAAI9xD,QAAQ,KAAK,MAAjB,EAAyB;AACrB+xD,MAAAA,QAAQ,GAAG,IAAX,CAAA;AACH,KAAA;;IACD,IAAI/xD,QAAQ,KAAK,MAAjB,EAAyB;AACrBgyD,MAAAA,QAAQ,GAAG,IAAX,CAAA;AACH,KAAA;;AACD,IAAA,IAAIhyD,QAAQ,KAAK,MAAb,IAAuBA,QAAQ,KAAK,QAAxC,EAAkD;AAC9CpmB,MAAAA,EAAE,GAAGi4E,WAAL,CAAA;AACH,KAFD,MAGK;MACD,IAAI,CAACE,QAAL,EAAe;AACX,QAAA,IAAIG,QAAQ,GAAG9B,WAAW,CAACpwD,QAAD,CAA1B,CAAA;;QACA,IAAIkyD,QAAQ,IAAIC,MAAM,CAAC/B,WAAD,EAAcpwD,QAAd,CAAtB,EAA+C;UAC3CpmB,EAAE,GAAGs4E,QAAQ,CAACl5D,IAAT,CAAc,IAAd,EAAoB44D,OAApB,EAA6BC,WAA7B,CAAL,CAAA;AACA,UAAA,IAAIO,QAAQ,GAAGR,OAAO,CAACZ,YAAR,CAAqB,MAArB,CAAf,CAAA;;AACA,UAAA,IAAIoB,QAAJ,EAAc;AACV,YAAA,IAAIC,QAAQ,GAAG;AACXh3E,cAAAA,IAAI,EAAE+2E,QADK;AAEXN,cAAAA,SAAS,EAAE,IAFA;AAGXQ,cAAAA,eAAe,EAAEtyD,QAHN;AAIXpmB,cAAAA,EAAE,EAAEA,EAAAA;aAJR,CAAA;YAMAk3E,KAAK,CAACp4E,IAAN,CAAW25E,QAAX,CAAA,CAAA;;YACA,IAAIryD,QAAQ,KAAK,GAAjB,EAAsB;AAClBiyD,cAAAA,eAAe,GAAGI,QAAlB,CAAA;AACH,aAAA;WAVL,MAYK,IAAIP,SAAJ,EAAe;YAChBhB,KAAK,CAACp4E,IAAN,CAAW;cACP2C,IAAI,EAAEy2E,SAAS,CAACz2E,IADT;AAEPy2E,cAAAA,SAAS,EAAEA,SAFJ;AAGPQ,cAAAA,eAAe,EAAEtyD,QAHV;AAIPpmB,cAAAA,EAAE,EAAEA,EAAAA;aAJR,CAAA,CAAA;AAMH,WAAA;;UACDi4E,WAAW,CAACtrD,GAAZ,CAAgB3sB,EAAhB,CAAA,CAAA;AACH,SAAA;AACJ,OAAA;;AACD,MAAA,IAAIo2E,MAAM,GAAGuC,kBAAkB,CAACvyD,QAAD,CAA/B,CAAA;;MACA,IAAIgwD,MAAM,IAAImC,MAAM,CAACI,kBAAD,EAAqBvyD,QAArB,CAApB,EAAoD;QAChD,IAAIwyD,GAAG,GAAGxC,MAAM,CAACh3D,IAAP,CAAY,IAAZ,EAAkB44D,OAAlB,CAAV,CAAA;AACA,QAAA,IAAIppE,EAAE,GAAGopE,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAAT,CAAA;;AACA,QAAA,IAAIxoE,EAAJ,EAAQ;AACJ,UAAA,IAAA,CAAKkoE,KAAL,CAAWloE,EAAX,CAAA,GAAiBgqE,GAAjB,CAAA;AACH,SAAA;AACJ,OAAA;AACJ,KAAA;;AACD,IAAA,IAAI54E,EAAE,IAAIA,EAAE,CAACg4B,OAAb,EAAsB;AAClB,MAAA,IAAIr1B,KAAK,GAAGq1E,OAAO,CAAC7tD,UAApB,CAAA;;AACA,MAAA,OAAOxnB,KAAP,EAAc;AACV,QAAA,IAAIA,KAAK,CAACmT,QAAN,KAAmB,CAAvB,EAA0B;AACtB,UAAA,IAAA,CAAKwhE,UAAL,CAAgB30E,KAAhB,EAAuB3C,EAAvB,EAA2Bk3E,KAA3B,EAAkCmB,eAAlC,EAAmDF,QAAnD,EAA6DC,QAA7D,CAAA,CAAA;SADJ,MAGK,IAAIz1E,KAAK,CAACmT,QAAN,KAAmB,CAAnB,IAAwBsiE,QAA5B,EAAsC;AACvC,UAAA,IAAA,CAAKS,UAAL,CAAgBl2E,KAAhB,EAAuB3C,EAAvB,CAAA,CAAA;AACH,SAAA;;QACD2C,KAAK,GAAGA,KAAK,CAAC6S,WAAd,CAAA;AACH,OAAA;AACJ,KAAA;GA9DL,CAAA;;EAgEAqhE,SAAS,CAAC97E,SAAV,CAAoB89E,UAApB,GAAiC,UAAUb,OAAV,EAAmBC,WAAnB,EAAgC;AAC7D,IAAA,IAAIh2E,IAAI,GAAG,IAAIsO,KAAJ,CAAU;AACjBlR,MAAAA,KAAK,EAAE;QACH4C,IAAI,EAAE+1E,OAAO,CAACriE,WAAAA;OAFD;AAIjB4b,MAAAA,MAAM,EAAE,IAJS;AAKjB/1B,MAAAA,CAAC,EAAE,IAAA,CAAKs9E,MAAL,IAAe,CALD;MAMjBr9E,CAAC,EAAE,IAAKs9E,CAAAA,MAAL,IAAe,CAAA;AAND,KAAV,CAAX,CAAA;AAQAC,IAAAA,YAAY,CAACf,WAAD,EAAch2E,IAAd,CAAZ,CAAA;IACAo1E,eAAe,CAACW,OAAD,EAAU/1E,IAAV,EAAgB,IAAKg1E,CAAAA,eAArB,EAAsC,KAAtC,EAA6C,KAA7C,CAAf,CAAA;AACAgC,IAAAA,kBAAkB,CAACh3E,IAAD,EAAOg2E,WAAP,CAAlB,CAAA;AACA,IAAA,IAAIzU,SAAS,GAAGvhE,IAAI,CAAC5C,KAArB,CAAA;AACA,IAAA,IAAIwQ,QAAQ,GAAG2zD,SAAS,CAAC3zD,QAAzB,CAAA;;AACA,IAAA,IAAIA,QAAQ,IAAIA,QAAQ,GAAG,CAA3B,EAA8B;MAC1B2zD,SAAS,CAAC3zD,QAAV,GAAqB,CAArB,CAAA;AACA5N,MAAAA,IAAI,CAAC6O,MAAL,IAAejB,QAAQ,GAAG,CAA1B,CAAA;AACA5N,MAAAA,IAAI,CAAC8O,MAAL,IAAelB,QAAQ,GAAG,CAA1B,CAAA;AACH,KAAA;;AACD,IAAA,IAAIV,IAAI,GAAG,CAACq0D,SAAS,CAAC3zD,QAAV,IAAsB2zD,SAAS,CAACxzD,UAAjC,KAAgD,CACvDwzD,SAAS,CAAC5zD,SAD6C,EAEvD4zD,SAAS,CAACtzD,UAF6C,EAGvD,CAACszD,SAAS,CAAC3zD,QAAV,IAAsB,EAAvB,IAA6B,IAH0B,EAIvD2zD,SAAS,CAACxzD,UAAV,IAAwB,YAJ+B,EAKzDjR,IALyD,CAKpD,GALoD,CAA3D,CAAA;IAMAykE,SAAS,CAACr0D,IAAV,GAAiBA,IAAjB,CAAA;AACA,IAAA,IAAIxR,IAAI,GAAGsE,IAAI,CAACyhD,eAAL,EAAX,CAAA;AACA,IAAA,IAAA,CAAKo1B,MAAL,IAAen7E,IAAI,CAAC6G,KAApB,CAAA;IACAyzE,WAAW,CAACtrD,GAAZ,CAAgB1qB,IAAhB,CAAA,CAAA;AACA,IAAA,OAAOA,IAAP,CAAA;GA7BJ,CAAA;;EA+BA40E,SAAS,CAACqC,aAAV,GAA2B,YAAY;AACnC1C,IAAAA,WAAW,GAAG;AACV,MAAA,GAAA,EAAK,SAAUwB,CAAAA,CAAAA,OAAV,EAAmBC,WAAnB,EAAgC;AACjC,QAAA,IAAI15E,CAAC,GAAG,IAAI8tB,OAAJ,EAAR,CAAA;AACA2sD,QAAAA,YAAY,CAACf,WAAD,EAAc15E,CAAd,CAAZ,CAAA;QACA84E,eAAe,CAACW,OAAD,EAAUz5E,CAAV,EAAa,IAAK04E,CAAAA,eAAlB,EAAmC,KAAnC,EAA0C,KAA1C,CAAf,CAAA;AACA,QAAA,OAAO14E,CAAP,CAAA;OALM;AAOV,MAAA,MAAA,EAAQ,SAAUy5E,IAAAA,CAAAA,OAAV,EAAmBC,WAAnB,EAAgC;AACpC,QAAA,IAAIt6E,IAAI,GAAG,IAAIs9C,MAAJ,EAAX,CAAA;AACA+9B,QAAAA,YAAY,CAACf,WAAD,EAAct6E,IAAd,CAAZ,CAAA;QACA05E,eAAe,CAACW,OAAD,EAAUr6E,IAAV,EAAgB,IAAKs5E,CAAAA,eAArB,EAAsC,KAAtC,EAA6C,KAA7C,CAAf,CAAA;QACAt5E,IAAI,CAAC6sC,QAAL,CAAc;UACVhvC,CAAC,EAAEuU,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,GAArB,CAA6B,IAAA,GAA9B,CADH;UAEV37E,CAAC,EAAEsU,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,GAArB,CAA6B,IAAA,GAA9B,CAFH;UAGV5yE,KAAK,EAAEuL,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,OAArB,CAAiC,IAAA,GAAlC,CAHP;UAIV3yE,MAAM,EAAEsL,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,QAArB,CAAA,IAAkC,GAAnC,CAAA;SAJtB,CAAA,CAAA;QAMAz5E,IAAI,CAAC4zB,MAAL,GAAc,IAAd,CAAA;AACA,QAAA,OAAO5zB,IAAP,CAAA;OAlBM;AAoBV,MAAA,QAAA,EAAU,SAAUq6E,MAAAA,CAAAA,OAAV,EAAmBC,WAAnB,EAAgC;AACtC,QAAA,IAAIzqE,MAAM,GAAG,IAAI2rE,MAAJ,EAAb,CAAA;AACAH,QAAAA,YAAY,CAACf,WAAD,EAAczqE,MAAd,CAAZ,CAAA;QACA6pE,eAAe,CAACW,OAAD,EAAUxqE,MAAV,EAAkB,IAAKypE,CAAAA,eAAvB,EAAwC,KAAxC,EAA+C,KAA/C,CAAf,CAAA;QACAzpE,MAAM,CAACg9B,QAAP,CAAgB;UACZruC,EAAE,EAAE4T,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAA8B,IAAA,GAA/B,CADF;UAEZh7E,EAAE,EAAE2T,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAA8B,IAAA,GAA/B,CAFF;UAGZ/6E,CAAC,EAAE0T,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,GAArB,CAAA,IAA6B,GAA9B,CAAA;SAHjB,CAAA,CAAA;QAKA5pE,MAAM,CAAC+jB,MAAP,GAAgB,IAAhB,CAAA;AACA,QAAA,OAAO/jB,MAAP,CAAA;OA9BM;AAgCV,MAAA,MAAA,EAAQ,SAAUwqE,IAAAA,CAAAA,OAAV,EAAmBC,WAAnB,EAAgC;AACpC,QAAA,IAAI3rD,IAAI,GAAG,IAAI8sD,MAAJ,EAAX,CAAA;AACAJ,QAAAA,YAAY,CAACf,WAAD,EAAc3rD,IAAd,CAAZ,CAAA;QACA+qD,eAAe,CAACW,OAAD,EAAU1rD,IAAV,EAAgB,IAAK2qD,CAAAA,eAArB,EAAsC,KAAtC,EAA6C,KAA7C,CAAf,CAAA;QACA3qD,IAAI,CAACke,QAAL,CAAc;UACVz4B,EAAE,EAAEhC,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAA8B,IAAA,GAA/B,CADJ;UAEVplE,EAAE,EAAEjC,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAA8B,IAAA,GAA/B,CAFJ;UAGVv7E,EAAE,EAAEkU,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAA8B,IAAA,GAA/B,CAHJ;UAIVt7E,EAAE,EAAEiU,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAAA,IAA8B,GAA/B,CAAA;SAJlB,CAAA,CAAA;QAMA9qD,IAAI,CAACiF,MAAL,GAAc,IAAd,CAAA;AACA,QAAA,OAAOjF,IAAP,CAAA;OA3CM;AA6CV,MAAA,SAAA,EAAW,SAAU0rD,OAAAA,CAAAA,OAAV,EAAmBC,WAAnB,EAAgC;AACvC,QAAA,IAAIx7E,OAAO,GAAG,IAAI48E,OAAJ,EAAd,CAAA;AACAL,QAAAA,YAAY,CAACf,WAAD,EAAcx7E,OAAd,CAAZ,CAAA;QACA46E,eAAe,CAACW,OAAD,EAAUv7E,OAAV,EAAmB,IAAKw6E,CAAAA,eAAxB,EAAyC,KAAzC,EAAgD,KAAhD,CAAf,CAAA;QACAx6E,OAAO,CAAC+tC,QAAR,CAAiB;UACbruC,EAAE,EAAE4T,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAA8B,IAAA,GAA/B,CADD;UAEbh7E,EAAE,EAAE2T,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAA8B,IAAA,GAA/B,CAFD;UAGb16E,EAAE,EAAEqT,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAA8B,IAAA,GAA/B,CAHD;UAIbz6E,EAAE,EAAEoT,UAAU,CAACioE,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAAA,IAA8B,GAA/B,CAAA;SAJlB,CAAA,CAAA;QAMA36E,OAAO,CAAC80B,MAAR,GAAiB,IAAjB,CAAA;AACA,QAAA,OAAO90B,OAAP,CAAA;OAxDM;AA0DV,MAAA,SAAA,EAAW,SAAUu7E,OAAAA,CAAAA,OAAV,EAAmBC,WAAnB,EAAgC;AACvC,QAAA,IAAIqB,SAAS,GAAGtB,OAAO,CAACZ,YAAR,CAAqB,QAArB,CAAhB,CAAA;AACA,QAAA,IAAImC,SAAJ,CAAA;;AACA,QAAA,IAAID,SAAJ,EAAe;AACXC,UAAAA,SAAS,GAAGC,WAAW,CAACF,SAAD,CAAvB,CAAA;AACH,SAAA;;AACD,QAAA,IAAI5rE,OAAO,GAAG,IAAI+rE,OAAJ,CAAY;AACtBpzE,UAAAA,KAAK,EAAE;YACH0G,MAAM,EAAEwsE,SAAS,IAAI,EAAA;WAFH;AAItBhoD,UAAAA,MAAM,EAAE,IAAA;AAJc,SAAZ,CAAd,CAAA;AAMAynD,QAAAA,YAAY,CAACf,WAAD,EAAcvqE,OAAd,CAAZ,CAAA;QACA2pE,eAAe,CAACW,OAAD,EAAUtqE,OAAV,EAAmB,IAAKupE,CAAAA,eAAxB,EAAyC,KAAzC,EAAgD,KAAhD,CAAf,CAAA;AACA,QAAA,OAAOvpE,OAAP,CAAA;OAxEM;AA0EV,MAAA,UAAA,EAAY,SAAUsqE,QAAAA,CAAAA,OAAV,EAAmBC,WAAnB,EAAgC;AACxC,QAAA,IAAIqB,SAAS,GAAGtB,OAAO,CAACZ,YAAR,CAAqB,QAArB,CAAhB,CAAA;AACA,QAAA,IAAImC,SAAJ,CAAA;;AACA,QAAA,IAAID,SAAJ,EAAe;AACXC,UAAAA,SAAS,GAAGC,WAAW,CAACF,SAAD,CAAvB,CAAA;AACH,SAAA;;AACD,QAAA,IAAI7rE,QAAQ,GAAG,IAAIisE,UAAJ,CAAa;AACxBrzE,UAAAA,KAAK,EAAE;YACH0G,MAAM,EAAEwsE,SAAS,IAAI,EAAA;WAFD;AAIxBhoD,UAAAA,MAAM,EAAE,IAAA;AAJgB,SAAb,CAAf,CAAA;AAMAynD,QAAAA,YAAY,CAACf,WAAD,EAAcxqE,QAAd,CAAZ,CAAA;QACA4pE,eAAe,CAACW,OAAD,EAAUvqE,QAAV,EAAoB,IAAKwpE,CAAAA,eAAzB,EAA0C,KAA1C,EAAiD,KAAjD,CAAf,CAAA;AACA,QAAA,OAAOxpE,QAAP,CAAA;OAxFM;AA0FV,MAAA,OAAA,EAAS,SAAUuqE,KAAAA,CAAAA,OAAV,EAAmBC,WAAnB,EAAgC;AACrC,QAAA,IAAIpkE,GAAG,GAAG,IAAI1T,OAAJ,EAAV,CAAA;AACA64E,QAAAA,YAAY,CAACf,WAAD,EAAcpkE,GAAd,CAAZ,CAAA;QACAwjE,eAAe,CAACW,OAAD,EAAUnkE,GAAV,EAAe,IAAKojE,CAAAA,eAApB,EAAqC,KAArC,EAA4C,KAA5C,CAAf,CAAA;QACApjE,GAAG,CAAC+Y,QAAJ,CAAa;AACT9d,UAAAA,KAAK,EAAEkpE,OAAO,CAACZ,YAAR,CAAqB,YAArB,CAAsCY,IAAAA,OAAO,CAACZ,YAAR,CAAqB,MAArB,CADpC;AAET57E,UAAAA,CAAC,EAAE,CAACw8E,OAAO,CAACZ,YAAR,CAAqB,GAArB,CAFK;AAGT37E,UAAAA,CAAC,EAAE,CAACu8E,OAAO,CAACZ,YAAR,CAAqB,GAArB,CAHK;AAIT5yE,UAAAA,KAAK,EAAE,CAACwzE,OAAO,CAACZ,YAAR,CAAqB,OAArB,CAJC;AAKT3yE,UAAAA,MAAM,EAAE,CAACuzE,OAAO,CAACZ,YAAR,CAAqB,QAArB,CAAA;SALb,CAAA,CAAA;QAOAvjE,GAAG,CAAC0d,MAAJ,GAAa,IAAb,CAAA;AACA,QAAA,OAAO1d,GAAP,CAAA;OAtGM;AAwGV,MAAA,MAAA,EAAQ,SAAUmkE,IAAAA,CAAAA,OAAV,EAAmBC,WAAnB,EAAgC;QACpC,IAAIz8E,CAAC,GAAGw8E,OAAO,CAACZ,YAAR,CAAqB,GAArB,KAA6B,GAArC,CAAA;QACA,IAAI37E,CAAC,GAAGu8E,OAAO,CAACZ,YAAR,CAAqB,GAArB,KAA6B,GAArC,CAAA;QACA,IAAI7hD,EAAE,GAAGyiD,OAAO,CAACZ,YAAR,CAAqB,IAArB,KAA8B,GAAvC,CAAA;QACA,IAAI5hD,EAAE,GAAGwiD,OAAO,CAACZ,YAAR,CAAqB,IAArB,KAA8B,GAAvC,CAAA;QACA,IAAK0B,CAAAA,MAAL,GAAc/oE,UAAU,CAACvU,CAAD,CAAV,GAAgBuU,UAAU,CAACwlB,EAAD,CAAxC,CAAA;QACA,IAAKwjD,CAAAA,MAAL,GAAchpE,UAAU,CAACtU,CAAD,CAAV,GAAgBsU,UAAU,CAACylB,EAAD,CAAxC,CAAA;AACA,QAAA,IAAIj3B,CAAC,GAAG,IAAI8tB,OAAJ,EAAR,CAAA;AACA2sD,QAAAA,YAAY,CAACf,WAAD,EAAc15E,CAAd,CAAZ,CAAA;QACA84E,eAAe,CAACW,OAAD,EAAUz5E,CAAV,EAAa,IAAK04E,CAAAA,eAAlB,EAAmC,KAAnC,EAA0C,IAA1C,CAAf,CAAA;AACA,QAAA,OAAO14E,CAAP,CAAA;OAlHM;AAoHV,MAAA,OAAA,EAAS,SAAUy5E,KAAAA,CAAAA,OAAV,EAAmBC,WAAnB,EAAgC;AACrC,QAAA,IAAIz8E,CAAC,GAAGw8E,OAAO,CAACZ,YAAR,CAAqB,GAArB,CAAR,CAAA;AACA,QAAA,IAAI37E,CAAC,GAAGu8E,OAAO,CAACZ,YAAR,CAAqB,GAArB,CAAR,CAAA;;QACA,IAAI57E,CAAC,IAAI,IAAT,EAAe;AACX,UAAA,IAAA,CAAKs9E,MAAL,GAAc/oE,UAAU,CAACvU,CAAD,CAAxB,CAAA;AACH,SAAA;;QACD,IAAIC,CAAC,IAAI,IAAT,EAAe;AACX,UAAA,IAAA,CAAKs9E,MAAL,GAAchpE,UAAU,CAACtU,CAAD,CAAxB,CAAA;AACH,SAAA;;QACD,IAAI85B,EAAE,GAAGyiD,OAAO,CAACZ,YAAR,CAAqB,IAArB,KAA8B,GAAvC,CAAA;QACA,IAAI5hD,EAAE,GAAGwiD,OAAO,CAACZ,YAAR,CAAqB,IAArB,KAA8B,GAAvC,CAAA;AACA,QAAA,IAAI74E,CAAC,GAAG,IAAI8tB,OAAJ,EAAR,CAAA;AACA2sD,QAAAA,YAAY,CAACf,WAAD,EAAc15E,CAAd,CAAZ,CAAA;QACA84E,eAAe,CAACW,OAAD,EAAUz5E,CAAV,EAAa,IAAK04E,CAAAA,eAAlB,EAAmC,KAAnC,EAA0C,IAA1C,CAAf,CAAA;AACA,QAAA,IAAA,CAAK6B,MAAL,IAAe/oE,UAAU,CAACwlB,EAAD,CAAzB,CAAA;AACA,QAAA,IAAA,CAAKwjD,MAAL,IAAehpE,UAAU,CAACylB,EAAD,CAAzB,CAAA;AACA,QAAA,OAAOj3B,CAAP,CAAA;OApIM;AAsIV,MAAA,MAAA,EAAQ,SAAUy5E,IAAAA,CAAAA,OAAV,EAAmBC,WAAnB,EAAgC;QACpC,IAAI75E,CAAC,GAAG45E,OAAO,CAACZ,YAAR,CAAqB,GAArB,KAA6B,EAArC,CAAA;AACA,QAAA,IAAIhxE,IAAI,GAAGuzE,gBAAgB,CAACv7E,CAAD,CAA3B,CAAA;AACA46E,QAAAA,YAAY,CAACf,WAAD,EAAc7xE,IAAd,CAAZ,CAAA;QACAixE,eAAe,CAACW,OAAD,EAAU5xE,IAAV,EAAgB,IAAK6wE,CAAAA,eAArB,EAAsC,KAAtC,EAA6C,KAA7C,CAAf,CAAA;QACA7wE,IAAI,CAACmrB,MAAL,GAAc,IAAd,CAAA;AACA,QAAA,OAAOnrB,IAAP,CAAA;AACH,OAAA;KA7IL,CAAA;AA+IH,GAhJyB,EAA1B,CAAA;;AAiJA,EAAA,OAAOywE,SAAP,CAAA;AACH,CArTgB,EAAjB,CAAA;;AAsTA,IAAI8B,kBAAkB,GAAG;EACrB,gBAAkB,EAAA,SAAA,cAAA,CAAUX,OAAV,EAAmB;AACjC,IAAA,IAAIjmE,EAAE,GAAG6nE,QAAQ,CAAC5B,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAAA,IAA8B,GAA/B,EAAoC,EAApC,CAAjB,CAAA;AACA,IAAA,IAAIplE,EAAE,GAAG4nE,QAAQ,CAAC5B,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAAA,IAA8B,GAA/B,EAAoC,EAApC,CAAjB,CAAA;AACA,IAAA,IAAIv7E,EAAE,GAAG+9E,QAAQ,CAAC5B,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAAA,IAA8B,IAA/B,EAAqC,EAArC,CAAjB,CAAA;AACA,IAAA,IAAIt7E,EAAE,GAAG89E,QAAQ,CAAC5B,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAAA,IAA8B,GAA/B,EAAoC,EAApC,CAAjB,CAAA;AACA,IAAA,IAAI1xC,QAAQ,GAAG,IAAIm0C,cAAJ,CAAmB9nE,EAAnB,EAAuBC,EAAvB,EAA2BnW,EAA3B,EAA+BC,EAA/B,CAAf,CAAA;AACAg+E,IAAAA,oBAAoB,CAAC9B,OAAD,EAAUtyC,QAAV,CAApB,CAAA;AACAq0C,IAAAA,uBAAuB,CAAC/B,OAAD,EAAUtyC,QAAV,CAAvB,CAAA;AACA,IAAA,OAAOA,QAAP,CAAA;GATiB;EAWrB,gBAAkB,EAAA,SAAA,cAAA,CAAUsyC,OAAV,EAAmB;AACjC,IAAA,IAAI77E,EAAE,GAAGy9E,QAAQ,CAAC5B,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAAA,IAA8B,GAA/B,EAAoC,EAApC,CAAjB,CAAA;AACA,IAAA,IAAIh7E,EAAE,GAAGw9E,QAAQ,CAAC5B,OAAO,CAACZ,YAAR,CAAqB,IAArB,CAAA,IAA8B,GAA/B,EAAoC,EAApC,CAAjB,CAAA;AACA,IAAA,IAAI/6E,CAAC,GAAGu9E,QAAQ,CAAC5B,OAAO,CAACZ,YAAR,CAAqB,GAArB,CAAA,IAA6B,GAA9B,EAAmC,EAAnC,CAAhB,CAAA;IACA,IAAI1xC,QAAQ,GAAG,IAAIs0C,cAAJ,CAAmB79E,EAAnB,EAAuBC,EAAvB,EAA2BC,CAA3B,CAAf,CAAA;AACAy9E,IAAAA,oBAAoB,CAAC9B,OAAD,EAAUtyC,QAAV,CAApB,CAAA;AACAq0C,IAAAA,uBAAuB,CAAC/B,OAAD,EAAUtyC,QAAV,CAAvB,CAAA;AACA,IAAA,OAAOA,QAAP,CAAA;AACH,GAAA;AAnBoB,CAAzB,CAAA;;AAqBA,SAASo0C,oBAAT,CAA8B9B,OAA9B,EAAuCtyC,QAAvC,EAAiD;AAC7C,EAAA,IAAIu0C,aAAa,GAAGjC,OAAO,CAACZ,YAAR,CAAqB,eAArB,CAApB,CAAA;;EACA,IAAI6C,aAAa,KAAK,gBAAtB,EAAwC;IACpCv0C,QAAQ,CAAC7zB,MAAT,GAAkB,IAAlB,CAAA;AACH,GAAA;AACJ,CAAA;;AACD,SAASkoE,uBAAT,CAAiC/B,OAAjC,EAA0CtyC,QAA1C,EAAoD;AAChD,EAAA,IAAIb,IAAI,GAAGmzC,OAAO,CAAC7tD,UAAnB,CAAA;;AACA,EAAA,OAAO0a,IAAP,EAAa;AACT,IAAA,IAAIA,IAAI,CAAC/uB,QAAL,KAAkB,CAAlB,IACG+uB,IAAI,CAACze,QAAL,CAAc8zD,iBAAd,EAAA,KAAsC,MAD7C,EACqD;AACjD,MAAA,IAAIC,SAAS,GAAGt1C,IAAI,CAACuyC,YAAL,CAAkB,QAAlB,CAAhB,CAAA;MACA,IAAI3kE,MAAM,GAAG,KAAK,CAAlB,CAAA;;MACA,IAAI0nE,SAAS,IAAIA,SAAS,CAAClyE,OAAV,CAAkB,GAAlB,CAAyB,GAAA,CAA1C,EAA6C;QACzCwK,MAAM,GAAGmnE,QAAQ,CAACO,SAAD,EAAY,EAAZ,CAAR,GAA0B,GAAnC,CAAA;OADJ,MAGK,IAAIA,SAAJ,EAAe;AAChB1nE,QAAAA,MAAM,GAAG1C,UAAU,CAACoqE,SAAD,CAAnB,CAAA;AACH,OAFI,MAGA;AACD1nE,QAAAA,MAAM,GAAG,CAAT,CAAA;AACH,OAAA;;MACD,IAAI2nE,SAAS,GAAG,EAAhB,CAAA;AACAC,MAAAA,gBAAgB,CAACx1C,IAAD,EAAOu1C,SAAP,EAAkBA,SAAlB,CAAhB,CAAA;AACA,MAAA,IAAIznE,SAAS,GAAGynE,SAAS,CAACznE,SAAV,IACTkyB,IAAI,CAACuyC,YAAL,CAAkB,YAAlB,CADS,IAET,SAFP,CAAA;AAGA1xC,MAAAA,QAAQ,CAAClzB,UAAT,CAAoB1T,IAApB,CAAyB;AACrB2T,QAAAA,MAAM,EAAEA,MADa;AAErBpS,QAAAA,KAAK,EAAEsS,SAAAA;OAFX,CAAA,CAAA;AAIH,KAAA;;IACDkyB,IAAI,GAAGA,IAAI,CAACrvB,WAAZ,CAAA;AACH,GAAA;AACJ,CAAA;;AACD,SAASwjE,YAAT,CAAsBvjD,MAAtB,EAA8B9yB,KAA9B,EAAqC;AACjC,EAAA,IAAI8yB,MAAM,IAAIA,MAAM,CAAC6kD,gBAArB,EAAuC;AACnC,IAAA,IAAI,CAAC33E,KAAK,CAAC23E,gBAAX,EAA6B;MACzB33E,KAAK,CAAC23E,gBAAN,GAAyB,EAAzB,CAAA;AACH,KAAA;;IACDxd,QAAQ,CAACn6D,KAAK,CAAC23E,gBAAP,EAAyB7kD,MAAM,CAAC6kD,gBAAhC,CAAR,CAAA;AACH,GAAA;AACJ,CAAA;;AACD,SAASd,WAAT,CAAqBe,YAArB,EAAmC;AAC/B,EAAA,IAAIr/D,IAAI,GAAGy8D,mBAAmB,CAAC4C,YAAD,CAA9B,CAAA;EACA,IAAIxtE,MAAM,GAAG,EAAb,CAAA;;AACA,EAAA,KAAK,IAAItO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyc,IAAI,CAACnd,MAAzB,EAAiCU,CAAC,IAAI,CAAtC,EAAyC;IACrC,IAAIjD,CAAC,GAAGuU,UAAU,CAACmL,IAAI,CAACzc,CAAD,CAAL,CAAlB,CAAA;IACA,IAAIhD,CAAC,GAAGsU,UAAU,CAACmL,IAAI,CAACzc,CAAC,GAAG,CAAL,CAAL,CAAlB,CAAA;AACAsO,IAAAA,MAAM,CAACjO,IAAP,CAAY,CAACtD,CAAD,EAAIC,CAAJ,CAAZ,CAAA,CAAA;AACH,GAAA;;AACD,EAAA,OAAOsR,MAAP,CAAA;AACH,CAAA;;AACD,SAASsqE,eAAT,CAAyBW,OAAzB,EAAkCh4E,EAAlC,EAAsCw6E,cAAtC,EAAsDC,eAAtD,EAAuEC,WAAvE,EAAoF;EAChF,IAAIC,IAAI,GAAG36E,EAAX,CAAA;EACA,IAAI46E,cAAc,GAAGD,IAAI,CAACL,gBAAL,GAAwBK,IAAI,CAACL,gBAAL,IAAyB,EAAtE,CAAA;EACA,IAAIO,SAAS,GAAG,EAAhB,CAAA;;AACA,EAAA,IAAI7C,OAAO,CAACliE,QAAR,KAAqB,CAAzB,EAA4B;AACxBglE,IAAAA,uBAAuB,CAAC9C,OAAD,EAAUh4E,EAAV,CAAvB,CAAA;AACAq6E,IAAAA,gBAAgB,CAACrC,OAAD,EAAU4C,cAAV,EAA0BC,SAA1B,CAAhB,CAAA;;IACA,IAAI,CAACJ,eAAL,EAAsB;AAClBM,MAAAA,mBAAmB,CAAC/C,OAAD,EAAU4C,cAAV,EAA0BC,SAA1B,CAAnB,CAAA;AACH,KAAA;AACJ,GAAA;;AACDF,EAAAA,IAAI,CAACt7E,KAAL,GAAas7E,IAAI,CAACt7E,KAAL,IAAc,EAA3B,CAAA;;AACA,EAAA,IAAIu7E,cAAc,CAACt7E,IAAf,IAAuB,IAA3B,EAAiC;AAC7Bq7E,IAAAA,IAAI,CAACt7E,KAAL,CAAWC,IAAX,GAAkB07E,kBAAkB,CAACL,IAAD,EAAO,MAAP,EAAeC,cAAc,CAACt7E,IAA9B,EAAoCk7E,cAApC,CAApC,CAAA;AACH,GAAA;;AACD,EAAA,IAAII,cAAc,CAACp7E,MAAf,IAAyB,IAA7B,EAAmC;AAC/Bm7E,IAAAA,IAAI,CAACt7E,KAAL,CAAWG,MAAX,GAAoBw7E,kBAAkB,CAACL,IAAD,EAAO,QAAP,EAAiBC,cAAc,CAACp7E,MAAhC,EAAwCg7E,cAAxC,CAAtC,CAAA;AACH,GAAA;;AACD/yE,EAAAA,MAAI,CAAC,CACD,WADC,EACY,SADZ,EACuB,aADvB,EACsC,eADtC,EACuD,YADvD,EACqE,UADrE,CAAD,EAED,UAAUvG,QAAV,EAAoB;AACnB,IAAA,IAAI05E,cAAc,CAAC15E,QAAD,CAAd,IAA4B,IAAhC,EAAsC;MAClCy5E,IAAI,CAACt7E,KAAL,CAAW6B,QAAX,CAAA,GAAuB6O,UAAU,CAAC6qE,cAAc,CAAC15E,QAAD,CAAf,CAAjC,CAAA;AACH,KAAA;AACJ,GANG,CAAJ,CAAA;AAOAuG,EAAAA,MAAI,CAAC,CACD,gBADC,EACiB,SADjB,EAC4B,UAD5B,EACwC,YADxC,EACsD,YADtD,EACoE,WADpE,EACiF,WADjF,CAAD,EAED,UAAUvG,QAAV,EAAoB;AACnB,IAAA,IAAI05E,cAAc,CAAC15E,QAAD,CAAd,IAA4B,IAAhC,EAAsC;MAClCy5E,IAAI,CAACt7E,KAAL,CAAW6B,QAAX,IAAuB05E,cAAc,CAAC15E,QAAD,CAArC,CAAA;AACH,KAAA;AACJ,GANG,CAAJ,CAAA;;AAOA,EAAA,IAAIw5E,WAAJ,EAAiB;IACbC,IAAI,CAACM,WAAL,GAAmBJ,SAAnB,CAAA;AACH,GAAA;;EACD,IAAID,cAAc,CAAC95E,QAAnB,EAA6B;AACzB65E,IAAAA,IAAI,CAACt7E,KAAL,CAAWyB,QAAX,GAAsBnB,GAAG,CAACg4E,mBAAmB,CAACiD,cAAc,CAAC95E,QAAhB,CAApB,EAA+C,UAAU+J,GAAV,EAAe;MACnF,OAAOkF,UAAU,CAAClF,GAAD,CAAjB,CAAA;AACH,KAFwB,CAAzB,CAAA;AAGH,GAAA;;EACD,IAAI+vE,cAAc,CAACM,UAAf,KAA8B,QAA9B,IAA0CN,cAAc,CAACM,UAAf,KAA8B,UAA5E,EAAwF;IACpFP,IAAI,CAAC/9D,SAAL,GAAiB,IAAjB,CAAA;AACH,GAAA;;AACD,EAAA,IAAIg+D,cAAc,CAACt9D,OAAf,KAA2B,MAA/B,EAAuC;IACnCq9D,IAAI,CAACtjC,MAAL,GAAc,IAAd,CAAA;AACH,GAAA;AACJ,CAAA;;AACD,SAAS4hC,kBAAT,CAA4Bh3E,IAA5B,EAAkCg2E,WAAlC,EAA+C;AAC3C,EAAA,IAAIkD,eAAe,GAAGlD,WAAW,CAACgD,WAAlC,CAAA;;AACA,EAAA,IAAIE,eAAJ,EAAqB;AACjB,IAAA,IAAI5rE,YAAY,GAAG4rE,eAAe,CAAC5rE,YAAnC,CAAA;IACA,IAAI6rE,cAAc,GAAG7rE,YAArB,CAAA;;AACA,IAAA,IAAI,CAACA,YAAD,IAAiBA,YAAY,KAAK,MAAtC,EAA8C;AAC1C6rE,MAAAA,cAAc,GAAG,YAAjB,CAAA;AACH,KAFD,MAGK,IAAI7rE,YAAY,KAAK,UAArB,EAAiC;AAClC6rE,MAAAA,cAAc,GAAG,YAAjB,CAAA;KADC,MAGA,IAAI7rE,YAAY,KAAK,aAAjB,IAAkCA,YAAY,KAAK,kBAAvD,EAA2E;AAC5E6rE,MAAAA,cAAc,GAAG,KAAjB,CAAA;KADC,MAGA,IAAI7rE,YAAY,KAAK,YAAjB,IAAiCA,YAAY,KAAK,iBAAtD,EAAyE;AAC1E6rE,MAAAA,cAAc,GAAG,QAAjB,CAAA;KADC,MAGA,IAAI7rE,YAAY,KAAK,SAAjB,IAA8BA,YAAY,KAAK,cAAnD,EAAmE;AACpE6rE,MAAAA,cAAc,GAAG,QAAjB,CAAA;AACH,KAAA;;AACDn5E,IAAAA,IAAI,CAAC5C,KAAL,CAAWkQ,YAAX,GAA0B6rE,cAA1B,CAAA;AACH,GAAA;;AACD,EAAA,IAAIC,oBAAoB,GAAGpD,WAAW,CAACqC,gBAAvC,CAAA;;AACA,EAAA,IAAIe,oBAAJ,EAA0B;AACtB,IAAA,IAAI7rE,SAAS,GAAG6rE,oBAAoB,CAAC7rE,SAArC,CAAA;IACA,IAAI8rE,WAAW,GAAG9rE,SAAlB,CAAA;;AACA,IAAA,IAAIA,SAAJ,EAAe;MACX,IAAIA,SAAS,KAAK,QAAlB,EAA4B;AACxB8rE,QAAAA,WAAW,GAAG,QAAd,CAAA;AACH,OAAA;;AACDr5E,MAAAA,IAAI,CAAC5C,KAAL,CAAWmQ,SAAX,GAAuB8rE,WAAvB,CAAA;AACH,KAAA;AACJ,GAAA;AACJ,CAAA;;AACD,IAAIC,QAAQ,GAAG,mBAAf,CAAA;;AACA,SAASP,kBAAT,CAA4Bh7E,EAA5B,EAAgCke,MAAhC,EAAwCrT,GAAxC,EAA6C2vE,cAA7C,EAA6D;EACzD,IAAIgB,QAAQ,GAAG3wE,GAAG,IAAIA,GAAG,CAACsF,KAAJ,CAAUorE,QAAV,CAAtB,CAAA;;AACA,EAAA,IAAIC,QAAJ,EAAc;IACV,IAAIC,GAAG,GAAGC,MAAI,CAACF,QAAQ,CAAC,CAAD,CAAT,CAAd,CAAA;IACAhB,cAAc,CAAC17E,IAAf,CAAoB,CAACkB,EAAD,EAAKke,MAAL,EAAau9D,GAAb,CAApB,CAAA,CAAA;AACA,IAAA,OAAA;AACH,GAAA;;EACD,IAAI5wE,GAAG,KAAK,MAAZ,EAAoB;AAChBA,IAAAA,GAAG,GAAG,IAAN,CAAA;AACH,GAAA;;AACD,EAAA,OAAOA,GAAP,CAAA;AACH,CAAA;;AACD,SAAS0sE,SAAT,CAAmBzzE,IAAnB,EAAyB02E,cAAzB,EAAyC;AACrC,EAAA,KAAK,IAAI/7E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+7E,cAAc,CAACz8E,MAAnC,EAA2CU,CAAC,EAA5C,EAAgD;AAC5C,IAAA,IAAI6O,IAAI,GAAGktE,cAAc,CAAC/7E,CAAD,CAAzB,CAAA;AACA6O,IAAAA,IAAI,CAAC,CAAD,CAAJ,CAAQjO,KAAR,CAAciO,IAAI,CAAC,CAAD,CAAlB,IAAyBxJ,IAAI,CAACwJ,IAAI,CAAC,CAAD,CAAL,CAA7B,CAAA;AACH,GAAA;AACJ,CAAA;;AACD,IAAIquE,SAAS,GAAG,qCAAhB,CAAA;;AACA,SAAShE,mBAAT,CAA6BiE,MAA7B,EAAqC;AACjC,EAAA,OAAOA,MAAM,CAACzrE,KAAP,CAAawrE,SAAb,KAA2B,EAAlC,CAAA;AACH,CAAA;;AACD,IAAIE,cAAc,GAAG,mEAArB,CAAA;AACA,IAAIC,eAAe,GAAGvhF,IAAI,CAACI,EAAL,GAAU,GAAhC,CAAA;;AACA,SAASmgF,uBAAT,CAAiC9C,OAAjC,EAA0C1iE,IAA1C,EAAgD;AAC5C,EAAA,IAAIzO,SAAS,GAAGmxE,OAAO,CAACZ,YAAR,CAAqB,WAArB,CAAhB,CAAA;;AACA,EAAA,IAAIvwE,SAAJ,EAAe;IACXA,SAAS,GAAGA,SAAS,CAACqB,OAAV,CAAkB,IAAlB,EAAwB,GAAxB,CAAZ,CAAA;IACA,IAAI6zE,cAAc,GAAG,EAArB,CAAA;IACA,IAAIC,EAAE,GAAG,IAAT,CAAA;IACAn1E,SAAS,CAACqB,OAAV,CAAkB2zE,cAAlB,EAAkC,UAAUhxE,GAAV,EAAeiD,IAAf,EAAqBmsB,KAArB,EAA4B;AAC1D8hD,MAAAA,cAAc,CAACj9E,IAAf,CAAoBgP,IAApB,EAA0BmsB,KAA1B,CAAA,CAAA;AACA,MAAA,OAAO,EAAP,CAAA;KAFJ,CAAA,CAAA;;AAIA,IAAA,KAAK,IAAIx7B,CAAC,GAAGs9E,cAAc,CAACh+E,MAAf,GAAwB,CAArC,EAAwCU,CAAC,GAAG,CAA5C,EAA+CA,CAAC,IAAI,CAApD,EAAuD;AACnD,MAAA,IAAIw7B,KAAK,GAAG8hD,cAAc,CAACt9E,CAAD,CAA1B,CAAA;AACA,MAAA,IAAIqP,IAAI,GAAGiuE,cAAc,CAACt9E,CAAC,GAAG,CAAL,CAAzB,CAAA;AACA,MAAA,IAAIw9E,QAAQ,GAAGtE,mBAAmB,CAAC19C,KAAD,CAAlC,CAAA;AACA+hD,MAAAA,EAAE,GAAGA,EAAE,IAAIhe,QAAA,EAAX,CAAA;;AACA,MAAA,QAAQlwD,IAAR;AACI,QAAA,KAAK,WAAL;UACIkwD,SAAA,CAAiBge,EAAjB,EAAqBA,EAArB,EAAyB,CAACjsE,UAAU,CAACksE,QAAQ,CAAC,CAAD,CAAT,CAAX,EAA0BlsE,UAAU,CAACksE,QAAQ,CAAC,CAAD,CAAR,IAAe,GAAhB,CAApC,CAAzB,CAAA,CAAA;AACA,UAAA,MAAA;;AACJ,QAAA,KAAK,OAAL;AACIje,UAAAA,KAAA,CAAage,EAAb,EAAiBA,EAAjB,EAAqB,CAACjsE,UAAU,CAACksE,QAAQ,CAAC,CAAD,CAAT,CAAX,EAA0BlsE,UAAU,CAACksE,QAAQ,CAAC,CAAD,CAAR,IAAeA,QAAQ,CAAC,CAAD,CAAxB,CAApC,CAArB,CAAA,CAAA;AACA,UAAA,MAAA;;AACJ,QAAA,KAAK,QAAL;AACIje,UAAAA,MAAA,CAAcge,EAAd,EAAkBA,EAAlB,EAAsB,CAACjsE,UAAU,CAACksE,QAAQ,CAAC,CAAD,CAAT,CAAX,GAA2BH,eAAjD,CAAA,CAAA;AACA,UAAA,MAAA;;AACJ,QAAA,KAAK,OAAL;AACI,UAAA,IAAII,EAAE,GAAG3hF,IAAI,CAAC4hF,GAAL,CAASpsE,UAAU,CAACksE,QAAQ,CAAC,CAAD,CAAT,CAAV,GAA0BH,eAAnC,CAAT,CAAA;AACA9d,UAAAA,GAAA,CAAWge,EAAX,EAAe,CAAC,CAAD,EAAI,CAAJ,EAAOE,EAAP,EAAW,CAAX,EAAc,CAAd,EAAiB,CAAjB,CAAf,EAAoCF,EAApC,CAAA,CAAA;AACA,UAAA,MAAA;;AACJ,QAAA,KAAK,OAAL;AACI,UAAA,IAAII,EAAE,GAAG7hF,IAAI,CAAC4hF,GAAL,CAASpsE,UAAU,CAACksE,QAAQ,CAAC,CAAD,CAAT,CAAV,GAA0BH,eAAnC,CAAT,CAAA;AACA9d,UAAAA,GAAA,CAAWge,EAAX,EAAe,CAAC,CAAD,EAAII,EAAJ,EAAQ,CAAR,EAAW,CAAX,EAAc,CAAd,EAAiB,CAAjB,CAAf,EAAoCJ,EAApC,CAAA,CAAA;AACA,UAAA,MAAA;;AACJ,QAAA,KAAK,QAAL;UACIA,EAAE,CAAC,CAAD,CAAF,GAAQjsE,UAAU,CAACksE,QAAQ,CAAC,CAAD,CAAT,CAAlB,CAAA;UACAD,EAAE,CAAC,CAAD,CAAF,GAAQjsE,UAAU,CAACksE,QAAQ,CAAC,CAAD,CAAT,CAAlB,CAAA;UACAD,EAAE,CAAC,CAAD,CAAF,GAAQjsE,UAAU,CAACksE,QAAQ,CAAC,CAAD,CAAT,CAAlB,CAAA;UACAD,EAAE,CAAC,CAAD,CAAF,GAAQjsE,UAAU,CAACksE,QAAQ,CAAC,CAAD,CAAT,CAAlB,CAAA;UACAD,EAAE,CAAC,CAAD,CAAF,GAAQjsE,UAAU,CAACksE,QAAQ,CAAC,CAAD,CAAT,CAAlB,CAAA;UACAD,EAAE,CAAC,CAAD,CAAF,GAAQjsE,UAAU,CAACksE,QAAQ,CAAC,CAAD,CAAT,CAAlB,CAAA;AACA,UAAA,MAAA;AAzBR,OAAA;AA2BH,KAAA;;IACD3mE,IAAI,CAAC+mE,iBAAL,CAAuBL,EAAvB,CAAA,CAAA;AACH,GAAA;AACJ,CAAA;;AACD,IAAIM,UAAU,GAAG,4BAAjB,CAAA;;AACA,SAASjC,gBAAT,CAA0BrC,OAA1B,EAAmCuE,sBAAnC,EAA2DC,eAA3D,EAA4E;AACxE,EAAA,IAAIn9E,KAAK,GAAG24E,OAAO,CAACZ,YAAR,CAAqB,OAArB,CAAZ,CAAA;;EACA,IAAI,CAAC/3E,KAAL,EAAY;AACR,IAAA,OAAA;AACH,GAAA;;EACDi9E,UAAU,CAACG,SAAX,GAAuB,CAAvB,CAAA;AACA,EAAA,IAAIC,cAAJ,CAAA;;EACA,OAAO,CAACA,cAAc,GAAGJ,UAAU,CAACK,IAAX,CAAgBt9E,KAAhB,CAAlB,KAA6C,IAApD,EAA0D;AACtD,IAAA,IAAIu9E,UAAU,GAAGF,cAAc,CAAC,CAAD,CAA/B,CAAA;AACA,IAAA,IAAIG,oBAAoB,GAAGtE,MAAM,CAAC9B,gCAAD,EAAmCmG,UAAnC,CAAN,GACrBnG,gCAAgC,CAACmG,UAAD,CADX,GAErB,IAFN,CAAA;;AAGA,IAAA,IAAIC,oBAAJ,EAA0B;AACtBN,MAAAA,sBAAsB,CAACM,oBAAD,CAAtB,GAA+CH,cAAc,CAAC,CAAD,CAA7D,CAAA;AACH,KAAA;;AACD,IAAA,IAAII,aAAa,GAAGvE,MAAM,CAAC5B,yBAAD,EAA4BiG,UAA5B,CAAN,GACdjG,yBAAyB,CAACiG,UAAD,CADX,GAEd,IAFN,CAAA;;AAGA,IAAA,IAAIE,aAAJ,EAAmB;AACfN,MAAAA,eAAe,CAACM,aAAD,CAAf,GAAiCJ,cAAc,CAAC,CAAD,CAA/C,CAAA;AACH,KAAA;AACJ,GAAA;AACJ,CAAA;;AACD,SAAS3B,mBAAT,CAA6B/C,OAA7B,EAAsCuE,sBAAtC,EAA8DC,eAA9D,EAA+E;AAC3E,EAAA,KAAK,IAAI/9E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi4E,qCAAqC,CAAC34E,MAA1D,EAAkEU,CAAC,EAAnE,EAAuE;AACnE,IAAA,IAAIs+E,WAAW,GAAGrG,qCAAqC,CAACj4E,CAAD,CAAvD,CAAA;AACA,IAAA,IAAIu+E,SAAS,GAAGhF,OAAO,CAACZ,YAAR,CAAqB2F,WAArB,CAAhB,CAAA;;IACA,IAAIC,SAAS,IAAI,IAAjB,EAAuB;AACnBT,MAAAA,sBAAsB,CAAC9F,gCAAgC,CAACsG,WAAD,CAAjC,CAAtB,GAAwEC,SAAxE,CAAA;AACH,KAAA;AACJ,GAAA;;AACD,EAAA,KAAK,IAAIv+E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGm4E,8BAA8B,CAAC74E,MAAnD,EAA2DU,CAAC,EAA5D,EAAgE;AAC5D,IAAA,IAAIs+E,WAAW,GAAGnG,8BAA8B,CAACn4E,CAAD,CAAhD,CAAA;AACA,IAAA,IAAIu+E,SAAS,GAAGhF,OAAO,CAACZ,YAAR,CAAqB2F,WAArB,CAAhB,CAAA;;IACA,IAAIC,SAAS,IAAI,IAAjB,EAAuB;AACnBR,MAAAA,eAAe,CAAC7F,yBAAyB,CAACoG,WAAD,CAA1B,CAAf,GAA0DC,SAA1D,CAAA;AACH,KAAA;AACJ,GAAA;AACJ,CAAA;;AACM,SAASpF,oBAAT,CAA8BJ,WAA9B,EAA2Ct1D,YAA3C,EAAyD;EAC5D,IAAIpR,MAAM,GAAGoR,YAAY,CAAC1d,KAAb,GAAqBgzE,WAAW,CAAChzE,KAA9C,CAAA;EACA,IAAIuM,MAAM,GAAGmR,YAAY,CAACzd,MAAb,GAAsB+yE,WAAW,CAAC/yE,MAA/C,CAAA;EACA,IAAI4c,KAAK,GAAG9mB,IAAI,CAAC8iC,GAAL,CAASvsB,MAAT,EAAiBC,MAAjB,CAAZ,CAAA;EACA,OAAO;AACHsQ,IAAAA,KAAK,EAAEA,KADJ;IAEH7lB,CAAC,EAAE,EAAEg8E,WAAW,CAACh8E,CAAZ,GAAgBg8E,WAAW,CAAChzE,KAAZ,GAAoB,CAAtC,IAA2C6c,KAA3C,IAAoDa,YAAY,CAAC1mB,CAAb,GAAiB0mB,YAAY,CAAC1d,KAAb,GAAqB,CAA1F,CAFA;IAGH/I,CAAC,EAAE,EAAE+7E,WAAW,CAAC/7E,CAAZ,GAAgB+7E,WAAW,CAAC/yE,MAAZ,GAAqB,CAAvC,IAA4C4c,KAA5C,IAAqDa,YAAY,CAACzmB,CAAb,GAAiBymB,YAAY,CAACzd,MAAb,GAAsB,CAA5F,CAAA;GAHP,CAAA;AAKH,CAAA;AACM,SAASw4E,QAAT,CAAkBjG,GAAlB,EAAuB7qD,GAAvB,EAA4B;AAC/B,EAAA,IAAIiqD,MAAM,GAAG,IAAIS,SAAJ,EAAb,CAAA;AACA,EAAA,OAAOT,MAAM,CAACxhB,KAAP,CAAaoiB,GAAb,EAAkB7qD,GAAlB,CAAP,CAAA;AACH;;ACvnBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI+wD,4BAA4B,GAAGC,aAAa,CAAC,CAAC,MAAD,EAAS,QAAT,EAAmB,MAAnB,EAA2B,SAA3B,EAAsC,SAAtC,EAAiD,UAAjD,EAA6D,MAA7D;AACjD;AACA,MAFiD,EAEzC,OAFyC;AAGjD;AACA;AACA;AACA,GANiD,CAAD,CAAhD,CAAA;;AAQA,IAAIC,cAAc;AAClB;AACA,YAAY;AACV,EAAA,SAASA,cAAT,CAAwBC,OAAxB,EAAiClH,GAAjC,EAAsC;AACpC,IAAA,IAAA,CAAKroE,IAAL,GAAY,QAAZ,CADoC;;AAGpC,IAAA,IAAA,CAAKwvE,eAAL,GAAuBH,aAAa,EAApC,CAHoC;;IAKpC,IAAKI,CAAAA,cAAL,GAAsB,EAAtB,CAAA;AACA,IAAA,IAAA,CAAKC,QAAL,GAAgBH,OAAhB,CANoC;AAOpC;AACA;AACA;AACA;AACA;;AAEA,IAAA,IAAA,CAAKI,UAAL,GAAkBvH,QAAQ,CAACC,GAAD,CAA1B,CAAA;AACD,GAAA;;AAEDiH,EAAAA,cAAc,CAACriF,SAAf,CAAyB2iF,IAAzB,GAAgC;AAChC;AACA,EAAA;AACE;AACA;AACA,IAAA,IAAIC,YAAY,GAAG,IAAKC,CAAAA,aAAxB,CAHF;AAIE;AACA;AACA;AACA;;IAEA,IAAI,CAACD,YAAL,EAAmB;MACjBA,YAAY,GAAG,KAAKC,aAAL,GAAqB,KAAKC,aAAL,CAAmB,IAAKJ,CAAAA,UAAxB,CAApC,CAAA;;AAEA,MAAA,IAAA,CAAKF,cAAL,CAAoBz+E,IAApB,CAAyB6+E,YAAzB,CAAA,CAAA;;MAEA,IAAKG,CAAAA,aAAL,GAAqB,IAAA,CAAKF,aAAL,CAAmB17D,YAAnB,CAAgC7N,KAAhC,EAArB,CALiB;AAMjB;AACA;AACA;;AAEA,MAAA,IAAItT,EAAE,GAAGg9E,aAAa,CAACJ,YAAY,CAACzG,KAAd,CAAtB;AAAA,UACI8G,OAAO,GAAGj9E,EAAE,CAACi9E,OADjB;AAAA,UAEIC,UAAU,GAAGl9E,EAAE,CAACk9E,UAFpB,CAAA;;MAIA,IAAKC,CAAAA,QAAL,GAAgBF,OAAhB,CAAA;MACA,IAAKG,CAAAA,WAAL,GAAmBF,UAAnB,CAAA;AACD,KAAA;;IAED,OAAO;MACL/7D,YAAY,EAAE,KAAK47D,aADd;MAELE,OAAO,EAAE,KAAKE,QAFT;AAGLD,MAAAA,UAAU,EAAE,IAAKE,CAAAA,WAAAA;KAHnB,CAAA;GA7BF,CAAA;;AAoCAf,EAAAA,cAAc,CAACriF,SAAf,CAAyB8iF,aAAzB,GAAyC,UAAUO,MAAV,EAAkB;AACzD,IAAA,IAAIta,MAAJ,CAAA;AACA,IAAA,IAAIua,aAAJ,CAAA;;IAEA,IAAI;AACFva,MAAAA,MAAM,GAAGsa,MAAM,IAAInB,QAAQ,CAACmB,MAAD,EAAS;AAClCvG,QAAAA,aAAa,EAAE,IADmB;AAElCE,QAAAA,cAAc,EAAE,IAAA;OAFS,CAAlB,IAGH,EAHN,CAAA;MAIAsG,aAAa,GAAGva,MAAM,CAACrqD,IAAvB,CAAA;AACA/F,MAAAA,MAAM,CAAC2qE,aAAa,IAAI,IAAlB,CAAN,CAAA;KANF,CAOE,OAAOhgF,CAAP,EAAU;AACV,MAAA,MAAM,IAAI0tB,KAAJ,CAAU,yBAAyB1tB,CAAC,CAACigF,OAArC,CAAN,CAAA;AACD,KAbwD;;;AAgBzD,IAAA,IAAI7kE,IAAI,GAAG,IAAI4S,OAAJ,EAAX,CAAA;IACA5S,IAAI,CAACkT,GAAL,CAAS0xD,aAAT,CAAA,CAAA;AACA5kE,IAAAA,IAAI,CAAC8kE,mBAAL,GAA2B,IAA3B,CAlByD;AAmBzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAA,IAAIjqE,QAAQ,GAAGwvD,MAAM,CAACt/D,KAAtB,CAAA;AACA,IAAA,IAAI+P,SAAS,GAAGuvD,MAAM,CAACr/D,MAAvB,CAAA;AACA,IAAA,IAAI+yE,WAAW,GAAG1T,MAAM,CAAC0T,WAAzB,CAAA;IACA,IAAIt1D,YAAY,GAAG,IAAA,CAAK47D,aAAxB,CAAA;;IAEA,IAAI,CAAC57D,YAAL,EAAmB;MACjB,IAAIs8D,MAAM,GAAG,KAAK,CAAlB,CAAA;MACA,IAAIC,MAAM,GAAG,KAAK,CAAlB,CAAA;MACA,IAAIC,UAAU,GAAG,KAAK,CAAtB,CAAA;MACA,IAAIC,WAAW,GAAG,KAAK,CAAvB,CAAA;;MAEA,IAAIrqE,QAAQ,IAAI,IAAhB,EAAsB;AACpBkqE,QAAAA,MAAM,GAAG,CAAT,CAAA;AACAE,QAAAA,UAAU,GAAGpqE,QAAb,CAAA;OAFF,MAGO,IAAIkjE,WAAJ,EAAiB;QACtBgH,MAAM,GAAGhH,WAAW,CAACh8E,CAArB,CAAA;QACAkjF,UAAU,GAAGlH,WAAW,CAAChzE,KAAzB,CAAA;AACD,OAAA;;MAED,IAAI+P,SAAS,IAAI,IAAjB,EAAuB;AACrBkqE,QAAAA,MAAM,GAAG,CAAT,CAAA;AACAE,QAAAA,WAAW,GAAGpqE,SAAd,CAAA;OAFF,MAGO,IAAIijE,WAAJ,EAAiB;QACtBiH,MAAM,GAAGjH,WAAW,CAAC/7E,CAArB,CAAA;QACAkjF,WAAW,GAAGnH,WAAW,CAAC/yE,MAA1B,CAAA;AACD,OApBgB;AAqBjB;;;AAGA,MAAA,IAAI+5E,MAAM,IAAI,IAAV,IAAkBC,MAAM,IAAI,IAAhC,EAAsC;AACpC,QAAA,IAAIG,sBAAsB,GAAGP,aAAa,CAAC36B,eAAd,EAA7B,CAAA;;QAEA,IAAI86B,MAAM,IAAI,IAAd,EAAoB;UAClBA,MAAM,GAAGI,sBAAsB,CAACpjF,CAAhC,CAAA;UACAkjF,UAAU,GAAGE,sBAAsB,CAACp6E,KAApC,CAAA;AACD,SAAA;;QAED,IAAIi6E,MAAM,IAAI,IAAd,EAAoB;UAClBA,MAAM,GAAGG,sBAAsB,CAACnjF,CAAhC,CAAA;UACAkjF,WAAW,GAAGC,sBAAsB,CAACn6E,MAArC,CAAA;AACD,SAAA;AACF,OAAA;;AAEDyd,MAAAA,YAAY,GAAG,IAAA,CAAK47D,aAAL,GAAqB,IAAIh8D,YAAJ,CAAiB08D,MAAjB,EAAyBC,MAAzB,EAAiCC,UAAjC,EAA6CC,WAA7C,CAApC,CAAA;AACD,KAAA;;AAED,IAAA,IAAInH,WAAJ,EAAiB;MACf,IAAIC,gBAAgB,GAAGG,oBAAoB,CAACJ,WAAD,EAAct1D,YAAd,CAA3C,CADe;;MAGfm8D,aAAa,CAACvtE,MAAd,GAAuButE,aAAa,CAACttE,MAAd,GAAuB0mE,gBAAgB,CAACp2D,KAA/D,CAAA;AACAg9D,MAAAA,aAAa,CAAC7iF,CAAd,GAAkBi8E,gBAAgB,CAACj8E,CAAnC,CAAA;AACA6iF,MAAAA,aAAa,CAAC5iF,CAAd,GAAkBg8E,gBAAgB,CAACh8E,CAAnC,CAAA;AACD,KAlGwD;AAmGzD;AACA;AACA;AACA;AACA;;;AAGAge,IAAAA,IAAI,CAAC9E,WAAL,CAAiB,IAAIsmC,MAAJ,CAAS;MACxB50C,KAAK,EAAE6b,YAAY,CAAC28D,KAAb,EAAA;AADiB,KAAT,CAAjB,CAAA,CAAA;IAGA,IAAI3H,KAAK,GAAG,EAAZ,CAAA;AACAzvE,IAAAA,MAAI,CAACq8D,MAAM,CAACoT,KAAR,EAAe,UAAU4H,SAAV,EAAqB;MACtC,IAAI5B,4BAA4B,CAAChqD,GAA7B,CAAiC4rD,SAAS,CAACpG,eAA3C,CAA+D,IAAA,IAAnE,EAAyE;QACvExB,KAAK,CAACp4E,IAAN,CAAWggF,SAAX,CAAA,CAAA;AACAC,QAAAA,SAAS,CAACD,SAAS,CAAC9+E,EAAX,CAAT,CAAA;AACD,OAAA;AACF,KALG,CAAJ,CAAA;IAMA,OAAO;AACLyZ,MAAAA,IAAI,EAAEA,IADD;AAELyI,MAAAA,YAAY,EAAEA,YAFT;AAGLg1D,MAAAA,KAAK,EAAEA,KAAAA;KAHT,CAAA;GApHF,CAAA;AA0HA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGEkG,EAAAA,cAAc,CAACriF,SAAf,CAAyBikF,UAAzB,GAAsC,UAAUC,OAAAA;AAChD;IACE;IACA,IAAIC,WAAW,GAAG,IAAA,CAAK5B,eAAvB,CAAA;AACA,IAAA,IAAI6B,UAAU,GAAGD,WAAW,CAAChsD,GAAZ,CAAgB+rD,OAAhB,CAAjB,CAAA;;AAEA,IAAA,IAAIE,UAAJ,EAAgB;AACd,MAAA,OAAOA,UAAP,CAAA;AACD,KAAA;;AAEDA,IAAAA,UAAU,GAAG,IAAA,CAAK5B,cAAL,CAAoB3jB,GAApB,EAA0B;AAA1B,OACV,IAAKikB,CAAAA,aAAL,CAAmB,IAAA,CAAKJ,UAAxB,CADH,CAAA;AAEAyB,IAAAA,WAAW,CAAClyB,GAAZ,CAAgBiyB,OAAhB,EAAyBE,UAAzB,EAVA;AAWA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAA,OAAOA,UAAP,CAAA;GApBF,CAAA;;AAuBA/B,EAAAA,cAAc,CAACriF,SAAf,CAAyBqkF,WAAzB,GAAuC,UAAUH,OAAV,EAAmB;IACxD,IAAIC,WAAW,GAAG,IAAA,CAAK5B,eAAvB,CAAA;AACA,IAAA,IAAI6B,UAAU,GAAGD,WAAW,CAAChsD,GAAZ,CAAgB+rD,OAAhB,CAAjB,CAAA;;AAEA,IAAA,IAAIE,UAAJ,EAAgB;MACdD,WAAW,CAACG,SAAZ,CAAsBJ,OAAtB,CAAA,CAAA;;AAEA,MAAA,IAAA,CAAK1B,cAAL,CAAoBz+E,IAApB,CAAyBqgF,UAAzB,CAAA,CAAA;AACD,KAAA;GARH,CAAA;;AAWA,EAAA,OAAO/B,cAAP,CAAA;AACD,CA9ND,EAFA,CAAA;;AAoOA,SAAS2B,SAAT,CAAmB/+E,EAAnB,EAAuB;AACrB;AACA;AACAA,EAAAA,EAAE,CAACuxB,MAAH,GAAY,KAAZ,CAHqB;;EAKrB,IAAIvxB,EAAE,CAACg4B,OAAP,EAAgB;AACdh4B,IAAAA,EAAE,CAACk4B,QAAH,CAAY,UAAUv1B,KAAV,EAAiB;MAC3BA,KAAK,CAAC4uB,MAAN,GAAe,KAAf,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;AACF,CAAA;;AAED,SAASwsD,aAAT,CAAuB7G,KAAvB,EAA8B;EAC5B,IAAI8G,OAAO,GAAG,EAAd,CAAA;AACA,EAAA,IAAIC,UAAU,GAAGd,aAAa,EAA9B,CAF4B;;AAI5B11E,EAAAA,MAAI,CAACyvE,KAAD,EAAQ,UAAU4H,SAAV,EAAqB;AAC/B;AACA;AACA;AACA,IAAA,IAAIA,SAAS,CAAC5G,SAAV,IAAuB,IAA3B,EAAiC;AAC/B,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIoH,MAAM,GAAG,IAAIC,YAAJ,CAAiBT,SAAS,CAACr9E,IAA3B,EAAiCq9E,SAAS,CAAC9+E,EAA3C,CAAb,CAR+B;AAS/B;;AAEAg+E,IAAAA,OAAO,CAACl/E,IAAR,CAAawgF,MAAb,EAX+B;AAY/B;AACA;;AAEArB,IAAAA,UAAU,CAACjxB,GAAX,CAAe8xB,SAAS,CAACr9E,IAAzB,EAA+B69E,MAA/B,CAAA,CAAA;AACD,GAhBG,CAAJ,CAAA;EAiBA,OAAO;AACLtB,IAAAA,OAAO,EAAEA,OADJ;AAELC,IAAAA,UAAU,EAAEA,UAAAA;GAFd,CAAA;AAID;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA,IAAIuB,QAAQ,GAAG,CAAC,GAAD,EAAM,EAAN,CAAf,CAAA;AACA,IAAIC,UAAU,GAAG,MAAjB,CAAA;AACA,IAAI1yE,QAAM,GAAG,CAAC,CAAC,CAAC,CAAD,EAAI,GAAJ,CAAD,EAAW,CAAC,CAAD,EAAI,IAAJ,CAAX,EAAsB,CAAC,EAAD,EAAK,IAAL,CAAtB,EAAkC,CAAC,EAAD,EAAK,CAAL,CAAlC,EAA2C,CAAC,EAAD,EAAK,GAAL,CAA3C,EAAsD,CAAC,EAAD,EAAK,GAAL,CAAtD,EAAiE,CAAC,EAAD,EAAK,GAAL,CAAjE,EAA4E,CAAC,EAAD,EAAK,GAAL,CAA5E,EAAuF,CAAC,EAAD,EAAK,GAAL,CAAvF,EAAkG,CAAC,EAAD,EAAK,CAAL,CAAlG,EAA2G,CAAC,CAAD,EAAI,CAAJ,CAA3G,EAAmH,CAAC,CAAD,EAAI,GAAJ,CAAnH,CAAD,EAA+H,CAAC,CAAC,EAAD,EAAK,IAAL,CAAD,EAAa,CAAC,EAAD,EAAK,IAAL,CAAb,EAAyB,CAAC,EAAD,EAAK,IAAL,CAAzB,EAAqC,CAAC,EAAD,EAAK,IAAL,CAArC,EAAiD,CAAC,EAAD,EAAK,IAAL,CAAjD,CAA/H,EAA6L,CAAC,CAAC,EAAD,EAAK,IAAL,CAAD,EAAa,CAAC,EAAD,EAAK,IAAL,CAAb,EAAyB,CAAC,EAAD,EAAK,IAAL,CAAzB,EAAqC,CAAC,EAAD,EAAK,IAAL,CAArC,EAAiD,CAAC,EAAD,EAAK,IAAL,CAAjD,CAA7L,EAA2P,CAAC,CAAC,EAAD,EAAK,IAAL,CAAD,EAAa,CAAC,EAAD,EAAK,IAAL,CAAb,EAAyB,CAAC,EAAD,EAAK,IAAL,CAAzB,EAAqC,CAAC,EAAD,EAAK,IAAL,CAArC,EAAiD,CAAC,EAAD,EAAK,IAAL,CAAjD,CAA3P,EAAyT,CAAC,CAAC,CAAD,EAAI,IAAJ,CAAD,EAAY,CAAC,CAAD,EAAI,EAAJ,CAAZ,EAAqB,CAAC,CAAD,EAAI,EAAJ,CAArB,EAA8B,CAAC,CAAD,EAAI,IAAJ,CAA9B,EAAyC,CAAC,CAAD,EAAI,IAAJ,CAAzC,CAAzT,EAA8W,CAAC,CAAC,EAAD,EAAK,IAAL,CAAD,EAAa,CAAC,EAAD,EAAK,IAAL,CAAb,EAAyB,CAAC,EAAD,EAAK,IAAL,CAAzB,EAAqC,CAAC,EAAD,EAAK,IAAL,CAArC,EAAiD,CAAC,EAAD,EAAK,IAAL,CAAjD,CAA9W,EAA4a,CAAC,CAAC,EAAD,EAAK,IAAL,CAAD,EAAa,CAAC,EAAD,EAAK,IAAL,CAAb,EAAyB,CAAC,EAAD,EAAK,IAAL,CAAzB,EAAqC,CAAC,EAAD,EAAK,IAAL,CAArC,EAAiD,CAAC,EAAD,EAAK,IAAL,CAAjD,CAA5a,EAA0e,CAAC,CAAC,EAAD,EAAK,IAAL,CAAD,EAAa,CAAC,EAAD,EAAK,IAAL,CAAb,EAAyB,CAAC,EAAD,EAAK,IAAL,CAAzB,EAAqC,CAAC,EAAD,EAAK,IAAL,CAArC,EAAiD,CAAC,EAAD,EAAK,IAAL,CAAjD,CAA1e,EAAwiB,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,CAAC,EAAD,EAAK,IAAL,CAAX,EAAuB,CAAC,EAAD,EAAK,IAAL,CAAvB,EAAmC,CAAC,EAAD,EAAK,EAAL,CAAnC,EAA6C,CAAC,EAAD,EAAK,EAAL,CAA7C,CAAxiB,EAAgmB,CAAC,CAAC,EAAD,EAAK,IAAL,CAAD,EAAa,CAAC,EAAD,EAAK,IAAL,CAAb,EAAyB,CAAC,EAAD,EAAK,IAAL,CAAzB,EAAqC,CAAC,EAAD,EAAK,IAAL,CAArC,EAAiD,CAAC,EAAD,EAAK,IAAL,CAAjD,CAAhmB,EAA8pB,CAAC,CAAC,EAAD,EAAK,IAAL,CAAD,EAAa,CAAC,EAAD,EAAK,CAAL,CAAb,EAAsB,CAAC,EAAD,EAAK,CAAL,CAAtB,EAA+B,CAAC,EAAD,EAAK,IAAL,CAA/B,EAA2C,CAAC,EAAD,EAAK,IAAL,CAA3C,CAA9pB,EAAstB,CAAC,CAAC,CAAD,EAAI,GAAJ,CAAD,EAAW,CAAC,CAAD,EAAI,IAAJ,CAAX,EAAsB,CAAC,EAAD,EAAK,IAAL,CAAtB,EAAkC,CAAC,EAAD,EAAK,CAAL,CAAlC,EAA2C,CAAC,EAAD,EAAK,CAAL,CAA3C,EAAoD,CAAC,EAAD,EAAK,IAAL,CAApD,EAAgE,CAAC,CAAD,EAAI,IAAJ,CAAhE,EAA2E,CAAC,CAAD,EAAI,GAAJ,CAA3E,EAAqF,CAAC,CAAD,EAAI,GAAJ,CAArF,CAAttB,CAAb,CAAA;;AAEA,KAAK,IAAItO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsO,QAAM,CAAChP,MAA3B,EAAmCU,CAAC,EAApC,EAAwC;AACtC,EAAA,KAAK,IAAIwL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8C,QAAM,CAACtO,CAAD,CAAN,CAAUV,MAA9B,EAAsCkM,CAAC,EAAvC,EAA2C;IACzC8C,QAAM,CAACtO,CAAD,CAAN,CAAUwL,CAAV,CAAa,CAAA,CAAb,KAAmB,IAAnB,CAAA;IACA8C,QAAM,CAACtO,CAAD,CAAN,CAAUwL,CAAV,CAAa,CAAA,CAAb,CAAmB,IAAA,CAAC,IAAD,GAAQ,IAA3B,CAAA;IACA8C,QAAM,CAACtO,CAAD,CAAN,CAAUwL,CAAV,CAAa,CAAA,CAAb,CAAmBu1E,IAAAA,QAAQ,CAAC,CAAD,CAA3B,CAAA;IACAzyE,QAAM,CAACtO,CAAD,CAAN,CAAUwL,CAAV,CAAa,CAAA,CAAb,CAAmBu1E,IAAAA,QAAQ,CAAC,CAAD,CAA3B,CAAA;AACD,GAAA;AACF,CAAA;;AAEc,SAASE,SAAT,CAAmBC,OAAnB,EAA4B3B,OAA5B,EAAqC;EAClD,IAAI2B,OAAO,KAAK,OAAhB,EAAyB;AACvB,IAAA,KAAK,IAAIlhF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGu/E,OAAO,CAACjgF,MAA5B,EAAoCU,CAAC,EAArC,EAAyC;AACvC;MACA,IAAIu/E,OAAO,CAACv/E,CAAD,CAAP,CAAWgD,IAAX,KAAoBg+E,UAAxB,EAAoC;AAClC,QAAA,OAAA;AACD,OAAA;AACF,KAAA;;AAEDzB,IAAAA,OAAO,CAACl/E,IAAR,CAAa,IAAI8gF,aAAJ,CAAkBH,UAAlB,EAA8Bh9C,GAAA,CAAW11B,QAAX,EAAmB,UAAU8yE,QAAV,EAAoB;MAChF,OAAO;AACL/xE,QAAAA,IAAI,EAAE,SADD;AAEL+xE,QAAAA,QAAQ,EAAEA,QAAAA;OAFZ,CAAA;KADyC,CAA9B,EAKTL,QALS,CAAb,CAAA,CAAA;AAMD,GAAA;AACF;;AC1ED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIM,eAAe,GAAG;AACpB,EAAA,MAAA,EAAQ,CAAC,EAAD,EAAK,EAAL,CADY;AAEpB;AACA,EAAA,IAAA,EAAM,CAAC,CAAD,EAAI,CAAC,EAAL,CAHc;AAIpB,EAAA,IAAA,EAAM,CAAC,EAAD,EAAK,CAAL,CAJc;AAKpB,EAAA,IAAA,EAAM,CAAC,CAAC,EAAF,EAAM,EAAN,CALc;AAMpB;EACA,IAAM,EAAA,CAAC,CAAD,EAAI,CAAJ,CAAA;AAPc,CAAtB,CAAA;AASe,SAASC,aAAT,CAAuBJ,OAAvB,EAAgCL,MAAhC,EAAwC;EACrD,IAAIK,OAAO,KAAK,OAAhB,EAAyB;AACvB,IAAA,IAAIK,QAAQ,GAAGF,eAAe,CAACR,MAAM,CAAC79E,IAAR,CAA9B,CAAA;;AAEA,IAAA,IAAIu+E,QAAJ,EAAc;AACZ,MAAA,IAAIC,EAAE,GAAGX,MAAM,CAACY,SAAP,EAAT,CAAA;MACAD,EAAE,CAAC,CAAD,CAAF,IAASD,QAAQ,CAAC,CAAD,CAAR,GAAc,IAAvB,CAAA;AACAC,MAAAA,EAAE,CAAC,CAAD,CAAF,IAAS,CAACD,QAAQ,CAAC,CAAD,CAAT,IAAgB,IAAO,GAAA,IAAvB,CAAT,CAAA;MACAV,MAAM,CAACa,SAAP,CAAiBF,EAAjB,CAAA,CAAA;AACD,KAAA;AACF,GAAA;AACF;;AC9DD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIlzE,MAAM,GAAG,CAAC,CAAC,CAAC,kBAAD,EAAqB,iBAArB,CAAD,EAA0C,CAAC,kBAAD,EAAqB,iBAArB,CAA1C,EAAmF,CAAC,kBAAD,EAAqB,kBAArB,CAAnF,EAA6H,CAAC,kBAAD,EAAqB,kBAArB,CAA7H,EAAuK,CAAC,kBAAD,EAAqB,iBAArB,CAAvK,CAAD,CAAb,CAAA;AACe,SAASqzE,eAAT,CAAyBT,OAAzB,EAAkCL,MAAlC,EAA0C;EACvD,IAAIK,OAAO,KAAK,OAAZ,IAAuBL,MAAM,CAAC79E,IAAP,KAAgB,IAA3C,EAAiD;AAC/C69E,IAAAA,MAAM,CAACe,UAAP,CAAkBvhF,IAAlB,CAAuB;AACrBgP,MAAAA,IAAI,EAAE,SADe;MAErB+xE,QAAQ,EAAE9yE,MAAM,CAAC,CAAD,CAAA;KAFlB,CAAA,CAAA;AAID,GAAA;AACF;;ACtDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA,IAAIuzE,qBAAqB,GAAG,MAA5B,CAAA;;AAEA,IAAIC,eAAe;AACnB;AACA,YAAY;AACV,EAAA,SAASA,eAAT,CAAyBlD,OAAzB,EAAkCmD,OAAlC,EAA2CC,YAA3C,EAAyD;IACvD,IAAK3yE,CAAAA,IAAL,GAAY,SAAZ,CAAA;IACA,IAAK4yE,CAAAA,UAAL,GAAkBvD,aAAa,EAA/B,CAAA;IACA,IAAKK,CAAAA,QAAL,GAAgBH,OAAhB,CAAA;AACA,IAAA,IAAA,CAAKsD,aAAL,GAAqBF,YAArB,CAJuD;;AAMvD,IAAA,IAAA,CAAKG,QAAL,GAAgBC,UAAU,CAACL,OAAD,CAA1B,CAAA;AACD,GAAA;AACD;AACF;AACA;AACA;;;EAGED,eAAe,CAACxlF,SAAhB,CAA0B2iF,IAA1B,GAAiC,UAAUoD,OAAV,EAAmBC,YAAnB,EAAiC;IAChEA,YAAY,GAAGA,YAAY,IAAIT,qBAA/B,CAAA;;IAEA,IAAIU,MAAM,GAAG,IAAKN,CAAAA,UAAL,CAAgBxtD,GAAhB,CAAoB6tD,YAApB,CAAb,CAAA;;IAEA,IAAI,CAACC,MAAL,EAAa;AACX,MAAA,IAAIC,UAAU,GAAG,IAAA,CAAKC,eAAL,CAAqBH,YAArB,CAAjB,CAAA;;AAEAC,MAAAA,MAAM,GAAG,IAAKN,CAAAA,UAAL,CAAgB1zB,GAAhB,CAAoB+zB,YAApB,EAAkC;AACzC/C,QAAAA,OAAO,EAAEiD,UADgC;QAEzC/+D,YAAY,EAAEi/D,qBAAqB,CAACF,UAAD,CAAA;AAFM,OAAlC,CAAT,CAAA;AAID,KAAA;;IAED,IAAIhD,UAAU,GAAGd,aAAa,EAA9B,CAAA;IACA,IAAIiE,YAAY,GAAG,EAAnB,CAAA;AACA35E,IAAAA,MAAI,CAACu5E,MAAM,CAAChD,OAAR,EAAiB,UAAUsB,MAAV,EAAkB;AACrC,MAAA,IAAI+B,UAAU,GAAG/B,MAAM,CAAC79E,IAAxB,CADqC;;MAGrC,IAAIq/E,OAAO,IAAIvI,MAAM,CAACuI,OAAD,EAAUO,UAAV,CAArB,EAA4C;QAC1C/B,MAAM,GAAGA,MAAM,CAACgC,YAAP,CAAoBD,UAAU,GAAGP,OAAO,CAACO,UAAD,CAAxC,CAAT,CAAA;AACD,OAAA;;MAEDD,YAAY,CAACtiF,IAAb,CAAkBwgF,MAAlB,CAAA,CAAA;AACArB,MAAAA,UAAU,CAACjxB,GAAX,CAAeq0B,UAAf,EAA2B/B,MAA3B,CAAA,CAAA;AACD,KATG,CAAJ,CAAA;IAUA,OAAO;AACLtB,MAAAA,OAAO,EAAEoD,YADJ;AAELl/D,MAAAA,YAAY,EAAE8+D,MAAM,CAAC9+D,YAAP,IAAuB,IAAIJ,YAAJ,CAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAFhC;AAGLm8D,MAAAA,UAAU,EAAEA,UAAAA;KAHd,CAAA;GA1BF,CAAA;;AAiCAsC,EAAAA,eAAe,CAACxlF,SAAhB,CAA0BmmF,eAA1B,GAA4C,UAAUH,YAAV,EAAwB;IAClE,IAAI1D,OAAO,GAAG,IAAA,CAAKG,QAAnB,CAAA;IACA,IAAIgD,OAAO,GAAG,IAAA,CAAKI,QAAnB,CAAA;IACA,IAAIK,UAAJ,CAHkE;;IAKlE,IAAI;MACFA,UAAU,GAAGT,OAAO,GAAGe,YAAY,CAACf,OAAD,EAAUO,YAAV,CAAf,GAAyC,EAA7D,CAAA;KADF,CAEE,OAAO1iF,CAAP,EAAU;AACV,MAAA,MAAM,IAAI0tB,KAAJ,CAAU,6BAA6B1tB,CAAC,CAACigF,OAAzC,CAAN,CAAA;AACD,KAAA;;AAEDoB,IAAAA,SAAS,CAACrC,OAAD,EAAU4D,UAAV,CAAT,CAAA;AACAx5E,IAAAA,MAAI,CAACw5E,UAAD,EAAa,UAAU3B,MAAV,EAAkB;AACjC,MAAA,IAAI+B,UAAU,GAAG/B,MAAM,CAAC79E,IAAxB,CAAA;AACA+/E,MAAAA,aAAY,CAACnE,OAAD,EAAUiC,MAAV,CAAZ,CAAA;AACAc,MAAAA,eAAe,CAAC/C,OAAD,EAAUiC,MAAV,CAAf,CAHiC;AAIjC;;MAEA,IAAImC,WAAW,GAAG,IAAKd,CAAAA,aAAL,IAAsB,IAAKA,CAAAA,aAAL,CAAmBU,UAAnB,CAAxC,CAAA;;AAEA,MAAA,IAAII,WAAJ,EAAiB;AACfnC,QAAAA,MAAM,CAACoC,WAAP,CAAmBD,WAAW,CAAC3iE,IAA/B,EAAqC2iE,WAAW,CAAC1iE,GAAjD,EAAsD0iE,WAAW,CAACj9E,KAAlE,EAAyEi9E,WAAW,CAACh9E,MAArF,CAAA,CAAA;AACD,OAAA;KAVC,EAWD,IAXC,CAAJ,CAAA;AAYA,IAAA,OAAOw8E,UAAP,CAAA;GAxBF,CAAA;AA0BA;AACF;AACA;AACA;;;AAGEV,EAAAA,eAAe,CAACxlF,SAAhB,CAA0B4mF,aAA1B,GAA0C,YAAY;IACpD,OAAO;AACL;AACA;AACA;MACAC,OAAO,EAAE,KAAKhB,QAJT;MAKLJ,OAAO,EAAE,KAAKI,QALT;AAMLH,MAAAA,YAAY,EAAE,IAAKE,CAAAA,aAAAA;KANrB,CAAA;GADF,CAAA;;AAWA,EAAA,OAAOJ,eAAP,CAAA;AACD,CA5FD,EAFA,CAAA;;AAkGA,SAASY,qBAAT,CAA+BnD,OAA/B,EAAwC;AACtC,EAAA,IAAIrgF,IAAJ,CAAA;;AAEA,EAAA,KAAK,IAAIc,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGu/E,OAAO,CAACjgF,MAA5B,EAAoCU,CAAC,EAArC,EAAyC;IACvC,IAAIojF,UAAU,GAAG7D,OAAO,CAACv/E,CAAD,CAAP,CAAWilD,eAAX,EAAjB,CAAA;AACA/lD,IAAAA,IAAI,GAAGA,IAAI,IAAIkkF,UAAU,CAACxtE,KAAX,EAAf,CAAA;IACA1W,IAAI,CAACglB,KAAL,CAAWk/D,UAAX,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,OAAOlkF,IAAP,CAAA;AACD,CAAA;;AAED,SAASkjF,UAAT,CAAoB54B,MAApB,EAA4B;AAC1B,EAAA,OAAO,CAAC5/C,QAAQ,CAAC4/C,MAAD,CAAT,GAAoBA,MAApB,GAA6B,OAAO65B,IAAP,KAAgB,WAAhB,IAA+BA,IAAI,CAACltB,KAApC,GAA4CktB,IAAI,CAACltB,KAAL,CAAW3M,MAAX,CAA5C,GAAiE,IAAI85B,QAAJ,CAAa,UAAA,GAAa95B,MAAb,GAAsB,IAAnC,CAArG,EAAA,CAAA;AACD;;ACnKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA,IAAIvuC,OAAO,GAAGyjE,aAAa,EAA3B,CAAA;AACA,uBAAe;AACb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE6E,EAAAA,WAAW,EAAE,SAAU3E,WAAAA,CAAAA,OAAV,EAAmB4E,MAAnB,EAA2BC,eAA3B,EAA4C;IACvD,IAAID,MAAM,CAAC9L,GAAX,EAAgB;MACd,IAAIgM,QAAQ,GAAG,IAAI/E,cAAJ,CAAmBC,OAAnB,EAA4B4E,MAAM,CAAC9L,GAAnC,CAAf,CAAA;AACAz8D,MAAAA,OAAO,CAACszC,GAAR,CAAYqwB,OAAZ,EAAqB8E,QAArB,CAAA,CAAA;AACD,KAHD,MAGO;AACL;AACA;AACA;AACA;AACA;MACA,IAAI3B,OAAO,GAAGyB,MAAM,CAACL,OAAP,IAAkBK,MAAM,CAACzB,OAAvC,CAAA;;AAEA,MAAA,IAAIA,OAAO,IAAI,CAACyB,MAAM,CAACG,QAAvB,EAAiC;QAC/BF,eAAe,GAAGD,MAAM,CAACxB,YAAzB,CAAA;AACD,OAFD,MAEO;AACLD,QAAAA,OAAO,GAAGyB,MAAV,CAAA;AACD,OAAA;;MAED,IAAIE,QAAQ,GAAG,IAAI5B,eAAJ,CAAoBlD,OAApB,EAA6BmD,OAA7B,EAAsC0B,eAAtC,CAAf,CAAA;AACAxoE,MAAAA,OAAO,CAACszC,GAAR,CAAYqwB,OAAZ,EAAqB8E,QAArB,CAAA,CAAA;AACD,KAAA;GAnDU;EAqDbE,cAAc,EAAE,SAAUhF,cAAAA,CAAAA,OAAV,EAAmB;AACjC,IAAA,OAAO3jE,OAAO,CAACwZ,GAAR,CAAYmqD,OAAZ,CAAP,CAAA;GAtDW;;AAyDb;AACF;AACA;AACA;EACEsE,aAAa,EAAE,SAAUtE,aAAAA,CAAAA,OAAV,EAAmB;IAChC,IAAI8E,QAAQ,GAAGzoE,OAAO,CAACwZ,GAAR,CAAYmqD,OAAZ,CAAf,CADgC;;IAGhC,OAAO8E,QAAQ,IAAIA,QAAQ,CAACr0E,IAAT,KAAkB,SAA9B,IAA2Cq0E,QAAQ,CAACR,aAAT,EAAlD,CAAA;GAhEW;AAkEbjE,EAAAA,IAAI,EAAE,SAAUL,IAAAA,CAAAA,OAAV,EAAmByD,OAAnB,EAA4BC,YAA5B,EAA0C;AAC9C,IAAA,IAAIoB,QAAQ,GAAGzoE,OAAO,CAACwZ,GAAR,CAAYmqD,OAAZ,CAAf,CAAA;;IAEA,IAAI,CAAC8E,QAAL,EAAe;AACb,MAAA,IAAIhwE,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCqE,QAAAA,OAAO,CAACC,KAAR,CAAc,MAAS0mE,GAAAA,OAAT,GAAmB,uDAAjC,CAAA,CAAA;AACD,OAAA;;AAED,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,OAAO8E,QAAQ,CAACzE,IAAT,CAAcoD,OAAd,EAAuBC,YAAvB,CAAP,CAAA;AACD,GAAA;AA9EY,CAAf;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsCA;AACA;AACA;AACA;AACA;;AAEA,IAAIuB,yBAAyB,GAAG,CAAC,MAAD,EAAS,QAAT,EAAmB,MAAnB,EAA2B,SAA3B,EAAsC,SAAtC,EAAiD,UAAjD,EAA6D,MAA7D,CAAhC,CAAA;AACA,IAAIC,4BAA4B,GAAG9/C,aAAA,CAAqB6/C,yBAArB,CAAnC,CAAA;AACA,IAAIE,qBAAqB,GAAG//C,aAAA,CAAqB6/C,yBAAyB,CAACzS,MAA1B,CAAiC,CAAC,GAAD,CAAjC,CAArB,CAA5B,CAAA;AACA,IAAI4S,cAAc,GAAGhgD,aAAA,CAAqB6/C,yBAAyB,CAACzS,MAA1B,CAAiC,CAAC,GAAD,CAAjC,CAArB,CAArB,CAAA;AACA,IAAI6S,WAAW,GAAGta,SAAS,EAA3B,CAAA;;AAEA,SAASua,iBAAT,CAA2B3rC,KAA3B,EAAkC;AAChC,EAAA,IAAI5pB,SAAS,GAAG4pB,KAAK,CAAC/jB,YAAN,EAAhB,CAAA;EACA,IAAI2vD,SAAS,GAAG5rC,KAAK,CAAC9jB,GAAN,CAAU,WAAV,CAAhB,CAFgC;AAGhC;;EAEA,IAAI0vD,SAAS,IAAI,IAAjB,EAAuB;IACrBx1D,SAAS,CAAC9tB,IAAV,GAAiBsjF,SAAjB,CAAA;AACD,GAAA;;AAED,EAAA,OAAOx1D,SAAP,CAAA;AACD;AACD;AACA;;;AAGA,SAASy1D,YAAT,CAAsBC,SAAtB,EAAiC;AAC/B,EAAA,IAAIzjF,KAAK,GAAGyjF,SAAS,CAACzjF,KAAtB,CAAA;;AAEA,EAAA,IAAIA,KAAJ,EAAW;IACTA,KAAK,CAACG,MAAN,GAAeH,KAAK,CAACG,MAAN,IAAgBH,KAAK,CAACC,IAArC,CAAA;IACAD,KAAK,CAACC,IAAN,GAAa,IAAb,CAAA;AACD,GAAA;AACF,CAAA;;AAED,IAAIyjF,OAAO;AACX;AACA,YAAY;EACV,SAASA,OAAT,CAAiBzrE,GAAjB,EAAsB;AACpB,IAAA,IAAI8U,KAAK,GAAG,IAAI0F,OAAJ,EAAZ,CAAA;AACA,IAAA,IAAA,CAAKkxD,GAAL,GAAWC,MAAM,CAAC,aAAD,CAAjB,CAAA;IACA,IAAKC,CAAAA,WAAL,GAAmB,IAAIvR,cAAJ,CAAmBr6D,GAAG,CAACghC,KAAJ,EAAnB,CAAnB,CAAA;AACA,IAAA,IAAA,CAAK6qC,eAAL,GAAuB;AACrBv8E,MAAAA,MAAM,EAAEwlB,KAAAA;KADV,CAAA;IAGA,IAAKA,CAAAA,KAAL,GAAaA,KAAb,CAAA;IACAA,KAAK,CAACO,GAAN,CAAU,IAAKy2D,CAAAA,aAAL,GAAqB,IAAItxD,OAAJ,EAA/B,CAAA,CAAA;IACA1F,KAAK,CAACO,GAAN,CAAU,IAAK02D,CAAAA,SAAL,GAAiB,IAAIvxD,OAAJ,EAA3B,CAAA,CAAA;AACD,GAAA;;AAEDixD,EAAAA,OAAO,CAAChoF,SAAR,CAAkB2uB,IAAlB,GAAyB,UAAU45D,aAAV,EAAyBx6C,OAAzB,EAAkCxxB,GAAlC,EAAuCisE,QAAvC,EAAiD13C,OAAjD,EAA0D;IACjF,IAAI23C,KAAK,GAAGF,aAAa,CAAC3kC,QAAd,KAA2B,KAAvC,CADiF;AAEjF;;IAEA,IAAI1vB,IAAI,GAAGq0D,aAAa,CAACx2D,OAAd,IAAyBw2D,aAAa,CAACx2D,OAAd,EAApC,CAAA;AACA02D,IAAAA,KAAK,IAAI16C,OAAO,CAAC4V,aAAR,CAAsB;AAC7BC,MAAAA,QAAQ,EAAE,QADmB;AAE7B8kC,MAAAA,OAAO,EAAE,KAAA;KAFF,EAGN,UAAUC,SAAV,EAAqB;MACtB,IAAI,CAACz0D,IAAD,IAASy0D,SAAS,CAACC,eAAV,EAAA,KAAgCL,aAA7C,EAA4D;AAC1Dr0D,QAAAA,IAAI,GAAGy0D,SAAS,CAAC52D,OAAV,EAAP,CAAA;AACD,OAAA;AACF,KAPQ,CAAT,CAAA;AAQA,IAAA,IAAI82D,GAAG,GAAGN,aAAa,CAACx3D,gBAAxB,CAAA;IACA,IAAI+3D,YAAY,GAAG,IAAA,CAAKT,aAAxB,CAAA;IACA,IAAIh3D,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAI03D,aAAa,GAAGF,GAAG,CAACG,gBAAJ,EAApB,CAAA;AACA,IAAA,IAAIC,gBAAgB,GAAGF,aAAa,CAACG,GAArC,CAAA;AACA,IAAA,IAAIC,iBAAiB,GAAGJ,aAAa,CAACK,IAAtC,CAlBiF;;IAoBjF,IAAIC,WAAW,GAAG,CAACP,YAAY,CAACnzD,OAAb,CAAqB,CAArB,CAAD,IAA4Bmb,OAA9C,CAAA;;AAEA,IAAA,IAAIu4C,WAAJ,EAAiB;AACfh4D,MAAAA,KAAK,CAAC5wB,CAAN,GAAU0oF,iBAAiB,CAAC1oF,CAA5B,CAAA;AACA4wB,MAAAA,KAAK,CAAC3wB,CAAN,GAAUyoF,iBAAiB,CAACzoF,CAA5B,CAAA;AACA2wB,MAAAA,KAAK,CAACtb,MAAN,GAAeozE,iBAAiB,CAACpzE,MAAjC,CAAA;AACAsb,MAAAA,KAAK,CAACrb,MAAN,GAAemzE,iBAAiB,CAACnzE,MAAjC,CAAA;AACAqb,MAAAA,KAAK,CAACxH,KAAN,EAAA,CAAA;AACD,KAND,MAMO;AACLkN,MAAAA,aAAA,CAAoB1F,KAApB,EAA2B83D,iBAA3B,EAA8CZ,aAA9C,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIe,0BAA0B,GAAGp1D,IAAI,IAAIA,IAAI,CAAClC,SAAL,CAAe,YAAf,CAAR,IAAwCkC,IAAI,CAAClC,SAAL,CAAe,YAAf,CAA6BhvB,CAAAA,MAA7B,GAAsC,CAA/G,CAAA;AACA,IAAA,IAAIumF,YAAY,GAAG;AACjBhtE,MAAAA,GAAG,EAAEA,GADY;AAEjBssE,MAAAA,GAAG,EAAEA,GAFY;AAGjBN,MAAAA,aAAa,EAAEA,aAHE;AAIjBr0D,MAAAA,IAAI,EAAEA,IAJW;AAKjBo1D,MAAAA,0BAA0B,EAAEA,0BALX;AAMjBb,MAAAA,KAAK,EAAEA,KANU;AAOjBQ,MAAAA,gBAAgB,EAAEA,gBAAAA;KAPpB,CAAA;;AAUA,IAAA,IAAIJ,GAAG,CAACW,YAAJ,KAAqB,SAAzB,EAAoC;MAClC,IAAKC,CAAAA,aAAL,CAAmBF,YAAnB,CAAA,CAAA;AACD,KAFD,MAEO,IAAIV,GAAG,CAACW,YAAJ,KAAqB,QAAzB,EAAmC;MACxC,IAAKE,CAAAA,SAAL,CAAeH,YAAf,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKI,iBAAL,CAAuBpB,aAAvB,EAAsCx6C,OAAtC,EAA+CxxB,GAA/C,CAAA,CAAA;;IAEA,IAAKqtE,CAAAA,uBAAL,CAA6BrB,aAA7B,EAA4CO,YAA5C,EAA0DvsE,GAA1D,EAA+DisE,QAA/D,CAAA,CAAA;GAnDF,CAAA;;AAsDAR,EAAAA,OAAO,CAAChoF,SAAR,CAAkBypF,aAAlB,GAAkC,UAAUF,YAAV,EAAwB;IACxD,IAAIM,kBAAkB,GAAG,IAAKC,CAAAA,mBAAL,GAA2BpiD,aAAA,EAApD,CAAA;AACA,IAAA,IAAIqiD,iBAAiB,GAAGriD,aAAA,EAAxB,CAAA;IACA,IAAIohD,YAAY,GAAG,IAAA,CAAKT,aAAxB,CAAA;AACA,IAAA,IAAIY,gBAAgB,GAAGM,YAAY,CAACN,gBAApC,CAAA;AACA,IAAA,IAAIV,aAAa,GAAGgB,YAAY,CAAChB,aAAjC,CAAA;AACA,IAAA,IAAIr0D,IAAI,GAAGq1D,YAAY,CAACr1D,IAAxB,CAAA;AACA,IAAA,IAAI81D,UAAU,GAAGT,YAAY,CAACV,GAAb,CAAiBmB,UAAlC,CAAA;AACA,IAAA,IAAIC,gBAAgB,GAAGD,UAAU,IAAIA,UAAU,CAACE,MAAhD,CAAA;;AAEA,IAAA,SAASC,cAAT,CAAwBvvD,KAAxB,EAA+BwvD,OAA/B,EAAwC;AACtC,MAAA,IAAIA,OAAJ,EAAa;AACX;AACAxvD,QAAAA,KAAK,GAAGwvD,OAAO,CAACxvD,KAAD,CAAf,CAAA;AACD,OAAA;;AAED,MAAA,OAAOA,KAAK,IAAI,CAACA,KAAK,CAAC,CAAD,CAAL,GAAWquD,gBAAgB,CAAClzE,MAA5B,GAAqCkzE,gBAAgB,CAACxoF,CAAvD,EAA0Dm6B,KAAK,CAAC,CAAD,CAAL,GAAWquD,gBAAgB,CAACjzE,MAA5B,GAAqCizE,gBAAgB,CAACvoF,CAAhH,CAAhB,CAAA;AACD,KAAA;;AAED,IAAA,CAAA;;IAEA,SAAS2pF,sBAAT,CAAgCC,QAAhC,EAA0C;AACxC,MAAA,IAAIC,SAAS,GAAG,EAAhB,CADwC;;MAGxC,IAAIH,OAAO,GAAG,CAACH,gBAAD,IAAqBD,UAArB,IAAmCA,UAAU,CAACI,OAA5D,CAAA;;AAEA,MAAA,KAAK,IAAI1mF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4mF,QAAQ,CAACtnF,MAA7B,EAAqC,EAAEU,CAAvC,EAA0C;QACxC,IAAI8mF,KAAK,GAAGL,cAAc,CAACG,QAAQ,CAAC5mF,CAAD,CAAT,EAAc0mF,OAAd,CAA1B,CAAA;AACAI,QAAAA,KAAK,IAAID,SAAS,CAACxmF,IAAV,CAAeymF,KAAf,CAAT,CAAA;AACD,OAAA;;AAED,MAAA,OAAOD,SAAP,CAAA;AACD,KAAA;;IAED,SAASE,YAAT,CAAsBz4E,MAAtB,EAA8B;MAC5B,OAAO;AACL1G,QAAAA,KAAK,EAAE;UACL0G,MAAM,EAAEq4E,sBAAsB,CAACr4E,MAAD,CAAA;AADzB,SAAA;OADT,CAAA;AAKD,KAAA;;IAED82E,YAAY,CAAC7zD,SAAb,EAAA,CA1CwD;;IA4CxDyS,MAAA,CAAY6hD,YAAY,CAACV,GAAb,CAAiB5F,OAA7B,EAAsC,UAAUsB,MAAV,EAAkB;AACtD,MAAA,IAAI+B,UAAU,GAAG/B,MAAM,CAAC79E,IAAxB,CADsD;AAEtD;AACA;AACA;AACA;;AAEA,MAAA,IAAIgkF,WAAW,GAAGb,kBAAkB,CAAC1xD,GAAnB,CAAuBmuD,UAAvB,CAAlB,CAAA;;MAEA,IAAItgF,EAAE,GAAG+jF,iBAAiB,CAAC5xD,GAAlB,CAAsBmuD,UAAtB,KAAqC,EAA9C;AAAA,UACI1oC,OAAO,GAAG53C,EAAE,CAAC43C,OADjB;AAAA,UAEI+sC,WAAW,GAAG3kF,EAAE,CAAC2kF,WAFrB,CAAA;;MAIA,IAAI,CAACD,WAAL,EAAkB;AAChBA,QAAAA,WAAW,GAAGb,kBAAkB,CAAC53B,GAAnB,CAAuBq0B,UAAvB,EAAmC,IAAIvvD,OAAJ,EAAnC,CAAd,CAAA;QACA+xD,YAAY,CAACl3D,GAAb,CAAiB84D,WAAjB,CAAA,CAAA;QACA9sC,OAAO,GAAG1pB,IAAI,GAAGA,IAAI,CAAC85B,WAAL,CAAiBs4B,UAAjB,CAAH,GAAkC,IAAhD,CAAA;QACAqE,WAAW,GAAGpB,YAAY,CAACd,KAAb,GAAqBF,aAAa,CAACqC,cAAd,CAA6BtE,UAA7B,CAArB,GAAgEpyD,IAAI,GAAGA,IAAI,CAAC6D,YAAL,CAAkB6lB,OAAlB,CAAH,GAAgC,IAAlH,CAAA;AACAmsC,QAAAA,iBAAiB,CAAC93B,GAAlB,CAAsBq0B,UAAtB,EAAkC;AAChC1oC,UAAAA,OAAO,EAAEA,OADuB;AAEhC+sC,UAAAA,WAAW,EAAEA,WAAAA;SAFf,CAAA,CAAA;AAID,OAAA;;MAED,IAAIE,eAAe,GAAG,EAAtB,CAAA;MACA,IAAIC,gBAAgB,GAAG,EAAvB,CAAA;MACApjD,MAAA,CAAY68C,MAAM,CAACe,UAAnB,EAA+B,UAAUyF,QAAV,EAAoB;AACjD;AACA,QAAA,IAAIA,QAAQ,CAACh4E,IAAT,KAAkB,SAAtB,EAAiC;AAC/B,UAAA,IAAIi4E,KAAK,GAAG,CAACD,QAAQ,CAACjG,QAAV,CAAA,CAAoBhQ,MAApB,CAA2BiW,QAAQ,CAACE,SAAT,IAAsB,EAAjD,CAAZ,CAAA;;AAEA,UAAA,IAAIhB,gBAAJ,EAAsB;AACpBe,YAAAA,KAAK,GAAGE,YAAY,CAACF,KAAD,EAAQf,gBAAR,CAApB,CAAA;AACD,WAAA;;AAEDviD,UAAAA,MAAA,CAAYsjD,KAAZ,EAAmB,UAAUG,IAAV,EAAgB;AACjCN,YAAAA,eAAe,CAAC9mF,IAAhB,CAAqB,IAAIgzB,OAAJ,CAAoB0zD,YAAY,CAACU,IAAD,CAAhC,CAArB,CAAA,CAAA;WADF,CAAA,CAAA;AAGD,SAVD;aAWK;AACD,UAAA,IAAIn5E,MAAM,GAAG+4E,QAAQ,CAAC/4E,MAAtB,CAAA;;AAEA,UAAA,IAAIi4E,gBAAJ,EAAsB;YACpBj4E,MAAM,GAAGk5E,YAAY,CAACl5E,MAAD,EAASi4E,gBAAT,EAA2B,IAA3B,CAArB,CAAA;AACD,WAAA;;AAEDviD,UAAAA,MAAA,CAAY11B,MAAZ,EAAoB,UAAUA,MAAV,EAAkB;AACpC84E,YAAAA,gBAAgB,CAAC/mF,IAAjB,CAAsB,IAAIgzB,UAAJ,CAAqB0zD,YAAY,CAACz4E,MAAD,CAAjC,CAAtB,CAAA,CAAA;WADF,CAAA,CAAA;AAGD,SAAA;OAvBL,CAAA,CAAA;AAyBA,MAAA,IAAIo5E,QAAQ,GAAGjB,cAAc,CAAC5F,MAAM,CAACY,SAAP,EAAD,EAAqB6E,UAAU,IAAIA,UAAU,CAACI,OAA9C,CAA7B,CAAA;;AAEA,MAAA,SAASiB,kBAAT,CAA4BC,QAA5B,EAAsCC,MAAtC,EAA8C;AAC5C,QAAA,IAAI,CAACD,QAAQ,CAACtoF,MAAd,EAAsB;AACpB,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAIwoF,YAAY,GAAG,IAAIz0D,YAAJ,CAAyB;AAC1C1B,UAAAA,OAAO,EAAE,IADiC;AAE1C+b,UAAAA,sBAAsB,EAAE,CAFkB;AAG1C9lC,UAAAA,KAAK,EAAE;AACLgB,YAAAA,KAAK,EAAEg/E,QAAAA;AADF,WAAA;AAHmC,SAAzB,CAAnB,CAAA;QAOAZ,WAAW,CAAC94D,GAAZ,CAAgB45D,YAAhB,CAAA,CAAA;QACAC,yBAAyB,CAAClC,YAAD,EAAeiC,YAAf,EAA6B5tC,OAA7B,EAAsC+sC,WAAtC,CAAzB,CAAA;AACAe,QAAAA,mBAAmB,CAACnC,YAAD,EAAeiC,YAAf,EAA6BlF,UAA7B,EAAyCqE,WAAzC,EAAsDpC,aAAtD,EAAqE3qC,OAArE,EAA8EwtC,QAA9E,CAAnB,CAAA;;AAEA,QAAA,IAAIG,MAAJ,EAAY;UACVzD,YAAY,CAAC0D,YAAD,CAAZ,CAAA;AACA9jD,UAAAA,MAAA,CAAY8jD,YAAY,CAACvpC,MAAzB,EAAiC6lC,YAAjC,CAAA,CAAA;AACD,SAAA;AACF,OAAA;;MAEDuD,kBAAkB,CAACR,eAAD,CAAlB,CAAA;AACAQ,MAAAA,kBAAkB,CAACP,gBAAD,EAAmB,IAAnB,CAAlB,CAAA;AACD,KA7ED,EA5CwD;;AA2HxDjB,IAAAA,kBAAkB,CAACn9E,IAAnB,CAAwB,UAAUg+E,WAAV,EAAuBpE,UAAvB,EAAmC;AACzD,MAAA,IAAItgF,EAAE,GAAG+jF,iBAAiB,CAAC5xD,GAAlB,CAAsBmuD,UAAtB,CAAT;AAAA,UACI1oC,OAAO,GAAG53C,EAAE,CAAC43C,OADjB;AAAA,UAEI+sC,WAAW,GAAG3kF,EAAE,CAAC2kF,WAFrB,CAAA;;AAIAgB,MAAAA,0BAA0B,CAACpC,YAAD,EAAemB,WAAf,EAA4BpE,UAA5B,EAAwCqE,WAAxC,EAAqDpC,aAArD,EAAoE3qC,OAApE,CAA1B,CAAA;MACAguC,qBAAqB,CAACrC,YAAD,EAAemB,WAAf,EAA4BpE,UAA5B,EAAwCqE,WAAxC,EAAqDpC,aAArD,CAArB,CAAA;MACAsD,0BAA0B,CAACtC,YAAD,EAAemB,WAAf,EAA4BpE,UAA5B,EAAwCqE,WAAxC,EAAqDpC,aAArD,CAA1B,CAAA;AACD,KARD,EAQG,IARH,CAAA,CAAA;GA3HF,CAAA;;AAsIAP,EAAAA,OAAO,CAAChoF,SAAR,CAAkB0pF,SAAlB,GAA8B,UAAUH,YAAV,EAAwB;AACpD,IAAA,IAAIjH,OAAO,GAAGiH,YAAY,CAACV,GAAb,CAAiBjkF,GAA/B,CAAA;AACA,IAAA,IAAIqkF,gBAAgB,GAAGM,YAAY,CAACN,gBAApC,CAAA;AACA,IAAA,IAAA,CAAKX,SAAL,CAAe7nF,CAAf,GAAmBwoF,gBAAgB,CAACxoF,CAApC,CAAA;AACA,IAAA,IAAA,CAAK6nF,SAAL,CAAe5nF,CAAf,GAAmBuoF,gBAAgB,CAACvoF,CAApC,CAAA;AACA,IAAA,IAAA,CAAK4nF,SAAL,CAAevyE,MAAf,GAAwBkzE,gBAAgB,CAAClzE,MAAzC,CAAA;AACA,IAAA,IAAA,CAAKuyE,SAAL,CAAetyE,MAAf,GAAwBizE,gBAAgB,CAACjzE,MAAzC,CAAA;;AAEA,IAAA,IAAI,IAAK81E,CAAAA,mBAAL,CAAyBxJ,OAAzB,CAAJ,EAAuC;AACrC,MAAA,IAAA,CAAKyJ,QAAL,EAAA,CAAA;;MAEA,IAAKC,CAAAA,OAAL,CAAa1J,OAAb,CAAA,CAAA;AACD,KAAA;;IAED,IAAI2J,gBAAgB,GAAG,IAAKC,CAAAA,iBAAL,GAAyBxkD,aAAA,EAAhD,CAAA;IACA,IAAIykD,SAAS,GAAG,KAAhB,CAAA;IACAzkD,MAAA,CAAY,IAAK0kD,CAAAA,iBAAL,CAAuBjQ,KAAnC,EAA0C,UAAU4H,SAAV,EAAqB;AAC7D;AACA;AACA;AACA;AACA,MAAA,IAAIuC,UAAU,GAAGvC,SAAS,CAACr9E,IAA3B,CAAA;AACA,MAAA,IAAI6hF,aAAa,GAAGgB,YAAY,CAAChB,aAAjC,CAAA;AACA,MAAA,IAAIr0D,IAAI,GAAGq1D,YAAY,CAACr1D,IAAxB,CAAA;AACA,MAAA,IAAIypD,eAAe,GAAGoG,SAAS,CAACpG,eAAhC,CAAA;AACA,MAAA,IAAI14E,EAAE,GAAG8+E,SAAS,CAAC9+E,EAAnB,CAAA;MACA,IAAI24C,OAAO,GAAG1pB,IAAI,GAAGA,IAAI,CAAC85B,WAAL,CAAiBs4B,UAAjB,CAAH,GAAkC,IAApD,CAAA;AACA,MAAA,IAAIqE,WAAW,GAAGpC,aAAa,CAACqC,cAAd,CAA6BtE,UAA7B,CAAlB,CAAA;;MAEA,IAAIkB,4BAA4B,CAACrvD,GAA7B,CAAiCwlD,eAAjC,CAAqD,IAAA,IAArD,IAA6D14E,EAAE,YAAYonF,WAA/E,EAA4F;QAC1FZ,yBAAyB,CAAClC,YAAD,EAAetkF,EAAf,EAAmB24C,OAAnB,EAA4B+sC,WAA5B,CAAzB,CAAA;AACD,OAAA;;MAED,IAAI1lF,EAAE,YAAYonF,WAAlB,EAA+B;QAC7BpnF,EAAE,CAACowB,OAAH,GAAa,IAAb,CAAA;AACD,OAnB4D;AAoB7D;AACA;;;AAGApwB,MAAAA,EAAE,CAACqnF,cAAH,GAAoB,CAApB,CAxB6D;;AA0B7D,MAAA,IAAI,CAACvI,SAAS,CAAC5G,SAAf,EAA0B;AACxB;AACA;AACA,QAAA,IAAIuK,cAAc,CAACvvD,GAAf,CAAmBwlD,eAAnB,CAAA,IAAuC,IAA3C,EAAiD;AAC/C+N,UAAAA,mBAAmB,CAACnC,YAAD,EAAetkF,EAAf,EAAmBqhF,UAAnB,EAA+BqE,WAA/B,EAA4CpC,aAA5C,EAA2D3qC,OAA3D,EAAoE,IAApE,CAAnB,CAAA;AACD,SAAA;;AAED+tC,QAAAA,0BAA0B,CAACpC,YAAD,EAAetkF,EAAf,EAAmBqhF,UAAnB,EAA+BqE,WAA/B,EAA4CpC,aAA5C,EAA2D3qC,OAA3D,CAA1B,CAAA;QACAguC,qBAAqB,CAACrC,YAAD,EAAetkF,EAAf,EAAmBqhF,UAAnB,EAA+BqE,WAA/B,EAA4CpC,aAA5C,CAArB,CAAA;;AAEA,QAAA,IAAId,qBAAqB,CAACtvD,GAAtB,CAA0BwlD,eAA1B,CAAA,IAA8C,IAAlD,EAAwD;AACtD,UAAA,IAAI4O,OAAO,GAAGV,0BAA0B,CAACtC,YAAD,EAAetkF,EAAf,EAAmBqhF,UAAnB,EAA+BqE,WAA/B,EAA4CpC,aAA5C,CAAxC,CAAA;;UAEA,IAAIgE,OAAO,KAAK,MAAhB,EAAwB;AACtBJ,YAAAA,SAAS,GAAG,IAAZ,CAAA;AACD,WAAA;;AAED,UAAA,IAAIK,GAAG,GAAGP,gBAAgB,CAAC9zD,GAAjB,CAAqBmuD,UAArB,CAAoC2F,IAAAA,gBAAgB,CAACh6B,GAAjB,CAAqBq0B,UAArB,EAAiC,EAAjC,CAA9C,CAAA;UACAkG,GAAG,CAACzoF,IAAJ,CAASkB,EAAT,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KA/CD,EA+CG,IA/CH,CAAA,CAAA;;AAiDA,IAAA,IAAA,CAAKwnF,oBAAL,CAA0BN,SAA1B,EAAqC5C,YAArC,CAAA,CAAA;GAjEF,CAAA;;EAoEAvB,OAAO,CAAChoF,SAAR,CAAkBysF,oBAAlB,GAAyC,UAAUN,SAAV,EAAqB5C,YAArB,EAAmC;AAC1E;AACA;AACA;AACA,IAAA,IAAI4C,SAAS,IAAI5C,YAAY,CAACd,KAA9B,EAAqC;AACnC,MAAA,IAAIiE,SAAS,GAAGnD,YAAY,CAAChB,aAAb,CAA2BtwD,QAA3B,CAAoC,CAAC,MAAD,EAAS,WAAT,CAApC,EAA2DC,YAA3D,EAAhB,CADmC;AAEnC;;AAEA,MAAA,IAAIy0D,SAAS,GAAGD,SAAS,CAACvnF,OAA1B,CAAA;;MAEA,IAAKinF,CAAAA,iBAAL,CAAuB1tE,IAAvB,CAA4Bye,QAA5B,CAAqC,UAAUl4B,EAAV,EAAc;AACjD,QAAA,IAAI,CAACA,EAAE,CAACg4B,OAAR,EAAiB;AACf;AACA;UACA2vD,oBAAoB,CAAC3nF,EAAD,CAApB,CAAA;AACA,UAAA,IAAIX,KAAK,GAAGW,EAAE,CAAC40B,WAAH,CAAe,MAAf,CAAA,CAAuBv1B,KAAvB,IAAgC,EAA5C,CAJe;;UAMf,IAAIA,KAAK,CAACa,OAAN,IAAiB,IAAjB,IAAyBwnF,SAAS,IAAI,IAA1C,EAAgD;YAC9CroF,KAAK,CAACa,OAAN,GAAgBwnF,SAAhB,CAAA;AACD,WARc;AASf;;;UAGA1nF,EAAE,CAAC40B,WAAH,CAAe,UAAf,CAAA,CAAA;AACD,SAAA;OAdH,CAAA,CAAA;AAgBD,KAAA;GA1BH,CAAA;;AA6BAmuD,EAAAA,OAAO,CAAChoF,SAAR,CAAkBo8B,MAAlB,GAA2B,YAAY;IACrC,IAAKisD,CAAAA,aAAL,CAAmBpzD,SAAnB,EAAA,CAAA;;IAEA,IAAK60D,CAAAA,mBAAL,GAA2B,IAA3B,CAAA;;IAEA,IAAKxB,CAAAA,SAAL,CAAerzD,SAAf,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAK82D,QAAL,EAAA,CAAA;;IAEA,IAAK5D,CAAAA,WAAL,CAAiBvlE,OAAjB,EAAA,CAAA;;IAEA,IAAKwlE,CAAAA,eAAL,GAAuB,IAAvB,CAAA;GAXF,CAAA;;EAcAJ,OAAO,CAAChoF,SAAR,CAAkB6sF,uBAAlB,GAA4C,UAAUnmF,IAAV,EAAgBomF,QAAhB,EAA0B;IACpE,IAAIpmF,IAAI,IAAI,IAAZ,EAAkB;AAChB,MAAA,OAAO,EAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAImiF,GAAG,GAAGiE,QAAQ,CAAC/7D,gBAAnB,CAAA;;AAEA,IAAA,IAAI83D,GAAG,CAACW,YAAJ,KAAqB,SAAzB,EAAoC;MAClC,IAAIK,kBAAkB,GAAG,IAAA,CAAKC,mBAA9B,CAAA;;AAEA,MAAA,IAAID,kBAAJ,EAAwB;AACtB,QAAA,IAAIa,WAAW,GAAGb,kBAAkB,CAAC1xD,GAAnB,CAAuBzxB,IAAvB,CAAlB,CAAA;AACA,QAAA,OAAOgkF,WAAW,GAAG,CAACA,WAAD,CAAH,GAAmB,EAArC,CAAA;AACD,OAAA;AACF,KAPD,MAOO,IAAI7B,GAAG,CAACW,YAAJ,KAAqB,QAAzB,EAAmC;MACxC,OAAO,IAAA,CAAK0C,iBAAL,IAA0B,IAAKA,CAAAA,iBAAL,CAAuB/zD,GAAvB,CAA2BzxB,IAA3B,CAA1B,IAA8D,EAArE,CAAA;AACD,KAAA;GAhBH,CAAA;;AAmBAshF,EAAAA,OAAO,CAAChoF,SAAR,CAAkB8rF,mBAAlB,GAAwC,UAAUxJ,OAAV,EAAmB;IACzD,OAAO,IAAA,CAAKyK,WAAL,KAAqBzK,OAA5B,CAAA;GADF,CAAA;;AAIA0F,EAAAA,OAAO,CAAChoF,SAAR,CAAkBgsF,OAAlB,GAA4B,UAAU1J,OAAV,EAAmB;AAC7C,IAAA,IAAI8E,QAAQ,GAAG4F,gBAAgB,CAAC1F,cAAjB,CAAgChF,OAAhC,CAAf,CAAA;;AAEA,IAAA,IAAI8E,QAAQ,IAAIA,QAAQ,CAACr0E,IAAT,KAAkB,QAAlC,EAA4C;MAC1C,IAAIqxE,UAAU,GAAGgD,QAAQ,CAACnD,UAAT,CAAoB,IAAA,CAAKgE,GAAzB,CAAjB,CAAA;;AAEA,MAAA,IAAA,CAAKK,SAAL,CAAe12D,GAAf,CAAmBwyD,UAAU,CAAC1lE,IAA9B,CAAA,CAAA;;MAEA,IAAK0tE,CAAAA,iBAAL,GAAyBhI,UAAzB,CAAA;MACA,IAAK2I,CAAAA,WAAL,GAAmBzK,OAAnB,CAAA;AACD,KAAA;GAVH,CAAA;;AAaA0F,EAAAA,OAAO,CAAChoF,SAAR,CAAkB+rF,QAAlB,GAA6B,YAAY;IACvC,IAAIzJ,OAAO,GAAG,IAAA,CAAKyK,WAAnB,CAAA;;IAEA,IAAIzK,OAAO,IAAI,IAAf,EAAqB;AACnB,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI8E,QAAQ,GAAG4F,gBAAgB,CAAC1F,cAAjB,CAAgChF,OAAhC,CAAf,CAAA;;AAEA,IAAA,IAAI8E,QAAQ,IAAIA,QAAQ,CAACr0E,IAAT,KAAkB,QAAlC,EAA4C;AAC1Cq0E,MAAAA,QAAQ,CAAC/C,WAAT,CAAqB,IAAA,CAAK4D,GAA1B,CAAA,CAAA;AACD,KAAA;;IAED,IAAKmE,CAAAA,iBAAL,GAAyB,IAAzB,CAAA;IACA,IAAKF,CAAAA,iBAAL,GAAyB,IAAzB,CAAA;;IAEA,IAAK5D,CAAAA,SAAL,CAAerzD,SAAf,EAAA,CAAA;;IAEA,IAAK83D,CAAAA,WAAL,GAAmB,IAAnB,CAAA;GAlBF,CAAA;;EAqBA/E,OAAO,CAAChoF,SAAR,CAAkB2pF,iBAAlB,GAAsC,UAAUpB,aAAV,EAAyBx6C,OAAzB,EAAkCxxB,GAAlC,EAAuC;AAC3E,IAAA,IAAIssE,GAAG,GAAGN,aAAa,CAACx3D,gBAAxB,CAAA;IACA,IAAI6oD,UAAU,GAAG,IAAA,CAAKuO,WAAtB,CAAA;AACA,IAAA,IAAIhO,cAAc,GAAG,IAAKiO,CAAAA,eAA1B,CAH2E;;IAK3EjO,cAAc,CAACK,SAAf,GAA2B+N,aAAa,CAACpwD,GAAd,CAAkB,YAAlB,CAA3B,CAAA;IACAgiD,cAAc,CAACO,IAAf,GAAsBmO,GAAG,CAACoE,OAAJ,EAAtB,CAN2E;AAO3E;;IAEArT,UAAU,CAACnC,MAAX,CAAkB8Q,aAAa,CAACpwD,GAAd,CAAkB,MAAlB,CAAA,IAA6B,KAA/C,CAAA,CAAA;AACA,IAAA,IAAIyrB,QAAQ,GAAG2kC,aAAa,CAAC3kC,QAA7B,CAAA;;AAEA,IAAA,SAASspC,cAAT,GAA0B;AACxB,MAAA,IAAIC,MAAM,GAAG;AACXp6E,QAAAA,IAAI,EAAE,SADK;AAEX09B,QAAAA,aAAa,EAAEmT,QAAAA;OAFjB,CAAA;MAIAupC,MAAM,CAACvpC,QAAQ,GAAG,IAAZ,CAAN,GAA0B2kC,aAAa,CAAC10E,EAAxC,CAAA;AACA,MAAA,OAAOs5E,MAAP,CAAA;AACD,KAAA;;IAEDvT,UAAU,CAACx6B,GAAX,CAAe,KAAf,CAAA,CAAsB5B,EAAtB,CAAyB,KAAzB,EAAgC,UAAUl6C,CAAV,EAAa;MAC3C,IAAK8pF,CAAAA,cAAL,GAAsB,KAAtB,CAAA;MACAC,eAAA,CAA2BlT,cAA3B,EAA2C72E,CAAC,CAACk3B,EAA7C,EAAiDl3B,CAAC,CAACm3B,EAAnD,CAAA,CAAA;MACAle,GAAG,CAACwiC,cAAJ,CAAmBrX,MAAA,CAAcwlD,cAAc,EAA5B,EAAgC;QACjD1yD,EAAE,EAAEl3B,CAAC,CAACk3B,EAD2C;QAEjDC,EAAE,EAAEn3B,CAAC,CAACm3B,EAF2C;AAGjD7tB,QAAAA,SAAS,EAAE;AACTmlC,UAAAA,QAAQ,EAAE,CAAA;AADD,SAAA;AAHsC,OAAhC,CAAnB,CAAA,CAAA;AAOD,KAVD,EAUG,IAVH,CAAA,CAAA;IAWA6nC,UAAU,CAACx6B,GAAX,CAAe,MAAf,CAAA,CAAuB5B,EAAvB,CAA0B,MAA1B,EAAkC,UAAUl6C,CAAV,EAAa;MAC7C,IAAK8pF,CAAAA,cAAL,GAAsB,KAAtB,CAAA;AACAC,MAAAA,gBAAA,CAA4BlT,cAA5B,EAA4C72E,CAAC,CAACgjB,KAA9C,EAAqDhjB,CAAC,CAACyI,OAAvD,EAAgEzI,CAAC,CAAC0I,OAAlE,CAAA,CAAA;MACAuQ,GAAG,CAACwiC,cAAJ,CAAmBrX,MAAA,CAAcwlD,cAAc,EAA5B,EAAgC;QACjDxS,IAAI,EAAEp3E,CAAC,CAACgjB,KADyC;QAEjDva,OAAO,EAAEzI,CAAC,CAACyI,OAFsC;QAGjDC,OAAO,EAAE1I,CAAC,CAAC0I,OAHsC;AAIjDY,QAAAA,SAAS,EAAE;AACTmlC,UAAAA,QAAQ,EAAE,CAAA;AADD,SAAA;AAJsC,OAAhC,CAAnB,CAAA,CAAA;AAQD,KAXD,EAWG,IAXH,CAAA,CAAA;IAYA6nC,UAAU,CAACvB,iBAAX,CAA6B,UAAU/0E,CAAV,EAAa7C,CAAb,EAAgBC,CAAhB,EAAmB;AAC9C,MAAA,OAAOmoF,GAAG,CAACl8B,YAAJ,CAAiB,CAAClsD,CAAD,EAAIC,CAAJ,CAAjB,CAA4B,IAAA,CAACq6E,mBAAmB,CAACz3E,CAAD,EAAIiZ,GAAJ,EAASgsE,aAAT,CAAvD,CAAA;KADF,CAAA,CAAA;GA5CF,CAAA;AAgDA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGEP,EAAAA,OAAO,CAAChoF,SAAR,CAAkBstF,mBAAlB,GAAwC,YAAY;AAClD,IAAA,IAAA,CAAKj8D,KAAL,CAAW8L,QAAX,CAAoB,UAAUl4B,EAAV,EAAc;AAChC,MAAA,IAAI4tB,KAAK,GAAG5tB,EAAE,CAAC4V,cAAH,EAAZ,CAAA;;AAEA,MAAA,IAAIgY,KAAJ,EAAW;QACTA,KAAK,CAACypB,MAAN,GAAeqrC,WAAW,CAAC90D,KAAD,CAAX,CAAmBypB,MAAlC,CAAA;AACD,OAAA;KALH,CAAA,CAAA;GADF,CAAA;;AAUA0rC,EAAAA,OAAO,CAAChoF,SAAR,CAAkB4pF,uBAAlB,GAA4C,UAAUrB,aAAV,EAAyBO,YAAzB,EAAuCvsE,GAAvC,EAA4CisE,QAA5C,EAAsD;IAChG,IAAI+E,OAAO,GAAG,IAAd,CAAA;IACAzE,YAAY,CAAC1pC,GAAb,CAAiB,WAAjB,CAAA,CAAA;AACA0pC,IAAAA,YAAY,CAAC1pC,GAAb,CAAiB,OAAjB,EAHgG;;AAKhG,IAAA,IAAImpC,aAAa,CAACpwD,GAAd,CAAkB,cAAlB,CAAJ,EAAuC;AACrC2wD,MAAAA,YAAY,CAACtrC,EAAb,CAAgB,WAAhB,EAA6B,YAAY;QACvC+vC,OAAO,CAACH,cAAR,GAAyB,IAAzB,CAAA;OADF,CAAA,CAAA;AAGAtE,MAAAA,YAAY,CAACtrC,EAAb,CAAgB,OAAhB,EAAyB,UAAUl6C,CAAV,EAAa;AACpC,QAAA,IAAI,CAACiqF,OAAO,CAACH,cAAb,EAA6B;AAC3B,UAAA,OAAA;AACD,SAAA;;QAEDG,OAAO,CAACH,cAAR,GAAyB,KAAzB,CAAA;OALF,CAAA,CAAA;AAOD,KAAA;GAhBH,CAAA;;AAmBA,EAAA,OAAOpF,OAAP,CAAA;AACD,CA5cD,EAFA,CAAA;;AAgdA,CAAA;;AAEA,SAASyD,yBAAT,CAAmClC,YAAnC,EAAiDtkF,EAAjD,EAAqDkvB,SAArD,EAAgEw2D,WAAhE,EAA6E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,IAAI6C,gBAAgB,GAAG7C,WAAW,CAAC1yD,QAAZ,CAAqB,WAArB,CAAvB,CAAA;EACA,IAAIw1D,kBAAkB,GAAG9C,WAAW,CAAC1yD,QAAZ,CAAqB,CAAC,UAAD,EAAa,WAAb,CAArB,CAAzB,CAAA;EACA,IAAIy1D,cAAc,GAAG/C,WAAW,CAAC1yD,QAAZ,CAAqB,CAAC,MAAD,EAAS,WAAT,CAArB,CAArB,CAAA;AACA,EAAA,IAAI01D,gBAAgB,GAAGhD,WAAW,CAAC1yD,QAAZ,CAAqB,CAAC,QAAD,EAAW,WAAX,CAArB,CAAvB,CAX2E;AAY3E;;AAEA,EAAA,IAAI21D,WAAW,GAAGhG,iBAAiB,CAAC4F,gBAAD,CAAnC,CAAA;AACA,EAAA,IAAIK,aAAa,GAAGjG,iBAAiB,CAAC6F,kBAAD,CAArC,CAAA;AACA,EAAA,IAAIK,WAAW,GAAGlG,iBAAiB,CAAC+F,gBAAD,CAAnC,CAAA;AACA,EAAA,IAAIjB,SAAS,GAAG9E,iBAAiB,CAAC8F,cAAD,CAAjC,CAjB2E;;AAmB3E,EAAA,IAAIx5D,IAAI,GAAGq1D,YAAY,CAACr1D,IAAxB,CAAA;;AAEA,EAAA,IAAIA,IAAJ,EAAU;AACR;AACA;AACA;IACA,IAAI5vB,KAAK,GAAG4vB,IAAI,CAACuC,aAAL,CAAmBtC,SAAnB,EAA8B,OAA9B,CAAZ,CAAA;IACA,IAAI0E,KAAK,GAAG3E,IAAI,CAACuC,aAAL,CAAmBtC,SAAnB,EAA8B,OAA9B,CAAZ,CAAA;;AAEA,IAAA,IAAIo1D,YAAY,CAACD,0BAAb,IAA2ChlF,KAAK,CAACC,IAArD,EAA2D;AACzDqpF,MAAAA,WAAW,CAACrpF,IAAZ,GAAmBD,KAAK,CAACC,IAAzB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIs0B,KAAJ,EAAW;MACT+0D,WAAW,CAAC/0D,KAAZ,GAAoBk1D,8BAA8B,CAACl1D,KAAD,EAAQ0wD,YAAY,CAAChtE,GAArB,CAAlD,CAAA;AACD,KAAA;AACF,GAnC0E;AAoC3E;;;EAGAtX,EAAE,CAAC4sB,QAAH,CAAY+7D,WAAZ,CAAA,CAAA;AACA3oF,EAAAA,EAAE,CAACX,KAAH,CAASmB,aAAT,GAAyB,IAAzB,CAAA;AACAR,EAAAA,EAAE,CAAC40B,WAAH,CAAe,UAAf,CAA2Bv1B,CAAAA,KAA3B,GAAmCupF,aAAnC,CAAA;AACA5oF,EAAAA,EAAE,CAAC40B,WAAH,CAAe,QAAf,CAAyBv1B,CAAAA,KAAzB,GAAiCwpF,WAAjC,CAAA;EACA7oF,EAAE,CAAC40B,WAAH,CAAe,MAAf,EAAuBv1B,KAAvB,GAA+BooF,SAA/B,CA3C2E;;EA6C3EE,oBAAoB,CAAC3nF,EAAD,CAApB,CAAA;AACD,CAAA;;AAED,SAASymF,mBAAT,CAA6BnC,YAA7B,EAA2CtkF,EAA3C,EAA+CqhF,UAA/C,EAA2DqE,WAA3D,EAAwEpC,aAAxE;AACA3qC,OADA;AAEAowC,OAFA,EAES;AACP,EAAA,IAAI95D,IAAI,GAAGq1D,YAAY,CAACr1D,IAAxB,CAAA;AACA,EAAA,IAAIu0D,KAAK,GAAGc,YAAY,CAACd,KAAzB,CAAA;AACA,EAAA,IAAIwF,SAAS,GAAG/5D,IAAI,IAAIrwB,KAAK,CAACqwB,IAAI,CAACiE,GAAL,CAASjE,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAT,EAAqC0f,OAArC,CAAD,CAA7B,CAAA;EACA,IAAIgP,UAAU,GAAG14B,IAAI,IAAIA,IAAI,CAACyH,aAAL,CAAmBiiB,OAAnB,CAAzB,CAJO;AAKP;AACA;AACA;;EAEA,IAAI6qC,KAAK,IAAIwF,SAAT,IAAsBrhC,UAAU,IAAIA,UAAU,CAACshC,SAAnD,EAA8D;AAC5D,IAAA,IAAIrqC,KAAK,GAAG,CAAC4kC,KAAD,GAAS7qC,OAAT,GAAmB0oC,UAA/B,CAAA;AACA,IAAA,IAAIjtD,YAAY,GAAG,KAAK,CAAxB,CAF4D;;AAI5D,IAAA,IAAI,CAACnF,IAAD,IAAS0pB,OAAO,IAAI,CAAxB,EAA2B;AACzBvkB,MAAAA,YAAY,GAAGkvD,aAAf,CAAA;AACD,KAAA;;IAED,IAAI4F,gBAAgB,GAAGH,OAAO,GAAG;AAC/BzgD,MAAAA,MAAM,EAAE;AACNF,QAAAA,KAAK,EAAE,QADD;AAENC,QAAAA,aAAa,EAAE,QAAA;AAFT,OAAA;KADoB,GAK1B,IALJ,CAR4D;AAc5D;;AAEAlU,IAAAA,aAAa,CAACn0B,EAAD,EAAKmzB,oBAAoB,CAACuyD,WAAD,CAAzB,EAAwC;AACnDtxD,MAAAA,YAAY,EAAEA,YADqC;AAEnDC,MAAAA,cAAc,EAAEuqB,KAFmC;AAGnDtqB,MAAAA,WAAW,EAAE+sD,UAAAA;KAHF,EAIV6H,gBAJU,CAAb,CAAA;AAKA,IAAA,IAAIxxC,MAAM,GAAG13C,EAAE,CAAC4V,cAAH,EAAb,CAAA;;AAEA,IAAA,IAAI8hC,MAAJ,EAAY;MACVgrC,WAAW,CAAChrC,MAAD,CAAX,CAAoBL,MAApB,GAA6BK,MAAM,CAACL,MAApC,CAAA;;AAEA,MAAA,IAAIr3C,EAAE,CAACqtC,UAAH,IAAiB07C,OAArB,EAA8B;AAC5B;QACA,IAAIprF,IAAI,GAAGqC,EAAE,CAAC0jD,eAAH,EAAqBrvC,CAAAA,KAArB,EAAX,CAF4B;AAG5B;AACA;AACA;;AAEArU,QAAAA,EAAE,CAACqtC,UAAH,CAAc87C,UAAd,GAA2BxrF,IAA3B,CAAA;AACAqC,QAAAA,EAAE,CAACqtC,UAAH,CAAcxuB,QAAd,GAAyB,CAAC,CAACkqE,OAAO,CAAC,CAAD,CAAP,GAAaprF,IAAI,CAACnC,CAAnB,IAAwBmC,IAAI,CAAC6G,KAA7B,GAAqC,GAArC,GAA2C,GAA5C,EAAiD,CAACukF,OAAO,CAAC,CAAD,CAAP,GAAaprF,IAAI,CAAClC,CAAnB,IAAwBkC,IAAI,CAAC8G,MAA7B,GAAsC,GAAtC,GAA4C,GAA7F,CAAzB,CAAA;AACD,OAAA;AACF,KApC2D;AAqC5D;AACA;AACA;AACA;AACA;;;IAGAzE,EAAE,CAACitC,qBAAH,GAA2B,IAA3B,CAAA;AACD,GA7CD,MA6CO;AACLjtC,IAAAA,EAAE,CAACq1B,iBAAH,EAAA,CAAA;AACAr1B,IAAAA,EAAE,CAACopF,gBAAH,EAAA,CAAA;IACAppF,EAAE,CAACitC,qBAAH,GAA2B,IAA3B,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASy5C,0BAAT,CAAoCpC,YAApC,EAAkD+E,YAAlD,EAAgEhI,UAAhE,EAA4EqE,WAA5E,EAAyFpC,aAAzF;AACA3qC,OADA,EACS;AACP;AACA;EACA,IAAI2rC,YAAY,CAACr1D,IAAjB,EAAuB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACAq1D,IAAAA,YAAY,CAACr1D,IAAb,CAAkB8H,gBAAlB,CAAmC4hB,OAAnC,EAA4C0wC,YAA5C,CAAA,CAAA;AACD,GATD;AAUA;AACA;AACA;AACA;OACK;AACD;AACAp0D,IAAAA,SAAS,CAACo0D,YAAD,CAAT,CAAwB99C,SAAxB,GAAoC;AAClCC,MAAAA,aAAa,EAAE,KADmB;MAElCE,cAAc,EAAE43C,aAAa,CAAC53C,cAFI;MAGlC49C,QAAQ,EAAEhG,aAAa,CAAC53C,cAHU;AAIlCjqC,MAAAA,IAAI,EAAE4/E,UAJ4B;AAKlC/B,MAAAA,MAAM,EAAEoG,WAAW,IAAIA,WAAW,CAAC95D,MAA3B,IAAqC,EAAA;KAL/C,CAAA;AAOD,GAAA;AACJ,CAAA;;AAED,SAAS+6D,qBAAT,CAA+BrC,YAA/B,EAA6CtkF,EAA7C,EAAiDqhF,UAAjD,EAA6DqE,WAA7D,EAA0EpC,aAA1E,EAAyF;AACvF,EAAA,IAAI,CAACgB,YAAY,CAACr1D,IAAlB,EAAwB;IACtB6C,gBAAA,CAAyB;AACvB9xB,MAAAA,EAAE,EAAEA,EADmB;AAEvB6+C,MAAAA,cAAc,EAAEykC,aAFO;AAGvB/iB,MAAAA,QAAQ,EAAE8gB,UAHa;AAIvB;AACAkI,MAAAA,iBAAiB,EAAE7D,WAAW,CAACxyD,GAAZ,CAAgB,SAAhB,CAAA;KALrB,CAAA,CAAA;AAOD,GAAA;AACF,CAAA;;AAED,SAAS0zD,0BAAT,CAAoCtC,YAApC,EAAkDtkF,EAAlD,EAAsDqhF,UAAtD,EAAkEqE,WAAlE,EAA+EpC,aAA/E,EAA8F;AAC5F;AACAtjF,EAAAA,EAAE,CAACwpF,qBAAH,GAA2B,CAAC,CAAClG,aAAa,CAACpwD,GAAd,CAAkB,cAAlB,CAA7B,CAF4F;;AAI5F,EAAA,IAAIH,aAAa,GAAG2yD,WAAW,CAAC1yD,QAAZ,CAAqB,UAArB,CAApB,CAAA;AACA,EAAA,IAAIV,KAAK,GAAGS,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAZ,CAAA;AACA6B,EAAAA,mBAAmB,CAAC/0B,EAAD,EAAKsyB,KAAL,EAAYS,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAZ,EAA4CH,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAA5C,CAAnB,CAAA;;EAEA,IAAIoxD,YAAY,CAACd,KAAjB,EAAwB;AACtBiG,IAAAA,+BAA+B,CAACzpF,EAAD,EAAKsjF,aAAL,EAAoBjC,UAApB,CAA/B,CAAA;AACD,GAAA;;AAED,EAAA,OAAO/uD,KAAP,CAAA;AACD,CAAA;;AAED,SAAS2zD,YAAT,CAAsByD,KAAtB;AACAC,YADA,EACcrD,MADd,EACsB;EACpB,IAAIsD,QAAQ,GAAG,EAAf,CAAA;AACA,EAAA,IAAIC,OAAJ,CAAA;;AAEA,EAAA,SAASC,YAAT,GAAwB;AACtBD,IAAAA,OAAO,GAAG,EAAV,CAAA;AACD,GAAA;;AAED,EAAA,SAASE,UAAT,GAAsB;IACpB,IAAIF,OAAO,CAAC9rF,MAAZ,EAAoB;MAClB6rF,QAAQ,CAAC9qF,IAAT,CAAc+qF,OAAd,CAAA,CAAA;AACAA,MAAAA,OAAO,GAAG,EAAV,CAAA;AACD,KAAA;AACF,GAAA;;EAED,IAAI5E,MAAM,GAAG0E,YAAY,CAAC;AACxBK,IAAAA,YAAY,EAAEF,YADU;AAExBG,IAAAA,UAAU,EAAEF,UAFY;AAGxBG,IAAAA,SAAS,EAAEJ,YAHa;AAIxBK,IAAAA,OAAO,EAAEJ,UAJe;AAKxBp0D,IAAAA,KAAK,EAAE,SAAA,KAAA,CAAUn6B,CAAV,EAAaC,CAAb,EAAgB;AACrB;MACA,IAAIumB,QAAQ,CAACxmB,CAAD,CAAR,IAAewmB,QAAQ,CAACvmB,CAAD,CAA3B,EAAgC;AAC9BouF,QAAAA,OAAO,CAAC/qF,IAAR,CAAa,CAACtD,CAAD,EAAIC,CAAJ,CAAb,CAAA,CAAA;AACD,OAAA;KATqB;IAWxB2uF,MAAM,EAAE,kBAAY,EAAE;AAXE,GAAD,CAAzB,CAAA;AAaA,EAAA,CAAC9D,MAAD,IAAWrB,MAAM,CAAC+E,YAAP,EAAX,CAAA;AACAvnD,EAAAA,MAAA,CAAYinD,KAAZ,EAAmB,UAAUW,IAAV,EAAgB;AACjCpF,IAAAA,MAAM,CAACiF,SAAP,EAAA,CAAA;;AAEA,IAAA,KAAK,IAAIzrF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4rF,IAAI,CAACtsF,MAAzB,EAAiCU,CAAC,EAAlC,EAAsC;AACpCwmF,MAAAA,MAAM,CAACtvD,KAAP,CAAa00D,IAAI,CAAC5rF,CAAD,CAAJ,CAAQ,CAAR,CAAb,EAAyB4rF,IAAI,CAAC5rF,CAAD,CAAJ,CAAQ,CAAR,CAAzB,CAAA,CAAA;AACD,KAAA;;AAEDwmF,IAAAA,MAAM,CAACkF,OAAP,EAAA,CAAA;GAPF,CAAA,CAAA;AASA,EAAA,CAAC7D,MAAD,IAAWrB,MAAM,CAACgF,UAAP,EAAX,CAAA;AACA,EAAA,OAAOL,QAAP,CAAA;AACD,CAAA;;;AC9vBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgCA,IAAIU,OAAO;AACX;AACA,UAAUrrE,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACorE,OAAD,EAAUrrE,MAAV,CAAT,CAAA;;AAEA,EAAA,SAASqrE,OAAT,GAAmB;AACjB,IAAA,IAAInrE,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaw8E,OAAO,CAACx8E,IAArB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDmrE,EAAAA,OAAO,CAACvvF,SAAR,CAAkB8tC,MAAlB,GAA2B,UAAU0hD,QAAV,EAAoBzhD,OAApB,EAA6BxxB,GAA7B,EAAkCu0B,OAAlC,EAA2C;AACpE;AACA,IAAA,IAAIA,OAAO,IAAIA,OAAO,CAAC/9B,IAAR,KAAiB,iBAA5B,IAAiD+9B,OAAO,CAAC2+C,IAAR,KAAiB,IAAA,CAAKxH,GAA3E,EAAgF;AAC9E,MAAA,OAAA;AACD,KAAA;;IAED,IAAI52D,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACAA,IAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;;AAEA,IAAA,IAAIu6D,QAAQ,CAAC5G,eAAT,EAAJ,EAAgC;AAC9B,MAAA,OAAA;AACD,KAAA;;IAED,IAAI,IAAA,CAAK8G,QAAL,IAAiB5+C,OAAjB,IAA4BA,OAAO,CAAC/9B,IAAR,KAAiB,SAAjD,EAA4D;MAC1D,IAAK28E,CAAAA,QAAL,CAAcpC,mBAAd,EAAA,CAAA;AACD,KAfmE;;;IAkBpE,IAAI,EAAEx8C,OAAO,IAAIA,OAAO,CAAC/9B,IAAR,KAAiB,SAA5B,IAAyC+9B,OAAO,CAACL,aAAR,KAA0B,QAAnE,IAA+EK,OAAO,CAAC6+C,QAAR,KAAqBH,QAAQ,CAAC37E,EAA/G,CAAJ,EAAwH;MACtH,IAAI27E,QAAQ,CAACI,YAAb,EAA2B;QACzB,IAAIrC,OAAO,GAAG,IAAKmC,CAAAA,QAAL,IAAiB,IAAI1H,OAAJ,CAAYzrE,GAAZ,CAA/B,CAAA;AACA8U,QAAAA,KAAK,CAACO,GAAN,CAAU27D,OAAO,CAACl8D,KAAlB,CAAA,CAAA;QACAk8D,OAAO,CAAC5+D,IAAR,CAAa6gE,QAAb,EAAuBzhD,OAAvB,EAAgCxxB,GAAhC,EAAqC,IAArC,EAA2Cu0B,OAA3C,CAAA,CAAA;QACA,IAAK4+C,CAAAA,QAAL,GAAgBnC,OAAhB,CAAA;AACD,OALD,MAKO;AACL;AACA,QAAA,IAAA,CAAKmC,QAAL,IAAiB,IAAA,CAAKA,QAAL,CAActzD,MAAd,EAAjB,CAAA;QACA,IAAKszD,CAAAA,QAAL,GAAgB,IAAhB,CAAA;AACD,OAAA;AACF,KAXD,MAWO;MACL,IAAInC,OAAO,GAAG,IAAA,CAAKmC,QAAnB,CAAA;MACAnC,OAAO,IAAIl8D,KAAK,CAACO,GAAN,CAAU27D,OAAO,CAACl8D,KAAlB,CAAX,CAAA;AACD,KAAA;;IAEDm+D,QAAQ,CAACr3D,GAAT,CAAa,kBAAb,KAAoC4V,OAAO,CAACw7B,YAAR,CAAqB,QAArB,CAApC,IAAsE,IAAA,CAAKsmB,cAAL,CAAoBL,QAApB,EAA8BzhD,OAA9B,EAAuCxxB,GAAvC,CAAtE,CAAA;GAlCF,CAAA;;AAqCAgzE,EAAAA,OAAO,CAACvvF,SAAR,CAAkBo8B,MAAlB,GAA2B,YAAY;AACrC,IAAA,IAAA,CAAKszD,QAAL,IAAiB,IAAA,CAAKA,QAAL,CAActzD,MAAd,EAAjB,CAAA;IACA,IAAKszD,CAAAA,QAAL,GAAgB,IAAhB,CAAA;IACA,IAAKr+D,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;GAHF,CAAA;;AAMAs6D,EAAAA,OAAO,CAACvvF,SAAR,CAAkB4iB,OAAlB,GAA4B,YAAY;AACtC,IAAA,IAAA,CAAK8sE,QAAL,IAAiB,IAAA,CAAKA,QAAL,CAActzD,MAAd,EAAjB,CAAA;IACA,IAAKszD,CAAAA,QAAL,GAAgB,IAAhB,CAAA;GAFF,CAAA;;EAKAH,OAAO,CAACvvF,SAAR,CAAkB6vF,cAAlB,GAAmC,UAAUL,QAAV,EAAoBzhD,OAApB,EAA6BxxB,GAA7B,EAAkC;AACnE,IAAA,IAAIuzE,YAAY,GAAGN,QAAQ,CAACM,YAA5B,CAAA;IACA,IAAIz+D,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACAy+D,IAAAA,YAAY,CAACpjF,IAAb,CAAkBojF,YAAY,CAAC5xD,YAAb,CAA0B,OAA1B,CAAlB,EAAsD,UAAUgB,KAAV,EAAiB6wD,iBAAjB,EAAoC;AACxF,MAAA,IAAIlsF,KAAK,CAACq7B,KAAD,CAAT,EAAkB;AAChB,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAI0c,MAAM,GAAGk0C,YAAY,CAACn0D,aAAb,CAA2Bo0D,iBAA3B,CAAb,CAAA;;AAEA,MAAA,IAAI,CAACn0C,MAAD,IAAW,CAACA,MAAM,CAAChhB,KAAvB,EAA8B;AAC5B;AACA,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIA,KAAK,GAAGghB,MAAM,CAAChhB,KAAnB,CAAA;AACA,MAAA,IAAIljB,MAAM,GAAGkkC,MAAM,CAAClkC,MAApB,CAAA;AACA,MAAA,IAAIjF,MAAM,GAAG,IAAIskB,MAAJ,CAAmB;AAC9BzyB,QAAAA,KAAK,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;UACAC,IAAI,EAAEirF,QAAQ,CAACz9D,OAAT,GAAmBC,SAAnB,CAA6B,OAA7B,CAAsCztB,CAAAA,IAAAA;SARhB;AAU9B+G,QAAAA,KAAK,EAAE;UACLlK,EAAE,EAAEw5B,KAAK,CAAC,CAAD,CAAL,GAAWljB,MAAM,GAAG,CADnB;AAELrW,UAAAA,EAAE,EAAEu5B,KAAK,CAAC,CAAD,CAFJ;AAGLt5B,UAAAA,CAAC,EAAE,CAAA;SAbyB;AAe9Bk1B,QAAAA,MAAM,EAAE,IAfsB;AAgB9B;QACApB,EAAE,EAAE,KAAK,CAAC1d,MAAD,GAAUs4E,gBAAgB,GAAG,CAA7B,GAAiC,CAAtC,CAAA;OAjBO,CAAb,CAdwF;AAiCxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;MAEA,IAAI,CAACt4E,MAAL,EAAa;AACX,QAAA,IAAIu4E,QAAQ,GAAGT,QAAQ,CAACU,UAAT,CAAoBn+D,OAApB,EAAf,CAAA;AACA,QAAA,IAAIo+D,MAAM,GAAGL,YAAY,CAACn2D,OAAb,CAAqBo2D,iBAArB,CAAb,CAAA;AACA,QAAA,IAAIK,WAAW,GAAGH,QAAQ,CAACjiC,WAAT,CAAqBmiC,MAArB,CAAlB,CAAA;AACA,QAAA,IAAIr4D,SAAS,GAAGg4D,YAAY,CAAC/3D,YAAb,CAA0Bg4D,iBAA1B,CAAhB,CAAA;AACA,QAAA,IAAIvmC,UAAU,GAAG1xB,SAAS,CAACG,QAAV,CAAmB,OAAnB,CAAjB,CAAA;QACA,IAAIyyD,WAAW,GAAGuF,QAAQ,CAAC9zD,gBAAT,CAA0Bi0D,WAA1B,CAAlB,CANW;AAOX;AACA;AACA;AACA;AACA;AACA;;AAEAh3D,QAAAA,aAAa,CAAC3mB,MAAD,EAAS2lB,oBAAoB,CAACN,SAAD,CAA7B,EAA0C;AACrDuB,UAAAA,YAAY,EAAE;AACZ2yB,YAAAA,iBAAiB,EAAE,SAAA,iBAAA,CAAUt8B,GAAV,EAAewyB,KAAf,EAAsB;AACvC,cAAA,OAAOstC,QAAQ,CAACxjC,iBAAT,CAA2BokC,WAA3B,EAAwCluC,KAAxC,CAAP,CAAA;AACD,aAAA;WAJkD;AAMrD3oB,UAAAA,WAAW,EAAE42D,MAAAA;AANwC,SAA1C,CAAb,CAAA;QAQA19E,MAAM,CAACy/B,qBAAP,GAA+B,IAA/B,CAAA;;AAEA,QAAA,IAAI,CAACsX,UAAU,CAACrxB,GAAX,CAAe,UAAf,CAAL,EAAiC;UAC/B1lB,MAAM,CAACumC,aAAP,CAAqB;AACnBl1B,YAAAA,QAAQ,EAAE,QAAA;WADZ,CAAA,CAAA;AAGD,SAAA;;AAED4mE,QAAAA,WAAW,CAACr6C,kBAAZ,GAAiC,UAAUF,OAAV,EAAmB;AAClDgB,UAAAA,aAAa,CAAC1+B,MAAD,EAAS09B,OAAT,CAAb,CAAA;SADF,CAAA;AAGD,OAAA;;MAED9e,KAAK,CAACO,GAAN,CAAUnf,MAAV,CAAA,CAAA;KA7EF,CAAA,CAAA;GAHF,CAAA;;EAoFA88E,OAAO,CAACx8E,IAAR,GAAe,KAAf,CAAA;AACA,EAAA,OAAOw8E,OAAP,CAAA;AACD,CAhJD,CAgJEr+C,SAhJF,CAFA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkCA,IAAIm/C,SAAS;AACb;AACA,UAAUnsE,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACksE,SAAD,EAAYnsE,MAAZ,CAAT,CAAA;;AAEA,EAAA,SAASmsE,SAAT,GAAqB;AACnB,IAAA,IAAIjsE,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAas9E,SAAS,CAACt9E,IAAvB,CAHmB;;AAKnBqR,IAAAA,KAAK,CAACwrE,YAAN,GAAqB,KAArB,CALmB;;IAOnBxrE,KAAK,CAACksE,WAAN,GAAoB,EAApB,CAAA;;AAEAlsE,IAAAA,KAAK,CAACsuD,kBAAN,GAA2B,UAAUv+C,SAAV,EAAqB;MAC9C,IAAIA,SAAS,IAAI,IAAjB,EAAuB;QACrB,IAAIg8D,MAAM,GAAG,IAAKp+D,CAAAA,OAAL,GAAe4H,OAAf,CAAuBxF,SAAvB,CAAb,CAAA;QACA,IAAI00D,GAAG,GAAG,IAAA,CAAK93D,gBAAf,CAAA;AACA,QAAA,IAAIwzD,MAAM,GAAGsE,GAAG,CAAC0H,SAAJ,CAAcJ,MAAd,CAAb,CAAA;QACA,OAAO5L,MAAM,IAAIsE,GAAG,CAACxpD,WAAJ,CAAgBklD,MAAM,CAACY,SAAP,EAAhB,CAAjB,CAAA;AACD,OAAA;KANH,CAAA;;AASA,IAAA,OAAO/gE,KAAP,CAAA;AACD,GAAA;;AAEDisE,EAAAA,SAAS,CAACrwF,SAAV,CAAoB4wB,cAApB,GAAqC,UAAUC,MAAV,EAAkB;AACrD,IAAA,IAAIqD,IAAI,GAAG24B,sBAAsB,CAAC,IAAD,EAAO;MACtCE,eAAe,EAAE,CAAC,OAAD,CADqB;AAEtCuB,MAAAA,eAAe,EAAE5mB,OAAA,CAAa6mB,4BAAb,EAA2C,IAA3C,CAAA;AAFqB,KAAP,CAAjC,CAAA;AAIA,IAAA,IAAIiiC,WAAW,GAAG9oD,aAAA,EAAlB,CAAA;IACA,IAAI+oD,aAAa,GAAG,EAApB,CAAA;;AAEA,IAAA,KAAK,IAAI/sF,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGmnB,IAAI,CAAC0T,KAAL,EAAtB,EAAoClkC,CAAC,GAAGqJ,GAAxC,EAA6CrJ,CAAC,EAA9C,EAAkD;AAChD,MAAA,IAAIgtF,MAAM,GAAGx8D,IAAI,CAACyF,OAAL,CAAaj2B,CAAb,CAAb,CAAA;AACA8sF,MAAAA,WAAW,CAACv+B,GAAZ,CAAgBy+B,MAAhB,EAAwB,IAAxB,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIC,SAAS,GAAG3D,gBAAgB,CAACrK,IAAjB,CAAsB,KAAKiO,UAAL,EAAtB,EAAyC,IAAK//D,CAAAA,MAAL,CAAYk1D,OAArD,EAA8D,KAAKl1D,MAAL,CAAYm1D,YAA1E,CAAhB,CAAA;IACAt+C,MAAA,CAAYipD,SAAS,CAAC1N,OAAtB,EAA+B,UAAUsB,MAAV,EAAkB;AAC/C,MAAA,IAAI79E,IAAI,GAAG69E,MAAM,CAAC79E,IAAlB,CAAA;;AAEA,MAAA,IAAI,CAAC8pF,WAAW,CAACr4D,GAAZ,CAAgBzxB,IAAhB,CAAL,EAA4B;QAC1B+pF,aAAa,CAAC1sF,IAAd,CAAmB2C,IAAnB,CAAA,CAAA;AACD,OAAA;AACF,KAND,EAdqD;AAqBrD;AACA;;AAEAwtB,IAAAA,IAAI,CAAC28D,YAAL,CAAkB,EAAlB,EAAsBJ,aAAtB,CAAA,CAAA;AACA,IAAA,OAAOv8D,IAAP,CAAA;GAzBF,CAAA;AA2BA;AACF;AACA;AACA;;;AAGEm8D,EAAAA,SAAS,CAACrwF,SAAV,CAAoB4oF,eAApB,GAAsC,YAAY;AAChD,IAAA,IAAI2F,QAAQ,GAAG,IAAK19D,CAAAA,MAAL,CAAY09D,QAA3B,CAAA;AACA,IAAA,OAAOA,QAAQ,IAAI,IAAZ,GAAmB,KAAKxgD,OAAL,CAAaw7B,YAAb,CAA0B,KAA1B,EAAiCglB,QAAjC,CAAnB,GAAgE,IAAvE,CAAA;GAFF,CAAA;;AAKA8B,EAAAA,SAAS,CAACrwF,SAAV,CAAoB4wF,UAApB,GAAiC,YAAY;IAC3C,OAAO,CAAC,KAAKhI,eAAL,EAAA,IAA0B,IAA3B,EAAiC/3D,MAAjC,CAAwCjsB,GAA/C,CAAA;AACD,GAFD,CA9DgB;AAiEhB;AACA;AACA;AACA;AACA;;;AAGAyrF,EAAAA,SAAS,CAACrwF,SAAV,CAAoB4yC,WAApB,GAAkC,UAAUze,SAAV,EAAqB;AACrD;AACA;AACA,IAAA,IAAID,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;AACA,IAAA,OAAOmC,IAAI,CAACiE,GAAL,CAASjE,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAT,EAAqC/J,SAArC,CAAP,CAAA;GAJF,CAAA;AAMA;AACF;AACA;;;AAGEk8D,EAAAA,SAAS,CAACrwF,SAAV,CAAoB4qF,cAApB,GAAqC,UAAUtE,UAAV,EAAsB;AACzD,IAAA,IAAIpyD,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;IACA,OAAOmC,IAAI,CAAC6D,YAAL,CAAkB7D,IAAI,CAAC85B,WAAL,CAAiBs4B,UAAjB,CAAlB,CAAP,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;EAGE+J,SAAS,CAACrwF,SAAV,CAAoB6xE,aAApB,GAAoC,UAAU19C,SAAV,EAAqB29C,cAArB,EAAqCC,QAArC,EAA+C;AACjF;AACA,IAAA,IAAI79C,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;AACA,IAAA,IAAImN,KAAK,GAAG,IAAA,CAAK0T,WAAL,CAAiBze,SAAjB,CAAZ,CAAA;AACA,IAAA,IAAIztB,IAAI,GAAGwtB,IAAI,CAACyF,OAAL,CAAaxF,SAAb,CAAX,CAAA;IACA,IAAIm8D,WAAW,GAAG,IAAA,CAAKA,WAAvB,CAAA;IACA,IAAIQ,WAAW,GAAG,EAAlB,CAAA;;AAEA,IAAA,KAAK,IAAIptF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4sF,WAAW,CAACttF,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C,MAAA,IAAIqtF,UAAU,GAAGT,WAAW,CAAC5sF,CAAD,CAAX,CAAeosF,YAAf,CAA4B9hC,WAA5B,CAAwCtnD,IAAxC,CAAjB,CAAA;AACA,MAAA,IAAIu3B,QAAQ,GAAG/J,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAf,CAAA;;AAEA,MAAA,IAAI,CAACr6B,KAAK,CAACysF,WAAW,CAAC5sF,CAAD,CAAX,CAAeosF,YAAf,CAA4B33D,GAA5B,CAAgC8F,QAAhC,EAA0C8yD,UAA1C,CAAD,CAAV,EAAmE;QACjED,WAAW,CAAC/sF,IAAZ,CAAiBusF,WAAW,CAAC5sF,CAAD,CAAX,CAAegD,IAAhC,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;IAED,OAAO0rE,mBAAmB,CAAC,SAAD,EAAY;AACpCC,MAAAA,MAAM,EAAEye,WAAW,CAAC9sF,IAAZ,CAAiB,IAAjB,CAD4B;AAEpCgtF,MAAAA,QAAQ,EAAE,CAACF,WAAW,CAAC9tF,MAFa;AAGpCuvE,MAAAA,MAAM,EAAE,CAACH,mBAAmB,CAAC,WAAD,EAAc;AACxC1rE,QAAAA,IAAI,EAAEA,IADkC;AAExCw4B,QAAAA,KAAK,EAAEA,KAAAA;AAFiC,OAAd,CAApB,CAAA;AAH4B,KAAZ,CAA1B,CAAA;GAjBF,CAAA;;AA2BAmxD,EAAAA,SAAS,CAACrwF,SAAV,CAAoBixF,OAApB,GAA8B,UAAUvW,IAAV,EAAgB;AAC5C,IAAA,IAAA,CAAK7pD,MAAL,CAAY6pD,IAAZ,GAAmBA,IAAnB,CAAA;GADF,CAAA;;AAIA2V,EAAAA,SAAS,CAACrwF,SAAV,CAAoBolF,SAApB,GAAgC,UAAU/gC,MAAV,EAAkB;AAChD,IAAA,IAAA,CAAKxzB,MAAL,CAAYwzB,MAAZ,GAAqBA,MAArB,CAAA;GADF,CAAA;;AAIAgsC,EAAAA,SAAS,CAACrwF,SAAV,CAAoBmxB,aAApB,GAAoC,UAAUC,GAAV,EAAe;AACjD,IAAA,IAAI8/D,QAAQ,GAAG9/D,GAAG,CAAC+/D,IAAJ,IAAY,WAA3B,CAAA;IACA,IAAIA,IAAI,GAAG3/D,cAAY,CAAC0/D,QAAD,EAAW,CAAX,EAAc,CAAd,EAAiB9/D,GAAG,CAACM,SAArB,EAAgCN,GAAG,CAACK,UAApC,EAAgDL,GAAG,CAACiB,SAAJ,CAAc9tB,IAA9D,CAAvB,CAAA;AACA4sF,IAAAA,IAAI,CAACt/D,QAAL,CAAcT,GAAG,CAACiB,SAAlB,EAHiD;;AAKjD8+D,IAAAA,IAAI,CAAC7sF,KAAL,CAAWG,MAAX,GAAoB,MAApB,CALiD;;IAOjD,IAAIysF,QAAQ,CAAChkF,OAAT,CAAiB,OAAjB,CAA4B,GAAA,CAAC,CAAjC,EAAoC;MAClCikF,IAAI,CAAC7sF,KAAL,CAAWG,MAAX,GAAoB0sF,IAAI,CAAC7sF,KAAL,CAAWC,IAA/B,CAAA;AACA4sF,MAAAA,IAAI,CAAC7sF,KAAL,CAAWC,IAAX,GAAkB,MAAlB,CAAA;AACA4sF,MAAAA,IAAI,CAAC7sF,KAAL,CAAWsB,SAAX,GAAuB,CAAvB,CAAA;AACD,KAAA;;AAED,IAAA,OAAOurF,IAAP,CAAA;GAbF,CAAA;;EAgBAd,SAAS,CAACt9E,IAAV,GAAiB,YAAjB,CAAA;AACAs9E,EAAAA,SAAS,CAAC39D,YAAV,GAAyB,CAAC,KAAD,CAAzB,CAAA;EACA29D,SAAS,CAACx9B,UAAV,GAAuB,KAAvB,CAAA;EACAw9B,SAAS,CAAC19D,aAAV,GAA0B;AACxB;AACA;AACA;AACAzG,IAAAA,CAAC,EAAE,CAJqB;AAKxB6E,IAAAA,gBAAgB,EAAE,KALM;AAMxB;AACAnsB,IAAAA,GAAG,EAAE,EAPmB;AAQxB;AACA;AACA;AACA;AACA;AACAmf,IAAAA,IAAI,EAAE,QAbkB;AAcxB;AACAC,IAAAA,GAAG,EAAE,QAfmB;AAgBxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAotE,IAAAA,WAAW,EAAE,IAzBW;AA0BxB;AACA;AACA;AACA;AACA;AACAC,IAAAA,gBAAgB,EAAE,IA/BM;AAgCxB;AACA;AACA;AACAC,IAAAA,cAAc,EAAE,IAnCQ;AAoCxB;AACAjtC,IAAAA,MAAM,EAAE,IArCgB;AAsCxBq2B,IAAAA,IAAI,EAAE,CAtCkB;AAuCxB6W,IAAAA,UAAU,EAAE,IAvCY;AAwCxBC,IAAAA,YAAY,EAAE,IAxCU;AAyCxB3+D,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,KADD;AAELztB,MAAAA,KAAK,EAAE,MAAA;KA3Ce;AA6CxB;AACA+sB,IAAAA,SAAS,EAAE;AACTzM,MAAAA,WAAW,EAAE,GADJ;AAETuxB,MAAAA,WAAW,EAAE,MAFJ;AAGT0wC,MAAAA,SAAS,EAAE,MAAA;KAjDW;AAmDxB30D,IAAAA,QAAQ,EAAE;AACRL,MAAAA,KAAK,EAAE;AACLE,QAAAA,IAAI,EAAE,IADD;AAELztB,QAAAA,KAAK,EAAE,cAAA;OAHD;AAKR+sB,MAAAA,SAAS,EAAE;AACTw1D,QAAAA,SAAS,EAAE,qBAAA;AADF,OAAA;KAxDW;AA4DxBvwC,IAAAA,MAAM,EAAE;AACNzkB,MAAAA,KAAK,EAAE;AACLE,QAAAA,IAAI,EAAE,IADD;AAELztB,QAAAA,KAAK,EAAE,cAAA;OAHH;AAKN+sB,MAAAA,SAAS,EAAE;AACT/sB,QAAAA,KAAK,EAAE,qBAAA;AADE,OAAA;KAjEW;AAqExB0gF,IAAAA,YAAY,EAAE,MAAA;GArEhB,CAAA;AAuEA,EAAA,OAAOqK,SAAP,CAAA;AACD,CA1ND,CA0NEr8D,WA1NF,CAFA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA,SAASy9D,cAAT,CAAwBC,KAAxB,EAA+BC,aAA/B,EAA8C;EAC5C,IAAInB,WAAW,GAAG,EAAlB,CAAA;AACA9oD,EAAAA,MAAA,CAAYgqD,KAAZ,EAAmB,UAAUx9D,IAAV,EAAgB;AACjCA,IAAAA,IAAI,CAACxnB,IAAL,CAAUwnB,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAV,EAAsC,UAAUgB,KAAV,EAAiBxP,GAAjB,EAAsB;AAC1D;MACA,IAAIkiE,MAAM,GAAG,KAAQ19D,GAAAA,IAAI,CAACyF,OAAL,CAAajK,GAAb,CAArB,CAAA;MACA8gE,WAAW,CAACoB,MAAD,CAAX,GAAsBpB,WAAW,CAACoB,MAAD,CAAX,IAAuB,EAA7C,CAAA;;AAEA,MAAA,IAAI,CAAC/tF,KAAK,CAACq7B,KAAD,CAAV,EAAmB;AACjBsxD,QAAAA,WAAW,CAACoB,MAAD,CAAX,CAAoB7tF,IAApB,CAAyBm7B,KAAzB,CAAA,CAAA;AACD,OAAA;KAPH,CAAA,CAAA;GADF,CAAA,CAAA;EAWA,OAAOwyD,KAAK,CAAC,CAAD,CAAL,CAAS9sF,GAAT,CAAa8sF,KAAK,CAAC,CAAD,CAAL,CAASxzD,YAAT,CAAsB,OAAtB,CAAb,EAA6C,UAAUgB,KAAV,EAAiBxP,GAAjB,EAAsB;IACxE,IAAIkiE,MAAM,GAAG,KAAA,GAAQF,KAAK,CAAC,CAAD,CAAL,CAAS/3D,OAAT,CAAiBjK,GAAjB,CAArB,CAAA;IACA,IAAIilB,GAAG,GAAG,CAAV,CAAA;IACA,IAAIrS,GAAG,GAAG/a,QAAV,CAAA;IACA,IAAIrF,GAAG,GAAG,CAACqF,QAAX,CAAA;AACA,IAAA,IAAIxa,GAAG,GAAGyjF,WAAW,CAACoB,MAAD,CAAX,CAAoB5uF,MAA9B,CAAA;;IAEA,KAAK,IAAIU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,EAAyBrJ,CAAC,EAA1B,EAA8B;AAC5B4+B,MAAAA,GAAG,GAAG9iC,IAAI,CAAC8iC,GAAL,CAASA,GAAT,EAAckuD,WAAW,CAACoB,MAAD,CAAX,CAAoBluF,CAApB,CAAd,CAAN,CAAA;AACAwe,MAAAA,GAAG,GAAG1iB,IAAI,CAAC0iB,GAAL,CAASA,GAAT,EAAcsuE,WAAW,CAACoB,MAAD,CAAX,CAAoBluF,CAApB,CAAd,CAAN,CAAA;AACAixC,MAAAA,GAAG,IAAI67C,WAAW,CAACoB,MAAD,CAAX,CAAoBluF,CAApB,CAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAIqlE,MAAJ,CAAA;;IAEA,IAAI4oB,aAAa,KAAK,KAAtB,EAA6B;AAC3B5oB,MAAAA,MAAM,GAAGzmC,GAAT,CAAA;AACD,KAFD,MAEO,IAAIqvD,aAAa,KAAK,KAAtB,EAA6B;AAClC5oB,MAAAA,MAAM,GAAG7mD,GAAT,CAAA;AACD,KAFM,MAEA,IAAIyvE,aAAa,KAAK,SAAtB,EAAiC;MACtC5oB,MAAM,GAAGp0B,GAAG,GAAG5nC,GAAf,CAAA;AACD,KAFM,MAEA;AACLg8D,MAAAA,MAAM,GAAGp0B,GAAT,CAAA;AACD,KAAA;;AAED,IAAA,OAAO5nC,GAAG,KAAK,CAAR,GAAYoyB,GAAZ,GAAkB4pC,MAAzB,CAAA;AACD,GA1BM,CAAP,CAAA;AA2BD,CAAA;;AAEc,SAAS8oB,gBAAT,CAA0B9jD,OAA1B,EAAmC;EAChD,IAAI+jD,YAAY,GAAG,EAAnB,CAAA;AACA/jD,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,KAAzB,EAAgC,UAAU/tB,WAAV,EAAuB;AACrD,IAAA,IAAIq7D,YAAY,GAAGr7D,WAAW,CAACkyD,eAAZ,EAAnB,CAAA;AACA,IAAA,IAAI7hF,GAAG,GAAGgrF,YAAY,GAAG,GAAMA,GAAAA,YAAY,CAACl+E,EAAtB,GAA2B,GAAA,GAAM6iB,WAAW,CAACk6D,UAAZ,EAAvD,CAAA;AACA,IAAA,CAACkB,YAAY,CAAC/qF,GAAD,CAAZ,GAAoB+qF,YAAY,CAAC/qF,GAAD,CAAZ,IAAqB,EAA1C,EAA8ChD,IAA9C,CAAmD2yB,WAAnD,CAAA,CAAA;GAHF,CAAA,CAAA;EAKAgR,MAAA,CAAYoqD,YAAZ,EAA0B,UAAUE,UAAV,EAAsBjrF,GAAtB,EAA2B;AACnD,IAAA,IAAImtB,IAAI,GAAGu9D,cAAc,CAAC/pD,GAAA,CAAWsqD,UAAX,EAAuB,UAAUt7D,WAAV,EAAuB;MACtE,OAAOA,WAAW,CAAC3E,OAAZ,EAAP,CAAA;KADwB,CAAD,EAErBigE,UAAU,CAAC,CAAD,CAAV,CAAc75D,GAAd,CAAkB,qBAAlB,CAFqB,CAAzB,CAAA;;AAIA,IAAA,KAAK,IAAIz0B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsuF,UAAU,CAAChvF,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;AAC1CsuF,MAAAA,UAAU,CAACtuF,CAAD,CAAV,CAAcosF,YAAd,GAA6BkC,UAAU,CAACtuF,CAAD,CAAV,CAAcquB,OAAd,EAA7B,CAAA;AACD,KAPkD;;;AAUnD,IAAA,KAAK,IAAIruB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsuF,UAAU,CAAChvF,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;AAC1CsuF,MAAAA,UAAU,CAACtuF,CAAD,CAAV,CAAc4sF,WAAd,GAA4B0B,UAA5B,CAAA;AACAA,MAAAA,UAAU,CAACtuF,CAAD,CAAV,CAAcksF,YAAd,GAA6BlsF,CAAC,KAAK,CAAN,IAAW,CAACsuF,UAAU,CAACtuF,CAAD,CAAV,CAAcklF,eAAd,EAAzC,CAAA;MACAoJ,UAAU,CAACtuF,CAAD,CAAV,CAAcuxC,OAAd,CAAsB/gB,IAAI,CAACqyD,YAAL,EAAtB,CAAA,CAAA;MACAyL,UAAU,CAACtuF,CAAD,CAAV,CAAcwsF,UAAd,GAA2B8B,UAAU,CAAC,CAAD,CAArC,CAAA;AACD,KAAA;GAfH,CAAA,CAAA;AAiBD;;AC9GD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0Be,SAASC,eAAT,CAAyBlkD,OAAzB,EAAkC;EAC/C,IAAImkD,gBAAgB,GAAG,EAAvB,CAAA;AACAnkD,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,KAAzB,EAAgC,UAAUkkC,SAAV,EAAqB;AACnD,IAAA,IAAI/D,OAAO,GAAG+D,SAAS,CAACiI,UAAV,EAAd,CAAA;;IAEA,IAAIjI,SAAS,CAACC,eAAV,EAAA,IAA+BsJ,gBAAgB,CAACtN,OAAD,CAAnD,EAA8D;AAC5D,MAAA,OAAA;AACD,KAAA;;IAED,IAAIuN,gBAAgB,GAAG,EAAvB,CAAA;IACAzqD,MAAA,CAAYihD,SAAS,CAAC2H,WAAtB,EAAmC,UAAU8B,YAAV,EAAwB;AACzD,MAAA,IAAIvJ,GAAG,GAAGuJ,YAAY,CAACrhE,gBAAvB,CAAA;AACA,MAAA,IAAImD,IAAI,GAAGk+D,YAAY,CAACtC,YAAxB,CAAA;;AAEA,MAAA,IAAIsC,YAAY,CAACj6D,GAAb,CAAiB,kBAAjB,CAAA,IAAwC4V,OAAO,CAACw7B,YAAR,CAAqB,QAArB,CAA5C,EAA4E;AAC1Er1C,QAAAA,IAAI,CAACxnB,IAAL,CAAUwnB,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAV,EAAsC,UAAUgB,KAAV,EAAiBxP,GAAjB,EAAsB;AAC1D,UAAA,IAAIhpB,IAAI,GAAGwtB,IAAI,CAACyF,OAAL,CAAajK,GAAb,CAAX,CAAA;UACA,IAAI60D,MAAM,GAAGsE,GAAG,CAAC0H,SAAJ,CAAc7pF,IAAd,CAAb,CAF0D;AAG1D;AACA;;AAEA,UAAA,IAAI,CAAC69E,MAAD,IAAW1gF,KAAK,CAACq7B,KAAD,CAApB,EAA6B;AAC3B,YAAA,OAAA;AACD,WAAA;;AAED,UAAA,IAAIxnB,MAAM,GAAGy6E,gBAAgB,CAACzrF,IAAD,CAAhB,IAA0B,CAAvC,CAAA;UACA,IAAIk0B,KAAK,GAAGiuD,GAAG,CAACxpD,WAAJ,CAAgBklD,MAAM,CAACY,SAAP,EAAhB,CAAZ,CAAA;AACAgN,UAAAA,gBAAgB,CAACzrF,IAAD,CAAhB,GAAyBgR,MAAM,GAAG,CAAlC,CAAA;AACAwc,UAAAA,IAAI,CAACogB,aAAL,CAAmB5kB,GAAnB,EAAwB;AACtBkL,YAAAA,KAAK,EAAEA,KADe;AAEtBljB,YAAAA,MAAM,EAAEA,MAAAA;WAFV,CAAA,CAAA;SAbF,CAAA,CAAA;AAkBD,OAAA;AACF,KAxBD,EARmD;;AAkCnD,IAAA,IAAIwc,IAAI,GAAGy0D,SAAS,CAAC52D,OAAV,EAAX,CAAA;AACAmC,IAAAA,IAAI,CAACxnB,IAAL,CAAU,UAAUgjB,GAAV,EAAe;AACvB,MAAA,IAAIhpB,IAAI,GAAGwtB,IAAI,CAACyF,OAAL,CAAajK,GAAb,CAAX,CAAA;MACA,IAAIksB,MAAM,GAAG1nB,IAAI,CAACyH,aAAL,CAAmBjM,GAAnB,KAA2B,EAAxC,CAAA;AACAksB,MAAAA,MAAM,CAACsyC,SAAP,GAAmB,CAACiE,gBAAgB,CAACzrF,IAAD,CAApC,CAAA;AACAwtB,MAAAA,IAAI,CAACogB,aAAL,CAAmB5kB,GAAnB,EAAwBksB,MAAxB,CAAA,CAAA;KAJF,CAAA,CAAA;AAMAs2C,IAAAA,gBAAgB,CAACtN,OAAD,CAAhB,GAA4B,IAA5B,CAAA;GAzCF,CAAA,CAAA;AA2CD;;ACxFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoCA,IAAIxhB,gBAAgB,GAAGivB,cAAvB,CAAA;;AAEA,IAAIC,IAAI;AACR;AACA,UAAUpuE,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACmuE,IAAD,EAAOpuE,MAAP,CAAT,CAAA;;EAEA,SAASouE,IAAT,CAAc5rF,IAAd,EAAoB;IAClB,IAAI0d,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,KAAqB,IAAjC,CAAA;;IAEAD,KAAK,CAACrR,IAAN,GAAa,MAAb,CAAA;AACAqR,IAAAA,KAAK,CAACka,UAAN,GAAmB,CAAC,GAAD,EAAM,GAAN,CAAnB,CAAA;AACA;AACJ;AACA;AACA;AACA;;AAEIla,IAAAA,KAAK,CAACmuE,kBAAN,GAA2B,IAAIC,aAAJ,EAA3B,CAAA;AACA;AACJ;AACA;;AAEIpuE,IAAAA,KAAK,CAACquE,iBAAN,GAA0B,IAAID,aAAJ,EAA1B,CAAA;IACApuE,KAAK,CAAC1d,IAAN,GAAaA,IAAb,CAAA;AACA,IAAA,OAAO0d,KAAP,CAAA;AACD,GAAA;;AAEDkuE,EAAAA,IAAI,CAACtyF,SAAL,CAAe0yF,eAAf,GAAiC,UAAUjyF,CAAV,EAAaC,CAAb,EAAgB+I,KAAhB,EAAuBC,MAAvB,EAA+B;AAC9D,IAAA,IAAA,CAAK0nD,KAAL,GAAa,IAAIrqC,YAAJ,CAAiBtmB,CAAjB,EAAoBC,CAApB,EAAuB+I,KAAvB,EAA8BC,MAA9B,CAAb,CAAA;AACA,IAAA,OAAO,KAAK0nD,KAAZ,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;AAGEkhC,EAAAA,IAAI,CAACtyF,SAAL,CAAe2oD,eAAf,GAAiC,YAAY;AAC3C,IAAA,OAAO,KAAKyI,KAAZ,CAAA;GADF,CAAA;;AAIAkhC,EAAAA,IAAI,CAACtyF,SAAL,CAAe2yF,WAAf,GAA6B,UAAUlyF,CAAV,EAAaC,CAAb,EAAgB+I,KAAhB,EAAuBC,MAAvB,EAA+B;IAC1D,IAAKkpF,CAAAA,YAAL,CAAkBnyF,CAAlB,EAAqBC,CAArB,EAAwB+I,KAAxB,EAA+BC,MAA/B,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKmpF,SAAL,GAAiB,IAAI9rE,YAAJ,CAAiBtmB,CAAjB,EAAoBC,CAApB,EAAuB+I,KAAvB,EAA8BC,MAA9B,CAAjB,CAAA;GAHF,CAAA;AAKA;AACF;AACA;;;AAGE4oF,EAAAA,IAAI,CAACtyF,SAAL,CAAe4yF,YAAf,GAA8B,UAAUnyF,CAAV,EAAaC,CAAb,EAAgB+I,KAAhB,EAAuBC,MAAvB,EAA+B;AAC3D,IAAA,IAAI9G,IAAI,GAAG,IAAK+lD,CAAAA,eAAL,EAAX,CAAA;IACA,IAAImqC,YAAY,GAAG,IAAA,CAAKL,iBAAxB,CAAA;AACAK,IAAAA,YAAY,CAAChnF,SAAb,GAAyBlJ,IAAI,CAACmwF,kBAAL,CAAwB,IAAIhsE,YAAJ,CAAiBtmB,CAAjB,EAAoBC,CAApB,EAAuB+I,KAAvB,EAA8BC,MAA9B,CAAxB,CAAzB,CAAA;AACA,IAAA,IAAIspF,SAAS,GAAGF,YAAY,CAACp4D,MAA7B,CAAA;IACAo4D,YAAY,CAACp4D,MAAb,GAAsB,IAAtB,CAAA;AACAo4D,IAAAA,YAAY,CAACntB,kBAAb,EAAA,CAAA;IACAmtB,YAAY,CAACp4D,MAAb,GAAsBs4D,SAAtB,CAAA;;AAEA,IAAA,IAAA,CAAKC,gBAAL,EAAA,CAAA;GATF,CAAA;AAWA;AACF;AACA;;;EAGEX,IAAI,CAACtyF,SAAL,CAAeolF,SAAf,GAA2B,UAAU8N,WAAV,EAAuB32E,GAAvB,EAA4B;IACrD,IAAI,CAAC22E,WAAL,EAAkB;AAChB,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKC,OAAL,GAAe,CAAC5uC,YAAY,CAAC2uC,WAAW,CAAC,CAAD,CAAZ,EAAiB32E,GAAG,CAACmG,QAAJ,EAAjB,CAAb,EAA+C6hC,YAAY,CAAC2uC,WAAW,CAAC,CAAD,CAAZ,EAAiB32E,GAAG,CAACoG,SAAJ,EAAjB,CAA3D,CAAf,CAAA;;AAEA,IAAA,IAAA,CAAKywE,oBAAL,EAAA,CAAA;GAPF,CAAA;;AAUAd,EAAAA,IAAI,CAACtyF,SAAL,CAAeixF,OAAf,GAAyB,UAAUvW,IAAV,EAAgB;IACvCA,IAAI,GAAGA,IAAI,IAAI,CAAf,CAAA;IACA,IAAIF,SAAS,GAAG,IAAA,CAAKA,SAArB,CAAA;;AAEA,IAAA,IAAIA,SAAJ,EAAe;AACb,MAAA,IAAIA,SAAS,CAACt4D,GAAV,IAAiB,IAArB,EAA2B;QACzBw4D,IAAI,GAAGl7E,IAAI,CAAC8iC,GAAL,CAASk4C,SAAS,CAACt4D,GAAnB,EAAwBw4D,IAAxB,CAAP,CAAA;AACD,OAAA;;AAED,MAAA,IAAIF,SAAS,CAACl4C,GAAV,IAAiB,IAArB,EAA2B;QACzBo4C,IAAI,GAAGl7E,IAAI,CAAC0iB,GAAL,CAASs4D,SAAS,CAACl4C,GAAnB,EAAwBo4C,IAAxB,CAAP,CAAA;AACD,OAAA;AACF,KAAA;;IAED,IAAK2Y,CAAAA,KAAL,GAAa3Y,IAAb,CAAA;;AAEA,IAAA,IAAA,CAAK0Y,oBAAL,EAAA,CAAA;GAhBF,CAAA;AAkBA;AACF;AACA;;;AAGEd,EAAAA,IAAI,CAACtyF,SAAL,CAAeszF,gBAAf,GAAkC,YAAY;AAC5C;AACA,IAAA,IAAIC,OAAO,GAAG,IAAK5qC,CAAAA,eAAL,EAAd,CAAA;IACA,IAAIvnD,EAAE,GAAGmyF,OAAO,CAAC9yF,CAAR,GAAY8yF,OAAO,CAAC9pF,KAAR,GAAgB,CAArC,CAAA;IACA,IAAIpI,EAAE,GAAGkyF,OAAO,CAAC7yF,CAAR,GAAY6yF,OAAO,CAAC7pF,MAAR,GAAiB,CAAtC,CAAA;AACA,IAAA,OAAO,CAACtI,EAAD,EAAKC,EAAL,CAAP,CAAA;GALF,CAAA;;AAQAixF,EAAAA,IAAI,CAACtyF,SAAL,CAAemlF,SAAf,GAA2B,YAAY;AACrC,IAAA,OAAO,IAAKgO,CAAAA,OAAL,IAAgB,IAAA,CAAKG,gBAAL,EAAvB,CAAA;GADF,CAAA;;AAIAhB,EAAAA,IAAI,CAACtyF,SAAL,CAAeitF,OAAf,GAAyB,YAAY;IACnC,OAAO,IAAA,CAAKoG,KAAL,IAAc,CAArB,CAAA;GADF,CAAA;;AAIAf,EAAAA,IAAI,CAACtyF,SAAL,CAAewzF,gBAAf,GAAkC,YAAY;AAC5C,IAAA,OAAO,IAAKjB,CAAAA,kBAAL,CAAwBzrB,iBAAxB,EAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEwrB,EAAAA,IAAI,CAACtyF,SAAL,CAAeozF,oBAAf,GAAsC,YAAY;AAChD;AACA,IAAA,IAAIK,kBAAkB,GAAG,IAAA,CAAKhB,iBAAL,CAAuB3rB,iBAAvB,EAAzB,CAAA;;IAEA,IAAI4sB,aAAa,GAAG,IAAA,CAAKnB,kBAAzB,CAAA;AACA,IAAA,IAAIoB,aAAa,GAAG,IAAKL,CAAAA,gBAAL,EAApB,CAAA;AACA,IAAA,IAAIjvC,MAAM,GAAG,IAAK8gC,CAAAA,SAAL,EAAb,CAAA;AACA,IAAA,IAAIzK,IAAI,GAAG,IAAKuS,CAAAA,OAAL,EAAX,CAAA;IACA5oC,MAAM,GAAGguC,cAAA,CAAsB,EAAtB,EAA0BhuC,MAA1B,EAAkCovC,kBAAlC,CAAT,CAAA;IACAE,aAAa,GAAGtB,cAAA,CAAsB,EAAtB,EAA0BsB,aAA1B,EAAyCF,kBAAzC,CAAhB,CAAA;AACAC,IAAAA,aAAa,CAAC3nF,OAAd,GAAwBs4C,MAAM,CAAC,CAAD,CAA9B,CAAA;AACAqvC,IAAAA,aAAa,CAAC1nF,OAAd,GAAwBq4C,MAAM,CAAC,CAAD,CAA9B,CAAA;IACAqvC,aAAa,CAACjzF,CAAd,GAAkBkzF,aAAa,CAAC,CAAD,CAAb,GAAmBtvC,MAAM,CAAC,CAAD,CAA3C,CAAA;IACAqvC,aAAa,CAAChzF,CAAd,GAAkBizF,aAAa,CAAC,CAAD,CAAb,GAAmBtvC,MAAM,CAAC,CAAD,CAA3C,CAAA;AACAqvC,IAAAA,aAAa,CAAC39E,MAAd,GAAuB29E,aAAa,CAAC19E,MAAd,GAAuB0kE,IAA9C,CAAA;;AAEA,IAAA,IAAA,CAAKuY,gBAAL,EAAA,CAAA;GAhBF,CAAA;AAkBA;AACF;AACA;AACA;;;AAGEX,EAAAA,IAAI,CAACtyF,SAAL,CAAeizF,gBAAf,GAAkC,YAAY;IAC5C,IAAIW,iBAAiB,GAAG,IAAA,CAAKrB,kBAA7B,CAAA;IACA,IAAIsB,gBAAgB,GAAG,IAAA,CAAKpB,iBAA5B,CAAA;IACAoB,gBAAgB,CAACn5D,MAAjB,GAA0Bk5D,iBAA1B,CAAA;AACAA,IAAAA,iBAAiB,CAACnhC,eAAlB,EAAA,CAAA;AACAohC,IAAAA,gBAAgB,CAACphC,eAAjB,EAAA,CAAA;AACAwQ,IAAAA,IAAA,CAAY,KAAKn3D,SAAL,KAAmB,KAAKA,SAAL,GAAiB,EAApC,CAAZ,EAAqD+nF,gBAAgB,CAAC/nF,SAAjB,IAA8Bm3D,QAAA,EAAnF,CAAA,CAAA;AACA,IAAA,IAAA,CAAK6wB,aAAL,GAAqBD,gBAAgB,CAAC/sB,iBAAjB,EAArB,CAAA;AACA,IAAA,IAAA,CAAKitB,YAAL,GAAoB,IAAKA,CAAAA,YAAL,IAAqB,EAAzC,CAAA;AACA9wB,IAAAA,MAAA,CAAc,KAAK8wB,YAAnB,EAAiC,KAAKjoF,SAAtC,CAAA,CAAA;AACA,IAAA,IAAA,CAAK65D,kBAAL,EAAA,CAAA;GAVF,CAAA;;AAaA2sB,EAAAA,IAAI,CAACtyF,SAAL,CAAegpF,gBAAf,GAAkC,YAAY;IAC5C,IAAI6K,gBAAgB,GAAG,IAAA,CAAKpB,iBAA5B,CAAA;AACA,IAAA,IAAImB,iBAAiB,GAAG,IAAKrB,CAAAA,kBAA7B,CAF4C;AAG5C;AACA;;AAEA,IAAA,IAAIyB,kBAAkB,GAAG,IAAIxB,aAAJ,EAAzB,CAAA;AACAwB,IAAAA,kBAAkB,CAACloF,SAAnB,GAA+B8nF,iBAAiB,CAAC9nF,SAAjD,CAAA;AACAkoF,IAAAA,kBAAkB,CAACruB,kBAAnB,EAAA,CAAA;IACA,OAAO;AACLyjB,MAAAA,IAAI,EAAE;QACJ3oF,CAAC,EAAEuzF,kBAAkB,CAACvzF,CADlB;QAEJC,CAAC,EAAEszF,kBAAkB,CAACtzF,CAFlB;QAGJqV,MAAM,EAAEi+E,kBAAkB,CAACj+E,MAHvB;QAIJC,MAAM,EAAEg+E,kBAAkB,CAACh+E,MAAAA;OALxB;AAOLkzE,MAAAA,GAAG,EAAE;QACHzoF,CAAC,EAAEozF,gBAAgB,CAACpzF,CADjB;QAEHC,CAAC,EAAEmzF,gBAAgB,CAACnzF,CAFjB;QAGHqV,MAAM,EAAE89E,gBAAgB,CAAC99E,MAHtB;QAIHC,MAAM,EAAE69E,gBAAgB,CAAC79E,MAAAA;AAJtB,OAAA;KAPP,CAAA;GATF,CAAA;;AAyBAs8E,EAAAA,IAAI,CAACtyF,SAAL,CAAeikD,WAAf,GAA6B,YAAY;AACvC,IAAA,OAAO,KAAK4uC,SAAZ,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEP,EAAAA,IAAI,CAACtyF,SAAL,CAAei0F,oBAAf,GAAsC,YAAY;AAChD,IAAA,IAAIrxF,IAAI,GAAG,IAAA,CAAK+lD,eAAL,EAAA,CAAuBrvC,KAAvB,EAAX,CAAA;AACA1W,IAAAA,IAAI,CAAC4nD,cAAL,CAAoB,IAAA,CAAK1+C,SAAzB,CAAA,CAAA;AACA,IAAA,OAAOlJ,IAAP,CAAA;GAHF,CAAA;AAKA;AACF;AACA;;;EAGE0vF,IAAI,CAACtyF,SAAL,CAAeq/B,WAAf,GAA6B,UAAUnL,IAAV,EAAgBggE,MAAhB,EAAwB7yE,GAAxB,EAA6B;IACxD,IAAIvV,SAAS,GAAGooF,MAAM,GAAG,KAAKJ,aAAR,GAAwB,KAAKhoF,SAAnD,CAAA;IACAuV,GAAG,GAAGA,GAAG,IAAI,EAAb,CAAA;AACA,IAAA,OAAOvV,SAAS,GAAGs3D,gBAAgB,CAAC/hD,GAAD,EAAM6S,IAAN,EAAYpoB,SAAZ,CAAnB,GAA4CumF,MAAA,CAAYhxE,GAAZ,EAAiB6S,IAAjB,CAA5D,CAAA;GAHF,CAAA;AAKA;AACF;AACA;;;AAGEo+D,EAAAA,IAAI,CAACtyF,SAAL,CAAe85D,WAAf,GAA6B,UAAUl/B,KAAV,EAAiB;IAC5C,IAAIm5D,YAAY,GAAG,IAAA,CAAKA,YAAxB,CAAA;IACA,OAAOA,YAAY,GAAG3wB,gBAAgB,CAAC,EAAD,EAAKxoC,KAAL,EAAYm5D,YAAZ,CAAnB,GAA+C,CAACn5D,KAAK,CAAC,CAAD,CAAN,EAAWA,KAAK,CAAC,CAAD,CAAhB,CAAlE,CAAA;GAFF,CAAA;;EAKA03D,IAAI,CAACtyF,SAAL,CAAeigE,cAAf,GAAgC,UAAUlyB,OAAV,EAAmBmyB,MAAnB,EAA2BhhC,KAA3B,EAAkC;AAChE,IAAA,IAAIpO,QAAQ,GAAGqjE,aAAW,CAACj0B,MAAD,CAA1B,CAAA;IACA,OAAOpvC,QAAQ,KAAK,IAAb,GAAoBA,QAAQ,CAACuO,WAAT,CAAqBH,KAArB,CAApB,GAAkD,IAAzD,CAAA;GAFF,CAAA;;EAKAozD,IAAI,CAACtyF,SAAL,CAAeogE,gBAAf,GAAkC,UAAUryB,OAAV,EAAmBmyB,MAAnB,EAA2B2V,KAA3B,EAAkC;AAClE,IAAA,IAAI/kD,QAAQ,GAAGqjE,aAAW,CAACj0B,MAAD,CAA1B,CAAA;IACA,OAAOpvC,QAAQ,KAAK,IAAb,GAAoBA,QAAQ,CAACgpC,WAAT,CAAqB+b,KAArB,CAApB,GAAkD,IAAzD,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;AAGEyc,EAAAA,IAAI,CAACtyF,SAAL,CAAe2sD,YAAf,GAA8B,UAAU/xB,KAAV,EAAiB;AAC7C,IAAA,OAAO,IAAKq5D,CAAAA,oBAAL,EAA4Bl5D,CAAAA,OAA5B,CAAoCH,KAAK,CAAC,CAAD,CAAzC,EAA8CA,KAAK,CAAC,CAAD,CAAnD,CAAP,CAAA;GADF,CAAA;;AAIA03D,EAAAA,IAAI,CAACh0D,UAAL,GAAkB,CAAC,GAAD,EAAM,GAAN,CAAlB,CAAA;AACA,EAAA,OAAOg0D,IAAP,CAAA;AACD,CA3OD,CA2OEE,aA3OF,CAFA,CAAA;;AA+OA,SAAS2B,aAAT,CAAqBj0B,MAArB,EAA6B;AAC3B,EAAA,IAAIxpC,WAAW,GAAGwpC,MAAM,CAACxpC,WAAzB,CAAA;EACA,OAAOA,WAAW,GAAGA,WAAW,CAAC3F,gBAAf,GAAkC,IAApD,CAF2B;AAG5B;;ACzSD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA,IAAIqjE,kBAAkB,GAAG;EACvB,SAAW,EAAA;AACThD,IAAAA,WAAW,EAAE,IADJ;AAETiD,IAAAA,eAAe,EAAE,IAAA;GAHI;EAKvB,QAAU,EAAA;AACRjD,IAAAA,WAAW,EAAE,CADL;AAERiD,IAAAA,eAAe,EAAE,KAAA;AAFT,GAAA;AALa,CAAzB,CAAA;AAUO,IAAIC,eAAe,GAAG,CAAC,KAAD,EAAQ,KAAR,CAAtB,CAAA;;AAEP,IAAIC,GAAG;AACP;AACA,UAAUrwE,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACowE,GAAD,EAAMrwE,MAAN,CAAT,CAAA;;AAEA,EAAA,SAASqwE,GAAT,CAAa7tF,IAAb,EAAmB9B,GAAnB,EAAwBwsB,GAAxB,EAA6B;IAC3B,IAAIhN,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB3d,IAAlB,CAAA,IAA2B,IAAvC,CAAA;;IAEA0d,KAAK,CAACka,UAAN,GAAmBg2D,eAAnB,CAAA;AACAlwE,IAAAA,KAAK,CAACrR,IAAN,GAAa,KAAb,CAJ2B;;AAM3BqR,IAAAA,KAAK,CAACowE,aAAN,GAAsB9sD,aAAA,EAAtB,CAAA;IACAtjB,KAAK,CAACxf,GAAN,GAAYA,GAAZ,CAAA;AACA,IAAA,IAAIolF,UAAU,GAAG54D,GAAG,CAAC44D,UAArB,CAAA;AACA,IAAA,IAAI98B,MAAM,GAAG8/B,gBAAgB,CAACrK,IAAjB,CAAsB/9E,GAAtB,EAA2BwsB,GAAG,CAAC20D,OAA/B,EAAwC30D,GAAG,CAAC40D,YAA5C,CAAb,CAAA;AACA,IAAA,IAAIoB,QAAQ,GAAG4F,gBAAgB,CAAC1F,cAAjB,CAAgC1iF,GAAhC,CAAf,CAAA;AACA,IAAA,IAAI4kF,YAAY,GAAGplE,KAAK,CAAColE,YAAN,GAAqBpC,QAAQ,GAAGA,QAAQ,CAACr0E,IAAZ,GAAmB,IAAnE,CAAA;IACA,IAAIkwE,OAAO,GAAG7+D,KAAK,CAAC6+D,OAAN,GAAgB/1B,MAAM,CAAC+1B,OAArC,CAAA;AACA,IAAA,IAAIwR,aAAa,GAAGL,kBAAkB,CAAChN,QAAQ,CAACr0E,IAAV,CAAtC,CAAA;AACAqR,IAAAA,KAAK,CAACg/D,WAAN,GAAoBl2B,MAAM,CAACg2B,UAA3B,CAAA;AACA9+D,IAAAA,KAAK,CAAC6+D,OAAN,GAAgB/1B,MAAM,CAAC+1B,OAAvB,CAAA;;IAEA,IAAI7rE,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC0yE,UAA7C,EAAyD;AACvD;MACA,IAAIR,YAAY,KAAK,QAArB,EAA+B;AAC7B,QAAA,IAAIpyE,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCgyB,UAAAA,IAAI,CAAC,MAAA,GAAS1kC,GAAT,GAAe,iFAAhB,CAAJ,CAAA;AACD,SAAA;;AAEDolF,QAAAA,UAAU,GAAG,IAAb,CAAA;AACD,OAAA;;MAED,IAAI,EAAEA,UAAU,CAACI,OAAX,IAAsBJ,UAAU,CAAC0K,SAAnC,CAAJ,EAAmD;AACjD,QAAA,IAAIt9E,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;UACzCgyB,IAAI,CAAC,gEAAD,CAAJ,CAAA;AACD,SAAA;;AAED0gD,QAAAA,UAAU,GAAG,IAAb,CAAA;AACD,OAAA;AACF,KAAA;;IAED5lE,KAAK,CAAC4lE,UAAN,GAAmBA,UAAnB,CAAA;AACA,IAAA,IAAI7iE,YAAJ,CAAA;;AAEA,IAAA,IAAI6iE,UAAJ,EAAgB;AACd;AACA,MAAA,KAAK,IAAItmF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGu/E,OAAO,CAACjgF,MAA5B,EAAoCU,CAAC,EAArC,EAAyC;QACvC,IAAIojF,UAAU,GAAG7D,OAAO,CAACv/E,CAAD,CAAP,CAAWilD,eAAX,CAA2BqhC,UAA3B,CAAjB,CAAA;AACA7iE,QAAAA,YAAY,GAAGA,YAAY,IAAI2/D,UAAU,CAACxtE,KAAX,EAA/B,CAAA;QACA6N,YAAY,CAACS,KAAb,CAAmBk/D,UAAnB,CAAA,CAAA;AACD,OAAA;AACF,KAPD,MAOO;MACL3/D,YAAY,GAAG+lC,MAAM,CAAC/lC,YAAtB,CAAA;AACD,KAAA;;AAED/C,IAAAA,KAAK,CAACsuE,eAAN,CAAsBvrE,YAAY,CAAC1mB,CAAnC,EAAsC0mB,YAAY,CAACzmB,CAAnD,EAAsDymB,YAAY,CAAC1d,KAAnE,EAA0E0d,YAAY,CAACzd,MAAvF,EAlD2B;AAmD3B;AACA;;;IAGA0a,KAAK,CAACgtE,WAAN,GAAoBpH,UAAU,GAAG,CAAH,GAAOtiD,SAAA,CAAiBtW,GAAG,CAACggE,WAArB,EAAkCqD,aAAa,CAACrD,WAAhD,CAArC,CAvD2B;;IAyD3BhtE,KAAK,CAACuwE,gBAAN,GAAyB3K,UAAU,GAAG,KAAH,GAAWyK,aAAa,CAACJ,eAA5D,CAAA;AACA,IAAA,OAAOjwE,KAAP,CAAA;AACD,GAAA;;AAEDmwE,EAAAA,GAAG,CAACv0F,SAAJ,CAAc4yF,YAAd,GAA6B,UAAUnyF,CAAV,EAAaC,CAAb,EAAgB+I,KAAhB,EAAuBC,MAAvB,EAA+B;AAC1D,IAAA,IAAI9G,IAAI,GAAG,IAAK+lD,CAAAA,eAAL,EAAX,CAAA;IACA,IAAI0rC,eAAe,GAAG,IAAA,CAAKM,gBAA3B,CAAA;AACA/xF,IAAAA,IAAI,GAAGA,IAAI,CAAC0W,KAAL,EAAP,CAAA;;AAEA,IAAA,IAAI+6E,eAAJ,EAAqB;AACnB;MACAzxF,IAAI,CAAClC,CAAL,GAAS,CAACkC,IAAI,CAAClC,CAAN,GAAUkC,IAAI,CAAC8G,MAAxB,CAAA;AACD,KAAA;;IAED,IAAImqF,gBAAgB,GAAG,IAAA,CAAKpB,iBAA5B,CAAA;AACAoB,IAAAA,gBAAgB,CAAC/nF,SAAjB,GAA6BlJ,IAAI,CAACmwF,kBAAL,CAAwB,IAAIhsE,YAAJ,CAAiBtmB,CAAjB,EAAoBC,CAApB,EAAuB+I,KAAvB,EAA8BC,MAA9B,CAAxB,CAA7B,CAAA;AACA,IAAA,IAAIspF,SAAS,GAAGa,gBAAgB,CAACn5D,MAAjC,CAAA;IACAm5D,gBAAgB,CAACn5D,MAAjB,GAA0B,IAA1B,CAAA;AACAm5D,IAAAA,gBAAgB,CAACluB,kBAAjB,EAAA,CAAA;IACAkuB,gBAAgB,CAACn5D,MAAjB,GAA0Bs4D,SAA1B,CAAA;;AAEA,IAAA,IAAIqB,eAAJ,EAAqB;AACnBR,MAAAA,gBAAgB,CAAC79E,MAAjB,GAA0B,CAAC69E,gBAAgB,CAAC79E,MAA5C,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKi9E,gBAAL,EAAA,CAAA;GArBF,CAAA;;AAwBAsB,EAAAA,GAAG,CAACv0F,SAAJ,CAAcuwF,SAAd,GAA0B,UAAU7pF,IAAV,EAAgB;AACxC,IAAA,OAAO,KAAK08E,WAAL,CAAiBjrD,GAAjB,CAAqBzxB,IAArB,CAAP,CAAA;GADF,CAAA;;AAIA6tF,EAAAA,GAAG,CAACv0F,SAAJ,CAAc40F,gBAAd,GAAiC,UAAU3rD,KAAV,EAAiB;IAChD,IAAIg6C,OAAO,GAAG,IAAA,CAAKA,OAAnB,CAAA;;AAEA,IAAA,KAAK,IAAIv/E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGu/E,OAAO,CAACjgF,MAA5B,EAAoCU,CAAC,EAArC,EAAyC;AACvC,MAAA,IAAI6gF,MAAM,GAAGtB,OAAO,CAACv/E,CAAD,CAApB,CAAA;;AAEA,MAAA,IAAI6gF,MAAM,CAACxxE,IAAP,KAAgB,SAAhB,IAA6BwxE,MAAM,CAACxpD,OAAP,CAAekO,KAAf,CAAjC,EAAwD;QACtD,OAAOg6C,OAAO,CAACv/E,CAAD,CAAd,CAAA;AACD,OAAA;AACF,KAAA;GATH,CAAA;AAWA;AACF;AACA;;;EAGE6wF,GAAG,CAACv0F,SAAJ,CAAc60F,WAAd,GAA4B,UAAUnuF,IAAV,EAAgB+9E,QAAhB,EAA0B;AACpD,IAAA,IAAA,CAAK+P,aAAL,CAAmBviC,GAAnB,CAAuBvrD,IAAvB,EAA6B+9E,QAA7B,CAAA,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGE8P,EAAAA,GAAG,CAACv0F,SAAJ,CAAc80F,WAAd,GAA4B,UAAUpuF,IAAV,EAAgB;IAC1C,IAAI69E,MAAM,GAAG,IAAA,CAAKnB,WAAL,CAAiBjrD,GAAjB,CAAqBzxB,IAArB,CAAb,CAD0C;;;AAI1C,IAAA,OAAO,IAAK8tF,CAAAA,aAAL,CAAmBr8D,GAAnB,CAAuBzxB,IAAvB,CAAgC69E,IAAAA,MAAM,IAAIA,MAAM,CAACY,SAAP,EAAjD,CAAA;GAJF,CAAA;;EAOAoP,GAAG,CAACv0F,SAAJ,CAAcq/B,WAAd,GAA4B,UAAUnL,IAAV,EAAgBggE,MAAhB,EAAwB7yE,GAAxB,EAA6B;AACvD,IAAA,IAAIqmB,QAAA,CAAgBxT,IAAhB,CAAJ,EAA2B;AACzB;AACAA,MAAAA,IAAI,GAAG,IAAA,CAAK4gE,WAAL,CAAiB5gE,IAAjB,CAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAIA,IAAJ,EAAU;MACR,IAAI81D,UAAU,GAAG,IAAA,CAAKA,UAAtB,CAAA;;AAEA,MAAA,IAAIA,UAAJ,EAAgB;AACd;AACA91D,QAAAA,IAAI,GAAG81D,UAAU,CAACI,OAAX,CAAmBl2D,IAAnB,CAAP,CAAA;AACD,OAAA;;MAED,OAAOA,IAAI,IAAI,IAAA,CAAK6gE,gBAAL,CAAsB7gE,IAAtB,EAA4BggE,MAA5B,EAAoC7yE,GAApC,CAAf,CAAA;AACD,KAAA;GAfH,CAAA;;AAkBAkzE,EAAAA,GAAG,CAACv0F,SAAJ,CAAc85D,WAAd,GAA4B,UAAUl/B,KAAV,EAAiB;IAC3C,IAAIovD,UAAU,GAAG,IAAA,CAAKA,UAAtB,CAAA;;AAEA,IAAA,IAAIA,UAAJ,EAAgB;AACd;AACApvD,MAAAA,KAAK,GAAGovD,UAAU,CAAC0K,SAAX,CAAqB95D,KAArB,CAAR,CAAA;AACD,KAAA;;AAED,IAAA,OAAOA,KAAK,IAAI,IAAA,CAAKo6D,gBAAL,CAAsBp6D,KAAtB,CAAhB,CAAA;GARF,CAAA;AAUA;AACF;AACA;;;AAGE25D,EAAAA,GAAG,CAACv0F,SAAJ,CAAcg1F,gBAAd,GAAiC,UAAUp6D,KAAV,EAAiB;IAChD,OAAO1W,MAAM,CAAClkB,SAAP,CAAiB85D,WAAjB,CAA6Bz1C,IAA7B,CAAkC,IAAlC,EAAwCuW,KAAxC,CAAP,CAAA;GADF,CAAA;;EAIA25D,GAAG,CAACv0F,SAAJ,CAAc+0F,gBAAd,GAAiC,UAAUE,SAAV,EAAqBf,MAArB,EAA6B7yE,GAA7B,EAAkC;AACjE,IAAA,OAAO6C,MAAM,CAAClkB,SAAP,CAAiBq/B,WAAjB,CAA6Bhb,IAA7B,CAAkC,IAAlC,EAAwC4wE,SAAxC,EAAmDf,MAAnD,EAA2D7yE,GAA3D,CAAP,CAAA;GADF,CAAA;;EAIAkzE,GAAG,CAACv0F,SAAJ,CAAcigE,cAAd,GAA+B,UAAUlyB,OAAV,EAAmBmyB,MAAnB,EAA2BhhC,KAA3B,EAAkC;AAC/D,IAAA,IAAIpO,QAAQ,GAAGqjE,aAAW,CAACj0B,MAAD,CAA1B,CAAA;IACA,OAAOpvC,QAAQ,KAAK,IAAb,GAAoBA,QAAQ,CAACuO,WAAT,CAAqBH,KAArB,CAApB,GAAkD,IAAzD,CAAA;GAFF,CAAA;;EAKAq1D,GAAG,CAACv0F,SAAJ,CAAcogE,gBAAd,GAAiC,UAAUryB,OAAV,EAAmBmyB,MAAnB,EAA2B2V,KAA3B,EAAkC;AACjE,IAAA,IAAI/kD,QAAQ,GAAGqjE,aAAW,CAACj0B,MAAD,CAA1B,CAAA;IACA,OAAOpvC,QAAQ,KAAK,IAAb,GAAoBA,QAAQ,CAACgpC,WAAT,CAAqB+b,KAArB,CAApB,GAAkD,IAAzD,CAAA;GAFF,CAAA;;AAKA,EAAA,OAAO0e,GAAP,CAAA;AACD,CA/KD,CA+KEjC,IA/KF,CAFA,CAAA;;AAmLA,CAAA;AACA5qD,KAAA,CAAa6sD,GAAb,EAAkBjC,IAAlB,CAAA,CAAA;;AAEA,SAAS6B,aAAT,CAAqBj0B,MAArB,EAA6B;AAC3B,EAAA,IAAI4sB,QAAQ,GAAG5sB,MAAM,CAAC4sB,QAAtB,CAAA;AACA,EAAA,IAAIp2D,WAAW,GAAGwpC,MAAM,CAACxpC,WAAzB,CAAA;EACA,OAAOo2D,QAAQ,GAAGA,QAAQ,CAAC/7D,gBAAZ,GAA+B2F,WAAW,GAAGA,WAAW,CAAC3F,gBAAZ;AAAA,KACzD,CAAC2F,WAAW,CAACw8B,sBAAZ,CAAmC,KAAnC,EAA0CC,gBAA1C,CAA4DC,CAAAA,MAA5D,CAAmE,CAAnE,CAAA,IAAyE,EAA1E,EAA8EriC,gBADxB,GAC2C,IADpG,CAAA;AAED;;ACxPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA;AACA;AACA;;AAEA,SAASmkE,SAAT,CAAmBpI,QAAnB,EAA6BvwE,GAA7B,EAAkC;AAChC,EAAA,IAAI+0E,cAAc,GAAGxE,QAAQ,CAAC30D,GAAT,CAAa,gBAAb,CAArB,CAAA;;EAEA,IAAIm5D,cAAc,IAAI,IAAtB,EAA4B;AAC1B,IAAA,IAAI6D,SAAS,GAAG7D,cAAc,CAAC,CAAD,CAA9B,CAAA;AACA,IAAA,IAAI8D,aAAa,GAAG9D,cAAc,CAAC,CAAD,CAAlC,CAAA;;AAEA,IAAA,IAAI,EAAErqE,QAAQ,CAACkuE,SAAS,CAAC,CAAD,CAAV,CAAR,IAA0BluE,QAAQ,CAACkuE,SAAS,CAAC,CAAD,CAAV,CAAlC,IAAoDluE,QAAQ,CAACmuE,aAAa,CAAC,CAAD,CAAd,CAA5D,IAAkFnuE,QAAQ,CAACmuE,aAAa,CAAC,CAAD,CAAd,CAA5F,CAAJ,EAAqH;AACnH,MAAA,IAAIh+E,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;QACzCqE,OAAO,CAACC,KAAR,CAAc,wBAAd,CAAA,CAAA;AACD,OAAA;AACF,KAJD,MAIO;AACL;MACA,IAAIy5E,YAAY,GAAG,IAAA,CAAKrL,UAAxB,CAAA;;AAEA,MAAA,IAAIqL,YAAJ,EAAkB;AAChB,QAAA,IAAIC,IAAI,GAAGH,SAAS,CAAC,CAAD,CAApB,CAAA;AACA,QAAA,IAAII,IAAI,GAAGJ,SAAS,CAAC,CAAD,CAApB,CAAA;AACA,QAAA,IAAIK,IAAI,GAAGJ,aAAa,CAAC,CAAD,CAAxB,CAAA;AACA,QAAA,IAAIK,IAAI,GAAGL,aAAa,CAAC,CAAD,CAAxB,CAAA;AACAD,QAAAA,SAAS,GAAG,CAAC5tE,QAAD,EAAWA,QAAX,CAAZ,CAAA;QACA6tE,aAAa,GAAG,CAAC,CAAC7tE,QAAF,EAAY,CAACA,QAAb,CAAhB,CANgB;;AAQhB,QAAA,IAAImuE,UAAU,GAAG,SAAbA,UAAa,CAAUpzF,EAAV,EAAcC,EAAd,EAAkByU,EAAlB,EAAsBC,EAAtB,EAA0B;AACzC,UAAA,IAAIujB,EAAE,GAAGxjB,EAAE,GAAG1U,EAAd,CAAA;AACA,UAAA,IAAIm4B,EAAE,GAAGxjB,EAAE,GAAG1U,EAAd,CAAA;;UAEA,KAAK,IAAImB,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,GAArB,EAA0BA,CAAC,EAA3B,EAA+B;AAC7B,YAAA,IAAIhB,CAAC,GAAGgB,CAAC,GAAG,GAAZ,CAAA;AACA,YAAA,IAAImkC,EAAE,GAAGwtD,YAAY,CAACjL,OAAb,CAAqB,CAAC9nF,EAAE,GAAGk4B,EAAE,GAAG93B,CAAX,EAAcH,EAAE,GAAGk4B,EAAE,GAAG/3B,CAAxB,CAArB,CAAT,CAAA;AACA2vF,YAAAA,GAAA,CAAW8C,SAAX,EAAsBA,SAAtB,EAAiCttD,EAAjC,CAAA,CAAA;AACAwqD,YAAAA,GAAA,CAAW+C,aAAX,EAA0BA,aAA1B,EAAyCvtD,EAAzC,CAAA,CAAA;AACD,WAAA;AACF,SAVD,CARgB;;;QAqBhB6tD,UAAU,CAACJ,IAAD,EAAOC,IAAP,EAAaC,IAAb,EAAmBD,IAAnB,CAAV,CArBgB;;QAuBhBG,UAAU,CAACF,IAAD,EAAOD,IAAP,EAAaC,IAAb,EAAmBC,IAAnB,CAAV,CAvBgB;;QAyBhBC,UAAU,CAACF,IAAD,EAAOC,IAAP,EAAaH,IAAb,EAAmBG,IAAnB,CAAV,CAzBgB;;QA2BhBC,UAAU,CAACJ,IAAD,EAAOG,IAAP,EAAaD,IAAb,EAAmBD,IAAnB,CAAV,CAAA;AACD,OAAA;;AAED,MAAA,IAAA,CAAK7C,eAAL,CAAqByC,SAAS,CAAC,CAAD,CAA9B,EAAmCA,SAAS,CAAC,CAAD,CAA5C,EAAiDC,aAAa,CAAC,CAAD,CAAb,GAAmBD,SAAS,CAAC,CAAD,CAA7E,EAAkFC,aAAa,CAAC,CAAD,CAAb,GAAmBD,SAAS,CAAC,CAAD,CAA9G,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAIvyF,IAAI,GAAG,IAAK+lD,CAAAA,eAAL,EAAX,CAAA;AACA,EAAA,IAAIgtC,YAAY,GAAG7I,QAAQ,CAAC30D,GAAT,CAAa,cAAb,CAAnB,CAAA;AACA,EAAA,IAAIy9D,UAAU,GAAG9I,QAAQ,CAAC30D,GAAT,CAAa,YAAb,CAAjB,CAAA;AACA,EAAA,IAAIzR,SAAS,GAAGnK,GAAG,CAACmG,QAAJ,EAAhB,CAAA;AACA,EAAA,IAAIiE,UAAU,GAAGpK,GAAG,CAACoG,SAAJ,EAAjB,CAAA;EACA,IAAIkzE,MAAM,GAAGjzF,IAAI,CAAC6G,KAAL,GAAa7G,IAAI,CAAC8G,MAAlB,GAA2B,IAAA,CAAK0nF,WAA7C,CAAA;EACA,IAAI0E,gBAAgB,GAAG,KAAvB,CAAA;AACA,EAAA,IAAIzxC,MAAJ,CAAA;AACA,EAAA,IAAIlyB,IAAJ,CAAA;;EAEA,IAAIwjE,YAAY,IAAIC,UAApB,EAAgC;IAC9BvxC,MAAM,GAAG,CAACqxB,YAAA,CAAwBigB,YAAY,CAAC,CAAD,CAApC,EAAyCjvE,SAAzC,CAAD,EAAsDgvD,YAAA,CAAwBigB,YAAY,CAAC,CAAD,CAApC,EAAyChvE,UAAzC,CAAtD,CAAT,CAAA;AACAwL,IAAAA,IAAI,GAAGujD,YAAA,CAAwBkgB,UAAxB,EAAoCp2F,IAAI,CAAC8iC,GAAL,CAAS5b,SAAT,EAAoBC,UAApB,CAApC,CAAP,CAAA;;IAEA,IAAI,CAAC9iB,KAAK,CAACwgD,MAAM,CAAC,CAAD,CAAP,CAAN,IAAqB,CAACxgD,KAAK,CAACwgD,MAAM,CAAC,CAAD,CAAP,CAA3B,IAA0C,CAACxgD,KAAK,CAACsuB,IAAD,CAApD,EAA4D;AAC1D2jE,MAAAA,gBAAgB,GAAG,IAAnB,CAAA;AACD,KAFD,MAEO;AACL,MAAA,IAAI1+E,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;QACzCqE,OAAO,CAAC2tB,IAAR,CAAa,uFAAb,CAAA,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;AAED,EAAA,IAAI8a,QAAJ,CAAA;;AAEA,EAAA,IAAI0xC,gBAAJ,EAAsB;AACpB1xC,IAAAA,QAAQ,GAAG,EAAX,CAAA;;IAEA,IAAIyxC,MAAM,GAAG,CAAb,EAAgB;AACd;MACAzxC,QAAQ,CAAC36C,KAAT,GAAiB0oB,IAAjB,CAAA;AACAiyB,MAAAA,QAAQ,CAAC16C,MAAT,GAAkByoB,IAAI,GAAG0jE,MAAzB,CAAA;AACD,KAJD,MAIO;MACLzxC,QAAQ,CAAC16C,MAAT,GAAkByoB,IAAlB,CAAA;AACAiyB,MAAAA,QAAQ,CAAC36C,KAAT,GAAiB0oB,IAAI,GAAG0jE,MAAxB,CAAA;AACD,KAAA;;AAEDzxC,IAAAA,QAAQ,CAAC1jD,CAAT,GAAa2jD,MAAM,CAAC,CAAD,CAAN,GAAYD,QAAQ,CAAC16C,MAAT,GAAkB,CAA3C,CAAA;AACA06C,IAAAA,QAAQ,CAAC3jD,CAAT,GAAa4jD,MAAM,CAAC,CAAD,CAAN,GAAYD,QAAQ,CAAC36C,KAAT,GAAiB,CAA1C,CAAA;AACD,GAdD,MAcO;AACL;AACA,IAAA,IAAIssF,eAAe,GAAGjJ,QAAQ,CAAC5oC,kBAAT,EAAtB,CAAA;IACA6xC,eAAe,CAACF,MAAhB,GAAyBA,MAAzB,CAAA;AACAzxC,IAAAA,QAAQ,GAAGxI,aAAA,CAAqBm6C,eAArB,EAAsC;AAC/CtsF,MAAAA,KAAK,EAAEid,SADwC;AAE/Chd,MAAAA,MAAM,EAAEid,UAAAA;AAFuC,KAAtC,CAAX,CAAA;AAID,GAAA;;AAED,EAAA,IAAA,CAAKgsE,WAAL,CAAiBvuC,QAAQ,CAAC3jD,CAA1B,EAA6B2jD,QAAQ,CAAC1jD,CAAtC,EAAyC0jD,QAAQ,CAAC36C,KAAlD,EAAyD26C,QAAQ,CAAC16C,MAAlE,CAAA,CAAA;EACA,IAAK07E,CAAAA,SAAL,CAAe0H,QAAQ,CAAC30D,GAAT,CAAa,QAAb,CAAf,EAAuC5b,GAAvC,CAAA,CAAA;AACA,EAAA,IAAA,CAAK00E,OAAL,CAAanE,QAAQ,CAAC30D,GAAT,CAAa,MAAb,CAAb,CAAA,CAAA;AACD;AACD;;;AAGA,SAAS69D,YAAT,CAAsBnN,GAAtB,EAA2B5sC,KAA3B,EAAkC;AAChCvU,EAAAA,MAAA,CAAYuU,KAAK,CAAC9jB,GAAN,CAAU,UAAV,CAAZ,EAAmC,UAAUssD,QAAV,EAAoB/9E,IAApB,EAA0B;AAC3DmiF,IAAAA,GAAG,CAACgM,WAAJ,CAAgBnuF,IAAhB,EAAsB+9E,QAAtB,CAAA,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;;AAED,IAAIwR,UAAU;AACd;AACA,YAAY;AACV,EAAA,SAASA,UAAT,GAAsB;AACpB;IACA,IAAK33D,CAAAA,UAAL,GAAkBg2D,eAAlB,CAAA;AACD,GAAA;;EAED2B,UAAU,CAACj2F,SAAX,CAAqBshE,MAArB,GAA8B,UAAUvzB,OAAV,EAAmBxxB,GAAnB,EAAwB;IACpD,IAAI25E,OAAO,GAAG,EAAd,CAAA;;IAEA,SAASC,sBAAT,CAAgCl6C,KAAhC,EAAuC;MACrC,OAAO;AACL+pC,QAAAA,YAAY,EAAE/pC,KAAK,CAAC9jB,GAAN,CAAU,cAAV,CADT;AAELi5D,QAAAA,WAAW,EAAEn1C,KAAK,CAAC9jB,GAAN,CAAU,aAAV,CAFR;AAGL6xD,QAAAA,UAAU,EAAE/tC,KAAK,CAAC9jB,GAAN,CAAU,YAAV,CAAA;OAHd,CAAA;AAKD,KATmD;;;IAYpD4V,OAAO,CAAC4V,aAAR,CAAsB,KAAtB,EAA6B,UAAUmpC,QAAV,EAAoBp9D,GAApB,EAAyB;AACpD,MAAA,IAAI4yD,OAAO,GAAGwK,QAAQ,CAAC30D,GAAT,CAAa,KAAb,CAAd,CAAA;AACA,MAAA,IAAI0wD,GAAG,GAAG,IAAI0L,GAAJ,CAAQjS,OAAO,GAAG5yD,GAAlB,EAAuB4yD,OAAvB,EAAgC56C,MAAA,CAAc;AACtDq+C,QAAAA,OAAO,EAAE+G,QAAQ,CAAC30D,GAAT,CAAa,SAAb,CAAA;AAD6C,OAAd,EAEvCg+D,sBAAsB,CAACrJ,QAAD,CAFiB,CAAhC,CAAV,CAAA;MAGAjE,GAAG,CAACrO,SAAJ,GAAgBsS,QAAQ,CAAC30D,GAAT,CAAa,YAAb,CAAhB,CAAA;AACA+9D,MAAAA,OAAO,CAACnyF,IAAR,CAAa8kF,GAAb,EANoD;;MAQpDiE,QAAQ,CAAC/7D,gBAAT,GAA4B83D,GAA5B,CAAA;AACAA,MAAAA,GAAG,CAAC5sC,KAAJ,GAAY6wC,QAAZ,CAToD;;MAWpDjE,GAAG,CAACrpE,MAAJ,GAAa01E,SAAb,CAAA;AACArM,MAAAA,GAAG,CAACrpE,MAAJ,CAAWstE,QAAX,EAAqBvwE,GAArB,CAAA,CAAA;KAZF,CAAA,CAAA;AAcAwxB,IAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;AACxC,MAAA,IAAI5F,QAAQ,GAAG4F,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,CAAf,CAAA;;MAEA,IAAIrH,QAAQ,KAAK,KAAjB,EAAwB;QACtB,IAAIy9D,QAAQ,GAAG73D,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,KAA+B,CAA9C,CAAA;AACAzB,QAAAA,WAAW,CAAC3F,gBAAZ,GAA+BmlE,OAAO,CAAC3H,QAAD,CAAtC,CAAA;AACD,OAAA;AACF,KAPD,EA1BoD;;IAmCpD,IAAI6H,qBAAqB,GAAG,EAA5B,CAAA;AACAroD,IAAAA,OAAO,CAAC0W,gBAAR,CAAyB,KAAzB,EAAgC,UAAU/tB,WAAV,EAAuB;AACrD,MAAA,IAAI,CAACA,WAAW,CAACkyD,eAAZ,EAAL,EAAoC;AAClC,QAAA,IAAIhE,OAAO,GAAGluD,WAAW,CAACk6D,UAAZ,EAAd,CAAA;QACAwF,qBAAqB,CAACxR,OAAD,CAArB,GAAiCwR,qBAAqB,CAACxR,OAAD,CAArB,IAAkC,EAAnE,CAAA;AACAwR,QAAAA,qBAAqB,CAACxR,OAAD,CAArB,CAA+B7gF,IAA/B,CAAoC2yB,WAApC,CAAA,CAAA;AACD,OAAA;KALH,CAAA,CAAA;IAOAgR,MAAA,CAAY0uD,qBAAZ,EAAmC,UAAUzN,SAAV,EAAqB/D,OAArB,EAA8B;MAC/D,IAAIyR,WAAW,GAAG3uD,GAAA,CAAWihD,SAAX,EAAsB,UAAU2N,eAAV,EAA2B;AACjE,QAAA,OAAOA,eAAe,CAACn+D,GAAhB,CAAoB,SAApB,CAAP,CAAA;AACD,OAFiB,CAAlB,CAAA;AAGA,MAAA,IAAI0wD,GAAG,GAAG,IAAI0L,GAAJ,CAAQ3P,OAAR,EAAiBA,OAAjB,EAA0Bl9C,MAAA,CAAc;AAChDq+C,QAAAA,OAAO,EAAEr+C,QAAA,CAAgB2uD,WAAhB,CAAA;OADyB,EAEjCF,sBAAsB,CAACxN,SAAS,CAAC,CAAD,CAAV,CAFW,CAA1B,CAAV,CAAA;AAGAE,MAAAA,GAAG,CAACrO,SAAJ,GAAgB9yC,QAAA,CAAgBhX,KAAhB,CAAsB,IAAtB,EAA4BgX,GAAA,CAAWihD,SAAX,EAAsB,UAAU2N,eAAV,EAA2B;AAC3F,QAAA,OAAOA,eAAe,CAACn+D,GAAhB,CAAoB,YAApB,CAAP,CAAA;AACD,OAF2C,CAA5B,CAAhB,CAAA;AAGA+9D,MAAAA,OAAO,CAACnyF,IAAR,CAAa8kF,GAAb,EAV+D;;MAY/DA,GAAG,CAACrpE,MAAJ,GAAa01E,SAAb,CAAA;MACArM,GAAG,CAACrpE,MAAJ,CAAWmpE,SAAS,CAAC,CAAD,CAApB,EAAyBpsE,GAAzB,CAAA,CAAA;AACAmrB,MAAAA,MAAA,CAAYihD,SAAZ,EAAuB,UAAU2N,eAAV,EAA2B;QAChDA,eAAe,CAACvlE,gBAAhB,GAAmC83D,GAAnC,CAAA;AACAmN,QAAAA,YAAY,CAACnN,GAAD,EAAMyN,eAAN,CAAZ,CAAA;OAFF,CAAA,CAAA;KAdF,CAAA,CAAA;AAmBA,IAAA,OAAOJ,OAAP,CAAA;GA9DF,CAAA;AAgEA;AACF;AACA;;;AAGED,EAAAA,UAAU,CAACj2F,SAAX,CAAqBu2F,gBAArB,GAAwC,UAAUC,eAAV,EAA2BlU,OAA3B,EAAoCyD,OAApC,EAA6CC,YAA7C,EAA2D;AACjG;IACA,IAAIyQ,UAAU,GAAG,CAACD,eAAe,IAAI,EAApB,EAAwBztE,KAAxB,EAAjB,CAAA;AACA,IAAA,IAAIynE,WAAW,GAAG9oD,aAAA,EAAlB,CAAA;;AAEA,IAAA,KAAK,IAAIhkC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+yF,UAAU,CAACzzF,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;AAC1C8sF,MAAAA,WAAW,CAACv+B,GAAZ,CAAgBwkC,UAAU,CAAC/yF,CAAD,CAAV,CAAcgD,IAA9B,EAAoC+vF,UAAU,CAAC/yF,CAAD,CAA9C,CAAA,CAAA;AACD,KAAA;;IAED,IAAIwpD,MAAM,GAAG8/B,gBAAgB,CAACrK,IAAjB,CAAsBL,OAAtB,EAA+ByD,OAA/B,EAAwCC,YAAxC,CAAb,CAAA;IACAt+C,MAAA,CAAYwlB,MAAM,CAAC+1B,OAAnB,EAA4B,UAAUsB,MAAV,EAAkB;AAC5C,MAAA,IAAI79E,IAAI,GAAG69E,MAAM,CAAC79E,IAAlB,CAAA;MACA,CAAC8pF,WAAW,CAACr4D,GAAZ,CAAgBzxB,IAAhB,CAAD,IAA0B+vF,UAAU,CAAC1yF,IAAX,CAAgB;AACxC2C,QAAAA,IAAI,EAAEA,IAAAA;AADkC,OAAhB,CAA1B,CAAA;KAFF,CAAA,CAAA;AAMA,IAAA,OAAO+vF,UAAP,CAAA;GAhBF,CAAA;;AAmBA,EAAA,OAAOR,UAAP,CAAA;AACD,CA/FD,EAFA,CAAA;;AAmGA,IAAIS,UAAU,GAAG,IAAIT,UAAJ,EAAjB;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA,CAAA;;AAEA,IAAIU,QAAQ;AACZ;AACA,UAAUzyE,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACwyE,QAAD,EAAWzyE,MAAX,CAAT,CAAA;;AAEA,EAAA,SAASyyE,QAAT,GAAoB;AAClB,IAAA,IAAIvyE,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa4jF,QAAQ,CAAC5jF,IAAtB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDuyE,QAAQ,CAAC32F,SAAT,CAAmBytC,IAAnB,GAA0B,UAAU5c,MAAV,EAAkBsgD,WAAlB,EAA+BpjC,OAA/B,EAAwC;IAChE,IAAImf,MAAM,GAAG8/B,gBAAgB,CAAC1F,cAAjB,CAAgCz2D,MAAM,CAACjsB,GAAvC,CAAb,CAAA;;AAEA,IAAA,IAAIsoD,MAAM,IAAIA,MAAM,CAACn6C,IAAP,KAAgB,SAA9B,EAAyC;MACvC,IAAIsf,SAAS,GAAGxB,MAAM,CAACwB,SAAP,GAAmBxB,MAAM,CAACwB,SAAP,IAAoB,EAAvD,CAAA;;AAEA,MAAA,IAAI,EAAE,OAAA,IAAWA,SAAb,CAAJ,EAA6B;QAC3BA,SAAS,CAAC/sB,KAAV,GAAkB,MAAlB,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAA,CAAK6wD,oBAAL,CAA0BtlC,MAA1B,EAAkCkd,OAAlC,EAXgE;;IAahEgD,eAAA,CAA0BlgB,MAA1B,EAAkC,OAAlC,EAA2C,CAAC,MAAD,CAA3C,CAAA,CAAA;GAbF,CAAA;;AAgBA8lE,EAAAA,QAAQ,CAAC32F,SAAT,CAAmB42D,aAAnB,GAAmC,YAAY;IAC7C,IAAIxyC,KAAK,GAAG,IAAZ,CAAA;;IAEA,IAAIyM,MAAM,GAAG,IAAA,CAAKA,MAAlB,CAAA;IACAA,MAAM,CAACoyD,OAAP,GAAiByT,UAAU,CAACH,gBAAX,CAA4B1lE,MAAM,CAACoyD,OAAnC,EAA4CpyD,MAAM,CAACjsB,GAAnD,EAAwDisB,MAAM,CAACk1D,OAA/D,EAAwEl1D,MAAM,CAACm1D,YAA/E,CAAjB,CAAA;IACA,IAAI4Q,WAAW,GAAG,EAAlB,CAAA;AACA,IAAA,IAAA,CAAKC,eAAL,GAAuBnvD,MAAA,CAAc7W,MAAM,CAACoyD,OAAP,IAAkB,EAAhC,EAAoC,UAAU6T,cAAV,EAA0BC,SAA1B,EAAqC;AAC9F,MAAA,IAAIzQ,UAAU,GAAGyQ,SAAS,CAACrwF,IAA3B,CAAA;;AAEA,MAAA,IAAI4/E,UAAJ,EAAgB;AACdwQ,QAAAA,cAAc,CAAC7kC,GAAf,CAAmBq0B,UAAnB,EAA+B,IAAI5d,KAAJ,CAAUquB,SAAV,EAAqB3yE,KAArB,EAA4BA,KAAK,CAAC2pB,OAAlC,CAA/B,CAAA,CAAA;;QAEA,IAAIgpD,SAAS,CAACC,QAAd,EAAwB;AACtBJ,UAAAA,WAAW,CAACtQ,UAAD,CAAX,GAA0B,IAA1B,CAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,OAAOwQ,cAAP,CAAA;AACD,KAZsB,EAYpBpvD,aAAA,EAZoB,CAAvB,CAAA;;AAcA,IAAA,IAAI,CAAC7W,MAAM,CAAC+lE,WAAZ,EAAyB;MACvB/lE,MAAM,CAAC+lE,WAAP,GAAqBA,WAArB,CAAA;AACD,KAAA;GAtBH,CAAA;AAwBA;AACF;AACA;;;AAGED,EAAAA,QAAQ,CAAC32F,SAAT,CAAmB4qF,cAAnB,GAAoC,UAAUlkF,IAAV,EAAgB;AAClD,IAAA,OAAO,KAAKmwF,eAAL,CAAqB1+D,GAArB,CAAyBzxB,IAAzB,CAAkC,IAAA,IAAIgiE,KAAJ,CAAU,IAAV,EAAgB,IAAhB,EAAsB,IAAA,CAAK36B,OAA3B,CAAzC,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;;;EAGE4oD,QAAQ,CAAC32F,SAAT,CAAmBgsD,iBAAnB,GAAuC,UAAUtlD,IAAV,EAAgB25B,MAAhB,EAAwB;AAC7D,IAAA,IAAIsqD,WAAW,GAAG,IAAA,CAAKC,cAAL,CAAoBlkF,IAApB,CAAlB,CAAA;AACA,IAAA,IAAIuwF,SAAS,GAAG52D,MAAM,KAAK,QAAX,GAAsBsqD,WAAW,CAACxyD,GAAZ,CAAgB,CAAC,OAAD,EAAU,WAAV,CAAhB,CAAtB,GAAgEwyD,WAAW,CAACxyD,GAAZ,CAAgB,CAAC,UAAD,EAAa,OAAb,EAAsB,WAAtB,CAAhB,CAAhF,CAAA;AACA,IAAA,IAAI+b,MAAM,GAAG;AACXxtC,MAAAA,IAAI,EAAEA,IAAAA;KADR,CAAA;;AAIA,IAAA,IAAIghC,UAAA,CAAkBuvD,SAAlB,CAAJ,EAAkC;MAChC/iD,MAAM,CAAC7T,MAAP,GAAgBA,MAAhB,CAAA;MACA,OAAO42D,SAAS,CAAC/iD,MAAD,CAAhB,CAAA;KAFF,MAGO,IAAIxM,QAAA,CAAgBuvD,SAAhB,CAAJ,EAAgC;AACrC,MAAA,OAAOA,SAAS,CAAC9pF,OAAV,CAAkB,KAAlB,EAAyBzG,IAAI,IAAI,IAAR,GAAeA,IAAf,GAAsB,EAA/C,CAAP,CAAA;AACD,KAAA;GAZH,CAAA;;AAeAiwF,EAAAA,QAAQ,CAAC32F,SAAT,CAAmBixF,OAAnB,GAA6B,UAAUvW,IAAV,EAAgB;AAC3C,IAAA,IAAA,CAAK7pD,MAAL,CAAY6pD,IAAZ,GAAmBA,IAAnB,CAAA;GADF,CAAA;;AAIAic,EAAAA,QAAQ,CAAC32F,SAAT,CAAmBolF,SAAnB,GAA+B,UAAU/gC,MAAV,EAAkB;AAC/C,IAAA,IAAA,CAAKxzB,MAAL,CAAYwzB,MAAZ,GAAqBA,MAArB,CAAA;AACD,GAFD,CAnFgB;;;AAwFhBsyC,EAAAA,QAAQ,CAAC32F,SAAT,CAAmBs3C,MAAnB,GAA4B,UAAU5wC,IAAV,EAAgB;IAC1C,IAAImqB,MAAM,GAAG,IAAA,CAAKA,MAAlB,CAAA;AACA,IAAA,IAAI2gE,YAAY,GAAG3gE,MAAM,CAAC2gE,YAA1B,CAAA;;IAEA,IAAI,CAACA,YAAL,EAAmB;AACjB,MAAA,OAAA;AACD,KAAA;;IAED,IAAIA,YAAY,KAAK,UAArB,EAAiC;MAC/B3gE,MAAM,CAAC+lE,WAAP,GAAqB,IAArB,CAAA;AACD,KAAA;;IAED,IAAIA,WAAW,GAAG/lE,MAAM,CAAC+lE,WAAP,KAAuB/lE,MAAM,CAAC+lE,WAAP,GAAqB,EAA5C,CAAlB,CAAA;AACAA,IAAAA,WAAW,CAAClwF,IAAD,CAAX,GAAoB,IAApB,CAAA;GAbF,CAAA;;AAgBAiwF,EAAAA,QAAQ,CAAC32F,SAAT,CAAmBk3F,QAAnB,GAA8B,UAAUxwF,IAAV,EAAgB;AAC5C,IAAA,IAAIkwF,WAAW,GAAG,IAAK/lE,CAAAA,MAAL,CAAY+lE,WAA9B,CAAA;;AAEA,IAAA,IAAIA,WAAJ,EAAiB;AACfA,MAAAA,WAAW,CAAClwF,IAAD,CAAX,GAAoB,KAApB,CAAA;AACD,KAAA;GALH,CAAA;;AAQAiwF,EAAAA,QAAQ,CAAC32F,SAAT,CAAmBm3F,cAAnB,GAAoC,UAAUzwF,IAAV,EAAgB;IAClD,IAAK,CAAA,IAAA,CAAKk/C,UAAL,CAAgBl/C,IAAhB,IAAwB,UAAxB,GAAqC,QAA1C,CAAA,CAAoDA,IAApD,CAAA,CAAA;GADF,CAAA;;AAIAiwF,EAAAA,QAAQ,CAAC32F,SAAT,CAAmB4lD,UAAnB,GAAgC,UAAUl/C,IAAV,EAAgB;AAC9C,IAAA,IAAIkwF,WAAW,GAAG,IAAK/lE,CAAAA,MAAL,CAAY+lE,WAA9B,CAAA;IACA,OAAO,CAAC,EAAEA,WAAW,IAAIA,WAAW,CAAClwF,IAAD,CAA5B,CAAR,CAAA;GAFF,CAAA;;EAKAiwF,QAAQ,CAAC5jF,IAAT,GAAgB,KAAhB,CAAA;EACA4jF,QAAQ,CAAC9jC,UAAT,GAAsB,KAAtB,CAAA;EACA8jC,QAAQ,CAAChkE,aAAT,GAAyB;AACvB;AACAzG,IAAAA,CAAC,EAAE,CAFoB;AAGvB6G,IAAAA,IAAI,EAAE,IAHiB;AAIvBhP,IAAAA,IAAI,EAAE,QAJiB;AAKvBC,IAAAA,GAAG,EAAE,QALkB;AAMvB;AACA;AACA;AACAotE,IAAAA,WAAW,EAAE,IATU;AAUvB;AACA;AACA;AACA;AACA;AACA56D,IAAAA,MAAM,EAAE,KAfe;AAgBvB;AACA5xB,IAAAA,GAAG,EAAE,EAjBkB;AAkBvB;AACA;AACA0sF,IAAAA,cAAc,EAAE,IApBO;AAqBvB;AACAjtC,IAAAA,MAAM,EAAE,IAtBe;AAuBvBq2B,IAAAA,IAAI,EAAE,CAvBiB;AAwBvB6W,IAAAA,UAAU,EAAE,IAxBW;AAyBvB;AACA1+D,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,KADD;AAELztB,MAAAA,KAAK,EAAE,MAAA;KA5Bc;AA8BvB+sB,IAAAA,SAAS,EAAE;AACTzM,MAAAA,WAAW,EAAE,GADJ;MAETuxB,WAAW,EAAE,MAFJ;AAGT;AACA;AACA;;KAnCqB;AAsCvBjkB,IAAAA,QAAQ,EAAE;AACRL,MAAAA,KAAK,EAAE;AACLE,QAAAA,IAAI,EAAE,IADD;AAELztB,QAAAA,KAAK,EAAE,cAAA;OAHD;AAKR+sB,MAAAA,SAAS,EAAE;AACT/sB,QAAAA,KAAK,EAAE,qBAAA;AADE,OAAA;KA3CU;AA+CvBgyC,IAAAA,MAAM,EAAE;AACNzkB,MAAAA,KAAK,EAAE;AACLE,QAAAA,IAAI,EAAE,IADD;AAELztB,QAAAA,KAAK,EAAE,cAAA;OAHH;AAKN+sB,MAAAA,SAAS,EAAE;AACT/sB,QAAAA,KAAK,EAAE,qBAAA;AADE,OAAA;KApDU;IAwDvB29E,OAAO,EAAE,EAxDc;AAyDvB;AACA;;GA1DF,CAAA;AA6DA,EAAA,OAAO0T,QAAP,CAAA;AACD,CAzLD,CAyLE5jC,cAzLF,CAFA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASqkC,cAAT,CAAwBC,IAAxB,EAA8Bz8D,KAA9B,EAAqC;AACnC;AACA,EAAA,OAAOy8D,IAAI,CAACrC,gBAAL,GAAwBqC,IAAI,CAACrC,gBAAL,CAAsBp6D,KAAtB,CAAxB,GAAuDy8D,IAAI,CAACv9B,WAAL,CAAiBl/B,KAAjB,CAA9D,CAAA;AACD,CAAA;;AAEM,SAAS08D,mBAAT,CAA6BD,IAA7B,EAAmCvmD,OAAnC,EAA4C0pC,SAA5C,EAAuDj+D,GAAvD,EAA4D;AACjE,EAAA,IAAIg7E,YAAY,GAAGF,IAAI,CAACpK,OAAL,EAAnB,CAAA;AACA,EAAA,IAAI5oC,MAAM,GAAGgzC,IAAI,CAAClS,SAAL,EAAb,CAAA;AACA,EAAA,IAAIzK,IAAI,GAAG5pC,OAAO,CAAC4pC,IAAnB,CAAA;AACA,EAAA,IAAI9/C,KAAK,GAAGy8D,IAAI,CAACtC,gBAAL,GAAwBsC,IAAI,CAACtC,gBAAL,CAAsB1wC,MAAtB,CAAxB,GAAwDgzC,IAAI,CAACh4D,WAAL,CAAiBglB,MAAjB,CAApE,CAAA;;EAEA,IAAIvT,OAAO,CAACtW,EAAR,IAAc,IAAd,IAAsBsW,OAAO,CAACrW,EAAR,IAAc,IAAxC,EAA8C;AAC5CG,IAAAA,KAAK,CAAC,CAAD,CAAL,IAAYkW,OAAO,CAACtW,EAApB,CAAA;AACAI,IAAAA,KAAK,CAAC,CAAD,CAAL,IAAYkW,OAAO,CAACrW,EAApB,CAAA;IACA48D,IAAI,CAACjS,SAAL,CAAegS,cAAc,CAACC,IAAD,EAAOz8D,KAAP,CAA7B,EAA4Cre,GAA5C,CAAA,CAAA;AACD,GAAA;;EAED,IAAIm+D,IAAI,IAAI,IAAZ,EAAkB;AAChB,IAAA,IAAIF,SAAJ,EAAe;AACb,MAAA,IAAIG,OAAO,GAAGH,SAAS,CAACl4C,GAAV,IAAiB,CAA/B,CAAA;AACA,MAAA,IAAIs4C,OAAO,GAAGJ,SAAS,CAACt4D,GAAV,IAAiBqF,QAA/B,CAAA;AACAmzD,MAAAA,IAAI,GAAGl7E,IAAI,CAAC0iB,GAAL,CAAS1iB,IAAI,CAAC8iC,GAAL,CAASi1D,YAAY,GAAG7c,IAAxB,EAA8BE,OAA9B,CAAT,EAAiDD,OAAjD,IAA4D4c,YAAnE,CAAA;AACD,KALe;;;IAQhBF,IAAI,CAACthF,MAAL,IAAe2kE,IAAf,CAAA;IACA2c,IAAI,CAACrhF,MAAL,IAAe0kE,IAAf,CAAA;AACA,IAAA,IAAI8c,IAAI,GAAG,CAAC1mD,OAAO,CAAC/kC,OAAR,GAAkBsrF,IAAI,CAAC52F,CAAxB,KAA8Bi6E,IAAI,GAAG,CAArC,CAAX,CAAA;AACA,IAAA,IAAI+c,IAAI,GAAG,CAAC3mD,OAAO,CAAC9kC,OAAR,GAAkBqrF,IAAI,CAAC32F,CAAxB,KAA8Bg6E,IAAI,GAAG,CAArC,CAAX,CAAA;IACA2c,IAAI,CAAC52F,CAAL,IAAU+2F,IAAV,CAAA;IACAH,IAAI,CAAC32F,CAAL,IAAU+2F,IAAV,CAAA;IACAJ,IAAI,CAAC5kC,eAAL,EAAA,CAdgB;;IAgBhB4kC,IAAI,CAACjS,SAAL,CAAegS,cAAc,CAACC,IAAD,EAAOz8D,KAAP,CAA7B,EAA4Cre,GAA5C,CAAA,CAAA;AACA86E,IAAAA,IAAI,CAACpG,OAAL,CAAavW,IAAI,GAAG6c,YAApB,CAAA,CAAA;AACD,GAAA;;EAED,OAAO;AACLlzC,IAAAA,MAAM,EAAEgzC,IAAI,CAAClS,SAAL,EADH;IAELzK,IAAI,EAAE2c,IAAI,CAACpK,OAAL,EAAA;GAFR,CAAA;AAID;;ACnFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,IAAIyK,OAAO;AACX;AACA,UAAUxzE,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACuzE,OAAD,EAAUxzE,MAAV,CAAT,CAAA;;AAEA,EAAA,SAASwzE,OAAT,GAAmB;AACjB,IAAA,IAAItzE,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa2kF,OAAO,CAAC3kF,IAArB,CAAA;IACAqR,KAAK,CAACuzE,gBAAN,GAAyB,IAAzB,CAAA;AACA,IAAA,OAAOvzE,KAAP,CAAA;AACD,GAAA;;EAEDszE,OAAO,CAAC13F,SAAR,CAAkBytC,IAAlB,GAAyB,UAAUM,OAAV,EAAmBxxB,GAAnB,EAAwB;IAC/C,IAAKq7E,CAAAA,IAAL,GAAYr7E,GAAZ,CAAA;GADF,CAAA;;AAIAm7E,EAAAA,OAAO,CAAC13F,SAAR,CAAkB8tC,MAAlB,GAA2B,UAAUg/C,QAAV,EAAoB/+C,OAApB,EAA6BxxB,GAA7B,EAAkCu0B,OAAlC,EAA2C;IACpE,IAAK6I,CAAAA,MAAL,GAAcmzC,QAAd,CAAA;;AAEA,IAAA,IAAI,CAACA,QAAQ,CAAC30D,GAAT,CAAa,MAAb,CAAL,EAA2B;AACzB,MAAA,IAAA,CAAKu3D,QAAL,IAAiB,IAAA,CAAKA,QAAL,CAActzD,MAAd,EAAjB,CAAA;MACA,IAAKszD,CAAAA,QAAL,GAAgB,IAAhB,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;IAED,IAAI,CAAC,IAAKA,CAAAA,QAAV,EAAoB;AAClB,MAAA,IAAA,CAAKA,QAAL,GAAgB,IAAI1H,OAAJ,CAAYzrE,GAAZ,CAAhB,CAAA;AACD,KAAA;;IAED,IAAIgxE,OAAO,GAAG,IAAA,CAAKmC,QAAnB,CAAA;IACAnC,OAAO,CAAC5+D,IAAR,CAAam+D,QAAb,EAAuB/+C,OAAvB,EAAgCxxB,GAAhC,EAAqC,IAArC,EAA2Cu0B,OAA3C,CAAA,CAAA;IACAy8C,OAAO,CAACl8D,KAAR,CAAcmsB,EAAd,CAAiB,OAAjB,EAA0B,IAAA,CAAKq6C,kBAA/B,EAAmD,IAAnD,CAAA,CAAA;IACAtK,OAAO,CAACl8D,KAAR,CAAcmF,MAAd,GAAuBs2D,QAAQ,CAAC30D,GAAT,CAAa,QAAb,CAAvB,CAAA;AACA,IAAA,IAAA,CAAK9G,KAAL,CAAWO,GAAX,CAAe27D,OAAO,CAACl8D,KAAvB,CAAA,CAAA;AACA,IAAA,IAAA,CAAKymE,kBAAL,CAAwBhL,QAAxB,EAAkC/+C,OAAlC,EAA2CxxB,GAA3C,CAAA,CAAA;GAlBF,CAAA;;AAqBAm7E,EAAAA,OAAO,CAAC13F,SAAR,CAAkB63F,kBAAlB,GAAuC,UAAUv0F,CAAV,EAAa;AAClD,IAAA,IAAIktC,SAAJ,CAAA;AACAunD,IAAAA,mBAAmB,CAACz0F,CAAC,CAACuI,MAAH,EAAW,UAAUo2B,OAAV,EAAmB;MAC/C,OAAO,CAACuO,SAAS,GAAGtW,SAAS,CAAC+H,OAAD,CAAT,CAAmBuO,SAAhC,KAA8C,IAArD,CAAA;KADiB,EAEhB,IAFgB,CAAnB,CAAA;;AAIA,IAAA,IAAIA,SAAJ,EAAe;MACb,IAAKonD,CAAAA,IAAL,CAAU74C,cAAV,CAAyB;AACvBhsC,QAAAA,IAAI,EAAE,iBADiB;AAEvBilF,QAAAA,KAAK,EAAE,IAAA,CAAKr+C,MAAL,CAAY9lC,EAFI;QAGvBnN,IAAI,EAAE8pC,SAAS,CAAC9pC,IAAAA;OAHlB,CAAA,CAAA;AAKD,KAAA;GAZH,CAAA;;EAeAgxF,OAAO,CAAC13F,SAAR,CAAkB83F,kBAAlB,GAAuC,UAAU77C,KAAV,EAAiBlO,OAAjB,EAA0BxxB,GAA1B,EAA+B;IACpE,IAAI6H,KAAK,GAAG,IAAZ,CAAA;;IAEA,IAAKsrE,CAAAA,QAAL,CAAcr+D,KAAd,CAAoB8L,QAApB,CAA6B,UAAU5iB,IAAV,EAAgB;AAC3C,MAAA,IAAIi2B,SAAS,GAAGtW,SAAS,CAAC3f,IAAD,CAAT,CAAgBi2B,SAAhC,CAAA;;AAEA,MAAA,IAAIA,SAAJ,EAAe;QACbpsB,KAAK,CAACu1B,MAAN,CAAaiM,UAAb,CAAwBpV,SAAS,CAAC9pC,IAAlC,CAAA,GAA0C6V,GAAG,CAAC07E,WAAJ,CAAgB19E,IAAhB,CAA1C,GAAkEgC,GAAG,CAAC27E,WAAJ,CAAgB39E,IAAhB,CAAlE,CADa;;AAGb,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;KAPH,CAAA,CAAA;GAHF,CAAA;;AAcAm9E,EAAAA,OAAO,CAAC13F,SAAR,CAAkB6sF,uBAAlB,GAA4C,UAAUnmF,IAAV,EAAgB;AAC1D,IAAA,OAAO,IAAKgpF,CAAAA,QAAL,IAAiB,IAAA,CAAKA,QAAL,CAAc7C,uBAAd,CAAsCnmF,IAAtC,EAA4C,IAAKizC,CAAAA,MAAjD,CAAxB,CAAA;GADF,CAAA;;AAIA+9C,EAAAA,OAAO,CAAC13F,SAAR,CAAkB4iB,OAAlB,GAA4B,YAAY;AACtC,IAAA,IAAA,CAAK8sE,QAAL,IAAiB,IAAA,CAAKA,QAAL,CAActzD,MAAd,EAAjB,CAAA;GADF,CAAA;;EAIAs7D,OAAO,CAAC3kF,IAAR,GAAe,KAAf,CAAA;AACA,EAAA,OAAO2kF,OAAP,CAAA;AACD,CA3ED,CA2EEvqB,aA3EF,CAFA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgCA,SAAS8Z,WAAT,CAAqB3E,OAArB,EAA8BuE,OAA9B,EAAuCnB,YAAvC,EAAqD;AACnDsH,EAAAA,gBAAgB,CAAC/F,WAAjB,CAA6B3E,OAA7B,EAAsCuE,OAAtC,EAA+CnB,YAA/C,CAAA,CAAA;AACD,CAAA;;AAEM,SAAStiE,SAAT,CAAiBC,SAAjB,EAA4B;AACjCA,EAAAA,SAAS,CAACmsD,wBAAV,CAAmC,KAAnC,EAA0CknB,UAA1C,CAAA,CAAA;EACArzE,SAAS,CAAC6zC,sBAAV,CAAiCy/B,QAAjC,CAAA,CAAA;EACAtzE,SAAS,CAACksD,qBAAV,CAAgCmoB,OAAhC,CAAA,CAAA;AACAr0E,EAAAA,SAAS,CAAC80E,YAAV,CAAuB,aAAvB,EAAsClR,WAAtC,CAAA,CAAA;AACA5jE,EAAAA,SAAS,CAAC80E,YAAV,CAAuB,QAAvB,EAAiC,UAAU7V,OAAV,EAAmB;AAClD,IAAA,OAAO0K,gBAAgB,CAACpG,aAAjB,CAA+BtE,OAA/B,CAAP,CAAA;GADF,CAAA,CAAA;;AAIA,EAAA,SAAS8V,UAAT,CAAoBj1E,MAApB,EAA4Bk1E,UAA5B,EAAwC;IACtCA,UAAU,CAACp8D,MAAX,GAAoB,wBAApB,CAAA;IACA5Y,SAAS,CAACqgC,cAAV,CAAyB20C,UAAzB,EAAqC,UAAUvnD,OAAV,EAAmB/C,OAAnB,EAA4B;MAC/D,IAAIipD,QAAQ,GAAG,EAAf,CAAA;MACA,IAAIsB,WAAW,GAAG,EAAlB,CAAA;MACAvqD,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,QAAAA,QAAQ,EAAE,KADU;AAEpBC,QAAAA,KAAK,EAAE/S,OAAAA;OAFT,EAGG,UAAUg8C,QAAV,EAAoB;AACrBA,QAAAA,QAAQ,CAAC3pE,MAAD,CAAR,CAAiB2tB,OAAO,CAACpqC,IAAzB,CAAA,CAAA;AACA,QAAA,IAAImiF,GAAG,GAAGiE,QAAQ,CAAC/7D,gBAAnB,CAAA;AACArkB,QAAAA,MAAI,CAACm8E,GAAG,CAAC5F,OAAL,EAAc,UAAUsB,MAAV,EAAkB;AAClCyS,UAAAA,QAAQ,CAACzS,MAAM,CAAC79E,IAAR,CAAR,GAAwBomF,QAAQ,CAAClnC,UAAT,CAAoB2+B,MAAM,CAAC79E,IAA3B,KAAoC,KAA5D,CAAA;SADE,CAAJ,CAHqB;;QAOrB,IAAI6xF,KAAK,GAAG,EAAZ,CAAA;AACA7rF,QAAAA,MAAI,CAACsqF,QAAD,EAAW,UAAUlhC,CAAV,EAAapvD,IAAb,EAAmB;UAChCswF,QAAQ,CAACtwF,IAAD,CAAR,IAAkB6xF,KAAK,CAACx0F,IAAN,CAAW2C,IAAX,CAAlB,CAAA;AACD,SAFG,CAAJ,CAAA;QAGA4xF,WAAW,CAACv0F,IAAZ,CAAiB;UACfwqF,QAAQ,EAAEzB,QAAQ,CAACn8C,cADJ;AAEf;AACAjqC,UAAAA,IAAI,EAAE6xF,KAAAA;SAHR,CAAA,CAAA;OAdF,CAAA,CAAA;MAoBA,OAAO;AACLvB,QAAAA,QAAQ,EAAEA,QADL;AAELsB,QAAAA,WAAW,EAAEA,WAFR;QAGL5xF,IAAI,EAAEoqC,OAAO,CAACpqC,IAAAA;OAHhB,CAAA;KAvBF,CAAA,CAAA;AA6BD,GAAA;;EAED0xF,UAAU,CAAC,gBAAD,EAAmB;AAC3BrlF,IAAAA,IAAI,EAAE,iBADqB;AAE3BgwC,IAAAA,KAAK,EAAE,kBAAA;AAFoB,GAAnB,CAAV,CAAA;EAIAq1C,UAAU,CAAC,QAAD,EAAW;AACnBrlF,IAAAA,IAAI,EAAE,WADa;AAEnBgwC,IAAAA,KAAK,EAAE,aAAA;AAFY,GAAX,CAAV,CAAA;EAIAq1C,UAAU,CAAC,UAAD,EAAa;AACrBrlF,IAAAA,IAAI,EAAE,aADe;AAErBgwC,IAAAA,KAAK,EAAE,eAAA;AAFc,GAAb,CAAV,CAAA;AAIA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAEE1/B,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,SADiB;AAEvBgwC,IAAAA,KAAK,EAAE,SAFgB;AAGvB9mB,IAAAA,MAAM,EAAE,iBAAA;AAHe,GAAzB,EAIG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4BxxB,GAA5B,EAAiC;AAClC,IAAA,IAAIk0B,aAAa,GAAGK,OAAO,CAACL,aAAR,IAAyB,QAA7C,CAAA;IACA1C,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAEnT,aADU;AAEpBoT,MAAAA,KAAK,EAAE/S,OAAAA;KAFT,EAGG,UAAUgT,cAAV,EAA0B;AAC3B,MAAA,IAAI+kC,GAAG,GAAG/kC,cAAc,CAAC/yB,gBAAzB,CAAA;;AAEA,MAAA,IAAI83D,GAAG,CAAC91E,IAAJ,KAAa,KAAjB,EAAwB;AACtB,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAI2/C,GAAG,GAAG4kC,mBAAmB,CAACzO,GAAD,EAAM/3C,OAAN,EAAegT,cAAc,CAAC3rB,GAAf,CAAmB,YAAnB,CAAf,EAAiD5b,GAAjD,CAA7B,CAAA;MACAunC,cAAc,CAACshC,SAAf,IAA4BthC,cAAc,CAACshC,SAAf,CAAyB1yB,GAAG,CAACrO,MAA7B,CAA5B,CAAA;AACAP,MAAAA,cAAc,CAACmtC,OAAf,IAA0BntC,cAAc,CAACmtC,OAAf,CAAuBv+B,GAAG,CAACgoB,IAA3B,CAA1B,CAT2B;AAU3B;;MAEA,IAAIjqC,aAAa,KAAK,QAAtB,EAAgC;AAC9B/jC,QAAAA,MAAI,CAACo3C,cAAc,CAACwsC,WAAhB,EAA6B,UAAU55D,WAAV,EAAuB;AACtDA,UAAAA,WAAW,CAAC0uD,SAAZ,CAAsB1yB,GAAG,CAACrO,MAA1B,CAAA,CAAA;AACA3tB,UAAAA,WAAW,CAACu6D,OAAZ,CAAoBv+B,GAAG,CAACgoB,IAAxB,CAAA,CAAA;AACD,SAHG,CAAJ,CAAA;AAID,OAAA;KApBH,CAAA,CAAA;GANF,CAAA,CAAA;AA6BD;;AClJD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCO,SAASt3D,SAAT,CAAiBC,SAAjB,EAA4B;EACjCqsD,GAAG,CAAC8oB,SAAD,CAAH,CAAA;EACAn1E,SAAS,CAACgyB,iBAAV,CAA4Bk6C,OAA5B,CAAA,CAAA;EACAlsE,SAAS,CAACiyB,mBAAV,CAA8B+6C,SAA9B,CAAA,CAAA;EACAhtE,SAAS,CAACmyB,cAAV,CAAyBy8C,eAAzB,CAAA,CAAA;EACA5uE,SAAS,CAACuyB,iBAAV,CAA4BvyB,SAAS,CAACwyB,QAAV,CAAmBC,SAAnB,CAA6BC,SAAzD,EAAoE87C,gBAApE,CAAA,CAAA;AACA1hC,EAAAA,4BAA4B,CAAC,KAAD,EAAQ9sC,SAAS,CAACqgC,cAAlB,CAA5B,CAAA;AACD;;ACxDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0CA;AACA;AACA;;AAEO,SAASjW,IAAT,CAAcgrD,MAAd,EAAsB;EAC3B,IAAI/5E,IAAI,GAAG+5E,MAAX,CAAA;EACA/5E,IAAI,CAACg6E,QAAL,GAAgB;AACdC,IAAAA,eAAe,EAAE,IADH;AAEdC,IAAAA,QAAQ,EAAEl6E,IAFI;AAGdm6E,IAAAA,MAAM,EAAE,CAHM;AAIdC,IAAAA,QAAQ,EAAE,CAJI;AAKdC,IAAAA,MAAM,EAAE,CALM;AAMdC,IAAAA,KAAK,EAAE,CANO;AAOdt1F,IAAAA,CAAC,EAAE,CAPW;AAQdu1F,IAAAA,MAAM,EAAE,IAAA;GARV,CAAA;AAUA,EAAA,IAAIC,KAAK,GAAG,CAACx6E,IAAD,CAAZ,CAAA;AACA,EAAA,IAAInE,IAAJ,CAAA;AACA,EAAA,IAAItT,QAAJ,CAAA;;AAEA,EAAA,OAAOsT,IAAI,GAAG2+E,KAAK,CAACr6B,GAAN,EAAd,EAA2B;AACzB;IACA53D,QAAQ,GAAGsT,IAAI,CAACtT,QAAhB,CAAA;;AAEA,IAAA,IAAIsT,IAAI,CAAC4+E,QAAL,IAAiBlyF,QAAQ,CAACjE,MAA9B,EAAsC;AACpC,MAAA,IAAIo2F,CAAC,GAAGnyF,QAAQ,CAACjE,MAAjB,CAAA;;AAEA,MAAA,KAAK,IAAIU,CAAC,GAAG01F,CAAC,GAAG,CAAjB,EAAoB11F,CAAC,IAAI,CAAzB,EAA4BA,CAAC,EAA7B,EAAiC;AAC/B,QAAA,IAAIkE,KAAK,GAAGX,QAAQ,CAACvD,CAAD,CAApB,CAAA;QACAkE,KAAK,CAAC8wF,QAAN,GAAiB;AACfC,UAAAA,eAAe,EAAE,IADF;AAEfC,UAAAA,QAAQ,EAAEhxF,KAFK;AAGfixF,UAAAA,MAAM,EAAE,CAHO;AAIfC,UAAAA,QAAQ,EAAE,CAJK;AAKfC,UAAAA,MAAM,EAAE,CALO;AAMfC,UAAAA,KAAK,EAAE,CANQ;AAOft1F,UAAAA,CAAC,EAAEA,CAPY;AAQfu1F,UAAAA,MAAM,EAAE,IAAA;SARV,CAAA;QAUAC,KAAK,CAACn1F,IAAN,CAAW6D,KAAX,CAAA,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;AACF,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASyxF,SAAT,CAAmB9+E,IAAnB,EAAyB++E,UAAzB,EAAqC;EAC1C,IAAIryF,QAAQ,GAAGsT,IAAI,CAAC4+E,QAAL,GAAgB5+E,IAAI,CAACtT,QAArB,GAAgC,EAA/C,CAAA;AACA,EAAA,IAAIsyF,QAAQ,GAAGh/E,IAAI,CAACJ,UAAL,CAAgBlT,QAA/B,CAAA;AACA,EAAA,IAAIuyF,QAAQ,GAAGj/E,IAAI,CAACm+E,QAAL,CAAch1F,CAAd,GAAkB61F,QAAQ,CAACh/E,IAAI,CAACm+E,QAAL,CAAch1F,CAAd,GAAkB,CAAnB,CAA1B,GAAkD,IAAjE,CAAA;;EAEA,IAAIuD,QAAQ,CAACjE,MAAb,EAAqB;IACnBy2F,aAAa,CAACl/E,IAAD,CAAb,CAAA;IACA,IAAIm/E,QAAQ,GAAG,CAACzyF,QAAQ,CAAC,CAAD,CAAR,CAAYyxF,QAAZ,CAAqBG,MAArB,GAA8B5xF,QAAQ,CAACA,QAAQ,CAACjE,MAAT,GAAkB,CAAnB,CAAR,CAA8B01F,QAA9B,CAAuCG,MAAtE,IAAgF,CAA/F,CAAA;;AAEA,IAAA,IAAIW,QAAJ,EAAc;AACZj/E,MAAAA,IAAI,CAACm+E,QAAL,CAAcG,MAAd,GAAuBW,QAAQ,CAACd,QAAT,CAAkBG,MAAlB,GAA2BS,UAAU,CAAC/+E,IAAD,EAAOi/E,QAAP,CAA5D,CAAA;MACAj/E,IAAI,CAACm+E,QAAL,CAAcI,QAAd,GAAyBv+E,IAAI,CAACm+E,QAAL,CAAcG,MAAd,GAAuBa,QAAhD,CAAA;AACD,KAHD,MAGO;AACLn/E,MAAAA,IAAI,CAACm+E,QAAL,CAAcG,MAAd,GAAuBa,QAAvB,CAAA;AACD,KAAA;GATH,MAUO,IAAIF,QAAJ,EAAc;AACnBj/E,IAAAA,IAAI,CAACm+E,QAAL,CAAcG,MAAd,GAAuBW,QAAQ,CAACd,QAAT,CAAkBG,MAAlB,GAA2BS,UAAU,CAAC/+E,IAAD,EAAOi/E,QAAP,CAA5D,CAAA;AACD,GAAA;;EAEDj/E,IAAI,CAACJ,UAAL,CAAgBu+E,QAAhB,CAAyBC,eAAzB,GAA2CgB,SAAS,CAACp/E,IAAD,EAAOi/E,QAAP,EAAiBj/E,IAAI,CAACJ,UAAL,CAAgBu+E,QAAhB,CAAyBC,eAAzB,IAA4CY,QAAQ,CAAC,CAAD,CAArE,EAA0ED,UAA1E,CAApD,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASM,UAAT,CAAoBr/E,IAApB,EAA0B;AAC/B,EAAA,IAAIs/E,KAAK,GAAGt/E,IAAI,CAACm+E,QAAL,CAAcG,MAAd,GAAuBt+E,IAAI,CAACJ,UAAL,CAAgBu+E,QAAhB,CAAyBI,QAA5D,CAAA;EACAv+E,IAAI,CAACg6B,SAAL,CAAe;AACb9zC,IAAAA,CAAC,EAAEo5F,KAAAA;AADU,GAAf,EAEG,IAFH,CAAA,CAAA;EAGAt/E,IAAI,CAACm+E,QAAL,CAAcI,QAAd,IAA0Bv+E,IAAI,CAACJ,UAAL,CAAgBu+E,QAAhB,CAAyBI,QAAnD,CAAA;AACD,CAAA;AACM,SAASQ,UAAT,CAAoBjqE,EAApB,EAAwB;AAC7B,EAAA,OAAO1rB,SAAS,CAACX,MAAV,GAAmBqsB,EAAnB,GAAwByqE,iBAA/B,CAAA;AACD,CAAA;AACD;AACA;AACA;;AAEO,SAASC,gBAAT,CAA0B1vC,GAA1B,EAA+B/oD,CAA/B,EAAkC;AACvC+oD,EAAAA,GAAG,IAAI7qD,IAAI,CAACI,EAAL,GAAU,CAAjB,CAAA;EACA,OAAO;IACLa,CAAC,EAAEa,CAAC,GAAG9B,IAAI,CAACG,GAAL,CAAS0qD,GAAT,CADF;AAEL3pD,IAAAA,CAAC,EAAEY,CAAC,GAAG9B,IAAI,CAACC,GAAL,CAAS4qD,GAAT,CAAA;GAFT,CAAA;AAID,CAAA;AACD;AACA;AACA;;AAEO,SAASpG,aAAT,CAAqBvtB,WAArB,EAAkCna,GAAlC,EAAuC;EAC5C,OAAOq/B,aAAA,CAAqBllB,WAAW,CAACwtB,kBAAZ,EAArB,EAAuD;AAC5Dz6C,IAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADqD;IAE5DhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;AAFoD,GAAvD,CAAP,CAAA;AAID,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS82E,aAAT,CAAuBl/E,IAAvB,EAA6B;AAC3B,EAAA,IAAItT,QAAQ,GAAGsT,IAAI,CAACtT,QAApB,CAAA;AACA,EAAA,IAAImyF,CAAC,GAAGnyF,QAAQ,CAACjE,MAAjB,CAAA;EACA,IAAIg2F,KAAK,GAAG,CAAZ,CAAA;EACA,IAAID,MAAM,GAAG,CAAb,CAAA;;AAEA,EAAA,OAAO,EAAEK,CAAF,IAAO,CAAd,EAAiB;AACf,IAAA,IAAIxxF,KAAK,GAAGX,QAAQ,CAACmyF,CAAD,CAApB,CAAA;AACAxxF,IAAAA,KAAK,CAAC8wF,QAAN,CAAeG,MAAf,IAAyBG,KAAzB,CAAA;AACApxF,IAAAA,KAAK,CAAC8wF,QAAN,CAAeI,QAAf,IAA2BE,KAA3B,CAAA;AACAD,IAAAA,MAAM,IAAInxF,KAAK,CAAC8wF,QAAN,CAAeK,MAAzB,CAAA;AACAC,IAAAA,KAAK,IAAIpxF,KAAK,CAAC8wF,QAAN,CAAeM,KAAf,GAAuBD,MAAhC,CAAA;AACD,GAAA;AACF,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASY,SAAT,CAAmBK,QAAnB,EAA6BR,QAA7B,EAAuCZ,QAAvC,EAAiDU,UAAjD,EAA6D;AAC3D,EAAA,IAAIE,QAAJ,EAAc;IACZ,IAAIS,YAAY,GAAGD,QAAnB,CAAA;IACA,IAAIE,WAAW,GAAGF,QAAlB,CAAA;IACA,IAAIG,WAAW,GAAGD,WAAW,CAAC//E,UAAZ,CAAuBlT,QAAvB,CAAgC,CAAhC,CAAlB,CAAA;IACA,IAAImzF,UAAU,GAAGZ,QAAjB,CAAA;AACA,IAAA,IAAIa,WAAW,GAAGJ,YAAY,CAACvB,QAAb,CAAsBI,QAAxC,CAAA;AACA,IAAA,IAAIwB,UAAU,GAAGJ,WAAW,CAACxB,QAAZ,CAAqBI,QAAtC,CAAA;AACA,IAAA,IAAIyB,UAAU,GAAGJ,WAAW,CAACzB,QAAZ,CAAqBI,QAAtC,CAAA;AACA,IAAA,IAAI0B,SAAS,GAAGJ,UAAU,CAAC1B,QAAX,CAAoBI,QAApC,CAAA;;AAEA,IAAA,OAAOsB,UAAU,GAAGK,SAAS,CAACL,UAAD,CAAtB,EAAoCF,WAAW,GAAGQ,QAAQ,CAACR,WAAD,CAA1D,EAAyEE,UAAU,IAAIF,WAA9F,EAA2G;AACzGD,MAAAA,YAAY,GAAGQ,SAAS,CAACR,YAAD,CAAxB,CAAA;AACAE,MAAAA,WAAW,GAAGO,QAAQ,CAACP,WAAD,CAAtB,CAAA;AACAF,MAAAA,YAAY,CAACvB,QAAb,CAAsBE,QAAtB,GAAiCoB,QAAjC,CAAA;MACA,IAAIhB,KAAK,GAAGoB,UAAU,CAAC1B,QAAX,CAAoBG,MAApB,GAA6B2B,SAA7B,GAAyCN,WAAW,CAACxB,QAAZ,CAAqBG,MAA9D,GAAuEyB,UAAvE,GAAoFhB,UAAU,CAACc,UAAD,EAAaF,WAAb,CAA1G,CAAA;;MAEA,IAAIlB,KAAK,GAAG,CAAZ,EAAe;AACb2B,QAAAA,WAAW,CAACC,YAAY,CAACR,UAAD,EAAaJ,QAAb,EAAuBpB,QAAvB,CAAb,EAA+CoB,QAA/C,EAAyDhB,KAAzD,CAAX,CAAA;AACAsB,QAAAA,UAAU,IAAItB,KAAd,CAAA;AACAqB,QAAAA,WAAW,IAAIrB,KAAf,CAAA;AACD,OAAA;;AAEDwB,MAAAA,SAAS,IAAIJ,UAAU,CAAC1B,QAAX,CAAoBI,QAAjC,CAAA;AACAwB,MAAAA,UAAU,IAAIJ,WAAW,CAACxB,QAAZ,CAAqBI,QAAnC,CAAA;AACAuB,MAAAA,WAAW,IAAIJ,YAAY,CAACvB,QAAb,CAAsBI,QAArC,CAAA;AACAyB,MAAAA,UAAU,IAAIJ,WAAW,CAACzB,QAAZ,CAAqBI,QAAnC,CAAA;AACD,KAAA;;AAED,IAAA,IAAIsB,UAAU,IAAI,CAACK,SAAS,CAACR,YAAD,CAA5B,EAA4C;AAC1CA,MAAAA,YAAY,CAACvB,QAAb,CAAsBO,MAAtB,GAA+BmB,UAA/B,CAAA;AACAH,MAAAA,YAAY,CAACvB,QAAb,CAAsBI,QAAtB,IAAkC0B,SAAS,GAAGH,WAA9C,CAAA;AACD,KAAA;;AAED,IAAA,IAAIH,WAAW,IAAI,CAACQ,QAAQ,CAACP,WAAD,CAA5B,EAA2C;AACzCA,MAAAA,WAAW,CAACzB,QAAZ,CAAqBO,MAArB,GAA8BiB,WAA9B,CAAA;AACAC,MAAAA,WAAW,CAACzB,QAAZ,CAAqBI,QAArB,IAAiCwB,UAAU,GAAGC,UAA9C,CAAA;AACA3B,MAAAA,QAAQ,GAAGoB,QAAX,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAOpB,QAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;;;AAGA,SAAS6B,SAAT,CAAmBlgF,IAAnB,EAAyB;AACvB,EAAA,IAAItT,QAAQ,GAAGsT,IAAI,CAACtT,QAApB,CAAA;EACA,OAAOA,QAAQ,CAACjE,MAAT,IAAmBuX,IAAI,CAAC4+E,QAAxB,GAAmClyF,QAAQ,CAACA,QAAQ,CAACjE,MAAT,GAAkB,CAAnB,CAA3C,GAAmEuX,IAAI,CAACm+E,QAAL,CAAcO,MAAxF,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;;;AAGA,SAASyB,QAAT,CAAkBngF,IAAlB,EAAwB;AACtB,EAAA,IAAItT,QAAQ,GAAGsT,IAAI,CAACtT,QAApB,CAAA;AACA,EAAA,OAAOA,QAAQ,CAACjE,MAAT,IAAmBuX,IAAI,CAAC4+E,QAAxB,GAAmClyF,QAAQ,CAAC,CAAD,CAA3C,GAAiDsT,IAAI,CAACm+E,QAAL,CAAcO,MAAtE,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;;;AAGA,SAAS2B,YAAT,CAAsBR,UAAtB,EAAkC7/E,IAAlC,EAAwCq+E,QAAxC,EAAkD;AAChD,EAAA,OAAOwB,UAAU,CAAC1B,QAAX,CAAoBE,QAApB,CAA6Bz+E,UAA7B,KAA4CI,IAAI,CAACJ,UAAjD,GAA8DigF,UAAU,CAAC1B,QAAX,CAAoBE,QAAlF,GAA6FA,QAApG,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAAS+B,WAAT,CAAqBE,EAArB,EAAyBC,EAAzB,EAA6B9B,KAA7B,EAAoC;AAClC,EAAA,IAAID,MAAM,GAAGC,KAAK,IAAI8B,EAAE,CAACpC,QAAH,CAAYh1F,CAAZ,GAAgBm3F,EAAE,CAACnC,QAAH,CAAYh1F,CAAhC,CAAlB,CAAA;AACAo3F,EAAAA,EAAE,CAACpC,QAAH,CAAYK,MAAZ,IAAsBA,MAAtB,CAAA;AACA+B,EAAAA,EAAE,CAACpC,QAAH,CAAYM,KAAZ,IAAqBA,KAArB,CAAA;AACA8B,EAAAA,EAAE,CAACpC,QAAH,CAAYI,QAAZ,IAAwBE,KAAxB,CAAA;AACA8B,EAAAA,EAAE,CAACpC,QAAH,CAAYG,MAAZ,IAAsBG,KAAtB,CAAA;AACA6B,EAAAA,EAAE,CAACnC,QAAH,CAAYK,MAAZ,IAAsBA,MAAtB,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASe,iBAAT,CAA2BiB,KAA3B,EAAkCC,KAAlC,EAAyC;EACvC,OAAOD,KAAK,CAAC5gF,UAAN,KAAqB6gF,KAAK,CAAC7gF,UAA3B,GAAwC,CAAxC,GAA4C,CAAnD,CAAA;AACD;;AC/TD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyCA,IAAI8gF,aAAa;AACjB;AACA,YAAY;AACV,EAAA,SAASA,aAAT,GAAyB;IACvB,IAAKC,CAAAA,WAAL,GAAmB,EAAnB,CAAA;IACA,IAAKC,CAAAA,WAAL,GAAmB,EAAnB,CAAA;AACD,GAAA;;AAED,EAAA,OAAOF,aAAP,CAAA;AACD,CAPD,EAFA,CAAA;;AAWA,IAAIG,QAAQ;AACZ;AACA,UAAUl3E,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACi3E,QAAD,EAAWl3E,MAAX,CAAT,CAAA;;EAEA,SAASk3E,QAAT,CAAkB5zF,IAAlB,EAAwB;IACtB,OAAO0c,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB7c,IAAlB,KAA2B,IAAlC,CAAA;AACD,GAAA;;AAED4zF,EAAAA,QAAQ,CAACp7F,SAAT,CAAmBskC,eAAnB,GAAqC,YAAY;IAC/C,OAAO;AACL7/B,MAAAA,MAAM,EAAE,MADH;AAELF,MAAAA,IAAI,EAAE,IAAA;KAFR,CAAA;GADF,CAAA;;AAOA62F,EAAAA,QAAQ,CAACp7F,SAAT,CAAmBukC,eAAnB,GAAqC,YAAY;IAC/C,OAAO,IAAI02D,aAAJ,EAAP,CAAA;GADF,CAAA;;EAIAG,QAAQ,CAACp7F,SAAT,CAAmBwL,SAAnB,GAA+B,UAAUwa,GAAV,EAAe1a,KAAf,EAAsB;AACnD,IAAA,IAAI6vF,WAAW,GAAG7vF,KAAK,CAAC6vF,WAAxB,CAAA;AACA,IAAA,IAAIE,QAAQ,GAAGF,WAAW,CAACn4F,MAA3B,CAAA;AACA,IAAA,IAAIk4F,WAAW,GAAG5vF,KAAK,CAAC4vF,WAAxB,CAAA;AACA,IAAA,IAAII,aAAa,GAAGH,WAAW,CAAC,CAAD,CAA/B,CAAA;AACA,IAAA,IAAII,YAAY,GAAGJ,WAAW,CAACE,QAAQ,GAAG,CAAZ,CAA9B,CAAA;;IAEA,IAAIA,QAAQ,KAAK,CAAjB,EAAoB;MAClBr1E,GAAG,CAACxlB,MAAJ,CAAW06F,WAAW,CAAC,CAAD,CAAtB,EAA2BA,WAAW,CAAC,CAAD,CAAtC,CAAA,CAAA;MACAl1E,GAAG,CAACplB,MAAJ,CAAW06F,aAAa,CAAC,CAAD,CAAxB,EAA6BA,aAAa,CAAC,CAAD,CAA1C,CAAA,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIE,MAAM,GAAGlwF,KAAK,CAACkwF,MAAnB,CAAA;AACA,IAAA,IAAIC,OAAO,GAAGD,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,IAA9B,GAAqC,CAArC,GAAyC,CAAvD,CAAA;IACA,IAAIE,QAAQ,GAAG,CAAA,GAAID,OAAnB,CAAA;IACA,IAAIE,YAAY,GAAGp3C,YAAY,CAACj5C,KAAK,CAACqwF,YAAP,EAAqB,CAArB,CAA/B,CAAA;IACA,IAAIC,QAAQ,GAAG,EAAf,CAAA;AACAA,IAAAA,QAAQ,CAACH,OAAD,CAAR,GAAoBP,WAAW,CAACO,OAAD,CAA/B,CAAA;IACAG,QAAQ,CAACF,QAAD,CAAR,GAAqBR,WAAW,CAACQ,QAAD,CAAX,GAAwB,CAACH,YAAY,CAACG,QAAD,CAAZ,GAAyBR,WAAW,CAACQ,QAAD,CAArC,IAAmDC,YAAhG,CAAA;IACA31E,GAAG,CAACxlB,MAAJ,CAAW06F,WAAW,CAAC,CAAD,CAAtB,EAA2BA,WAAW,CAAC,CAAD,CAAtC,CAAA,CAAA;IACAl1E,GAAG,CAACplB,MAAJ,CAAWg7F,QAAQ,CAAC,CAAD,CAAnB,EAAwBA,QAAQ,CAAC,CAAD,CAAhC,CAAA,CAAA;IACA51E,GAAG,CAACxlB,MAAJ,CAAW86F,aAAa,CAAC,CAAD,CAAxB,EAA6BA,aAAa,CAAC,CAAD,CAA1C,CAAA,CAAA;AACAM,IAAAA,QAAQ,CAACH,OAAD,CAAR,GAAoBH,aAAa,CAACG,OAAD,CAAjC,CAAA;IACAz1E,GAAG,CAACplB,MAAJ,CAAWg7F,QAAQ,CAAC,CAAD,CAAnB,EAAwBA,QAAQ,CAAC,CAAD,CAAhC,CAAA,CAAA;AACAA,IAAAA,QAAQ,CAACH,OAAD,CAAR,GAAoBF,YAAY,CAACE,OAAD,CAAhC,CAAA;IACAz1E,GAAG,CAACplB,MAAJ,CAAWg7F,QAAQ,CAAC,CAAD,CAAnB,EAAwBA,QAAQ,CAAC,CAAD,CAAhC,CAAA,CAAA;IACA51E,GAAG,CAACplB,MAAJ,CAAW26F,YAAY,CAAC,CAAD,CAAvB,EAA4BA,YAAY,CAAC,CAAD,CAAxC,CAAA,CAAA;;AAEA,IAAA,KAAK,IAAI73F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG23F,QAAQ,GAAG,CAA/B,EAAkC33F,CAAC,EAAnC,EAAuC;AACrC,MAAA,IAAIk3B,KAAK,GAAGugE,WAAW,CAACz3F,CAAD,CAAvB,CAAA;MACAsiB,GAAG,CAACxlB,MAAJ,CAAWo6B,KAAK,CAAC,CAAD,CAAhB,EAAqBA,KAAK,CAAC,CAAD,CAA1B,CAAA,CAAA;AACAghE,MAAAA,QAAQ,CAACH,OAAD,CAAR,GAAoB7gE,KAAK,CAAC6gE,OAAD,CAAzB,CAAA;MACAz1E,GAAG,CAACplB,MAAJ,CAAWg7F,QAAQ,CAAC,CAAD,CAAnB,EAAwBA,QAAQ,CAAC,CAAD,CAAhC,CAAA,CAAA;AACD,KAAA;GAlCH,CAAA;;AAqCA,EAAA,OAAOR,QAAP,CAAA;AACD,CAxDD,CAwDE7lF,IAxDF,CAFA,CAAA;;AA4DA,IAAIsmF,QAAQ;AACZ;AACA,UAAU33E,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC03E,QAAD,EAAW33E,MAAX,CAAT,CAAA;;AAEA,EAAA,SAAS23E,QAAT,GAAoB;AAClB,IAAA,IAAIz3E,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa8oF,QAAQ,CAAC9oF,IAAtB,CAAA;AACAqR,IAAAA,KAAK,CAAC03E,UAAN,GAAmB,IAAI/kE,OAAJ,EAAnB,CAAA;AACA,IAAA,OAAO3S,KAAP,CAAA;AACD,GAAA;;EAEDy3E,QAAQ,CAAC77F,SAAT,CAAmBytC,IAAnB,GAA0B,UAAUM,OAAV,EAAmBxxB,GAAnB,EAAwB;IAChD,IAAK4rE,CAAAA,WAAL,GAAmB,IAAIvR,cAAJ,CAAmBr6D,GAAG,CAACghC,KAAJ,EAAnB,CAAnB,CAAA;AACA,IAAA,IAAA,CAAK6qC,eAAL,GAAuB;AACrBv8E,MAAAA,MAAM,EAAE,IAAKwlB,CAAAA,KAAAA;KADf,CAAA;AAGA,IAAA,IAAA,CAAKA,KAAL,CAAWO,GAAX,CAAe,KAAKkqE,UAApB,CAAA,CAAA;GALF,CAAA;;EAQAD,QAAQ,CAAC77F,SAAT,CAAmB8tC,MAAnB,GAA4B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AAC/D,IAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAIgqE,UAAU,GAAGrlE,WAAW,CAACqlE,UAA7B,CAAA;IACA,IAAI1qE,KAAK,GAAG,IAAA,CAAKyqE,UAAjB,CAAA;AACA,IAAA,IAAIlgD,MAAM,GAAGllB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;;IAEA,IAAIyjB,MAAM,KAAK,QAAf,EAAyB;MACvBvqB,KAAK,CAAC5wB,CAAN,GAAUs7F,UAAU,CAACt7F,CAAX,GAAes7F,UAAU,CAACtyF,KAAX,GAAmB,CAA5C,CAAA;MACA4nB,KAAK,CAAC3wB,CAAN,GAAUq7F,UAAU,CAACr7F,CAAX,GAAeq7F,UAAU,CAACryF,MAAX,GAAoB,CAA7C,CAAA;AACD,KAHD,MAGO;AACL2nB,MAAAA,KAAK,CAAC5wB,CAAN,GAAUs7F,UAAU,CAACt7F,CAArB,CAAA;AACA4wB,MAAAA,KAAK,CAAC3wB,CAAN,GAAUq7F,UAAU,CAACr7F,CAArB,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKs7F,mBAAL,CAAyBtlE,WAAzB,EAAsCna,GAAtC,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKotE,iBAAL,CAAuBjzD,WAAvB,EAAoCqX,OAApC,EAA6CxxB,GAA7C,CAAA,CAAA;;IAEA,IAAIgf,OAAO,GAAG,IAAA,CAAKC,KAAnB,CAAA;IACAtH,IAAI,CAAC0H,IAAL,CAAUL,OAAV,EAAmB3J,GAAnB,CAAuB,UAAUiK,MAAV,EAAkB;AACvC,MAAA,IAAIlB,eAAe,CAACzG,IAAD,EAAO2H,MAAP,CAAnB,EAAmC;AACjC;QACAogE,UAAU,CAAC/nE,IAAD,EAAO2H,MAAP,EAAe,IAAf,EAAqBxK,KAArB,EAA4BqF,WAA5B,CAAV,CAAA;AACD,OAAA;AACF,KALD,EAKGuF,MALH,CAKU,UAAUJ,MAAV,EAAkBK,MAAlB,EAA0B;AAClC,MAAA,IAAIJ,QAAQ,GAAGP,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAf,CAAA;;AAEA,MAAA,IAAI,CAACvB,eAAe,CAACzG,IAAD,EAAO2H,MAAP,CAApB,EAAoC;AAClCC,QAAAA,QAAQ,IAAIogE,UAAU,CAAC3gE,OAAD,EAAUW,MAAV,EAAkBJ,QAAlB,EAA4BzK,KAA5B,EAAmCqF,WAAnC,CAAtB,CAAA;AACA,QAAA,OAAA;AACD,OANiC;;;MASlCulE,UAAU,CAAC/nE,IAAD,EAAO2H,MAAP,EAAeC,QAAf,EAAyBzK,KAAzB,EAAgCqF,WAAhC,CAAV,CAAA;AACD,KAfD,CAeG0F,CAAAA,MAfH,CAeU,UAAUF,MAAV,EAAkB;MAC1B,IAAIJ,QAAQ,GAAGP,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAf,CAD0B;AAE1B;AACA;AACA;AACA;;AAEA,MAAA,IAAIJ,QAAJ,EAAc;QACZogE,UAAU,CAAC3gE,OAAD,EAAUW,MAAV,EAAkBJ,QAAlB,EAA4BzK,KAA5B,EAAmCqF,WAAnC,CAAV,CAAA;AACD,OAAA;AACF,KAzBD,EAyBG6F,OAzBH,EAAA,CAAA;AA0BA,IAAA,IAAA,CAAK4/D,eAAL,GAAuBzlE,WAAW,CAACyB,GAAZ,CAAgB,gBAAhB,CAAvB,CAAA;;IAEA,IAAKikE,CAAAA,uBAAL,CAA6B1lE,WAA7B,CAAA,CAAA;;AAEA,IAAA,IAAIA,WAAW,CAACyB,GAAZ,CAAgB,mBAAhB,CAAA,KAAyC,IAA7C,EAAmD;AACjDjE,MAAAA,IAAI,CAACwI,iBAAL,CAAuB,UAAUz3B,EAAV,EAAckvB,SAAd,EAAyB;QAC9ClvB,EAAE,CAACm6C,GAAH,CAAO,OAAP,EAAgB5B,EAAhB,CAAmB,OAAnB,EAA4B,YAAY;UACtCjhC,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,YAAAA,IAAI,EAAE,uBADW;YAEjB48E,QAAQ,EAAEj5D,WAAW,CAAC7iB,EAFL;AAGjBsgB,YAAAA,SAAS,EAAEA,SAAAA;WAHb,CAAA,CAAA;SADF,CAAA,CAAA;OADF,CAAA,CAAA;AASD,KAAA;;IAED,IAAKqH,CAAAA,KAAL,GAAatH,IAAb,CAAA;GA7DF,CAAA;;EAgEA2nE,QAAQ,CAAC77F,SAAT,CAAmBg8F,mBAAnB,GAAyC,UAAUtlE,WAAV,EAAuBna,GAAvB,EAA4B;AACnE,IAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAI/f,MAAM,GAAG,EAAb,CAAA;AACAkiB,IAAAA,IAAI,CAACxnB,IAAL,CAAU,UAAUgjB,GAAV,EAAe;AACvB,MAAA,IAAIksB,MAAM,GAAG1nB,IAAI,CAACyH,aAAL,CAAmBjM,GAAnB,CAAb,CAAA;;AAEA,MAAA,IAAIksB,MAAM,IAAI,CAAC/3C,KAAK,CAAC+3C,MAAM,CAACn7C,CAAR,CAAhB,IAA8B,CAACoD,KAAK,CAAC+3C,MAAM,CAACl7C,CAAR,CAAxC,EAAoD;AAClDsR,QAAAA,MAAM,CAACjO,IAAP,CAAY,CAAC,CAAC63C,MAAM,CAACn7C,CAAT,EAAY,CAACm7C,MAAM,CAACl7C,CAApB,CAAZ,CAAA,CAAA;AACD,OAAA;KALH,CAAA,CAAA;IAOA,IAAI4hC,GAAG,GAAG,EAAV,CAAA;IACA,IAAIpgB,GAAG,GAAG,EAAV,CAAA;IACAm6E,UAAA,CAAgBrqF,MAAhB,EAAwBswB,GAAxB,EAA6BpgB,GAA7B,CAAA,CAZmE;AAanE;;IAEA,IAAIo6E,MAAM,GAAG,IAAA,CAAKC,IAAlB,CAAA;AACA,IAAA,IAAIC,MAAM,GAAG,IAAKC,CAAAA,IAAlB,CAhBmE;;IAkBnE,IAAIv6E,GAAG,CAAC,CAAD,CAAH,GAASogB,GAAG,CAAC,CAAD,CAAZ,KAAoB,CAAxB,EAA2B;AACzBA,MAAAA,GAAG,CAAC,CAAD,CAAH,GAASg6D,MAAM,GAAGA,MAAM,CAAC,CAAD,CAAT,GAAeh6D,GAAG,CAAC,CAAD,CAAH,GAAS,CAAvC,CAAA;AACApgB,MAAAA,GAAG,CAAC,CAAD,CAAH,GAASs6E,MAAM,GAAGA,MAAM,CAAC,CAAD,CAAT,GAAet6E,GAAG,CAAC,CAAD,CAAH,GAAS,CAAvC,CAAA;AACD,KAAA;;IAED,IAAIA,GAAG,CAAC,CAAD,CAAH,GAASogB,GAAG,CAAC,CAAD,CAAZ,KAAoB,CAAxB,EAA2B;AACzBA,MAAAA,GAAG,CAAC,CAAD,CAAH,GAASg6D,MAAM,GAAGA,MAAM,CAAC,CAAD,CAAT,GAAeh6D,GAAG,CAAC,CAAD,CAAH,GAAS,CAAvC,CAAA;AACApgB,MAAAA,GAAG,CAAC,CAAD,CAAH,GAASs6E,MAAM,GAAGA,MAAM,CAAC,CAAD,CAAT,GAAet6E,GAAG,CAAC,CAAD,CAAH,GAAS,CAAvC,CAAA;AACD,KAAA;;IAED,IAAIw6E,YAAY,GAAGhmE,WAAW,CAAC3F,gBAAZ,GAA+B,IAAIuhE,IAAJ,EAAlD,CAAA;IACAoK,YAAY,CAACliB,SAAb,GAAyB9jD,WAAW,CAACyB,GAAZ,CAAgB,YAAhB,CAAzB,CAAA;AACAukE,IAAAA,YAAY,CAAChK,eAAb,CAA6BpwD,GAAG,CAAC,CAAD,CAAhC,EAAqCA,GAAG,CAAC,CAAD,CAAxC,EAA6CpgB,GAAG,CAAC,CAAD,CAAH,GAASogB,GAAG,CAAC,CAAD,CAAzD,EAA8DpgB,GAAG,CAAC,CAAD,CAAH,GAASogB,GAAG,CAAC,CAAD,CAA1E,CAAA,CAAA;IACAo6D,YAAY,CAACtX,SAAb,CAAuB1uD,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAvB,EAAkD5b,GAAlD,CAAA,CAAA;IACAmgF,YAAY,CAACzL,OAAb,CAAqBv6D,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,CAArB,CAAA,CAhCmE;;IAkCnE,IAAK9G,CAAAA,KAAL,CAAW8D,IAAX,CAAgB;MACd10B,CAAC,EAAEi8F,YAAY,CAACj8F,CADF;MAEdC,CAAC,EAAEg8F,YAAY,CAACh8F,CAFF;MAGdqV,MAAM,EAAE2mF,YAAY,CAAC3mF,MAHP;MAIdC,MAAM,EAAE0mF,YAAY,CAAC1mF,MAAAA;KAJvB,CAAA,CAAA;IAMA,IAAKumF,CAAAA,IAAL,GAAYj6D,GAAZ,CAAA;IACA,IAAKm6D,CAAAA,IAAL,GAAYv6E,GAAZ,CAAA;GAzCF,CAAA;;EA4CA25E,QAAQ,CAAC77F,SAAT,CAAmB2pF,iBAAnB,GAAuC,UAAUjzD,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;IAC1E,IAAI6H,KAAK,GAAG,IAAZ,CAAA;;IAEA,IAAIw1D,UAAU,GAAG,IAAA,CAAKuO,WAAtB,CAAA;IACA,IAAIhO,cAAc,GAAG,IAAA,CAAKiO,eAA1B,CAAA;IACA,IAAI/2D,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACAuoD,UAAU,CAACvB,iBAAX,CAA6B,UAAU/0E,CAAV,EAAa7C,CAAb,EAAgBC,CAAhB,EAAmB;AAC9C,MAAA,IAAIkC,IAAI,GAAGyuB,KAAK,CAACs3B,eAAN,EAAX,CAAA;AACA/lD,MAAAA,IAAI,CAAC4nD,cAAL,CAAoBn5B,KAAK,CAACvlB,SAA1B,CAAA,CAAA;AACA,MAAA,OAAOlJ,IAAI,CAACm4B,OAAL,CAAat6B,CAAb,EAAgBC,CAAhB,CAAA,IAAsB,CAACq6E,mBAAmB,CAACz3E,CAAD,EAAIiZ,GAAJ,EAASma,WAAT,CAAjD,CAAA;KAHF,CAAA,CAAA;IAKAkjD,UAAU,CAACnC,MAAX,CAAkB/gD,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,CAAlB,CAAA,CAAA;IACAgiD,cAAc,CAACK,SAAf,GAA2B9jD,WAAW,CAACyB,GAAZ,CAAgB,YAAhB,CAA3B,CAAA;IACAgiD,cAAc,CAACO,IAAf,GAAsBhkD,WAAW,CAAC3F,gBAAZ,CAA6Bk8D,OAA7B,EAAtB,CAAA;AACArT,IAAAA,UAAU,CAACx6B,GAAX,CAAe,KAAf,EAAsBA,GAAtB,CAA0B,MAA1B,CAAA,CAAkC5B,EAAlC,CAAqC,KAArC,EAA4C,UAAUl6C,CAAV,EAAa;MACvD+pF,eAAA,CAA2BlT,cAA3B,EAA2C72E,CAAC,CAACk3B,EAA7C,EAAiDl3B,CAAC,CAACm3B,EAAnD,CAAA,CAAA;MACAle,GAAG,CAACwiC,cAAJ,CAAmB;QACjB4wC,QAAQ,EAAEj5D,WAAW,CAAC7iB,EADL;AAEjBd,QAAAA,IAAI,EAAE,UAFW;QAGjBynB,EAAE,EAAEl3B,CAAC,CAACk3B,EAHW;QAIjBC,EAAE,EAAEn3B,CAAC,CAACm3B,EAAAA;OAJR,CAAA,CAAA;AAMD,KARD,EAQG+iB,EARH,CAQM,MARN,EAQc,UAAUl6C,CAAV,EAAa;AACzB+pF,MAAAA,gBAAA,CAA4BlT,cAA5B,EAA4C72E,CAAC,CAACgjB,KAA9C,EAAqDhjB,CAAC,CAACyI,OAAvD,EAAgEzI,CAAC,CAAC0I,OAAlE,CAAA,CAAA;MACAuQ,GAAG,CAACwiC,cAAJ,CAAmB;QACjB4wC,QAAQ,EAAEj5D,WAAW,CAAC7iB,EADL;AAEjBd,QAAAA,IAAI,EAAE,UAFW;QAGjB2nE,IAAI,EAAEp3E,CAAC,CAACgjB,KAHS;QAIjBva,OAAO,EAAEzI,CAAC,CAACyI,OAJM;QAKjBC,OAAO,EAAE1I,CAAC,CAAC0I,OAAAA;OALb,CAAA,CAAA;;AAQAoY,MAAAA,KAAK,CAACg4E,uBAAN,CAA8B1lE,WAA9B,EAVyB;;;AAazBna,MAAAA,GAAG,CAACogF,iBAAJ,EAAA,CAAA;KArBF,CAAA,CAAA;GAdF,CAAA;;AAuCAd,EAAAA,QAAQ,CAAC77F,SAAT,CAAmBo8F,uBAAnB,GAA6C,UAAU1lE,WAAV,EAAuB;AAClE,IAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;;AAEA,IAAA,IAAI6qE,SAAS,GAAG,IAAA,CAAKC,mBAAL,CAAyBnmE,WAAzB,CAAhB,CAAA;;AAEAxC,IAAAA,IAAI,CAACwI,iBAAL,CAAuB,UAAUz3B,EAAV,EAAcyqB,GAAd,EAAmB;MACxCzqB,EAAE,CAAC80B,cAAH,CAAkB6iE,SAAlB,CAAA,CAAA;KADF,CAAA,CAAA;GALF,CAAA;;AAUAf,EAAAA,QAAQ,CAAC77F,SAAT,CAAmB68F,mBAAnB,GAAyC,UAAUnmE,WAAV,EAAuB;AAC9D,IAAA,IAAI5F,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;AAEA,IAAA,IAAID,QAAQ,CAAC/d,IAAT,KAAkB,MAAtB,EAA8B;AAC5B,MAAA,OAAO,CAAP,CAAA;AACD,KAAA;;IAED,IAAI+pF,cAAc,GAAG,IAAA,CAAKX,eAA1B,CAAA;IACA,IAAIY,SAAS,GAAGjsE,QAAQ,CAAC/a,MAAT,IAAmB,CAAnC,CAR8D;;AAU9D,IAAA,IAAIinF,QAAQ,GAAGlsE,QAAQ,CAACm8D,OAAT,EAAf,CAAA;IACA,IAAI2P,SAAS,GAAG,CAACI,QAAQ,GAAG,CAAZ,IAAiBF,cAAjB,GAAkC,CAAlD,CAAA;IACA,OAAOF,SAAS,GAAGG,SAAnB,CAAA;GAZF,CAAA;;AAeAlB,EAAAA,QAAQ,CAAC77F,SAAT,CAAmB4iB,OAAnB,GAA6B,YAAY;AACvC,IAAA,IAAA,CAAKulE,WAAL,IAAoB,IAAA,CAAKA,WAAL,CAAiBvlE,OAAjB,EAApB,CAAA;IACA,IAAKwlE,CAAAA,eAAL,GAAuB,IAAvB,CAAA;GAFF,CAAA;;AAKAyT,EAAAA,QAAQ,CAAC77F,SAAT,CAAmBo8B,MAAnB,GAA4B,YAAY;IACtC,IAAK0/D,CAAAA,UAAL,CAAgB7mE,SAAhB,EAAA,CAAA;;IAEA,IAAKuG,CAAAA,KAAL,GAAa,IAAb,CAAA;GAHF,CAAA;;EAMAqgE,QAAQ,CAAC9oF,IAAT,GAAgB,MAAhB,CAAA;AACA,EAAA,OAAO8oF,QAAP,CAAA;AACD,CA5MD,CA4ME3qD,SA5MF,CAFA,CAAA;;AAgNA,SAASvW,eAAT,CAAyBzG,IAAzB,EAA+BC,SAA/B,EAA0C;AACxC,EAAA,IAAIynB,MAAM,GAAG1nB,IAAI,CAACyH,aAAL,CAAmBxH,SAAnB,CAAb,CAAA;AACA,EAAA,OAAOynB,MAAM,IAAI,CAAC/3C,KAAK,CAAC+3C,MAAM,CAACn7C,CAAR,CAAhB,IAA8B,CAACoD,KAAK,CAAC+3C,MAAM,CAACl7C,CAAR,CAA3C,CAAA;AACD,CAAA;;AAED,SAASu7F,UAAT,CAAoB/nE,IAApB,EAA0BC,SAA1B,EAAqC2H,QAArC,EAA+CzK,KAA/C,EAAsDqF,WAAtD,EAAmE;EACjE,IAAIG,MAAM,GAAG,CAACiF,QAAd,CAAA;EACA,IAAIvhB,IAAI,GAAG2Z,IAAI,CAAC+oE,IAAL,CAAUC,kBAAV,CAA6B/oE,SAA7B,CAAX,CAAA;AACA,EAAA,IAAI2D,SAAS,GAAGvd,IAAI,CAAC0d,QAAL,EAAhB,CAAA;EACA,IAAIQ,WAAW,GAAGle,IAAI,CAACyX,SAAL,CAAe,OAAf,EAAwBztB,IAA1C,CAAA;AACA,EAAA,IAAIw0B,gBAAgB,GAAGxe,IAAI,CAAC4+E,QAAL,KAAkB,KAAlB,IAA2B5+E,IAAI,CAACtT,QAAL,CAAcjE,MAAd,KAAyB,CAApD,GAAwDy1B,WAAxD,GAAsE,MAA7F,CAAA;AACA,EAAA,IAAI0kE,WAAW,GAAGjpE,IAAI,CAAC+oE,IAAL,CAAUv+E,IAA5B,CAAA;AACA,EAAA,IAAIwuC,MAAM,GAAG3yC,IAAI,CAACJ,UAAL,KAAoBgjF,WAApB,GAAkC5iF,IAAlC,GAAyCA,IAAI,CAACJ,UAAL,IAAmBI,IAAzE,CAAA;EACA,IAAI6iF,cAAc,GAAGlpE,IAAI,CAACiI,gBAAL,CAAsB+wB,MAAM,CAAC/4B,SAA7B,CAArB,CAAA;AACA,EAAA,IAAIkpE,YAAY,GAAGnwC,MAAM,CAACxsB,SAAP,EAAnB,CAAA;EACA,IAAI48D,eAAe,GAAGF,cAAc,GAAG;IACrC38F,CAAC,EAAE28F,cAAc,CAACG,MADmB;IAErC78F,CAAC,EAAE08F,cAAc,CAACI,MAFmB;IAGrCC,IAAI,EAAEL,cAAc,CAACM,eAHgB;IAIrCC,IAAI,EAAEP,cAAc,CAACQ,eAAAA;AAJgB,GAAH,GAKhCP,YALJ,CAAA;AAMA,EAAA,IAAIQ,YAAY,GAAGtjF,IAAI,CAACmmB,SAAL,EAAnB,CAAA;;AAEA,EAAA,IAAI7J,MAAJ,EAAY;IACViF,QAAQ,GAAG,IAAIT,MAAJ,CAAcnH,IAAd,EAAoBC,SAApB,EAA+B,IAA/B,EAAqC;AAC9C4E,MAAAA,gBAAgB,EAAEA,gBAD4B;AAE9CI,MAAAA,YAAY,EAAE,IAAA;AAFgC,KAArC,CAAX,CAAA;AAIA2C,IAAAA,QAAQ,CAACr7B,CAAT,GAAa68F,eAAe,CAAC78F,CAA7B,CAAA;AACAq7B,IAAAA,QAAQ,CAACp7B,CAAT,GAAa48F,eAAe,CAAC58F,CAA7B,CAAA;AACD,GAPD,MAOO;IACLo7B,QAAQ,CAAChH,UAAT,CAAoBZ,IAApB,EAA0BC,SAA1B,EAAqC,IAArC,EAA2C;AACzC4E,MAAAA,gBAAgB,EAAEA,gBADuB;AAEzCI,MAAAA,YAAY,EAAE,IAAA;KAFhB,CAAA,CAAA;AAID,GAAA;;AAED2C,EAAAA,QAAQ,CAAC4hE,eAAT,GAA2B5hE,QAAQ,CAACgiE,YAApC,CAAA;AACAhiE,EAAAA,QAAQ,CAAC8hE,eAAT,GAA2B9hE,QAAQ,CAACiiE,YAApC,CAAA;AACAjiE,EAAAA,QAAQ,CAACgiE,YAAT,GAAwBD,YAAY,CAACJ,IAArC,CAAA;AACA3hE,EAAAA,QAAQ,CAACiiE,YAAT,GAAwBF,YAAY,CAACF,IAArC,CAAA;EACAtsE,KAAK,CAACO,GAAN,CAAUkK,QAAV,CAAA,CAAA;AACA5H,EAAAA,IAAI,CAAC8H,gBAAL,CAAsB7H,SAAtB,EAAiC2H,QAAjC,CAAA,CAAA;AACAA,EAAAA,QAAQ,CAACyhE,MAAT,GAAkBzhE,QAAQ,CAACr7B,CAA3B,CAAA;AACAq7B,EAAAA,QAAQ,CAAC0hE,MAAT,GAAkB1hE,QAAQ,CAACp7B,CAA3B,CAAA;AACAq2B,EAAAA,aAAA,CAAoB+E,QAApB,EAA8B;IAC5Br7B,CAAC,EAAEo9F,YAAY,CAACp9F,CADY;IAE5BC,CAAC,EAAEm9F,YAAY,CAACn9F,CAAAA;AAFY,GAA9B,EAGGg2B,WAHH,CAAA,CAAA;AAIA,EAAA,IAAIxB,UAAU,GAAG4G,QAAQ,CAAChG,aAAT,EAAjB,CAAA;;AAEA,EAAA,IAAIY,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAA,KAA8B,QAAlC,EAA4C;AAC1C,IAAA,IAAI6lE,QAAQ,GAAGb,WAAW,CAACl2F,QAAZ,CAAqB,CAArB,CAAf,CAAA;AACA,IAAA,IAAIg3F,UAAU,GAAGD,QAAQ,CAACt9D,SAAT,EAAjB,CAAA;AACA,IAAA,IAAIw9D,QAAQ,GAAGF,QAAQ,CAAC/2F,QAAT,CAAkBjE,MAAjC,CAAA;IACA,IAAIqnD,GAAG,GAAG,KAAK,CAAf,CAAA;IACA,IAAI8zC,MAAM,GAAG,KAAK,CAAlB,CAAA;;AAEA,IAAA,IAAIN,YAAY,CAACp9F,CAAb,KAAmBw9F,UAAU,CAACx9F,CAA9B,IAAmC8Z,IAAI,CAAC4+E,QAAL,KAAkB,IAArD,IAA6D6E,QAAQ,CAAC/2F,QAAT,CAAkBjE,MAAnF,EAA2F;AACzF,MAAA,IAAIqhD,MAAM,GAAG;QACX5jD,CAAC,EAAE,CAACu9F,QAAQ,CAAC/2F,QAAT,CAAkB,CAAlB,CAAA,CAAqBy5B,SAArB,EAAA,CAAiCjgC,CAAjC,GAAqCu9F,QAAQ,CAAC/2F,QAAT,CAAkBi3F,QAAQ,GAAG,CAA7B,EAAgCx9D,SAAhC,EAAA,CAA4CjgC,CAAlF,IAAuF,CAD/E;QAEXC,CAAC,EAAE,CAACs9F,QAAQ,CAAC/2F,QAAT,CAAkB,CAAlB,CAAqBy5B,CAAAA,SAArB,EAAiChgC,CAAAA,CAAjC,GAAqCs9F,QAAQ,CAAC/2F,QAAT,CAAkBi3F,QAAQ,GAAG,CAA7B,CAAgCx9D,CAAAA,SAAhC,EAA4ChgC,CAAAA,CAAlF,IAAuF,CAAA;OAF5F,CAAA;MAIA2pD,GAAG,GAAG7qD,IAAI,CAAC8qD,KAAL,CAAWjG,MAAM,CAAC3jD,CAAP,GAAWu9F,UAAU,CAACv9F,CAAjC,EAAoC2jD,MAAM,CAAC5jD,CAAP,GAAWw9F,UAAU,CAACx9F,CAA1D,CAAN,CAAA;;MAEA,IAAI4pD,GAAG,GAAG,CAAV,EAAa;AACXA,QAAAA,GAAG,GAAG7qD,IAAI,CAACI,EAAL,GAAU,CAAV,GAAcyqD,GAApB,CAAA;AACD,OAAA;;AAED8zC,MAAAA,MAAM,GAAG95C,MAAM,CAAC5jD,CAAP,GAAWw9F,UAAU,CAACx9F,CAA/B,CAAA;;AAEA,MAAA,IAAI09F,MAAJ,EAAY;AACV9zC,QAAAA,GAAG,GAAGA,GAAG,GAAG7qD,IAAI,CAACI,EAAjB,CAAA;AACD,OAAA;AACF,KAhBD,MAgBO;MACLyqD,GAAG,GAAG7qD,IAAI,CAAC8qD,KAAL,CAAWuzC,YAAY,CAACn9F,CAAb,GAAiBu9F,UAAU,CAACv9F,CAAvC,EAA0Cm9F,YAAY,CAACp9F,CAAb,GAAiBw9F,UAAU,CAACx9F,CAAtE,CAAN,CAAA;;MAEA,IAAI4pD,GAAG,GAAG,CAAV,EAAa;AACXA,QAAAA,GAAG,GAAG7qD,IAAI,CAACI,EAAL,GAAU,CAAV,GAAcyqD,GAApB,CAAA;AACD,OAAA;;MAED,IAAI9vC,IAAI,CAACtT,QAAL,CAAcjE,MAAd,KAAyB,CAAzB,IAA8BuX,IAAI,CAACtT,QAAL,CAAcjE,MAAd,KAAyB,CAAzB,IAA8BuX,IAAI,CAAC4+E,QAAL,KAAkB,KAAlF,EAAyF;AACvFgF,QAAAA,MAAM,GAAGN,YAAY,CAACp9F,CAAb,GAAiBw9F,UAAU,CAACx9F,CAArC,CAAA;;AAEA,QAAA,IAAI09F,MAAJ,EAAY;AACV9zC,UAAAA,GAAG,GAAGA,GAAG,GAAG7qD,IAAI,CAACI,EAAjB,CAAA;AACD,SAAA;AACF,OAND,MAMO;AACLu+F,QAAAA,MAAM,GAAGN,YAAY,CAACp9F,CAAb,GAAiBw9F,UAAU,CAACx9F,CAArC,CAAA;;QAEA,IAAI,CAAC09F,MAAL,EAAa;AACX9zC,UAAAA,GAAG,GAAGA,GAAG,GAAG7qD,IAAI,CAACI,EAAjB,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;AAED,IAAA,IAAIw4C,YAAY,GAAG+lD,MAAM,GAAG,MAAH,GAAY,OAArC,CAAA;AACA,IAAA,IAAIC,gBAAgB,GAAGtmE,SAAS,CAACG,QAAV,CAAmB,OAAnB,CAAvB,CAAA;AACA,IAAA,IAAIihB,MAAM,GAAGklD,gBAAgB,CAACjmE,GAAjB,CAAqB,QAArB,CAAb,CAAA;IACA,IAAIkmE,iBAAiB,GAAGnlD,MAAM,IAAI15C,IAAI,CAACI,EAAL,GAAU,GAAd,CAA9B,CAAA;AACA,IAAA,IAAIgb,WAAW,GAAGsa,UAAU,CAACra,cAAX,EAAlB,CAAA;;AAEA,IAAA,IAAID,WAAJ,EAAiB;MACfsa,UAAU,CAAC8jB,aAAX,CAAyB;AACvBl1B,QAAAA,QAAQ,EAAEs6E,gBAAgB,CAACjmE,GAAjB,CAAqB,UAArB,KAAoCigB,YADvB;QAEvB5lB,QAAQ,EAAE0mB,MAAM,IAAI,IAAV,GAAiB,CAACmR,GAAlB,GAAwBg0C,iBAFX;AAGvBC,QAAAA,MAAM,EAAE,QAAA;OAHV,CAAA,CAAA;AAKA1jF,MAAAA,WAAW,CAACiX,QAAZ,CAAqB,eAArB,EAAsC,QAAtC,CAAA,CAAA;AACD,KAAA;AACF,GAzGgE;;;EA4GjE,IAAI0F,KAAK,GAAGO,SAAS,CAACK,GAAV,CAAc,CAAC,UAAD,EAAa,OAAb,CAAd,CAAZ,CAAA;AACA,EAAA,IAAIomE,gBAAgB,GAAGhnE,KAAK,KAAK,UAAV,GAAuBmQ,WAAA,CAAmBntB,IAAI,CAACikF,mBAAL,EAAnB,EAA+CjkF,IAAI,CAACkkF,oBAAL,EAA/C,CAAvB,GAAqGlnE,KAAK,KAAK,UAAV,GAAuBhd,IAAI,CAACikF,mBAAL,EAAvB,GAAoDjnE,KAAK,KAAK,YAAV,GAAyBhd,IAAI,CAACkkF,oBAAL,EAAzB,GAAuD,IAAvO,CAAA;;AAEA,EAAA,IAAIF,gBAAJ,EAAsB;AACpB;AACArkE,IAAAA,SAAS,CAAC4B,QAAD,CAAT,CAAoBvE,KAApB,GAA4BgnE,gBAA5B,CAAA;AACD,GAAA;;AAEDG,EAAAA,QAAQ,CAAChoE,WAAD,EAAcnc,IAAd,EAAoB4iF,WAApB,EAAiCrhE,QAAjC,EAA2CwhE,eAA3C,EAA4DD,YAA5D,EAA0EQ,YAA1E,EAAwFxsE,KAAxF,CAAR,CAAA;;EAEA,IAAIyK,QAAQ,CAAC6iE,MAAb,EAAqB;AACnB7iE,IAAAA,QAAQ,CAACuU,kBAAT,GAA8B,UAAUF,OAAV,EAAmB;MAC/C,IAAIA,OAAO,KAAK,MAAhB,EAAwB;AACtB;AACA;AACA;AACA,QAAA,IAAIyuD,QAAQ,GAAGrkF,IAAI,CAACJ,UAAL,IAAmB+Z,IAAI,CAACiI,gBAAL,CAAsB5hB,IAAI,CAACJ,UAAL,CAAgBga,SAAtC,CAAlC,CAAA;;QAEA,IAAI,EAAEyqE,QAAQ,IAAIA,QAAQ,CAACC,UAAT,KAAwBC,gBAAtC,CAAJ,EAA6D;AAC3D3tD,UAAAA,aAAa,CAACrV,QAAQ,CAAC6iE,MAAV,EAAkBxuD,OAAlB,CAAb,CAAA;AACD,SAAA;AACF,OAAA;KAVH,CAAA;AAYD,GAAA;AACF,CAAA;;AAED,SAASuuD,QAAT,CAAkBhoE,WAAlB,EAA+Bnc,IAA/B,EAAqC4iF,WAArC,EAAkDrhE,QAAlD,EAA4DwhE,eAA5D,EAA6ED,YAA7E,EAA2FQ,YAA3F,EAAyGxsE,KAAzG,EAAgH;AAC9G,EAAA,IAAIyG,SAAS,GAAGvd,IAAI,CAAC0d,QAAL,EAAhB,CAAA;AACA,EAAA,IAAI8mE,SAAS,GAAGroE,WAAW,CAACyB,GAAZ,CAAgB,WAAhB,CAAhB,CAAA;AACA,EAAA,IAAIyjB,MAAM,GAAGllB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;AACA,EAAA,IAAIqjE,MAAM,GAAG9kE,WAAW,CAACsoE,SAAZ,EAAb,CAAA;EACA,IAAIC,SAAS,GAAGvoE,WAAW,CAACyB,GAAZ,CAAgB,CAAC,WAAD,EAAc,WAAd,CAAhB,CAAhB,CAAA;AACA,EAAA,IAAI+mE,gBAAgB,GAAGxoE,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,CAAvB,CAAA;EACA,IAAIxG,SAAS,GAAGmG,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAAgCyX,CAAAA,YAAhC,EAAhB,CAAA;AACA,EAAA,IAAIyvD,IAAI,GAAGrjE,QAAQ,CAAC6iE,MAApB,CAR8G;AAS9G;;EAEA,IAAII,SAAS,KAAK,OAAlB,EAA2B;IACzB,IAAIxkF,IAAI,CAACJ,UAAL,IAAmBI,IAAI,CAACJ,UAAL,KAAoBgjF,WAA3C,EAAwD;MACtD,IAAI,CAACgC,IAAL,EAAW;QACTA,IAAI,GAAGrjE,QAAQ,CAAC6iE,MAAT,GAAkB,IAAI5nE,WAAJ,CAAwB;UAC/CzrB,KAAK,EAAE8zF,YAAY,CAACxjD,MAAD,EAAS4/C,MAAT,EAAiByD,SAAjB,EAA4B3B,eAA5B,EAA6CA,eAA7C,CAAA;AAD4B,SAAxB,CAAzB,CAAA;AAGD,OAAA;;AAEDvmE,MAAAA,aAAA,CAAoBooE,IAApB,EAA0B;QACxB7zF,KAAK,EAAE8zF,YAAY,CAACxjD,MAAD,EAAS4/C,MAAT,EAAiByD,SAAjB,EAA4B5B,YAA5B,EAA0CQ,YAA1C,CAAA;AADK,OAA1B,EAEGnnE,WAFH,CAAA,CAAA;AAGD,KAAA;AACF,GAZD,MAYO,IAAIqoE,SAAS,KAAK,UAAlB,EAA8B;IACnC,IAAInjD,MAAM,KAAK,YAAf,EAA6B;MAC3B,IAAIrhC,IAAI,KAAK4iF,WAAT,IAAwB5iF,IAAI,CAACtT,QAA7B,IAAyCsT,IAAI,CAACtT,QAAL,CAAcjE,MAAd,KAAyB,CAAlE,IAAuEuX,IAAI,CAAC4+E,QAAL,KAAkB,IAA7F,EAAmG;AACjG,QAAA,IAAIlyF,QAAQ,GAAGsT,IAAI,CAACtT,QAApB,CAAA;QACA,IAAIk0F,WAAW,GAAG,EAAlB,CAAA;;AAEA,QAAA,KAAK,IAAIz3F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuD,QAAQ,CAACjE,MAA7B,EAAqCU,CAAC,EAAtC,EAA0C;UACxC,IAAI27F,WAAW,GAAGp4F,QAAQ,CAACvD,CAAD,CAAR,CAAYg9B,SAAZ,EAAlB,CAAA;UACAy6D,WAAW,CAACp3F,IAAZ,CAAiB,CAACs7F,WAAW,CAAC5+F,CAAb,EAAgB4+F,WAAW,CAAC3+F,CAA5B,CAAjB,CAAA,CAAA;AACD,SAAA;;QAED,IAAI,CAACy+F,IAAL,EAAW;AACTA,UAAAA,IAAI,GAAGrjE,QAAQ,CAAC6iE,MAAT,GAAkB,IAAIvD,QAAJ,CAAa;AACpC9vF,YAAAA,KAAK,EAAE;cACL4vF,WAAW,EAAE,CAAC2C,YAAY,CAACp9F,CAAd,EAAiBo9F,YAAY,CAACn9F,CAA9B,CADR;cAELy6F,WAAW,EAAE,CAAC,CAAC0C,YAAY,CAACp9F,CAAd,EAAiBo9F,YAAY,CAACn9F,CAA9B,CAAD,CAFR;AAGL86F,cAAAA,MAAM,EAAEA,MAHH;AAILG,cAAAA,YAAY,EAAEuD,gBAAAA;AAJT,aAAA;AAD6B,WAAb,CAAzB,CAAA;AAQD,SAAA;;AAEDnoE,QAAAA,aAAA,CAAoBooE,IAApB,EAA0B;AACxB7zF,UAAAA,KAAK,EAAE;YACL4vF,WAAW,EAAE,CAAC2C,YAAY,CAACp9F,CAAd,EAAiBo9F,YAAY,CAACn9F,CAA9B,CADR;AAELy6F,YAAAA,WAAW,EAAEA,WAAAA;AAFR,WAAA;AADiB,SAA1B,EAKGzkE,WALH,CAAA,CAAA;AAMD,OAAA;AACF,KA5BD,MA4BO;AACL,MAAA,IAAItf,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,QAAA,MAAM,IAAI0Z,KAAJ,CAAU,8DAAV,CAAN,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAzD6G;;;AA4D9G,EAAA,IAAImuE,IAAI,IAAI,EAAEJ,SAAS,KAAK,UAAd,IAA4B,CAACxkF,IAAI,CAAC4+E,QAApC,CAAZ,EAA2D;AACzDgG,IAAAA,IAAI,CAACxmE,QAAL,CAAc+O,QAAA,CAAgB;AAC5BjiC,MAAAA,aAAa,EAAE,IADa;AAE5BlB,MAAAA,IAAI,EAAE,IAAA;KAFM,EAGXotB,SAHW,CAAd,CAAA,CAAA;AAIAie,IAAAA,wBAAwB,CAACuvD,IAAD,EAAOrnE,SAAP,EAAkB,WAAlB,CAAxB,CAAA;IACA80D,oBAAoB,CAACuS,IAAD,CAApB,CAAA;IACA9tE,KAAK,CAACO,GAAN,CAAUutE,IAAV,CAAA,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASG,cAAT,CAAwB/kF,IAAxB,EAA8B2Z,IAA9B,EAAoC7C,KAApC,EAA2CqF,WAA3C,EAAwD6oE,kBAAxD,EAA4E;AAC1E,EAAA,IAAIpC,WAAW,GAAGjpE,IAAI,CAAC+oE,IAAL,CAAUv+E,IAA5B,CAAA;;AAEA,EAAA,IAAI1Y,EAAE,GAAGw5F,aAAa,CAACrC,WAAD,EAAc5iF,IAAd,CAAtB;AAAA,MACI2yC,MAAM,GAAGlnD,EAAE,CAACknD,MADhB;AAAA,MAEImwC,YAAY,GAAGr3F,EAAE,CAACq3F,YAFtB,CAAA;;EAIA,IAAIvhE,QAAQ,GAAG5H,IAAI,CAACiI,gBAAL,CAAsB5hB,IAAI,CAAC4Z,SAA3B,CAAf,CAAA;;EAEA,IAAI,CAAC2H,QAAL,EAAe;AACb,IAAA,OAAA;AACD,GAAA;;EAED,IAAIshE,cAAc,GAAGlpE,IAAI,CAACiI,gBAAL,CAAsB+wB,MAAM,CAAC/4B,SAA7B,CAArB,CAAA;AACA,EAAA,IAAIsrE,UAAU,GAAGrC,cAAc,CAACuB,MAAhC,CAd0E;AAe1E;AACA;AACA;;EAEA,IAAIQ,IAAI,GAAGrjE,QAAQ,CAAC6iE,MAAT,KAAoBzxC,MAAM,CAACisC,QAAP,KAAoB,KAApB,IAA6BjsC,MAAM,CAACjmD,QAAP,CAAgBjE,MAAhB,KAA2B,CAAxD,GAA4Dy8F,UAA5D,GAAyEpqF,SAA7F,CAAX,CAAA;AACA,EAAA,IAAI0pF,SAAS,GAAGroE,WAAW,CAACyB,GAAZ,CAAgB,WAAhB,CAAhB,CAAA;AACA,EAAA,IAAIunE,SAAS,GAAGhpE,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAhB,CAAA;AACA,EAAA,IAAIqjE,MAAM,GAAG9kE,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;EACA,IAAI8mE,SAAS,GAAGvoE,WAAW,CAACyB,GAAZ,CAAgB,CAAC,WAAD,EAAc,WAAd,CAAhB,CAAhB,CAAA;;AAEA,EAAA,IAAIgnE,IAAJ,EAAU;IACR,IAAIJ,SAAS,KAAK,OAAlB,EAA2B;AACzBhoE,MAAAA,aAAA,CAAsBooE,IAAtB,EAA4B;AAC1B7zF,QAAAA,KAAK,EAAE8zF,YAAY,CAACM,SAAD,EAAYlE,MAAZ,EAAoByD,SAApB,EAA+B5B,YAA/B,EAA6CA,YAA7C,CADO;AAE1B/4F,QAAAA,KAAK,EAAE;AACLa,UAAAA,OAAO,EAAE,CAAA;AADJ,SAAA;OAFT,EAKGuxB,WALH,EAKgB;AACdrH,QAAAA,EAAE,EAAE,SAAY,EAAA,GAAA;UACdgC,KAAK,CAAC+K,MAAN,CAAa+iE,IAAb,CAAA,CAAA;SAFY;AAId9kE,QAAAA,SAAS,EAAEklE,kBAAAA;OATb,CAAA,CAAA;AAWD,KAZD,MAYO,IAAIR,SAAS,KAAK,UAAd,IAA4BroE,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAA,KAA8B,YAA9D,EAA4E;AACjFpB,MAAAA,aAAA,CAAsBooE,IAAtB,EAA4B;AAC1B7zF,QAAAA,KAAK,EAAE;UACL4vF,WAAW,EAAE,CAACmC,YAAY,CAAC58F,CAAd,EAAiB48F,YAAY,CAAC38F,CAA9B,CADR;UAELy6F,WAAW,EAAE,CAAC,CAACkC,YAAY,CAAC58F,CAAd,EAAiB48F,YAAY,CAAC38F,CAA9B,CAAD,CAAA;SAHW;AAK1B4D,QAAAA,KAAK,EAAE;AACLa,UAAAA,OAAO,EAAE,CAAA;AADJ,SAAA;OALT,EAQGuxB,WARH,EAQgB;AACdrH,QAAAA,EAAE,EAAE,SAAY,EAAA,GAAA;UACdgC,KAAK,CAAC+K,MAAN,CAAa+iE,IAAb,CAAA,CAAA;SAFY;AAId9kE,QAAAA,SAAS,EAAEklE,kBAAAA;OAZb,CAAA,CAAA;AAcD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAASC,aAAT,CAAuBrC,WAAvB,EAAoC5iF,IAApC,EAA0C;AACxC,EAAA,IAAI2yC,MAAM,GAAG3yC,IAAI,CAACJ,UAAL,KAAoBgjF,WAApB,GAAkC5iF,IAAlC,GAAyCA,IAAI,CAACJ,UAAL,IAAmBI,IAAzE,CAAA;AACA,EAAA,IAAI8iF,YAAJ,CAAA;;EAEA,OAAOA,YAAY,GAAGnwC,MAAM,CAACxsB,SAAP,EAAf,EAAmC28D,YAAY,IAAI,IAA1D,EAAgE;AAC9DnwC,IAAAA,MAAM,GAAGA,MAAM,CAAC/yC,UAAP,KAAsBgjF,WAAtB,GAAoCjwC,MAApC,GAA6CA,MAAM,CAAC/yC,UAAP,IAAqB+yC,MAA3E,CAAA;AACD,GAAA;;EAED,OAAO;AACLA,IAAAA,MAAM,EAAEA,MADH;AAELmwC,IAAAA,YAAY,EAAEA,YAAAA;GAFhB,CAAA;AAID,CAAA;;AAED,SAASnB,UAAT,CAAoBhoE,IAApB,EAA0BC,SAA1B,EAAqC2H,QAArC,EAA+CzK,KAA/C,EAAsDqF,WAAtD,EAAmE;EACjE,IAAInc,IAAI,GAAG2Z,IAAI,CAAC+oE,IAAL,CAAUC,kBAAV,CAA6B/oE,SAA7B,CAAX,CAAA;AACA,EAAA,IAAIgpE,WAAW,GAAGjpE,IAAI,CAAC+oE,IAAL,CAAUv+E,IAA5B,CAAA;EACA,IAAI2+E,YAAY,GAAGmC,aAAa,CAACrC,WAAD,EAAc5iF,IAAd,CAAb,CAAiC8iF,YAApD,CAHiE;;AAKjE,EAAA,IAAIkC,kBAAkB,GAAG;AACvBxtD,IAAAA,QAAQ,EAAErb,WAAW,CAACyB,GAAZ,CAAgB,yBAAhB,CADa;AAEvB9qB,IAAAA,MAAM,EAAEqpB,WAAW,CAACyB,GAAZ,CAAgB,uBAAhB,CAAA;GAFV,CAAA;AAIApB,EAAAA,aAAA,CAAsB+E,QAAtB,EAAgC;AAC9Br7B,IAAAA,CAAC,EAAE48F,YAAY,CAAC58F,CAAb,GAAiB,CADU;AAE9BC,IAAAA,CAAC,EAAE28F,YAAY,CAAC38F,CAAb,GAAiB,CAAA;GAFtB,EAGGg2B,WAHH,EAGgB;AACdrH,IAAAA,EAAE,EAAE,SAAY,EAAA,GAAA;MACdgC,KAAK,CAAC+K,MAAN,CAAaN,QAAb,CAAA,CAAA;AACA5H,MAAAA,IAAI,CAAC8H,gBAAL,CAAsB7H,SAAtB,EAAiC,IAAjC,CAAA,CAAA;KAHY;AAKdkG,IAAAA,SAAS,EAAEklE,kBAAAA;GARb,CAAA,CAAA;EAUAzjE,QAAQ,CAAC7B,OAAT,CAAiB,IAAjB,EAAuB/F,IAAI,CAACyC,SAA5B,EAAuC;AACrCyD,IAAAA,SAAS,EAAE,IAD0B;AAErCxtB,IAAAA,SAAS,EAAE2yF,kBAAAA;AAF0B,GAAvC,EAnBiE;;AAwBjEhlF,EAAAA,IAAI,CAACtT,QAAL,CAAc04F,OAAd,CAAsB,UAAUC,SAAV,EAAqB;IACzCN,cAAc,CAACM,SAAD,EAAY1rE,IAAZ,EAAkB7C,KAAlB,EAAyBqF,WAAzB,EAAsC6oE,kBAAtC,CAAd,CAAA;AACD,GAFD,EAxBiE;;EA4BjED,cAAc,CAAC/kF,IAAD,EAAO2Z,IAAP,EAAa7C,KAAb,EAAoBqF,WAApB,EAAiC6oE,kBAAjC,CAAd,CAAA;AACD,CAAA;;AAED,SAASH,YAAT,CAAsBM,SAAtB,EAAiClE,MAAjC,EAAyCyD,SAAzC,EAAoD5B,YAApD,EAAkEQ,YAAlE,EAAgF;AAC9E,EAAA,IAAI56D,IAAJ,CAAA;AACA,EAAA,IAAIC,IAAJ,CAAA;AACA,EAAA,IAAI28D,IAAJ,CAAA;AACA,EAAA,IAAIC,IAAJ,CAAA;AACA,EAAA,IAAI9oF,EAAJ,CAAA;AACA,EAAA,IAAIlW,EAAJ,CAAA;AACA,EAAA,IAAImW,EAAJ,CAAA;AACA,EAAA,IAAIlW,EAAJ,CAAA;;EAEA,IAAI2+F,SAAS,KAAK,QAAlB,EAA4B;IAC1B1oF,EAAE,GAAGqmF,YAAY,CAACI,IAAlB,CAAA;IACAxmF,EAAE,GAAGomF,YAAY,CAACM,IAAlB,CAAA;IACA78F,EAAE,GAAG+8F,YAAY,CAACJ,IAAlB,CAAA;IACA18F,EAAE,GAAG88F,YAAY,CAACF,IAAlB,CAAA;AACA,IAAA,IAAIoC,WAAW,GAAGhG,gBAAgB,CAAC/iF,EAAD,EAAKC,EAAL,CAAlC,CAAA;AACA,IAAA,IAAI+oF,WAAW,GAAGjG,gBAAgB,CAAC/iF,EAAD,EAAKC,EAAE,GAAG,CAAClW,EAAE,GAAGkW,EAAN,IAAYgoF,SAAtB,CAAlC,CAAA;AACA,IAAA,IAAIgB,WAAW,GAAGlG,gBAAgB,CAACj5F,EAAD,EAAKC,EAAE,GAAG,CAACkW,EAAE,GAAGlW,EAAN,IAAYk+F,SAAtB,CAAlC,CAAA;AACA,IAAA,IAAIiB,WAAW,GAAGnG,gBAAgB,CAACj5F,EAAD,EAAKC,EAAL,CAAlC,CAAA;IACA,OAAO;AACLiW,MAAAA,EAAE,EAAE+oF,WAAW,CAACt/F,CAAZ,IAAiB,CADhB;AAELwW,MAAAA,EAAE,EAAE8oF,WAAW,CAACr/F,CAAZ,IAAiB,CAFhB;AAGLI,MAAAA,EAAE,EAAEo/F,WAAW,CAACz/F,CAAZ,IAAiB,CAHhB;AAILM,MAAAA,EAAE,EAAEm/F,WAAW,CAACx/F,CAAZ,IAAiB,CAJhB;AAKLuiC,MAAAA,IAAI,EAAE+8D,WAAW,CAACv/F,CAAZ,IAAiB,CALlB;AAMLyiC,MAAAA,IAAI,EAAE88D,WAAW,CAACt/F,CAAZ,IAAiB,CANlB;AAOLm/F,MAAAA,IAAI,EAAEI,WAAW,CAACx/F,CAAZ,IAAiB,CAPlB;AAQLq/F,MAAAA,IAAI,EAAEG,WAAW,CAACv/F,CAAZ,IAAiB,CAAA;KARzB,CAAA;AAUD,GAnBD,MAmBO;IACLsW,EAAE,GAAGqmF,YAAY,CAAC58F,CAAlB,CAAA;IACAwW,EAAE,GAAGomF,YAAY,CAAC38F,CAAlB,CAAA;IACAI,EAAE,GAAG+8F,YAAY,CAACp9F,CAAlB,CAAA;IACAM,EAAE,GAAG88F,YAAY,CAACn9F,CAAlB,CAAA;;AAEA,IAAA,IAAI86F,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,IAAlC,EAAwC;MACtCv4D,IAAI,GAAGjsB,EAAE,GAAG,CAAClW,EAAE,GAAGkW,EAAN,IAAYioF,SAAxB,CAAA;AACA/7D,MAAAA,IAAI,GAAGjsB,EAAP,CAAA;MACA4oF,IAAI,GAAG/+F,EAAE,GAAG,CAACkW,EAAE,GAAGlW,EAAN,IAAYm+F,SAAxB,CAAA;AACAa,MAAAA,IAAI,GAAG/+F,EAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAIy6F,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,IAAlC,EAAwC;AACtCv4D,MAAAA,IAAI,GAAGjsB,EAAP,CAAA;MACAksB,IAAI,GAAGjsB,EAAE,GAAG,CAAClW,EAAE,GAAGkW,EAAN,IAAYgoF,SAAxB,CAAA;AACAY,MAAAA,IAAI,GAAG/+F,EAAP,CAAA;MACAg/F,IAAI,GAAG/+F,EAAE,GAAG,CAACkW,EAAE,GAAGlW,EAAN,IAAYk+F,SAAxB,CAAA;AACD,KAAA;AACF,GAAA;;EAED,OAAO;AACLjoF,IAAAA,EAAE,EAAEA,EADC;AAELC,IAAAA,EAAE,EAAEA,EAFC;AAGLnW,IAAAA,EAAE,EAAEA,EAHC;AAILC,IAAAA,EAAE,EAAEA,EAJC;AAKLkiC,IAAAA,IAAI,EAAEA,IALD;AAMLC,IAAAA,IAAI,EAAEA,IAND;AAOL28D,IAAAA,IAAI,EAAEA,IAPD;AAQLC,IAAAA,IAAI,EAAEA,IAAAA;GARR,CAAA;AAUD;;ACrsBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA,IAAI1yB,OAAK,GAAGC,SAAS,EAArB,CAAA;;AAEA,SAAS8yB,cAAT,CAAwB/uE,GAAxB,EAA6B;AAC3B,EAAA,IAAIgvE,QAAQ,GAAGhvE,GAAG,CAACgvE,QAAnB,CAAA;AACA,EAAA,IAAI1O,KAAK,GAAGtgE,GAAG,CAACsgE,KAAhB,CAAA;;EAEA,IAAI,CAACA,KAAL,EAAY;AACVA,IAAAA,KAAK,GAAG;AACN2O,MAAAA,IAAI,EAAED,QAAAA;KADR,CAAA;IAGAhvE,GAAG,CAACkvE,SAAJ,GAAgB;AACdD,MAAAA,IAAI,EAAE,MAAA;KADR,CAAA;AAGD,GAAA;;AAEDjvE,EAAAA,GAAG,CAACsgE,KAAJ,GAAYtgE,GAAG,CAACgvE,QAAJ,GAAe,IAA3B,CAAA;EACAG,OAAO,CAACH,QAAD,EAAW1O,KAAX,EAAkBtgE,GAAlB,CAAP,CAd2B;;AAgB3B1kB,EAAAA,MAAI,CAACglF,KAAD,EAAQ,UAAUx9D,IAAV,EAAgB;AAC1BxnB,IAAAA,MAAI,CAAC0zF,QAAQ,CAACI,oBAAV,EAAgC,UAAUC,UAAV,EAAsB;MACxDvsE,IAAI,CAACwsE,UAAL,CAAgBD,UAAhB,EAA4BrwC,OAAK,CAACuwC,iBAAD,EAAoBvvE,GAApB,CAAjC,CAAA,CAAA;AACD,KAFG,CAAJ,CAAA;GADE,CAAJ,CAhB2B;;AAsB3BgvE,EAAAA,QAAQ,CAACM,UAAT,CAAoB,cAApB,EAAoCtwC,OAAK,CAACwwC,qBAAD,EAAwBxvE,GAAxB,CAAzC,CAAA,CAtB2B;AAuB3B;;AAEA1kB,EAAAA,MAAI,CAAC0zF,QAAQ,CAACS,iBAAV,EAA6B,UAAUJ,UAAV,EAAsB;IACrDL,QAAQ,CAACM,UAAT,CAAoBD,UAApB,EAAgCrwC,OAAK,CAAC0wC,eAAD,EAAkB1vE,GAAlB,CAArC,CAAA,CAAA;GADE,CAAJ,CAzB2B;;EA6B3BzY,MAAM,CAAC+4E,KAAK,CAAC0O,QAAQ,CAACruB,QAAV,CAAL,KAA6BquB,QAA9B,CAAN,CAAA;AACD,CAAA;;AAED,SAASO,iBAAT,CAA2BvvE,GAA3B,EAAgCshC,GAAhC,EAAqC;AACnC,EAAA,IAAIquC,UAAU,CAAC,IAAD,CAAd,EAAsB;AACpB;AACA,IAAA,IAAIrP,KAAK,GAAGnmF,MAAM,CAAC,EAAD,EAAK6hE,OAAK,CAAC,IAAD,CAAL,CAAYskB,KAAjB,CAAlB,CAAA;AACAA,IAAAA,KAAK,CAAC,IAAA,CAAK3f,QAAN,CAAL,GAAuBrf,GAAvB,CAAA;AACA6tC,IAAAA,OAAO,CAAC7tC,GAAD,EAAMg/B,KAAN,EAAatgE,GAAb,CAAP,CAAA;AACD,GALD,MAKO;AACL;AACA4vE,IAAAA,UAAU,CAACtuC,GAAD,EAAM,IAAA,CAAKqf,QAAX,EAAqB3E,OAAK,CAAC,IAAD,CAAL,CAAYgzB,QAAjC,EAA2ChvE,GAA3C,CAAV,CAAA;AACD,GAAA;;AAED,EAAA,OAAOshC,GAAP,CAAA;AACD,CAAA;;AAED,SAASouC,eAAT,CAAyB1vE,GAAzB,EAA8BshC,GAA9B,EAAmC;EACjCthC,GAAG,CAAC6vE,MAAJ,IAAc7vE,GAAG,CAAC6vE,MAAJ,CAAWhlE,MAAX,EAAd,CAAA;AACA,EAAA,OAAOy2B,GAAP,CAAA;AACD,CAAA;;AAED,SAASkuC,qBAAT,CAA+BxvE,GAA/B,EAAoCshC,GAApC,EAAyC;AACvC;AACA;AACA;AACA;AACAhmD,EAAAA,MAAI,CAAC0gE,OAAK,CAAC1a,GAAD,CAAL,CAAWg/B,KAAZ,EAAmB,UAAUx9D,IAAV,EAAgB69C,QAAhB,EAA0B;AAC/C79C,IAAAA,IAAI,KAAKw+B,GAAT,IAAgBsuC,UAAU,CAAC9sE,IAAI,CAACqyD,YAAL,EAAD,EAAsBxU,QAAtB,EAAgCrf,GAAhC,EAAqCthC,GAArC,CAA1B,CAAA;AACD,GAFG,CAAJ,CAAA;AAGA,EAAA,OAAOshC,GAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASwuC,aAAT,CAAuBnvB,QAAvB,EAAiC;AAC/B,EAAA,IAAIquB,QAAQ,GAAGhzB,OAAK,CAAC,IAAD,CAAL,CAAYgzB,QAA3B,CAAA;AACA,EAAA,OAAOruB,QAAQ,IAAI,IAAZ,IAAoBquB,QAAQ,IAAI,IAAhC,GAAuCA,QAAvC,GAAkDhzB,OAAK,CAACgzB,QAAD,CAAL,CAAgB1O,KAAhB,CAAsB3f,QAAtB,CAAzD,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASovB,gBAAT,GAA4B;AAC1B,EAAA,IAAIf,QAAQ,GAAGhzB,OAAK,CAAC,IAAD,CAAL,CAAYgzB,QAA3B,CAAA;AACA,EAAA,OAAOA,QAAQ,IAAI,IAAZ,GAAmB,CAAC;AACzBlsE,IAAAA,IAAI,EAAEksE,QAAAA;AADmB,GAAD,CAAnB,GAEFx7F,GAAG,CAACuD,IAAI,CAACilE,OAAK,CAACgzB,QAAD,CAAL,CAAgB1O,KAAjB,CAAL,EAA8B,UAAU3+E,IAAV,EAAgB;IACpD,OAAO;AACLA,MAAAA,IAAI,EAAEA,IADD;MAELmhB,IAAI,EAAEk5C,OAAK,CAACgzB,QAAD,CAAL,CAAgB1O,KAAhB,CAAsB3+E,IAAtB,CAAA;KAFR,CAAA;AAID,GALO,CAFR,CAAA;AAQD,CAAA;;AAED,SAASguF,UAAT,CAAoB7sE,IAApB,EAA0B;AACxB,EAAA,OAAOk5C,OAAK,CAACl5C,IAAD,CAAL,CAAYksE,QAAZ,KAAyBlsE,IAAhC,CAAA;AACD,CAAA;;AAED,SAASqsE,OAAT,CAAiBH,QAAjB,EAA2B1O,KAA3B,EAAkCtgE,GAAlC,EAAuC;AACrCg8C,EAAAA,OAAK,CAACgzB,QAAD,CAAL,CAAgB1O,KAAhB,GAAwB,EAAxB,CAAA;AACAhlF,EAAAA,MAAI,CAACglF,KAAD,EAAQ,UAAUx9D,IAAV,EAAgB69C,QAAhB,EAA0B;IACpCivB,UAAU,CAAC9sE,IAAD,EAAO69C,QAAP,EAAiBquB,QAAjB,EAA2BhvE,GAA3B,CAAV,CAAA;AACD,GAFG,CAAJ,CAAA;AAGD,CAAA;;AAED,SAAS4vE,UAAT,CAAoB9sE,IAApB,EAA0B69C,QAA1B,EAAoCquB,QAApC,EAA8ChvE,GAA9C,EAAmD;EACjDg8C,OAAK,CAACgzB,QAAD,CAAL,CAAgB1O,KAAhB,CAAsB3f,QAAtB,IAAkC79C,IAAlC,CAAA;AACAk5C,EAAAA,OAAK,CAACl5C,IAAD,CAAL,CAAYksE,QAAZ,GAAuBA,QAAvB,CAAA;EACAlsE,IAAI,CAAC69C,QAAL,GAAgBA,QAAhB,CAAA;;EAEA,IAAI3gD,GAAG,CAAC6vE,MAAR,EAAgB;IACd/sE,IAAI,CAAC9C,GAAG,CAACgwE,UAAL,CAAJ,GAAuBhwE,GAAG,CAAC6vE,MAA3B,CAAA;IACA7vE,GAAG,CAAC6vE,MAAJ,CAAW7vE,GAAG,CAACkvE,SAAJ,CAAcvuB,QAAd,CAAX,CAAA,GAAsC79C,IAAtC,CAAA;AACD,GARgD;;;EAWjDA,IAAI,CAACgtE,aAAL,GAAqBA,aAArB,CAAA;EACAhtE,IAAI,CAACitE,gBAAL,GAAwBA,gBAAxB,CAAA;AACD;;ACpKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmCA,IAAIE,QAAQ;AACZ;AACA,YAAY;AACV,EAAA,SAASA,QAAT,CAAkB36F,IAAlB,EAAwB46F,QAAxB,EAAkC;IAChC,IAAKC,CAAAA,KAAL,GAAa,CAAb,CAAA;IACA,IAAK73F,CAAAA,MAAL,GAAc,CAAd,CAAA;AACA;AACJ;AACA;AACA;AACA;AACA;AACA;;IAEI,IAAKyqB,CAAAA,SAAL,GAAiB,CAAC,CAAlB,CAAA;IACA,IAAKltB,CAAAA,QAAL,GAAgB,EAAhB,CAAA;IACA,IAAKu6F,CAAAA,YAAL,GAAoB,EAApB,CAAA;IACA,IAAKrI,CAAAA,QAAL,GAAgB,KAAhB,CAAA;AACA,IAAA,IAAA,CAAKzyF,IAAL,GAAYA,IAAI,IAAI,EAApB,CAAA;IACA,IAAK46F,CAAAA,QAAL,GAAgBA,QAAhB,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGED,EAAAA,QAAQ,CAACrhG,SAAT,CAAmByhG,SAAnB,GAA+B,YAAY;IACzC,OAAO,IAAA,CAAKttE,SAAL,GAAiB,CAAxB,CAAA;GADF,CAAA;;EAIAktE,QAAQ,CAACrhG,SAAT,CAAmB0hG,QAAnB,GAA8B,UAAUC,OAAV,EAAmBtyE,EAAnB,EAAuBC,OAAvB,EAAgC;AAC5D,IAAA,IAAIoY,UAAA,CAAkBi6D,OAAlB,CAAJ,EAAgC;AAC9BryE,MAAAA,OAAO,GAAGD,EAAV,CAAA;AACAA,MAAAA,EAAE,GAAGsyE,OAAL,CAAA;AACAA,MAAAA,OAAO,GAAG,IAAV,CAAA;AACD,KAAA;;IAEDA,OAAO,GAAGA,OAAO,IAAI,EAArB,CAAA;;AAEA,IAAA,IAAIj6D,QAAA,CAAgBi6D,OAAhB,CAAJ,EAA8B;AAC5BA,MAAAA,OAAO,GAAG;AACRC,QAAAA,KAAK,EAAED,OAAAA;OADT,CAAA;AAGD,KAAA;;AAED,IAAA,IAAIC,KAAK,GAAGD,OAAO,CAACC,KAAR,IAAiB,UAA7B,CAAA;IACA,IAAI36F,QAAQ,GAAG,IAAK06F,CAAAA,OAAO,CAACxsE,IAAR,IAAgB,UAArB,CAAf,CAAA;AACA,IAAA,IAAI0sE,gBAAJ,CAAA;AACAD,IAAAA,KAAK,KAAK,UAAV,KAAyBC,gBAAgB,GAAGxyE,EAAE,CAAChL,IAAH,CAAQiL,OAAR,EAAiB,IAAjB,CAA5C,CAAA,CAAA;;AAEA,IAAA,KAAK,IAAI5rB,CAAC,GAAG,CAAb,EAAgB,CAACm+F,gBAAD,IAAqBn+F,CAAC,GAAGuD,QAAQ,CAACjE,MAAlD,EAA0DU,CAAC,EAA3D,EAA+D;MAC7DuD,QAAQ,CAACvD,CAAD,CAAR,CAAYg+F,QAAZ,CAAqBC,OAArB,EAA8BtyE,EAA9B,EAAkCC,OAAlC,CAAA,CAAA;AACD,KAAA;;IAEDsyE,KAAK,KAAK,WAAV,IAAyBvyE,EAAE,CAAChL,IAAH,CAAQiL,OAAR,EAAiB,IAAjB,CAAzB,CAAA;GAxBF,CAAA;AA0BA;AACF;AACA;;;AAGE+xE,EAAAA,QAAQ,CAACrhG,SAAT,CAAmB8hG,oBAAnB,GAA0C,UAAUP,KAAV,EAAiB;IACzD,IAAI73F,MAAM,GAAG,CAAb,CAAA;IACA,IAAK63F,CAAAA,KAAL,GAAaA,KAAb,CAAA;;AAEA,IAAA,KAAK,IAAI79F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAKuD,CAAAA,QAAL,CAAcjE,MAAlC,EAA0CU,CAAC,EAA3C,EAA+C;AAC7C,MAAA,IAAIkE,KAAK,GAAG,IAAA,CAAKX,QAAL,CAAcvD,CAAd,CAAZ,CAAA;AACAkE,MAAAA,KAAK,CAACk6F,oBAAN,CAA2BP,KAAK,GAAG,CAAnC,CAAA,CAAA;;AAEA,MAAA,IAAI35F,KAAK,CAAC8B,MAAN,GAAeA,MAAnB,EAA2B;QACzBA,MAAM,GAAG9B,KAAK,CAAC8B,MAAf,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAA,CAAKA,MAAL,GAAcA,MAAM,GAAG,CAAvB,CAAA;GAbF,CAAA;;AAgBA23F,EAAAA,QAAQ,CAACrhG,SAAT,CAAmB+hG,WAAnB,GAAiC,UAAUluF,EAAV,EAAc;AAC7C,IAAA,IAAI,IAAKmuF,CAAAA,KAAL,EAAiBnuF,KAAAA,EAArB,EAAyB;AACvB,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;;IAED,KAAK,IAAInQ,CAAC,GAAG,CAAR,EAAWuD,QAAQ,GAAG,IAAKA,CAAAA,QAA3B,EAAqC8F,GAAG,GAAG9F,QAAQ,CAACjE,MAAzD,EAAiEU,CAAC,GAAGqJ,GAArE,EAA0ErJ,CAAC,EAA3E,EAA+E;MAC7E,IAAIgvD,GAAG,GAAGzrD,QAAQ,CAACvD,CAAD,CAAR,CAAYq+F,WAAZ,CAAwBluF,EAAxB,CAAV,CAAA;;AAEA,MAAA,IAAI6+C,GAAJ,EAAS;AACP,QAAA,OAAOA,GAAP,CAAA;AACD,OAAA;AACF,KAAA;GAXH,CAAA;;AAcA2uC,EAAAA,QAAQ,CAACrhG,SAAT,CAAmBiiG,QAAnB,GAA8B,UAAU1nF,IAAV,EAAgB;IAC5C,IAAIA,IAAI,KAAK,IAAb,EAAmB;AACjB,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;;IAED,KAAK,IAAI7W,CAAC,GAAG,CAAR,EAAWuD,QAAQ,GAAG,IAAKA,CAAAA,QAA3B,EAAqC8F,GAAG,GAAG9F,QAAQ,CAACjE,MAAzD,EAAiEU,CAAC,GAAGqJ,GAArE,EAA0ErJ,CAAC,EAA3E,EAA+E;MAC7E,IAAIgvD,GAAG,GAAGzrD,QAAQ,CAACvD,CAAD,CAAR,CAAYu+F,QAAZ,CAAqB1nF,IAArB,CAAV,CAAA;;AAEA,MAAA,IAAIm4C,GAAJ,EAAS;AACP,QAAA,OAAOA,GAAP,CAAA;AACD,OAAA;AACF,KAAA;GAXH,CAAA;AAaA;AACF;AACA;AACA;;;AAGE2uC,EAAAA,QAAQ,CAACrhG,SAAT,CAAmBkiG,YAAnB,GAAkC,UAAUC,WAAV,EAAuB;IACvD,IAAIC,SAAS,GAAG,EAAhB,CAAA;AACA,IAAA,IAAI7nF,IAAI,GAAG4nF,WAAW,GAAG,IAAH,GAAU,KAAKhoF,UAArC,CAAA;;AAEA,IAAA,OAAOI,IAAP,EAAa;MACX6nF,SAAS,CAACr+F,IAAV,CAAewW,IAAf,CAAA,CAAA;MACAA,IAAI,GAAGA,IAAI,CAACJ,UAAZ,CAAA;AACD,KAAA;;AAEDioF,IAAAA,SAAS,CAACj4D,OAAV,EAAA,CAAA;AACA,IAAA,OAAOi4D,SAAP,CAAA;GAVF,CAAA;;AAaAf,EAAAA,QAAQ,CAACrhG,SAAT,CAAmBw+F,mBAAnB,GAAyC,YAAY;IACnD,IAAI7rD,OAAO,GAAG,EAAd,CAAA;IACA,IAAI0vD,QAAQ,GAAG,IAAf,CAAA;;AAEA,IAAA,OAAOA,QAAP,EAAiB;AACf1vD,MAAAA,OAAO,CAAC5uC,IAAR,CAAas+F,QAAQ,CAACluE,SAAtB,CAAA,CAAA;MACAkuE,QAAQ,GAAGA,QAAQ,CAACloF,UAApB,CAAA;AACD,KAAA;;AAEDw4B,IAAAA,OAAO,CAACxI,OAAR,EAAA,CAAA;AACA,IAAA,OAAOwI,OAAP,CAAA;GAVF,CAAA;;AAaA0uD,EAAAA,QAAQ,CAACrhG,SAAT,CAAmBy+F,oBAAnB,GAA0C,YAAY;IACpD,IAAI9rD,OAAO,GAAG,EAAd,CAAA;AACA,IAAA,IAAA,CAAK+uD,QAAL,CAAc,UAAU9B,SAAV,EAAqB;AACjCjtD,MAAAA,OAAO,CAAC5uC,IAAR,CAAa67F,SAAS,CAACzrE,SAAvB,CAAA,CAAA;KADF,CAAA,CAAA;AAGA,IAAA,OAAOwe,OAAP,CAAA;GALF,CAAA;;AAQA0uD,EAAAA,QAAQ,CAACrhG,SAAT,CAAmBsiG,QAAnB,GAA8B,UAAU54D,SAAV,EAAqB;AACjD,IAAA,IAAIxV,IAAI,GAAG,IAAKotE,CAAAA,QAAL,CAAcptE,IAAzB,CAAA;AACA,IAAA,OAAOA,IAAI,CAAC4f,QAAL,EAAgB3b,CAAAA,GAAhB,CAAoBjE,IAAI,CAACS,iBAAL,CAAuB+U,SAAS,IAAI,OAApC,CAApB,EAAkE,IAAA,CAAKvV,SAAvE,CAAP,CAAA;GAFF,CAAA;;EAKAktE,QAAQ,CAACrhG,SAAT,CAAmBu0C,SAAnB,GAA+B,UAAUqH,MAAV,EAAkBoa,KAAlB,EAAyB;AACtD,IAAA,IAAA,CAAK7hC,SAAL,IAAkB,CAAlB,IAAuB,IAAA,CAAKmtE,QAAL,CAAcptE,IAAd,CAAmBogB,aAAnB,CAAiC,IAAKngB,CAAAA,SAAtC,EAAiDynB,MAAjD,EAAyDoa,KAAzD,CAAvB,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEqrC,EAAAA,QAAQ,CAACrhG,SAAT,CAAmB0gC,SAAnB,GAA+B,YAAY;IACzC,OAAO,IAAA,CAAK4gE,QAAL,CAAcptE,IAAd,CAAmByH,aAAnB,CAAiC,IAAKxH,CAAAA,SAAtC,CAAP,CAAA;AACD,GAFD,CA3JU;AA8JV;AACA;;;AAGAktE,EAAAA,QAAQ,CAACrhG,SAAT,CAAmBi4B,QAAnB,GAA8B,UAAU5sB,IAAV,EAAgB;AAC5C,IAAA,IAAI,IAAK8oB,CAAAA,SAAL,GAAiB,CAArB,EAAwB;AACtB,MAAA,OAAA;AACD,KAAA;;IAED,IAAImtE,QAAQ,GAAG,IAAA,CAAKA,QAApB,CAAA;IACA,IAAIxpE,SAAS,GAAGwpE,QAAQ,CAACptE,IAAT,CAAc6D,YAAd,CAA2B,IAAK5D,CAAAA,SAAhC,CAAhB,CAAA;AACA,IAAA,OAAO2D,SAAS,CAACG,QAAV,CAAmB5sB,IAAnB,CAAP,CAAA;AACD,GARD,CAlKU;;;AA6KVg2F,EAAAA,QAAQ,CAACrhG,SAAT,CAAmBuiG,aAAnB,GAAmC,YAAY;IAC7C,OAAO,CAAC,IAAKjB,CAAAA,QAAL,CAAckB,WAAd,IAA6B,EAA9B,EAAkC,IAAKjB,CAAAA,KAAvC,CAAP,CAAA;GADF,CAAA;;EAIAF,QAAQ,CAACrhG,SAAT,CAAmB21C,SAAnB,GAA+B,UAAU5uC,GAAV,EAAem4B,KAAf,EAAsB;AACnD,IAAA,IAAA,CAAK/K,SAAL,IAAkB,CAAlB,IAAuB,IAAA,CAAKmtE,QAAL,CAAcptE,IAAd,CAAmB6hD,aAAnB,CAAiC,IAAK5hD,CAAAA,SAAtC,EAAiDptB,GAAjD,EAAsDm4B,KAAtD,CAAvB,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;;;AAGEmiE,EAAAA,QAAQ,CAACrhG,SAAT,CAAmBgyB,SAAnB,GAA+B,UAAUjrB,GAAV,EAAe;IAC5C,OAAO,IAAA,CAAKu6F,QAAL,CAAcptE,IAAd,CAAmBuC,aAAnB,CAAiC,IAAKtC,CAAAA,SAAtC,EAAiDptB,GAAjD,CAAP,CAAA;GADF,CAAA;;AAIAs6F,EAAAA,QAAQ,CAACrhG,SAAT,CAAmBohC,WAAnB,GAAiC,YAAY;IAC3C,OAAO,IAAA,CAAKkgE,QAAL,CAAcptE,IAAd,CAAmBkN,WAAnB,CAA+B,IAAKjN,CAAAA,SAApC,CAAP,CAAA;GADF,CAAA;;AAIAktE,EAAAA,QAAQ,CAACrhG,SAAT,CAAmBgiG,KAAnB,GAA2B,YAAY;IACrC,OAAO,IAAA,CAAKV,QAAL,CAAcptE,IAAd,CAAmB8tE,KAAnB,CAAyB,IAAK7tE,CAAAA,SAA9B,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEktE,EAAAA,QAAQ,CAACrhG,SAAT,CAAmByiG,aAAnB,GAAmC,YAAY;IAC7C,IAAI,IAAA,CAAKtoF,UAAT,EAAqB;AACnB,MAAA,IAAIlT,QAAQ,GAAG,IAAKkT,CAAAA,UAAL,CAAgBlT,QAA/B,CAAA;;AAEA,MAAA,KAAK,IAAIvD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuD,QAAQ,CAACjE,MAA7B,EAAqC,EAAEU,CAAvC,EAA0C;AACxC,QAAA,IAAIuD,QAAQ,CAACvD,CAAD,CAAR,KAAgB,IAApB,EAA0B;AACxB,UAAA,OAAOA,CAAP,CAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,OAAO,CAAC,CAAR,CAAA;AACD,KAAA;;AAED,IAAA,OAAO,CAAC,CAAR,CAAA;GAbF,CAAA;AAeA;AACF;AACA;AACA;AACA;AACA;;;AAGE29F,EAAAA,QAAQ,CAACrhG,SAAT,CAAmB0iG,YAAnB,GAAkC,UAAUnoF,IAAV,EAAgB;AAChD,IAAA,IAAImgB,MAAM,GAAGngB,IAAI,CAACJ,UAAlB,CAAA;;AAEA,IAAA,OAAOugB,MAAP,EAAe;MACb,IAAIA,MAAM,KAAK,IAAf,EAAqB;AACnB,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;;MAEDA,MAAM,GAAGA,MAAM,CAACvgB,UAAhB,CAAA;AACD,KAAA;;AAED,IAAA,OAAO,KAAP,CAAA;GAXF,CAAA;AAaA;AACF;AACA;AACA;AACA;AACA;;;AAGEknF,EAAAA,QAAQ,CAACrhG,SAAT,CAAmB2iG,cAAnB,GAAoC,UAAUpoF,IAAV,EAAgB;IAClD,OAAOA,IAAI,KAAK,IAAT,IAAiBA,IAAI,CAACmoF,YAAL,CAAkB,IAAlB,CAAxB,CAAA;GADF,CAAA;;AAIA,EAAA,OAAOrB,QAAP,CAAA;AACD,CA3PD,EAFA,CAAA;AAgQA,CAAA;;AAEA,IAAIuB,IAAI;AACR;AACA,YAAY;EACV,SAASA,IAAT,CAAcjsE,SAAd,EAAyB;IACvB,IAAK5jB,CAAAA,IAAL,GAAY,MAAZ,CAAA;IACA,IAAK8vF,CAAAA,MAAL,GAAc,EAAd,CAAA;IACA,IAAKlsE,CAAAA,SAAL,GAAiBA,SAAjB,CAAA;AACD,GAAA;;EAEDisE,IAAI,CAAC5iG,SAAL,CAAe0hG,QAAf,GAA0B,UAAUC,OAAV,EAAmBtyE,EAAnB,EAAuBC,OAAvB,EAAgC;IACxD,IAAK5Q,CAAAA,IAAL,CAAUgjF,QAAV,CAAmBC,OAAnB,EAA4BtyE,EAA5B,EAAgCC,OAAhC,CAAA,CAAA;GADF,CAAA;;AAIAszE,EAAAA,IAAI,CAAC5iG,SAAL,CAAek9F,kBAAf,GAAoC,UAAU/oE,SAAV,EAAqB;IACvD,IAAI2uE,QAAQ,GAAG,IAAK5uE,CAAAA,IAAL,CAAUkN,WAAV,CAAsBjN,SAAtB,CAAf,CAAA;AACA,IAAA,OAAO,IAAK0uE,CAAAA,MAAL,CAAYC,QAAZ,CAAP,CAAA;GAFF,CAAA;;AAKAF,EAAAA,IAAI,CAAC5iG,SAAL,CAAe+hG,WAAf,GAA6B,UAAUr7F,IAAV,EAAgB;AAC3C,IAAA,OAAO,KAAKgY,IAAL,CAAUqjF,WAAV,CAAsBr7F,IAAtB,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;;;AAGEk8F,EAAAA,IAAI,CAAC5iG,SAAL,CAAei8B,MAAf,GAAwB,YAAY;IAClC,IAAI/H,IAAI,GAAG,IAAA,CAAKA,IAAhB,CAAA;IACA,IAAIglE,KAAK,GAAG,IAAA,CAAK2J,MAAjB,CAAA;;AAEA,IAAA,KAAK,IAAIn/F,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGmsF,KAAK,CAACl2F,MAA5B,EAAoCU,CAAC,GAAGqJ,GAAxC,EAA6CrJ,CAAC,EAA9C,EAAkD;AAChDw1F,MAAAA,KAAK,CAACx1F,CAAD,CAAL,CAASywB,SAAT,GAAqB,CAAC,CAAtB,CAAA;AACD,KAAA;;AAED,IAAA,KAAK,IAAIzwB,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGmnB,IAAI,CAAC0T,KAAL,EAAtB,EAAoClkC,CAAC,GAAGqJ,GAAxC,EAA6CrJ,CAAC,EAA9C,EAAkD;MAChDw1F,KAAK,CAAChlE,IAAI,CAACkN,WAAL,CAAiB19B,CAAjB,CAAD,CAAL,CAA2BywB,SAA3B,GAAuCzwB,CAAvC,CAAA;AACD,KAAA;GAVH,CAAA;AAYA;AACF;AACA;;;AAGEk/F,EAAAA,IAAI,CAAC5iG,SAAL,CAAe+iG,YAAf,GAA8B,YAAY;IACxC,IAAK7uE,CAAAA,IAAL,CAAU8uE,gBAAV,EAAA,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAGEJ,IAAI,CAACK,UAAL,GAAkB,UAAUC,QAAV,EAAoBvsE,SAApB,EAA+BwsE,UAA/B,EAA2C;AAC3D,IAAA,IAAIlG,IAAI,GAAG,IAAI2F,IAAJ,CAASjsE,SAAT,CAAX,CAAA;IACA,IAAIysE,QAAQ,GAAG,EAAf,CAAA;IACA,IAAIC,MAAM,GAAG,CAAb,CAAA;IACAC,cAAc,CAACJ,QAAD,CAAd,CAAA;;AAEA,IAAA,SAASI,cAAT,CAAwBC,QAAxB,EAAkCppF,UAAlC,EAA8C;AAC5C,MAAA,IAAI+kB,KAAK,GAAGqkE,QAAQ,CAACrkE,KAArB,CAAA;AACAmkE,MAAAA,MAAM,GAAG7jG,IAAI,CAAC0iB,GAAL,CAASmhF,MAAT,EAAiB37D,SAAA,CAAexI,KAAf,CAAwBA,GAAAA,KAAK,CAACl8B,MAA9B,GAAuC,CAAxD,CAAT,CAAA;MACAogG,QAAQ,CAACr/F,IAAT,CAAcw/F,QAAd,CAAA,CAAA;AACA,MAAA,IAAIhpF,IAAI,GAAG,IAAI8mF,QAAJ,CAAamC,mBAAmB,CAACD,QAAQ,CAAC78F,IAAV,EAAgB,EAAhB,CAAhC,EAAqDu2F,IAArD,CAAX,CAAA;AACA9iF,MAAAA,UAAU,GAAGspF,QAAQ,CAAClpF,IAAD,EAAOJ,UAAP,CAAX,GAAgC8iF,IAAI,CAACv+E,IAAL,GAAYnE,IAAtD,CAAA;;AAEA0iF,MAAAA,IAAI,CAAC4F,MAAL,CAAY9+F,IAAZ,CAAiBwW,IAAjB,CAAA,CAAA;;AAEA,MAAA,IAAItT,QAAQ,GAAGs8F,QAAQ,CAACt8F,QAAxB,CAAA;;AAEA,MAAA,IAAIA,QAAJ,EAAc;AACZ,QAAA,KAAK,IAAIvD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuD,QAAQ,CAACjE,MAA7B,EAAqCU,CAAC,EAAtC,EAA0C;AACxC4/F,UAAAA,cAAc,CAACr8F,QAAQ,CAACvD,CAAD,CAAT,EAAc6W,IAAd,CAAd,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;AAED0iF,IAAAA,IAAI,CAACv+E,IAAL,CAAUojF,oBAAV,CAA+B,CAA/B,CAAA,CAAA;AACA,IAAA,IAAIxjE,UAAU,GAAG8uB,uBAAuB,CAACg2C,QAAD,EAAW;MACjDr2C,eAAe,EAAE,CAAC,OAAD,CADgC;AAEjD22C,MAAAA,eAAe,EAAEL,MAAAA;KAFqB,CAAvB,CAGd/kE,UAHH,CAAA;IAIA,IAAIne,IAAI,GAAG,IAAIktC,UAAJ,CAAe/uB,UAAf,EAA2B3H,SAA3B,CAAX,CAAA;IACAxW,IAAI,CAACmtC,QAAL,CAAc81C,QAAd,CAAA,CAAA;AACAD,IAAAA,UAAU,IAAIA,UAAU,CAAChjF,IAAD,CAAxB,CAAA;AACAggF,IAAAA,cAAc,CAAC;AACbC,MAAAA,QAAQ,EAAEjgF,IADG;AAEb8gF,MAAAA,MAAM,EAAEhE,IAFK;AAGbmE,MAAAA,UAAU,EAAE,MAAA;AAHC,KAAD,CAAd,CAAA;AAKAnE,IAAAA,IAAI,CAAChhE,MAAL,EAAA,CAAA;AACA,IAAA,OAAOghE,IAAP,CAAA;GAtCF,CAAA;;AAyCA,EAAA,OAAO2F,IAAP,CAAA;AACD,CAxGD,EAFA,CAAA;AA2GA;AACA;AACA;AACA;;;AAGA,SAASa,QAAT,CAAkB77F,KAAlB,EAAyB2S,IAAzB,EAA+B;AAC7B,EAAA,IAAItT,QAAQ,GAAGsT,IAAI,CAACtT,QAApB,CAAA;;AAEA,EAAA,IAAIW,KAAK,CAACuS,UAAN,KAAqBI,IAAzB,EAA+B;AAC7B,IAAA,OAAA;AACD,GAAA;;EAEDtT,QAAQ,CAAClD,IAAT,CAAc6D,KAAd,CAAA,CAAA;EACAA,KAAK,CAACuS,UAAN,GAAmBI,IAAnB,CAAA;AACD;;AChbD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BO,SAASopF,kBAAT,CAA4B7yD,OAA5B,EAAqC8yD,iBAArC,EAAwDltE,WAAxD,EAAqE;AAC1E,EAAA,IAAIoa,OAAO,IAAIpJ,OAAA,CAAek8D,iBAAf,EAAkC9yD,OAAO,CAAC/9B,IAA1C,CAAA,IAAmD,CAAlE,EAAqE;IACnE,IAAI2L,IAAI,GAAGgY,WAAW,CAAC3E,OAAZ,EAAsBkrE,CAAAA,IAAtB,CAA2Bv+E,IAAtC,CAAA;AACA,IAAA,IAAImlF,UAAU,GAAG/yD,OAAO,CAAC+yD,UAAzB,CAAA;;AAEA,IAAA,IAAIn8D,QAAA,CAAgBm8D,UAAhB,CAAJ,EAAiC;AAC/BA,MAAAA,UAAU,GAAGnlF,IAAI,CAACqjF,WAAL,CAAiB8B,UAAjB,CAAb,CAAA;AACD,KAAA;;IAED,IAAIA,UAAU,IAAInlF,IAAI,CAACujF,QAAL,CAAc4B,UAAd,CAAlB,EAA6C;MAC3C,OAAO;AACLtpF,QAAAA,IAAI,EAAEspF,UAAAA;OADR,CAAA;AAGD,KAAA;;AAED,IAAA,IAAIC,YAAY,GAAGhzD,OAAO,CAACgzD,YAA3B,CAAA;;AAEA,IAAA,IAAIA,YAAY,IAAI,IAAhB,KAAyBD,UAAU,GAAGnlF,IAAI,CAACqjF,WAAL,CAAiB+B,YAAjB,CAAtC,CAAJ,EAA2E;MACzE,OAAO;AACLvpF,QAAAA,IAAI,EAAEspF,UAAAA;OADR,CAAA;AAGD,KAAA;AACF,GAAA;AACF;;AAEM,SAASE,aAAT,CAAuBxpF,IAAvB,EAA6B;EAClC,IAAIlP,IAAI,GAAG,EAAX,CAAA;;AAEA,EAAA,OAAOkP,IAAP,EAAa;IACXA,IAAI,GAAGA,IAAI,CAACJ,UAAZ,CAAA;AACAI,IAAAA,IAAI,IAAIlP,IAAI,CAACtH,IAAL,CAAUwW,IAAV,CAAR,CAAA;AACD,GAAA;;EAED,OAAOlP,IAAI,CAAC8+B,OAAL,EAAP,CAAA;AACD,CAAA;AACM,SAAS65D,aAAT,CAAuBC,QAAvB,EAAiC1pF,IAAjC,EAAuC;AAC5C,EAAA,IAAI2pF,QAAQ,GAAGH,aAAa,CAACE,QAAD,CAA5B,CAAA;EACA,OAAOv8D,OAAA,CAAew8D,QAAf,EAAyB3pF,IAAzB,KAAkC,CAAzC,CAAA;AACD;;AAEM,SAAS4pF,gBAAT,CAA0B5pF,IAA1B,EAAgCmc,WAAhC,EAA6C;EAClD,IAAI0tE,YAAY,GAAG,EAAnB,CAAA;;AAEA,EAAA,OAAO7pF,IAAP,EAAa;AACX,IAAA,IAAI8pF,aAAa,GAAG9pF,IAAI,CAAC4Z,SAAzB,CAAA;IACAiwE,YAAY,CAACrgG,IAAb,CAAkB;MAChB2C,IAAI,EAAE6T,IAAI,CAAC7T,IADK;AAEhBytB,MAAAA,SAAS,EAAEkwE,aAFK;AAGhBnlE,MAAAA,KAAK,EAAExI,WAAW,CAACkc,WAAZ,CAAwByxD,aAAxB,CAAA;KAHT,CAAA,CAAA;IAKA9pF,IAAI,GAAGA,IAAI,CAACJ,UAAZ,CAAA;AACD,GAAA;;AAEDiqF,EAAAA,YAAY,CAACj6D,OAAb,EAAA,CAAA;AACA,EAAA,OAAOi6D,YAAP,CAAA;AACD;;AClGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgCA,IAAIE,eAAe;AACnB;AACA,UAAUpgF,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACmgF,eAAD,EAAkBpgF,MAAlB,CAAT,CAAA;;AAEA,EAAA,SAASogF,eAAT,GAA2B;AACzB,IAAA,IAAIlgF,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACuM,eAAN,GAAwB,IAAxB,CAHyB;;IAKzBvM,KAAK,CAACmgF,iBAAN,GAA0B,IAA1B,CAAA;AACA,IAAA,OAAOngF,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEkgF,EAAAA,eAAe,CAACtkG,SAAhB,CAA0B4wB,cAA1B,GAA2C,UAAUC,MAAV,EAAkB;AAC3D;AACA,IAAA,IAAInS,IAAI,GAAG;MACThY,IAAI,EAAEmqB,MAAM,CAACnqB,IADJ;MAETO,QAAQ,EAAE4pB,MAAM,CAACqD,IAAAA;KAFnB,CAAA;AAIA,IAAA,IAAIswE,MAAM,GAAG3zE,MAAM,CAAC2zE,MAAP,IAAiB,EAA9B,CAAA;IACA,IAAIC,WAAW,GAAG,IAAI/7B,KAAJ,CAAU87B,MAAV,EAAkB,IAAlB,EAAwB,IAAKz2D,CAAAA,OAA7B,CAAlB,CAAA;IACA,IAAIkvD,IAAI,GAAG2F,IAAI,CAACK,UAAL,CAAgBvkF,IAAhB,EAAsB,IAAtB,EAA4BykF,UAA5B,CAAX,CAAA;;IAEA,SAASA,UAAT,CAAoBuB,QAApB,EAA8B;MAC5BA,QAAQ,CAAChE,UAAT,CAAoB,cAApB,EAAoC,UAAUzkD,KAAV,EAAiBvsB,GAAjB,EAAsB;AACxD,QAAA,IAAInV,IAAI,GAAG0iF,IAAI,CAACC,kBAAL,CAAwBxtE,GAAxB,CAAX,CAAA;;AAEA,QAAA,IAAI,EAAEnV,IAAI,IAAIA,IAAI,CAACtT,QAAL,CAAcjE,MAAtB,IAAgCuX,IAAI,CAAC4+E,QAAvC,CAAJ,EAAsD;UACpDl9C,KAAK,CAACk1B,WAAN,GAAoBszB,WAApB,CAAA;AACD,SAAA;;AAED,QAAA,OAAOxoD,KAAP,CAAA;OAPF,CAAA,CAAA;AASD,KAAA;;IAED,IAAI0oD,SAAS,GAAG,CAAhB,CAAA;AACA1H,IAAAA,IAAI,CAACyE,QAAL,CAAc,UAAd,EAA0B,UAAUnnF,IAAV,EAAgB;AACxC,MAAA,IAAIA,IAAI,CAACgnF,KAAL,GAAaoD,SAAjB,EAA4B;QAC1BA,SAAS,GAAGpqF,IAAI,CAACgnF,KAAjB,CAAA;AACD,OAAA;KAHH,CAAA,CAAA;AAKA,IAAA,IAAIqD,iBAAiB,GAAG/zE,MAAM,CAAC+zE,iBAA/B,CAAA;AACA,IAAA,IAAIC,eAAe,GAAGD,iBAAiB,IAAI/zE,MAAM,CAACi0E,gBAAP,IAA2B,CAAhD,GAAoDj0E,MAAM,CAACi0E,gBAA3D,GAA8EH,SAApG,CAAA;IACA1H,IAAI,CAACv+E,IAAL,CAAUgjF,QAAV,CAAmB,UAAnB,EAA+B,UAAUnnF,IAAV,EAAgB;AAC7C,MAAA,IAAIhI,IAAI,GAAGgI,IAAI,CAAC+mF,QAAL,CAAcptE,IAAd,CAAmB6wE,cAAnB,CAAkCxqF,IAAI,CAAC4Z,SAAvC,CAAX,CAD6C;;MAG7C5Z,IAAI,CAAC4+E,QAAL,GAAgB5mF,IAAI,IAAIA,IAAI,CAACyyF,SAAL,IAAkB,IAA1B,GAAiC,CAACzyF,IAAI,CAACyyF,SAAvC,GAAmDzqF,IAAI,CAACgnF,KAAL,IAAcsD,eAAjF,CAAA;KAHF,CAAA,CAAA;IAKA,OAAO5H,IAAI,CAAC/oE,IAAZ,CAAA;GAnCF,CAAA;AAqCA;AACF;AACA;AACA;;;AAGEowE,EAAAA,eAAe,CAACtkG,SAAhB,CAA0Bg/F,SAA1B,GAAsC,YAAY;AAChD,IAAA,IAAIxD,MAAM,GAAG,IAAA,CAAKrjE,GAAL,CAAS,QAAT,CAAb,CAAA;;IAEA,IAAIqjE,MAAM,KAAK,YAAf,EAA6B;AAC3BA,MAAAA,MAAM,GAAG,IAAT,CAAA;AACD,KAFD,MAEO,IAAIA,MAAM,KAAK,UAAf,EAA2B;AAChCA,MAAAA,MAAM,GAAG,IAAT,CAAA;AACD,KAAA;;AAED,IAAA,OAAOA,MAAP,CAAA;GATF,CAAA;;AAYA8I,EAAAA,eAAe,CAACtkG,SAAhB,CAA0BixF,OAA1B,GAAoC,UAAUvW,IAAV,EAAgB;AAClD,IAAA,IAAA,CAAK7pD,MAAL,CAAY6pD,IAAZ,GAAmBA,IAAnB,CAAA;GADF,CAAA;;AAIA4pB,EAAAA,eAAe,CAACtkG,SAAhB,CAA0BolF,SAA1B,GAAsC,UAAU/gC,MAAV,EAAkB;AACtD,IAAA,IAAA,CAAKxzB,MAAL,CAAYwzB,MAAZ,GAAqBA,MAArB,CAAA;GADF,CAAA;;EAIAigD,eAAe,CAACtkG,SAAhB,CAA0B6xE,aAA1B,GAA0C,UAAU19C,SAAV,EAAqB29C,cAArB,EAAqCC,QAArC,EAA+C;AACvF,IAAA,IAAIkrB,IAAI,GAAG,IAAKlrE,CAAAA,OAAL,GAAekrE,IAA1B,CAAA;IACA,IAAIe,QAAQ,GAAGf,IAAI,CAACv+E,IAAL,CAAUzX,QAAV,CAAmB,CAAnB,CAAf,CAAA;AACA,IAAA,IAAIsT,IAAI,GAAG0iF,IAAI,CAACC,kBAAL,CAAwB/oE,SAAxB,CAAX,CAAA;AACA,IAAA,IAAI+K,KAAK,GAAG3kB,IAAI,CAAC+nF,QAAL,EAAZ,CAAA;AACA,IAAA,IAAI57F,IAAI,GAAG6T,IAAI,CAAC7T,IAAhB,CAAA;;AAEA,IAAA,OAAO6T,IAAI,IAAIA,IAAI,KAAKyjF,QAAxB,EAAkC;MAChCt3F,IAAI,GAAG6T,IAAI,CAACJ,UAAL,CAAgBzT,IAAhB,GAAuB,GAAvB,GAA6BA,IAApC,CAAA;MACA6T,IAAI,GAAGA,IAAI,CAACJ,UAAZ,CAAA;AACD,KAAA;;IAED,OAAOi4D,mBAAmB,CAAC,WAAD,EAAc;AACtC1rE,MAAAA,IAAI,EAAEA,IADgC;AAEtCw4B,MAAAA,KAAK,EAAEA,KAF+B;AAGtC+lE,MAAAA,OAAO,EAAEphG,KAAK,CAACq7B,KAAD,CAAL,IAAgBA,KAAK,IAAI,IAAA;AAHI,KAAd,CAA1B,CAAA;AAKD,GAjBD,CA/EgB;;;AAmGhBolE,EAAAA,eAAe,CAACtkG,SAAhB,CAA0BwuD,aAA1B,GAA0C,UAAUr6B,SAAV,EAAqB;AAC7D,IAAA,IAAI+f,MAAM,GAAGhwB,MAAM,CAAClkB,SAAP,CAAiBwuD,aAAjB,CAA+B99B,KAA/B,CAAqC,IAArC,EAA2C/sB,SAA3C,CAAb,CAAA;;IAEA,IAAI4W,IAAI,GAAG,IAAA,CAAKwX,OAAL,EAAA,CAAekrE,IAAf,CAAoBC,kBAApB,CAAuC/oE,SAAvC,CAAX,CAAA;IACA+f,MAAM,CAACgxD,aAAP,GAAuBf,gBAAgB,CAAC5pF,IAAD,EAAO,IAAP,CAAvC,CAAA;AACA25B,IAAAA,MAAM,CAAC8wD,SAAP,GAAmB,CAACzqF,IAAI,CAAC4+E,QAAzB,CAAA;AACA,IAAA,OAAOjlD,MAAP,CAAA;GANF,CAAA;;AASAowD,EAAAA,eAAe,CAACvxF,IAAhB,GAAuB,aAAvB,CA5GgB;AA6GhB;;EAEAuxF,eAAe,CAACzxC,UAAhB,GAA6B,KAA7B,CAAA;EACAyxC,eAAe,CAAC3xE,aAAhB,GAAgC;AAC9B;AACAzG,IAAAA,CAAC,EAAE,CAF2B;AAG9B6E,IAAAA,gBAAgB,EAAE,MAHY;AAI9B;AACAhN,IAAAA,IAAI,EAAE,KALwB;AAM9BC,IAAAA,GAAG,EAAE,KANyB;AAO9BkrC,IAAAA,KAAK,EAAE,KAPuB;AAQ9BC,IAAAA,MAAM,EAAE,KARsB;AAS9B;AACAvT,IAAAA,MAAM,EAAE,YAVsB;AAW9B;AACAmjD,IAAAA,SAAS,EAAE,OAZmB;AAa9BG,IAAAA,gBAAgB,EAAE,KAbY;AAc9B;AACA9V,IAAAA,IAAI,EAAE,KAfwB;AAgB9B;AACA0T,IAAAA,cAAc,EAAE,GAjBc;AAkB9B;AACAz4C,IAAAA,MAAM,EAAE,IAnBsB;AAoB9Bq2B,IAAAA,IAAI,EAAE,CApBwB;AAqB9B8gB,IAAAA,MAAM,EAAE,IArBsB;AAsB9BppE,IAAAA,MAAM,EAAE,aAtBsB;AAuB9BiB,IAAAA,UAAU,EAAE,CAvBkB;AAwB9BuxE,IAAAA,iBAAiB,EAAE,IAxBW;AAyB9BE,IAAAA,gBAAgB,EAAE,CAzBY;AA0B9BnzE,IAAAA,SAAS,EAAE;AACTrsB,MAAAA,KAAK,EAAE,MADE;AAETmE,MAAAA,KAAK,EAAE,GAFE;AAGT07F,MAAAA,SAAS,EAAE,GAAA;KA7BiB;AA+B9B9yE,IAAAA,SAAS,EAAE;AACT/sB,MAAAA,KAAK,EAAE,gBADE;AAET;AACAsgB,MAAAA,WAAW,EAAE,GAAA;KAlCe;AAoC9BiN,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,IAAA;KArCsB;AAuC9BW,IAAAA,eAAe,EAAE,QAvCa;AAwC9Bm8B,IAAAA,iBAAiB,EAAE,GAxCW;AAyC9BG,IAAAA,uBAAuB,EAAE,GAAA;GAzC3B,CAAA;AA2CA,EAAA,OAAOs0C,eAAP,CAAA;AACD,CA5JD,CA4JEtwE,WA5JF,CAFA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASoxE,SAAT,CAAmB1mF,IAAnB,EAAyB2mF,QAAzB,EAAmC/L,UAAnC,EAA+C;AAC7C,EAAA,IAAIJ,KAAK,GAAG,CAACx6E,IAAD,CAAZ,CAAA;EACA,IAAIwjB,IAAI,GAAG,EAAX,CAAA;AACA,EAAA,IAAI3nB,IAAJ,CAAA;;AAEA,EAAA,OAAOA,IAAI,GAAG2+E,KAAK,CAACr6B,GAAN,EAAd,EAA2B;AACzB;IACA38B,IAAI,CAACn+B,IAAL,CAAUwW,IAAV,CAAA,CAAA;;IAEA,IAAIA,IAAI,CAAC4+E,QAAT,EAAmB;AACjB,MAAA,IAAIlyF,QAAQ,GAAGsT,IAAI,CAACtT,QAApB,CAAA;;MAEA,IAAIA,QAAQ,CAACjE,MAAb,EAAqB;AACnB,QAAA,KAAK,IAAIU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuD,QAAQ,CAACjE,MAA7B,EAAqCU,CAAC,EAAtC,EAA0C;AACxCw1F,UAAAA,KAAK,CAACn1F,IAAN,CAAWkD,QAAQ,CAACvD,CAAD,CAAnB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;AACF,GAAA;;AAED,EAAA,OAAO6W,IAAI,GAAG2nB,IAAI,CAAC28B,GAAL,EAAd,EAA0B;AACxB;AACAwmC,IAAAA,QAAQ,CAAC9qF,IAAD,EAAO++E,UAAP,CAAR,CAAA;AACD,GAAA;AACF,CAAA;AACD;AACA;AACA;;;AAGA,SAASgM,UAAT,CAAoB5mF,IAApB,EAA0B2mF,QAA1B,EAAoC;AAClC,EAAA,IAAInM,KAAK,GAAG,CAACx6E,IAAD,CAAZ,CAAA;AACA,EAAA,IAAInE,IAAJ,CAAA;;AAEA,EAAA,OAAOA,IAAI,GAAG2+E,KAAK,CAACr6B,GAAN,EAAd,EAA2B;AACzB;IACAwmC,QAAQ,CAAC9qF,IAAD,CAAR,CAAA;;IAEA,IAAIA,IAAI,CAAC4+E,QAAT,EAAmB;AACjB,MAAA,IAAIlyF,QAAQ,GAAGsT,IAAI,CAACtT,QAApB,CAAA;;MAEA,IAAIA,QAAQ,CAACjE,MAAb,EAAqB;AACnB,QAAA,KAAK,IAAIU,CAAC,GAAGuD,QAAQ,CAACjE,MAAT,GAAkB,CAA/B,EAAkCU,CAAC,IAAI,CAAvC,EAA0CA,CAAC,EAA3C,EAA+C;AAC7Cw1F,UAAAA,KAAK,CAACn1F,IAAN,CAAWkD,QAAQ,CAACvD,CAAD,CAAnB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;AACF,GAAA;AACF;;AC9FD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2Be,SAAS6hG,UAAT,CAAoBx3D,OAApB,EAA6BxxB,GAA7B,EAAkC;AAC/CwxB,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,MAAzB,EAAiC,UAAU/tB,WAAV,EAAuB;AACtD8uE,IAAAA,YAAY,CAAC9uE,WAAD,EAAcna,GAAd,CAAZ,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;;AAED,SAASipF,YAAT,CAAsB9uE,WAAtB,EAAmCna,GAAnC,EAAwC;AACtC,EAAA,IAAIw/E,UAAU,GAAG93C,aAAW,CAACvtB,WAAD,EAAcna,GAAd,CAA5B,CAAA;EACAma,WAAW,CAACqlE,UAAZ,GAAyBA,UAAzB,CAAA;AACA,EAAA,IAAIngD,MAAM,GAAGllB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;EACA,IAAI1uB,KAAK,GAAG,CAAZ,CAAA;EACA,IAAIC,MAAM,GAAG,CAAb,CAAA;EACA,IAAI4vF,YAAU,GAAG,IAAjB,CAAA;;EAEA,IAAI19C,MAAM,KAAK,QAAf,EAAyB;AACvBnyC,IAAAA,KAAK,GAAG,CAAA,GAAIjK,IAAI,CAACI,EAAjB,CAAA;AACA8J,IAAAA,MAAM,GAAGlK,IAAI,CAAC8iC,GAAL,CAASy5D,UAAU,CAACryF,MAApB,EAA4BqyF,UAAU,CAACtyF,KAAvC,IAAgD,CAAzD,CAAA;AACA6vF,IAAAA,YAAU,GAAGmM,UAAG,CAAC,UAAU1K,KAAV,EAAiBC,KAAjB,EAAwB;AACvC,MAAA,OAAO,CAACD,KAAK,CAAC5gF,UAAN,KAAqB6gF,KAAK,CAAC7gF,UAA3B,GAAwC,CAAxC,GAA4C,CAA7C,IAAkD4gF,KAAK,CAACwG,KAA/D,CAAA;AACD,KAFe,CAAhB,CAAA;AAGD,GAND,MAMO;IACL93F,KAAK,GAAGsyF,UAAU,CAACtyF,KAAnB,CAAA;IACAC,MAAM,GAAGqyF,UAAU,CAACryF,MAApB,CAAA;IACA4vF,YAAU,GAAGmM,UAAG,EAAhB,CAAA;AACD,GAAA;;EAED,IAAItI,WAAW,GAAGzmE,WAAW,CAAC3E,OAAZ,EAAsBkrE,CAAAA,IAAtB,CAA2Bv+E,IAA7C,CAAA;AACA,EAAA,IAAIs/E,QAAQ,GAAGb,WAAW,CAACl2F,QAAZ,CAAqB,CAArB,CAAf,CAAA;;AAEA,EAAA,IAAI+2F,QAAJ,EAAc;IACZvwD,IAAI,CAAC0vD,WAAD,CAAJ,CAAA;AACAiI,IAAAA,SAAS,CAACpH,QAAD,EAAW3E,SAAX,EAAsBC,YAAtB,CAAT,CAAA;IACA6D,WAAW,CAACzE,QAAZ,CAAqBI,QAArB,GAAgC,CAACkF,QAAQ,CAACtF,QAAT,CAAkBG,MAAnD,CAAA;AACAyM,IAAAA,UAAU,CAACtH,QAAD,EAAWpE,UAAX,CAAV,CAAA;IACA,IAAI8L,MAAM,GAAG1H,QAAb,CAAA;IACA,IAAI2H,OAAO,GAAG3H,QAAd,CAAA;IACA,IAAI4H,QAAQ,GAAG5H,QAAf,CAAA;AACAsH,IAAAA,UAAU,CAACtH,QAAD,EAAW,UAAUzjF,IAAV,EAAgB;AACnC,MAAA,IAAI9Z,CAAC,GAAG8Z,IAAI,CAACmmB,SAAL,GAAiBjgC,CAAzB,CAAA;;AAEA,MAAA,IAAIA,CAAC,GAAGilG,MAAM,CAAChlE,SAAP,EAAA,CAAmBjgC,CAA3B,EAA8B;AAC5BilG,QAAAA,MAAM,GAAGnrF,IAAT,CAAA;AACD,OAAA;;AAED,MAAA,IAAI9Z,CAAC,GAAGklG,OAAO,CAACjlE,SAAR,EAAA,CAAoBjgC,CAA5B,EAA+B;AAC7BklG,QAAAA,OAAO,GAAGprF,IAAV,CAAA;AACD,OAAA;;AAED,MAAA,IAAIA,IAAI,CAACgnF,KAAL,GAAaqE,QAAQ,CAACrE,KAA1B,EAAiC;AAC/BqE,QAAAA,QAAQ,GAAGrrF,IAAX,CAAA;AACD,OAAA;AACF,KAdS,CAAV,CAAA;AAeA,IAAA,IAAIsrF,KAAK,GAAGH,MAAM,KAAKC,OAAX,GAAqB,CAArB,GAAyBrM,YAAU,CAACoM,MAAD,EAASC,OAAT,CAAV,GAA8B,CAAnE,CAAA;IACA,IAAIG,IAAI,GAAGD,KAAK,GAAGH,MAAM,CAAChlE,SAAP,GAAmBjgC,CAAtC,CAAA;IACA,IAAIslG,IAAI,GAAG,CAAX,CAAA;IACA,IAAIC,IAAI,GAAG,CAAX,CAAA;IACA,IAAIC,OAAO,GAAG,CAAd,CAAA;IACA,IAAIC,OAAO,GAAG,CAAd,CAAA;;IAEA,IAAItqD,MAAM,KAAK,QAAf,EAAyB;AACvBmqD,MAAAA,IAAI,GAAGt8F,KAAK,IAAIk8F,OAAO,CAACjlE,SAAR,EAAA,CAAoBjgC,CAApB,GAAwBolG,KAAxB,GAAgCC,IAApC,CAAZ,CADuB;;MAGvBE,IAAI,GAAGt8F,MAAM,IAAIk8F,QAAQ,CAACrE,KAAT,GAAiB,CAAjB,IAAsB,CAA1B,CAAb,CAAA;AACA+D,MAAAA,UAAU,CAACtH,QAAD,EAAW,UAAUzjF,IAAV,EAAgB;QACnC0rF,OAAO,GAAG,CAAC1rF,IAAI,CAACmmB,SAAL,GAAiBjgC,CAAjB,GAAqBqlG,IAAtB,IAA8BC,IAAxC,CAAA;QACAG,OAAO,GAAG,CAAC3rF,IAAI,CAACgnF,KAAL,GAAa,CAAd,IAAmByE,IAA7B,CAAA;AACA,QAAA,IAAIG,SAAS,GAAGpM,gBAAgB,CAACkM,OAAD,EAAUC,OAAV,CAAhC,CAAA;QACA3rF,IAAI,CAACg6B,SAAL,CAAe;UACb9zC,CAAC,EAAE0lG,SAAS,CAAC1lG,CADA;UAEbC,CAAC,EAAEylG,SAAS,CAACzlG,CAFA;AAGb+8F,UAAAA,IAAI,EAAEwI,OAHO;AAIbtI,UAAAA,IAAI,EAAEuI,OAAAA;AAJO,SAAf,EAKG,IALH,CAAA,CAAA;AAMD,OAVS,CAAV,CAAA;AAWD,KAfD,MAeO;AACL,MAAA,IAAIE,QAAQ,GAAG1vE,WAAW,CAACsoE,SAAZ,EAAf,CAAA;;AAEA,MAAA,IAAIoH,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAK,IAAtC,EAA4C;AAC1CJ,QAAAA,IAAI,GAAGt8F,MAAM,IAAIi8F,OAAO,CAACjlE,SAAR,EAAoBjgC,CAAAA,CAApB,GAAwBolG,KAAxB,GAAgCC,IAApC,CAAb,CAAA;QACAC,IAAI,GAAGt8F,KAAK,IAAIm8F,QAAQ,CAACrE,KAAT,GAAiB,CAAjB,IAAsB,CAA1B,CAAZ,CAAA;AACA+D,QAAAA,UAAU,CAACtH,QAAD,EAAW,UAAUzjF,IAAV,EAAgB;UACnC2rF,OAAO,GAAG,CAAC3rF,IAAI,CAACmmB,SAAL,GAAiBjgC,CAAjB,GAAqBqlG,IAAtB,IAA8BE,IAAxC,CAAA;UACAC,OAAO,GAAGG,QAAQ,KAAK,IAAb,GAAoB,CAAC7rF,IAAI,CAACgnF,KAAL,GAAa,CAAd,IAAmBwE,IAAvC,GAA8Ct8F,KAAK,GAAG,CAAC8Q,IAAI,CAACgnF,KAAL,GAAa,CAAd,IAAmBwE,IAAnF,CAAA;UACAxrF,IAAI,CAACg6B,SAAL,CAAe;AACb9zC,YAAAA,CAAC,EAAEwlG,OADU;AAEbvlG,YAAAA,CAAC,EAAEwlG,OAAAA;AAFU,WAAf,EAGG,IAHH,CAAA,CAAA;AAID,SAPS,CAAV,CAAA;OAHF,MAWO,IAAIE,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAK,IAAtC,EAA4C;AACjDL,QAAAA,IAAI,GAAGt8F,KAAK,IAAIk8F,OAAO,CAACjlE,SAAR,EAAoBjgC,CAAAA,CAApB,GAAwBolG,KAAxB,GAAgCC,IAApC,CAAZ,CAAA;QACAE,IAAI,GAAGt8F,MAAM,IAAIk8F,QAAQ,CAACrE,KAAT,GAAiB,CAAjB,IAAsB,CAA1B,CAAb,CAAA;AACA+D,QAAAA,UAAU,CAACtH,QAAD,EAAW,UAAUzjF,IAAV,EAAgB;UACnC0rF,OAAO,GAAG,CAAC1rF,IAAI,CAACmmB,SAAL,GAAiBjgC,CAAjB,GAAqBqlG,IAAtB,IAA8BC,IAAxC,CAAA;UACAG,OAAO,GAAGE,QAAQ,KAAK,IAAb,GAAoB,CAAC7rF,IAAI,CAACgnF,KAAL,GAAa,CAAd,IAAmByE,IAAvC,GAA8Ct8F,MAAM,GAAG,CAAC6Q,IAAI,CAACgnF,KAAL,GAAa,CAAd,IAAmByE,IAApF,CAAA;UACAzrF,IAAI,CAACg6B,SAAL,CAAe;AACb9zC,YAAAA,CAAC,EAAEwlG,OADU;AAEbvlG,YAAAA,CAAC,EAAEwlG,OAAAA;AAFU,WAAf,EAGG,IAHH,CAAA,CAAA;AAID,SAPS,CAAV,CAAA;AAQD,OAAA;AACF,KAAA;AACF,GAAA;AACF;;AClJD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0Be,SAASG,UAAT,CAAoBt4D,OAApB,EAA6B;AAC1CA,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,MAAzB,EAAiC,UAAU/tB,WAAV,EAAuB;AACtD,IAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAIkrE,IAAI,GAAG/oE,IAAI,CAAC+oE,IAAhB,CAAA;AACAA,IAAAA,IAAI,CAACyE,QAAL,CAAc,UAAUnnF,IAAV,EAAgB;AAC5B,MAAA,IAAI0hC,KAAK,GAAG1hC,IAAI,CAAC0d,QAAL,EAAZ,CAD4B;;MAG5B,IAAI3zB,KAAK,GAAG23C,KAAK,CAAChkB,QAAN,CAAe,WAAf,CAA4BC,CAAAA,YAA5B,EAAZ,CAAA;MACA,IAAIouE,WAAW,GAAGpyE,IAAI,CAACqyE,sBAAL,CAA4BhsF,IAAI,CAAC4Z,SAAjC,EAA4C,OAA5C,CAAlB,CAAA;AACA5oB,MAAAA,MAAM,CAAC+6F,WAAD,EAAchiG,KAAd,CAAN,CAAA;KALF,CAAA,CAAA;GAHF,CAAA,CAAA;AAWD;;ACvDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BO,SAASkiG,iBAAT,CAA2BnjF,SAA3B,EAAsC;EAC3CA,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,uBADiB;AAEvBgwC,IAAAA,KAAK,EAAE,uBAFgB;AAGvB9mB,IAAAA,MAAM,EAAE,QAAA;AAHe,GAAzB,EAIG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4B;IAC7BA,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAE,QADU;AAEpB8kC,MAAAA,OAAO,EAAE,MAFW;AAGpB7kC,MAAAA,KAAK,EAAE/S,OAAAA;KAHT,EAIG,UAAUpa,WAAV,EAAuB;AACxB,MAAA,IAAIvC,SAAS,GAAG2c,OAAO,CAAC3c,SAAxB,CAAA;AACA,MAAA,IAAI8oE,IAAI,GAAGvmE,WAAW,CAAC3E,OAAZ,GAAsBkrE,IAAjC,CAAA;AACA,MAAA,IAAI1iF,IAAI,GAAG0iF,IAAI,CAACC,kBAAL,CAAwB/oE,SAAxB,CAAX,CAAA;AACA5Z,MAAAA,IAAI,CAAC4+E,QAAL,GAAgB,CAAC5+E,IAAI,CAAC4+E,QAAtB,CAAA;KARF,CAAA,CAAA;GALF,CAAA,CAAA;EAgBA91E,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,UADiB;AAEvBgwC,IAAAA,KAAK,EAAE,UAFgB;AAGvB;AACA;AACA;AACA;AACA9mB,IAAAA,MAAM,EAAE,MAAA;AAPe,GAAzB,EAQG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4BxxB,GAA5B,EAAiC;IAClCwxB,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAE,QADU;AAEpB8kC,MAAAA,OAAO,EAAE,MAFW;AAGpB7kC,MAAAA,KAAK,EAAE/S,OAAAA;KAHT,EAIG,UAAUpa,WAAV,EAAuB;AACxB,MAAA,IAAI5F,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;MACA,IAAI2hC,GAAG,GAAG4kC,mBAAmB,CAACxmE,QAAD,EAAWggB,OAAX,EAAoBz7B,SAApB,EAA+BkH,GAA/B,CAA7B,CAAA;MACAma,WAAW,CAAC0uD,SAAZ,IAAyB1uD,WAAW,CAAC0uD,SAAZ,CAAsB1yB,GAAG,CAACrO,MAA1B,CAAzB,CAAA;MACA3tB,WAAW,CAACu6D,OAAZ,IAAuBv6D,WAAW,CAACu6D,OAAZ,CAAoBv+B,GAAG,CAACgoB,IAAxB,CAAvB,CAAA;KARF,CAAA,CAAA;GATF,CAAA,CAAA;AAoBD;;AChFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BO,SAASt3D,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4BwmD,QAA5B,CAAA,CAAA;EACAx4E,SAAS,CAACiyB,mBAAV,CAA8BgvD,eAA9B,CAAA,CAAA;EACAjhF,SAAS,CAACmyB,cAAV,CAAyB+vD,UAAzB,CAAA,CAAA;EACAliF,SAAS,CAACqyB,cAAV,CAAyB2wD,UAAzB,CAAA,CAAA;EACAG,iBAAiB,CAACnjF,SAAD,CAAjB,CAAA;AACD;;ACrDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA,IAAIojF,WAAW,GAAG,CAAC,mBAAD,EAAsB,eAAtB,EAAuC,aAAvC,CAAlB,CAAA;AACO,SAASC,oBAAT,CAA8BrjF,SAA9B,EAAyC;AAC9C,EAAA,KAAK,IAAI3f,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+iG,WAAW,CAACzjG,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;IAC3C2f,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,MAAAA,IAAI,EAAE0zF,WAAW,CAAC/iG,CAAD,CADM;AAEvBu4B,MAAAA,MAAM,EAAE,YAAA;AAFe,KAAzB,EAGG06C,IAHH,CAAA,CAAA;AAID,GAAA;;EAEDtzD,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,mBADiB;AAEvBkpB,IAAAA,MAAM,EAAE,YAAA;AAFe,GAAzB,EAGG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4B;IAC7BA,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAE,QADU;AAEpB8kC,MAAAA,OAAO,EAAE,SAFW;AAGpB7kC,MAAAA,KAAK,EAAE/S,OAAAA;AAHa,KAAtB,EAIG61D,gBAJH,CAAA,CAAA;;AAMA,IAAA,SAASA,gBAAT,CAA0B1qD,KAA1B,EAAiCgD,KAAjC,EAAwC;AACtC,MAAA,IAAI2nD,KAAK,GAAG,CAAC,mBAAD,EAAsB,mBAAtB,CAAZ,CAAA;MACA,IAAIC,UAAU,GAAGC,kBAAA,CAA0Bh2D,OAA1B,EAAmC81D,KAAnC,EAA0C3qD,KAA1C,CAAjB,CAAA;;AAEA,MAAA,IAAI4qD,UAAJ,EAAgB;AACd,QAAA,IAAIE,cAAc,GAAG9qD,KAAK,CAAC+qD,WAAN,EAArB,CAAA;;AAEA,QAAA,IAAID,cAAJ,EAAoB;AAClBj2D,UAAAA,OAAO,CAAC2xB,SAAR,GAAoBqkC,aAAA,CAAqBC,cAArB,EAAqCF,UAAU,CAACtsF,IAAhD,CAAwD,GAAA,QAAxD,GAAmE,WAAvF,CAAA;AACD,SAAA;;AAED0hC,QAAAA,KAAK,CAACgrD,aAAN,CAAoBJ,UAAU,CAACtsF,IAA/B,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GAvBH,CAAA,CAAA;AAyBD;;AC9ED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0Be,SAAS2sF,sBAAT,CAAgCxwE,WAAhC,EAA6C;AAC1D,EAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,EAAA,IAAIkrE,IAAI,GAAG/oE,IAAI,CAAC+oE,IAAhB,CAAA;EACA,IAAIkK,iBAAiB,GAAG,EAAxB,CAAA;AACAlK,EAAAA,IAAI,CAACyE,QAAL,CAAc,UAAUnnF,IAAV,EAAgB;AAC5B;IACA,IAAI0nB,OAAO,GAAG1nB,IAAd,CAAA;;AAEA,IAAA,OAAO0nB,OAAO,IAAIA,OAAO,CAACs/D,KAAR,GAAgB,CAAlC,EAAqC;MACnCt/D,OAAO,GAAGA,OAAO,CAAC9nB,UAAlB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI0e,KAAK,GAAGuuE,mBAAmB,CAAC1wE,WAAW,CAACqX,OAAb,EAAsB9L,OAAO,CAACv7B,IAAR,IAAgBu7B,OAAO,CAAC9N,SAAR,GAAoB,EAA1D,EAA8DgzE,iBAA9D,CAA/B,CAAA;AACA5sF,IAAAA,IAAI,CAACo7B,SAAL,CAAe,OAAf,EAAwB9c,KAAxB,CAAA,CAAA;GATF,CAAA,CAAA;AAWD;;AC1DD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmCA,IAAIwuE,kBAAkB;AACtB;AACA,UAAUnjF,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACkjF,kBAAD,EAAqBnjF,MAArB,CAAT,CAAA;;AAEA,EAAA,SAASmjF,kBAAT,GAA8B;AAC5B,IAAA,IAAIjjF,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAas0F,kBAAkB,CAACt0F,IAAhC,CAAA;IACAqR,KAAK,CAACkjF,sBAAN,GAA+B,IAA/B,CAAA;AACA,IAAA,OAAOljF,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;EAGEijF,kBAAkB,CAACrnG,SAAnB,CAA6B4wB,cAA7B,GAA8C,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;AACvE;AACA,IAAA,IAAIrvB,IAAI,GAAG;MACThY,IAAI,EAAEmqB,MAAM,CAACnqB,IADJ;MAETO,QAAQ,EAAE4pB,MAAM,CAACqD,IAAAA;KAFnB,CAAA;IAIAqzE,mBAAiB,CAAC7oF,IAAD,CAAjB,CAAA;IACA,IAAI8oF,MAAM,GAAG32E,MAAM,CAAC22E,MAAP,IAAiB,EAA9B,CAPuE;AAQvE;AACA;AACA;;AAEA,IAAA,IAAIC,yBAAyB,GAAG,IAAKA,CAAAA,yBAAL,GAAiC,EAAjE,CAAA;AACA,IAAA,IAAIC,qBAAqB,GAAG,IAAIh/B,KAAJ,CAAU;AACpCr2C,MAAAA,SAAS,EAAEo1E,yBAAAA;AADyB,KAAV,EAEzB,IAFyB,EAEnB15D,OAFmB,CAA5B,CAAA;IAGAy5D,MAAM,GAAG32E,MAAM,CAAC22E,MAAP,GAAgBG,UAAU,CAACH,MAAD,EAASz5D,OAAT,CAAnC,CAAA;AACA,IAAA,IAAIy0D,WAAW,GAAG96D,GAAA,CAAW8/D,MAAM,IAAI,EAArB,EAAyB,UAAUI,WAAV,EAAuB;MAChE,OAAO,IAAIl/B,KAAJ,CAAUk/B,WAAV,EAAuBF,qBAAvB,EAA8C35D,OAA9C,CAAP,CAAA;AACD,KAFiB,EAEf,IAFe,CAAlB,CAjBuE;AAoBvE;AACA;;IAEA,IAAIkvD,IAAI,GAAG2F,IAAI,CAACK,UAAL,CAAgBvkF,IAAhB,EAAsB,IAAtB,EAA4BykF,UAA5B,CAAX,CAAA;;IAEA,SAASA,UAAT,CAAoBuB,QAApB,EAA8B;MAC5BA,QAAQ,CAAChE,UAAT,CAAoB,cAApB,EAAoC,UAAUzkD,KAAV,EAAiBvsB,GAAjB,EAAsB;AACxD,QAAA,IAAInV,IAAI,GAAG0iF,IAAI,CAACC,kBAAL,CAAwBxtE,GAAxB,CAAX,CAAA;AACA,QAAA,IAAIm4E,UAAU,GAAGttF,IAAI,GAAGioF,WAAW,CAACjoF,IAAI,CAACgnF,KAAN,CAAd,GAA6B,IAAlD,CAFwD;;AAIxDtlD,QAAAA,KAAK,CAACk1B,WAAN,GAAoB02B,UAAU,IAAIH,qBAAlC,CAAA;AACA,QAAA,OAAOzrD,KAAP,CAAA;OALF,CAAA,CAAA;AAOD,KAAA;;IAED,OAAOghD,IAAI,CAAC/oE,IAAZ,CAAA;GAnCF,CAAA;;AAsCAmzE,EAAAA,kBAAkB,CAACrnG,SAAnB,CAA6B42D,aAA7B,GAA6C,YAAY;AACvD,IAAA,IAAA,CAAKqwC,aAAL,EAAA,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;AACA;;;EAGEI,kBAAkB,CAACrnG,SAAnB,CAA6B6xE,aAA7B,GAA6C,UAAU19C,SAAV,EAAqB29C,cAArB,EAAqCC,QAArC,EAA+C;AAC1F,IAAA,IAAI79C,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;AACA,IAAA,IAAImN,KAAK,GAAG,IAAA,CAAK0T,WAAL,CAAiBze,SAAjB,CAAZ,CAAA;AACA,IAAA,IAAIztB,IAAI,GAAGwtB,IAAI,CAACyF,OAAL,CAAaxF,SAAb,CAAX,CAAA;IACA,OAAOi+C,mBAAmB,CAAC,WAAD,EAAc;AACtC1rE,MAAAA,IAAI,EAAEA,IADgC;AAEtCw4B,MAAAA,KAAK,EAAEA,KAAAA;AAF+B,KAAd,CAA1B,CAAA;GAJF,CAAA;AASA;AACF;AACA;AACA;AACA;AACA;AACA;;;AAGEmoE,EAAAA,kBAAkB,CAACrnG,SAAnB,CAA6BwuD,aAA7B,GAA6C,UAAUr6B,SAAV,EAAqB;AAChE,IAAA,IAAI+f,MAAM,GAAGhwB,MAAM,CAAClkB,SAAP,CAAiBwuD,aAAjB,CAA+B99B,KAA/B,CAAqC,IAArC,EAA2C/sB,SAA3C,CAAb,CAAA;;IAEA,IAAI4W,IAAI,GAAG,IAAA,CAAKwX,OAAL,EAAA,CAAekrE,IAAf,CAAoBC,kBAApB,CAAuC/oE,SAAvC,CAAX,CAAA;IACA+f,MAAM,CAACgxD,aAAP,GAAuBf,gBAAgB,CAAC5pF,IAAD,EAAO,IAAP,CAAvC,CAJgE;;AAMhE25B,IAAAA,MAAM,CAACkwD,YAAP,GAAsBlwD,MAAM,CAACgxD,aAA7B,CAAA;AACA,IAAA,OAAOhxD,MAAP,CAAA;GAPF,CAAA;AASA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGEmzD,EAAAA,kBAAkB,CAACrnG,SAAnB,CAA6B8nG,aAA7B,GAA6C,UAAU/L,UAAV,EAAsB;AACjE;AACJ;AACA;AACA;AACI,IAAA,IAAA,CAAKA,UAAL,GAAkB,IAAKA,CAAAA,UAAL,IAAmB,EAArC,CAAA;AACAr0D,IAAAA,MAAA,CAAc,IAAKq0D,CAAAA,UAAnB,EAA+BA,UAA/B,CAAA,CAAA;GANF,CAAA;AAQA;AACF;AACA;AACA;;;AAGEsL,EAAAA,kBAAkB,CAACrnG,SAAnB,CAA6B+nG,YAA7B,GAA4C,UAAUl0F,EAAV,EAAc;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACJ;AACA;AACA;IACI,IAAIm0F,UAAU,GAAG,IAAA,CAAKC,WAAtB,CAAA;;IAEA,IAAI,CAACD,UAAL,EAAiB;AACfA,MAAAA,UAAU,GAAG,IAAKC,CAAAA,WAAL,GAAmBvgE,aAAA,EAAhC,CAAA;AACA;AACN;AACA;AACA;;MAEM,IAAKwgE,CAAAA,gBAAL,GAAwB,CAAxB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIjpD,KAAK,GAAG+oD,UAAU,CAAC7vE,GAAX,CAAetkB,EAAf,CAAZ,CAAA;;IAEA,IAAIorC,KAAK,IAAI,IAAb,EAAmB;MACjB+oD,UAAU,CAAC/1C,GAAX,CAAep+C,EAAf,EAAmBorC,KAAK,GAAG,IAAKipD,CAAAA,gBAAL,EAA3B,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,OAAOjpD,KAAP,CAAA;GA/BF,CAAA;;AAkCAooD,EAAAA,kBAAkB,CAACrnG,SAAnB,CAA6BgnG,WAA7B,GAA2C,YAAY;AACrD,IAAA,OAAO,KAAKmB,SAAZ,CAAA;GADF,CAAA;;AAIAd,EAAAA,kBAAkB,CAACrnG,SAAnB,CAA6BinG,aAA7B,GAA6C,UAAUhD,QAAV,EAAoB;IAC/DA,QAAQ,GAAG,KAAKkE,SAAL,GAAiBlE,QAApB,GAA+BA,QAAQ,GAAG,IAAA,CAAKkE,SAAvD,CAAA;AACA,IAAA,IAAIzpF,IAAI,GAAG,IAAA,CAAK+uC,UAAL,EAAkBwvC,CAAAA,IAAlB,CAAuBv+E,IAAlC,CAAA;;AAEA,IAAA,IAAI,CAACulF,QAAD,IAAaA,QAAQ,KAAKvlF,IAAb,IAAqB,CAACA,IAAI,CAACujF,QAAL,CAAcgC,QAAd,CAAvC,EAAgE;MAC9D,IAAKkE,CAAAA,SAAL,GAAiBzpF,IAAjB,CAAA;AACD,KAAA;GANH,CAAA;;AASA2oF,EAAAA,kBAAkB,CAACrnG,SAAnB,CAA6BooG,eAA7B,GAA+C,YAAY;IACzDlB,sBAAsB,CAAC,IAAD,CAAtB,CAAA;GADF,CAAA;;EAIAG,kBAAkB,CAACt0F,IAAnB,GAA0B,gBAA1B,CAAA;EACAs0F,kBAAkB,CAACx0C,UAAnB,GAAgC,KAAhC,CAAA;EACAw0C,kBAAkB,CAAC10E,aAAnB,GAAmC;AACjC;AACAgB,IAAAA,WAAW,EAAE,CAFoB;AAGjC;AACA5P,IAAAA,IAAI,EAAE,QAJ2B;AAKjCC,IAAAA,GAAG,EAAE,QAL4B;AAMjCva,IAAAA,KAAK,EAAE,KAN0B;AAOjCC,IAAAA,MAAM,EAAE,KAPyB;AAQjC83B,IAAAA,IAAI,EAAE,IAR2B;AASjC6mE,IAAAA,UAAU,EAAE,QATqB;IAUjCC,WAAW,EAAE,OAAO,CAAI9oG,GAAAA,IAAI,CAAC0kC,IAAL,CAAU,CAAV,CAAX,CAVoB;AAWjCqkE,IAAAA,SAAS,EAAE,IAXsB;AAYjCC,IAAAA,aAAa,EAAE,GAZkB;AAajC;IACAC,eAAe,EAAE,OAAO,IAdS;AAejCrf,IAAAA,IAAI,EAAE,IAf2B;AAgBjCsf,IAAAA,SAAS,EAAE,YAhBsB;AAiBjC97F,IAAAA,SAAS,EAAE,IAjBsB;AAkBjCojD,IAAAA,uBAAuB,EAAE,GAlBQ;AAmBjCt8B,IAAAA,eAAe,EAAE,cAnBgB;AAoBjCi1E,IAAAA,UAAU,EAAE;AACV51E,MAAAA,IAAI,EAAE,IADI;AAEVrpB,MAAAA,MAAM,EAAE,EAFE;AAGVqa,MAAAA,IAAI,EAAE,QAHI;AAIVC,MAAAA,GAAG,EAAE,QAJK;AAKV;AACA;AACA4kF,MAAAA,cAAc,EAAE,EAPN;AAQVv2E,MAAAA,SAAS,EAAE;AACT/sB,QAAAA,KAAK,EAAE,iBADE;AAETmjE,QAAAA,SAAS,EAAE;AACTnjE,UAAAA,KAAK,EAAE,MAAA;AADE,SAAA;AAFF,OAAA;KA5BoB;AAmCjCutB,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,IADD;AAEL;AACAE,MAAAA,QAAQ,EAAE,CAHL;AAILvN,MAAAA,OAAO,EAAE,CAJJ;AAKL5B,MAAAA,QAAQ,EAAE,QALL;AAML;AACAxe,MAAAA,KAAK,EAAE,MAPF;MAQLijD,QAAQ,EAAE,UARL;AASL;;KA5C+B;AA+CjCsgD,IAAAA,UAAU,EAAE;AACV91E,MAAAA,IAAI,EAAE,KADI;AAEVjP,MAAAA,QAAQ,EAAE,CAAC,CAAD,EAAI,KAAJ,CAFA;AAGVpa,MAAAA,MAAM,EAAE,EAHE;AAIV;AACA;AACA6+C,MAAAA,QAAQ,EAAE,UANA;AAOV;AACAjb,MAAAA,aAAa,EAAE,QAAA;KAvDgB;AAyDjCjb,IAAAA,SAAS,EAAE;AACT/sB,MAAAA,KAAK,EAAE,IADE;AAETwjG,MAAAA,UAAU,EAAE,IAFH;AAGTC,MAAAA,eAAe,EAAE,IAHR;AAITnjF,MAAAA,WAAW,EAAE,CAJJ;AAKTojF,MAAAA,QAAQ,EAAE,CALD;AAMT7xD,MAAAA,WAAW,EAAE,MANJ;MAOT8xD,qBAAqB,EAAE,IAPd;AAQT;AACA;;KAlE+B;AAqEjC/1E,IAAAA,QAAQ,EAAE;AACR21E,MAAAA,UAAU,EAAE;AACV91E,QAAAA,IAAI,EAAE,IADI;AAEVjP,QAAAA,QAAQ,EAAE,CAAC,CAAD,EAAI,KAAJ,CAFA;AAGVykC,QAAAA,QAAQ,EAAE,UAHA;AAIVjb,QAAAA,aAAa,EAAE,QAAA;AAJL,OAAA;KAtEmB;AA6EjC47D,IAAAA,eAAe,EAAE,CA7EgB;AA8EjCC,IAAAA,SAAS,EAAE,IA9EsB;AA+EjCC,IAAAA,SAAS,EAAE,IA/EsB;AAgFjC9jG,IAAAA,KAAK,EAAE,EAhF0B;AAiFjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAwjG,IAAAA,UAAU,EAAE,IA1FqB;AA2FjCC,IAAAA,eAAe,EAAE,IA3FgB;AA4FjCM,IAAAA,cAAc,EAAE,OA5FiB;AA6FjCC,IAAAA,UAAU,EAAE,EA7FqB;AA8FjC;AACAC,IAAAA,kBAAkB,EAAE,IA/Fa;AAgGjC;AACA;AACA;AACA;IACA/B,MAAM,EAAE,EApGyB;AAqGjC;AACA;;GAtGF,CAAA;AAyGA,EAAA,OAAOH,kBAAP,CAAA;AACD,CAlRD,CAkRErzE,WAlRF,CAFA,CAAA;AAqRA;AACA;AACA;;;AAGA,SAASuzE,mBAAT,CAA2BhE,QAA3B,EAAqC;AACnC;AACA;AACA;EACA,IAAI5uD,GAAG,GAAG,CAAV,CAAA;EACAjN,MAAA,CAAY67D,QAAQ,CAACt8F,QAArB,EAA+B,UAAUW,KAAV,EAAiB;IAC9C2/F,mBAAiB,CAAC3/F,KAAD,CAAjB,CAAA;AACA,IAAA,IAAI4hG,UAAU,GAAG5hG,KAAK,CAACs3B,KAAvB,CAAA;IACAwI,SAAA,CAAe8hE,UAAf,CAAA,KAA+BA,UAAU,GAAGA,UAAU,CAAC,CAAD,CAAtD,CAAA,CAAA;AACA70D,IAAAA,GAAG,IAAI60D,UAAP,CAAA;GAJF,CAAA,CAAA;AAMA,EAAA,IAAIC,SAAS,GAAGlG,QAAQ,CAACrkE,KAAzB,CAAA;;AAEA,EAAA,IAAIwI,SAAA,CAAe+hE,SAAf,CAAJ,EAA+B;AAC7BA,IAAAA,SAAS,GAAGA,SAAS,CAAC,CAAD,CAArB,CAAA;AACD,GAAA;;EAED,IAAIA,SAAS,IAAI,IAAb,IAAqB5lG,KAAK,CAAC4lG,SAAD,CAA9B,EAA2C;AACzCA,IAAAA,SAAS,GAAG90D,GAAZ,CAAA;AACD,GAnBkC;;;EAsBnC,IAAI80D,SAAS,GAAG,CAAhB,EAAmB;AACjBA,IAAAA,SAAS,GAAG,CAAZ,CAAA;AACD,GAAA;;AAED/hE,EAAAA,SAAA,CAAe67D,QAAQ,CAACrkE,KAAxB,IAAiCqkE,QAAQ,CAACrkE,KAAT,CAAe,CAAf,IAAoBuqE,SAArD,GAAiElG,QAAQ,CAACrkE,KAAT,GAAiBuqE,SAAlF,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAAS9B,UAAT,CAAoBH,MAApB,EAA4Bz5D,OAA5B,EAAqC;EACnC,IAAI27D,eAAe,GAAGC,gBAAgB,CAAC57D,OAAO,CAAC5V,GAAR,CAAY,OAAZ,CAAD,CAAtC,CAAA;AACA,EAAA,IAAIyxE,eAAe,GAAGD,gBAAgB,CAAC57D,OAAO,CAAC5V,GAAR,CAAY,CAAC,MAAD,EAAS,OAAT,EAAkB,QAAlB,CAAZ,CAAD,CAAtC,CAAA;;EAEA,IAAI,CAACuxE,eAAL,EAAsB;AACpB,IAAA,OAAA;AACD,GAAA;;EAEDlC,MAAM,GAAGA,MAAM,IAAI,EAAnB,CAAA;AACA,EAAA,IAAIqC,cAAJ,CAAA;AACA,EAAA,IAAIC,cAAJ,CAAA;AACApiE,EAAAA,MAAA,CAAY8/D,MAAZ,EAAoB,UAAUI,WAAV,EAAuB;AACzC,IAAA,IAAI3rD,KAAK,GAAG,IAAIysB,KAAJ,CAAUk/B,WAAV,CAAZ,CAAA;AACA,IAAA,IAAImC,UAAU,GAAG9tD,KAAK,CAAC9jB,GAAN,CAAU,OAAV,CAAjB,CAAA;AACA,IAAA,IAAI6xE,UAAU,GAAG/tD,KAAK,CAAC9jB,GAAN,CAAU,OAAV,CAAjB,CAAA;;AAEA,IAAA,IAAI8jB,KAAK,CAAC9jB,GAAN,CAAU,CAAC,WAAD,EAAc,OAAd,CAAV,KAAqC4xE,UAAU,IAAIA,UAAU,KAAK,MAAtE,EAA8E;AAC5EF,MAAAA,cAAc,GAAG,IAAjB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI5tD,KAAK,CAAC9jB,GAAN,CAAU,CAAC,WAAD,EAAc,OAAd,CAAV,KAAqC6xE,UAAU,IAAIA,UAAU,KAAK,MAAtE,EAA8E;AAC5EF,MAAAA,cAAc,GAAG,IAAjB,CAAA;AACD,KAAA;GAXH,CAAA,CAAA;AAaA,EAAA,IAAIG,MAAM,GAAGzC,MAAM,CAAC,CAAD,CAAN,KAAcA,MAAM,CAAC,CAAD,CAAN,GAAY,EAA1B,CAAb,CAAA;;EAEA,IAAI,CAACqC,cAAL,EAAqB;AACnBI,IAAAA,MAAM,CAAC3kG,KAAP,GAAeokG,eAAe,CAAC3gF,KAAhB,EAAf,CAAA;AACD,GAAA;;AAED,EAAA,IAAI,CAAC+gF,cAAD,IAAmBF,eAAvB,EAAwC;AACtCK,IAAAA,MAAM,CAACpxE,KAAP,GAAe+wE,eAAe,CAAC7gF,KAAhB,EAAf,CAAA;AACD,GAAA;;AAED,EAAA,OAAOy+E,MAAP,CAAA;AACD;;AClZD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA,IAAI0C,YAAY,GAAG,CAAnB,CAAA;AACA,IAAIC,QAAQ,GAAG,CAAf,CAAA;AACA,IAAIC,YAAY,GAAG,CAAnB,CAAA;;AAEA,IAAIC,UAAU;AACd;AACA,YAAY;EACV,SAASA,UAAT,CAAoBC,cAApB,EAAoC;AAClC,IAAA,IAAA,CAAKj5E,KAAL,GAAa,IAAI0F,OAAJ,EAAb,CAAA;AACAuzE,IAAAA,cAAc,CAAC14E,GAAf,CAAmB,IAAA,CAAKP,KAAxB,CAAA,CAAA;AACD,GAAA;;AAEDg5E,EAAAA,UAAU,CAACrqG,SAAX,CAAqB8tC,MAArB,GAA8B,UAAUpX,WAAV,EAAuBna,GAAvB,EAA4BsnF,UAA5B,EAAwC0G,QAAxC,EAAkD;AAC9E,IAAA,IAAItuD,KAAK,GAAGvlB,WAAW,CAACuB,QAAZ,CAAqB,YAArB,CAAZ,CAAA;IACA,IAAIuyE,SAAS,GAAG,IAAA,CAAKn5E,KAArB,CAAA;AACAm5E,IAAAA,SAAS,CAACv1E,SAAV,EAAA,CAAA;;IAEA,IAAI,CAACgnB,KAAK,CAAC9jB,GAAN,CAAU,MAAV,CAAD,IAAsB,CAAC0rE,UAA3B,EAAuC;AACrC,MAAA,OAAA;AACD,KAAA;;IAED,IAAIrW,gBAAgB,GAAGvxC,KAAK,CAAChkB,QAAN,CAAe,WAAf,CAAvB,CAT8E;;AAW9E,IAAA,IAAIysC,cAAc,GAAG8oB,gBAAgB,CAACv1D,QAAjB,CAA0B,WAA1B,CAArB,CAAA;AACA,IAAA,IAAIwyE,WAAW,GAAG;AAChB5lC,MAAAA,GAAG,EAAE;AACH9gD,QAAAA,IAAI,EAAEk4B,KAAK,CAAC9jB,GAAN,CAAU,MAAV,CADH;AAEH+2B,QAAAA,KAAK,EAAEjT,KAAK,CAAC9jB,GAAN,CAAU,OAAV,CAFJ;AAGHnU,QAAAA,GAAG,EAAEi4B,KAAK,CAAC9jB,GAAN,CAAU,KAAV,CAHF;AAIHg3B,QAAAA,MAAM,EAAElT,KAAK,CAAC9jB,GAAN,CAAU,QAAV,CAAA;OALM;AAOhBuyE,MAAAA,GAAG,EAAE;AACHjhG,QAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADJ;QAEHhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;OATM;AAWhBimF,MAAAA,cAAc,EAAE3sD,KAAK,CAAC9jB,GAAN,CAAU,gBAAV,CAXA;AAYhBwyE,MAAAA,UAAU,EAAE,CAZI;AAahBC,MAAAA,UAAU,EAAE,EAAA;KAbd,CAAA;;AAgBA,IAAA,IAAA,CAAKC,QAAL,CAAchH,UAAd,EAA0B4G,WAA1B,EAAuC/lC,cAAvC,CAAA,CAAA;;IAEA,IAAKomC,CAAAA,cAAL,CAAoBp0E,WAApB,EAAiC+zE,WAAjC,EAA8Cjd,gBAA9C,EAAgE9oB,cAAhE,EAAgF6lC,QAAhF,CAAA,CAAA;;IAEA3uD,eAAA,CAAuB4uD,SAAvB,EAAkCC,WAAW,CAAC5lC,GAA9C,EAAmD4lC,WAAW,CAACC,GAA/D,CAAA,CAAA;GAhCF,CAAA;AAkCA;AACF;AACA;AACA;;;EAGEL,UAAU,CAACrqG,SAAX,CAAqB6qG,QAArB,GAAgC,UAAUhH,UAAV,EAAsB4G,WAAtB,EAAmC/lC,cAAnC,EAAmD;AACjF,IAAA,KAAK,IAAInqD,IAAI,GAAGspF,UAAhB,EAA4BtpF,IAA5B,EAAkCA,IAAI,GAAGA,IAAI,CAACJ,UAA9C,EAA0D;AACxD,MAAA,IAAIjT,IAAI,GAAGs8F,mBAAmB,CAACjpF,IAAI,CAAC0d,QAAL,EAAgBE,CAAAA,GAAhB,CAAoB,MAApB,CAAD,EAA8B,EAA9B,CAA9B,CAAA;AACA,MAAA,IAAImwB,QAAQ,GAAGoc,cAAc,CAACqmC,WAAf,CAA2B7jG,IAA3B,CAAf,CAAA;AACA,MAAA,IAAIwqB,SAAS,GAAGlyB,IAAI,CAAC0iB,GAAL,CAASomC,QAAQ,CAAC7+C,KAAT,GAAiBygG,YAAY,GAAG,CAAzC,EAA4CO,WAAW,CAAC7B,cAAxD,CAAhB,CAAA;AACA6B,MAAAA,WAAW,CAACE,UAAZ,IAA0Bj5E,SAAS,GAAGy4E,QAAtC,CAAA;AACAM,MAAAA,WAAW,CAACG,UAAZ,CAAuB7mG,IAAvB,CAA4B;AAC1BwW,QAAAA,IAAI,EAAEA,IADoB;AAE1BrT,QAAAA,IAAI,EAAEA,IAFoB;AAG1BuC,QAAAA,KAAK,EAAEioB,SAAAA;OAHT,CAAA,CAAA;AAKD,KAAA;GAXH,CAAA;AAaA;AACF;AACA;;;AAGE24E,EAAAA,UAAU,CAACrqG,SAAX,CAAqB8qG,cAArB,GAAsC,UAAUp0E,WAAV,EAAuB+zE,WAAvB,EAAoCjd,gBAApC,EAAsD9oB,cAAtD,EAAsE6lC,QAAtE,EAAgF;AACpH;IACA,IAAIS,KAAK,GAAG,CAAZ,CAAA;AACA,IAAA,IAAIpC,cAAc,GAAG6B,WAAW,CAAC7B,cAAjC,CAAA;IACA,IAAIl/F,MAAM,GAAGgtB,WAAW,CAACyB,GAAZ,CAAgB,CAAC,YAAD,EAAe,QAAf,CAAhB,CAAb,CAAA;AACA,IAAA,IAAI8yE,aAAa,GAAGrvD,gBAAA,CAAwB6uD,WAAW,CAAC5lC,GAApC,EAAyC4lC,WAAW,CAACC,GAArD,CAApB,CAAA;AACA,IAAA,IAAIC,UAAU,GAAGF,WAAW,CAACE,UAA7B,CAAA;AACA,IAAA,IAAIC,UAAU,GAAGH,WAAW,CAACG,UAA7B,CAAA;;AAEA,IAAA,KAAK,IAAIlnG,CAAC,GAAGknG,UAAU,CAAC5nG,MAAX,GAAoB,CAAjC,EAAoCU,CAAC,IAAI,CAAzC,EAA4CA,CAAC,EAA7C,EAAiD;AAC/C,MAAA,IAAI6O,IAAI,GAAGq4F,UAAU,CAAClnG,CAAD,CAArB,CAAA;AACA,MAAA,IAAIwnG,QAAQ,GAAG34F,IAAI,CAACgI,IAApB,CAAA;AACA,MAAA,IAAImX,SAAS,GAAGnf,IAAI,CAAC9I,KAArB,CAAA;AACA,MAAA,IAAIvC,IAAI,GAAGqL,IAAI,CAACrL,IAAhB,CAJ+C;;AAM/C,MAAA,IAAIyjG,UAAU,GAAGM,aAAa,CAACxhG,KAA/B,EAAsC;QACpCkhG,UAAU,IAAIj5E,SAAS,GAAGk3E,cAA1B,CAAA;AACAl3E,QAAAA,SAAS,GAAGk3E,cAAZ,CAAA;AACA1hG,QAAAA,IAAI,GAAG,IAAP,CAAA;AACD,OAAA;;AAED,MAAA,IAAIjC,EAAE,GAAG,IAAI8xB,OAAJ,CAAoB;AAC3BzrB,QAAAA,KAAK,EAAE;UACL0G,MAAM,EAAEm5F,cAAc,CAACH,KAAD,EAAQ,CAAR,EAAWt5E,SAAX,EAAsBhoB,MAAtB,EAA8BhG,CAAC,KAAKknG,UAAU,CAAC5nG,MAAX,GAAoB,CAAxD,EAA2DU,CAAC,KAAK,CAAjE,CAAA;SAFG;AAI3BY,QAAAA,KAAK,EAAEy9D,QAAQ,CAACyrB,gBAAgB,CAACt1D,YAAjB,EAAD,EAAkC;AAC/CyX,UAAAA,QAAQ,EAAE,OAAA;AADqC,SAAlC,CAJY;AAO3B/0B,QAAAA,WAAW,EAAE,IAAImc,MAAJ,CAAiB;AAC5BzyB,UAAAA,KAAK,EAAE;AACL4C,YAAAA,IAAI,EAAEA,IADD;AAEL3C,YAAAA,IAAI,EAAEmgE,cAAc,CAACa,YAAf,EAFD;YAGLnxD,IAAI,EAAEswD,cAAc,CAACS,OAAf,EAAA;AAHD,WAAA;AADqB,SAAjB,CAPc;AAc3B7yB,QAAAA,UAAU,EAAE;AACVxuB,UAAAA,QAAQ,EAAE,QAAA;SAfe;QAiB3BsR,EAAE,EAAE46D,gBAAgB,GAAG,GAjBI;AAkB3Bob,QAAAA,OAAO,EAAEh7C,OAAK,CAACm6C,QAAD,EAAWW,QAAX,CAAA;AAlBa,OAApB,CAAT,CAAA;MAoBAjmG,EAAE,CAACitC,qBAAH,GAA2B,IAA3B,CAAA;AACA,MAAA,IAAA,CAAK7gB,KAAL,CAAWO,GAAX,CAAe3sB,EAAf,CAAA,CAAA;AACAsrC,MAAAA,aAAa,CAACtrC,EAAD,EAAKyxB,WAAL,EAAkBw0E,QAAlB,CAAb,CAAA;MACAF,KAAK,IAAIt5E,SAAS,GAAGy4E,QAArB,CAAA;AACD,KAAA;GA7CH,CAAA;;AAgDAE,EAAAA,UAAU,CAACrqG,SAAX,CAAqBo8B,MAArB,GAA8B,YAAY;IACxC,IAAK/K,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;GADF,CAAA;;AAIA,EAAA,OAAOo1E,UAAP,CAAA;AACD,CArHD,EAFA,CAAA;;AAyHA,SAASc,cAAT,CAAwB1qG,CAAxB,EAA2BC,CAA3B,EAA8BgxB,SAA9B,EAAyCD,UAAzC,EAAqD45E,IAArD,EAA2DC,IAA3D,EAAiE;EAC/D,IAAIt5F,MAAM,GAAG,CAAC,CAACq5F,IAAI,GAAG5qG,CAAH,GAAOA,CAAC,GAAG2pG,YAAhB,EAA8B1pG,CAA9B,CAAD,EAAmC,CAACD,CAAC,GAAGixB,SAAL,EAAgBhxB,CAAhB,CAAnC,EAAuD,CAACD,CAAC,GAAGixB,SAAL,EAAgBhxB,CAAC,GAAG+wB,UAApB,CAAvD,EAAwF,CAAC45E,IAAI,GAAG5qG,CAAH,GAAOA,CAAC,GAAG2pG,YAAhB,EAA8B1pG,CAAC,GAAG+wB,UAAlC,CAAxF,CAAb,CAAA;EACA,CAAC65E,IAAD,IAASt5F,MAAM,CAAC2W,MAAP,CAAc,CAAd,EAAiB,CAAjB,EAAoB,CAACloB,CAAC,GAAGixB,SAAJ,GAAgB04E,YAAjB,EAA+B1pG,CAAC,GAAG+wB,UAAU,GAAG,CAAhD,CAApB,CAAT,CAAA;AACA,EAAA,CAAC45E,IAAD,IAASr5F,MAAM,CAACjO,IAAP,CAAY,CAACtD,CAAD,EAAIC,CAAC,GAAG+wB,UAAU,GAAG,CAArB,CAAZ,CAAT,CAAA;AACA,EAAA,OAAOzf,MAAP,CAAA;AACD;;;AAGD,SAASu+B,aAAT,CAAuBtrC,EAAvB,EAA2ByxB,WAA3B,EAAwCw0E,QAAxC,EAAkD;AAChDhxE,EAAAA,SAAS,CAACj1B,EAAD,CAAT,CAAcurC,SAAd,GAA0B;AACxBC,IAAAA,aAAa,EAAE,QADS;AAExBC,IAAAA,gBAAgB,EAAE,SAFM;IAGxBC,cAAc,EAAEja,WAAW,CAACia,cAHJ;IAIxBZ,WAAW,EAAErZ,WAAW,CAACqZ,WAJD;IAKxBa,UAAU,EAAEla,WAAW,CAAChwB,IALA;AAMxBmqC,IAAAA,UAAU,EAAE,SANY;AAOxB06D,IAAAA,QAAQ,EAAE,YAPc;AAQxB7G,IAAAA,QAAQ,EAAE;AACRvwE,MAAAA,SAAS,EAAE+2E,QAAQ,IAAIA,QAAQ,CAAC/2E,SADxB;AAERztB,MAAAA,IAAI,EAAEwkG,QAAQ,IAAIA,QAAQ,CAACxkG,IAAAA;KAVL;AAYxB09F,IAAAA,YAAY,EAAE8G,QAAQ,IAAI/G,gBAAgB,CAAC+G,QAAD,EAAWx0E,WAAX,CAAA;GAZ5C,CAAA;AAcD;;ACrMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI80E,aAAa;AACjB;AACA,YAAY;AACV,EAAA,SAASA,aAAT,GAAyB;IACvB,IAAKC,CAAAA,QAAL,GAAgB,EAAhB,CAAA;IACA,IAAKC,CAAAA,YAAL,GAAoB,EAApB,CAAA;AACD,GAAA;AACD;AACF;AACA;AACA;AACA;AACA;AACA;;;AAGEF,EAAAA,aAAa,CAACxrG,SAAd,CAAwB4xB,GAAxB,GAA8B,UAAU3sB,EAAV,EAAc4G,MAAd,EAAsBkmC,QAAtB,EAAgC7jC,KAAhC,EAAuCb,MAAvC,EAA+C;AAC3E,IAAA,IAAI,KAAKq+F,YAAL,CAAkBzmG,EAAE,CAAC4O,EAArB,CAAJ,EAA8B;AAC5B,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAK63F,YAAL,CAAkBzmG,EAAE,CAAC4O,EAArB,IAA2B,IAA3B,CAAA;;IAEA,IAAK43F,CAAAA,QAAL,CAAc1nG,IAAd,CAAmB;AACjBkB,MAAAA,EAAE,EAAEA,EADa;AAEjB4G,MAAAA,MAAM,EAAEA,MAFS;AAGjBkmC,MAAAA,QAAQ,EAAEA,QAHO;AAIjB7jC,MAAAA,KAAK,EAAEA,KAJU;AAKjBb,MAAAA,MAAM,EAAEA,MAAAA;KALV,CAAA,CAAA;;AAQA,IAAA,OAAO,IAAP,CAAA;GAfF,CAAA;AAiBA;AACF;AACA;;;AAGEm+F,EAAAA,aAAa,CAACxrG,SAAd,CAAwBgtB,QAAxB,GAAmC,UAAUq4E,QAAV,EAAoB;IACrD,IAAKsG,CAAAA,iBAAL,GAAyBtG,QAAzB,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;AAGEmG,EAAAA,aAAa,CAACxrG,SAAd,CAAwB2tB,KAAxB,GAAgC,YAAY;IAC1C,IAAIvJ,KAAK,GAAG,IAAZ,CAAA;;AAEA,IAAA,IAAIwjB,KAAK,GAAG,IAAK6jE,CAAAA,QAAL,CAAczoG,MAA1B,CAAA;;AAEA,IAAA,IAAI4oG,cAAc,GAAG,SAAjBA,cAAiB,GAAY;MAC/BhkE,KAAK,EAAA,CAAA;;MAEL,IAAIA,KAAK,IAAI,CAAb,EAAgB;AACd;AACAxjB,QAAAA,KAAK,CAACqnF,QAAN,CAAezoG,MAAf,GAAwB,CAAxB,CAAA;QACAohB,KAAK,CAACsnF,YAAN,GAAqB,EAArB,CAAA;AACAtnF,QAAAA,KAAK,CAACunF,iBAAN,IAA2BvnF,KAAK,CAACunF,iBAAN,EAA3B,CAAA;AACD,OAAA;KARH,CAAA;;AAWA,IAAA,KAAK,IAAIjoG,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAG,IAAK0+F,CAAAA,QAAL,CAAczoG,MAApC,EAA4CU,CAAC,GAAGqJ,GAAhD,EAAqDrJ,CAAC,EAAtD,EAA0D;AACxD,MAAA,IAAI6O,IAAI,GAAG,IAAA,CAAKk5F,QAAL,CAAc/nG,CAAd,CAAX,CAAA;MACA6O,IAAI,CAACtN,EAAL,CAAQ6sC,SAAR,CAAkBv/B,IAAI,CAAC1G,MAAvB,EAA+B;QAC7BkmC,QAAQ,EAAEx/B,IAAI,CAACw/B,QADc;QAE7B7jC,KAAK,EAAEqE,IAAI,CAACrE,KAFiB;QAG7Bb,MAAM,EAAEkF,IAAI,CAAClF,MAHgB;AAI7B2kC,QAAAA,UAAU,EAAE,IAJiB;AAK7BpM,QAAAA,IAAI,EAAEgmE,cALuB;AAM7BC,QAAAA,OAAO,EAAED,cAAAA;OANX,CAAA,CAAA;AAQD,KAAA;;AAED,IAAA,OAAO,IAAP,CAAA;GA5BF,CAAA;;AA+BA,EAAA,OAAOJ,aAAP,CAAA;AACD,CA7ED,EAFA,CAAA;;AAiFO,SAASM,UAAT,GAAsB;EAC3B,OAAO,IAAIN,aAAJ,EAAP,CAAA;AACD;;ACzID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2CA,IAAIl6E,OAAK,GAAGyF,OAAZ,CAAA;AACA,IAAImpB,MAAI,GAAGnpB,MAAX,CAAA;AACA,IAAIg1E,cAAc,GAAG,CAArB,CAAA;AACA,IAAIC,iBAAiB,GAAG,OAAxB,CAAA;AACA,IAAIC,sBAAsB,GAAG,YAA7B;;AAEA,IAAIC,OAAO,GAAGlc,gBAAgB,GAAG,EAAjC;;AAEA,IAAImc,KAAK,GAAGnc,gBAAgB,GAAG,CAA/B,CAAA;AACA,IAAIoc,UAAU,GAAGpc,gBAAgB,GAAG,CAApC,CAAA;AACA,IAAIqc,iBAAiB,GAAGC,eAAe,CAAC,CAAC,CAAC,MAAD,EAAS,OAAT,CAAD;AACxC;AACA,CAAC,QAAD,EAAW,aAAX,CAFwC,EAEb,CAAC,WAAD,EAAc,aAAd,CAFa,EAEiB,CAAC,YAAD,CAFjB,EAEiC,CAAC,eAAD,CAFjC,EAEoD,CAAC,eAAD,CAFpD,EAEuE,CAAC,aAAD,CAFvE;AAGxC;AAHwC,CAAD,CAAvC,CAAA;;AAMA,IAAIC,kBAAkB,GAAG,SAArBA,kBAAqB,CAAUtwD,KAAV,EAAiB;AACxC;AACA,EAAA,IAAI5pB,SAAS,GAAGg6E,iBAAiB,CAACpwD,KAAD,CAAjC,CAFwC;;EAIxC5pB,SAAS,CAAC5tB,MAAV,GAAmB4tB,SAAS,CAAC9tB,IAAV,GAAiB8tB,SAAS,CAACzsB,SAAV,GAAsB,IAA1D,CAAA;AACA,EAAA,OAAOysB,SAAP,CAAA;AACD,CAND,CAAA;;AAQA,IAAI+6C,OAAK,GAAGC,SAAS,EAArB,CAAA;;AAEA,IAAIm/B,WAAW;AACf;AACA,UAAUtoF,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACqoF,WAAD,EAActoF,MAAd,CAAT,CAAA;;AAEA,EAAA,SAASsoF,WAAT,GAAuB;AACrB,IAAA,IAAIpoF,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAay5F,WAAW,CAACz5F,IAAzB,CAAA;IACAqR,KAAK,CAACqoF,MAAN,GAAe,OAAf,CAAA;AACAroF,IAAAA,KAAK,CAACqnF,QAAN,GAAiBiB,aAAa,EAA9B,CAAA;AACA,IAAA,OAAOtoF,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEooF,EAAAA,WAAW,CAACxsG,SAAZ,CAAsB8tC,MAAtB,GAA+B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqCu0B,OAArC,EAA8C;AAC3E,IAAA,IAAIsiB,MAAM,GAAGrlB,OAAO,CAAC2X,cAAR,CAAuB;AAClC9B,MAAAA,QAAQ,EAAE,QADwB;AAElC8kC,MAAAA,OAAO,EAAE,SAFyB;AAGlC7kC,MAAAA,KAAK,EAAE/S,OAAAA;AAH2B,KAAvB,CAAb,CAAA;;IAMA,IAAI5jC,OAAO,CAACkmD,MAAD,EAAS18B,WAAT,CAAP,GAA+B,CAAnC,EAAsC;AACpC,MAAA,OAAA;AACD,KAAA;;IAED,IAAKA,CAAAA,WAAL,GAAmBA,WAAnB,CAAA;IACA,IAAKna,CAAAA,GAAL,GAAWA,GAAX,CAAA;IACA,IAAKwxB,CAAAA,OAAL,GAAeA,OAAf,CAAA;AACA,IAAA,IAAI64D,KAAK,GAAG,CAAC,mBAAD,EAAsB,mBAAtB,CAAZ,CAAA;IACA,IAAIC,UAAU,GAAGC,kBAAA,CAA0Bh2D,OAA1B,EAAmC81D,KAAnC,EAA0ClwE,WAA1C,CAAjB,CAAA;AACA,IAAA,IAAIi2E,WAAW,GAAG77D,OAAO,IAAIA,OAAO,CAAC/9B,IAArC,CAAA;AACA,IAAA,IAAIgpF,UAAU,GAAGrlE,WAAW,CAACqlE,UAA7B,CAAA;AACA,IAAA,IAAIllE,MAAM,GAAG,CAAC,IAAA,CAAK+1E,QAAnB,CAAA;AACA,IAAA,IAAIC,WAAW,GAAG,IAAKpB,CAAAA,QAAvB,CAnB2E;;IAqB3E,IAAIqB,MAAM,GAAGH,WAAW,KAAK,mBAAhB,IAAuC9F,UAAvC,IAAqDgG,WAArD,GAAmE;MAC9EE,aAAa,EAAEF,WAAW,CAACG,SAAZ,CAAsBnG,UAAU,CAACtsF,IAAX,CAAgB6mB,WAAhB,EAAtB,CAD+D;MAE9EqhC,SAAS,EAAE3xB,OAAO,CAAC2xB,SAAAA;AAF2D,KAAnE,GAGT,IAHJ,CAAA;;AAKA,IAAA,IAAI6nC,cAAc,GAAG,IAAA,CAAK2C,mBAAL,CAAyBlR,UAAzB,CAArB,CAAA;;AAEA,IAAA,IAAIp2D,YAAY,GAAGjP,WAAW,CAACyB,GAAZ,CAAgB,WAAhB,CAAnB,CAAA;;IAEA,IAAI+0E,YAAY,GAAG,IAAA,CAAKC,SAAL,CAAe7C,cAAf,EAA+B5zE,WAA/B,EAA4Co2E,MAA5C,CAAnB,CAAA;;AAEAnnE,IAAAA,YAAY,IAAI,CAAC9O,MAAjB,KAA4B,CAAC81E,WAAD,IAAgBA,WAAW,KAAK,mBAAhC,IAAuDA,WAAW,KAAK,mBAAnG,CAAA,GAA0H,IAAKS,CAAAA,YAAL,CAAkB9C,cAAlB,EAAkC4C,YAAlC,EAAgDx2E,WAAhD,EAA6Do2E,MAA7D,CAA1H,GAAiMI,YAAY,CAACG,aAAb,EAAjM,CAAA;;IAEA,IAAKC,CAAAA,gBAAL,CAAsB/wF,GAAtB,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKgxF,iBAAL,CAAuB72E,WAAvB,EAAoCna,GAApC,EAAyCsqF,UAAzC,CAAA,CAAA;GApCF,CAAA;;AAuCA2F,EAAAA,WAAW,CAACxsG,SAAZ,CAAsBitG,mBAAtB,GAA4C,UAAUlR,UAAV,EAAsB;IAChE,IAAIuO,cAAc,GAAG,IAAA,CAAKkD,eAA1B,CAAA;;IAEA,IAAI,CAAClD,cAAL,EAAqB;AACnB;AACA;AACAA,MAAAA,cAAc,GAAG,IAAKkD,CAAAA,eAAL,GAAuB,IAAIl8E,OAAJ,EAAxC,CAAA;;MAEA,IAAKm8E,CAAAA,WAAL,CAAiBnD,cAAjB,CAAA,CAAA;;AAEA,MAAA,IAAA,CAAKj5E,KAAL,CAAWO,GAAX,CAAe04E,cAAf,CAAA,CAAA;AACD,KAAA;;AAEDA,IAAAA,cAAc,CAAC7pG,CAAf,GAAmBs7F,UAAU,CAACt7F,CAA9B,CAAA;AACA6pG,IAAAA,cAAc,CAAC5pG,CAAf,GAAmBq7F,UAAU,CAACr7F,CAA9B,CAAA;AACA,IAAA,OAAO4pG,cAAP,CAAA;GAfF,CAAA;;EAkBAkC,WAAW,CAACxsG,SAAZ,CAAsBmtG,SAAtB,GAAkC,UAAU7C,cAAV,EAA0B5zE,WAA1B,EAAuCo2E,MAAvC,EAA+C;AAC/E,IAAA,IAAIY,QAAQ,GAAGh3E,WAAW,CAAC3E,OAAZ,GAAsBkrE,IAArC,CAAA;AACA,IAAA,IAAI0Q,OAAO,GAAG,IAAKf,CAAAA,QAAnB,CAF+E;;IAI/E,IAAIgB,iBAAiB,GAAGlB,aAAa,EAArC,CAAA;IACA,IAAIG,WAAW,GAAGH,aAAa,EAA/B,CAAA;IACA,IAAImB,UAAU,GAAG,IAAA,CAAKpC,QAAtB,CAAA;IACA,IAAIqC,gBAAgB,GAAG,EAAvB,CAAA;;IAEA,SAASC,YAAT,CAAsBC,QAAtB,EAAgCC,OAAhC,EAAyC/wB,WAAzC,EAAsDqkB,KAAtD,EAA6D;MAC3D,OAAO2M,UAAU,CAACx3E,WAAD,EAAcm2E,WAAd,EAA2BgB,UAA3B,EAAuCf,MAAvC,EAA+Cc,iBAA/C,EAAkEE,gBAAlE,EAAoFE,QAApF,EAA8FC,OAA9F,EAAuG/wB,WAAvG,EAAoHqkB,KAApH,CAAjB,CAAA;AACD,KAX8E;AAY/E;AACA;AACA;;;AAGA4M,IAAAA,UAAU,CAACT,QAAQ,CAAChvF,IAAT,GAAgB,CAACgvF,QAAQ,CAAChvF,IAAV,CAAhB,GAAkC,EAAnC,EAAuCivF,OAAO,IAAIA,OAAO,CAACjvF,IAAnB,GAA0B,CAACivF,OAAO,CAACjvF,IAAT,CAA1B,GAA2C,EAAlF,EAAsF4rF,cAAtF,EAAsGoD,QAAQ,KAAKC,OAAb,IAAwB,CAACA,OAA/H,EAAwI,CAAxI,CAAV,CAjB+E;;AAmB/E,IAAA,IAAIS,aAAa,GAAGC,YAAY,CAACR,UAAD,CAAhC,CAAA;IACA,IAAKjB,CAAAA,QAAL,GAAgBc,QAAhB,CAAA;IACA,IAAKjC,CAAAA,QAAL,GAAgBoB,WAAhB,CAAA;IACA,OAAO;AACLe,MAAAA,iBAAiB,EAAEA,iBADd;AAELQ,MAAAA,aAAa,EAAEA,aAFV;AAGLf,MAAAA,aAAa,EAAEA,aAAAA;KAHjB,CAAA;;IAMA,SAASc,UAAT,CAAoBG,gBAApB,EAAsCC,eAAtC,EAAuDrxB,WAAvD,EAAoEsxB,QAApE,EAA8EjN,KAA9E,EAAqF;AACnF;AACA;AACA;AACA,MAAA,IAAIiN,QAAJ,EAAc;AACZD,QAAAA,eAAe,GAAGD,gBAAlB,CAAA;AACA5hG,QAAAA,MAAI,CAAC4hG,gBAAD,EAAmB,UAAU1mG,KAAV,EAAiBq3C,KAAjB,EAAwB;UAC7C,CAACr3C,KAAK,CAAC65F,SAAN,EAAD,IAAsBgN,WAAW,CAACxvD,KAAD,EAAQA,KAAR,CAAjC,CAAA;AACD,SAFG,CAAJ,CAAA;AAGD,OALD;AAMA;WACK;QACD,IAAIyvD,UAAJ,CAAeH,eAAf,EAAgCD,gBAAhC,EAAkDK,MAAlD,EAA0DA,MAA1D,CAAkE/8E,CAAAA,GAAlE,CAAsE68E,WAAtE,CAAmFxyE,CAAAA,MAAnF,CAA0FwyE,WAA1F,CAAuGryE,CAAAA,MAAvG,CAA8Gg0B,OAAK,CAACq+C,WAAD,EAAc,IAAd,CAAnH,CAAA,CAAwIlyE,OAAxI,EAAA,CAAA;AACD,OAAA;;MAEH,SAASoyE,MAAT,CAAgBp0F,IAAhB,EAAsB;AACpB;QACA,OAAOA,IAAI,CAACynF,KAAL,EAAP,CAAA;AACD,OAAA;;AAED,MAAA,SAASyM,WAAT,CAAqBlyD,QAArB,EAA+BC,QAA/B,EAAyC;QACvC,IAAIwxD,QAAQ,GAAGzxD,QAAQ,IAAI,IAAZ,GAAmB+xD,gBAAgB,CAAC/xD,QAAD,CAAnC,GAAgD,IAA/D,CAAA;QACA,IAAI0xD,OAAO,GAAGzxD,QAAQ,IAAI,IAAZ,GAAmB+xD,eAAe,CAAC/xD,QAAD,CAAlC,GAA+C,IAA7D,CAAA;QACA,IAAInrB,KAAK,GAAG08E,YAAY,CAACC,QAAD,EAAWC,OAAX,EAAoB/wB,WAApB,EAAiCqkB,KAAjC,CAAxB,CAAA;QACAlwE,KAAK,IAAI88E,UAAU,CAACH,QAAQ,IAAIA,QAAQ,CAACxM,YAArB,IAAqC,EAAtC,EAA0CyM,OAAO,IAAIA,OAAO,CAACzM,YAAnB,IAAmC,EAA7E,EAAiFnwE,KAAjF,EAAwFm9E,QAAxF,EAAkGjN,KAAK,GAAG,CAA1G,CAAnB,CAAA;AACD,OAAA;AACF,KAAA;;IAED,SAAS8M,YAAT,CAAsB1vF,OAAtB,EAA+B;MAC7B,IAAIyvF,aAAa,GAAG1B,aAAa,EAAjC,CAAA;MACA/tF,OAAO,IAAIjS,MAAI,CAACiS,OAAD,EAAU,UAAUk1B,KAAV,EAAiB+6D,WAAjB,EAA8B;AACrD,QAAA,IAAIC,MAAM,GAAGT,aAAa,CAACQ,WAAD,CAA1B,CAAA;AACAliG,QAAAA,MAAI,CAACmnC,KAAD,EAAQ,UAAU5uC,EAAV,EAAc;AACxBA,UAAAA,EAAE,KAAK4pG,MAAM,CAAC9qG,IAAP,CAAYkB,EAAZ,CAAA,EAAiBmoE,OAAK,CAACnoE,EAAD,CAAL,CAAU6pG,UAAV,GAAuB,IAA7C,CAAF,CAAA;AACD,SAFG,CAAJ,CAAA;AAGD,OALc,CAAf,CAAA;AAMA,MAAA,OAAOV,aAAP,CAAA;AACD,KAAA;;AAED,IAAA,SAASf,aAAT,GAAyB;AACvB3gG,MAAAA,MAAI,CAAC0hG,aAAD,EAAgB,UAAU5hB,GAAV,EAAe;AACjC9/E,QAAAA,MAAI,CAAC8/E,GAAD,EAAM,UAAUvnF,EAAV,EAAc;UACtBA,EAAE,CAACy1B,MAAH,IAAaz1B,EAAE,CAACy1B,MAAH,CAAU0B,MAAV,CAAiBn3B,EAAjB,CAAb,CAAA;AACD,SAFG,CAAJ,CAAA;AAGD,OAJG,CAAJ,CAAA;AAKAyH,MAAAA,MAAI,CAACohG,gBAAD,EAAmB,UAAU7oG,EAAV,EAAc;AACnCA,QAAAA,EAAE,CAAC4c,SAAH,GAAe,IAAf,CADmC;AAEnC;;AAEA5c,QAAAA,EAAE,CAAC4kB,KAAH,EAAA,CAAA;AACD,OALG,CAAJ,CAAA;AAMD,KAAA;GA/EH,CAAA;;AAkFA2iF,EAAAA,WAAW,CAACxsG,SAAZ,CAAsBotG,YAAtB,GAAqC,UAAU9C,cAAV,EAA0B4C,YAA1B,EAAwCx2E,WAAxC,EAAqDo2E,MAArD,EAA6D;AAChG,IAAA,IAAIiC,cAAc,GAAGr4E,WAAW,CAACyB,GAAZ,CAAgB,yBAAhB,CAArB,CAAA;IACA,IAAI62E,YAAY,GAAGt4E,WAAW,CAACyB,GAAZ,CAAgB,iBAAhB,CAAnB,CAFgG;;AAIhG,IAAA,IAAI4Z,QAAQ,GAAG,CAAChhC,UAAU,CAACg+F,cAAD,CAAV,GAA6B,CAA7B,GAAiCA,cAAlC,KAAqD,CAApE,CAAA;AACA,IAAA,IAAI1hG,MAAM,GAAG,CAAC0D,UAAU,CAACi+F,YAAD,CAAV,GAA2B,IAA3B,GAAkCA,YAAnC,KAAoD,UAAjE,CAAA;AACA,IAAA,IAAIC,aAAa,GAAGC,UAAA,EAApB,CANgG;;IAQhGxiG,MAAI,CAACwgG,YAAY,CAACkB,aAAd,EAA6B,UAAUv6D,KAAV,EAAiB+6D,WAAjB,EAA8B;AAC7DliG,MAAAA,MAAI,CAACmnC,KAAD,EAAQ,UAAU5uC,EAAV,EAAc69F,QAAd,EAAwB;QAClC,IAAI79F,EAAE,CAAC4c,SAAP,EAAkB;AAChB,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAI6Y,MAAM,GAAGz1B,EAAE,CAACy1B,MAAhB,CALkC;;AAOlC,QAAA,IAAI7uB,MAAJ,CAAA;AACA,QAAA,IAAIsjG,UAAU,GAAG/hC,OAAK,CAAC1yC,MAAD,CAAtB,CAAA;;AAEA,QAAA,IAAIoyE,MAAM,IAAIA,MAAM,CAACrqC,SAAP,KAAqB,WAAnC,EAAgD;AAC9C52D,UAAAA,MAAM,GAAG6uB,MAAM,KAAKoyE,MAAM,CAACC,aAAlB;AACT;AACA;YACE;AACAzhG,YAAAA,KAAK,EAAE;AACL7K,cAAAA,CAAC,EAAE,CADE;AAELC,cAAAA,CAAC,EAAE,CAFE;cAGL+I,KAAK,EAAE0lG,UAAU,CAACC,SAHb;cAIL1lG,MAAM,EAAEylG,UAAU,CAACE,UAAAA;aALrB;AAOA/qG,YAAAA,KAAK,EAAE;AACLa,cAAAA,OAAO,EAAE,CAAA;AADJ,aAAA;AAPP,WAHO;YAcP;AACAb,YAAAA,KAAK,EAAE;AACLa,cAAAA,OAAO,EAAE,CAAA;AADJ,aAAA;WAfT,CAAA;AAmBD,SApBD,MAoBO;UACL,IAAImqG,OAAO,GAAG,CAAd,CAAA;UACA,IAAIC,OAAO,GAAG,CAAd,CAAA;;AAEA,UAAA,IAAI,CAACJ,UAAU,CAACL,UAAhB,EAA4B;AAC1B;AACA;AACA;AACAQ,YAAAA,OAAO,GAAGH,UAAU,CAACC,SAAX,GAAuB,CAAjC,CAAA;AACAG,YAAAA,OAAO,GAAGJ,UAAU,CAACE,UAAX,GAAwB,CAAlC,CAAA;AACD,WAAA;;AAEDxjG,UAAAA,MAAM,GAAG+iG,WAAW,KAAK,WAAhB,GAA8B;AACrCnuG,YAAAA,CAAC,EAAE6uG,OADkC;AAErC5uG,YAAAA,CAAC,EAAE6uG,OAFkC;AAGrCjrG,YAAAA,KAAK,EAAE;AACLa,cAAAA,OAAO,EAAE,CAAA;AADJ,aAAA;AAH8B,WAA9B,GAML;AACFmG,YAAAA,KAAK,EAAE;AACL7K,cAAAA,CAAC,EAAE6uG,OADE;AAEL5uG,cAAAA,CAAC,EAAE6uG,OAFE;AAGL9lG,cAAAA,KAAK,EAAE,CAHF;AAILC,cAAAA,MAAM,EAAE,CAAA;aALR;AAOFpF,YAAAA,KAAK,EAAE;AACLa,cAAAA,OAAO,EAAE,CAAA;AADJ,aAAA;WAbT,CAAA;AAiBD,SA3DiC;;;AA8DlC0G,QAAAA,MAAM,IAAIojG,aAAa,CAACr9E,GAAd,CAAkB3sB,EAAlB,EAAsB4G,MAAtB,EAA8BkmC,QAA9B,EAAwC,CAAxC,EAA2C1kC,MAA3C,CAAV,CAAA;AACD,OA/DG,CAAJ,CAAA;KADE,CAAJ,CARgG;;IA2EhGX,MAAI,CAAC,KAAK++F,QAAN,EAAgB,UAAU53D,KAAV,EAAiB+6D,WAAjB,EAA8B;AAChDliG,MAAAA,MAAI,CAACmnC,KAAD,EAAQ,UAAU5uC,EAAV,EAAc69F,QAAd,EAAwB;QAClC,IAAI0M,IAAI,GAAGtC,YAAY,CAACU,iBAAb,CAA+BgB,WAA/B,CAA4C9L,CAAAA,QAA5C,CAAX,CAAA;QACA,IAAIj3F,MAAM,GAAG,EAAb,CAAA;;QAEA,IAAI,CAAC2jG,IAAL,EAAW;AACT,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAIvqG,EAAE,YAAY8xB,OAAlB,EAAiC;AAC/B,UAAA,IAAIy4E,IAAI,CAAC32B,IAAL,IAAa,IAAjB,EAAuB;AACrBhtE,YAAAA,MAAM,CAACpL,CAAP,GAAWwE,EAAE,CAACxE,CAAd,CAAA;AACAoL,YAAAA,MAAM,CAACnL,CAAP,GAAWuE,EAAE,CAACvE,CAAd,CAAA;AACAuE,YAAAA,EAAE,CAACxE,CAAH,GAAO+uG,IAAI,CAAC32B,IAAZ,CAAA;AACA5zE,YAAAA,EAAE,CAACvE,CAAH,GAAO8uG,IAAI,CAAC12B,IAAZ,CAAA;AACD,WAAA;AACF,SAPD,MAOO;UACL,IAAI02B,IAAI,CAACC,QAAT,EAAmB;YACjB5jG,MAAM,CAACP,KAAP,GAAeC,MAAM,CAAC,EAAD,EAAKtG,EAAE,CAACqG,KAAR,CAArB,CAAA;AACArG,YAAAA,EAAE,CAACwqC,QAAH,CAAY+/D,IAAI,CAACC,QAAjB,CAAA,CAAA;AACD,WAAA;;UAED,IAAID,IAAI,CAACE,MAAT,EAAiB;AACfzqG,YAAAA,EAAE,CAAC4sB,QAAH,CAAY,SAAZ,EAAuB,CAAvB,CAAA,CAAA;YACAhmB,MAAM,CAACvH,KAAP,GAAe;AACba,cAAAA,OAAO,EAAE,CAAA;aADX,CAAA;AAGD,WALD;AAMA;eACK,IAAIF,EAAE,CAACX,KAAH,CAASa,OAAT,KAAqB,CAAzB,EAA4B;YAC7B0G,MAAM,CAACvH,KAAP,GAAe;AACba,cAAAA,OAAO,EAAE,CAAA;aADX,CAAA;AAGD,WAAA;AACJ,SAAA;;QAED8pG,aAAa,CAACr9E,GAAd,CAAkB3sB,EAAlB,EAAsB4G,MAAtB,EAA8BkmC,QAA9B,EAAwC,CAAxC,EAA2C1kC,MAA3C,CAAA,CAAA;AACD,OApCG,CAAJ,CAAA;KADE,EAsCD,IAtCC,CAAJ,CAAA;IAuCA,IAAKo/F,CAAAA,MAAL,GAAc,WAAd,CAAA;AACAwC,IAAAA,aAAa,CAACjiF,QAAd,CAAuB+pD,MAAI,CAAC,YAAY;MACtC,IAAK01B,CAAAA,MAAL,GAAc,OAAd,CAAA;AACAS,MAAAA,YAAY,CAACG,aAAb,EAAA,CAAA;AACD,KAH0B,EAGxB,IAHwB,CAA3B,CAAA,CAGU1/E,KAHV,EAAA,CAAA;GAnHF,CAAA;;AAyHA6+E,EAAAA,WAAW,CAACxsG,SAAZ,CAAsBstG,gBAAtB,GAAyC,UAAU/wF,GAAV,EAAe;AACtD,IAAA,IAAIq9D,UAAU,GAAG,IAAKuO,CAAAA,WAAtB,CADsD;;IAGtD,IAAI,CAACvO,UAAL,EAAiB;MACfA,UAAU,GAAG,IAAKuO,CAAAA,WAAL,GAAmB,IAAIvR,cAAJ,CAAmBr6D,GAAG,CAACghC,KAAJ,EAAnB,CAAhC,CAAA;MACAq8B,UAAU,CAACnC,MAAX,CAAkB,IAAA,CAAK/gD,WAAL,CAAiByB,GAAjB,CAAqB,MAArB,CAAlB,CAAA,CAAA;MACAyhD,UAAU,CAACp8B,EAAX,CAAc,KAAd,EAAqBu5B,MAAI,CAAC,IAAK44B,CAAAA,MAAN,EAAc,IAAd,CAAzB,CAAA,CAAA;MACA/1B,UAAU,CAACp8B,EAAX,CAAc,MAAd,EAAsBu5B,MAAI,CAAC,IAAK64B,CAAAA,OAAN,EAAe,IAAf,CAA1B,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIhtG,IAAI,GAAG,IAAImkB,YAAJ,CAAiB,CAAjB,EAAoB,CAApB,EAAuBxK,GAAG,CAACmG,QAAJ,EAAvB,EAAuCnG,GAAG,CAACoG,SAAJ,EAAvC,CAAX,CAAA;IACAi3D,UAAU,CAACvB,iBAAX,CAA6B,UAAU/0E,CAAV,EAAa7C,CAAb,EAAgBC,CAAhB,EAAmB;AAC9C,MAAA,OAAOkC,IAAI,CAACm4B,OAAL,CAAat6B,CAAb,EAAgBC,CAAhB,CAAP,CAAA;KADF,CAAA,CAAA;GAXF,CAAA;;AAgBA8rG,EAAAA,WAAW,CAACxsG,SAAZ,CAAsB6vG,gBAAtB,GAAyC,YAAY;IACnD,IAAIj2B,UAAU,GAAG,IAAA,CAAKuO,WAAtB,CAAA;;AAEA,IAAA,IAAIvO,UAAJ,EAAgB;AACdA,MAAAA,UAAU,CAACh3D,OAAX,EAAA,CAAA;AACAg3D,MAAAA,UAAU,GAAG,IAAb,CAAA;AACD,KAAA;GANH,CAAA;;AASA4yB,EAAAA,WAAW,CAACxsG,SAAZ,CAAsB2vG,MAAtB,GAA+B,UAAUrsG,CAAV,EAAa;IAC1C,IAAI,IAAA,CAAKmpG,MAAL,KAAgB,WAAhB,KAAgCjtG,IAAI,CAACyC,GAAL,CAASqB,CAAC,CAACk3B,EAAX,IAAiBuxE,cAAjB,IAAmCvsG,IAAI,CAACyC,GAAL,CAASqB,CAAC,CAACm3B,EAAX,CAAA,GAAiBsxE,cAApF,CAAJ,EAAyG;AACvG;MACA,IAAIrtF,IAAI,GAAG,IAAKgY,CAAAA,WAAL,CAAiB3E,OAAjB,EAAA,CAA2BkrE,IAA3B,CAAgCv+E,IAA3C,CAAA;;MAEA,IAAI,CAACA,IAAL,EAAW;AACT,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIu/E,UAAU,GAAGv/E,IAAI,CAACgiB,SAAL,EAAjB,CAAA;;MAEA,IAAI,CAACu9D,UAAL,EAAiB;AACf,QAAA,OAAA;AACD,OAAA;;MAED,IAAK1hF,CAAAA,GAAL,CAASwiC,cAAT,CAAwB;AACtBhsC,QAAAA,IAAI,EAAE,aADgB;QAEtB08E,IAAI,EAAE,KAAKxH,GAFW;AAGtB0H,QAAAA,QAAQ,EAAE,IAAA,CAAKj5D,WAAL,CAAiB7iB,EAHL;AAItBi8F,QAAAA,QAAQ,EAAE;AACRrvG,UAAAA,CAAC,EAAEw9F,UAAU,CAACx9F,CAAX,GAAe6C,CAAC,CAACk3B,EADZ;AAER95B,UAAAA,CAAC,EAAEu9F,UAAU,CAACv9F,CAAX,GAAe4C,CAAC,CAACm3B,EAFZ;UAGRhxB,KAAK,EAAEw0F,UAAU,CAACx0F,KAHV;UAIRC,MAAM,EAAEu0F,UAAU,CAACv0F,MAAAA;AAJX,SAAA;OAJZ,CAAA,CAAA;AAWD,KAAA;GA1BH,CAAA;;AA6BA8iG,EAAAA,WAAW,CAACxsG,SAAZ,CAAsB4vG,OAAtB,GAAgC,UAAUtsG,CAAV,EAAa;AAC3C,IAAA,IAAIysG,MAAM,GAAGzsG,CAAC,CAACyI,OAAf,CAAA;AACA,IAAA,IAAIikG,MAAM,GAAG1sG,CAAC,CAAC0I,OAAf,CAAA;;AAEA,IAAA,IAAI,IAAKygG,CAAAA,MAAL,KAAgB,WAApB,EAAiC;AAC/B;MACA,IAAI/tF,IAAI,GAAG,IAAKgY,CAAAA,WAAL,CAAiB3E,OAAjB,EAAA,CAA2BkrE,IAA3B,CAAgCv+E,IAA3C,CAAA;;MAEA,IAAI,CAACA,IAAL,EAAW;AACT,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIu/E,UAAU,GAAGv/E,IAAI,CAACgiB,SAAL,EAAjB,CAAA;;MAEA,IAAI,CAACu9D,UAAL,EAAiB;AACf,QAAA,OAAA;AACD,OAAA;;MAED,IAAIr7F,IAAI,GAAG,IAAImkB,YAAJ,CAAiBk3E,UAAU,CAACx9F,CAA5B,EAA+Bw9F,UAAU,CAACv9F,CAA1C,EAA6Cu9F,UAAU,CAACx0F,KAAxD,EAA+Dw0F,UAAU,CAACv0F,MAA1E,CAAX,CAAA;AACA,MAAA,IAAIqyF,UAAU,GAAG,IAAA,CAAKrlE,WAAL,CAAiBqlE,UAAlC,CAf+B;;MAiB/BgU,MAAM,IAAIhU,UAAU,CAACt7F,CAArB,CAAA;AACAuvG,MAAAA,MAAM,IAAIjU,UAAU,CAACr7F,CAArB,CAlB+B;;AAoB/B,MAAA,IAAI+Q,CAAC,GAAGwxD,QAAA,EAAR,CAAA;AACAA,MAAAA,SAAA,CAAiBxxD,CAAjB,EAAoBA,CAApB,EAAuB,CAAC,CAACs+F,MAAF,EAAU,CAACC,MAAX,CAAvB,CAAA,CAAA;AACA/sC,MAAAA,KAAA,CAAaxxD,CAAb,EAAgBA,CAAhB,EAAmB,CAACnO,CAAC,CAACgjB,KAAH,EAAUhjB,CAAC,CAACgjB,KAAZ,CAAnB,CAAA,CAAA;MACA28C,SAAA,CAAiBxxD,CAAjB,EAAoBA,CAApB,EAAuB,CAACs+F,MAAD,EAASC,MAAT,CAAvB,CAAA,CAAA;MACAptG,IAAI,CAAC4nD,cAAL,CAAoB/4C,CAApB,CAAA,CAAA;MACA,IAAK8K,CAAAA,GAAL,CAASwiC,cAAT,CAAwB;AACtBhsC,QAAAA,IAAI,EAAE,eADgB;QAEtB08E,IAAI,EAAE,KAAKxH,GAFW;AAGtB0H,QAAAA,QAAQ,EAAE,IAAA,CAAKj5D,WAAL,CAAiB7iB,EAHL;AAItBi8F,QAAAA,QAAQ,EAAE;UACRrvG,CAAC,EAAEmC,IAAI,CAACnC,CADA;UAERC,CAAC,EAAEkC,IAAI,CAAClC,CAFA;UAGR+I,KAAK,EAAE7G,IAAI,CAAC6G,KAHJ;UAIRC,MAAM,EAAE9G,IAAI,CAAC8G,MAAAA;AAJL,SAAA;OAJZ,CAAA,CAAA;AAWD,KAAA;GAxCH,CAAA;;AA2CA8iG,EAAAA,WAAW,CAACxsG,SAAZ,CAAsBytG,WAAtB,GAAoC,UAAUnD,cAAV,EAA0B;IAC5D,IAAIlmF,KAAK,GAAG,IAAZ,CAAA;;AAEAkmF,IAAAA,cAAc,CAAC9sD,EAAf,CAAkB,OAAlB,EAA2B,UAAUl6C,CAAV,EAAa;AACtC,MAAA,IAAI8gB,KAAK,CAACqoF,MAAN,KAAiB,OAArB,EAA8B;AAC5B,QAAA,OAAA;AACD,OAAA;;MAED,IAAI/D,SAAS,GAAGtkF,KAAK,CAACsS,WAAN,CAAkByB,GAAlB,CAAsB,WAAtB,EAAmC,IAAnC,CAAhB,CAAA;;MAEA,IAAI,CAACuwE,SAAL,EAAgB;AACd,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAI7B,UAAU,GAAGziF,KAAK,CAAC6rF,UAAN,CAAiB3sG,CAAC,CAAC2S,OAAnB,EAA4B3S,CAAC,CAAC6S,OAA9B,CAAjB,CAAA;;MAEA,IAAI,CAAC0wF,UAAL,EAAiB;AACf,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAItsF,IAAI,GAAGssF,UAAU,CAACtsF,IAAtB,CAAA;;AAEA,MAAA,IAAIA,IAAI,CAACmmB,SAAL,EAAA,CAAiBwvE,UAArB,EAAiC;QAC/B9rF,KAAK,CAAC+rF,WAAN,CAAkBtJ,UAAlB,CAAA,CAAA;AACD,OAFD,MAEO;QACL,IAAI6B,SAAS,KAAK,YAAlB,EAAgC;UAC9BtkF,KAAK,CAACgsF,WAAN,CAAkBvJ,UAAlB,CAAA,CAAA;AACD,SAFD,MAEO,IAAI6B,SAAS,KAAK,MAAlB,EAA0B;AAC/B,UAAA,IAAI5wE,SAAS,GAAGvd,IAAI,CAAC+mF,QAAL,CAAcptE,IAAd,CAAmB6D,YAAnB,CAAgCxd,IAAI,CAAC4Z,SAArC,CAAhB,CAAA;UACA,IAAIk8E,IAAI,GAAGv4E,SAAS,CAACK,GAAV,CAAc,MAAd,EAAsB,IAAtB,CAAX,CAAA;UACA,IAAIm4E,UAAU,GAAGx4E,SAAS,CAACK,GAAV,CAAc,QAAd,EAAwB,IAAxB,CAAA,IAAiC,OAAlD,CAAA;AACAk4E,UAAAA,IAAI,IAAIE,UAAU,CAACF,IAAD,EAAOC,UAAP,CAAlB,CAAA;AACD,SAAA;AACF,OAAA;AACF,KA/BD,EA+BG,IA/BH,CAAA,CAAA;GAHF,CAAA;;EAqCA9D,WAAW,CAACxsG,SAAZ,CAAsButG,iBAAtB,GAA0C,UAAU72E,WAAV,EAAuBna,GAAvB,EAA4BsqF,UAA5B,EAAwC;IAChF,IAAIziF,KAAK,GAAG,IAAZ,CAAA;;IAEA,IAAI,CAACyiF,UAAL,EAAiB;MACfA,UAAU,GAAGnwE,WAAW,CAACyB,GAAZ,CAAgB,WAAhB,EAA6B,IAA7B,CAAsC,IAAA,IAAtC,GAA6C;QACxD5d,IAAI,EAAEmc,WAAW,CAACswE,WAAZ,EAAA;AADkD,OAA7C;AAGb;AACA;AAJa,QAKX,IAAKiJ,CAAAA,UAAL,CAAgB1zF,GAAG,CAACmG,QAAJ,EAAA,GAAiB,CAAjC,EAAoCnG,GAAG,CAACoG,SAAJ,EAAA,GAAkB,CAAtD,CALF,CAAA;;MAOA,IAAI,CAACkkF,UAAL,EAAiB;AACfA,QAAAA,UAAU,GAAG;AACXtsF,UAAAA,IAAI,EAAEmc,WAAW,CAAC3E,OAAZ,EAAA,CAAsBkrE,IAAtB,CAA2Bv+E,IAAAA;SADnC,CAAA;AAGD,OAAA;AACF,KAAA;;IAED,CAAC,IAAA,CAAK8xF,WAAL,KAAqB,IAAKA,CAAAA,WAAL,GAAmB,IAAInG,UAAJ,CAAe,IAAKh5E,CAAAA,KAApB,CAAxC,CAAD,EAAsEyc,MAAtE,CAA6EpX,WAA7E,EAA0Fna,GAA1F,EAA+FsqF,UAAU,CAACtsF,IAA1G,EAAgH,UAAUA,IAAV,EAAgB;AAC9H,MAAA,IAAI6J,KAAK,CAACqoF,MAAN,KAAiB,WAArB,EAAkC;AAChC3F,QAAAA,aAAA,CAAqBpwE,WAAW,CAACswE,WAAZ,EAArB,EAAgDzsF,IAAhD,CAAA,GAAwD6J,KAAK,CAAC+rF,WAAN,CAAkB;AACxE51F,UAAAA,IAAI,EAAEA,IAAAA;AADkE,SAAlB,CAAxD,GAEK6J,KAAK,CAACgsF,WAAN,CAAkB;AACrB71F,UAAAA,IAAI,EAAEA,IAAAA;AADe,SAAlB,CAFL,CAAA;AAKD,OAAA;KAPH,CAAA,CAAA;GAlBF,CAAA;AA4BA;AACF;AACA;;;AAGEiyF,EAAAA,WAAW,CAACxsG,SAAZ,CAAsBo8B,MAAtB,GAA+B,YAAY;AACzC,IAAA,IAAA,CAAKyzE,gBAAL,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAKrC,eAAL,IAAwB,IAAA,CAAKA,eAAL,CAAqBv4E,SAArB,EAAxB,CAAA;IACA,IAAKw2E,CAAAA,QAAL,GAAgBiB,aAAa,EAA7B,CAAA;IACA,IAAKD,CAAAA,MAAL,GAAc,OAAd,CAAA;AACA,IAAA,IAAA,CAAK+D,WAAL,IAAoB,IAAA,CAAKA,WAAL,CAAiBp0E,MAAjB,EAApB,CAAA;GANF,CAAA;;AASAowE,EAAAA,WAAW,CAACxsG,SAAZ,CAAsB4iB,OAAtB,GAAgC,YAAY;AAC1C,IAAA,IAAA,CAAKitF,gBAAL,EAAA,CAAA;GADF,CAAA;;AAIArD,EAAAA,WAAW,CAACxsG,SAAZ,CAAsBowG,WAAtB,GAAoC,UAAUvJ,UAAV,EAAsB;IACxD,IAAKtqF,CAAAA,GAAL,CAASwiC,cAAT,CAAwB;AACtBhsC,MAAAA,IAAI,EAAE,mBADgB;MAEtB08E,IAAI,EAAE,KAAKxH,GAFW;AAGtB0H,MAAAA,QAAQ,EAAE,IAAA,CAAKj5D,WAAL,CAAiB7iB,EAHL;MAItBgwF,UAAU,EAAEgD,UAAU,CAACtsF,IAAAA;KAJzB,CAAA,CAAA;GADF,CAAA;;AASAiyF,EAAAA,WAAW,CAACxsG,SAAZ,CAAsBmwG,WAAtB,GAAoC,UAAUtJ,UAAV,EAAsB;IACxD,IAAKtqF,CAAAA,GAAL,CAASwiC,cAAT,CAAwB;AACtBhsC,MAAAA,IAAI,EAAE,mBADgB;MAEtB08E,IAAI,EAAE,KAAKxH,GAFW;AAGtB0H,MAAAA,QAAQ,EAAE,IAAA,CAAKj5D,WAAL,CAAiB7iB,EAHL;MAItBgwF,UAAU,EAAEgD,UAAU,CAACtsF,IAAAA;KAJzB,CAAA,CAAA;GADF,CAAA;AAQA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAGEiyF,WAAW,CAACxsG,SAAZ,CAAsBiwG,UAAtB,GAAmC,UAAUxvG,CAAV,EAAaC,CAAb,EAAgB;AACjD,IAAA,IAAImmG,UAAJ,CAAA;AACA,IAAA,IAAI5C,QAAQ,GAAG,IAAA,CAAKvtE,WAAL,CAAiBswE,WAAjB,EAAf,CAAA;IACA/C,QAAQ,CAACvC,QAAT,CAAkB;AAChBvsE,MAAAA,IAAI,EAAE,cADU;AAEhBysE,MAAAA,KAAK,EAAE,UAAA;KAFT,EAGG,UAAUrnF,IAAV,EAAgB;AACjB,MAAA,IAAImhC,IAAI,GAAG,IAAK+vD,CAAAA,QAAL,CAAcgF,UAAd,CAAyBl2F,IAAI,CAAC6mB,WAAL,EAAzB,CAAX,CADiB;;;AAIjB,MAAA,IAAIsa,IAAJ,EAAU;QACR,IAAI9gB,KAAK,GAAG8gB,IAAI,CAACyV,qBAAL,CAA2B1wD,CAA3B,EAA8BC,CAA9B,CAAZ,CAAA;AACA,QAAA,IAAI4K,KAAK,GAAGowC,IAAI,CAACpwC,KAAjB,CAFQ;;AAIR,QAAA,IAAIA,KAAK,CAAC7K,CAAN,IAAWm6B,KAAK,CAAC,CAAD,CAAhB,IAAuBA,KAAK,CAAC,CAAD,CAAL,IAAYtvB,KAAK,CAAC7K,CAAN,GAAU6K,KAAK,CAAC7B,KAAnD,IAA4D6B,KAAK,CAAC5K,CAAN,IAAWk6B,KAAK,CAAC,CAAD,CAA5E,IAAmFA,KAAK,CAAC,CAAD,CAAL,IAAYtvB,KAAK,CAAC5K,CAAN,GAAU4K,KAAK,CAAC5B,MAAnH,EAA2H;AACzHm9F,UAAAA,UAAU,GAAG;AACXtsF,YAAAA,IAAI,EAAEA,IADK;AAEXtE,YAAAA,OAAO,EAAE2kB,KAAK,CAAC,CAAD,CAFH;YAGXzkB,OAAO,EAAEykB,KAAK,CAAC,CAAD,CAAA;WAHhB,CAAA;AAKD,SAND,MAMO;UACL,OAAO,KAAP,CADK;AAEN,SAAA;AACF,OAAA;AACF,KArBD,EAqBG,IArBH,CAAA,CAAA;AAsBA,IAAA,OAAOisE,UAAP,CAAA;GAzBF,CAAA;;EA4BA2F,WAAW,CAACz5F,IAAZ,GAAmB,SAAnB,CAAA;AACA,EAAA,OAAOy5F,WAAP,CAAA;AACD,CAlgBD,CAkgBEt7D,SAlgBF,CAFA,CAAA;AAqgBA;AACA;AACA;;;AAGA,SAASw7D,aAAT,GAAyB;EACvB,OAAO;AACLM,IAAAA,SAAS,EAAE,EADN;AAELyD,IAAAA,UAAU,EAAE,EAFP;AAGLC,IAAAA,OAAO,EAAE,EAAA;GAHX,CAAA;AAKD,CAAA;AACD;AACA;AACA;AACA;;;AAGA,SAASxC,UAAT,CAAoBx3E,WAApB,EAAiCm2E,WAAjC,EAA8CgB,UAA9C,EAA0Df,MAA1D,EAAkEc,iBAAlE,EAAqFE,gBAArF,EAAuGE,QAAvG,EAAiHC,OAAjH,EAA0H/wB,WAA1H,EAAuIqkB,KAAvI,EAA8I;AAC5I;EACA,IAAI,CAACyM,QAAL,EAAe;AACb;AACA;AACA;AACA,IAAA,OAAA;AACD,GAP2I;AAQ5I;;;AAGA,EAAA,IAAI2C,UAAU,GAAG3C,QAAQ,CAACttE,SAAT,EAAjB,CAAA;AACA,EAAA,IAAIxM,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,EAAA,IAAI6+E,SAAS,GAAG5C,QAAQ,CAAC/1E,QAAT,EAAhB,CAb4I;AAc5I;;AAEA/D,EAAAA,IAAI,CAAC8H,gBAAL,CAAsBgyE,QAAQ,CAAC75E,SAA/B,EAA0C,IAA1C,CAAA,CAAA;;AAEA,EAAA,IAAI,CAACw8E,UAAD,IAAe,CAACA,UAAU,CAACE,QAA/B,EAAyC;AACvC,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIC,SAAS,GAAGH,UAAU,CAAClnG,KAA3B,CAAA;AACA,EAAA,IAAIsnG,UAAU,GAAGJ,UAAU,CAACjnG,MAA5B,CAAA;AACA,EAAA,IAAIkc,WAAW,GAAG+qF,UAAU,CAAC/qF,WAA7B,CAAA;AACA,EAAA,IAAIorF,aAAa,GAAGL,UAAU,CAAC9uF,SAA/B,CAAA;AACA,EAAA,IAAIovF,YAAY,GAAGjD,QAAQ,CAAC5sE,WAAT,EAAnB,CAAA;AACA,EAAA,IAAI8vE,WAAW,GAAGjD,OAAO,IAAIA,OAAO,CAAC7sE,WAAR,EAA7B,CAAA;AACA,EAAA,IAAIktE,gBAAgB,GAAGN,QAAQ,CAACxM,YAAhC,CAAA;AACA,EAAA,IAAI2P,WAAW,GAAGR,UAAU,CAACQ,WAA7B,CAAA;AACA,EAAA,IAAIC,QAAQ,GAAG9C,gBAAgB,IAAIA,gBAAgB,CAACtrG,MAApD,CAAA;AACA,EAAA,IAAIquG,oBAAoB,GAAGT,SAAS,CAAC34E,QAAV,CAAmB,WAAnB,CAA3B,CAAA;EACA,IAAIq5E,sBAAsB,GAAGV,SAAS,CAAC34E,QAAV,CAAmB,CAAC,UAAD,EAAa,WAAb,CAAnB,CAA7B,CAAA;EACA,IAAIs5E,kBAAkB,GAAGX,SAAS,CAAC34E,QAAV,CAAmB,CAAC,MAAD,EAAS,WAAT,CAAnB,CAAzB,CAAA;EACA,IAAIu5E,oBAAoB,GAAGZ,SAAS,CAAC34E,QAAV,CAAmB,CAAC,QAAD,EAAW,WAAX,CAAnB,CAA3B,CAAA;EACA,IAAIof,YAAY,GAAGg6D,oBAAoB,CAACl5E,GAArB,CAAyB,cAAzB,CAAA,IAA4C,CAA/D,CAnC4I;AAoC5I;AACA;;AAEA,EAAA,IAAI9G,KAAK,GAAGogF,WAAW,CAAC,WAAD,EAAcngF,OAAd,CAAvB,CAAA;;EAEA,IAAI,CAACD,KAAL,EAAY;AACV,IAAA,OAAA;AACD,GAAA;;AAED6rD,EAAAA,WAAW,CAACtrD,GAAZ,CAAgBP,KAAhB,EA7C4I;;AA+C5IA,EAAAA,KAAK,CAAC5wB,CAAN,GAAUkwG,UAAU,CAAClwG,CAAX,IAAgB,CAA1B,CAAA;AACA4wB,EAAAA,KAAK,CAAC3wB,CAAN,GAAUiwG,UAAU,CAACjwG,CAAX,IAAgB,CAA1B,CAAA;AACA2wB,EAAAA,KAAK,CAACsL,UAAN,EAAA,CAAA;AACAywC,EAAAA,OAAK,CAAC/7C,KAAD,CAAL,CAAa+9E,SAAb,GAAyB0B,SAAzB,CAAA;AACA1jC,EAAAA,OAAK,CAAC/7C,KAAD,CAAL,CAAag+E,UAAb,GAA0B0B,UAA1B,CAAA;;EAEA,IAAIJ,UAAU,CAACe,eAAf,EAAgC;AAC9B,IAAA,OAAOrgF,KAAP,CAAA;AACD,GAvD2I;;;EA0D5I,IAAIsgF,EAAE,GAAGF,WAAW,CAAC,YAAD,EAAevxD,MAAf,EAAqBqhD,KAArB,EAA4B4K,KAA5B,CAApB,CAAA;AACAwF,EAAAA,EAAE,IAAIC,gBAAgB,CAACvgF,KAAD,EAAQsgF,EAAR,EAAYP,QAAQ,IAAIT,UAAU,CAACkB,gBAAnC,CAAtB,CAAA;AACA,EAAA,IAAI75E,aAAa,GAAG44E,SAAS,CAAC34E,QAAV,CAAmB,UAAnB,CAApB,CAAA;AACA,EAAA,IAAIV,KAAK,GAAGS,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAZ,CAAA;AACA,EAAA,IAAIX,SAAS,GAAGQ,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAhB,CAAA;AACA,EAAA,IAAI25E,UAAU,GAAG95E,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAjB,CAAA;EACA,IAAI45E,cAAc,GAAGx6E,KAAK,KAAK,UAAV,GAAuBy2E,QAAQ,CAACxP,mBAAT,EAAvB,GAAwDjnE,KAAK,KAAK,YAAV,GAAyBy2E,QAAQ,CAACvP,oBAAT,EAAzB,GAA2DlnE,KAAxI,CAhE4I;;AAkE5I,EAAA,IAAI65E,QAAJ,EAAc;AACZ;AACA;AACA;AACA,IAAA,IAAIY,oBAAoB,CAAC3gF,KAAD,CAAxB,EAAiC;AAC/B4gF,MAAAA,uBAAuB,CAAC5gF,KAAD,EAAQ,KAAR,CAAvB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIsgF,EAAJ,EAAQ;AACNM,MAAAA,uBAAuB,CAACN,EAAD,EAAK,CAACG,UAAN,CAAvB,CADM;;AAGN59E,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBgyE,QAAQ,CAAC75E,SAA/B,EAA0Cw9E,EAA1C,CAAA,CAAA;AACAO,MAAAA,gBAAgB,CAACP,EAAD,EAAKI,cAAL,EAAqBv6E,SAArB,CAAhB,CAAA;AACD,KAAA;AACF,GAdD,MAcO;IACL,IAAIk5E,OAAO,GAAGe,WAAW,CAAC,SAAD,EAAYvxD,MAAZ,EAAkBqhD,KAAlB,EAAyB6K,UAAzB,CAAzB,CAAA;AACAsE,IAAAA,OAAO,IAAIyB,aAAa,CAAC9gF,KAAD,EAAQq/E,OAAR,CAAxB,CAAA;IACAiB,EAAE,CAACS,eAAH,GAAqB,IAArB,CAAA;;AAEA,IAAA,IAAIT,EAAE,IAAIK,oBAAoB,CAACL,EAAD,CAA9B,EAAoC;AAClCM,MAAAA,uBAAuB,CAACN,EAAD,EAAK,KAAL,CAAvB,CAAA;AACD,KAAA;;AAEDM,IAAAA,uBAAuB,CAAC5gF,KAAD,EAAQ,CAACygF,UAAT,CAAvB,CATK;;AAWL59E,IAAAA,IAAI,CAAC8H,gBAAL,CAAsBgyE,QAAQ,CAAC75E,SAA/B,EAA0C9C,KAA1C,CAAA,CAAA;AACA6gF,IAAAA,gBAAgB,CAAC7gF,KAAD,EAAQ0gF,cAAR,EAAwBv6E,SAAxB,CAAhB,CAAA;AACD,GAAA;;EAED,OAAOnG,KAAP,CA/F4I;AAgG5I;AACA;;AAEA,EAAA,SAASugF,gBAAT,CAA0BvgF,KAA1B,EAAiCsgF,EAAjC,EAAqCU,aAArC,EAAoD;AAClD,IAAA,IAAIjgD,MAAM,GAAGl4B,SAAS,CAACy3E,EAAD,CAAtB,CADkD;;AAGlDv/C,IAAAA,MAAM,CAACj+B,SAAP,GAAmB65E,QAAQ,CAAC75E,SAA5B,CAAA;AACAi+B,IAAAA,MAAM,CAACriB,WAAP,GAAqBrZ,WAAW,CAACqZ,WAAjC,CAAA;IACA4hE,EAAE,CAACliE,QAAH,CAAY;AACVhvC,MAAAA,CAAC,EAAE,CADO;AAEVC,MAAAA,CAAC,EAAE,CAFO;AAGV+I,MAAAA,KAAK,EAAEqnG,SAHG;AAIVpnG,MAAAA,MAAM,EAAEqnG,UAJE;AAKVzvG,MAAAA,CAAC,EAAE+1C,YAAAA;KALL,CAAA,CAAA;;AAQA,IAAA,IAAI25D,aAAJ,EAAmB;AACjB;AACA;AACA;MACAsB,gBAAgB,CAACX,EAAD,CAAhB,CAAA;AACD,KALD,MAKO;MACLA,EAAE,CAAC9vF,SAAH,GAAe,KAAf,CAAA;AACA,MAAA,IAAIvd,KAAK,GAAG0pG,QAAQ,CAACh8E,SAAT,CAAmB,OAAnB,CAAZ,CAAA;AACA,MAAA,IAAIugF,iBAAiB,GAAGjuG,KAAK,CAACG,MAA9B,CAAA;AACA,MAAA,IAAImpF,WAAW,GAAG2e,kBAAkB,CAAC8E,oBAAD,CAApC,CAAA;MACAzjB,WAAW,CAACrpF,IAAZ,GAAmBguG,iBAAnB,CAAA;AACA,MAAA,IAAI1kB,aAAa,GAAGwe,iBAAiB,CAACiF,sBAAD,CAArC,CAAA;MACAzjB,aAAa,CAACtpF,IAAd,GAAqB+sG,sBAAsB,CAACn5E,GAAvB,CAA2B,aAA3B,CAArB,CAAA;AACA,MAAA,IAAIu0D,SAAS,GAAG2f,iBAAiB,CAACkF,kBAAD,CAAjC,CAAA;MACA7kB,SAAS,CAACnoF,IAAV,GAAiBgtG,kBAAkB,CAACp5E,GAAnB,CAAuB,aAAvB,CAAjB,CAAA;AACA,MAAA,IAAI21D,WAAW,GAAGue,iBAAiB,CAACmF,oBAAD,CAAnC,CAAA;MACA1jB,WAAW,CAACvpF,IAAZ,GAAmBitG,oBAAoB,CAACr5E,GAArB,CAAyB,aAAzB,CAAnB,CAAA;;AAEA,MAAA,IAAIk6E,aAAJ,EAAmB;AACjB,QAAA,IAAIG,eAAe,GAAG1B,SAAS,GAAG,IAAIlrF,WAAtC,CAAA;AACA6sF,QAAAA,WAAW;AACXd,QAAAA,EADW,EACPY,iBADO,EACYjuG,KAAK,CAACa,OADlB,EAC2B;AACpC1E,UAAAA,CAAC,EAAEmlB,WADiC;AAEpCllB,UAAAA,CAAC,EAAE,CAFiC;AAGpC+I,UAAAA,KAAK,EAAE+oG,eAH6B;AAIpC9oG,UAAAA,MAAM,EAAEynG,WAAAA;AAJ4B,SAD3B,CAAX,CAAA;AAOD,OATD;WAUK;AACDQ,QAAAA,EAAE,CAACr3E,iBAAH,EAAA,CAAA;AACD,OAAA;;MAEHq3E,EAAE,CAAC9/E,QAAH,CAAY+7D,WAAZ,CAAA,CAAA;AACA+jB,MAAAA,EAAE,CAAC93E,WAAH,CAAe,UAAf,CAA2Bv1B,CAAAA,KAA3B,GAAmCupF,aAAnC,CAAA;AACA8jB,MAAAA,EAAE,CAAC93E,WAAH,CAAe,MAAf,CAAuBv1B,CAAAA,KAAvB,GAA+BooF,SAA/B,CAAA;AACAilB,MAAAA,EAAE,CAAC93E,WAAH,CAAe,QAAf,CAAyBv1B,CAAAA,KAAzB,GAAiCwpF,WAAjC,CAAA;MACAlB,oBAAoB,CAAC+kB,EAAD,CAApB,CAAA;AACD,KAAA;;IAEDtgF,KAAK,CAACO,GAAN,CAAU+/E,EAAV,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,SAASQ,aAAT,CAAuB9gF,KAAvB,EAA8Bq/E,OAA9B,EAAuC;AACrC,IAAA,IAAIt+C,MAAM,GAAGl4B,SAAS,CAACw2E,OAAD,CAAtB,CADqC;;AAGrCt+C,IAAAA,MAAM,CAACj+B,SAAP,GAAmB65E,QAAQ,CAAC75E,SAA5B,CAAA;AACAi+B,IAAAA,MAAM,CAACriB,WAAP,GAAqBrZ,WAAW,CAACqZ,WAAjC,CAAA;AACA,IAAA,IAAI2iE,YAAY,GAAGlzG,IAAI,CAAC0iB,GAAL,CAAS4uF,SAAS,GAAG,CAAIlrF,GAAAA,WAAzB,EAAsC,CAAtC,CAAnB,CAAA;AACA,IAAA,IAAI+sF,aAAa,GAAGnzG,IAAI,CAAC0iB,GAAL,CAAS6uF,UAAU,GAAG,CAAInrF,GAAAA,WAA1B,EAAuC,CAAvC,CAApB,CAAA;IACA8qF,OAAO,CAACr7E,OAAR,GAAkB,IAAlB,CAAA;IACAq7E,OAAO,CAACjhE,QAAR,CAAiB;AACfhvC,MAAAA,CAAC,EAAEmlB,WADY;AAEfllB,MAAAA,CAAC,EAAEklB,WAFY;AAGfnc,MAAAA,KAAK,EAAEipG,YAHQ;AAIfhpG,MAAAA,MAAM,EAAEipG,aAJO;AAKfrxG,MAAAA,CAAC,EAAE+1C,YAAAA;KALL,CAAA,CAAA;;AAQA,IAAA,IAAI25D,aAAJ,EAAmB;AACjB;AACA;AACA;MACAsB,gBAAgB,CAAC5B,OAAD,CAAhB,CAAA;AACD,KALD,MAKO;MACLA,OAAO,CAAC7uF,SAAR,GAAoB,KAApB,CAAA;AACA,MAAA,IAAI+wF,SAAS,GAAG5E,QAAQ,CAACh8E,SAAT,CAAmB,OAAnB,CAAhB,CAAA;AACA,MAAA,IAAIyG,WAAW,GAAGm6E,SAAS,CAACruG,IAA5B,CAAA;AACA,MAAA,IAAIqpF,WAAW,GAAG2e,kBAAkB,CAAC8E,oBAAD,CAApC,CAAA;MACAzjB,WAAW,CAACrpF,IAAZ,GAAmBk0B,WAAnB,CAAA;AACAm1D,MAAAA,WAAW,CAAC/0D,KAAZ,GAAoB+5E,SAAS,CAAC/5E,KAA9B,CAAA;AACA,MAAA,IAAIg1D,aAAa,GAAGwe,iBAAiB,CAACiF,sBAAD,CAArC,CAAA;AACA,MAAA,IAAI5kB,SAAS,GAAG2f,iBAAiB,CAACkF,kBAAD,CAAjC,CAAA;AACA,MAAA,IAAIzjB,WAAW,GAAGue,iBAAiB,CAACmF,oBAAD,CAAnC,CATK;;MAWLiB,WAAW,CAAC/B,OAAD,EAAUj4E,WAAV,EAAuBm6E,SAAS,CAACztG,OAAjC,EAA0C,IAA1C,CAAX,CAAA;MACAurG,OAAO,CAAC7+E,QAAR,CAAiB+7D,WAAjB,CAAA,CAAA;AACA8iB,MAAAA,OAAO,CAAC72E,WAAR,CAAoB,UAApB,CAAgCv1B,CAAAA,KAAhC,GAAwCupF,aAAxC,CAAA;AACA6iB,MAAAA,OAAO,CAAC72E,WAAR,CAAoB,MAApB,CAA4Bv1B,CAAAA,KAA5B,GAAoCooF,SAApC,CAAA;AACAgkB,MAAAA,OAAO,CAAC72E,WAAR,CAAoB,QAApB,CAA8Bv1B,CAAAA,KAA9B,GAAsCwpF,WAAtC,CAAA;MACAlB,oBAAoB,CAAC8jB,OAAD,CAApB,CAAA;AACD,KAAA;;IAEDr/E,KAAK,CAACO,GAAN,CAAU8+E,OAAV,CAAA,CAAA;AACD,GAAA;;EAED,SAAS4B,gBAAT,CAA0BO,OAA1B,EAAmC;AACjC;AACA;IACA,CAACA,OAAO,CAAChxF,SAAT,IAAsBisF,gBAAgB,CAAC/pG,IAAjB,CAAsB8uG,OAAtB,CAAtB,CAAA;AACD,GAAA;;AAED,EAAA,SAASJ,WAAT,CAAqBK,MAArB,EAA6Br6E,WAA7B,EAA0CszB,aAA1C;AACAgnD,EAAAA,cADA,EACgB;IACd,IAAI3U,gBAAgB,GAAGwS,SAAS,CAAC34E,QAAV,CAAmB86E,cAAc,GAAG9G,sBAAH,GAA4BD,iBAA7D,CAAvB,CAAA;AACA,IAAA,IAAIzyE,WAAW,GAAGiqE,mBAAmB,CAACoN,SAAS,CAACz4E,GAAV,CAAc,MAAd,CAAD,EAAwB,IAAxB,CAArC,CAAA;AACA,IAAA,IAAI66E,MAAM,GAAG5U,gBAAgB,CAAC/lE,UAAjB,CAA4B,MAA5B,CAAb,CAAA;AACAe,IAAAA,aAAa,CAAC05E,MAAD,EAAS16E,oBAAoB,CAACw4E,SAAD,EAAYmC,cAAc,GAAG9G,sBAAH,GAA4BD,iBAAtD,CAA7B,EAAuG;AAClHzyE,MAAAA,WAAW,EAAEy5E,MAAM,GAAGz5E,WAAH,GAAiB,IAD8E;AAElHE,MAAAA,YAAY,EAAEhB,WAFoG;AAGlHiB,MAAAA,cAAc,EAAEqyB,aAHkG;AAIlH1yB,MAAAA,YAAY,EAAE3C,WAJoG;MAKlH4C,cAAc,EAAE00E,QAAQ,CAAC75E,SAAAA;AALyF,KAAvG,CAAb,CAAA;AAOA,IAAA,IAAIwoB,MAAM,GAAGm2D,MAAM,CAACj4F,cAAP,EAAb,CAAA;;IAEA,IAAI,CAAC8hC,MAAL,EAAa;AACX,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI8rB,SAAS,GAAG9rB,MAAM,CAACr4C,KAAvB,CAAA;IACA,IAAI2uG,WAAW,GAAGC,iBAAiB,CAACzqC,SAAS,CAAC/iD,OAAV,IAAqB,CAAtB,CAAnC,CAAA;;AAEA,IAAA,IAAIqtF,cAAJ,EAAoB;MAClBD,MAAM,CAAC95D,aAAP,CAAqB;AACnBo1C,QAAAA,UAAU,EAAE2kB,cAAAA;OADd,CAAA,CAAA;MAGAp2D,MAAM,CAACw2D,kBAAP,GAA4B,IAA5B,CAAA;AACD,KAAA;;IAEDx2D,MAAM,CAACy2D,YAAP,GAAsB,YAAY;AAChC,MAAA,IAAI3pG,KAAK,GAAGjK,IAAI,CAAC0iB,GAAL,CAAS,CAAC6wF,cAAc,GAAGA,cAAc,CAACtpG,KAAlB,GAA0BqpG,MAAM,CAACxnG,KAAP,CAAa7B,KAAtD,IAA+DwpG,WAAW,CAAC,CAAD,CAA1E,GAAgFA,WAAW,CAAC,CAAD,CAApG,EAAyG,CAAzG,CAAZ,CAAA;AACA,MAAA,IAAIvpG,MAAM,GAAGlK,IAAI,CAAC0iB,GAAL,CAAS,CAAC6wF,cAAc,GAAGA,cAAc,CAACrpG,MAAlB,GAA2BopG,MAAM,CAACxnG,KAAP,CAAa5B,MAAvD,IAAiEupG,WAAW,CAAC,CAAD,CAA5E,GAAkFA,WAAW,CAAC,CAAD,CAAtG,EAA2G,CAA3G,CAAb,CAAA;;MAEA,IAAIxqC,SAAS,CAACh/D,KAAV,KAAoBA,KAApB,IAA6Bg/D,SAAS,CAAC/+D,MAAV,KAAqBA,MAAtD,EAA8D;QAC5DizC,MAAM,CAAC9qB,QAAP,CAAgB;AACdpoB,UAAAA,KAAK,EAAEA,KADO;AAEdC,UAAAA,MAAM,EAAEA,MAAAA;SAFV,CAAA,CAAA;AAID,OAAA;KATH,CAAA;;IAYA++D,SAAS,CAAC4qC,eAAV,GAA4B,CAA5B,CAAA;IACA5qC,SAAS,CAAC6qC,YAAV,GAAyB,UAAzB,CAAA;AACAC,IAAAA,gBAAgB,CAAC9qC,SAAD,EAAYsqC,cAAZ,EAA4BpC,UAA5B,CAAhB,CAAA;AACA,IAAA,IAAI6C,iBAAiB,GAAG72D,MAAM,CAAC7M,QAAP,CAAgB,UAAhB,CAAxB,CAAA;AACAyjE,IAAAA,gBAAgB,CAACC,iBAAiB,GAAGA,iBAAiB,CAAClvG,KAArB,GAA6B,IAA/C,EAAqDyuG,cAArD,EAAqEpC,UAArE,CAAhB,CAAA;AACD,GAAA;;AAED,EAAA,SAAS4C,gBAAT,CAA0BjvG,KAA1B,EAAiCyuG,cAAjC,EAAiDpC,UAAjD,EAA6D;IAC3D,IAAIzpG,IAAI,GAAG5C,KAAK,GAAGA,KAAK,CAAC4C,IAAT,GAAgB,IAAhC,CAAA;;IAEA,IAAI,CAAC6rG,cAAD,IAAmBpC,UAAU,CAACT,UAA9B,IAA4ChpG,IAAI,IAAI,IAAxD,EAA8D;MAC5D,IAAIusG,QAAQ,GAAG/8E,WAAW,CAACyB,GAAZ,CAAgB,eAAhB,EAAiC,IAAjC,CAAf,CAAA;MACA7zB,KAAK,CAAC4C,IAAN,GAAausG,QAAQ,GAAGA,QAAQ,GAAG,GAAX,GAAiBvsG,IAApB,GAA2BA,IAAhD,CAAA;AACD,KAAA;AACF,GAAA;;EAED,SAASuqG,WAAT,CAAqB7C,WAArB,EAAkC8E,IAAlC,EAAwCnS,KAAxC,EAA+Cr1E,CAA/C,EAAkD;AAChD,IAAA,IAAI2mF,OAAO,GAAG3B,WAAW,IAAI,IAAf,IAAuBrD,UAAU,CAACe,WAAD,CAAV,CAAwBsC,WAAxB,CAArC,CAAA;AACA,IAAA,IAAIyC,KAAK,GAAG/F,iBAAiB,CAACgB,WAAD,CAA7B,CAAA;;AAEA,IAAA,IAAIiE,OAAJ,EAAa;AACX;AACAhF,MAAAA,UAAU,CAACe,WAAD,CAAV,CAAwBsC,WAAxB,IAAuC,IAAvC,CAAA;AACA0C,MAAAA,0BAA0B,CAACD,KAAD,EAAQd,OAAR,CAA1B,CAAA;AACD,KAJD;SAKK,IAAI,CAAC7B,aAAL,EAAoB;MACrB6B,OAAO,GAAG,IAAIa,IAAJ,EAAV,CAAA;;MAEA,IAAIb,OAAO,YAAYxmB,WAAvB,EAAoC;QAClCwmB,OAAO,CAACz9E,EAAR,GAAay+E,WAAW,CAACtS,KAAD,EAAQr1E,CAAR,CAAxB,CAAA;AACD,OAAA;;AAED4nF,MAAAA,yBAAyB,CAACH,KAAD,EAAQd,OAAR,CAAzB,CAAA;AACD,KAjB6C;;;AAoBhD,IAAA,OAAOhG,WAAW,CAAC+B,WAAD,CAAX,CAAyBqC,YAAzB,IAAyC4B,OAAhD,CAAA;AACD,GAAA;;AAED,EAAA,SAASe,0BAAT,CAAoCD,KAApC,EAA2Cd,OAA3C,EAAoD;AAClD,IAAA,IAAIkB,OAAO,GAAGJ,KAAK,CAAC1C,YAAD,CAAL,GAAsB,EAApC,CAAA;;IAEA,IAAI4B,OAAO,YAAYvhF,OAAvB,EAA8B;AAC5ByiF,MAAAA,OAAO,CAACl7B,IAAR,GAAeg6B,OAAO,CAACpyG,CAAvB,CAAA;AACAszG,MAAAA,OAAO,CAACj7B,IAAR,GAAe+5B,OAAO,CAACnyG,CAAvB,CAAA;AACD,KAHD,MAGO;MACLqzG,OAAO,CAACtE,QAAR,GAAmBlkG,MAAM,CAAC,EAAD,EAAKsnG,OAAO,CAACvnG,KAAb,CAAzB,CAAA;AACD,KAAA;AACF,GAnS2I;AAoS5I;;;AAGA,EAAA,SAASwoG,yBAAT,CAAmCH,KAAnC,EAA0Cd,OAA1C,EAAmD;AACjD,IAAA,IAAIkB,OAAO,GAAGJ,KAAK,CAAC1C,YAAD,CAAL,GAAsB,EAApC,CAAA;AACA,IAAA,IAAI92F,UAAU,GAAG6zF,QAAQ,CAAC7zF,UAA1B,CAAA;AACA,IAAA,IAAI8iB,OAAO,GAAG41E,OAAO,YAAY97E,OAAjC,CAAA;;IAEA,IAAI5c,UAAU,KAAK,CAAC2yF,MAAD,IAAWA,MAAM,CAACrqC,SAAP,KAAqB,WAArC,CAAd,EAAiE;MAC/D,IAAIuxC,UAAU,GAAG,CAAjB,CAAA;AACA,MAAA,IAAIC,UAAU,GAAG,CAAjB,CAF+D;AAG/D;;MAEA,IAAIC,WAAW,GAAGtG,iBAAiB,CAAC6C,UAAlB,CAA6Bt2F,UAAU,CAACinB,WAAX,EAA7B,CAAlB,CAAA;;MAEA,IAAI,CAAC0rE,MAAD,IAAWoH,WAAX,IAA0BA,WAAW,CAACzE,QAA1C,EAAoD;AAClDuE,QAAAA,UAAU,GAAGE,WAAW,CAACzE,QAAZ,CAAqBhmG,KAAlC,CAAA;AACAwqG,QAAAA,UAAU,GAAGC,WAAW,CAACzE,QAAZ,CAAqB/lG,MAAlC,CAAA;AACD,OAV8D;AAW/D;;;AAGA,MAAA,IAAIuzB,OAAJ,EAAa;QACX82E,OAAO,CAACl7B,IAAR,GAAe,CAAf,CAAA;QACAk7B,OAAO,CAACj7B,IAAR,GAAem7B,UAAf,CAAA;AACD,OAHD,MAGO;QACLF,OAAO,CAACtE,QAAR,GAAmB;AACjBhvG,UAAAA,CAAC,EAAEuzG,UADc;AAEjBtzG,UAAAA,CAAC,EAAEuzG,UAFc;AAGjBxqG,UAAAA,KAAK,EAAE,CAHU;AAIjBC,UAAAA,MAAM,EAAE,CAAA;SAJV,CAAA;AAMD,OAAA;AACF,KA9BgD;;;AAiCjDqqG,IAAAA,OAAO,CAACrE,MAAR,GAAiB,CAACzyE,OAAlB,CAAA;AACD,GAAA;AACF;AACD;AACA;AACA;AACA;AACA;;;AAGA,SAAS42E,WAAT,CAAqBtS,KAArB,EAA4B4S,SAA5B,EAAuC;AACrC,EAAA,OAAO5S,KAAK,GAAG2K,OAAR,GAAkBiI,SAAzB,CAAA;AACD;;ACj8BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BA,IAAIznG,MAAI,GAAGg7B,MAAX,CAAA;AACA,IAAIlrB,QAAQ,GAAGkrB,UAAf,CAAA;AACA,IAAI0sE,6BAA6B,GAAG,CAAC,CAArC,CAAA;;AAEA,IAAIC,aAAa;AACjB;AACA,YAAY;EACV,SAASA,aAAT,CAAuBxjF,MAAvB,EAA+B;AAC7B,IAAA,IAAIyjF,aAAa,GAAGzjF,MAAM,CAACyjF,aAA3B,CAAA;AACA,IAAA,IAAIxiF,UAAU,GAAGjB,MAAM,CAAC9d,IAAxB,CAAA;IACA,IAAI8jD,UAAU,GAAG,IAAA,CAAKhmC,MAAL,GAAc6W,OAAA,CAAa7W,MAAb,CAA/B,CAAA;IACA,IAAK9d,CAAAA,IAAL,GAAY+e,UAAZ,CAAA;IACA,IAAKwiF,CAAAA,aAAL,GAAqBA,aAArB,CAAA;AACA,IAAA,IAAA,CAAKC,cAAL,GAAsBC,WAAW,CAACF,aAAD,CAAjC,CAAA;AACA,IAAA,IAAIG,aAAa,GAAGJ,aAAa,CAACK,cAAd,CAA6B5iF,UAA7B,CAApB,CAAA;AACA,IAAA,IAAA,CAAK6iF,WAAL,GAAmBF,aAAa,CAACE,WAAjC,CAAA;AACA,IAAA,IAAA,CAAKC,cAAL,GAAsBH,aAAa,CAACG,cAApC,CAAA;AACA,IAAA,IAAA,CAAKC,mBAAL,GAA2BJ,aAAa,CAACI,mBAAd,CAAkCP,aAAlC,CAA3B,CAAA;;IAEA,IAAIA,aAAa,KAAK,WAAtB,EAAmC;MACjCQ,oBAAoB,CAACj+C,UAAD,CAApB,CAAA;MACAk+C,sBAAsB,CAACl+C,UAAD,CAAtB,CAAA;AACD,KAHD,MAGO,IAAIy9C,aAAa,KAAK,UAAtB,EAAkC;AACvCz9C,MAAAA,UAAU,CAACvY,UAAX,GAAwB02D,8BAA8B,CAACn+C,UAAD,CAAtD;AACA;AADA,QAEEi+C,oBAAoB,CAACj+C,UAAD,EAAa,IAAb,CAFtB,CAAA;AAGD,KAJM,MAIA;AACL;MACAnvB,MAAA,CAAc4sE,aAAa,KAAK,QAAlB,IAA8Bz9C,UAAU,CAACo+C,UAAvD,CAAA,CAAA;MACAH,oBAAoB,CAACj+C,UAAD,CAApB,CAAA;AACD,KAAA;AACF,GAAA;;AAEDw9C,EAAAA,aAAa,CAACr0G,SAAd,CAAwBk1G,gBAAxB,GAA2C,UAAUh2E,KAAV,EAAiB;AAC1D,IAAA,IAAIi2E,UAAU,GAAG,IAAA,CAAKZ,cAAL,CAAoBr1E,KAApB,CAAjB,CAAA;;AAEA,IAAA,OAAO,KAAK21E,mBAAL,CAAyBM,UAAzB,EAAqCj2E,KAArC,CAAP,CAAA;GAHF,CAAA;;AAMAm1E,EAAAA,aAAa,CAACr0G,SAAd,CAAwBo1G,aAAxB,GAAwC,YAAY;IAClD,OAAO1tE,MAAA,CAAY,KAAK6sE,cAAjB,EAAiC,IAAjC,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;AACA;AACA;;;EAGEF,aAAa,CAACgB,eAAd,GAAgC,YAAY;AAC1C,IAAA,OAAO3tE,IAAA,CAAY2sE,aAAa,CAACK,cAA1B,CAAP,CAAA;AACD,GAFD,CA5CU;AA+CV;AACA;AACA;AACA;AACA;;AAEA;AACF;AACA;;;AAGEL,EAAAA,aAAa,CAACiB,WAAd,GAA4B,UAAUxjF,UAAV,EAAsB;AAChD,IAAA,OAAOuiF,aAAa,CAACK,cAAd,CAA6BzkF,cAA7B,CAA4C6B,UAA5C,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;;;EAGEuiF,aAAa,CAACkB,UAAd,GAA2B,UAAUC,MAAV,EAAkBnQ,QAAlB,EAA4B/1E,OAA5B,EAAqC;AAC9D,IAAA,IAAIoY,UAAA,CAAgB8tE,MAAhB,CAAJ,EAA6B;AAC3B9tE,MAAAA,MAAA,CAAY8tE,MAAZ,EAAoBnQ,QAApB,EAA8B/1E,OAA9B,CAAA,CAAA;AACD,KAFD,MAEO;AACL+1E,MAAAA,QAAQ,CAAChhF,IAAT,CAAciL,OAAd,EAAuBkmF,MAAvB,CAAA,CAAA;AACD,KAAA;GALH,CAAA;;EAQAnB,aAAa,CAACoB,SAAd,GAA0B,UAAUD,MAAV,EAAkBnQ,QAAlB,EAA4B/1E,OAA5B,EAAqC;AAC7D,IAAA,IAAIomF,SAAJ,CAAA;IACA,IAAIC,SAAS,GAAGjuE,SAAA,CAAe8tE,MAAf,CAAyB,GAAA,EAAzB,GAA8B9tE,UAAA,CAAgB8tE,MAAhB,CAAA,GAA0B,EAA1B,IAAgCE,SAAS,GAAG,IAAZ,EAAkB,IAAlD,CAA9C,CAAA;IACArB,aAAa,CAACkB,UAAd,CAAyBC,MAAzB,EAAiC,UAAU1/C,CAAV,EAAa/uD,GAAb,EAAkB;MACjD,IAAI6uG,MAAM,GAAGvQ,QAAQ,CAAChhF,IAAT,CAAciL,OAAd,EAAuBwmC,CAAvB,EAA0B/uD,GAA1B,CAAb,CAAA;MACA2uG,SAAS,GAAGC,SAAS,GAAGC,MAAf,GAAwBD,SAAS,CAAC5uG,GAAD,CAAT,GAAiB6uG,MAAlD,CAAA;KAFF,CAAA,CAAA;AAIA,IAAA,OAAOD,SAAP,CAAA;GAPF,CAAA;AASA;AACF;AACA;;;AAGEtB,EAAAA,aAAa,CAACwB,eAAd,GAAgC,UAAU30D,GAAV,EAAe;IAC7C,IAAI5+B,GAAG,GAAG,EAAV,CAAA;AACA,IAAA,IAAIwzF,SAAJ,CAAA;IACA50D,GAAG,IAAIx0C,MAAI,CAAC2nG,aAAa,CAACK,cAAf,EAA+B,UAAU5xG,CAAV,EAAagvB,UAAb,EAAyB;AACjE,MAAA,IAAIovB,GAAG,CAACjxB,cAAJ,CAAmB6B,UAAnB,CAAJ,EAAoC;AAClCxP,QAAAA,GAAG,CAACwP,UAAD,CAAH,GAAkBovB,GAAG,CAACpvB,UAAD,CAArB,CAAA;AACAgkF,QAAAA,SAAS,GAAG,IAAZ,CAAA;AACD,OAAA;AACF,KALU,CAAX,CAAA;AAMA,IAAA,OAAOA,SAAS,GAAGxzF,GAAH,GAAS,IAAzB,CAAA;GATF,CAAA;AAWA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGE+xF,EAAAA,aAAa,CAAC0B,kBAAd,GAAmC,UAAUC,WAAV,EAAuB;AACxD,IAAA,IAAItuE,SAAA,CAAesuE,WAAf,CAAJ,EAAiC;AAC/BA,MAAAA,WAAW,GAAGA,WAAW,CAACjtF,KAAZ,EAAd,CAAA;AACD,KAFD,MAEO,IAAIvM,QAAQ,CAACw5F,WAAD,CAAZ,EAA2B;MAChC,IAAIC,OAAO,GAAG,EAAd,CAAA;AACAvpG,MAAAA,MAAI,CAACspG,WAAD,EAAc,UAAUzjG,IAAV,EAAgBQ,IAAhB,EAAsB;QACtCkjG,OAAO,CAAClyG,IAAR,CAAagP,IAAb,CAAA,CAAA;AACD,OAFG,CAAJ,CAAA;AAGAijG,MAAAA,WAAW,GAAGC,OAAd,CAAA;AACD,KANM,MAMA;AACL,MAAA,OAAO,EAAP,CAAA;AACD,KAAA;;AAEDD,IAAAA,WAAW,CAACx0E,IAAZ,CAAiB,UAAU00E,KAAV,EAAiBC,KAAjB,EAAwB;AACvC;AACA;AACA,MAAA,OAAOA,KAAK,KAAK,OAAV,IAAqBD,KAAK,KAAK,OAA/B,IAA0CA,KAAK,CAAChpG,OAAN,CAAc,OAAd,CAA2B,KAAA,CAArE,GAAyE,CAAzE,GAA6E,CAAC,CAArF,CAAA;KAHF,CAAA,CAAA;AAKA,IAAA,OAAO8oG,WAAP,CAAA;GAlBF,CAAA;AAoBA;AACF;AACA;AACA;;;AAGE3B,EAAAA,aAAa,CAAC+B,SAAd,GAA0B,UAAUC,WAAV,EAAuBC,WAAvB,EAAoC;AAC5D,IAAA,OAAOA,WAAW,KAAK,OAAhB,GAA0B,CAAC,EAAED,WAAW,IAAIA,WAAW,CAACnpG,OAAZ,CAAoBopG,WAApB,CAAqC,KAAA,CAAtD,CAA3B,GAAsFD,WAAW,KAAKC,WAA7G,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;AACA;AACA;AACA;;;EAGEjC,aAAa,CAACkC,cAAd,GAA+B,UAAUr3E,KAAV,EAAiBs3E,SAAjB,EAA4BC,sBAA5B,EAAoD;AACjF,IAAA,IAAIC,SAAJ,CAAA;AACA,IAAA,IAAIz0G,GAAG,GAAGslB,QAAV,CAFiF;;AAIjF,IAAA,KAAK,IAAI7jB,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGypG,SAAS,CAACxzG,MAAhC,EAAwCU,CAAC,GAAGqJ,GAA5C,EAAiDrJ,CAAC,EAAlD,EAAsD;AACpD,MAAA,IAAIizG,UAAU,GAAGH,SAAS,CAAC9yG,CAAD,CAAT,CAAaw7B,KAA9B,CAAA;;MAEA,IAAIy3E,UAAU,IAAI,IAAlB,EAAwB;QACtB,IAAIA,UAAU,KAAKz3E,KAAf;AACJ;AACA;AACA;AACA;WACGwI,QAAA,CAAgBivE,UAAhB,CAA+BA,IAAAA,UAAU,KAAKz3E,KAAK,GAAG,EALzD,EAK6D;AAC3D,UAAA,OAAOx7B,CAAP,CAAA;AACD,SAAA;;AAED+yG,QAAAA,sBAAsB,IAAIG,cAAc,CAACD,UAAD,EAAajzG,CAAb,CAAxC,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,KAAK,IAAIA,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGypG,SAAS,CAACxzG,MAAhC,EAAwCU,CAAC,GAAGqJ,GAA5C,EAAiDrJ,CAAC,EAAlD,EAAsD;AACpD,MAAA,IAAImzG,KAAK,GAAGL,SAAS,CAAC9yG,CAAD,CAArB,CAAA;AACA,MAAA,IAAIoxD,QAAQ,GAAG+hD,KAAK,CAAC/hD,QAArB,CAAA;AACA,MAAA,IAAIgiD,OAAO,GAAGD,KAAK,CAACE,KAApB,CAAA;;AAEA,MAAA,IAAIjiD,QAAJ,EAAc;AACZ,QAAA,IAAIA,QAAQ,CAAC,CAAD,CAAR,KAAgB,CAACvtC,QAArB,EAA+B;AAC7B,UAAA,IAAIyvF,UAAU,CAACF,OAAO,CAAC,CAAD,CAAR,EAAa53E,KAAb,EAAoB41B,QAAQ,CAAC,CAAD,CAA5B,CAAd,EAAgD;AAC9C,YAAA,OAAOpxD,CAAP,CAAA;AACD,WAAA;SAHH,MAIO,IAAIoxD,QAAQ,CAAC,CAAD,CAAR,KAAgBvtC,QAApB,EAA8B;AACnC,UAAA,IAAIyvF,UAAU,CAACF,OAAO,CAAC,CAAD,CAAR,EAAahiD,QAAQ,CAAC,CAAD,CAArB,EAA0B51B,KAA1B,CAAd,EAAgD;AAC9C,YAAA,OAAOx7B,CAAP,CAAA;AACD,WAAA;AACF,SAJM,MAIA,IAAIszG,UAAU,CAACF,OAAO,CAAC,CAAD,CAAR,EAAahiD,QAAQ,CAAC,CAAD,CAArB,EAA0B51B,KAA1B,CAAV,IAA8C83E,UAAU,CAACF,OAAO,CAAC,CAAD,CAAR,EAAa53E,KAAb,EAAoB41B,QAAQ,CAAC,CAAD,CAA5B,CAA5D,EAA8F;AACnG,UAAA,OAAOpxD,CAAP,CAAA;AACD,SAAA;;QAED+yG,sBAAsB,IAAIG,cAAc,CAAC9hD,QAAQ,CAAC,CAAD,CAAT,EAAcpxD,CAAd,CAAxC,CAAA;QACA+yG,sBAAsB,IAAIG,cAAc,CAAC9hD,QAAQ,CAAC,CAAD,CAAT,EAAcpxD,CAAd,CAAxC,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAI+yG,sBAAJ,EAA4B;AAC1B,MAAA,OAAOv3E,KAAK,KAAK3X,QAAV,GAAqBivF,SAAS,CAACxzG,MAAV,GAAmB,CAAxC,GAA4Ck8B,KAAK,KAAK,CAAC3X,QAAX,GAAsB,CAAtB,GAA0BmvF,SAA7E,CAAA;AACD,KAAA;;AAED,IAAA,SAASE,cAAT,CAAwBhzG,GAAxB,EAA6Bq7C,KAA7B,EAAoC;MAClC,IAAIg4D,MAAM,GAAGz3G,IAAI,CAACyC,GAAL,CAAS2B,GAAG,GAAGs7B,KAAf,CAAb,CAAA;;MAEA,IAAI+3E,MAAM,GAAGh1G,GAAb,EAAkB;AAChBA,QAAAA,GAAG,GAAGg1G,MAAN,CAAA;AACAP,QAAAA,SAAS,GAAGz3D,KAAZ,CAAA;AACD,OAAA;AACF,KAAA;GAvDH,CAAA;;EA0DAo1D,aAAa,CAACK,cAAd,GAA+B;AAC7BpvG,IAAAA,KAAK,EAAE;AACLqvG,MAAAA,WAAW,EAAEuC,eAAe,CAAC,OAAD,CADvB;AAELtC,MAAAA,cAAc,EAAE,SAAY,cAAA,GAAA;QAC1B,IAAI/9C,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;AACA,QAAA,OAAO6W,MAAA,CAAYmvB,UAAU,CAACy9C,aAAX,KAA6B,UAA7B,GAA0C,UAAUp1E,KAAV,EAAiBi4E,YAAjB,EAA+B;UAC1F,CAACA,YAAD,KAAkBj4E,KAAK,GAAG,KAAKq1E,cAAL,CAAoBr1E,KAApB,CAA1B,CAAA,CAAA;AACA,UAAA,OAAOk4E,aAAa,CAAC/yF,IAAd,CAAmB,IAAnB,EAAyB6a,KAAzB,CAAP,CAAA;AACD,SAHkB,GAGf,UAAUA,KAAV,EAAiBi4E,YAAjB,EAA+B91F,GAA/B,EAAoC;AACtC;AACA;AACA,UAAA,IAAIg2F,cAAc,GAAG,CAAC,CAACh2F,GAAvB,CAAA;UACA,CAAC81F,YAAD,KAAkBj4E,KAAK,GAAG,KAAKq1E,cAAL,CAAoBr1E,KAApB,CAA1B,CAAA,CAAA;AACA7d,UAAAA,GAAG,GAAGi2F,QAAA,CAAiBp4E,KAAjB,EAAwB23B,UAAU,CAAC0gD,YAAnC,EAAiDl2F,GAAjD,CAAN,CAAA;UACA,OAAOg2F,cAAc,GAAGh2F,GAAH,GAASi2F,SAAA,CAAkBj2F,GAAlB,EAAuB,MAAvB,CAA9B,CAAA;SATK,EAUJ,IAVI,CAAP,CAAA;OAJG;AAgBLwzF,MAAAA,mBAAmB,EAAE;QACnB2C,MAAM,EAAE,SAAUrC,MAAAA,CAAAA,UAAV,EAAsB;AAC5B,UAAA,OAAOmC,SAAA,CAAkBA,QAAA,CAAiBnC,UAAjB,EAA6B,KAAKtkF,MAAL,CAAY0mF,YAAzC,CAAlB,EAA0E,MAA1E,CAAP,CAAA;SAFiB;AAInBhiD,QAAAA,QAAQ,EAAE6hD,aAJS;AAKnBK,QAAAA,SAAS,EAAE,SAAA,SAAA,CAAUtC,UAAV,EAAsBj2E,KAAtB,EAA6B;UACtC,IAAI6pC,MAAM,GAAG2uC,kBAAkB,CAACrzF,IAAnB,CAAwB,IAAxB,EAA8B6a,KAA9B,CAAb,CAAA;;UAEA,IAAI6pC,MAAM,IAAI,IAAd,EAAoB;AAClBA,YAAAA,MAAM,GAAGuuC,SAAA,CAAkBA,QAAA,CAAiBnC,UAAjB,EAA6B,KAAKtkF,MAAL,CAAY0mF,YAAzC,CAAlB,EAA0E,MAA1E,CAAT,CAAA;AACD,WAAA;;AAED,UAAA,OAAOxuC,MAAP,CAAA;SAZiB;AAcnB4uC,QAAAA,KAAK,EAAEC,UAAAA;AAdY,OAAA;KAjBM;AAkC7BC,IAAAA,QAAQ,EAAEC,6BAA6B,CAAC,UAAUxyG,OAAV,EAAiB45B,KAAjB,EAAwB;AAC9D,MAAA,OAAOo4E,SAAA,CAAkBhyG,OAAlB,EAAyB45B,KAAzB,CAAP,CAAA;AACD,KAFsC,CAlCV;AAqC7B6pE,IAAAA,eAAe,EAAE+O,6BAA6B,CAAC,UAAUxyG,OAAV,EAAiB45B,KAAjB,EAAwB;MACrE,OAAOo4E,SAAA,CAAkBhyG,OAAlB,EAAyB,IAAzB,EAA+B45B,KAA/B,CAAP,CAAA;AACD,KAF6C,CArCjB;AAwC7B64E,IAAAA,cAAc,EAAED,6BAA6B,CAAC,UAAUxyG,OAAV,EAAiB45B,KAAjB,EAAwB;MACpE,OAAOo4E,SAAA,CAAkBhyG,OAAlB,EAAyB,IAAzB,EAA+B,IAA/B,EAAqC45B,KAArC,CAAP,CAAA;AACD,KAF4C,CAxChB;AA2C7B4pE,IAAAA,UAAU,EAAEgP,6BAA6B,CAAC,UAAUxyG,OAAV,EAAiB45B,KAAjB,EAAwB;AAChE,MAAA,OAAOo4E,WAAA,CAAoBhyG,OAApB,EAA2B45B,KAA3B,CAAP,CAAA;AACD,KAFwC,CA3CZ;AA8C7BrG,IAAAA,KAAK,EAAE;AACL87E,MAAAA,WAAW,EAAEuC,eAAe,CAAC,OAAD,CADvB;AAELrC,MAAAA,mBAAmB,EAAE;AACnB2C,QAAAA,MAAM,EAAE,IADW;AAEnBjiD,QAAAA,QAAQ,EAAE6hD,aAFS;AAGnBK,QAAAA,SAAS,EAAE,IAHQ;AAInBE,QAAAA,KAAK,EAAE,IAAA;AAJY,OAAA;KAhDM;AAuD7BxyG,IAAAA,OAAO,EAAE;AACPwvG,MAAAA,WAAW,EAAEuC,eAAe,CAAC,SAAD,CADrB;AAEPrC,MAAAA,mBAAmB,EAAEmD,+BAA+B,CAAC,CAAC,CAAD,EAAI,CAAJ,CAAD,CAAA;KAzDzB;AA2D7Bh/E,IAAAA,KAAK,EAAE;AACL27E,MAAAA,WAAW,EAAEuC,eAAe,CAAC,OAAD,CADvB;AAELrC,MAAAA,mBAAmB,EAAE;AACnB2C,QAAAA,MAAM,EAAEI,UADW;AAEnBriD,QAAAA,QAAQ,EAAEqiD,UAFS;AAGnBH,QAAAA,SAAS,EAAEG,UAHQ;AAInBD,QAAAA,KAAK,EAAEC,UAAAA;AAJY,OAAA;KA7DM;AAoE7BxlF,IAAAA,MAAM,EAAE;AACNuiF,MAAAA,WAAW,EAAE,SAAUz1E,WAAAA,CAAAA,KAAV,EAAiB+4E,MAAjB,EAAyBC,MAAzB,EAAiC;AAC5C,QAAA,IAAIC,SAAS,GAAG,IAAA,CAAKjD,gBAAL,CAAsBh2E,KAAtB,CAAhB,CAAA;AACAg5E,QAAAA,MAAM,CAAC,QAAD,EAAWC,SAAX,CAAN,CAAA;OAHI;AAKNtD,MAAAA,mBAAmB,EAAE;AACnB2C,QAAAA,MAAM,EAAEY,YADW;AAEnB7iD,QAAAA,QAAQ,EAAE6hD,aAFS;AAGnBK,QAAAA,SAAS,EAAE,SAAA,SAAA,CAAUtC,UAAV,EAAsBj2E,KAAtB,EAA6B;UACtC,IAAI6pC,MAAM,GAAG2uC,kBAAkB,CAACrzF,IAAnB,CAAwB,IAAxB,EAA8B6a,KAA9B,CAAb,CAAA;;UAEA,IAAI6pC,MAAM,IAAI,IAAd,EAAoB;YAClBA,MAAM,GAAGqvC,YAAY,CAAC/zF,IAAb,CAAkB,IAAlB,EAAwB8wF,UAAxB,CAAT,CAAA;AACD,WAAA;;AAED,UAAA,OAAOpsC,MAAP,CAAA;SAViB;AAYnB4uC,QAAAA,KAAK,EAAEC,UAAAA;AAZY,OAAA;KAzEM;AAwF7BvkF,IAAAA,UAAU,EAAE;AACVshF,MAAAA,WAAW,EAAEuC,eAAe,CAAC,YAAD,CADlB;AAEVrC,MAAAA,mBAAmB,EAAEmD,+BAA+B,CAAC,CAAC,CAAD,EAAI,CAAJ,CAAD,CAAA;AAF1C,KAAA;GAxFd,CAAA;AA6FA,EAAA,OAAO3D,aAAP,CAAA;AACD,CA5SD,EAFA,CAAA;;AAgTA,SAASU,sBAAT,CAAgCl+C,UAAhC,EAA4C;AAC1C,EAAA,IAAI2/C,SAAS,GAAG3/C,UAAU,CAAC2/C,SAA3B,CAAA;EACA3/C,UAAU,CAACwhD,gBAAX,GAA8B,KAA9B,CAAA;EACA3wE,MAAA,CAAY8uE,SAAZ,EAAuB,UAAUK,KAAV,EAAiB53D,KAAjB,EAAwB;AAC7C43D,IAAAA,KAAK,CAACyB,WAAN,GAAoBr5D,KAApB,CAD6C;AAE7C;;AAEA,IAAA,IAAI43D,KAAK,CAACrB,MAAN,IAAgB,IAApB,EAA0B;MACxB3+C,UAAU,CAACwhD,gBAAX,GAA8B,IAA9B,CAAA;AACD,KAAA;GANH,CAAA,CAAA;AAQD,CAAA;;AAED,SAASrD,8BAAT,CAAwCn+C,UAAxC,EAAoD;AAClD;AACA,EAAA,IAAIvY,UAAU,GAAGuY,UAAU,CAACvY,UAA5B,CAAA;AACA,EAAA,IAAIi6D,WAAW,GAAG1hD,UAAU,CAAC0hD,WAAX,GAAyB,EAA3C,CAAA;AACA,EAAA,IAAI/C,MAAM,GAAG3+C,UAAU,CAAC2+C,MAAxB,CAAA;AACA9oG,EAAAA,MAAI,CAAC4xC,UAAD,EAAa,UAAUk6D,IAAV,EAAgBv5D,KAAhB,EAAuB;AACtCs5D,IAAAA,WAAW,CAACC,IAAD,CAAX,GAAoBv5D,KAApB,CAAA;GADE,CAAJ,CALkD;;AASlD,EAAA,IAAI,CAACvX,SAAA,CAAe8tE,MAAf,CAAL,EAA6B;IAC3B,IAAIiD,WAAW,GAAG,EAAlB,CAAA;;AAEA,IAAA,IAAI/wE,UAAA,CAAgB8tE,MAAhB,CAAJ,EAA6B;AAC3B9oG,MAAAA,MAAI,CAAC8oG,MAAD,EAAS,UAAU1/C,CAAV,EAAa0iD,IAAb,EAAmB;AAC9B,QAAA,IAAIv5D,KAAK,GAAGs5D,WAAW,CAACC,IAAD,CAAvB,CAAA;QACAC,WAAW,CAACx5D,KAAK,IAAI,IAAT,GAAgBA,KAAhB,GAAwBm1D,6BAAzB,CAAX,GAAqEt+C,CAArE,CAAA;AACD,OAHG,CAAJ,CAAA;AAID,KALD,MAKO;AACL;AACA2iD,MAAAA,WAAW,CAACrE,6BAAD,CAAX,GAA6CoB,MAA7C,CAAA;AACD,KAAA;;AAEDA,IAAAA,MAAM,GAAGkD,iBAAiB,CAAC7hD,UAAD,EAAa4hD,WAAb,CAA1B,CAAA;AACD,GAvBiD;AAwBlD;;;AAGA,EAAA,KAAK,IAAI/0G,CAAC,GAAG46C,UAAU,CAACt7C,MAAX,GAAoB,CAAjC,EAAoCU,CAAC,IAAI,CAAzC,EAA4CA,CAAC,EAA7C,EAAiD;AAC/C,IAAA,IAAI8xG,MAAM,CAAC9xG,CAAD,CAAN,IAAa,IAAjB,EAAuB;AACrB,MAAA,OAAO60G,WAAW,CAACj6D,UAAU,CAAC56C,CAAD,CAAX,CAAlB,CAAA;AACA46C,MAAAA,UAAU,CAACugB,GAAX,EAAA,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAASi2C,oBAAT,CAA8Bj+C,UAA9B,EAA0CgK,UAA1C,EAAsD;AACpD,EAAA,IAAI20C,MAAM,GAAG3+C,UAAU,CAAC2+C,MAAxB,CAAA;EACA,IAAImD,SAAS,GAAG,EAAhB,CAAA;;AAEA,EAAA,IAAIjxE,UAAA,CAAgB8tE,MAAhB,CAAJ,EAA6B;AAC3B9oG,IAAAA,MAAI,CAAC8oG,MAAD,EAAS,UAAU1/C,CAAV,EAAa;MACxB6iD,SAAS,CAAC50G,IAAV,CAAe+xD,CAAf,CAAA,CAAA;AACD,KAFG,CAAJ,CAAA;AAGD,GAJD,MAIO,IAAI0/C,MAAM,IAAI,IAAd,EAAoB;IACzBmD,SAAS,CAAC50G,IAAV,CAAeyxG,MAAf,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAIoD,aAAa,GAAG;AAClBtzG,IAAAA,KAAK,EAAE,CADW;AAElB8sB,IAAAA,MAAM,EAAE,CAAA;GAFV,CAAA;;AAKA,EAAA,IAAI,CAACyuC,UAAD,IAAe83C,SAAS,CAAC31G,MAAV,KAAqB,CAApC,IAAyC,CAAC41G,aAAa,CAAC3oF,cAAd,CAA6B4mC,UAAU,CAAC9jD,IAAxC,CAA9C,EAA6F;AAC3F;AACA4lG,IAAAA,SAAS,CAAC,CAAD,CAAT,GAAeA,SAAS,CAAC,CAAD,CAAxB,CAAA;AACD,GAAA;;AAEDD,EAAAA,iBAAiB,CAAC7hD,UAAD,EAAa8hD,SAAb,CAAjB,CAAA;AACD,CAAA;;AAED,SAASb,6BAAT,CAAuCe,UAAvC,EAAmD;EACjD,OAAO;AACLlE,IAAAA,WAAW,EAAE,SAAUz1E,WAAAA,CAAAA,KAAV,EAAiB+4E,MAAjB,EAAyBC,MAAzB,EAAiC;AAC5C;MACA,IAAIY,YAAY,GAAG,IAAK5D,CAAAA,gBAAL,CAAsBh2E,KAAtB,CAAnB,CAF4C;;AAI5Cg5E,MAAAA,MAAM,CAAC,OAAD,EAAUW,UAAU,CAACZ,MAAM,CAAC,OAAD,CAAP,EAAkBa,YAAlB,CAApB,CAAN,CAAA;KALG;AAOLjE,IAAAA,mBAAmB,EAAEmD,+BAA+B,CAAC,CAAC,CAAD,EAAI,CAAJ,CAAD,CAAA;GAPtD,CAAA;AASD,CAAA;;AAED,SAASI,YAAT,CAAsBjD,UAAtB,EAAkC;AAChC,EAAA,IAAIK,MAAM,GAAG,IAAK3kF,CAAAA,MAAL,CAAY2kF,MAAzB,CAAA;AACA,EAAA,OAAOA,MAAM,CAACh2G,IAAI,CAACiD,KAAL,CAAW2iD,WAAS,CAAC+vD,UAAD,EAAa,CAAC,CAAD,EAAI,CAAJ,CAAb,EAAqB,CAAC,CAAD,EAAIK,MAAM,CAACxyG,MAAP,GAAgB,CAApB,CAArB,EAA6C,IAA7C,CAApB,CAAD,CAAN,IAAmF,EAA1F,CAFgC;AAGjC,CAAA;;AAED,SAASk0G,eAAT,CAAyBplF,UAAzB,EAAqC;AACnC,EAAA,OAAO,UAAUoN,KAAV,EAAiB+4E,MAAjB,EAAyBC,MAAzB,EAAiC;IACtCA,MAAM,CAACpmF,UAAD,EAAa,IAAA,CAAKojF,gBAAL,CAAsBh2E,KAAtB,CAAb,CAAN,CAAA;GADF,CAAA;AAGD,CAAA;;AAED,SAASk4E,aAAT,CAAuBjC,UAAvB,EAAmC;AACjC,EAAA,IAAIK,MAAM,GAAG,IAAK3kF,CAAAA,MAAL,CAAY2kF,MAAzB,CAAA;AACA,EAAA,OAAOA,MAAM,CAAC,IAAA,CAAK3kF,MAAL,CAAYkoF,IAAZ,IAAoB5D,UAAU,KAAKf,6BAAnC,GAAmEe,UAAU,GAAGK,MAAM,CAACxyG,MAAvF,GAAgGmyG,UAAjG,CAAb,CAAA;AACD,CAAA;;AAED,SAASyC,UAAT,GAAsB;AACpB;AACA,EAAA,OAAO,KAAK/mF,MAAL,CAAY2kF,MAAZ,CAAmB,CAAnB,CAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASwC,+BAAT,CAAyCgB,YAAzC,EAAuD;EACrD,OAAO;IACLxB,MAAM,EAAE,SAAUrC,MAAAA,CAAAA,UAAV,EAAsB;AAC5B,MAAA,OAAO/vD,WAAS,CAAC+vD,UAAD,EAAa6D,YAAb,EAA2B,IAAKnoF,CAAAA,MAAL,CAAY2kF,MAAvC,EAA+C,IAA/C,CAAhB,CAAA;KAFG;AAILjgD,IAAAA,QAAQ,EAAE6hD,aAJL;AAKLK,IAAAA,SAAS,EAAE,SAAA,SAAA,CAAUtC,UAAV,EAAsBj2E,KAAtB,EAA6B;MACtC,IAAI6pC,MAAM,GAAG2uC,kBAAkB,CAACrzF,IAAnB,CAAwB,IAAxB,EAA8B6a,KAA9B,CAAb,CAAA;;MAEA,IAAI6pC,MAAM,IAAI,IAAd,EAAoB;AAClBA,QAAAA,MAAM,GAAG3jB,WAAS,CAAC+vD,UAAD,EAAa6D,YAAb,EAA2B,IAAA,CAAKnoF,MAAL,CAAY2kF,MAAvC,EAA+C,IAA/C,CAAlB,CAAA;AACD,OAAA;;AAED,MAAA,OAAOzsC,MAAP,CAAA;KAZG;AAcL4uC,IAAAA,KAAK,EAAEC,UAAAA;GAdT,CAAA;AAgBD,CAAA;;AAED,SAASF,kBAAT,CAA4Bx4E,KAA5B,EAAmC;EACjC,IAAI23B,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;AACA,EAAA,IAAI2lF,SAAS,GAAG3/C,UAAU,CAAC2/C,SAA3B,CAAA;;EAEA,IAAI3/C,UAAU,CAACwhD,gBAAf,EAAiC;IAC/B,IAAIY,UAAU,GAAG5E,aAAa,CAACkC,cAAd,CAA6Br3E,KAA7B,EAAoCs3E,SAApC,CAAjB,CAAA;AACA,IAAA,IAAIK,KAAK,GAAGL,SAAS,CAACyC,UAAD,CAArB,CAAA;;AAEA,IAAA,IAAIpC,KAAK,IAAIA,KAAK,CAACrB,MAAnB,EAA2B;AACzB,MAAA,OAAOqB,KAAK,CAACrB,MAAN,CAAa,IAAA,CAAKziG,IAAlB,CAAP,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAAS2lG,iBAAT,CAA2B7hD,UAA3B,EAAuC8hD,SAAvC,EAAkD;EAChD9hD,UAAU,CAAC2+C,MAAX,GAAoBmD,SAApB,CAAA;;AAEA,EAAA,IAAI9hD,UAAU,CAAC9jD,IAAX,KAAoB,OAAxB,EAAiC;IAC/B8jD,UAAU,CAAC0gD,YAAX,GAA0B7vE,GAAA,CAAWixE,SAAX,EAAsB,UAAUpmG,IAAV,EAAgB;AAC9D,MAAA,IAAIjN,OAAK,GAAGgyG,KAAA,CAAc/kG,IAAd,CAAZ,CAAA;;MAEA,IAAI,CAACjN,OAAD,IAAU8R,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAvC,EAAqD;AACnDgyB,QAAAA,IAAI,CAAC,GAAM/2B,GAAAA,IAAN,GAAa,8CAAd,EAA8D,IAA9D,CAAJ,CAAA;AACD,OAAA;;MAED,OAAOjN,OAAK,IAAI,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAhB,CAAA;AACD,KARyB,CAA1B,CAAA;AASD,GAAA;;AAED,EAAA,OAAOqzG,SAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,IAAInE,WAAW,GAAG;EAChBgD,MAAM,EAAE,SAAUt4E,MAAAA,CAAAA,KAAV,EAAiB;AACvB,IAAA,OAAOkmB,WAAS,CAAClmB,KAAD,EAAQ,IAAA,CAAKrO,MAAL,CAAYokF,UAApB,EAAgC,CAAC,CAAD,EAAI,CAAJ,CAAhC,EAAwC,IAAxC,CAAhB,CAAA;GAFc;EAIhBwC,SAAS,EAAE,SAAUv4E,SAAAA,CAAAA,KAAV,EAAiB;AAC1B,IAAA,IAAIs3E,SAAS,GAAG,IAAK3lF,CAAAA,MAAL,CAAY2lF,SAA5B,CAAA;IACA,IAAIyC,UAAU,GAAG5E,aAAa,CAACkC,cAAd,CAA6Br3E,KAA7B,EAAoCs3E,SAApC,EAA+C,IAA/C,CAAjB,CAAA;;IAEA,IAAIyC,UAAU,IAAI,IAAlB,EAAwB;MACtB,OAAO7zD,WAAS,CAAC6zD,UAAD,EAAa,CAAC,CAAD,EAAIzC,SAAS,CAACxzG,MAAV,GAAmB,CAAvB,CAAb,EAAwC,CAAC,CAAD,EAAI,CAAJ,CAAxC,EAAgD,IAAhD,CAAhB,CAAA;AACD,KAAA;GAVa;EAYhBuyD,QAAQ,EAAE,SAAUr2B,QAAAA,CAAAA,KAAV,EAAiB;AACzB,IAAA,IAAI+f,KAAK,GAAG,IAAA,CAAKpuB,MAAL,CAAYytB,UAAZ,GAAyB,IAAA,CAAKztB,MAAL,CAAY0nF,WAAZ,CAAwBr5E,KAAxB,CAAzB,GAA0DA,KAAtE,CADyB;;AAGzB,IAAA,OAAO+f,KAAK,IAAI,IAAT,GAAgBm1D,6BAAhB,GAAgDn1D,KAAvD,CAAA;GAfc;EAiBhB04D,KAAK,EAAEjwE,IAAOivC;AAjBE,CAAlB,CAAA;;AAoBA,SAASqgC,UAAT,CAAoBD,KAApB,EAA2B7zG,CAA3B,EAA8BC,CAA9B,EAAiC;EAC/B,OAAO4zG,KAAK,GAAG7zG,CAAC,IAAIC,CAAR,GAAYD,CAAC,GAAGC,CAA5B,CAAA;AACD;;AC7hBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BA,IAAI+1G,iBAAiB,GAAG,WAAxB,CAAA;AACA,IAAI9rC,OAAK,GAAGC,SAAS,EAArB,CAAA;AACA,oBAAe;AACbx8B,EAAAA,UAAU,EAAE,SADC;EAEb5wC,KAAK,EAAE,SAAUy2B,KAAAA,CAAAA,WAAV,EAAuB;AAC5B,IAAA,IAAIumE,IAAI,GAAGvmE,WAAW,CAAC3E,OAAZ,GAAsBkrE,IAAjC,CAAA;AACA,IAAA,IAAIv+E,IAAI,GAAGu+E,IAAI,CAACv+E,IAAhB,CAAA;;AAEA,IAAA,IAAIA,IAAI,CAAC+iF,SAAL,EAAJ,EAAsB;AACpB,MAAA,OAAA;AACD,KAAA;;IAED0X,UAAU,CAACz6F,IAAD;IACV,EADU,EACNgY,WAAW,CAACswE,WAAZ,GAA0B9E,YAA1B,EADM,EACoCxrE,WADpC,CAAV,CAAA;AAED,GAAA;AAZY,CAAf,CAAA;;AAeA,SAASyiF,UAAT,CAAoB5+F,IAApB,EAA0B6+F,gBAA1B,EAA4CC,iBAA5C,EAA+D3iF,WAA/D,EAA4E;AAC1E,EAAA,IAAIk6E,SAAS,GAAGr2F,IAAI,CAAC0d,QAAL,EAAhB,CAAA;AACA,EAAA,IAAIqhF,UAAU,GAAG/+F,IAAI,CAACmmB,SAAL,EAAjB,CAAA;EACA,IAAIxM,IAAI,GAAG3Z,IAAI,CAAC+mF,QAAL,CAAcptE,IAAzB,CAH0E;;EAK1E,IAAI,CAAColF,UAAD,IAAeA,UAAU,CAACz3F,SAA1B,IAAuC,CAACy3F,UAAU,CAACzI,QAAvD,EAAiE;AAC/D,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI0I,kBAAkB,GAAG3I,SAAS,CAAC34E,QAAV,CAAmBihF,iBAAnB,CAAzB,CAAA;EACA,IAAIM,OAAO,GAAGC,YAAY,CAACF,kBAAD,EAAqBH,gBAArB,EAAuC1iF,WAAvC,CAA1B,CAAA;AACA,EAAA,IAAI4vE,WAAW,GAAGpyE,IAAI,CAACqyE,sBAAL,CAA4BhsF,IAAI,CAAC4Z,SAAjC,EAA4C,OAA5C,CAAlB,CAX0E;;AAa1E,EAAA,IAAIgjB,WAAW,GAAGoiE,kBAAkB,CAACphF,GAAnB,CAAuB,aAAvB,CAAlB,CAAA;AACA,EAAA,IAAI8wE,qBAAqB,GAAGsQ,kBAAkB,CAACphF,GAAnB,CAAuB,uBAAvB,CAA5B,CAAA;AACA,EAAA,IAAIuhF,aAAJ,CAAA;;EAEA,IAAIzQ,qBAAqB,IAAI,IAA7B,EAAmC;AACjC;AACAyQ,IAAAA,aAAa,GAAGC,cAAc,CAACH,OAAD,CAA9B,CAAA;AACAriE,IAAAA,WAAW,GAAGyiE,oBAAoB,CAAC3Q,qBAAD,EAAwByQ,aAAxB,CAAlC,CAAA;AACD,GAAA;;EAEDpT,WAAW,CAAC7hG,MAAZ,GAAqB0yC,WAArB,CAAA;AACA,EAAA,IAAIqqD,YAAY,GAAGjnF,IAAI,CAACinF,YAAxB,CAAA;;AAEA,EAAA,IAAI,CAACA,YAAD,IAAiB,CAACA,YAAY,CAACx+F,MAAnC,EAA2C;AACzC02G,IAAAA,aAAa,GAAGC,cAAc,CAACH,OAAD,CAA9B,CADyC;;IAGzClT,WAAW,CAAC/hG,IAAZ,GAAmBm1G,aAAnB,CAAA;AACD,GAJD,MAIO;AACL,IAAA,IAAIG,SAAS,GAAGC,kBAAkB,CAACv/F,IAAD,EAAOq2F,SAAP,EAAkB0I,UAAlB,EAA8BC,kBAA9B,EAAkDC,OAAlD,EAA2DhY,YAA3D,CAAlC,CADK;;AAGL90F,IAAAA,MAAI,CAAC80F,YAAD,EAAe,UAAU55F,KAAV,EAAiBq3C,KAAjB,EAAwB;AACzC;AACA,MAAA,IAAIr3C,KAAK,CAAC25F,KAAN,IAAe8X,iBAAiB,CAACr2G,MAAjC,IAA2C4E,KAAK,KAAKyxG,iBAAiB,CAACzxG,KAAK,CAAC25F,KAAP,CAA1E,EAAyF;AACvF,QAAA,IAAIwY,WAAW,GAAGtE,WAAS,CAAC7E,SAAD,EAAY4I,OAAZ,EAAqB5xG,KAArB,EAA4Bq3C,KAA5B,EAAmC46D,SAAnC,EAA8CnjF,WAA9C,CAA3B,CAAA;QACAyiF,UAAU,CAACvxG,KAAD,EAAQmyG,WAAR,EAAqBV,iBAArB,EAAwC3iF,WAAxC,CAAV,CAAA;AACD,OAAA;AACF,KANG,CAAJ,CAAA;AAOD,GAAA;AACF,CAAA;;AAED,SAAS+iF,YAAT,CAAsBF,kBAAtB,EAA0CH,gBAA1C,EAA4D1iF,WAA5D,EAAyE;AACvE,EAAA,IAAI8iF,OAAO,GAAGjuG,MAAM,CAAC,EAAD,EAAK6tG,gBAAL,CAApB,CAAA;AACA,EAAA,IAAI3R,yBAAyB,GAAG/wE,WAAW,CAAC+wE,yBAA5C,CAAA;EACA/6F,MAAI,CAAC,CAAC,OAAD,EAAU,YAAV,EAAwB,iBAAxB,CAAD,EAA6C,UAAUstG,UAAV,EAAsB;AACrE;AACAvS,IAAAA,yBAAyB,CAACuS,UAAD,CAAzB,GAAwCZ,gBAAgB,CAACY,UAAD,CAAxD,CAAA;AACA,IAAA,IAAIp2G,GAAG,GAAG21G,kBAAkB,CAACphF,GAAnB,CAAuB6hF,UAAvB,CAAV,CAAA;AACAvS,IAAAA,yBAAyB,CAACuS,UAAD,CAAzB,GAAwC,IAAxC,CAAA;IACAp2G,GAAG,IAAI,IAAP,KAAgB41G,OAAO,CAACQ,UAAD,CAAP,GAAsBp2G,GAAtC,CAAA,CAAA;AACD,GANG,CAAJ,CAAA;AAOA,EAAA,OAAO41G,OAAP,CAAA;AACD,CAAA;;AAED,SAASG,cAAT,CAAwBH,OAAxB,EAAiC;AAC/B,EAAA,IAAIl0G,KAAK,GAAG20G,oBAAoB,CAACT,OAAD,EAAU,OAAV,CAAhC,CAAA;;AAEA,EAAA,IAAIl0G,KAAJ,EAAW;AACT,IAAA,IAAIwjG,UAAU,GAAGmR,oBAAoB,CAACT,OAAD,EAAU,YAAV,CAArC,CAAA;AACA,IAAA,IAAIzQ,eAAe,GAAGkR,oBAAoB,CAACT,OAAD,EAAU,iBAAV,CAA1C,CAAA;;AAEA,IAAA,IAAIzQ,eAAJ,EAAqB;MACnBzjG,KAAK,GAAG40G,SAAS,CAAC50G,KAAD,EAAQ,IAAR,EAAc,IAAd,EAAoByjG,eAApB,CAAjB,CAAA;AACD,KAAA;;AAED,IAAA,IAAID,UAAJ,EAAgB;AACdxjG,MAAAA,KAAK,GAAG60G,WAAW,CAAC70G,KAAD,EAAQwjG,UAAR,CAAnB,CAAA;AACD,KAAA;;AAED,IAAA,OAAOxjG,KAAP,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASs0G,oBAAT,CAA8B3Q,qBAA9B,EAAqDyQ,aAArD,EAAoE;EAClE,OAAOA,aAAa,IAAI,IAAjB;IACLQ,SAAS,CAACR,aAAD,EAAgB,IAAhB,EAAsB,IAAtB,EAA4BzQ,qBAA5B,CADJ,GACyD,IADhE,CAAA;AAED,CAAA;;AAED,SAASgR,oBAAT,CAA8BT,OAA9B,EAAuC9yG,IAAvC,EAA6C;AAC3C,EAAA,IAAIw4B,KAAK,GAAGs6E,OAAO,CAAC9yG,IAAD,CAAnB,CAAA;;AAEA,EAAA,IAAIw4B,KAAK,IAAI,IAAT,IAAiBA,KAAK,KAAK,MAA/B,EAAuC;AACrC,IAAA,OAAOA,KAAP,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAS46E,kBAAT,CAA4Bv/F,IAA5B,EAAkCq2F,SAAlC,EAA6C0I,UAA7C,EAAyDC,kBAAzD,EAA6EC,OAA7E,EAAsFhY,YAAtF,EAAoG;AAClG,EAAA,IAAI,CAACA,YAAD,IAAiB,CAACA,YAAY,CAACx+F,MAAnC,EAA2C;AACzC,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIo3G,WAAW,GAAGC,cAAc,CAACzJ,SAAD,EAAY,OAAZ,CAAd,IAAsC4I,OAAO,CAACl0G,KAAR,IAAiB,IAAjB,IAAyBk0G,OAAO,CAACl0G,KAAR,KAAkB,MAA3C,KAAsD+0G,cAAc,CAACzJ,SAAD,EAAY,YAAZ,CAAd,IAA2CyJ,cAAc,CAACzJ,SAAD,EAAY,iBAAZ,CAA/G,CAAxD,CAAA;;EAEA,IAAI,CAACwJ,WAAL,EAAkB;AAChB,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIjR,SAAS,GAAGyH,SAAS,CAACz4E,GAAV,CAAc,WAAd,CAAhB,CAAA;AACA,EAAA,IAAIixE,SAAS,GAAGwH,SAAS,CAACz4E,GAAV,CAAc,WAAd,CAAhB,CAAA;AACA,EAAA,IAAI88E,UAAU,GAAGqE,UAAU,CAACrE,UAAX,CAAsBlsF,KAAtB,EAAjB,CAAA;AACAogF,EAAAA,SAAS,IAAI,IAAb,IAAqBA,SAAS,GAAG8L,UAAU,CAAC,CAAD,CAA3C,KAAmDA,UAAU,CAAC,CAAD,CAAV,GAAgB9L,SAAnE,CAAA,CAAA;AACAC,EAAAA,SAAS,IAAI,IAAb,IAAqBA,SAAS,GAAG6L,UAAU,CAAC,CAAD,CAA3C,KAAmDA,UAAU,CAAC,CAAD,CAAV,GAAgB7L,SAAnE,CAAA,CAAA;AACA,EAAA,IAAIC,cAAc,GAAGuH,SAAS,CAACz4E,GAAV,CAAc,gBAAd,CAArB,CAAA;AACA,EAAA,IAAI/G,GAAG,GAAG;IACRre,IAAI,EAAEqnG,WAAW,CAAC1zG,IADV;AAERuuG,IAAAA,UAAU,EAAEA,UAFJ;IAGRO,MAAM,EAAE4E,WAAW,CAACnuE,KAAAA;GAHtB,CAAA;;AAMA,EAAA,IAAI7a,GAAG,CAACre,IAAJ,KAAa,OAAb,KAAyBs2F,cAAc,KAAK,OAAnB,IAA8BA,cAAc,KAAK,IAA1E,CAAJ,EAAqF;IACnFj4E,GAAG,CAACkjF,aAAJ,GAAoB,UAApB,CAAA;AACAljF,IAAAA,GAAG,CAAC2nF,IAAJ,GAAW,IAAX,CAFmF;AAGpF,GAHD,MAGO;IACL3nF,GAAG,CAACkjF,aAAJ,GAAoB,QAApB,CAAA;AACD,GAAA;;AAED,EAAA,IAAIgG,OAAO,GAAG,IAAIjG,aAAJ,CAAkBjjF,GAAlB,CAAd,CAAA;AACAg8C,EAAAA,OAAK,CAACktC,OAAD,CAAL,CAAeC,gBAAf,GAAkClR,cAAlC,CAAA;AACA,EAAA,OAAOiR,OAAP,CAAA;AACD;AACD;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASD,cAAT,CAAwBzJ,SAAxB,EAAmClqG,IAAnC,EAAyC;AACvC;AACA;AACA,EAAA,IAAIulC,KAAK,GAAG2kE,SAAS,CAACz4E,GAAV,CAAczxB,IAAd,CAAZ,CAAA;EACA,OAAO2V,SAAO,CAAC4vB,KAAD,CAAP,IAAkBA,KAAK,CAACjpC,MAAxB,GAAiC;AACtC0D,IAAAA,IAAI,EAAEA,IADgC;AAEtCulC,IAAAA,KAAK,EAAEA,KAAAA;AAF+B,GAAjC,GAGH,IAHJ,CAAA;AAID,CAAA;;AAED,SAASwpE,WAAT,CAAmB7E,SAAnB,EAA8B4I,OAA9B,EAAuC5xG,KAAvC,EAA8Cq3C,KAA9C,EAAqDq7D,OAArD,EAA8D5jF,WAA9D,EAA2E;AACzE,EAAA,IAAI8jF,YAAY,GAAGjvG,MAAM,CAAC,EAAD,EAAKiuG,OAAL,CAAzB,CAAA;;AAEA,EAAA,IAAIc,OAAJ,EAAa;AACX;AACA,IAAA,IAAIG,WAAW,GAAGH,OAAO,CAACvnG,IAA1B,CAAA;IACA,IAAIs2F,cAAc,GAAGoR,WAAW,KAAK,OAAhB,IAA2BrtC,OAAK,CAACktC,OAAD,CAAL,CAAeC,gBAA/D,CAAA;AACA,IAAA,IAAIr7E,KAAK,GAAGmqE,cAAc,KAAK,OAAnB,GAA6BpqD,KAA7B,GAAqCoqD,cAAc,KAAK,IAAnB,GAA0B3yE,WAAW,CAACqxE,YAAZ,CAAyBngG,KAAK,CAACo6F,KAAN,EAAzB,CAA1B,GAAoEp6F,KAAK,CAAC06F,QAAN,CAAesO,SAAS,CAACz4E,GAAV,CAAc,iBAAd,CAAf,CAArH,CAAA;IACAqiF,YAAY,CAACC,WAAD,CAAZ,GAA4BH,OAAO,CAACpF,gBAAR,CAAyBh2E,KAAzB,CAA5B,CAAA;AACD,GAAA;;AAED,EAAA,OAAOs7E,YAAP,CAAA;AACD;;ACvND;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAwCA,IAAIj4E,SAAO,GAAG/iC,IAAI,CAAC0iB,GAAnB,CAAA;AACA,IAAImgB,SAAO,GAAG7iC,IAAI,CAAC8iC,GAAnB,CAAA;AACA,IAAIo4E,aAAa,GAAGhzE,QAApB,CAAA;AACA,IAAIh7B,MAAI,GAAGg7B,MAAX,CAAA;AACA,IAAIizE,iBAAiB,GAAG,CAAC,WAAD,EAAc,aAAd,CAAxB,CAAA;AACA,IAAIC,cAAc,GAAG,CAAC,WAAD,EAAc,UAAd,CAArB,CAAA;AACA,IAAIC,qBAAqB,GAAG,CAAC,YAAD,EAAe,MAAf,CAA5B,CAAA;AACA,IAAIC,uBAAuB,GAAG,CAAC,YAAD,EAAe,QAAf,CAA9B,CAAA;AACA,CAAA;AACA;AACA;AACA;;AAEA,oBAAe;AACbjqE,EAAAA,UAAU,EAAE,SADC;EAEb5wC,KAAK,EAAE,eAAUy2B,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqCu0B,OAArC,EAA8C;AACnD;AACA;AACA,IAAA,IAAIiqE,OAAO,GAAGx+F,GAAG,CAACmG,QAAJ,EAAd,CAAA;AACA,IAAA,IAAIs4F,QAAQ,GAAGz+F,GAAG,CAACoG,SAAJ,EAAf,CAAA;AACA,IAAA,IAAIs4F,YAAY,GAAGvkF,WAAW,CAAC7F,MAA/B,CAAA;IACA,IAAIkrE,UAAU,GAAGngD,aAAA,CAAqBllB,WAAW,CAACwtB,kBAAZ,EAArB,EAAuD;AACtEz6C,MAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EAD+D;MAEtEhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;AAF8D,KAAvD,CAAjB,CAAA;IAIA,IAAIwP,IAAI,GAAG8oF,YAAY,CAAC9oF,IAAb,IAAqB,EAAhC,CAVmD;;AAYnD,IAAA,IAAI+oF,cAAc,GAAG32D,YAAY,CAACm2D,aAAa,CAAC3e,UAAU,CAACtyF,KAAZ,EAAmB0oB,IAAI,CAAC,CAAD,CAAvB,CAAd,EAA2C4oF,OAA3C,CAAjC,CAAA;AACA,IAAA,IAAII,eAAe,GAAG52D,YAAY,CAACm2D,aAAa,CAAC3e,UAAU,CAACryF,MAAZ,EAAoByoB,IAAI,CAAC,CAAD,CAAxB,CAAd,EAA4C6oF,QAA5C,CAAlC,CAbmD;;AAenD,IAAA,IAAIrO,WAAW,GAAG77D,OAAO,IAAIA,OAAO,CAAC/9B,IAArC,CAAA;AACA,IAAA,IAAI6zF,KAAK,GAAG,CAAC,mBAAD,EAAsB,mBAAtB,CAAZ,CAAA;IACA,IAAIC,UAAU,GAAGC,kBAAA,CAA0Bh2D,OAA1B,EAAmC81D,KAAnC,EAA0ClwE,WAA1C,CAAjB,CAAA;AACA,IAAA,IAAIo5E,QAAQ,GAAGnD,WAAW,KAAK,eAAhB,IAAmCA,WAAW,KAAK,aAAnD,GAAmE77D,OAAO,CAACg/D,QAA3E,GAAsF,IAArG,CAAA;AACA,IAAA,IAAI7L,QAAQ,GAAGvtE,WAAW,CAACswE,WAAZ,EAAf,CAAA;AACA,IAAA,IAAIoU,aAAa,GAAGtU,aAAA,CAAqB7C,QAArB,CAApB,CAAA;;IAEA,IAAI0I,WAAW,KAAK,aAApB,EAAmC;AACjC,MAAA,IAAI0O,QAAQ,GAAG1O,WAAW,KAAK,mBAAhB,GAAsC2O,gBAAgB,CAAC5kF,WAAD,EAAcmwE,UAAd,EAA0B5C,QAA1B,EAAoCiX,cAApC,EAAoDC,eAApD,CAAtD,GAA6HrL,QAAQ,GAAG,CAACA,QAAQ,CAACrmG,KAAV,EAAiBqmG,QAAQ,CAACpmG,MAA1B,CAAH,GAAuC,CAACwxG,cAAD,EAAiBC,eAAjB,CAA3L,CAAA;AACA,MAAA,IAAII,MAAM,GAAGN,YAAY,CAACz5E,IAA1B,CAAA;;MAEA,IAAI+5E,MAAM,IAAIA,MAAM,KAAK,KAArB,IAA8BA,MAAM,KAAK,MAA7C,EAAqD;AACnD;AACAA,QAAAA,MAAM,GAAG,MAAT,CAAA;AACD,OAAA;;AAED,MAAA,IAAI5Z,OAAO,GAAG;QACZ2G,WAAW,EAAE2S,YAAY,CAAC3S,WADd;AAEZ9mE,QAAAA,IAAI,EAAE+5E,MAFM;QAGZhT,SAAS,EAAE0S,YAAY,CAAC1S,SAAAA;AAHZ,OAAd,CATiC;;AAejCtE,MAAAA,QAAQ,CAAC3C,QAAT,CAAkByB,YAAlB,GAfiC;AAgBjC;AACA;AACA;;AAEA,MAAA,IAAIyY,gBAAgB,GAAG;AACrB/6G,QAAAA,CAAC,EAAE,CADkB;AAErBC,QAAAA,CAAC,EAAE,CAFkB;AAGrB+I,QAAAA,KAAK,EAAE4xG,QAAQ,CAAC,CAAD,CAHM;AAIrB3xG,QAAAA,MAAM,EAAE2xG,QAAQ,CAAC,CAAD,CAJK;QAKrBniD,IAAI,EAAEmiD,QAAQ,CAAC,CAAD,CAAR,GAAcA,QAAQ,CAAC,CAAD,CAAA;OAL9B,CAAA;MAOApX,QAAQ,CAAC1vD,SAAT,CAAmBinE,gBAAnB,CAAA,CAAA;MACAC,QAAQ,CAACxX,QAAD,EAAWtC,OAAX,EAAoB,KAApB,EAA2B,CAA3B,CAAR,CA5BiC;;AA8BjC6Z,MAAAA,gBAAgB,GAAGvX,QAAQ,CAACvjE,SAAT,EAAnB,CAAA;AACAh0B,MAAAA,MAAI,CAAC0uG,aAAD,EAAgB,UAAU7gG,IAAV,EAAgB0kC,KAAhB,EAAuB;AACzC,QAAA,IAAIuqD,UAAU,GAAG,CAAC4R,aAAa,CAACn8D,KAAK,GAAG,CAAT,CAAb,IAA4BglD,QAA7B,EAAuC3B,QAAvC,EAAjB,CAAA;AACA/nF,QAAAA,IAAI,CAACg6B,SAAL,CAAe7M,MAAA,CAAc;AAC3ButE,UAAAA,UAAU,EAAE,CAACzL,UAAD,EAAaA,UAAb,CADe;AAE3B5jF,UAAAA,WAAW,EAAE,CAFc;AAG3BurF,UAAAA,WAAW,EAAE,CAAA;SAHA,EAIZqK,gBAJY,CAAf,CAAA,CAAA;AAKD,OAPG,CAAJ,CAAA;AAQD,KAAA;;IAED,IAAIE,QAAQ,GAAGhlF,WAAW,CAAC3E,OAAZ,EAAsBkrE,CAAAA,IAAtB,CAA2Bv+E,IAA1C,CAAA;AACAg9F,IAAAA,QAAQ,CAACnnE,SAAT,CAAmBonE,qBAAqB,CAAC5f,UAAD,EAAa+T,QAAb,EAAuBjJ,UAAvB,CAAxC,EAA4E,IAA5E,CAAA,CAAA;AACAnwE,IAAAA,WAAW,CAACoxE,aAAZ,CAA0B/L,UAA1B,EAjEmD;AAkEnD;;IAEA6f,QAAQ,CAACF,QAAD;IACR,IAAI30F,YAAJ,CAAiB,CAACg1E,UAAU,CAACt7F,CAA7B,EAAgC,CAACs7F,UAAU,CAACr7F,CAA5C,EAA+Cq6G,OAA/C,EAAwDC,QAAxD,CADQ,EAC2DI,aAD3D,EAC0EnX,QAD1E,EACoF,CADpF,CAAR,CAAA;AAED,GAAA;AAxEY,CAAf,CAAA;AA0EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASwX,QAAT,CAAkBlhG,IAAlB,EAAwBonF,OAAxB,EAAiCka,YAAjC,EAA+Cta,KAA/C,EAAsD;AACpD,EAAA,IAAI93F,KAAJ,CAAA;AACA,EAAA,IAAIC,MAAJ,CAAA;;AAEA,EAAA,IAAI6Q,IAAI,CAACknF,SAAL,EAAJ,EAAsB;AACpB,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIkP,UAAU,GAAGp2F,IAAI,CAACmmB,SAAL,EAAjB,CAAA;EACAj3B,KAAK,GAAGknG,UAAU,CAAClnG,KAAnB,CAAA;AACAC,EAAAA,MAAM,GAAGinG,UAAU,CAACjnG,MAApB,CAVoD;;AAYpD,EAAA,IAAIknG,SAAS,GAAGr2F,IAAI,CAAC0d,QAAL,EAAhB,CAAA;AACA,EAAA,IAAIrS,WAAW,GAAGgrF,SAAS,CAACz4E,GAAV,CAAcwiF,iBAAd,CAAlB,CAAA;EACA,IAAImB,YAAY,GAAGlL,SAAS,CAACz4E,GAAV,CAAcyiF,cAAd,IAAgC,CAAnD,CAAA;AACA,EAAA,IAAI/I,gBAAgB,GAAGkK,mBAAmB,CAACnL,SAAD,CAA1C,CAAA;EACA,IAAIO,WAAW,GAAG3xG,IAAI,CAAC0iB,GAAL,CAAS0D,WAAT,EAAsBisF,gBAAtB,CAAlB,CAAA;AACA,EAAA,IAAImK,YAAY,GAAGp2F,WAAW,GAAGk2F,YAAjC,CAAA;AACA,EAAA,IAAIG,iBAAiB,GAAG9K,WAAW,GAAG2K,YAAtC,CAAA;EACAvhG,IAAI,CAACg6B,SAAL,CAAe;AACb3uB,IAAAA,WAAW,EAAEA,WADA;AAEburF,IAAAA,WAAW,EAAEA,WAFA;AAGbU,IAAAA,gBAAgB,EAAEA,gBAAAA;AAHL,GAAf,EAIG,IAJH,CAAA,CAAA;EAKApoG,KAAK,GAAG84B,SAAO,CAAC94B,KAAK,GAAG,CAAIuyG,GAAAA,YAAb,EAA2B,CAA3B,CAAf,CAAA;EACAtyG,MAAM,GAAG64B,SAAO,CAAC74B,MAAM,GAAGsyG,YAAT,GAAwBC,iBAAzB,EAA4C,CAA5C,CAAhB,CAAA;AACA,EAAA,IAAIC,SAAS,GAAGzyG,KAAK,GAAGC,MAAxB,CAAA;AACA,EAAA,IAAI83F,YAAY,GAAG2a,cAAY,CAAC5hG,IAAD,EAAOq2F,SAAP,EAAkBsL,SAAlB,EAA6Bva,OAA7B,EAAsCka,YAAtC,EAAoDta,KAApD,CAA/B,CAAA;;AAEA,EAAA,IAAI,CAACC,YAAY,CAACx+F,MAAlB,EAA0B;AACxB,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIJ,IAAI,GAAG;AACTnC,IAAAA,CAAC,EAAEu7G,YADM;AAETt7G,IAAAA,CAAC,EAAEu7G,iBAFM;AAGTxyG,IAAAA,KAAK,EAAEA,KAHE;AAITC,IAAAA,MAAM,EAAEA,MAAAA;GAJV,CAAA;AAMA,EAAA,IAAI0yG,cAAc,GAAG/5E,SAAO,CAAC54B,KAAD,EAAQC,MAAR,CAA5B,CAAA;AACA,EAAA,IAAI2yG,IAAI,GAAG90F,QAAX,CAxCoD;;EA0CpD,IAAI+0F,GAAG,GAAG,EAAV,CAAA;EACAA,GAAG,CAACpjD,IAAJ,GAAW,CAAX,CAAA;;AAEA,EAAA,KAAK,IAAIx1D,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGy0F,YAAY,CAACx+F,MAAnC,EAA2CU,CAAC,GAAGqJ,GAA/C,GAAqD;AACnD,IAAA,IAAInF,KAAK,GAAG45F,YAAY,CAAC99F,CAAD,CAAxB,CAAA;IACA44G,GAAG,CAACv4G,IAAJ,CAAS6D,KAAT,CAAA,CAAA;AACA00G,IAAAA,GAAG,CAACpjD,IAAJ,IAAYtxD,KAAK,CAAC84B,SAAN,GAAkBw4B,IAA9B,CAAA;AACA,IAAA,IAAIqjD,KAAK,GAAGC,KAAK,CAACF,GAAD,EAAMF,cAAN,EAAsBza,OAAO,CAAC2G,WAA9B,CAAjB,CAJmD;;IAMnD,IAAIiU,KAAK,IAAIF,IAAb,EAAmB;MACjB34G,CAAC,EAAA,CAAA;AACD24G,MAAAA,IAAI,GAAGE,KAAP,CAAA;AACD,KAHD;SAIK;MACDD,GAAG,CAACpjD,IAAJ,IAAYojD,GAAG,CAACz9C,GAAJ,EAAA,CAAUn+B,SAAV,EAAA,CAAsBw4B,IAAlC,CAAA;MACAp1C,QAAQ,CAACw4F,GAAD,EAAMF,cAAN,EAAsBx5G,IAAtB,EAA4Bk5G,YAA5B,EAA0C,KAA1C,CAAR,CAAA;MACAM,cAAc,GAAG/5E,SAAO,CAACz/B,IAAI,CAAC6G,KAAN,EAAa7G,IAAI,CAAC8G,MAAlB,CAAxB,CAAA;AACA4yG,MAAAA,GAAG,CAACt5G,MAAJ,GAAas5G,GAAG,CAACpjD,IAAJ,GAAW,CAAxB,CAAA;AACAmjD,MAAAA,IAAI,GAAG90F,QAAP,CAAA;AACD,KAAA;AACJ,GAAA;;EAED,IAAI+0F,GAAG,CAACt5G,MAAR,EAAgB;IACd8gB,QAAQ,CAACw4F,GAAD,EAAMF,cAAN,EAAsBx5G,IAAtB,EAA4Bk5G,YAA5B,EAA0C,IAA1C,CAAR,CAAA;AACD,GAAA;;EAED,IAAI,CAACD,YAAL,EAAmB;AACjB,IAAA,IAAItS,kBAAkB,GAAGqH,SAAS,CAACz4E,GAAV,CAAc,oBAAd,CAAzB,CAAA;;AAEA,IAAA,IAAIoxE,kBAAkB,IAAI,IAAtB,IAA8B2S,SAAS,GAAG3S,kBAA9C,EAAkE;AAChEsS,MAAAA,YAAY,GAAG,IAAf,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,KAAK,IAAIn4G,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGy0F,YAAY,CAACx+F,MAAnC,EAA2CU,CAAC,GAAGqJ,GAA/C,EAAoDrJ,CAAC,EAArD,EAAyD;AACvD+3G,IAAAA,QAAQ,CAACja,YAAY,CAAC99F,CAAD,CAAb,EAAkBi+F,OAAlB,EAA2Bka,YAA3B,EAAyCta,KAAK,GAAG,CAAjD,CAAR,CAAA;AACD,GAAA;AACF,CAAA;AACD;AACA;AACA;;;AAGA,SAAS4a,cAAT,CAAsB5hG,IAAtB,EAA4Bq2F,SAA5B,EAAuCsL,SAAvC,EAAkDva,OAAlD,EAA2Dka,YAA3D,EAAyEta,KAAzE,EAAgF;AAC9E,EAAA,IAAIC,YAAY,GAAGjnF,IAAI,CAACtT,QAAL,IAAiB,EAApC,CAAA;AACA,EAAA,IAAIw1G,OAAO,GAAG9a,OAAO,CAACngE,IAAtB,CAAA;EACAi7E,OAAO,KAAK,KAAZ,IAAqBA,OAAO,KAAK,MAAjC,KAA4CA,OAAO,GAAG,IAAtD,CAAA,CAAA;AACA,EAAA,IAAIC,aAAa,GAAG/a,OAAO,CAAC4G,SAAR,IAAqB,IAArB,IAA6B5G,OAAO,CAAC4G,SAAR,IAAqBhH,KAAtE,CAJ8E;;AAM9E,EAAA,IAAIsa,YAAY,IAAI,CAACa,aAArB,EAAoC;AAClC,IAAA,OAAOniG,IAAI,CAACinF,YAAL,GAAoB,EAA3B,CAAA;AACD,GAR6E;;;EAW9EA,YAAY,GAAG95D,MAAA,CAAc85D,YAAd,EAA4B,UAAU55F,KAAV,EAAiB;AAC1D,IAAA,OAAO,CAACA,KAAK,CAAC65F,SAAN,EAAR,CAAA;AACD,GAFc,CAAf,CAAA;AAGAjgE,EAAAA,MAAI,CAACggE,YAAD,EAAeib,OAAf,CAAJ,CAAA;EACA,IAAI9+D,IAAI,GAAGg/D,SAAS,CAAC/L,SAAD,EAAYpP,YAAZ,EAA0Bib,OAA1B,CAApB,CAAA;;AAEA,EAAA,IAAI9+D,IAAI,CAAChJ,GAAL,KAAa,CAAjB,EAAoB;AAClB,IAAA,OAAOp6B,IAAI,CAACinF,YAAL,GAAoB,EAA3B,CAAA;AACD,GAAA;;AAED7jD,EAAAA,IAAI,CAAChJ,GAAL,GAAWioE,iBAAiB,CAAChM,SAAD,EAAYsL,SAAZ,EAAuBv+D,IAAI,CAAChJ,GAA5B,EAAiC8nE,OAAjC,EAA0Cjb,YAA1C,CAA5B,CAAA;;AAEA,EAAA,IAAI7jD,IAAI,CAAChJ,GAAL,KAAa,CAAjB,EAAoB;AAClB,IAAA,OAAOp6B,IAAI,CAACinF,YAAL,GAAoB,EAA3B,CAAA;AACD,GAzB6E;;;AA4B9E,EAAA,KAAK,IAAI99F,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGy0F,YAAY,CAACx+F,MAAnC,EAA2CU,CAAC,GAAGqJ,GAA/C,EAAoDrJ,CAAC,EAArD,EAAyD;AACvD,IAAA,IAAIw1D,IAAI,GAAGsoC,YAAY,CAAC99F,CAAD,CAAZ,CAAgB4+F,QAAhB,EAAA,GAA6B3kD,IAAI,CAAChJ,GAAlC,GAAwCunE,SAAnD,CADuD;;AAGvD1a,IAAAA,YAAY,CAAC99F,CAAD,CAAZ,CAAgB6wC,SAAhB,CAA0B;AACxB2kB,MAAAA,IAAI,EAAEA,IAAAA;KADR,CAAA,CAAA;AAGD,GAAA;;AAED,EAAA,IAAIwjD,aAAJ,EAAmB;AACjBlb,IAAAA,YAAY,CAACx+F,MAAb,IAAuBuX,IAAI,CAACg6B,SAAL,CAAe;AACpC27D,MAAAA,UAAU,EAAE,IAAA;KADS,EAEpB,IAFoB,CAAvB,CAAA;IAGA1O,YAAY,CAACx+F,MAAb,GAAsB,CAAtB,CAAA;AACD,GAAA;;EAEDuX,IAAI,CAACinF,YAAL,GAAoBA,YAApB,CAAA;EACAjnF,IAAI,CAACg6B,SAAL,CAAe;IACb0gE,UAAU,EAAEt3D,IAAI,CAACs3D,UAAAA;AADJ,GAAf,EAEG,IAFH,CAAA,CAAA;AAGA,EAAA,OAAOzT,YAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASob,iBAAT,CAA2BhM,SAA3B,EAAsCsL,SAAtC,EAAiDvnE,GAAjD,EAAsD8nE,OAAtD,EAA+DI,eAA/D,EAAgF;AAC9E;EACA,IAAI,CAACJ,OAAL,EAAc;AACZ,IAAA,OAAO9nE,GAAP,CAAA;AACD,GAAA;;AAED,EAAA,IAAI20D,UAAU,GAAGsH,SAAS,CAACz4E,GAAV,CAAc,YAAd,CAAjB,CAAA;AACA,EAAA,IAAIprB,GAAG,GAAG8vG,eAAe,CAAC75G,MAA1B,CAAA;AACA,EAAA,IAAI85G,WAAW,GAAG/vG,GAAlB,CAR8E;;AAU9E,EAAA,KAAK,IAAIrJ,CAAC,GAAGqJ,GAAG,GAAG,CAAnB,EAAsBrJ,CAAC,IAAI,CAA3B,EAA8BA,CAAC,EAA/B,EAAmC;AACjC,IAAA,IAAIw7B,KAAK,GAAG29E,eAAe,CAACJ,OAAO,KAAK,KAAZ,GAAoB1vG,GAAG,GAAGrJ,CAAN,GAAU,CAA9B,GAAkCA,CAAnC,CAAf,CAAqD4+F,QAArD,EAAZ,CAAA;;AAEA,IAAA,IAAIpjE,KAAK,GAAGyV,GAAR,GAAcunE,SAAd,GAA0B5S,UAA9B,EAA0C;AACxCwT,MAAAA,WAAW,GAAGp5G,CAAd,CAAA;AACAixC,MAAAA,GAAG,IAAIzV,KAAP,CAAA;AACD,KAAA;AACF,GAAA;;EAEDu9E,OAAO,KAAK,KAAZ,GAAoBI,eAAe,CAACl0F,MAAhB,CAAuB,CAAvB,EAA0B5b,GAAG,GAAG+vG,WAAhC,CAApB,GAAmED,eAAe,CAACl0F,MAAhB,CAAuBm0F,WAAvB,EAAoC/vG,GAAG,GAAG+vG,WAA1C,CAAnE,CAAA;AACA,EAAA,OAAOnoE,GAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASnT,MAAT,CAAcggE,YAAd,EAA4Bib,OAA5B,EAAqC;AACnC,EAAA,IAAIA,OAAJ,EAAa;AACXjb,IAAAA,YAAY,CAAChgE,IAAb,CAAkB,UAAUt+B,CAAV,EAAaC,CAAb,EAAgB;MAChC,IAAIy4B,IAAI,GAAG6gF,OAAO,KAAK,KAAZ,GAAoBv5G,CAAC,CAACo/F,QAAF,EAAen/F,GAAAA,CAAC,CAACm/F,QAAF,EAAnC,GAAkDn/F,CAAC,CAACm/F,QAAF,EAAep/F,GAAAA,CAAC,CAACo/F,QAAF,EAA5E,CAAA;MACA,OAAO1mE,IAAI,KAAK,CAAT,GAAa6gF,OAAO,KAAK,KAAZ,GAAoBv5G,CAAC,CAACixB,SAAF,GAAchxB,CAAC,CAACgxB,SAApC,GAAgDhxB,CAAC,CAACgxB,SAAF,GAAcjxB,CAAC,CAACixB,SAA7E,GAAyFyH,IAAhG,CAAA;KAFF,CAAA,CAAA;AAID,GAAA;;AAED,EAAA,OAAO4lE,YAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASmb,SAAT,CAAmB/L,SAAnB,EAA8B3pG,QAA9B,EAAwCw1G,OAAxC,EAAiD;AAC/C;EACA,IAAI9nE,GAAG,GAAG,CAAV,CAAA;;AAEA,EAAA,KAAK,IAAIjxC,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAG9F,QAAQ,CAACjE,MAA/B,EAAuCU,CAAC,GAAGqJ,GAA3C,EAAgDrJ,CAAC,EAAjD,EAAqD;AACnDixC,IAAAA,GAAG,IAAI1tC,QAAQ,CAACvD,CAAD,CAAR,CAAY4+F,QAAZ,EAAP,CAAA;AACD,GAN8C;AAO/C;AACA;AACA;;;AAGA,EAAA,IAAI54D,SAAS,GAAGknE,SAAS,CAACz4E,GAAV,CAAc,iBAAd,CAAhB,CAAA;EACA,IAAI88E,UAAJ,CAb+C;;AAe/C,EAAA,IAAI,CAAChuG,QAAD,IAAa,CAACA,QAAQ,CAACjE,MAA3B,EAAmC;AACjCiyG,IAAAA,UAAU,GAAG,CAAC91E,GAAD,EAAMA,GAAN,CAAb,CAAA;AACD,GAFD,MAEO,IAAIuK,SAAS,KAAK,OAAd,IAAyB+yE,OAA7B,EAAsC;IAC3CxH,UAAU,GAAG,CAAChuG,QAAQ,CAACA,QAAQ,CAACjE,MAAT,GAAkB,CAAnB,CAAR,CAA8Bs/F,QAA9B,EAAD,EAA2Cr7F,QAAQ,CAAC,CAAD,CAAR,CAAYq7F,QAAZ,EAA3C,CAAb,CAAA;AACAma,IAAAA,OAAO,KAAK,KAAZ,IAAqBxH,UAAU,CAAC9qE,OAAX,EAArB,CAAA;AACD,GAHM;OAIF;AACD8qE,IAAAA,UAAU,GAAG,CAAC1tF,QAAD,EAAW,CAACA,QAAZ,CAAb,CAAA;AACA7a,IAAAA,MAAI,CAACzF,QAAD,EAAW,UAAUW,KAAV,EAAiB;AAC9B,MAAA,IAAIs3B,KAAK,GAAGt3B,KAAK,CAAC06F,QAAN,CAAe54D,SAAf,CAAZ,CAAA;MACAxK,KAAK,GAAG+1E,UAAU,CAAC,CAAD,CAAlB,KAA0BA,UAAU,CAAC,CAAD,CAAV,GAAgB/1E,KAA1C,CAAA,CAAA;MACAA,KAAK,GAAG+1E,UAAU,CAAC,CAAD,CAAlB,KAA0BA,UAAU,CAAC,CAAD,CAAV,GAAgB/1E,KAA1C,CAAA,CAAA;AACD,KAJG,CAAJ,CAAA;AAKD,GAAA;;EAEH,OAAO;AACLyV,IAAAA,GAAG,EAAEA,GADA;AAELsgE,IAAAA,UAAU,EAAEA,UAAAA;GAFd,CAAA;AAID,CAAA;AACD;AACA;AACA;AACA;;;AAGA,SAASuH,KAAT,CAAeF,GAAf,EAAoBF,cAApB,EAAoCvqE,KAApC,EAA2C;EACzC,IAAIkrE,OAAO,GAAG,CAAd,CAAA;EACA,IAAIC,OAAO,GAAGz1F,QAAd,CAAA;;EAEA,KAAK,IAAI7jB,CAAC,GAAG,CAAR,EAAWw1D,IAAI,GAAG,KAAK,CAAvB,EAA0BnsD,GAAG,GAAGuvG,GAAG,CAACt5G,MAAzC,EAAiDU,CAAC,GAAGqJ,GAArD,EAA0DrJ,CAAC,EAA3D,EAA+D;IAC7Dw1D,IAAI,GAAGojD,GAAG,CAAC54G,CAAD,CAAH,CAAOg9B,SAAP,GAAmBw4B,IAA1B,CAAA;;AAEA,IAAA,IAAIA,IAAJ,EAAU;AACRA,MAAAA,IAAI,GAAG8jD,OAAP,KAAmBA,OAAO,GAAG9jD,IAA7B,CAAA,CAAA;AACAA,MAAAA,IAAI,GAAG6jD,OAAP,KAAmBA,OAAO,GAAG7jD,IAA7B,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;EAED,IAAI+jD,UAAU,GAAGX,GAAG,CAACpjD,IAAJ,GAAWojD,GAAG,CAACpjD,IAAhC,CAAA;AACA,EAAA,IAAI31D,CAAC,GAAG64G,cAAc,GAAGA,cAAjB,GAAkCvqE,KAA1C,CAAA;AACA,EAAA,OAAOorE,UAAU,GAAG16E,SAAO,CAACh/B,CAAC,GAAGw5G,OAAJ,GAAcE,UAAf,EAA2BA,UAAU,IAAI15G,CAAC,GAAGy5G,OAAR,CAArC,CAAV,GAAmEz1F,QAApF,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASzD,QAAT,CAAkBw4F,GAAlB,EAAuBF,cAAvB,EAAuCx5G,IAAvC,EAA6Ck5G,YAA7C,EAA2DoB,KAA3D,EAAkE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAIC,SAAS,GAAGf,cAAc,KAAKx5G,IAAI,CAAC6G,KAAxB,GAAgC,CAAhC,GAAoC,CAApD,CAAA;EACA,IAAI2zG,SAAS,GAAG,CAAA,GAAID,SAApB,CAAA;AACA,EAAA,IAAIE,EAAE,GAAG,CAAC,GAAD,EAAM,GAAN,CAAT,CAAA;AACA,EAAA,IAAIC,EAAE,GAAG,CAAC,OAAD,EAAU,QAAV,CAAT,CAAA;EACA,IAAI9N,IAAI,GAAG5sG,IAAI,CAACy6G,EAAE,CAACF,SAAD,CAAH,CAAf,CAAA;EACA,IAAII,cAAc,GAAGnB,cAAc,GAAGE,GAAG,CAACpjD,IAAJ,GAAWkjD,cAAd,GAA+B,CAAlE,CAAA;;EAEA,IAAIc,KAAK,IAAIK,cAAc,GAAG36G,IAAI,CAAC06G,EAAE,CAACF,SAAD,CAAH,CAAlC,EAAmD;IACjDG,cAAc,GAAG36G,IAAI,CAAC06G,EAAE,CAACF,SAAD,CAAH,CAArB,CADiD;AAElD,GAAA;;AAED,EAAA,KAAK,IAAI15G,CAAC,GAAG,CAAR,EAAW85G,MAAM,GAAGlB,GAAG,CAACt5G,MAA7B,EAAqCU,CAAC,GAAG85G,MAAzC,EAAiD95G,CAAC,EAAlD,EAAsD;AACpD,IAAA,IAAI6W,IAAI,GAAG+hG,GAAG,CAAC54G,CAAD,CAAd,CAAA;IACA,IAAI41G,UAAU,GAAG,EAAjB,CAAA;AACA,IAAA,IAAInmF,IAAI,GAAGoqF,cAAc,GAAGhjG,IAAI,CAACmmB,SAAL,EAAA,CAAiBw4B,IAAjB,GAAwBqkD,cAA3B,GAA4C,CAArE,CAAA;IACA,IAAIE,GAAG,GAAGnE,UAAU,CAACgE,EAAE,CAACF,SAAD,CAAH,CAAV,GAA4B76E,SAAO,CAACg7E,cAAc,GAAG,CAAIzB,GAAAA,YAAtB,EAAoC,CAApC,CAA7C,CAJoD;;AAMpD,IAAA,IAAI4B,MAAM,GAAG96G,IAAI,CAACy6G,EAAE,CAACF,SAAD,CAAH,CAAJ,GAAsBv6G,IAAI,CAAC06G,EAAE,CAACH,SAAD,CAAH,CAA1B,GAA4C3N,IAAzD,CAAA;AACA,IAAA,IAAImO,KAAK,GAAGj6G,CAAC,KAAK85G,MAAM,GAAG,CAAf,IAAoBE,MAAM,GAAGvqF,IAA7B,GAAoCuqF,MAApC,GAA6CvqF,IAAzD,CAAA;AACA,IAAA,IAAIyqF,GAAG,GAAGtE,UAAU,CAACgE,EAAE,CAACH,SAAD,CAAH,CAAV,GAA4B56E,SAAO,CAACo7E,KAAK,GAAG,IAAI7B,YAAb,EAA2B,CAA3B,CAA7C,CAAA;IACAxC,UAAU,CAAC+D,EAAE,CAACD,SAAD,CAAH,CAAV,GAA4Bx6G,IAAI,CAACy6G,EAAE,CAACD,SAAD,CAAH,CAAJ,GAAsB/6E,SAAO,CAACy5E,YAAD,EAAe2B,GAAG,GAAG,CAArB,CAAzD,CAAA;AACAnE,IAAAA,UAAU,CAAC+D,EAAE,CAACF,SAAD,CAAH,CAAV,GAA4B3N,IAAI,GAAGntE,SAAO,CAACy5E,YAAD,EAAe8B,GAAG,GAAG,CAArB,CAA1C,CAAA;AACApO,IAAAA,IAAI,IAAImO,KAAR,CAAA;AACApjG,IAAAA,IAAI,CAACg6B,SAAL,CAAe+kE,UAAf,EAA2B,IAA3B,CAAA,CAAA;AACD,GAAA;;AAED12G,EAAAA,IAAI,CAACy6G,EAAE,CAACD,SAAD,CAAH,CAAJ,IAAuBG,cAAvB,CAAA;AACA36G,EAAAA,IAAI,CAAC06G,EAAE,CAACF,SAAD,CAAH,CAAJ,IAAuBG,cAAvB,CAAA;AACD;;;AAGD,SAASjC,gBAAT,CAA0B5kF,WAA1B,EAAuCmwE,UAAvC,EAAmD5C,QAAnD,EAA6DiX,cAA7D,EAA6EC,eAA7E,EAA8F;AAC5F;AACA;AACA,EAAA,IAAI9Y,QAAQ,GAAG,CAACwE,UAAU,IAAI,EAAf,EAAmBtsF,IAAlC,CAAA;AACA,EAAA,IAAIsjG,WAAW,GAAG,CAAC3C,cAAD,EAAiBC,eAAjB,CAAlB,CAAA;;AAEA,EAAA,IAAI,CAAC9Y,QAAD,IAAaA,QAAQ,KAAK4B,QAA9B,EAAwC;AACtC,IAAA,OAAO4Z,WAAP,CAAA;AACD,GAAA;;AAED,EAAA,IAAInjF,MAAJ,CAAA;AACA,EAAA,IAAIojF,QAAQ,GAAG5C,cAAc,GAAGC,eAAhC,CAAA;EACA,IAAIjiD,IAAI,GAAG4kD,QAAQ,GAAGpnF,WAAW,CAAC7F,MAAZ,CAAmB43E,eAAzC,CAAA;;AAEA,EAAA,OAAO/tE,MAAM,GAAG2nE,QAAQ,CAACloF,UAAzB,EAAqC;AACnC;IACA,IAAIw6B,GAAG,GAAG,CAAV,CAAA;AACA,IAAA,IAAI4kD,QAAQ,GAAG7+D,MAAM,CAACzzB,QAAtB,CAAA;;AAEA,IAAA,KAAK,IAAIvD,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGwsF,QAAQ,CAACv2F,MAA/B,EAAuCU,CAAC,GAAGqJ,GAA3C,EAAgDrJ,CAAC,EAAjD,EAAqD;AACnDixC,MAAAA,GAAG,IAAI4kD,QAAQ,CAAC71F,CAAD,CAAR,CAAY4+F,QAAZ,EAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAIyb,aAAa,GAAG1b,QAAQ,CAACC,QAAT,EAApB,CAAA;;IAEA,IAAIyb,aAAa,KAAK,CAAtB,EAAyB;AACvB,MAAA,OAAOF,WAAP,CAAA;AACD,KAAA;;AAED3kD,IAAAA,IAAI,IAAIvkB,GAAG,GAAGopE,aAAd,CAfmC;;AAiBnC,IAAA,IAAI5sC,WAAW,GAAGz2C,MAAM,CAACzC,QAAP,EAAlB,CAAA;AACA,IAAA,IAAIrS,WAAW,GAAGurD,WAAW,CAACh5C,GAAZ,CAAgBwiF,iBAAhB,CAAlB,CAAA;AACA,IAAA,IAAIxJ,WAAW,GAAG3xG,IAAI,CAAC0iB,GAAL,CAAS0D,WAAT,EAAsBm2F,mBAAmB,CAAC5qC,WAAD,CAAzC,CAAlB,CAAA;AACAjY,IAAAA,IAAI,IAAI,CAAItzC,GAAAA,WAAJ,GAAkBA,WAAlB,GAAgC,CAAC,CAAIA,GAAAA,WAAJ,GAAkBurF,WAAnB,IAAkC3xG,IAAI,CAACe,GAAL,CAAS24D,IAAT,EAAe,GAAf,CAA1E,CAAA;AACAA,IAAAA,IAAI,GAAG8kD,gBAAP,KAA4B9kD,IAAI,GAAG8kD,gBAAnC,CAAA,CAAA;AACA3b,IAAAA,QAAQ,GAAG3nE,MAAX,CAAA;AACD,GAAA;;AAEDw+B,EAAAA,IAAI,GAAG4kD,QAAP,KAAoB5kD,IAAI,GAAG4kD,QAA3B,CAAA,CAAA;EACA,IAAIx3F,KAAK,GAAG9mB,IAAI,CAACe,GAAL,CAAS24D,IAAI,GAAG4kD,QAAhB,EAA0B,GAA1B,CAAZ,CAAA;EACA,OAAO,CAAC5C,cAAc,GAAG50F,KAAlB,EAAyB60F,eAAe,GAAG70F,KAA3C,CAAP,CAAA;AACD;;;AAGD,SAASq1F,qBAAT,CAA+B5f,UAA/B,EAA2C+T,QAA3C,EAAqDjJ,UAArD,EAAiE;AAC/D,EAAA,IAAIiJ,QAAJ,EAAc;IACZ,OAAO;MACLrvG,CAAC,EAAEqvG,QAAQ,CAACrvG,CADP;MAELC,CAAC,EAAEovG,QAAQ,CAACpvG,CAAAA;KAFd,CAAA;AAID,GAAA;;AAED,EAAA,IAAIu9G,eAAe,GAAG;AACpBx9G,IAAAA,CAAC,EAAE,CADiB;AAEpBC,IAAAA,CAAC,EAAE,CAAA;GAFL,CAAA;;EAKA,IAAI,CAACmmG,UAAL,EAAiB;AACf,IAAA,OAAOoX,eAAP,CAAA;AACD,GAf8D;AAgB/D;AACA;;;AAGA,EAAA,IAAIpa,UAAU,GAAGgD,UAAU,CAACtsF,IAA5B,CAAA;AACA,EAAA,IAAIqhC,MAAM,GAAGioD,UAAU,CAACnjE,SAAX,EAAb,CAAA;;EAEA,IAAI,CAACkb,MAAL,EAAa;AACX,IAAA,OAAOqiE,eAAP,CAAA;AACD,GAzB8D;;;AA4B/D,EAAA,IAAIC,YAAY,GAAG,CAACtiE,MAAM,CAACnyC,KAAP,GAAe,CAAhB,EAAmBmyC,MAAM,CAAClyC,MAAP,GAAgB,CAAnC,CAAnB,CAAA;EACA,IAAI6Q,IAAI,GAAGspF,UAAX,CAAA;;AAEA,EAAA,OAAOtpF,IAAP,EAAa;AACX,IAAA,IAAI++F,UAAU,GAAG/+F,IAAI,CAACmmB,SAAL,EAAjB,CAAA;AACAw9E,IAAAA,YAAY,CAAC,CAAD,CAAZ,IAAmB5E,UAAU,CAAC74G,CAA9B,CAAA;AACAy9G,IAAAA,YAAY,CAAC,CAAD,CAAZ,IAAmB5E,UAAU,CAAC54G,CAA9B,CAAA;IACA6Z,IAAI,GAAGA,IAAI,CAACJ,UAAZ,CAAA;AACD,GAAA;;EAED,OAAO;IACL1Z,CAAC,EAAEs7F,UAAU,CAACtyF,KAAX,GAAmB,CAAnB,GAAuBy0G,YAAY,CAAC,CAAD,CADjC;IAELx9G,CAAC,EAAEq7F,UAAU,CAACryF,MAAX,GAAoB,CAApB,GAAwBw0G,YAAY,CAAC,CAAD,CAAA;GAFzC,CAAA;AAID;AACD;;;AAGA,SAAStC,QAAT,CAAkBrhG,IAAlB,EAAwBoyB,QAAxB,EAAkCyuE,aAAlC,EAAiDnX,QAAjD,EAA2D1C,KAA3D,EAAkE;AAChE,EAAA,IAAI+X,UAAU,GAAG/+F,IAAI,CAACmmB,SAAL,EAAjB,CAAA;AACA,EAAA,IAAIy9E,mBAAmB,GAAG/C,aAAa,CAAC7Z,KAAD,CAAvC,CAAA;AACA,EAAA,IAAImQ,eAAe,GAAGyM,mBAAmB,IAAIA,mBAAmB,KAAK5jG,IAArE,CAAA;;AAEA,EAAA,IAAI4jG,mBAAmB,IAAI,CAACzM,eAAxB,IAA2CnQ,KAAK,KAAK6Z,aAAa,CAACp4G,MAAxB,IAAkCuX,IAAI,KAAK0pF,QAA1F,EAAoG;AAClG,IAAA,OAAA;AACD,GAAA;;EAED1pF,IAAI,CAACg6B,SAAL,CAAe;AACb;AACAs8D,IAAAA,QAAQ,EAAE,IAFG;AAGb;AACA;IACAhvF,SAAS,EAAE,CAAC6vF,eAAD,IAAoB,CAAC/kE,QAAQ,CAACjlB,SAAT,CAAmB4xF,UAAnB,CALnB;AAMb5H,IAAAA,eAAe,EAAEA,eAAAA;GANnB,EAOG,IAPH,CAAA,CATgE;;AAkBhE,EAAA,IAAI0M,aAAa,GAAG,IAAIr3F,YAAJ,CAAiB4lB,QAAQ,CAAClsC,CAAT,GAAa64G,UAAU,CAAC74G,CAAzC,EAA4CksC,QAAQ,CAACjsC,CAAT,GAAa44G,UAAU,CAAC54G,CAApE,EAAuEisC,QAAQ,CAACljC,KAAhF,EAAuFkjC,QAAQ,CAACjjC,MAAhG,CAApB,CAAA;EACAgD,MAAI,CAAC6N,IAAI,CAACinF,YAAL,IAAqB,EAAtB,EAA0B,UAAU55F,KAAV,EAAiB;AAC7Cg0G,IAAAA,QAAQ,CAACh0G,KAAD,EAAQw2G,aAAR,EAAuBhD,aAAvB,EAAsCnX,QAAtC,EAAgD1C,KAAK,GAAG,CAAxD,CAAR,CAAA;AACD,GAFG,CAAJ,CAAA;AAGD,CAAA;;AAED,SAASwa,mBAAT,CAA6B9/D,KAA7B,EAAoC;AAClC,EAAA,OAAOA,KAAK,CAAC9jB,GAAN,CAAU0iF,qBAAV,CAAA,GAAmC5+D,KAAK,CAAC9jB,GAAN,CAAU2iF,uBAAV,CAAnC,GAAwE,CAA/E,CAAA;AACD;;ACpjBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BO,SAAS13F,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACiyB,mBAAV,CAA8B+xD,kBAA9B,CAAA,CAAA;EACAhkF,SAAS,CAACgyB,iBAAV,CAA4Bm3D,WAA5B,CAAA,CAAA;EACAnpF,SAAS,CAACqyB,cAAV,CAAyB2oE,aAAzB,CAAA,CAAA;EACAh7F,SAAS,CAACmyB,cAAV,CAAyB8oE,aAAzB,CAAA,CAAA;EACA5X,oBAAoB,CAACrjF,SAAD,CAApB,CAAA;AACD;;ACrDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0Be,SAASk7F,cAAT,CAAwBxwE,OAAxB,EAAiC;AAC9C,EAAA,IAAI0X,YAAY,GAAG1X,OAAO,CAAC2X,cAAR,CAAuB;AACxC9B,IAAAA,QAAQ,EAAE,QAAA;AAD8B,GAAvB,CAAnB,CAAA;;AAIA,EAAA,IAAI,CAAC6B,YAAD,IAAiB,CAACA,YAAY,CAACziD,MAAnC,EAA2C;AACzC,IAAA,OAAA;AACD,GAAA;;AAED+qC,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,OAAzB,EAAkC,UAAU+5D,WAAV,EAAuB;AACvD,IAAA,IAAIC,cAAc,GAAGD,WAAW,CAACE,iBAAZ,EAArB,CAAA;AACA,IAAA,IAAIC,KAAK,GAAGH,WAAW,CAACI,QAAZ,EAAZ,CAAA;AACA,IAAA,IAAI1qF,IAAI,GAAGyqF,KAAK,CAACzqF,IAAjB,CAAA;IACA,IAAI2qF,aAAa,GAAGJ,cAAc,CAAC3wD,QAAf,CAAwB2wD,cAAc,CAAC9kF,OAAvC,CAApB,CAAA;AACAzF,IAAAA,IAAI,CAACyxB,UAAL,CAAgB,UAAUj2B,GAAV,EAAe;AAC7B,MAAA,IAAIusB,KAAK,GAAG/nB,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAZ,CAAA;AACA,MAAA,IAAI6lC,QAAQ,GAAGtZ,KAAK,CAAC5jB,UAAN,CAAiB,UAAjB,CAAf,CAAA;;MAEA,IAAIk9B,QAAQ,IAAI,IAAhB,EAAsB;AACpB,QAAA,IAAI7lD,QAAQ,CAAC6lD,QAAD,CAAZ,EAAwB;AACtBA,UAAAA,QAAQ,GAAGspD,aAAa,CAACtpD,QAAD,CAAxB,CAAA;AACD,SAHmB;;;AAMpB,QAAA,KAAK,IAAI7xD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+hD,YAAY,CAACziD,MAAjC,EAAyCU,CAAC,EAA1C,EAA8C;UAC5C,IAAI,CAAC+hD,YAAY,CAAC/hD,CAAD,CAAZ,CAAgBkiD,UAAhB,CAA2B2P,QAA3B,CAAL,EAA2C;AACzC,YAAA,OAAO,KAAP,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAED,MAAA,OAAO,IAAP,CAAA;KAjBF,CAAA,CAAA;GALF,CAAA,CAAA;AAyBD;;AC7ED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0Be,SAASupD,cAAT,CAAwB/wE,OAAxB,EAAiC;EAC9C,IAAIgxE,YAAY,GAAG,EAAnB,CAAA;AACAhxE,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,OAAzB,EAAkC,UAAU/tB,WAAV,EAAuB;AACvD,IAAA,IAAI+nF,cAAc,GAAG/nF,WAAW,CAACgoF,iBAAZ,EAArB,CAAA;AACA,IAAA,IAAIxqF,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAIitF,kBAAkB,GAAG,EAAzB,CAAA;AACAP,IAAAA,cAAc,CAAC/xG,IAAf,CAAoB,UAAUgjB,GAAV,EAAe;MACjC,IAAIhpB,IAAI,GAAG+3G,cAAc,CAAC9kF,OAAf,CAAuBjK,GAAvB,CAAX,CADiC;;AAGjCsvF,MAAAA,kBAAkB,CAAC,KAAA,GAAQt4G,IAAT,CAAlB,GAAmCgpB,GAAnC,CAAA;AACA,MAAA,IAAIoI,SAAS,GAAG2mF,cAAc,CAAC1mF,YAAf,CAA4BrI,GAA5B,CAAhB,CAAA;MACA,IAAIprB,KAAK,GAAGwzB,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAAgCC,CAAAA,YAAhC,EAAZ,CAAA;;AAEA,MAAA,IAAI,CAAC5zB,KAAK,CAACC,IAAX,EAAiB;AACf;QACAD,KAAK,CAACC,IAAN,GAAamyB,WAAW,CAACuoF,mBAAZ,CAAgCv4G,IAAhC,EAAsCq4G,YAAtC,CAAb,CAAA;AACD,OAAA;;AAEDN,MAAAA,cAAc,CAAC1oC,aAAf,CAA6BrmD,GAA7B,EAAkC,OAAlC,EAA2CprB,KAA3C,CAAA,CAAA;MACA,IAAI46G,gBAAgB,GAAG,CAAC,QAAD,EAAW,YAAX,EAAyB,kBAAzB,CAAvB,CAAA;;AAEA,MAAA,KAAK,IAAIx7G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw7G,gBAAgB,CAACl8G,MAArC,EAA6CU,CAAC,EAA9C,EAAkD;AAChD,QAAA,IAAIy7G,YAAY,GAAGrnF,SAAS,CAACO,UAAV,CAAqB6mF,gBAAgB,CAACx7G,CAAD,CAArC,EAA0C,IAA1C,CAAnB,CAAA;;QAEA,IAAIy7G,YAAY,IAAI,IAApB,EAA0B;UACxBV,cAAc,CAAC1oC,aAAf,CAA6BrmD,GAA7B,EAAkCwvF,gBAAgB,CAACx7G,CAAD,CAAlD,EAAuDy7G,YAAvD,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAtBD,EAJuD;;AA4BvD,IAAA,IAAIV,cAAc,CAAC72E,KAAf,EAAJ,EAA4B;AAC1B1T,MAAAA,IAAI,CAACxnB,IAAL,CAAU,UAAUgjB,GAAV,EAAe;AACvB,QAAA,IAAIusB,KAAK,GAAG/nB,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAZ,CAAA;AACA,QAAA,IAAI0vF,WAAW,GAAGnjE,KAAK,CAAC5jB,UAAN,CAAiB,UAAjB,CAAlB,CAAA;;QAEA,IAAI+mF,WAAW,IAAI,IAAnB,EAAyB;AACvB,UAAA,IAAI9xG,QAAQ,CAAC8xG,WAAD,CAAZ,EAA2B;AACzBA,YAAAA,WAAW,GAAGJ,kBAAkB,CAAC,KAAA,GAAQI,WAAT,CAAhC,CAAA;AACD,WAAA;;UAED,IAAIC,aAAa,GAAGZ,cAAc,CAAChoF,aAAf,CAA6B2oF,WAA7B,EAA0C,OAA1C,CAApB,CAAA;UACA,IAAI96G,KAAK,GAAG4vB,IAAI,CAACqyE,sBAAL,CAA4B72E,GAA5B,EAAiC,OAAjC,CAAZ,CAAA;AACAnkB,UAAAA,MAAM,CAACjH,KAAD,EAAQ+6G,aAAR,CAAN,CAAA;UACA,IAAIC,UAAU,GAAG,CAAC,QAAD,EAAW,YAAX,EAAyB,kBAAzB,CAAjB,CAAA;;AAEA,UAAA,KAAK,IAAI57G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG47G,UAAU,CAACt8G,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;YAC1CwwB,IAAI,CAAC6hD,aAAL,CAAmBrmD,GAAnB,EAAwB4vF,UAAU,CAAC57G,CAAD,CAAlC,EAAuC+6G,cAAc,CAAChoF,aAAf,CAA6B2oF,WAA7B,EAA0CE,UAAU,CAAC57G,CAAD,CAApD,CAAvC,CAAA,CAAA;AACD,WAAA;AACF,SAAA;OAjBH,CAAA,CAAA;AAmBD,KAAA;GAhDH,CAAA,CAAA;AAkDD;;AC/FD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA,SAAS67G,WAAT,CAAmBr8G,CAAnB,EAAsB;AACpB,EAAA,IAAI,EAAEA,CAAC,YAAY8tC,KAAf,CAAJ,EAA2B;AACzB9tC,IAAAA,CAAC,GAAG,CAACA,CAAD,EAAIA,CAAJ,CAAJ,CAAA;AACD,GAAA;;AAED,EAAA,OAAOA,CAAP,CAAA;AACD,CAAA;;AAEc,SAASs8G,eAAT,CAAyBzxE,OAAzB,EAAkC;AAC/CA,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,OAAzB,EAAkC,UAAU/tB,WAAV,EAAuB;AACvD,IAAA,IAAIioF,KAAK,GAAGjoF,WAAW,CAACkoF,QAAZ,EAAZ,CAAA;AACA,IAAA,IAAIa,QAAQ,GAAG/oF,WAAW,CAACgpF,WAAZ,EAAf,CAAA;IACA,IAAIxtF,UAAU,GAAGqtF,WAAS,CAAC7oF,WAAW,CAACyB,GAAZ,CAAgB,YAAhB,CAAD,CAA1B,CAAA;AACA,IAAA,IAAI9E,UAAU,GAAGksF,WAAS,CAAC7oF,WAAW,CAACyB,GAAZ,CAAgB,gBAAhB,CAAD,CAA1B,CAJuD;AAKvD;;IAEAsnF,QAAQ,CAAC9pE,SAAT,CAAmB,YAAnB,EAAiCzjB,UAAU,IAAIA,UAAU,CAAC,CAAD,CAAzD,CAAA,CAAA;IACAutF,QAAQ,CAAC9pE,SAAT,CAAmB,UAAnB,EAA+BzjB,UAAU,IAAIA,UAAU,CAAC,CAAD,CAAvD,CAAA,CAAA;IACAutF,QAAQ,CAAC9pE,SAAT,CAAmB,gBAAnB,EAAqCtiB,UAAU,IAAIA,UAAU,CAAC,CAAD,CAA7D,CAAA,CAAA;IACAosF,QAAQ,CAAC9pE,SAAT,CAAmB,cAAnB,EAAmCtiB,UAAU,IAAIA,UAAU,CAAC,CAAD,CAA3D,CAAA,CAAA;AACAosF,IAAAA,QAAQ,CAAC9pE,SAAT,CAAmB,OAAnB,EAA4Bjf,WAAW,CAACuB,QAAZ,CAAqB,WAArB,CAAkCyX,CAAAA,YAAlC,EAA5B,CAAA,CAAA;AACA+vE,IAAAA,QAAQ,CAAC/yG,IAAT,CAAc,UAAUgjB,GAAV,EAAe;AAC3B,MAAA,IAAIoI,SAAS,GAAG2nF,QAAQ,CAAC1nF,YAAT,CAAsBrI,GAAtB,CAAhB,CAAA;AACA,MAAA,IAAIyvE,IAAI,GAAGwf,KAAK,CAACgB,cAAN,CAAqBjwF,GAArB,CAAX,CAAA;AACA,MAAA,IAAIwC,UAAU,GAAGqtF,WAAS,CAACznF,SAAS,CAACO,UAAV,CAAqB,QAArB,EAA+B,IAA/B,CAAD,CAA1B,CAAA;AACA,MAAA,IAAIhF,UAAU,GAAGksF,WAAS,CAACznF,SAAS,CAACO,UAAV,CAAqB,YAArB,EAAmC,IAAnC,CAAD,CAA1B,CAJ2B;;MAM3B,IAAI/zB,KAAK,GAAGwzB,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAAgCyX,CAAAA,YAAhC,EAAZ,CAAA;MACA,IAAI42D,WAAW,GAAGmZ,QAAQ,CAAClZ,sBAAT,CAAgC72E,GAAhC,EAAqC,OAArC,CAAlB,CAAA;AACAnkB,MAAAA,MAAM,CAAC+6F,WAAD,EAAchiG,KAAd,CAAN,CAAA;;MAEA,QAAQgiG,WAAW,CAAC7hG,MAApB;AACE,QAAA,KAAK,QAAL;AACE,UAAA;YACE,IAAImuG,SAAS,GAAGzT,IAAI,CAACpE,KAAL,CAAW/oE,SAAX,CAAqB,OAArB,CAAhB,CAAA;AACAs0E,YAAAA,WAAW,CAAC7hG,MAAZ,GAAqBmuG,SAAS,IAAIA,SAAS,CAACruG,IAA5C,CAAA;AACA,YAAA,MAAA;AACD,WAAA;;AAEH,QAAA,KAAK,QAAL;AACE,UAAA;YACE,IAAIquG,SAAS,GAAGzT,IAAI,CAACnE,KAAL,CAAWhpE,SAAX,CAAqB,OAArB,CAAhB,CAAA;AACAs0E,YAAAA,WAAW,CAAC7hG,MAAZ,GAAqBmuG,SAAS,IAAIA,SAAS,CAACruG,IAA5C,CAAA;AACA,YAAA,MAAA;AACD,WAAA;AAbL,OAAA;;AAgBA2tB,MAAAA,UAAU,CAAC,CAAD,CAAV,IAAiBitE,IAAI,CAACxpD,SAAL,CAAe,YAAf,EAA6BzjB,UAAU,CAAC,CAAD,CAAvC,CAAjB,CAAA;AACAA,MAAAA,UAAU,CAAC,CAAD,CAAV,IAAiBitE,IAAI,CAACxpD,SAAL,CAAe,UAAf,EAA2BzjB,UAAU,CAAC,CAAD,CAArC,CAAjB,CAAA;AACAmB,MAAAA,UAAU,CAAC,CAAD,CAAV,IAAiB8rE,IAAI,CAACxpD,SAAL,CAAe,gBAAf,EAAiCtiB,UAAU,CAAC,CAAD,CAA3C,CAAjB,CAAA;AACAA,MAAAA,UAAU,CAAC,CAAD,CAAV,IAAiB8rE,IAAI,CAACxpD,SAAL,CAAe,cAAf,EAA+BtiB,UAAU,CAAC,CAAD,CAAzC,CAAjB,CAAA;KA7BF,CAAA,CAAA;GAZF,CAAA,CAAA;AA4CD;;ACjGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA,IAAIusF,aAAa,GAAG,KAApB,CAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAUnpF,WAAV,EAAuB;AAClD,EAAA,OAAOA,WAAW,CAACyB,GAAZ,CAAgB,eAAhB,KAAoC,IAA3C,CAAA;AACD,CAFD,CAAA;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA,IAAI2nF,eAAe,GAAG,SAAlBA,eAAkB,CAAUppF,WAAV,EAAuBqpF,YAAvB,EAAqC;AACzD,EAAA,IAAIC,mBAAmB,GAAGH,sBAAsB,CAACnpF,WAAD,CAAhD,CAAA;EACA,IAAI1zB,MAAM,GAAG,EAAb,CAAA;AACA,EAAA,IAAIi9G,aAAa,GAAG,EAApB,CAHyD;;AAKzD,EAAA,IAAIv4E,QAAA,CAAgBs4E,mBAAhB,CAAJ,EAA0C;AACxCh9G,IAAAA,MAAM,GAAGg9G,mBAAT,CAAA;GADF,MAEO,IAAIt4E,SAAA,CAAes4E,mBAAf,CAAJ,EAAyC;IAC9CtpF,WAAW,CAACwpF,eAAZ,GAA8BF,mBAA9B,CAAA;AACA,IAAA,OAAA;AACD,GAVwD;;;EAazD,IAAID,YAAY,GAAG/8G,MAAnB,EAA2B;AACzBA,IAAAA,MAAM,GAAG+8G,YAAT,CAAA;AACD,GAfwD;;;AAkBzD,EAAA,IAAIhzG,GAAG,GAAG/J,MAAM,GAAG,CAAT,GAAaA,MAAM,GAAG,CAAtB,GAA0BA,MAAM,GAAG,CAA7C,CAAA;AACAi9G,EAAAA,aAAa,GAAG,EAAhB,CAAA;;EAEA,KAAK,IAAIv8G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,EAAyBrJ,CAAC,EAA1B,EAA8B;IAC5Bu8G,aAAa,CAACl8G,IAAd,CAAmB,CAACL,CAAC,GAAG,CAAJ,GAAQA,CAAC,GAAG,CAAZ,GAAgBA,CAAjB,IAAsB,EAAtB,IAA4BA,CAAC,GAAG,CAAJ,GAAQ,CAAC,CAAT,GAAa,CAAzC,CAAnB,CAAA,CAAA;AACD,GAAA;;EAEDgzB,WAAW,CAACwpF,eAAZ,GAA8BD,aAA9B,CAAA;AACD,CA1BD,CAAA;AA2BA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,IAAIE,aAAa,GAAG,SAAhBA,aAAgB,CAAUC,EAAV,EAAcC,EAAd,EAAkB3pF,WAAlB,EAA+B;AACjD,EAAA,IAAIw2B,MAAM,GAAG,CAACkzD,EAAE,CAACvsG,EAAJ,EAAQusG,EAAE,CAACjsF,SAAX,CAAA,CAAsBnwB,IAAtB,CAA2B,GAA3B,CAAb,CAAA;AACA,EAAA,IAAI6H,MAAM,GAAG,CAACw0G,EAAE,CAACxsG,EAAJ,EAAQwsG,EAAE,CAAClsF,SAAX,CAAA,CAAsBnwB,IAAtB,CAA2B,GAA3B,CAAb,CAAA;AACA,EAAA,OAAO,CAAC0yB,WAAW,CAACuxD,GAAb,EAAkB/6B,MAAlB,EAA0BrhD,MAA1B,CAAkC7H,CAAAA,IAAlC,CAAuC47G,aAAvC,CAAP,CAAA;AACD,CAJD,CAAA;AAKA;AACA;AACA;AACA;AACA;;;AAGA,IAAIU,cAAc,GAAG,SAAjBA,cAAiB,CAAUv5G,GAAV,EAAe;AAClC,EAAA,IAAIoB,IAAI,GAAGpB,GAAG,CAACw5G,KAAJ,CAAUX,aAAV,CAAX,CAAA;AACA,EAAA,OAAO,CAACz3G,IAAI,CAAC,CAAD,CAAL,EAAUA,IAAI,CAAC,CAAD,CAAd,EAAmBA,IAAI,CAAC,CAAD,CAAvB,EAA4BnE,IAA5B,CAAiC47G,aAAjC,CAAP,CAAA;AACD,CAHD,CAAA;AAIA;AACA;AACA;AACA;AACA;;;AAGA,IAAIY,cAAc,GAAG,SAAjBA,cAAiB,CAAUrhB,IAAV,EAAgBzoE,WAAhB,EAA6B;AAChD,EAAA,IAAI3vB,GAAG,GAAGo5G,aAAa,CAAChhB,IAAI,CAACpE,KAAN,EAAaoE,IAAI,CAACnE,KAAlB,EAAyBtkE,WAAzB,CAAvB,CAAA;AACA,EAAA,OAAOA,WAAW,CAAC+pF,SAAZ,CAAsB15G,GAAtB,CAAP,CAAA;AACD,CAHD,CAAA;AAIA;AACA;AACA;AACA;AACA;AACA;;;AAGA,IAAI25G,0BAA0B,GAAG,SAA7BA,0BAA6B,CAAUvhB,IAAV,EAAgBzoE,WAAhB,EAA6B;AAC5D,EAAA,IAAI3pB,GAAG,GAAG4zG,uBAAuB,CAACR,aAAa,CAAChhB,IAAI,CAACpE,KAAN,EAAaoE,IAAI,CAACnE,KAAlB,EAAyBtkE,WAAzB,CAAd,EAAqDA,WAArD,CAAjC,CAAA;AACA,EAAA,IAAIkqF,IAAI,GAAGD,uBAAuB,CAACR,aAAa,CAAChhB,IAAI,CAACnE,KAAN,EAAamE,IAAI,CAACpE,KAAlB,EAAyBrkE,WAAzB,CAAd,EAAqDA,WAArD,CAAlC,CAAA;EACA,OAAO3pB,GAAG,GAAG6zG,IAAb,CAAA;AACD,CAJD,CAAA;AAKA;AACA;AACA;AACA;;;AAGA,IAAID,uBAAuB,GAAG,SAA1BA,uBAA0B,CAAU55G,GAAV,EAAe2vB,WAAf,EAA4B;AACxD,EAAA,IAAImqF,OAAO,GAAGnqF,WAAW,CAAC+pF,SAA1B,CAAA;AACA,EAAA,OAAOI,OAAO,CAAC95G,GAAD,CAAP,GAAe85G,OAAO,CAAC95G,GAAD,CAAP,CAAa/D,MAA5B,GAAqC,CAA5C,CAAA;AACD,CAHD,CAAA;AAIA;AACA;AACA;AACA;AACA;;;AAGO,SAAS89G,iBAAT,CAA2BpqF,WAA3B,EAAwC;AAC7C,EAAA,IAAI,CAACmpF,sBAAsB,CAACnpF,WAAD,CAA3B,EAA0C;AACxC,IAAA,OAAA;AACD,GAAA;;EAEDA,WAAW,CAACwpF,eAAZ,GAA8B,EAA9B,CAAA;AACAxpF,EAAAA,WAAW,CAAC+pF,SAAZ,GAAwB,EAAxB,CAN6C;;EAQ7CX,eAAe,CAACppF,WAAD,CAAf,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASqqF,yBAAT,CAAmCX,EAAnC,EAAuCC,EAAvC,EAA2C3pF,WAA3C,EAAwDuoB,KAAxD,EAA+D;AACpE,EAAA,IAAI,CAAC4gE,sBAAsB,CAACnpF,WAAD,CAA3B,EAA0C;AACxC,IAAA,OAAA;AACD,GAAA;;EAED,IAAI3vB,GAAG,GAAGo5G,aAAa,CAACC,EAAD,EAAKC,EAAL,EAAS3pF,WAAT,CAAvB,CAAA;AACA,EAAA,IAAImqF,OAAO,GAAGnqF,WAAW,CAAC+pF,SAA1B,CAAA;EACA,IAAIO,aAAa,GAAGH,OAAO,CAACP,cAAc,CAACv5G,GAAD,CAAf,CAA3B,CAPoE;;AASpE,EAAA,IAAI85G,OAAO,CAAC95G,GAAD,CAAP,IAAgB,CAACi6G,aAArB,EAAoC;AAClCH,IAAAA,OAAO,CAAC95G,GAAD,CAAP,CAAak6G,SAAb,GAAyB,IAAzB,CAAA;GADF,MAEO,IAAID,aAAa,IAAIH,OAAO,CAAC95G,GAAD,CAA5B,EAAmC;IACxCi6G,aAAa,CAACC,SAAd,GAA0B,IAA1B,CAAA;AACAJ,IAAAA,OAAO,CAAC95G,GAAD,CAAP,CAAak6G,SAAb,GAAyB,KAAzB,CAAA;AACD,GAAA;;EAEDJ,OAAO,CAAC95G,GAAD,CAAP,GAAe85G,OAAO,CAAC95G,GAAD,CAAP,IAAgB,EAA/B,CAAA;AACA85G,EAAAA,OAAO,CAAC95G,GAAD,CAAP,CAAahD,IAAb,CAAkBk7C,KAAlB,CAAA,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASiiE,mBAAT,CAA6B/hB,IAA7B,EAAmCzoE,WAAnC,EAAgDuoB,KAAhD,EAAuDkiE,WAAvD,EAAoE;AACzE,EAAA,IAAIC,mBAAmB,GAAGvB,sBAAsB,CAACnpF,WAAD,CAAhD,CAAA;AACA,EAAA,IAAI2qF,YAAY,GAAG35E,SAAA,CAAe05E,mBAAf,CAAnB,CAAA;;EAEA,IAAI,CAACA,mBAAL,EAA0B;AACxB,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;AAED,EAAA,IAAIE,SAAS,GAAGd,cAAc,CAACrhB,IAAD,EAAOzoE,WAAP,CAA9B,CAAA;;EAEA,IAAI,CAAC4qF,SAAL,EAAgB;AACd,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;EAED,IAAIC,SAAS,GAAG,CAAC,CAAjB,CAAA;;AAEA,EAAA,KAAK,IAAI79G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG49G,SAAS,CAACt+G,MAA9B,EAAsCU,CAAC,EAAvC,EAA2C;AACzC,IAAA,IAAI49G,SAAS,CAAC59G,CAAD,CAAT,KAAiBu7C,KAArB,EAA4B;AAC1BsiE,MAAAA,SAAS,GAAG79G,CAAZ,CAAA;AACA,MAAA,MAAA;AACD,KAAA;AACF,GArBwE;;;AAwBzE,EAAA,IAAI89G,QAAQ,GAAGd,0BAA0B,CAACvhB,IAAD,EAAOzoE,WAAP,CAAzC,CAAA;AACAopF,EAAAA,eAAe,CAACppF,WAAD,EAAc8qF,QAAd,CAAf,CAAA;EACAriB,IAAI,CAACxtE,SAAL,GAAiBwtE,IAAI,CAACxtE,SAAL,IAAkB,EAAnC,CA1ByE;;AA4BzE,EAAA,IAAI8vF,MAAM,GAAGtB,aAAa,CAAChhB,IAAI,CAACpE,KAAN,EAAaoE,IAAI,CAACnE,KAAlB,EAAyBtkE,WAAzB,CAA1B,CAAA;AACA,EAAA,IAAIupF,aAAa,GAAGvpF,WAAW,CAACwpF,eAAhC,CA7ByE;;AA+BzE,EAAA,IAAIwB,gBAAgB,GAAGL,YAAY,GAAG,CAAH,GAAOG,QAAQ,GAAG,CAAX,GAAe,CAAf,GAAmB,CAA7D,CAAA;;AAEA,EAAA,IAAI,CAACF,SAAS,CAACL,SAAf,EAA0B;AACxB;AACA,IAAA,IAAIU,WAAW,GAAGrB,cAAc,CAACmB,MAAD,CAAhC,CAAA;AACA,IAAA,IAAI10G,GAAG,GAAG4zG,uBAAuB,CAACgB,WAAD,EAAcjrF,WAAd,CAAjC,CAAA;IACA,IAAIkrF,QAAQ,GAAG3B,aAAa,CAACsB,SAAS,GAAGx0G,GAAZ,GAAkB20G,gBAAnB,CAA5B,CAJwB;;AAMxB,IAAA,IAAIP,WAAJ,EAAiB;AACf;AACA,MAAA,IAAIE,YAAJ,EAAkB;QAChB,IAAID,mBAAmB,IAAIA,mBAAmB,CAAC,CAAD,CAAnB,KAA2B,CAAtD,EAAyD;UACvD,OAAO,CAACr0G,GAAG,GAAG20G,gBAAP,IAA2B,CAA3B,GAA+BE,QAA/B,GAA0C,CAACA,QAAlD,CAAA;AACD,SAFD,MAEO;AACL,UAAA,OAAO,CAAC,CAAC70G,GAAG,GAAG,CAAN,GAAU,CAAV,GAAc,CAAf,IAAoB20G,gBAArB,IAAyC,CAAzC,GAA6CE,QAA7C,GAAwD,CAACA,QAAhE,CAAA;AACD,SAAA;AACF,OAND,MAMO;QACL,OAAO,CAAC70G,GAAG,GAAG20G,gBAAP,IAA2B,CAA3B,GAA+BE,QAA/B,GAA0C,CAACA,QAAlD,CAAA;AACD,OAAA;AACF,KAXD,MAWO;AACL,MAAA,OAAO3B,aAAa,CAACsB,SAAS,GAAGx0G,GAAZ,GAAkB20G,gBAAnB,CAApB,CAAA;AACD,KAAA;AACF,GApBD,MAoBO;AACL,IAAA,OAAOzB,aAAa,CAACyB,gBAAgB,GAAGH,SAApB,CAApB,CAAA;AACD,GAAA;AACF;;AC/PD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAASM,YAAT,CAAsBnrF,WAAtB,EAAmC;AACxC,EAAA,IAAI5F,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;AAEA,EAAA,IAAID,QAAQ,IAAIA,QAAQ,CAAC/d,IAAT,KAAkB,MAAlC,EAA0C;AACxC,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI4rG,KAAK,GAAGjoF,WAAW,CAACkoF,QAAZ,EAAZ,CAAA;AACAD,EAAAA,KAAK,CAACjd,QAAN,CAAe,UAAUnnF,IAAV,EAAgB;AAC7B,IAAA,IAAI0hC,KAAK,GAAG1hC,IAAI,CAAC0d,QAAL,EAAZ,CAAA;AACA1d,IAAAA,IAAI,CAACg6B,SAAL,CAAe,CAAC,CAAC0H,KAAK,CAAC9jB,GAAN,CAAU,GAAV,CAAF,EAAkB,CAAC8jB,KAAK,CAAC9jB,GAAN,CAAU,GAAV,CAAnB,CAAf,CAAA,CAAA;GAFF,CAAA,CAAA;AAIA2pF,EAAAA,gBAAgB,CAACnD,KAAD,EAAQjoF,WAAR,CAAhB,CAAA;AACD,CAAA;AACM,SAASorF,gBAAT,CAA0BnD,KAA1B,EAAiCjoF,WAAjC,EAA8C;AACnDioF,EAAAA,KAAK,CAACoD,QAAN,CAAe,UAAU5iB,IAAV,EAAgBlgD,KAAhB,EAAuB;AACpC,IAAA,IAAIkmD,SAAS,GAAGz9D,SAAA,CAAiBy3D,IAAI,CAAClnE,QAAL,EAAgBE,CAAAA,GAAhB,CAAoB,CAAC,WAAD,EAAc,WAAd,CAApB,CAAjB,EAAkE,CAAC+oF,mBAAmB,CAAC/hB,IAAD,EAAOzoE,WAAP,EAAoBuoB,KAApB,EAA2B,IAA3B,CAAtF,EAAwH,CAAxH,CAAhB,CAAA;AACA,IAAA,IAAIvuC,EAAE,GAAGsxG,OAAA,CAAW7iB,IAAI,CAACpE,KAAL,CAAWr6D,SAAX,EAAX,CAAT,CAAA;AACA,IAAA,IAAIuuC,EAAE,GAAG+yC,OAAA,CAAW7iB,IAAI,CAACnE,KAAL,CAAWt6D,SAAX,EAAX,CAAT,CAAA;AACA,IAAA,IAAI1uB,MAAM,GAAG,CAACtB,EAAD,EAAKu+D,EAAL,CAAb,CAAA;;IAEA,IAAI,CAACk2B,SAAL,EAAgB;MACdnzF,MAAM,CAACjO,IAAP,CAAY,CAAC,CAAC2M,EAAE,CAAC,CAAD,CAAF,GAAQu+D,EAAE,CAAC,CAAD,CAAX,IAAkB,CAAlB,GAAsB,CAACv+D,EAAE,CAAC,CAAD,CAAF,GAAQu+D,EAAE,CAAC,CAAD,CAAX,IAAkBk2B,SAAzC,EAAoD,CAACz0F,EAAE,CAAC,CAAD,CAAF,GAAQu+D,EAAE,CAAC,CAAD,CAAX,IAAkB,CAAlB,GAAsB,CAACA,EAAE,CAAC,CAAD,CAAF,GAAQv+D,EAAE,CAAC,CAAD,CAAX,IAAkBy0F,SAA5F,CAAZ,CAAA,CAAA;AACD,KAAA;;IAEDhG,IAAI,CAAC5qD,SAAL,CAAeviC,MAAf,CAAA,CAAA;GAVF,CAAA,CAAA;AAYD;;ACxED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2Be,SAASiwG,iBAAT,CAA2Bl0E,OAA3B,EAAoCxxB,GAApC,EAAyC;AACtDwxB,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,OAAzB,EAAkC,UAAU/tB,WAAV,EAAuB;AACvD,IAAA,IAAIklB,MAAM,GAAGllB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;AACA,IAAA,IAAIrH,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;AAEA,IAAA,IAAID,QAAQ,IAAIA,QAAQ,CAAC/d,IAAT,KAAkB,MAAlC,EAA0C;AACxC,MAAA,IAAIy5B,MAAM,GAAG9V,WAAW,CAAC3E,OAAZ,EAAb,CAAA;MACA,IAAImwF,YAAY,GAAG,EAAnB,CAAA;AACAx1G,MAAAA,MAAI,CAACokB,QAAQ,CAACwN,UAAV,EAAsB,UAAUC,QAAV,EAAoB;QAC5C2jF,YAAY,GAAGA,YAAY,CAACptC,MAAb,CAAoBtoC,MAAM,CAACnY,gBAAP,CAAwBkK,QAAxB,CAApB,CAAf,CAAA;AACD,OAFG,CAAJ,CAAA;;AAIA,MAAA,KAAK,IAAIpK,SAAS,GAAG,CAArB,EAAwBA,SAAS,GAAGqY,MAAM,CAAC5E,KAAP,EAApC,EAAoDzT,SAAS,EAA7D,EAAiE;QAC/D,IAAI+K,KAAK,GAAG,EAAZ,CAAA;QACA,IAAI2c,QAAQ,GAAG,KAAf,CAAA;;AAEA,QAAA,KAAK,IAAIn4C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw+G,YAAY,CAACl/G,MAAjC,EAAyCU,CAAC,EAA1C,EAA8C;AAC5C,UAAA,IAAIE,GAAG,GAAG4oC,MAAM,CAACrU,GAAP,CAAW+pF,YAAY,CAACx+G,CAAD,CAAvB,EAA4BywB,SAA5B,CAAV,CAAA;;AAEA,UAAA,IAAI,CAACtwB,KAAK,CAACD,GAAD,CAAV,EAAiB;AACfi4C,YAAAA,QAAQ,GAAG,IAAX,CAAA;AACD,WAAA;;UAED3c,KAAK,CAACn7B,IAAN,CAAWH,GAAX,CAAA,CAAA;AACD,SAAA;;AAED,QAAA,IAAIi4C,QAAJ,EAAc;UACZrP,MAAM,CAAC8H,aAAP,CAAqBngB,SAArB,EAAgCrD,QAAQ,CAACuO,WAAT,CAAqBH,KAArB,CAAhC,CAAA,CAAA;AACD,SAFD,MAEO;AACL;UACAsN,MAAM,CAAC8H,aAAP,CAAqBngB,SAArB,EAAgC,CAACgL,GAAD,EAAMA,GAAN,CAAhC,CAAA,CAAA;AACD,SAAA;AACF,OAAA;;AAED2iF,MAAAA,gBAAgB,CAACt1E,MAAM,CAACmyE,KAAR,EAAejoF,WAAf,CAAhB,CAAA;KA7BF,MA8BO,IAAI,CAACklB,MAAD,IAAWA,MAAM,KAAK,MAA1B,EAAkC;MACvCimE,YAAY,CAACnrF,WAAD,CAAZ,CAAA;AACD,KAAA;GApCH,CAAA,CAAA;AAsCD;;ACnFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASyrF,kBAAT,CAA4BzrF,WAA5B,EAAyC;AAC9C,EAAA,IAAI5F,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;AAEA,EAAA,IAAID,QAAQ,CAAC/d,IAAT,KAAkB,MAAtB,EAA8B;AAC5B,IAAA,OAAO,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,IAAI+pF,cAAc,GAAGpmE,WAAW,CAAC7F,MAAZ,CAAmBisE,cAAxC,CAAA;AACA,EAAA,IAAIC,SAAS,GAAGjsE,QAAQ,CAAC/a,MAAzB,CAR8C;;AAU9C,EAAA,IAAIinF,QAAQ,GAAGlsE,QAAQ,CAACm8D,OAAT,EAAf,CAAA;EACA,IAAI2P,SAAS,GAAG,CAACI,QAAQ,GAAG,CAAZ,IAAiBF,cAAjB,GAAkC,CAAlD,CAAA;EACA,OAAOF,SAAS,GAAGG,SAAnB,CAAA;AACD,CAAA;AACM,SAASnmE,aAAT,CAAuBrc,IAAvB,EAA6B;AAClC,EAAA,IAAI8Y,UAAU,GAAG9Y,IAAI,CAACyX,SAAL,CAAe,YAAf,CAAjB,CAAA;;EAEA,IAAIqB,UAAU,YAAY2d,KAA1B,EAAiC;AAC/B3d,IAAAA,UAAU,GAAG,CAACA,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAA3B,IAAkC,CAA/C,CAAA;AACD,GAAA;;AAED,EAAA,OAAO,CAACA,UAAR,CAAA;AACD;;AChED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BA,IAAIzzB,IAAE,GAAGJ,IAAI,CAACI,EAAd,CAAA;AACA,IAAIwiH,kBAAkB,GAAG,EAAzB,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASC,cAAT,CAAwB3rF,WAAxB,EAAqC4rF,OAArC,EAA8C;AACnD,EAAA,IAAIxxF,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;AAEA,EAAA,IAAID,QAAQ,IAAIA,QAAQ,CAAC/d,IAAT,KAAkB,MAAlC,EAA0C;AACxC,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAInQ,IAAI,GAAGkuB,QAAQ,CAAC63B,eAAT,EAAX,CAAA;AACA,EAAA,IAAI+7C,QAAQ,GAAGhuE,WAAW,CAAC3E,OAAZ,EAAf,CAAA;AACA,EAAA,IAAI4sF,KAAK,GAAGja,QAAQ,CAACia,KAArB,CAAA;EACA,IAAIv9G,EAAE,GAAGwB,IAAI,CAAC6G,KAAL,GAAa,CAAb,GAAiB7G,IAAI,CAACnC,CAA/B,CAAA;EACA,IAAIY,EAAE,GAAGuB,IAAI,CAAC8G,MAAL,GAAc,CAAd,GAAkB9G,IAAI,CAAClC,CAAhC,CAAA;AACA,EAAA,IAAIY,CAAC,GAAG9B,IAAI,CAAC8iC,GAAL,CAAS1/B,IAAI,CAAC6G,KAAd,EAAqB7G,IAAI,CAAC8G,MAA1B,IAAoC,CAA5C,CAAA;AACA,EAAA,IAAIk+B,KAAK,GAAG88D,QAAQ,CAAC98D,KAAT,EAAZ,CAAA;EACA88D,QAAQ,CAACnwD,SAAT,CAAmB;AACjBnzC,IAAAA,EAAE,EAAEA,EADa;AAEjBC,IAAAA,EAAE,EAAEA,EAAAA;GAFN,CAAA,CAAA;;EAKA,IAAI,CAACumC,KAAL,EAAY;AACV,IAAA,OAAA;AACD,GAAA;;AAED26E,EAAAA,mBAAmB,CAACD,OAAD,CAAnB,CAA6B5rF,WAA7B,EAA0CioF,KAA1C,EAAiDja,QAAjD,EAA2DpjG,CAA3D,EAA8DF,EAA9D,EAAkEC,EAAlE,EAAsEumC,KAAtE,CAAA,CAAA;;AAEA+2E,EAAAA,KAAK,CAACoD,QAAN,CAAe,UAAU5iB,IAAV,EAAgBlgD,KAAhB,EAAuB;AACpC,IAAA,IAAIkmD,SAAS,GAAGz9D,SAAA,CAAiBy3D,IAAI,CAAClnE,QAAL,EAAA,CAAgBE,GAAhB,CAAoB,CAAC,WAAD,EAAc,WAAd,CAApB,CAAjB,EAAkE+oF,mBAAmB,CAAC/hB,IAAD,EAAOzoE,WAAP,EAAoBuoB,KAApB,CAArF,EAAiH,CAAjH,CAAhB,CAAA;AACA,IAAA,IAAIvuC,EAAE,GAAGsxG,OAAA,CAAW7iB,IAAI,CAACpE,KAAL,CAAWr6D,SAAX,EAAX,CAAT,CAAA;AACA,IAAA,IAAIuuC,EAAE,GAAG+yC,OAAA,CAAW7iB,IAAI,CAACnE,KAAL,CAAWt6D,SAAX,EAAX,CAAT,CAAA;AACA,IAAA,IAAI8hF,GAAJ,CAAA;AACA,IAAA,IAAIC,GAAG,GAAG,CAAC/xG,EAAE,CAAC,CAAD,CAAF,GAAQu+D,EAAE,CAAC,CAAD,CAAX,IAAkB,CAA5B,CAAA;AACA,IAAA,IAAIyzC,GAAG,GAAG,CAAChyG,EAAE,CAAC,CAAD,CAAF,GAAQu+D,EAAE,CAAC,CAAD,CAAX,IAAkB,CAA5B,CAAA;;IAEA,IAAI,CAACk2B,SAAL,EAAgB;AACdA,MAAAA,SAAS,IAAI,CAAb,CAAA;MACAqd,GAAG,GAAG,CAACphH,EAAE,GAAG+jG,SAAL,GAAiBsd,GAAG,IAAI,CAAItd,GAAAA,SAAR,CAArB,EAAyC9jG,EAAE,GAAG8jG,SAAL,GAAiBud,GAAG,IAAI,CAAA,GAAIvd,SAAR,CAA7D,CAAN,CAAA;AACD,KAAA;;IAEDhG,IAAI,CAAC5qD,SAAL,CAAe,CAAC7jC,EAAD,EAAKu+D,EAAL,EAASuzC,GAAT,CAAf,CAAA,CAAA;GAbF,CAAA,CAAA;AAeD,CAAA;AACD,IAAID,mBAAmB,GAAG;AACxBrjF,EAAAA,KAAK,EAAE,SAAA,KAAA,CAAUxI,WAAV,EAAuBioF,KAAvB,EAA8Bja,QAA9B,EAAwCpjG,CAAxC,EAA2CF,EAA3C,EAA+CC,EAA/C,EAAmDumC,KAAnD,EAA0D;IAC/D,IAAIuR,KAAK,GAAG,CAAZ,CAAA;AACA,IAAA,IAAIxE,GAAG,GAAG+vD,QAAQ,CAAC9/C,MAAT,CAAgB,OAAhB,CAAV,CAAA;IACA,IAAI+9D,SAAS,GAAGnjH,IAAI,CAACI,EAAL,GAAU,CAAV,IAAe+0C,GAAG,IAAI/M,KAAtB,CAAhB,CAAA;AACA+2E,IAAAA,KAAK,CAACjd,QAAN,CAAe,UAAUnnF,IAAV,EAAgB;AAC7B,MAAA,IAAI2kB,KAAK,GAAG3kB,IAAI,CAAC+nF,QAAL,CAAc,OAAd,CAAZ,CAAA;MACA,IAAIsgB,UAAU,GAAGD,SAAS,IAAIhuE,GAAG,GAAGzV,KAAH,GAAW,CAAlB,CAAT,GAAgC,CAAjD,CAAA;AACAia,MAAAA,KAAK,IAAIypE,UAAT,CAAA;MACAroG,IAAI,CAACg6B,SAAL,CAAe,CAACjzC,CAAC,GAAG9B,IAAI,CAACG,GAAL,CAASw5C,KAAT,CAAJ,GAAsB/3C,EAAvB,EAA2BE,CAAC,GAAG9B,IAAI,CAACC,GAAL,CAAS05C,KAAT,CAAJ,GAAsB93C,EAAjD,CAAf,CAAA,CAAA;AACA83C,MAAAA,KAAK,IAAIypE,UAAT,CAAA;KALF,CAAA,CAAA;GALsB;AAaxBvvF,EAAAA,UAAU,EAAE,SAAA,UAAA,CAAUqD,WAAV,EAAuBioF,KAAvB,EAA8Bja,QAA9B,EAAwCpjG,CAAxC,EAA2CF,EAA3C,EAA+CC,EAA/C,EAAmDumC,KAAnD,EAA0D;IACpE,IAAIi7E,SAAS,GAAG,CAAhB,CAAA;IACAT,kBAAkB,CAACp/G,MAAnB,GAA4B4kC,KAA5B,CAAA;AACA,IAAA,IAAIg1D,SAAS,GAAGulB,kBAAkB,CAACzrF,WAAD,CAAlC,CAAA;AACAioF,IAAAA,KAAK,CAACjd,QAAN,CAAe,UAAUnnF,IAAV,EAAgB;AAC7B,MAAA,IAAI8Y,UAAU,GAAGuD,aAAa,CAACrc,IAAD,CAA9B,CAD6B;AAE7B;;AAEA1W,MAAAA,KAAK,CAACwvB,UAAD,CAAL,KAAsBA,UAAU,GAAG,CAAnC,CAAA,CAAA;AACAA,MAAAA,UAAU,GAAG,CAAb,KAAmBA,UAAU,GAAG,CAAhC,CAAA,CAAA;AACAA,MAAAA,UAAU,IAAIupE,SAAd,CAAA;AACA,MAAA,IAAIkmB,gBAAgB,GAAGtjH,IAAI,CAACujH,IAAL,CAAU1vF,UAAU,GAAG,CAAb,GAAiB/xB,CAA3B,CAAvB,CAP6B;;MAS7BuC,KAAK,CAACi/G,gBAAD,CAAL,KAA4BA,gBAAgB,GAAGljH,IAAE,GAAG,CAApD,CAAA,CAAA;AACAwiH,MAAAA,kBAAkB,CAAC7nG,IAAI,CAAC4Z,SAAN,CAAlB,GAAqC2uF,gBAArC,CAAA;MACAD,SAAS,IAAIC,gBAAgB,GAAG,CAAhC,CAAA;KAXF,CAAA,CAAA;IAaA,IAAIE,gBAAgB,GAAG,CAAC,CAAIpjH,GAAAA,IAAJ,GAASijH,SAAV,IAAuBj7E,KAAvB,GAA+B,CAAtD,CAAA;IACA,IAAIuR,KAAK,GAAG,CAAZ,CAAA;AACAwlE,IAAAA,KAAK,CAACjd,QAAN,CAAe,UAAUnnF,IAAV,EAAgB;MAC7B,IAAIqoG,UAAU,GAAGI,gBAAgB,GAAGZ,kBAAkB,CAAC7nG,IAAI,CAAC4Z,SAAN,CAAtD,CAAA;AACAglB,MAAAA,KAAK,IAAIypE,UAAT,CAAA;MACAroG,IAAI,CAACg6B,SAAL,CAAe,CAACjzC,CAAC,GAAG9B,IAAI,CAACG,GAAL,CAASw5C,KAAT,CAAJ,GAAsB/3C,EAAvB,EAA2BE,CAAC,GAAG9B,IAAI,CAACC,GAAL,CAAS05C,KAAT,CAAJ,GAAsB93C,EAAjD,CAAf,CAAA,CAAA;AACA83C,MAAAA,KAAK,IAAIypE,UAAT,CAAA;KAJF,CAAA,CAAA;AAMD,GAAA;AAtCuB,CAA1B;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0Be,SAASK,mBAAT,CAA6Bl1E,OAA7B,EAAsC;AACnDA,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,OAAzB,EAAkC,UAAU/tB,WAAV,EAAuB;AACvD,IAAA,IAAIA,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAA,KAA8B,UAAlC,EAA8C;AAC5CkqF,MAAAA,cAAc,CAAC3rF,WAAD,EAAc,YAAd,CAAd,CAAA;AACD,KAAA;GAHH,CAAA,CAAA;AAKD;;ACjDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoCA,IAAIwsF,WAAW,GAAGlB,aAAlB;AACA;AACA;;AAEO,SAASmB,WAAT,CAAqBC,OAArB,EAA8BC,OAA9B,EAAuC77G,IAAvC,EAA6C;EAClD,IAAI0xF,KAAK,GAAGkqB,OAAZ,CAAA;EACA,IAAIE,KAAK,GAAGD,OAAZ,CAAA;AACA,EAAA,IAAIzgH,IAAI,GAAG4E,IAAI,CAAC5E,IAAhB,CAAA;AACA,EAAA,IAAI6G,KAAK,GAAG7G,IAAI,CAAC6G,KAAjB,CAAA;AACA,EAAA,IAAIC,MAAM,GAAG9G,IAAI,CAAC8G,MAAlB,CAAA;EACA,IAAI26C,MAAM,GAAG,CAACzhD,IAAI,CAACnC,CAAL,GAASgJ,KAAK,GAAG,CAAlB,EAAqB7G,IAAI,CAAClC,CAAL,GAASgJ,MAAM,GAAG,CAAvC,CAAb,CANkD;;AAQlD,EAAA,IAAI65G,OAAO,GAAG/7G,IAAI,CAAC+7G,OAAL,IAAgB,IAAhB,GAAuB,GAAvB,GAA6B/7G,IAAI,CAAC+7G,OAAhD,CARkD;AASlD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAA,KAAK,IAAI7/G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw1F,KAAK,CAACl2F,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;AACrC,IAAA,IAAI01F,CAAC,GAAGF,KAAK,CAACx1F,CAAD,CAAb,CAAA;;AAEA,IAAA,IAAI,CAAC01F,CAAC,CAAC12F,CAAP,EAAU;AACR02F,MAAAA,CAAC,CAAC12F,CAAF,GAAMs/G,QAAA,CAAYv4G,KAAK,IAAIjK,IAAI,CAACysB,MAAL,EAAgB,GAAA,GAApB,CAAL,GAAgCo4B,MAAM,CAAC,CAAD,CAAlD,EAAuD36C,MAAM,IAAIlK,IAAI,CAACysB,MAAL,EAAgB,GAAA,GAApB,CAAN,GAAiCo4B,MAAM,CAAC,CAAD,CAA9F,CAAN,CAAA;AACD,KAAA;;IAED+0C,CAAC,CAACoqB,EAAF,GAAOxB,OAAA,CAAW5oB,CAAC,CAAC12F,CAAb,CAAP,CAAA;IACA02F,CAAC,CAACkqB,KAAF,GAAU,IAAV,CAAA;AACD,GA5BiD;AA6BlD;AACA;;;AAGA,EAAA,IAAIG,eAAe,GAAGj8G,IAAI,CAACk8G,QAAL,IAAiB,IAAjB,GAAwB,GAAxB,GAA8Bl8G,IAAI,CAACk8G,QAAzD,CAAA;EACA,IAAIA,QAAQ,GAAGD,eAAf,CAAA;AACA,EAAA,IAAIE,kBAAJ,CAAA;AACA,EAAA,IAAIC,iBAAJ,CAAA;EACA,OAAO;AACLC,IAAAA,MAAM,EAAE,SAAY,MAAA,GAAA;MAClBH,QAAQ,GAAGD,eAAe,GAAG,GAA7B,CAAA;KAFG;IAILK,QAAQ,EAAE,SAAUp0F,QAAAA,CAAAA,GAAV,EAAe;AACvBwpE,MAAAA,KAAK,CAACxpE,GAAD,CAAL,CAAWioF,KAAX,GAAmB,IAAnB,CAAA;KALG;IAOLoM,UAAU,EAAE,SAAUr0F,UAAAA,CAAAA,GAAV,EAAe;AACzBwpE,MAAAA,KAAK,CAACxpE,GAAD,CAAL,CAAWioF,KAAX,GAAmB,KAAnB,CAAA;KARG;;AAWL;AACJ;AACA;IACIqM,UAAU,EAAE,SAAU30F,UAAAA,CAAAA,EAAV,EAAc;AACxBs0F,MAAAA,kBAAkB,GAAGt0F,EAArB,CAAA;KAfG;;AAkBL;AACJ;AACA;IACI40F,SAAS,EAAE,SAAU50F,SAAAA,CAAAA,EAAV,EAAc;AACvBu0F,MAAAA,iBAAiB,GAAGv0F,EAApB,CAAA;KAtBG;;AAyBL;AACJ;AACA;AACA;AACA;AACA;IACI8D,IAAI,EAAE,SAAU9D,IAAAA,CAAAA,EAAV,EAAc;AAClBs0F,MAAAA,kBAAkB,IAAIA,kBAAkB,CAACzqB,KAAD,EAAQoqB,KAAR,CAAxC,CAAA;MACA,IAAIY,GAAG,GAAG,EAAV,CAAA;AACA,MAAA,IAAIC,IAAI,GAAGjrB,KAAK,CAACl2F,MAAjB,CAAA;;AAEA,MAAA,KAAK,IAAIU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4/G,KAAK,CAACtgH,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;AACrC,QAAA,IAAIJ,CAAC,GAAGggH,KAAK,CAAC5/G,CAAD,CAAb,CAAA;;QAEA,IAAIJ,CAAC,CAAC8gH,iBAAN,EAAyB;AACvB,UAAA,SAAA;AACD,SAAA;;AAED,QAAA,IAAIhE,EAAE,GAAG98G,CAAC,CAAC88G,EAAX,CAAA;AACA,QAAA,IAAIC,EAAE,GAAG/8G,CAAC,CAAC+8G,EAAX,CAAA;QACA2B,GAAA,CAASkC,GAAT,EAAc7D,EAAE,CAAC39G,CAAjB,EAAoB09G,EAAE,CAAC19G,CAAvB,CAAA,CAAA;QACA,IAAIW,CAAC,GAAG2+G,GAAA,CAASkC,GAAT,CAAA,GAAgB5gH,CAAC,CAACD,CAA1B,CAAA;AACA,QAAA,IAAIR,CAAC,GAAGw9G,EAAE,CAACx9G,CAAH,IAAQu9G,EAAE,CAACv9G,CAAH,GAAOw9G,EAAE,CAACx9G,CAAlB,CAAR,CAAA;;AAEA,QAAA,IAAIgB,KAAK,CAAChB,CAAD,CAAT,EAAc;AACZA,UAAAA,CAAC,GAAG,CAAJ,CAAA;AACD,SAAA;;AAEDm/G,QAAAA,WAAA,CAAekC,GAAf,EAAoBA,GAApB,CAAA,CAAA;QACA,CAAC9D,EAAE,CAACzI,KAAJ,IAAauL,WAAW,CAAC9C,EAAE,CAAC19G,CAAJ,EAAO09G,EAAE,CAAC19G,CAAV,EAAawhH,GAAb,EAAkBrhH,CAAC,GAAGQ,CAAJ,GAAQqgH,QAA1B,CAAxB,CAAA;QACA,CAACrD,EAAE,CAAC1I,KAAJ,IAAauL,WAAW,CAAC7C,EAAE,CAAC39G,CAAJ,EAAO29G,EAAE,CAAC39G,CAAV,EAAawhH,GAAb,EAAkB,EAAE,CAAA,GAAIrhH,CAAN,CAAWQ,GAAAA,CAAX,GAAeqgH,QAAjC,CAAxB,CAAA;AACD,OAzBiB;;;MA4BlB,KAAK,IAAIhgH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGygH,IAApB,EAA0BzgH,CAAC,EAA3B,EAA+B;AAC7B,QAAA,IAAI01F,CAAC,GAAGF,KAAK,CAACx1F,CAAD,CAAb,CAAA;;AAEA,QAAA,IAAI,CAAC01F,CAAC,CAACue,KAAP,EAAc;UACZqK,GAAA,CAASkC,GAAT,EAAc7/D,MAAd,EAAsB+0C,CAAC,CAAC12F,CAAxB,CAAA,CADY;AAEZ;AACA;;AAEAwgH,UAAAA,WAAW,CAAC9pB,CAAC,CAAC12F,CAAH,EAAM02F,CAAC,CAAC12F,CAAR,EAAWwhH,GAAX,EAAgBX,OAAO,GAAGG,QAA1B,CAAX,CAAA;AACD,SAAA;AACF,OAtCiB;AAuClB;;;MAGA,KAAK,IAAIhgH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGygH,IAApB,EAA0BzgH,CAAC,EAA3B,EAA+B;AAC7B,QAAA,IAAI08G,EAAE,GAAGlnB,KAAK,CAACx1F,CAAD,CAAd,CAAA;;AAEA,QAAA,KAAK,IAAIklB,CAAC,GAAGllB,CAAC,GAAG,CAAjB,EAAoBklB,CAAC,GAAGu7F,IAAxB,EAA8Bv7F,CAAC,EAA/B,EAAmC;AACjC,UAAA,IAAIy3F,EAAE,GAAGnnB,KAAK,CAACtwE,CAAD,CAAd,CAAA;UACAo5F,GAAA,CAASkC,GAAT,EAAc7D,EAAE,CAAC39G,CAAjB,EAAoB09G,EAAE,CAAC19G,CAAvB,CAAA,CAAA;AACA,UAAA,IAAIW,CAAC,GAAG2+G,GAAA,CAASkC,GAAT,CAAR,CAAA;;UAEA,IAAI7gH,CAAC,KAAK,CAAV,EAAa;AACX;AACA2+G,YAAAA,GAAA,CAASkC,GAAT,EAAc1kH,IAAI,CAACysB,MAAL,EAAA,GAAgB,GAA9B,EAAmCzsB,IAAI,CAACysB,MAAL,KAAgB,GAAnD,CAAA,CAAA;AACA5oB,YAAAA,CAAC,GAAG,CAAJ,CAAA;AACD,WAAA;;AAED,UAAA,IAAIghH,OAAO,GAAG,CAACjE,EAAE,CAACkE,GAAH,GAASjE,EAAE,CAACiE,GAAb,IAAoBjhH,CAApB,GAAwBA,CAAtC,CAAA;AACA,UAAA,CAAC+8G,EAAE,CAACzI,KAAJ,IAAauL,WAAW,CAAC9C,EAAE,CAACoD,EAAJ,EAAQpD,EAAE,CAACoD,EAAX,EAAeU,GAAf,EAAoBG,OAApB,CAAxB,CAAA;AACA,UAAA,CAAChE,EAAE,CAAC1I,KAAJ,IAAauL,WAAW,CAAC7C,EAAE,CAACmD,EAAJ,EAAQnD,EAAE,CAACmD,EAAX,EAAeU,GAAf,EAAoB,CAACG,OAArB,CAAxB,CAAA;AACD,SAAA;AACF,OAAA;;MAED,IAAIvuD,CAAC,GAAG,EAAR,CAAA;;MAEA,KAAK,IAAIpyD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGygH,IAApB,EAA0BzgH,CAAC,EAA3B,EAA+B;AAC7B,QAAA,IAAI01F,CAAC,GAAGF,KAAK,CAACx1F,CAAD,CAAb,CAAA;;AAEA,QAAA,IAAI,CAAC01F,CAAC,CAACue,KAAP,EAAc;UACZqK,GAAA,CAASlsD,CAAT,EAAYsjC,CAAC,CAAC12F,CAAd,EAAiB02F,CAAC,CAACoqB,EAAnB,CAAA,CAAA;AACAN,UAAAA,WAAW,CAAC9pB,CAAC,CAAC12F,CAAH,EAAM02F,CAAC,CAAC12F,CAAR,EAAWozD,CAAX,EAAc4tD,QAAd,CAAX,CAAA;UACA1B,MAAA,CAAU5oB,CAAC,CAACoqB,EAAZ,EAAgBpqB,CAAC,CAAC12F,CAAlB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;;MAEDghH,QAAQ,GAAGA,QAAQ,GAAG,KAAtB,CAAA;AACA,MAAA,IAAI12F,QAAQ,GAAG02F,QAAQ,GAAG,IAA1B,CAAA;MACAE,iBAAiB,IAAIA,iBAAiB,CAAC1qB,KAAD,EAAQoqB,KAAR,EAAet2F,QAAf,CAAtC,CAAA;AACAqC,MAAAA,EAAE,IAAIA,EAAE,CAACrC,QAAD,CAAR,CAAA;AACD,KAAA;GA7GH,CAAA;AA+GD;;AC7MD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCe,SAASu3F,gBAAT,CAA0Bx2E,OAA1B,EAAmC;AAChDA,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,OAAzB,EAAkC,UAAU+5D,WAAV,EAAuB;AACvD,IAAA,IAAI1tF,QAAQ,GAAG0tF,WAAW,CAACztF,gBAA3B,CAAA;;AAEA,IAAA,IAAID,QAAQ,IAAIA,QAAQ,CAAC/d,IAAT,KAAkB,MAAlC,EAA0C;AACxC,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIyrG,WAAW,CAACrmF,GAAZ,CAAgB,QAAhB,CAAA,KAA8B,OAAlC,EAA2C;AACzC,MAAA,IAAIqsF,iBAAiB,GAAGhG,WAAW,CAACiG,eAAZ,IAA+B,EAAvD,CAAA;AACA,MAAA,IAAIC,OAAO,GAAGlG,WAAW,CAACI,QAAZ,EAAd,CAAA;AACA,MAAA,IAAI+F,UAAU,GAAGD,OAAO,CAACxwF,IAAzB,CAAA;AACA,MAAA,IAAIurF,QAAQ,GAAGiF,OAAO,CAACjF,QAAvB,CAAA;AACA,MAAA,IAAImF,UAAU,GAAGpG,WAAW,CAACvmF,QAAZ,CAAqB,OAArB,CAAjB,CAAA;AACA,MAAA,IAAI4sF,UAAU,GAAGD,UAAU,CAACzsF,GAAX,CAAe,YAAf,CAAjB,CAAA;;MAEA,IAAIqmF,WAAW,CAACiG,eAAhB,EAAiC;AAC/BE,QAAAA,UAAU,CAACj4G,IAAX,CAAgB,UAAUgjB,GAAV,EAAe;AAC7B,UAAA,IAAI7b,EAAE,GAAG8wG,UAAU,CAAC3iB,KAAX,CAAiBtyE,GAAjB,CAAT,CAAA;AACAi1F,UAAAA,UAAU,CAACrwE,aAAX,CAAyB5kB,GAAzB,EAA8B80F,iBAAiB,CAAC3wG,EAAD,CAAjB,IAAyB,CAACsrB,GAAD,EAAMA,GAAN,CAAvD,CAAA,CAAA;SAFF,CAAA,CAAA;OADF,MAKO,IAAI,CAAC0lF,UAAD,IAAeA,UAAU,KAAK,MAAlC,EAA0C;QAC/ChD,YAAY,CAACrD,WAAD,CAAZ,CAAA;AACD,OAFM,MAEA,IAAIqG,UAAU,KAAK,UAAnB,EAA+B;AACpCxC,QAAAA,cAAc,CAAC7D,WAAD,EAAc,OAAd,CAAd,CAAA;AACD,OAAA;;AAED,MAAA,IAAIsG,gBAAgB,GAAGH,UAAU,CAAC3/D,aAAX,CAAyB,OAAzB,CAAvB,CAAA;MACA,IAAI+/D,gBAAgB,GAAGtF,QAAQ,CAACz6D,aAAT,CAAuB,OAAvB,CAAvB,CApByC;;AAsBzC,MAAA,IAAIggE,SAAS,GAAGJ,UAAU,CAACzsF,GAAX,CAAe,WAAf,CAAhB,CAAA;AACA,MAAA,IAAI8sF,UAAU,GAAGL,UAAU,CAACzsF,GAAX,CAAe,YAAf,CAAjB,CAAA;AACA,MAAA,IAAI+sF,cAAc,GAAGx9E,SAAA,CAAes9E,SAAf,CAA4BA,GAAAA,SAA5B,GAAwC,CAACA,SAAD,EAAYA,SAAZ,CAA7D,CAAA;AACA,MAAA,IAAIG,eAAe,GAAGz9E,SAAA,CAAeu9E,UAAf,CAAA,GAA6BA,UAA7B,GAA0C,CAACA,UAAD,EAAaA,UAAb,CAAhE,CAzByC;;MA2BzCE,eAAe,GAAG,CAACA,eAAe,CAAC,CAAD,CAAhB,EAAqBA,eAAe,CAAC,CAAD,CAApC,CAAlB,CAAA;AACA,MAAA,IAAIC,OAAO,GAAGT,UAAU,CAAC72D,QAAX,CAAoB,OAApB,EAA6B,UAAU5uB,KAAV,EAAiBxP,GAAjB,EAAsB;AAC/D,QAAA,IAAIkL,KAAK,GAAG+pF,UAAU,CAAChpF,aAAX,CAAyBjM,GAAzB,CAAZ,CAAA;QACA,IAAI40F,GAAG,GAAGl/D,WAAS,CAAClmB,KAAD,EAAQ4lF,gBAAR,EAA0BI,cAA1B,CAAnB,CAAA;;AAEA,QAAA,IAAIrhH,KAAK,CAACygH,GAAD,CAAT,EAAgB;AACdA,UAAAA,GAAG,GAAG,CAACY,cAAc,CAAC,CAAD,CAAd,GAAoBA,cAAc,CAAC,CAAD,CAAnC,IAA0C,CAAhD,CAAA;AACD,SAAA;;QAED,OAAO;AACLriH,UAAAA,CAAC,EAAEyhH,GADE;AAELA,UAAAA,GAAG,EAAEA,GAFA;UAGL3M,KAAK,EAAEgN,UAAU,CAAC5sF,YAAX,CAAwBrI,GAAxB,CAA6ByI,CAAAA,GAA7B,CAAiC,OAAjC,CAHF;UAILz1B,CAAC,EAAE,CAACk4B,KAAD,IAAU/2B,KAAK,CAAC+2B,KAAK,CAAC,CAAD,CAAN,CAAf,IAA6B/2B,KAAK,CAAC+2B,KAAK,CAAC,CAAD,CAAN,CAAlC,GAA+C,IAA/C,GAAsDA,KAAAA;SAJ3D,CAAA;AAMD,OAda,CAAd,CAAA;AAeA,MAAA,IAAI0oF,KAAK,GAAG7D,QAAQ,CAAC3xD,QAAT,CAAkB,OAAlB,EAA2B,UAAU5uB,KAAV,EAAiBxP,GAAjB,EAAsB;AAC3D,QAAA,IAAIyvE,IAAI,GAAGulB,OAAO,CAAC/E,cAAR,CAAuBjwF,GAAvB,CAAX,CAAA;QACA,IAAIrsB,CAAC,GAAG+hD,WAAS,CAAClmB,KAAD,EAAQ6lF,gBAAR,EAA0BI,eAA1B,CAAjB,CAAA;;AAEA,QAAA,IAAIthH,KAAK,CAACR,CAAD,CAAT,EAAc;AACZA,UAAAA,CAAC,GAAG,CAAC8hH,eAAe,CAAC,CAAD,CAAf,GAAqBA,eAAe,CAAC,CAAD,CAArC,IAA4C,CAAhD,CAAA;AACD,SAAA;;AAED,QAAA,IAAIE,SAAS,GAAGlmB,IAAI,CAAClnE,QAAL,EAAhB,CAAA;AACA,QAAA,IAAIktE,SAAS,GAAGz9D,SAAA,CAAiBy3D,IAAI,CAAClnE,QAAL,EAAgBE,CAAAA,GAAhB,CAAoB,CAAC,WAAD,EAAc,WAAd,CAApB,CAAjB,EAAkE,CAAC+oF,mBAAmB,CAAC/hB,IAAD,EAAOqf,WAAP,EAAoB9uF,GAApB,EAAyB,IAAzB,CAAtF,EAAsH,CAAtH,CAAhB,CAAA;QACA,OAAO;UACL0wF,EAAE,EAAEgF,OAAO,CAACjmB,IAAI,CAACpE,KAAL,CAAW5mE,SAAZ,CADN;UAELksF,EAAE,EAAE+E,OAAO,CAACjmB,IAAI,CAACnE,KAAL,CAAW7mE,SAAZ,CAFN;AAGL9wB,UAAAA,CAAC,EAAEA,CAHE;AAIL8hG,UAAAA,SAAS,EAAEA,SAJN;AAKLif,UAAAA,iBAAiB,EAAEiB,SAAS,CAACltF,GAAV,CAAc,mBAAd,CAAA;SALrB,CAAA;OAVU,CAAZ,CA3CyC;;AA8DzC,MAAA,IAAIv1B,IAAI,GAAGkuB,QAAQ,CAAC63B,eAAT,EAAX,CAAA;AACA,MAAA,IAAI28D,aAAa,GAAGnC,WAAW,CAACiC,OAAD,EAAU9B,KAAV,EAAiB;AAC9C1gH,QAAAA,IAAI,EAAEA,IADwC;AAE9C2gH,QAAAA,OAAO,EAAEqB,UAAU,CAACzsF,GAAX,CAAe,SAAf,CAFqC;AAG9CurF,QAAAA,QAAQ,EAAEkB,UAAU,CAACzsF,GAAX,CAAe,UAAf,CAAA;AAHoC,OAAjB,CAA/B,CAAA;AAKAmtF,MAAAA,aAAa,CAACtB,UAAd,CAAyB,UAAU9qB,KAAV,EAAiBoqB,KAAjB,EAAwB;AAC/C,QAAA,KAAK,IAAI5/G,CAAC,GAAG,CAAR,EAAW6hH,CAAC,GAAGrsB,KAAK,CAACl2F,MAA1B,EAAkCU,CAAC,GAAG6hH,CAAtC,EAAyC7hH,CAAC,EAA1C,EAA8C;AAC5C,UAAA,IAAIw1F,KAAK,CAACx1F,CAAD,CAAL,CAASi0G,KAAb,EAAoB;AAClB;AACAqK,YAAAA,MAAA,CAAU9oB,KAAK,CAACx1F,CAAD,CAAL,CAAShB,CAAnB,EAAsBgiH,OAAO,CAACc,cAAR,CAAuB9hH,CAAvB,CAAA,CAA0Bg9B,SAA1B,EAAtB,CAAA,CAAA;AACD,WAAA;AACF,SAAA;OANH,CAAA,CAAA;MAQA4kF,aAAa,CAACrB,SAAd,CAAwB,UAAU/qB,KAAV,EAAiBoqB,KAAjB,EAAwBmC,OAAxB,EAAiC;AACvD,QAAA,KAAK,IAAI/hH,CAAC,GAAG,CAAR,EAAW6hH,CAAC,GAAGrsB,KAAK,CAACl2F,MAA1B,EAAkCU,CAAC,GAAG6hH,CAAtC,EAAyC7hH,CAAC,EAA1C,EAA8C;AAC5C,UAAA,IAAI,CAACw1F,KAAK,CAACx1F,CAAD,CAAL,CAASi0G,KAAd,EAAqB;AACnB+M,YAAAA,OAAO,CAACc,cAAR,CAAuB9hH,CAAvB,CAA0B6wC,CAAAA,SAA1B,CAAoC2kD,KAAK,CAACx1F,CAAD,CAAL,CAAShB,CAA7C,CAAA,CAAA;AACD,WAAA;;AAED8hH,UAAAA,iBAAiB,CAACG,UAAU,CAAC3iB,KAAX,CAAiBt+F,CAAjB,CAAD,CAAjB,GAAyCw1F,KAAK,CAACx1F,CAAD,CAAL,CAAShB,CAAlD,CAAA;AACD,SAAA;;AAED,QAAA,KAAK,IAAIgB,CAAC,GAAG,CAAR,EAAW6hH,CAAC,GAAGjC,KAAK,CAACtgH,MAA1B,EAAkCU,CAAC,GAAG6hH,CAAtC,EAAyC7hH,CAAC,EAA1C,EAA8C;AAC5C,UAAA,IAAIJ,CAAC,GAAGggH,KAAK,CAAC5/G,CAAD,CAAb,CAAA;AACA,UAAA,IAAIy7F,IAAI,GAAGulB,OAAO,CAAC/E,cAAR,CAAuBj8G,CAAvB,CAAX,CAAA;AACA,UAAA,IAAIgN,EAAE,GAAGpN,CAAC,CAAC88G,EAAF,CAAK19G,CAAd,CAAA;AACA,UAAA,IAAIusE,EAAE,GAAG3rE,CAAC,CAAC+8G,EAAF,CAAK39G,CAAd,CAAA;AACA,UAAA,IAAIsP,MAAM,GAAGmtF,IAAI,CAACz+D,SAAL,EAAb,CAAA;UACA1uB,MAAM,GAAGA,MAAM,GAAGA,MAAM,CAAC+W,KAAP,EAAH,GAAoB,EAAnC,CAAA;UACA/W,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAN,IAAa,EAAzB,CAAA;UACAA,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAN,IAAa,EAAzB,CAAA;UACAgwG,MAAA,CAAUhwG,MAAM,CAAC,CAAD,CAAhB,EAAqBtB,EAArB,CAAA,CAAA;UACAsxG,MAAA,CAAUhwG,MAAM,CAAC,CAAD,CAAhB,EAAqBi9D,EAArB,CAAA,CAAA;;AAEA,UAAA,IAAI,CAAC3rE,CAAC,CAAC6hG,SAAP,EAAkB;AAChBnzF,YAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,CAAC,CAACtB,EAAE,CAAC,CAAD,CAAF,GAAQu+D,EAAE,CAAC,CAAD,CAAX,IAAkB,CAAlB,GAAsB,CAACv+D,EAAE,CAAC,CAAD,CAAF,GAAQu+D,EAAE,CAAC,CAAD,CAAX,IAAkB3rE,CAAC,CAAC6hG,SAA3C,EAAsD,CAACz0F,EAAE,CAAC,CAAD,CAAF,GAAQu+D,EAAE,CAAC,CAAD,CAAX,IAAkB,CAAlB,GAAsB,CAACA,EAAE,CAAC,CAAD,CAAF,GAAQv+D,EAAE,CAAC,CAAD,CAAX,IAAkBpN,CAAC,CAAC6hG,SAAhG,CAAZ,CAAA;AACD,WAAA;;UAEDhG,IAAI,CAAC5qD,SAAL,CAAeviC,MAAf,CAAA,CAAA;AACD,SAAA;OA1BH,CAAA,CAAA;MA4BAwsG,WAAW,CAAC2E,WAAZ,GAA0BmC,aAA1B,CAAA;AACA9G,MAAAA,WAAW,CAACiG,eAAZ,GAA8BD,iBAA9B,CAzGyC;;AA2GzCc,MAAAA,aAAa,CAACnyF,IAAd,EAAA,CAAA;AACD,KA5GD,MA4GO;AACL;MACAqrF,WAAW,CAAC2E,WAAZ,GAA0B,IAA1B,CAAA;AACD,KAAA;GAtHH,CAAA,CAAA;AAwHD;;AC1KD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,SAASl/D,aAAT,CAAqBvtB,WAArB,EAAkCna,GAAlC,EAAuCs5E,MAAvC,EAA+C;EAC7C,IAAIhlE,MAAM,GAAGtlB,MAAM,CAACmrB,WAAW,CAACwtB,kBAAZ,EAAD,EAAmC;AACpD2xC,IAAAA,MAAM,EAAEA,MAAAA;AAD4C,GAAnC,CAAnB,CAAA;EAGA,OAAOz2B,aAAa,CAACvuC,MAAD,EAAS;AAC3BpnB,IAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADoB;IAE3BhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;AAFmB,GAAT,CAApB,CAAA;AAID,CAAA;;AAEc,SAAS+iG,kBAAT,CAA4B33E,OAA5B,EAAqCxxB,GAArC,EAA0C;EACvD,IAAIopG,QAAQ,GAAG,EAAf,CAAA;AACA53E,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,OAAzB,EAAkC,UAAU/tB,WAAV,EAAuB;AACvD,IAAA,IAAIkvF,YAAY,GAAGlvF,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,CAAnB,CAAA;;AAEA,IAAA,IAAI,CAACytF,YAAD,IAAiBA,YAAY,KAAK,MAAtC,EAA8C;AAC5C,MAAA,IAAIp5E,MAAM,GAAG9V,WAAW,CAAC3E,OAAZ,EAAb,CAAA;MACA,IAAI8zF,SAAS,GAAGr5E,MAAM,CAACshB,QAAP,CAAgB,UAAUp+B,GAAV,EAAe;AAC7C,QAAA,IAAIoI,SAAS,GAAG0U,MAAM,CAACzU,YAAP,CAAoBrI,GAApB,CAAhB,CAAA;AACA,QAAA,OAAO,CAAC,CAACoI,SAAS,CAACK,GAAV,CAAc,GAAd,CAAF,EAAsB,CAACL,SAAS,CAACK,GAAV,CAAc,GAAd,CAAvB,CAAP,CAAA;AACD,OAHe,CAAhB,CAAA;MAIA,IAAImK,GAAG,GAAG,EAAV,CAAA;MACA,IAAIpgB,GAAG,GAAG,EAAV,CAAA;MACAm6E,UAAA,CAAgBwpB,SAAhB,EAA2BvjF,GAA3B,EAAgCpgB,GAAhC,CAAA,CAR4C;;MAU5C,IAAIA,GAAG,CAAC,CAAD,CAAH,GAASogB,GAAG,CAAC,CAAD,CAAZ,KAAoB,CAAxB,EAA2B;AACzBpgB,QAAAA,GAAG,CAAC,CAAD,CAAH,IAAU,CAAV,CAAA;AACAogB,QAAAA,GAAG,CAAC,CAAD,CAAH,IAAU,CAAV,CAAA;AACD,OAAA;;MAED,IAAIpgB,GAAG,CAAC,CAAD,CAAH,GAASogB,GAAG,CAAC,CAAD,CAAZ,KAAoB,CAAxB,EAA2B;AACzBpgB,QAAAA,GAAG,CAAC,CAAD,CAAH,IAAU,CAAV,CAAA;AACAogB,QAAAA,GAAG,CAAC,CAAD,CAAH,IAAU,CAAV,CAAA;AACD,OAAA;;MAED,IAAIuzD,MAAM,GAAG,CAAC3zE,GAAG,CAAC,CAAD,CAAH,GAASogB,GAAG,CAAC,CAAD,CAAb,KAAqBpgB,GAAG,CAAC,CAAD,CAAH,GAASogB,GAAG,CAAC,CAAD,CAAjC,CAAb,CApB4C;;MAsB5C,IAAI8hB,QAAQ,GAAGH,aAAW,CAACvtB,WAAD,EAAcna,GAAd,EAAmBs5E,MAAnB,CAA1B,CAtB4C;;AAwB5C,MAAA,IAAIhyF,KAAK,CAACgyF,MAAD,CAAT,EAAmB;QACjBvzD,GAAG,GAAG,CAAC8hB,QAAQ,CAAC3jD,CAAV,EAAa2jD,QAAQ,CAAC1jD,CAAtB,CAAN,CAAA;AACAwhB,QAAAA,GAAG,GAAG,CAACkiC,QAAQ,CAAC3jD,CAAT,GAAa2jD,QAAQ,CAAC36C,KAAvB,EAA8B26C,QAAQ,CAAC1jD,CAAT,GAAa0jD,QAAQ,CAAC16C,MAApD,CAAN,CAAA;AACD,OAAA;;MAED,IAAIo8G,OAAO,GAAG5jG,GAAG,CAAC,CAAD,CAAH,GAASogB,GAAG,CAAC,CAAD,CAA1B,CAAA;MACA,IAAIyjF,QAAQ,GAAG7jG,GAAG,CAAC,CAAD,CAAH,GAASogB,GAAG,CAAC,CAAD,CAA3B,CAAA;AACA,MAAA,IAAI5b,SAAS,GAAG09B,QAAQ,CAAC36C,KAAzB,CAAA;AACA,MAAA,IAAIkd,UAAU,GAAGy9B,QAAQ,CAAC16C,MAA1B,CAAA;MACA,IAAIgzF,YAAY,GAAGhmE,WAAW,CAAC3F,gBAAZ,GAA+B,IAAIuhE,IAAJ,EAAlD,CAAA;MACAoK,YAAY,CAACliB,SAAb,GAAyB9jD,WAAW,CAACyB,GAAZ,CAAgB,YAAhB,CAAzB,CAAA;AACAukE,MAAAA,YAAY,CAAChK,eAAb,CAA6BpwD,GAAG,CAAC,CAAD,CAAhC,EAAqCA,GAAG,CAAC,CAAD,CAAxC,EAA6CwjF,OAA7C,EAAsDC,QAAtD,CAAA,CAAA;AACArpB,MAAAA,YAAY,CAAC/J,WAAb,CAAyBvuC,QAAQ,CAAC3jD,CAAlC,EAAqC2jD,QAAQ,CAAC1jD,CAA9C,EAAiDgmB,SAAjD,EAA4DC,UAA5D,EApC4C;;MAsC5C+1E,YAAY,CAACtX,SAAb,CAAuB1uD,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAvB,EAAkD5b,GAAlD,CAAA,CAAA;MACAmgF,YAAY,CAACzL,OAAb,CAAqBv6D,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,CAArB,CAAA,CAAA;MACAwtF,QAAQ,CAAC5hH,IAAT,CAAc24F,YAAd,CAAA,CAAA;AACD,KAAA;GA5CH,CAAA,CAAA;AA8CA,EAAA,OAAOipB,QAAP,CAAA;AACD;;AC3GD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA,IAAIK,iBAAiB,GAAGjvF,MAAA,CAAa/2B,SAArC,CAAA;AACA,IAAIimH,gBAAgB,GAAGlvF,WAAA,CAAoB/2B,SAA3C,CAAA;;AAEA,IAAIkmH,iBAAiB;AACrB;AACA,YAAY;AACV,EAAA,SAASA,iBAAT,GAA6B;AAC3B;IACA,IAAKlvG,CAAAA,EAAL,GAAU,CAAV,CAAA;AACA,IAAA,IAAA,CAAKC,EAAL,GAAU,CAAV,CAH2B;;IAK3B,IAAKnW,CAAAA,EAAL,GAAU,CAAV,CAAA;IACA,IAAKC,CAAAA,EAAL,GAAU,CAAV,CAAA;IACA,IAAKyH,CAAAA,OAAL,GAAe,CAAf,CAAA;AACD,GAAA;;AAED,EAAA,OAAO09G,iBAAP,CAAA;AACD,CAZD,EAFA,CAAA;;AAgBA,IAAIC,UAAU;AACd;AACA,UAAUjiG,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACgiG,UAAD,EAAajiG,MAAb,CAAT,CAAA;;AAEA,EAAA,SAASiiG,UAAT,GAAsB;AACpB,IAAA,OAAOjiG,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;;AAED,EAAA,OAAOwiH,UAAP,CAAA;AACD,CARD,CAQED,iBARF,CAFA,CAAA;;AAYA,SAASE,cAAT,CAAwB96G,KAAxB,EAA+B;AAC7B,EAAA,OAAOzH,KAAK,CAAC,CAACyH,KAAK,CAAC23B,IAAR,CAAL,IAAsBp/B,KAAK,CAAC,CAACyH,KAAK,CAAC43B,IAAR,CAAlC,CAAA;AACD,CAAA;;AAED,IAAImjF,UAAU;AACd;AACA,UAAUniG,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACkiG,UAAD,EAAaniG,MAAb,CAAT,CAAA;;EAEA,SAASmiG,UAAT,CAAoB7+G,IAApB,EAA0B;IACxB,IAAI4c,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB7c,IAAlB,CAAA,IAA2B,IAAvC,CAAA;;IAEA4c,KAAK,CAACrR,IAAN,GAAa,SAAb,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDiiG,EAAAA,UAAU,CAACrmH,SAAX,CAAqBskC,eAArB,GAAuC,YAAY;IACjD,OAAO;AACL7/B,MAAAA,MAAM,EAAE,MADH;AAELF,MAAAA,IAAI,EAAE,IAAA;KAFR,CAAA;GADF,CAAA;;AAOA8hH,EAAAA,UAAU,CAACrmH,SAAX,CAAqBukC,eAArB,GAAuC,YAAY;IACjD,OAAO,IAAI2hF,iBAAJ,EAAP,CAAA;GADF,CAAA;;EAIAG,UAAU,CAACrmH,SAAX,CAAqBwL,SAArB,GAAiC,UAAUwa,GAAV,EAAe1a,KAAf,EAAsB;AACrD,IAAA,IAAI86G,cAAc,CAAC96G,KAAD,CAAlB,EAA2B;MACzB06G,iBAAiB,CAACx6G,SAAlB,CAA4B6Y,IAA5B,CAAiC,IAAjC,EAAuC2B,GAAvC,EAA4C1a,KAA5C,CAAA,CAAA;AACD,KAFD,MAEO;MACL26G,gBAAgB,CAACz6G,SAAjB,CAA2B6Y,IAA3B,CAAgC,IAAhC,EAAsC2B,GAAtC,EAA2C1a,KAA3C,CAAA,CAAA;AACD,KAAA;GALH,CAAA;;AAQA+6G,EAAAA,UAAU,CAACrmH,SAAX,CAAqBsmH,OAArB,GAA+B,UAAUzhF,CAAV,EAAa;AAC1C,IAAA,IAAIuhF,cAAc,CAAC,IAAK96G,CAAAA,KAAN,CAAlB,EAAgC;MAC9B,OAAO06G,iBAAiB,CAACM,OAAlB,CAA0BjiG,IAA1B,CAA+B,IAA/B,EAAqCwgB,CAArC,CAAP,CAAA;AACD,KAFD,MAEO;MACL,OAAOohF,gBAAgB,CAACK,OAAjB,CAAyBjiG,IAAzB,CAA8B,IAA9B,EAAoCwgB,CAApC,CAAP,CAAA;AACD,KAAA;GALH,CAAA;;AAQAwhF,EAAAA,UAAU,CAACrmH,SAAX,CAAqBumH,SAArB,GAAiC,UAAU1hF,CAAV,EAAa;IAC5C,IAAIv5B,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAI5I,CAAC,GAAG0jH,cAAc,CAAC96G,KAAD,CAAd,GAAwB,CAACA,KAAK,CAACxK,EAAN,GAAWwK,KAAK,CAAC0L,EAAlB,EAAsB1L,KAAK,CAACvK,EAAN,GAAWuK,KAAK,CAAC2L,EAAvC,CAAxB,GAAqEgvG,gBAAgB,CAACM,SAAjB,CAA2BliG,IAA3B,CAAgC,IAAhC,EAAsCwgB,CAAtC,CAA7E,CAAA;AACA,IAAA,OAAOm9E,WAAA,CAAet/G,CAAf,EAAkBA,CAAlB,CAAP,CAAA;GAHF,CAAA;;AAMA,EAAA,OAAO2jH,UAAP,CAAA;AACD,CA5CD,CA4CEtvF,IA5CF,CAFA;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkCA,IAAIyvF,iBAAiB,GAAG,CAAC,YAAD,EAAe,UAAf,CAAxB,CAAA;;AAEA,SAASC,iBAAT,CAA2BC,cAA3B,EAA2C;EACzC,OAAO,GAAA,GAAMA,cAAN,GAAuB,MAA9B,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASl1F,YAAT,CAAsB9qB,IAAtB,EAA4BigH,QAA5B,EAAsCj3F,GAAtC,EAA2C;EACzC,IAAIwC,UAAU,GAAGy0F,QAAQ,CAAClwF,aAAT,CAAuB/G,GAAvB,EAA4BhpB,IAA5B,CAAjB,CAAA;;AAEA,EAAA,IAAI,CAACwrB,UAAD,IAAeA,UAAU,KAAK,MAAlC,EAA0C;AACxC,IAAA,OAAA;AACD,GAAA;;EAED,IAAImB,UAAU,GAAGszF,QAAQ,CAAClwF,aAAT,CAAuB/G,GAAvB,EAA4BhpB,IAAI,GAAG,MAAnC,CAAjB,CAAA;EACA,IAAI4rB,YAAY,GAAGq0F,QAAQ,CAAClwF,aAAT,CAAuB/G,GAAvB,EAA4BhpB,IAAI,GAAG,QAAnC,CAAnB,CAAA;EACA,IAAI4xB,YAAY,GAAGquF,QAAQ,CAAClwF,aAAT,CAAuB/G,GAAvB,EAA4BhpB,IAAI,GAAG,QAAnC,CAAnB,CAAA;EACA,IAAIkgH,gBAAgB,GAAGD,QAAQ,CAAClwF,aAAT,CAAuB/G,GAAvB,EAA4BhpB,IAAI,GAAG,YAAnC,CAAvB,CAAA;AACA,EAAA,IAAImgH,aAAa,GAAGj2C,mBAAA,CAA+Bv9C,UAA/B,CAApB,CAAA;EACA,IAAIyzF,eAAe,GAAGl2C,qBAAA,CAAiCt4C,YAAY,IAAI,CAAjD,EAAoDuuF,aAApD,CAAtB,CAAA;EACA,IAAI3xF,UAAU,GAAG07C,cAAA,CAAwB1+C,UAAxB,EAAoC,CAAC20F,aAAa,CAAC,CAAD,CAAd,GAAoB,CAApB,GAAwBC,eAAe,CAAC,CAAD,CAA3E,EAAgF,CAACD,aAAa,CAAC,CAAD,CAAd,GAAoB,CAApB,GAAwBC,eAAe,CAAC,CAAD,CAAvH,EAA4HD,aAAa,CAAC,CAAD,CAAzI,EAA8IA,aAAa,CAAC,CAAD,CAA3J,EAAgK,IAAhK,EAAsKD,gBAAtK,CAAjB,CAAA;EACA1xF,UAAU,CAAC6xF,mBAAX,GAAiCz0F,YAAY,IAAI,IAAhB,IAAwBzuB,KAAK,CAACyuB,YAAD,CAA7B,GAA8C,KAAK,CAAnD,GAAuD,CAACA,YAAD,GAAgB9yB,IAAI,CAACI,EAArB,GAA0B,GAA1B,IAAiC,CAAzH,CAAA;EACAs1B,UAAU,CAACxuB,IAAX,GAAkBA,IAAlB,CAAA;AACA,EAAA,OAAOwuB,UAAP,CAAA;AACD,CAAA;;AAED,SAAS8xF,UAAT,CAAoBh1G,MAApB,EAA4B;AAC1B,EAAA,IAAIuf,IAAI,GAAG,IAAI80F,UAAJ,CAAe;AACxB3/G,IAAAA,IAAI,EAAE,MADkB;AAExB48D,IAAAA,gBAAgB,EAAE,IAAA;AAFM,GAAf,CAAX,CAAA;AAIA2jD,EAAAA,aAAa,CAAC11F,IAAI,CAACjmB,KAAN,EAAa0G,MAAb,CAAb,CAAA;AACA,EAAA,OAAOuf,IAAP,CAAA;AACD,CAAA;;AAED,SAAS01F,aAAT,CAAuBC,WAAvB,EAAoCl1G,MAApC,EAA4C;EAC1Ck1G,WAAW,CAAClwG,EAAZ,GAAiBhF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAjB,CAAA;EACAk1G,WAAW,CAACjwG,EAAZ,GAAiBjF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAjB,CAAA;EACAk1G,WAAW,CAACpmH,EAAZ,GAAiBkR,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAjB,CAAA;EACAk1G,WAAW,CAACnmH,EAAZ,GAAiBiR,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAjB,CAAA;EACAk1G,WAAW,CAAC1+G,OAAZ,GAAsB,CAAtB,CAAA;AACA,EAAA,IAAIg6G,GAAG,GAAGxwG,MAAM,CAAC,CAAD,CAAhB,CAAA;;AAEA,EAAA,IAAIwwG,GAAJ,EAAS;AACP0E,IAAAA,WAAW,CAACjkF,IAAZ,GAAmBu/E,GAAG,CAAC,CAAD,CAAtB,CAAA;AACA0E,IAAAA,WAAW,CAAChkF,IAAZ,GAAmBs/E,GAAG,CAAC,CAAD,CAAtB,CAAA;AACD,GAHD,MAGO;IACL0E,WAAW,CAACjkF,IAAZ,GAAmB9D,GAAnB,CAAA;IACA+nF,WAAW,CAAChkF,IAAZ,GAAmB/D,GAAnB,CAAA;AACD,GAAA;AACF,CAAA;;AAED,IAAIk/C,IAAI;AACR;AACA,UAAUn6D,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACk6D,IAAD,EAAOn6D,MAAP,CAAT,CAAA;;AAEA,EAAA,SAASm6D,IAAT,CAAcsoC,QAAd,EAAwBj3F,GAAxB,EAA6BmF,WAA7B,EAA0C;IACxC,IAAIzQ,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,KAAqB,IAAjC,CAAA;;AAEAD,IAAAA,KAAK,CAAC+iG,WAAN,CAAkBR,QAAlB,EAA4Bj3F,GAA5B,EAAiCmF,WAAjC,CAAA,CAAA;;AAEA,IAAA,OAAOzQ,KAAP,CAAA;AACD,GAAA;;EAEDi6D,IAAI,CAACr+E,SAAL,CAAemnH,WAAf,GAA6B,UAAUR,QAAV,EAAoBj3F,GAApB,EAAyBmF,WAAzB,EAAsC;AACjE,IAAA,IAAI6B,WAAW,GAAGiwF,QAAQ,CAAChwF,SAA3B,CAAA;AACA,IAAA,IAAIuwB,UAAU,GAAGy/D,QAAQ,CAAChrF,aAAT,CAAuBjM,GAAvB,CAAjB,CAAA;AACA,IAAA,IAAI6B,IAAI,GAAGy1F,UAAU,CAAC9/D,UAAD,CAArB,CAAA;AACA31B,IAAAA,IAAI,CAACjmB,KAAL,CAAW9C,OAAX,GAAqB,CAArB,CAAA;AACAuuB,IAAAA,SAAA,CAAkBxF,IAAlB,EAAwB;AACtBjmB,MAAAA,KAAK,EAAE;AACL9C,QAAAA,OAAO,EAAE,CAAA;AADJ,OAAA;KADT,EAIGkuB,WAJH,EAIgBhH,GAJhB,CAAA,CAAA;IAKA,IAAKkC,CAAAA,GAAL,CAASL,IAAT,CAAA,CAAA;AACA7kB,IAAAA,MAAI,CAAC85G,iBAAD,EAAoB,UAAUE,cAAV,EAA0B;MAChD,IAAIt0F,MAAM,GAAGZ,YAAY,CAACk1F,cAAD,EAAiBC,QAAjB,EAA2Bj3F,GAA3B,CAAzB,CADgD;AAEhD;AACA;;MAEA,IAAKkC,CAAAA,GAAL,CAASQ,MAAT,CAAA,CAAA;AACA,MAAA,IAAA,CAAKq0F,iBAAiB,CAACC,cAAD,CAAtB,CAA0CC,GAAAA,QAAQ,CAAClwF,aAAT,CAAuB/G,GAAvB,EAA4Bg3F,cAA5B,CAA1C,CAAA;KANE,EAOD,IAPC,CAAJ,CAAA;;AASA,IAAA,IAAA,CAAKU,gBAAL,CAAsBT,QAAtB,EAAgCj3F,GAAhC,EAAqCmF,WAArC,CAAA,CAAA;AACD,GArBD,CAXgB;;;EAmChBwpD,IAAI,CAACr+E,SAAL,CAAe80B,UAAf,GAA4B,UAAU6xF,QAAV,EAAoBj3F,GAApB,EAAyBmF,WAAzB,EAAsC;AAChE,IAAA,IAAI6B,WAAW,GAAGiwF,QAAQ,CAAChwF,SAA3B,CAAA;AACA,IAAA,IAAIpF,IAAI,GAAG,IAAA,CAAK81F,WAAL,CAAiB,MAAjB,CAAX,CAAA;AACA,IAAA,IAAIngE,UAAU,GAAGy/D,QAAQ,CAAChrF,aAAT,CAAuBjM,GAAvB,CAAjB,CAAA;AACA,IAAA,IAAI7jB,MAAM,GAAG;AACXP,MAAAA,KAAK,EAAE,EAAA;KADT,CAAA;AAGA27G,IAAAA,aAAa,CAACp7G,MAAM,CAACP,KAAR,EAAe47C,UAAf,CAAb,CAAA;IACAnwB,aAAA,CAAoBxF,IAApB,EAA0B1lB,MAA1B,EAAkC6qB,WAAlC,EAA+ChH,GAA/C,CAAA,CAAA;AACAhjB,IAAAA,MAAI,CAAC85G,iBAAD,EAAoB,UAAUE,cAAV,EAA0B;MAChD,IAAIx0F,UAAU,GAAGy0F,QAAQ,CAAClwF,aAAT,CAAuB/G,GAAvB,EAA4Bg3F,cAA5B,CAAjB,CAAA;AACA,MAAA,IAAI3/G,GAAG,GAAG0/G,iBAAiB,CAACC,cAAD,CAA3B,CAFgD;;AAIhD,MAAA,IAAI,IAAK3/G,CAAAA,GAAL,CAAcmrB,KAAAA,UAAlB,EAA8B;AAC5B,QAAA,IAAA,CAAKkK,MAAL,CAAY,IAAA,CAAKirF,WAAL,CAAiBX,cAAjB,CAAZ,CAAA,CAAA;QACA,IAAIt0F,MAAM,GAAGZ,YAAY,CAACk1F,cAAD,EAAiBC,QAAjB,EAA2Bj3F,GAA3B,CAAzB,CAAA;QACA,IAAKkC,CAAAA,GAAL,CAASQ,MAAT,CAAA,CAAA;AACD,OAAA;;MAED,IAAKrrB,CAAAA,GAAL,IAAYmrB,UAAZ,CAAA;KAVE,EAWD,IAXC,CAAJ,CAAA;;AAaA,IAAA,IAAA,CAAKk1F,gBAAL,CAAsBT,QAAtB,EAAgCj3F,GAAhC,EAAqCmF,WAArC,CAAA,CAAA;GAtBF,CAAA;;AAyBA,EAAA,CAAA;;AAEAwpD,EAAAA,IAAI,CAACr+E,SAAL,CAAesnH,WAAf,GAA6B,YAAY;AACvC,IAAA,OAAO,IAAK3xF,CAAAA,OAAL,CAAa,CAAb,CAAP,CAAA;GADF,CAAA;;EAIA0oD,IAAI,CAACr+E,SAAL,CAAeonH,gBAAf,GAAkC,UAAUT,QAAV,EAAoBj3F,GAApB,EAAyBmF,WAAzB,EAAsC;AACtE,IAAA,IAAI6B,WAAW,GAAGiwF,QAAQ,CAAChwF,SAA3B,CAAA;AACA,IAAA,IAAIpF,IAAI,GAAG,IAAA,CAAK81F,WAAL,CAAiB,MAAjB,CAAX,CAAA;AACA,IAAA,IAAIx3E,iBAAiB,GAAGhb,WAAW,IAAIA,WAAW,CAACgb,iBAAnD,CAAA;AACA,IAAA,IAAI03E,aAAa,GAAG1yF,WAAW,IAAIA,WAAW,CAAC0yF,aAA/C,CAAA;AACA,IAAA,IAAIC,eAAe,GAAG3yF,WAAW,IAAIA,WAAW,CAAC2yF,eAAjD,CAAA;AACA,IAAA,IAAI9vF,iBAAiB,GAAG7C,WAAW,IAAIA,WAAW,CAAC6C,iBAAnD,CAAA;AACA,IAAA,IAAID,gBAAgB,GAAG5C,WAAW,IAAIA,WAAW,CAAC4C,gBAAlD,CAAA;AACA,IAAA,IAAIF,KAAK,GAAG1C,WAAW,IAAIA,WAAW,CAAC0C,KAAvC,CAAA;IACA,IAAIC,SAAS,GAAG3C,WAAW,IAAIA,WAAW,CAAC2C,SAA3C,CATsE;;AAWtE,IAAA,IAAI,CAAC3C,WAAD,IAAgB8xF,QAAQ,CAAC9uF,aAA7B,EAA4C;AAC1C,MAAA,IAAIC,SAAS,GAAG6uF,QAAQ,CAAC5uF,YAAT,CAAsBrI,GAAtB,CAAhB,CAAA;AACA,MAAA,IAAIsI,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAApB,CAAA;MACA4X,iBAAiB,GAAG7X,aAAa,CAACC,QAAd,CAAuB,WAAvB,CAAA,CAAoCyX,YAApC,EAApB,CAAA;AACA63E,MAAAA,aAAa,GAAGzvF,SAAS,CAACG,QAAV,CAAmB,CAAC,MAAD,EAAS,WAAT,CAAnB,CAA0CyX,CAAAA,YAA1C,EAAhB,CAAA;AACA83E,MAAAA,eAAe,GAAG1vF,SAAS,CAACG,QAAV,CAAmB,CAAC,QAAD,EAAW,WAAX,CAAnB,CAA4CyX,CAAAA,YAA5C,EAAlB,CAAA;AACAjY,MAAAA,gBAAgB,GAAGO,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAnB,CAAA;AACAZ,MAAAA,KAAK,GAAGS,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAR,CAAA;AACAX,MAAAA,SAAS,GAAGQ,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAZ,CAAA;AACAT,MAAAA,iBAAiB,GAAGU,oBAAoB,CAACN,SAAD,CAAxC,CAAA;AACD,KAAA;;IAED,IAAInG,SAAS,GAAGg1F,QAAQ,CAAClwF,aAAT,CAAuB/G,GAAvB,EAA4B,OAA5B,CAAhB,CAAA;AACA,IAAA,IAAI+I,WAAW,GAAG9G,SAAS,CAACltB,MAA5B,CAAA;IACA8sB,IAAI,CAACoH,QAAL,CAAchH,SAAd,CAAA,CAAA;AACAJ,IAAAA,IAAI,CAACjtB,KAAL,CAAWC,IAAX,GAAkB,IAAlB,CAAA;AACAgtB,IAAAA,IAAI,CAACjtB,KAAL,CAAWmB,aAAX,GAA2B,IAA3B,CAAA;AACA8rB,IAAAA,IAAI,CAACsI,WAAL,CAAiB,UAAjB,CAA6Bv1B,CAAAA,KAA7B,GAAqCurC,iBAArC,CAAA;AACAte,IAAAA,IAAI,CAACsI,WAAL,CAAiB,MAAjB,CAAyBv1B,CAAAA,KAAzB,GAAiCijH,aAAjC,CAAA;IACAh2F,IAAI,CAACsI,WAAL,CAAiB,QAAjB,EAA2Bv1B,KAA3B,GAAmCkjH,eAAnC,CA9BsE;;AAgCtE96G,IAAAA,MAAI,CAAC85G,iBAAD,EAAoB,UAAUE,cAAV,EAA0B;AAChD,MAAA,IAAIt0F,MAAM,GAAG,IAAA,CAAKi1F,WAAL,CAAiBX,cAAjB,CAAb,CAAA;;AAEA,MAAA,IAAIt0F,MAAJ,EAAY;AACV;QACAA,MAAM,CAAC0G,QAAP,CAAgBL,WAAhB,CAAA,CAAA;AACArG,QAAAA,MAAM,CAAC9tB,KAAP,CAAaa,OAAb,GAAuBwsB,SAAS,CAACxsB,OAAjC,CAAA;;AAEA,QAAA,KAAK,IAAIzB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyoC,cAAc,CAACnpC,MAAnC,EAA2CU,CAAC,EAA5C,EAAgD;AAC9C,UAAA,IAAI0tE,SAAS,GAAGjlC,cAAc,CAACzoC,CAAD,CAA9B,CAAA;AACA,UAAA,IAAI+jH,SAAS,GAAGl2F,IAAI,CAACue,QAAL,CAAcshC,SAAd,CAAhB,CAAA;;AAEA,UAAA,IAAIq2C,SAAJ,EAAe;AACb,YAAA,IAAIC,cAAc,GAAGD,SAAS,CAACnjH,KAAV,IAAmB,EAAxC,CAAA;AACA,YAAA,IAAI49C,KAAK,GAAG9vB,MAAM,CAACyH,WAAP,CAAmBu3C,SAAnB,CAAZ,CAAA;YACA,IAAIu2C,UAAU,GAAGzlE,KAAK,CAAC59C,KAAN,KAAgB49C,KAAK,CAAC59C,KAAN,GAAc,EAA9B,CAAjB,CAAA;;AAEA,YAAA,IAAIojH,cAAc,CAACjjH,MAAf,IAAyB,IAA7B,EAAmC;AACjCkjH,cAAAA,UAAU,CAACv1F,MAAM,CAACwG,cAAP,GAAwB,QAAxB,GAAmC,MAApC,CAAV,GAAwD8uF,cAAc,CAACjjH,MAAvE,CAAA;AACD,aAAA;;AAED,YAAA,IAAIijH,cAAc,CAACviH,OAAf,IAA0B,IAA9B,EAAoC;AAClCwiH,cAAAA,UAAU,CAACxiH,OAAX,GAAqBuiH,cAAc,CAACviH,OAApC,CAAA;AACD,aAAA;AACF,WAAA;AACF,SAAA;;AAEDitB,QAAAA,MAAM,CAACuK,UAAP,EAAA,CAAA;AACD,OAAA;KA5BC,EA6BD,IA7BC,CAAJ,CAAA;AA8BA,IAAA,IAAIrI,MAAM,GAAGoC,WAAW,CAACkc,WAAZ,CAAwBljB,GAAxB,CAAb,CAAA;AACA0J,IAAAA,aAAa,CAAC,IAAD,EAAO1B,iBAAP,EAA0B;AACrC4B,MAAAA,cAAc,EAAE5J,GADqB;AAErC2J,MAAAA,YAAY,EAAE;AACZ2yB,QAAAA,iBAAiB,EAAE,SAAA,iBAAA,CAAU73B,SAAV,EAAqBi9C,SAArB,EAAgC;UACjD,OAAO16C,WAAW,CAACs1B,iBAAZ,CAA8B73B,SAA9B,EAAyCi9C,SAAzC,EAAoDu1C,QAAQ,CAAC50C,QAA7D,CAAP,CAAA;AACD,SAAA;OALkC;MAOrCt4C,YAAY,EAAEhB,WAAW,IAAI,MAPQ;MAQrCiB,cAAc,EAAE/H,SAAS,CAACxsB,OARW;MASrCo0B,WAAW,EAAE,CAACjF,MAAM,IAAI,IAAV,GAAiBqyF,QAAQ,CAAChtF,OAAT,CAAiBjK,GAAjB,CAAjB,GAAyCzI,QAAQ,CAACqN,MAAD,CAAR,GAAmB7xB,OAAK,CAAC6xB,MAAD,CAAxB,GAAmCA,MAA7E,IAAuF,EAAA;AAT/D,KAA1B,CAAb,CAAA;AAWA,IAAA,IAAIzB,KAAK,GAAG,IAAA,CAAKhY,cAAL,EAAZ,CA1EsE;AA2EtE;;AAEA,IAAA,IAAIgY,KAAJ,EAAW;AACT,MAAA,IAAI+0F,gBAAgB,GAAGlwF,iBAAiB,CAAC6V,MAAzC,CAAA;AACA1a,MAAAA,KAAK,CAACg1F,OAAN,GAAgBh1F,KAAK,CAACvuB,KAAN,CAAY+oC,KAA5B,CAAA;MACAxa,KAAK,CAACi1F,eAAN,GAAwBj1F,KAAK,CAACvuB,KAAN,CAAYgpC,aAApC,CAHS;;MAKTza,KAAK,CAACk1F,UAAN,GAAmBH,gBAAgB,CAACzvF,GAAjB,CAAqB,UAArB,CAAA,IAAoC,QAAvD,CAAA;AACA,MAAA,IAAIlF,QAAQ,GAAG20F,gBAAgB,CAACzvF,GAAjB,CAAqB,UAArB,CAAf,CAAA;;AAEA,MAAA,IAAI,CAAC9b,SAAO,CAAC4W,QAAD,CAAZ,EAAwB;AACtBA,QAAAA,QAAQ,GAAG,CAACA,QAAD,EAAWA,QAAX,CAAX,CAAA;AACD,OAAA;;MAEDJ,KAAK,CAACm1F,eAAN,GAAwB/0F,QAAxB,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAK+lB,aAAL,CAAmB;AACjBl1B,MAAAA,QAAQ,EAAE,IADO;AAEjBmkG,MAAAA,KAAK,EAAE,IAFU;MAGjBlmE,MAAM,EAAE,KAHS;;KAAnB,CAAA,CAAA;IAMA/nB,mBAAmB,CAAC,IAAD,EAAOzC,KAAP,EAAcC,SAAd,EAAyBC,gBAAzB,CAAnB,CAAA;GAlGF,CAAA;;AAqGA4mD,EAAAA,IAAI,CAACr+E,SAAL,CAAe+1B,SAAf,GAA2B,YAAY;IACrCC,aAAa,CAAC,IAAD,CAAb,CAAA;GADF,CAAA;;AAIAqoD,EAAAA,IAAI,CAACr+E,SAAL,CAAei2B,QAAf,GAA0B,YAAY;IACpCC,aAAa,CAAC,IAAD,CAAb,CAAA;GADF,CAAA;;EAIAmoD,IAAI,CAACr+E,SAAL,CAAey8B,YAAf,GAA8B,UAAUkqF,QAAV,EAAoBj3F,GAApB,EAAyB;AACrD,IAAA,IAAA,CAAKu3F,aAAL,CAAmBN,QAAQ,CAAChrF,aAAT,CAAuBjM,GAAvB,CAAnB,CAAA,CAAA;GADF,CAAA;;AAIA2uD,EAAAA,IAAI,CAACr+E,SAAL,CAAeinH,aAAf,GAA+B,UAAUj1G,MAAV,EAAkB;AAC/C,IAAA,IAAIk2G,QAAQ,GAAG,IAAA,CAAKb,WAAL,CAAiB,MAAjB,CAAf,CAAA;AACAJ,IAAAA,aAAa,CAACiB,QAAQ,CAAC58G,KAAV,EAAiB0G,MAAjB,CAAb,CAAA;AACAk2G,IAAAA,QAAQ,CAACr+F,KAAT,EAAA,CAAA;GAHF,CAAA;;AAMAw0D,EAAAA,IAAI,CAACr+E,SAAL,CAAeozG,YAAf,GAA8B,YAAY;IACxC,IAAI1lE,SAAS,GAAG,IAAhB,CAAA;AACA,IAAA,IAAIy6E,UAAU,GAAGz6E,SAAS,CAAC25E,WAAV,CAAsB,YAAtB,CAAjB,CAAA;AACA,IAAA,IAAIe,QAAQ,GAAG16E,SAAS,CAAC25E,WAAV,CAAsB,UAAtB,CAAf,CAAA;AACA,IAAA,IAAIx0F,KAAK,GAAG6a,SAAS,CAAC7yB,cAAV,EAAZ,CAJwC;;AAMxC,IAAA,IAAI,CAACstG,UAAD,IAAe,CAACC,QAAhB,KAA6B,CAACv1F,KAAD,IAAUA,KAAK,CAACypB,MAA7C,CAAJ,EAA0D;AACxD,MAAA,OAAA;AACD,KAAA;;IAED,IAAI+rE,QAAQ,GAAG,CAAf,CAAA;IACA,IAAIluG,UAAU,GAAG,IAAA,CAAKugB,MAAtB,CAAA;;AAEA,IAAA,OAAOvgB,UAAP,EAAmB;MACjB,IAAIA,UAAU,CAACpE,MAAf,EAAuB;QACrBsyG,QAAQ,IAAIluG,UAAU,CAACpE,MAAvB,CAAA;AACD,OAAA;;MAEDoE,UAAU,GAAGA,UAAU,CAACugB,MAAxB,CAAA;AACD,KAAA;;IAED,IAAInJ,IAAI,GAAGmc,SAAS,CAAC25E,WAAV,CAAsB,MAAtB,CAAX,CArBwC;AAsBxC;;IAEA,IAAI,CAAC,KAAKxiG,OAAN,IAAiB,CAAC0M,IAAI,CAAC1M,OAA3B,EAAoC;AAClC,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIrc,OAAO,GAAG+oB,IAAI,CAACjmB,KAAL,CAAW9C,OAAzB,CAAA;AACA,IAAA,IAAI8/G,OAAO,GAAG/2F,IAAI,CAAC+0F,OAAL,CAAa,CAAb,CAAd,CAAA;AACA,IAAA,IAAIiC,KAAK,GAAGh3F,IAAI,CAAC+0F,OAAL,CAAa99G,OAAb,CAAZ,CAAA;IACA,IAAInF,CAAC,GAAGgvF,GAAA,CAAW,EAAX,EAAek2B,KAAf,EAAsBD,OAAtB,CAAR,CAAA;AACAj2B,IAAAA,WAAA,CAAiBhvF,CAAjB,EAAoBA,CAApB,CAAA,CAAA;;AAEA,IAAA,SAASmlH,iBAAT,CAA2Bp2F,MAA3B,EAAmC5pB,OAAnC,EAA4C;AAC1C;AACA;AACA;AACA;AACA,MAAA,IAAIigH,iBAAiB,GAAGr2F,MAAM,CAAC20F,mBAA/B,CAAA;;MAEA,IAAI0B,iBAAiB,IAAI,IAAzB,EAA+B;AAC7B,QAAA,IAAIC,OAAO,GAAGn3F,IAAI,CAACg1F,SAAL,CAAe/9G,OAAf,CAAd,CAAA;AACA4pB,QAAAA,MAAM,CAAC+C,IAAP,CAAY,UAAZ,EAAwB,CAAC3sB,OAAO,KAAK,CAAZ,GAAgB,CAAC,CAAjB,GAAqB,CAAtB,IAA2BhJ,IAAI,CAACI,EAAhC,GAAqC,CAArC,GAAyCJ,IAAI,CAAC8qD,KAAL,CAAWo+D,OAAO,CAAC,CAAD,CAAlB,EAAuBA,OAAO,CAAC,CAAD,CAA9B,CAAjE,CAAA,CAAA;AACD,OAHD,MAGO;AACLt2F,QAAAA,MAAM,CAAC+C,IAAP,CAAY,UAAZ,EAAwBszF,iBAAxB,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAIN,UAAJ,EAAgB;MACdA,UAAU,CAACpsF,WAAX,CAAuBusF,OAAvB,CAAA,CAAA;AACAE,MAAAA,iBAAiB,CAACL,UAAD,EAAa,CAAb,CAAjB,CAAA;MACAA,UAAU,CAACpyG,MAAX,GAAoBoyG,UAAU,CAACnyG,MAAX,GAAoBqyG,QAAQ,GAAG7/G,OAAnD,CAAA;AACA2/G,MAAAA,UAAU,CAACxrF,UAAX,EAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIyrF,QAAJ,EAAc;MACZA,QAAQ,CAACrsF,WAAT,CAAqBwsF,KAArB,CAAA,CAAA;AACAC,MAAAA,iBAAiB,CAACJ,QAAD,EAAW,CAAX,CAAjB,CAAA;MACAA,QAAQ,CAACryG,MAAT,GAAkBqyG,QAAQ,CAACpyG,MAAT,GAAkBqyG,QAAQ,GAAG7/G,OAA/C,CAAA;AACA4/G,MAAAA,QAAQ,CAACzrF,UAAT,EAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAI9J,KAAK,IAAI,CAACA,KAAK,CAACypB,MAApB,EAA4B;AAC1BzpB,MAAAA,KAAK,CAACpyB,CAAN,GAAUoyB,KAAK,CAACnyB,CAAN,GAAU,CAApB,CAAA;AACAmyB,MAAAA,KAAK,CAAC9mB,OAAN,GAAgB8mB,KAAK,CAAC7mB,OAAN,GAAgB,CAAhC,CAAA;MACA,IAAIyI,SAAS,GAAG,KAAK,CAArB,CAAA;MACA,IAAIkkC,iBAAiB,GAAG,KAAK,CAA7B,CAAA;AACA,MAAA,IAAI1lB,QAAQ,GAAGJ,KAAK,CAACm1F,eAArB,CAAA;AACA,MAAA,IAAIx1E,SAAS,GAAGvf,QAAQ,CAAC,CAAD,CAAR,GAAco1F,QAA9B,CAAA;AACA,MAAA,IAAI51E,SAAS,GAAGxf,QAAQ,CAAC,CAAD,CAAR,GAAco1F,QAA9B,CAAA;AACA,MAAA,IAAIM,WAAW,GAAGngH,OAAO,GAAG,CAA5B,CAAA;AACA,MAAA,IAAIkgH,OAAO,GAAGn3F,IAAI,CAACg1F,SAAL,CAAeoC,WAAf,CAAd,CAAA;AACA,MAAA,IAAIvvB,CAAC,GAAG,CAACsvB,OAAO,CAAC,CAAD,CAAR,EAAa,CAACA,OAAO,CAAC,CAAD,CAArB,CAAR,CAAA;AACA,MAAA,IAAIxjC,EAAE,GAAG3zD,IAAI,CAAC+0F,OAAL,CAAaqC,WAAb,CAAT,CAAA;;AAEA,MAAA,IAAIvvB,CAAC,CAAC,CAAD,CAAD,GAAO,CAAX,EAAc;QACZA,CAAC,CAAC,CAAD,CAAD,GAAO,CAACA,CAAC,CAAC,CAAD,CAAT,CAAA;QACAA,CAAC,CAAC,CAAD,CAAD,GAAO,CAACA,CAAC,CAAC,CAAD,CAAT,CAAA;AACD,OAAA;;AAED,MAAA,IAAIx2D,GAAG,GAAG8lF,OAAO,CAAC,CAAD,CAAP,GAAa,CAAb,GAAiB,CAAC,CAAlB,GAAsB,CAAhC,CAAA;;MAEA,IAAI71F,KAAK,CAACk1F,UAAN,KAAqB,OAArB,IAAgCl1F,KAAK,CAACk1F,UAAN,KAAqB,KAAzD,EAAgE;AAC9D,QAAA,IAAIv1F,QAAQ,GAAG,CAAChzB,IAAI,CAAC8qD,KAAL,CAAWo+D,OAAO,CAAC,CAAD,CAAlB,EAAuBA,OAAO,CAAC,CAAD,CAA9B,CAAhB,CAAA;;QAEA,IAAIH,KAAK,CAAC,CAAD,CAAL,GAAWD,OAAO,CAAC,CAAD,CAAtB,EAA2B;AACzB91F,UAAAA,QAAQ,GAAGhzB,IAAI,CAACI,EAAL,GAAU4yB,QAArB,CAAA;AACD,SAAA;;QAEDK,KAAK,CAACL,QAAN,GAAiBA,QAAjB,CAAA;AACD,OAAA;;MAED,IAAIiI,EAAE,GAAG,KAAK,CAAd,CAAA;;MAEA,QAAQ5H,KAAK,CAACk1F,UAAd;AACE,QAAA,KAAK,gBAAL,CAAA;AACA,QAAA,KAAK,iBAAL,CAAA;AACA,QAAA,KAAK,cAAL,CAAA;AACA,QAAA,KAAK,QAAL;UACEttF,EAAE,GAAG,CAACgY,SAAN,CAAA;AACAkG,UAAAA,iBAAiB,GAAG,QAApB,CAAA;AACA,UAAA,MAAA;;AAEF,QAAA,KAAK,mBAAL,CAAA;AACA,QAAA,KAAK,oBAAL,CAAA;AACA,QAAA,KAAK,iBAAL;AACEle,UAAAA,EAAE,GAAGgY,SAAL,CAAA;AACAkG,UAAAA,iBAAiB,GAAG,KAApB,CAAA;AACA,UAAA,MAAA;;AAEF,QAAA;AACEle,UAAAA,EAAE,GAAG,CAAL,CAAA;AACAke,UAAAA,iBAAiB,GAAG,QAApB,CAAA;AAlBJ,OAAA;;MAqBA,QAAQ9lB,KAAK,CAACk1F,UAAd;AACE,QAAA,KAAK,KAAL;AACEl1F,UAAAA,KAAK,CAACpyB,CAAN,GAAU4C,CAAC,CAAC,CAAD,CAAD,GAAOmvC,SAAP,GAAmB+1E,KAAK,CAAC,CAAD,CAAlC,CAAA;AACA11F,UAAAA,KAAK,CAACnyB,CAAN,GAAU2C,CAAC,CAAC,CAAD,CAAD,GAAOovC,SAAP,GAAmB81E,KAAK,CAAC,CAAD,CAAlC,CAAA;UACA9zG,SAAS,GAAGpR,CAAC,CAAC,CAAD,CAAD,GAAO,GAAP,GAAa,MAAb,GAAsBA,CAAC,CAAC,CAAD,CAAD,GAAO,CAAC,GAAR,GAAc,OAAd,GAAwB,QAA1D,CAAA;UACAs1C,iBAAiB,GAAGt1C,CAAC,CAAC,CAAD,CAAD,GAAO,GAAP,GAAa,KAAb,GAAqBA,CAAC,CAAC,CAAD,CAAD,GAAO,CAAC,GAAR,GAAc,QAAd,GAAyB,QAAlE,CAAA;AACA,UAAA,MAAA;;AAEF,QAAA,KAAK,OAAL;AACEwvB,UAAAA,KAAK,CAACpyB,CAAN,GAAU,CAAC4C,CAAC,CAAC,CAAD,CAAF,GAAQmvC,SAAR,GAAoB81E,OAAO,CAAC,CAAD,CAArC,CAAA;AACAz1F,UAAAA,KAAK,CAACnyB,CAAN,GAAU,CAAC2C,CAAC,CAAC,CAAD,CAAF,GAAQovC,SAAR,GAAoB61E,OAAO,CAAC,CAAD,CAArC,CAAA;UACA7zG,SAAS,GAAGpR,CAAC,CAAC,CAAD,CAAD,GAAO,GAAP,GAAa,OAAb,GAAuBA,CAAC,CAAC,CAAD,CAAD,GAAO,CAAC,GAAR,GAAc,MAAd,GAAuB,QAA1D,CAAA;UACAs1C,iBAAiB,GAAGt1C,CAAC,CAAC,CAAD,CAAD,GAAO,GAAP,GAAa,QAAb,GAAwBA,CAAC,CAAC,CAAD,CAAD,GAAO,CAAC,GAAR,GAAc,KAAd,GAAsB,QAAlE,CAAA;AACA,UAAA,MAAA;;AAEF,QAAA,KAAK,gBAAL,CAAA;AACA,QAAA,KAAK,aAAL,CAAA;AACA,QAAA,KAAK,mBAAL;UACEwvB,KAAK,CAACpyB,CAAN,GAAU+xC,SAAS,GAAG5P,GAAZ,GAAkB0lF,OAAO,CAAC,CAAD,CAAnC,CAAA;UACAz1F,KAAK,CAACnyB,CAAN,GAAU4nH,OAAO,CAAC,CAAD,CAAP,GAAa7tF,EAAvB,CAAA;UACAhmB,SAAS,GAAGi0G,OAAO,CAAC,CAAD,CAAP,GAAa,CAAb,GAAiB,OAAjB,GAA2B,MAAvC,CAAA;AACA71F,UAAAA,KAAK,CAAC9mB,OAAN,GAAgB,CAACymC,SAAD,GAAa5P,GAA7B,CAAA;AACA/P,UAAAA,KAAK,CAAC7mB,OAAN,GAAgB,CAACyuB,EAAjB,CAAA;AACA,UAAA,MAAA;;AAEF,QAAA,KAAK,iBAAL,CAAA;AACA,QAAA,KAAK,cAAL,CAAA;AACA,QAAA,KAAK,oBAAL,CAAA;AACA,QAAA,KAAK,QAAL;AACE5H,UAAAA,KAAK,CAACpyB,CAAN,GAAUykF,EAAE,CAAC,CAAD,CAAZ,CAAA;UACAryD,KAAK,CAACnyB,CAAN,GAAUwkF,EAAE,CAAC,CAAD,CAAF,GAAQzqD,EAAlB,CAAA;AACAhmB,UAAAA,SAAS,GAAG,QAAZ,CAAA;AACAoe,UAAAA,KAAK,CAAC7mB,OAAN,GAAgB,CAACyuB,EAAjB,CAAA;AACA,UAAA,MAAA;;AAEF,QAAA,KAAK,cAAL,CAAA;AACA,QAAA,KAAK,WAAL,CAAA;AACA,QAAA,KAAK,iBAAL;UACE5H,KAAK,CAACpyB,CAAN,GAAU,CAAC+xC,SAAD,GAAa5P,GAAb,GAAmB2lF,KAAK,CAAC,CAAD,CAAlC,CAAA;UACA11F,KAAK,CAACnyB,CAAN,GAAU6nH,KAAK,CAAC,CAAD,CAAL,GAAW9tF,EAArB,CAAA;UACAhmB,SAAS,GAAGi0G,OAAO,CAAC,CAAD,CAAP,IAAc,CAAd,GAAkB,OAAlB,GAA4B,MAAxC,CAAA;AACA71F,UAAAA,KAAK,CAAC9mB,OAAN,GAAgBymC,SAAS,GAAG5P,GAA5B,CAAA;AACA/P,UAAAA,KAAK,CAAC7mB,OAAN,GAAgB,CAACyuB,EAAjB,CAAA;AACA,UAAA,MAAA;AA3CJ,OAAA;;AA8CA5H,MAAAA,KAAK,CAAC9c,MAAN,GAAe8c,KAAK,CAAC7c,MAAN,GAAeqyG,QAA9B,CAAA;MACAx1F,KAAK,CAAChB,QAAN,CAAe;AACb;AACAyb,QAAAA,aAAa,EAAEza,KAAK,CAACi1F,eAAN,IAAyBnvE,iBAF3B;AAGbtL,QAAAA,KAAK,EAAExa,KAAK,CAACg1F,OAAN,IAAiBpzG,SAAAA;OAH1B,CAAA,CAAA;AAKD,KAAA;GAxKH,CAAA;;AA2KA,EAAA,OAAO4pE,IAAP,CAAA;AACD,CArWD,CAqWEtnD,OArWF,CAFA;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,IAAI6xF,QAAQ;AACZ;AACA,YAAY;EACV,SAASA,QAAT,CAAkBC,QAAlB,EAA4B;AAC1B,IAAA,IAAA,CAAKx3F,KAAL,GAAa,IAAI0F,OAAJ,EAAb,CAAA;AACA,IAAA,IAAA,CAAK+xF,SAAL,GAAiBD,QAAQ,IAAIE,IAA7B,CAAA;AACD,GAAA;;AAEDH,EAAAA,QAAQ,CAAC5oH,SAAT,CAAmB80B,UAAnB,GAAgC,UAAU6xF,QAAV,EAAoB;AAClD,IAAA,IAAIviG,KAAK,GAAG,IAAZ,CADkD;;;IAIlD,IAAKkX,CAAAA,eAAL,GAAuB,IAAvB,CAAA;IACA,IAAI0tF,QAAQ,GAAG,IAAf,CAAA;AACA,IAAA,IAAI33F,KAAK,GAAG23F,QAAQ,CAAC33F,KAArB,CAAA;AACA,IAAA,IAAI43F,WAAW,GAAGD,QAAQ,CAACE,SAA3B,CAAA;AACAF,IAAAA,QAAQ,CAACE,SAAT,GAAqBvC,QAArB,CARkD;AASlD;;IAEA,IAAI,CAACsC,WAAL,EAAkB;AAChB53F,MAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIJ,WAAW,GAAGoG,iBAAe,CAAC0rF,QAAD,CAAjC,CAAA;IACAA,QAAQ,CAAC/qF,IAAT,CAAcqtF,WAAd,EAA2Br3F,GAA3B,CAA+B,UAAUlC,GAAV,EAAe;AAC5CtL,MAAAA,KAAK,CAAC+kG,MAAN,CAAaxC,QAAb,EAAuBj3F,GAAvB,EAA4BmF,WAA5B,CAAA,CAAA;AACD,KAFD,EAEGoH,MAFH,CAEU,UAAUJ,MAAV,EAAkBK,MAAlB,EAA0B;MAClC9X,KAAK,CAACglG,SAAN,CAAgBH,WAAhB,EAA6BtC,QAA7B,EAAuCzqF,MAAvC,EAA+CL,MAA/C,EAAuDhH,WAAvD,CAAA,CAAA;AACD,KAJD,CAIGuH,CAAAA,MAJH,CAIU,UAAU1M,GAAV,EAAe;MACvB2B,KAAK,CAAC+K,MAAN,CAAa6sF,WAAW,CAAC9sF,gBAAZ,CAA6BzM,GAA7B,CAAb,CAAA,CAAA;AACD,KAND,EAMG6M,OANH,EAAA,CAAA;GAhBF,CAAA;;AAyBA,EAAA,CAAA;;AAEAqsF,EAAAA,QAAQ,CAAC5oH,SAAT,CAAmBy8B,YAAnB,GAAkC,YAAY;AAC5C,IAAA,IAAIkqF,QAAQ,GAAG,IAAKuC,CAAAA,SAApB,CAD4C;;IAG5C,IAAI,CAACvC,QAAL,EAAe;AACb,MAAA,OAAA;AACD,KAAA;;AAEDA,IAAAA,QAAQ,CAACjqF,iBAAT,CAA2B,UAAUz3B,EAAV,EAAcyqB,GAAd,EAAmB;AAC5CzqB,MAAAA,EAAE,CAACw3B,YAAH,CAAgBkqF,QAAhB,EAA0Bj3F,GAA1B,CAAA,CAAA;AACD,KAFD,EAEG,IAFH,CAAA,CAAA;GAPF,CAAA;;AAYA,EAAA,CAAA;;AAEAk5F,EAAAA,QAAQ,CAAC5oH,SAAT,CAAmB48B,wBAAnB,GAA8C,UAAU+pF,QAAV,EAAoB;AAChE,IAAA,IAAA,CAAK9pF,YAAL,GAAoB5B,iBAAe,CAAC0rF,QAAD,CAAnC,CAAA;IACA,IAAKuC,CAAAA,SAAL,GAAiB,IAAjB,CAAA;IACA,IAAK73F,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;GAHF,CAAA;;AAMA,EAAA,CAAA;;EAEA2zF,QAAQ,CAAC5oH,SAAT,CAAmB88B,iBAAnB,GAAuC,UAAUC,UAAV,EAAsB4pF,QAAtB,EAAgC;IACrE,IAAKrrF,CAAAA,eAAL,GAAuB,EAAvB,CAAA;;IAEA,SAAS0B,yBAAT,CAAmC/3B,EAAnC,EAAuC;MACrC,IAAI,CAACA,EAAE,CAACg4B,OAAJ,IAAe,CAACosF,cAAc,CAACpkH,EAAD,CAAlC,EAAwC;QACtCA,EAAE,CAACyf,WAAH,GAAiB,IAAjB,CAAA;AACAzf,QAAAA,EAAE,CAAC40B,WAAH,CAAe,UAAf,CAA2BxN,CAAAA,UAA3B,GAAwC,IAAxC,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,KAAK,IAAIqD,GAAG,GAAGqN,UAAU,CAACpP,KAA1B,EAAiC+B,GAAG,GAAGqN,UAAU,CAACG,GAAlD,EAAuDxN,GAAG,EAA1D,EAA8D;AAC5D,MAAA,IAAIk9B,UAAU,GAAG+5D,QAAQ,CAAChrF,aAAT,CAAuBjM,GAAvB,CAAjB,CAAA;;AAEA,MAAA,IAAI45F,aAAa,CAAC18D,UAAD,CAAjB,EAA+B;AAC7B,QAAA,IAAI3nD,EAAE,GAAG,IAAI,IAAA,CAAK6jH,SAAT,CAAmBnC,QAAnB,EAA6Bj3F,GAA7B,EAAkC,IAAKmN,CAAAA,YAAvC,CAAT,CAAA;QACA53B,EAAE,CAACk4B,QAAH,CAAYH,yBAAZ,CAAA,CAAA;AACA,QAAA,IAAA,CAAK3L,KAAL,CAAWO,GAAX,CAAe3sB,EAAf,CAAA,CAAA;AACA0hH,QAAAA,QAAQ,CAAC3qF,gBAAT,CAA0BtM,GAA1B,EAA+BzqB,EAA/B,CAAA,CAAA;;AAEA,QAAA,IAAA,CAAKq2B,eAAL,CAAqBv3B,IAArB,CAA0BkB,EAA1B,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GArBH,CAAA;;AAwBA,EAAA,CAAA;;AAEA2jH,EAAAA,QAAQ,CAAC5oH,SAAT,CAAmBo8B,MAAnB,GAA4B,YAAY;IACtC,IAAK/K,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;GADF,CAAA;;AAIA,EAAA,CAAA;;AAEA2zF,EAAAA,QAAQ,CAAC5oH,SAAT,CAAmBo9B,YAAnB,GAAkC,UAAU/N,EAAV,EAAc;IAC9C0H,gBAAA,CAAyB,IAAA,CAAKuE,eAAL,IAAwB,IAAA,CAAKjK,KAAtD,EAA6DhC,EAA7D,CAAA,CAAA;GADF,CAAA;;EAIAu5F,QAAQ,CAAC5oH,SAAT,CAAmBmpH,MAAnB,GAA4B,UAAUxC,QAAV,EAAoBj3F,GAApB,EAAyBmF,WAAzB,EAAsC;AAChE,IAAA,IAAI+3B,UAAU,GAAG+5D,QAAQ,CAAChrF,aAAT,CAAuBjM,GAAvB,CAAjB,CAAA;;AAEA,IAAA,IAAI,CAAC45F,aAAa,CAAC18D,UAAD,CAAlB,EAAgC;AAC9B,MAAA,OAAA;AACD,KAAA;;IAED,IAAI3nD,EAAE,GAAG,IAAI,IAAK6jH,CAAAA,SAAT,CAAmBnC,QAAnB,EAA6Bj3F,GAA7B,EAAkCmF,WAAlC,CAAT,CAAA;AACA8xF,IAAAA,QAAQ,CAAC3qF,gBAAT,CAA0BtM,GAA1B,EAA+BzqB,EAA/B,CAAA,CAAA;AACA,IAAA,IAAA,CAAKosB,KAAL,CAAWO,GAAX,CAAe3sB,EAAf,CAAA,CAAA;GATF,CAAA;;AAYA2jH,EAAAA,QAAQ,CAAC5oH,SAAT,CAAmBopH,SAAnB,GAA+B,UAAUH,WAAV,EAAuBM,WAAvB,EAAoCrtF,MAApC,EAA4CL,MAA5C,EAAoDhH,WAApD,EAAiE;AAC9F,IAAA,IAAI20F,MAAM,GAAGP,WAAW,CAAC9sF,gBAAZ,CAA6BD,MAA7B,CAAb,CAAA;;IAEA,IAAI,CAACotF,aAAa,CAACC,WAAW,CAAC5tF,aAAZ,CAA0BE,MAA1B,CAAD,CAAlB,EAAuD;AACrD,MAAA,IAAA,CAAKxK,KAAL,CAAW+K,MAAX,CAAkBotF,MAAlB,CAAA,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;IAED,IAAI,CAACA,MAAL,EAAa;MACXA,MAAM,GAAG,IAAI,IAAA,CAAKV,SAAT,CAAmBS,WAAnB,EAAgC1tF,MAAhC,EAAwChH,WAAxC,CAAT,CAAA;AACD,KAFD,MAEO;AACL20F,MAAAA,MAAM,CAAC10F,UAAP,CAAkBy0F,WAAlB,EAA+B1tF,MAA/B,EAAuChH,WAAvC,CAAA,CAAA;AACD,KAAA;;AAED00F,IAAAA,WAAW,CAACvtF,gBAAZ,CAA6BH,MAA7B,EAAqC2tF,MAArC,CAAA,CAAA;AACA,IAAA,IAAA,CAAKn4F,KAAL,CAAWO,GAAX,CAAe43F,MAAf,CAAA,CAAA;GAfF,CAAA;;AAkBA,EAAA,OAAOZ,QAAP,CAAA;AACD,CA1HD,EAFA,CAAA;;AA8HA,SAASS,cAAT,CAAwBpkH,EAAxB,EAA4B;EAC1B,OAAOA,EAAE,CAACwI,SAAH,IAAgBxI,EAAE,CAACwI,SAAH,CAAazK,MAAb,GAAsB,CAA7C,CAAA;AACD,CAAA;;AAED,SAASi4B,iBAAT,CAAyB0rF,QAAzB,EAAmC;AACjC,EAAA,IAAIhwF,SAAS,GAAGgwF,QAAQ,CAAChwF,SAAzB,CAAA;AACA,EAAA,IAAIqB,aAAa,GAAGrB,SAAS,CAACsB,QAAV,CAAmB,UAAnB,CAApB,CAAA;EACA,OAAO;IACLtG,SAAS,EAAEgF,SAAS,CAACsB,QAAV,CAAmB,WAAnB,CAAA,CAAgCyX,YAAhC,EADN;IAELG,iBAAiB,EAAE7X,aAAa,CAACC,QAAd,CAAuB,CAAC,WAAD,CAAvB,CAAsCyX,CAAAA,YAAtC,EAFd;AAGL63E,IAAAA,aAAa,EAAE5wF,SAAS,CAACsB,QAAV,CAAmB,CAAC,MAAD,EAAS,WAAT,CAAnB,CAA0CyX,CAAAA,YAA1C,EAHV;AAIL83E,IAAAA,eAAe,EAAE7wF,SAAS,CAACsB,QAAV,CAAmB,CAAC,QAAD,EAAW,WAAX,CAAnB,CAA4CyX,CAAAA,YAA5C,EAJZ;AAKLjY,IAAAA,gBAAgB,EAAEO,aAAa,CAACG,GAAd,CAAkB,UAAlB,CALb;AAMLX,IAAAA,SAAS,EAAEQ,aAAa,CAACG,GAAd,CAAkB,WAAlB,CANN;AAOLZ,IAAAA,KAAK,EAAES,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAPF;IAQLT,iBAAiB,EAAEU,oBAAoB,CAACzB,SAAD,CAAA;GARzC,CAAA;AAUD,CAAA;;AAED,SAAS8yF,UAAT,CAAoB5hF,EAApB,EAAwB;AACtB,EAAA,OAAOhkC,KAAK,CAACgkC,EAAE,CAAC,CAAD,CAAH,CAAL,IAAgBhkC,KAAK,CAACgkC,EAAE,CAAC,CAAD,CAAH,CAA5B,CAAA;AACD,CAAA;;AAED,SAASyhF,aAAT,CAAuBI,GAAvB,EAA4B;AAC1B,EAAA,OAAOA,GAAG,IAAI,CAACD,UAAU,CAACC,GAAG,CAAC,CAAD,CAAJ,CAAlB,IAA8B,CAACD,UAAU,CAACC,GAAG,CAAC,CAAD,CAAJ,CAAhD,CAAA;AACD;;ACrMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA,IAAIC,EAAE,GAAG,EAAT,CAAA;AACA,IAAIC,EAAE,GAAG,EAAT,CAAA;AACA,IAAIC,EAAE,GAAG,EAAT,CAAA;AACA,IAAIC,WAAW,GAAGC,aAAlB,CAAA;AACA,IAAIC,YAAY,GAAGhI,UAAnB,CAAA;AACA,IAAIiI,OAAO,GAAGzqH,IAAI,CAACyC,GAAnB,CAAA;;AAEA,SAASioH,oBAAT,CAA8BC,WAA9B,EAA2C9lE,MAA3C,EAAmDC,MAAnD,EAA2D;AACzD,EAAA,IAAI7zC,EAAE,GAAG05G,WAAW,CAAC,CAAD,CAApB,CAAA;AACA,EAAA,IAAIz5G,EAAE,GAAGy5G,WAAW,CAAC,CAAD,CAApB,CAAA;AACA,EAAA,IAAIl7C,EAAE,GAAGk7C,WAAW,CAAC,CAAD,CAApB,CAAA;EACA,IAAI9mH,CAAC,GAAGkkB,QAAR,CAAA;AACA,EAAA,IAAIsd,CAAJ,CAAA;AACA,EAAA,IAAIulF,YAAY,GAAG9lE,MAAM,GAAGA,MAA5B,CAAA;EACA,IAAIwQ,QAAQ,GAAG,GAAf,CAAA;;AAEA,EAAA,KAAK,IAAIu1D,EAAE,GAAG,GAAd,EAAmBA,EAAE,IAAI,GAAzB,EAA8BA,EAAE,IAAI,GAApC,EAAyC;IACvCV,EAAE,CAAC,CAAD,CAAF,GAAQG,WAAW,CAACr5G,EAAE,CAAC,CAAD,CAAH,EAAQC,EAAE,CAAC,CAAD,CAAV,EAAeu+D,EAAE,CAAC,CAAD,CAAjB,EAAsBo7C,EAAtB,CAAnB,CAAA;IACAV,EAAE,CAAC,CAAD,CAAF,GAAQG,WAAW,CAACr5G,EAAE,CAAC,CAAD,CAAH,EAAQC,EAAE,CAAC,CAAD,CAAV,EAAeu+D,EAAE,CAAC,CAAD,CAAjB,EAAsBo7C,EAAtB,CAAnB,CAAA;AACA,IAAA,IAAIzuF,IAAI,GAAGquF,OAAO,CAACD,YAAY,CAACL,EAAD,EAAKtlE,MAAL,CAAZ,GAA2B+lE,YAA5B,CAAlB,CAAA;;IAEA,IAAIxuF,IAAI,GAAGv4B,CAAX,EAAc;AACZA,MAAAA,CAAC,GAAGu4B,IAAJ,CAAA;AACAiJ,MAAAA,CAAC,GAAGwlF,EAAJ,CAAA;AACD,KAAA;AACF,GAlBwD;AAmBzD;;;EAGA,KAAK,IAAI3mH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,EAApB,EAAwBA,CAAC,EAAzB,EAA6B;AAC3B;AACA,IAAA,IAAIw+B,IAAI,GAAG2C,CAAC,GAAGiwB,QAAf,CAF2B;AAG3B;;IAEA80D,EAAE,CAAC,CAAD,CAAF,GAAQE,WAAW,CAACr5G,EAAE,CAAC,CAAD,CAAH,EAAQC,EAAE,CAAC,CAAD,CAAV,EAAeu+D,EAAE,CAAC,CAAD,CAAjB,EAAsBpqC,CAAtB,CAAnB,CAAA;IACA+kF,EAAE,CAAC,CAAD,CAAF,GAAQE,WAAW,CAACr5G,EAAE,CAAC,CAAD,CAAH,EAAQC,EAAE,CAAC,CAAD,CAAV,EAAeu+D,EAAE,CAAC,CAAD,CAAjB,EAAsBpqC,CAAtB,CAAnB,CAAA;IACAglF,EAAE,CAAC,CAAD,CAAF,GAAQC,WAAW,CAACr5G,EAAE,CAAC,CAAD,CAAH,EAAQC,EAAE,CAAC,CAAD,CAAV,EAAeu+D,EAAE,CAAC,CAAD,CAAjB,EAAsB/sC,IAAtB,CAAnB,CAAA;IACA2nF,EAAE,CAAC,CAAD,CAAF,GAAQC,WAAW,CAACr5G,EAAE,CAAC,CAAD,CAAH,EAAQC,EAAE,CAAC,CAAD,CAAV,EAAeu+D,EAAE,CAAC,CAAD,CAAjB,EAAsB/sC,IAAtB,CAAnB,CAAA;IACA,IAAItG,IAAI,GAAGouF,YAAY,CAACJ,EAAD,EAAKvlE,MAAL,CAAZ,GAA2B+lE,YAAtC,CAAA;;AAEA,IAAA,IAAIH,OAAO,CAACruF,IAAD,CAAP,GAAgB,IAApB,EAA0B;AACxB,MAAA,MAAA;AACD,KAb0B;;;IAgB3B,IAAI0uF,QAAQ,GAAGN,YAAY,CAACH,EAAD,EAAKxlE,MAAL,CAAZ,GAA2B+lE,YAA1C,CAAA;AACAt1D,IAAAA,QAAQ,IAAI,CAAZ,CAAA;;IAEA,IAAIl5B,IAAI,GAAG,CAAX,EAAc;MACZ,IAAI0uF,QAAQ,IAAI,CAAhB,EAAmB;QACjBzlF,CAAC,GAAGA,CAAC,GAAGiwB,QAAR,CAAA;AACD,OAFD,MAEO;QACLjwB,CAAC,GAAGA,CAAC,GAAGiwB,QAAR,CAAA;AACD,OAAA;AACF,KAND,MAMO;MACL,IAAIw1D,QAAQ,IAAI,CAAhB,EAAmB;QACjBzlF,CAAC,GAAGA,CAAC,GAAGiwB,QAAR,CAAA;AACD,OAFD,MAEO;QACLjwB,CAAC,GAAGA,CAAC,GAAGiwB,QAAR,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;AAED,EAAA,OAAOjwB,CAAP,CAAA;AACD;;;AAGc,SAAS0lF,UAAT,CAAoB5L,KAApB,EAA2Br4F,KAA3B,EAAkC;EAC/C,IAAIkkG,IAAI,GAAG,EAAX,CAAA;AACA,EAAA,IAAIC,oBAAkB,GAAGV,kBAAzB,CAAA;EACA,IAAIL,GAAG,GAAG,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,CAAV,CAAA;AACA,EAAA,IAAIgB,IAAI,GAAG,CAAC,EAAD,EAAK,EAAL,CAAX,CAAA;EACA,IAAI50D,CAAC,GAAG,EAAR,CAAA;AACAxvC,EAAAA,KAAK,IAAI,CAAT,CAAA;AACAq4F,EAAAA,KAAK,CAACoD,QAAN,CAAe,UAAU5iB,IAAV,EAAgBzvE,GAAhB,EAAqB;AAClC,IAAA,IAAIw3B,UAAU,GAAGi4C,IAAI,CAACz+D,SAAL,EAAjB,CAAA;AACA,IAAA,IAAIiqF,UAAU,GAAGxrB,IAAI,CAACntE,SAAL,CAAe,YAAf,CAAjB,CAAA;AACA,IAAA,IAAI44F,QAAQ,GAAGzrB,IAAI,CAACntE,SAAL,CAAe,UAAf,CAAf,CAAA;;AAEA,IAAA,IAAI,CAACk1B,UAAU,CAAC2jE,UAAhB,EAA4B;MAC1B3jE,UAAU,CAAC2jE,UAAX,GAAwB,CAAC7I,OAAA,CAAW96D,UAAU,CAAC,CAAD,CAArB,CAAD,EAA4B86D,OAAA,CAAW96D,UAAU,CAAC,CAAD,CAArB,CAA5B,CAAxB,CAAA;;AAEA,MAAA,IAAIA,UAAU,CAAC,CAAD,CAAd,EAAmB;AACjBA,QAAAA,UAAU,CAAC2jE,UAAX,CAAsB9mH,IAAtB,CAA2Bi+G,OAAA,CAAW96D,UAAU,CAAC,CAAD,CAArB,CAA3B,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAI4jE,cAAc,GAAG5jE,UAAU,CAAC2jE,UAAhC,CAbkC;;AAelC,IAAA,IAAI3jE,UAAU,CAAC,CAAD,CAAV,IAAiB,IAArB,EAA2B;MACzB86D,MAAA,CAAU0H,GAAG,CAAC,CAAD,CAAb,EAAkBoB,cAAc,CAAC,CAAD,CAAhC,CAAA,CAAA;MACA9I,MAAA,CAAU0H,GAAG,CAAC,CAAD,CAAb,EAAkBoB,cAAc,CAAC,CAAD,CAAhC,CAAA,CAAA;MACA9I,MAAA,CAAU0H,GAAG,CAAC,CAAD,CAAb,EAAkBoB,cAAc,CAAC,CAAD,CAAhC,CAAA,CAAA;;AAEA,MAAA,IAAIH,UAAU,IAAIA,UAAU,KAAK,MAAjC,EAAyC;AACvC,QAAA,IAAIt3F,UAAU,GAAGuD,aAAa,CAACuoE,IAAI,CAACpE,KAAN,CAA9B,CAAA;AACA,QAAA,IAAIl2D,CAAC,GAAGqlF,oBAAoB,CAACR,GAAD,EAAMoB,cAAc,CAAC,CAAD,CAApB,EAAyBz3F,UAAU,GAAG/M,KAAtC,CAA5B,CAFuC;;AAIvCmkG,QAAAA,oBAAkB,CAACf,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAD,EAAYA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAZ,EAAuBA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAvB,EAAkC7kF,CAAlC,EAAqC2lF,IAArC,CAAlB,CAAA;QACAd,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAYc,GAAAA,IAAI,CAAC,CAAD,CAAhB,CAAA;QACAd,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAYc,GAAAA,IAAI,CAAC,CAAD,CAAhB,CAAA;AACAC,QAAAA,oBAAkB,CAACf,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAD,EAAYA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAZ,EAAuBA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAvB,EAAkC7kF,CAAlC,EAAqC2lF,IAArC,CAAlB,CAAA;QACAd,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAYc,GAAAA,IAAI,CAAC,CAAD,CAAhB,CAAA;QACAd,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAYc,GAAAA,IAAI,CAAC,CAAD,CAAhB,CAAA;AACD,OAAA;;AAED,MAAA,IAAII,QAAQ,IAAIA,QAAQ,KAAK,MAA7B,EAAqC;AACnC,QAAA,IAAIv3F,UAAU,GAAGuD,aAAa,CAACuoE,IAAI,CAACnE,KAAN,CAA9B,CAAA;AACA,QAAA,IAAIn2D,CAAC,GAAGqlF,oBAAoB,CAACR,GAAD,EAAMoB,cAAc,CAAC,CAAD,CAApB,EAAyBz3F,UAAU,GAAG/M,KAAtC,CAA5B,CAFmC;;AAInCmkG,QAAAA,oBAAkB,CAACf,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAD,EAAYA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAZ,EAAuBA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAvB,EAAkC7kF,CAAlC,EAAqC2lF,IAArC,CAAlB,CAAA;QACAd,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAYc,GAAAA,IAAI,CAAC,CAAD,CAAhB,CAAA;QACAd,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAYc,GAAAA,IAAI,CAAC,CAAD,CAAhB,CAAA;AACAC,QAAAA,oBAAkB,CAACf,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAD,EAAYA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAZ,EAAuBA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAvB,EAAkC7kF,CAAlC,EAAqC2lF,IAArC,CAAlB,CAAA;QACAd,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAYc,GAAAA,IAAI,CAAC,CAAD,CAAhB,CAAA;QACAd,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAYc,GAAAA,IAAI,CAAC,CAAD,CAAhB,CAAA;AACD,OA3BwB;;;MA8BzBxI,MAAA,CAAU96D,UAAU,CAAC,CAAD,CAApB,EAAyBwiE,GAAG,CAAC,CAAD,CAA5B,CAAA,CAAA;MACA1H,MAAA,CAAU96D,UAAU,CAAC,CAAD,CAApB,EAAyBwiE,GAAG,CAAC,CAAD,CAA5B,CAAA,CAAA;MACA1H,MAAA,CAAU96D,UAAU,CAAC,CAAD,CAApB,EAAyBwiE,GAAG,CAAC,CAAD,CAA5B,CAAA,CAAA;AACD,KAjCD;SAkCK;MACD1H,MAAA,CAAU0I,IAAI,CAAC,CAAD,CAAd,EAAmBI,cAAc,CAAC,CAAD,CAAjC,CAAA,CAAA;MACA9I,MAAA,CAAU0I,IAAI,CAAC,CAAD,CAAd,EAAmBI,cAAc,CAAC,CAAD,CAAjC,CAAA,CAAA;AACA9I,MAAAA,GAAA,CAASlsD,CAAT,EAAY40D,IAAI,CAAC,CAAD,CAAhB,EAAqBA,IAAI,CAAC,CAAD,CAAzB,CAAA,CAAA;AACA1I,MAAAA,WAAA,CAAelsD,CAAf,EAAkBA,CAAlB,CAAA,CAAA;;AAEA,MAAA,IAAI60D,UAAU,IAAIA,UAAU,KAAK,MAAjC,EAAyC;AACvC,QAAA,IAAIt3F,UAAU,GAAGuD,aAAa,CAACuoE,IAAI,CAACpE,KAAN,CAA9B,CAAA;AACAinB,QAAAA,aAAA,CAAiB0I,IAAI,CAAC,CAAD,CAArB,EAA0BA,IAAI,CAAC,CAAD,CAA9B,EAAmC50D,CAAnC,EAAsCziC,UAAU,GAAG/M,KAAnD,CAAA,CAAA;AACD,OAAA;;AAED,MAAA,IAAIskG,QAAQ,IAAIA,QAAQ,KAAK,MAA7B,EAAqC;AACnC,QAAA,IAAIv3F,UAAU,GAAGuD,aAAa,CAACuoE,IAAI,CAACnE,KAAN,CAA9B,CAAA;AACAgnB,QAAAA,aAAA,CAAiB0I,IAAI,CAAC,CAAD,CAArB,EAA0BA,IAAI,CAAC,CAAD,CAA9B,EAAmC50D,CAAnC,EAAsC,CAACziC,UAAD,GAAc/M,KAApD,CAAA,CAAA;AACD,OAAA;;MAED07F,MAAA,CAAU96D,UAAU,CAAC,CAAD,CAApB,EAAyBwjE,IAAI,CAAC,CAAD,CAA7B,CAAA,CAAA;MACA1I,MAAA,CAAU96D,UAAU,CAAC,CAAD,CAApB,EAAyBwjE,IAAI,CAAC,CAAD,CAA7B,CAAA,CAAA;AACD,KAAA;GAnEL,CAAA,CAAA;AAqED;;AC5LD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAsCA,SAASK,cAAT,CAAwBj6F,QAAxB,EAAkC;AAChC,EAAA,OAAOA,QAAQ,CAAC/d,IAAT,KAAkB,MAAzB,CAAA;AACD,CAAA;;AAED,IAAIi4G,SAAS;AACb;AACA,UAAU9mG,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC6mG,SAAD,EAAY9mG,MAAZ,CAAT,CAAA;;AAEA,EAAA,SAAS8mG,SAAT,GAAqB;AACnB,IAAA,IAAI5mG,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAai4G,SAAS,CAACj4G,IAAvB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED4mG,SAAS,CAAChrH,SAAV,CAAoBytC,IAApB,GAA2B,UAAUM,OAAV,EAAmBxxB,GAAnB,EAAwB;AACjD,IAAA,IAAIoxB,UAAU,GAAG,IAAIzS,UAAJ,EAAjB,CAAA;AACA,IAAA,IAAI8tF,QAAQ,GAAG,IAAIJ,QAAJ,EAAf,CAAA;IACA,IAAIv3F,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACA,IAAK82D,CAAAA,WAAL,GAAmB,IAAIvR,cAAJ,CAAmBr6D,GAAG,CAACghC,KAAJ,EAAnB,CAAnB,CAAA;AACA,IAAA,IAAA,CAAK6qC,eAAL,GAAuB;AACrBv8E,MAAAA,MAAM,EAAEwlB,KAAAA;KADV,CAAA;AAGAA,IAAAA,KAAK,CAACO,GAAN,CAAU+b,UAAU,CAACtc,KAArB,CAAA,CAAA;AACAA,IAAAA,KAAK,CAACO,GAAN,CAAUo3F,QAAQ,CAAC33F,KAAnB,CAAA,CAAA;IACA,IAAKuc,CAAAA,WAAL,GAAmBD,UAAnB,CAAA;IACA,IAAKs9E,CAAAA,SAAL,GAAiBjC,QAAjB,CAAA;IACA,IAAKkC,CAAAA,YAAL,GAAoB,IAApB,CAAA;GAZF,CAAA;;EAeAF,SAAS,CAAChrH,SAAV,CAAoB8tC,MAApB,GAA6B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;IAChE,IAAI6H,KAAK,GAAG,IAAZ,CAAA;;AAEA,IAAA,IAAI0M,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;IACA,IAAK4oB,CAAAA,MAAL,GAAcjjB,WAAd,CAAA;IACA,IAAIiX,UAAU,GAAG,IAAA,CAAKC,WAAtB,CAAA;IACA,IAAIo7E,QAAQ,GAAG,IAAA,CAAKiC,SAApB,CAAA;IACA,IAAI55F,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;;AAEA,IAAA,IAAI05F,cAAc,CAACj6F,QAAD,CAAlB,EAA8B;AAC5B,MAAA,IAAIq6F,YAAY,GAAG;QACjB1qH,CAAC,EAAEqwB,QAAQ,CAACrwB,CADK;QAEjBC,CAAC,EAAEowB,QAAQ,CAACpwB,CAFK;QAGjBqV,MAAM,EAAE+a,QAAQ,CAAC/a,MAHA;QAIjBC,MAAM,EAAE8a,QAAQ,CAAC9a,MAAAA;OAJnB,CAAA;;MAOA,IAAI,IAAA,CAAKk1G,YAAT,EAAuB;QACrB75F,KAAK,CAAC8D,IAAN,CAAWg2F,YAAX,CAAA,CAAA;AACD,OAFD,MAEO;AACLp0F,QAAAA,aAAA,CAAoB1F,KAApB,EAA2B85F,YAA3B,EAAyCz0F,WAAzC,CAAA,CAAA;AACD,OAAA;AACF,KAtB+D;;;IAyBhE6zF,UAAU,CAAC7zF,WAAW,CAACkoF,QAAZ,EAAD,EAAyBuD,kBAAkB,CAACzrF,WAAD,CAA3C,CAAV,CAAA;AACA,IAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA4b,UAAU,CAAC7Y,UAAX,CAAsBZ,IAAtB,CAAA,CAAA;AACA,IAAA,IAAIurF,QAAQ,GAAG/oF,WAAW,CAACgpF,WAAZ,EAAf,CA5BgE;;IA8BhEsJ,QAAQ,CAACl0F,UAAT,CAAoB2qF,QAApB,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKrjB,uBAAL,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAKzS,iBAAL,CAAuBjzD,WAAvB,EAAoCqX,OAApC,EAA6CxxB,GAA7C,CAAA,CAAA;;IAEA6uG,YAAY,CAAC,IAAKC,CAAAA,cAAN,CAAZ,CAAA;AACA,IAAA,IAAIlI,WAAW,GAAGzsF,WAAW,CAACysF,WAA9B,CAAA;IACA,IAAImI,eAAe,GAAG50F,WAAW,CAACyB,GAAZ,CAAgB,CAAC,OAAD,EAAU,iBAAV,CAAhB,CAAtB,CAAA;;AAEA,IAAA,IAAIgrF,WAAJ,EAAiB;AACf,MAAA,IAAA,CAAKoI,0BAAL,CAAgCpI,WAAhC,EAA6CmI,eAA7C,CAAA,CAAA;AACD,KAAA;;AAEDp3F,IAAAA,IAAI,CAACyqF,KAAL,CAAWjd,QAAX,CAAoB,UAAUnnF,IAAV,EAAgB;AAClC,MAAA,IAAImV,GAAG,GAAGnV,IAAI,CAAC4Z,SAAf,CAAA;AACA,MAAA,IAAIlvB,EAAE,GAAGsV,IAAI,CAACixG,YAAL,EAAT,CAAA;AACA,MAAA,IAAI1zF,SAAS,GAAGvd,IAAI,CAAC0d,QAAL,EAAhB,CAAA;;MAEA,IAAI,CAAChzB,EAAL,EAAS;AACP,QAAA,OAAA;AACD,OAPiC;;;AAUlCA,MAAAA,EAAE,CAACm6C,GAAH,CAAO,MAAP,CAAeA,CAAAA,GAAf,CAAmB,SAAnB,CAAA,CAAA;AACA,MAAA,IAAI/oB,SAAS,GAAGyB,SAAS,CAACK,GAAV,CAAc,WAAd,CAAhB,CAAA;;AAEA,MAAA,IAAI9B,SAAJ,EAAe;AACbpxB,QAAAA,EAAE,CAACu4C,EAAH,CAAM,MAAN,EAAc,YAAY;AACxB,UAAA,IAAI2lE,WAAJ,EAAiB;AACfA,YAAAA,WAAW,CAACU,MAAZ,EAAA,CAAA;YACA,CAACz/F,KAAK,CAACqnG,UAAP,IAAqBrnG,KAAK,CAACmnG,0BAAN,CAAiCpI,WAAjC,EAA8CmI,eAA9C,CAArB,CAAA;AACAnI,YAAAA,WAAW,CAACW,QAAZ,CAAqBp0F,GAArB,EAHe;;AAKfwE,YAAAA,IAAI,CAACogB,aAAL,CAAmB5kB,GAAnB,EAAwB,CAACzqB,EAAE,CAACxE,CAAJ,EAAOwE,EAAE,CAACvE,CAAV,CAAxB,CAAA,CAAA;AACD,WAAA;AACF,SARD,CAQG88C,CAAAA,EARH,CAQM,SARN,EAQiB,YAAY;AAC3B,UAAA,IAAI2lE,WAAJ,EAAiB;YACfA,WAAW,CAACY,UAAZ,CAAuBr0F,GAAvB,CAAA,CAAA;AACD,WAAA;SAXH,CAAA,CAAA;AAaD,OAAA;;AAEDzqB,MAAAA,EAAE,CAACmxB,YAAH,CAAgBC,SAAS,IAAI,CAAC,CAAC8sF,WAA/B,EAA4C,CAAC,CAACrrF,SAAS,CAACK,GAAV,CAAc,QAAd,CAA9C,CAAA,CAAA;MACA,IAAIZ,KAAK,GAAGO,SAAS,CAACK,GAAV,CAAc,CAAC,UAAD,EAAa,OAAb,CAAd,CAAZ,CAAA;;MAEA,IAAIZ,KAAK,KAAK,WAAd,EAA2B;QACzB2C,SAAS,CAACj1B,EAAD,CAAT,CAAcsyB,KAAd,GAAsBhd,IAAI,CAACmxG,sBAAL,EAAtB,CAAA;AACD,OAAA;KAlCH,CAAA,CAAA;AAoCAx3F,IAAAA,IAAI,CAACyqF,KAAL,CAAWoD,QAAX,CAAoB,UAAU5iB,IAAV,EAAgB;AAClC,MAAA,IAAIl6F,EAAE,GAAGk6F,IAAI,CAACqsB,YAAL,EAAT,CAAA;AACA,MAAA,IAAIj0F,KAAK,GAAG4nE,IAAI,CAAClnE,QAAL,EAAA,CAAgBE,GAAhB,CAAoB,CAAC,UAAD,EAAa,OAAb,CAApB,CAAZ,CAAA;;MAEA,IAAI,CAAClzB,EAAL,EAAS;AACP,QAAA,OAAA;AACD,OAAA;;MAED,IAAIsyB,KAAK,KAAK,WAAd,EAA2B;AACzB2C,QAAAA,SAAS,CAACj1B,EAAD,CAAT,CAAcsyB,KAAd,GAAsB;AACpB4nE,UAAAA,IAAI,EAAE,CAACA,IAAI,CAAChrE,SAAN,CADc;AAEpB5Z,UAAAA,IAAI,EAAE,CAAC4kF,IAAI,CAACpE,KAAL,CAAW5mE,SAAZ,EAAuBgrE,IAAI,CAACnE,KAAL,CAAW7mE,SAAlC,CAAA;SAFR,CAAA;AAID,OAAA;KAbH,CAAA,CAAA;AAeA,IAAA,IAAIw3F,mBAAmB,GAAGj1F,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAA8B,KAAA,UAA9B,IAA4CzB,WAAW,CAACyB,GAAZ,CAAgB,CAAC,UAAD,EAAa,aAAb,CAAhB,CAAtE,CAAA;AACA,IAAA,IAAI/2B,EAAE,GAAG8yB,IAAI,CAACwM,SAAL,CAAe,IAAf,CAAT,CAAA;AACA,IAAA,IAAIr/B,EAAE,GAAG6yB,IAAI,CAACwM,SAAL,CAAe,IAAf,CAAT,CAAA;AACAxM,IAAAA,IAAI,CAACwI,iBAAL,CAAuB,UAAUz3B,EAAV,EAAcyqB,GAAd,EAAmB;AACxC,MAAA,IAAIoI,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;AACA,MAAA,IAAIy6B,WAAW,GAAGryB,SAAS,CAACK,GAAV,CAAc,CAAC,OAAD,EAAU,QAAV,CAAd,CAAA,IAAsC,CAAxD,CAAA;AACA,MAAA,IAAIjD,UAAU,GAAGjwB,EAAE,CAAC6wB,aAAH,EAAjB,CAAA;;AAEA,MAAA,IAAI61F,mBAAJ,EAAyB;AACvB,QAAA,IAAI9mD,GAAG,GAAG3wC,IAAI,CAACyH,aAAL,CAAmBjM,GAAnB,CAAV,CAAA;AACA,QAAA,IAAI26B,GAAG,GAAG7qD,IAAI,CAAC8qD,KAAL,CAAWua,GAAG,CAAC,CAAD,CAAH,GAASxjE,EAApB,EAAwBwjE,GAAG,CAAC,CAAD,CAAH,GAASzjE,EAAjC,CAAV,CAAA;;QAEA,IAAIipD,GAAG,GAAG,CAAV,EAAa;AACXA,UAAAA,GAAG,GAAG7qD,IAAI,CAACI,EAAL,GAAU,CAAV,GAAcyqD,GAApB,CAAA;AACD,SAAA;;AAED,QAAA,IAAI8zC,MAAM,GAAGt5B,GAAG,CAAC,CAAD,CAAH,GAASzjE,EAAtB,CAAA;;AAEA,QAAA,IAAI+8F,MAAJ,EAAY;AACV9zC,UAAAA,GAAG,GAAGA,GAAG,GAAG7qD,IAAI,CAACI,EAAjB,CAAA;AACD,SAAA;;AAED,QAAA,IAAIw4C,YAAY,GAAG+lD,MAAM,GAAG,MAAH,GAAY,OAArC,CAAA;QACAjpE,UAAU,CAAC8jB,aAAX,CAAyB;UACvBxmB,QAAQ,EAAE,CAAC63B,GADY;AAEvBvmC,UAAAA,QAAQ,EAAEs0B,YAFa;AAGvBkmD,UAAAA,MAAM,EAAE,QAAA;SAHV,CAAA,CAAA;AAKA,QAAA,IAAI1kE,aAAa,GAAG1E,UAAU,CAAC2E,WAAX,CAAuB,UAAvB,CAApB,CAAA;AACA6N,QAAAA,MAAA,CAAc9N,aAAa,CAAC0Y,UAAd,KAA6B1Y,aAAa,CAAC0Y,UAAd,GAA2B,EAAxD,CAAd,EAA2E;AACzExuB,UAAAA,QAAQ,EAAEs0B,YAAAA;SADZ,CAAA,CAAA;AAGD,OAxBD,MAwBO;QACLljB,UAAU,CAAC8jB,aAAX,CAAyB;AACvBxmB,UAAAA,QAAQ,EAAE23B,WAAW,IAAI3qD,IAAI,CAACI,EAAL,GAAU,GAAA;SADrC,CAAA,CAAA;AAGD,OAAA;KAjCH,CAAA,CAAA;IAmCA,IAAKsrH,CAAAA,YAAL,GAAoB,KAApB,CAAA;GArIF,CAAA;;AAwIAF,EAAAA,SAAS,CAAChrH,SAAV,CAAoB4iB,OAApB,GAA8B,YAAY;AACxC,IAAA,IAAA,CAAKulE,WAAL,IAAoB,IAAA,CAAKA,WAAL,CAAiBvlE,OAAjB,EAApB,CAAA;IACA,IAAKwlE,CAAAA,eAAL,GAAuB,IAAvB,CAAA;GAFF,CAAA;;EAKA4iC,SAAS,CAAChrH,SAAV,CAAoBurH,0BAApB,GAAiD,UAAUpI,WAAV,EAAuBmI,eAAvB,EAAwC;IACvF,IAAIliG,IAAI,GAAG,IAAX,CAAA;;IAEA,CAAC,SAAS+J,IAAT,GAAgB;AACfgwF,MAAAA,WAAW,CAAChwF,IAAZ,CAAiB,UAAUsyF,OAAV,EAAmB;AAClCr8F,QAAAA,IAAI,CAACqT,YAAL,CAAkBrT,IAAI,CAACuwB,MAAvB,CAAA,CAAA;QACA,CAACvwB,IAAI,CAACqiG,UAAL,GAAkB,CAAChG,OAApB,MAAiC6F,eAAe,GAAGliG,IAAI,CAACiiG,cAAL,GAAsBO,UAAU,CAACz4F,IAAD,EAAO,EAAP,CAAnC,GAAgDA,IAAI,EAApG,CAAA,CAAA;OAFF,CAAA,CAAA;KADF,GAAA,CAAA;GAHF,CAAA;;EAWA63F,SAAS,CAAChrH,SAAV,CAAoB2pF,iBAApB,GAAwC,UAAUjzD,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;IAC3E,IAAI6H,KAAK,GAAG,IAAZ,CAAA;;IAEA,IAAIw1D,UAAU,GAAG,IAAA,CAAKuO,WAAtB,CAAA;IACA,IAAIhO,cAAc,GAAG,IAAA,CAAKiO,eAA1B,CAAA;IACA,IAAI/2D,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACAuoD,UAAU,CAACvB,iBAAX,CAA6B,UAAU/0E,CAAV,EAAa7C,CAAb,EAAgBC,CAAhB,EAAmB;AAC9C,MAAA,IAAIkC,IAAI,GAAGyuB,KAAK,CAACs3B,eAAN,EAAX,CAAA;AACA/lD,MAAAA,IAAI,CAAC4nD,cAAL,CAAoBn5B,KAAK,CAACvlB,SAA1B,CAAA,CAAA;AACA,MAAA,OAAOlJ,IAAI,CAACm4B,OAAL,CAAat6B,CAAb,EAAgBC,CAAhB,CAAA,IAAsB,CAACq6E,mBAAmB,CAACz3E,CAAD,EAAIiZ,GAAJ,EAASma,WAAT,CAAjD,CAAA;KAHF,CAAA,CAAA;;AAMA,IAAA,IAAI,CAACq0F,cAAc,CAACr0F,WAAW,CAAC3F,gBAAb,CAAnB,EAAmD;AACjD6oD,MAAAA,UAAU,CAACjC,OAAX,EAAA,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;IAEDiC,UAAU,CAACnC,MAAX,CAAkB/gD,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,CAAlB,CAAA,CAAA;IACAgiD,cAAc,CAACK,SAAf,GAA2B9jD,WAAW,CAACyB,GAAZ,CAAgB,YAAhB,CAA3B,CAAA;IACAgiD,cAAc,CAACO,IAAf,GAAsBhkD,WAAW,CAAC3F,gBAAZ,CAA6Bk8D,OAA7B,EAAtB,CAAA;AACArT,IAAAA,UAAU,CAACx6B,GAAX,CAAe,KAAf,EAAsBA,GAAtB,CAA0B,MAA1B,CAAA,CAAkC5B,EAAlC,CAAqC,KAArC,EAA4C,UAAUl6C,CAAV,EAAa;MACvD+pF,eAAA,CAA2BlT,cAA3B,EAA2C72E,CAAC,CAACk3B,EAA7C,EAAiDl3B,CAAC,CAACm3B,EAAnD,CAAA,CAAA;MACAle,GAAG,CAACwiC,cAAJ,CAAmB;QACjB4wC,QAAQ,EAAEj5D,WAAW,CAAC7iB,EADL;AAEjBd,QAAAA,IAAI,EAAE,WAFW;QAGjBynB,EAAE,EAAEl3B,CAAC,CAACk3B,EAHW;QAIjBC,EAAE,EAAEn3B,CAAC,CAACm3B,EAAAA;OAJR,CAAA,CAAA;AAMD,KARD,EAQG+iB,EARH,CAQM,MARN,EAQc,UAAUl6C,CAAV,EAAa;AACzB+pF,MAAAA,gBAAA,CAA4BlT,cAA5B,EAA4C72E,CAAC,CAACgjB,KAA9C,EAAqDhjB,CAAC,CAACyI,OAAvD,EAAgEzI,CAAC,CAAC0I,OAAlE,CAAA,CAAA;MACAuQ,GAAG,CAACwiC,cAAJ,CAAmB;QACjB4wC,QAAQ,EAAEj5D,WAAW,CAAC7iB,EADL;AAEjBd,QAAAA,IAAI,EAAE,WAFW;QAGjB2nE,IAAI,EAAEp3E,CAAC,CAACgjB,KAHS;QAIjBva,OAAO,EAAEzI,CAAC,CAACyI,OAJM;QAKjBC,OAAO,EAAE1I,CAAC,CAAC0I,OAAAA;OALb,CAAA,CAAA;;AAQAoY,MAAAA,KAAK,CAACg4E,uBAAN,EAAA,CAAA;;MAEAmuB,UAAU,CAAC7zF,WAAW,CAACkoF,QAAZ,EAAD,EAAyBuD,kBAAkB,CAACzrF,WAAD,CAA3C,CAAV,CAAA;;AAEAtS,MAAAA,KAAK,CAAC6mG,SAAN,CAAgBxuF,YAAhB,GAdyB;;;AAiBzBlgB,MAAAA,GAAG,CAACogF,iBAAJ,EAAA,CAAA;KAzBF,CAAA,CAAA;GApBF,CAAA;;AAiDAquB,EAAAA,SAAS,CAAChrH,SAAV,CAAoBo8F,uBAApB,GAA8C,YAAY;IACxD,IAAI1lE,WAAW,GAAG,IAAA,CAAKijB,MAAvB,CAAA;AACA,IAAA,IAAIzlB,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAI6qE,SAAS,GAAGulB,kBAAkB,CAACzrF,WAAD,CAAlC,CAAA;AACAxC,IAAAA,IAAI,CAACwI,iBAAL,CAAuB,UAAUz3B,EAAV,EAAcyqB,GAAd,EAAmB;AACxCzqB,MAAAA,EAAE,IAAIA,EAAE,CAAC80B,cAAH,CAAkB6iE,SAAlB,CAAN,CAAA;KADF,CAAA,CAAA;GAJF,CAAA;;AASAouB,EAAAA,SAAS,CAAChrH,SAAV,CAAoBy8B,YAApB,GAAmC,UAAU/F,WAAV,EAAuB;IACxD6zF,UAAU,CAAC7zF,WAAW,CAACkoF,QAAZ,EAAD,EAAyBuD,kBAAkB,CAACzrF,WAAD,CAA3C,CAAV,CAAA;;IAEA,IAAKkX,CAAAA,WAAL,CAAiBnR,YAAjB,EAAA,CAAA;;IAEA,IAAKwuF,CAAAA,SAAL,CAAexuF,YAAf,EAAA,CAAA;GALF,CAAA;;EAQAuuF,SAAS,CAAChrH,SAAV,CAAoBo8B,MAApB,GAA6B,UAAU2R,OAAV,EAAmBxxB,GAAnB,EAAwB;AACnD,IAAA,IAAA,CAAKqxB,WAAL,IAAoB,IAAA,CAAKA,WAAL,CAAiBxR,MAAjB,EAApB,CAAA;AACA,IAAA,IAAA,CAAK6uF,SAAL,IAAkB,IAAA,CAAKA,SAAL,CAAe7uF,MAAf,EAAlB,CAAA;GAFF,CAAA;;EAKA4uF,SAAS,CAACj4G,IAAV,GAAiB,OAAjB,CAAA;AACA,EAAA,OAAOi4G,SAAP,CAAA;AACD,CA1PD,CA0PE95E,SA1PF,CAFA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA,SAAS26E,eAAT,CAAyBh4G,EAAzB,EAA6B;AAC3B,EAAA,OAAO,SAASA,EAAhB,CAAA;AACD,CAAA;;AAED,IAAIi4G,KAAK;AACT;AACA,YAAY;EACV,SAASA,KAAT,CAAeC,QAAf,EAAyB;IACvB,IAAKh5G,CAAAA,IAAL,GAAY,OAAZ,CAAA;IACA,IAAKmmF,CAAAA,KAAL,GAAa,EAAb,CAAA;IACA,IAAKoqB,CAAAA,KAAL,GAAa,EAAb,CAAA;IACA,IAAK0I,CAAAA,SAAL,GAAiB,EAAjB,CAAA;AACA;AACJ;AACA;AACA;;IAEI,IAAKC,CAAAA,SAAL,GAAiB,EAAjB,CAAA;AACA,IAAA,IAAA,CAAKC,SAAL,GAAiBH,QAAQ,IAAI,KAA7B,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGED,EAAAA,KAAK,CAAC9rH,SAAN,CAAgBmsH,UAAhB,GAA6B,YAAY;AACvC,IAAA,OAAO,KAAKD,SAAZ,CAAA;GADF,CAAA;;AAIA,EAAA,CAAA;AACA;AACF;AACA;;EAEEJ,KAAK,CAAC9rH,SAAN,CAAgBosH,OAAhB,GAA0B,UAAUv4G,EAAV,EAAcsgB,SAAd,EAAyB;IACjDtgB,EAAE,GAAGA,EAAE,IAAI,IAAN,GAAa,EAAKsgB,GAAAA,SAAlB,GAA8B,EAAA,GAAKtgB,EAAxC,CAAA;IACA,IAAIw4G,QAAQ,GAAG,IAAA,CAAKL,SAApB,CAAA;;AAEA,IAAA,IAAIK,QAAQ,CAACR,eAAe,CAACh4G,EAAD,CAAhB,CAAZ,EAAmC;AACjC,MAAA,IAAIuD,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;QACzCqE,OAAO,CAACC,KAAR,CAAc,uCAAd,CAAA,CAAA;AACD,OAAA;;AAED,MAAA,OAAA;AACD,KAAA;;IAED,IAAIrB,IAAI,GAAG,IAAI+xG,SAAJ,CAAcz4G,EAAd,EAAkBsgB,SAAlB,CAAX,CAAA;IACA5Z,IAAI,CAACgyG,SAAL,GAAiB,IAAjB,CAAA;AACA,IAAA,IAAA,CAAKrzB,KAAL,CAAWn1F,IAAX,CAAgBwW,IAAhB,CAAA,CAAA;AACA8xG,IAAAA,QAAQ,CAACR,eAAe,CAACh4G,EAAD,CAAhB,CAAR,GAAgC0G,IAAhC,CAAA;AACA,IAAA,OAAOA,IAAP,CAAA;GAhBF,CAAA;;AAmBA,EAAA,CAAA;AACA;AACF;AACA;;AAEEuxG,EAAAA,KAAK,CAAC9rH,SAAN,CAAgBwlH,cAAhB,GAAiC,UAAUrxF,SAAV,EAAqB;IACpD,IAAIoqB,MAAM,GAAG,IAAKrqB,CAAAA,IAAL,CAAUkN,WAAV,CAAsBjN,SAAtB,CAAb,CAAA;AACA,IAAA,OAAO,IAAK+kE,CAAAA,KAAL,CAAW36C,MAAX,CAAP,CAAA;GAFF,CAAA;;AAKA,EAAA,CAAA;AACA;AACF;AACA;;AAEEutE,EAAAA,KAAK,CAAC9rH,SAAN,CAAgB+hG,WAAhB,GAA8B,UAAUluF,EAAV,EAAc;AAC1C,IAAA,OAAO,KAAKm4G,SAAL,CAAeH,eAAe,CAACh4G,EAAD,CAA9B,CAAP,CAAA;GADF,CAAA;;AAIA,EAAA,CAAA;AACA;AACF;AACA;;EAEEi4G,KAAK,CAAC9rH,SAAN,CAAgBwsH,OAAhB,GAA0B,UAAUpM,EAAV,EAAcC,EAAd,EAAkBlsF,SAAlB,EAA6B;IACrD,IAAIk4F,QAAQ,GAAG,IAAA,CAAKL,SAApB,CAAA;AACA,IAAA,IAAIS,QAAQ,GAAG,IAAKR,CAAAA,SAApB,CAFqD;;AAIrD,IAAA,IAAIvkF,QAAA,CAAgB04E,EAAhB,CAAJ,EAAyB;AACvBA,MAAAA,EAAE,GAAG,IAAA,CAAKlnB,KAAL,CAAWknB,EAAX,CAAL,CAAA;AACD,KAAA;;AAED,IAAA,IAAI14E,QAAA,CAAgB24E,EAAhB,CAAJ,EAAyB;AACvBA,MAAAA,EAAE,GAAG,IAAA,CAAKnnB,KAAL,CAAWmnB,EAAX,CAAL,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,EAAED,EAAE,YAAYkM,SAAhB,CAAJ,EAAgC;AAC9BlM,MAAAA,EAAE,GAAGiM,QAAQ,CAACR,eAAe,CAACzL,EAAD,CAAhB,CAAb,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,EAAEC,EAAE,YAAYiM,SAAhB,CAAJ,EAAgC;AAC9BjM,MAAAA,EAAE,GAAGgM,QAAQ,CAACR,eAAe,CAACxL,EAAD,CAAhB,CAAb,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAACD,EAAD,IAAO,CAACC,EAAZ,EAAgB;AACd,MAAA,OAAA;AACD,KAAA;;IAED,IAAIt5G,GAAG,GAAGq5G,EAAE,CAACvsG,EAAH,GAAQ,GAAR,GAAcwsG,EAAE,CAACxsG,EAA3B,CAAA;IACA,IAAIsrF,IAAI,GAAG,IAAIutB,SAAJ,CAActM,EAAd,EAAkBC,EAAlB,EAAsBlsF,SAAtB,CAAX,CAAA;IACAgrE,IAAI,CAACotB,SAAL,GAAiB,IAAjB,CAAA;;IAEA,IAAI,IAAA,CAAKL,SAAT,EAAoB;AAClB9L,MAAAA,EAAE,CAACuM,QAAH,CAAY5oH,IAAZ,CAAiBo7F,IAAjB,CAAA,CAAA;AACAkhB,MAAAA,EAAE,CAACgD,OAAH,CAAWt/G,IAAX,CAAgBo7F,IAAhB,CAAA,CAAA;AACD,KAAA;;AAEDihB,IAAAA,EAAE,CAACkD,KAAH,CAASv/G,IAAT,CAAco7F,IAAd,CAAA,CAAA;;IAEA,IAAIihB,EAAE,KAAKC,EAAX,EAAe;AACbA,MAAAA,EAAE,CAACiD,KAAH,CAASv/G,IAAT,CAAco7F,IAAd,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKmkB,KAAL,CAAWv/G,IAAX,CAAgBo7F,IAAhB,CAAA,CAAA;AACAstB,IAAAA,QAAQ,CAAC1lH,GAAD,CAAR,GAAgBo4F,IAAhB,CAAA;AACA,IAAA,OAAOA,IAAP,CAAA;GAzCF,CAAA;;AA4CA,EAAA,CAAA;AACA;AACF;AACA;;AAEE2sB,EAAAA,KAAK,CAAC9rH,SAAN,CAAgB2/G,cAAhB,GAAiC,UAAUxrF,SAAV,EAAqB;IACpD,IAAIoqB,MAAM,GAAG,IAAKkhE,CAAAA,QAAL,CAAcr+E,WAAd,CAA0BjN,SAA1B,CAAb,CAAA;AACA,IAAA,OAAO,IAAKmvF,CAAAA,KAAL,CAAW/kE,MAAX,CAAP,CAAA;GAFF,CAAA;;AAKA,EAAA,CAAA;AACA;AACF;AACA;;EAEEutE,KAAK,CAAC9rH,SAAN,CAAgB4sH,OAAhB,GAA0B,UAAUxM,EAAV,EAAcC,EAAd,EAAkB;IAC1C,IAAID,EAAE,YAAYkM,SAAlB,EAA6B;MAC3BlM,EAAE,GAAGA,EAAE,CAACvsG,EAAR,CAAA;AACD,KAAA;;IAED,IAAIwsG,EAAE,YAAYiM,SAAlB,EAA6B;MAC3BjM,EAAE,GAAGA,EAAE,CAACxsG,EAAR,CAAA;AACD,KAAA;;IAED,IAAI44G,QAAQ,GAAG,IAAA,CAAKR,SAApB,CAAA;;IAEA,IAAI,IAAA,CAAKC,SAAT,EAAoB;AAClB,MAAA,OAAOO,QAAQ,CAACrM,EAAE,GAAG,GAAL,GAAWC,EAAZ,CAAf,CAAA;AACD,KAFD,MAEO;AACL,MAAA,OAAOoM,QAAQ,CAACrM,EAAE,GAAG,GAAL,GAAWC,EAAZ,CAAR,IAA2BoM,QAAQ,CAACpM,EAAE,GAAG,GAAL,GAAWD,EAAZ,CAA1C,CAAA;AACD,KAAA;GAfH,CAAA;;AAkBA,EAAA,CAAA;AACA;AACF;AACA;;EAEE0L,KAAK,CAAC9rH,SAAN,CAAgB0hG,QAAhB,GAA2B,UAAUryE,EAAV,EAAcC,OAAd,EAAuB;IAChD,IAAI4pE,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAInsF,GAAG,GAAGmsF,KAAK,CAACl2F,MAAhB,CAAA;;IAEA,KAAK,IAAIU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,EAAyBrJ,CAAC,EAA1B,EAA8B;MAC5B,IAAIw1F,KAAK,CAACx1F,CAAD,CAAL,CAASywB,SAAT,IAAsB,CAA1B,EAA6B;QAC3B9E,EAAE,CAAChL,IAAH,CAAQiL,OAAR,EAAiB4pE,KAAK,CAACx1F,CAAD,CAAtB,EAA2BA,CAA3B,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GARH,CAAA;;AAWA,EAAA,CAAA;AACA;AACF;AACA;;EAEEooH,KAAK,CAAC9rH,SAAN,CAAgB+hH,QAAhB,GAA2B,UAAU1yF,EAAV,EAAcC,OAAd,EAAuB;IAChD,IAAIg0F,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAIv2G,GAAG,GAAGu2G,KAAK,CAACtgH,MAAhB,CAAA;;IAEA,KAAK,IAAIU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,EAAyBrJ,CAAC,EAA1B,EAA8B;AAC5B,MAAA,IAAI4/G,KAAK,CAAC5/G,CAAD,CAAL,CAASywB,SAAT,IAAsB,CAAtB,IAA2BmvF,KAAK,CAAC5/G,CAAD,CAAL,CAASq3F,KAAT,CAAe5mE,SAAf,IAA4B,CAAvD,IAA4DmvF,KAAK,CAAC5/G,CAAD,CAAL,CAASs3F,KAAT,CAAe7mE,SAAf,IAA4B,CAA5F,EAA+F;QAC7F9E,EAAE,CAAChL,IAAH,CAAQiL,OAAR,EAAiBg0F,KAAK,CAAC5/G,CAAD,CAAtB,EAA2BA,CAA3B,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GARH,CAAA;;AAWA,EAAA,CAAA;AACA;AACF;AACA;AACA;;AAEEooH,EAAAA,KAAK,CAAC9rH,SAAN,CAAgB6sH,oBAAhB,GAAuC,UAAUx9F,EAAV,EAAcy9F,SAAd,EAAyBrqD,SAAzB,EAAoCnzC,OAApC,EAA6C;AAClF,IAAA,IAAI,EAAEw9F,SAAS,YAAYR,SAAvB,CAAJ,EAAuC;MACrCQ,SAAS,GAAG,KAAKd,SAAL,CAAeH,eAAe,CAACiB,SAAD,CAA9B,CAAZ,CAAA;AACD,KAAA;;IAED,IAAI,CAACA,SAAL,EAAgB;AACd,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIC,QAAQ,GAAGtqD,SAAS,KAAK,KAAd,GAAsB,UAAtB,GAAmCA,SAAS,KAAK,IAAd,GAAqB,SAArB,GAAiC,OAAnF,CAAA;;AAEA,IAAA,KAAK,IAAI/+D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAKw1F,CAAAA,KAAL,CAAWl2F,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;AAC1C,MAAA,IAAA,CAAKw1F,KAAL,CAAWx1F,CAAX,CAAcspH,CAAAA,SAAd,GAA0B,KAA1B,CAAA;AACD,KAAA;;IAED,IAAI39F,EAAE,CAAChL,IAAH,CAAQiL,OAAR,EAAiBw9F,SAAjB,EAA4B,IAA5B,CAAJ,EAAuC;AACrC,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIG,KAAK,GAAG,CAACH,SAAD,CAAZ,CAAA;;IAEA,OAAOG,KAAK,CAACjqH,MAAb,EAAqB;AACnB,MAAA,IAAIkqH,WAAW,GAAGD,KAAK,CAACj0B,KAAN,EAAlB,CAAA;AACA,MAAA,IAAIsqB,KAAK,GAAG4J,WAAW,CAACH,QAAD,CAAvB,CAAA;;AAEA,MAAA,KAAK,IAAIrpH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4/G,KAAK,CAACtgH,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;AACrC,QAAA,IAAIJ,CAAC,GAAGggH,KAAK,CAAC5/G,CAAD,CAAb,CAAA;AACA,QAAA,IAAIypH,SAAS,GAAG7pH,CAAC,CAACy3F,KAAF,KAAYmyB,WAAZ,GAA0B5pH,CAAC,CAAC03F,KAA5B,GAAoC13F,CAAC,CAACy3F,KAAtD,CAAA;;AAEA,QAAA,IAAI,CAACoyB,SAAS,CAACH,SAAf,EAA0B;UACxB,IAAI39F,EAAE,CAAChL,IAAH,CAAQiL,OAAR,EAAiB69F,SAAjB,EAA4BD,WAA5B,CAAJ,EAA8C;AAC5C;AACA,YAAA,OAAA;AACD,WAAA;;UAEDD,KAAK,CAAClpH,IAAN,CAAWopH,SAAX,CAAA,CAAA;UACAA,SAAS,CAACH,SAAV,GAAsB,IAAtB,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;GAvCH,CAAA;;AA0CA,EAAA,CApOU;AAqOV;AACA;AACA;AACA;AACA;;AAEAlB,EAAAA,KAAK,CAAC9rH,SAAN,CAAgBi8B,MAAhB,GAAyB,YAAY;IACnC,IAAI/H,IAAI,GAAG,IAAA,CAAKA,IAAhB,CAAA;IACA,IAAIurF,QAAQ,GAAG,IAAA,CAAKA,QAApB,CAAA;IACA,IAAIvmB,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACA,IAAIoqB,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;;AAEA,IAAA,KAAK,IAAI5/G,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGmsF,KAAK,CAACl2F,MAA5B,EAAoCU,CAAC,GAAGqJ,GAAxC,EAA6CrJ,CAAC,EAA9C,EAAkD;AAChDw1F,MAAAA,KAAK,CAACx1F,CAAD,CAAL,CAASywB,SAAT,GAAqB,CAAC,CAAtB,CAAA;AACD,KAAA;;AAED,IAAA,KAAK,IAAIzwB,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGmnB,IAAI,CAAC0T,KAAL,EAAtB,EAAoClkC,CAAC,GAAGqJ,GAAxC,EAA6CrJ,CAAC,EAA9C,EAAkD;MAChDw1F,KAAK,CAAChlE,IAAI,CAACkN,WAAL,CAAiB19B,CAAjB,CAAD,CAAL,CAA2BywB,SAA3B,GAAuCzwB,CAAvC,CAAA;AACD,KAAA;;AAED+7G,IAAAA,QAAQ,CAAC95D,UAAT,CAAoB,UAAUj2B,GAAV,EAAe;MACjC,IAAIyvE,IAAI,GAAGmkB,KAAK,CAAC7D,QAAQ,CAACr+E,WAAT,CAAqB1R,GAArB,CAAD,CAAhB,CAAA;AACA,MAAA,OAAOyvE,IAAI,CAACpE,KAAL,CAAW5mE,SAAX,IAAwB,CAAxB,IAA6BgrE,IAAI,CAACnE,KAAL,CAAW7mE,SAAX,IAAwB,CAA5D,CAAA;AACD,KAHD,EAdmC;;AAmBnC,IAAA,KAAK,IAAIzwB,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGu2G,KAAK,CAACtgH,MAA5B,EAAoCU,CAAC,GAAGqJ,GAAxC,EAA6CrJ,CAAC,EAA9C,EAAkD;AAChD4/G,MAAAA,KAAK,CAAC5/G,CAAD,CAAL,CAASywB,SAAT,GAAqB,CAAC,CAAtB,CAAA;AACD,KAAA;;AAED,IAAA,KAAK,IAAIzwB,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAG0yG,QAAQ,CAAC73E,KAAT,EAAtB,EAAwClkC,CAAC,GAAGqJ,GAA5C,EAAiDrJ,CAAC,EAAlD,EAAsD;MACpD4/G,KAAK,CAAC7D,QAAQ,CAACr+E,WAAT,CAAqB19B,CAArB,CAAD,CAAL,CAA+BywB,SAA/B,GAA2CzwB,CAA3C,CAAA;AACD,KAAA;GAzBH,CAAA;;AA4BA,EAAA,CAAA;AACA;AACF;AACA;;AAEEooH,EAAAA,KAAK,CAAC9rH,SAAN,CAAgBsZ,KAAhB,GAAwB,YAAY;AAClC,IAAA,IAAIqlG,KAAK,GAAG,IAAImN,KAAJ,CAAU,IAAA,CAAKI,SAAf,CAAZ,CAAA;IACA,IAAIhzB,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACA,IAAIoqB,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;;AAEA,IAAA,KAAK,IAAI5/G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw1F,KAAK,CAACl2F,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;AACrCi7G,MAAAA,KAAK,CAACyN,OAAN,CAAclzB,KAAK,CAACx1F,CAAD,CAAL,CAASmQ,EAAvB,EAA2BqlF,KAAK,CAACx1F,CAAD,CAAL,CAASywB,SAApC,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,KAAK,IAAIzwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4/G,KAAK,CAACtgH,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;AACrC,MAAA,IAAIJ,CAAC,GAAGggH,KAAK,CAAC5/G,CAAD,CAAb,CAAA;AACAi7G,MAAAA,KAAK,CAAC6N,OAAN,CAAclpH,CAAC,CAACy3F,KAAF,CAAQlnF,EAAtB,EAA0BvQ,CAAC,CAAC03F,KAAF,CAAQnnF,EAAlC,EAAsCvQ,CAAC,CAAC6wB,SAAxC,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,OAAOwqF,KAAP,CAAA;GAdF,CAAA;;AAiBA,EAAA,CAAA;AACA,EAAA,OAAOmN,KAAP,CAAA;AACD,CA/RD,EAFA,CAAA;;AAmSA,IAAIQ,SAAS;AACb;AACA,YAAY;AACV,EAAA,SAASA,SAAT,CAAmBz4G,EAAnB,EAAuBsgB,SAAvB,EAAkC;IAChC,IAAKkvF,CAAAA,OAAL,GAAe,EAAf,CAAA;IACA,IAAKsJ,CAAAA,QAAL,GAAgB,EAAhB,CAAA;IACA,IAAKrJ,CAAAA,KAAL,GAAa,EAAb,CAAA;IACA,IAAKnvF,CAAAA,SAAL,GAAiB,CAAC,CAAlB,CAAA;IACA,IAAKtgB,CAAAA,EAAL,GAAUA,EAAE,IAAI,IAAN,GAAa,EAAb,GAAkBA,EAA5B,CAAA;IACA,IAAKsgB,CAAAA,SAAL,GAAiBA,SAAS,IAAI,IAAb,GAAoB,CAAC,CAArB,GAAyBA,SAA1C,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEm4F,EAAAA,SAAS,CAACtsH,SAAV,CAAoBF,MAApB,GAA6B,YAAY;IACvC,OAAO,IAAA,CAAKwjH,KAAL,CAAWtgH,MAAlB,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEspH,EAAAA,SAAS,CAACtsH,SAAV,CAAoBotH,QAApB,GAA+B,YAAY;IACzC,OAAO,IAAA,CAAK/J,OAAL,CAAargH,MAApB,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEspH,EAAAA,SAAS,CAACtsH,SAAV,CAAoBqtH,SAApB,GAAgC,YAAY;IAC1C,OAAO,IAAA,CAAKV,QAAL,CAAc3pH,MAArB,CAAA;GADF,CAAA;;AAIAspH,EAAAA,SAAS,CAACtsH,SAAV,CAAoBi4B,QAApB,GAA+B,UAAU5sB,IAAV,EAAgB;AAC7C,IAAA,IAAI,IAAK8oB,CAAAA,SAAL,GAAiB,CAArB,EAAwB;AACtB,MAAA,OAAA;AACD,KAAA;;IAED,IAAIwqF,KAAK,GAAG,IAAA,CAAK4N,SAAjB,CAAA;IACA,IAAIz0F,SAAS,GAAG6mF,KAAK,CAACzqF,IAAN,CAAW6D,YAAX,CAAwB,IAAK5D,CAAAA,SAA7B,CAAhB,CAAA;AACA,IAAA,OAAO2D,SAAS,CAACG,QAAV,CAAmB5sB,IAAnB,CAAP,CAAA;GAPF,CAAA;;AAUAihH,EAAAA,SAAS,CAACtsH,SAAV,CAAoB0rH,sBAApB,GAA6C,YAAY;AACvD,IAAA,IAAI4B,WAAW,GAAG;AAChBnuB,MAAAA,IAAI,EAAE,EADU;AAEhB5kF,MAAAA,IAAI,EAAE,EAAA;KAFR,CAAA;;AAKA,IAAA,KAAK,IAAI7W,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAK4/G,CAAAA,KAAL,CAAWtgH,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;AAC1C,MAAA,IAAI6pH,YAAY,GAAG,IAAA,CAAKjK,KAAL,CAAW5/G,CAAX,CAAnB,CAAA;;AAEA,MAAA,IAAI6pH,YAAY,CAACp5F,SAAb,GAAyB,CAA7B,EAAgC;AAC9B,QAAA,SAAA;AACD,OAAA;;AAEDm5F,MAAAA,WAAW,CAACnuB,IAAZ,CAAiBp7F,IAAjB,CAAsBwpH,YAAY,CAACp5F,SAAnC,CAAA,CAAA;AACAm5F,MAAAA,WAAW,CAAC/yG,IAAZ,CAAiBxW,IAAjB,CAAsBwpH,YAAY,CAACxyB,KAAb,CAAmB5mE,SAAzC,EAAoDo5F,YAAY,CAACvyB,KAAb,CAAmB7mE,SAAvE,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,OAAOm5F,WAAP,CAAA;GAjBF,CAAA;;AAoBA,EAAA,OAAOhB,SAAP,CAAA;AACD,CAjED,EAFA,CAAA;;AAqEA,IAAII,SAAS;AACb;AACA,YAAY;AACV,EAAA,SAASA,SAAT,CAAmBtM,EAAnB,EAAuBC,EAAvB,EAA2BlsF,SAA3B,EAAsC;IACpC,IAAKA,CAAAA,SAAL,GAAiB,CAAC,CAAlB,CAAA;IACA,IAAK4mE,CAAAA,KAAL,GAAaqlB,EAAb,CAAA;IACA,IAAKplB,CAAAA,KAAL,GAAaqlB,EAAb,CAAA;IACA,IAAKlsF,CAAAA,SAAL,GAAiBA,SAAS,IAAI,IAAb,GAAoB,CAAC,CAArB,GAAyBA,SAA1C,CAAA;AACD,GANS;;;AASVu4F,EAAAA,SAAS,CAAC1sH,SAAV,CAAoBi4B,QAApB,GAA+B,UAAU5sB,IAAV,EAAgB;AAC7C,IAAA,IAAI,IAAK8oB,CAAAA,SAAL,GAAiB,CAArB,EAAwB;AACtB,MAAA,OAAA;AACD,KAAA;;IAED,IAAIwqF,KAAK,GAAG,IAAA,CAAK4N,SAAjB,CAAA;IACA,IAAIz0F,SAAS,GAAG6mF,KAAK,CAACc,QAAN,CAAe1nF,YAAf,CAA4B,IAAK5D,CAAAA,SAAjC,CAAhB,CAAA;AACA,IAAA,OAAO2D,SAAS,CAACG,QAAV,CAAmB5sB,IAAnB,CAAP,CAAA;GAPF,CAAA;;AAUAqhH,EAAAA,SAAS,CAAC1sH,SAAV,CAAoB0rH,sBAApB,GAA6C,YAAY;IACvD,OAAO;AACLvsB,MAAAA,IAAI,EAAE,CAAC,IAAKhrE,CAAAA,SAAN,CADD;MAEL5Z,IAAI,EAAE,CAAC,IAAA,CAAKwgF,KAAL,CAAW5mE,SAAZ,EAAuB,IAAA,CAAK6mE,KAAL,CAAW7mE,SAAlC,CAAA;KAFR,CAAA;GADF,CAAA;;AAOA,EAAA,OAAOu4F,SAAP,CAAA;AACD,CA3BD,EAFA,CAAA;;AA+BA,SAASc,yBAAT,CAAmCC,QAAnC,EAA6CC,QAA7C,EAAuD;EACrD,OAAO;AACL;AACJ;AACA;IACIprB,QAAQ,EAAE,SAAU54D,QAAAA,CAAAA,SAAV,EAAqB;AAC7B,MAAA,IAAIxV,IAAI,GAAG,IAAA,CAAKu5F,QAAL,CAAA,CAAeC,QAAf,CAAX,CAAA;AACA,MAAA,OAAOx5F,IAAI,CAAC4f,QAAL,EAAgB3b,CAAAA,GAAhB,CAAoBjE,IAAI,CAACS,iBAAL,CAAuB+U,SAAS,IAAI,OAApC,CAApB,EAAkE,IAAA,CAAKvV,SAAvE,CAAP,CAAA;KANG;AAQL;AACAwhB,IAAAA,SAAS,EAAE,SAAA,SAAA,CAAU5uC,GAAV,EAAem4B,KAAf,EAAsB;AAC/B,MAAA,IAAA,CAAK/K,SAAL,IAAkB,CAAlB,IAAuB,IAAA,CAAKs5F,QAAL,CAAeC,CAAAA,QAAf,CAAyB33C,CAAAA,aAAzB,CAAuC,IAAK5hD,CAAAA,SAA5C,EAAuDptB,GAAvD,EAA4Dm4B,KAA5D,CAAvB,CAAA;KAVG;IAYLlN,SAAS,EAAE,SAAUjrB,SAAAA,CAAAA,GAAV,EAAe;MACxB,OAAO,IAAA,CAAK0mH,QAAL,CAAA,CAAeC,QAAf,CAAA,CAAyBj3F,aAAzB,CAAuC,IAAKtC,CAAAA,SAA5C,EAAuDptB,GAAvD,CAAP,CAAA;KAbG;AAeLwtC,IAAAA,SAAS,EAAE,SAAA,SAAA,CAAUqH,MAAV,EAAkBoa,KAAlB,EAAyB;AAClC,MAAA,IAAA,CAAK7hC,SAAL,IAAkB,CAAlB,IAAuB,IAAA,CAAKs5F,QAAL,CAAeC,CAAAA,QAAf,CAAyBp5E,CAAAA,aAAzB,CAAuC,IAAKngB,CAAAA,SAA5C,EAAuDynB,MAAvD,EAA+Doa,KAA/D,CAAvB,CAAA;KAhBG;AAkBLt1B,IAAAA,SAAS,EAAE,SAAY,SAAA,GAAA;MACrB,OAAO,IAAA,CAAK+sF,QAAL,CAAeC,CAAAA,QAAf,EAAyB/xF,aAAzB,CAAuC,IAAKxH,CAAAA,SAA5C,CAAP,CAAA;KAnBG;AAqBLq3F,IAAAA,YAAY,EAAE,SAAY,YAAA,GAAA;MACxB,OAAO,IAAA,CAAKiC,QAAL,CAAeC,CAAAA,QAAf,EAAyBvxF,gBAAzB,CAA0C,IAAKhI,CAAAA,SAA/C,CAAP,CAAA;KAtBG;AAwBLiN,IAAAA,WAAW,EAAE,SAAY,WAAA,GAAA;MACvB,OAAO,IAAA,CAAKqsF,QAAL,CAAeC,CAAAA,QAAf,EAAyBtsF,WAAzB,CAAqC,IAAKjN,CAAAA,SAA1C,CAAP,CAAA;AACD,KAAA;GA1BH,CAAA;AA4BD,CAAA;;AAED,CAAA;AACA,CAAA;AACA,CAAA;AACAuT,KAAA,CAAa4kF,SAAb,EAAwBkB,yBAAyB,CAAC,WAAD,EAAc,MAAd,CAAjD,CAAA,CAAA;AACA9lF,KAAA,CAAaglF,SAAb,EAAwBc,yBAAyB,CAAC,WAAD,EAAc,UAAd,CAAjD,CAAA;;AC1dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiCe,SAASG,uBAAT,CAAiCz0B,KAAjC,EAAwCoqB,KAAxC,EAA+C5sF,WAA/C,EAA4Dq1F,QAA5D,EAAsE5oB,UAAtE,EAAkF;AAC/F;AACA;AACA,EAAA,IAAIwb,KAAK,GAAG,IAAImN,KAAJ,CAAUC,QAAV,CAAZ,CAAA;;AAEA,EAAA,KAAK,IAAIroH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw1F,KAAK,CAACl2F,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;AACrCi7G,IAAAA,KAAK,CAACyN,OAAN,CAAc1kF,QAAA;AACdwxD,IAAAA,KAAK,CAACx1F,CAAD,CAAL,CAASmQ,EADK,EACDqlF,KAAK,CAACx1F,CAAD,CAAL,CAASgD,IADR,EACchD,CADd,CAAd,EACgCA,CADhC,CAAA,CAAA;AAED,GAAA;;EAED,IAAIkqH,YAAY,GAAG,EAAnB,CAAA;EACA,IAAIC,UAAU,GAAG,EAAjB,CAAA;EACA,IAAIC,SAAS,GAAG,CAAhB,CAAA;;AAEA,EAAA,KAAK,IAAIpqH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4/G,KAAK,CAACtgH,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;AACrC,IAAA,IAAI2sG,IAAI,GAAGiT,KAAK,CAAC5/G,CAAD,CAAhB,CAAA;AACA,IAAA,IAAIwpD,MAAM,GAAGmjD,IAAI,CAACnjD,MAAlB,CAAA;AACA,IAAA,IAAIrhD,MAAM,GAAGwkG,IAAI,CAACxkG,MAAlB,CAHqC;;IAKrC,IAAI8yG,KAAK,CAAC6N,OAAN,CAAct/D,MAAd,EAAsBrhD,MAAtB,EAA8BiiH,SAA9B,CAAJ,EAA8C;MAC5CD,UAAU,CAAC9pH,IAAX,CAAgBssG,IAAhB,CAAA,CAAA;MACAud,YAAY,CAAC7pH,IAAb,CAAkB2jC,QAAA,CAAgB87D,mBAAmB,CAAC6M,IAAI,CAACx8F,EAAN,EAAU,IAAV,CAAnC,EAAoDq5C,MAAM,GAAG,KAAT,GAAiBrhD,MAArE,CAAlB,CAAA,CAAA;MACAiiH,SAAS,EAAA,CAAA;AACV,KAAA;AACF,GAAA;;AAED,EAAA,IAAIh9F,QAAQ,GAAG4F,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,CAAf,CAAA;AACA,EAAA,IAAIusE,QAAJ,CAAA;;AAEA,EAAA,IAAI5zE,QAAQ,KAAK,aAAb,IAA8BA,QAAQ,KAAK,OAA/C,EAAwD;AACtD4zE,IAAAA,QAAQ,GAAGzzE,gBAAgB,CAACioE,KAAD,EAAQxiE,WAAR,CAA3B,CAAA;AACD,GAFD,MAEO;AACL,IAAA,IAAIq3F,YAAY,GAAGC,uBAAgB,CAAC71F,GAAjB,CAAqBrH,QAArB,CAAnB,CAAA;AACA,IAAA,IAAIi8B,eAAe,GAAGghE,YAAY,GAAGA,YAAY,CAACzvF,UAAb,IAA2B,EAA9B,GAAmC,EAArE,CAFK;AAGL;AACA;;IAEA,IAAIoJ,OAAA,CAAeqlB,eAAf,EAAgC,OAAhC,CAA2C,GAAA,CAA/C,EAAkD;AAChDA,MAAAA,eAAe,CAAC+nB,MAAhB,CAAuB,CAAC,OAAD,CAAvB,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIx2C,UAAU,GAAG8uB,uBAAuB,CAAC8rC,KAAD,EAAQ;AAC9CnsC,MAAAA,eAAe,EAAEA,eAD6B;MAE9CC,YAAY,EAAEt2B,WAAW,CAACu2B,SAAZ,EAAA;KAFwB,CAAvB,CAGd3uB,UAHH,CAAA;AAIAomE,IAAAA,QAAQ,GAAG,IAAIr3C,UAAJ,CAAe/uB,UAAf,EAA2B5H,WAA3B,CAAX,CAAA;IACAguE,QAAQ,CAACp3C,QAAT,CAAkB4rC,KAAlB,CAAA,CAAA;AACD,GAAA;;EAED,IAAIumB,QAAQ,GAAG,IAAIpyD,UAAJ,CAAe,CAAC,OAAD,CAAf,EAA0B32B,WAA1B,CAAf,CAAA;AACA+oF,EAAAA,QAAQ,CAACnyD,QAAT,CAAkBugE,UAAlB,EAA8BD,YAA9B,CAAA,CAAA;AACAzqB,EAAAA,UAAU,IAAIA,UAAU,CAACuB,QAAD,EAAW+a,QAAX,CAAxB,CAAA;AACAtf,EAAAA,cAAc,CAAC;AACbC,IAAAA,QAAQ,EAAEsE,QADG;AAEbzD,IAAAA,MAAM,EAAE0d,KAFK;AAGbvd,IAAAA,UAAU,EAAE,OAHC;AAIb1P,IAAAA,KAAK,EAAE;AACLn3E,MAAAA,IAAI,EAAEmqF,QADD;AAELvF,MAAAA,IAAI,EAAEsgB,QAAAA;KANK;AAQbnf,IAAAA,SAAS,EAAE;AACT/lF,MAAAA,IAAI,EAAE,MADG;AAET4kF,MAAAA,IAAI,EAAE,UAAA;AAFG,KAAA;GARC,CAAd,CApD+F;;AAkE/Fwf,EAAAA,KAAK,CAAC1iF,MAAN,EAAA,CAAA;AACA,EAAA,OAAO0iF,KAAP,CAAA;AACD;;ACtHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqCA,IAAIsP,gBAAgB;AACpB;AACA,UAAU/pG,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC8pG,gBAAD,EAAmB/pG,MAAnB,CAAT,CAAA;;AAEA,EAAA,SAAS+pG,gBAAT,GAA4B;AAC1B,IAAA,IAAI7pG,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAak7G,gBAAgB,CAACl7G,IAA9B,CAAA;IACAqR,KAAK,CAACuM,eAAN,GAAwB,IAAxB,CAAA;AACA,IAAA,OAAOvM,KAAP,CAAA;AACD,GAAA;;AAED6pG,EAAAA,gBAAgB,CAACjuH,SAAjB,CAA2BytC,IAA3B,GAAkC,UAAU5c,MAAV,EAAkB;IAClD3M,MAAM,CAAClkB,SAAP,CAAiBytC,IAAjB,CAAsB/c,KAAtB,CAA4B,IAA5B,EAAkC/sB,SAAlC,CAAA,CAAA;;IAEA,IAAIylB,IAAI,GAAG,IAAX,CAAA;;AAEA,IAAA,SAASs1F,iBAAT,GAA6B;MAC3B,OAAOt1F,IAAI,CAAC8kG,eAAZ,CAAA;AACD,KAPiD;;;IAUlD,IAAK//D,CAAAA,oBAAL,GAA4B,IAAIZ,oBAAJ,CAAyBmxD,iBAAzB,EAA4CA,iBAA5C,CAA5B,CAAA;IACA,IAAKyP,CAAAA,iBAAL,CAAuBt9F,MAAM,CAACyyF,KAAP,IAAgBzyF,MAAM,CAACu9F,KAA9C,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKC,qBAAL,EAAA,CAAA;GAbF,CAAA;;AAgBAJ,EAAAA,gBAAgB,CAACjuH,SAAjB,CAA2BquD,WAA3B,GAAyC,UAAUx9B,MAAV,EAAkB;IACzD3M,MAAM,CAAClkB,SAAP,CAAiBquD,WAAjB,CAA6B39B,KAA7B,CAAmC,IAAnC,EAAyC/sB,SAAzC,CAAA,CAAA;;IAEA,IAAKwqH,CAAAA,iBAAL,CAAuBt9F,MAAM,CAACyyF,KAAP,IAAgBzyF,MAAM,CAACu9F,KAA9C,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKC,qBAAL,EAAA,CAAA;GALF,CAAA;;AAQAJ,EAAAA,gBAAgB,CAACjuH,SAAjB,CAA2Bm2D,oBAA3B,GAAkD,UAAUtlC,MAAV,EAAkB;IAClE3M,MAAM,CAAClkB,SAAP,CAAiBm2D,oBAAjB,CAAsCzlC,KAAtC,CAA4C,IAA5C,EAAkD/sB,SAAlD,CAAA,CAAA;;IAEA2qH,eAAe,CAACz9F,MAAD,EAAS,WAAT,EAAsB,CAAC,MAAD,CAAtB,CAAf,CAAA;GAHF,CAAA;;EAMAo9F,gBAAgB,CAACjuH,SAAjB,CAA2B4wB,cAA3B,GAA4C,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;IACrE,IAAIu1E,KAAK,GAAGzyF,MAAM,CAACyyF,KAAP,IAAgBzyF,MAAM,CAACu9F,KAAvB,IAAgC,EAA5C,CAAA;IACA,IAAIl1B,KAAK,GAAGroE,MAAM,CAACqD,IAAP,IAAerD,MAAM,CAACqoE,KAAtB,IAA+B,EAA3C,CAAA;IACA,IAAI9vE,IAAI,GAAG,IAAX,CAAA;;IAEA,IAAI8vE,KAAK,IAAIoqB,KAAb,EAAoB;AAClB;MACAxC,iBAAiB,CAAC,IAAD,CAAjB,CAAA;AACA,MAAA,IAAInC,KAAK,GAAGgP,uBAAuB,CAACz0B,KAAD,EAAQoqB,KAAR,EAAe,IAAf,EAAqB,IAArB,EAA2BngB,UAA3B,CAAnC,CAAA;MACAz7D,MAAA,CAAYi3E,KAAK,CAAC2E,KAAlB,EAAyB,UAAUnkB,IAAV,EAAgB;AACvC4hB,QAAAA,yBAAyB,CAAC5hB,IAAI,CAACpE,KAAN,EAAaoE,IAAI,CAACnE,KAAlB,EAAyB,IAAzB,EAA+BmE,IAAI,CAAChrE,SAApC,CAAzB,CAAA;AACD,OAFD,EAEG,IAFH,CAAA,CAAA;MAGA,OAAOwqF,KAAK,CAACzqF,IAAb,CAAA;AACD,KAAA;;AAED,IAAA,SAASivE,UAAT,CAAoBuB,QAApB,EAA8B+a,QAA9B,EAAwC;AACtC;AACA/a,MAAAA,QAAQ,CAAChE,UAAT,CAAoB,cAApB,EAAoC,UAAUzkD,KAAV,EAAiB;AACnD,QAAA,IAAIsyE,gBAAgB,GAAGnlG,IAAI,CAAColG,iBAA5B,CAAA;AACA,QAAA,IAAIpP,WAAW,GAAGnjE,KAAK,CAAC5jB,UAAN,CAAiB,UAAjB,CAAlB,CAAA;AACA,QAAA,IAAIo2F,aAAa,GAAGF,gBAAgB,CAACnP,WAAD,CAApC,CAAA;;AAEA,QAAA,IAAIqP,aAAJ,EAAmB;AACjBA,UAAAA,aAAa,CAACt9C,WAAd,GAA4Bl1B,KAAK,CAACk1B,WAAlC,CAAA;UACAl1B,KAAK,CAACk1B,WAAN,GAAoBs9C,aAApB,CAAA;AACD,SAAA;;AAED,QAAA,OAAOxyE,KAAP,CAAA;AACD,OAXD,EAFsC;;AAetC,MAAA,IAAIyyE,WAAW,GAAGhmD,KAAK,CAAC1oE,SAAN,CAAgBi4B,QAAlC,CAAA;;AAEA,MAAA,SAAS02F,WAAT,CAAqBtjH,IAArB,EAA2B8lE,WAA3B,EAAwC;QACtC,IAAIl1B,KAAK,GAAGyyE,WAAW,CAACrqG,IAAZ,CAAiB,IAAjB,EAAuBhZ,IAAvB,EAA6B8lE,WAA7B,CAAZ,CAAA;QACAl1B,KAAK,CAAC2yE,iBAAN,GAA0BA,iBAA1B,CAAA;AACA,QAAA,OAAO3yE,KAAP,CAAA;AACD,OAAA;;AAEDwjE,MAAAA,QAAQ,CAAC/e,UAAT,CAAoB,cAApB,EAAoC,UAAUzkD,KAAV,EAAiB;QACnDA,KAAK,CAAC2yE,iBAAN,GAA0BA,iBAA1B,CAAA;QACA3yE,KAAK,CAAChkB,QAAN,GAAiB02F,WAAjB,CAAA;AACA,QAAA,OAAO1yE,KAAP,CAAA;OAHF,CAAA,CAAA;;MAMA,SAAS2yE,iBAAT,CAA2BC,OAA3B,EAAoC;AAClC,QAAA,IAAIA,OAAO,KAAKA,OAAO,CAAC,CAAD,CAAP,KAAe,OAAf,IAA0BA,OAAO,CAAC,CAAD,CAAP,KAAe,OAA9C,CAAX,EAAmE;AACjE,UAAA,IAAIC,UAAU,GAAGD,OAAO,CAAC9lG,KAAR,EAAjB,CAAA;;AAEA,UAAA,IAAI8lG,OAAO,CAAC,CAAD,CAAP,KAAe,OAAnB,EAA4B;AAC1BC,YAAAA,UAAU,CAAC,CAAD,CAAV,GAAgB,WAAhB,CAAA;WADF,MAEO,IAAID,OAAO,CAAC,CAAD,CAAP,KAAe,OAAnB,EAA4B;AACjCC,YAAAA,UAAU,CAAC,CAAD,CAAV,GAAgB,WAAhB,CAAA;AACD,WAAA;;AAED,UAAA,OAAOA,UAAP,CAAA;AACD,SAAA;;AAED,QAAA,OAAOD,OAAP,CAAA;AACD,OAAA;AACF,KAAA;GA3DH,CAAA;;AA8DAZ,EAAAA,gBAAgB,CAACjuH,SAAjB,CAA2B4+G,QAA3B,GAAsC,YAAY;IAChD,OAAO,IAAA,CAAK7sF,OAAL,EAAA,CAAe4sF,KAAtB,CAAA;GADF,CAAA;;AAIAsP,EAAAA,gBAAgB,CAACjuH,SAAjB,CAA2B0/G,WAA3B,GAAyC,YAAY;IACnD,OAAO,IAAA,CAAKd,QAAL,EAAA,CAAgBa,QAAvB,CAAA;GADF,CAAA;;AAIAwO,EAAAA,gBAAgB,CAACjuH,SAAjB,CAA2B0+G,iBAA3B,GAA+C,YAAY;AACzD,IAAA,OAAO,KAAKwP,eAAZ,CAAA;GADF,CAAA;;EAIAD,gBAAgB,CAACjuH,SAAjB,CAA2B6xE,aAA3B,GAA2C,UAAU19C,SAAV,EAAqB29C,cAArB,EAAqCC,QAArC,EAA+C;IACxF,IAAIA,QAAQ,KAAK,MAAjB,EAAyB;AACvB,MAAA,IAAI2yB,QAAQ,GAAG,IAAK3yE,CAAAA,OAAL,EAAf,CAAA;MACA,IAAImiB,MAAM,GAAG,IAAKsa,CAAAA,aAAL,CAAmBr6B,SAAnB,EAA8B49C,QAA9B,CAAb,CAAA;MACA,IAAIotB,IAAI,GAAGuF,QAAQ,CAACia,KAAT,CAAegB,cAAf,CAA8BxrF,SAA9B,CAAX,CAAA;MACA,IAAI46F,UAAU,GAAGrqB,QAAQ,CAAC/qE,OAAT,CAAiBwlE,IAAI,CAACpE,KAAL,CAAW5mE,SAA5B,CAAjB,CAAA;MACA,IAAIvkB,UAAU,GAAG80F,QAAQ,CAAC/qE,OAAT,CAAiBwlE,IAAI,CAACnE,KAAL,CAAW7mE,SAA5B,CAAjB,CAAA;MACA,IAAI66F,OAAO,GAAG,EAAd,CAAA;MACAD,UAAU,IAAI,IAAd,IAAsBC,OAAO,CAACjrH,IAAR,CAAagrH,UAAb,CAAtB,CAAA;MACAn/G,UAAU,IAAI,IAAd,IAAsBo/G,OAAO,CAACjrH,IAAR,CAAa6L,UAAb,CAAtB,CAAA;MACA,OAAOwiE,mBAAmB,CAAC,WAAD,EAAc;AACtC1rE,QAAAA,IAAI,EAAEsoH,OAAO,CAAChrH,IAAR,CAAa,KAAb,CADgC;QAEtCk7B,KAAK,EAAEgV,MAAM,CAAChV,KAFwB;AAGtC+lE,QAAAA,OAAO,EAAE/wD,MAAM,CAAChV,KAAP,IAAgB,IAAA;AAHa,OAAd,CAA1B,CAAA;AAKD,KAfuF;;;IAkBxF,IAAI+vF,UAAU,GAAGC,0BAA0B,CAAC;AAC1C3+C,MAAAA,MAAM,EAAE,IADkC;AAE1Cp8C,MAAAA,SAAS,EAAEA,SAF+B;AAG1C29C,MAAAA,cAAc,EAAEA,cAAAA;AAH0B,KAAD,CAA3C,CAAA;AAKA,IAAA,OAAOm9C,UAAP,CAAA;GAvBF,CAAA;;AA0BAhB,EAAAA,gBAAgB,CAACjuH,SAAjB,CAA2BquH,qBAA3B,GAAmD,YAAY;AAC7D,IAAA,IAAI/vE,UAAU,GAAG5W,GAAA,CAAW,IAAA,CAAK7W,MAAL,CAAYytB,UAAZ,IAA0B,EAArC,EAAyC,UAAUiX,QAAV,EAAoB;AAC5E;MACA,OAAOA,QAAQ,CAACr2B,KAAT,IAAkB,IAAlB,GAAyBq2B,QAAzB,GAAoC7tB,MAAA,CAAc;AACvDxI,QAAAA,KAAK,EAAE,CAAA;OADkC,EAExCq2B,QAFwC,CAA3C,CAAA;AAGD,KALgB,CAAjB,CAAA;IAMA,IAAIkpD,cAAc,GAAG,IAAIpxD,UAAJ,CAAe,CAAC,OAAD,CAAf,EAA0B,IAA1B,CAArB,CAAA;IACAoxD,cAAc,CAACnxD,QAAf,CAAwBhP,UAAxB,CAAA,CAAA;IACA,IAAK4vE,CAAAA,eAAL,GAAuBzP,cAAvB,CAAA;IACA,IAAK+P,CAAAA,iBAAL,GAAyB/P,cAAc,CAAC3wD,QAAf,CAAwB,UAAUp+B,GAAV,EAAe;AAC9D,MAAA,OAAO+uF,cAAc,CAAC1mF,YAAf,CAA4BrI,GAA5B,CAAP,CAAA;AACD,KAFwB,CAAzB,CAAA;GAVF,CAAA;;AAeAu+F,EAAAA,gBAAgB,CAACjuH,SAAjB,CAA2BixF,OAA3B,GAAqC,UAAUvW,IAAV,EAAgB;AACnD,IAAA,IAAA,CAAK7pD,MAAL,CAAY6pD,IAAZ,GAAmBA,IAAnB,CAAA;GADF,CAAA;;AAIAuzC,EAAAA,gBAAgB,CAACjuH,SAAjB,CAA2BolF,SAA3B,GAAuC,UAAU/gC,MAAV,EAAkB;AACvD,IAAA,IAAA,CAAKxzB,MAAL,CAAYwzB,MAAZ,GAAqBA,MAArB,CAAA;GADF,CAAA;;AAIA4pE,EAAAA,gBAAgB,CAACjuH,SAAjB,CAA2B06C,kBAA3B,GAAgD,YAAY;IAC1D,OAAOx2B,MAAM,CAAClkB,SAAP,CAAiB06C,kBAAjB,CAAoCr2B,IAApC,CAAyC,IAAzC,CAA+C;AAA/C,OACJ,EAAE,IAAK8T,CAAAA,GAAL,CAAS,QAAT,MAAuB,OAAvB,IAAkC,IAAKA,CAAAA,GAAL,CAAS,CAAC,OAAD,EAAU,iBAAV,CAAT,CAApC,CADH,CAAA;GADF,CAAA;;EAKA81F,gBAAgB,CAACl7G,IAAjB,GAAwB,cAAxB,CAAA;AACAk7G,EAAAA,gBAAgB,CAACv7F,YAAjB,GAAgC,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,EAAyB,YAAzB,EAAuC,UAAvC,CAAhC,CAAA;EACAu7F,gBAAgB,CAACt7F,aAAjB,GAAiC;AAC/B;AACAzG,IAAAA,CAAC,EAAE,CAF4B;AAG/B6E,IAAAA,gBAAgB,EAAE,MAHa;AAI/B;AACA;AACA;AACA;AACA;AACA6B,IAAAA,eAAe,EAAE,IATc;AAU/BgpB,IAAAA,MAAM,EAAE,IAVuB;AAW/B;AACAuzE,IAAAA,QAAQ,EAAE;AACRC,MAAAA,WAAW,EAAE,KAAA;KAbgB;AAe/B;AACAC,IAAAA,KAAK,EAAE;AACLxK,MAAAA,UAAU,EAAE,IADP;AAEL;AACAG,MAAAA,SAAS,EAAE,CAAC,CAAD,EAAI,EAAJ,CAHN;AAILzB,MAAAA,OAAO,EAAE,GAJJ;AAKL;AACAG,MAAAA,QAAQ,EAAE,GANL;AAOL;AACAuB,MAAAA,UAAU,EAAE,EARP;AASLqG,MAAAA,eAAe,EAAE,IAAA;KAzBY;AA2B/BvnG,IAAAA,IAAI,EAAE,QA3ByB;AA4B/BC,IAAAA,GAAG,EAAE,QA5B0B;AA6B/B;AACA;AACA;AACA;AACAoO,IAAAA,MAAM,EAAE,QAjCuB;AAkC/BiB,IAAAA,UAAU,EAAE,EAlCmB;AAmC/Bi8F,IAAAA,UAAU,EAAE,CAAC,MAAD,EAAS,MAAT,CAnCmB;AAoC/BC,IAAAA,cAAc,EAAE,EApCe;AAqC/BC,IAAAA,SAAS,EAAE;AACT1rG,MAAAA,QAAQ,EAAE,QADD;AAETmP,MAAAA,QAAQ,EAAE,CAAA;KAvCmB;AAyC/BoD,IAAAA,SAAS,EAAE,KAzCoB;AA0C/B+yD,IAAAA,IAAI,EAAE,KA1CyB;AA2C/B;AACA/kC,IAAAA,MAAM,EAAE,IA5CuB;AA6C/Bq2B,IAAAA,IAAI,EAAE,CA7CyB;AA8C/B;AACAoiB,IAAAA,cAAc,EAAE,GA/Ce;AAgD/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAjqE,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,KADD;AAELkkE,MAAAA,SAAS,EAAE,KAAA;KA3DkB;AA6D/B5kE,IAAAA,SAAS,EAAE,EA7DoB;AA8D/BV,IAAAA,SAAS,EAAE;AACTrsB,MAAAA,KAAK,EAAE,MADE;AAETmE,MAAAA,KAAK,EAAE,CAFE;AAGTtE,MAAAA,OAAO,EAAE,GAAA;KAjEoB;AAmE/B+tB,IAAAA,QAAQ,EAAE;AACR5M,MAAAA,KAAK,EAAE,IADC;AAERuM,MAAAA,KAAK,EAAE;AACLE,QAAAA,IAAI,EAAE,IAAA;AADD,OAAA;KArEsB;AAyE/BukB,IAAAA,MAAM,EAAE;AACNjlB,MAAAA,SAAS,EAAE;AACT8kB,QAAAA,WAAW,EAAE,SAAA;AADJ,OAAA;AADL,KAAA;GAzEV,CAAA;AA+EA,EAAA,OAAO82E,gBAAP,CAAA;AACD,CA3PD,CA2PEj6F,WA3PF,CAFA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAqCA,IAAIqkE,YAAU,GAAG;AACftlF,EAAAA,IAAI,EAAE,WADS;AAEfgwC,EAAAA,KAAK,EAAE,WAFQ;AAGf9mB,EAAAA,MAAM,EAAE,MAAA;AAHO,CAAjB,CAAA;AAKO,SAAS7Y,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4B21E,SAA5B,CAAA,CAAA;EACA3nG,SAAS,CAACiyB,mBAAV,CAA8B24E,gBAA9B,CAAA,CAAA;EACA5qG,SAAS,CAACuyB,iBAAV,CAA4B2oE,cAA5B,CAAA,CAAA;EACAl7F,SAAS,CAACqyB,cAAV,CAAyBopE,cAAzB,CAAA,CAAA;EACAz7F,SAAS,CAACqyB,cAAV,CAAyB+5E,eAAzB,CAAA,CAAA;EACApsG,SAAS,CAACmyB,cAAV,CAAyBqsE,iBAAzB,CAAA,CAAA;EACAx+F,SAAS,CAACmyB,cAAV,CAAyBnyB,SAAS,CAACwyB,QAAV,CAAmByN,MAAnB,CAA0BosE,iBAAnD,EAAsErN,mBAAtE,CAAA,CAAA;EACAh/F,SAAS,CAACmyB,cAAV,CAAyB2tE,gBAAzB,CAAA,CAAA;AACA9/F,EAAAA,SAAS,CAACmsD,wBAAV,CAAmC,WAAnC,EAAgD;IAC9ClxC,UAAU,EAAEg0D,IAAI,CAACh0D,UAD6B;AAE9CgjC,IAAAA,MAAM,EAAEquD,kBAAAA;AAFsC,GAAhD,EATiC;;EAcjCtsG,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,oBADiB;AAEvBgwC,IAAAA,KAAK,EAAE,oBAFgB;AAGvB9mB,IAAAA,MAAM,EAAE,2BAAA;AAHe,GAAzB,EAIG06C,IAJH,CAAA,CAAA;EAKAtzD,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,sBADiB;AAEvBgwC,IAAAA,KAAK,EAAE,sBAFgB;AAGvB9mB,IAAAA,MAAM,EAAE,6BAAA;GAHV,EAIG06C,IAJH,CAAA,CAnBiC;;EAyBjCtzD,SAAS,CAACqgC,cAAV,CAAyB20C,YAAzB,EAAqC,UAAUvnD,OAAV,EAAmB/C,OAAnB,EAA4BxxB,GAA5B,EAAiC;IACpEwxB,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAE,QADU;AAEpBC,MAAAA,KAAK,EAAE/S,OAAAA;KAFT,EAGG,UAAUpa,WAAV,EAAuB;AACxB,MAAA,IAAI5F,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;MACA,IAAI2hC,GAAG,GAAG4kC,mBAAmB,CAACxmE,QAAD,EAAWggB,OAAX,EAAoBz7B,SAApB,EAA+BkH,GAA/B,CAA7B,CAAA;MACAma,WAAW,CAAC0uD,SAAZ,IAAyB1uD,WAAW,CAAC0uD,SAAZ,CAAsB1yB,GAAG,CAACrO,MAA1B,CAAzB,CAAA;MACA3tB,WAAW,CAACu6D,OAAZ,IAAuBv6D,WAAW,CAACu6D,OAAZ,CAAoBv+B,GAAG,CAACgoB,IAAxB,CAAvB,CAAA;KAPF,CAAA,CAAA;GADF,CAAA,CAAA;AAWD;;AC/FD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAIk1C,YAAY;AAChB;AACA,YAAY;AACV,EAAA,SAASA,YAAT,GAAwB;IACtB,IAAKz2E,CAAAA,KAAL,GAAa,CAAb,CAAA;IACA,IAAK1vC,CAAAA,KAAL,GAAa,EAAb,CAAA;IACA,IAAKnI,CAAAA,CAAL,GAAS,EAAT,CAAA;IACA,IAAKb,CAAAA,CAAL,GAAS,CAAT,CAAA;IACA,IAAKC,CAAAA,CAAL,GAAS,CAAT,CAAA;AACD,GAAA;;AAED,EAAA,OAAOkvH,YAAP,CAAA;AACD,CAVD,EAFA,CAAA;;AAcA,IAAIC,WAAW;AACf;AACA,UAAU3rG,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC0rG,WAAD,EAAc3rG,MAAd,CAAT,CAAA;;EAEA,SAAS2rG,WAAT,CAAqBroH,IAArB,EAA2B;IACzB,IAAI4c,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB7c,IAAlB,CAAA,IAA2B,IAAvC,CAAA;;IAEA4c,KAAK,CAACrR,IAAN,GAAa,SAAb,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDyrG,EAAAA,WAAW,CAAC7vH,SAAZ,CAAsBukC,eAAtB,GAAwC,YAAY;IAClD,OAAO,IAAIqrF,YAAJ,EAAP,CAAA;GADF,CAAA;;EAIAC,WAAW,CAAC7vH,SAAZ,CAAsBwL,SAAtB,GAAkC,UAAUwa,GAAV,EAAe1a,KAAf,EAAsB;AACtD,IAAA,IAAI5L,OAAO,GAAGF,IAAI,CAACG,GAAnB,CAAA;AACA,IAAA,IAAIJ,OAAO,GAAGC,IAAI,CAACC,GAAnB,CAAA;AACA,IAAA,IAAI6B,CAAC,GAAGgK,KAAK,CAAChK,CAAd,CAAA;AACA,IAAA,IAAImI,KAAK,GAAG6B,KAAK,CAAC7B,KAAlB,CAAA;AACA,IAAA,IAAI0vC,KAAK,GAAG7tC,KAAK,CAAC6tC,KAAlB,CAAA;IACA,IAAI14C,CAAC,GAAG6K,KAAK,CAAC7K,CAAN,GAAUf,OAAO,CAACy5C,KAAD,CAAP,GAAiB1vC,KAAjB,IAA0BA,KAAK,IAAInI,CAAC,GAAG,CAAb,GAAiB,CAAjB,GAAqB,CAA/C,CAAlB,CAAA;IACA,IAAIZ,CAAC,GAAG4K,KAAK,CAAC5K,CAAN,GAAUnB,OAAO,CAAC45C,KAAD,CAAP,GAAiB1vC,KAAjB,IAA0BA,KAAK,IAAInI,CAAC,GAAG,CAAb,GAAiB,CAAjB,GAAqB,CAA/C,CAAlB,CAAA;IACA63C,KAAK,GAAG7tC,KAAK,CAAC6tC,KAAN,GAAc35C,IAAI,CAACI,EAAL,GAAU,CAAhC,CAAA;AACAomB,IAAAA,GAAG,CAACxlB,MAAJ,CAAWC,CAAX,EAAcC,CAAd,CAAA,CAAA;IACAslB,GAAG,CAACplB,MAAJ,CAAW0K,KAAK,CAAC7K,CAAN,GAAUf,OAAO,CAACy5C,KAAD,CAAP,GAAiB1vC,KAAtC,EAA6C6B,KAAK,CAAC5K,CAAN,GAAUnB,OAAO,CAAC45C,KAAD,CAAP,GAAiB1vC,KAAxE,CAAA,CAAA;IACAuc,GAAG,CAACplB,MAAJ,CAAW0K,KAAK,CAAC7K,CAAN,GAAUf,OAAO,CAAC4L,KAAK,CAAC6tC,KAAP,CAAP,GAAuB73C,CAA5C,EAA+CgK,KAAK,CAAC5K,CAAN,GAAUnB,OAAO,CAAC+L,KAAK,CAAC6tC,KAAP,CAAP,GAAuB73C,CAAhF,CAAA,CAAA;IACA0kB,GAAG,CAACplB,MAAJ,CAAW0K,KAAK,CAAC7K,CAAN,GAAUf,OAAO,CAACy5C,KAAD,CAAP,GAAiB1vC,KAAtC,EAA6C6B,KAAK,CAAC5K,CAAN,GAAUnB,OAAO,CAAC45C,KAAD,CAAP,GAAiB1vC,KAAxE,CAAA,CAAA;AACAuc,IAAAA,GAAG,CAACplB,MAAJ,CAAWH,CAAX,EAAcC,CAAd,CAAA,CAAA;GAbF,CAAA;;AAgBA,EAAA,OAAOmvH,WAAP,CAAA;AACD,CA/BD,CA+BEt6G,IA/BF,CAFA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAuCA,SAASu6G,aAAT,CAAuBp5F,WAAvB,EAAoCna,GAApC,EAAyC;AACvC,EAAA,IAAI8nC,MAAM,GAAG3tB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;AACA,EAAA,IAAI1uB,KAAK,GAAG8S,GAAG,CAACmG,QAAJ,EAAZ,CAAA;AACA,EAAA,IAAIhZ,MAAM,GAAG6S,GAAG,CAACoG,SAAJ,EAAb,CAAA;EACA,IAAIwP,IAAI,GAAG3yB,IAAI,CAAC8iC,GAAL,CAAS74B,KAAT,EAAgBC,MAAhB,CAAX,CAAA;AACA,EAAA,IAAItI,EAAE,GAAGmjD,YAAY,CAACF,MAAM,CAAC,CAAD,CAAP,EAAY9nC,GAAG,CAACmG,QAAJ,EAAZ,CAArB,CAAA;AACA,EAAA,IAAIrhB,EAAE,GAAGkjD,YAAY,CAACF,MAAM,CAAC,CAAD,CAAP,EAAY9nC,GAAG,CAACoG,SAAJ,EAAZ,CAArB,CAAA;AACA,EAAA,IAAIrhB,CAAC,GAAGijD,YAAY,CAAC7tB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAD,EAA4BhG,IAAI,GAAG,CAAnC,CAApB,CAAA;EACA,OAAO;AACL/wB,IAAAA,EAAE,EAAEA,EADC;AAELC,IAAAA,EAAE,EAAEA,EAFC;AAGLC,IAAAA,CAAC,EAAEA,CAAAA;GAHL,CAAA;AAKD,CAAA;;AAED,SAASyuH,WAAT,CAAqB7wF,KAArB,EAA4B8wF,cAA5B,EAA4C;EAC1C,IAAIn9F,KAAK,GAAGqM,KAAK,IAAI,IAAT,GAAgB,EAAhB,GAAqBA,KAAK,GAAG,EAAzC,CAAA;;AAEA,EAAA,IAAI8wF,cAAJ,EAAoB;AAClB,IAAA,IAAI1iH,QAAQ,CAAC0iH,cAAD,CAAZ,EAA8B;MAC5Bn9F,KAAK,GAAGm9F,cAAc,CAAC7iH,OAAf,CAAuB,SAAvB,EAAkC0lB,KAAlC,CAAR,CAAA;AACD,KAFD,MAEO,IAAI9hB,UAAU,CAACi/G,cAAD,CAAd,EAAgC;AACrCn9F,MAAAA,KAAK,GAAGm9F,cAAc,CAAC9wF,KAAD,CAAtB,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAOrM,KAAP,CAAA;AACD,CAAA;;AAED,IAAIo9F,SAAS;AACb;AACA,UAAU/rG,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC8rG,SAAD,EAAY/rG,MAAZ,CAAT,CAAA;;AAEA,EAAA,SAAS+rG,SAAT,GAAqB;AACnB,IAAA,IAAI7rG,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAak9G,SAAS,CAACl9G,IAAvB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED6rG,SAAS,CAACjwH,SAAV,CAAoB8tC,MAApB,GAA6B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;IAChE,IAAK8U,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;AACA,IAAA,IAAIi7F,SAAS,GAAGx5F,WAAW,CAACyB,GAAZ,CAAgB,CAAC,UAAD,EAAa,WAAb,EAA0B,OAA1B,CAAhB,CAAhB,CAAA;AACA,IAAA,IAAIg4F,OAAO,GAAGL,aAAa,CAACp5F,WAAD,EAAcna,GAAd,CAA3B,CAAA;;IAEA,IAAK6zG,CAAAA,WAAL,CAAiB15F,WAAjB,EAA8BqX,OAA9B,EAAuCxxB,GAAvC,EAA4C2zG,SAA5C,EAAuDC,OAAvD,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAK30F,KAAL,GAAa9E,WAAW,CAAC3E,OAAZ,EAAb,CAAA;GAPF,CAAA;;AAUAk+F,EAAAA,SAAS,CAACjwH,SAAV,CAAoB4iB,OAApB,GAA8B,YAAY,EAA1C,CAAA;;AAEAqtG,EAAAA,SAAS,CAACjwH,SAAV,CAAoBowH,WAApB,GAAkC,UAAU15F,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC2zG,SAArC,EAAgDC,OAAhD,EAAyD;IACzF,IAAI9+F,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAItvB,SAAS,GAAG20B,WAAW,CAACyB,GAAZ,CAAgB,WAAhB,CAAhB,CAAA;AACA,IAAA,IAAI52B,UAAU,GAAG,CAACm1B,WAAW,CAACyB,GAAZ,CAAgB,YAAhB,CAAD,GAAiC,GAAjC,GAAuC34B,IAAI,CAACI,EAA7D,CAAA;AACA,IAAA,IAAI4B,QAAQ,GAAG,CAACk1B,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,CAAD,GAA+B,GAA/B,GAAqC34B,IAAI,CAACI,EAAzD,CAAA;AACA,IAAA,IAAIywH,aAAa,GAAG35F,WAAW,CAACuB,QAAZ,CAAqB,UAArB,CAApB,CAAA;AACA,IAAA,IAAI+e,QAAQ,GAAGq5E,aAAa,CAACl4F,GAAd,CAAkB,UAAlB,CAAf,CAAA;IACA,IAAIm4F,QAAQ,GAAGt5E,QAAQ,GAAGsJ,WAAH,GAAavpB,MAApC,CAAA;AACA,IAAA,IAAIw5F,QAAQ,GAAGF,aAAa,CAACl4F,GAAd,CAAkB,MAAlB,CAAf,CAAA;AACA,IAAA,IAAI6V,cAAc,GAAGqiF,aAAa,CAACp4F,QAAd,CAAuB,WAAvB,CAArB,CAAA;AACA,IAAA,IAAIu4F,aAAa,GAAGxiF,cAAc,CAAC7V,GAAf,CAAmB,OAAnB,CAApB,CAAA;AACA,IAAA,IAAIs4F,MAAM,GAAG,CAAClvH,UAAD,EAAaC,QAAb,CAAb,CAAA;AACAkvH,IAAAA,kBAAkB,CAACD,MAAD,EAAS,CAAC1uH,SAAV,CAAlB,CAAA;AACAR,IAAAA,UAAU,GAAGkvH,MAAM,CAAC,CAAD,CAAnB,CAAA;AACAjvH,IAAAA,QAAQ,GAAGivH,MAAM,CAAC,CAAD,CAAjB,CAAA;AACA,IAAA,IAAIE,cAAc,GAAGnvH,QAAQ,GAAGD,UAAhC,CAAA;IACA,IAAIqvH,YAAY,GAAGrvH,UAAnB,CAAA;;AAEA,IAAA,KAAK,IAAImC,CAAC,GAAG,CAAb,EAAgB6sH,QAAQ,IAAI7sH,CAAC,GAAGwsH,SAAS,CAACltH,MAA1C,EAAkDU,CAAC,EAAnD,EAAuD;AACrD;MACA,IAAI8E,OAAO,GAAGhJ,IAAI,CAAC8iC,GAAL,CAAS9iC,IAAI,CAAC0iB,GAAL,CAASguG,SAAS,CAACxsH,CAAD,CAAT,CAAa,CAAb,CAAT,EAA0B,CAA1B,CAAT,EAAuC,CAAvC,CAAd,CAAA;AACAlC,MAAAA,QAAQ,GAAGD,UAAU,GAAGovH,cAAc,GAAGnoH,OAAzC,CAAA;AACA,MAAA,IAAI+vC,MAAM,GAAG,IAAI+3E,QAAJ,CAAa;AACxBhlH,QAAAA,KAAK,EAAE;AACL/J,UAAAA,UAAU,EAAEqvH,YADP;AAELpvH,UAAAA,QAAQ,EAAEA,QAFL;UAGLJ,EAAE,EAAE+uH,OAAO,CAAC/uH,EAHP;UAILC,EAAE,EAAE8uH,OAAO,CAAC9uH,EAJP;AAKLU,UAAAA,SAAS,EAAEA,SALN;AAMLwkC,UAAAA,EAAE,EAAE4pF,OAAO,CAAC7uH,CAAR,GAAYkvH,aANX;UAOLlvH,CAAC,EAAE6uH,OAAO,CAAC7uH,CAAAA;SARW;AAUxBk1B,QAAAA,MAAM,EAAE,IAAA;AAVgB,OAAb,CAAb,CAAA;MAYA+hB,MAAM,CAAC1mB,QAAP,CAAgB;AACdttB,QAAAA,IAAI,EAAE2rH,SAAS,CAACxsH,CAAD,CAAT,CAAa,CAAb,CAAA;OADR,CAAA,CAAA;AAGA60C,MAAAA,MAAM,CAAC1mB,QAAP,CAAgBmc,cAAc,CAAC0B,YAAf;AAChB;AACA,MAAA,CAAC,OAAD,EAAU,OAAV,CAFgB,CAAhB,CAAA,CAAA;MAGAre,KAAK,CAACO,GAAN,CAAU2mB,MAAV,CAAA,CAAA;AACAq4E,MAAAA,YAAY,GAAGpvH,QAAf,CAAA;AACD,KAAA;;AAED,IAAA,IAAIqvH,QAAQ,GAAG,SAAXA,QAAW,CAAUroH,OAAV,EAAmB;AAChC;MACA,IAAIA,OAAO,IAAI,CAAf,EAAkB;AAChB,QAAA,OAAO0nH,SAAS,CAAC,CAAD,CAAT,CAAa,CAAb,CAAP,CAAA;AACD,OAAA;;AAED,MAAA,IAAIxsH,CAAJ,CAAA;;AAEA,MAAA,KAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGwsH,SAAS,CAACltH,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;QACrC,IAAIwsH,SAAS,CAACxsH,CAAD,CAAT,CAAa,CAAb,CAAA,IAAmB8E,OAAnB,IAA8B,CAAC9E,CAAC,KAAK,CAAN,GAAU,CAAV,GAAcwsH,SAAS,CAACxsH,CAAC,GAAG,CAAL,CAAT,CAAiB,CAAjB,CAAf,IAAsC8E,OAAxE,EAAiF;AAC/E,UAAA,OAAO0nH,SAAS,CAACxsH,CAAD,CAAT,CAAa,CAAb,CAAP,CAAA;AACD,SAAA;AACF,OAZ+B;;;MAehC,OAAOwsH,SAAS,CAACxsH,CAAC,GAAG,CAAL,CAAT,CAAiB,CAAjB,CAAP,CAAA;KAfF,CAAA;;AAkBA,IAAA,IAAA,CAAKotH,YAAL,CAAkBp6F,WAAlB,EAA+BqX,OAA/B,EAAwCxxB,GAAxC,EAA6Cs0G,QAA7C,EAAuDV,OAAvD,EAAgE5uH,UAAhE,EAA4EC,QAA5E,EAAsFO,SAAtF,EAAiGyuH,aAAjG,CAAA,CAAA;;IAEA,IAAKO,CAAAA,qBAAL,CAA2Br6F,WAA3B,EAAwCqX,OAAxC,EAAiDxxB,GAAjD,EAAsDs0G,QAAtD,EAAgEV,OAAhE,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKa,aAAL,CAAmBt6F,WAAnB,EAAgCy5F,OAAhC,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKc,cAAL,CAAoBv6F,WAApB,EAAiCqX,OAAjC,EAA0CxxB,GAA1C,EAA+Cs0G,QAA/C,EAAyDV,OAAzD,EAAkE5uH,UAAlE,EAA8EC,QAA9E,EAAwFO,SAAxF,EAAmGyuH,aAAnG,CAAA,CAAA;GApEF,CAAA;;EAuEAP,SAAS,CAACjwH,SAAV,CAAoB8wH,YAApB,GAAmC,UAAUp6F,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqCs0G,QAArC,EAA+CV,OAA/C,EAAwD5uH,UAAxD,EAAoEC,QAApE,EAA8EO,SAA9E,EAAyFyuH,aAAzF,EAAwG;IACzI,IAAIn/F,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAIjwB,EAAE,GAAG+uH,OAAO,CAAC/uH,EAAjB,CAAA;AACA,IAAA,IAAIC,EAAE,GAAG8uH,OAAO,CAAC9uH,EAAjB,CAAA;AACA,IAAA,IAAIC,CAAC,GAAG6uH,OAAO,CAAC7uH,CAAhB,CAAA;IACA,IAAI4vH,MAAM,GAAG,CAACx6F,WAAW,CAACyB,GAAZ,CAAgB,KAAhB,CAAd,CAAA;IACA,IAAIg5F,MAAM,GAAG,CAACz6F,WAAW,CAACyB,GAAZ,CAAgB,KAAhB,CAAd,CAAA;AACA,IAAA,IAAI22C,cAAc,GAAGp4C,WAAW,CAACuB,QAAZ,CAAqB,WAArB,CAArB,CAAA;AACA,IAAA,IAAIuvC,SAAS,GAAG9wC,WAAW,CAACuB,QAAZ,CAAqB,UAArB,CAAhB,CAAA;AACA,IAAA,IAAIuxB,UAAU,GAAG9yB,WAAW,CAACuB,QAAZ,CAAqB,WAArB,CAAjB,CAAA;AACA,IAAA,IAAI88B,WAAW,GAAGr+B,WAAW,CAACyB,GAAZ,CAAgB,aAAhB,CAAlB,CAAA;AACA,IAAA,IAAIi5F,cAAc,GAAG5pD,SAAS,CAACrvC,GAAV,CAAc,aAAd,CAArB,CAAA;AACA,IAAA,IAAIk5F,YAAY,GAAG9sE,YAAY,CAACuqB,cAAc,CAAC32C,GAAf,CAAmB,QAAnB,CAAD,EAA+B72B,CAA/B,CAA/B,CAAA;AACA,IAAA,IAAIgwH,OAAO,GAAG/sE,YAAY,CAACijB,SAAS,CAACrvC,GAAV,CAAc,QAAd,CAAD,EAA0B72B,CAA1B,CAA1B,CAAA;IACA,IAAI63C,KAAK,GAAG53C,UAAZ,CAAA;AACA,IAAA,IAAI4xB,IAAI,GAAG,CAAC3xB,QAAQ,GAAGD,UAAZ,IAA0BwzD,WAArC,CAAA;AACA,IAAA,IAAIw8D,OAAO,GAAGp+F,IAAI,GAAGi+F,cAArB,CAAA;IACA,IAAII,cAAc,GAAG1iD,cAAc,CAAC72C,QAAf,CAAwB,WAAxB,CAAqCyX,CAAAA,YAArC,EAArB,CAAA;IACA,IAAIy3B,aAAa,GAAGK,SAAS,CAACvvC,QAAV,CAAmB,WAAnB,CAAgCyX,CAAAA,YAAhC,EAApB,CAAA;AACA,IAAA,IAAI+hF,iBAAiB,GAAG3iD,cAAc,CAAC32C,GAAf,CAAmB,UAAnB,CAAxB,CAAA;AACA,IAAA,IAAIu5F,KAAJ,CAAA;AACA,IAAA,IAAIC,KAAJ,CAAA;;IAEA,KAAK,IAAIjuH,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAIqxD,WAArB,EAAkCrxD,CAAC,EAAnC,EAAuC;AACrCguH,MAAAA,KAAK,GAAGlyH,IAAI,CAACG,GAAL,CAASw5C,KAAT,CAAR,CAAA;MACAw4E,KAAK,GAAGnyH,IAAI,CAACC,GAAL,CAAS05C,KAAT,CAAR,CAFqC;;AAIrC,MAAA,IAAI21B,cAAc,CAAC32C,GAAf,CAAmB,MAAnB,CAAJ,EAAgC;QAC9B,IAAIlF,QAAQ,GAAGw+F,iBAAiB,GAAGA,iBAAiB,GAAGjB,aAAvB,GAAuCA,aAAvE,CAAA;AACA,QAAA,IAAIh8D,SAAS,GAAG,IAAIz9B,MAAJ,CAAiB;AAC/BzrB,UAAAA,KAAK,EAAE;YACL0L,EAAE,EAAE06G,KAAK,IAAIpwH,CAAC,GAAG2xB,QAAR,CAAL,GAAyB7xB,EADxB;YAEL6V,EAAE,EAAE06G,KAAK,IAAIrwH,CAAC,GAAG2xB,QAAR,CAAL,GAAyB5xB,EAFxB;YAGLP,EAAE,EAAE4wH,KAAK,IAAIpwH,CAAC,GAAG+vH,YAAJ,GAAmBp+F,QAAvB,CAAL,GAAwC7xB,EAHvC;YAILL,EAAE,EAAE4wH,KAAK,IAAIrwH,CAAC,GAAG+vH,YAAJ,GAAmBp+F,QAAvB,CAAL,GAAwC5xB,EAAAA;WALf;AAO/BiD,UAAAA,KAAK,EAAEktH,cAPwB;AAQ/Bh7F,UAAAA,MAAM,EAAE,IAAA;AARuB,SAAjB,CAAhB,CAAA;;AAWA,QAAA,IAAIg7F,cAAc,CAAC/sH,MAAf,KAA0B,MAA9B,EAAsC;UACpC+vD,SAAS,CAAC3iC,QAAV,CAAmB;AACjBptB,YAAAA,MAAM,EAAEosH,QAAQ,CAACntH,CAAC,GAAGqxD,WAAL,CAAA;WADlB,CAAA,CAAA;AAGD,SAAA;;QAED1jC,KAAK,CAACO,GAAN,CAAU4iC,SAAV,CAAA,CAAA;AACD,OAxBoC;;;AA2BrC,MAAA,IAAIhL,UAAU,CAACrxB,GAAX,CAAe,MAAf,CAAJ,EAA4B;QAC1B,IAAIlF,QAAQ,GAAGu2B,UAAU,CAACrxB,GAAX,CAAe,UAAf,IAA6Bs5F,iBAA5C,CAAA;QACA,IAAI5+F,KAAK,GAAGk9F,WAAW,CAACttH,OAAK,CAACiB,CAAC,GAAGqxD,WAAJ,IAAmBo8D,MAAM,GAAGD,MAA5B,CAAA,GAAsCA,MAAvC,CAAN,EAAsD1nE,UAAU,CAACrxB,GAAX,CAAe,WAAf,CAAtD,CAAvB,CAAA;AACA,QAAA,IAAIy5F,SAAS,GAAGf,QAAQ,CAACntH,CAAC,GAAGqxD,WAAL,CAAxB,CAAA;AACA1jC,QAAAA,KAAK,CAACO,GAAN,CAAU,IAAImF,MAAJ,CAAiB;AACzBzyB,UAAAA,KAAK,EAAEghE,eAAe,CAAC9b,UAAD,EAAa;AACjCtiD,YAAAA,IAAI,EAAE2rB,KAD2B;YAEjCpyB,CAAC,EAAEixH,KAAK,IAAIpwH,CAAC,GAAG+vH,YAAJ,GAAmBp+F,QAAvB,CAAL,GAAwC7xB,EAFV;YAGjCV,CAAC,EAAEixH,KAAK,IAAIrwH,CAAC,GAAG+vH,YAAJ,GAAmBp+F,QAAvB,CAAL,GAAwC5xB,EAHV;AAIjCisC,YAAAA,aAAa,EAAEqkF,KAAK,GAAG,CAAC,GAAT,GAAe,KAAf,GAAuBA,KAAK,GAAG,GAAR,GAAc,QAAd,GAAyB,QAJ9B;AAKjCtkF,YAAAA,KAAK,EAAEqkF,KAAK,GAAG,CAAC,GAAT,GAAe,MAAf,GAAwBA,KAAK,GAAG,GAAR,GAAc,OAAd,GAAwB,QAAA;AALtB,WAAb,EAMnB;AACDj4F,YAAAA,YAAY,EAAEm4F,SAAAA;AADb,WANmB,CADG;AAUzBp7F,UAAAA,MAAM,EAAE,IAAA;AAViB,SAAjB,CAAV,CAAA,CAAA;AAYD,OA3CoC;;;MA8CrC,IAAIgxC,SAAS,CAACrvC,GAAV,CAAc,MAAd,CAAyBz0B,IAAAA,CAAC,KAAKqxD,WAAnC,EAAgD;AAC9C,QAAA,IAAI9hC,QAAQ,GAAGu0C,SAAS,CAACrvC,GAAV,CAAc,UAAd,CAAf,CAAA;AACAlF,QAAAA,QAAQ,GAAGA,QAAQ,GAAGA,QAAQ,GAAGu9F,aAAd,GAA8BA,aAAjD,CAAA;;QAEA,KAAK,IAAI5nG,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAIwoG,cAArB,EAAqCxoG,CAAC,EAAtC,EAA0C;AACxC8oG,UAAAA,KAAK,GAAGlyH,IAAI,CAACG,GAAL,CAASw5C,KAAT,CAAR,CAAA;AACAw4E,UAAAA,KAAK,GAAGnyH,IAAI,CAACC,GAAL,CAAS05C,KAAT,CAAR,CAAA;AACA,UAAA,IAAI04E,QAAQ,GAAG,IAAI96F,MAAJ,CAAiB;AAC9BzrB,YAAAA,KAAK,EAAE;cACL0L,EAAE,EAAE06G,KAAK,IAAIpwH,CAAC,GAAG2xB,QAAR,CAAL,GAAyB7xB,EADxB;cAEL6V,EAAE,EAAE06G,KAAK,IAAIrwH,CAAC,GAAG2xB,QAAR,CAAL,GAAyB5xB,EAFxB;cAGLP,EAAE,EAAE4wH,KAAK,IAAIpwH,CAAC,GAAGgwH,OAAJ,GAAcr+F,QAAlB,CAAL,GAAmC7xB,EAHlC;cAILL,EAAE,EAAE4wH,KAAK,IAAIrwH,CAAC,GAAGgwH,OAAJ,GAAcr+F,QAAlB,CAAL,GAAmC5xB,EAAAA;aALX;AAO9Bm1B,YAAAA,MAAM,EAAE,IAPsB;AAQ9BlyB,YAAAA,KAAK,EAAE6iE,aAAAA;AARuB,WAAjB,CAAf,CAAA;;AAWA,UAAA,IAAIA,aAAa,CAAC1iE,MAAd,KAAyB,MAA7B,EAAqC;YACnCotH,QAAQ,CAAChgG,QAAT,CAAkB;cAChBptB,MAAM,EAAEosH,QAAQ,CAAC,CAACntH,CAAC,GAAGklB,CAAC,GAAGwoG,cAAT,IAA2Br8D,WAA5B,CAAA;aADlB,CAAA,CAAA;AAGD,WAAA;;UAED1jC,KAAK,CAACO,GAAN,CAAUigG,QAAV,CAAA,CAAA;AACA14E,UAAAA,KAAK,IAAIo4E,OAAT,CAAA;AACD,SAAA;;AAEDp4E,QAAAA,KAAK,IAAIo4E,OAAT,CAAA;AACD,OA7BD,MA6BO;AACLp4E,QAAAA,KAAK,IAAIhmB,IAAT,CAAA;AACD,OAAA;AACF,KAAA;GArGH,CAAA;;EAwGA88F,SAAS,CAACjwH,SAAV,CAAoBixH,cAApB,GAAqC,UAAUv6F,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqCs0G,QAArC,EAA+CV,OAA/C,EAAwD5uH,UAAxD,EAAoEC,QAApE,EAA8EO,SAA9E,EAAyFyuH,aAAzF,EAAwG;IAC3I,IAAIn/F,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACA,IAAIkK,OAAO,GAAG,IAAA,CAAKC,KAAnB,CAAA;IACA,IAAIs2F,eAAe,GAAG,IAAA,CAAKC,YAA3B,CAAA;IACA,IAAIC,YAAY,GAAG,EAAnB,CAAA;IACA,IAAIC,WAAW,GAAGv7F,WAAW,CAACyB,GAAZ,CAAgB,CAAC,SAAD,EAAY,MAAZ,CAAhB,CAAlB,CAAA;AACA,IAAA,IAAI+5F,aAAa,GAAGx7F,WAAW,CAACuB,QAAZ,CAAqB,UAArB,CAApB,CAAA;AACA,IAAA,IAAIk6F,YAAY,GAAGD,aAAa,CAAC/5F,GAAd,CAAkB,MAAlB,CAAnB,CAAA;AACA,IAAA,IAAIjE,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAIkM,QAAQ,GAAG/J,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAf,CAAA;IACA,IAAIgzF,MAAM,GAAG,CAACx6F,WAAW,CAACyB,GAAZ,CAAgB,KAAhB,CAAd,CAAA;IACA,IAAIg5F,MAAM,GAAG,CAACz6F,WAAW,CAACyB,GAAZ,CAAgB,KAAhB,CAAd,CAAA;AACA,IAAA,IAAIi6F,WAAW,GAAG,CAAClB,MAAD,EAASC,MAAT,CAAlB,CAAA;AACA,IAAA,IAAIkB,WAAW,GAAG,CAAC9wH,UAAD,EAAaC,QAAb,CAAlB,CAAA;;AAEA,IAAA,SAAS8wH,aAAT,CAAuB5iG,GAAvB,EAA4BypB,KAA5B,EAAmC;AACjC,MAAA,IAAIrhB,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;AACA,MAAA,IAAI6iG,YAAY,GAAGz6F,SAAS,CAACG,QAAV,CAAmB,SAAnB,CAAnB,CAAA;AACA,MAAA,IAAIu6F,YAAY,GAAGjuE,YAAY,CAACguE,YAAY,CAACp6F,GAAb,CAAiB,OAAjB,CAAD,EAA4Bg4F,OAAO,CAAC7uH,CAApC,CAA/B,CAAA;AACA,MAAA,IAAImxH,aAAa,GAAGluE,YAAY,CAACguE,YAAY,CAACp6F,GAAb,CAAiB,QAAjB,CAAD,EAA6Bg4F,OAAO,CAAC7uH,CAArC,CAAhC,CAAA;MACA,IAAIoxH,UAAU,GAAGh8F,WAAW,CAACyB,GAAZ,CAAgB,CAAC,SAAD,EAAY,MAAZ,CAAhB,CAAjB,CAAA;AACA,MAAA,IAAIw6F,aAAa,GAAGJ,YAAY,CAACp6F,GAAb,CAAiB,cAAjB,CAApB,CAAA;AACA,MAAA,IAAIy6F,cAAc,GAAGruE,YAAY,CAACouE,aAAa,CAAC,CAAD,CAAd,EAAmBxC,OAAO,CAAC7uH,CAA3B,CAAjC,CAAA;AACA,MAAA,IAAIuxH,cAAc,GAAGtuE,YAAY,CAACouE,aAAa,CAAC,CAAD,CAAd,EAAmBxC,OAAO,CAAC7uH,CAA3B,CAAjC,CAAA;AACA,MAAA,IAAIwxH,iBAAiB,GAAGP,YAAY,CAACp6F,GAAb,CAAiB,YAAjB,CAAxB,CAAA;MACA,IAAI46F,OAAJ,CAViC;;AAYjC,MAAA,IAAIL,UAAJ,EAAgB;QACdK,OAAO,GAAGvhG,cAAY,CAACkhG,UAAD,EAAaE,cAAc,GAAGJ,YAAY,GAAG,CAA7C,EAAgDK,cAAc,GAAGJ,aAAjE,EAAgFD,YAAhF,EAA8FC,aAA9F,EAA6G,IAA7G,EAAmHK,iBAAnH,CAAtB,CAAA;AACD,OAFD,MAEO;QACLC,OAAO,GAAG,IAAIlD,WAAJ,CAAgB;AACxBvkH,UAAAA,KAAK,EAAE;AACL6tC,YAAAA,KAAK,EAAE,CAAC35C,IAAI,CAACI,EAAN,GAAW,CADb;AAEL6J,YAAAA,KAAK,EAAE+oH,YAFF;AAGLlxH,YAAAA,CAAC,EAAEmxH,aAHE;AAILhyH,YAAAA,CAAC,EAAEmyH,cAJE;AAKLlyH,YAAAA,CAAC,EAAEmyH,cAAAA;AALE,WAAA;AADiB,SAAhB,CAAV,CAAA;AASD,OAAA;;MAEDE,OAAO,CAACvgG,QAAR,GAAmB,EAAE2mB,KAAK,GAAG35C,IAAI,CAACI,EAAL,GAAU,CAApB,CAAnB,CAAA;AACAmzH,MAAAA,OAAO,CAACtyH,CAAR,GAAY0vH,OAAO,CAAC/uH,EAApB,CAAA;AACA2xH,MAAAA,OAAO,CAACryH,CAAR,GAAYyvH,OAAO,CAAC9uH,EAApB,CAAA;AACA,MAAA,OAAO0xH,OAAP,CAAA;AACD,KAAA;;AAED,IAAA,SAASC,cAAT,CAAwBtjG,GAAxB,EAA6BluB,QAA7B,EAAuC;AACrC,MAAA,IAAIw1C,QAAQ,GAAGk7E,aAAa,CAAC/5F,GAAd,CAAkB,UAAlB,CAAf,CAAA;MACA,IAAI86F,YAAY,GAAGj8E,QAAQ,GAAGsJ,WAAH,GAAavpB,MAAxC,CAAA;AACA,MAAA,IAAIm8F,SAAS,GAAGhB,aAAa,CAAC/5F,GAAd,CAAkB,SAAlB,CAAhB,CAAA;AACA,MAAA,IAAIg7F,aAAa,GAAGD,SAAS,GAAGhB,aAAa,CAAC/5F,GAAd,CAAkB,OAAlB,CAAH,GAAgCq4F,aAAa,GAAGt8F,IAAI,CAAC0T,KAAL,EAA7E,CAAA;AACA,MAAA,IAAIrB,EAAE,GAAG2sF,SAAS,GAAG/C,OAAO,CAAC7uH,CAAR,GAAY6xH,aAAf,GAA+BhD,OAAO,CAAC7uH,CAAR,GAAY,CAACouB,GAAG,GAAG,CAAP,IAAYyjG,aAAzE,CAAA;AACA,MAAA,IAAI7xH,CAAC,GAAG4xH,SAAS,GAAG/C,OAAO,CAAC7uH,CAAX,GAAe6uH,OAAO,CAAC7uH,CAAR,GAAYouB,GAAG,GAAGyjG,aAAlD,CAAA;AACA,MAAA,IAAIl/E,QAAQ,GAAG,IAAIg/E,YAAJ,CAAiB;AAC9B3nH,QAAAA,KAAK,EAAE;AACL/J,UAAAA,UAAU,EAAEA,UADP;AAELC,UAAAA,QAAQ,EAAEA,QAFL;UAGLJ,EAAE,EAAE+uH,OAAO,CAAC/uH,EAHP;UAILC,EAAE,EAAE8uH,OAAO,CAAC9uH,EAJP;AAKLU,UAAAA,SAAS,EAAEA,SALN;AAMLwkC,UAAAA,EAAE,EAAEA,EANC;AAOLjlC,UAAAA,CAAC,EAAEA,CAAAA;AAPE,SAAA;AADuB,OAAjB,CAAf,CAAA;AAWA4xH,MAAAA,SAAS,KAAKj/E,QAAQ,CAAC7e,EAAT,GAAc+7F,MAAM,GAAGj9F,IAAI,CAACiE,GAAL,CAAS8F,QAAT,EAAmBvO,GAAnB,CAAA,GAA0ByhG,MAAtD,CAAT,CAAA;AACA,MAAA,OAAOl9E,QAAP,CAAA;AACD,KAAA;;IAED,IAAIk+E,YAAY,IAAIF,WAApB,EAAiC;MAC/B/9F,IAAI,CAAC0H,IAAL,CAAUL,OAAV,EAAmB3J,GAAnB,CAAuB,UAAUlC,GAAV,EAAe;QACpC,IAAI9rB,GAAG,GAAGswB,IAAI,CAACiE,GAAL,CAAS8F,QAAT,EAAmBvO,GAAnB,CAAV,CAAA;;AAEA,QAAA,IAAIuiG,WAAJ,EAAiB;UACf,IAAIc,OAAO,GAAGT,aAAa,CAAC5iG,GAAD,EAAMnuB,UAAN,CAA3B,CADe;;AAGfw1B,UAAAA,SAAA,CAAkBg8F,OAAlB,EAA2B;AACzBvgG,YAAAA,QAAQ,EAAE,EAAE,CAAC3uB,KAAK,CAAC,CAACD,GAAF,CAAL,GAAcyuH,WAAW,CAAC,CAAD,CAAzB,GAA+BjtE,WAAS,CAACxhD,GAAD,EAAMwuH,WAAN,EAAmBC,WAAnB,EAAgC,IAAhC,CAAzC,IAAkF7yH,IAAI,CAACI,EAAL,GAAU,CAA9F,CAAA;AADe,WAA3B,EAEG82B,WAFH,CAAA,CAAA;UAGArF,KAAK,CAACO,GAAN,CAAUmhG,OAAV,CAAA,CAAA;AACA7+F,UAAAA,IAAI,CAAC8H,gBAAL,CAAsBtM,GAAtB,EAA2BqjG,OAA3B,CAAA,CAAA;AACD,SAAA;;AAED,QAAA,IAAIZ,YAAJ,EAAkB;AAChB,UAAA,IAAIl+E,QAAQ,GAAG++E,cAAc,CAACtjG,GAAD,EAAMnuB,UAAN,CAA7B,CAAA;AACA,UAAA,IAAI6xH,MAAM,GAAGlB,aAAa,CAAC/5F,GAAd,CAAkB,MAAlB,CAAb,CAAA;AACApB,UAAAA,SAAA,CAAkBkd,QAAlB,EAA4B;AAC1B3oC,YAAAA,KAAK,EAAE;cACL9J,QAAQ,EAAE4jD,WAAS,CAACxhD,GAAD,EAAMwuH,WAAN,EAAmBC,WAAnB,EAAgCe,MAAhC,CAAA;AADd,aAAA;AADmB,WAA5B,EAIG18F,WAJH,CAAA,CAAA;AAKArF,UAAAA,KAAK,CAACO,GAAN,CAAUqiB,QAAV,EARgB;AAShB;;AAEAo/E,UAAAA,eAAe,CAAC38F,WAAW,CAACqZ,WAAb,EAA0B7b,IAAI,CAAC69C,QAA/B,EAAyCriD,GAAzC,EAA8CukB,QAA9C,CAAf,CAAA;AACA+9E,UAAAA,YAAY,CAACtiG,GAAD,CAAZ,GAAoBukB,QAApB,CAAA;AACD,SAAA;AACF,OA3BD,EA2BGhY,MA3BH,CA2BU,UAAUJ,MAAV,EAAkBK,MAAlB,EAA0B;QAClC,IAAIt4B,GAAG,GAAGswB,IAAI,CAACiE,GAAL,CAAS8F,QAAT,EAAmBpC,MAAnB,CAAV,CAAA;;AAEA,QAAA,IAAIo2F,WAAJ,EAAiB;AACf,UAAA,IAAIqB,eAAe,GAAG/3F,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAtB,CAAA;UACA,IAAIq3F,cAAc,GAAGD,eAAe,GAAGA,eAAe,CAAC9gG,QAAnB,GAA8BjxB,UAAlE,CAAA;AACA,UAAA,IAAIwxH,OAAO,GAAGT,aAAa,CAACz2F,MAAD,EAAS03F,cAAT,CAA3B,CAAA;UACAR,OAAO,CAACvgG,QAAR,GAAmB+gG,cAAnB,CAAA;AACAx8F,UAAAA,aAAA,CAAoBg8F,OAApB,EAA6B;AAC3BvgG,YAAAA,QAAQ,EAAE,EAAE,CAAC3uB,KAAK,CAAC,CAACD,GAAF,CAAL,GAAcyuH,WAAW,CAAC,CAAD,CAAzB,GAA+BjtE,WAAS,CAACxhD,GAAD,EAAMwuH,WAAN,EAAmBC,WAAnB,EAAgC,IAAhC,CAAzC,IAAkF7yH,IAAI,CAACI,EAAL,GAAU,CAA9F,CAAA;AADiB,WAA7B,EAEG82B,WAFH,CAAA,CAAA;UAGArF,KAAK,CAACO,GAAN,CAAUmhG,OAAV,CAAA,CAAA;AACA7+F,UAAAA,IAAI,CAAC8H,gBAAL,CAAsBH,MAAtB,EAA8Bk3F,OAA9B,CAAA,CAAA;AACD,SAAA;;AAED,QAAA,IAAIZ,YAAJ,EAAkB;AAChB,UAAA,IAAIqB,gBAAgB,GAAG1B,eAAe,CAAC51F,MAAD,CAAtC,CAAA;UACA,IAAIu3F,gBAAgB,GAAGD,gBAAgB,GAAGA,gBAAgB,CAACloH,KAAjB,CAAuB9J,QAA1B,GAAqCD,UAA5E,CAAA;AACA,UAAA,IAAI0yC,QAAQ,GAAG++E,cAAc,CAACn3F,MAAD,EAAS43F,gBAAT,CAA7B,CAAA;AACA,UAAA,IAAIL,MAAM,GAAGlB,aAAa,CAAC/5F,GAAd,CAAkB,MAAlB,CAAb,CAAA;AACApB,UAAAA,aAAA,CAAoBkd,QAApB,EAA8B;AAC5B3oC,YAAAA,KAAK,EAAE;cACL9J,QAAQ,EAAE4jD,WAAS,CAACxhD,GAAD,EAAMwuH,WAAN,EAAmBC,WAAnB,EAAgCe,MAAhC,CAAA;AADd,aAAA;AADqB,WAA9B,EAIG18F,WAJH,CAAA,CAAA;AAKArF,UAAAA,KAAK,CAACO,GAAN,CAAUqiB,QAAV,EAVgB;AAWhB;;AAEAo/E,UAAAA,eAAe,CAAC38F,WAAW,CAACqZ,WAAb,EAA0B7b,IAAI,CAAC69C,QAA/B,EAAyCl2C,MAAzC,EAAiDoY,QAAjD,CAAf,CAAA;AACA+9E,UAAAA,YAAY,CAACn2F,MAAD,CAAZ,GAAuBoY,QAAvB,CAAA;AACD,SAAA;AACF,OA1DD,EA0DG1X,OA1DH,EAAA,CAAA;AA2DArI,MAAAA,IAAI,CAACxnB,IAAL,CAAU,UAAUgjB,GAAV,EAAe;AACvB,QAAA,IAAIoI,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;AACA,QAAA,IAAIsI,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAApB,CAAA;AACA,QAAA,IAAIV,KAAK,GAAGS,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAZ,CAAA;AACA,QAAA,IAAIX,SAAS,GAAGQ,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAhB,CAAA;AACA,QAAA,IAAIV,gBAAgB,GAAGO,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAvB,CAAA;;AAEA,QAAA,IAAI85F,WAAJ,EAAiB;AACf,UAAA,IAAIc,OAAO,GAAG7+F,IAAI,CAACiI,gBAAL,CAAsBzM,GAAtB,CAAd,CAAA;UACA,IAAI8I,WAAW,GAAGtE,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,OAAxB,CAAlB,CAAA;AACA,UAAA,IAAI+I,WAAW,GAAGD,WAAW,CAACj0B,IAA9B,CAAA;;UAEA,IAAIwuH,OAAO,YAAY3tH,OAAvB,EAAgC;AAC9B,YAAA,IAAIszB,SAAS,GAAGq6F,OAAO,CAACzuH,KAAxB,CAAA;AACAyuH,YAAAA,OAAO,CAACp6F,QAAR,CAAiBptB,MAAM,CAAC;cACtBwI,KAAK,EAAE2kB,SAAS,CAAC3kB,KADK;cAEtBtT,CAAC,EAAEi4B,SAAS,CAACj4B,CAFS;cAGtBC,CAAC,EAAEg4B,SAAS,CAACh4B,CAHS;cAItB+I,KAAK,EAAEivB,SAAS,CAACjvB,KAJK;cAKtBC,MAAM,EAAEgvB,SAAS,CAAChvB,MAAAA;aALG,EAMpB8uB,WANoB,CAAvB,CAAA,CAAA;AAOD,WATD,MASO;YACLu6F,OAAO,CAACp6F,QAAR,CAAiBH,WAAjB,CAAA,CAAA;YACAu6F,OAAO,CAAChgH,IAAR,KAAiB,SAAjB,IAA8BggH,OAAO,CAACj6F,QAAR,CAAiBL,WAAjB,CAA9B,CAAA;AACD,WAAA;;AAEDs6F,UAAAA,OAAO,CAAClhG,QAAR,CAAiBiG,SAAS,CAACG,QAAV,CAAmB,CAAC,SAAD,EAAY,WAAZ,CAAnB,CAAA,CAA6CC,YAA7C,EAAjB,CAAA,CAAA;;AAEA,UAAA,IAAI66F,OAAO,CAACzuH,KAAR,CAAcC,IAAd,KAAuB,MAA3B,EAAmC;AACjCwuH,YAAAA,OAAO,CAAClhG,QAAR,CAAiB,MAAjB,EAAyBg/F,QAAQ,CAACzrE,WAAS,CAAClxB,IAAI,CAACiE,GAAL,CAAS8F,QAAT,EAAmBvO,GAAnB,CAAD,EAA0B0iG,WAA1B,EAAuC,CAAC,CAAD,EAAI,CAAJ,CAAvC,EAA+C,IAA/C,CAAV,CAAjC,CAAA,CAAA;AACD,WAAA;;UAEDW,OAAO,CAACzmC,cAAR,GAAyB,CAAzB,CAAA;AACA18C,UAAAA,wBAAwB,CAACmjF,OAAD,EAAUj7F,SAAV,CAAxB,CAAA;UACAkC,mBAAmB,CAAC+4F,OAAD,EAAUx7F,KAAV,EAAiBC,SAAjB,EAA4BC,gBAA5B,CAAnB,CAAA;AACD,SAAA;;AAED,QAAA,IAAI06F,YAAJ,EAAkB;AAChB,UAAA,IAAIl+E,QAAQ,GAAG+9E,YAAY,CAACtiG,GAAD,CAA3B,CAAA;UACAukB,QAAQ,CAACtb,QAAT,CAAkBzE,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,OAAxB,CAAlB,CAAA,CAAA;AACAukB,UAAAA,QAAQ,CAACpiB,QAAT,CAAkBiG,SAAS,CAACG,QAAV,CAAmB,CAAC,UAAD,EAAa,WAAb,CAAnB,CAAA,CAA8CC,YAA9C,EAAlB,CAAA,CAAA;UACA+b,QAAQ,CAACq4C,cAAT,GAA0B,CAA1B,CAAA;AACA18C,UAAAA,wBAAwB,CAACqE,QAAD,EAAWnc,SAAX,CAAxB,CAAA;UACAkC,mBAAmB,CAACia,QAAD,EAAW1c,KAAX,EAAkBC,SAAlB,EAA6BC,gBAA7B,CAAnB,CAAA;AACD,SAAA;OA5CH,CAAA,CAAA;MA8CA,IAAKs6F,CAAAA,YAAL,GAAoBC,YAApB,CAAA;AACD,KAAA;GAhLH,CAAA;;EAmLA/B,SAAS,CAACjwH,SAAV,CAAoBgxH,aAApB,GAAoC,UAAUt6F,WAAV,EAAuBy5F,OAAvB,EAAgC;AAClE,IAAA,IAAIuD,WAAW,GAAGh9F,WAAW,CAACuB,QAAZ,CAAqB,QAArB,CAAlB,CAAA;AACA,IAAA,IAAI07F,UAAU,GAAGD,WAAW,CAACv7F,GAAZ,CAAgB,MAAhB,CAAjB,CAAA;;AAEA,IAAA,IAAIw7F,UAAJ,EAAgB;AACd,MAAA,IAAIC,UAAU,GAAGF,WAAW,CAACv7F,GAAZ,CAAgB,MAAhB,CAAjB,CAAA;AACA,MAAA,IAAI07F,UAAU,GAAGH,WAAW,CAACv7F,GAAZ,CAAgB,MAAhB,CAAjB,CAAA;AACA,MAAA,IAAI27F,YAAY,GAAGJ,WAAW,CAACv7F,GAAZ,CAAgB,cAAhB,CAAnB,CAAA;AACA,MAAA,IAAI47F,gBAAgB,GAAGL,WAAW,CAACv7F,GAAZ,CAAgB,YAAhB,CAAvB,CAAA;MACA,IAAIizB,MAAM,GAAG55B,cAAY,CAACqiG,UAAD,EAAa1D,OAAO,CAAC/uH,EAAR,GAAawyH,UAAU,GAAG,CAA1B,GAA8BrvE,YAAY,CAACuvE,YAAY,CAAC,CAAD,CAAb,EAAkB3D,OAAO,CAAC7uH,CAA1B,CAAvD,EAAqF6uH,OAAO,CAAC9uH,EAAR,GAAauyH,UAAU,GAAG,CAA1B,GAA8BrvE,YAAY,CAACuvE,YAAY,CAAC,CAAD,CAAb,EAAkB3D,OAAO,CAAC7uH,CAA1B,CAA/H,EAA6JsyH,UAA7J,EAAyKA,UAAzK,EAAqL,IAArL,EAA2LG,gBAA3L,CAAzB,CAAA;MACA3oE,MAAM,CAACh2B,EAAP,GAAYs+F,WAAW,CAACv7F,GAAZ,CAAgB,WAAhB,CAAA,GAA+B,CAA/B,GAAmC,CAA/C,CAAA;MACAizB,MAAM,CAACv5B,QAAP,CAAgB6hG,WAAW,CAACz7F,QAAZ,CAAqB,WAArB,CAAkCC,CAAAA,YAAlC,EAAhB,CAAA,CAAA;AACA,MAAA,IAAA,CAAK7G,KAAL,CAAWO,GAAX,CAAew5B,MAAf,CAAA,CAAA;AACD,KAAA;GAbH,CAAA;;AAgBA6kE,EAAAA,SAAS,CAACjwH,SAAV,CAAoB+wH,qBAApB,GAA4C,UAAUr6F,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqCs0G,QAArC,EAA+CV,OAA/C,EAAwD;IAClG,IAAI/rG,KAAK,GAAG,IAAZ,CAAA;;AAEA,IAAA,IAAI8P,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAIkM,QAAQ,GAAG/J,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAf,CAAA;IACA,IAAIgzF,MAAM,GAAG,CAACx6F,WAAW,CAACyB,GAAZ,CAAgB,KAAhB,CAAd,CAAA;IACA,IAAIg5F,MAAM,GAAG,CAACz6F,WAAW,CAACyB,GAAZ,CAAgB,KAAhB,CAAd,CAAA;AACA,IAAA,IAAI67F,YAAY,GAAG,IAAIj9F,OAAJ,EAAnB,CAAA;IACA,IAAIk9F,WAAW,GAAG,EAAlB,CAAA;IACA,IAAIC,YAAY,GAAG,EAAnB,CAAA;AACA,IAAA,IAAIvuF,YAAY,GAAGjP,WAAW,CAACgkB,kBAAZ,EAAnB,CAAA;IACA,IAAIy5E,gBAAgB,GAAGz9F,WAAW,CAACyB,GAAZ,CAAgB,CAAC,SAAD,EAAY,WAAZ,CAAhB,CAAvB,CAAA;IACAjE,IAAI,CAAC0H,IAAL,CAAU,IAAKJ,CAAAA,KAAf,EAAsB5J,GAAtB,CAA0B,UAAUlC,GAAV,EAAe;MACvCukG,WAAW,CAACvkG,GAAD,CAAX,GAAmB,IAAIqH,MAAJ,CAAiB;AAClCP,QAAAA,MAAM,EAAE,IAAA;AAD0B,OAAjB,CAAnB,CAAA;MAGA09F,YAAY,CAACxkG,GAAD,CAAZ,GAAoB,IAAIqH,MAAJ,CAAiB;AACnCP,QAAAA,MAAM,EAAE,IAAA;AAD2B,OAAjB,CAApB,CAAA;AAGD,KAPD,EAOGyF,MAPH,CAOU,UAAUvM,GAAV,EAAewM,MAAf,EAAuB;MAC/B+3F,WAAW,CAACvkG,GAAD,CAAX,GAAmBtL,KAAK,CAACgwG,SAAN,CAAgBl4F,MAAhB,CAAnB,CAAA;MACAg4F,YAAY,CAACxkG,GAAD,CAAZ,GAAoBtL,KAAK,CAACiwG,UAAN,CAAiBn4F,MAAjB,CAApB,CAAA;AACD,KAVD,EAUGK,OAVH,EAAA,CAAA;AAWArI,IAAAA,IAAI,CAACxnB,IAAL,CAAU,UAAUgjB,GAAV,EAAe;AACvB,MAAA,IAAIoI,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;MACA,IAAIwP,KAAK,GAAGhL,IAAI,CAACiE,GAAL,CAAS8F,QAAT,EAAmBvO,GAAnB,CAAZ,CAAA;AACA,MAAA,IAAIuhD,SAAS,GAAG,IAAIl6C,OAAJ,EAAhB,CAAA;MACA,IAAI66F,SAAS,GAAGf,QAAQ,CAACzrE,WAAS,CAAClmB,KAAD,EAAQ,CAACgyF,MAAD,EAASC,MAAT,CAAR,EAA0B,CAAC,CAAD,EAAI,CAAJ,CAA1B,EAAkC,IAAlC,CAAV,CAAxB,CAAA;AACA,MAAA,IAAImD,cAAc,GAAGx8F,SAAS,CAACG,QAAV,CAAmB,OAAnB,CAArB,CAAA;;AAEA,MAAA,IAAIq8F,cAAc,CAACn8F,GAAf,CAAmB,MAAnB,CAAJ,EAAgC;AAC9B,QAAA,IAAIo8F,iBAAiB,GAAGD,cAAc,CAACn8F,GAAf,CAAmB,cAAnB,CAAxB,CAAA;AACA,QAAA,IAAIq8F,MAAM,GAAGrE,OAAO,CAAC/uH,EAAR,GAAamjD,YAAY,CAACgwE,iBAAiB,CAAC,CAAD,CAAlB,EAAuBpE,OAAO,CAAC7uH,CAA/B,CAAtC,CAAA;AACA,QAAA,IAAImzH,MAAM,GAAGtE,OAAO,CAAC9uH,EAAR,GAAakjD,YAAY,CAACgwE,iBAAiB,CAAC,CAAD,CAAlB,EAAuBpE,OAAO,CAAC7uH,CAA/B,CAAtC,CAAA;AACA,QAAA,IAAIozH,OAAO,GAAGT,WAAW,CAACvkG,GAAD,CAAzB,CAAA;QACAglG,OAAO,CAACv/F,IAAR,CAAa;AACXC,UAAAA,EAAE,EAAE++F,gBAAgB,GAAG,CAAH,GAAO,CADhB;AAEX7vH,UAAAA,KAAK,EAAEghE,eAAe,CAACgvD,cAAD,EAAiB;AACrC7zH,YAAAA,CAAC,EAAE+zH,MADkC;AAErC9zH,YAAAA,CAAC,EAAE+zH,MAFkC;AAGrCvtH,YAAAA,IAAI,EAAEgtB,IAAI,CAACyF,OAAL,CAAajK,GAAb,CAH+B;AAIrC2d,YAAAA,KAAK,EAAE,QAJ8B;AAKrCC,YAAAA,aAAa,EAAE,QAAA;AALsB,WAAjB,EAMnB;AACD7T,YAAAA,YAAY,EAAEm4F,SAAAA;WAPM,CAAA;SAFxB,CAAA,CAAA;QAYA3gD,SAAS,CAACr/C,GAAV,CAAc8iG,OAAd,CAAA,CAAA;AACD,OAAA;;AAED,MAAA,IAAIC,eAAe,GAAG78F,SAAS,CAACG,QAAV,CAAmB,QAAnB,CAAtB,CAAA;;AAEA,MAAA,IAAI08F,eAAe,CAACx8F,GAAhB,CAAoB,MAApB,CAAJ,EAAiC;AAC/B,QAAA,IAAIy8F,kBAAkB,GAAGD,eAAe,CAACx8F,GAAhB,CAAoB,cAApB,CAAzB,CAAA;AACA,QAAA,IAAI08F,OAAO,GAAG1E,OAAO,CAAC/uH,EAAR,GAAamjD,YAAY,CAACqwE,kBAAkB,CAAC,CAAD,CAAnB,EAAwBzE,OAAO,CAAC7uH,CAAhC,CAAvC,CAAA;AACA,QAAA,IAAIwzH,OAAO,GAAG3E,OAAO,CAAC9uH,EAAR,GAAakjD,YAAY,CAACqwE,kBAAkB,CAAC,CAAD,CAAnB,EAAwBzE,OAAO,CAAC7uH,CAAhC,CAAvC,CAAA;AACA,QAAA,IAAImI,KAAK,GAAG86C,YAAY,CAACowE,eAAe,CAACx8F,GAAhB,CAAoB,OAApB,CAAD,EAA+Bg4F,OAAO,CAAC7uH,CAAvC,CAAxB,CAAA;AACA,QAAA,IAAIoI,MAAM,GAAG66C,YAAY,CAACowE,eAAe,CAACx8F,GAAhB,CAAoB,QAApB,CAAD,EAAgCg4F,OAAO,CAAC7uH,CAAxC,CAAzB,CAAA;QACA,IAAIyzH,WAAW,GAAGr+F,WAAW,CAACyB,GAAZ,CAAgB,CAAC,UAAD,EAAa,MAAb,CAAhB,IAAwCjE,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,OAAxB,CAAA,CAAiCnrB,IAAzE,GAAgFqtH,SAAlG,CAAA;AACA,QAAA,IAAI8C,OAAO,GAAGR,YAAY,CAACxkG,GAAD,CAA1B,CAAA;AACA,QAAA,IAAIslG,WAAW,GAAGL,eAAe,CAACx8F,GAAhB,CAAoB,WAApB,CAAlB,CAAA;QACAu8F,OAAO,CAACv/F,IAAR,CAAa;AACXC,UAAAA,EAAE,EAAE++F,gBAAgB,GAAG,CAAH,GAAO,CADhB;AAEX7vH,UAAAA,KAAK,EAAEghE,eAAe,CAACqvD,eAAD,EAAkB;AACtCl0H,YAAAA,CAAC,EAAEo0H,OADmC;AAEtCn0H,YAAAA,CAAC,EAAEo0H,OAFmC;AAGtC5tH,YAAAA,IAAI,EAAE6oH,WAAW,CAAC7wF,KAAD,EAAQ81F,WAAR,CAHqB;YAItCvrH,KAAK,EAAE5F,KAAK,CAAC4F,KAAD,CAAL,GAAe,IAAf,GAAsBA,KAJS;YAKtCC,MAAM,EAAE7F,KAAK,CAAC6F,MAAD,CAAL,GAAgB,IAAhB,GAAuBA,MALO;AAMtC2jC,YAAAA,KAAK,EAAE,QAN+B;AAOtCC,YAAAA,aAAa,EAAE,QAAA;AAPuB,WAAlB,EAQnB;AACD7T,YAAAA,YAAY,EAAEs7F,WAAAA;WATM,CAAA;SAFxB,CAAA,CAAA;QAcA/yE,sBAAsB,CAAC0yE,OAAD,EAAU;AAC9BnnF,UAAAA,MAAM,EAAEonF,eAAAA;AADsB,SAAV,EAEnBz1F,KAFmB,EAEZ,UAAUA,KAAV,EAAiB;AACzB,UAAA,OAAO6wF,WAAW,CAAC7wF,KAAD,EAAQ81F,WAAR,CAAlB,CAAA;AACD,SAJqB,CAAtB,CAAA;QAKArvF,YAAY,IAAIsvF,iBAAiB,CAACP,OAAD,EAAUhlG,GAAV,EAAewE,IAAf,EAAqBwC,WAArB,EAAkC;AACjEs1B,UAAAA,iBAAiB,EAAE,SAAA,iBAAA,CAAU1yB,cAAV,EAA0B+G,MAA1B,EAAkC0xC,QAAlC,EAA4CN,aAA5C,EAA2DyjD,GAA3D,EAAgEC,YAAhE,EAA8E;YAC/F,OAAOpF,WAAW,CAACoF,YAAY,GAAGA,YAAY,CAAC1gG,iBAAhB,GAAoCyK,KAAjD,EAAwD81F,WAAxD,CAAlB,CAAA;AACD,WAAA;AAHgE,SAAlC,CAAjC,CAAA;QAKA/jD,SAAS,CAACr/C,GAAV,CAAc8iG,OAAd,CAAA,CAAA;AACD,OAAA;;MAEDV,YAAY,CAACpiG,GAAb,CAAiBq/C,SAAjB,CAAA,CAAA;KAjEF,CAAA,CAAA;AAmEA,IAAA,IAAA,CAAK5/C,KAAL,CAAWO,GAAX,CAAeoiG,YAAf,CAAA,CAAA;IACA,IAAKI,CAAAA,SAAL,GAAiBH,WAAjB,CAAA;IACA,IAAKI,CAAAA,UAAL,GAAkBH,YAAlB,CAAA;GA5FF,CAAA;;EA+FAjE,SAAS,CAACl9G,IAAV,GAAiB,OAAjB,CAAA;AACA,EAAA,OAAOk9G,SAAP,CAAA;AACD,CAzeD,CAyeE/+E,SAzeF,CAFA;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,IAAIkkF,gBAAgB;AACpB;AACA,UAAUlxG,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACixG,gBAAD,EAAmBlxG,MAAnB,CAAT,CAAA;;AAEA,EAAA,SAASkxG,gBAAT,GAA4B;AAC1B,IAAA,IAAIhxG,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaqiH,gBAAgB,CAACriH,IAA9B,CAAA;IACAqR,KAAK,CAACixG,qBAAN,GAA8B,WAA9B,CAAA;AACA,IAAA,OAAOjxG,KAAP,CAAA;AACD,GAAA;;EAEDgxG,gBAAgB,CAACp1H,SAAjB,CAA2B4wB,cAA3B,GAA4C,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;AACrE,IAAA,OAAO8e,sBAAsB,CAAC,IAAD,EAAO,CAAC,OAAD,CAAP,CAA7B,CAAA;GADF,CAAA;;EAIAuoE,gBAAgB,CAACriH,IAAjB,GAAwB,cAAxB,CAAA;EACAqiH,gBAAgB,CAACziG,aAAjB,GAAiC;AAC/B;AACAzG,IAAAA,CAAC,EAAE,CAF4B;AAG/B4iC,IAAAA,OAAO,EAAE,MAHsB;AAI/B;AACAzK,IAAAA,MAAM,EAAE,CAAC,KAAD,EAAQ,KAAR,CALuB;AAM/BzxB,IAAAA,eAAe,EAAE,IANc;AAO/B0xB,IAAAA,MAAM,EAAE,KAPuB;AAQ/B/iD,IAAAA,UAAU,EAAE,GARmB;IAS/BC,QAAQ,EAAE,CAAC,EAToB;AAU/BO,IAAAA,SAAS,EAAE,IAVoB;AAW/B;AACAugC,IAAAA,GAAG,EAAE,CAZ0B;AAa/B;AACApgB,IAAAA,GAAG,EAAE,GAd0B;AAe/B;AACA6yC,IAAAA,WAAW,EAAE,EAhBkB;AAiB/B;AACAd,IAAAA,QAAQ,EAAE;AACR;AACAlhC,MAAAA,IAAI,EAAE,IAFE;AAGRikB,MAAAA,QAAQ,EAAE,KAHF;AAIRrlB,MAAAA,SAAS,EAAE;AACTrsB,QAAAA,KAAK,EAAE,CAAC,CAAC,CAAD,EAAI,SAAJ,CAAD,CADE;AAETmE,QAAAA,KAAK,EAAE,EAAA;AAFE,OAAA;KAtBkB;AA2B/B;AACAwqC,IAAAA,QAAQ,EAAE;AACR;AACAlhB,MAAAA,IAAI,EAAE,KAFE;AAGRuiG,MAAAA,OAAO,EAAE,IAHD;AAIR7rH,MAAAA,KAAK,EAAE,EAJC;AAKRutC,MAAAA,QAAQ,EAAE,KALF;AAMRvoB,MAAAA,IAAI,EAAE,IAAA;KAlCuB;AAoC/B;AACA+lC,IAAAA,SAAS,EAAE;AACT;AACAzhC,MAAAA,IAAI,EAAE,IAFG;AAGT;AACA/vB,MAAAA,MAAM,EAAE,EAJC;AAKTiwB,MAAAA,QAAQ,EAAE,EALD;AAMT;AACAtB,MAAAA,SAAS,EAAE;AACTrsB,QAAAA,KAAK,EAAE,SADE;AAETmE,QAAAA,KAAK,EAAE,CAFE;AAGTsJ,QAAAA,IAAI,EAAE,OAAA;AAHG,OAAA;KA5CkB;AAkD/B;AACAqhD,IAAAA,QAAQ,EAAE;AACR;AACArhC,MAAAA,IAAI,EAAE,IAFE;AAGR;AACAgiC,MAAAA,WAAW,EAAE,CAJL;AAKR;AACA/xD,MAAAA,MAAM,EAAE,CANA;AAORiwB,MAAAA,QAAQ,EAAE,EAPF;AAQR;AACAtB,MAAAA,SAAS,EAAE;AACTrsB,QAAAA,KAAK,EAAE,SADE;AAETmE,QAAAA,KAAK,EAAE,CAFE;AAGTsJ,QAAAA,IAAI,EAAE,OAAA;AAHG,OAAA;KA5DkB;AAkE/BshD,IAAAA,SAAS,EAAE;AACTthC,MAAAA,IAAI,EAAE,IADG;AAETE,MAAAA,QAAQ,EAAE,EAFD;AAGT;AACA3tB,MAAAA,KAAK,EAAE,SAJE;AAKTwP,MAAAA,QAAQ,EAAE,EAAA;KAvEmB;AAyE/Bi+G,IAAAA,OAAO,EAAE;AACP5hC,MAAAA,IAAI,EAAE,IADC;AAEP2iC,MAAAA,YAAY,EAAE,CAAC,CAAD,EAAI,CAAJ,CAFP;AAGP/gG,MAAAA,IAAI,EAAE,IAHC;AAIPwiG,MAAAA,SAAS,EAAE,IAJJ;AAKPvyH,MAAAA,MAAM,EAAE,KALD;AAMPyG,MAAAA,KAAK,EAAE,CANA;AAOPurB,MAAAA,UAAU,EAAE,KAAA;KAhFiB;AAkF/Bo2B,IAAAA,MAAM,EAAE;AACNr4B,MAAAA,IAAI,EAAE,KADA;AAENwiG,MAAAA,SAAS,EAAE,KAFL;AAGNpjG,MAAAA,IAAI,EAAE,CAHA;AAINg/D,MAAAA,IAAI,EAAE,QAJA;AAKN2iC,MAAAA,YAAY,EAAE,CAAC,CAAD,EAAI,CAAJ,CALR;AAMN9+F,MAAAA,UAAU,EAAE,KANN;AAON3C,MAAAA,SAAS,EAAE;AACT/sB,QAAAA,KAAK,EAAE,MADE;AAETsgB,QAAAA,WAAW,EAAE,CAFJ;AAGTuxB,QAAAA,WAAW,EAAE,SAAA;AAHJ,OAAA;KAzFkB;AA+F/Bq+E,IAAAA,KAAK,EAAE;AACLziG,MAAAA,IAAI,EAAE,IADD;AAEL;AACA+gG,MAAAA,YAAY,EAAE,CAAC,CAAD,EAAI,KAAJ,CAHT;AAIL;AACAxuH,MAAAA,KAAK,EAAE,SALF;AAMLwP,MAAAA,QAAQ,EAAE,EANL;AAOLke,MAAAA,cAAc,EAAE,KAAA;KAtGa;AAwG/ByiG,IAAAA,MAAM,EAAE;AACN1iG,MAAAA,IAAI,EAAE,IADA;AAEN7R,MAAAA,eAAe,EAAE,eAFX;AAGN0E,MAAAA,WAAW,EAAE,CAHP;AAINuxB,MAAAA,WAAW,EAAE,MAJP;AAKN1tC,MAAAA,KAAK,EAAE,GALD;AAMNC,MAAAA,MAAM,EAAE,IANF;AAONgc,MAAAA,OAAO,EAAE,CAAC,CAAD,EAAI,EAAJ,CAPH;AAQN;AACAouG,MAAAA,YAAY,EAAE,CAAC,CAAD,EAAI,KAAJ,CATR;AAUN;AACA;AACAxuH,MAAAA,KAAK,EAAE,SAZD;AAaNwP,MAAAA,QAAQ,EAAE,EAbJ;AAcNK,MAAAA,UAAU,EAAE,MAdN;AAeNugH,MAAAA,UAAU,EAAE,EAfN;AAgBN1iG,MAAAA,cAAc,EAAE,KAAA;AAhBV,KAAA;GAxGV,CAAA;AA2HA,EAAA,OAAOoiG,gBAAP,CAAA;AACD,CA5ID,CA4IEphG,WA5IF,CAFA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BO,SAAS5Q,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4B46E,SAA5B,CAAA,CAAA;EACA5sG,SAAS,CAACiyB,mBAAV,CAA8B8/E,gBAA9B,CAAA,CAAA;AACD;;AC/CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA,IAAIO,mBAAiB,GAAG,CAAC,WAAD,EAAc,SAAd,CAAxB,CAAA;AACA;AACA;AACA;;AAEA,IAAIC,WAAW;AACf;AACA,UAAU1xG,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACyxG,WAAD,EAAc1xG,MAAd,CAAT,CAAA;;AAEA,EAAA,SAAS0xG,WAAT,CAAqB1hG,IAArB,EAA2BxE,GAA3B,EAAgC;IAC9B,IAAItL,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,KAAqB,IAAjC,CAAA;;IAEA,IAAI1R,OAAO,GAAGyR,KAAd,CAAA;AACA,IAAA,IAAIklC,SAAS,GAAG,IAAIvyB,UAAJ,EAAhB,CAAA;AACA,IAAA,IAAI7vB,IAAI,GAAG,IAAI6vB,MAAJ,EAAX,CAAA;IACApkB,OAAO,CAACgI,cAAR,CAAuBzT,IAAvB,CAAA,CAAA;;IAEAkd,KAAK,CAAC8nC,gBAAN,CAAuB5C,SAAvB,CAAA,CAAA;;AAEAllC,IAAAA,KAAK,CAAC0Q,UAAN,CAAiBZ,IAAjB,EAAuBxE,GAAvB,EAA4B,IAA5B,CAAA,CAAA;;AAEA,IAAA,OAAOtL,KAAP,CAAA;AACD,GAAA;;EAEDwxG,WAAW,CAAC51H,SAAZ,CAAsB80B,UAAtB,GAAmC,UAAUZ,IAAV,EAAgBxE,GAAhB,EAAqBg8B,WAArB,EAAkC;IACnE,IAAI/4C,OAAO,GAAG,IAAd,CAAA;AACA,IAAA,IAAI+jB,WAAW,GAAGxC,IAAI,CAACyC,SAAvB,CAAA;AACA,IAAA,IAAImB,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;AACA,IAAA,IAAIksB,MAAM,GAAG1nB,IAAI,CAACyH,aAAL,CAAmBjM,GAAnB,CAAb,CAAA;AACA,IAAA,IAAIsI,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAApB,CAAA;AACA,IAAA,IAAI9yB,OAAO,GAAG2yB,SAAS,CAACK,GAAV,CAAcw9F,mBAAd,CAAd,CAAA;AACAxwH,IAAAA,OAAO,GAAGA,OAAO,IAAI,IAAX,GAAkB,CAAlB,GAAsBA,OAAhC,CAAA;;IAEA,IAAI,CAACumD,WAAL,EAAkB;MAChB10B,YAAY,CAACrkB,OAAD,CAAZ,CAAA;AACD,KAXkE;;;IAcnEA,OAAO,CAACgmB,QAAR,CAAiBzE,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,OAAxB,CAAjB,CAAA,CAAA;AACA/c,IAAAA,OAAO,CAACrO,KAAR,CAAcqrC,QAAd,GAAyB,OAAzB,CAAA;;AAEA,IAAA,IAAI+b,WAAJ,EAAiB;MACf/4C,OAAO,CAAC88B,QAAR,CAAiB;QACfz9B,MAAM,EAAE4pC,MAAM,CAAC5pC,MAAAA;OADjB,CAAA,CAAA;AAGAW,MAAAA,OAAO,CAACrO,KAAR,CAAca,OAAd,GAAwB,CAAxB,CAAA;AACA4xB,MAAAA,SAAA,CAAkBpkB,OAAlB,EAA2B;AACzBrO,QAAAA,KAAK,EAAE;AACLa,UAAAA,OAAO,EAAEA,OAAAA;AADJ,SAAA;OADT,EAIGuxB,WAJH,EAIgBhH,GAJhB,CAAA,CAAA;AAKD,KAVD,MAUO;AACLqH,MAAAA,aAAA,CAAoBpkB,OAApB,EAA6B;AAC3BrO,QAAAA,KAAK,EAAE;AACLa,UAAAA,OAAO,EAAEA,OAAAA;SAFgB;AAI3BmG,QAAAA,KAAK,EAAE;UACL0G,MAAM,EAAE4pC,MAAM,CAAC5pC,MAAAA;AADV,SAAA;OAJT,EAOG0kB,WAPH,EAOgBhH,GAPhB,CAAA,CAAA;AAQD,KAAA;;AAEDkgB,IAAAA,wBAAwB,CAACj9B,OAAD,EAAUmlB,SAAV,CAAxB,CAAA;;AAEA,IAAA,IAAA,CAAK+zB,YAAL,CAAkB33B,IAAlB,EAAwBxE,GAAxB,CAAA,CAAA;;IAEAsK,mBAAmB,CAAC,IAAD,EAAOhC,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAP,EAAmCH,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAnC,EAAmEH,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAnE,CAAnB,CAAA;GA1CF,CAAA;;EA6CAy9F,WAAW,CAAC51H,SAAZ,CAAsB6rD,YAAtB,GAAqC,UAAU33B,IAAV,EAAgBxE,GAAhB,EAAqB;IACxD,IAAI/c,OAAO,GAAG,IAAd,CAAA;AACA,IAAA,IAAI22C,SAAS,GAAG,IAAKC,CAAAA,gBAAL,EAAhB,CAAA;AACA,IAAA,IAAIuC,SAAS,GAAGn5C,OAAO,CAACkI,cAAR,EAAhB,CAAA;AACA,IAAA,IAAI6b,WAAW,GAAGxC,IAAI,CAACyC,SAAvB,CAAA;AACA,IAAA,IAAImB,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;AACA,IAAA,IAAIksB,MAAM,GAAG1nB,IAAI,CAACyH,aAAL,CAAmBjM,GAAnB,CAAb,CAAA;AACA,IAAA,IAAIg9B,WAAW,GAAG9Q,MAAM,CAAC/oB,KAAzB,CAAA;IACA,IAAIvuB,KAAK,GAAG4vB,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,OAAxB,CAAZ,CAAA;AACA,IAAA,IAAI+I,WAAW,GAAGn0B,KAAK,CAACC,IAAxB,CAAA;AACA60B,IAAAA,aAAa;AACb0yB,IAAAA,SADa,EACF1zB,oBAAoB,CAACN,SAAD,CADlB,EAC+B;MAC1CuB,YAAY,EAAEnF,IAAI,CAACyC,SADuB;AAE1C2C,MAAAA,cAAc,EAAE5J,GAF0B;MAG1CgK,cAAc,EAAEp1B,KAAK,CAACa,OAHoB;AAI1Co0B,MAAAA,WAAW,EAAErF,IAAI,CAACyF,OAAL,CAAajK,GAAb,CAAA;AAJ6B,KAD/B,EAMV;AACD6d,MAAAA,MAAM,EAAE;QACNF,KAAK,EAAEqf,WAAW,CAACj4C,SADb;QAEN64B,aAAa,EAAEof,WAAW,CAACpf,aAAAA;AAFrB,OAAA;AADP,KANU,CAAb,CAAA;IAYA36B,OAAO,CAACqmC,aAAR,CAAsB;AACpBivE,MAAAA,KAAK,EAAE,IADa;AAEpBlmE,MAAAA,MAAM,EAAE,CAAC,CAAC2K,WAAW,CAAC3K,MAFF;AAGpB8zE,MAAAA,YAAY,EAAEp9F,WAHM;AAIpB;AACAq9F,MAAAA,WAAW,EAAEr9F,WAAAA;KALf,CAAA,CAAA;AAOA,IAAA,IAAIyuB,UAAU,GAAGwF,WAAW,CAACxF,UAA7B,CAAA;IACAoC,SAAS,CAAC7Z,QAAV,CAAmB;AACjBz9B,MAAAA,MAAM,EAAEk1C,UAAAA;KADV,CAAA,CAAA;IAGAv0C,OAAO,CAACw4C,mBAAR,GAA8B;MAC5BC,MAAM,EAAElE,UAAU,GAAG,IAAInwB,KAAJ,CAAkBmwB,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAlB,EAAoCA,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAApC,CAAH,GAA2D,IAAA;AADjD,KAA9B,CAjCwD;AAoCxD;;AAEAnwB,IAAAA,aAAA,CAAoB+0B,SAApB,EAA+B;AAC7BxnD,MAAAA,KAAK,EAAE;QACL7D,CAAC,EAAEisD,WAAW,CAACjsD,CADV;QAELC,CAAC,EAAEgsD,WAAW,CAAChsD,CAAAA;AAFV,OAAA;KADT,EAKGg2B,WALH,EAKgBhH,GALhB,CAAA,CAAA;IAMAo8B,SAAS,CAAC32B,IAAV,CAAe;MACb3C,QAAQ,EAAEk6B,WAAW,CAACl6B,QADT;MAEbzmB,OAAO,EAAE2gD,WAAW,CAACjsD,CAFR;MAGbuL,OAAO,EAAE0gD,WAAW,CAAChsD,CAHR;AAIb00B,MAAAA,EAAE,EAAE,EAAA;KAJN,CAAA,CAAA;AAMA+2B,IAAAA,iBAAiB,CAACx5C,OAAD,EAAUy5C,wBAAwB,CAACt0B,SAAD,CAAlC,EAA+C;AAC9D;AACArzB,MAAAA,MAAM,EAAEg0B,WAAAA;AAFsD,KAA/C,CAAjB,CAAA;GAlDF,CAAA;;AAwDA,EAAA,OAAOm9F,WAAP,CAAA;AACD,CAxHD,CAwHE7+F,OAxHF,CAFA,CAAA;;AA4HA,IAAIg/F,UAAU;AACd;AACA,UAAU7xG,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC4xG,UAAD,EAAa7xG,MAAb,CAAT,CAAA;;AAEA,EAAA,SAAS6xG,UAAT,GAAsB;AACpB,IAAA,IAAI3xG,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAagjH,UAAU,CAAChjH,IAAxB,CAAA;IACAqR,KAAK,CAACmoC,qBAAN,GAA8B,IAA9B,CAAA;AACA,IAAA,OAAOnoC,KAAP,CAAA;AACD,GAAA;;EAED2xG,UAAU,CAAC/1H,SAAX,CAAqB8tC,MAArB,GAA8B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AACjE,IAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAIwJ,OAAO,GAAG,IAAA,CAAKC,KAAnB,CAAA;IACA,IAAInK,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACA6C,IAAI,CAAC0H,IAAL,CAAUL,OAAV,EAAmB3J,GAAnB,CAAuB,UAAUlC,GAAV,EAAe;MACpC,IAAIsmG,WAAW,GAAG,IAAIJ,WAAJ,CAAgB1hG,IAAhB,EAAsBxE,GAAtB,CAAlB,CAAA;AACAwE,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBtM,GAAtB,EAA2BsmG,WAA3B,CAAA,CAAA;MACA3kG,KAAK,CAACO,GAAN,CAAUokG,WAAV,CAAA,CAAA;AACD,KAJD,EAIG/5F,MAJH,CAIU,UAAUJ,MAAV,EAAkBK,MAAlB,EAA0B;AAClC,MAAA,IAAI26E,KAAK,GAAGt7E,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAZ,CAAA;AACA26E,MAAAA,KAAK,CAAC/hF,UAAN,CAAiBZ,IAAjB,EAAuB2H,MAAvB,CAAA,CAAA;MACAxK,KAAK,CAACO,GAAN,CAAUilF,KAAV,CAAA,CAAA;AACA3iF,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBH,MAAtB,EAA8Bg7E,KAA9B,CAAA,CAAA;AACD,KATD,CASGz6E,CAAAA,MATH,CASU,UAAU1M,GAAV,EAAe;AACvB,MAAA,IAAImnF,KAAK,GAAGt7E,OAAO,CAACY,gBAAR,CAAyBzM,GAAzB,CAAZ,CAAA;AACAqH,MAAAA,wBAAA,CAAiC8/E,KAAjC,EAAwCngF,WAAxC,EAAqDhH,GAArD,CAAA,CAAA;AACD,KAZD,EAYG6M,OAZH,EAAA,CAAA;IAaA,IAAKf,CAAAA,KAAL,GAAatH,IAAb,CAAA;GAjBF,CAAA;;AAoBA6hG,EAAAA,UAAU,CAAC/1H,SAAX,CAAqBo8B,MAArB,GAA8B,YAAY;IACxC,IAAK/K,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;IACA,IAAKuG,CAAAA,KAAL,GAAa,IAAb,CAAA;GAFF,CAAA;;AAKAu6F,EAAAA,UAAU,CAAC/1H,SAAX,CAAqB4iB,OAArB,GAA+B,YAAY,EAA3C,CAAA;;EAEAmzG,UAAU,CAAChjH,IAAX,GAAkB,QAAlB,CAAA;AACA,EAAA,OAAOgjH,UAAP,CAAA;AACD,CAxCD,CAwCE7kF,SAxCF,CAFA;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiCA,IAAI+kF,iBAAiB;AACrB;AACA,UAAU/xG,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC8xG,iBAAD,EAAoB/xG,MAApB,CAAT,CAAA;;AAEA,EAAA,SAAS+xG,iBAAT,GAA6B;AAC3B,IAAA,IAAI7xG,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAakjH,iBAAiB,CAACljH,IAA/B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAED6xG,EAAAA,iBAAiB,CAACj2H,SAAlB,CAA4BytC,IAA5B,GAAmC,UAAU5c,MAAV,EAAkB;IACnD3M,MAAM,CAAClkB,SAAP,CAAiBytC,IAAjB,CAAsB/c,KAAtB,CAA4B,IAA5B,EAAkC/sB,SAAlC,CAAA,CADmD;AAEnD;;;IAGA,IAAKwqD,CAAAA,oBAAL,GAA4B,IAAIZ,oBAAJ,CAAyB7lB,MAAA,CAAY,IAAK3V,CAAAA,OAAjB,EAA0B,IAA1B,CAAzB,EAA0D2V,MAAA,CAAY,IAAA,CAAK+lB,UAAjB,EAA6B,IAA7B,CAA1D,CAA5B,CALmD;;IAOnD,IAAKW,CAAAA,iBAAL,CAAuBv9B,MAAvB,CAAA,CAAA;GAPF,CAAA;;EAUAolG,iBAAiB,CAACj2H,SAAlB,CAA4B4wB,cAA5B,GAA6C,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;IACtE,OAAO8e,sBAAsB,CAAC,IAAD,EAAO;MAClCE,eAAe,EAAE,CAAC,OAAD,CADiB;AAElCuB,MAAAA,eAAe,EAAE5mB,OAAA,CAAa6mB,4BAAb,EAA2C,IAA3C,CAAA;AAFiB,KAAP,CAA7B,CAAA;GADF,CAAA;;AAOA0nE,EAAAA,iBAAiB,CAACj2H,SAAlB,CAA4BouD,iBAA5B,GAAgD,UAAUv9B,MAAV,EAAkB;AAChE;IACAy9F,eAAe,CAACz9F,MAAD,EAAS,WAAT,EAAsB,CAAC,MAAD,CAAtB,CAAf,CAAA;AACA,IAAA,IAAI+9B,kBAAkB,GAAG/9B,MAAM,CAACy4B,SAAhC,CAAA;IACA,IAAIuF,oBAAoB,GAAGh+B,MAAM,CAACqC,QAAP,CAAgBo2B,SAA3C,CAJgE;;IAMhEsF,kBAAkB,CAAC77B,IAAnB,GAA0B67B,kBAAkB,CAAC77B,IAAnB,IAA2BlC,MAAM,CAACgC,KAAP,CAAaE,IAAlE,CAAA;AACA87B,IAAAA,oBAAoB,CAAC97B,IAArB,GAA4B87B,oBAAoB,CAAC97B,IAArB,IAA6BlC,MAAM,CAACqC,QAAP,CAAgBL,KAAhB,CAAsBE,IAA/E,CAAA;AACD,GARD,CA3BgB;;;AAsChBkjG,EAAAA,iBAAiB,CAACj2H,SAAlB,CAA4BwuD,aAA5B,GAA4C,UAAUr6B,SAAV,EAAqB;AAC/D,IAAA,IAAID,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;;AAEA,IAAA,IAAImiB,MAAM,GAAGhwB,MAAM,CAAClkB,SAAP,CAAiBwuD,aAAjB,CAA+BnqC,IAA/B,CAAoC,IAApC,EAA0C8P,SAA1C,CAAb,CAAA;;AAEA,IAAA,IAAI8J,QAAQ,GAAG/J,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAf,CAAA;IACA,IAAIyW,GAAG,GAAGzgB,IAAI,CAAC0wB,MAAL,CAAY3mB,QAAZ,CAAV,CAN+D;;IAQ/DiW,MAAM,CAAC1rC,OAAP,GAAiB,CAACmsC,GAAD,GAAO,CAAP,GAAW,CAAC,CAACzgB,IAAI,CAACiE,GAAL,CAAS8F,QAAT,EAAmB9J,SAAnB,CAAgCwgB,GAAAA,GAAhC,GAAsC,GAAvC,EAA4CuhF,OAA5C,CAAoD,CAApD,CAA7B,CAAA;AACAhiF,IAAAA,MAAM,CAACya,KAAP,CAAa5qD,IAAb,CAAkB,SAAlB,CAAA,CAAA;AACA,IAAA,OAAOmwC,MAAP,CAAA;GAVF,CAAA;;EAaA+hF,iBAAiB,CAACljH,IAAlB,GAAyB,eAAzB,CAAA;EACAkjH,iBAAiB,CAACtjG,aAAlB,GAAkC;AAChC;AACAzG,IAAAA,CAAC,EAAE,CAF6B;AAGhC0G,IAAAA,eAAe,EAAE,IAHe;AAIhCk8B,IAAAA,OAAO,EAAE,MAJuB;AAKhC/qC,IAAAA,IAAI,EAAE,EAL0B;AAMhCC,IAAAA,GAAG,EAAE,EAN2B;AAOhCkrC,IAAAA,KAAK,EAAE,EAPyB;AAQhCC,IAAAA,MAAM,EAAE,EARwB;AAShC;AACA;AACA;AACA;AACA;AACAgnE,IAAAA,OAAO,EAAE,IAduB;AAehC3tF,IAAAA,OAAO,EAAE,MAfuB;AAgBhChH,IAAAA,IAAI,EAAE,YAhB0B;AAiBhCg6D,IAAAA,MAAM,EAAE,UAjBwB;AAkBhC72B,IAAAA,GAAG,EAAE,CAlB2B;AAmBhCyxD,IAAAA,WAAW,EAAE,QAnBmB;AAoBhCvjG,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,IADD;MAELjP,QAAQ,EAAE,OAFL;;KApByB;AAyBhCwlC,IAAAA,SAAS,EAAE;AACTv2B,MAAAA,IAAI,EAAE,IADG;AAET/vB,MAAAA,MAAM,EAAE,EAFC;AAGT2uB,MAAAA,SAAS,EAAE;AACT;AACAloB,QAAAA,KAAK,EAAE,CAAA;AAFE,OAAA;KA5BmB;AAiChC4oB,IAAAA,SAAS,EAAE;AACT;AACA8kB,MAAAA,WAAW,EAAE,MAFJ;AAGTvxB,MAAAA,WAAW,EAAE,CAAA;KApCiB;AAsChCsN,IAAAA,QAAQ,EAAE;AACRL,MAAAA,KAAK,EAAE;AACLE,QAAAA,IAAI,EAAE,IAAA;AADD,OAAA;KAvCuB;AA2ChCukB,IAAAA,MAAM,EAAE;AACNjlB,MAAAA,SAAS,EAAE;AACT8kB,QAAAA,WAAW,EAAE,SAAA;AADJ,OAAA;AADL,KAAA;GA3CV,CAAA;AAiDA,EAAA,OAAO8+E,iBAAP,CAAA;AACD,CAtGD,CAsGEjiG,WAtGF,CAFA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,SAASiwB,aAAT,CAAqBvtB,WAArB,EAAkCna,GAAlC,EAAuC;EACrC,OAAOq/B,aAAA,CAAqBllB,WAAW,CAACwtB,kBAAZ,EAArB,EAAuD;AAC5Dz6C,IAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADqD;IAE5DhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;AAFoD,GAAvD,CAAP,CAAA;AAID,CAAA;;AAED,SAAS0zG,gBAAT,CAA0BniG,IAA1B,EAAgCsN,IAAhC,EAAsC;AACpC,EAAA,IAAIvD,QAAQ,GAAG/J,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAf,CAAA;EACA,IAAIgjD,QAAQ,GAAGhtD,IAAI,CAAC45B,QAAL,CAAc7vB,QAAd,EAAwB,UAAUr6B,GAAV,EAAe;AACpD,IAAA,OAAOA,GAAP,CAAA;AACD,GAFc,CAAf,CAAA;EAGA,IAAI+uC,OAAO,GAAG,EAAd,CAAA;AACA,EAAA,IAAI2jF,WAAW,GAAG90F,IAAI,KAAK,WAA3B,CAAA;;AAEA,EAAA,KAAK,IAAI99B,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGmnB,IAAI,CAAC0T,KAAL,EAAtB,EAAoClkC,CAAC,GAAGqJ,GAAxC,EAA6CrJ,CAAC,EAA9C,EAAkD;AAChDivC,IAAAA,OAAO,CAACjvC,CAAD,CAAP,GAAaA,CAAb,CAAA;AACD,GAVmC;;;AAapC,EAAA,IAAIqN,UAAU,CAACywB,IAAD,CAAd,EAAsB;IACpBmR,OAAO,CAACnR,IAAR,CAAaA,IAAb,CAAA,CAAA;AACD,GAFD,MAEO,IAAIA,IAAI,KAAK,MAAb,EAAqB;AAC1BmR,IAAAA,OAAO,CAACnR,IAAR,CAAa,UAAUt+B,CAAV,EAAaC,CAAb,EAAgB;MAC3B,OAAOmzH,WAAW,GAAGp1C,QAAQ,CAACh+E,CAAD,CAAR,GAAcg+E,QAAQ,CAAC/9E,CAAD,CAAzB,GAA+B+9E,QAAQ,CAAC/9E,CAAD,CAAR,GAAc+9E,QAAQ,CAACh+E,CAAD,CAAvE,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;;AAED,EAAA,OAAOyvC,OAAP,CAAA;AACD,CAAA;;AAED,SAAS+Z,WAAT,CAAqBx4B,IAArB,EAA2B;AACzB,EAAA,IAAIwC,WAAW,GAAGxC,IAAI,CAACyC,SAAvB,CAAA;AACA,EAAA,IAAI6kE,MAAM,GAAG9kE,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;AACAjE,EAAAA,IAAI,CAACxnB,IAAL,CAAU,UAAUgjB,GAAV,EAAe;AACvB,IAAA,IAAIoI,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;AACA,IAAA,IAAI85B,UAAU,GAAG1xB,SAAS,CAACG,QAAV,CAAmB,OAAnB,CAAjB,CAAA;AACA,IAAA,IAAIwxB,aAAa,GAAGD,UAAU,CAACrxB,GAAX,CAAe,UAAf,CAApB,CAAA;AACA,IAAA,IAAIuxB,cAAc,GAAG5xB,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAArB,CAAA;AACA,IAAA,IAAI2jB,MAAM,GAAG1nB,IAAI,CAACyH,aAAL,CAAmBjM,GAAnB,CAAb,CAAA;AACA,IAAA,IAAI1d,MAAM,GAAG4pC,MAAM,CAAC5pC,MAApB,CAAA;IACA,IAAIk4C,aAAa,GAAGT,aAAa,KAAK,OAAlB,IAA6BA,aAAa,KAAK,QAA/C,IAA2DA,aAAa,KAAK,QAA7E,IAAyFA,aAAa,KAAK,YAA3G,IAA2HA,aAAa,KAAK,aAAjK,CAAA;AACA,IAAA,IAAIh1C,SAAJ,CAAA;AACA,IAAA,IAAIu1C,KAAJ,CAAA;AACA,IAAA,IAAIC,KAAJ,CAAA;AACA,IAAA,IAAI/C,UAAJ,CAAA;;AAEA,IAAA,IAAIgD,aAAJ,EAAmB;MACjB,IAAIT,aAAa,KAAK,YAAtB,EAAoC;AAClCO,QAAAA,KAAK,GAAG,CAACh4C,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAA,GAAeA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAAhC,GAAoC,CAA5C,CAAA;AACAi4C,QAAAA,KAAK,GAAG,CAACj4C,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAAxC,CAAA;AACAyC,QAAAA,SAAS,GAAG,MAAZ,CAAA;AACD,OAJD,MAIO,IAAIg1C,aAAa,KAAK,aAAtB,EAAqC;AAC1CO,QAAAA,KAAK,GAAG,CAACh4C,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAA,GAAeA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAAhC,GAAoC,CAA5C,CAAA;AACAi4C,QAAAA,KAAK,GAAG,CAACj4C,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAAxC,CAAA;AACAyC,QAAAA,SAAS,GAAG,OAAZ,CAAA;AACD,OAJM,MAIA;AACLu1C,QAAAA,KAAK,GAAG,CAACh4C,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAA,GAAeA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAf,GAA8BA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA9B,GAA6CA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA9C,IAA8D,CAAtE,CAAA;AACAi4C,QAAAA,KAAK,GAAG,CAACj4C,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAA,GAAeA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAf,GAA8BA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA9B,GAA6CA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA9C,IAA8D,CAAtE,CAAA;AACAyC,QAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,OAAA;;AAEDyyC,MAAAA,UAAU,GAAG,CAAC,CAAC8C,KAAD,EAAQC,KAAR,CAAD,EAAiB,CAACD,KAAD,EAAQC,KAAR,CAAjB,CAAb,CAAA;AACD,KAhBD,MAgBO;MACL,IAAIjzC,EAAE,GAAG,KAAK,CAAd,CAAA;MACA,IAAIC,EAAE,GAAG,KAAK,CAAd,CAAA;MACA,IAAInW,EAAE,GAAG,KAAK,CAAd,CAAA;MACA,IAAIC,EAAE,GAAG,KAAK,CAAd,CAAA;AACA,MAAA,IAAI4oD,YAAY,GAAGD,cAAc,CAACvxB,GAAf,CAAmB,QAAnB,CAAnB,CAAA;;AAEA,MAAA,IAAI/gB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,QAAA,IAAIkkF,MAAM,KAAK,UAAX,IAAyB,CAAC,KAAD,EAAQ,QAAR,CAAA,CAAkBtuF,OAAlB,CAA0Bu8C,aAA1B,CAA2C,GAAA,CAAC,CAAzE,EAA4E;AAC1EA,UAAAA,aAAa,GAAG,MAAhB,CAAA;UACA9tC,OAAO,CAAC2tB,IAAR,CAAa,kFAAb,CAAA,CAAA;AACD,SAAA;;AAED,QAAA,IAAIkyD,MAAM,KAAK,YAAX,IAA2B,CAAC,MAAD,EAAS,OAAT,CAAA,CAAkBtuF,OAAlB,CAA0Bu8C,aAA1B,CAA2C,GAAA,CAAC,CAA3E,EAA8E;AAC5EA,UAAAA,aAAa,GAAG,QAAhB,CAAA;UACA9tC,OAAO,CAAC2tB,IAAR,CAAa,oFAAb,CAAA,CAAA;AACD,SAAA;AACF,OAAA;;MAED,IAAImgB,aAAa,KAAK,MAAtB,EAA8B;AAC5B;AACAzyC,QAAAA,EAAE,GAAG,CAAChF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAArC,CAAA;AACAiF,QAAAA,EAAE,GAAG,CAACjF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAArC,CAAA;QACAlR,EAAE,GAAGkW,EAAE,GAAG2yC,YAAV,CAAA;QACAK,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA2T,QAAAA,SAAS,GAAG,OAAZ,CAAA;AACD,OAPD,MAOO,IAAIg1C,aAAa,KAAK,OAAtB,EAA+B;AACpC;AACAzyC,QAAAA,EAAE,GAAG,CAAChF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAArC,CAAA;AACAiF,QAAAA,EAAE,GAAG,CAACjF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAArC,CAAA;QACAlR,EAAE,GAAGkW,EAAE,GAAG2yC,YAAV,CAAA;QACAK,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA2T,QAAAA,SAAS,GAAG,MAAZ,CAAA;AACD,OAPM,MAOA,IAAIg1C,aAAa,KAAK,KAAtB,EAA6B;AAClC;AACAzyC,QAAAA,EAAE,GAAG,CAAChF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAArC,CAAA;AACAiF,QAAAA,EAAE,GAAG,CAACjF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAArC,CAAA;QACAjR,EAAE,GAAGkW,EAAE,GAAG0yC,YAAV,CAAA;QACAM,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA0T,QAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,OAPM,MAOA,IAAIg1C,aAAa,KAAK,QAAtB,EAAgC;AACrC;AACAzyC,QAAAA,EAAE,GAAG,CAAChF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAArC,CAAA;AACAiF,QAAAA,EAAE,GAAG,CAACjF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAArC,CAAA;QACAjR,EAAE,GAAGkW,EAAE,GAAG0yC,YAAV,CAAA;QACAM,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA0T,QAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,OAPM,MAOA,IAAIg1C,aAAa,KAAK,UAAtB,EAAkC;AACvC;AACAzyC,QAAAA,EAAE,GAAGwkF,MAAM,KAAK,YAAX,GAA0BxpF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA1B,GAAyCA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA9C,CAAA;AACAiF,QAAAA,EAAE,GAAGukF,MAAM,KAAK,YAAX,GAA0BxpF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA1B,GAAyCA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA9C,CAAA;;QAEA,IAAIwpF,MAAM,KAAK,YAAf,EAA6B;UAC3Bz6F,EAAE,GAAGkW,EAAE,GAAG0yC,YAAV,CAAA;UACAM,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA0T,UAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,SAJD,MAIO;UACL3T,EAAE,GAAGkW,EAAE,GAAG2yC,YAAV,CAAA;UACAK,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA2T,UAAAA,SAAS,GAAG,KAAZ,CAAA;AACD,SAAA;AACF,OAdM,MAcA,IAAIg1C,aAAa,KAAK,aAAtB,EAAqC;AAC1C;AACAzyC,QAAAA,EAAE,GAAGhF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAL,CAAA;AACAiF,QAAAA,EAAE,GAAGjF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAL,CAAA;;QAEA,IAAIwpF,MAAM,KAAK,YAAf,EAA6B;UAC3Bz6F,EAAE,GAAGkW,EAAE,GAAG0yC,YAAV,CAAA;UACAM,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA0T,UAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,SAJD,MAIO;UACL3T,EAAE,GAAGkW,EAAE,GAAG2yC,YAAV,CAAA;UACAK,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA2T,UAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,SAAA;AACF,OAdM,MAcA,IAAIg1C,aAAa,KAAK,SAAtB,EAAiC;AACtC;AACAzyC,QAAAA,EAAE,GAAGhF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAL,CAAA;AACAiF,QAAAA,EAAE,GAAGukF,MAAM,KAAK,YAAX,GAA0BxpF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA1B,GAAyCA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA9C,CAAA;;QAEA,IAAIwpF,MAAM,KAAK,YAAf,EAA6B;UAC3Bz6F,EAAE,GAAGkW,EAAE,GAAG0yC,YAAV,CAAA;UACAM,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA0T,UAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,SAJD,MAIO;UACL3T,EAAE,GAAGkW,EAAE,GAAG2yC,YAAV,CAAA;UACAK,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA2T,UAAAA,SAAS,GAAG,OAAZ,CAAA;AACD,SAAA;AACF,OAdM,MAcA,IAAIg1C,aAAa,KAAK,YAAtB,EAAoC;AACzC;AACAzyC,QAAAA,EAAE,GAAGwkF,MAAM,KAAK,YAAX,GAA0BxpF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA1B,GAAyCA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA9C,CAAA;AACAiF,QAAAA,EAAE,GAAGukF,MAAM,KAAK,YAAX,GAA0BxpF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA1B,GAAyCA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA9C,CAAA;;QAEA,IAAIwpF,MAAM,KAAK,YAAf,EAA6B;UAC3Bz6F,EAAE,GAAGkW,EAAE,GAAG0yC,YAAV,CAAA;UACAM,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA0T,UAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,SAJD,MAIO;UACL3T,EAAE,GAAGkW,EAAE,GAAG2yC,YAAV,CAAA;UACAK,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA2T,UAAAA,SAAS,GAAG,OAAZ,CAAA;AACD,SAAA;AACF,OAdM,MAcA;AACL;AACAuC,QAAAA,EAAE,GAAG,CAAChF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAArC,CAAA;AACAiF,QAAAA,EAAE,GAAG,CAACjF,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAArC,CAAA;;QAEA,IAAIwpF,MAAM,KAAK,YAAf,EAA6B;UAC3Bz6F,EAAE,GAAGkW,EAAE,GAAG0yC,YAAV,CAAA;UACAM,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA0T,UAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,SAJD,MAIO;UACL3T,EAAE,GAAGkW,EAAE,GAAG2yC,YAAV,CAAA;UACAK,KAAK,GAAGlpD,EAAE,GAAG,CAAb,CAAA;AACA2T,UAAAA,SAAS,GAAG,MAAZ,CAAA;AACD,SAAA;AACF,OAAA;;MAED,IAAI+mF,MAAM,KAAK,YAAf,EAA6B;AAC3B16F,QAAAA,EAAE,GAAGkW,EAAL,CAAA;AACAgzC,QAAAA,KAAK,GAAGlpD,EAAR,CAAA;AACD,OAHD,MAGO;AACLC,QAAAA,EAAE,GAAGkW,EAAL,CAAA;AACAgzC,QAAAA,KAAK,GAAGlpD,EAAR,CAAA;AACD,OAAA;;AAEDmmD,MAAAA,UAAU,GAAG,CAAC,CAAClwC,EAAD,EAAKC,EAAL,CAAD,EAAW,CAACnW,EAAD,EAAKC,EAAL,CAAX,CAAb,CAAA;AACD,KAAA;;IAED66C,MAAM,CAAC/oB,KAAP,GAAe;AACbq0B,MAAAA,UAAU,EAAEA,UADC;AAEbzmD,MAAAA,CAAC,EAAEupD,KAFU;AAGbtpD,MAAAA,CAAC,EAAEupD,KAHU;AAIb3c,MAAAA,aAAa,EAAE,QAJF;AAKb74B,MAAAA,SAAS,EAAEA,SALE;AAMbstC,MAAAA,MAAM,EAAEmI,aAAAA;KANV,CAAA;GA/JF,CAAA,CAAA;AAwKD,CAAA;;AAEc,SAASqsE,YAAT,CAAsBxoF,OAAtB,EAA+BxxB,GAA/B,EAAoC;AACjDwxB,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,QAAzB,EAAmC,UAAU/tB,WAAV,EAAuB;AACxD,IAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAIkM,QAAQ,GAAG/J,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAf,CAAA;AACA,IAAA,IAAIsD,IAAI,GAAG9K,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,CAAX,CAAA;AACA,IAAA,IAAIisB,QAAQ,GAAGH,aAAW,CAACvtB,WAAD,EAAcna,GAAd,CAA1B,CAAA;AACA,IAAA,IAAIi/E,MAAM,GAAG9kE,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;AACA,IAAA,IAAIzR,SAAS,GAAG09B,QAAQ,CAAC36C,KAAzB,CAAA;AACA,IAAA,IAAIkd,UAAU,GAAGy9B,QAAQ,CAAC16C,MAA1B,CAAA;AACA,IAAA,IAAIipC,OAAO,GAAG0jF,gBAAgB,CAACniG,IAAD,EAAOsN,IAAP,CAA9B,CAAA;AACA,IAAA,IAAI/gC,CAAC,GAAG2jD,QAAQ,CAAC3jD,CAAjB,CAAA;AACA,IAAA,IAAIC,CAAC,GAAG0jD,QAAQ,CAAC1jD,CAAjB,CAAA;IACA,IAAI81H,UAAU,GAAGh7B,MAAM,KAAK,YAAX,GAA0B,CAACj3C,YAAY,CAAC7tB,WAAW,CAACyB,GAAZ,CAAgB,SAAhB,CAAD,EAA6BxR,UAA7B,CAAb,EAAuD49B,YAAY,CAAC7tB,WAAW,CAACyB,GAAZ,CAAgB,SAAhB,CAAD,EAA6BxR,UAA7B,CAAnE,CAA1B,GAAyI,CAAC49B,YAAY,CAAC7tB,WAAW,CAACyB,GAAZ,CAAgB,SAAhB,CAAD,EAA6BzR,SAA7B,CAAb,EAAsD69B,YAAY,CAAC7tB,WAAW,CAACyB,GAAZ,CAAgB,SAAhB,CAAD,EAA6BzR,SAA7B,CAAlE,CAA1J,CAAA;AACA,IAAA,IAAIuuF,UAAU,GAAG/gF,IAAI,CAAC8wB,aAAL,CAAmB/mB,QAAnB,CAAjB,CAAA;AACA,IAAA,IAAIqE,GAAG,GAAG5L,WAAW,CAACyB,GAAZ,CAAgB,KAAhB,CAAV,CAAA;AACA,IAAA,IAAIjW,GAAG,GAAGwU,WAAW,CAACyB,GAAZ,CAAgB,KAAhB,CAAV,CAAA;;IAEA,IAAImK,GAAG,IAAI,IAAX,EAAiB;MACfA,GAAG,GAAG9iC,IAAI,CAAC8iC,GAAL,CAAS2yE,UAAU,CAAC,CAAD,CAAnB,EAAwB,CAAxB,CAAN,CAAA;AACD,KAAA;;IAED,IAAI/yF,GAAG,IAAI,IAAX,EAAiB;AACfA,MAAAA,GAAG,GAAG+yF,UAAU,CAAC,CAAD,CAAhB,CAAA;AACD,KAAA;;AAED,IAAA,IAAImhB,WAAW,GAAG1/F,WAAW,CAACyB,GAAZ,CAAgB,aAAhB,CAAlB,CAAA;AACA,IAAA,IAAIwsC,GAAG,GAAGjuC,WAAW,CAACyB,GAAZ,CAAgB,KAAhB,CAAV,CAAA;IACA,IAAIs9C,QAAQ,GAAG+lB,MAAM,KAAK,YAAX,GAA0B90E,SAA1B,GAAsCC,UAArD,CAAA;AACA,IAAA,IAAI8vG,QAAQ,GAAG,CAAChhD,QAAQ,GAAG9Q,GAAG,IAAIzwC,IAAI,CAAC0T,KAAL,KAAe,CAAnB,CAAf,IAAwC1T,IAAI,CAAC0T,KAAL,EAAvD,CAAA;;IAEA,IAAI8uF,aAAa,GAAG,SAAhBA,aAAgB,CAAUhnG,GAAV,EAAehY,MAAf,EAAuB;AACzC;MACA,IAAI8jF,MAAM,KAAK,YAAf,EAA6B;QAC3B,IAAIm7B,KAAK,GAAGziG,IAAI,CAACiE,GAAL,CAAS8F,QAAT,EAAmBvO,GAAnB,CAAA,IAA2B,CAAvC,CAAA;AACA,QAAA,IAAI+B,UAAU,GAAG2zB,WAAS,CAACuxE,KAAD,EAAQ,CAACr0F,GAAD,EAAMpgB,GAAN,CAAR,EAAoBs0G,UAApB,EAAgC,IAAhC,CAA1B,CAAA;QACA,IAAIj0H,EAAE,GAAG,KAAK,CAAd,CAAA;;AAEA,QAAA,QAAQ6zH,WAAR;AACE,UAAA,KAAK,KAAL;AACE7zH,YAAAA,EAAE,GAAG7B,CAAL,CAAA;AACA,YAAA,MAAA;;AAEF,UAAA,KAAK,QAAL;YACE6B,EAAE,GAAG7B,CAAC,GAAG,CAACimB,UAAU,GAAG8K,UAAd,IAA4B,CAArC,CAAA;AACA,YAAA,MAAA;;AAEF,UAAA,KAAK,QAAL;AACElvB,YAAAA,EAAE,GAAG7B,CAAC,IAAIimB,UAAU,GAAG8K,UAAjB,CAAN,CAAA;AACA,YAAA,MAAA;AAXJ,SAAA;;AAcA,QAAA,OAAO,CAAC,CAAC/Z,MAAD,EAASnV,EAAT,CAAD,EAAe,CAACmV,MAAD,EAASnV,EAAE,GAAGkvB,UAAd,CAAf,CAAP,CAAA;AACD,OAAA;;MAED,IAAI7tB,GAAG,GAAGswB,IAAI,CAACiE,GAAL,CAAS8F,QAAT,EAAmBvO,GAAnB,CAAA,IAA2B,CAArC,CAAA;AACA,MAAA,IAAIgC,SAAS,GAAG0zB,WAAS,CAACxhD,GAAD,EAAM,CAAC0+B,GAAD,EAAMpgB,GAAN,CAAN,EAAkBs0G,UAAlB,EAA8B,IAA9B,CAAzB,CAAA;AACA,MAAA,IAAIl0H,EAAJ,CAAA;;AAEA,MAAA,QAAQ8zH,WAAR;AACE,QAAA,KAAK,MAAL;AACE9zH,UAAAA,EAAE,GAAG7B,CAAL,CAAA;AACA,UAAA,MAAA;;AAEF,QAAA,KAAK,QAAL;UACE6B,EAAE,GAAG7B,CAAC,GAAG,CAACimB,SAAS,GAAGgL,SAAb,IAA0B,CAAnC,CAAA;AACA,UAAA,MAAA;;AAEF,QAAA,KAAK,OAAL;AACEpvB,UAAAA,EAAE,GAAG7B,CAAC,GAAGimB,SAAJ,GAAgBgL,SAArB,CAAA;AACA,UAAA,MAAA;AAXJ,OAAA;;AAcA,MAAA,OAAO,CAAC,CAACpvB,EAAD,EAAKoV,MAAL,CAAD,EAAe,CAACpV,EAAE,GAAGovB,SAAN,EAAiBha,MAAjB,CAAf,CAAP,CAAA;KA1CF,CAAA;;IA6CA,IAAI8pB,IAAI,KAAK,WAAb,EAA0B;AACxB;MACAi1F,QAAQ,GAAG,CAACA,QAAZ,CAAA;MACA9xD,GAAG,GAAG,CAACA,GAAP,CAAA;;MAEA,IAAI62B,MAAM,KAAK,YAAf,EAA6B;AAC3B/6F,QAAAA,CAAC,IAAIimB,SAAL,CAAA;AACD,OAFD,MAEO;AACLhmB,QAAAA,CAAC,IAAIimB,UAAL,CAAA;AACD,OAAA;;AAEDgsB,MAAAA,OAAO,GAAGA,OAAO,CAACxI,OAAR,EAAV,CAAA;AACD,KAAA;;AAED,IAAA,KAAK,IAAIzmC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGivC,OAAO,CAAC3vC,MAA5B,EAAoCU,CAAC,EAArC,EAAyC;AACvC,MAAA,IAAIgsB,GAAG,GAAGijB,OAAO,CAACjvC,CAAD,CAAjB,CAAA;AACA,MAAA,IAAIy/B,OAAO,GAAGwP,OAAO,CAACjvC,CAAC,GAAG,CAAL,CAArB,CAAA;AACA,MAAA,IAAIo0B,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;;MAEA,IAAI8rE,MAAM,KAAK,YAAf,EAA6B;QAC3B,IAAI/xF,KAAK,GAAGquB,SAAS,CAACK,GAAV,CAAc,CAAC,WAAD,EAAc,OAAd,CAAd,CAAZ,CAAA;;QAEA,IAAI1uB,KAAK,IAAI,IAAb,EAAmB;AACjBA,UAAAA,KAAK,GAAGgtH,QAAR,CAAA;AACD,SAFD,MAEO;AACLhtH,UAAAA,KAAK,GAAG86C,YAAY,CAAC96C,KAAD,EAAQid,SAAR,CAApB,CAAA;;UAEA,IAAI8a,IAAI,KAAK,WAAb,EAA0B;YACxB/3B,KAAK,GAAG,CAACA,KAAT,CAAA;AACD,WAAA;AACF,SAAA;;AAED,QAAA,IAAIkkB,KAAK,GAAG+oG,aAAa,CAAChnG,GAAD,EAAMjvB,CAAN,CAAzB,CAAA;QACA,IAAIy8B,GAAG,GAAGw5F,aAAa,CAACvzF,OAAD,EAAU1iC,CAAC,GAAGgJ,KAAd,CAAvB,CAAA;QACAhJ,CAAC,IAAIgJ,KAAK,GAAGk7D,GAAb,CAAA;AACAzwC,QAAAA,IAAI,CAACogB,aAAL,CAAmB5kB,GAAnB,EAAwB;UACtB1d,MAAM,EAAE2b,KAAK,CAACmnD,MAAN,CAAa53C,GAAG,CAACnU,KAAJ,EAAYohB,CAAAA,OAAZ,EAAb,CAAA;SADV,CAAA,CAAA;AAGD,OAnBD,MAmBO;QACL,IAAIzgC,MAAM,GAAGouB,SAAS,CAACK,GAAV,CAAc,CAAC,WAAD,EAAc,QAAd,CAAd,CAAb,CAAA;;QAEA,IAAIzuB,MAAM,IAAI,IAAd,EAAoB;AAClBA,UAAAA,MAAM,GAAG+sH,QAAT,CAAA;AACD,SAFD,MAEO;AACL/sH,UAAAA,MAAM,GAAG66C,YAAY,CAAC76C,MAAD,EAASid,UAAT,CAArB,CAAA;;UAEA,IAAI6a,IAAI,KAAK,WAAb,EAA0B;YACxB93B,MAAM,GAAG,CAACA,MAAV,CAAA;AACD,WAAA;AACF,SAAA;;AAED,QAAA,IAAIikB,KAAK,GAAG+oG,aAAa,CAAChnG,GAAD,EAAMhvB,CAAN,CAAzB,CAAA;QACA,IAAIw8B,GAAG,GAAGw5F,aAAa,CAACvzF,OAAD,EAAUziC,CAAC,GAAGgJ,MAAd,CAAvB,CAAA;QACAhJ,CAAC,IAAIgJ,MAAM,GAAGi7D,GAAd,CAAA;AACAzwC,QAAAA,IAAI,CAACogB,aAAL,CAAmB5kB,GAAnB,EAAwB;UACtB1d,MAAM,EAAE2b,KAAK,CAACmnD,MAAN,CAAa53C,GAAG,CAACnU,KAAJ,EAAYohB,CAAAA,OAAZ,EAAb,CAAA;SADV,CAAA,CAAA;AAGD,OAAA;AACF,KAAA;;IAEDuiB,WAAW,CAACx4B,IAAD,CAAX,CAAA;GAtIF,CAAA,CAAA;AAwID;;ACnYD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BO,SAAS9Q,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4B0gF,UAA5B,CAAA,CAAA;EACA1yG,SAAS,CAACiyB,mBAAV,CAA8B2gF,iBAA9B,CAAA,CAAA;EACA5yG,SAAS,CAACmyB,cAAV,CAAyB+gF,YAAzB,CAAA,CAAA;AACAlzG,EAAAA,SAAS,CAACuyB,iBAAV,CAA4B4P,YAAU,CAAC,QAAD,CAAtC,CAAA,CAAA;AACD;;ACnDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA,IAAIoxE,cAAc,GAAG,GAArB,CAAA;;AAEA,IAAIC,cAAY;AAChB;AACA,UAAU3yG,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC0yG,YAAD,EAAe3yG,MAAf,CAAT,CAAA;;AAEA,EAAA,SAAS2yG,YAAT,GAAwB;AACtB,IAAA,IAAIzyG,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa8jH,YAAY,CAAC9jH,IAA1B,CAAA;AACAqR,IAAAA,KAAK,CAAC0yG,UAAN,GAAmB,IAAI//F,OAAJ,EAAnB,CAAA;IACA3S,KAAK,CAAC2yG,YAAN,GAAqB,KAArB,CAAA;AACA,IAAA,OAAO3yG,KAAP,CAAA;AACD,GAAA;;AAEDyyG,EAAAA,YAAY,CAAC72H,SAAb,CAAuBytC,IAAvB,GAA8B,YAAY;AACxC,IAAA,IAAA,CAAKpc,KAAL,CAAWO,GAAX,CAAe,KAAKklG,UAApB,CAAA,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGED,EAAAA,YAAY,CAAC72H,SAAb,CAAuB8tC,MAAvB,GAAgC,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqCu0B,OAArC,EAA8C;AAC5E;IACA,IAAKxV,CAAAA,eAAL,GAAuB,IAAvB,CAAA;IACA,IAAI07F,SAAS,GAAG,IAAA,CAAKF,UAArB,CAAA;AACA,IAAA,IAAI5iG,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAIwJ,OAAO,GAAG,IAAA,CAAKC,KAAnB,CAAA;AACA,IAAA,IAAI1K,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,IAAA,IAAIuN,UAAU,GAAGxN,QAAQ,CAACwN,UAA1B,CAAA;AACA,IAAA,IAAIzJ,WAAW,GAAGoG,eAAe,CAACvE,WAAD,CAAjC,CAAA;AACAxC,IAAAA,IAAI,CAAC0H,IAAL,CAAUL,OAAV,CAAA,CAAmB3J,GAAnB,CAAuBA,GAAvB,CAA4BqK,CAAAA,MAA5B,CAAmCA,MAAnC,CAAA,CAA2CG,MAA3C,CAAkDA,MAAlD,EAA0DG,OAA1D,EAAA,CAAA;;IAEA,SAAS3K,GAAT,CAAaqlG,YAAb,EAA2B;AACzB,MAAA,IAAI1lG,IAAI,GAAG2lG,KAAK,CAAChjG,IAAD,EAAO8iG,SAAP,EAAkBC,YAAlB,EAAgC34F,UAAhC,EAA4CxN,QAA5C,CAAhB,CAAA;MACAqmG,cAAc,CAAC5lG,IAAD,EAAO2C,IAAP,EAAa+iG,YAAb,EAA2BpiG,WAA3B,CAAd,CAAA;AACD,KAAA;;AAED,IAAA,SAASoH,MAAT,CAAgBg7F,YAAhB,EAA8BG,YAA9B,EAA4C;AAC1C,MAAA,IAAI7lG,IAAI,GAAGgK,OAAO,CAACY,gBAAR,CAAyBi7F,YAAzB,CAAX,CAAA;MACA,IAAIplH,MAAM,GAAGqlH,gBAAgB,CAACnjG,IAAD,EAAO+iG,YAAP,EAAqB34F,UAArB,EAAiCxN,QAAjC,CAA7B,CAAA;AACAoD,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBi7F,YAAtB,EAAoC1lG,IAApC,CAAA,CAAA;AACAwF,MAAAA,aAAA,CAAoBxF,IAApB,EAA0B;AACxBjmB,QAAAA,KAAK,EAAE;AACL0G,UAAAA,MAAM,EAAEA,MAAAA;AADH,SAAA;OADT,EAIG0kB,WAJH,EAIgBugG,YAJhB,CAAA,CAAA;MAKAjgG,YAAY,CAACzF,IAAD,CAAZ,CAAA;MACA4lG,cAAc,CAAC5lG,IAAD,EAAO2C,IAAP,EAAa+iG,YAAb,EAA2BpiG,WAA3B,CAAd,CAAA;AACD,KAAA;;IAED,SAASuH,MAAT,CAAgBg7F,YAAhB,EAA8B;AAC5B,MAAA,IAAI7lG,IAAI,GAAGgK,OAAO,CAACY,gBAAR,CAAyBi7F,YAAzB,CAAX,CAAA;MACAJ,SAAS,CAAC56F,MAAV,CAAiB7K,IAAjB,CAAA,CAAA;AACD,KAhC2E;;;IAmC5E,IAAI,CAAC,IAAKwlG,CAAAA,YAAV,EAAwB;MACtB,IAAKA,CAAAA,YAAL,GAAoB,IAApB,CAAA;MACA,IAAIl9G,QAAQ,GAAGy9G,qBAAmB,CAACxmG,QAAD,EAAW4F,WAAX,EAAwB,YAAY;AACpE;AACAk1F,QAAAA,UAAU,CAAC,YAAY;AACrBoL,UAAAA,SAAS,CAACj8E,cAAV,EAAA,CAAA;AACD,SAFS,CAAV,CAAA;AAGD,OALiC,CAAlC,CAAA;MAMAi8E,SAAS,CAACp9G,WAAV,CAAsBC,QAAtB,CAAA,CAAA;AACD,KAAA;;IAED,IAAK2hB,CAAAA,KAAL,GAAatH,IAAb,CAAA;GA9CF,CAAA;;EAiDA2iG,YAAY,CAAC72H,SAAb,CAAuBk6C,wBAAvB,GAAkD,UAAUxjB,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;IACrF,IAAKw6G,CAAAA,YAAL,GAAoB,IAApB,CAAA;IACA,IAAKv7F,CAAAA,KAAL,GAAa,IAAb,CAAA;;IAEA,IAAKs7F,CAAAA,UAAL,CAAgB7hG,SAAhB,EAAA,CAAA;GAJF,CAAA;;EAOA4hG,YAAY,CAAC72H,SAAb,CAAuBq6C,iBAAvB,GAA2C,UAAUtd,UAAV,EAAsBrG,WAAtB,EAAmCqX,OAAnC,EAA4C;AACrF,IAAA,IAAI7Z,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAIjB,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,IAAA,IAAIuN,UAAU,GAAGxN,QAAQ,CAACwN,UAA1B,CAAA;AACA,IAAA,IAAIzJ,WAAW,GAAGoG,eAAe,CAACvE,WAAD,CAAjC,CAAA;AACA,IAAA,IAAIgsB,cAAc,GAAG,IAAKpnB,CAAAA,eAAL,GAAuB,EAA5C,CAAA;;AAEA,IAAA,KAAK,IAAInH,SAAS,GAAG4I,UAAU,CAACpP,KAAhC,EAAuCwG,SAAS,GAAG4I,UAAU,CAACG,GAA9D,EAAmE/I,SAAS,EAA5E,EAAgF;AAC9E,MAAA,IAAI5C,IAAI,GAAG2lG,KAAK,CAAChjG,IAAD,EAAO,IAAA,CAAK4iG,UAAZ,EAAwB3iG,SAAxB,EAAmCmK,UAAnC,EAA+CxN,QAA/C,CAAhB,CAAA;MACAS,IAAI,CAAC7M,WAAL,GAAmB,IAAnB,CAAA;MACAyyG,cAAc,CAAC5lG,IAAD,EAAO2C,IAAP,EAAaC,SAAb,EAAwBU,WAAxB,CAAd,CAAA;MACA6tB,cAAc,CAAC3+C,IAAf,CAAoBwtB,IAApB,CAAA,CAAA;AACD,KAAA;GAZH,CAAA;;AAeAslG,EAAAA,YAAY,CAAC72H,SAAb,CAAuBo8B,MAAvB,GAAgC,YAAY;AAC1C,IAAA,IAAA,CAAK06F,UAAL,IAAmB,IAAA,CAAKA,UAAL,CAAgB7hG,SAAhB,EAAnB,CAAA;IACA,IAAKuG,CAAAA,KAAL,GAAa,IAAb,CAAA;GAFF,CAAA;;EAKAq7F,YAAY,CAAC9jH,IAAb,GAAoB,UAApB,CAAA;AACA,EAAA,OAAO8jH,YAAP,CAAA;AACD,CAlGD,CAkGE3lF,SAlGF,CAFA,CAAA;;AAsGA,SAASomF,qBAAT,CAA6BxmG,QAA7B,EAAuC4F,WAAvC,EAAoDrH,EAApD,EAAwD;AACtD,EAAA,IAAIkoG,aAAa,GAAGzmG,QAAQ,CAACmrB,KAA7B,CAAA;AACA,EAAA,IAAIr5C,IAAI,GAAGkuB,QAAQ,CAACkqC,OAAT,EAAX,CAAA;AACA,EAAA,IAAI83C,MAAM,GAAG,IAAI/7E,MAAJ,CAAiB;AAC5BzrB,IAAAA,KAAK,EAAE;MACL7K,CAAC,EAAEmC,IAAI,CAACnC,CADH;MAELC,CAAC,EAAEkC,IAAI,CAAClC,CAFH;MAGL+I,KAAK,EAAE7G,IAAI,CAAC6G,KAHP;MAILC,MAAM,EAAE9G,IAAI,CAAC8G,MAAAA;AAJR,KAAA;AADqB,GAAjB,CAAb,CAAA;AAQA,EAAA,IAAIq0B,GAAG,GAAGw5F,aAAa,CAACp/F,GAAd,CAAkB,QAAlB,CAAA,KAAgC,YAAhC,GAA+C,OAA/C,GAAyD,QAAnE,CAAA;AACA26E,EAAAA,MAAM,CAACrjE,QAAP,CAAgB1R,GAAhB,EAAqB,CAArB,CAAA,CAAA;AACAhH,EAAAA,SAAA,CAAkB+7E,MAAlB,EAA0B;AACxBxnG,IAAAA,KAAK,EAAE;MACL7B,KAAK,EAAE7G,IAAI,CAAC6G,KADP;MAELC,MAAM,EAAE9G,IAAI,CAAC8G,MAAAA;AAFR,KAAA;GADT,EAKGgtB,WALH,EAKgBrH,EALhB,CAAA,CAAA;AAMA,EAAA,OAAOyjF,MAAP,CAAA;AACD,CAAA;;AAED,SAASukB,gBAAT,CAA0BnjG,IAA1B,EAAgCC,SAAhC,EAA2CmK,UAA3C,EAAuDxN,QAAvD,EAAiE;EAC/D,IAAI9e,MAAM,GAAG,EAAb,CAAA;;AAEA,EAAA,KAAK,IAAItO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG46B,UAAU,CAACt7B,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;AAC1C,IAAA,IAAIg9D,OAAO,GAAGpiC,UAAU,CAAC56B,CAAD,CAAxB,CAAA;AACA,IAAA,IAAIw7B,KAAK,GAAGhL,IAAI,CAACiE,GAAL,CAASjE,IAAI,CAACgK,YAAL,CAAkBwiC,OAAlB,CAAT,EAAqCvsC,SAArC,CAAZ,CAAA;;AAEA,IAAA,IAAI,CAACqjG,YAAY,CAACt4F,KAAD,EAAQpO,QAAQ,CAAC8Y,OAAT,CAAiB82B,OAAjB,CAA0B3tD,CAAAA,IAAlC,CAAjB,EAA0D;MACxDf,MAAM,CAACjO,IAAP,CAAY+sB,QAAQ,CAACuO,WAAT,CAAqBH,KAArB,EAA4BwhC,OAA5B,CAAZ,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAO1uD,MAAP,CAAA;AACD,CAAA;;AAED,SAASklH,KAAT,CAAehjG,IAAf,EAAqB8iG,SAArB,EAAgC7iG,SAAhC,EAA2CmK,UAA3C,EAAuDxN,QAAvD,EAAiE;EAC/D,IAAI9e,MAAM,GAAGqlH,gBAAgB,CAACnjG,IAAD,EAAOC,SAAP,EAAkBmK,UAAlB,EAA8BxN,QAA9B,CAA7B,CAAA;AACA,EAAA,IAAIS,IAAI,GAAG,IAAIwF,UAAJ,CAAqB;AAC9BzrB,IAAAA,KAAK,EAAE;AACL0G,MAAAA,MAAM,EAAEA,MAAAA;KAFoB;AAI9B;AACAojB,IAAAA,EAAE,EAAE,EAAA;AAL0B,GAArB,CAAX,CAAA;EAOA4hG,SAAS,CAACplG,GAAV,CAAcL,IAAd,CAAA,CAAA;AACA2C,EAAAA,IAAI,CAAC8H,gBAAL,CAAsB7H,SAAtB,EAAiC5C,IAAjC,CAAA,CAAA;AACA,EAAA,OAAOA,IAAP,CAAA;AACD,CAAA;;AAED,SAAS0J,eAAT,CAAyBvE,WAAzB,EAAsC;EACpC,IAAIvkB,MAAM,GAAGukB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,EAA0B,IAA1B,CAAb,CAAA;AACAhmB,EAAAA,MAAM,KAAK,IAAX,KAAoBA,MAAM,GAAGykH,cAA7B,CAAA,CAAA;AACAzkH,EAAAA,MAAM,GAAGslH,eAAe,CAACtlH,MAAD,CAAxB,CAAA;AACAulH,EAAAA,KAAK,CAACvlH,MAAD,CAAL,KAAkBA,MAAM,GAAG,CAA3B,CAAA,CAAA;EACA,OAAO;AACLA,IAAAA,MAAM,EAAEA,MAAAA;GADV,CAAA;AAGD,CAAA;;AAED,SAASglH,cAAT,CAAwBlyH,EAAxB,EAA4BivB,IAA5B,EAAkCC,SAAlC,EAA6CU,WAA7C,EAA0D;EACxD5vB,EAAE,CAAC0zB,QAAH,CAAYzE,IAAI,CAACuC,aAAL,CAAmBtC,SAAnB,EAA8B,OAA9B,CAAZ,CAAA,CAAA;AACAlvB,EAAAA,EAAE,CAACX,KAAH,CAASC,IAAT,GAAgB,IAAhB,CAAA;AACAU,EAAAA,EAAE,CAACwqC,QAAH,CAAY,QAAZ,EAAsB5a,WAAW,CAAC1iB,MAAlC,CAAA,CAAA;AACA,EAAA,IAAI2lB,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkB5D,SAAlB,CAAhB,CAAA;AACA,EAAA,IAAI6D,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAApB,CAAA;AACA2X,EAAAA,wBAAwB,CAAC3qC,EAAD,EAAK6yB,SAAL,EAAgB,WAAhB,CAAxB,CAAA;EACAkC,mBAAmB,CAAC/0B,EAAD,EAAK+yB,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAL,EAAiCH,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAjC,EAAiEH,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAjE,CAAnB,CAAA;AACD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASq/F,YAAT,CAAsB5zH,GAAtB,EAA2BmyD,QAA3B,EAAqC;AACnC,EAAA,OAAOA,QAAQ,KAAK,UAAb,GAA0BnyD,GAAG,IAAI,IAAjC,GAAwCA,GAAG,IAAI,IAAP,IAAeC,KAAK,CAACD,GAAD,CAAnE,CADmC;AAEpC;;ACrPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAI+zH,mBAAmB;AACvB;AACA,UAAUzzG,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACwzG,mBAAD,EAAsBzzG,MAAtB,CAAT,CAAA;;AAEA,EAAA,SAASyzG,mBAAT,GAA+B;AAC7B,IAAA,IAAIvzG,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa4kH,mBAAmB,CAAC5kH,IAAjC,CAAA;IACAqR,KAAK,CAACixG,qBAAN,GAA8B,WAA9B,CAAA;IACAjxG,KAAK,CAACwzG,cAAN,GAAuB,QAAvB,CAAA;AACA,IAAA,OAAOxzG,KAAP,CAAA;AACD,GAAA;;EAEDuzG,mBAAmB,CAAC33H,SAApB,CAA8B4wB,cAA9B,GAA+C,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;AACxE,IAAA,OAAO9c,gBAAgB,CAAC,IAAD,EAAO,IAAP,EAAa;AAClCC,MAAAA,kBAAkB,EAAE6lD,MAAI,CAAC8gD,iBAAD,EAAoB,IAApB,EAA0B,IAA1B,CAAA;AADU,KAAb,CAAvB,CAAA;GADF,CAAA;AAKA;AACF;AACA;AACA;AACA;;;AAGEF,EAAAA,mBAAmB,CAAC33H,SAApB,CAA8B83H,0BAA9B,GAA2D,UAAUC,WAAV,EAAuB;IAChF,IAAIjnG,QAAQ,GAAG,IAAA,CAAKC,gBAApB,CAAA;AACA,IAAA,IAAImD,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;IACA,IAAI4gB,OAAO,GAAG,EAAd,CAAA;IACA7hB,QAAQ,CAACknG,eAAT,CAAyB9jG,IAAzB,EAA+B,UAAU+jG,cAAV,EAA0B9jG,SAA1B,EAAqC;MAClE,IAAI4jG,WAAW,KAAKE,cAApB,EAAoC;QAClCtlF,OAAO,CAAC5uC,IAAR,CAAamwB,IAAI,CAACkN,WAAL,CAAiBjN,SAAjB,CAAb,CAAA,CAAA;AACD,OAAA;KAHH,CAAA,CAAA;AAKA,IAAA,OAAOwe,OAAP,CAAA;GATF,CAAA;;EAYAglF,mBAAmB,CAAC5kH,IAApB,GAA2B,iBAA3B,CAAA;AACA4kH,EAAAA,mBAAmB,CAACjlG,YAApB,GAAmC,CAAC,UAAD,CAAnC,CAAA;EACAilG,mBAAmB,CAAChlG,aAApB,GAAoC;AAClC;AACAzG,IAAAA,CAAC,EAAE,CAF+B;AAGlC6E,IAAAA,gBAAgB,EAAE,UAHgB;AAIlCmnG,IAAAA,aAAa,EAAE,CAJmB;AAKlCrlG,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,KAAA;KAN0B;AAQlColG,IAAAA,eAAe,EAAE,IARiB;AASlCC,IAAAA,aAAa,EAAE,CATmB;AAUlCzmG,IAAAA,SAAS,EAAE;AACTloB,MAAAA,KAAK,EAAE,CADE;AAETtE,MAAAA,OAAO,EAAE,IAFA;AAGT4N,MAAAA,IAAI,EAAE,OAAA;KAb0B;AAelCmgB,IAAAA,QAAQ,EAAE;AACRL,MAAAA,KAAK,EAAE;AACLE,QAAAA,IAAI,EAAE,KAAA;AADD,OAAA;KAhByB;AAoBlCY,IAAAA,WAAW,EAAE,GApBqB;AAqBlCxhB,IAAAA,MAAM,EAAE,KArB0B;AAsBlCuhB,IAAAA,eAAe,EAAE,QAAA;GAtBnB,CAAA;AAwBA,EAAA,OAAOikG,mBAAP,CAAA;AACD,CA/DD,CA+DE3jG,WA/DF,CAFA,CAAA;;AAmEA,SAAS6jG,iBAAT,CAA2BnhG,WAA3B,EAAwC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,IAAI6gG,aAAa,GAAG7gG,WAAW,CAACqX,OAAZ,CAAoBw7B,YAApB,CAAiC,UAAjC,EAA6C7yC,WAAW,CAACyB,GAAZ,CAAgB,eAAhB,CAA7C,CAApB,CAAA;;EAEA,IAAI,CAACo/F,aAAL,EAAoB;AAClB,IAAA,OAAA;AACD,GAAA;;EAED,IAAIvqE,YAAY,GAAG,EAAnB,CAAA;AACAtgD,EAAAA,MAAI,CAAC6qH,aAAa,CAACj5F,UAAf,EAA2B,UAAUy8B,OAAV,EAAmB;AAChD,IAAA,IAAIs9D,YAAY,GAAGC,sBAAsB,CAACv9D,OAAD,CAAzC,CAAA;AACA/N,IAAAA,YAAY,CAAC+N,OAAD,CAAZ,GAAwBs9D,YAAxB,CAAA;AACD,GAHG,CAAJ,CAAA;AAIA,EAAA,OAAOrrE,YAAP,CAAA;AACD,CAAA;;AAED,SAASsrE,sBAAT,CAAgC53D,OAAhC,EAAyC;EACvC,OAAO,CAACA,OAAO,CAACvzD,OAAR,CAAgB,KAAhB,EAAuB,EAAvB,CAAR,CAAA;AACD;;ACzID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIwoH,iBAAiB,GAAG,CAAC,WAAD,EAAc,SAAd,CAAxB,CAAA;AACA,IAAI4C,cAAc,GAAG;AACnB1nF,EAAAA,UAAU,EAAE,UADO;AAEnB5wC,EAAAA,KAAK,EAAE,SAAA,KAAA,CAAUy2B,WAAV,EAAuBqX,OAAvB,EAAgC;AACrC,IAAA,IAAIjd,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,IAAA,IAAIynG,UAAU,GAAG;MACfjrF,MAAM,EAAE7W,WAAW,CAACyB,GAAZ,CAAgB,CAAC,WAAD,EAAc,SAAd,CAAhB,CADO;AAEfsgG,MAAAA,MAAM,EAAE/hG,WAAW,CAACyB,GAAZ,CAAgB,eAAhB,CAFO;AAGfugG,MAAAA,QAAQ,EAAEhiG,WAAW,CAACyB,GAAZ,CAAgB,iBAAhB,CAAA;KAHZ,CAAA;IAKA,OAAO;AACL8b,MAAAA,QAAQ,EAAE,SAAA,QAAA,CAAUC,MAAV,EAAkBhgB,IAAlB,EAAwB;QAChCpD,QAAQ,CAACknG,eAAT,CAAyB9jG,IAAzB,EAA+B,UAAU6jG,WAAV,EAAuB5jG,SAAvB,EAAkC;AAC/D,UAAA,IAAIhvB,OAAO,GAAGqzH,UAAU,CAACT,WAAD,CAAxB,CAAA;;AAEA,UAAA,IAAIA,WAAW,KAAK,QAAhB,IAA4B7jG,IAAI,CAAC2D,aAArC,EAAoD;AAClD,YAAA,IAAI8gG,WAAW,GAAGzkG,IAAI,CAAC6D,YAAL,CAAkB5D,SAAlB,CAAA,CAA6BgE,GAA7B,CAAiCw9F,iBAAjC,EAAoD,IAApD,CAAlB,CAAA;AACAgD,YAAAA,WAAW,IAAI,IAAf,KAAwBxzH,OAAO,GAAGwzH,WAAlC,CAAA,CAAA;AACD,WAAA;;UAED,IAAIryB,WAAW,GAAGpyE,IAAI,CAACqyE,sBAAL,CAA4BpyE,SAA5B,EAAuC,OAAvC,CAAlB,CAAA;UACAmyE,WAAW,CAACnhG,OAAZ,GAAsBA,OAAtB,CAAA;AACD,SAVD,EAUG+uC,MAAM,CAACvmB,KAVV,EAUiBumB,MAAM,CAAChX,GAVxB,CAAA,CAAA;AAWD,OAAA;KAbH,CAAA;AAeD,GAAA;AAxBkB,CAArB;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2Be,SAAS07F,oBAAT,CAA8B/nG,MAA9B,EAAsC;EACnDgoG,sBAAsB,CAAChoG,MAAD,CAAtB,CAAA;EACAioG,2BAA2B,CAACjoG,MAAD,CAA3B,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;;AAEA,SAASgoG,sBAAT,CAAgChoG,MAAhC,EAAwC;EACtC,IAAIA,MAAM,CAACkoG,QAAX,EAAqB;AACnB,IAAA,OAAA;AACD,GAAA;;EAED,IAAIC,iBAAiB,GAAG,KAAxB,CAAA;EACAtxF,MAAA,CAAY7W,MAAM,CAAC0/C,MAAnB,EAA2B,UAAUC,SAAV,EAAqB;AAC9C,IAAA,IAAIA,SAAS,IAAIA,SAAS,CAACz9D,IAAV,KAAmB,UAApC,EAAgD;AAC9CimH,MAAAA,iBAAiB,GAAG,IAApB,CAAA;AACD,KAAA;GAHH,CAAA,CAAA;;AAMA,EAAA,IAAIA,iBAAJ,EAAuB;AACrBnoG,IAAAA,MAAM,CAACkoG,QAAP,GAAkB,CAAC,EAAD,CAAlB,CAAA;AACD,GAAA;AACF,CAAA;AACD;AACA;AACA;AACA;;;AAGA,SAASD,2BAAT,CAAqCjoG,MAArC,EAA6C;EAC3C,IAAI2tC,IAAI,GAAGztB,gBAAA,CAA2BlgB,MAAM,CAACooG,YAAlC,CAAX,CAAA;AACAvxF,EAAAA,MAAA,CAAY82B,IAAZ,EAAkB,UAAU06D,UAAV,EAAsB;AACtC,IAAA,IAAI,CAACxxF,UAAA,CAAgBwxF,UAAhB,CAAL,EAAkC;AAChC,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIhB,aAAa,GAAGgB,UAAU,CAAChB,aAAX,IAA4B,CAAhD,CAAA;IACA,IAAIiB,cAAc,GAAGpoF,gBAAA,CAA2BlgB,MAAM,CAACkoG,QAAlC,CAA4Cb,CAAAA,aAA5C,CAArB,CAAA;;AAEA,IAAA,IAAIiB,cAAc,IAAIA,cAAc,CAACC,mBAArC,EAA0D;MACxD1xF,KAAA,CAAawxF,UAAb,EAAyBC,cAAc,CAACC,mBAAxC,EAA6D,KAA7D,CAAA,CAAA;AACD,KAAA;GAVH,CAAA,CAAA;AAYD;;ACzFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BA,IAAIC,eAAe,GAAG,CAAtB;;AAEA,IAAIxC,YAAY;AAChB;AACA,UAAU3yG,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC0yG,YAAD,EAAe3yG,MAAf,CAAT,CAAA;;AAEA,EAAA,SAAS2yG,YAAT,GAAwB;AACtB,IAAA,IAAIzyG,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa8jH,YAAY,CAAC9jH,IAA1B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDyyG,YAAY,CAAC72H,SAAb,CAAuB8tC,MAAvB,GAAgC,UAAUypF,aAAV,EAAyBxpF,OAAzB,EAAkCxxB,GAAlC,EAAuC;IACrE,IAAKo9B,CAAAA,MAAL,GAAc49E,aAAd,CAAA;IACA,IAAK3/B,CAAAA,IAAL,GAAYr7E,GAAZ,CAAA;;IAEA,IAAI,CAAC,IAAK+8G,CAAAA,SAAV,EAAqB;MACnB,IAAKA,CAAAA,SAAL,GAAiB,EAAjB,CAAA;AACA5sH,MAAAA,MAAI,CAAC6sH,UAAD,EAAW,UAAUC,OAAV,EAAmB3/C,SAAnB,EAA8B;AAC3Ct9D,QAAAA,GAAG,CAACghC,KAAJ,EAAA,CAAYC,EAAZ,CAAeq8B,SAAf,EAA0B,IAAA,CAAKy/C,SAAL,CAAez/C,SAAf,CAA4B9C,GAAAA,MAAI,CAACyiD,OAAD,EAAU,IAAV,CAA1D,CAAA,CAAA;OADE,EAED,IAFC,CAAJ,CAAA;AAGD,KAAA;;AAEDC,IAAAA,cAAc,CAAC,IAAD,EAAO,0BAAP,EAAmClC,aAAa,CAACp/F,GAAd,CAAkB,gBAAlB,CAAnC,EAAwE,SAAxE,CAAd,CAAA;GAXF,CAAA;;EAcA0+F,YAAY,CAAC72H,SAAb,CAAuB4iB,OAAvB,GAAiC,UAAUmrB,OAAV,EAAmBxxB,GAAnB,EAAwB;AACvDuG,IAAAA,OAAK,CAAC,IAAD,EAAO,0BAAP,CAAL,CAAA;IACApW,MAAI,CAAC,KAAK4sH,SAAN,EAAiB,UAAUE,OAAV,EAAmB3/C,SAAnB,EAA8B;AACjDt9D,MAAAA,GAAG,CAACghC,KAAJ,EAAA,CAAY6B,GAAZ,CAAgBy6B,SAAhB,EAA2B2/C,OAA3B,CAAA,CAAA;AACD,KAFG,CAAJ,CAAA;IAGA,IAAKF,CAAAA,SAAL,GAAiB,IAAjB,CAAA;GALF,CAAA;AAOA;AACF;AACA;AACA;;;AAGEzC,EAAAA,YAAY,CAAC72H,SAAb,CAAuB05H,wBAAvB,GAAkD,UAAUtoG,GAAV,EAAe;IAC/D,IAAKuoG,CAAAA,eAAL,CAAqBvoG,GAArB,CAAA,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEylG,EAAAA,YAAY,CAAC72H,SAAb,CAAuB25H,eAAvB,GAAyC,UAAUvoG,GAAV,EAAe;AACtDA,IAAAA,GAAG,IAAI,IAAKwmE,CAAAA,IAAL,CAAU74C,cAAV,CAAyBxzC,MAAM,CAAC;AACrCwH,MAAAA,IAAI,EAAE,oBAAA;KAD8B,EAEnCqe,GAFmC,CAA/B,CAAP,CAAA;GADF,CAAA;;EAMAylG,YAAY,CAAC9jH,IAAb,GAAoB,UAApB,CAAA;AACA,EAAA,OAAO8jH,YAAP,CAAA;AACD,CArDD,CAqDE1pD,aArDF,CAFA,CAAA;;AAyDA,IAAIosD,UAAQ,GAAG;EACbK,SAAS,EAAE,SAAUt2H,SAAAA,CAAAA,CAAV,EAAa;AACtB,IAAA,IAAIu2H,YAAY,CAAC,IAAD,EAAO,OAAP,CAAhB,EAAiC;MAC/B,IAAKC,CAAAA,eAAL,GAAuB,CAACx2H,CAAC,CAAC2S,OAAH,EAAY3S,CAAC,CAAC6S,OAAd,CAAvB,CAAA;AACD,KAAA;GAJU;EAMb4jH,OAAO,EAAE,SAAUz2H,OAAAA,CAAAA,CAAV,EAAa;IACpB,IAAI02H,cAAc,GAAG,IAAA,CAAKF,eAA1B,CAAA;;IAEA,IAAID,YAAY,CAAC,IAAD,EAAO,OAAP,CAAZ,IAA+BG,cAAnC,EAAmD;MACjD,IAAIp/F,KAAK,GAAG,CAACt3B,CAAC,CAAC2S,OAAH,EAAY3S,CAAC,CAAC6S,OAAd,CAAZ,CAAA;AACA,MAAA,IAAIgyC,IAAI,GAAG3oD,IAAI,CAACe,GAAL,CAASy5H,cAAc,CAAC,CAAD,CAAd,GAAoBp/F,KAAK,CAAC,CAAD,CAAlC,EAAuC,CAAvC,CAAA,GAA4Cp7B,IAAI,CAACe,GAAL,CAASy5H,cAAc,CAAC,CAAD,CAAd,GAAoBp/F,KAAK,CAAC,CAAD,CAAlC,EAAuC,CAAvC,CAAvD,CAAA;;MAEA,IAAIutB,IAAI,GAAGkxE,eAAX,EAA4B;AAC1B,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAItwD,MAAM,GAAG,IAAA,CAAKpvB,MAAL,CAAY5oB,gBAAZ,CAA6BkpG,yBAA7B,CAAuD,CAAC32H,CAAC,CAAC2S,OAAH,EAAY3S,CAAC,CAAC6S,OAAd,CAAvD,CAAb,CAAA;;AAEA4yD,MAAAA,MAAM,CAACmxD,QAAP,KAAoB,MAApB,IAA8B,IAAA,CAAKP,eAAL,CAAqB;QACjDQ,gBAAgB,EAAEpxD,MAAM,CAACoxD,gBAAAA;AADwB,OAArB,CAA9B,CAAA;AAGD,KAAA;;IAED,IAAKL,CAAAA,eAAL,GAAuB,IAAvB,CAAA;GAxBW;EA0BbM,SAAS,EAAE,SAAU92H,SAAAA,CAAAA,CAAV,EAAa;AACtB;IACA,IAAI,IAAA,CAAKw2H,eAAL,IAAwB,CAACD,YAAY,CAAC,IAAD,EAAO,WAAP,CAAzC,EAA8D;AAC5D,MAAA,OAAA;AACD,KAAA;;IAED,IAAI59E,KAAK,GAAG,IAAA,CAAKtC,MAAjB,CAAA;AACA,IAAA,IAAIovB,MAAM,GAAG9sB,KAAK,CAAClrB,gBAAN,CAAuBkpG,yBAAvB,CAAiD,CAAC32H,CAAC,CAAC2S,OAAH,EAAY3S,CAAC,CAAC6S,OAAd,CAAjD,CAAb,CAAA;AACA,IAAA,IAAI+jH,QAAQ,GAAGnxD,MAAM,CAACmxD,QAAtB,CAAA;AACAA,IAAAA,QAAQ,KAAK,MAAb,IAAuB,IAAA,CAAKR,wBAAL,CAA8BW,gBAA9B,CAA+Cp+E,KAAK,CAAC9jB,GAAN,CAAU,oBAAV,CAA/C,CAAvB,CAAA;;AAEA,IAAA,IAAA,CAAKuhG,wBAAL,CAA8BQ,QAAQ,KAAK,MAAb,GAAsB,IAAtB;MAC5B;MACAC,gBAAgB,EAAEpxD,MAAM,CAACoxD,gBADzB;AAEA;AACAvtH,MAAAA,SAAS,EAAEstH,QAAQ,KAAK,MAAb,GAAsB,IAAtB,GAA6B;QACtCnoF,QAAQ,EAAE,CAD4B;;AAAA,OAAA;KAJ1C,CAAA,CAAA;AASD,GAAA;AA9CY,CAAf,CAAA;;AAiDA,SAAS8nF,YAAT,CAAsBxiC,IAAtB,EAA4BijC,SAA5B,EAAuC;AACrC,EAAA,IAAIr+E,KAAK,GAAGo7C,IAAI,CAAC19C,MAAjB,CAAA;AACA,EAAA,OAAOsC,KAAK,CAAC9jB,GAAN,CAAU,gBAAV,CAAA,IAA+B8jB,KAAK,CAAC9jB,GAAN,CAAU,qBAAV,CAAA,KAAqCmiG,SAA3E,CAAA;AACD;;AC7JD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,IAAIC,aAAa;AACjB;AACA,UAAUr2G,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACo2G,aAAD,EAAgBr2G,MAAhB,CAAT,CAAA;;AAEA,EAAA,SAASq2G,aAAT,GAAyB;AACvB,IAAA,IAAIn2G,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAawnH,aAAa,CAACxnH,IAA3B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDm2G,EAAAA,aAAa,CAACv6H,SAAd,CAAwBytC,IAAxB,GAA+B,YAAY;IACzCvpB,MAAM,CAAClkB,SAAP,CAAiBytC,IAAjB,CAAsB/c,KAAtB,CAA4B,IAA5B,EAAkC/sB,SAAlC,CAAA,CAAA;;IAEA,IAAK0qD,CAAAA,WAAL,CAAiB,EAAjB,CAAA,CAAA;GAHF,CAAA;;AAMAksE,EAAAA,aAAa,CAACv6H,SAAd,CAAwBquD,WAAxB,GAAsC,UAAUmsE,SAAV,EAAqB;IACzD,IAAI3jE,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;IACA2pG,SAAS,IAAI9yF,KAAA,CAAamvB,UAAb,EAAyB2jE,SAAzB,EAAoC,IAApC,CAAb,CAAA;;AAEA,IAAA,IAAA,CAAKC,eAAL,EAAA,CAAA;GAJF,CAAA;AAMA;AACF;AACA;;;EAGEF,aAAa,CAACv6H,SAAd,CAAwBiiG,QAAxB,GAAmC,UAAUhmD,KAAV,EAAiBlO,OAAjB,EAA0B;AAC3D,IAAA,IAAImqF,aAAa,GAAGj8E,KAAK,CAAC9jB,GAAN,CAAU,eAAV,CAApB,CAAA;AACA,IAAA,OAAO+/F,aAAa,IAAI,IAAjB,IAAyBnqF,OAAO,CAACw7B,YAAR,CAAqB,UAArB,EAAiC2uD,aAAjC,CAAA,KAAoD,IAApF,CAAA;GAFF,CAAA;;AAKAqC,EAAAA,aAAa,CAACv6H,SAAd,CAAwB06H,aAAxB,GAAwC,UAAUtpG,GAAV,EAAe;AACrDsW,IAAAA,MAAA,CAAY,CAAC,gBAAD,EAAmB,kBAAnB,EAAuC,iBAAvC,EAA0D,iBAA1D,EAA6E,kBAA7E,CAAZ,EAA8G,UAAUhhC,IAAV,EAAgB;AAC5H,MAAA,IAAI0qB,GAAG,CAACnB,cAAJ,CAAmBvpB,IAAnB,CAAJ,EAA8B;AAC5B;AACA,QAAA,IAAA,CAAKmqB,MAAL,CAAYnqB,IAAZ,IAAoB0qB,GAAG,CAAC1qB,IAAD,CAAvB,CAAA;AACD,OAAA;AACF,KALD,EAKG,IALH,CAAA,CAAA;GADF,CAAA;;AASA6zH,EAAAA,aAAa,CAACv6H,SAAd,CAAwBy6H,eAAxB,GAA0C,YAAY;AACpD,IAAA,IAAIn8F,UAAU,GAAG,IAAKA,CAAAA,UAAL,GAAkB,EAAnC,CAAA;AACA,IAAA,IAAIq8F,iBAAiB,GAAG,IAAKA,CAAAA,iBAAL,GAAyB,EAAjD,CAAA;IACA,IAAIC,UAAU,GAAGlzF,MAAA,CAAc,IAAKqG,CAAAA,OAAL,CAAa8sF,eAAb,CAA6B;AAC1Dj3E,MAAAA,QAAQ,EAAE,cAAA;AADgD,KAA7B,CAAd,EAEb,UAAU5D,SAAV,EAAqB;AACvB;AACA;MACA,OAAO,CAACA,SAAS,CAAC7nB,GAAV,CAAc,eAAd,CAAkC,IAAA,CAAnC,MAA0C,IAAA,CAAKwY,cAAtD,CAAA;KALe,EAMd,IANc,CAAjB,CAAA;AAOAjJ,IAAAA,MAAA,CAAYkzF,UAAZ,EAAwB,UAAU56E,SAAV,EAAqB;MAC3C1hB,UAAU,CAACv6B,IAAX,CAAgB,KAAA,GAAQi8C,SAAS,CAAC7nB,GAAV,CAAc,KAAd,CAAxB,CAAA,CAAA;AACAwiG,MAAAA,iBAAiB,CAAC52H,IAAlB,CAAuBi8C,SAAS,CAACrP,cAAjC,CAAA,CAAA;KAFF,CAAA,CAAA;GAVF,CAAA;;EAgBA4pF,aAAa,CAACxnH,IAAd,GAAqB,UAArB,CAAA;AACAwnH,EAAAA,aAAa,CAAC7nG,YAAd,GAA6B,CAAC,cAAD,CAA7B,CAAA;EACA6nG,aAAa,CAAC1nE,UAAd,GAA2B,KAA3B,CAAA;EACA0nE,aAAa,CAAC5nG,aAAd,GAA8B;AAC5B;AACAzG,IAAAA,CAAC,EAAE,CAFyB;AAG5BnI,IAAAA,IAAI,EAAE,EAHsB;AAI5BC,IAAAA,GAAG,EAAE,EAJuB;AAK5BkrC,IAAAA,KAAK,EAAE,EALqB;AAM5BC,IAAAA,MAAM,EAAE,EANoB;AAO5B;AACA;AACAvT,IAAAA,MAAM,EAAE,YAToB;AAU5B;AACA;AACAk/E,IAAAA,cAAc,EAAE,KAZY;AAa5BC,IAAAA,gBAAgB,EAAE,IAbU;AAc5BC,IAAAA,eAAe,EAAE,CAdW;AAe5BC,IAAAA,eAAe,EAAE,EAfW;AAgB5BC,IAAAA,cAAc,EAAE,EAhBY;AAiB5BC,IAAAA,kBAAkB,EAAE,EAjBQ;AAkB5B;AACA;IACAC,0BAA0B,EAAE,CAAC,CAAC,IAAF,EAAQ,IAAR,EAAc,GAAd,CApBA;AAqB5BC,IAAAA,mBAAmB,EAAE,OArBO;AAsB5BjC,IAAAA,mBAAmB,EAAE,IAAA;GAtBvB,CAAA;AAwBA,EAAA,OAAOmB,aAAP,CAAA;AACD,CArFD,CAqFExnE,cArFF,CAFA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAIuoE,YAAY;AAChB;AACA,UAAUp3G,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACm3G,YAAD,EAAep3G,MAAf,CAAT,CAAA;;EAEA,SAASo3G,YAAT,CAAsBv9F,GAAtB,EAA2BzX,KAA3B,EAAkC8zC,WAAlC,EAA+CrE,QAA/C,EAAyD2J,SAAzD,EAAoE;AAClE,IAAA,IAAIt7C,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB0Z,GAAlB,EAAuBzX,KAAvB,EAA8B8zC,WAA9B,KAA8C,IAA1D,CAAA;;AAEAh2C,IAAAA,KAAK,CAACrR,IAAN,GAAagjD,QAAQ,IAAI,OAAzB,CAAA;IACA3xC,KAAK,CAACs7C,SAAN,GAAkBA,SAAlB,CAAA;AACA,IAAA,OAAOt7C,KAAP,CAAA;AACD,GAAA;;AAEDk3G,EAAAA,YAAY,CAACt7H,SAAb,CAAuBgmC,YAAvB,GAAsC,YAAY;IAChD,OAAO,IAAA,CAAKjV,gBAAL,CAAsBkH,QAAtB,GAAiCE,GAAjC,CAAqC,QAArC,CAAA,KAAmD,YAA1D,CAAA;GADF,CAAA;;AAIA,EAAA,OAAOmjG,YAAP,CAAA;AACD,CAhBD,CAgBE9gE,IAhBF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS+gE,UAAT,CAAoB11B,KAApB,EAA2B21B,UAA3B,EAAuC18F,MAAvC,EAA+C28F,WAA/C,EAA4DC,OAA5D,EAAqEC,OAArE,EAA8E;EAC3F91B,KAAK,GAAGA,KAAK,IAAI,CAAjB,CAAA;AACA,EAAA,IAAI+1B,UAAU,GAAG98F,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAnC,CAF2F;;EAI3F,IAAI48F,OAAO,IAAI,IAAf,EAAqB;IACnBA,OAAO,GAAGG,UAAQ,CAACH,OAAD,EAAU,CAAC,CAAD,EAAIE,UAAJ,CAAV,CAAlB,CAAA;AACD,GAAA;;EAED,IAAID,OAAO,IAAI,IAAf,EAAqB;AACnBA,IAAAA,OAAO,GAAGn8H,IAAI,CAAC0iB,GAAL,CAASy5G,OAAT,EAAkBD,OAAO,IAAI,IAAX,GAAkBA,OAAlB,GAA4B,CAA9C,CAAV,CAAA;AACD,GAAA;;EAED,IAAID,WAAW,KAAK,KAApB,EAA2B;AACzB,IAAA,IAAIK,UAAU,GAAGt8H,IAAI,CAACyC,GAAL,CAASu5H,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAnC,CAAjB,CAAA;IACAM,UAAU,GAAGD,UAAQ,CAACC,UAAD,EAAa,CAAC,CAAD,EAAIF,UAAJ,CAAb,CAArB,CAAA;AACAF,IAAAA,OAAO,GAAGC,OAAO,GAAGE,UAAQ,CAACC,UAAD,EAAa,CAACJ,OAAD,EAAUC,OAAV,CAAb,CAA5B,CAAA;AACAF,IAAAA,WAAW,GAAG,CAAd,CAAA;AACD,GAAA;;AAEDD,EAAAA,UAAU,CAAC,CAAD,CAAV,GAAgBK,UAAQ,CAACL,UAAU,CAAC,CAAD,CAAX,EAAgB18F,MAAhB,CAAxB,CAAA;AACA08F,EAAAA,UAAU,CAAC,CAAD,CAAV,GAAgBK,UAAQ,CAACL,UAAU,CAAC,CAAD,CAAX,EAAgB18F,MAAhB,CAAxB,CAAA;AACA,EAAA,IAAIi9F,gBAAgB,GAAGC,WAAW,CAACR,UAAD,EAAaC,WAAb,CAAlC,CAAA;AACAD,EAAAA,UAAU,CAACC,WAAD,CAAV,IAA2B51B,KAA3B,CAtB2F;;AAwB3F,EAAA,IAAIo2B,aAAa,GAAGP,OAAO,IAAI,CAA/B,CAAA;AACA,EAAA,IAAIQ,UAAU,GAAGp9F,MAAM,CAAC/V,KAAP,EAAjB,CAAA;AACAgzG,EAAAA,gBAAgB,CAACI,IAAjB,GAAwB,CAAxB,GAA4BD,UAAU,CAAC,CAAD,CAAV,IAAiBD,aAA7C,GAA6DC,UAAU,CAAC,CAAD,CAAV,IAAiBD,aAA9E,CAAA;AACAT,EAAAA,UAAU,CAACC,WAAD,CAAV,GAA0BI,UAAQ,CAACL,UAAU,CAACC,WAAD,CAAX,EAA0BS,UAA1B,CAAlC,CA3B2F;;AA6B3F,EAAA,IAAIE,YAAJ,CAAA;AACAA,EAAAA,YAAY,GAAGJ,WAAW,CAACR,UAAD,EAAaC,WAAb,CAA1B,CAAA;;AAEA,EAAA,IAAIC,OAAO,IAAI,IAAX,KAAoBU,YAAY,CAACD,IAAb,KAAsBJ,gBAAgB,CAACI,IAAvC,IAA+CC,YAAY,CAACC,IAAb,GAAoBX,OAAvF,CAAJ,EAAqG;AACnG;AACAF,IAAAA,UAAU,CAAC,CAAA,GAAIC,WAAL,CAAV,GAA8BD,UAAU,CAACC,WAAD,CAAV,GAA0BM,gBAAgB,CAACI,IAAjB,GAAwBT,OAAhF,CAAA;AACD,GAnC0F;;;AAsC3FU,EAAAA,YAAY,GAAGJ,WAAW,CAACR,UAAD,EAAaC,WAAb,CAA1B,CAAA;;EAEA,IAAIE,OAAO,IAAI,IAAX,IAAmBS,YAAY,CAACC,IAAb,GAAoBV,OAA3C,EAAoD;AAClDH,IAAAA,UAAU,CAAC,CAAA,GAAIC,WAAL,CAAV,GAA8BD,UAAU,CAACC,WAAD,CAAV,GAA0BW,YAAY,CAACD,IAAb,GAAoBR,OAA5E,CAAA;AACD,GAAA;;AAED,EAAA,OAAOH,UAAP,CAAA;AACD,CAAA;;AAED,SAASQ,WAAT,CAAqBR,UAArB,EAAiCC,WAAjC,EAA8C;AAC5C,EAAA,IAAItzE,IAAI,GAAGqzE,UAAU,CAACC,WAAD,CAAV,GAA0BD,UAAU,CAAC,CAAA,GAAIC,WAAL,CAA/C,CAD4C;AAE5C;;EAEA,OAAO;AACLY,IAAAA,IAAI,EAAE78H,IAAI,CAACyC,GAAL,CAASkmD,IAAT,CADD;AAELg0E,IAAAA,IAAI,EAAEh0E,IAAI,GAAG,CAAP,GAAW,CAAC,CAAZ,GAAgBA,IAAI,GAAG,CAAP,GAAW,CAAX,GAAeszE,WAAW,GAAG,CAAC,CAAJ,GAAQ,CAAA;GAF1D,CAAA;AAID,CAAA;;AAED,SAASI,UAAT,CAAkB38F,KAAlB,EAAyB3zB,MAAzB,EAAiC;AAC/B,EAAA,OAAO/L,IAAI,CAAC8iC,GAAL,CAAS/2B,MAAM,CAAC,CAAD,CAAN,IAAa,IAAb,GAAoBA,MAAM,CAAC,CAAD,CAA1B,GAAgCgc,QAAzC,EAAmD/nB,IAAI,CAAC0iB,GAAL,CAAS3W,MAAM,CAAC,CAAD,CAAN,IAAa,IAAb,GAAoBA,MAAM,CAAC,CAAD,CAA1B,GAAgC,CAACgc,QAA1C,EAAoD2X,KAApD,CAAnD,CAAP,CAAA;AACD;;AC1HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsCA,IAAIxyB,MAAI,GAAGg7B,MAAX,CAAA;AACA,IAAIrF,SAAO,GAAG7iC,IAAI,CAAC8iC,GAAnB,CAAA;AACA,IAAIC,SAAO,GAAG/iC,IAAI,CAAC0iB,GAAnB,CAAA;AACA,IAAIo6G,SAAS,GAAG98H,IAAI,CAACumC,KAArB,CAAA;AACA,IAAIw2F,QAAQ,GAAG/8H,IAAI,CAACopD,IAApB,CAAA;AACA,IAAInmD,KAAK,GAAGizE,OAAZ,CAAA;AACA,IAAI91E,IAAE,GAAGJ,IAAI,CAACI,EAAd,CAAA;;AAEA,IAAI48H,QAAQ;AACZ;AACA,YAAY;AACV,EAAA,SAASA,QAAT,CAAkBjF,aAAlB,EAAiCxpF,OAAjC,EAA0CxxB,GAA1C,EAA+C;IAC7C,IAAKxJ,CAAAA,IAAL,GAAY,UAAZ,CAAA;AACA;AACJ;AACA;;AAEI,IAAA,IAAA,CAAKkrD,QAAL,GAAgBv2B,aAAA,EAAhB,CAAA;AACA;AACJ;AACA;AACA;;IAEI,IAAK+0F,CAAAA,WAAL,GAAmB,EAAnB,CAAA;AACA,IAAA,IAAA,CAAKn+F,UAAL,GAAkBi5F,aAAa,CAACj5F,UAAhC,CAAA;IACA,IAAKqb,CAAAA,MAAL,GAAc49E,aAAd,CAAA;;AAEA,IAAA,IAAA,CAAKmF,KAAL,CAAWnF,aAAX,EAA0BxpF,OAA1B,EAAmCxxB,GAAnC,CAAA,CAAA;AACD,GAAA;;EAEDigH,QAAQ,CAACx8H,SAAT,CAAmB08H,KAAnB,GAA2B,UAAUnF,aAAV,EAAyBxpF,OAAzB,EAAkCxxB,GAAlC,EAAuC;AAChE,IAAA,IAAI+hB,UAAU,GAAGi5F,aAAa,CAACj5F,UAA/B,CAAA;AACA,IAAA,IAAIq8F,iBAAiB,GAAGpD,aAAa,CAACoD,iBAAtC,CAAA;AACAjuH,IAAAA,MAAI,CAAC4xB,UAAD,EAAa,UAAUP,GAAV,EAAerO,GAAf,EAAoB;AACnC,MAAA,IAAIgwC,SAAS,GAAGi7D,iBAAiB,CAACjrG,GAAD,CAAjC,CAAA;MACA,IAAIswB,SAAS,GAAGjS,OAAO,CAACw7B,YAAR,CAAqB,cAArB,EAAqC7J,SAArC,CAAhB,CAAA;;AAEA,MAAA,IAAI/1B,IAAI,GAAG,IAAA,CAAKs0B,QAAL,CAAchM,GAAd,CAAkBl0B,GAAlB,EAAuB,IAAIu9F,YAAJ,CAAiBv9F,GAAjB,EAAsB4+F,oBAAA,CAA8B38E,SAA9B,CAAtB,EAAgE,CAAC,CAAD,EAAI,CAAJ,CAAhE,EAAwEA,SAAS,CAAC7nB,GAAV,CAAc,MAAd,CAAxE,EAA+FunC,SAA/F,CAAvB,CAAX,CAAA;;AAEA,MAAA,IAAImB,UAAU,GAAGl3B,IAAI,CAAC52B,IAAL,KAAc,UAA/B,CAAA;MACA42B,IAAI,CAAC4P,MAAL,GAAcsnB,UAAU,IAAI7gB,SAAS,CAAC7nB,GAAV,CAAc,aAAd,CAA5B,CAAA;MACAwR,IAAI,CAACzD,OAAL,GAAe8Z,SAAS,CAAC7nB,GAAV,CAAc,SAAd,CAAf,CARmC;;MAUnC6nB,SAAS,CAACrW,IAAV,GAAiBA,IAAjB,CAAA;MACAA,IAAI,CAACsS,KAAL,GAAa+D,SAAb,CAAA;AACArW,MAAAA,IAAI,CAAC5Y,gBAAL,GAAwBivB,SAAS,CAACjvB,gBAAV,GAA6B,IAArD,CAAA;KAZE,EAaD,IAbC,CAAJ,CAAA;GAHF,CAAA;AAkBA;AACF;AACA;;;EAGEyrG,QAAQ,CAACx8H,SAAT,CAAmBi8B,MAAnB,GAA4B,UAAU8R,OAAV,EAAmBxxB,GAAnB,EAAwB;AAClD,IAAA,IAAA,CAAKqgH,qBAAL,CAA2B,IAAKjjF,CAAAA,MAAhC,EAAwC5L,OAAxC,CAAA,CAAA;GADF,CAAA;;AAIAyuF,EAAAA,QAAQ,CAACx8H,SAAT,CAAmB2sD,YAAnB,GAAkC,UAAU/xB,KAAV,EAAiB;AACjD,IAAA,IAAImhE,UAAU,GAAG,IAAK8gC,CAAAA,eAAL,EAAjB,CAAA;;AAEA,IAAA,IAAIC,QAAQ,GAAG/gC,UAAU,CAAC+gC,QAA1B,CAAA;AACA,IAAA,IAAIC,UAAU,GAAGhhC,UAAU,CAACghC,UAA5B,CAAA;AACA,IAAA,IAAIC,aAAa,GAAGjhC,UAAU,CAACihC,aAA/B,CAAA;AACA,IAAA,IAAIC,KAAK,GAAGriG,KAAK,CAAC,CAAA,GAAIoiG,aAAL,CAAjB,CAAA;AACA,IAAA,IAAIE,OAAO,GAAGtiG,KAAK,CAACoiG,aAAD,CAAnB,CAAA;IACA,OAAOC,KAAK,IAAIH,QAAT,IAAqBG,KAAK,IAAIH,QAAQ,GAAG/gC,UAAU,CAACohC,UAApD,IAAkED,OAAO,IAAIH,UAA7E,IAA2FG,OAAO,IAAIH,UAAU,GAAGhhC,UAAU,CAACqhC,YAArI,CAAA;GARF,CAAA;;AAWAZ,EAAAA,QAAQ,CAACx8H,SAAT,CAAmBi4B,QAAnB,GAA8B,YAAY;AACxC,IAAA,OAAO,KAAK0hB,MAAZ,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;EAGE6iF,QAAQ,CAACx8H,SAAT,CAAmB48H,qBAAnB,GAA2C,UAAUrF,aAAV,EAAyBxpF,OAAzB,EAAkC;AAC3EA,IAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;MACxC,IAAI,CAAC6gG,aAAa,CAACt1B,QAAd,CAAuBvrE,WAAvB,EAAoCqX,OAApC,CAAL,EAAmD;AACjD,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAI7Z,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACArlB,MAAAA,MAAI,CAAC,IAAK4xB,CAAAA,UAAN,EAAkB,UAAUP,GAAV,EAAe;QACnC,IAAI4L,IAAI,GAAG,IAAKs0B,CAAAA,QAAL,CAAc9lC,GAAd,CAAkB4F,GAAlB,CAAX,CAAA;;AAEA4L,QAAAA,IAAI,CAACrjB,KAAL,CAAW46C,mBAAX,CAA+BhtC,IAA/B,EAAqCA,IAAI,CAACgK,YAAL,CAAkBH,GAAlB,CAArC,CAAA,CAAA;QACA4+F,eAAA,CAA2BhzF,IAAI,CAACrjB,KAAhC,EAAuCqjB,IAAI,CAACsS,KAA5C,CAAA,CAAA;OAJE,EAKD,IALC,CAAJ,CAAA;AAMD,KAZD,EAYG,IAZH,CAAA,CAAA;GADF,CAAA;AAeA;AACF;AACA;;;EAGEugF,QAAQ,CAACx8H,SAAT,CAAmBwf,MAAnB,GAA4B,UAAU+3G,aAAV,EAAyBh7G,GAAzB,EAA8B;IACxD,IAAK60C,CAAAA,KAAL,GAAaisE,aAAA,CAAyB9F,aAAa,CAACrzE,kBAAd,EAAzB,EAA6D;AACxEz6C,MAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADiE;MAExEhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;AAFgE,KAA7D,CAAb,CAAA;;AAKA,IAAA,IAAA,CAAK26G,WAAL,EAAA,CAAA;GANF,CAAA;;AASAd,EAAAA,QAAQ,CAACx8H,SAAT,CAAmBg7D,OAAnB,GAA6B,YAAY;AACvC,IAAA,OAAO,KAAK5J,KAAZ,CAAA;GADF,CAAA;;AAIAorE,EAAAA,QAAQ,CAACx8H,SAAT,CAAmB68H,eAAnB,GAAqC,YAAY;IAC/C,IAAItF,aAAa,GAAG,IAAA,CAAK59E,MAAzB,CAAA;IACA,IAAI/2C,IAAI,GAAG,IAAA,CAAKwuD,KAAhB,CAAA;AACA,IAAA,IAAIisD,EAAE,GAAG,CAAC,GAAD,EAAM,GAAN,CAAT,CAAA;AACA,IAAA,IAAIC,EAAE,GAAG,CAAC,OAAD,EAAU,QAAV,CAAT,CAAA;AACA,IAAA,IAAI1hE,MAAM,GAAG27E,aAAa,CAACp/F,GAAd,CAAkB,QAAlB,CAAb,CAAA;IACA,IAAI6kG,aAAa,GAAGphF,MAAM,KAAK,YAAX,GAA0B,CAA1B,GAA8B,CAAlD,CAAA;IACA,IAAIwhF,YAAY,GAAGx6H,IAAI,CAAC06G,EAAE,CAAC0f,aAAD,CAAH,CAAvB,CAAA;AACA,IAAA,IAAIO,YAAY,GAAG,CAAC,CAAD,EAAIH,YAAJ,CAAnB,CAAA;AACA,IAAA,IAAII,SAAS,GAAG,IAAKl/F,CAAAA,UAAL,CAAgBt7B,MAAhC,CAAA;AACA,IAAA,IAAIi4H,eAAe,GAAGY,QAAQ,CAACtE,aAAa,CAACp/F,GAAd,CAAkB,iBAAlB,CAAD,EAAuColG,YAAvC,CAA9B,CAAA;AACA,IAAA,IAAIvC,eAAe,GAAGa,QAAQ,CAACtE,aAAa,CAACp/F,GAAd,CAAkB,iBAAlB,CAAA,IAAwC,CAAzC,EAA4C,CAAC,CAAD,EAAIqlG,SAAJ,CAA5C,CAA9B,CAAA;AACA,IAAA,IAAI1C,cAAc,GAAGvD,aAAa,CAACp/F,GAAd,CAAkB,gBAAlB,CAAA,IAAuCqlG,SAAS,GAAG,CAAnD,IAAwDA,SAAS,GAAGxC,eAApE,IAAuFA,eAAe,GAAG,CAAzG,IAA8GC,eAAe,GAAG,CAAhI,IAAqImC,YAAY,GAAG,CAAzK,CAZ+C;AAa/C;AACA;;AAEA,IAAA,IAAIjD,gBAAgB,GAAG5C,aAAa,CAACp/F,GAAd,CAAkB,kBAAlB,CAAvB,CAAA;AACA,IAAA,IAAIslG,OAAJ,CAAA;;IAEA,IAAI,CAACtD,gBAAL,EAAuB;MACrBsD,OAAO,GAAG5B,QAAQ,CAACZ,eAAe,IAAID,eAAe,GAAG,CAAtB,CAAhB,EAA0CuC,YAA1C,CAAlB,CAAA;AACA,MAAA,IAAIxC,gBAAgB,GAAGxD,aAAa,CAACp/F,GAAd,CAAkB,kBAAlB,CAAA,IAAyCmkG,SAAS,CAACkB,SAAS,GAAG,CAAb,CAAzE,CAAA;MACArD,gBAAgB,GAAG,CAACc,eAAe,GAAGF,gBAAlB,GAAqC0C,OAAO,GAAG,CAAhD,CAAnB,CAAA;MACAtD,gBAAgB,CAAC,CAAD,CAAhB,GAAsBA,gBAAgB,CAAC,CAAD,CAAhB,GAAsBsD,OAA5C,CAAA;AACD,KALD,MAKO;AACLA,MAAAA,OAAO,GAAG5B,QAAQ,CAAC1B,gBAAgB,CAAC,CAAD,CAAhB,GAAsBA,gBAAgB,CAAC,CAAD,CAAvC,EAA4CoD,YAA5C,CAAlB,CAAA;MACApD,gBAAgB,CAAC,CAAD,CAAhB,GAAsBA,gBAAgB,CAAC,CAAD,CAAhB,GAAsBsD,OAA5C,CAAA;AACD,KAAA;;AAED,IAAA,IAAIC,iBAAiB,GAAG,CAACN,YAAY,GAAGK,OAAhB,KAA4BD,SAAS,GAAGxC,eAAxC,CAAxB,CA7B+C;;AA+B/C0C,IAAAA,iBAAiB,GAAG,CAApB,KAA0BA,iBAAiB,GAAG,CAA9C,EA/B+C;;AAiC/C,IAAA,IAAIC,eAAe,GAAG,CAACrB,SAAS,CAAC75H,KAAK,CAAC03H,gBAAgB,CAAC,CAAD,CAAhB,GAAsBc,eAAvB,EAAwC,CAAxC,CAAN,CAAT,GAA6D,CAA9D,EAAiEsB,QAAQ,CAAC95H,KAAK,CAAC03H,gBAAgB,CAAC,CAAD,CAAhB,GAAsBc,eAAvB,EAAwC,CAAxC,CAAN,CAAR,GAA4D,CAA7H,CAAtB,CAjC+C;;IAmC/C,IAAI2C,oBAAoB,GAAGF,iBAAiB,GAAGzC,eAApB,GAAsCd,gBAAgB,CAAC,CAAD,CAAjF,CAAA;IACA,OAAO;AACLv+E,MAAAA,MAAM,EAAEA,MADH;AAELohF,MAAAA,aAAa,EAAEA,aAFV;AAGLD,MAAAA,UAAU,EAAEn6H,IAAI,CAACy6G,EAAE,CAAC2f,aAAD,CAAH,CAHX;AAILI,MAAAA,YAAY,EAAEA,YAJT;MAKLN,QAAQ,EAAEl6H,IAAI,CAACy6G,EAAE,CAAC,CAAI2f,GAAAA,aAAL,CAAH,CALT;MAMLG,UAAU,EAAEv6H,IAAI,CAAC06G,EAAE,CAAC,CAAI0f,GAAAA,aAAL,CAAH,CANX;AAOLlC,MAAAA,cAAc,EAAEA,cAPX;AAQLG,MAAAA,eAAe,EAAEA,eARZ;AASLyC,MAAAA,iBAAiB,EAAEA,iBATd;AAULvD,MAAAA,gBAAgB,EAAEA,gBAVb;AAWLqD,MAAAA,SAAS,EAAEA,SAXN;AAYLG,MAAAA,eAAe,EAAEA,eAZZ;AAaLC,MAAAA,oBAAoB,EAAEA,oBAAAA;KAbxB,CAAA;GApCF,CAAA;;AAqDApB,EAAAA,QAAQ,CAACx8H,SAAT,CAAmBs9H,WAAnB,GAAiC,YAAY;IAC3C,IAAI16H,IAAI,GAAG,IAAA,CAAKwuD,KAAhB,CAAA;IACA,IAAIoN,IAAI,GAAG,IAAA,CAAKP,QAAhB,CAAA;IACA,IAAI3/B,UAAU,GAAG,IAAA,CAAKA,UAAtB,CAAA;;AAEA,IAAA,IAAIy9D,UAAU,GAAG,IAAK8gC,CAAAA,eAAL,EAAjB,CAAA;;AAEA,IAAA,IAAIjhF,MAAM,GAAGmgD,UAAU,CAACngD,MAAxB,CAAA;AACA4iB,IAAAA,IAAI,CAAC9xD,IAAL,CAAU,UAAUi9B,IAAV,EAAgB;MACxB,IAAI6B,UAAU,GAAG,CAAC,CAAD,EAAIuwD,UAAU,CAACohC,UAAf,CAAjB,CAAA;MACA,IAAIztG,GAAG,GAAGia,IAAI,CAACzD,OAAL,GAAe,CAAf,GAAmB,CAA7B,CAAA;AACAyD,MAAAA,IAAI,CAACwzB,SAAL,CAAe3xB,UAAU,CAAC9b,GAAD,CAAzB,EAAgC8b,UAAU,CAAC,CAAI9b,GAAAA,GAAL,CAA1C,CAAA,CAAA;KAHF,CAAA,CAAA;AAKAhjB,IAAAA,MAAI,CAAC4xB,UAAD,EAAa,UAAUP,GAAV,EAAerO,GAAf,EAAoB;AACnC,MAAA,IAAIygG,OAAO,GAAG,CAACp0B,UAAU,CAAC++B,cAAX,GAA4B+C,oBAA5B,GAAmDC,uBAApD,EAA6EpuG,GAA7E,EAAkFqsE,UAAlF,CAAd,CAAA;AACA,MAAA,IAAIgiC,aAAa,GAAG;AAClBC,QAAAA,UAAU,EAAE;UACVv9H,CAAC,EAAE0vH,OAAO,CAACrsG,QADD;UAEVpjB,CAAC,EAAEq7F,UAAU,CAACohC,UAAAA;SAHE;AAKlBc,QAAAA,QAAQ,EAAE;AACRx9H,UAAAA,CAAC,EAAE,CADK;UAERC,CAAC,EAAEyvH,OAAO,CAACrsG,QAAAA;AAFH,SAAA;OALZ,CAAA;AAUA,MAAA,IAAIo6G,aAAa,GAAG;QAClBF,UAAU,EAAEp+H,IAAE,GAAG,CADC;AAElBq+H,QAAAA,QAAQ,EAAE,CAAA;OAFZ,CAAA;MAIA,IAAIn6G,QAAQ,GAAG,CAACi6G,aAAa,CAACniF,MAAD,CAAb,CAAsBn7C,CAAtB,GAA0BmC,IAAI,CAACnC,CAAhC,EAAmCs9H,aAAa,CAACniF,MAAD,CAAb,CAAsBl7C,CAAtB,GAA0BkC,IAAI,CAAClC,CAAlE,CAAf,CAAA;AACA,MAAA,IAAI8xB,QAAQ,GAAG0rG,aAAa,CAACtiF,MAAD,CAA5B,CAAA;AACA,MAAA,IAAI9vC,SAAS,GAAGm3D,QAAA,EAAhB,CAAA;AACAA,MAAAA,MAAA,CAAcn3D,SAAd,EAAyBA,SAAzB,EAAoC0mB,QAApC,CAAA,CAAA;MACAywC,SAAA,CAAiBn3D,SAAjB,EAA4BA,SAA5B,EAAuCgY,QAAvC,CAAA,CApBmC;AAqBnC;AACA;AACA;;MAEA,IAAK24G,CAAAA,WAAL,CAAiB1+F,GAAjB,CAAwB,GAAA;AACtBja,QAAAA,QAAQ,EAAEA,QADY;AAEtB0O,QAAAA,QAAQ,EAAEA,QAFY;AAGtB1mB,QAAAA,SAAS,EAAEA,SAHW;QAItBk5D,sBAAsB,EAAEmrD,OAAO,CAACnrD,sBAJV;QAKtBgD,aAAa,EAAEmoD,OAAO,CAACnoD,aALD;QAMtB3C,oBAAoB,EAAE8qD,OAAO,CAAC9qD,oBANR;AAOtB9J,QAAAA,aAAa,EAAE,CAPO;AAQtBD,QAAAA,cAAc,EAAE,CAAA;OARlB,CAAA;KAzBE,EAmCD,IAnCC,CAAJ,CAAA;GAbF,CAAA;AAkDA;AACF;AACA;;;AAGEkhE,EAAAA,QAAQ,CAACx8H,SAAT,CAAmB4pC,OAAnB,GAA6B,UAAU7L,GAAV,EAAe;AAC1C,IAAA,OAAO,KAAKkgC,QAAL,CAAc9lC,GAAd,CAAkB4F,GAAlB,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;EAGEy+F,QAAQ,CAACx8H,SAAT,CAAmBq/B,WAAnB,GAAiC,UAAUH,KAAV,EAAiBnB,GAAjB,EAAsB;AACrD,IAAA,OAAO,KAAKogG,gBAAL,CAAsB,IAAKlgE,CAAAA,QAAL,CAAc9lC,GAAd,CAAkB4F,GAAlB,CAAA,CAAuBiM,WAAvB,CAAmC9K,KAAnC,CAAtB,EAAiEnB,GAAjE,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;AACA;;;AAGEy+F,EAAAA,QAAQ,CAACx8H,SAAT,CAAmBg4H,eAAnB,GAAqC,UAAU9jG,IAAV,EAAgBmxE,QAAhB,EAA0B13E,KAA1B,EAAiCuP,GAAjC,EAAsC;AACzEvP,IAAAA,KAAK,IAAI,IAAT,KAAkBA,KAAK,GAAG,CAA1B,CAAA,CAAA;IACAuP,GAAG,IAAI,IAAP,KAAgBA,GAAG,GAAGhJ,IAAI,CAAC0T,KAAL,EAAtB,CAAA,CAAA;IACA,IAAIy2B,OAAO,GAAG,IAAA,CAAKJ,QAAnB,CAAA;IACA,IAAI3/B,UAAU,GAAG,IAAA,CAAKA,UAAtB,CAAA;IACA,IAAI8/F,cAAc,GAAG,EAArB,CAAA;IACA,IAAIxD,UAAU,GAAG,EAAjB,CAAA;AACAlzF,IAAAA,MAAA,CAAYpJ,UAAZ,EAAwB,UAAUy8B,OAAV,EAAmB;MACzCqjE,cAAc,CAACr6H,IAAf,CAAoBmwB,IAAI,CAACgK,YAAL,CAAkB68B,OAAlB,CAApB,CAAA,CAAA;MACA6/D,UAAU,CAAC72H,IAAX,CAAgBs6D,OAAO,CAAClmC,GAAR,CAAY4iC,OAAZ,CAAA,CAAqB9e,KAArC,CAAA,CAAA;KAFF,CAAA,CAAA;AAIA,IAAA,IAAIoiF,YAAY,GAAG,IAAKC,CAAAA,cAAL,EAAnB,CAAA;;IAEA,KAAK,IAAInqG,SAAS,GAAGxG,KAArB,EAA4BwG,SAAS,GAAG+I,GAAxC,EAA6C/I,SAAS,EAAtD,EAA0D;MACxD,IAAI4jG,WAAW,GAAG,KAAK,CAAvB,CAAA;;MAEA,IAAI,CAACsG,YAAL,EAAmB;AACjBtG,QAAAA,WAAW,GAAG,QAAd,CAAA;AACD,OAFD,MAEO;AACLA,QAAAA,WAAW,GAAG,QAAd,CAAA;QACA,IAAIplD,MAAM,GAAGz+C,IAAI,CAAC0+C,SAAL,CAAewrD,cAAf,EAA+BjqG,SAA/B,CAAb,CAAA;;AAEA,QAAA,KAAK,IAAIvL,CAAC,GAAG,CAAR,EAAW21G,IAAI,GAAGjgG,UAAU,CAACt7B,MAAlC,EAA0C4lB,CAAC,GAAG21G,IAA9C,EAAoD31G,CAAC,EAArD,EAAyD;AACvD,UAAA,IAAIs5B,KAAK,GAAG04E,UAAU,CAAChyG,CAAD,CAAV,CAAc41G,cAAd,CAA6B7rD,MAAM,CAAC/pD,CAAD,CAAnC,CAAZ,CAAA;;UAEA,IAAIs5B,KAAK,KAAK,UAAd,EAA0B;AACxB61E,YAAAA,WAAW,GAAG,UAAd,CAAA;AACA,YAAA,MAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAED1yB,MAAAA,QAAQ,CAAC0yB,WAAD,EAAc5jG,SAAd,CAAR,CAAA;AACD,KAAA;GAjCH,CAAA;AAmCA;AACF;AACA;;;AAGEqoG,EAAAA,QAAQ,CAACx8H,SAAT,CAAmBs+H,cAAnB,GAAoC,YAAY;IAC9C,IAAIhgG,UAAU,GAAG,IAAA,CAAKA,UAAtB,CAAA;IACA,IAAI+/B,OAAO,GAAG,IAAA,CAAKJ,QAAnB,CAAA;IACA,IAAIogE,YAAY,GAAG,KAAnB,CAAA;;AAEA,IAAA,KAAK,IAAIz1G,CAAC,GAAG,CAAR,EAAW21G,IAAI,GAAGjgG,UAAU,CAACt7B,MAAlC,EAA0C4lB,CAAC,GAAG21G,IAA9C,EAAoD31G,CAAC,EAArD,EAAyD;AACvD,MAAA,IAAIy1C,OAAO,CAAClmC,GAAR,CAAYmG,UAAU,CAAC1V,CAAD,CAAtB,CAAA,CAA2BqzB,KAA3B,CAAiCuiF,cAAjC,EAAA,KAAsD,QAA1D,EAAoE;AAClEH,QAAAA,YAAY,GAAG,IAAf,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAOA,YAAP,CAAA;GAXF,CAAA;AAaA;AACF;AACA;AACA;;;EAGE7B,QAAQ,CAACx8H,SAAT,CAAmBm+H,gBAAnB,GAAsC,UAAUl1F,KAAV,EAAiBlL,GAAjB,EAAsB;AAC1D,IAAA,IAAI0gG,UAAU,GAAG,IAAA,CAAKhC,WAAL,CAAiB1+F,GAAjB,CAAjB,CAAA;AACA,IAAA,OAAOhH,gBAAA,CAAuB,CAACkS,KAAD,EAAQ,CAAR,CAAvB,EAAmCw1F,UAAU,CAAC3yH,SAA9C,CAAP,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;AAGE0wH,EAAAA,QAAQ,CAACx8H,SAAT,CAAmB0+H,aAAnB,GAAmC,UAAU3gG,GAAV,EAAe;IAChD,OAAO2J,OAAA,CAAa,KAAK+0F,WAAL,CAAiB1+F,GAAjB,CAAb,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEy+F,EAAAA,QAAQ,CAACx8H,SAAT,CAAmBi6H,yBAAnB,GAA+C,UAAUr/F,KAAV,EAAiB;AAC9D,IAAA,IAAImhE,UAAU,GAAG,IAAK8gC,CAAAA,eAAL,EAAjB,CAAA;;AAEA,IAAA,IAAIG,aAAa,GAAGjhC,UAAU,CAACihC,aAA/B,CAAA;AACA,IAAA,IAAI7C,gBAAgB,GAAGp+B,UAAU,CAACo+B,gBAAX,CAA4BpxG,KAA5B,EAAvB,CAAA;IACA,IAAI00G,OAAO,GAAGtD,gBAAgB,CAAC,CAAD,CAAhB,GAAsBA,gBAAgB,CAAC,CAAD,CAApD,CAAA;AACA,IAAA,IAAIr7F,MAAM,GAAG,CAAC,CAAD,EAAIi9D,UAAU,CAACk/B,eAAX,IAA8Bl/B,UAAU,CAACyhC,SAAX,GAAuB,CAArD,CAAJ,CAAb,CAN8D;;AAQ9D,IAAA,IAAI,CAAC,IAAK7wE,CAAAA,YAAL,CAAkB/xB,KAAlB,CAAL,EAA+B;MAC7B,OAAO;AACLs/F,QAAAA,QAAQ,EAAE,MADL;AAELC,QAAAA,gBAAgB,EAAEA,gBAAAA;OAFpB,CAAA;AAID,KAb6D;;;AAgB9D,IAAA,IAAIwE,UAAU,GAAG/jG,KAAK,CAACoiG,aAAD,CAAL,GAAuBjhC,UAAU,CAACghC,UAAlC,GAA+ChhC,UAAU,CAAC6hC,oBAA3E,CAhB8D;AAiB9D;;AAEA,IAAA,IAAI/3B,KAAJ,CAAA;IACA,IAAIq0B,QAAQ,GAAG,OAAf,CAAA;AACA,IAAA,IAAIwD,iBAAiB,GAAG3hC,UAAU,CAAC2hC,iBAAnC,CAAA;;IAEA,IAAIkB,WAAW,GAAG,IAAA,CAAKjlF,MAAL,CAAYxhB,GAAZ,CAAgB,4BAAhB,CAAlB,CAvB8D;;;AA0B9D,IAAA,IAAI0mG,OAAO,GAAGD,WAAW,CAAC,CAAD,CAAX,IAAkB,IAAhC,CAAA;;AAEA,IAAA,IAAIlB,iBAAJ,EAAuB;AACrB,MAAA,IAAImB,OAAO,IAAInB,iBAAX,IAAgCiB,UAAU,GAAGlB,OAAO,GAAGmB,WAAW,CAAC,CAAD,CAAtE,EAA2E;AACzE1E,QAAAA,QAAQ,GAAG,MAAX,CAAA;QACAr0B,KAAK,GAAG84B,UAAU,GAAGlB,OAAO,GAAGmB,WAAW,CAAC,CAAD,CAA1C,CAAA;AACD,OAHD,MAGO,IAAIC,OAAO,IAAInB,iBAAX,IAAgCiB,UAAU,GAAGlB,OAAO,IAAI,IAAImB,WAAW,CAAC,CAAD,CAAnB,CAAxD,EAAiF;AACtF1E,QAAAA,QAAQ,GAAG,MAAX,CAAA;QACAr0B,KAAK,GAAG84B,UAAU,GAAGlB,OAAO,IAAI,IAAImB,WAAW,CAAC,CAAD,CAAnB,CAA5B,CAAA;AACD,OAHM,MAGA;AACL,QAAA,CAAC/4B,KAAK,GAAG84B,UAAU,GAAGlB,OAAO,GAAGmB,WAAW,CAAC,CAAD,CAA3C,KAAmD,CAAnD,IAAwD,CAAC/4B,KAAK,GAAG84B,UAAU,GAAGlB,OAAO,IAAI,CAAA,GAAImB,WAAW,CAAC,CAAD,CAAnB,CAA7B,KAAyD,CAAjH,KAAuH/4B,KAAK,GAAG,CAA/H,CAAA,CAAA;AACD,OAAA;;AAEDA,MAAAA,KAAK,IAAI9J,UAAU,CAACk/B,eAAX,GAA6ByC,iBAAtC,CAAA;MACA73B,KAAK,GAAG01B,UAAU,CAAC11B,KAAD,EAAQs0B,gBAAR,EAA0Br7F,MAA1B,EAAkC,KAAlC,CAAb;QACHo7F,QAAQ,GAAG,MADb,CAAA;AAED,KAdD;SAeK;MACD,IAAI4E,QAAQ,GAAG3E,gBAAgB,CAAC,CAAD,CAAhB,GAAsBA,gBAAgB,CAAC,CAAD,CAArD,CAAA;MACA,IAAIt1D,GAAG,GAAG/lC,MAAM,CAAC,CAAD,CAAN,GAAY6/F,UAAZ,GAAyBG,QAAnC,CAAA;AACA3E,MAAAA,gBAAgB,GAAG,CAAC53F,SAAO,CAAC,CAAD,EAAIsiC,GAAG,GAAGi6D,QAAQ,GAAG,CAArB,CAAR,CAAnB,CAAA;AACA3E,MAAAA,gBAAgB,CAAC,CAAD,CAAhB,GAAsB93F,SAAO,CAACvD,MAAM,CAAC,CAAD,CAAP,EAAYq7F,gBAAgB,CAAC,CAAD,CAAhB,GAAsB2E,QAAlC,CAA7B,CAAA;MACA3E,gBAAgB,CAAC,CAAD,CAAhB,GAAsBA,gBAAgB,CAAC,CAAD,CAAhB,GAAsB2E,QAA5C,CAAA;AACD,KAAA;;IAEH,OAAO;AACL3E,MAAAA,gBAAgB,EAAEA,gBADb;AAELD,MAAAA,QAAQ,EAAEA,QAAAA;KAFZ,CAAA;GAnDF,CAAA;;AAyDA,EAAA,OAAOsC,QAAP,CAAA;AACD,CAvWD,EAFA,CAAA;;AA2WA,SAASX,QAAT,CAAkB9uH,GAAlB,EAAuB+xB,MAAvB,EAA+B;AAC7B,EAAA,OAAOuD,SAAO,CAACE,SAAO,CAACx1B,GAAD,EAAM+xB,MAAM,CAAC,CAAD,CAAZ,CAAR,EAA0BA,MAAM,CAAC,CAAD,CAAhC,CAAd,CAAA;AACD,CAAA;;AAED,SAASg/F,uBAAT,CAAiCp+D,SAAjC,EAA4Cq8B,UAA5C,EAAwD;EACtD,IAAI5oE,IAAI,GAAG4oE,UAAU,CAACqhC,YAAX,IAA2BrhC,UAAU,CAACyhC,SAAX,GAAuB,CAAlD,CAAX,CAAA;EACA,OAAO;IACL15G,QAAQ,EAAEqP,IAAI,GAAGusC,SADZ;AAELsF,IAAAA,sBAAsB,EAAE7xC,IAFnB;AAGL60C,IAAAA,aAAa,EAAE,IAAA;GAHjB,CAAA;AAKD,CAAA;;AAED,SAAS61D,oBAAT,CAA8Bn+D,SAA9B,EAAyCq8B,UAAzC,EAAqD;AACnD,EAAA,IAAIqhC,YAAY,GAAGrhC,UAAU,CAACqhC,YAA9B,CAAA;AACA,EAAA,IAAInC,eAAe,GAAGl/B,UAAU,CAACk/B,eAAjC,CAAA;AACA,EAAA,IAAIuC,SAAS,GAAGzhC,UAAU,CAACyhC,SAA3B,CAAA;AACA,EAAA,IAAIE,iBAAiB,GAAG3hC,UAAU,CAAC2hC,iBAAnC,CAAA;AACA,EAAA,IAAIC,eAAe,GAAG5hC,UAAU,CAAC4hC,eAAjC,CAAA;AACA,EAAA,IAAI75G,QAAJ,CAAA;EACA,IAAIkhD,sBAAsB,GAAG04D,iBAA7B,CAAA;EACA,IAAI11D,aAAa,GAAG,KAApB,CAAA;AACA,EAAA,IAAI3C,oBAAJ,CAAA;;AAEA,EAAA,IAAI3F,SAAS,GAAGi+D,eAAe,CAAC,CAAD,CAA/B,EAAoC;IAClC75G,QAAQ,GAAG47C,SAAS,GAAGg+D,iBAAvB,CAAA;AACAr4D,IAAAA,oBAAoB,GAAGq4D,iBAAvB,CAAA;GAFF,MAGO,IAAIh+D,SAAS,IAAIi+D,eAAe,CAAC,CAAD,CAAhC,EAAqC;AAC1C75G,IAAAA,QAAQ,GAAGi4E,UAAU,CAAC6hC,oBAAX,GAAkCl+D,SAAS,GAAGu7D,eAA9C,GAAgEl/B,UAAU,CAACo+B,gBAAX,CAA4B,CAA5B,CAA3E,CAAA;AACAn1D,IAAAA,sBAAsB,GAAGi2D,eAAzB,CAAA;AACAjzD,IAAAA,aAAa,GAAG,IAAhB,CAAA;AACD,GAJM,MAIA;IACLlkD,QAAQ,GAAGs5G,YAAY,GAAG,CAACI,SAAS,GAAG,CAAZ,GAAgB99D,SAAjB,IAA8Bg+D,iBAAxD,CAAA;AACAr4D,IAAAA,oBAAoB,GAAGq4D,iBAAvB,CAAA;AACD,GAAA;;EAED,OAAO;AACL55G,IAAAA,QAAQ,EAAEA,QADL;AAELkhD,IAAAA,sBAAsB,EAAEA,sBAFnB;AAGLgD,IAAAA,aAAa,EAAEA,aAHV;AAIL3C,IAAAA,oBAAoB,EAAEA,oBAAAA;GAJxB,CAAA;AAMD;;ACpdD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgCA,SAAS05D,sBAAT,CAAgChxF,OAAhC,EAAyCxxB,GAAzC,EAA8C;EAC5C,IAAIyiH,YAAY,GAAG,EAAnB,CAAA;EACAjxF,OAAO,CAAC4V,aAAR,CAAsB,UAAtB,EAAkC,UAAU4zE,aAAV,EAAyB7nG,GAAzB,EAA8B;IAC9D,IAAIoB,QAAQ,GAAG,IAAI0rG,QAAJ,CAAajF,aAAb,EAA4BxpF,OAA5B,EAAqCxxB,GAArC,CAAf,CAAA;AACAuU,IAAAA,QAAQ,CAACpqB,IAAT,GAAgB,WAAA,GAAcgpB,GAA9B,CAAA;AACAoB,IAAAA,QAAQ,CAACtR,MAAT,CAAgB+3G,aAAhB,EAA+Bh7G,GAA/B,CAAA,CAAA;IACAg7G,aAAa,CAACxmG,gBAAd,GAAiCD,QAAjC,CAAA;IACAA,QAAQ,CAACmrB,KAAT,GAAiBs7E,aAAjB,CAAA;IACAyH,YAAY,CAACj7H,IAAb,CAAkB+sB,QAAlB,CAAA,CAAA;AACD,GAPD,EAF4C;;AAW5Cid,EAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;AACxC,IAAA,IAAIA,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,CAAA,KAAwC,UAA5C,EAAwD;AACtD,MAAA,IAAIo/F,aAAa,GAAG7gG,WAAW,CAACw8B,sBAAZ,CAAmC,UAAnC,EAA+CC,gBAA/C,CAAA,CAAiEC,MAAjE,CAAwE,CAAxE,CAApB,CAAA;AACA18B,MAAAA,WAAW,CAAC3F,gBAAZ,GAA+BwmG,aAAa,CAACxmG,gBAA7C,CAAA;AACD,KAAA;GAJH,CAAA,CAAA;AAMA,EAAA,OAAOiuG,YAAP,CAAA;AACD,CAAA;;AAED,IAAIC,uBAAuB,GAAG;AAC5B39D,EAAAA,MAAM,EAAEy9D,sBAAAA;AADoB,CAA9B;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgCA,IAAIG,iBAAiB;AACrB;AACA,UAAUh7G,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC+6G,iBAAD,EAAoBh7G,MAApB,CAAT,CAAA;;AAEA,EAAA,SAASg7G,iBAAT,GAA6B;AAC3B,IAAA,IAAI96G,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAamsH,iBAAiB,CAACnsH,IAA/B,CAAA;AACA;AACJ;AACA;;IAEIqR,KAAK,CAAC+6G,eAAN,GAAwB,EAAxB,CAAA;AACA,IAAA,OAAO/6G,KAAP,CAAA;AACD,GAAA;;AAED86G,EAAAA,iBAAiB,CAACl/H,SAAlB,CAA4Bo/H,kBAA5B,GAAiD,YAAY;AAC3D,IAAA,OAAO9yB,eAAe,CAAC,CAAC,CAAC,MAAD,EAAS,OAAT,CAAD,EAAoB,CAAC,WAAD,EAAc,aAAd,CAApB,EAAkD,CAAC,QAAD,EAAW,aAAX,CAAlD,EAA6E,CAAC,OAAD,EAAU,OAAV,CAA7E,EAAiG,CAAC,SAAD,EAAY,SAAZ,CAAjG;AACvB;AADuB,KAAD,CAAf,CAEJ,IAAA,CAAKr0E,QAAL,CAAc,iBAAd,CAFI,CAAP,CAAA;GADF,CAAA;AAKA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGEinG,EAAAA,iBAAiB,CAACl/H,SAAlB,CAA4Bq/H,kBAA5B,GAAiD,UAAUC,SAAV,EAAqB;AACpE,IAAA,IAAIH,eAAe,GAAG,IAAKA,CAAAA,eAAL,GAAuBz3F,OAAA,CAAa43F,SAAb,CAA7C,CADoE;;AAGpE,IAAA,IAAIH,eAAJ,EAAqB;AACnB,MAAA,KAAK,IAAIz7H,CAAC,GAAGy7H,eAAe,CAACn8H,MAAhB,GAAyB,CAAtC,EAAyCU,CAAC,IAAI,CAA9C,EAAiDA,CAAC,EAAlD,EAAsD;AACpDgyE,QAAAA,KAAA,CAAeypD,eAAe,CAACz7H,CAAD,CAA9B,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GAPH,CAAA;AASA;AACF;AACA;AACA;;;AAGEw7H,EAAAA,iBAAiB,CAACl/H,SAAlB,CAA4Bw+H,cAA5B,GAA6C,UAAUt/F,KAAV,EAAiB;IAC5D,IAAIigG,eAAe,GAAG,IAAA,CAAKA,eAA3B,CAAA;;AAEA,IAAA,IAAI,CAACA,eAAe,CAACn8H,MAArB,EAA6B;AAC3B,MAAA,OAAO,QAAP,CAAA;AACD,KAAA;;IAED,IAAIk8B,KAAK,IAAI,IAAT,IAAiBr7B,KAAK,CAAC,CAACq7B,KAAF,CAA1B,EAAoC;AAClC,MAAA,OAAO,UAAP,CAAA;AACD,KAT2D;;;AAY5D,IAAA,IAAIigG,eAAe,CAACn8H,MAAhB,KAA2B,CAA/B,EAAkC;AAChC,MAAA,IAAI8xD,QAAQ,GAAGqqE,eAAe,CAAC,CAAD,CAA9B,CAAA;;AAEA,MAAA,IAAIrqE,QAAQ,CAAC,CAAD,CAAR,IAAe51B,KAAf,IAAwBA,KAAK,IAAI41B,QAAQ,CAAC,CAAD,CAA7C,EAAkD;AAChD,QAAA,OAAO,QAAP,CAAA;AACD,OAAA;AACF,KAND,MAMO;AACL,MAAA,KAAK,IAAIpxD,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGoyH,eAAe,CAACn8H,MAAtC,EAA8CU,CAAC,GAAGqJ,GAAlD,EAAuDrJ,CAAC,EAAxD,EAA4D;AAC1D,QAAA,IAAIy7H,eAAe,CAACz7H,CAAD,CAAf,CAAmB,CAAnB,KAAyBw7B,KAAzB,IAAkCA,KAAK,IAAIigG,eAAe,CAACz7H,CAAD,CAAf,CAAmB,CAAnB,CAA/C,EAAsE;AACpE,UAAA,OAAO,QAAP,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;AAED,IAAA,OAAO,UAAP,CAAA;GA1BF,CAAA;;AA6BA,EAAA,OAAOw7H,iBAAP,CAAA;AACD,CA3ED,CA2EEnsE,cA3EF,CAFA,CAAA;;AA+EArrB,KAAA,CAAaw3F,iBAAb,EAAgC7rE,oBAAhC,CAAA;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA,IAAIksE,kBAAkB,GAAG,IAAzB,CAAA;AACA,IAAIl9F,SAAO,GAAG7iC,IAAI,CAAC8iC,GAAnB,CAAA;AACA,IAAIC,SAAO,GAAG/iC,IAAI,CAAC0iB,GAAnB,CAAA;AACA,IAAIs9G,OAAO,GAAGhgI,IAAI,CAACe,GAAnB,CAAA;AACA,IAAIk/H,OAAO,GAAG,KAAd,CAAA;AACA,IAAIC,kBAAkB,GAAG,CAAzB,CAAA;AACA,IAAIC,qBAAqB,GAAG,CAA5B,CAAA;AACA,IAAIC,kBAAkB,GAAG,WAAzB,CAAA;AACA,IAAIC,aAAa,GAAG;AAClBh9H,EAAAA,CAAC,EAAE,CAAC,CAAD,EAAI,CAAJ,CADe;AAElBS,EAAAA,CAAC,EAAE,CAAC,CAAD,EAAI,CAAJ,CAFe;AAGlB81F,EAAAA,CAAC,EAAE,CAAC,CAAD,EAAI,CAAJ,CAHe;AAIlB99E,EAAAA,CAAC,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAA;AAJe,CAApB,CAAA;AAMA,IAAIwkH,UAAU,GAAG;AACfj9H,EAAAA,CAAC,EAAE,IADY;AAEfS,EAAAA,CAAC,EAAE,IAFY;AAGf81F,EAAAA,CAAC,EAAE,IAHY;AAIf99E,EAAAA,CAAC,EAAE,IAJY;AAKfykH,EAAAA,EAAE,EAAE,MALW;AAMfC,EAAAA,EAAE,EAAE,MANW;AAOfC,EAAAA,EAAE,EAAE,MAPW;AAQfC,EAAAA,EAAE,EAAE,MAAA;AARW,CAAjB,CAAA;AAUA,IAAIC,iBAAiB,GAAG;AACtBC,EAAAA,UAAU,EAAE;AACVx6H,IAAAA,SAAS,EAAE,CADD;AAEVnB,IAAAA,MAAM,EAAE,uBAFE;AAGVF,IAAAA,IAAI,EAAE,SAAA;GAJc;AAMtB87H,EAAAA,aAAa,EAAE,IANO;AAOtBC,EAAAA,SAAS,EAAE,QAPW;AAQtBC,EAAAA,aAAa,EAAE,KAAA;AARO,CAAxB,CAAA;AAUA,IAAIC,OAAO,GAAG,CAAd,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIC,eAAe;AACnB;AACA,UAAUv8G,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACs8G,eAAD,EAAkBv8G,MAAlB,CAAT,CAAA;;EAEA,SAASu8G,eAAT,CAAyBrqD,EAAzB,EAA6B;IAC3B,IAAIhyD,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,KAAqB,IAAjC,CAAA;AACA;AACJ;AACA;;;IAGID,KAAK,CAACs8G,MAAN,GAAe,EAAf,CAAA;AACA;AACJ;AACA;;IAEIt8G,KAAK,CAACu8G,OAAN,GAAgB,EAAhB,CAAA;IACAv8G,KAAK,CAACk1G,SAAN,GAAkB,EAAlB,CAAA;;AAEA,IAAA,IAAIliH,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzCqB,MAAM,CAACy9D,EAAD,CAAN,CAAA;AACD,KAAA;;IAEDhyD,KAAK,CAACyyD,GAAN,GAAYT,EAAZ,CAAA;AACAhyD,IAAAA,KAAK,CAACiN,KAAN,GAAc,IAAI0F,OAAJ,EAAd,CAAA;AACA3S,IAAAA,KAAK,CAACw8G,IAAN,GAAa,kBAAA,GAAqBJ,OAAO,EAAzC,CAAA;AACA9zH,IAAAA,MAAI,CAACm0H,eAAD,EAAkB,UAAUrH,OAAV,EAAmB3/C,SAAnB,EAA8B;MAClD,IAAKy/C,CAAAA,SAAL,CAAez/C,SAAf,CAAA,GAA4B9C,MAAI,CAACyiD,OAAD,EAAU,IAAV,CAAhC,CAAA;KADE,EAEDp1G,KAFC,CAAJ,CAAA;AAGA,IAAA,OAAOA,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEq8G,EAAAA,eAAe,CAACzgI,SAAhB,CAA0B8gI,WAA1B,GAAwC,UAAUC,WAAV,EAAuB;AAC7D,IAAA,IAAI3pH,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzCqB,MAAM,CAAC,IAAKqoH,CAAAA,QAAN,CAAN,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKC,UAAL,IAAmB,IAAKC,CAAAA,eAAL,EAAnB,CAAA;AACAH,IAAAA,WAAW,CAACI,SAAZ,IAAyB,KAAKC,cAAL,CAAoBL,WAApB,CAAzB,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;GAPF,CAAA;;AAUAN,EAAAA,eAAe,CAACzgI,SAAhB,CAA0BohI,cAA1B,GAA2C,UAAUL,WAAV,EAAuB;AAChE,IAAA,IAAI3qD,EAAE,GAAG,IAAKS,CAAAA,GAAd,CADgE;;IAGhE,IAAI,CAAC,IAAKwqD,CAAAA,gBAAV,EAA4B;MAC1BzoD,IAAA,CAAsBxC,EAAtB,EAA0BwpD,kBAA1B,EAA8C,KAAKgB,IAAnD,CAAA,CAAA;AACD,KAAA;;IAEDl0H,MAAI,CAAC,KAAK4sH,SAAN,EAAiB,UAAUE,OAAV,EAAmB3/C,SAAnB,EAA8B;AACjDzD,MAAAA,EAAE,CAAC54B,EAAH,CAAMq8B,SAAN,EAAiB2/C,OAAjB,CAAA,CAAA;AACD,KAFG,CAAJ,CAAA;AAGA,IAAA,IAAA,CAAKyH,UAAL,GAAkBF,WAAW,CAACI,SAA9B,CAAA;AACA,IAAA,IAAA,CAAKG,YAAL,GAAoBtrE,KAAK,CAAC18C,OAAK,CAAC6mH,iBAAD,CAAN,EAA2BY,WAA3B,EAAwC,IAAxC,CAAzB,CAAA;GAXF,CAAA;;AAcAN,EAAAA,eAAe,CAACzgI,SAAhB,CAA0BkhI,eAA1B,GAA4C,YAAY;IACtD,IAAI9qD,EAAE,GAAG,IAAA,CAAKS,GAAd,CAAA;IACA+B,OAAA,CAAyBxC,EAAzB,EAA6BwpD,kBAA7B,EAAiD,KAAKgB,IAAtD,CAAA,CAAA;IACAl0H,MAAI,CAAC,KAAK4sH,SAAN,EAAiB,UAAUE,OAAV,EAAmB3/C,SAAnB,EAA8B;AACjDzD,MAAAA,EAAE,CAACh3B,GAAH,CAAOy6B,SAAP,EAAkB2/C,OAAlB,CAAA,CAAA;AACD,KAFG,CAAJ,CAAA;AAGA,IAAA,IAAA,CAAKyH,UAAL,GAAkB,IAAKK,CAAAA,YAAL,GAAoB,IAAtC,CAAA;GANF,CAAA;AAQA;AACF;AACA;;;AAGEb,EAAAA,eAAe,CAACzgI,SAAhB,CAA0BuhI,SAA1B,GAAsC,UAAUC,SAAV,EAAqB;AACzD,IAAA,IAAIA,SAAS,IAAIA,SAAS,CAACx+H,MAA3B,EAAmC;AACjC,MAAA,IAAIy+H,QAAQ,GAAG,IAAKC,CAAAA,OAAL,GAAe,EAA9B,CAAA;AACAh1H,MAAAA,MAAI,CAAC80H,SAAD,EAAY,UAAUA,SAAV,EAAqB;QACnCC,QAAQ,CAACD,SAAS,CAACG,OAAX,CAAR,GAA8BroH,OAAK,CAACkoH,SAAD,CAAnC,CAAA;AACD,OAFG,CAAJ,CAAA;AAGD,KALD,MAKO;MACL,IAAKE,CAAAA,OAAL,GAAe,IAAf,CAAA;AACD,KAAA;;AAED,IAAA,OAAO,IAAP,CAAA;GAVF,CAAA;;AAaAjB,EAAAA,eAAe,CAACzgI,SAAhB,CAA0B4hI,KAA1B,GAAkC,UAAUxwG,GAAV,EAAe;IAC/CA,GAAG,GAAGA,GAAG,IAAI,EAAb,CAAA;;AAEA,IAAA,IAAIha,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,MAAA,IAAA,CAAK0pH,QAAL,GAAgB,IAAhB,CADyC;AAE1C,KAAA;;AAED,IAAA,IAAA,CAAKK,gBAAL,GAAwBjwG,GAAG,CAACywG,eAA5B,CAAA;IACA,IAAIr3B,SAAS,GAAG,IAAA,CAAKn5E,KAArB,CAAA;;AAEA,IAAA,IAAA,CAAKwlD,GAAL,CAASjlD,GAAT,CAAa44E,SAAb,CAAA,CAAA;;IAEAA,SAAS,CAACr1E,IAAV,CAAe;AACb10B,MAAAA,CAAC,EAAE2wB,GAAG,CAAC3wB,CAAJ,IAAS,CADC;AAEbC,MAAAA,CAAC,EAAE0wB,GAAG,CAAC1wB,CAAJ,IAAS,CAFC;AAGb8xB,MAAAA,QAAQ,EAAEpB,GAAG,CAACoB,QAAJ,IAAgB,CAHb;AAIbzc,MAAAA,MAAM,EAAEqb,GAAG,CAACrb,MAAJ,IAAc,CAJT;AAKbC,MAAAA,MAAM,EAAEob,GAAG,CAACpb,MAAJ,IAAc,CAAA;KALxB,CAAA,CAAA;AAOA,IAAA,IAAA,CAAK8hD,UAAL,GAAkB0yC,SAAS,CAAC1jC,iBAAV,EAAlB,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;AACD,GArBD,CArFgB;AA2GhB;AACA;;AAEA;AACF;AACA;AACA;AACA;;;AAGE25D,EAAAA,eAAe,CAACzgI,SAAhB,CAA0B8hI,YAA1B,GAAyC,UAAUC,eAAV,EAA2B;AAClE,IAAA,IAAI3qH,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzCqB,MAAM,CAAC,IAAKqoH,CAAAA,QAAN,CAAN,CAAA;AACD,KAAA;;AAEDe,IAAAA,eAAe,GAAGn9H,GAAG,CAACm9H,eAAD,EAAkB,UAAUC,WAAV,EAAuB;MAC5D,OAAOhsE,KAAK,CAAC18C,OAAK,CAAC6mH,iBAAD,CAAN,EAA2B6B,WAA3B,EAAwC,IAAxC,CAAZ,CAAA;AACD,KAFoB,CAArB,CAAA;IAGA,IAAIC,WAAW,GAAG,iBAAlB,CAAA;IACA,IAAIC,SAAS,GAAG,IAAA,CAAKvB,OAArB,CAAA;AACA,IAAA,IAAIwB,SAAS,GAAG,IAAKxB,CAAAA,OAAL,GAAe,EAA/B,CAAA;IACA,IAAI/mD,UAAU,GAAG,IAAjB,CAAA;IACA,IAAIwoD,aAAa,GAAG,IAAA,CAAKC,cAAzB,CAAA;IACA,IAAI3zB,UAAJ,CAAewzB,SAAf,EAA0BH,eAA1B,EAA2CO,SAA3C,EAAsD3zB,MAAtD,CAA8D/8E,CAAAA,GAA9D,CAAkE2wG,WAAlE,CAAA,CAA+EtmG,MAA/E,CAAsFsmG,WAAtF,EAAmGnmG,MAAnG,CAA0GA,MAA1G,CAAA,CAAkHG,OAAlH,EAAA,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;;AAEA,IAAA,SAASoyE,MAAT,CAAgBoyB,WAAhB,EAA6B9hF,KAA7B,EAAoC;AAClC,MAAA,OAAO,CAAC8hF,WAAW,CAACltH,EAAZ,IAAkB,IAAlB,GAAyBktH,WAAW,CAACltH,EAArC,GAA0CouH,WAAW,GAAGhjF,KAAzD,IAAkE,GAAlE,GAAwE8hF,WAAW,CAACI,SAA3F,CAAA;AACD,KAAA;;AAED,IAAA,SAASmB,SAAT,CAAmBE,KAAnB,EAA0BvjF,KAA1B,EAAiC;AAC/B,MAAA,OAAO0vD,MAAM,CAAC6zB,KAAK,CAACC,aAAP,EAAsBxjF,KAAtB,CAAb,CAAA;AACD,KAAA;;AAED,IAAA,SAASsjF,WAAT,CAAqBhmF,QAArB,EAA+BC,QAA/B,EAAyC;AACvC,MAAA,IAAIkmF,gBAAgB,GAAGX,eAAe,CAACxlF,QAAD,CAAtC,CADuC;AAEvC;;MAEA,IAAIC,QAAQ,IAAI,IAAZ,IAAoB0lF,SAAS,CAAC1lF,QAAD,CAAT,KAAwB4lF,aAAhD,EAA+D;AAC7DD,QAAAA,SAAS,CAAC5lF,QAAD,CAAT,GAAsB2lF,SAAS,CAAC1lF,QAAD,CAA/B,CAAA;AACD,OAFD,MAEO;AACL,QAAA,IAAIgmF,KAAK,GAAGL,SAAS,CAAC5lF,QAAD,CAAT,GAAsBC,QAAQ,IAAI,IAAZ,IAAoB0lF,SAAS,CAAC1lF,QAAD,CAAT,CAAoBimF,aAApB,GAAoCC,gBAApC,EAAsDR,SAAS,CAAC1lF,QAAD,CAAnF,IAAiGmmF,WAAW,CAAC/oD,UAAD,EAAagpD,WAAW,CAAChpD,UAAD,EAAa8oD,gBAAb,CAAxB,CAA9I,CAAA;AACAG,QAAAA,wBAAwB,CAACjpD,UAAD,EAAa4oD,KAAb,CAAxB,CAAA;AACD,OAAA;AACF,KAAA;;IAED,SAASpmG,MAAT,CAAgBogB,QAAhB,EAA0B;AACxB,MAAA,IAAI0lF,SAAS,CAAC1lF,QAAD,CAAT,KAAwB4lF,aAA5B,EAA2C;QACzCxoD,UAAU,CAACvoD,KAAX,CAAiB+K,MAAjB,CAAwB8lG,SAAS,CAAC1lF,QAAD,CAAjC,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GAxCH,CAAA;;AA2CAikF,EAAAA,eAAe,CAACzgI,SAAhB,CAA0B8iI,OAA1B,GAAoC,YAAY;AAC9C,IAAA,IAAI1rH,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC,IAAI,CAAC,IAAK0pH,CAAAA,QAAV,EAAoB;AAClB,QAAA,OAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAA,CAAKF,WAAL,CAAiB,KAAjB,CAAA,CAP8C;;IAS9CiC,WAAW,CAAC,IAAD,CAAX,CAAA;;AAEA,IAAA,IAAA,CAAKlsD,GAAL,CAASz6C,MAAT,CAAgB,KAAK/K,KAArB,CAAA,CAAA;;AAEA,IAAA,IAAIja,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,MAAA,IAAA,CAAK0pH,QAAL,GAAgB,KAAhB,CADyC;AAE1C,KAAA;;AAED,IAAA,OAAO,IAAP,CAAA;GAjBF,CAAA;;AAoBAP,EAAAA,eAAe,CAACzgI,SAAhB,CAA0B4iB,OAA1B,GAAoC,YAAY;AAC9C,IAAA,IAAA,CAAKkgH,OAAL,EAAA,CAAA;AACA,IAAA,IAAA,CAAK1jF,GAAL,EAAA,CAAA;GAFF,CAAA;;AAKA,EAAA,OAAOqhF,eAAP,CAAA;AACD,CA1LD,CA0LEr2G,QA1LF,CAFA,CAAA;;AA8LA,SAASw4G,WAAT,CAAqBhpD,UAArB,EAAiCmnD,WAAjC,EAA8C;AAC5C,EAAA,IAAIyB,KAAK,GAAGQ,cAAc,CAACjC,WAAW,CAACI,SAAb,CAAd,CAAsCyB,WAAtC,CAAkDhpD,UAAlD,EAA8DmnD,WAA9D,CAAZ,CAAA;EACAyB,KAAK,CAACC,aAAN,GAAsB1B,WAAtB,CAAA;AACAkC,EAAAA,SAAO,CAACT,KAAD,EAAQzB,WAAR,CAAP,CAAA;AACAnnD,EAAAA,UAAU,CAACvoD,KAAX,CAAiBO,GAAjB,CAAqB4wG,KAArB,CAAA,CAAA;AACA,EAAA,OAAOA,KAAP,CAAA;AACD,CAAA;;AAED,SAASG,WAAT,CAAqB/oD,UAArB,EAAiCwoD,aAAjC,EAAgD;AAC9C,EAAA,IAAIc,aAAa,GAAGC,gBAAgB,CAACf,aAAD,CAApC,CAAA;;EAEA,IAAIc,aAAa,CAACP,WAAlB,EAA+B;AAC7BO,IAAAA,aAAa,CAACP,WAAd,CAA0B/oD,UAA1B,EAAsCwoD,aAAtC,CAAA,CAAA;AACAa,IAAAA,SAAO,CAACb,aAAD,EAAgBA,aAAa,CAACK,aAA9B,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAOL,aAAP,CAAA;AACD,CAAA;;AAED,SAASgB,gBAAT,CAA0BxpD,UAA1B,EAAsC4oD,KAAtC,EAA6C;AAC3C,EAAA,IAAIzB,WAAW,GAAGyB,KAAK,CAACC,aAAxB,CAAA;AACAU,EAAAA,gBAAgB,CAACX,KAAD,CAAhB,CAAwBY,gBAAxB,CAAyCxpD,UAAzC,EAAqD4oD,KAArD,EAA4DzB,WAAW,CAAC90F,KAAxE,EAA+E80F,WAA/E,CAAA,CAAA;AACD,CAAA;;AAED,SAASkC,SAAT,CAAiBT,KAAjB,EAAwBzB,WAAxB,EAAqC;AACnC,EAAA,IAAI70G,CAAC,GAAG60G,WAAW,CAAC70G,CAApB,CAAA;AACAA,EAAAA,CAAC,IAAI,IAAL,KAAcA,CAAC,GAAGuzG,OAAlB,CAAA,CAAA;AACA+C,EAAAA,KAAK,CAACrlG,QAAN,CAAe,UAAUl4B,EAAV,EAAc;IAC3BA,EAAE,CAACinB,CAAH,GAAOA,CAAP,CAAA;AACAjnB,IAAAA,EAAE,CAACmwB,EAAH,GAAQlJ,CAAR,CAF2B;GAA7B,CAAA,CAAA;AAID,CAAA;;AAED,SAAS22G,wBAAT,CAAkCjpD,UAAlC,EAA8C4oD,KAA9C,EAAqD;EACnDW,gBAAgB,CAACX,KAAD,CAAhB,CAAwBa,YAAxB,CAAqCzpD,UAArC,EAAiD4oD,KAAjD,CAAA,CAAA;AACAY,EAAAA,gBAAgB,CAACxpD,UAAD,EAAa4oD,KAAb,CAAhB,CAAA;AACD,CAAA;;AAED,SAASW,gBAAT,CAA0BX,KAA1B,EAAiC;AAC/B,EAAA,OAAOQ,cAAc,CAACR,KAAK,CAACC,aAAN,CAAoBtB,SAArB,CAArB,CAAA;AACD;;;AAGD,SAASmC,eAAT,CAAyB1pD,UAAzB,EAAqCt2E,CAArC,EAAwCigI,gBAAxC,EAA0D;AACxD,EAAA,IAAIC,MAAM,GAAG5pD,UAAU,CAAC8nD,OAAxB,CAAA;;EAEA,IAAI,CAAC8B,MAAL,EAAa;IACX,OAAOjE,kBAAP,CADW;AAEZ,GAAA;;AAED,EAAA,IAAIkE,KAAJ,CAAA;AACA,EAAA,IAAI33H,SAAS,GAAG8tE,UAAU,CAAC9hB,UAA3B,CAAA;AACAprD,EAAAA,MAAI,CAAC82H,MAAD,EAAS,UAAUE,EAAV,EAAc;IACzBA,EAAE,CAACC,gBAAH,CAAoBrgI,CAApB,EAAuBigI,gBAAvB,EAAyCz3H,SAAzC,CAAA,KAAwD23H,KAAK,GAAGC,EAAhE,CAAA,CAAA;AACD,GAFG,CAAJ,CAAA;AAGA,EAAA,OAAOD,KAAP,CAAA;AACD;;;AAGD,SAASG,eAAT,CAAyBhqD,UAAzB,EAAqC4oD,KAArC,EAA4C;AAC1C,EAAA,IAAIgB,MAAM,GAAG5pD,UAAU,CAAC8nD,OAAxB,CAAA;;EAEA,IAAI,CAAC8B,MAAL,EAAa;IACX,OAAOjE,kBAAP,CADW;AAEZ,GAAA;;EAED,IAAIoC,OAAO,GAAGa,KAAK,CAACC,aAAN,CAAoBd,OAAlC,CAP0C;AAQ1C;;EAEA,OAAOA,OAAO,IAAI,IAAX,GAAkB6B,MAAM,CAAC7B,OAAD,CAAxB,GAAoCpC,kBAA3C,CAAA;AACD,CAAA;;AAED,SAASwD,WAAT,CAAqBnpD,UAArB,EAAiC;AAC/B,EAAA,IAAIiqD,MAAM,GAAGjqD,UAAU,CAAC+mD,OAAxB,CAAA;AACA,EAAA,IAAImD,cAAc,GAAGD,MAAM,CAAC7gI,MAA5B,CAAA;AACA0J,EAAAA,MAAI,CAACm3H,MAAD,EAAS,UAAUrB,KAAV,EAAiB;AAC5B5oD,IAAAA,UAAU,CAACvoD,KAAX,CAAiB+K,MAAjB,CAAwBomG,KAAxB,CAAA,CAAA;GADE,EAED5oD,UAFC,CAAJ,CAAA;EAGAiqD,MAAM,CAAC7gI,MAAP,GAAgB,CAAhB,CAAA;EACA,OAAO,CAAC,CAAC8gI,cAAT,CAAA;AACD,CAAA;;AAED,SAAS/qD,OAAT,CAAiBa,UAAjB,EAA6BxoD,GAA7B,EAAkC;EAChC,IAAI2yG,KAAK,GAAGn/H,GAAG,CAACg1E,UAAU,CAAC+mD,OAAZ,EAAqB,UAAU6B,KAAV,EAAiB;AACnD,IAAA,IAAIzB,WAAW,GAAGyB,KAAK,CAACC,aAAxB,CAAA;AACA,IAAA,IAAIx2F,KAAK,GAAG3yB,OAAK,CAACynH,WAAW,CAAC90F,KAAb,CAAjB,CAAA;IACA,OAAO;MACLk1F,SAAS,EAAEJ,WAAW,CAACI,SADlB;MAELQ,OAAO,EAAEZ,WAAW,CAACY,OAFhB;AAGL11F,MAAAA,KAAK,EAAEA,KAAAA;KAHT,CAAA;AAKD,GARc,CAAf,CAAA;AASA2tC,EAAAA,UAAU,CAACb,OAAX,CAAmB,OAAnB,EAA4B;AAC1BgrD,IAAAA,KAAK,EAAEA,KADmB;AAE1B3qF,IAAAA,KAAK,EAAE,CAAC,CAAChoB,GAAG,CAACgoB,KAFa;AAG1BmnF,IAAAA,aAAa,EAAE,CAAC,CAACnvG,GAAG,CAACmvG,aAAAA;GAHvB,CAAA,CAAA;AAKD,CAAA;;AAED,SAASyD,eAAT,CAAyBpqD,UAAzB,EAAqC;AACnC,EAAA,IAAIzqE,KAAK,GAAGyqE,UAAU,CAAC8mD,MAAvB,CAAA;;AAEA,EAAA,IAAI,CAACvxH,KAAK,CAACnM,MAAX,EAAmB;AACjB,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;EAED,IAAIisE,EAAE,GAAG9/D,KAAK,CAACA,KAAK,CAACnM,MAAN,GAAe,CAAhB,CAAd,CAAA;AACA,EAAA,IAAI0N,EAAE,GAAGvB,KAAK,CAAC,CAAD,CAAd,CAAA;EACA,IAAIqrB,EAAE,GAAGy0C,EAAE,CAAC,CAAD,CAAF,GAAQv+D,EAAE,CAAC,CAAD,CAAnB,CAAA;EACA,IAAI+pB,EAAE,GAAGw0C,EAAE,CAAC,CAAD,CAAF,GAAQv+D,EAAE,CAAC,CAAD,CAAnB,CAAA;AACA,EAAA,IAAIy3C,IAAI,GAAGq3E,OAAO,CAAChlG,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAhB,EAAoB,GAApB,CAAlB,CAAA;EACA,OAAO0tB,IAAI,GAAGu3E,kBAAd,CAAA;AACD,CAAA;;AAED,SAASuE,YAAT,CAAsB90H,KAAtB,EAA6B;AAC3B,EAAA,IAAIm8F,IAAI,GAAGn8F,KAAK,CAACnM,MAAN,GAAe,CAA1B,CAAA;AACAsoG,EAAAA,IAAI,GAAG,CAAP,KAAaA,IAAI,GAAG,CAApB,CAAA,CAAA;EACA,OAAO,CAACn8F,KAAK,CAAC,CAAD,CAAN,EAAWA,KAAK,CAACm8F,IAAD,CAAhB,CAAP,CAAA;AACD,CAAA;;AAED,CAAA;;AAEA,SAAS44B,mBAAT,CAA6BC,kBAA7B,EAAiDvqD,UAAjD,EAA6DmnD,WAA7D,EAA0EqD,iBAA1E,EAA6F;AAC3F,EAAA,IAAI5B,KAAK,GAAG,IAAIzrG,OAAJ,EAAZ,CAAA;AACAyrG,EAAAA,KAAK,CAAC5wG,GAAN,CAAU,IAAImF,MAAJ,CAAiB;AACzBrwB,IAAAA,IAAI,EAAE,MADmB;AAEzBpC,IAAAA,KAAK,EAAE+/H,SAAS,CAACtD,WAAD,CAFS;AAGzBvqG,IAAAA,MAAM,EAAE,IAHiB;AAIzBH,IAAAA,SAAS,EAAE,IAJc;AAKzBE,IAAAA,MAAM,EAAE,MALiB;IAMzBjB,KAAK,EAAE86B,OAAK,CAACk0E,SAAD,EAAYH,kBAAZ,EAAgCvqD,UAAhC,EAA4C4oD,KAA5C,EAAmD,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,CAAnD,CANa;AAOzB+B,IAAAA,SAAS,EAAEn0E,OAAK,CAAC2oB,OAAD,EAAUa,UAAV,EAAsB;AACpCxgC,MAAAA,KAAK,EAAE,IAAA;KADO,CAAA;AAPS,GAAjB,CAAV,CAAA,CAAA;AAWA1sC,EAAAA,MAAI,CAAC03H,iBAAD,EAAoB,UAAUI,YAAV,EAAwB;AAC9ChC,IAAAA,KAAK,CAAC5wG,GAAN,CAAU,IAAImF,MAAJ,CAAiB;AACzBrwB,MAAAA,IAAI,EAAE89H,YAAY,CAACxgI,IAAb,CAAkB,EAAlB,CADmB;AAEzBM,MAAAA,KAAK,EAAE;AACLa,QAAAA,OAAO,EAAE,CAAA;OAHc;AAKzBkxB,MAAAA,SAAS,EAAE,IALc;AAMzBG,MAAAA,MAAM,EAAE,IANiB;AAOzB3U,MAAAA,SAAS,EAAE,IAPc;AAQzByT,MAAAA,KAAK,EAAE86B,OAAK,CAACk0E,SAAD,EAAYH,kBAAZ,EAAgCvqD,UAAhC,EAA4C4oD,KAA5C,EAAmDgC,YAAnD,CARa;AASzBD,MAAAA,SAAS,EAAEn0E,OAAK,CAAC2oB,OAAD,EAAUa,UAAV,EAAsB;AACpCxgC,QAAAA,KAAK,EAAE,IAAA;OADO,CAAA;AATS,KAAjB,CAAV,CAAA,CAAA;AAaD,GAdG,CAAJ,CAAA;AAeA,EAAA,OAAOopF,KAAP,CAAA;AACD,CAAA;;AAED,SAASiC,cAAT,CAAwB7qD,UAAxB,EAAoC4oD,KAApC,EAA2CkC,UAA3C,EAAuD3D,WAAvD,EAAoE;EAClE,IAAIn7H,SAAS,GAAGm7H,WAAW,CAACX,UAAZ,CAAuBx6H,SAAvB,IAAoC,CAApD,CAAA;AACA,EAAA,IAAI++H,UAAU,GAAGpiG,SAAO,CAAC38B,SAAD,EAAY+5H,qBAAZ,CAAxB,CAAA;EACA,IAAIl/H,CAAC,GAAGikI,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAR,CAAA;EACA,IAAIhkI,CAAC,GAAGgkI,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAR,CAAA;AACA,EAAA,IAAIE,EAAE,GAAGnkI,CAAC,GAAGmF,SAAS,GAAG,CAAzB,CAAA;AACA,EAAA,IAAIi/H,EAAE,GAAGnkI,CAAC,GAAGkF,SAAS,GAAG,CAAzB,CAAA;EACA,IAAI9E,EAAE,GAAG4jI,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAT,CAAA;EACA,IAAI3jI,EAAE,GAAG2jI,UAAU,CAAC,CAAD,CAAV,CAAc,CAAd,CAAT,CAAA;EACA,IAAII,GAAG,GAAGhkI,EAAE,GAAG6jI,UAAL,GAAkB/+H,SAAS,GAAG,CAAxC,CAAA;EACA,IAAIm/H,GAAG,GAAGhkI,EAAE,GAAG4jI,UAAL,GAAkB/+H,SAAS,GAAG,CAAxC,CAAA;AACA,EAAA,IAAI6D,KAAK,GAAG3I,EAAE,GAAGL,CAAjB,CAAA;AACA,EAAA,IAAIiJ,MAAM,GAAG3I,EAAE,GAAGL,CAAlB,CAAA;AACA,EAAA,IAAIskI,MAAM,GAAGv7H,KAAK,GAAG7D,SAArB,CAAA;AACA,EAAA,IAAIq/H,OAAO,GAAGv7H,MAAM,GAAG9D,SAAvB,CAAA;AACAs/H,EAAAA,eAAe,CAACtrD,UAAD,EAAa4oD,KAAb,EAAoB,MAApB,EAA4B/hI,CAA5B,EAA+BC,CAA/B,EAAkC+I,KAAlC,EAAyCC,MAAzC,CAAf,CAAA;;EAEA,IAAIq3H,WAAW,CAACV,aAAhB,EAA+B;AAC7B6E,IAAAA,eAAe,CAACtrD,UAAD,EAAa4oD,KAAb,EAAoB,GAApB,EAAyBoC,EAAzB,EAA6BC,EAA7B,EAAiCF,UAAjC,EAA6CM,OAA7C,CAAf,CAAA;AACAC,IAAAA,eAAe,CAACtrD,UAAD,EAAa4oD,KAAb,EAAoB,GAApB,EAAyBsC,GAAzB,EAA8BD,EAA9B,EAAkCF,UAAlC,EAA8CM,OAA9C,CAAf,CAAA;AACAC,IAAAA,eAAe,CAACtrD,UAAD,EAAa4oD,KAAb,EAAoB,GAApB,EAAyBoC,EAAzB,EAA6BC,EAA7B,EAAiCG,MAAjC,EAAyCL,UAAzC,CAAf,CAAA;AACAO,IAAAA,eAAe,CAACtrD,UAAD,EAAa4oD,KAAb,EAAoB,GAApB,EAAyBoC,EAAzB,EAA6BG,GAA7B,EAAkCC,MAAlC,EAA0CL,UAA1C,CAAf,CAAA;AACAO,IAAAA,eAAe,CAACtrD,UAAD,EAAa4oD,KAAb,EAAoB,IAApB,EAA0BoC,EAA1B,EAA8BC,EAA9B,EAAkCF,UAAlC,EAA8CA,UAA9C,CAAf,CAAA;AACAO,IAAAA,eAAe,CAACtrD,UAAD,EAAa4oD,KAAb,EAAoB,IAApB,EAA0BsC,GAA1B,EAA+BD,EAA/B,EAAmCF,UAAnC,EAA+CA,UAA/C,CAAf,CAAA;AACAO,IAAAA,eAAe,CAACtrD,UAAD,EAAa4oD,KAAb,EAAoB,IAApB,EAA0BoC,EAA1B,EAA8BG,GAA9B,EAAmCJ,UAAnC,EAA+CA,UAA/C,CAAf,CAAA;AACAO,IAAAA,eAAe,CAACtrD,UAAD,EAAa4oD,KAAb,EAAoB,IAApB,EAA0BsC,GAA1B,EAA+BC,GAA/B,EAAoCJ,UAApC,EAAgDA,UAAhD,CAAf,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAStB,cAAT,CAAsBzpD,UAAtB,EAAkC4oD,KAAlC,EAAyC;AACvC,EAAA,IAAIzB,WAAW,GAAGyB,KAAK,CAACC,aAAxB,CAAA;AACA,EAAA,IAAIpC,aAAa,GAAGU,WAAW,CAACV,aAAhC,CAAA;AACA,EAAA,IAAI8E,MAAM,GAAG3C,KAAK,CAAC7sG,OAAN,CAAc,CAAd,CAAb,CAAA;AACAwvG,EAAAA,MAAM,CAACxsG,QAAP,CAAgB0rG,SAAS,CAACtD,WAAD,CAAzB,CAAA,CAAA;EACAoE,MAAM,CAAChwG,IAAP,CAAY;IACVqB,MAAM,EAAE,CAAC6pG,aADC;AAEV9pG,IAAAA,MAAM,EAAE8pG,aAAa,GAAG,MAAH,GAAY,SAAA;GAFnC,CAAA,CAAA;EAIA3zH,MAAI,CAAC,CAAC,CAAC,GAAD,CAAD,EAAQ,CAAC,GAAD,CAAR,EAAe,CAAC,GAAD,CAAf,EAAsB,CAAC,GAAD,CAAtB,EAA6B,CAAC,GAAD,EAAM,GAAN,CAA7B,EAAyC,CAAC,GAAD,EAAM,GAAN,CAAzC,EAAqD,CAAC,GAAD,EAAM,GAAN,CAArD,EAAiE,CAAC,GAAD,EAAM,GAAN,CAAjE,CAAD,EAA+E,UAAU83H,YAAV,EAAwB;AACzG,IAAA,IAAIv/H,EAAE,GAAGu9H,KAAK,CAACnb,WAAN,CAAkBmd,YAAY,CAACxgI,IAAb,CAAkB,EAAlB,CAAlB,CAAT,CAAA;IACA,IAAIohI,SAAS,GAAGZ,YAAY,CAACxhI,MAAb,KAAwB,CAAxB,GAA4BqiI,mBAAmB,CAACzrD,UAAD,EAAa4qD,YAAY,CAAC,CAAD,CAAzB,CAA/C,GAA+Ec,mBAAmB,CAAC1rD,UAAD,EAAa4qD,YAAb,CAAlH,CAAA;AACAv/H,IAAAA,EAAE,IAAIA,EAAE,CAACkwB,IAAH,CAAQ;MACZqB,MAAM,EAAE,CAAC6pG,aADG;MAEZx+G,SAAS,EAAE,CAACw+G,aAFA;MAGZ9pG,MAAM,EAAE8pG,aAAa,GAAGP,UAAU,CAACsF,SAAD,CAAV,GAAwB,SAA3B,GAAuC,IAAA;AAHhD,KAAR,CAAN,CAAA;AAKD,GARG,CAAJ,CAAA;AASD,CAAA;;AAED,SAASF,eAAT,CAAyBtrD,UAAzB,EAAqC4oD,KAArC,EAA4C97H,IAA5C,EAAkDjG,CAAlD,EAAqDC,CAArD,EAAwDmC,CAAxD,EAA2DC,CAA3D,EAA8D;AAC5D,EAAA,IAAImC,EAAE,GAAGu9H,KAAK,CAACnb,WAAN,CAAkB3gH,IAAlB,CAAT,CAAA;AACAzB,EAAAA,EAAE,IAAIA,EAAE,CAACwqC,QAAH,CAAY81F,YAAY,CAACC,WAAW,CAAC5rD,UAAD,EAAa4oD,KAAb,EAAoB,CAAC,CAAC/hI,CAAD,EAAIC,CAAJ,CAAD,EAAS,CAACD,CAAC,GAAGoC,CAAL,EAAQnC,CAAC,GAAGoC,CAAZ,CAAT,CAApB,CAAZ,CAAxB,CAAN,CAAA;AACD,CAAA;;AAED,SAASuhI,SAAT,CAAmBtD,WAAnB,EAAgC;AAC9B,EAAA,OAAOh/D,QAAQ,CAAC;AACdt8D,IAAAA,aAAa,EAAE,IAAA;AADD,GAAD,EAEZs7H,WAAW,CAACX,UAFA,CAAf,CAAA;AAGD,CAAA;;AAED,SAASqF,eAAT,CAAyBhlI,CAAzB,EAA4BC,CAA5B,EAA+BI,EAA/B,EAAmCC,EAAnC,EAAuC;AACrC,EAAA,IAAIuhC,GAAG,GAAG,CAACD,SAAO,CAAC5hC,CAAD,EAAIK,EAAJ,CAAR,EAAiBuhC,SAAO,CAAC3hC,CAAD,EAAIK,EAAJ,CAAxB,CAAV,CAAA;AACA,EAAA,IAAImhB,GAAG,GAAG,CAACqgB,SAAO,CAAC9hC,CAAD,EAAIK,EAAJ,CAAR,EAAiByhC,SAAO,CAAC7hC,CAAD,EAAIK,EAAJ,CAAxB,CAAV,CAAA;EACA,OAAO,CAAC,CAACuhC,GAAG,CAAC,CAAD,CAAJ,EAASpgB,GAAG,CAAC,CAAD,CAAZ,CAAD,EAAmB,CAACogB,GAAG,CAAC,CAAD,CAAJ,EAASpgB,GAAG,CAAC,CAAD,CAAZ,CAAnB;GAAP,CAAA;AAED,CAAA;;AAED,SAASwjH,YAAT,CAAsB9rD,UAAtB,EAAkC;AAChC,EAAA,OAAO7iD,cAAA,CAAqB6iD,UAAU,CAACvoD,KAAhC,CAAP,CAAA;AACD,CAAA;;AAED,SAASg0G,mBAAT,CAA6BzrD,UAA7B,EAAyC+rD,YAAzC,EAAuD;AACrD,EAAA,IAAI/gI,GAAG,GAAG;AACR/B,IAAAA,CAAC,EAAE,MADK;AAERS,IAAAA,CAAC,EAAE,OAFK;AAGR81F,IAAAA,CAAC,EAAE,KAHK;AAIR99E,IAAAA,CAAC,EAAE,QAAA;GAJL,CAAA;AAMA,EAAA,IAAIsqH,UAAU,GAAG;AACf7hH,IAAAA,IAAI,EAAE,GADS;AAEfmrC,IAAAA,KAAK,EAAE,GAFQ;AAGflrC,IAAAA,GAAG,EAAE,GAHU;AAIfmrC,IAAAA,MAAM,EAAE,GAAA;GAJV,CAAA;AAMA,EAAA,IAAIvsB,GAAG,GAAG7L,kBAAA,CAA2BnyB,GAAG,CAAC+gI,YAAD,CAA9B,EAA8CD,YAAY,CAAC9rD,UAAD,CAA1D,CAAV,CAAA;EACA,OAAOgsD,UAAU,CAAChjG,GAAD,CAAjB,CAAA;AACD,CAAA;;AAED,SAAS0iG,mBAAT,CAA6B1rD,UAA7B,EAAyCisD,eAAzC,EAA0D;EACxD,IAAIT,SAAS,GAAG,CAACC,mBAAmB,CAACzrD,UAAD,EAAaisD,eAAe,CAAC,CAAD,CAA5B,CAApB,EAAsDR,mBAAmB,CAACzrD,UAAD,EAAaisD,eAAe,CAAC,CAAD,CAA5B,CAAzE,CAAhB,CAAA;AACA,EAAA,CAACT,SAAS,CAAC,CAAD,CAAT,KAAiB,GAAjB,IAAwBA,SAAS,CAAC,CAAD,CAAT,KAAiB,GAA1C,KAAkDA,SAAS,CAACj7F,OAAV,EAAlD,CAAA;AACA,EAAA,OAAOi7F,SAAS,CAACphI,IAAV,CAAe,EAAf,CAAP,CAAA;AACD,CAAA;;AAED,SAASsgI,SAAT,CAAmBH,kBAAnB,EAAuCvqD,UAAvC,EAAmD4oD,KAAnD,EAA0DsD,eAA1D,EAA2EtrG,EAA3E,EAA+EC,EAA/E,EAAmF;AACjF,EAAA,IAAIsmG,WAAW,GAAGyB,KAAK,CAACC,aAAxB,CAAA;EACA,IAAIsD,SAAS,GAAG5B,kBAAkB,CAAC6B,WAAnB,CAA+BjF,WAAW,CAAC90F,KAA3C,CAAhB,CAAA;EACA,IAAIg6F,UAAU,GAAGC,YAAY,CAACtsD,UAAD,EAAap/C,EAAb,EAAiBC,EAAjB,CAA7B,CAAA;AACA/tB,EAAAA,MAAI,CAACo5H,eAAD,EAAkB,UAAUK,OAAV,EAAmB;AACvC,IAAA,IAAIC,GAAG,GAAGvG,aAAa,CAACsG,OAAD,CAAvB,CAAA;AACAJ,IAAAA,SAAS,CAACK,GAAG,CAAC,CAAD,CAAJ,CAAT,CAAkBA,GAAG,CAAC,CAAD,CAArB,KAA6BH,UAAU,CAACG,GAAG,CAAC,CAAD,CAAJ,CAAvC,CAAA;AACD,GAHG,CAAJ,CAAA;AAIArF,EAAAA,WAAW,CAAC90F,KAAZ,GAAoBk4F,kBAAkB,CAACkC,aAAnB,CAAiCZ,eAAe,CAACM,SAAS,CAAC,CAAD,CAAT,CAAa,CAAb,CAAD,EAAkBA,SAAS,CAAC,CAAD,CAAT,CAAa,CAAb,CAAlB,EAAmCA,SAAS,CAAC,CAAD,CAAT,CAAa,CAAb,CAAnC,EAAoDA,SAAS,CAAC,CAAD,CAAT,CAAa,CAAb,CAApD,CAAhD,CAApB,CAAA;AACAlD,EAAAA,wBAAwB,CAACjpD,UAAD,EAAa4oD,KAAb,CAAxB,CAAA;EACAzpD,OAAO,CAACa,UAAD,EAAa;AAClBxgC,IAAAA,KAAK,EAAE,KAAA;AADW,GAAb,CAAP,CAAA;AAGD,CAAA;;AAED,SAASktF,YAAT,CAAsB1sD,UAAtB,EAAkC4oD,KAAlC,EAAyChoG,EAAzC,EAA6CC,EAA7C,EAAiD;AAC/C,EAAA,IAAIwR,KAAK,GAAGu2F,KAAK,CAACC,aAAN,CAAoBx2F,KAAhC,CAAA;EACA,IAAIg6F,UAAU,GAAGC,YAAY,CAACtsD,UAAD,EAAap/C,EAAb,EAAiBC,EAAjB,CAA7B,CAAA;AACA/tB,EAAAA,MAAI,CAACu/B,KAAD,EAAQ,UAAUrR,KAAV,EAAiB;AAC3BA,IAAAA,KAAK,CAAC,CAAD,CAAL,IAAYqrG,UAAU,CAAC,CAAD,CAAtB,CAAA;AACArrG,IAAAA,KAAK,CAAC,CAAD,CAAL,IAAYqrG,UAAU,CAAC,CAAD,CAAtB,CAAA;AACD,GAHG,CAAJ,CAAA;AAIApD,EAAAA,wBAAwB,CAACjpD,UAAD,EAAa4oD,KAAb,CAAxB,CAAA;EACAzpD,OAAO,CAACa,UAAD,EAAa;AAClBxgC,IAAAA,KAAK,EAAE,KAAA;AADW,GAAb,CAAP,CAAA;AAGD,CAAA;;AAED,SAAS8sF,YAAT,CAAsBtsD,UAAtB,EAAkCp/C,EAAlC,EAAsCC,EAAtC,EAA0C;AACxC,EAAA,IAAI+vE,SAAS,GAAG5wB,UAAU,CAACvoD,KAA3B,CAAA;EACA,IAAIk1G,MAAM,GAAG/7B,SAAS,CAACr5C,qBAAV,CAAgC32B,EAAhC,EAAoCC,EAApC,CAAb,CAAA;EACA,IAAI+rG,SAAS,GAAGh8B,SAAS,CAACr5C,qBAAV,CAAgC,CAAhC,EAAmC,CAAnC,CAAhB,CAAA;EACA,OAAO,CAACo1E,MAAM,CAAC,CAAD,CAAN,GAAYC,SAAS,CAAC,CAAD,CAAtB,EAA2BD,MAAM,CAAC,CAAD,CAAN,GAAYC,SAAS,CAAC,CAAD,CAAhD,CAAP,CAAA;AACD,CAAA;;AAED,SAAShB,WAAT,CAAqB5rD,UAArB,EAAiC4oD,KAAjC,EAAwCtuG,IAAxC,EAA8C;AAC5C,EAAA,IAAIuvG,KAAK,GAAGG,eAAe,CAAChqD,UAAD,EAAa4oD,KAAb,CAA3B,CAAA;EACA,OAAOiB,KAAK,IAAIA,KAAK,KAAKlE,kBAAnB,GAAwCkE,KAAK,CAAC5pH,QAAN,CAAeqa,IAAf,EAAqB0lD,UAAU,CAAC9hB,UAAhC,CAAxC,GAAsFx+C,OAAK,CAAC4a,IAAD,CAAlG,CAAA;AACD,CAAA;;AAED,SAASqxG,YAAT,CAAsBvzH,MAAtB,EAA8B;AAC5B,EAAA,IAAIy0H,IAAI,GAAGpkG,SAAO,CAACrwB,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAD,EAAeA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAf,CAAlB,CAAA;AACA,EAAA,IAAI00H,IAAI,GAAGrkG,SAAO,CAACrwB,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAD,EAAeA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAf,CAAlB,CAAA;AACA,EAAA,IAAI20H,IAAI,GAAGpkG,SAAO,CAACvwB,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAD,EAAeA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAf,CAAlB,CAAA;AACA,EAAA,IAAI40H,IAAI,GAAGrkG,SAAO,CAACvwB,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAD,EAAeA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAf,CAAlB,CAAA;EACA,OAAO;AACLvR,IAAAA,CAAC,EAAEgmI,IADE;AAEL/lI,IAAAA,CAAC,EAAEgmI,IAFE;IAGLj9H,KAAK,EAAEk9H,IAAI,GAAGF,IAHT;IAIL/8H,MAAM,EAAEk9H,IAAI,GAAGF,IAAAA;GAJjB,CAAA;AAMD,CAAA;;AAED,SAASG,WAAT,CAAqBjtD,UAArB,EAAiCt2E,CAAjC,EAAoCigI,gBAApC,EAAsD;EACpD;EACA,CAAC3pD,UAAU,CAACqnD,UAAZ;AACA;AACA;AAFA,KAGG6F,eAAe,CAACltD,UAAD,EAAat2E,CAAC,CAAC2S,OAAf,EAAwB3S,CAAC,CAAC6S,OAA1B,CAJlB,EAIsD;AACpD,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIigE,EAAE,GAAGwD,UAAU,CAAC/C,GAApB,CAAA;AACA,EAAA,IAAIgtD,MAAM,GAAGjqD,UAAU,CAAC+mD,OAAxB,CAAA;EACA,IAAIoG,SAAS,GAAGzD,eAAe,CAAC1pD,UAAD,EAAat2E,CAAb,EAAgBigI,gBAAhB,CAA/B,CAXoD;;AAapD,EAAA,IAAI,CAAC3pD,UAAU,CAAC1B,SAAhB,EAA2B;AACzB,IAAA,KAAK,IAAIx0E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmgI,MAAM,CAAC7gI,MAA3B,EAAmCU,CAAC,EAApC,EAAwC;AACtC,MAAA,IAAIq9H,WAAW,GAAG8C,MAAM,CAACngI,CAAD,CAAN,CAAU++H,aAA5B,CAAA;;AAEA,MAAA,IAAIsE,SAAS,KAAKA,SAAS,KAAKxH,kBAAd,IAAoCwB,WAAW,CAACY,OAAZ,KAAwBoF,SAAS,CAACpF,OAA3E,CAAT,IAAgGqB,cAAc,CAACjC,WAAW,CAACI,SAAb,CAAd,CAAsCpmG,OAAtC,CAA8C8oG,MAAM,CAACngI,CAAD,CAApD,EAAyD6/H,gBAAgB,CAAC,CAAD,CAAzE,EAA8EA,gBAAgB,CAAC,CAAD,CAA9F,CAApG,EAAwM;AACtM;AACA,QAAA,OAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;AAEDwD,EAAAA,SAAS,IAAI3wD,EAAE,CAAC4wD,cAAH,CAAkB,WAAlB,CAAb,CAAA;AACD,CAAA;;AAED,SAASC,cAAT,CAAwB3jI,CAAxB,EAA2B;AACzB,EAAA,IAAI4jI,IAAI,GAAG5jI,CAAC,CAACy/C,KAAb,CAAA;AACAmkF,EAAAA,IAAI,CAACD,cAAL,IAAuBC,IAAI,CAACD,cAAL,EAAvB,CAAA;AACD,CAAA;;AAED,SAASE,gBAAT,CAA0B3E,KAA1B,EAAiC/hI,CAAjC,EAAoCC,CAApC,EAAuC;EACrC,OAAO8hI,KAAK,CAACnb,WAAN,CAAkB,MAAlB,CAA0BtsF,CAAAA,OAA1B,CAAkCt6B,CAAlC,EAAqCC,CAArC,CAAP,CAAA;AACD,CAAA;;AAED,SAAS0mI,kBAAT,CAA4BxtD,UAA5B,EAAwCt2E,CAAxC,EAA2CigI,gBAA3C,EAA6DnqF,KAA7D,EAAoE;AAClE,EAAA,IAAIgpF,aAAa,GAAGxoD,UAAU,CAACyoD,cAA/B,CAAA;AACA,EAAA,IAAIoB,KAAK,GAAG7pD,UAAU,CAACytD,cAAvB,CAAA;AACA,EAAA,IAAIC,eAAe,GAAG1tD,UAAU,CAAC0nD,YAAjC,CAAA;AACA,EAAA,IAAIiG,WAAJ,CAAA;;EAEA3tD,UAAU,CAAC8mD,MAAX,CAAkB38H,IAAlB,CAAuBw/H,gBAAgB,CAACx6G,KAAjB,EAAvB,CAAA,CAAA;;AAEA,EAAA,IAAIi7G,eAAe,CAACpqD,UAAD,CAAf,IAA+BwoD,aAAnC,EAAkD;AAChD,IAAA,IAAIqB,KAAK,IAAI,CAACrB,aAAd,EAA6B;MAC3BkF,eAAe,CAAChH,SAAhB,KAA8B,QAA9B,IAA0CyC,WAAW,CAACnpD,UAAD,CAArD,CAAA;AACA,MAAA,IAAImnD,WAAW,GAAGznH,OAAK,CAACguH,eAAD,CAAvB,CAAA;MACAvG,WAAW,CAACI,SAAZ,GAAwBqG,kBAAkB,CAACzG,WAAW,CAACI,SAAb,EAAwBsC,KAAxB,CAA1C,CAAA;MACA1C,WAAW,CAACY,OAAZ,GAAsB8B,KAAK,KAAKlE,kBAAV,GAA+B,IAA/B,GAAsCkE,KAAK,CAAC9B,OAAlE,CAAA;MACAS,aAAa,GAAGxoD,UAAU,CAACyoD,cAAX,GAA4BO,WAAW,CAAChpD,UAAD,EAAamnD,WAAb,CAAvD,CAAA;;AAEAnnD,MAAAA,UAAU,CAAC+mD,OAAX,CAAmB58H,IAAnB,CAAwBq+H,aAAxB,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIA,aAAJ,EAAmB;AACjB,MAAA,IAAIc,aAAa,GAAGF,cAAc,CAACwE,kBAAkB,CAAC5tD,UAAU,CAACqnD,UAAZ,EAAwBwC,KAAxB,CAAnB,CAAlC,CAAA;AACA,MAAA,IAAIgE,gBAAgB,GAAGrF,aAAa,CAACK,aAArC,CAAA;AACAgF,MAAAA,gBAAgB,CAACx7F,KAAjB,GAAyBi3F,aAAa,CAACwE,gBAAd,CAA+BlC,WAAW,CAAC5rD,UAAD,EAAawoD,aAAb,EAA4BxoD,UAAU,CAAC8mD,MAAvC,CAA1C,CAAzB,CAAA;;AAEA,MAAA,IAAItnF,KAAJ,EAAW;AACTupF,QAAAA,WAAW,CAAC/oD,UAAD,EAAawoD,aAAb,CAAX,CAAA;AACAc,QAAAA,aAAa,CAACG,YAAd,CAA2BzpD,UAA3B,EAAuCwoD,aAAvC,CAAA,CAAA;AACD,OAAA;;AAEDgB,MAAAA,gBAAgB,CAACxpD,UAAD,EAAawoD,aAAb,CAAhB,CAAA;AACAmF,MAAAA,WAAW,GAAG;AACZnuF,QAAAA,KAAK,EAAEA,KAAAA;OADT,CAAA;AAGD,KAAA;AACF,GA1BD,MA0BO,IAAIA,KAAK,IAAIkuF,eAAe,CAAChH,SAAhB,KAA8B,QAAvC,IAAmDgH,eAAe,CAAC/G,aAAvE,EAAsF;AAC3F;AACA;AACA;AACA;AACA;AACA,IAAA,IAAI+C,eAAe,CAAC1pD,UAAD,EAAat2E,CAAb,EAAgBigI,gBAAhB,CAAf,IAAoDR,WAAW,CAACnpD,UAAD,CAAnE,EAAiF;AAC/E2tD,MAAAA,WAAW,GAAG;AACZnuF,QAAAA,KAAK,EAAEA,KADK;AAEZmnF,QAAAA,aAAa,EAAE,IAAA;OAFjB,CAAA;AAID,KAAA;AACF,GAAA;;AAED,EAAA,OAAOgH,WAAP,CAAA;AACD,CAAA;;AAED,SAASC,kBAAT,CAA4BrG,SAA5B,EAAuCsC,KAAvC,EAA8C;EAC5C,IAAItC,SAAS,KAAK,MAAlB,EAA0B;AACxB,IAAA,IAAI/pH,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzCqB,MAAM,CAAC8qH,KAAK,IAAIA,KAAK,CAACkE,gBAAhB,EAAkC,qDAAlC,CAAN,CAAA;AACD,KAAA;;IAED,OAAOlE,KAAK,CAACkE,gBAAb,CAAA;AACD,GAAA;;AAED,EAAA,OAAOxG,SAAP,CAAA;AACD,CAAA;;AAED,IAAIN,eAAe,GAAG;EACpBjH,SAAS,EAAE,SAAUt2H,SAAAA,CAAAA,CAAV,EAAa;IACtB,IAAI,IAAA,CAAK40E,SAAT,EAAoB;AAClB;AACA;AACA0vD,MAAAA,aAAa,CAAC,IAAD,EAAOtkI,CAAP,CAAb,CAAA;AACD,KAJD,MAIO,IAAI,CAACA,CAAC,CAACuI,MAAH,IAAa,CAACvI,CAAC,CAACuI,MAAF,CAASwqB,SAA3B,EAAsC;MAC3C4wG,cAAc,CAAC3jI,CAAD,CAAd,CAAA;AACA,MAAA,IAAIigI,gBAAgB,GAAG,IAAKlyG,CAAAA,KAAL,CAAW8/B,qBAAX,CAAiC7tD,CAAC,CAAC2S,OAAnC,EAA4C3S,CAAC,CAAC6S,OAA9C,CAAvB,CAAA;MACA,IAAKksH,CAAAA,cAAL,GAAsB,IAAtB,CAAA;AACA,MAAA,IAAIoB,KAAK,GAAG,IAAK4D,CAAAA,cAAL,GAAsB/D,eAAe,CAAC,IAAD,EAAOhgI,CAAP,EAAUigI,gBAAV,CAAjD,CAAA;;AAEA,MAAA,IAAIE,KAAJ,EAAW;QACT,IAAKvrD,CAAAA,SAAL,GAAiB,IAAjB,CAAA;AACA,QAAA,IAAA,CAAKwoD,MAAL,GAAc,CAAC6C,gBAAgB,CAACx6G,KAAjB,EAAD,CAAd,CAAA;AACD,OAAA;AACF,KAAA;GAhBiB;EAkBpBqxG,SAAS,EAAE,SAAU92H,SAAAA,CAAAA,CAAV,EAAa;AACtB,IAAA,IAAI7C,CAAC,GAAG6C,CAAC,CAAC2S,OAAV,CAAA;AACA,IAAA,IAAIvV,CAAC,GAAG4C,CAAC,CAAC6S,OAAV,CAAA;IACA,IAAIotH,gBAAgB,GAAG,IAAA,CAAKlyG,KAAL,CAAW8/B,qBAAX,CAAiC1wD,CAAjC,EAAoCC,CAApC,CAAvB,CAAA;AACAmmI,IAAAA,WAAW,CAAC,IAAD,EAAOvjI,CAAP,EAAUigI,gBAAV,CAAX,CAAA;;IAEA,IAAI,IAAA,CAAKrrD,SAAT,EAAoB;MAClB+uD,cAAc,CAAC3jI,CAAD,CAAd,CAAA;MACA,IAAIikI,WAAW,GAAGH,kBAAkB,CAAC,IAAD,EAAO9jI,CAAP,EAAUigI,gBAAV,EAA4B,KAA5B,CAApC,CAAA;AACAgE,MAAAA,WAAW,IAAIxuD,OAAO,CAAC,IAAD,EAAOwuD,WAAP,CAAtB,CAAA;AACD,KAAA;GA5BiB;EA8BpBxN,OAAO,EAAE,SAAUz2H,OAAAA,CAAAA,CAAV,EAAa;AACpBskI,IAAAA,aAAa,CAAC,IAAD,EAAOtkI,CAAP,CAAb,CAAA;AACD,GAAA;AAhCmB,CAAtB,CAAA;;AAmCA,SAASskI,aAAT,CAAuBhuD,UAAvB,EAAmCt2E,CAAnC,EAAsC;EACpC,IAAIs2E,UAAU,CAAC1B,SAAf,EAA0B;IACxB+uD,cAAc,CAAC3jI,CAAD,CAAd,CAAA;AACA,IAAA,IAAI7C,CAAC,GAAG6C,CAAC,CAAC2S,OAAV,CAAA;AACA,IAAA,IAAIvV,CAAC,GAAG4C,CAAC,CAAC6S,OAAV,CAAA;IACA,IAAIotH,gBAAgB,GAAG3pD,UAAU,CAACvoD,KAAX,CAAiB8/B,qBAAjB,CAAuC1wD,CAAvC,EAA0CC,CAA1C,CAAvB,CAAA;IACA,IAAI6mI,WAAW,GAAGH,kBAAkB,CAACxtD,UAAD,EAAat2E,CAAb,EAAgBigI,gBAAhB,EAAkC,IAAlC,CAApC,CAAA;IACA3pD,UAAU,CAAC1B,SAAX,GAAuB,KAAvB,CAAA;IACA0B,UAAU,CAAC8mD,MAAX,GAAoB,EAApB,CAAA;AACA9mD,IAAAA,UAAU,CAACyoD,cAAX,GAA4B,IAA5B,CARwB;;AAUxBkF,IAAAA,WAAW,IAAIxuD,OAAO,CAACa,UAAD,EAAa2tD,WAAb,CAAtB,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAST,eAAT,CAAyBltD,UAAzB,EAAqCn5E,CAArC,EAAwCC,CAAxC,EAA2C;AACzC,EAAA,IAAI01E,EAAE,GAAGwD,UAAU,CAAC/C,GAApB,CAAA;EACA,OAAOp2E,CAAC,GAAG,CAAJ,IAASA,CAAC,GAAG21E,EAAE,CAAC1zD,QAAH,EAAb,IAA8BhiB,CAAC,GAAG,CAAlC,IAAuCA,CAAC,GAAG01E,EAAE,CAACzzD,SAAH,EAAlD,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,IAAIqgH,cAAc,GAAG;AACnB6E,EAAAA,KAAK,EAAEC,eAAe,CAAC,CAAD,CADH;AAEnBC,EAAAA,KAAK,EAAED,eAAe,CAAC,CAAD,CAFH;AAGnBllI,EAAAA,IAAI,EAAE;AACJggI,IAAAA,WAAW,EAAE,SAAA,WAAA,CAAUhpD,UAAV,EAAsBmnD,WAAtB,EAAmC;MAC9C,SAASiH,WAAT,CAAqB/7F,KAArB,EAA4B;AAC1B,QAAA,OAAOA,KAAP,CAAA;AACD,OAAA;;AAED,MAAA,OAAOi4F,mBAAmB,CAAC;AACzB8B,QAAAA,WAAW,EAAEgC,WADY;AAEzB3B,QAAAA,aAAa,EAAE2B,WAAAA;OAFS,EAGvBpuD,UAHuB,EAGXmnD,WAHW,EAGE,CAAC,CAAC,GAAD,CAAD,EAAQ,CAAC,GAAD,CAAR,EAAe,CAAC,GAAD,CAAf,EAAsB,CAAC,GAAD,CAAtB,EAA6B,CAAC,GAAD,EAAM,GAAN,CAA7B,EAAyC,CAAC,GAAD,EAAM,GAAN,CAAzC,EAAqD,CAAC,GAAD,EAAM,GAAN,CAArD,EAAiE,CAAC,GAAD,EAAM,GAAN,CAAjE,CAHF,CAA1B,CAAA;KANE;IAWJ2G,gBAAgB,EAAE,SAAUO,gBAAAA,CAAAA,UAAV,EAAsB;AACtC,MAAA,IAAIC,IAAI,GAAGjE,YAAY,CAACgE,UAAD,CAAvB,CAAA;AACA,MAAA,OAAOxC,eAAe,CAACyC,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAD,EAAaA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAb,EAAyBA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAzB,EAAqCA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAArC,CAAtB,CAAA;KAbE;IAeJ9E,gBAAgB,EAAE,0BAAUxpD,UAAV,EAAsB4oD,KAAtB,EAA6BkC,UAA7B,EAAyC3D,WAAzC,EAAsD;MACtE0D,cAAc,CAAC7qD,UAAD,EAAa4oD,KAAb,EAAoBkC,UAApB,EAAgC3D,WAAhC,CAAd,CAAA;KAhBE;AAkBJsC,IAAAA,YAAY,EAAEA,cAlBV;AAmBJtoG,IAAAA,OAAO,EAAEosG,gBAAAA;GAtBQ;AAwBnBx0H,EAAAA,OAAO,EAAE;AACPiwH,IAAAA,WAAW,EAAE,SAAA,WAAA,CAAUhpD,UAAV,EAAsBmnD,WAAtB,EAAmC;MAC9C,IAAIyB,KAAK,GAAG,IAAIzrG,OAAJ,EAAZ,CAD8C;AAE9C;;AAEAyrG,MAAAA,KAAK,CAAC5wG,GAAN,CAAU,IAAImF,UAAJ,CAAqB;AAC7BrwB,QAAAA,IAAI,EAAE,MADuB;AAE7BpC,QAAAA,KAAK,EAAE+/H,SAAS,CAACtD,WAAD,CAFa;AAG7BvqG,QAAAA,MAAM,EAAE,IAAA;AAHqB,OAArB,CAAV,CAAA,CAAA;AAKA,MAAA,OAAOgsG,KAAP,CAAA;KAVK;IAYPkF,gBAAgB,EAAE,SAAUO,gBAAAA,CAAAA,UAAV,EAAsB;AACtC,MAAA,OAAOA,UAAP,CAAA;KAbK;AAePtF,IAAAA,WAAW,EAAE,SAAA,WAAA,CAAU/oD,UAAV,EAAsB4oD,KAAtB,EAA6B;MACxCA,KAAK,CAACpmG,MAAN,CAAaomG,KAAK,CAAC7sG,OAAN,CAAc,CAAd,CAAb,CAAA,CADwC;;AAGxC6sG,MAAAA,KAAK,CAAC5wG,GAAN,CAAU,IAAImF,OAAJ,CAAoB;AAC5BrwB,QAAAA,IAAI,EAAE,MADsB;AAE5B2vB,QAAAA,SAAS,EAAE,IAFiB;QAG5Bf,KAAK,EAAE86B,OAAK,CAACk2E,YAAD,EAAe1sD,UAAf,EAA2B4oD,KAA3B,CAHgB;AAI5B+B,QAAAA,SAAS,EAAEn0E,OAAK,CAAC2oB,OAAD,EAAUa,UAAV,EAAsB;AACpCxgC,UAAAA,KAAK,EAAE,IAAA;SADO,CAAA;AAJY,OAApB,CAAV,CAAA,CAAA;KAlBK;IA2BPgqF,gBAAgB,EAAE,0BAAUxpD,UAAV,EAAsB4oD,KAAtB,EAA6BkC,UAA7B,EAAyC3D,WAAzC,EAAsD;AACtEyB,MAAAA,KAAK,CAAC7sG,OAAN,CAAc,CAAd,CAAA,CAAiB8Z,QAAjB,CAA0B;AACxBz9B,QAAAA,MAAM,EAAEwzH,WAAW,CAAC5rD,UAAD,EAAa4oD,KAAb,EAAoBkC,UAApB,CAAA;OADrB,CAAA,CAAA;KA5BK;AAgCPrB,IAAAA,YAAY,EAAEA,cAhCP;AAiCPtoG,IAAAA,OAAO,EAAEosG,gBAAAA;AAjCF,GAAA;AAxBU,CAArB,CAAA;;AA6DA,SAASW,eAAT,CAAyBK,OAAzB,EAAkC;EAChC,OAAO;AACLvF,IAAAA,WAAW,EAAE,SAAA,WAAA,CAAUhpD,UAAV,EAAsBmnD,WAAtB,EAAmC;AAC9C,MAAA,OAAOmD,mBAAmB,CAAC;QACzB8B,WAAW,EAAE,SAAU/5F,WAAAA,CAAAA,KAAV,EAAiB;UAC5B,IAAI85F,SAAS,GAAG,CAAC95F,KAAD,EAAQ,CAAC,CAAD,EAAI,GAAJ,CAAR,CAAhB,CAAA;AACAk8F,UAAAA,OAAO,IAAIpC,SAAS,CAAC57F,OAAV,EAAX,CAAA;AACA,UAAA,OAAO47F,SAAP,CAAA;SAJuB;QAMzBM,aAAa,EAAE,SAAUN,aAAAA,CAAAA,SAAV,EAAqB;UAClC,OAAOA,SAAS,CAACoC,OAAD,CAAhB,CAAA;AACD,SAAA;AARwB,OAAD,EASvBvuD,UATuB,EASXmnD,WATW,EASE,CAAC,CAAC,CAAC,GAAD,CAAD,EAAQ,CAAC,GAAD,CAAR,CAAD,EAAiB,CAAC,CAAC,GAAD,CAAD,EAAQ,CAAC,GAAD,CAAR,CAAjB,CAAA,CAAiCoH,OAAjC,CATF,CAA1B,CAAA;KAFG;IAaLT,gBAAgB,EAAE,SAAUO,gBAAAA,CAAAA,UAAV,EAAsB;AACtC,MAAA,IAAIC,IAAI,GAAGjE,YAAY,CAACgE,UAAD,CAAvB,CAAA;AACA,MAAA,IAAI3lG,GAAG,GAAGD,SAAO,CAAC6lG,IAAI,CAAC,CAAD,CAAJ,CAAQC,OAAR,CAAD,EAAmBD,IAAI,CAAC,CAAD,CAAJ,CAAQC,OAAR,CAAnB,CAAjB,CAAA;AACA,MAAA,IAAIjmH,GAAG,GAAGqgB,SAAO,CAAC2lG,IAAI,CAAC,CAAD,CAAJ,CAAQC,OAAR,CAAD,EAAmBD,IAAI,CAAC,CAAD,CAAJ,CAAQC,OAAR,CAAnB,CAAjB,CAAA;AACA,MAAA,OAAO,CAAC7lG,GAAD,EAAMpgB,GAAN,CAAP,CAAA;KAjBG;IAmBLkhH,gBAAgB,EAAE,0BAAUxpD,UAAV,EAAsB4oD,KAAtB,EAA6BkC,UAA7B,EAAyC3D,WAAzC,EAAsD;MACtE,IAAIqH,WAAJ,CADsE;;AAGtE,MAAA,IAAI3E,KAAK,GAAGG,eAAe,CAAChqD,UAAD,EAAa4oD,KAAb,CAA3B,CAAA;;AAEA,MAAA,IAAIiB,KAAK,KAAKlE,kBAAV,IAAgCkE,KAAK,CAAC4E,yBAA1C,EAAqE;AACnED,QAAAA,WAAW,GAAG3E,KAAK,CAAC4E,yBAAN,CAAgCF,OAAhC,CAAd,CAAA;AACD,OAFD,MAEO;AACL,QAAA,IAAI/xD,EAAE,GAAGwD,UAAU,CAAC/C,GAApB,CAAA;AACAuxD,QAAAA,WAAW,GAAG,CAAC,CAAD,EAAI,CAAChyD,EAAE,CAAC1zD,QAAH,EAAD,EAAgB0zD,EAAE,CAACzzD,SAAH,EAAhB,EAAgC,CAAIwlH,GAAAA,OAApC,CAAJ,CAAd,CAAA;AACD,OAAA;;AAED,MAAA,IAAIpC,SAAS,GAAG,CAACrB,UAAD,EAAa0D,WAAb,CAAhB,CAAA;AACAD,MAAAA,OAAO,IAAIpC,SAAS,CAAC57F,OAAV,EAAX,CAAA;MACAs6F,cAAc,CAAC7qD,UAAD,EAAa4oD,KAAb,EAAoBuD,SAApB,EAA+BhF,WAA/B,CAAd,CAAA;KAjCG;AAmCLsC,IAAAA,YAAY,EAAEA,cAnCT;AAoCLtoG,IAAAA,OAAO,EAAEosG,gBAAAA;GApCX,CAAA;AAsCD;;ACz0BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAASmB,qBAAT,CAA+B1lI,IAA/B,EAAqC;AAC1CA,EAAAA,IAAI,GAAG2lI,aAAa,CAAC3lI,IAAD,CAApB,CAAA;EACA,OAAO,UAAU4lI,WAAV,EAAuB;AAC5B,IAAA,OAAOC,gBAAA,CAA6BD,WAA7B,EAA0C5lI,IAA1C,CAAP,CAAA;GADF,CAAA;AAGD,CAAA;AACM,SAAS8lI,0BAAT,CAAoC9lI,IAApC,EAA0C+lI,gBAA1C,EAA4D;AACjE/lI,EAAAA,IAAI,GAAG2lI,aAAa,CAAC3lI,IAAD,CAApB,CAAA;EACA,OAAO,UAAUulI,OAAV,EAAmB;IACxB,IAAIz4G,GAAG,GAAGi5G,gBAAgB,IAAI,IAApB,GAA2BA,gBAA3B,GAA8CR,OAAxD,CAAA;IACA,IAAIS,UAAU,GAAGl5G,GAAG,GAAG9sB,IAAI,CAAC6G,KAAR,GAAgB7G,IAAI,CAAC8G,MAAzC,CAAA;IACA,IAAIwzD,IAAI,GAAGxtC,GAAG,GAAG9sB,IAAI,CAACnC,CAAR,GAAYmC,IAAI,CAAClC,CAA/B,CAAA;IACA,OAAO,CAACw8D,IAAD,EAAOA,IAAI,IAAI0rE,UAAU,IAAI,CAAlB,CAAX,CAAP,CAAA;GAJF,CAAA;AAMD,CAAA;AACM,SAASC,wBAAT,CAAkCjmI,IAAlC,EAAwC2Z,GAAxC,EAA6CusH,WAA7C,EAA0D;AAC/D,EAAA,IAAI3hH,YAAY,GAAGohH,aAAa,CAAC3lI,IAAD,CAAhC,CAAA;AACA,EAAA,OAAO,UAAUU,CAAV,EAAaigI,gBAAb,EAA+B;IACpC,OAAOp8G,YAAY,CAAC4T,OAAb,CAAqBwoG,gBAAgB,CAAC,CAAD,CAArC,EAA0CA,gBAAgB,CAAC,CAAD,CAA1D,CAAA,IAAkE,CAACxoD,mBAAmB,CAACz3E,CAAD,EAAIiZ,GAAJ,EAASusH,WAAT,CAA7F,CAAA;GADF,CAAA;AAGD;;AAED,SAASP,aAAT,CAAuB3lI,IAAvB,EAA6B;AAC3B,EAAA,OAAOmkB,YAAY,CAACu6C,MAAb,CAAoB1+D,IAApB,CAAP,CAAA;AACD;;ACrED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA,IAAImmI,aAAW,GAAG,CAAC,UAAD,EAAa,eAAb,EAA8B,UAA9B,CAAlB,CAAA;;AAEA,IAAIC,gBAAgB;AACpB;AACA,UAAU9kH,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC6kH,gBAAD,EAAmB9kH,MAAnB,CAAT,CAAA;;AAEA,EAAA,SAAS8kH,gBAAT,GAA4B;AAC1B,IAAA,IAAI5kH,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAai2H,gBAAgB,CAACj2H,IAA9B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED4kH,gBAAgB,CAAChpI,SAAjB,CAA2BytC,IAA3B,GAAkC,UAAUM,OAAV,EAAmBxxB,GAAnB,EAAwB;IACxD2H,MAAM,CAAClkB,SAAP,CAAiBytC,IAAjB,CAAsB/c,KAAtB,CAA4B,IAA5B,EAAkC/sB,SAAlC,CAAA,CAAA;;IAEA,CAAC,IAAA,CAAKslI,gBAAL,GAAwB,IAAIxI,eAAJ,CAAoBlkH,GAAG,CAACghC,KAAJ,EAApB,CAAzB,EAA2DC,EAA3D,CAA8D,OAA9D,EAAuE9V,MAAA,CAAY,IAAKwhG,CAAAA,QAAjB,EAA2B,IAA3B,CAAvE,CAAA,CAAA;GAHF,CAAA;;AAMAF,EAAAA,gBAAgB,CAAChpI,SAAjB,CAA2B8tC,MAA3B,GAAoC,UAAUkS,SAAV,EAAqBjS,OAArB,EAA8BxxB,GAA9B,EAAmCu0B,OAAnC,EAA4C;IAC9E,IAAIq4F,kBAAkB,CAACnpF,SAAD,EAAYjS,OAAZ,EAAqB+C,OAArB,CAAtB,EAAqD;AACnD,MAAA,OAAA;AACD,KAAA;;IAED,IAAKkP,CAAAA,SAAL,GAAiBA,SAAjB,CAAA;IACA,IAAKzjC,CAAAA,GAAL,GAAWA,GAAX,CAAA;IACA,IAAK8U,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;IACA,IAAIq5C,YAAY,GAAG,IAAA,CAAKC,UAAxB,CAAA;AACA,IAAA,IAAA,CAAKA,UAAL,GAAkB,IAAIx3C,OAAJ,EAAlB,CAAA;AACA,IAAA,IAAA,CAAK1F,KAAL,CAAWO,GAAX,CAAe,KAAK28C,UAApB,CAAA,CAAA;;AAEA,IAAA,IAAI,CAACvuB,SAAS,CAAC7nB,GAAV,CAAc,MAAd,CAAL,EAA4B;AAC1B,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI4xC,aAAa,GAAG9W,gBAAgB,CAACjT,SAAD,EAAYjS,OAAZ,CAApC,CAAA;AACA,IAAA,IAAIjd,QAAQ,GAAGi5C,aAAa,CAACh5C,gBAA7B,CAAA;AACA,IAAA,IAAIq4G,eAAe,GAAGppF,SAAS,CAACo/E,kBAAV,EAAtB,CAAA;AACA,IAAA,IAAIiK,SAAS,GAAGD,eAAe,CAAC3/H,KAAhC,CAAA;AACA,IAAA,IAAIs0B,GAAG,GAAGiiB,SAAS,CAACrW,IAAV,CAAe5L,GAAzB,CAAA;AACA,IAAA,IAAI0gG,UAAU,GAAG3tG,QAAQ,CAAC4tG,aAAT,CAAuB3gG,GAAvB,CAAjB,CAAA;AACA,IAAA,IAAIurG,UAAU,GAAG5hG,MAAA,CAAc;AAC7B67B,MAAAA,sBAAsB,EAAE8lE,SAAAA;KADT,EAEd5K,UAFc,CAAjB,CAAA;IAGA,IAAIhwD,WAAW,GAAG,IAAI3M,WAAJ,CAAgB9hB,SAAhB,EAA2BspF,UAA3B,CAAlB,CAAA;IACA5hG,MAAA,CAAYqhG,aAAZ,EAAyBt6D,WAAW,CAAC78C,GAArC,EAA0C68C,WAA1C,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKF,UAAL,CAAgB38C,GAAhB,CAAoB68C,WAAW,CAACpM,QAAZ,EAApB,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKknE,uBAAL,CAA6BD,UAA7B,EAAyCF,eAAzC,EAA0DppF,SAA1D,EAAqE+pB,aAArE,EAAoFs/D,SAApF,EAA+F9sH,GAA/F,CAAA,CAAA;;IAEAwa,eAAA,CAAwBu3C,YAAxB,EAAsC,IAAKC,CAAAA,UAA3C,EAAuDvuB,SAAvD,CAAA,CAAA;AACD,GAjCD,CAhBgB;AAkDhB;AACA;AACA;AACA;AACA;AACA;;;AAGAgpF,EAAAA,gBAAgB,CAAChpI,SAAjB,CAA2BupI,uBAA3B,GAAqD,UAAUD,UAAV,EAAsBF,eAAtB,EAAuCppF,SAAvC,EAAkD+pB,aAAlD,EAAiEs/D,SAAjE,EAA4E9sH,GAA5E,EAAiF;AACpI;AACA,IAAA,IAAIuiB,MAAM,GAAGkhB,SAAS,CAACrW,IAAV,CAAe5K,SAAf,EAAb,CAAA;IACA,IAAIyqG,SAAS,GAAG1qG,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAlC,CAAA;AACA,IAAA,IAAI2qG,KAAK,GAAGjqI,IAAI,CAAC8iC,GAAL,CAAS,EAAT,EAAa9iC,IAAI,CAACyC,GAAL,CAASunI,SAAT,IAAsB,GAAnC,CAAZ,CAJoI;AAKpI;AACA;;AAEA,IAAA,IAAI5mI,IAAI,GAAGm0B,YAAA,CAAqBuqC,MAArB,CAA4B;AACrC7gE,MAAAA,CAAC,EAAEq+B,MAAM,CAAC,CAAD,CAD4B;AAErCp+B,MAAAA,CAAC,EAAE,CAAC2oI,SAAD,GAAa,CAFqB;AAGrC5/H,MAAAA,KAAK,EAAE+/H,SAH8B;AAIrC9/H,MAAAA,MAAM,EAAE2/H,SAAAA;AAJ6B,KAA5B,CAAX,CAAA;IAMAzmI,IAAI,CAACnC,CAAL,IAAUgpI,KAAV,CAAA;AACA7mI,IAAAA,IAAI,CAAC6G,KAAL,IAAc,CAAA,GAAIggI,KAAlB,CAAA;;IAEA,IAAKR,CAAAA,gBAAL,CAAsBrH,KAAtB,CAA4B;AAC1BC,MAAAA,eAAe,EAAE,IADS;MAE1BrvG,QAAQ,EAAE82G,UAAU,CAAC92G,QAFK;AAG1B/xB,MAAAA,CAAC,EAAE6oI,UAAU,CAACxlH,QAAX,CAAoB,CAApB,CAHuB;AAI1BpjB,MAAAA,CAAC,EAAE4oI,UAAU,CAACxlH,QAAX,CAAoB,CAApB,CAAA;KAJL,CAAA,CAKGy9G,SALH,CAKa,CAAC;AACZI,MAAAA,OAAO,EAAE,IADG;AAEZ9nH,MAAAA,QAAQ,EAAE6vH,qBAAA,CAAkC9mI,IAAlC,CAFE;MAGZ+gI,gBAAgB,EAAE+F,wBAAA,CAAqC9mI,IAArC,EAA2C2Z,GAA3C,EAAgDwtD,aAAhD,CAHN;AAIZs+D,MAAAA,yBAAyB,EAAEqB,0BAAA,CAAuC9mI,IAAvC,EAA6C,CAA7C,CAAA;KAJhB,CALb,CAUIk+H,CAAAA,WAVJ,CAUgB;AACdK,MAAAA,SAAS,EAAE,OADG;AAEdf,MAAAA,UAAU,EAAEgJ,eAFE;AAGd7I,MAAAA,aAAa,EAAE,IAAA;AAHD,KAVhB,EAcGuB,YAdH,CAcgB6H,gBAAgB,CAAC3pF,SAAD,CAdhC,CAAA,CAAA;GAjBF,CAAA;;AAkCAgpF,EAAAA,gBAAgB,CAAChpI,SAAjB,CAA2BkpI,QAA3B,GAAsC,UAAUU,UAAV,EAAsB;AAC1D,IAAA,IAAIC,aAAa,GAAGD,UAAU,CAAC7F,KAA/B,CAD0D;;IAG1D,IAAI/jF,SAAS,GAAG,IAAA,CAAKA,SAArB,CAAA;AACA,IAAA,IAAIrW,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;IACA,IAAI21F,SAAS,GAAG53F,GAAA,CAAWmiG,aAAX,EAA0B,UAAUC,SAAV,EAAqB;AAC7D,MAAA,OAAO,CAACngG,IAAI,CAACowB,WAAL,CAAiB+vE,SAAS,CAAC79F,KAAV,CAAgB,CAAhB,CAAjB,EAAqC,IAArC,CAAD,EAA6CtC,IAAI,CAACowB,WAAL,CAAiB+vE,SAAS,CAAC79F,KAAV,CAAgB,CAAhB,CAAjB,EAAqC,IAArC,CAA7C,CAAP,CAAA;KADc,CAAhB,CAL0D;AAQ1D;AACA;;AAEA,IAAA,IAAI,CAAC+T,SAAS,CAACnvB,MAAV,CAAiBk5G,QAAlB,KAA+BH,UAAU,CAACxwF,KAA1C,IAAmDwwF,UAAU,CAACrJ,aAAlE,EAAiF;AAC/E;MACA,IAAKhkH,CAAAA,GAAL,CAASwiC,cAAT,CAAwB;AACtBhsC,QAAAA,IAAI,EAAE,gBADgB;QAEtBi3H,cAAc,EAAEhqF,SAAS,CAACnsC,EAFJ;AAGtByrH,QAAAA,SAAS,EAAEA,SAAAA;OAHb,CAAA,CAAA;AAKD,KAAA;GAlBH,CAAA;;AAqBA0J,EAAAA,gBAAgB,CAAChpI,SAAjB,CAA2B4iB,OAA3B,GAAqC,YAAY;IAC/C,IAAKqmH,CAAAA,gBAAL,CAAsBrmH,OAAtB,EAAA,CAAA;GADF,CAAA;;EAIAomH,gBAAgB,CAACj2H,IAAjB,GAAwB,cAAxB,CAAA;AACA,EAAA,OAAOi2H,gBAAP,CAAA;AACD,CAvHD,CAuHE77D,aAvHF,CAFA,CAAA;;AA2HA,SAASg8D,kBAAT,CAA4BnpF,SAA5B,EAAuCjS,OAAvC,EAAgD+C,OAAhD,EAAyD;EACvD,OAAOA,OAAO,IAAIA,OAAO,CAAC/9B,IAAR,KAAiB,gBAA5B,IAAgDg7B,OAAO,CAAC2X,cAAR,CAAuB;AAC5E9B,IAAAA,QAAQ,EAAE,cADkE;AAE5EC,IAAAA,KAAK,EAAE/S,OAAAA;GAF8C,CAAA,CAGpD,CAHoD,CAAA,KAG7CkP,SAHV,CAAA;AAID,CAAA;;AAED,SAAS2pF,gBAAT,CAA0B3pF,SAA1B,EAAqC;AACnC,EAAA,IAAIrW,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;EACA,OAAOjC,GAAA,CAAWsY,SAAS,CAACm/E,eAArB,EAAsC,UAAUrqE,QAAV,EAAoB;IAC/D,OAAO;AACLqsE,MAAAA,SAAS,EAAE,OADN;AAELQ,MAAAA,OAAO,EAAE,IAFJ;MAGL11F,KAAK,EAAE,CAACtC,IAAI,CAACK,WAAL,CAAiB8qB,QAAQ,CAAC,CAAD,CAAzB,EAA8B,IAA9B,CAAD,EAAsCnrB,IAAI,CAACK,WAAL,CAAiB8qB,QAAQ,CAAC,CAAD,CAAzB,EAA8B,IAA9B,CAAtC,CAAA;KAHT,CAAA;AAKD,GANM,CAAP,CAAA;AAOD,CAAA;;AAED,SAAS7B,gBAAT,CAA0BjT,SAA1B,EAAqCjS,OAArC,EAA8C;AAC5C,EAAA,OAAOA,OAAO,CAACw7B,YAAR,CAAqB,UAArB,EAAiCvpB,SAAS,CAAC7nB,GAAV,CAAc,eAAd,CAAjC,CAAP,CAAA;AACD;;AClMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIkgE,UAAU,GAAG;AACftlF,EAAAA,IAAI,EAAE,gBADS;EAEfgwC,KAAK,EAAE,kBAFQ;;AAAA,CAAjB,CAAA;AAKO,SAASknF,sBAAT,CAAgC5mH,SAAhC,EAA2C;EAChDA,SAAS,CAACqgC,cAAV,CAAyB20C,UAAzB,EAAqC,UAAUvnD,OAAV,EAAmB/C,OAAnB,EAA4B;IAC/DA,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAE,cADU;AAEpBC,MAAAA,KAAK,EAAE/S,OAAAA;KAFT,EAGG,UAAUo5F,iBAAV,EAA6B;MAC9BA,iBAAiB,CAACvgG,IAAlB,CAAuBsS,KAAvB,CAA6BojF,kBAA7B,CAAgDvuF,OAAO,CAACwuF,SAAxD,CAAA,CAAA;KAJF,CAAA,CAAA;GADF,CAAA,CAAA;AAQA;AACF;AACA;;EAEEj8G,SAAS,CAACqgC,cAAV,CAAyB,oBAAzB,EAA+C,UAAU5S,OAAV,EAAmB/C,OAAnB,EAA4B;IACzEA,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAE,UADU;AAEpBC,MAAAA,KAAK,EAAE/S,OAAAA;KAFT,EAGG,UAAUymF,aAAV,EAAyB;MAC1BA,aAAa,CAACmD,aAAd,CAA4B5pF,OAA5B,CAAA,CAAA;KAJF,CAAA,CAAA;GADF,CAAA,CAAA;AAQD;;ACpED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiCA,IAAIq5F,iBAAiB,GAAG;AACtBp3H,EAAAA,IAAI,EAAE,OADgB;AAEtBq2H,EAAAA,eAAe,EAAE;AACf3/H,IAAAA,KAAK,EAAE,EADQ;AAEfmc,IAAAA,WAAW,EAAE,CAFE;AAGfuxB,IAAAA,WAAW,EAAE,mBAHE;AAIf7xC,IAAAA,KAAK,EAAE,mBAJQ;AAKfH,IAAAA,OAAO,EAAE,GAAA;GAPW;AAStB4kI,EAAAA,QAAQ,EAAE,IATY;AAUtB79G,EAAAA,CAAC,EAAE,EAAA;AAVmB,CAAxB,CAAA;AAYO,SAAS9I,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACksD,qBAAV,CAAgCsnD,YAAhC,CAAA,CAAA;EACAxzG,SAAS,CAAC6zC,sBAAV,CAAiCqjE,aAAjC,CAAA,CAAA;AACAl3G,EAAAA,SAAS,CAACmsD,wBAAV,CAAmC,UAAnC,EAA+CyvD,uBAA/C,CAAA,CAAA;EACA57G,SAAS,CAACosD,oBAAV,CAA+BmpD,oBAA/B,CAAA,CAAA;EACAv1G,SAAS,CAAC6zC,sBAAV,CAAiCgoE,iBAAjC,CAAA,CAAA;EACA77G,SAAS,CAACksD,qBAAV,CAAgCy5D,gBAAhC,CAAA,CAAA;EACAtzE,gBAAgB,CAACryC,SAAD,EAAY,UAAZ,EAAwB67G,iBAAxB,EAA2CiL,iBAA3C,CAAhB,CAAA;EACAF,sBAAsB,CAAC5mH,SAAD,CAAtB,CAAA;AACD;;ACvED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BO,SAASD,SAAT,CAAiBC,SAAjB,EAA4B;EACjCqsD,GAAG,CAAC06D,SAAD,CAAH,CAAA;EACA/mH,SAAS,CAACgyB,iBAAV,CAA4BwhF,cAA5B,CAAA,CAAA;EACAxzG,SAAS,CAACiyB,mBAAV,CAA8BqiF,mBAA9B,CAAA,CAAA;EACAt0G,SAAS,CAACqyB,cAAV,CAAyBryB,SAAS,CAACwyB,QAAV,CAAmByN,MAAnB,CAA0B+mF,KAAnD,EAA0D9R,cAA1D,CAAA,CAAA;AACD;;ACpDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiCA,IAAI+R,eAAe;AACnB;AACA,YAAY;AACV,EAAA,SAASA,eAAT,GAA2B;IACzB,IAAKtzH,CAAAA,EAAL,GAAU,CAAV,CAAA;IACA,IAAKC,CAAAA,EAAL,GAAU,CAAV,CAAA;IACA,IAAKnW,CAAAA,EAAL,GAAU,CAAV,CAAA;IACA,IAAKC,CAAAA,EAAL,GAAU,CAAV,CAAA;IACA,IAAKkiC,CAAAA,IAAL,GAAY,CAAZ,CAAA;IACA,IAAKC,CAAAA,IAAL,GAAY,CAAZ,CAAA;IACA,IAAK28D,CAAAA,IAAL,GAAY,CAAZ,CAAA;IACA,IAAKC,CAAAA,IAAL,GAAY,CAAZ,CAAA;IACA,IAAKhhE,CAAAA,MAAL,GAAc,CAAd,CAAA;AACD,GAAA;;AAED,EAAA,OAAOwrG,eAAP,CAAA;AACD,CAdD,EAFA,CAAA;;AAkBA,IAAIC,UAAU;AACd;AACA,UAAUrmH,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAComH,UAAD,EAAarmH,MAAb,CAAT,CAAA;;EAEA,SAASqmH,UAAT,CAAoB/iI,IAApB,EAA0B;IACxB,OAAO0c,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB7c,IAAlB,KAA2B,IAAlC,CAAA;AACD,GAAA;;AAED+iI,EAAAA,UAAU,CAACvqI,SAAX,CAAqBukC,eAArB,GAAuC,YAAY;IACjD,OAAO,IAAI+lG,eAAJ,EAAP,CAAA;GADF,CAAA;;EAIAC,UAAU,CAACvqI,SAAX,CAAqBwL,SAArB,GAAiC,UAAUwa,GAAV,EAAe1a,KAAf,EAAsB;AACrD,IAAA,IAAIwzB,MAAM,GAAGxzB,KAAK,CAACwzB,MAAnB,CAAA;IACA9Y,GAAG,CAACxlB,MAAJ,CAAW8K,KAAK,CAAC0L,EAAjB,EAAqB1L,KAAK,CAAC2L,EAA3B,CAAA,CAAA;IACA+O,GAAG,CAACnlB,aAAJ,CAAkByK,KAAK,CAAC23B,IAAxB,EAA8B33B,KAAK,CAAC43B,IAApC,EAA0C53B,KAAK,CAACu0F,IAAhD,EAAsDv0F,KAAK,CAACw0F,IAA5D,EAAkEx0F,KAAK,CAACxK,EAAxE,EAA4EwK,KAAK,CAACvK,EAAlF,CAAA,CAAA;;AAEA,IAAA,IAAIuK,KAAK,CAACkwF,MAAN,KAAiB,UAArB,EAAiC;MAC/Bx1E,GAAG,CAACplB,MAAJ,CAAW0K,KAAK,CAACxK,EAAN,GAAWg+B,MAAtB,EAA8BxzB,KAAK,CAACvK,EAApC,CAAA,CAAA;AACAilB,MAAAA,GAAG,CAACnlB,aAAJ,CAAkByK,KAAK,CAACu0F,IAAN,GAAa/gE,MAA/B,EAAuCxzB,KAAK,CAACw0F,IAA7C,EAAmDx0F,KAAK,CAAC23B,IAAN,GAAanE,MAAhE,EAAwExzB,KAAK,CAAC43B,IAA9E,EAAoF53B,KAAK,CAAC0L,EAAN,GAAW8nB,MAA/F,EAAuGxzB,KAAK,CAAC2L,EAA7G,CAAA,CAAA;AACD,KAHD,MAGO;MACL+O,GAAG,CAACplB,MAAJ,CAAW0K,KAAK,CAACxK,EAAjB,EAAqBwK,KAAK,CAACvK,EAAN,GAAW+9B,MAAhC,CAAA,CAAA;AACA9Y,MAAAA,GAAG,CAACnlB,aAAJ,CAAkByK,KAAK,CAACu0F,IAAxB,EAA8Bv0F,KAAK,CAACw0F,IAAN,GAAahhE,MAA3C,EAAmDxzB,KAAK,CAAC23B,IAAzD,EAA+D33B,KAAK,CAAC43B,IAAN,GAAapE,MAA5E,EAAoFxzB,KAAK,CAAC0L,EAA1F,EAA8F1L,KAAK,CAAC2L,EAAN,GAAW6nB,MAAzG,CAAA,CAAA;AACD,KAAA;;AAED9Y,IAAAA,GAAG,CAACjjB,SAAJ,EAAA,CAAA;GAbF,CAAA;;AAgBAwnI,EAAAA,UAAU,CAACvqI,SAAX,CAAqB+1B,SAArB,GAAiC,YAAY;IAC3CC,aAAa,CAAC,IAAD,CAAb,CAAA;GADF,CAAA;;AAIAu0G,EAAAA,UAAU,CAACvqI,SAAX,CAAqBi2B,QAArB,GAAgC,YAAY;IAC1CC,aAAa,CAAC,IAAD,CAAb,CAAA;GADF,CAAA;;AAIA,EAAA,OAAOq0G,UAAP,CAAA;AACD,CApCD,CAoCExzG,IApCF,CAFA,CAAA;;AAwCA,IAAIyzG,UAAU;AACd;AACA,UAAUtmH,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACqmH,UAAD,EAAatmH,MAAb,CAAT,CAAA;;AAEA,EAAA,SAASsmH,UAAT,GAAsB;AACpB,IAAA,IAAIpmH,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAay3H,UAAU,CAACz3H,IAAxB,CAAA;IACAqR,KAAK,CAACqmH,uBAAN,GAAgC,KAAhC,CAAA;AACA,IAAA,OAAOrmH,KAAP,CAAA;AACD,GAAA;;EAEDomH,UAAU,CAACxqI,SAAX,CAAqB8tC,MAArB,GAA8B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;IACjE,IAAImuH,UAAU,GAAG,IAAjB,CAAA;AACA,IAAA,IAAI/rB,KAAK,GAAGjoF,WAAW,CAACkoF,QAAZ,EAAZ,CAAA;IACA,IAAIvtF,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAI0qE,UAAU,GAAGrlE,WAAW,CAACqlE,UAA7B,CAJiE;;AAMjE,IAAA,IAAItyF,KAAK,GAAGsyF,UAAU,CAACtyF,KAAvB,CANiE;;AAQjE,IAAA,IAAIC,MAAM,GAAGqyF,UAAU,CAACryF,MAAxB,CAAA;AACA,IAAA,IAAIg7F,QAAQ,GAAGhuE,WAAW,CAAC3E,OAAZ,EAAf,CAAA;AACA,IAAA,IAAI0tF,QAAQ,GAAG/oF,WAAW,CAAC3E,OAAZ,CAAoB,MAApB,CAAf,CAAA;AACA,IAAA,IAAIypE,MAAM,GAAG9kE,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;IACA,IAAKwhB,CAAAA,MAAL,GAAcjjB,WAAd,CAAA;AACArF,IAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;AACA5D,IAAAA,KAAK,CAAC5wB,CAAN,GAAUs7F,UAAU,CAACt7F,CAArB,CAAA;AACA4wB,IAAAA,KAAK,CAAC3wB,CAAN,GAAUq7F,UAAU,CAACr7F,CAArB,CAfiE;;AAiBjEi+G,IAAAA,KAAK,CAACoD,QAAN,CAAe,UAAU5iB,IAAV,EAAgB;AAC7B,MAAA,IAAIwrC,KAAK,GAAG,IAAIJ,UAAJ,EAAZ,CAAA;AACA,MAAA,IAAIn4E,MAAM,GAAGl4B,SAAS,CAACywG,KAAD,CAAtB,CAAA;AACAv4E,MAAAA,MAAM,CAACj+B,SAAP,GAAmBgrE,IAAI,CAAChrE,SAAxB,CAAA;AACAi+B,MAAAA,MAAM,CAACriB,WAAP,GAAqBrZ,WAAW,CAACqZ,WAAjC,CAAA;MACAqiB,MAAM,CAAC2f,QAAP,GAAkB,MAAlB,CAAA;AACA,MAAA,IAAIszC,SAAS,GAAGlmB,IAAI,CAAClnE,QAAL,EAAhB,CAAA;AACA,MAAA,IAAI+V,cAAc,GAAGq3E,SAAS,CAACptF,QAAV,CAAmB,WAAnB,CAArB,CAAA;AACA,MAAA,IAAIgnE,SAAS,GAAGjxD,cAAc,CAAC7V,GAAf,CAAmB,WAAnB,CAAhB,CAAA;AACA,MAAA,IAAIyyG,QAAQ,GAAGzrC,IAAI,CAACpE,KAAL,CAAWr6D,SAAX,EAAf,CAAA;AACA,MAAA,IAAImqG,UAAU,GAAG1rC,IAAI,CAACpE,KAAL,CAAW9iE,QAAX,EAAjB,CAAA;AACA,MAAA,IAAI6yG,MAAM,GAAGD,UAAU,CAAC1yG,GAAX,CAAe,QAAf,CAAb,CAAA;AACA,MAAA,IAAI4yG,MAAM,GAAGF,UAAU,CAAC1yG,GAAX,CAAe,QAAf,CAAb,CAAA;AACA,MAAA,IAAI6yG,QAAQ,GAAG7rC,IAAI,CAACnE,KAAL,CAAWt6D,SAAX,EAAf,CAAA;AACA,MAAA,IAAIuqG,UAAU,GAAG9rC,IAAI,CAACnE,KAAL,CAAW/iE,QAAX,EAAjB,CAAA;AACA,MAAA,IAAIizG,MAAM,GAAGD,UAAU,CAAC9yG,GAAX,CAAe,QAAf,CAAb,CAAA;AACA,MAAA,IAAIgzG,MAAM,GAAGF,UAAU,CAAC9yG,GAAX,CAAe,QAAf,CAAb,CAAA;AACA,MAAA,IAAIizG,UAAU,GAAGjsC,IAAI,CAACz+D,SAAL,EAAjB,CAAA;AACA,MAAA,IAAI1pB,EAAJ,CAAA;AACA,MAAA,IAAIC,EAAJ,CAAA;AACA,MAAA,IAAInW,EAAJ,CAAA;AACA,MAAA,IAAIC,EAAJ,CAAA;AACA,MAAA,IAAIkiC,IAAJ,CAAA;AACA,MAAA,IAAIC,IAAJ,CAAA;AACA,MAAA,IAAI28D,IAAJ,CAAA;AACA,MAAA,IAAIC,IAAJ,CAAA;AACA6qC,MAAAA,KAAK,CAACr/H,KAAN,CAAYwzB,MAAZ,GAAqBt/B,IAAI,CAAC0iB,GAAL,CAAS,CAAT,EAAYkpH,UAAU,CAAC3wG,EAAvB,CAArB,CAAA;AACAkwG,MAAAA,KAAK,CAACr/H,KAAN,CAAYkwF,MAAZ,GAAqBA,MAArB,CAAA;;MAEA,IAAIA,MAAM,KAAK,UAAf,EAA2B;AACzBxkF,QAAAA,EAAE,GAAG,CAAC8zH,MAAM,IAAI,IAAV,GAAiBA,MAAM,GAAGrhI,KAA1B,GAAkCmhI,QAAQ,CAACnqI,CAA5C,IAAiD2qI,UAAU,CAAC/pD,EAAjE,CAAA;AACApqE,QAAAA,EAAE,GAAG,CAAC8zH,MAAM,IAAI,IAAV,GAAiBA,MAAM,GAAGrhI,MAA1B,GAAmCkhI,QAAQ,CAAClqI,CAA7C,IAAkDkqI,QAAQ,CAACnwG,EAAhE,CAAA;AACA35B,QAAAA,EAAE,GAAG,CAACoqI,MAAM,IAAI,IAAV,GAAiBA,MAAM,GAAGzhI,KAA1B,GAAkCuhI,QAAQ,CAACvqI,CAA5C,IAAiD2qI,UAAU,CAACC,EAAjE,CAAA;QACAtqI,EAAE,GAAGoqI,MAAM,IAAI,IAAV,GAAiBA,MAAM,GAAGzhI,MAA1B,GAAmCshI,QAAQ,CAACtqI,CAAjD,CAAA;AACAuiC,QAAAA,IAAI,GAAGjsB,EAAP,CAAA;QACAksB,IAAI,GAAGjsB,EAAE,IAAI,CAAA,GAAIgoF,SAAR,CAAF,GAAuBl+F,EAAE,GAAGk+F,SAAnC,CAAA;AACAY,QAAAA,IAAI,GAAG/+F,EAAP,CAAA;QACAg/F,IAAI,GAAG7oF,EAAE,GAAGgoF,SAAL,GAAiBl+F,EAAE,IAAI,CAAIk+F,GAAAA,SAAR,CAA1B,CAAA;AACD,OATD,MASO;AACLjoF,QAAAA,EAAE,GAAG,CAAC8zH,MAAM,IAAI,IAAV,GAAiBA,MAAM,GAAGrhI,KAA1B,GAAkCmhI,QAAQ,CAACnqI,CAA5C,IAAiDmqI,QAAQ,CAACpwG,EAA/D,CAAA;AACAvjB,QAAAA,EAAE,GAAG,CAAC8zH,MAAM,IAAI,IAAV,GAAiBA,MAAM,GAAGrhI,MAA1B,GAAmCkhI,QAAQ,CAAClqI,CAA7C,IAAkD0qI,UAAU,CAAC/pD,EAAlE,CAAA;QACAvgF,EAAE,GAAGoqI,MAAM,IAAI,IAAV,GAAiBA,MAAM,GAAGzhI,KAA1B,GAAkCuhI,QAAQ,CAACvqI,CAAhD,CAAA;AACAM,QAAAA,EAAE,GAAG,CAACoqI,MAAM,IAAI,IAAV,GAAiBA,MAAM,GAAGzhI,MAA1B,GAAmCshI,QAAQ,CAACtqI,CAA7C,IAAkD0qI,UAAU,CAACC,EAAlE,CAAA;QACApoG,IAAI,GAAGjsB,EAAE,IAAI,CAAA,GAAIioF,SAAR,CAAF,GAAuBn+F,EAAE,GAAGm+F,SAAnC,CAAA;AACA/7D,QAAAA,IAAI,GAAGjsB,EAAP,CAAA;QACA4oF,IAAI,GAAG7oF,EAAE,GAAGioF,SAAL,GAAiBn+F,EAAE,IAAI,CAAIm+F,GAAAA,SAAR,CAA1B,CAAA;AACAa,QAAAA,IAAI,GAAG/+F,EAAP,CAAA;AACD,OAAA;;MAED4pI,KAAK,CAACl7F,QAAN,CAAe;AACbz4B,QAAAA,EAAE,EAAEA,EADS;AAEbC,QAAAA,EAAE,EAAEA,EAFS;AAGbnW,QAAAA,EAAE,EAAEA,EAHS;AAIbC,QAAAA,EAAE,EAAEA,EAJS;AAKbkiC,QAAAA,IAAI,EAAEA,IALO;AAMbC,QAAAA,IAAI,EAAEA,IANO;AAOb28D,QAAAA,IAAI,EAAEA,IAPO;AAQbC,QAAAA,IAAI,EAAEA,IAAAA;OARR,CAAA,CAAA;MAUA6qC,KAAK,CAAChyG,QAAN,CAAeqV,cAAc,CAAC9V,YAAf,EAAf,EA3D6B;;AA6D7B,MAAA,QAAQyyG,KAAK,CAACrmI,KAAN,CAAYC,IAApB;AACE,QAAA,KAAK,QAAL;AACEomI,UAAAA,KAAK,CAACrmI,KAAN,CAAYC,IAAZ,GAAmB46F,IAAI,CAACpE,KAAL,CAAW/oE,SAAX,CAAqB,OAArB,CAAnB,CAAA;AACA24G,UAAAA,KAAK,CAACrmI,KAAN,CAAYu0B,KAAZ,GAAoBsmE,IAAI,CAACpE,KAAL,CAAW/oE,SAAX,CAAqB,OAArB,EAA8B6G,KAAlD,CAAA;AACA,UAAA,MAAA;;AAEF,QAAA,KAAK,QAAL;AACE8xG,UAAAA,KAAK,CAACrmI,KAAN,CAAYC,IAAZ,GAAmB46F,IAAI,CAACnE,KAAL,CAAWhpE,SAAX,CAAqB,OAArB,CAAnB,CAAA;AACA24G,UAAAA,KAAK,CAACrmI,KAAN,CAAYu0B,KAAZ,GAAoBsmE,IAAI,CAACnE,KAAL,CAAWhpE,SAAX,CAAqB,OAArB,EAA8B6G,KAAlD,CAAA;AACA,UAAA,MAAA;;AAEF,QAAA,KAAK,UAAL;UACE,IAAIyyG,WAAW,GAAGnsC,IAAI,CAACpE,KAAL,CAAW/oE,SAAX,CAAqB,OAArB,CAAlB,CAAA;UACA,IAAIu5G,WAAW,GAAGpsC,IAAI,CAACnE,KAAL,CAAWhpE,SAAX,CAAqB,OAArB,CAAlB,CAAA;;UAEA,IAAI1kB,QAAQ,CAACg+H,WAAD,CAAR,IAAyBh+H,QAAQ,CAACi+H,WAAD,CAArC,EAAoD;YAClDZ,KAAK,CAACrmI,KAAN,CAAYC,IAAZ,GAAmB,IAAIwyB,cAAJ,CAA2B,CAA3B,EAA8B,CAA9B,EAAiC,EAAEykE,MAAM,KAAK,YAAb,CAAjC,EAA6D,EAAEA,MAAM,KAAK,UAAb,CAA7D,EAAuF,CAAC;AACzGl2F,cAAAA,KAAK,EAAEgmI,WADkG;AAEzG5zH,cAAAA,MAAM,EAAE,CAAA;AAFiG,aAAD,EAGvG;AACDpS,cAAAA,KAAK,EAAEimI,WADN;AAED7zH,cAAAA,MAAM,EAAE,CAAA;AAFP,aAHuG,CAAvF,CAAnB,CAAA;AAOD,WAAA;;AAvBL,OAAA;;AA2BA,MAAA,IAAIsgB,aAAa,GAAGqtF,SAAS,CAACptF,QAAV,CAAmB,UAAnB,CAApB,CAAA;MACA2X,wBAAwB,CAAC+6F,KAAD,EAAQtlB,SAAR,EAAmB,WAAnB,EAAgC,UAAUppE,KAAV,EAAiB;QACvE,OAAOA,KAAK,CAAC/jB,YAAN,EAAP,CAAA;AACD,OAFuB,CAAxB,CAAA;MAGA7G,KAAK,CAACO,GAAN,CAAU+4G,KAAV,CAAA,CAAA;AACAlrB,MAAAA,QAAQ,CAACzjF,gBAAT,CAA0BmjE,IAAI,CAAChrE,SAA/B,EAA0Cw2G,KAA1C,CAAA,CAAA;AACA,MAAA,IAAIpzG,KAAK,GAAGS,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAZ,CAAA;MACA6B,mBAAmB,CAAC2wG,KAAD,EAAQpzG,KAAK,KAAK,WAAV,GAAwB4nE,IAAI,CAACusB,sBAAL,EAAxB,GAAwDn0F,KAAhE,EAAuES,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAvE,EAAuGH,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAvG,CAAnB,CAAA;AACA+B,MAAAA,SAAS,CAACywG,KAAD,CAAT,CAAiB54D,QAAjB,GAA4B,MAA5B,CAAA;AACD,KAjGD,EAjBiE;;AAoHjE4sC,IAAAA,KAAK,CAACjd,QAAN,CAAe,UAAUnnF,IAAV,EAAgB;AAC7B,MAAA,IAAIqhC,MAAM,GAAGrhC,IAAI,CAACmmB,SAAL,EAAb,CAAA;AACA,MAAA,IAAI5I,SAAS,GAAGvd,IAAI,CAAC0d,QAAL,EAAhB,CAAA;AACA,MAAA,IAAIuzG,KAAK,GAAG1zG,SAAS,CAACK,GAAV,CAAc,QAAd,CAAZ,CAAA;AACA,MAAA,IAAIszG,KAAK,GAAG3zG,SAAS,CAACK,GAAV,CAAc,QAAd,CAAZ,CAAA;AACA,MAAA,IAAIH,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAApB,CAAA;AACA,MAAA,IAAIr1B,IAAI,GAAG,IAAIm0B,MAAJ,CAAiB;AAC1BzrB,QAAAA,KAAK,EAAE;UACL7K,CAAC,EAAE+qI,KAAK,IAAI,IAAT,GAAgBA,KAAK,GAAG/hI,KAAxB,GAAgCmyC,MAAM,CAACn7C,CADrC;UAELC,CAAC,EAAE+qI,KAAK,IAAI,IAAT,GAAgBA,KAAK,GAAG/hI,MAAxB,GAAiCkyC,MAAM,CAACl7C,CAFtC;UAGL+I,KAAK,EAAEmyC,MAAM,CAACphB,EAHT;UAIL9wB,MAAM,EAAEkyC,MAAM,CAACnhB,EAAAA;SALS;QAO1Bn2B,KAAK,EAAEwzB,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAAA,CAAgCC,YAAhC,EAPmB;AAQ1B9C,QAAAA,EAAE,EAAE,EAAA;AARsB,OAAjB,CAAX,CAAA;AAUAgE,MAAAA,aAAa,CAACx2B,IAAD,EAAOw1B,oBAAoB,CAACN,SAAD,CAA3B,EAAwC;AACnDuB,QAAAA,YAAY,EAAE3C,WADqC;QAEnD4C,cAAc,EAAE/e,IAAI,CAAC4Z,SAF8B;QAGnDoF,WAAW,EAAEhf,IAAI,CAAC1G,EAAAA;AAHiC,OAAxC,CAAb,CAAA;MAKAjR,IAAI,CAACsvC,qBAAL,GAA6B,IAA7B,CAAA;MACAtvC,IAAI,CAACivB,QAAL,CAAc,MAAd,EAAsBtX,IAAI,CAACyX,SAAL,CAAe,OAAf,CAAtB,CAAA,CAAA;MACApvB,IAAI,CAACivB,QAAL,CAAc,OAAd,EAAuBtX,IAAI,CAACyX,SAAL,CAAe,OAAf,CAAA,CAAwB6G,KAA/C,CAAA,CAAA;AACA+W,MAAAA,wBAAwB,CAAChtC,IAAD,EAAOk1B,SAAP,CAAxB,CAAA;MACAzG,KAAK,CAACO,GAAN,CAAUhvB,IAAV,CAAA,CAAA;AACA8hG,MAAAA,QAAQ,CAAC1oE,gBAAT,CAA0BzhB,IAAI,CAAC4Z,SAA/B,EAA0CvxB,IAA1C,CAAA,CAAA;AACAs3B,MAAAA,SAAS,CAACt3B,IAAD,CAAT,CAAgBmvE,QAAhB,GAA2B,MAA3B,CAAA;AACA,MAAA,IAAIx6C,KAAK,GAAGS,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAZ,CAAA;MACA6B,mBAAmB,CAACp3B,IAAD,EAAO20B,KAAK,KAAK,WAAV,GAAwBhd,IAAI,CAACmxG,sBAAL,EAAxB,GAAwDn0F,KAA/D,EAAsES,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAtE,EAAsGH,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAtG,CAAnB,CAAA;KA7BF,CAAA,CAAA;AA+BAusE,IAAAA,QAAQ,CAAChoE,iBAAT,CAA2B,UAAUz3B,EAAV,EAAckvB,SAAd,EAAyB;AAClD,MAAA,IAAI2D,SAAS,GAAG4sE,QAAQ,CAAC3sE,YAAT,CAAsB5D,SAAtB,CAAhB,CAAA;;AAEA,MAAA,IAAI2D,SAAS,CAACK,GAAV,CAAc,WAAd,CAAJ,EAAgC;AAC9BlzB,QAAAA,EAAE,CAACqwB,KAAH,GAAW,UAAUkF,EAAV,EAAcC,EAAd,EAAkB;UAC3BiwG,UAAU,CAACD,uBAAX,GAAqC,IAArC,CAAA;AACA,UAAA,IAAA,CAAKn/H,KAAL,CAAW7K,CAAX,IAAgB+5B,EAAhB,CAAA;AACA,UAAA,IAAA,CAAKlvB,KAAL,CAAW5K,CAAX,IAAgB+5B,EAAhB,CAAA;AACA,UAAA,IAAA,CAAK5Q,KAAL,EAAA,CAAA;UACAtN,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,YAAAA,IAAI,EAAE,UADW;YAEjB48E,QAAQ,EAAEj5D,WAAW,CAAC7iB,EAFL;AAGjBsgB,YAAAA,SAAS,EAAEuwE,QAAQ,CAACtjE,WAAT,CAAqBjN,SAArB,CAHM;AAIjBu3G,YAAAA,MAAM,EAAE,IAAKpgI,CAAAA,KAAL,CAAW7K,CAAX,GAAegJ,KAJN;AAKjBkiI,YAAAA,MAAM,EAAE,IAAA,CAAKrgI,KAAL,CAAW5K,CAAX,GAAegJ,MAAAA;WALzB,CAAA,CAAA;SALF,CAAA;;QAcAzE,EAAE,CAACs/H,SAAH,GAAe,YAAY;UACzBmG,UAAU,CAACD,uBAAX,GAAqC,KAArC,CAAA;SADF,CAAA;;QAIAxlI,EAAE,CAACoxB,SAAH,GAAe,IAAf,CAAA;QACApxB,EAAE,CAACsxB,MAAH,GAAY,MAAZ,CAAA;AACD,OAAA;KAxBH,CAAA,CAAA;;IA2BA,IAAI,CAAC,KAAKiF,KAAN,IAAe9E,WAAW,CAACgkB,kBAAZ,EAAnB,EAAqD;AACnDrpB,MAAAA,KAAK,CAACzX,WAAN,CAAkB09G,qBAAmB,CAACjmG,KAAK,CAACs3B,eAAN,EAAD,EAA0BjyB,WAA1B,EAAuC,YAAY;AACtFrF,QAAAA,KAAK,CAAC0pB,cAAN,EAAA,CAAA;AACD,OAFoC,CAArC,CAAA,CAAA;AAGD,KAAA;;AAED,IAAA,IAAA,CAAKvf,KAAL,GAAa9E,WAAW,CAAC3E,OAAZ,EAAb,CAAA;GApLF,CAAA;;AAuLAy4G,EAAAA,UAAU,CAACxqI,SAAX,CAAqB4iB,OAArB,GAA+B,YAAY,EAA3C,CAAA;;EAEA4nH,UAAU,CAACz3H,IAAX,GAAkB,QAAlB,CAAA;AACA,EAAA,OAAOy3H,UAAP,CAAA;AACD,CAtMD,CAsMEt5F,SAtMF,CAFA;;;AA2MA,SAASomF,qBAAT,CAA6B10H,IAA7B,EAAmC8zB,WAAnC,EAAgDrH,EAAhD,EAAoD;AAClD,EAAA,IAAIyjF,MAAM,GAAG,IAAI/7E,MAAJ,CAAiB;AAC5BzrB,IAAAA,KAAK,EAAE;AACL7K,MAAAA,CAAC,EAAEmC,IAAI,CAACnC,CAAL,GAAS,EADP;AAELC,MAAAA,CAAC,EAAEkC,IAAI,CAAClC,CAAL,GAAS,EAFP;AAGL+I,MAAAA,KAAK,EAAE,CAHF;AAILC,MAAAA,MAAM,EAAE9G,IAAI,CAAC8G,MAAL,GAAc,EAAA;AAJjB,KAAA;AADqB,GAAjB,CAAb,CAAA;AAQAqtB,EAAAA,SAAA,CAAkB+7E,MAAlB,EAA0B;AACxBxnG,IAAAA,KAAK,EAAE;AACL7B,MAAAA,KAAK,EAAE7G,IAAI,CAAC6G,KAAL,GAAa,EAAA;AADf,KAAA;GADT,EAIGitB,WAJH,EAIgBrH,EAJhB,CAAA,CAAA;AAKA,EAAA,OAAOyjF,MAAP,CAAA;AACD;;ACtUD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,IAAI84B,iBAAiB;AACrB;AACA,UAAU1nH,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACynH,iBAAD,EAAoB1nH,MAApB,CAAT,CAAA;;AAEA,EAAA,SAAS0nH,iBAAT,GAA6B;AAC3B,IAAA,IAAIxnH,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa64H,iBAAiB,CAAC74H,IAA/B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;EAGEwnH,iBAAiB,CAAC5rI,SAAlB,CAA4B4wB,cAA5B,GAA6C,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;IACtE,IAAIqgF,KAAK,GAAGv9F,MAAM,CAACyyF,KAAP,IAAgBzyF,MAAM,CAACu9F,KAAnC,CAAA;IACA,IAAIl1B,KAAK,GAAGroE,MAAM,CAACqD,IAAP,IAAerD,MAAM,CAACqoE,KAAlC,CAAA;AACA,IAAA,IAAIsO,MAAM,GAAG32E,MAAM,CAAC22E,MAApB,CAAA;IACA,IAAKhF,CAAAA,WAAL,GAAmB,EAAnB,CAAA;IACA,IAAIA,WAAW,GAAG,IAAA,CAAKA,WAAvB,CAAA;;AAEA,IAAA,KAAK,IAAI9+F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8jG,MAAM,CAACxkG,MAA3B,EAAmCU,CAAC,EAApC,EAAwC;AACtC,MAAA,IAAI8jG,MAAM,CAAC9jG,CAAD,CAAN,CAAU69F,KAAV,IAAmB,IAAnB,IAA2BiG,MAAM,CAAC9jG,CAAD,CAAN,CAAU69F,KAAV,IAAmB,CAAlD,EAAqD;QACnDiB,WAAW,CAACgF,MAAM,CAAC9jG,CAAD,CAAN,CAAU69F,KAAX,CAAX,GAA+B,IAAI74B,KAAJ,CAAU8+B,MAAM,CAAC9jG,CAAD,CAAhB,EAAqB,IAArB,EAA2BqqC,OAA3B,CAA/B,CAAA;AACD,OAFD,MAEO;AACL,QAAA,IAAI32B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,UAAA,MAAM,IAAI0Z,KAAJ,CAAU,2DAAV,CAAN,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;IAED,IAAIkoE,KAAK,IAAIk1B,KAAb,EAAoB;AAClB,MAAA,IAAIzP,KAAK,GAAGgP,uBAAuB,CAACz0B,KAAD,EAAQk1B,KAAR,EAAe,IAAf,EAAqB,IAArB,EAA2BjrB,UAA3B,CAAnC,CAAA;MACA,OAAOwb,KAAK,CAACzqF,IAAb,CAAA;AACD,KAAA;;AAED,IAAA,SAASivE,UAAT,CAAoBuB,QAApB,EAA8B+a,QAA9B,EAAwC;MACtC/a,QAAQ,CAAChE,UAAT,CAAoB,cAApB,EAAoC,UAAUzkD,KAAV,EAAiBvsB,GAAjB,EAAsB;AACxD,QAAA,IAAIgH,WAAW,GAAGulB,KAAK,CAACk1B,WAAxB,CAAA;QACA,IAAIv1B,MAAM,GAAGllB,WAAW,CAAC3E,OAAZ,EAAsB4J,CAAAA,aAAtB,CAAoCjM,GAApC,CAAb,CAAA;;AAEA,QAAA,IAAIksB,MAAJ,EAAY;AACV,UAAA,IAAIiwF,SAAS,GAAGjwF,MAAM,CAAC2lD,KAAvB,CAAA;AACA,UAAA,IAAIsG,UAAU,GAAGnxE,WAAW,CAAC8rE,WAAZ,CAAwBqpC,SAAxB,CAAjB,CAAA;;AAEA,UAAA,IAAIhkC,UAAJ,EAAgB;YACd5rD,KAAK,CAACk1B,WAAN,GAAoB02B,UAApB,CAAA;AACD,WAAA;AACF,SAAA;;AAED,QAAA,OAAO5rD,KAAP,CAAA;OAbF,CAAA,CAAA;MAeAwjE,QAAQ,CAAC/e,UAAT,CAAoB,cAApB,EAAoC,UAAUzkD,KAAV,EAAiBvsB,GAAjB,EAAsB;AACxD,QAAA,IAAIgH,WAAW,GAAGulB,KAAK,CAACk1B,WAAxB,CAAA;QACA,IAAIguB,IAAI,GAAGzoE,WAAW,CAACkoF,QAAZ,EAAuBe,CAAAA,cAAvB,CAAsCjwF,GAAtC,CAAX,CAAA;AACA,QAAA,IAAIksB,MAAM,GAAGujD,IAAI,CAACpE,KAAL,CAAWr6D,SAAX,EAAb,CAAA;;AAEA,QAAA,IAAIkb,MAAJ,EAAY;AACV,UAAA,IAAI2lD,KAAK,GAAG3lD,MAAM,CAAC2lD,KAAnB,CAAA;AACA,UAAA,IAAIsG,UAAU,GAAGnxE,WAAW,CAAC8rE,WAAZ,CAAwBjB,KAAxB,CAAjB,CAAA;;AAEA,UAAA,IAAIsG,UAAJ,EAAgB;YACd5rD,KAAK,CAACk1B,WAAN,GAAoB02B,UAApB,CAAA;AACD,WAAA;AACF,SAAA;;AAED,QAAA,OAAO5rD,KAAP,CAAA;OAdF,CAAA,CAAA;AAgBD,KAAA;GAtDH,CAAA;;EAyDA2vF,iBAAiB,CAAC5rI,SAAlB,CAA4B8rI,eAA5B,GAA8C,UAAU33G,SAAV,EAAqB43G,aAArB,EAAoC;IAChF,IAAI7yC,KAAK,GAAG,IAAA,CAAKroE,MAAL,CAAYqD,IAAZ,IAAoB,IAAA,CAAKrD,MAAL,CAAYqoE,KAA5C,CAAA;AACA,IAAA,IAAI8yC,QAAQ,GAAG9yC,KAAK,CAAC/kE,SAAD,CAApB,CAAA;AACA63G,IAAAA,QAAQ,CAACN,MAAT,GAAkBK,aAAa,CAAC,CAAD,CAA/B,CAAA;AACAC,IAAAA,QAAQ,CAACL,MAAT,GAAkBI,aAAa,CAAC,CAAD,CAA/B,CAAA;GAJF,CAAA;AAMA;AACF;AACA;AACA;AACA;;;AAGEH,EAAAA,iBAAiB,CAAC5rI,SAAlB,CAA4B4+G,QAA5B,GAAuC,YAAY;IACjD,OAAO,IAAA,CAAK7sF,OAAL,EAAA,CAAe4sF,KAAtB,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;AACA;;;AAGEitB,EAAAA,iBAAiB,CAAC5rI,SAAlB,CAA4B0/G,WAA5B,GAA0C,YAAY;IACpD,OAAO,IAAA,CAAKd,QAAL,EAAA,CAAgBa,QAAvB,CAAA;GADF,CAAA;;EAIAmsB,iBAAiB,CAAC5rI,SAAlB,CAA4B6xE,aAA5B,GAA4C,UAAU19C,SAAV,EAAqB29C,cAArB,EAAqCC,QAArC,EAA+C;IACzF,SAASkzB,OAAT,CAAiBrhG,GAAjB,EAAsB;AACpB,MAAA,OAAOC,KAAK,CAACD,GAAD,CAAL,IAAcA,GAAG,IAAI,IAA5B,CAAA;AACD,KAHwF;;;IAMzF,IAAImuE,QAAQ,KAAK,MAAjB,EAAyB;MACvB,IAAI79B,MAAM,GAAG,IAAKsa,CAAAA,aAAL,CAAmBr6B,SAAnB,EAA8B49C,QAA9B,CAAb,CAAA;AACA,MAAA,IAAIk6D,UAAU,GAAG/3F,MAAM,CAAChgB,IAAxB,CAAA;AACA,MAAA,IAAIg4G,SAAS,GAAGh4F,MAAM,CAAChV,KAAvB,CAAA;MACA,IAAIitG,QAAQ,GAAGF,UAAU,CAAC/+E,MAAX,GAAoB,MAApB,GAA6B++E,UAAU,CAACpgI,MAAvD,CAAA;MACA,OAAOumE,mBAAmB,CAAC,WAAD,EAAc;AACtC1rE,QAAAA,IAAI,EAAEylI,QADgC;AAEtCjtG,QAAAA,KAAK,EAAEgtG,SAF+B;QAGtCjnC,OAAO,EAAEA,OAAO,CAACinC,SAAD,CAAA;AAHsB,OAAd,CAA1B,CAAA;AAKD,KAVD;SAWK;MACD,IAAI3xH,IAAI,GAAG,IAAKqkG,CAAAA,QAAL,GAAgB4G,cAAhB,CAA+BrxF,SAA/B,CAAX,CAAA;AACA,MAAA,IAAI+K,KAAK,GAAG3kB,IAAI,CAACmmB,SAAL,GAAiBxB,KAA7B,CAAA;MACA,IAAIixD,MAAM,GAAG,IAAA,CAAK3hC,aAAL,CAAmBr6B,SAAnB,EAA8B49C,QAA9B,CAAA,CAAwC79C,IAAxC,CAA6CxtB,IAA1D,CAAA;MACA,OAAO0rE,mBAAmB,CAAC,WAAD,EAAc;QACtC1rE,IAAI,EAAEypF,MAAM,IAAI,IAAV,GAAiBA,MAAM,GAAG,EAA1B,GAA+B,IADC;AAEtCjxD,QAAAA,KAAK,EAAEA,KAF+B;QAGtC+lE,OAAO,EAAEA,OAAO,CAAC/lE,KAAD,CAAA;AAHsB,OAAd,CAA1B,CAAA;AAKD,KAAA;GA1BL,CAAA;;EA6BA0sG,iBAAiB,CAAC5rI,SAAlB,CAA4B42D,aAA5B,GAA4C,YAAY,EAAxD,CA/HgB;;;EAkIhBg1E,iBAAiB,CAAC5rI,SAAlB,CAA4BwuD,aAA5B,GAA4C,UAAUr6B,SAAV,EAAqB49C,QAArB,EAA+B;AACzE,IAAA,IAAI79B,MAAM,GAAGhwB,MAAM,CAAClkB,SAAP,CAAiBwuD,aAAjB,CAA+BnqC,IAA/B,CAAoC,IAApC,EAA0C8P,SAA1C,EAAqD49C,QAArD,CAAb,CAAA;;IAEA,IAAI79B,MAAM,CAAChV,KAAP,IAAgB,IAAhB,IAAwB6yC,QAAQ,KAAK,MAAzC,EAAiD;MAC/C,IAAIx3D,IAAI,GAAG,IAAKqkG,CAAAA,QAAL,GAAgB4G,cAAhB,CAA+BrxF,SAA/B,CAAX,CAAA;AACA,MAAA,IAAIi4G,SAAS,GAAG7xH,IAAI,CAACmmB,SAAL,GAAiBxB,KAAjC,CAAA;MACAgV,MAAM,CAAChV,KAAP,GAAektG,SAAf,CAAA;AACD,KAAA;;AAED,IAAA,OAAOl4F,MAAP,CAAA;GATF,CAAA;;EAYA03F,iBAAiB,CAAC74H,IAAlB,GAAyB,eAAzB,CAAA;EACA64H,iBAAiB,CAACj5G,aAAlB,GAAkC;AAChC;AACAzG,IAAAA,CAAC,EAAE,CAF6B;AAGhC6E,IAAAA,gBAAgB,EAAE,MAHc;AAIhChN,IAAAA,IAAI,EAAE,IAJ0B;AAKhCC,IAAAA,GAAG,EAAE,IAL2B;AAMhCkrC,IAAAA,KAAK,EAAE,KANyB;AAOhCC,IAAAA,MAAM,EAAE,IAPwB;AAQhCqsC,IAAAA,MAAM,EAAE,YARwB;AAShC4T,IAAAA,SAAS,EAAE,EATqB;AAUhCi9B,IAAAA,OAAO,EAAE,CAVuB;AAWhCh2G,IAAAA,SAAS,EAAE,IAXqB;AAYhCi2G,IAAAA,gBAAgB,EAAE,EAZc;AAahCz5G,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,IADD;AAELjP,MAAAA,QAAQ,EAAE,OAFL;AAGLhP,MAAAA,QAAQ,EAAE,EAAA;KAhBoB;AAkBhC0yF,IAAAA,MAAM,EAAE,EAlBwB;AAmBhC+kC,IAAAA,SAAS,EAAE,SAnBqB;AAoBhC56G,IAAAA,SAAS,EAAE;AACTrsB,MAAAA,KAAK,EAAE,SADE;AAETH,MAAAA,OAAO,EAAE,GAFA;AAGTggG,MAAAA,SAAS,EAAE,GAAA;KAvBmB;AAyBhCjyE,IAAAA,QAAQ,EAAE;AACRL,MAAAA,KAAK,EAAE;AACLE,QAAAA,IAAI,EAAE,IAAA;OAFA;AAIRpB,MAAAA,SAAS,EAAE;AACTxsB,QAAAA,OAAO,EAAE,GAAA;AADA,OAAA;KA7BmB;AAiChCmyC,IAAAA,MAAM,EAAE;AACNjlB,MAAAA,SAAS,EAAE;AACT8kB,QAAAA,WAAW,EAAE,SAAA;AADJ,OAAA;KAlCmB;AAsChCzjB,IAAAA,eAAe,EAAE,QAtCe;AAuChCm8B,IAAAA,iBAAiB,EAAE,IAAA;GAvCrB,CAAA;AAyCA,EAAA,OAAO+7E,iBAAP,CAAA;AACD,CAzLD,CAyLE53G,WAzLF,CAFA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4Be,SAASw4G,YAAT,CAAsBz+F,OAAtB,EAA+BxxB,GAA/B,EAAoC;AACjDwxB,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,QAAzB,EAAmC,UAAU/tB,WAAV,EAAuB;AACxD,IAAA,IAAI04E,SAAS,GAAG14E,WAAW,CAACyB,GAAZ,CAAgB,WAAhB,CAAhB,CAAA;AACA,IAAA,IAAIk0G,OAAO,GAAG31G,WAAW,CAACyB,GAAZ,CAAgB,SAAhB,CAAd,CAAA;AACA,IAAA,IAAI4jE,UAAU,GAAG93C,aAAW,CAACvtB,WAAD,EAAcna,GAAd,CAA5B,CAAA;IACAma,WAAW,CAACqlE,UAAZ,GAAyBA,UAAzB,CAAA;AACA,IAAA,IAAItyF,KAAK,GAAGsyF,UAAU,CAACtyF,KAAvB,CAAA;AACA,IAAA,IAAIC,MAAM,GAAGqyF,UAAU,CAACryF,MAAxB,CAAA;AACA,IAAA,IAAIi1G,KAAK,GAAGjoF,WAAW,CAACkoF,QAAZ,EAAZ,CAAA;AACA,IAAA,IAAI1lB,KAAK,GAAGylB,KAAK,CAACzlB,KAAlB,CAAA;AACA,IAAA,IAAIoqB,KAAK,GAAG3E,KAAK,CAAC2E,KAAlB,CAAA;IACAmpB,iBAAiB,CAACvzC,KAAD,CAAjB,CAAA;IACA,IAAIwzC,aAAa,GAAGhlG,MAAA,CAAcwxD,KAAd,EAAqB,UAAU3+E,IAAV,EAAgB;AACvD,MAAA,OAAOA,IAAI,CAACmmB,SAAL,EAAiBxB,CAAAA,KAAjB,KAA2B,CAAlC,CAAA;AACD,KAFmB,CAApB,CAAA;AAGA,IAAA,IAAIytG,UAAU,GAAGD,aAAa,CAAC1pI,MAAd,KAAyB,CAAzB,GAA6B,CAA7B,GAAiC0zB,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,CAAlD,CAAA;AACA,IAAA,IAAIqjE,MAAM,GAAG9kE,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;AACA,IAAA,IAAIo0G,SAAS,GAAG71G,WAAW,CAACyB,GAAZ,CAAgB,WAAhB,CAAhB,CAAA;AACAy0G,IAAAA,YAAY,CAAC1zC,KAAD,EAAQoqB,KAAR,EAAelU,SAAf,EAA0Bi9B,OAA1B,EAAmC5iI,KAAnC,EAA0CC,MAA1C,EAAkDijI,UAAlD,EAA8DnxC,MAA9D,EAAsE+wC,SAAtE,CAAZ,CAAA;GAjBF,CAAA,CAAA;AAmBD,CAAA;AACD;AACA;AACA;;AAEA,SAAStoF,aAAT,CAAqBvtB,WAArB,EAAkCna,GAAlC,EAAuC;EACrC,OAAOq/B,aAAA,CAAqBllB,WAAW,CAACwtB,kBAAZ,EAArB,EAAuD;AAC5Dz6C,IAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADqD;IAE5DhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;AAFoD,GAAvD,CAAP,CAAA;AAID,CAAA;;AAED,SAASiqH,YAAT,CAAsB1zC,KAAtB,EAA6BoqB,KAA7B,EAAoClU,SAApC,EAA+Ci9B,OAA/C,EAAwD5iI,KAAxD,EAA+DC,MAA/D,EAAuEijI,UAAvE,EAAmFnxC,MAAnF,EAA2F+wC,SAA3F,EAAsG;AACpGM,EAAAA,mBAAmB,CAAC3zC,KAAD,EAAQoqB,KAAR,EAAelU,SAAf,EAA0B3lG,KAA1B,EAAiCC,MAAjC,EAAyC8xF,MAAzC,EAAiD+wC,SAAjD,CAAnB,CAAA;AACAO,EAAAA,iBAAiB,CAAC5zC,KAAD,EAAQoqB,KAAR,EAAe55G,MAAf,EAAuBD,KAAvB,EAA8B4iI,OAA9B,EAAuCM,UAAvC,EAAmDnxC,MAAnD,CAAjB,CAAA;AACAuxC,EAAAA,iBAAiB,CAAC7zC,KAAD,EAAQsC,MAAR,CAAjB,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASixC,iBAAT,CAA2BvzC,KAA3B,EAAkC;AAChCxxD,EAAAA,MAAA,CAAYwxD,KAAZ,EAAmB,UAAU3+E,IAAV,EAAgB;IACjC,IAAIyyH,MAAM,GAAGr4F,GAAG,CAACp6B,IAAI,CAACoyG,QAAN,EAAgBsgB,YAAhB,CAAhB,CAAA;IACA,IAAIC,MAAM,GAAGv4F,GAAG,CAACp6B,IAAI,CAAC8oG,OAAN,EAAe4pB,YAAf,CAAhB,CAAA;AACA,IAAA,IAAIE,YAAY,GAAG5yH,IAAI,CAAC+nF,QAAL,MAAmB,CAAtC,CAAA;IACA,IAAIpjE,KAAK,GAAG1/B,IAAI,CAAC0iB,GAAL,CAAS8qH,MAAT,EAAiBE,MAAjB,EAAyBC,YAAzB,CAAZ,CAAA;IACA5yH,IAAI,CAACg6B,SAAL,CAAe;AACbrV,MAAAA,KAAK,EAAEA,KAAAA;AADM,KAAf,EAEG,IAFH,CAAA,CAAA;GALF,CAAA,CAAA;AASD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAAS2tG,mBAAT,CAA6B3zC,KAA7B,EAAoCoqB,KAApC,EAA2ClU,SAA3C,EAAsD3lG,KAAtD,EAA6DC,MAA7D,EAAqE8xF,MAArE,EAA6E+wC,SAA7E,EAAwF;AACtF;AACA;AACA,EAAA,IAAIa,WAAW,GAAG,EAAlB,CAHsF;;AAKtF,EAAA,IAAIC,WAAW,GAAG,EAAlB,CALsF;;EAOtF,IAAIC,aAAa,GAAG,EAApB,CAAA;EACA,IAAIC,cAAc,GAAG,EAArB,CAAA;AACA,EAAA,IAAI9sI,CAAC,GAAG,CAAR,CATsF;;AAWtF,EAAA,KAAK,IAAIiD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4/G,KAAK,CAACtgH,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;AACrC0pI,IAAAA,WAAW,CAAC1pI,CAAD,CAAX,GAAiB,CAAjB,CAAA;AACD,GAAA;;AAED,EAAA,KAAK,IAAIA,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw1F,KAAK,CAACl2F,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;IACrC2pI,WAAW,CAAC3pI,CAAD,CAAX,GAAiBw1F,KAAK,CAACx1F,CAAD,CAAL,CAAS2/G,OAAT,CAAiBrgH,MAAlC,CAAA;;AAEA,IAAA,IAAIqqI,WAAW,CAAC3pI,CAAD,CAAX,KAAmB,CAAvB,EAA0B;AACxB4pI,MAAAA,aAAa,CAACvpI,IAAd,CAAmBm1F,KAAK,CAACx1F,CAAD,CAAxB,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAI8pI,YAAY,GAAG,CAAC,CAApB,CAvBsF;AAwBtF;AACA;;EAEA,OAAOF,aAAa,CAACtqI,MAArB,EAA6B;AAC3B,IAAA,KAAK,IAAI0sB,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAG49G,aAAa,CAACtqI,MAAtC,EAA8C0sB,GAAG,EAAjD,EAAqD;AACnD,MAAA,IAAInV,IAAI,GAAG+yH,aAAa,CAAC59G,GAAD,CAAxB,CAAA;AACA,MAAA,IAAInd,IAAI,GAAGgI,IAAI,CAACgyG,SAAL,CAAer4F,IAAf,CAAoB6wE,cAApB,CAAmCxqF,IAAI,CAAC4Z,SAAxC,CAAX,CAAA;AACA,MAAA,IAAIs5G,WAAW,GAAGl7H,IAAI,CAACgvF,KAAL,IAAc,IAAd,IAAsBhvF,IAAI,CAACgvF,KAAL,IAAc,CAAtD,CAAA;;AAEA,MAAA,IAAIksC,WAAW,IAAIl7H,IAAI,CAACgvF,KAAL,GAAaisC,YAAhC,EAA8C;QAC5CA,YAAY,GAAGj7H,IAAI,CAACgvF,KAApB,CAAA;AACD,OAAA;;MAEDhnF,IAAI,CAACg6B,SAAL,CAAe;AACbgtD,QAAAA,KAAK,EAAEksC,WAAW,GAAGl7H,IAAI,CAACgvF,KAAR,GAAgB9gG,CAAAA;AADrB,OAAf,EAEG,IAFH,CAAA,CAAA;AAGA+6F,MAAAA,MAAM,KAAK,UAAX,GAAwBjhF,IAAI,CAACg6B,SAAL,CAAe;AACrC9Z,QAAAA,EAAE,EAAE20E,SAAAA;AADiC,OAAf,EAErB,IAFqB,CAAxB,GAEW70F,IAAI,CAACg6B,SAAL,CAAe;AACxB/Z,QAAAA,EAAE,EAAE40E,SAAAA;OADK,EAER,IAFQ,CAFX,CAAA;;AAMA,MAAA,KAAK,IAAIs+B,OAAO,GAAG,CAAnB,EAAsBA,OAAO,GAAGnzH,IAAI,CAACoyG,QAAL,CAAc3pH,MAA9C,EAAsD0qI,OAAO,EAA7D,EAAiE;AAC/D,QAAA,IAAIvuC,IAAI,GAAG5kF,IAAI,CAACoyG,QAAL,CAAc+gB,OAAd,CAAX,CAAA;AACA,QAAA,IAAIC,SAAS,GAAGrqB,KAAK,CAACp2G,OAAN,CAAciyF,IAAd,CAAhB,CAAA;AACAiuC,QAAAA,WAAW,CAACO,SAAD,CAAX,GAAyB,CAAzB,CAAA;AACA,QAAA,IAAI9pC,UAAU,GAAG1E,IAAI,CAACnE,KAAtB,CAAA;AACA,QAAA,IAAI4yC,SAAS,GAAG10C,KAAK,CAAChsF,OAAN,CAAc22F,UAAd,CAAhB,CAAA;;AAEA,QAAA,IAAI,EAAEwpC,WAAW,CAACO,SAAD,CAAb,KAA6B,CAA7B,IAAkCL,cAAc,CAACrgI,OAAf,CAAuB22F,UAAvB,CAAA,GAAqC,CAA3E,EAA8E;UAC5E0pC,cAAc,CAACxpI,IAAf,CAAoB8/F,UAApB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;AAED,IAAA,EAAEpjG,CAAF,CAAA;AACA6sI,IAAAA,aAAa,GAAGC,cAAhB,CAAA;AACAA,IAAAA,cAAc,GAAG,EAAjB,CAAA;AACD,GAAA;;AAED,EAAA,KAAK,IAAI7pI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0pI,WAAW,CAACpqI,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C,IAAA,IAAI0pI,WAAW,CAAC1pI,CAAD,CAAX,KAAmB,CAAvB,EAA0B;AACxB,MAAA,MAAM,IAAIstB,KAAJ,CAAU,+CAAV,CAAN,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAI68G,QAAQ,GAAGL,YAAY,GAAG/sI,CAAC,GAAG,CAAnB,GAAuB+sI,YAAvB,GAAsC/sI,CAAC,GAAG,CAAzD,CAAA;;AAEA,EAAA,IAAI8rI,SAAS,IAAIA,SAAS,KAAK,MAA/B,EAAuC;IACrCuB,uBAAuB,CAAC50C,KAAD,EAAQqzC,SAAR,EAAmB/wC,MAAnB,EAA2BqyC,QAA3B,CAAvB,CAAA;AACD,GAAA;;AAED,EAAA,IAAIE,EAAE,GAAGvyC,MAAM,KAAK,UAAX,GAAwB,CAAC9xF,MAAM,GAAG0lG,SAAV,IAAuBy+B,QAA/C,GAA0D,CAACpkI,KAAK,GAAG2lG,SAAT,IAAsBy+B,QAAzF,CAAA;AACAG,EAAAA,iBAAiB,CAAC90C,KAAD,EAAQ60C,EAAR,EAAYvyC,MAAZ,CAAjB,CAAA;AACD,CAAA;;AAED,SAASyyC,WAAT,CAAqB1zH,IAArB,EAA2B;AACzB,EAAA,IAAIhI,IAAI,GAAGgI,IAAI,CAACgyG,SAAL,CAAer4F,IAAf,CAAoB6wE,cAApB,CAAmCxqF,IAAI,CAAC4Z,SAAxC,CAAX,CAAA;EACA,OAAO5hB,IAAI,CAACgvF,KAAL,IAAc,IAAd,IAAsBhvF,IAAI,CAACgvF,KAAL,IAAc,CAA3C,CAAA;AACD,CAAA;;AAED,SAASusC,uBAAT,CAAiC50C,KAAjC,EAAwCqzC,SAAxC,EAAmD/wC,MAAnD,EAA2DqyC,QAA3D,EAAqE;EACnE,IAAItB,SAAS,KAAK,OAAlB,EAA2B;IACzB,IAAI2B,cAAc,GAAG,EAArB,CAAA;IACA,IAAIC,WAAW,GAAGj1C,KAAlB,CAAA;IACA,IAAImW,UAAU,GAAG,CAAjB,CAAA;;IAEA,OAAO8+B,WAAW,CAACnrI,MAAnB,EAA2B;AACzB,MAAA,KAAK,IAAIU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyqI,WAAW,CAACnrI,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C,QAAA,IAAI6W,IAAI,GAAG4zH,WAAW,CAACzqI,CAAD,CAAtB,CAAA;QACA6W,IAAI,CAACg6B,SAAL,CAAe;AACb65F,UAAAA,YAAY,EAAE/+B,UAAAA;AADD,SAAf,EAEG,IAFH,CAAA,CAAA;;AAIA,QAAA,KAAK,IAAIzmF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGrO,IAAI,CAAC8oG,OAAL,CAAargH,MAAjC,EAAyC4lB,CAAC,EAA1C,EAA8C;AAC5C,UAAA,IAAIu2E,IAAI,GAAG5kF,IAAI,CAAC8oG,OAAL,CAAaz6F,CAAb,CAAX,CAAA;;UAEA,IAAIslH,cAAc,CAAChhI,OAAf,CAAuBiyF,IAAI,CAACpE,KAA5B,CAAqC,GAAA,CAAzC,EAA4C;AAC1CmzC,YAAAA,cAAc,CAACnqI,IAAf,CAAoBo7F,IAAI,CAACpE,KAAzB,CAAA,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAEDozC,MAAAA,WAAW,GAAGD,cAAd,CAAA;AACAA,MAAAA,cAAc,GAAG,EAAjB,CAAA;AACA,MAAA,EAAE7+B,UAAF,CAAA;AACD,KAAA;;AAED3nE,IAAAA,MAAA,CAAYwxD,KAAZ,EAAmB,UAAU3+E,IAAV,EAAgB;AACjC,MAAA,IAAI,CAAC0zH,WAAW,CAAC1zH,IAAD,CAAhB,EAAwB;QACtBA,IAAI,CAACg6B,SAAL,CAAe;AACbgtD,UAAAA,KAAK,EAAE/hG,IAAI,CAAC0iB,GAAL,CAAS,CAAT,EAAY2rH,QAAQ,GAAGtzH,IAAI,CAACmmB,SAAL,GAAiB0tG,YAAxC,CAAA;AADM,SAAf,EAEG,IAFH,CAAA,CAAA;AAGD,OAAA;KALH,CAAA,CAAA;AAOD,GAjCD,MAiCO,IAAI7B,SAAS,KAAK,SAAlB,EAA6B;AAClC8B,IAAAA,cAAc,CAACn1C,KAAD,EAAQ20C,QAAR,CAAd,CAAA;AACD,GAAA;AACF,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASQ,cAAT,CAAwBn1C,KAAxB,EAA+B20C,QAA/B,EAAyC;AACvCnmG,EAAAA,MAAA,CAAYwxD,KAAZ,EAAmB,UAAU3+E,IAAV,EAAgB;AACjC,IAAA,IAAI,CAAC0zH,WAAW,CAAC1zH,IAAD,CAAZ,IAAsB,CAACA,IAAI,CAACoyG,QAAL,CAAc3pH,MAAzC,EAAiD;MAC/CuX,IAAI,CAACg6B,SAAL,CAAe;AACbgtD,QAAAA,KAAK,EAAEssC,QAAAA;AADM,OAAf,EAEG,IAFH,CAAA,CAAA;AAGD,KAAA;GALH,CAAA,CAAA;AAOD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASG,iBAAT,CAA2B90C,KAA3B,EAAkC60C,EAAlC,EAAsCvyC,MAAtC,EAA8C;AAC5C9zD,EAAAA,MAAA,CAAYwxD,KAAZ,EAAmB,UAAU3+E,IAAV,EAAgB;IACjC,IAAIsxH,SAAS,GAAGtxH,IAAI,CAACmmB,SAAL,EAAiB6gE,CAAAA,KAAjB,GAAyBwsC,EAAzC,CAAA;AACAvyC,IAAAA,MAAM,KAAK,UAAX,GAAwBjhF,IAAI,CAACg6B,SAAL,CAAe;AACrC7zC,MAAAA,CAAC,EAAEmrI,SAAAA;AADkC,KAAf,EAErB,IAFqB,CAAxB,GAEWtxH,IAAI,CAACg6B,SAAL,CAAe;AACxB9zC,MAAAA,CAAC,EAAEorI,SAAAA;KADM,EAER,IAFQ,CAFX,CAAA;GAFF,CAAA,CAAA;AAQD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASiB,iBAAT,CAA2B5zC,KAA3B,EAAkCoqB,KAAlC,EAAyC55G,MAAzC,EAAiDD,KAAjD,EAAwD4iI,OAAxD,EAAiEM,UAAjE,EAA6EnxC,MAA7E,EAAqF;AACnF,EAAA,IAAI8yC,cAAc,GAAGC,qBAAqB,CAACr1C,KAAD,EAAQsC,MAAR,CAA1C,CAAA;AACAgzC,EAAAA,mBAAmB,CAACF,cAAD,EAAiBhrB,KAAjB,EAAwB55G,MAAxB,EAAgCD,KAAhC,EAAuC4iI,OAAvC,EAAgD7wC,MAAhD,CAAnB,CAAA;EACAizC,iBAAiB,CAACH,cAAD,EAAiBjC,OAAjB,EAA0B3iI,MAA1B,EAAkCD,KAAlC,EAAyC+xF,MAAzC,CAAjB,CAAA;;EAEA,KAAK,IAAIkzC,KAAK,GAAG,CAAjB,EAAoB/B,UAAU,GAAG,CAAjC,EAAoCA,UAAU,EAA9C,EAAkD;AAChD;AACA;AACA+B,IAAAA,KAAK,IAAI,IAAT,CAAA;AACAC,IAAAA,gBAAgB,CAACL,cAAD,EAAiBI,KAAjB,EAAwBlzC,MAAxB,CAAhB,CAAA;IACAizC,iBAAiB,CAACH,cAAD,EAAiBjC,OAAjB,EAA0B3iI,MAA1B,EAAkCD,KAAlC,EAAyC+xF,MAAzC,CAAjB,CAAA;AACAozC,IAAAA,gBAAgB,CAACN,cAAD,EAAiBI,KAAjB,EAAwBlzC,MAAxB,CAAhB,CAAA;IACAizC,iBAAiB,CAACH,cAAD,EAAiBjC,OAAjB,EAA0B3iI,MAA1B,EAAkCD,KAAlC,EAAyC+xF,MAAzC,CAAjB,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAS+yC,qBAAT,CAA+Br1C,KAA/B,EAAsCsC,MAAtC,EAA8C;EAC5C,IAAI8yC,cAAc,GAAG,EAArB,CAAA;EACA,IAAIO,OAAO,GAAGrzC,MAAM,KAAK,UAAX,GAAwB,GAAxB,GAA8B,GAA5C,CAAA;EACA,IAAIszC,WAAW,GAAGC,SAAS,CAAC71C,KAAD,EAAQ,UAAU3+E,IAAV,EAAgB;AACjD,IAAA,OAAOA,IAAI,CAACmmB,SAAL,EAAA,CAAiBmuG,OAAjB,CAAP,CAAA;AACD,GAF0B,CAA3B,CAAA;EAGAC,WAAW,CAAC3mI,IAAZ,CAAiBq5B,IAAjB,CAAsB,UAAUt+B,CAAV,EAAaC,CAAb,EAAgB;IACpC,OAAOD,CAAC,GAAGC,CAAX,CAAA;GADF,CAAA,CAAA;EAGAukC,MAAA,CAAYonG,WAAW,CAAC3mI,IAAxB,EAA8B,UAAUpB,GAAV,EAAe;IAC3CunI,cAAc,CAACvqI,IAAf,CAAoB+qI,WAAW,CAACE,OAAZ,CAAoB72G,GAApB,CAAwBpxB,GAAxB,CAApB,CAAA,CAAA;GADF,CAAA,CAAA;AAGA,EAAA,OAAOunI,cAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASE,mBAAT,CAA6BF,cAA7B,EAA6ChrB,KAA7C,EAAoD55G,MAApD,EAA4DD,KAA5D,EAAmE4iI,OAAnE,EAA4E7wC,MAA5E,EAAoF;EAClF,IAAIyzC,KAAK,GAAG1nH,QAAZ,CAAA;AACAmgB,EAAAA,MAAA,CAAY4mG,cAAZ,EAA4B,UAAUp1C,KAAV,EAAiB;AAC3C,IAAA,IAAIE,CAAC,GAAGF,KAAK,CAACl2F,MAAd,CAAA;IACA,IAAI2xC,GAAG,GAAG,CAAV,CAAA;AACAjN,IAAAA,MAAA,CAAYwxD,KAAZ,EAAmB,UAAU3+E,IAAV,EAAgB;AACjCo6B,MAAAA,GAAG,IAAIp6B,IAAI,CAACmmB,SAAL,GAAiBxB,KAAxB,CAAA;KADF,CAAA,CAAA;AAGA,IAAA,IAAIgwG,EAAE,GAAG1zC,MAAM,KAAK,UAAX,GAAwB,CAAC/xF,KAAK,GAAG,CAAC2vF,CAAC,GAAG,CAAL,IAAUizC,OAAnB,IAA8B13F,GAAtD,GAA4D,CAACjrC,MAAM,GAAG,CAAC0vF,CAAC,GAAG,CAAL,IAAUizC,OAApB,IAA+B13F,GAApG,CAAA;;IAEA,IAAIu6F,EAAE,GAAGD,KAAT,EAAgB;AACdA,MAAAA,KAAK,GAAGC,EAAR,CAAA;AACD,KAAA;GAVH,CAAA,CAAA;AAYAxnG,EAAAA,MAAA,CAAY4mG,cAAZ,EAA4B,UAAUp1C,KAAV,EAAiB;IAC3CxxD,MAAA,CAAYwxD,KAAZ,EAAmB,UAAU3+E,IAAV,EAAgB7W,CAAhB,EAAmB;MACpC,IAAIyrI,MAAM,GAAG50H,IAAI,CAACmmB,SAAL,EAAiBxB,CAAAA,KAAjB,GAAyB+vG,KAAtC,CAAA;;MAEA,IAAIzzC,MAAM,KAAK,UAAf,EAA2B;QACzBjhF,IAAI,CAACg6B,SAAL,CAAe;AACb9zC,UAAAA,CAAC,EAAEiD,CAAAA;AADU,SAAf,EAEG,IAFH,CAAA,CAAA;QAGA6W,IAAI,CAACg6B,SAAL,CAAe;AACb/Z,UAAAA,EAAE,EAAE20G,MAAAA;AADS,SAAf,EAEG,IAFH,CAAA,CAAA;AAGD,OAPD,MAOO;QACL50H,IAAI,CAACg6B,SAAL,CAAe;AACb7zC,UAAAA,CAAC,EAAEgD,CAAAA;AADU,SAAf,EAEG,IAFH,CAAA,CAAA;QAGA6W,IAAI,CAACg6B,SAAL,CAAe;AACb9Z,UAAAA,EAAE,EAAE00G,MAAAA;AADS,SAAf,EAEG,IAFH,CAAA,CAAA;AAGD,OAAA;KAjBH,CAAA,CAAA;GADF,CAAA,CAAA;AAqBAznG,EAAAA,MAAA,CAAY47E,KAAZ,EAAmB,UAAUnkB,IAAV,EAAgB;IACjC,IAAIiwC,MAAM,GAAG,CAACjwC,IAAI,CAACmD,QAAL,EAAD,GAAmB2sC,KAAhC,CAAA;IACA9vC,IAAI,CAAC5qD,SAAL,CAAe;AACb9Z,MAAAA,EAAE,EAAE20G,MAAAA;AADS,KAAf,EAEG,IAFH,CAAA,CAAA;GAFF,CAAA,CAAA;AAMD,CAAA;AACD;AACA;AACA;;;AAGA,SAASX,iBAAT,CAA2BH,cAA3B,EAA2CjC,OAA3C,EAAoD3iI,MAApD,EAA4DD,KAA5D,EAAmE+xF,MAAnE,EAA2E;EACzE,IAAIqzC,OAAO,GAAGrzC,MAAM,KAAK,UAAX,GAAwB,GAAxB,GAA8B,GAA5C,CAAA;AACA9zD,EAAAA,MAAA,CAAY4mG,cAAZ,EAA4B,UAAUp1C,KAAV,EAAiB;AAC3CA,IAAAA,KAAK,CAAC13D,IAAN,CAAW,UAAUt+B,CAAV,EAAaC,CAAb,EAAgB;MACzB,OAAOD,CAAC,CAACw9B,SAAF,EAAcmuG,CAAAA,OAAd,CAAyB1rI,GAAAA,CAAC,CAACu9B,SAAF,EAAcmuG,CAAAA,OAAd,CAAhC,CAAA;KADF,CAAA,CAAA;AAGA,IAAA,IAAIh1C,KAAJ,CAAA;AACA,IAAA,IAAIt/E,IAAJ,CAAA;AACA,IAAA,IAAIkgB,EAAJ,CAAA;IACA,IAAIl4B,EAAE,GAAG,CAAT,CAAA;AACA,IAAA,IAAI62F,CAAC,GAAGF,KAAK,CAACl2F,MAAd,CAAA;IACA,IAAIqsI,UAAU,GAAG7zC,MAAM,KAAK,UAAX,GAAwB,IAAxB,GAA+B,IAAhD,CAAA;;IAEA,KAAK,IAAI93F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG01F,CAApB,EAAuB11F,CAAC,EAAxB,EAA4B;AAC1B6W,MAAAA,IAAI,GAAG2+E,KAAK,CAACx1F,CAAD,CAAZ,CAAA;MACA+2B,EAAE,GAAGl4B,EAAE,GAAGgY,IAAI,CAACmmB,SAAL,EAAA,CAAiBmuG,OAAjB,CAAV,CAAA;;MAEA,IAAIp0G,EAAE,GAAG,CAAT,EAAY;AACVo/D,QAAAA,KAAK,GAAGt/E,IAAI,CAACmmB,SAAL,EAAiBmuG,CAAAA,OAAjB,IAA4Bp0G,EAApC,CAAA;AACA+gE,QAAAA,MAAM,KAAK,UAAX,GAAwBjhF,IAAI,CAACg6B,SAAL,CAAe;AACrC9zC,UAAAA,CAAC,EAAEo5F,KAAAA;AADkC,SAAf,EAErB,IAFqB,CAAxB,GAEWt/E,IAAI,CAACg6B,SAAL,CAAe;AACxB7zC,UAAAA,CAAC,EAAEm5F,KAAAA;SADM,EAER,IAFQ,CAFX,CAAA;AAKD,OAAA;;AAEDt3F,MAAAA,EAAE,GAAGgY,IAAI,CAACmmB,SAAL,GAAiBmuG,OAAjB,CAAA,GAA4Bt0H,IAAI,CAACmmB,SAAL,EAAA,CAAiB2uG,UAAjB,CAA5B,GAA2DhD,OAAhE,CAAA;AACD,KAAA;;IAED,IAAI3lH,SAAS,GAAG80E,MAAM,KAAK,UAAX,GAAwB/xF,KAAxB,GAAgCC,MAAhD,CA3B2C;;AA6B3C+wB,IAAAA,EAAE,GAAGl4B,EAAE,GAAG8pI,OAAL,GAAe3lH,SAApB,CAAA;;IAEA,IAAI+T,EAAE,GAAG,CAAT,EAAY;AACVo/D,MAAAA,KAAK,GAAGt/E,IAAI,CAACmmB,SAAL,EAAiBmuG,CAAAA,OAAjB,IAA4Bp0G,EAApC,CAAA;AACA+gE,MAAAA,MAAM,KAAK,UAAX,GAAwBjhF,IAAI,CAACg6B,SAAL,CAAe;AACrC9zC,QAAAA,CAAC,EAAEo5F,KAAAA;AADkC,OAAf,EAErB,IAFqB,CAAxB,GAEWt/E,IAAI,CAACg6B,SAAL,CAAe;AACxB7zC,QAAAA,CAAC,EAAEm5F,KAAAA;OADM,EAER,IAFQ,CAFX,CAAA;AAKAt3F,MAAAA,EAAE,GAAGs3F,KAAL,CAAA;;AAEA,MAAA,KAAK,IAAIn2F,CAAC,GAAG01F,CAAC,GAAG,CAAjB,EAAoB11F,CAAC,IAAI,CAAzB,EAA4B,EAAEA,CAA9B,EAAiC;AAC/B6W,QAAAA,IAAI,GAAG2+E,KAAK,CAACx1F,CAAD,CAAZ,CAAA;AACA+2B,QAAAA,EAAE,GAAGlgB,IAAI,CAACmmB,SAAL,EAAA,CAAiBmuG,OAAjB,CAA4Bt0H,GAAAA,IAAI,CAACmmB,SAAL,GAAiB2uG,UAAjB,CAA5B,GAA2DhD,OAA3D,GAAqE9pI,EAA1E,CAAA;;QAEA,IAAIk4B,EAAE,GAAG,CAAT,EAAY;AACVo/D,UAAAA,KAAK,GAAGt/E,IAAI,CAACmmB,SAAL,EAAiBmuG,CAAAA,OAAjB,IAA4Bp0G,EAApC,CAAA;AACA+gE,UAAAA,MAAM,KAAK,UAAX,GAAwBjhF,IAAI,CAACg6B,SAAL,CAAe;AACrC9zC,YAAAA,CAAC,EAAEo5F,KAAAA;AADkC,WAAf,EAErB,IAFqB,CAAxB,GAEWt/E,IAAI,CAACg6B,SAAL,CAAe;AACxB7zC,YAAAA,CAAC,EAAEm5F,KAAAA;WADM,EAER,IAFQ,CAFX,CAAA;AAKD,SAAA;;AAEDt3F,QAAAA,EAAE,GAAGgY,IAAI,CAACmmB,SAAL,EAAA,CAAiBmuG,OAAjB,CAAL,CAAA;AACD,OAAA;AACF,KAAA;GAvDH,CAAA,CAAA;AAyDD,CAAA;AACD;AACA;AACA;AACA;AACA;;;AAGA,SAASF,gBAAT,CAA0BL,cAA1B,EAA0CI,KAA1C,EAAiDlzC,MAAjD,EAAyD;AACvD9zD,EAAAA,MAAA,CAAY4mG,cAAc,CAACvlH,KAAf,EAAuBohB,CAAAA,OAAvB,EAAZ,EAA8C,UAAU+uD,KAAV,EAAiB;AAC7DxxD,IAAAA,MAAA,CAAYwxD,KAAZ,EAAmB,UAAU3+E,IAAV,EAAgB;AACjC,MAAA,IAAIA,IAAI,CAACoyG,QAAL,CAAc3pH,MAAlB,EAA0B;QACxB,IAAItC,CAAC,GAAGi0C,GAAG,CAACp6B,IAAI,CAACoyG,QAAN,EAAgB2iB,cAAhB,EAAgC9zC,MAAhC,CAAH,GAA6C7mD,GAAG,CAACp6B,IAAI,CAACoyG,QAAN,EAAgBsgB,YAAhB,CAAxD,CAAA;;AAEA,QAAA,IAAIppI,KAAK,CAACnD,CAAD,CAAT,EAAc;AACZ,UAAA,IAAIqM,GAAG,GAAGwN,IAAI,CAACoyG,QAAL,CAAc3pH,MAAxB,CAAA;AACAtC,UAAAA,CAAC,GAAGqM,GAAG,GAAG4nC,GAAG,CAACp6B,IAAI,CAACoyG,QAAN,EAAgB4iB,YAAhB,EAA8B/zC,MAA9B,CAAH,GAA2CzuF,GAA9C,GAAoD,CAA3D,CAAA;AACD,SAAA;;QAED,IAAIyuF,MAAM,KAAK,UAAf,EAA2B;AACzB,UAAA,IAAI3B,KAAK,GAAGt/E,IAAI,CAACmmB,SAAL,EAAA,CAAiBjgC,CAAjB,GAAqB,CAACC,CAAC,GAAG2jD,MAAM,CAAC9pC,IAAD,EAAOihF,MAAP,CAAX,IAA6BkzC,KAA9D,CAAA;UACAn0H,IAAI,CAACg6B,SAAL,CAAe;AACb9zC,YAAAA,CAAC,EAAEo5F,KAAAA;AADU,WAAf,EAEG,IAFH,CAAA,CAAA;AAGD,SALD,MAKO;AACL,UAAA,IAAI21C,KAAK,GAAGj1H,IAAI,CAACmmB,SAAL,EAAA,CAAiBhgC,CAAjB,GAAqB,CAACA,CAAC,GAAG2jD,MAAM,CAAC9pC,IAAD,EAAOihF,MAAP,CAAX,IAA6BkzC,KAA9D,CAAA;UACAn0H,IAAI,CAACg6B,SAAL,CAAe;AACb7zC,YAAAA,CAAC,EAAE8uI,KAAAA;AADU,WAAf,EAEG,IAFH,CAAA,CAAA;AAGD,SAAA;AACF,OAAA;KApBH,CAAA,CAAA;GADF,CAAA,CAAA;AAwBD,CAAA;;AAED,SAASF,cAAT,CAAwBnwC,IAAxB,EAA8B3D,MAA9B,EAAsC;AACpC,EAAA,OAAOn3C,MAAM,CAAC86C,IAAI,CAACnE,KAAN,EAAaQ,MAAb,CAAN,GAA6B2D,IAAI,CAACmD,QAAL,EAApC,CAAA;AACD,CAAA;;AAED,SAASitC,YAAT,CAAsBpwC,IAAtB,EAA4B3D,MAA5B,EAAoC;AAClC,EAAA,OAAOn3C,MAAM,CAAC86C,IAAI,CAACnE,KAAN,EAAaQ,MAAb,CAAb,CAAA;AACD,CAAA;;AAED,SAASi0C,cAAT,CAAwBtwC,IAAxB,EAA8B3D,MAA9B,EAAsC;AACpC,EAAA,OAAOn3C,MAAM,CAAC86C,IAAI,CAACpE,KAAN,EAAaS,MAAb,CAAN,GAA6B2D,IAAI,CAACmD,QAAL,EAApC,CAAA;AACD,CAAA;;AAED,SAASotC,YAAT,CAAsBvwC,IAAtB,EAA4B3D,MAA5B,EAAoC;AAClC,EAAA,OAAOn3C,MAAM,CAAC86C,IAAI,CAACpE,KAAN,EAAaS,MAAb,CAAb,CAAA;AACD,CAAA;;AAED,SAASn3C,MAAT,CAAgB9pC,IAAhB,EAAsBihF,MAAtB,EAA8B;AAC5B,EAAA,OAAOA,MAAM,KAAK,UAAX,GAAwBjhF,IAAI,CAACmmB,SAAL,EAAA,CAAiBjgC,CAAjB,GAAqB8Z,IAAI,CAACmmB,SAAL,EAAiBlG,CAAAA,EAAjB,GAAsB,CAAnE,GAAuEjgB,IAAI,CAACmmB,SAAL,EAAiBhgC,CAAAA,CAAjB,GAAqB6Z,IAAI,CAACmmB,SAAL,EAAiBjG,CAAAA,EAAjB,GAAsB,CAAzH,CAAA;AACD,CAAA;;AAED,SAASwyG,YAAT,CAAsB9tC,IAAtB,EAA4B;EAC1B,OAAOA,IAAI,CAACmD,QAAL,EAAP,CAAA;AACD,CAAA;;AAED,SAAS3tD,GAAT,CAAag7F,KAAb,EAAoBtgH,EAApB,EAAwBmsE,MAAxB,EAAgC;EAC9B,IAAI7mD,GAAG,GAAG,CAAV,CAAA;AACA,EAAA,IAAI5nC,GAAG,GAAG4iI,KAAK,CAAC3sI,MAAhB,CAAA;EACA,IAAIU,CAAC,GAAG,CAAC,CAAT,CAAA;;AAEA,EAAA,OAAO,EAAEA,CAAF,GAAMqJ,GAAb,EAAkB;IAChB,IAAImyB,KAAK,GAAG,CAAC7P,EAAE,CAACsgH,KAAK,CAACjsI,CAAD,CAAN,EAAW83F,MAAX,CAAf,CAAA;;AAEA,IAAA,IAAI,CAAC33F,KAAK,CAACq7B,KAAD,CAAV,EAAmB;AACjByV,MAAAA,GAAG,IAAIzV,KAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAOyV,GAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASi6F,gBAAT,CAA0BN,cAA1B,EAA0CI,KAA1C,EAAiDlzC,MAAjD,EAAyD;AACvD9zD,EAAAA,MAAA,CAAY4mG,cAAZ,EAA4B,UAAUp1C,KAAV,EAAiB;AAC3CxxD,IAAAA,MAAA,CAAYwxD,KAAZ,EAAmB,UAAU3+E,IAAV,EAAgB;AACjC,MAAA,IAAIA,IAAI,CAAC8oG,OAAL,CAAargH,MAAjB,EAAyB;QACvB,IAAItC,CAAC,GAAGi0C,GAAG,CAACp6B,IAAI,CAAC8oG,OAAN,EAAeosB,cAAf,EAA+Bj0C,MAA/B,CAAH,GAA4C7mD,GAAG,CAACp6B,IAAI,CAAC8oG,OAAN,EAAe4pB,YAAf,CAAvD,CAAA;;AAEA,QAAA,IAAIppI,KAAK,CAACnD,CAAD,CAAT,EAAc;AACZ,UAAA,IAAIqM,GAAG,GAAGwN,IAAI,CAAC8oG,OAAL,CAAargH,MAAvB,CAAA;AACAtC,UAAAA,CAAC,GAAGqM,GAAG,GAAG4nC,GAAG,CAACp6B,IAAI,CAAC8oG,OAAN,EAAeqsB,YAAf,EAA6Bl0C,MAA7B,CAAH,GAA0CzuF,GAA7C,GAAmD,CAA1D,CAAA;AACD,SAAA;;QAED,IAAIyuF,MAAM,KAAK,UAAf,EAA2B;AACzB,UAAA,IAAI3B,KAAK,GAAGt/E,IAAI,CAACmmB,SAAL,EAAA,CAAiBjgC,CAAjB,GAAqB,CAACC,CAAC,GAAG2jD,MAAM,CAAC9pC,IAAD,EAAOihF,MAAP,CAAX,IAA6BkzC,KAA9D,CAAA;UACAn0H,IAAI,CAACg6B,SAAL,CAAe;AACb9zC,YAAAA,CAAC,EAAEo5F,KAAAA;AADU,WAAf,EAEG,IAFH,CAAA,CAAA;AAGD,SALD,MAKO;AACL,UAAA,IAAI21C,KAAK,GAAGj1H,IAAI,CAACmmB,SAAL,EAAA,CAAiBhgC,CAAjB,GAAqB,CAACA,CAAC,GAAG2jD,MAAM,CAAC9pC,IAAD,EAAOihF,MAAP,CAAX,IAA6BkzC,KAA9D,CAAA;UACAn0H,IAAI,CAACg6B,SAAL,CAAe;AACb7zC,YAAAA,CAAC,EAAE8uI,KAAAA;AADU,WAAf,EAEG,IAFH,CAAA,CAAA;AAGD,SAAA;AACF,OAAA;KApBH,CAAA,CAAA;GADF,CAAA,CAAA;AAwBD,CAAA;AACD;AACA;AACA;;;AAGA,SAASzC,iBAAT,CAA2B7zC,KAA3B,EAAkCsC,MAAlC,EAA0C;EACxC,IAAIqzC,OAAO,GAAGrzC,MAAM,KAAK,UAAX,GAAwB,GAAxB,GAA8B,GAA5C,CAAA;AACA9zD,EAAAA,MAAA,CAAYwxD,KAAZ,EAAmB,UAAU3+E,IAAV,EAAgB;IACjCA,IAAI,CAACoyG,QAAL,CAAcnrF,IAAd,CAAmB,UAAUt+B,CAAV,EAAaC,CAAb,EAAgB;AACjC,MAAA,OAAOD,CAAC,CAAC83F,KAAF,CAAQt6D,SAAR,EAAoBmuG,CAAAA,OAApB,CAA+B1rI,GAAAA,CAAC,CAAC63F,KAAF,CAAQt6D,SAAR,EAAA,CAAoBmuG,OAApB,CAAtC,CAAA;KADF,CAAA,CAAA;IAGAt0H,IAAI,CAAC8oG,OAAL,CAAa7hF,IAAb,CAAkB,UAAUt+B,CAAV,EAAaC,CAAb,EAAgB;AAChC,MAAA,OAAOD,CAAC,CAAC63F,KAAF,CAAQr6D,SAAR,EAAoBmuG,CAAAA,OAApB,CAA+B1rI,GAAAA,CAAC,CAAC43F,KAAF,CAAQr6D,SAAR,EAAA,CAAoBmuG,OAApB,CAAtC,CAAA;KADF,CAAA,CAAA;GAJF,CAAA,CAAA;AAQAnnG,EAAAA,MAAA,CAAYwxD,KAAZ,EAAmB,UAAU3+E,IAAV,EAAgB;IACjC,IAAI8mE,EAAE,GAAG,CAAT,CAAA;IACA,IAAIgqD,EAAE,GAAG,CAAT,CAAA;IACA3jG,MAAA,CAAYntB,IAAI,CAACoyG,QAAjB,EAA2B,UAAUxtB,IAAV,EAAgB;MACzCA,IAAI,CAAC5qD,SAAL,CAAe;AACb8sC,QAAAA,EAAE,EAAEA,EAAAA;AADS,OAAf,EAEG,IAFH,CAAA,CAAA;AAGAA,MAAAA,EAAE,IAAI8d,IAAI,CAACz+D,SAAL,GAAiBjG,EAAvB,CAAA;KAJF,CAAA,CAAA;IAMAiN,MAAA,CAAYntB,IAAI,CAAC8oG,OAAjB,EAA0B,UAAUlkB,IAAV,EAAgB;MACxCA,IAAI,CAAC5qD,SAAL,CAAe;AACb82F,QAAAA,EAAE,EAAEA,EAAAA;AADS,OAAf,EAEG,IAFH,CAAA,CAAA;AAGAA,MAAAA,EAAE,IAAIlsC,IAAI,CAACz+D,SAAL,GAAiBjG,EAAvB,CAAA;KAJF,CAAA,CAAA;GATF,CAAA,CAAA;AAgBD;;AC1iBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2Be,SAASm1G,YAAT,CAAsB7hG,OAAtB,EAA+B;AAC5CA,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,QAAzB,EAAmC,UAAU/tB,WAAV,EAAuB;AACxD,IAAA,IAAIioF,KAAK,GAAGjoF,WAAW,CAACkoF,QAAZ,EAAZ,CAAA;AACA,IAAA,IAAI1lB,KAAK,GAAGylB,KAAK,CAACzlB,KAAlB,CAAA;;IAEA,IAAIA,KAAK,CAACl2F,MAAV,EAAkB;MAChB,IAAI6sI,UAAU,GAAGtoH,QAAjB,CAAA;MACA,IAAIuoH,UAAU,GAAG,CAACvoH,QAAlB,CAAA;AACAmgB,MAAAA,MAAA,CAAYwxD,KAAZ,EAAmB,UAAU3+E,IAAV,EAAgB;AACjC,QAAA,IAAI6xH,SAAS,GAAG7xH,IAAI,CAACmmB,SAAL,GAAiBxB,KAAjC,CAAA;;QAEA,IAAIktG,SAAS,GAAGyD,UAAhB,EAA4B;AAC1BA,UAAAA,UAAU,GAAGzD,SAAb,CAAA;AACD,SAAA;;QAED,IAAIA,SAAS,GAAG0D,UAAhB,EAA4B;AAC1BA,UAAAA,UAAU,GAAG1D,SAAb,CAAA;AACD,SAAA;OATH,CAAA,CAAA;AAWA1kG,MAAAA,MAAA,CAAYwxD,KAAZ,EAAmB,UAAU3+E,IAAV,EAAgB;AACjC,QAAA,IAAI+/F,OAAO,GAAG,IAAIjG,aAAJ,CAAkB;AAC9BthG,UAAAA,IAAI,EAAE,OADwB;AAE9BuhG,UAAAA,aAAa,EAAE,QAFe;AAG9BW,UAAAA,UAAU,EAAE,CAAC46B,UAAD,EAAaC,UAAb,CAHkB;AAI9Bt6B,UAAAA,MAAM,EAAE9+E,WAAW,CAACyB,GAAZ,CAAgB,OAAhB,CAAA;AAJsB,SAAlB,CAAd,CAAA;QAMA,IAAI43G,eAAe,GAAGz1B,OAAO,CAACpF,gBAAR,CAAyB36F,IAAI,CAACmmB,SAAL,EAAiBxB,CAAAA,KAA1C,CAAtB,CAAA;AACA,QAAA,IAAI8wG,WAAW,GAAGz1H,IAAI,CAAC0d,QAAL,EAAA,CAAgBE,GAAhB,CAAoB,CAAC,WAAD,EAAc,OAAd,CAApB,CAAlB,CAAA;;QAEA,IAAI63G,WAAW,IAAI,IAAnB,EAAyB;AACvBz1H,UAAAA,IAAI,CAACo7B,SAAL,CAAe,OAAf,EAAwBq6F,WAAxB,CAAA,CAAA;AACAz1H,UAAAA,IAAI,CAACo7B,SAAL,CAAe,OAAf,EAAwB;AACtBpxC,YAAAA,IAAI,EAAEyrI,WAAAA;WADR,CAAA,CAAA;AAGD,SALD,MAKO;AACLz1H,UAAAA,IAAI,CAACo7B,SAAL,CAAe,OAAf,EAAwBo6F,eAAxB,CAAA,CAAA;AACAx1H,UAAAA,IAAI,CAACo7B,SAAL,CAAe,OAAf,EAAwB;AACtBpxC,YAAAA,IAAI,EAAEwrI,eAAAA;WADR,CAAA,CAAA;AAGD,SAAA;OApBH,CAAA,CAAA;AAsBD,KAAA;GAxCH,CAAA,CAAA;AA0CD;;ACvFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BO,SAAS3sH,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4Bm1F,UAA5B,CAAA,CAAA;EACAnnH,SAAS,CAACiyB,mBAAV,CAA8Bs2F,iBAA9B,CAAA,CAAA;EACAvoH,SAAS,CAACmyB,cAAV,CAAyBg3F,YAAzB,CAAA,CAAA;EACAnpH,SAAS,CAACqyB,cAAV,CAAyBk6F,YAAzB,CAAA,CAAA;EACAvsH,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,UADiB;AAEvBgwC,IAAAA,KAAK,EAAE,UAFgB;AAGvB;AACA9mB,IAAAA,MAAM,EAAE,QAAA;AAJe,GAAzB,EAKG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4B;IAC7BA,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAE,QADU;AAEpB8kC,MAAAA,OAAO,EAAE,QAFW;AAGpB7kC,MAAAA,KAAK,EAAE/S,OAAAA;KAHT,EAIG,UAAUpa,WAAV,EAAuB;AACxBA,MAAAA,WAAW,CAACo1G,eAAZ,CAA4Bh7F,OAAO,CAAC3c,SAApC,EAA+C,CAAC2c,OAAO,CAAC46F,MAAT,EAAiB56F,OAAO,CAAC66F,MAAzB,CAA/C,CAAA,CAAA;KALF,CAAA,CAAA;GANF,CAAA,CAAA;AAcD;;ACjED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAIsE,qBAAqB;AACzB;AACA,YAAY;EACV,SAASA,qBAAT,GAAiC,EAAE;AACnC;AACF;AACA;;;EAGEA,qBAAqB,CAACjwI,SAAtB,CAAgC4wB,cAAhC,GAAiD,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;AAC1E;AACA;AACA;AACA,IAAA,IAAImiG,WAAJ,CAAA;AACA,IAAA,IAAIp0E,UAAU,GAAG/tB,OAAO,CAACw7B,YAAR,CAAqB,OAArB,EAA8B,IAAKpxC,CAAAA,GAAL,CAAS,YAAT,CAA9B,CAAjB,CAAA;AACA,IAAA,IAAI4jC,UAAU,GAAGhuB,OAAO,CAACw7B,YAAR,CAAqB,OAArB,EAA8B,IAAKpxC,CAAAA,GAAL,CAAS,YAAT,CAA9B,CAAjB,CAAA;AACA,IAAA,IAAIg4G,SAAS,GAAGr0E,UAAU,CAAC3jC,GAAX,CAAe,MAAf,CAAhB,CAAA;AACA,IAAA,IAAIi4G,SAAS,GAAGr0E,UAAU,CAAC5jC,GAAX,CAAe,MAAf,CAAhB,CAAA;IACA,IAAIk4G,UAAJ,CAT0E;AAU1E;;IAEA,IAAIF,SAAS,KAAK,UAAlB,EAA8B;MAC5Bt/G,MAAM,CAAC+qB,MAAP,GAAgB,YAAhB,CAAA;AACAs0F,MAAAA,WAAW,GAAGp0E,UAAU,CAACzd,cAAX,EAAd,CAAA;AACAgyF,MAAAA,UAAU,GAAG,IAAb,CAAA;AACD,KAJD,MAIO,IAAID,SAAS,KAAK,UAAlB,EAA8B;MACnCv/G,MAAM,CAAC+qB,MAAP,GAAgB,UAAhB,CAAA;AACAs0F,MAAAA,WAAW,GAAGn0E,UAAU,CAAC1d,cAAX,EAAd,CAAA;AACAgyF,MAAAA,UAAU,GAAG,IAAb,CAAA;AACD,KAJM,MAIA;AACLx/G,MAAAA,MAAM,CAAC+qB,MAAP,GAAgB/qB,MAAM,CAAC+qB,MAAP,IAAiB,YAAjC,CAAA;AACD,KAAA;;AAED,IAAA,IAAI00F,SAAS,GAAG,CAAC,GAAD,EAAM,GAAN,CAAhB,CAAA;IACA,IAAIC,gBAAgB,GAAG1/G,MAAM,CAAC+qB,MAAP,KAAkB,YAAlB,GAAiC,CAAjC,GAAqC,CAA5D,CAAA;IACA,IAAI9d,WAAW,GAAG,IAAK0yG,CAAAA,YAAL,GAAoBF,SAAS,CAACC,gBAAD,CAA/C,CAAA;AACA,IAAA,IAAI/uE,YAAY,GAAG8uE,SAAS,CAAC,CAAA,GAAIC,gBAAL,CAA5B,CAAA;AACA,IAAA,IAAI3V,UAAU,GAAG,CAAC9+D,UAAD,EAAaC,UAAb,CAAjB,CAAA;IACA,IAAI00E,YAAY,GAAG7V,UAAU,CAAC2V,gBAAD,CAAV,CAA6Bp4G,GAA7B,CAAiC,MAAjC,CAAnB,CAAA;IACA,IAAIu4G,aAAa,GAAG9V,UAAU,CAAC,CAAA,GAAI2V,gBAAL,CAAV,CAAiCp4G,GAAjC,CAAqC,MAArC,CAApB,CAAA;AACA,IAAA,IAAIjE,IAAI,GAAGrD,MAAM,CAACqD,IAAlB,CA/B0E;AAgC1E;;IAEA,IAAIA,IAAI,IAAIm8G,UAAZ,EAAwB;MACtB,IAAIM,eAAe,GAAG,EAAtB,CAAA;MACAjpG,MAAA,CAAYxT,IAAZ,EAAkB,UAAU3hB,IAAV,EAAgB0sC,KAAhB,EAAuB;AACvC,QAAA,IAAI2xF,OAAJ,CAAA;;AAEA,QAAA,IAAIlpG,SAAA,CAAen1B,IAAf,CAAJ,EAA0B;AACxBq+H,UAAAA,OAAO,GAAGr+H,IAAI,CAACwW,KAAL,EAAV,CADwB;;UAGxBxW,IAAI,CAACm4B,OAAL,CAAauU,KAAb,CAAA,CAAA;SAHF,MAIO,IAAIvX,SAAA,CAAen1B,IAAI,CAAC2sB,KAApB,CAAJ,EAAgC;UACrC0xG,OAAO,GAAGlpG,MAAA,CAAc,EAAd,EAAkBn1B,IAAlB,CAAV,CAAA;UACAq+H,OAAO,CAAC1xG,KAAR,GAAgB0xG,OAAO,CAAC1xG,KAAR,CAAcnW,KAAd,EAAhB,CAFqC;;AAIrCxW,UAAAA,IAAI,CAAC2sB,KAAL,CAAWwL,OAAX,CAAmBuU,KAAnB,CAAA,CAAA;AACD,SALM,MAKA;AACL2xF,UAAAA,OAAO,GAAGr+H,IAAV,CAAA;AACD,SAAA;;QAEDo+H,eAAe,CAAC5sI,IAAhB,CAAqB6sI,OAArB,CAAA,CAAA;OAhBF,CAAA,CAAA;MAkBA//G,MAAM,CAACqD,IAAP,GAAcy8G,eAAd,CAAA;AACD,KAAA;;IAED,IAAIE,sBAAsB,GAAG,IAAA,CAAKA,sBAAlC,CAAA;IACA,IAAI9jF,eAAe,GAAG,CAAC;AACrBrmD,MAAAA,IAAI,EAAEo3B,WADe;AAErB/qB,MAAAA,IAAI,EAAE+9H,sBAAsB,CAACL,YAAD,CAFP;AAGrBP,MAAAA,WAAW,EAAEA,WAHQ;AAIrBa,MAAAA,SAAS,EAAE;AACTh9E,QAAAA,OAAO,EAAE,KADA;AAETyR,QAAAA,QAAQ,EAAE,CAAA;OANS;MAQrBwrE,OAAO,EAAE,CAAC,MAAD,CAAA;AARY,KAAD,EASnB;AACDtqI,MAAAA,IAAI,EAAE86D,YADL;AAEDzuD,MAAAA,IAAI,EAAE+9H,sBAAsB,CAACJ,aAAD,CAF3B;MAGDM,OAAO,EAAEH,sBAAsB,CAAC9nH,KAAvB,EAAA;AAHR,KATmB,CAAtB,CAAA;IAcA,OAAO8jC,sBAAsB,CAAC,IAAD,EAAO;AAClCE,MAAAA,eAAe,EAAEA,eADiB;AAElC22C,MAAAA,eAAe,EAAEmtC,sBAAsB,CAAC7tI,MAAvB,GAAgC,CAFf;MAGlCsrD,eAAe,EAAE5mB,OAAA,CAAaupG,+BAAb,EAA8ClkF,eAA9C,EAA+D,IAA/D,CAAA;AAHiB,KAAP,CAA7B,CAAA;GAxEF,CAAA;AA8EA;AACF;AACA;AACA;;;AAGEkjF,EAAAA,qBAAqB,CAACjwI,SAAtB,CAAgCy9B,WAAhC,GAA8C,YAAY;IACxD,IAAIM,GAAG,GAAG,IAAA,CAAKyyG,YAAf,CAAA;AACA,IAAA,OAAO,KAAKziG,OAAL,CAAaw7B,YAAb,CAA0BxrC,GAAG,GAAG,MAAhC,EAAwC,IAAA,CAAK5F,GAAL,CAAS4F,GAAG,GAAG,WAAf,CAAxC,EAAqE4L,IAA5E,CAAA;GAFF,CAAA;;AAKA,EAAA,OAAOsmG,qBAAP,CAAA;AACD,CAjGD,EAFA,CAAA;;AAqGA;;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAIiB,kBAAkB;AACtB;AACA,UAAUhtH,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC+sH,kBAAD,EAAqBhtH,MAArB,CAAT,CAAA;;AAEA,EAAA,SAASgtH,kBAAT,GAA8B;AAC5B,IAAA,IAAI9sH,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAam+H,kBAAkB,CAACn+H,IAAhC,CAH4B;AAI5B;;AAEA;AACJ;AACA;AACA;AACA;AACA;;IAEIqR,KAAK,CAACysH,sBAAN,GAA+B,CAAC;AAC9BnqI,MAAAA,IAAI,EAAE,KADwB;AAE9ByqI,MAAAA,cAAc,EAAE,IAAA;AAFc,KAAD,EAG5B;AACDzqI,MAAAA,IAAI,EAAE,IADL;AAEDyqI,MAAAA,cAAc,EAAE,IAAA;AAFf,KAH4B,EAM5B;AACDzqI,MAAAA,IAAI,EAAE,QADL;AAEDyqI,MAAAA,cAAc,EAAE,IAAA;AAFf,KAN4B,EAS5B;AACDzqI,MAAAA,IAAI,EAAE,IADL;AAEDyqI,MAAAA,cAAc,EAAE,IAAA;AAFf,KAT4B,EAY5B;AACDzqI,MAAAA,IAAI,EAAE,KADL;AAEDyqI,MAAAA,cAAc,EAAE,IAAA;AAFf,KAZ4B,CAA/B,CAAA;IAgBA/sH,KAAK,CAACwzG,cAAN,GAAuB,QAAvB,CAAA;AACA,IAAA,OAAOxzG,KAAP,CAAA;AACD,GAAA;;EAED8sH,kBAAkB,CAACn+H,IAAnB,GAA0B,gBAA1B,CAAA;EACAm+H,kBAAkB,CAACx+G,YAAnB,GAAkC,CAAC,OAAD,EAAU,OAAV,EAAmB,MAAnB,CAAlC,CAAA;EACAw+G,kBAAkB,CAACv+G,aAAnB,GAAmC;AACjC;AACAzG,IAAAA,CAAC,EAAE,CAF8B;AAGjC6E,IAAAA,gBAAgB,EAAE,aAHe;AAIjC6B,IAAAA,eAAe,EAAE,IAJgB;AAKjCgpB,IAAAA,MAAM,EAAE,IALyB;AAMjCw1F,IAAAA,QAAQ,EAAE,CAAC,CAAD,EAAI,EAAJ,CANuB;AAOjC/+G,IAAAA,SAAS,EAAE;AACT/sB,MAAAA,KAAK,EAAE,MADE;AAETsgB,MAAAA,WAAW,EAAE,CAAA;KATkB;AAWjCsN,IAAAA,QAAQ,EAAE;AACR5M,MAAAA,KAAK,EAAE,IADC;AAER+L,MAAAA,SAAS,EAAE;AACTzM,QAAAA,WAAW,EAAE,CADJ;AAETtP,QAAAA,UAAU,EAAE,CAFH;AAGTJ,QAAAA,aAAa,EAAE,CAHN;AAITE,QAAAA,aAAa,EAAE,CAJN;AAKTG,QAAAA,WAAW,EAAE,iBAAA;AALJ,OAAA;KAboB;AAqBjCs5C,IAAAA,iBAAiB,EAAE,GAAA;GArBrB,CAAA;AAuBA,EAAA,OAAOqhF,kBAAP,CAAA;AACD,CA9DD,CA8DEl9G,WA9DF,CAFA,CAAA;;AAkEAq9G,KAAK,CAACH,kBAAD,EAAqBjB,qBAArB,EAA4C,IAA5C,CAAL;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiCA,IAAIqB,WAAW;AACf;AACA,UAAUptH,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACmtH,WAAD,EAAcptH,MAAd,CAAT,CAAA;;AAEA,EAAA,SAASotH,WAAT,GAAuB;AACrB,IAAA,IAAIltH,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAau+H,WAAW,CAACv+H,IAAzB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDktH,WAAW,CAACtxI,SAAZ,CAAsB8tC,MAAtB,GAA+B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AAClE,IAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAIV,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAIkK,OAAO,GAAG,IAAKC,CAAAA,KAAnB,CAHkE;AAIlE;;IAEA,IAAI,CAAC,IAAKA,CAAAA,KAAV,EAAiB;AACfnK,MAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIs8G,QAAQ,GAAG76G,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAA,KAA8B,YAA9B,GAA6C,CAA7C,GAAiD,CAAhE,CAAA;IACAjE,IAAI,CAAC0H,IAAL,CAAUL,OAAV,EAAmB3J,GAAnB,CAAuB,UAAUiK,MAAV,EAAkB;AACvC,MAAA,IAAI3H,IAAI,CAAC2nB,QAAL,CAAchgB,MAAd,CAAJ,EAA2B;AACzB,QAAA,IAAI+wB,UAAU,GAAG14B,IAAI,CAACyH,aAAL,CAAmBE,MAAnB,CAAjB,CAAA;AACA,QAAA,IAAIC,QAAQ,GAAG01G,iBAAe,CAAC5kF,UAAD,EAAa14B,IAAb,EAAmB2H,MAAnB,EAA2B01G,QAA3B,EAAqC,IAArC,CAA9B,CAAA;AACAr9G,QAAAA,IAAI,CAAC8H,gBAAL,CAAsBH,MAAtB,EAA8BC,QAA9B,CAAA,CAAA;QACAzK,KAAK,CAACO,GAAN,CAAUkK,QAAV,CAAA,CAAA;AACD,OAAA;AACF,KAPD,EAOGG,MAPH,CAOU,UAAUJ,MAAV,EAAkBK,MAAlB,EAA0B;MAClC,IAAIJ,QAAQ,GAAGP,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAf,CADkC;;AAGlC,MAAA,IAAI,CAAChI,IAAI,CAAC2nB,QAAL,CAAchgB,MAAd,CAAL,EAA4B;QAC1BxK,KAAK,CAAC+K,MAAN,CAAaN,QAAb,CAAA,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAI8wB,UAAU,GAAG14B,IAAI,CAACyH,aAAL,CAAmBE,MAAnB,CAAjB,CAAA;;MAEA,IAAI,CAACC,QAAL,EAAe;QACbA,QAAQ,GAAG01G,iBAAe,CAAC5kF,UAAD,EAAa14B,IAAb,EAAmB2H,MAAnB,EAA2B01G,QAA3B,CAA1B,CAAA;AACD,OAFD,MAEO;QACLv6G,YAAY,CAAC8E,QAAD,CAAZ,CAAA;QACA21G,mBAAmB,CAAC7kF,UAAD,EAAa9wB,QAAb,EAAuB5H,IAAvB,EAA6B2H,MAA7B,CAAnB,CAAA;AACD,OAAA;;MAEDxK,KAAK,CAACO,GAAN,CAAUkK,QAAV,CAAA,CAAA;AACA5H,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBH,MAAtB,EAA8BC,QAA9B,CAAA,CAAA;AACD,KA1BD,CA0BGM,CAAAA,MA1BH,CA0BU,UAAUF,MAAV,EAAkB;AAC1B,MAAA,IAAIj3B,EAAE,GAAGs2B,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAT,CAAA;AACAj3B,MAAAA,EAAE,IAAIosB,KAAK,CAAC+K,MAAN,CAAan3B,EAAb,CAAN,CAAA;AACD,KA7BD,EA6BGs3B,OA7BH,EAAA,CAAA;IA8BA,IAAKf,CAAAA,KAAL,GAAatH,IAAb,CAAA;GAzCF,CAAA;;AA4CAo9G,EAAAA,WAAW,CAACtxI,SAAZ,CAAsBo8B,MAAtB,GAA+B,UAAU2R,OAAV,EAAmB;IAChD,IAAI1c,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACA,IAAI6C,IAAI,GAAG,IAAA,CAAKsH,KAAhB,CAAA;IACA,IAAKA,CAAAA,KAAL,GAAa,IAAb,CAAA;AACAtH,IAAAA,IAAI,IAAIA,IAAI,CAACwI,iBAAL,CAAuB,UAAUz3B,EAAV,EAAc;AAC3CA,MAAAA,EAAE,IAAIosB,KAAK,CAAC+K,MAAN,CAAan3B,EAAb,CAAN,CAAA;AACD,KAFO,CAAR,CAAA;GAJF,CAAA;;EASAqsI,WAAW,CAACv+H,IAAZ,GAAmB,SAAnB,CAAA;AACA,EAAA,OAAOu+H,WAAP,CAAA;AACD,CAjED,CAiEEpgG,SAjEF,CAFA,CAAA;;AAqEA,IAAIwgG,YAAY;AAChB;AACA,YAAY;EACV,SAASA,YAAT,GAAwB,EAAE;;AAE1B,EAAA,OAAOA,YAAP,CAAA;AACD,CAJD,EAFA,CAAA;;AAQA,IAAIC,OAAO;AACX;AACA,UAAUztH,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACwtH,OAAD,EAAUztH,MAAV,CAAT,CAAA;;EAEA,SAASytH,OAAT,CAAiBnqI,IAAjB,EAAuB;IACrB,IAAI4c,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB7c,IAAlB,CAAA,IAA2B,IAAvC,CAAA;;IAEA4c,KAAK,CAACrR,IAAN,GAAa,gBAAb,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDutH,EAAAA,OAAO,CAAC3xI,SAAR,CAAkBukC,eAAlB,GAAoC,YAAY;IAC9C,OAAO,IAAImtG,YAAJ,EAAP,CAAA;GADF,CAAA;;EAIAC,OAAO,CAAC3xI,SAAR,CAAkBwL,SAAlB,GAA8B,UAAUwa,GAAV,EAAe1a,KAAf,EAAsB;AAClD,IAAA,IAAI48H,IAAI,GAAG58H,KAAK,CAAC0G,MAAjB,CAAA;IACA,IAAItO,CAAC,GAAG,CAAR,CAAA;AACAsiB,IAAAA,GAAG,CAACxlB,MAAJ,CAAW0nI,IAAI,CAACxkI,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBwkI,IAAI,CAACxkI,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;IACAA,CAAC,EAAA,CAAA;;AAED,IAAA,OAAOA,CAAC,GAAG,CAAX,EAAcA,CAAC,EAAf,EAAmB;AACjBsiB,MAAAA,GAAG,CAACplB,MAAJ,CAAWsnI,IAAI,CAACxkI,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBwkI,IAAI,CAACxkI,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;AACD,KAAA;;AAEDsiB,IAAAA,GAAG,CAACjjB,SAAJ,EAAA,CAAA;;IAEA,OAAOW,CAAC,GAAGwkI,IAAI,CAACllI,MAAhB,EAAwBU,CAAC,EAAzB,EAA6B;AAC3BsiB,MAAAA,GAAG,CAACxlB,MAAJ,CAAW0nI,IAAI,CAACxkI,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBwkI,IAAI,CAACxkI,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;MACAA,CAAC,EAAA,CAAA;AACDsiB,MAAAA,GAAG,CAACplB,MAAJ,CAAWsnI,IAAI,CAACxkI,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBwkI,IAAI,CAACxkI,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;AACD,KAAA;GAhBH,CAAA;;AAmBA,EAAA,OAAOiuI,OAAP,CAAA;AACD,CAlCD,CAkCEp8H,IAlCF,CAFA,CAAA;;AAsCA,SAASi8H,iBAAT,CAAyB5kF,UAAzB,EAAqC14B,IAArC,EAA2CC,SAA3C,EAAsDo9G,QAAtD,EAAgE16G,MAAhE,EAAwE;AACtE,EAAA,IAAIqxG,IAAI,GAAGt7E,UAAU,CAACs7E,IAAtB,CAAA;AACA,EAAA,IAAIjjI,EAAE,GAAG,IAAI0sI,OAAJ,CAAY;AACnBrmI,IAAAA,KAAK,EAAE;MACL0G,MAAM,EAAE6kB,MAAM,GAAG+6G,WAAS,CAAC1J,IAAD,EAAOqJ,QAAP,EAAiB3kF,UAAjB,CAAZ,GAA2Cs7E,IAAAA;AADpD,KAAA;AADY,GAAZ,CAAT,CAAA;EAKAuJ,mBAAmB,CAAC7kF,UAAD,EAAa3nD,EAAb,EAAiBivB,IAAjB,EAAuBC,SAAvB,EAAkC0C,MAAlC,CAAnB,CAAA;AACA,EAAA,OAAO5xB,EAAP,CAAA;AACD,CAAA;;AAED,SAASwsI,mBAAT,CAA6B7kF,UAA7B,EAAyC3nD,EAAzC,EAA6CivB,IAA7C,EAAmDC,SAAnD,EAA8D0C,MAA9D,EAAsE;AACpE,EAAA,IAAIH,WAAW,GAAGxC,IAAI,CAACyC,SAAvB,CAAA;EACA,IAAIk7G,YAAY,GAAG96G,OAAO,CAACF,MAAM,GAAG,WAAH,GAAiB,aAAxB,CAA1B,CAAA;EACAg7G,YAAY,CAAC5sI,EAAD,EAAK;AACfqG,IAAAA,KAAK,EAAE;MACL0G,MAAM,EAAE46C,UAAU,CAACs7E,IAAAA;AADd,KAAA;AADQ,GAAL,EAITxxG,WAJS,EAIIvC,SAJJ,CAAZ,CAAA;EAKAlvB,EAAE,CAAC0zB,QAAH,CAAYzE,IAAI,CAACuC,aAAL,CAAmBtC,SAAnB,EAA8B,OAA9B,CAAZ,CAAA,CAAA;AACAlvB,EAAAA,EAAE,CAACX,KAAH,CAASmB,aAAT,GAAyB,IAAzB,CAAA;EACAR,EAAE,CAACmwB,EAAH,GAAQ,GAAR,CAAA;AACA,EAAA,IAAI0C,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkB5D,SAAlB,CAAhB,CAAA;AACA,EAAA,IAAI6D,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAApB,CAAA;AACA2X,EAAAA,wBAAwB,CAAC3qC,EAAD,EAAK6yB,SAAL,CAAxB,CAAA;EACAkC,mBAAmB,CAAC/0B,EAAD,EAAK+yB,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAL,EAAiCH,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAjC,EAAiEH,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAjE,CAAnB,CAAA;AACD,CAAA;;AAED,SAASy5G,WAAT,CAAmB5/H,MAAnB,EAA2B+rB,GAA3B,EAAgC6uB,UAAhC,EAA4C;EAC1C,OAAOllB,GAAA,CAAW11B,MAAX,EAAmB,UAAU4oB,KAAV,EAAiB;AACzCA,IAAAA,KAAK,GAAGA,KAAK,CAAC7R,KAAN,EAAR,CAAA;AACA6R,IAAAA,KAAK,CAACmD,GAAD,CAAL,GAAa6uB,UAAU,CAACklF,YAAxB,CAAA;AACA,IAAA,OAAOl3G,KAAP,CAAA;AACD,GAJM,CAAP,CAAA;AAKD;;ACvMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASm3G,aAAT,CAAuBhkG,OAAvB,EAAgCxxB,GAAhC,EAAqC;;AC1CpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA,IAAI7P,MAAI,GAAGg7B,MAAX,CAAA;AACe,SAASsqG,aAAT,CAAuBjkG,OAAvB,EAAgC;AAC7C,EAAA,IAAI+gG,WAAW,GAAGmD,iBAAiB,CAAClkG,OAAD,CAAnC,CAAA;AACArhC,EAAAA,MAAI,CAACoiI,WAAD,EAAc,UAAUoD,SAAV,EAAqB;AACrC,IAAA,IAAIlnE,YAAY,GAAGknE,SAAS,CAAClnE,YAA7B,CAAA;;AAEA,IAAA,IAAI,CAACA,YAAY,CAAChoE,MAAlB,EAA0B;AACxB,MAAA,OAAA;AACD,KAAA;;IAEDmvI,aAAa,CAACD,SAAD,CAAb,CAAA;AACAxlI,IAAAA,MAAI,CAACs+D,YAAD,EAAe,UAAUt0C,WAAV,EAAuBhH,GAAvB,EAA4B;AAC7C0iH,MAAAA,kBAAkB,CAAC17G,WAAD,EAAcw7G,SAAS,CAACG,aAAV,CAAwB3iH,GAAxB,CAAd,EAA4CwiH,SAAS,CAACI,YAAV,CAAuB5iH,GAAvB,CAA5C,CAAlB,CAAA;AACD,KAFG,CAAJ,CAAA;AAGD,GAXG,CAAJ,CAAA;AAYD,CAAA;AACD;AACA;AACA;;AAEA,SAASuiH,iBAAT,CAA2BlkG,OAA3B,EAAoC;EAClC,IAAIg7B,MAAM,GAAG,EAAb,CAAA;EACA,IAAIwpE,QAAQ,GAAG,EAAf,CAAA;AACAxkG,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,SAAzB,EAAoC,UAAU/tB,WAAV,EAAuB;AACzD,IAAA,IAAI8G,QAAQ,GAAG9G,WAAW,CAAC+G,WAAZ,EAAf,CAAA;IACA,IAAI/N,GAAG,GAAGgY,OAAA,CAAe6qG,QAAf,EAAyB/0G,QAAzB,CAAV,CAAA;;IAEA,IAAI9N,GAAG,GAAG,CAAV,EAAa;MACXA,GAAG,GAAG6iH,QAAQ,CAACvvI,MAAf,CAAA;AACAuvI,MAAAA,QAAQ,CAAC7iH,GAAD,CAAR,GAAgB8N,QAAhB,CAAA;MACAurC,MAAM,CAACr5C,GAAD,CAAN,GAAc;AACZia,QAAAA,IAAI,EAAEnM,QADM;AAEZwtC,QAAAA,YAAY,EAAE,EAAA;OAFhB,CAAA;AAID,KAAA;;IAEDjC,MAAM,CAACr5C,GAAD,CAAN,CAAYs7C,YAAZ,CAAyBjnE,IAAzB,CAA8B2yB,WAA9B,CAAA,CAAA;GAbF,CAAA,CAAA;AAeA,EAAA,OAAOqyC,MAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASopE,aAAT,CAAuBD,SAAvB,EAAkC;AAChC,EAAA,IAAI10G,QAAQ,GAAG00G,SAAS,CAACvoG,IAAzB,CAAA;AACA,EAAA,IAAIqhC,YAAY,GAAGknE,SAAS,CAAClnE,YAA7B,CAAA;AACA,EAAA,IAAIwnE,WAAW,GAAGxnE,YAAY,CAAChoE,MAA/B,CAAA;AACA,EAAA,IAAIsvI,YAAY,GAAGJ,SAAS,CAACI,YAAV,GAAyB,EAA5C,CAAA;AACA,EAAA,IAAID,aAAa,GAAGH,SAAS,CAACG,aAAV,GAA0B,EAA9C,CAAA;EACA,IAAII,SAAS,GAAG,EAAhB,CAAA;AACA,EAAA,IAAIC,SAAJ,CAAA;;AAEA,EAAA,IAAIl1G,QAAQ,CAACzqB,IAAT,KAAkB,UAAtB,EAAkC;AAChC2/H,IAAAA,SAAS,GAAGl1G,QAAQ,CAACm1G,YAAT,EAAZ,CAAA;AACD,GAFD,MAEO;IACL,IAAIC,cAAc,GAAG,CAArB,CAAA;AACAlmI,IAAAA,MAAI,CAACs+D,YAAD,EAAe,UAAUt0C,WAAV,EAAuB;AACxCk8G,MAAAA,cAAc,GAAGpzI,IAAI,CAAC0iB,GAAL,CAAS0wH,cAAT,EAAyBl8G,WAAW,CAAC3E,OAAZ,EAAsB6V,CAAAA,KAAtB,EAAzB,CAAjB,CAAA;AACD,KAFG,CAAJ,CAAA;AAGA,IAAA,IAAI9I,MAAM,GAAGtB,QAAQ,CAACuB,SAAT,EAAb,CAAA;AACA2zG,IAAAA,SAAS,GAAGlzI,IAAI,CAACyC,GAAL,CAAS68B,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAA3B,IAAkC8zG,cAA9C,CAAA;AACD,GAAA;;AAEDlmI,EAAAA,MAAI,CAACs+D,YAAD,EAAe,UAAUt0C,WAAV,EAAuB;AACxC,IAAA,IAAIm8G,aAAa,GAAGn8G,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,CAApB,CAAA;;AAEA,IAAA,IAAI,CAACuP,SAAA,CAAemrG,aAAf,CAAL,EAAoC;AAClCA,MAAAA,aAAa,GAAG,CAACA,aAAD,EAAgBA,aAAhB,CAAhB,CAAA;AACD,KAAA;;IAEDJ,SAAS,CAAC1uI,IAAV,CAAe,CAACwgD,YAAY,CAACsuF,aAAa,CAAC,CAAD,CAAd,EAAmBH,SAAnB,CAAZ,IAA6C,CAA9C,EAAiDnuF,YAAY,CAACsuF,aAAa,CAAC,CAAD,CAAd,EAAmBH,SAAnB,CAAZ,IAA6C,CAA9F,CAAf,CAAA,CAAA;AACD,GARG,CAAJ,CAAA;AASA,EAAA,IAAItqF,cAAc,GAAGsqF,SAAS,GAAG,GAAZ,GAAkB,CAAvC,CAAA;AACA,EAAA,IAAII,MAAM,GAAG1qF,cAAc,GAAGoqF,WAAjB,GAA+B,GAA5C,CAAA;AACA,EAAA,IAAIpB,QAAQ,GAAG,CAAChpF,cAAc,GAAG0qF,MAAM,IAAIN,WAAW,GAAG,CAAlB,CAAxB,IAAgDA,WAA/D,CAAA;EACA,IAAIt1E,IAAI,GAAGk0E,QAAQ,GAAG,CAAX,GAAehpF,cAAc,GAAG,CAA3C,CAAA;AACA17C,EAAAA,MAAI,CAACs+D,YAAD,EAAe,UAAUt0C,WAAV,EAAuBhH,GAAvB,EAA4B;IAC7C2iH,aAAa,CAACtuI,IAAd,CAAmBm5D,IAAnB,CAAA,CAAA;IACAA,IAAI,IAAI41E,MAAM,GAAG1B,QAAjB,CAAA;AACAkB,IAAAA,YAAY,CAACvuI,IAAb,CAAkBvE,IAAI,CAAC8iC,GAAL,CAAS9iC,IAAI,CAAC0iB,GAAL,CAASkvH,QAAT,EAAmBqB,SAAS,CAAC/iH,GAAD,CAAT,CAAe,CAAf,CAAnB,CAAT,EAAgD+iH,SAAS,CAAC/iH,GAAD,CAAT,CAAe,CAAf,CAAhD,CAAlB,CAAA,CAAA;AACD,GAJG,CAAJ,CAAA;AAKD,CAAA;AACD;AACA;AACA;;;AAGA,SAAS0iH,kBAAT,CAA4B17G,WAA5B,EAAyChf,MAAzC,EAAiD05H,QAAjD,EAA2D;AACzD,EAAA,IAAItgH,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,EAAA,IAAImD,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,EAAA,IAAIghH,SAAS,GAAG3B,QAAQ,GAAG,CAA3B,CAAA;AACA,EAAA,IAAI4B,OAAO,GAAGt8G,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAA,KAA8B,YAA9B,GAA6C,CAA7C,GAAiD,CAA/D,CAAA;EACA,IAAI86G,OAAO,GAAG,CAAA,GAAID,OAAlB,CAAA;AACA,EAAA,IAAI1C,SAAS,GAAG,CAAC,GAAD,EAAM,GAAN,CAAhB,CAAA;EACA,IAAI4C,IAAI,GAAGh/G,IAAI,CAACgK,YAAL,CAAkBoyG,SAAS,CAAC0C,OAAD,CAA3B,CAAX,CAAA;EACA,IAAIG,KAAK,GAAGj/G,IAAI,CAACG,gBAAL,CAAsBi8G,SAAS,CAAC2C,OAAD,CAA/B,CAAZ,CAAA;;EAEA,IAAIC,IAAI,IAAI,IAAR,IAAgBC,KAAK,CAACnwI,MAAN,GAAe,CAAnC,EAAsC;AACpC,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,KAAK,IAAImxB,SAAS,GAAG,CAArB,EAAwBA,SAAS,GAAGD,IAAI,CAAC0T,KAAL,EAApC,EAAkDzT,SAAS,EAA3D,EAA+D;IAC7D,IAAIi/G,UAAU,GAAGl/G,IAAI,CAACiE,GAAL,CAAS+6G,IAAT,EAAe/+G,SAAf,CAAjB,CAAA;AACA,IAAA,IAAIk/G,MAAM,GAAGC,QAAQ,CAACF,UAAD,EAAaD,KAAK,CAAC,CAAD,CAAlB,EAAuBh/G,SAAvB,CAArB,CAAA;AACA,IAAA,IAAIo/G,IAAI,GAAGD,QAAQ,CAACF,UAAD,EAAaD,KAAK,CAAC,CAAD,CAAlB,EAAuBh/G,SAAvB,CAAnB,CAAA;AACA,IAAA,IAAIq/G,IAAI,GAAGF,QAAQ,CAACF,UAAD,EAAaD,KAAK,CAAC,CAAD,CAAlB,EAAuBh/G,SAAvB,CAAnB,CAAA;AACA,IAAA,IAAIs/G,IAAI,GAAGH,QAAQ,CAACF,UAAD,EAAaD,KAAK,CAAC,CAAD,CAAlB,EAAuBh/G,SAAvB,CAAnB,CAAA;AACA,IAAA,IAAIu/G,IAAI,GAAGJ,QAAQ,CAACF,UAAD,EAAaD,KAAK,CAAC,CAAD,CAAlB,EAAuBh/G,SAAvB,CAAnB,CAAA;IACA,IAAI+zG,IAAI,GAAG,EAAX,CAAA;AACAyL,IAAAA,UAAU,CAACzL,IAAD,EAAOsL,IAAP,EAAa,KAAb,CAAV,CAAA;AACAG,IAAAA,UAAU,CAACzL,IAAD,EAAOuL,IAAP,EAAa,IAAb,CAAV,CAAA;IACAvL,IAAI,CAACnkI,IAAL,CAAUwvI,IAAV,EAAgBC,IAAhB,EAAsBE,IAAtB,EAA4BD,IAA5B,CAAA,CAAA;AACAG,IAAAA,UAAU,CAAC1L,IAAD,EAAOqL,IAAP,CAAV,CAAA;AACAK,IAAAA,UAAU,CAAC1L,IAAD,EAAOwL,IAAP,CAAV,CAAA;AACAE,IAAAA,UAAU,CAAC1L,IAAD,EAAOmL,MAAP,CAAV,CAAA;AACAn/G,IAAAA,IAAI,CAACogB,aAAL,CAAmBngB,SAAnB,EAA8B;AAC5B29G,MAAAA,YAAY,EAAEuB,MAAM,CAACJ,OAAD,CADQ;AAE5B/K,MAAAA,IAAI,EAAEA,IAAAA;KAFR,CAAA,CAAA;AAID,GAAA;;AAED,EAAA,SAASoL,QAAT,CAAkBF,UAAlB,EAA8Br1G,GAA9B,EAAmC5J,SAAnC,EAA8C;IAC5C,IAAIvwB,GAAG,GAAGswB,IAAI,CAACiE,GAAL,CAAS4F,GAAT,EAAc5J,SAAd,CAAV,CAAA;IACA,IAAIzxB,CAAC,GAAG,EAAR,CAAA;AACAA,IAAAA,CAAC,CAACswI,OAAD,CAAD,GAAaI,UAAb,CAAA;AACA1wI,IAAAA,CAAC,CAACuwI,OAAD,CAAD,GAAarvI,GAAb,CAAA;AACA,IAAA,IAAIg3B,KAAJ,CAAA;;IAEA,IAAI/2B,KAAK,CAACuvI,UAAD,CAAL,IAAqBvvI,KAAK,CAACD,GAAD,CAA9B,EAAqC;AACnCg3B,MAAAA,KAAK,GAAG,CAACuE,GAAD,EAAMA,GAAN,CAAR,CAAA;AACD,KAFD,MAEO;AACLvE,MAAAA,KAAK,GAAG9J,QAAQ,CAACuO,WAAT,CAAqB38B,CAArB,CAAR,CAAA;AACAk4B,MAAAA,KAAK,CAACo4G,OAAD,CAAL,IAAkBt7H,MAAlB,CAAA;AACD,KAAA;;AAED,IAAA,OAAOkjB,KAAP,CAAA;AACD,GAAA;;AAED,EAAA,SAAS+4G,UAAT,CAAoBzL,IAApB,EAA0BttG,KAA1B,EAAiCjN,KAAjC,EAAwC;AACtC,IAAA,IAAIkmH,MAAM,GAAGj5G,KAAK,CAAC7R,KAAN,EAAb,CAAA;AACA,IAAA,IAAI+qH,MAAM,GAAGl5G,KAAK,CAAC7R,KAAN,EAAb,CAAA;AACA8qH,IAAAA,MAAM,CAACb,OAAD,CAAN,IAAmBD,SAAnB,CAAA;AACAe,IAAAA,MAAM,CAACd,OAAD,CAAN,IAAmBD,SAAnB,CAAA;AACAplH,IAAAA,KAAK,GAAGu6G,IAAI,CAACnkI,IAAL,CAAU8vI,MAAV,EAAkBC,MAAlB,CAAH,GAA+B5L,IAAI,CAACnkI,IAAL,CAAU+vI,MAAV,EAAkBD,MAAlB,CAApC,CAAA;AACD,GAAA;;AAED,EAAA,SAASD,UAAT,CAAoB1L,IAApB,EAA0B6L,SAA1B,EAAqC;AACnC,IAAA,IAAItkD,IAAI,GAAGskD,SAAS,CAAChrH,KAAV,EAAX,CAAA;AACA,IAAA,IAAIirH,EAAE,GAAGD,SAAS,CAAChrH,KAAV,EAAT,CAAA;AACA0mE,IAAAA,IAAI,CAACujD,OAAD,CAAJ,IAAiBD,SAAjB,CAAA;AACAiB,IAAAA,EAAE,CAAChB,OAAD,CAAF,IAAeD,SAAf,CAAA;AACA7K,IAAAA,IAAI,CAACnkI,IAAL,CAAU0rF,IAAV,EAAgBukD,EAAhB,CAAA,CAAA;AACD,GAAA;AACF;;ACvMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,SAASC,kBAAT,CAA4BpmF,OAA5B,EAAqCz8B,GAArC,EAA0C;EACvDA,GAAG,GAAGA,GAAG,IAAI,EAAb,CAAA;EACA,IAAI8iH,OAAO,GAAG,EAAd,CAAA;EACA,IAAIC,QAAQ,GAAG,EAAf,CAAA;AACA,EAAA,IAAIC,QAAQ,GAAGhjH,GAAG,CAACgjH,QAAnB,CAAA;EACA,IAAIC,UAAU,GAAGD,QAAQ,KAAK,MAAb,IAAuBA,QAAQ,KAAK,CAArD,CAAA;;AAEA,EAAA,KAAK,IAAI1wI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmqD,OAAO,CAAC7qD,MAA5B,EAAoCU,CAAC,EAArC,EAAyC;IACvC,IAAI4wI,OAAO,GAAGj6E,KAAG,CAACxM,OAAO,CAACnqD,CAAD,CAAP,CAAWqlB,KAAX,EAAD,CAAjB,CAAA;AACA,IAAA,IAAIwrH,EAAE,GAAGC,QAAQ,CAACF,OAAD,EAAU,IAAV,CAAjB,CAAA;AACA,IAAA,IAAIG,EAAE,GAAGD,QAAQ,CAACF,OAAD,EAAU,GAAV,CAAjB,CAAA;AACA,IAAA,IAAII,EAAE,GAAGF,QAAQ,CAACF,OAAD,EAAU,IAAV,CAAjB,CAAA;AACA,IAAA,IAAIhyG,GAAG,GAAGgyG,OAAO,CAAC,CAAD,CAAjB,CAAA;IACA,IAAIpyH,GAAG,GAAGoyH,OAAO,CAACA,OAAO,CAACtxI,MAAR,GAAiB,CAAlB,CAAjB,CAAA;AACA,IAAA,IAAI2xI,KAAK,GAAG,CAACP,QAAQ,IAAI,IAAZ,GAAmB,GAAnB,GAAyBA,QAA1B,KAAuCM,EAAE,GAAGH,EAA5C,CAAZ,CAAA;AACA,IAAA,IAAIK,GAAG,GAAGP,UAAU,GAAG/xG,GAAH,GAAS9iC,IAAI,CAAC0iB,GAAL,CAASogB,GAAT,EAAciyG,EAAE,GAAGI,KAAnB,CAA7B,CAAA;AACA,IAAA,IAAIE,IAAI,GAAGR,UAAU,GAAGnyH,GAAH,GAAS1iB,IAAI,CAAC8iC,GAAL,CAASpgB,GAAT,EAAcwyH,EAAE,GAAGC,KAAnB,CAA9B,CAAA;AACA,IAAA,IAAIG,iBAAiB,GAAG1jH,GAAG,CAAC0jH,iBAA5B,CAAA;IACA,IAAItvE,QAAQ,GAAGz0D,UAAU,CAAC+jI,iBAAD,CAAV,GAAgCA,iBAAiB,CAAC;AAC/D51G,MAAAA,KAAK,EAAEx7B,CAAAA;KADuD,CAAjD,GAEV4J,QAAQ,CAACwnI,iBAAD,CAAR,GAA8BA,iBAAiB,CAAC3nI,OAAlB,CAA0B,SAA1B,EAAqCzJ,CAAC,GAAG,EAAzC,CAA9B,GAA6EA,CAAC,GAAG,EAFtF,CAAA;AAGAwwI,IAAAA,OAAO,CAACnwI,IAAR,CAAa,CAACyhE,QAAD,EAAWovE,GAAX,EAAgBL,EAAhB,EAAoBE,EAApB,EAAwBC,EAAxB,EAA4BG,IAA5B,CAAb,CAAA,CAAA;;AAEA,IAAA,KAAK,IAAIjsH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0rH,OAAO,CAACtxI,MAA5B,EAAoC4lB,CAAC,EAArC,EAAyC;AACvC,MAAA,IAAIojH,QAAQ,GAAGsI,OAAO,CAAC1rH,CAAD,CAAtB,CAAA;;AAEA,MAAA,IAAIojH,QAAQ,GAAG4I,GAAX,IAAkB5I,QAAQ,GAAG6I,IAAjC,EAAuC;AACrC,QAAA,IAAIE,OAAO,GAAG,CAACvvE,QAAD,EAAWwmE,QAAX,CAAd,CAAA;QACAmI,QAAQ,CAACpwI,IAAT,CAAcgxI,OAAd,CAAA,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;EAED,OAAO;AACLb,IAAAA,OAAO,EAAEA,OADJ;AAELC,IAAAA,QAAQ,EAAEA,QAAAA;GAFZ,CAAA;AAID;;ACnGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,IAAIa,gBAAgB,GAAG;AAC5BjiI,EAAAA,IAAI,EAAE,iBADsB;AAE5BjH,EAAAA,SAAS,EAAE,SAASA,SAAT,CAAmBooC,MAAnB,EAA2B;AACpC,IAAA,IAAI+gG,QAAQ,GAAG/gG,MAAM,CAAC+gG,QAAtB,CAAA;;AAEA,IAAA,IAAIA,QAAQ,CAACC,YAAT,KAA0BC,wBAA9B,EAAwD;MACtD,IAAIz8H,MAAM,GAAG,EAAb,CAAA;;AAEA,MAAA,IAAItB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCoB,QAAAA,MAAM,GAAG08H,aAAa,CAAC,8EAAD,CAAtB,CAAA;AACD,OAAA;;MAEDC,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,KAAA;;AAED,IAAA,IAAIqwD,MAAM,GAAGkrE,kBAAkB,CAACgB,QAAQ,CAACxnF,UAAT,EAAD,EAAwBvZ,MAAM,CAACzvB,MAA/B,CAA/B,CAAA;AACA,IAAA,OAAO,CAAC;AACN6Z,MAAAA,UAAU,EAAE,CAAC,UAAD,EAAa,KAAb,EAAoB,IAApB,EAA0B,IAA1B,EAAgC,IAAhC,EAAsC,MAAtC,CADN;MAENpK,IAAI,EAAE60C,MAAM,CAACmrE,OAAAA;AAFP,KAAD,EAGJ;MACDhgH,IAAI,EAAE60C,MAAM,CAACorE,QAAAA;AADZ,KAHI,CAAP,CAAA;AAMD,GAAA;AAtB2B,CAAvB;;AC7CP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BO,SAAS/wH,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACiyB,mBAAV,CAA8B47F,kBAA9B,CAAA,CAAA;EACA7tH,SAAS,CAACgyB,iBAAV,CAA4Bi8F,WAA5B,CAAA,CAAA;EACAjuH,SAAS,CAACqyB,cAAV,CAAyBq8F,aAAzB,CAAA,CAAA;EACA1uH,SAAS,CAACmyB,cAAV,CAAyBw8F,aAAzB,CAAA,CAAA;EACA3uH,SAAS,CAACiyH,iBAAV,CAA4BN,gBAA5B,CAAA,CAAA;AACD;;ACrDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiCA,IAAIO,UAAU,GAAG,CAAC,OAAD,EAAU,aAAV,CAAjB,CAAA;;AAEA,IAAIC,eAAe;AACnB;AACA,UAAUtxH,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACqxH,eAAD,EAAkBtxH,MAAlB,CAAT,CAAA;;AAEA,EAAA,SAASsxH,eAAT,GAA2B;AACzB,IAAA,IAAIpxH,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAayiI,eAAe,CAACziI,IAA7B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDoxH,eAAe,CAACx1I,SAAhB,CAA0B8tC,MAA1B,GAAmC,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AACtE;AACA,IAAA,IAAA,CAAK8U,KAAL,CAAW0pB,cAAX,EAAA,CAFsE;;IAItE,IAAKzf,CAAAA,eAAL,GAAuB,IAAvB,CAAA;;IAEA,IAAKue,CAAAA,eAAL,CAAqBnjB,WAArB,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKqjB,YAAL,GAAoB,IAAKC,CAAAA,YAAL,CAAkBtjB,WAAlB,CAApB,GAAqD,IAAKujB,CAAAA,aAAL,CAAmBvjB,WAAnB,CAArD,CAAA;GARF,CAAA;;EAWA8+G,eAAe,CAACx1I,SAAhB,CAA0Bk6C,wBAA1B,GAAqD,UAAUxjB,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AACxF,IAAA,IAAA,CAAK49B,MAAL,EAAA,CAAA;;IAEA,IAAKN,CAAAA,eAAL,CAAqBnjB,WAArB,CAAA,CAAA;GAHF,CAAA;;AAMA8+G,EAAAA,eAAe,CAACx1I,SAAhB,CAA0Bq6C,iBAA1B,GAA8C,UAAUnG,MAAV,EAAkBxd,WAAlB,EAA+BqX,OAA/B,EAAwCxxB,GAAxC,EAA6C;IACzF,IAAK+e,CAAAA,eAAL,GAAuB,EAAvB,CAAA;AACA,IAAA,IAAA,CAAKye,YAAL,GAAoB,IAAA,CAAKO,uBAAL,CAA6BpG,MAA7B,EAAqCxd,WAArC,CAApB,GAAwE,KAAK++G,wBAAL,CAA8BvhG,MAA9B,EAAsCxd,WAAtC,CAAxE,CAAA;GAFF,CAAA;;AAKA8+G,EAAAA,eAAe,CAACx1I,SAAhB,CAA0Bo9B,YAA1B,GAAyC,UAAU/N,EAAV,EAAc;IACrD0H,gBAAA,CAAyB,IAAA,CAAKuE,eAAL,IAAwB,IAAA,CAAKjK,KAAtD,EAA6DhC,EAA7D,CAAA,CAAA;GADF,CAAA;;AAIAmmH,EAAAA,eAAe,CAACx1I,SAAhB,CAA0B65C,eAA1B,GAA4C,UAAUnjB,WAAV,EAAuB;AACjE,IAAA,IAAI8jB,WAAW,GAAG9jB,WAAW,CAACgd,eAAZ,CAA4BrxC,KAA9C,CAAA;;IAEA,IAAI,IAAA,CAAK03C,YAAL,IAAqB,IAArB,IAA6BS,WAAW,KAAK,IAAKT,CAAAA,YAAtD,EAAoE;MAClE,IAAKA,CAAAA,YAAL,GAAoBS,WAApB,CAAA;;AAEA,MAAA,IAAA,CAAKL,MAAL,EAAA,CAAA;AACD,KAAA;GAPH,CAAA;;AAUAq7F,EAAAA,eAAe,CAACx1I,SAAhB,CAA0Bi6C,aAA1B,GAA0C,UAAUvjB,WAAV,EAAuB;AAC/D,IAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAIwJ,OAAO,GAAG,IAAA,CAAKC,KAAnB,CAAA;IACA,IAAInK,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAIqkH,WAAW,GAAGxhH,IAAI,CAACwM,SAAL,CAAe,aAAf,CAAlB,CAAA;IACA,IAAIoa,SAAS,GAAGpkB,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,EAAwB,IAAxB,CAAhB,CAAA;AACA,IAAA,IAAI8Q,KAAK,GAAGvS,WAAW,CAAC3F,gBAAxB,CAAA;IACA,IAAI4hC,QAAQ,GAAG1pB,KAAK,CAACnD,OAAN,IAAiBmD,KAAK,CAACnD,OAAN,EAAhC,CAP+D;AAQ/D;;IAEA,IAAI,CAAC,IAAKtK,CAAAA,KAAV,EAAiB;AACfnK,MAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;AACD,KAAA;;IAEDf,IAAI,CAAC0H,IAAL,CAAUL,OAAV,EAAmB3J,GAAnB,CAAuB,UAAUiK,MAAV,EAAkB;AACvC,MAAA,IAAI3H,IAAI,CAAC2nB,QAAL,CAAchgB,MAAd,CAAJ,EAA2B;AACzB,QAAA,IAAI+wB,UAAU,GAAG14B,IAAI,CAACyH,aAAL,CAAmBE,MAAnB,CAAjB,CAAA;;QAEA,IAAIif,SAAS,IAAI66F,kBAAkB,CAAChjF,QAAD,EAAW/F,UAAX,CAAnC,EAA2D;AACzD,UAAA,OAAA;AACD,SAAA;;QAED,IAAI3nD,EAAE,GAAGusI,eAAe,CAAC5kF,UAAD,EAAa/wB,MAAb,EAAqB,IAArB,CAAxB,CAAA;AACA9E,QAAAA,SAAA,CAAkB9xB,EAAlB,EAAsB;AACpBqG,UAAAA,KAAK,EAAE;YACL0G,MAAM,EAAE46C,UAAU,CAACs7E,IAAAA;AADd,WAAA;SADT,EAIGxxG,WAJH,EAIgBmF,MAJhB,CAAA,CAAA;QAKA+5G,YAAY,CAAC3wI,EAAD,EAAKivB,IAAL,EAAW2H,MAAX,EAAmB65G,WAAnB,CAAZ,CAAA;QACArkH,KAAK,CAACO,GAAN,CAAU3sB,EAAV,CAAA,CAAA;AACAivB,QAAAA,IAAI,CAAC8H,gBAAL,CAAsBH,MAAtB,EAA8B52B,EAA9B,CAAA,CAAA;AACD,OAAA;AACF,KAlBD,EAkBGg3B,MAlBH,CAkBU,UAAUJ,MAAV,EAAkBK,MAAlB,EAA0B;MAClC,IAAIj3B,EAAE,GAAGs2B,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAT,CADkC;;AAGlC,MAAA,IAAI,CAAChI,IAAI,CAAC2nB,QAAL,CAAchgB,MAAd,CAAL,EAA4B;QAC1BxK,KAAK,CAAC+K,MAAN,CAAan3B,EAAb,CAAA,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAI2nD,UAAU,GAAG14B,IAAI,CAACyH,aAAL,CAAmBE,MAAnB,CAAjB,CAAA;;MAEA,IAAIif,SAAS,IAAI66F,kBAAkB,CAAChjF,QAAD,EAAW/F,UAAX,CAAnC,EAA2D;QACzDv7B,KAAK,CAAC+K,MAAN,CAAan3B,EAAb,CAAA,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;MAED,IAAI,CAACA,EAAL,EAAS;AACPA,QAAAA,EAAE,GAAGusI,eAAe,CAAC5kF,UAAD,EAAa/wB,MAAb,CAApB,CAAA;AACD,OAFD,MAEO;AACL9E,QAAAA,aAAA,CAAoB9xB,EAApB,EAAwB;AACtBqG,UAAAA,KAAK,EAAE;YACL0G,MAAM,EAAE46C,UAAU,CAACs7E,IAAAA;AADd,WAAA;SADT,EAIGxxG,WAJH,EAIgBmF,MAJhB,CAAA,CAAA;QAKA7E,YAAY,CAAC/xB,EAAD,CAAZ,CAAA;AACD,OAAA;;MAED2wI,YAAY,CAAC3wI,EAAD,EAAKivB,IAAL,EAAW2H,MAAX,EAAmB65G,WAAnB,CAAZ,CAAA;MACArkH,KAAK,CAACO,GAAN,CAAU3sB,EAAV,CAAA,CAAA;AACAivB,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBH,MAAtB,EAA8B52B,EAA9B,CAAA,CAAA;AACD,KA/CD,CA+CGm3B,CAAAA,MA/CH,CA+CU,UAAUF,MAAV,EAAkB;AAC1B,MAAA,IAAIj3B,EAAE,GAAGs2B,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAT,CAAA;AACAj3B,MAAAA,EAAE,IAAIosB,KAAK,CAAC+K,MAAN,CAAan3B,EAAb,CAAN,CAAA;AACD,KAlDD,EAkDGs3B,OAlDH,EAAA,CAAA;IAmDA,IAAKf,CAAAA,KAAL,GAAatH,IAAb,CAAA;GAjEF,CAAA;;AAoEAshH,EAAAA,eAAe,CAACx1I,SAAhB,CAA0Bg6C,YAA1B,GAAyC,UAAUtjB,WAAV,EAAuB;AAC9D,IAAA,IAAA,CAAKyjB,MAAL,EAAA,CAAA;;AAEA8C,IAAAA,WAAW,CAACvmB,WAAD,EAAc,IAAA,CAAKrF,KAAnB,CAAX,CAAA;IACA,IAAIxX,QAAQ,GAAG6c,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,EAAwB,IAAxB,CAAA,GAAgCsO,cAAc,CAAC/P,WAAW,CAAC3F,gBAAb,EAA+B,KAA/B,EAAsC2F,WAAtC,CAA9C,GAAmG,IAAlH,CAAA;;AAEA,IAAA,IAAI7c,QAAJ,EAAc;AACZ,MAAA,IAAA,CAAKwX,KAAL,CAAWzX,WAAX,CAAuBC,QAAvB,CAAA,CAAA;AACD,KAFD,MAEO;MACL,IAAKwX,CAAAA,KAAL,CAAW0pB,cAAX,EAAA,CAAA;AACD,KAAA;GAVH,CAAA;;EAaAy6F,eAAe,CAACx1I,SAAhB,CAA0By1I,wBAA1B,GAAqD,UAAUvhG,MAAV,EAAkBxd,WAAlB,EAA+B;AAClF,IAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAI2jH,WAAW,GAAGxhH,IAAI,CAACwM,SAAL,CAAe,aAAf,CAAlB,CAAA;AACA,IAAA,IAAIvM,SAAJ,CAAA;;IAEA,OAAO,CAACA,SAAS,GAAG+f,MAAM,CAAChS,IAAP,EAAb,KAA+B,IAAtC,EAA4C;AAC1C,MAAA,IAAI0qB,UAAU,GAAG14B,IAAI,CAACyH,aAAL,CAAmBxH,SAAnB,CAAjB,CAAA;AACA,MAAA,IAAIlvB,EAAE,GAAGusI,eAAe,CAAC5kF,UAAD,EAAaz4B,SAAb,CAAxB,CAAA;MACAyhH,YAAY,CAAC3wI,EAAD,EAAKivB,IAAL,EAAWC,SAAX,EAAsBuhH,WAAtB,CAAZ,CAAA;MACAzwI,EAAE,CAACyf,WAAH,GAAiB,IAAjB,CAAA;AACA,MAAA,IAAA,CAAK2M,KAAL,CAAWO,GAAX,CAAe3sB,EAAf,CAAA,CAAA;;AAEA,MAAA,IAAA,CAAKq2B,eAAL,CAAqBv3B,IAArB,CAA0BkB,EAA1B,CAAA,CAAA;AACD,KAAA;GAbH,CAAA;;EAgBAuwI,eAAe,CAACx1I,SAAhB,CAA0Bs6C,uBAA1B,GAAoD,UAAUpG,MAAV,EAAkBxd,WAAlB,EAA+B;IACjFumB,WAAW,CAACvmB,WAAD,EAAc,IAAKrF,CAAAA,KAAnB,EAA0B,IAAKiK,CAAAA,eAA/B,EAAgD,IAAhD,CAAX,CAAA;GADF,CAAA;;AAIAk6G,EAAAA,eAAe,CAACx1I,SAAhB,CAA0Bo8B,MAA1B,GAAmC,UAAU2R,OAAV,EAAmB;AACpD,IAAA,IAAA,CAAKoM,MAAL,EAAA,CAAA;GADF,CAAA;;AAIAq7F,EAAAA,eAAe,CAACx1I,SAAhB,CAA0Bm6C,MAA1B,GAAmC,YAAY;IAC7C,IAAK9oB,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;IACA,IAAKuG,CAAAA,KAAL,GAAa,IAAb,CAAA;GAFF,CAAA;;EAKAg6G,eAAe,CAACziI,IAAhB,GAAuB,aAAvB,CAAA;AACA,EAAA,OAAOyiI,eAAP,CAAA;AACD,CA9JD,CA8JEtkG,SA9JF,CAFA,CAAA;;AAkKA,IAAI2kG,kBAAkB;AACtB;AACA,YAAY;EACV,SAASA,kBAAT,GAA8B,EAAE;;AAEhC,EAAA,OAAOA,kBAAP,CAAA;AACD,CAJD,EAFA,CAAA;;AAQA,IAAIC,aAAa;AACjB;AACA,UAAU5xH,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC2xH,aAAD,EAAgB5xH,MAAhB,CAAT,CAAA;;EAEA,SAAS4xH,aAAT,CAAuBtuI,IAAvB,EAA6B;IAC3B,IAAI4c,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB7c,IAAlB,CAAA,IAA2B,IAAvC,CAAA;;IAEA4c,KAAK,CAACrR,IAAN,GAAa,sBAAb,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAED0xH,EAAAA,aAAa,CAAC91I,SAAd,CAAwBukC,eAAxB,GAA0C,YAAY;IACpD,OAAO,IAAIsxG,kBAAJ,EAAP,CAAA;GADF,CAAA;;EAIAC,aAAa,CAAC91I,SAAd,CAAwBwL,SAAxB,GAAoC,UAAUwa,GAAV,EAAe1a,KAAf,EAAsB;AACxD,IAAA,IAAI48H,IAAI,GAAG58H,KAAK,CAAC0G,MAAjB,CAAA;;IAEA,IAAI,IAAA,CAAK+jI,WAAT,EAAsB;AACpB/vH,MAAAA,GAAG,CAACxlB,MAAJ,CAAW0nI,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;AACAliH,MAAAA,GAAG,CAACplB,MAAJ,CAAWsnI,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;AACD,KAHD,MAGO;AACLliH,MAAAA,GAAG,CAACxlB,MAAJ,CAAW0nI,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;AACAliH,MAAAA,GAAG,CAACplB,MAAJ,CAAWsnI,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;AACAliH,MAAAA,GAAG,CAACplB,MAAJ,CAAWsnI,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;AACAliH,MAAAA,GAAG,CAACplB,MAAJ,CAAWsnI,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;AACAliH,MAAAA,GAAG,CAACjjB,SAAJ,EAAA,CAAA;AACAijB,MAAAA,GAAG,CAACxlB,MAAJ,CAAW0nI,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;AACAliH,MAAAA,GAAG,CAACplB,MAAJ,CAAWsnI,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;AACAliH,MAAAA,GAAG,CAACxlB,MAAJ,CAAW0nI,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;AACAliH,MAAAA,GAAG,CAACplB,MAAJ,CAAWsnI,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAX,EAAuBA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAvB,CAAA,CAAA;AACD,KAAA;GAhBH,CAAA;;AAmBA,EAAA,OAAO4N,aAAP,CAAA;AACD,CAlCD,CAkCEvgI,IAlCF,CAFA,CAAA;;AAsCA,SAASi8H,eAAT,CAAyB5kF,UAAzB,EAAqCz4B,SAArC,EAAgD0C,MAAhD,EAAwD;AACtD,EAAA,IAAIqxG,IAAI,GAAGt7E,UAAU,CAACs7E,IAAtB,CAAA;EACA,OAAO,IAAI4N,aAAJ,CAAkB;AACvBxqI,IAAAA,KAAK,EAAE;MACL0G,MAAM,EAAE6kB,MAAM,GAAG+6G,SAAS,CAAC1J,IAAD,EAAOt7E,UAAP,CAAZ,GAAiCs7E,IAAAA;KAF1B;AAIvB9yG,IAAAA,EAAE,EAAE,GAAA;AAJmB,GAAlB,CAAP,CAAA;AAMD,CAAA;;AAED,SAASugH,kBAAT,CAA4BhjF,QAA5B,EAAsC/F,UAAtC,EAAkD;EAChD,IAAI7M,OAAO,GAAG,IAAd,CAAA;;AAEA,EAAA,KAAK,IAAIr8C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkpD,UAAU,CAACs7E,IAAX,CAAgBllI,MAApC,EAA4CU,CAAC,EAA7C,EAAiD;AAC/C;IACA,IAAIivD,QAAQ,CAAC53B,OAAT,CAAiB6xB,UAAU,CAACs7E,IAAX,CAAgBxkI,CAAhB,CAAmB,CAAA,CAAnB,CAAjB,EAAwCkpD,UAAU,CAACs7E,IAAX,CAAgBxkI,CAAhB,CAAmB,CAAA,CAAnB,CAAxC,CAAJ,EAAoE;AAClEq8C,MAAAA,OAAO,GAAG,KAAV,CAAA;AACA,MAAA,MAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAOA,OAAP,CAAA;AACD,CAAA;;AAED,SAAS61F,YAAT,CAAsB3wI,EAAtB,EAA0BivB,IAA1B,EAAgCC,SAAhC,EAA2CuhH,WAA3C,EAAwD;AACtD,EAAA,IAAI59G,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkB5D,SAAlB,CAAhB,CAAA;EACAlvB,EAAE,CAAC0zB,QAAH,CAAYzE,IAAI,CAACuC,aAAL,CAAmBtC,SAAnB,EAA8B,OAA9B,CAAZ,CAAA,CAAA;AACAlvB,EAAAA,EAAE,CAACX,KAAH,CAASmB,aAAT,GAAyB,IAAzB,CAAA;EACAR,EAAE,CAAC8wI,WAAH,GAAiBL,WAAjB,CAAA;AACA9lG,EAAAA,wBAAwB,CAAC3qC,EAAD,EAAK6yB,SAAL,CAAxB,CAAA;AACD,CAAA;;AAED,SAAS85G,SAAT,CAAmB5/H,MAAnB,EAA2B46C,UAA3B,EAAuC;EACrC,OAAOllB,GAAA,CAAW11B,MAAX,EAAmB,UAAU4oB,KAAV,EAAiB;AACzCA,IAAAA,KAAK,GAAGA,KAAK,CAAC7R,KAAN,EAAR,CAAA;AACA6R,IAAAA,KAAK,CAAC,CAAD,CAAL,GAAWgyB,UAAU,CAACklF,YAAtB,CAAA;AACA,IAAA,OAAOl3G,KAAP,CAAA;AACD,GAJM,CAAP,CAAA;AAKD,CAAA;;AAED,IAAIo7G,iBAAiB;AACrB;AACA,YAAY;EACV,SAASA,iBAAT,GAA6B,EAAE;;AAE/B,EAAA,OAAOA,iBAAP,CAAA;AACD,CAJD,EAFA,CAAA;;AAQA,IAAIC,YAAY;AAChB;AACA,UAAU/xH,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC8xH,YAAD,EAAe/xH,MAAf,CAAT,CAAA;;EAEA,SAAS+xH,YAAT,CAAsBzuI,IAAtB,EAA4B;IAC1B,IAAI4c,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB7c,IAAlB,CAAA,IAA2B,IAAvC,CAAA;;IAEA4c,KAAK,CAACrR,IAAN,GAAa,qBAAb,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAED6xH,EAAAA,YAAY,CAACj2I,SAAb,CAAuBukC,eAAvB,GAAyC,YAAY;IACnD,OAAO,IAAIyxG,iBAAJ,EAAP,CAAA;GADF,CAAA;;EAIAC,YAAY,CAACj2I,SAAb,CAAuBwL,SAAvB,GAAmC,UAAUwa,GAAV,EAAe1a,KAAf,EAAsB;AACvD;AACA;AACA,IAAA,IAAI0G,MAAM,GAAG1G,KAAK,CAAC0G,MAAnB,CAAA;;IAEA,KAAK,IAAItO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsO,MAAM,CAAChP,MAA3B,GAAoC;MAClC,IAAI,IAAA,CAAKkzI,MAAL,KAAgBlkI,MAAM,CAACtO,CAAC,EAAF,CAA1B,EAAiC;AAC/B,QAAA,IAAIjD,CAAC,GAAGuR,MAAM,CAACtO,CAAC,EAAF,CAAd,CAAA;QACAsiB,GAAG,CAACxlB,MAAJ,CAAWC,CAAX,EAAcuR,MAAM,CAACtO,CAAC,EAAF,CAApB,CAAA,CAAA;QACAsiB,GAAG,CAACplB,MAAJ,CAAWH,CAAX,EAAcuR,MAAM,CAACtO,CAAC,EAAF,CAApB,CAAA,CAAA;AACD,OAJD,MAIO;AACLA,QAAAA,CAAC,IAAI,CAAL,CAAA;AACD,OAAA;AACF,KAAA;GAbH,CAAA;;AAgBA,EAAA,OAAOuyI,YAAP,CAAA;AACD,CA/BD,CA+BE1gI,IA/BF,CAFA,CAAA;;AAmCA,SAAS0nC,WAAT,CAAqBvmB,WAArB,EAAkCrF,KAAlC,EAAyCqxB,cAAzC,EAAyDh+B,WAAzD,EAAsE;AACpE,EAAA,IAAIwP,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,EAAA,IAAIokH,WAAW,GAAGjiH,IAAI,CAACwM,SAAL,CAAe,aAAf,CAAlB,CAAA;AACA,EAAA,IAAI01G,GAAG,GAAG,IAAIH,YAAJ,CAAiB;AACzB3qI,IAAAA,KAAK,EAAE;AACL0G,MAAAA,MAAM,EAAEmkI,WAAAA;KAFe;AAIzBD,IAAAA,MAAM,EAAE,CAAA;AAJiB,GAAjB,CAAV,CAAA;EAMA7kH,KAAK,CAACO,GAAN,CAAUwkH,GAAV,CAAA,CAAA;AACA,EAAA,IAAIC,GAAG,GAAG,IAAIJ,YAAJ,CAAiB;AACzB3qI,IAAAA,KAAK,EAAE;AACL0G,MAAAA,MAAM,EAAEmkI,WAAAA;KAFe;AAIzBD,IAAAA,MAAM,EAAE,CAAC,CAAA;AAJgB,GAAjB,CAAV,CAAA;EAMA7kH,KAAK,CAACO,GAAN,CAAUykH,GAAV,CAAA,CAAA;EACAC,aAAa,CAAC,CAAD,EAAIF,GAAJ,EAAS1/G,WAAT,EAAsBxC,IAAtB,CAAb,CAAA;EACAoiH,aAAa,CAAC,CAAC,CAAF,EAAKD,GAAL,EAAU3/G,WAAV,EAAuBxC,IAAvB,CAAb,CAAA;;AAEA,EAAA,IAAIxP,WAAJ,EAAiB;IACf0xH,GAAG,CAAC1xH,WAAJ,GAAkB,IAAlB,CAAA;IACA2xH,GAAG,CAAC3xH,WAAJ,GAAkB,IAAlB,CAAA;AACD,GAAA;;AAED,EAAA,IAAIg+B,cAAJ,EAAoB;AAClBA,IAAAA,cAAc,CAAC3+C,IAAf,CAAoBqyI,GAApB,EAAyBC,GAAzB,CAAA,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASC,aAAT,CAAuBna,IAAvB,EAA6Bl3H,EAA7B,EAAiCyxB,WAAjC,EAA8CxC,IAA9C,EAAoD;AAClD;AACA,EAAA,IAAIijB,WAAW,GAAGzgB,WAAW,CAACyB,GAAZ,CAAgB,CAAC,WAAD,EAAcgkG,IAAI,GAAG,CAAP,GAAW,aAAX,GAA2B,cAAzC,CAAhB,CAA6EzlG,IAAAA,WAAW,CAACyB,GAAZ,CAAgB,CAAC,WAAD,EAAcgkG,IAAI,GAAG,CAAP,GAAW,OAAX,GAAqB,QAAnC,CAAhB,CAA/F,CAFkD;AAGlD;;EAEA,IAAI9pG,SAAS,GAAGqE,WAAW,CAACuB,QAAZ,CAAqB,WAArB,CAAkCC,CAAAA,YAAlC,CAA+Cq9G,UAA/C,CAAhB,CAAA;EACAtwI,EAAE,CAAC0zB,QAAH,CAAYtG,SAAZ,CAAA,CAAA;AACAptB,EAAAA,EAAE,CAACX,KAAH,CAASC,IAAT,GAAgB,IAAhB,CAAA;AACAU,EAAAA,EAAE,CAACX,KAAH,CAASG,MAAT,GAAkB0yC,WAAlB,CAAA;AACD;;AC9XD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAIo/F,sBAAsB;AAC1B;AACA,UAAUryH,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACoyH,sBAAD,EAAyBryH,MAAzB,CAAT,CAAA;;AAEA,EAAA,SAASqyH,sBAAT,GAAkC;AAChC,IAAA,IAAInyH,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAawjI,sBAAsB,CAACxjI,IAApC,CAAA;IACAqR,KAAK,CAACysH,sBAAN,GAA+B,CAAC;AAC9BnqI,MAAAA,IAAI,EAAE,MADwB;AAE9ByqI,MAAAA,cAAc,EAAE,IAAA;AAFc,KAAD,EAG5B;AACDzqI,MAAAA,IAAI,EAAE,OADL;AAEDyqI,MAAAA,cAAc,EAAE,IAAA;AAFf,KAH4B,EAM5B;AACDzqI,MAAAA,IAAI,EAAE,QADL;AAEDyqI,MAAAA,cAAc,EAAE,IAAA;AAFf,KAN4B,EAS5B;AACDzqI,MAAAA,IAAI,EAAE,SADL;AAEDyqI,MAAAA,cAAc,EAAE,IAAA;AAFf,KAT4B,CAA/B,CAAA;AAaA,IAAA,OAAO/sH,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;AACA;;;AAGEmyH,EAAAA,sBAAsB,CAACv2I,SAAvB,CAAiCw2I,YAAjC,GAAgD,YAAY;AAC1D,IAAA,OAAO,MAAP,CAAA;GADF,CAAA;;EAIAD,sBAAsB,CAACv2I,SAAvB,CAAiC82C,aAAjC,GAAiD,UAAU3iB,SAAV,EAAqBD,IAArB,EAA2BhsB,SAA3B,EAAsC;AACrF,IAAA,IAAI0kD,UAAU,GAAG14B,IAAI,CAACyH,aAAL,CAAmBxH,SAAnB,CAAjB,CAAA;IACA,OAAOy4B,UAAU,IAAI1kD,SAAS,CAACtF,IAAV,CAAegqD,UAAU,CAAC6pF,SAA1B,CAArB,CAAA;GAFF,CAAA;;EAKAF,sBAAsB,CAACxjI,IAAvB,GAA8B,oBAA9B,CAAA;EACAwjI,sBAAsB,CAAC7jH,YAAvB,GAAsC,CAAC,OAAD,EAAU,OAAV,EAAmB,MAAnB,CAAtC,CAAA;EACA6jH,sBAAsB,CAAC5jH,aAAvB,GAAuC;AACrC;AACAzG,IAAAA,CAAC,EAAE,CAFkC;AAGrC6E,IAAAA,gBAAgB,EAAE,aAHmB;AAIrC6B,IAAAA,eAAe,EAAE,IAJoB;AAKrC;AACA;AACAgpB,IAAAA,MAAM,EAAE,IAP6B;AAQrCntB,IAAAA,IAAI,EAAE,IAR+B;AASrC4D,IAAAA,SAAS,EAAE;AACT/sB,MAAAA,KAAK,EAAE,SADE;AAEToxI,MAAAA,MAAM,EAAE,SAFC;AAGTv/F,MAAAA,WAAW,EAAE,SAHJ;AAITw/F,MAAAA,YAAY,EAAE,SAJL;AAKT;AACA;AACA/wH,MAAAA,WAAW,EAAE,CAAA;KAhBsB;AAkBrCsN,IAAAA,QAAQ,EAAE;AACR5M,MAAAA,KAAK,EAAE,IADC;AAER+L,MAAAA,SAAS,EAAE;AACTzM,QAAAA,WAAW,EAAE,CAAA;AADJ,OAAA;KApBwB;AAwBrCgxH,IAAAA,WAAW,EAAE,IAxBwB;AAyBrCC,IAAAA,WAAW,EAAE,IAzBwB;AA0BrCp0F,IAAAA,QAAQ,EAAE,IA1B2B;AA2BrCpgD,IAAAA,KAAK,EAAE,IA3B8B;AA4BrCi0C,IAAAA,cAAc,EAAE,GA5BqB;AA6BrC3iB,IAAAA,WAAW,EAAE,GA7BwB;AA8BrCkjB,IAAAA,oBAAoB,EAAE,GA9Be;AA+BrCN,IAAAA,oBAAoB,EAAE,KA/Be;AAgCrC7iB,IAAAA,eAAe,EAAE,QAhCoB;AAiCrCm8B,IAAAA,iBAAiB,EAAE,GAAA;GAjCrB,CAAA;AAmCA,EAAA,OAAO0mF,sBAAP,CAAA;AACD,CA3ED,CA2EEviH,WA3EF,CAFA,CAAA;;AA+EAq9G,KAAK,CAACkF,sBAAD,EAAyBtG,qBAAzB,EAAgD,IAAhD,CAAL;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0Be,SAAS6G,uBAAT,CAAiCjmH,MAAjC,EAAyC;AACtD,EAAA,IAAI,CAACA,MAAD,IAAW,CAAC6W,SAAA,CAAe7W,MAAM,CAAC0/C,MAAtB,CAAhB,EAA+C;AAC7C,IAAA,OAAA;AACD,GAHqD;;;EAMtD7oC,MAAA,CAAY7W,MAAM,CAAC0/C,MAAnB,EAA2B,UAAUwmE,UAAV,EAAsB;IAC/C,IAAIrvG,UAAA,CAAgBqvG,UAAhB,CAA+BA,IAAAA,UAAU,CAAChkI,IAAX,KAAoB,GAAvD,EAA4D;MAC1DgkI,UAAU,CAAChkI,IAAX,GAAkB,aAAlB,CAAA;AACD,KAAA;GAHH,CAAA,CAAA;AAKD;;ACtDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA,IAAIikI,wBAAwB,GAAG,CAAC,WAAD,EAAc,aAAd,CAA/B,CAAA;AACA,IAAIC,wBAAwB,GAAG,CAAC,WAAD,EAAc,cAAd,CAA/B,CAAA;AACA,IAAIC,kBAAkB,GAAG,CAAC,WAAD,EAAc,OAAd,CAAzB,CAAA;AACA,IAAIC,kBAAkB,GAAG,CAAC,WAAD,EAAc,QAAd,CAAzB,CAAA;AACA,IAAIC,iBAAiB,GAAG;AACtBvmG,EAAAA,UAAU,EAAE,aADU;EAEtB2C,IAAI,EAAEC,mBAAmB,EAFH;AAGtB;AACA4jG,EAAAA,gBAAgB,EAAE,IAJI;AAKtBp3I,EAAAA,KAAK,EAAE,SAAA,KAAA,CAAUy2B,WAAV,EAAuBqX,OAAvB,EAAgC;AACrC,IAAA,SAAS8iF,QAAT,CAAkBsL,IAAlB,EAAwBlgF,KAAxB,EAA+B;MAC7B,OAAOA,KAAK,CAAC9jB,GAAN,CAAUgkG,IAAI,GAAG,CAAP,GAAW+a,kBAAX,GAAgCC,kBAA1C,CAAP,CAAA;AACD,KAAA;;AAED,IAAA,SAASG,cAAT,CAAwBnb,IAAxB,EAA8BlgF,KAA9B,EAAqC;MACnC,OAAOA,KAAK,CAAC9jB,GAAN,CAAUgkG,IAAI,GAAG,CAAP,GAAW6a,wBAAX,GAAsCC,wBAAhD,CAAP,CAAA;AACD,KAPoC;;;AAUrC,IAAA,IAAIlpG,OAAO,CAACwpG,gBAAR,CAAyB7gH,WAAzB,CAAJ,EAA2C;AACzC,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI8gH,aAAa,GAAG9gH,WAAW,CAACgd,eAAZ,CAA4BrxC,KAAhD,CAAA;IACA,OAAO,CAACm1I,aAAD,IAAkB;AACvBvjG,MAAAA,QAAQ,EAAE,SAAA,QAAA,CAAUC,MAAV,EAAkBhgB,IAAlB,EAAwB;AAChC,QAAA,IAAIC,SAAJ,CAAA;;QAEA,OAAO,CAACA,SAAS,GAAG+f,MAAM,CAAChS,IAAP,EAAb,KAA+B,IAAtC,EAA4C;AAC1C,UAAA,IAAIpK,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkB5D,SAAlB,CAAhB,CAAA;UACA,IAAIgoG,IAAI,GAAGjoG,IAAI,CAACyH,aAAL,CAAmBxH,SAAnB,EAA8BgoG,IAAzC,CAAA;AACA,UAAA,IAAI73H,KAAK,GAAGwzB,SAAS,CAACI,YAAV,EAAZ,CAAA;UACA5zB,KAAK,CAACC,IAAN,GAAassH,QAAQ,CAACsL,IAAD,EAAOrkG,SAAP,CAArB,CAAA;AACAxzB,UAAAA,KAAK,CAACG,MAAN,GAAe6yI,cAAc,CAACnb,IAAD,EAAOrkG,SAAP,CAAd,IAAmCxzB,KAAK,CAACC,IAAxD,CAAA;UACA,IAAI+hG,WAAW,GAAGpyE,IAAI,CAACqyE,sBAAL,CAA4BpyE,SAA5B,EAAuC,OAAvC,CAAlB,CAAA;AACA5oB,UAAAA,MAAM,CAAC+6F,WAAD,EAAchiG,KAAd,CAAN,CAAA;AACD,SAAA;AACF,OAAA;KAbH,CAAA;AAeD,GAAA;AAnCqB,CAAxB;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BA,IAAImzI,iBAAiB,GAAG;AACtB5mG,EAAAA,UAAU,EAAE,aADU;EAEtB2C,IAAI,EAAEC,mBAAmB,EAFH;EAGtBxzC,KAAK,EAAE,SAAUy2B,KAAAA,CAAAA,WAAV,EAAuB;AAC5B,IAAA,IAAI5F,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,IAAA,IAAImD,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAI2lH,WAAW,GAAGC,oBAAoB,CAACjhH,WAAD,EAAcxC,IAAd,CAAtC,CAAA;IACA,IAAI8+G,OAAO,GAAG,CAAd,CAAA;IACA,IAAIC,OAAO,GAAG,CAAd,CAAA;AACA,IAAA,IAAI3C,SAAS,GAAG,CAAC,GAAD,EAAM,GAAN,CAAhB,CAAA;AACA,IAAA,IAAIsH,KAAK,GAAG1jH,IAAI,CAACS,iBAAL,CAAuBT,IAAI,CAACgK,YAAL,CAAkBoyG,SAAS,CAAC0C,OAAD,CAA3B,CAAvB,CAAZ,CAAA;AACA,IAAA,IAAI6E,MAAM,GAAGjzI,GAAG,CAACsvB,IAAI,CAACG,gBAAL,CAAsBi8G,SAAS,CAAC2C,OAAD,CAA/B,CAAD,EAA4C/+G,IAAI,CAACS,iBAAjD,EAAoET,IAApE,CAAhB,CAAA;AACA,IAAA,IAAI4jH,QAAQ,GAAGD,MAAM,CAAC,CAAD,CAArB,CAAA;AACA,IAAA,IAAIE,SAAS,GAAGF,MAAM,CAAC,CAAD,CAAtB,CAAA;AACA,IAAA,IAAIG,UAAU,GAAGH,MAAM,CAAC,CAAD,CAAvB,CAAA;AACA,IAAA,IAAII,WAAW,GAAGJ,MAAM,CAAC,CAAD,CAAxB,CAAA;IACA3jH,IAAI,CAACqgB,SAAL,CAAe;AACbmjG,MAAAA,WAAW,EAAEA,WADA;AAEb;MACAhC,WAAW,EAAEgC,WAAW,IAAI,GAAA;KAH9B,CAAA,CAAA;;IAMA,IAAIE,KAAK,GAAG,CAAR,IAAaC,MAAM,CAAC70I,MAAP,GAAgB,CAAjC,EAAoC;AAClC,MAAA,OAAA;AACD,KAAA;;IAED,OAAO;MACLixC,QAAQ,EAAEvd,WAAW,CAACgd,eAAZ,CAA4BrxC,KAA5B,GAAoC61I,aAApC,GAAoDC,cAAAA;KADhE,CAAA;;AAIA,IAAA,SAASA,cAAT,CAAwBjkG,MAAxB,EAAgChgB,IAAhC,EAAsC;AACpC,MAAA,IAAIC,SAAJ,CAAA;AACA,MAAA,IAAI0f,KAAK,GAAG3f,IAAI,CAAC4f,QAAL,EAAZ,CAAA;;MAEA,OAAO,CAAC3f,SAAS,GAAG+f,MAAM,CAAChS,IAAP,EAAb,KAA+B,IAAtC,EAA4C;QAC1C,IAAIkxG,UAAU,GAAGv/F,KAAK,CAAC1b,GAAN,CAAUy/G,KAAV,EAAiBzjH,SAAjB,CAAjB,CAAA;QACA,IAAIikH,OAAO,GAAGvkG,KAAK,CAAC1b,GAAN,CAAU2/G,QAAV,EAAoB3jH,SAApB,CAAd,CAAA;QACA,IAAIkkH,QAAQ,GAAGxkG,KAAK,CAAC1b,GAAN,CAAU4/G,SAAV,EAAqB5jH,SAArB,CAAf,CAAA;QACA,IAAImkH,SAAS,GAAGzkG,KAAK,CAAC1b,GAAN,CAAU6/G,UAAV,EAAsB7jH,SAAtB,CAAhB,CAAA;QACA,IAAIokH,UAAU,GAAG1kG,KAAK,CAAC1b,GAAN,CAAU8/G,WAAV,EAAuB9jH,SAAvB,CAAjB,CAAA;QACA,IAAIqkH,KAAK,GAAGh5I,IAAI,CAAC8iC,GAAL,CAAS81G,OAAT,EAAkBC,QAAlB,CAAZ,CAAA;QACA,IAAII,MAAM,GAAGj5I,IAAI,CAAC0iB,GAAL,CAASk2H,OAAT,EAAkBC,QAAlB,CAAb,CAAA;AACA,QAAA,IAAIK,UAAU,GAAGpF,QAAQ,CAACkF,KAAD,EAAQpF,UAAR,CAAzB,CAAA;AACA,QAAA,IAAIuF,WAAW,GAAGrF,QAAQ,CAACmF,MAAD,EAASrF,UAAT,CAA1B,CAAA;AACA,QAAA,IAAIwF,WAAW,GAAGtF,QAAQ,CAACgF,SAAD,EAAYlF,UAAZ,CAA1B,CAAA;AACA,QAAA,IAAIyF,YAAY,GAAGvF,QAAQ,CAACiF,UAAD,EAAanF,UAAb,CAA3B,CAAA;QACA,IAAIlL,IAAI,GAAG,EAAX,CAAA;AACAyL,QAAAA,UAAU,CAACzL,IAAD,EAAOyQ,WAAP,EAAoB,CAApB,CAAV,CAAA;AACAhF,QAAAA,UAAU,CAACzL,IAAD,EAAOwQ,UAAP,EAAmB,CAAnB,CAAV,CAAA;QACAxQ,IAAI,CAACnkI,IAAL,CAAU+0I,qBAAqB,CAACD,YAAD,CAA/B,EAA+CC,qBAAqB,CAACH,WAAD,CAApE,EAAmFG,qBAAqB,CAACF,WAAD,CAAxG,EAAuHE,qBAAqB,CAACJ,UAAD,CAA5I,CAAA,CAAA;AACAxkH,QAAAA,IAAI,CAACogB,aAAL,CAAmBngB,SAAnB,EAA8B;AAC5BgoG,UAAAA,IAAI,EAAE4c,OAAO,CAACllG,KAAD,EAAQ1f,SAAR,EAAmBikH,OAAnB,EAA4BC,QAA5B,EAAsCN,SAAtC,CADe;AAE5BjG,UAAAA,YAAY,EAAEsG,OAAO,GAAGC,QAAV,GAAqBM,WAAW,CAAC1F,OAAD,CAAhC,GAA4CyF,UAAU,CAACzF,OAAD,CAFxC;AAG5B/K,UAAAA,IAAI,EAAEA,IAHsB;AAI5BuO,UAAAA,SAAS,EAAEuC,aAAa,CAACV,SAAD,EAAYC,UAAZ,EAAwBnF,UAAxB,CAAA;SAJ1B,CAAA,CAAA;AAMD,OAAA;;AAED,MAAA,SAASE,QAAT,CAAkB1vI,GAAlB,EAAuBwvI,UAAvB,EAAmC;QACjC,IAAI1wI,CAAC,GAAG,EAAR,CAAA;AACAA,QAAAA,CAAC,CAACswI,OAAD,CAAD,GAAaI,UAAb,CAAA;AACA1wI,QAAAA,CAAC,CAACuwI,OAAD,CAAD,GAAarvI,GAAb,CAAA;QACA,OAAOC,KAAK,CAACuvI,UAAD,CAAL,IAAqBvvI,KAAK,CAACD,GAAD,CAA1B,GAAkC,CAACu7B,GAAD,EAAMA,GAAN,CAAlC,GAA+CrO,QAAQ,CAACuO,WAAT,CAAqB38B,CAArB,CAAtD,CAAA;AACD,OAAA;;AAED,MAAA,SAASixI,UAAT,CAAoBzL,IAApB,EAA0BttG,KAA1B,EAAiCjN,KAAjC,EAAwC;AACtC,QAAA,IAAIkmH,MAAM,GAAGj5G,KAAK,CAAC7R,KAAN,EAAb,CAAA;AACA,QAAA,IAAI+qH,MAAM,GAAGl5G,KAAK,CAAC7R,KAAN,EAAb,CAAA;AACA8qH,QAAAA,MAAM,CAACb,OAAD,CAAN,GAAkB1vE,gBAAgB,CAACuwE,MAAM,CAACb,OAAD,CAAN,GAAkB0E,WAAW,GAAG,CAAjC,EAAoC,CAApC,EAAuC,KAAvC,CAAlC,CAAA;AACA5D,QAAAA,MAAM,CAACd,OAAD,CAAN,GAAkB1vE,gBAAgB,CAACwwE,MAAM,CAACd,OAAD,CAAN,GAAkB0E,WAAW,GAAG,CAAjC,EAAoC,CAApC,EAAuC,IAAvC,CAAlC,CAAA;AACA/pH,QAAAA,KAAK,GAAGu6G,IAAI,CAACnkI,IAAL,CAAU8vI,MAAV,EAAkBC,MAAlB,CAAH,GAA+B5L,IAAI,CAACnkI,IAAL,CAAU+vI,MAAV,EAAkBD,MAAlB,CAApC,CAAA;AACD,OAAA;;AAED,MAAA,SAASmF,aAAT,CAAuBV,SAAvB,EAAkCC,UAAlC,EAA8CnF,UAA9C,EAA0D;AACxD,QAAA,IAAI6F,IAAI,GAAG3F,QAAQ,CAACgF,SAAD,EAAYlF,UAAZ,CAAnB,CAAA;AACA,QAAA,IAAI8F,IAAI,GAAG5F,QAAQ,CAACiF,UAAD,EAAanF,UAAb,CAAnB,CAAA;AACA6F,QAAAA,IAAI,CAACjG,OAAD,CAAJ,IAAiB0E,WAAW,GAAG,CAA/B,CAAA;AACAwB,QAAAA,IAAI,CAAClG,OAAD,CAAJ,IAAiB0E,WAAW,GAAG,CAA/B,CAAA;QACA,OAAO;AACLj3I,UAAAA,CAAC,EAAEw4I,IAAI,CAAC,CAAD,CADF;AAELv4I,UAAAA,CAAC,EAAEu4I,IAAI,CAAC,CAAD,CAFF;AAGLxvI,UAAAA,KAAK,EAAEwpI,OAAO,GAAGyE,WAAH,GAAiBwB,IAAI,CAAC,CAAD,CAAJ,GAAUD,IAAI,CAAC,CAAD,CAHxC;AAILvvI,UAAAA,MAAM,EAAEupI,OAAO,GAAGiG,IAAI,CAAC,CAAD,CAAJ,GAAUD,IAAI,CAAC,CAAD,CAAjB,GAAuBvB,WAAAA;SAJxC,CAAA;AAMD,OAAA;;MAED,SAASoB,qBAAT,CAA+Bl+G,KAA/B,EAAsC;AACpCA,QAAAA,KAAK,CAACo4G,OAAD,CAAL,GAAiB1vE,gBAAgB,CAAC1oC,KAAK,CAACo4G,OAAD,CAAN,EAAiB,CAAjB,CAAjC,CAAA;AACA,QAAA,OAAOp4G,KAAP,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,SAASs9G,aAAT,CAAuBhkG,MAAvB,EAA+BhgB,IAA/B,EAAqC;AACnC;MACA,IAAIliB,MAAM,GAAG0vB,kBAAkB,CAACwS,MAAM,CAACtM,KAAP,GAAe,CAAhB,CAA/B,CAAA;MACA,IAAIlwB,MAAM,GAAG,CAAb,CAAA;AACA,MAAA,IAAIkjB,KAAJ,CAAA;MACA,IAAIwZ,KAAK,GAAG,EAAZ,CAAA;MACA,IAAIC,MAAM,GAAG,EAAb,CAAA;AACA,MAAA,IAAIlgB,SAAJ,CAAA;AACA,MAAA,IAAI0f,KAAK,GAAG3f,IAAI,CAAC4f,QAAL,EAAZ,CAAA;;MAEA,OAAO,CAAC3f,SAAS,GAAG+f,MAAM,CAAChS,IAAP,EAAb,KAA+B,IAAtC,EAA4C;QAC1C,IAAIkxG,UAAU,GAAGv/F,KAAK,CAAC1b,GAAN,CAAUy/G,KAAV,EAAiBzjH,SAAjB,CAAjB,CAAA;QACA,IAAIikH,OAAO,GAAGvkG,KAAK,CAAC1b,GAAN,CAAU2/G,QAAV,EAAoB3jH,SAApB,CAAd,CAAA;QACA,IAAIkkH,QAAQ,GAAGxkG,KAAK,CAAC1b,GAAN,CAAU4/G,SAAV,EAAqB5jH,SAArB,CAAf,CAAA;QACA,IAAImkH,SAAS,GAAGzkG,KAAK,CAAC1b,GAAN,CAAU6/G,UAAV,EAAsB7jH,SAAtB,CAAhB,CAAA;QACA,IAAIokH,UAAU,GAAG1kG,KAAK,CAAC1b,GAAN,CAAU8/G,WAAV,EAAuB9jH,SAAvB,CAAjB,CAAA;;AAEA,QAAA,IAAItwB,KAAK,CAACuvI,UAAD,CAAL,IAAqBvvI,KAAK,CAACy0I,SAAD,CAA1B,IAAyCz0I,KAAK,CAAC00I,UAAD,CAAlD,EAAgE;AAC9DvmI,UAAAA,MAAM,CAAC0F,MAAM,EAAP,CAAN,GAAmBynB,GAAnB,CAAA;AACAznB,UAAAA,MAAM,IAAI,CAAV,CAAA;AACA,UAAA,SAAA;AACD,SAAA;;AAED1F,QAAAA,MAAM,CAAC0F,MAAM,EAAP,CAAN,GAAmBqhI,OAAO,CAACllG,KAAD,EAAQ1f,SAAR,EAAmBikH,OAAnB,EAA4BC,QAA5B,EAAsCN,SAAtC,CAA1B,CAAA;AACA3jG,QAAAA,KAAK,CAAC4+F,OAAD,CAAL,GAAiBI,UAAjB,CAAA;AACAh/F,QAAAA,KAAK,CAAC6+F,OAAD,CAAL,GAAiBqF,SAAjB,CAAA;QACA19G,KAAK,GAAG9J,QAAQ,CAACuO,WAAT,CAAqB+U,KAArB,EAA4B,IAA5B,EAAkCC,MAAlC,CAAR,CAAA;AACAriC,QAAAA,MAAM,CAAC0F,MAAM,EAAP,CAAN,GAAmBkjB,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAcuE,GAAtC,CAAA;AACAntB,QAAAA,MAAM,CAAC0F,MAAM,EAAP,CAAN,GAAmBkjB,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAcuE,GAAtC,CAAA;AACAiV,QAAAA,KAAK,CAAC6+F,OAAD,CAAL,GAAiBsF,UAAjB,CAAA;QACA39G,KAAK,GAAG9J,QAAQ,CAACuO,WAAT,CAAqB+U,KAArB,EAA4B,IAA5B,EAAkCC,MAAlC,CAAR,CAAA;AACAriC,QAAAA,MAAM,CAAC0F,MAAM,EAAP,CAAN,GAAmBkjB,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAcuE,GAAtC,CAAA;AACD,OAAA;;AAEDjL,MAAAA,IAAI,CAACqgB,SAAL,CAAe,aAAf,EAA8BviC,MAA9B,CAAA,CAAA;AACD,KAAA;AACF,GAAA;AAhIqB,CAAxB,CAAA;;AAmIA,SAAS+mI,OAAT,CAAiBllG,KAAjB,EAAwB1f,SAAxB,EAAmCikH,OAAnC,EAA4CC,QAA5C,EAAsDN,SAAtD,EAAiE;AAC/D,EAAA,IAAI5b,IAAJ,CAAA;;EAEA,IAAIic,OAAO,GAAGC,QAAd,EAAwB;IACtBlc,IAAI,GAAG,CAAC,CAAR,CAAA;AACD,GAFD,MAEO,IAAIic,OAAO,GAAGC,QAAd,EAAwB;AAC7Blc,IAAAA,IAAI,GAAG,CAAP,CAAA;AACD,GAFM,MAEA;AACLA,IAAAA,IAAI,GAAGhoG,SAAS,GAAG,CAAZ;AAAA,MACL0f,KAAK,CAAC1b,GAAN,CAAU4/G,SAAV,EAAqB5jH,SAAS,GAAG,CAAjC,CAAA,IAAuCkkH,QAAvC,GAAkD,CAAlD,GAAsD,CAAC,CADlD;IAEP,CAFA,CAAA;AAGD,GAAA;;AAED,EAAA,OAAOlc,IAAP,CAAA;AACD,CAAA;;AAED,SAASwb,oBAAT,CAA8BjhH,WAA9B,EAA2CxC,IAA3C,EAAiD;AAC/C,EAAA,IAAIsJ,QAAQ,GAAG9G,WAAW,CAAC+G,WAAZ,EAAf,CAAA;AACA,EAAA,IAAIqB,MAAJ,CAAA;AACA,EAAA,IAAI4zG,SAAS,GAAGl1G,QAAQ,CAACzqB,IAAT,KAAkB,UAAlB,GAA+ByqB,QAAQ,CAACm1G,YAAT,EAA/B,IAA0D7zG,MAAM,GAAGtB,QAAQ,CAACuB,SAAT,EAAT,EAA+Bv/B,IAAI,CAACyC,GAAL,CAAS68B,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAA3B,CAAA,GAAkC5K,IAAI,CAAC0T,KAAL,EAA3H,CAAhB,CAAA;AACA,EAAA,IAAIgvG,WAAW,GAAGryF,YAAY,CAACptC,SAAS,CAACuf,WAAW,CAACyB,GAAZ,CAAgB,aAAhB,CAAD,EAAiCu6G,SAAjC,CAAV,EAAuDA,SAAvD,CAA9B,CAAA;AACA,EAAA,IAAImE,WAAW,GAAGtyF,YAAY,CAACptC,SAAS,CAACuf,WAAW,CAACyB,GAAZ,CAAgB,aAAhB,CAAD,EAAiC,CAAjC,CAAV,EAA+Cu6G,SAA/C,CAA9B,CAAA;AACA,EAAA,IAAIjwF,QAAQ,GAAG/rB,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,CAAf,CAAA;EACA,OAAOsqB,QAAQ,IAAI,IAAZ,GAAmB8B,YAAY,CAAC9B,QAAD,EAAWiwF,SAAX,CAA/B;AAAA,IACLlzI,IAAI,CAAC0iB,GAAL,CAAS1iB,IAAI,CAAC8iC,GAAL,CAASowG,SAAS,GAAG,CAArB,EAAwBkE,WAAxB,CAAT,EAA+CC,WAA/C,CADF,CAAA;AAED;;AC3MD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BO,SAASzzH,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4BmgG,eAA5B,CAAA,CAAA;EACAnyH,SAAS,CAACiyB,mBAAV,CAA8BihG,sBAA9B,CAAA,CAAA;EACAlzH,SAAS,CAACosD,oBAAV,CAA+B0pE,uBAA/B,CAAA,CAAA;EACA91H,SAAS,CAACqyB,cAAV,CAAyB0hG,iBAAzB,CAAA,CAAA;EACA/zH,SAAS,CAACmyB,cAAV,CAAyBiiG,iBAAzB,CAAA,CAAA;AACD;;ACrDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,SAAS2B,gBAAT,CAA0BC,WAA1B,EAAuCC,SAAvC,EAAkD;EAChD,IAAIh0I,KAAK,GAAGg0I,SAAS,CAACC,iBAAV,IAA+BD,SAAS,CAACh0I,KAArD,CAAA;AACA+zI,EAAAA,WAAW,CAAC7nF,SAAZ,CAAsB,UAAUgoF,UAAV,EAAsB;IAC1CA,UAAU,CAACrkH,IAAX,CAAgB;MACdjJ,CAAC,EAAEotH,SAAS,CAACptH,CADC;MAEdvH,MAAM,EAAE20H,SAAS,CAAC30H,MAFJ;AAGdrgB,MAAAA,KAAK,EAAE;QACLG,MAAM,EAAE60I,SAAS,CAACnY,SAAV,KAAwB,QAAxB,GAAmC77H,KAAnC,GAA2C,IAD9C;QAELf,IAAI,EAAE+0I,SAAS,CAACnY,SAAV,KAAwB,MAAxB,GAAiC77H,KAAjC,GAAyC,IAAA;AAF1C,OAAA;KAHT,CAAA,CAAA;GADF,CAAA,CAAA;AAUD,CAAA;;AAED,IAAIm0I,YAAY;AAChB;AACA,UAAUv1H,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACs1H,YAAD,EAAev1H,MAAf,CAAT,CAAA;;AAEA,EAAA,SAASu1H,YAAT,CAAsBvlH,IAAtB,EAA4BxE,GAA5B,EAAiC;IAC/B,IAAItL,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,KAAqB,IAAjC,CAAA;;IAEA,IAAI+N,MAAM,GAAG,IAAIiJ,MAAJ,CAAcnH,IAAd,EAAoBxE,GAApB,CAAb,CAAA;AACA,IAAA,IAAI2pH,WAAW,GAAG,IAAI/nH,OAAJ,EAAlB,CAAA;;IAEAlN,KAAK,CAACwN,GAAN,CAAUQ,MAAV,CAAA,CAAA;;IAEAhO,KAAK,CAACwN,GAAN,CAAUynH,WAAV,CAAA,CAAA;;AAEAj1H,IAAAA,KAAK,CAAC0Q,UAAN,CAAiBZ,IAAjB,EAAuBxE,GAAvB,CAAA,CAAA;;AAEA,IAAA,OAAOtL,KAAP,CAAA;AACD,GAAA;;AAEDq1H,EAAAA,YAAY,CAACz5I,SAAb,CAAuB05I,mBAAvB,GAA6C,YAAY;AACvD,IAAA,IAAA,CAAK/jH,OAAL,CAAa,CAAb,CAAA,CAAgBV,SAAhB,EAAA,CAAA;GADF,CAAA;;AAIAwkH,EAAAA,YAAY,CAACz5I,SAAb,CAAuB25I,oBAAvB,GAA8C,UAAUL,SAAV,EAAqB;AACjE,IAAA,IAAIpnH,UAAU,GAAGonH,SAAS,CAACpnH,UAA3B,CAAA;AACA,IAAA,IAAI5sB,KAAK,GAAGg0I,SAAS,CAACh0I,KAAtB,CAAA;AACA,IAAA,IAAIs0I,YAAY,GAAGN,SAAS,CAACM,YAA7B,CAAA;AACA,IAAA,IAAIP,WAAW,GAAG,IAAA,CAAK1jH,OAAL,CAAa,CAAb,CAAlB,CAAA;;IAEA,KAAK,IAAIjyB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGk2I,YAApB,EAAkCl2I,CAAC,EAAnC,EAAuC;AACrC;AACA;AACA;AACA,MAAA,IAAI81I,UAAU,GAAGhoH,cAAY,CAACU,UAAD,EAAa,CAAC,CAAd,EAAiB,CAAC,CAAlB,EAAqB,CAArB,EAAwB,CAAxB,EAA2B5sB,KAA3B,CAA7B,CAAA;MACAk0I,UAAU,CAACrkH,IAAX,CAAgB;AACd7wB,QAAAA,KAAK,EAAE;AACLmB,UAAAA,aAAa,EAAE,IAAA;SAFH;AAId2vB,QAAAA,EAAE,EAAE,EAJU;AAKdoB,QAAAA,MAAM,EAAE,IALM;AAMdzgB,QAAAA,MAAM,EAAE,GANM;AAOdC,QAAAA,MAAM,EAAE,GAAA;OAPV,CAAA,CAAA;AASA,MAAA,IAAI9H,KAAK,GAAG,CAACxK,CAAD,GAAKk2I,YAAL,GAAoBN,SAAS,CAACO,MAA9B,GAAuCP,SAAS,CAACQ,YAA7D,CAAA;AACAN,MAAAA,UAAU,CAACO,OAAX,CAAmB,EAAnB,EAAuB,IAAvB,CAA6BC,CAAAA,IAA7B,CAAkCV,SAAS,CAACO,MAA5C,EAAoD;AAClD9jI,QAAAA,MAAM,EAAEujI,SAAS,CAACW,WAAV,GAAwB,CADkB;AAElDjkI,QAAAA,MAAM,EAAEsjI,SAAS,CAACW,WAAV,GAAwB,CAAA;AAFkB,OAApD,CAGG/rI,CAAAA,KAHH,CAGSA,KAHT,EAGgByf,KAHhB,EAAA,CAAA;MAIA6rH,UAAU,CAACU,YAAX,CAAwB,IAAxB,CAAA,CAA8BF,IAA9B,CAAmCV,SAAS,CAACO,MAA7C,EAAqD;AACnD10I,QAAAA,OAAO,EAAE,CAAA;AAD0C,OAArD,CAEG+I,CAAAA,KAFH,CAESA,KAFT,EAEgByf,KAFhB,EAAA,CAAA;MAGA0rH,WAAW,CAACznH,GAAZ,CAAgB4nH,UAAhB,CAAA,CAAA;AACD,KAAA;;AAEDJ,IAAAA,gBAAgB,CAACC,WAAD,EAAcC,SAAd,CAAhB,CAAA;GA/BF,CAAA;AAiCA;AACF;AACA;;;AAGEG,EAAAA,YAAY,CAACz5I,SAAb,CAAuBm6I,qBAAvB,GAA+C,UAAUb,SAAV,EAAqB;IAClE,IAAIc,YAAY,GAAG,IAAA,CAAKC,UAAxB,CAAA;IACA,IAAIhB,WAAW,GAAG,IAAK1jH,CAAAA,OAAL,CAAa,CAAb,CAAlB,CAFkE;;IAIlE,IAAI2kH,eAAe,GAAG,CAAC,YAAD,EAAe,QAAf,EAAyB,aAAzB,EAAwC,cAAxC,CAAtB,CAAA;;AAEA,IAAA,KAAK,IAAI52I,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG42I,eAAe,CAACt3I,MAApC,EAA4CU,CAAC,EAA7C,EAAiD;AAC/C,MAAA,IAAIyC,QAAQ,GAAGm0I,eAAe,CAAC52I,CAAD,CAA9B,CAAA;;MAEA,IAAI02I,YAAY,CAACj0I,QAAD,CAAZ,KAA2BmzI,SAAS,CAACnzI,QAAD,CAAxC,EAAoD;AAClD,QAAA,IAAA,CAAKuzI,mBAAL,EAAA,CAAA;QACA,IAAKC,CAAAA,oBAAL,CAA0BL,SAA1B,CAAA,CAAA;AACA,QAAA,OAAA;AACD,OAAA;AACF,KAAA;;AAEDF,IAAAA,gBAAgB,CAACC,WAAD,EAAcC,SAAd,CAAhB,CAAA;GAhBF,CAAA;AAkBA;AACF;AACA;;;AAGEG,EAAAA,YAAY,CAACz5I,SAAb,CAAuB+1B,SAAvB,GAAmC,YAAY;IAC7CC,aAAa,CAAC,IAAD,CAAb,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEyjH,EAAAA,YAAY,CAACz5I,SAAb,CAAuBi2B,QAAvB,GAAkC,YAAY;IAC5CC,aAAa,CAAC,IAAD,CAAb,CAAA;GADF,CAAA;;AAIAujH,EAAAA,YAAY,CAACz5I,SAAb,CAAuB61B,aAAvB,GAAuC,YAAY;AACjD,IAAA,IAAIzD,MAAM,GAAG,IAAA,CAAKuD,OAAL,CAAa,CAAb,CAAb,CAAA;AACA,IAAA,OAAOvD,MAAM,IAAIA,MAAM,CAACyD,aAAP,EAAjB,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;EAGE4jH,YAAY,CAACz5I,SAAb,CAAuB80B,UAAvB,GAAoC,UAAUZ,IAAV,EAAgBxE,GAAhB,EAAqB;IACvD,IAAItL,KAAK,GAAG,IAAZ,CAAA;;AAEA,IAAA,IAAIsS,WAAW,GAAGxC,IAAI,CAACyC,SAAvB,CAAA;IACA,IAAKhB,CAAAA,OAAL,CAAa,CAAb,CAAA,CAAgBb,UAAhB,CAA2BZ,IAA3B,EAAiCxE,GAAjC,CAAA,CAAA;AACA,IAAA,IAAI2pH,WAAW,GAAG,IAAA,CAAK1jH,OAAL,CAAa,CAAb,CAAlB,CAAA;AACA,IAAA,IAAImC,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;IACA,IAAIwC,UAAU,GAAGgC,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,QAAxB,CAAjB,CAAA;AACA,IAAA,IAAI2D,UAAU,GAAGkH,mBAAmB,CAACrG,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,YAAxB,CAAD,CAApC,CAAA;IACA,IAAI8I,WAAW,GAAGtE,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,OAAxB,CAAlB,CAAA;AACA,IAAA,IAAIpqB,KAAK,GAAGkzB,WAAW,IAAIA,WAAW,CAACj0B,IAAvC,CAAA;AACA,IAAA,IAAIyzB,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAApB,CAAA;IACAohH,WAAW,CAACkB,QAAZ,CAAqBlnH,UAArB,CAAA,CAAA;AACAgmH,IAAAA,WAAW,CAACl8G,QAAZ,CAAqB,UAAUq8G,UAAV,EAAsB;AACzCA,MAAAA,UAAU,CAAC3nH,QAAX,CAAoB,MAApB,EAA4BvsB,KAA5B,CAAA,CAAA;KADF,CAAA,CAAA;AAGA,IAAA,IAAIgzB,YAAY,GAAGC,qBAAqB,CAACrE,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,cAAxB,CAAD,EAA0C2D,UAA1C,CAAxC,CAAA;;AAEA,IAAA,IAAIiF,YAAJ,EAAkB;AAChB+gH,MAAAA,WAAW,CAAC54I,CAAZ,GAAgB63B,YAAY,CAAC,CAAD,CAA5B,CAAA;AACA+gH,MAAAA,WAAW,CAAC34I,CAAZ,GAAgB43B,YAAY,CAAC,CAAD,CAA5B,CAAA;AACD,KAAA;;IAED,IAAIhG,YAAY,GAAG4B,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,cAAxB,CAAnB,CAAA;AACA2pH,IAAAA,WAAW,CAAC7mH,QAAZ,GAAuB,CAACF,YAAY,IAAI,CAAjB,IAAsB9yB,IAAI,CAACI,EAA3B,GAAgC,GAAhC,IAAuC,CAA9D,CAAA;IACA,IAAI05I,SAAS,GAAG,EAAhB,CAAA;IACAA,SAAS,CAACkB,YAAV,GAAyB9jH,WAAW,CAACyB,GAAZ,CAAgB,cAAhB,CAAzB,CAAA;AACAmhH,IAAAA,SAAS,CAACW,WAAV,GAAwBniH,SAAS,CAACK,GAAV,CAAc,CAAC,cAAD,EAAiB,OAAjB,CAAd,CAAxB,CAAA;AACAmhH,IAAAA,SAAS,CAACnY,SAAV,GAAsBrpG,SAAS,CAACK,GAAV,CAAc,CAAC,cAAD,EAAiB,WAAjB,CAAd,CAAtB,CAAA;AACAmhH,IAAAA,SAAS,CAACO,MAAV,GAAmB/hH,SAAS,CAACK,GAAV,CAAc,CAAC,cAAD,EAAiB,QAAjB,CAAd,IAA4C,IAA/D,CAAA;IACAmhH,SAAS,CAACQ,YAAV,GAAyBpqH,GAAG,GAAGwE,IAAI,CAAC0T,KAAL,EAA/B,CAAA;IACA0xG,SAAS,CAACptH,CAAV,GAAcwK,WAAW,CAAC2B,UAAZ,CAAuB,GAAvB,CAAA,IAA+B,CAA7C,CAAA;IACAihH,SAAS,CAAC30H,MAAV,GAAmB+R,WAAW,CAAC2B,UAAZ,CAAuB,QAAvB,CAAA,IAAoC,CAAvD,CAAA;IACAihH,SAAS,CAACpnH,UAAV,GAAuBA,UAAvB,CAAA;IACAonH,SAAS,CAACh0I,KAAV,GAAkBA,KAAlB,CAAA;AACAg0I,IAAAA,SAAS,CAACC,iBAAV,GAA8BzhH,SAAS,CAACK,GAAV,CAAc,CAAC,cAAD,EAAiB,OAAjB,CAAd,CAA9B,CAAA;AACAmhH,IAAAA,SAAS,CAACM,YAAV,GAAyB9hH,SAAS,CAACK,GAAV,CAAc,CAAC,cAAD,EAAiB,QAAjB,CAAd,CAAzB,CAAA;;AAEA,IAAA,IAAImhH,SAAS,CAACkB,YAAV,KAA2B,QAA/B,EAAyC;AACvC,MAAA,IAAA,CAAKH,UAAL,GAAkB,IAAKF,CAAAA,qBAAL,CAA2Bb,SAA3B,CAAlB,GAA0D,IAAKK,CAAAA,oBAAL,CAA0BL,SAA1B,CAA1D,CAAA;MACA,IAAKe,CAAAA,UAAL,GAAkBf,SAAlB,CAAA;AACD,KAHD,MAGO;AACL;MACA,IAAKe,CAAAA,UAAL,GAAkB,IAAlB,CAAA;AACA,MAAA,IAAA,CAAKX,mBAAL,EAAA,CAAA;;AAEA,MAAA,IAAA,CAAKrpG,kBAAL,GAA0B,UAAUF,OAAV,EAAmB;QAC3C,IAAIA,OAAO,KAAK,UAAhB,EAA4B;AAC1B,UAAA,IAAImpG,SAAS,CAACkB,YAAV,KAA2B,QAA/B,EAAyC;YACvCp2H,KAAK,CAACu1H,oBAAN,CAA2BL,SAA3B,CAAA,CAAA;AACD,WAAA;AACF,SAJD,MAIO,IAAInpG,OAAO,KAAK,QAAhB,EAA0B;AAC/B,UAAA,IAAImpG,SAAS,CAACkB,YAAV,KAA2B,QAA/B,EAAyC;AACvCp2H,YAAAA,KAAK,CAACs1H,mBAAN,EAAA,CAAA;AACD,WAAA;AACF,SAAA;OATH,CAAA;AAWD,KAAA;;IAED,IAAKW,CAAAA,UAAL,GAAkBf,SAAlB,CAAA;IACAt/G,mBAAmB,CAAC,IAAD,EAAOhC,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAP,EAAmCH,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAnC,EAAmEH,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAnE,CAAnB,CAAA;GA5DF,CAAA;;AA+DA,EAAA,CAAA;;AAEAshH,EAAAA,YAAY,CAACz5I,SAAb,CAAuBi6B,OAAvB,GAAiC,UAAU5K,EAAV,EAAc;IAC7CA,EAAE,IAAIA,EAAE,EAAR,CAAA;GADF,CAAA;;AAIA,EAAA,CAAA;AACA,EAAA,OAAOoqH,YAAP,CAAA;AACD,CA/KD,CA+KEnoH,OA/KF,CAFA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgCA,IAAImpH,iBAAiB;AACrB;AACA,UAAUv2H,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACs2H,iBAAD,EAAoBv2H,MAApB,CAAT,CAAA;;AAEA,EAAA,SAASu2H,iBAAT,GAA6B;AAC3B,IAAA,IAAIr2H,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa0nI,iBAAiB,CAAC1nI,IAA/B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDq2H,EAAAA,iBAAiB,CAACz6I,SAAlB,CAA4BytC,IAA5B,GAAmC,YAAY;AAC7C,IAAA,IAAA,CAAKG,WAAL,GAAmB,IAAI1S,UAAJ,CAAeu+G,YAAf,CAAnB,CAAA;GADF,CAAA;;EAIAgB,iBAAiB,CAACz6I,SAAlB,CAA4B8tC,MAA5B,GAAqC,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AACxE,IAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAI2oH,gBAAgB,GAAG,IAAA,CAAK9sG,WAA5B,CAAA;AACA8sG,IAAAA,gBAAgB,CAAC5lH,UAAjB,CAA4BZ,IAA5B,EAAkC;AAChC4G,MAAAA,SAAS,EAAE,IAAA,CAAKy3B,aAAL,CAAmB77B,WAAnB,CAAA;KADb,CAAA,CAAA;AAGA,IAAA,IAAA,CAAKrF,KAAL,CAAWO,GAAX,CAAe8oH,gBAAgB,CAACrpH,KAAhC,CAAA,CAAA;GANF,CAAA;;AASAopH,EAAAA,iBAAiB,CAACz6I,SAAlB,CAA4BuyD,aAA5B,GAA4C,UAAU77B,WAAV,EAAuB;AACjE,IAAA,IAAI5F,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;IACA,IAAI4hC,QAAQ,GAAG7hC,QAAQ,IAAIA,QAAQ,CAACgV,OAArB,IAAgChV,QAAQ,CAACgV,OAAT,EAA/C,CAAA;IACA,OAAOpP,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,EAAwB,IAAxB,CAAA,GAAgCw6B,QAAhC,GAA2C,IAAlD,CAAA;GAHF,CAAA;;EAMA8nF,iBAAiB,CAACz6I,SAAlB,CAA4ByyD,eAA5B,GAA8C,UAAU/7B,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AACjF,IAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAKV,CAAAA,KAAL,CAAWxH,KAAX,EAAA,CAAA;AACA,IAAA,IAAI6oC,GAAG,GAAGpf,YAAY,CAAC,EAAD,CAAZ,CAAiBrzC,KAAjB,CAAuBy2B,WAAvB,EAAoCqX,OAApC,EAA6CxxB,GAA7C,CAAV,CAAA;;IAEA,IAAIm2C,GAAG,CAACze,QAAR,EAAkB;MAChBye,GAAG,CAACze,QAAJ,CAAa;AACXtmB,QAAAA,KAAK,EAAE,CADI;AAEXuP,QAAAA,GAAG,EAAEhJ,IAAI,CAAC0T,KAAL,EAFM;QAGXA,KAAK,EAAE1T,IAAI,CAAC0T,KAAL,EAAA;AAHI,OAAb,EAIG1T,IAJH,CAAA,CAAA;AAKD,KAAA;;IAED,IAAK0Z,CAAAA,WAAL,CAAiBnR,YAAjB,EAAA,CAAA;GAbF,CAAA;;AAgBAg+G,EAAAA,iBAAiB,CAACz6I,SAAlB,CAA4B26I,qBAA5B,GAAoD,UAAUjkH,WAAV,EAAuB;AACzE,IAAA,IAAI5F,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;AAEA,IAAA,IAAID,QAAQ,IAAIA,QAAQ,CAAC0iE,gBAAzB,EAA2C;AACzC,MAAA,IAAA,CAAKniE,KAAL,CAAWvlB,SAAX,GAAuBm3D,OAAA,CAAanyC,QAAQ,CAAC0iE,gBAAT,EAAb,CAAvB,CAAA;MACA,IAAKniE,CAAAA,KAAL,CAAWs0C,kBAAX,EAAA,CAAA;AACD,KAAA;GANH,CAAA;;EASA80E,iBAAiB,CAACz6I,SAAlB,CAA4Bo8B,MAA5B,GAAqC,UAAU2R,OAAV,EAAmBxxB,GAAnB,EAAwB;IAC3D,IAAKqxB,CAAAA,WAAL,IAAoB,IAAKA,CAAAA,WAAL,CAAiBxR,MAAjB,CAAwB,IAAxB,CAApB,CAAA;GADF,CAAA;;EAIAq+G,iBAAiB,CAAC1nI,IAAlB,GAAyB,eAAzB,CAAA;AACA,EAAA,OAAO0nI,iBAAP,CAAA;AACD,CA5DD,CA4DEvpG,SA5DF,CAFA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,IAAI0pG,wBAAwB;AAC5B;AACA,UAAU12H,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACy2H,wBAAD,EAA2B12H,MAA3B,CAAT,CAAA;;AAEA,EAAA,SAAS02H,wBAAT,GAAoC;AAClC,IAAA,IAAIx2H,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa6nI,wBAAwB,CAAC7nI,IAAtC,CAAA;IACAqR,KAAK,CAACuM,eAAN,GAAwB,IAAxB,CAAA;AACA,IAAA,OAAOvM,KAAP,CAAA;AACD,GAAA;;EAEDw2H,wBAAwB,CAAC56I,SAAzB,CAAmC4wB,cAAnC,GAAoD,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;AAC7E,IAAA,OAAO9c,gBAAgB,CAAC,IAAD,EAAO,IAAP,EAAa;AAClCC,MAAAA,kBAAkB,EAAE,IAAA;AADc,KAAb,CAAvB,CAAA;GADF,CAAA;;EAMA0pH,wBAAwB,CAAC56I,SAAzB,CAAmC82C,aAAnC,GAAmD,UAAU3iB,SAAV,EAAqBD,IAArB,EAA2BhsB,SAA3B,EAAsC;IACvF,OAAOA,SAAS,CAAC0yB,KAAV,CAAgB1G,IAAI,CAACyH,aAAL,CAAmBxH,SAAnB,CAAhB,CAAP,CAAA;GADF,CAAA;;EAIAymH,wBAAwB,CAAC7nI,IAAzB,GAAgC,sBAAhC,CAAA;AACA6nI,EAAAA,wBAAwB,CAACloH,YAAzB,GAAwC,CAAC,MAAD,EAAS,OAAT,CAAxC,CAAA;EACAkoH,wBAAwB,CAACjoH,aAAzB,GAAyC;AACvC5B,IAAAA,gBAAgB,EAAE,aADqB;AAEvC;AACA7E,IAAAA,CAAC,EAAE,CAHoC;AAIvC0G,IAAAA,eAAe,EAAE,IAJsB;AAKvCioH,IAAAA,UAAU,EAAE,QAL2B;AAMvClnH,IAAAA,WAAW,EAAE,CAN0B;AAOvC;AACA6mH,IAAAA,YAAY,EAAE,QARyB;AASvC/rH,IAAAA,IAAI,EAAE,IATiC;AAUvC;AACAqsH,IAAAA,YAAY,EAAE;AACZjB,MAAAA,MAAM,EAAE,CADI;AAEZ;AACAvzH,MAAAA,KAAK,EAAE,GAHK;AAIZ;AACA66G,MAAAA,SAAS,EAAE,MALC;AAMZ;AACA4Z,MAAAA,MAAM,EAAE,CAAA;KAlB6B;AAoBvClnH,IAAAA,mBAAmB,EAAE;AACnBC,MAAAA,WAAW,EAAE,OAAA;KArBwB;AAuBvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACAT,UAAU,EAAE,EA/B2B;AAgCvC;AACA;AACA;AACA;;GAnCF,CAAA;AAsCA,EAAA,OAAOunH,wBAAP,CAAA;AACD,CA9DD,CA8DE5mH,WA9DF,CAFA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAAS5Q,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4BolG,iBAA5B,CAAA,CAAA;EACAp3H,SAAS,CAACiyB,mBAAV,CAA8BslG,wBAA9B,CAAA,CAAA;AACAv3H,EAAAA,SAAS,CAACmyB,cAAV,CAAyBC,YAAY,CAAC,eAAD,CAArC,CAAA,CAAA;AACD;;ACjDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqCA,IAAIulG,UAAU;AACd;AACA,UAAU92H,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC62H,UAAD,EAAa92H,MAAb,CAAT,CAAA;;AAEA,EAAA,SAAS82H,UAAT,CAAoBr0B,QAApB,EAA8Bj3F,GAA9B,EAAmCmF,WAAnC,EAAgD;IAC9C,IAAIzQ,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,KAAqB,IAAjC,CAAA;;AAEAD,IAAAA,KAAK,CAACwN,GAAN,CAAUxN,KAAK,CAAC4iG,UAAN,CAAiBL,QAAjB,EAA2Bj3F,GAA3B,EAAgCmF,WAAhC,CAAV,CAAA,CAAA;;AAEAzQ,IAAAA,KAAK,CAAC62H,mBAAN,CAA0Bt0B,QAA1B,EAAoCj3F,GAApC,CAAA,CAAA;;AAEA,IAAA,OAAOtL,KAAP,CAAA;AACD,GAAA;;EAED42H,UAAU,CAACh7I,SAAX,CAAqBgnH,UAArB,GAAkC,UAAUL,QAAV,EAAoBj3F,GAApB,EAAyBmF,WAAzB,EAAsC;IACtE,OAAO,IAAIwpD,IAAJ,CAASsoC,QAAT,EAAmBj3F,GAAnB,EAAwBmF,WAAxB,CAAP,CAAA;GADF,CAAA;;EAIAmmH,UAAU,CAACh7I,SAAX,CAAqBi7I,mBAArB,GAA2C,UAAUt0B,QAAV,EAAoBj3F,GAApB,EAAyB;AAClE,IAAA,IAAIoI,SAAS,GAAG6uF,QAAQ,CAAC5uF,YAAT,CAAsBrI,GAAtB,CAAhB,CAAA;AACA,IAAA,IAAIwrH,WAAW,GAAGpjH,SAAS,CAACG,QAAV,CAAmB,QAAnB,CAAlB,CAAA;AACA,IAAA,IAAI9F,IAAI,GAAG+oH,WAAW,CAAC/iH,GAAZ,CAAgB,YAAhB,CAAX,CAAA;AACA,IAAA,IAAIjG,UAAU,GAAGgpH,WAAW,CAAC/iH,GAAZ,CAAgB,QAAhB,CAAjB,CAAA;;AAEA,IAAA,IAAI,CAACuP,SAAA,CAAevV,IAAf,CAAL,EAA2B;AACzBA,MAAAA,IAAI,GAAG,CAACA,IAAD,EAAOA,IAAP,CAAP,CAAA;AACD,KAAA;;IAED,IAAIR,SAAS,GAAGg1F,QAAQ,CAAClwF,aAAT,CAAuB/G,GAAvB,EAA4B,OAA5B,CAAhB,CAAA;AACA,IAAA,IAAIpqB,KAAK,GAAG41I,WAAW,CAAC/iH,GAAZ,CAAgB,OAAhB,CAAA,IAA4BxG,SAAS,IAAIA,SAAS,CAACltB,MAA/D,CAAA;AACA,IAAA,IAAI2tB,MAAM,GAAG,IAAA,CAAKuD,OAAL,CAAa,CAAb,CAAb,CAAA;;AAEA,IAAA,IAAI,IAAKH,CAAAA,WAAL,KAAqBtD,UAAzB,EAAqC;AACnC;MACA,IAAKkK,CAAAA,MAAL,CAAYhK,MAAZ,CAAA,CAAA;AACAA,MAAAA,MAAM,GAAGZ,cAAY,CAACU,UAAD,EAAa,CAAC,GAAd,EAAmB,CAAC,GAApB,EAAyB,CAAzB,EAA4B,CAA5B,EAA+B5sB,KAA/B,CAArB,CAAA;MACA8sB,MAAM,CAACgD,EAAP,GAAY,GAAZ,CAAA;MACAhD,MAAM,CAACiD,OAAP,GAAiB,IAAjB,CAAA;MACA,IAAKzD,CAAAA,GAAL,CAASQ,MAAT,CAAA,CAAA;AACD,KArBiE;;;IAwBlE,IAAI,CAACA,MAAL,EAAa;AACX,MAAA,OAAA;AACD,KA1BiE;;;AA6BlEA,IAAAA,MAAM,CAACP,QAAP,CAAgB,aAAhB,EAA+BvsB,KAA/B,CAAA,CAAA;IACA8sB,MAAM,CAACP,QAAP,CAAgBqpH,WAAW,CAAChjH,YAAZ,CAAyB,CAAC,OAAD,CAAzB,CAAhB,CAAA,CAAA;AACA9F,IAAAA,MAAM,CAACrc,MAAP,GAAgBoc,IAAI,CAAC,CAAD,CAApB,CAAA;AACAC,IAAAA,MAAM,CAACpc,MAAP,GAAgBmc,IAAI,CAAC,CAAD,CAApB,CAAA;IACAC,MAAM,CAAC0G,QAAP,CAAgBxzB,KAAhB,CAAA,CAAA;IACA,IAAKkwB,CAAAA,WAAL,GAAmBtD,UAAnB,CAAA;IACA,IAAKipH,CAAAA,YAAL,GAAoBhpH,IAApB,CAAA;;AAEA,IAAA,IAAA,CAAKipH,sBAAL,CAA4Bz0B,QAA5B,EAAsCu0B,WAAtC,EAAmDxrH,GAAnD,CAAA,CAAA;GArCF,CAAA;;EAwCAsrH,UAAU,CAACh7I,SAAX,CAAqBo7I,sBAArB,GAA8C,UAAUz0B,QAAV,EAAoBu0B,WAApB,EAAiCxrH,GAAjC,EAAsC;AAClF,IAAA,IAAI0C,MAAM,GAAG,IAAA,CAAKuD,OAAL,CAAa,CAAb,CAAb,CAAA;;IAEA,IAAI,CAACvD,MAAL,EAAa;AACX,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIpgB,MAAM,GAAG20G,QAAQ,CAAChrF,aAAT,CAAuBjM,GAAvB,CAAb,CAAA;IACA,IAAImqH,MAAM,GAAGqB,WAAW,CAAC/iH,GAAZ,CAAgB,QAAhB,IAA4B,IAAzC,CAAA;AACA,IAAA,IAAI4gF,IAAI,GAAGmiC,WAAW,CAAC/iH,GAAZ,CAAgB,MAAhB,CAAX,CAAA;AACA,IAAA,IAAIkjH,aAAa,GAAGH,WAAW,CAAC/iH,GAAZ,CAAgB,eAAhB,CAApB,CAAA;AACA,IAAA,IAAImjH,SAAS,GAAG5zG,QAAA,CAAgBwzG,WAAW,CAAC/iH,GAAZ,CAAgB,OAAhB,CAAhB,EAA0C,UAAUzI,GAAV,EAAe;MACvE,OAAOA,GAAG,GAAGi3F,QAAQ,CAAC/+E,KAAT,EAAN,GAAyBiyG,MAAzB,GAAkC,CAAzC,CAAA;KADc,CAAhB,CAXkF;;IAelFznH,MAAM,CAACkqB,MAAP,GAAgB,IAAhB,CAAA;;AAEA,IAAA,IAAA,CAAKi/F,sBAAL,CAA4BnpH,MAA5B,EAAoCpgB,MAApC,CAAA,CAAA;;IAEA,IAAIqpI,aAAa,GAAG,CAApB,EAAuB;MACrBxB,MAAM,GAAG,KAAK2B,cAAL,CAAoBppH,MAApB,CAA8BipH,GAAAA,aAA9B,GAA8C,IAAvD,CAAA;AACD,KAAA;;IAED,IAAIxB,MAAM,KAAK,IAAK4B,CAAAA,OAAhB,IAA2B1iC,IAAI,KAAK,IAAK2iC,CAAAA,KAA7C,EAAoD;AAClDtpH,MAAAA,MAAM,CAACwD,aAAP,EAAA,CAAA;MACA,IAAI+lH,QAAQ,GAAG,KAAK,CAApB,CAAA;;AAEA,MAAA,IAAIj0G,UAAA,CAAkB4zG,SAAlB,CAAJ,EAAkC;AAChCK,QAAAA,QAAQ,GAAGL,SAAS,CAAC5rH,GAAD,CAApB,CAAA;AACD,OAFD,MAEO;AACLisH,QAAAA,QAAQ,GAAGL,SAAX,CAAA;AACD,OAAA;;AAED,MAAA,IAAIlpH,MAAM,CAACwpH,GAAP,GAAa,CAAjB,EAAoB;AAClBD,QAAAA,QAAQ,GAAG,CAAC9B,MAAD,GAAUznH,MAAM,CAACwpH,GAA5B,CAAA;AACD,OAAA;;MAED,IAAKC,CAAAA,cAAL,CAAoBzpH,MAApB,EAA4BynH,MAA5B,EAAoC8B,QAApC,EAA8C5iC,IAA9C,CAAA,CAAA;AACD,KAAA;;IAED,IAAK0iC,CAAAA,OAAL,GAAe5B,MAAf,CAAA;IACA,IAAK6B,CAAAA,KAAL,GAAa3iC,IAAb,CAAA;GAzCF,CAAA;;AA4CAiiC,EAAAA,UAAU,CAACh7I,SAAX,CAAqB67I,cAArB,GAAsC,UAAUzpH,MAAV,EAAkBynH,MAAlB,EAA0B8B,QAA1B,EAAoC5iC,IAApC,EAA0C;IAC9E,IAAI8gC,MAAM,GAAG,CAAb,EAAgB;MACdznH,MAAM,CAACwpH,GAAP,GAAa,CAAb,CAAA;MACA,IAAIzuH,MAAM,GAAG,IAAb,CAAA;AACA,MAAA,IAAIrf,QAAQ,GAAGskB,MAAM,CAAC2nH,OAAP,CAAe,EAAf,EAAmBhhC,IAAnB,CAAA,CAAyBihC,IAAzB,CAA8BH,MAA9B,EAAsC;AACnD+B,QAAAA,GAAG,EAAE,CAAA;AAD8C,OAAtC,EAEZ1tI,KAFY,CAENytI,QAFM,CAEI91G,CAAAA,MAFJ,CAEW,YAAY;QACpC1Y,MAAM,CAAC2uH,qBAAP,CAA6B1pH,MAA7B,CAAA,CAAA;AACD,OAJc,CAAf,CAAA;;MAMA,IAAI,CAAC2mF,IAAL,EAAW;QACTjrG,QAAQ,CAAC83B,IAAT,CAAc,YAAY;UACxBzY,MAAM,CAACiP,MAAP,CAAchK,MAAd,CAAA,CAAA;SADF,CAAA,CAAA;AAGD,OAAA;;AAEDtkB,MAAAA,QAAQ,CAAC6f,KAAT,EAAA,CAAA;AACD,KAAA;GAjBH,CAAA;;AAoBAqtH,EAAAA,UAAU,CAACh7I,SAAX,CAAqBw7I,cAArB,GAAsC,UAAUppH,MAAV,EAAkB;AACtD;IACA,OAAO4vF,IAAA,CAAU5vF,MAAM,CAAC2pH,IAAjB,EAAuB3pH,MAAM,CAAC4pH,KAA9B,IAAuCh6B,IAAA,CAAU5vF,MAAM,CAAC4pH,KAAjB,EAAwB5pH,MAAM,CAAC6pH,IAA/B,CAA9C,CAAA;GAFF,CAAA;;EAKAjB,UAAU,CAACh7I,SAAX,CAAqBu7I,sBAArB,GAA8C,UAAUnpH,MAAV,EAAkBpgB,MAAlB,EAA0B;AACtEogB,IAAAA,MAAM,CAAC2pH,IAAP,GAAc/pI,MAAM,CAAC,CAAD,CAApB,CAAA;AACAogB,IAAAA,MAAM,CAAC6pH,IAAP,GAAcjqI,MAAM,CAAC,CAAD,CAApB,CAAA;IACAogB,MAAM,CAAC4pH,KAAP,GAAehqI,MAAM,CAAC,CAAD,CAAN,IAAa,CAAC,CAACA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,IAAeA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAAjC,EAAoC,CAACA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,IAAeA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAApE,CAA5B,CAAA;GAHF,CAAA;;EAMAgpI,UAAU,CAACh7I,SAAX,CAAqB80B,UAArB,GAAkC,UAAU6xF,QAAV,EAAoBj3F,GAApB,EAAyBmF,WAAzB,EAAsC;IACtE,IAAKc,CAAAA,OAAL,CAAa,CAAb,CAAgBb,CAAAA,UAAhB,CAA2B6xF,QAA3B,EAAqCj3F,GAArC,EAA0CmF,WAA1C,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKomH,mBAAL,CAAyBt0B,QAAzB,EAAmCj3F,GAAnC,CAAA,CAAA;GAHF,CAAA;;AAMAsrH,EAAAA,UAAU,CAACh7I,SAAX,CAAqB87I,qBAArB,GAA6C,UAAU1pH,MAAV,EAAkB;AAC7D,IAAA,IAAI1hB,EAAE,GAAG0hB,MAAM,CAAC2pH,IAAhB,CAAA;AACA,IAAA,IAAI9sE,EAAE,GAAG78C,MAAM,CAAC6pH,IAAhB,CAAA;AACA,IAAA,IAAIz5B,GAAG,GAAGpwF,MAAM,CAAC4pH,KAAjB,CAAA;AACA,IAAA,IAAIn3G,CAAC,GAAGzS,MAAM,CAACwpH,GAAf,CAAA;IACA,IAAI/2E,GAAG,GAAG,CAACzyC,MAAM,CAAC3xB,CAAR,EAAW2xB,MAAM,CAAC1xB,CAAlB,CAAV,CAAA;AACA,IAAA,IAAIw7I,OAAO,GAAGr3E,GAAG,CAAC97C,KAAJ,EAAd,CAAA;AACA,IAAA,IAAI+gG,WAAW,GAAGqyB,aAAlB,CAAA;AACA,IAAA,IAAIC,uBAAqB,GAAGD,qBAA5B,CAAA;IACAt3E,GAAG,CAAC,CAAD,CAAH,GAASilD,WAAW,CAACp5G,EAAE,CAAC,CAAD,CAAH,EAAQ8xG,GAAG,CAAC,CAAD,CAAX,EAAgBvzC,EAAE,CAAC,CAAD,CAAlB,EAAuBpqC,CAAvB,CAApB,CAAA;IACAggC,GAAG,CAAC,CAAD,CAAH,GAASilD,WAAW,CAACp5G,EAAE,CAAC,CAAD,CAAH,EAAQ8xG,GAAG,CAAC,CAAD,CAAX,EAAgBvzC,EAAE,CAAC,CAAD,CAAlB,EAAuBpqC,CAAvB,CAApB,CAV6D;;IAY7D,IAAIw3G,EAAE,GAAGD,uBAAqB,CAAC1rI,EAAE,CAAC,CAAD,CAAH,EAAQ8xG,GAAG,CAAC,CAAD,CAAX,EAAgBvzC,EAAE,CAAC,CAAD,CAAlB,EAAuBpqC,CAAvB,CAA9B,CAAA;IACA,IAAIwmG,EAAE,GAAG+Q,uBAAqB,CAAC1rI,EAAE,CAAC,CAAD,CAAH,EAAQ8xG,GAAG,CAAC,CAAD,CAAX,EAAgBvzC,EAAE,CAAC,CAAD,CAAlB,EAAuBpqC,CAAvB,CAA9B,CAAA;AACAzS,IAAAA,MAAM,CAACI,QAAP,GAAkB,CAAChzB,IAAI,CAAC8qD,KAAL,CAAW+gF,EAAX,EAAegR,EAAf,CAAD,GAAsB78I,IAAI,CAACI,EAAL,GAAU,CAAlD,CAd6D;;AAgB7D,IAAA,IAAI,IAAK41B,CAAAA,WAAL,KAAqB,MAArB,IAA+B,IAAKA,CAAAA,WAAL,KAAqB,MAApD,IAA8D,IAAA,CAAKA,WAAL,KAAqB,WAAvF,EAAoG;AAClG,MAAA,IAAIpD,MAAM,CAACkqH,OAAP,KAAmBjnI,SAAnB,IAAgC+c,MAAM,CAACkqH,OAAP,GAAiBlqH,MAAM,CAACwpH,GAA5D,EAAiE;AAC/DxpH,QAAAA,MAAM,CAACpc,MAAP,GAAgBgsG,IAAA,CAAUk6B,OAAV,EAAmBr3E,GAAnB,CAA0B,GAAA,IAA1C,CAD+D;;QAG/D,IAAIhgC,CAAC,KAAK,CAAV,EAAa;UACXggC,GAAG,CAAC,CAAD,CAAH,GAASq3E,OAAO,CAAC,CAAD,CAAP,GAAa,CAACr3E,GAAG,CAAC,CAAD,CAAH,GAASq3E,OAAO,CAAC,CAAD,CAAjB,IAAwB,CAA9C,CAAA;UACAr3E,GAAG,CAAC,CAAD,CAAH,GAASq3E,OAAO,CAAC,CAAD,CAAP,GAAa,CAACr3E,GAAG,CAAC,CAAD,CAAH,GAASq3E,OAAO,CAAC,CAAD,CAAjB,IAAwB,CAA9C,CAAA;AACD,SAAA;AACF,OAPD,MAOO,IAAI9pH,MAAM,CAACkqH,OAAP,KAAmB,CAAvB,EAA0B;AAC/B;QACAlqH,MAAM,CAACpc,MAAP,GAAgB,CAAIgsG,GAAAA,IAAA,CAAUtxG,EAAV,EAAcm0D,GAAd,CAApB,CAAA;AACD,OAHM,MAGA;AACLzyC,QAAAA,MAAM,CAACpc,MAAP,GAAgB,KAAKmlI,YAAL,CAAkB,CAAlB,CAAhB,CAAA;AACD,OAAA;AACF,KAAA;;AAED/oH,IAAAA,MAAM,CAACkqH,OAAP,GAAiBlqH,MAAM,CAACwpH,GAAxB,CAAA;IACAxpH,MAAM,CAACkqB,MAAP,GAAgB,KAAhB,CAAA;AACAlqB,IAAAA,MAAM,CAAC3xB,CAAP,GAAWokE,GAAG,CAAC,CAAD,CAAd,CAAA;AACAzyC,IAAAA,MAAM,CAAC1xB,CAAP,GAAWmkE,GAAG,CAAC,CAAD,CAAd,CAAA;GAnCF,CAAA;;EAsCAm2E,UAAU,CAACh7I,SAAX,CAAqBy8B,YAArB,GAAoC,UAAUkqF,QAAV,EAAoBj3F,GAApB,EAAyB;IAC3D,IAAKiG,CAAAA,OAAL,CAAa,CAAb,CAAA,CAAgB8G,YAAhB,CAA6BkqF,QAA7B,EAAuCj3F,GAAvC,CAAA,CAAA;IACA,IAAIwrH,WAAW,GAAGv0B,QAAQ,CAAC5uF,YAAT,CAAsBrI,GAAtB,CAA2BuI,CAAAA,QAA3B,CAAoC,QAApC,CAAlB,CAAA;;AAEA,IAAA,IAAA,CAAKmjH,sBAAL,CAA4Bz0B,QAA5B,EAAsCu0B,WAAtC,EAAmDxrH,GAAnD,CAAA,CAAA;GAJF,CAAA;;AAOA,EAAA,OAAOsrH,UAAP,CAAA;AACD,CAxLD,CAwLEjkH,OAxLF,CAFA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,IAAI4nD,QAAQ;AACZ;AACA,UAAUz6D,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACw6D,QAAD,EAAWz6D,MAAX,CAAT,CAAA;;AAEA,EAAA,SAASy6D,QAAT,CAAkBgoC,QAAlB,EAA4Bj3F,GAA5B,EAAiCmF,WAAjC,EAA8C;IAC5C,IAAIzQ,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,KAAqB,IAAjC,CAAA;;AAEAD,IAAAA,KAAK,CAACm4H,eAAN,CAAsB51B,QAAtB,EAAgCj3F,GAAhC,EAAqCmF,WAArC,CAAA,CAAA;;AAEA,IAAA,OAAOzQ,KAAP,CAAA;AACD,GAAA;;EAEDu6D,QAAQ,CAAC3+E,SAAT,CAAmBu8I,eAAnB,GAAqC,UAAU51B,QAAV,EAAoBj3F,GAApB,EAAyBmF,WAAzB,EAAsC;AACzE;AACA,IAAA,IAAI7iB,MAAM,GAAG20G,QAAQ,CAAChrF,aAAT,CAAuBjM,GAAvB,CAAb,CAAA;AACA,IAAA,IAAI6B,IAAI,GAAG,IAAIwF,UAAJ,CAAqB;AAC9BzrB,MAAAA,KAAK,EAAE;AACL0G,QAAAA,MAAM,EAAEA,MAAAA;AADH,OAAA;AADuB,KAArB,CAAX,CAAA;IAKA,IAAK4f,CAAAA,GAAL,CAASL,IAAT,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAK61F,gBAAL,CAAsBT,QAAtB,EAAgCj3F,GAAhC,EAAqCmF,WAArC,CAAA,CAAA;GAVF,CAAA;;AAaA,EAAA,CAAA;;EAEA8pD,QAAQ,CAAC3+E,SAAT,CAAmB80B,UAAnB,GAAgC,UAAU6xF,QAAV,EAAoBj3F,GAApB,EAAyBmF,WAAzB,EAAsC;AACpE,IAAA,IAAI6B,WAAW,GAAGiwF,QAAQ,CAAChwF,SAA3B,CAAA;AACA,IAAA,IAAIpF,IAAI,GAAG,IAAA,CAAKoE,OAAL,CAAa,CAAb,CAAX,CAAA;AACA,IAAA,IAAI9pB,MAAM,GAAG;AACXP,MAAAA,KAAK,EAAE;AACL0G,QAAAA,MAAM,EAAE20G,QAAQ,CAAChrF,aAAT,CAAuBjM,GAAvB,CAAA;AADH,OAAA;KADT,CAAA;IAKAqH,aAAA,CAAoBxF,IAApB,EAA0B1lB,MAA1B,EAAkC6qB,WAAlC,EAA+ChH,GAA/C,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAK03F,gBAAL,CAAsBT,QAAtB,EAAgCj3F,GAAhC,EAAqCmF,WAArC,CAAA,CAAA;GAVF,CAAA;;AAaA,EAAA,CAAA;;EAEA8pD,QAAQ,CAAC3+E,SAAT,CAAmBonH,gBAAnB,GAAsC,UAAUT,QAAV,EAAoBj3F,GAApB,EAAyBmF,WAAzB,EAAsC;AAC1E,IAAA,IAAItD,IAAI,GAAG,IAAA,CAAKoE,OAAL,CAAa,CAAb,CAAX,CAAA;AACA,IAAA,IAAImC,SAAS,GAAG6uF,QAAQ,CAAC5uF,YAAT,CAAsBrI,GAAtB,CAAhB,CAAA;AACA,IAAA,IAAImgB,iBAAiB,GAAGhb,WAAW,IAAIA,WAAW,CAACgb,iBAAnD,CAAA;AACA,IAAA,IAAItY,KAAK,GAAG1C,WAAW,IAAIA,WAAW,CAAC0C,KAAvC,CAAA;AACA,IAAA,IAAIC,SAAS,GAAG3C,WAAW,IAAIA,WAAW,CAAC2C,SAA3C,CAAA;AACA,IAAA,IAAIC,gBAAgB,GAAG5C,WAAW,IAAIA,WAAW,CAAC4C,gBAAlD,CAAA;;AAEA,IAAA,IAAI,CAAC5C,WAAD,IAAgB8xF,QAAQ,CAAC9uF,aAA7B,EAA4C;AAC1C,MAAA,IAAIG,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAApB,CAAA;MACA4X,iBAAiB,GAAG7X,aAAa,CAACC,QAAd,CAAuB,WAAvB,CAAA,CAAoCyX,YAApC,EAApB,CAAA;AACAjY,MAAAA,gBAAgB,GAAGO,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAnB,CAAA;AACAZ,MAAAA,KAAK,GAAGS,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAR,CAAA;AACAX,MAAAA,SAAS,GAAGQ,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAZ,CAAA;AACD,KAAA;;IAED5G,IAAI,CAACoH,QAAL,CAAcguF,QAAQ,CAAClwF,aAAT,CAAuB/G,GAAvB,EAA4B,OAA5B,CAAd,CAAA,CAAA;AACA6B,IAAAA,IAAI,CAACjtB,KAAL,CAAWC,IAAX,GAAkB,IAAlB,CAAA;AACAgtB,IAAAA,IAAI,CAACjtB,KAAL,CAAWmB,aAAX,GAA2B,IAA3B,CAAA;AACA,IAAA,IAAI+2I,iBAAiB,GAAGjrH,IAAI,CAACsI,WAAL,CAAiB,UAAjB,CAAxB,CAAA;IACA2iH,iBAAiB,CAACl4I,KAAlB,GAA0BurC,iBAA1B,CAAA;IACA7V,mBAAmB,CAAC,IAAD,EAAOzC,KAAP,EAAcC,SAAd,EAAyBC,gBAAzB,CAAnB,CAAA;GArBF,CAAA;;AAwBA,EAAA,CAAA;;EAEAknD,QAAQ,CAAC3+E,SAAT,CAAmBy8B,YAAnB,GAAkC,UAAUkqF,QAAV,EAAoBj3F,GAApB,EAAyB;AACzD,IAAA,IAAIhd,QAAQ,GAAG,IAAA,CAAKijB,OAAL,CAAa,CAAb,CAAf,CAAA;IACAjjB,QAAQ,CAAC+8B,QAAT,CAAkB,QAAlB,EAA4Bk3E,QAAQ,CAAChrF,aAAT,CAAuBjM,GAAvB,CAA5B,CAAA,CAAA;GAFF,CAAA;;AAKA,EAAA,CAAA;AACA,EAAA,OAAOivD,QAAP,CAAA;AACD,CA1ED,CA0EE5nD,OA1EF,CAFA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAI0lH,cAAc;AAClB;AACA,UAAUv4H,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACs4H,cAAD,EAAiBv4H,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAASu4H,cAAT,GAA0B;AACxB,IAAA,IAAIr4H,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;IAEAygB,KAAK,CAACs4H,UAAN,GAAmB,CAAnB,CAAA;IACAt4H,KAAK,CAACu4H,iBAAN,GAA0B,CAA1B,CAAA;AACA,IAAA,OAAOv4H,KAAP,CAAA;AACD,GATe;;;EAYhBq4H,cAAc,CAACz8I,SAAf,CAAyBgnH,UAAzB,GAAsC,UAAUL,QAAV,EAAoBj3F,GAApB,EAAyBmF,WAAzB,EAAsC;IAC1E,OAAO,IAAI8pD,QAAJ,CAAagoC,QAAb,EAAuBj3F,GAAvB,EAA4BmF,WAA5B,CAAP,CAAA;GADF,CAAA;;AAIA,EAAA,CAhBgB;;EAkBhB4nH,cAAc,CAACz8I,SAAf,CAAyBu7I,sBAAzB,GAAkD,UAAUnpH,MAAV,EAAkBpgB,MAAlB,EAA0B;IAC1E,IAAKu9B,CAAAA,OAAL,GAAev9B,MAAf,CAAA;AACA,IAAA,IAAI4qI,SAAS,GAAG,CAAC,CAAD,CAAhB,CAAA;IACA,IAAI7vI,GAAG,GAAG,CAAV,CAAA;;AAEA,IAAA,KAAK,IAAIrJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsO,MAAM,CAAChP,MAA3B,EAAmCU,CAAC,EAApC,EAAwC;AACtC,MAAA,IAAIgN,EAAE,GAAGsB,MAAM,CAACtO,CAAC,GAAG,CAAL,CAAf,CAAA;AACA,MAAA,IAAIurE,EAAE,GAAGj9D,MAAM,CAACtO,CAAD,CAAf,CAAA;MACAqJ,GAAG,IAAIi1G,IAAA,CAAUtxG,EAAV,EAAcu+D,EAAd,CAAP,CAAA;MACA2tE,SAAS,CAAC74I,IAAV,CAAegJ,GAAf,CAAA,CAAA;AACD,KAAA;;IAED,IAAIA,GAAG,KAAK,CAAZ,EAAe;MACb,IAAK8vI,CAAAA,OAAL,GAAe,CAAf,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,KAAK,IAAIn5I,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGk5I,SAAS,CAAC55I,MAA9B,EAAsCU,CAAC,EAAvC,EAA2C;AACzCk5I,MAAAA,SAAS,CAACl5I,CAAD,CAAT,IAAgBqJ,GAAhB,CAAA;AACD,KAAA;;IAED,IAAK+vI,CAAAA,QAAL,GAAgBF,SAAhB,CAAA;IACA,IAAKC,CAAAA,OAAL,GAAe9vI,GAAf,CAAA;GAtBF,CAAA;;AAyBA,EAAA,CA3CgB;;AA6ChB0vI,EAAAA,cAAc,CAACz8I,SAAf,CAAyBw7I,cAAzB,GAA0C,YAAY;AACpD,IAAA,OAAO,KAAKqB,OAAZ,CAAA;GADF,CAAA;;AAIA,EAAA,CAjDgB;;AAmDhBJ,EAAAA,cAAc,CAACz8I,SAAf,CAAyB87I,qBAAzB,GAAiD,UAAU1pH,MAAV,EAAkB;AACjE,IAAA,IAAIyS,CAAC,GAAGzS,MAAM,CAACwpH,GAAf,CAAA;IACA,IAAI5pI,MAAM,GAAG,IAAA,CAAKu9B,OAAlB,CAAA;IACA,IAAIwtG,OAAO,GAAG,IAAA,CAAKD,QAAnB,CAAA;AACA,IAAA,IAAI/vI,GAAG,GAAGiF,MAAM,CAAChP,MAAjB,CAAA;;IAEA,IAAI,CAAC+5I,OAAL,EAAc;AACZ;AACA,MAAA,OAAA;AACD,KAAA;;IAED,IAAIC,SAAS,GAAG,IAAA,CAAKN,UAArB,CAAA;AACA,IAAA,IAAIhoG,KAAJ,CAAA;;AAEA,IAAA,IAAI7P,CAAC,GAAG,IAAK83G,CAAAA,iBAAb,EAAgC;AAC9B;AACA;AACA,MAAA,IAAIhvH,KAAK,GAAGnuB,IAAI,CAAC8iC,GAAL,CAAS06G,SAAS,GAAG,CAArB,EAAwBjwI,GAAG,GAAG,CAA9B,CAAZ,CAAA;;MAEA,KAAK2nC,KAAK,GAAG/mB,KAAb,EAAoB+mB,KAAK,IAAI,CAA7B,EAAgCA,KAAK,EAArC,EAAyC;AACvC,QAAA,IAAIqoG,OAAO,CAACroG,KAAD,CAAP,IAAkB7P,CAAtB,EAAyB;AACvB,UAAA,MAAA;AACD,SAAA;AACF,OAT6B;;;MAY9B6P,KAAK,GAAGl1C,IAAI,CAAC8iC,GAAL,CAASoS,KAAT,EAAgB3nC,GAAG,GAAG,CAAtB,CAAR,CAAA;AACD,KAbD,MAaO;MACL,KAAK2nC,KAAK,GAAGsoG,SAAb,EAAwBtoG,KAAK,GAAG3nC,GAAhC,EAAqC2nC,KAAK,EAA1C,EAA8C;AAC5C,QAAA,IAAIqoG,OAAO,CAACroG,KAAD,CAAP,GAAiB7P,CAArB,EAAwB;AACtB,UAAA,MAAA;AACD,SAAA;AACF,OAAA;;AAED6P,MAAAA,KAAK,GAAGl1C,IAAI,CAAC8iC,GAAL,CAASoS,KAAK,GAAG,CAAjB,EAAoB3nC,GAAG,GAAG,CAA1B,CAAR,CAAA;AACD,KAAA;;IAED,IAAIrK,CAAC,GAAG,CAACmiC,CAAC,GAAGk4G,OAAO,CAACroG,KAAD,CAAZ,KAAwBqoG,OAAO,CAACroG,KAAK,GAAG,CAAT,CAAP,GAAqBqoG,OAAO,CAACroG,KAAD,CAApD,CAAR,CAAA;AACA,IAAA,IAAIjkC,EAAE,GAAGuB,MAAM,CAAC0iC,KAAD,CAAf,CAAA;AACA,IAAA,IAAIhkC,EAAE,GAAGsB,MAAM,CAAC0iC,KAAK,GAAG,CAAT,CAAf,CAAA;AACAtiB,IAAAA,MAAM,CAAC3xB,CAAP,GAAWgQ,EAAE,CAAC,CAAD,CAAF,IAAS,CAAI/N,GAAAA,CAAb,IAAkBA,CAAC,GAAGgO,EAAE,CAAC,CAAD,CAAnC,CAAA;AACA0hB,IAAAA,MAAM,CAAC1xB,CAAP,GAAW+P,EAAE,CAAC,CAAD,CAAF,IAAS,CAAI/N,GAAAA,CAAb,IAAkBA,CAAC,GAAGgO,EAAE,CAAC,CAAD,CAAnC,CAAA;IACA,IAAI2rI,EAAE,GAAG3rI,EAAE,CAAC,CAAD,CAAF,GAAQD,EAAE,CAAC,CAAD,CAAnB,CAAA;IACA,IAAI46H,EAAE,GAAG36H,EAAE,CAAC,CAAD,CAAF,GAAQD,EAAE,CAAC,CAAD,CAAnB,CAAA;AACA2hB,IAAAA,MAAM,CAACI,QAAP,GAAkB,CAAChzB,IAAI,CAAC8qD,KAAL,CAAW+gF,EAAX,EAAegR,EAAf,CAAD,GAAsB78I,IAAI,CAACI,EAAL,GAAU,CAAlD,CAAA;IACA,IAAK88I,CAAAA,UAAL,GAAkBhoG,KAAlB,CAAA;IACA,IAAKioG,CAAAA,iBAAL,GAAyB93G,CAAzB,CAAA;IACAzS,MAAM,CAACkqB,MAAP,GAAgB,KAAhB,CAAA;GA/CF,CAAA;;AAkDA,EAAA,CAAA;AACA,EAAA,OAAOmgG,cAAP,CAAA;AACD,CAvGD,CAuGEzB,UAvGF,CAFA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgCA,IAAIiC,mBAAmB;AACvB;AACA,YAAY;AACV,EAAA,SAASA,mBAAT,GAA+B;IAC7B,IAAKvqI,CAAAA,QAAL,GAAgB,KAAhB,CAAA;IACA,IAAKyyF,CAAAA,SAAL,GAAiB,CAAjB,CAAA;IACA,IAAK+3C,CAAAA,IAAL,GAAY,EAAZ,CAAA;AACD,GAAA;;AAED,EAAA,OAAOD,mBAAP,CAAA;AACD,CARD,EAFA,CAAA;;AAYA,IAAIE,cAAc;AAClB;AACA,UAAUj5H,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACg5H,cAAD,EAAiBj5H,MAAjB,CAAT,CAAA;;EAEA,SAASi5H,cAAT,CAAwB31I,IAAxB,EAA8B;IAC5B,IAAI4c,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB7c,IAAlB,CAAA,IAA2B,IAAvC,CAAA;;IAEA4c,KAAK,CAACssC,IAAN,GAAa,CAAb,CAAA;AACAtsC,IAAAA,KAAK,CAACusC,YAAN,GAAqB,CAAC,CAAtB,CAAA;AACA,IAAA,OAAOvsC,KAAP,CAAA;AACD,GAAA;;AAED+4H,EAAAA,cAAc,CAACn9I,SAAf,CAAyBC,KAAzB,GAAiC,YAAY;IAC3C,IAAKguB,CAAAA,QAAL,GAAgB,KAAhB,CAAA;IACA,IAAKyiC,CAAAA,IAAL,GAAY,CAAZ,CAAA;GAFF,CAAA;;AAKAysF,EAAAA,cAAc,CAACn9I,SAAf,CAAyBskC,eAAzB,GAA2C,YAAY;IACrD,OAAO;AACL7/B,MAAAA,MAAM,EAAE,MADH;AAELF,MAAAA,IAAI,EAAE,IAAA;KAFR,CAAA;GADF,CAAA;;AAOA44I,EAAAA,cAAc,CAACn9I,SAAf,CAAyBukC,eAAzB,GAA2C,YAAY;IACrD,OAAO,IAAI04G,mBAAJ,EAAP,CAAA;GADF,CAAA;;EAIAE,cAAc,CAACn9I,SAAf,CAAyBwL,SAAzB,GAAqC,UAAUwa,GAAV,EAAe1a,KAAf,EAAsB;AACzD,IAAA,IAAI4xI,IAAI,GAAG5xI,KAAK,CAAC4xI,IAAjB,CAAA;AACA,IAAA,IAAI/3C,SAAS,GAAG75F,KAAK,CAAC65F,SAAtB,CAAA;AACA,IAAA,IAAIzhG,CAAJ,CAAA;;IAEA,IAAI4H,KAAK,CAACoH,QAAV,EAAoB;MAClB,KAAKhP,CAAC,GAAG,IAAA,CAAKgtD,IAAd,EAAoBhtD,CAAC,GAAGw5I,IAAI,CAACl6I,MAA7B,GAAsC;AACpC,QAAA,IAAI4kC,KAAK,GAAGs1G,IAAI,CAACx5I,CAAC,EAAF,CAAhB,CAAA;;QAEA,IAAIkkC,KAAK,GAAG,CAAZ,EAAe;AACb5hB,UAAAA,GAAG,CAACxlB,MAAJ,CAAW08I,IAAI,CAACx5I,CAAC,EAAF,CAAf,EAAsBw5I,IAAI,CAACx5I,CAAC,EAAF,CAA1B,CAAA,CAAA;;UAEA,KAAK,IAAIwL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG04B,KAApB,EAA2B14B,CAAC,EAA5B,EAAgC;AAC9B8W,YAAAA,GAAG,CAACplB,MAAJ,CAAWs8I,IAAI,CAACx5I,CAAC,EAAF,CAAf,EAAsBw5I,IAAI,CAACx5I,CAAC,EAAF,CAA1B,CAAA,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;AACF,KAZD,MAYO;MACL,KAAKA,CAAC,GAAG,IAAA,CAAKgtD,IAAd,EAAoBhtD,CAAC,GAAGw5I,IAAI,CAACl6I,MAA7B,GAAsC;AACpC,QAAA,IAAIV,EAAE,GAAG46I,IAAI,CAACx5I,CAAC,EAAF,CAAb,CAAA;AACA,QAAA,IAAInB,EAAE,GAAG26I,IAAI,CAACx5I,CAAC,EAAF,CAAb,CAAA;AACA,QAAA,IAAIsT,EAAE,GAAGkmI,IAAI,CAACx5I,CAAC,EAAF,CAAb,CAAA;AACA,QAAA,IAAIuT,EAAE,GAAGimI,IAAI,CAACx5I,CAAC,EAAF,CAAb,CAAA;AACAsiB,QAAAA,GAAG,CAACxlB,MAAJ,CAAW8B,EAAX,EAAeC,EAAf,CAAA,CAAA;;QAEA,IAAI4iG,SAAS,GAAG,CAAhB,EAAmB;AACjB,UAAA,IAAIrkG,EAAE,GAAG,CAACwB,EAAE,GAAG0U,EAAN,IAAY,CAAZ,GAAgB,CAACzU,EAAE,GAAG0U,EAAN,IAAYkuF,SAArC,CAAA;AACA,UAAA,IAAIpkG,EAAE,GAAG,CAACwB,EAAE,GAAG0U,EAAN,IAAY,CAAZ,GAAgB,CAACD,EAAE,GAAG1U,EAAN,IAAY6iG,SAArC,CAAA;UACAn/E,GAAG,CAAC9kB,gBAAJ,CAAqBJ,EAArB,EAAyBC,EAAzB,EAA6BiW,EAA7B,EAAiCC,EAAjC,CAAA,CAAA;AACD,SAJD,MAIO;AACL+O,UAAAA,GAAG,CAACplB,MAAJ,CAAWoW,EAAX,EAAeC,EAAf,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;IAED,IAAI,IAAA,CAAKyN,WAAT,EAAsB;MACpB,IAAKgsC,CAAAA,IAAL,GAAYhtD,CAAZ,CAAA;MACA,IAAKuqB,CAAAA,QAAL,GAAgB,IAAhB,CAAA;AACD,KAAA;GAtCH,CAAA;;EAyCAkvH,cAAc,CAACn9I,SAAf,CAAyBixD,aAAzB,GAAyC,UAAUxwD,CAAV,EAAaC,CAAb,EAAgB;IACvD,IAAI4K,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAI4xI,IAAI,GAAG5xI,KAAK,CAAC4xI,IAAjB,CAAA;AACA,IAAA,IAAI/3C,SAAS,GAAG75F,KAAK,CAAC65F,SAAtB,CAAA;AACA,IAAA,IAAIv/F,SAAS,GAAG,IAAKtB,CAAAA,KAAL,CAAWsB,SAA3B,CAAA;;IAEA,IAAI0F,KAAK,CAACoH,QAAV,EAAoB;MAClB,IAAIyhB,SAAS,GAAG,CAAhB,CAAA;;MAEA,KAAK,IAAIzwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw5I,IAAI,CAACl6I,MAAzB,GAAkC;AAChC,QAAA,IAAI4kC,KAAK,GAAGs1G,IAAI,CAACx5I,CAAC,EAAF,CAAhB,CAAA;;QAEA,IAAIkkC,KAAK,GAAG,CAAZ,EAAe;AACb,UAAA,IAAItlC,EAAE,GAAG46I,IAAI,CAACx5I,CAAC,EAAF,CAAb,CAAA;AACA,UAAA,IAAInB,EAAE,GAAG26I,IAAI,CAACx5I,CAAC,EAAF,CAAb,CAAA;;UAEA,KAAK,IAAIwL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG04B,KAApB,EAA2B14B,CAAC,EAA5B,EAAgC;AAC9B,YAAA,IAAI8H,EAAE,GAAGkmI,IAAI,CAACx5I,CAAC,EAAF,CAAb,CAAA;AACA,YAAA,IAAIuT,EAAE,GAAGimI,IAAI,CAACx5I,CAAC,EAAF,CAAb,CAAA;;AAEA,YAAA,IAAI05I,aAAA,CAA0B96I,EAA1B,EAA8BC,EAA9B,EAAkCyU,EAAlC,EAAsCC,EAAtC,EAA0CrR,SAA1C,EAAqDnF,CAArD,EAAwDC,CAAxD,CAAJ,EAAgE;AAC9D,cAAA,OAAOyzB,SAAP,CAAA;AACD,aAAA;AACF,WAAA;AACF,SAAA;;QAEDA,SAAS,EAAA,CAAA;AACV,OAAA;AACF,KAtBD,MAsBO;MACL,IAAIA,SAAS,GAAG,CAAhB,CAAA;;MAEA,KAAK,IAAIzwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw5I,IAAI,CAACl6I,MAAzB,GAAkC;AAChC,QAAA,IAAIV,EAAE,GAAG46I,IAAI,CAACx5I,CAAC,EAAF,CAAb,CAAA;AACA,QAAA,IAAInB,EAAE,GAAG26I,IAAI,CAACx5I,CAAC,EAAF,CAAb,CAAA;AACA,QAAA,IAAIsT,EAAE,GAAGkmI,IAAI,CAACx5I,CAAC,EAAF,CAAb,CAAA;AACA,QAAA,IAAIuT,EAAE,GAAGimI,IAAI,CAACx5I,CAAC,EAAF,CAAb,CAAA;;QAEA,IAAIyhG,SAAS,GAAG,CAAhB,EAAmB;AACjB,UAAA,IAAIrkG,EAAE,GAAG,CAACwB,EAAE,GAAG0U,EAAN,IAAY,CAAZ,GAAgB,CAACzU,EAAE,GAAG0U,EAAN,IAAYkuF,SAArC,CAAA;AACA,UAAA,IAAIpkG,EAAE,GAAG,CAACwB,EAAE,GAAG0U,EAAN,IAAY,CAAZ,GAAgB,CAACD,EAAE,GAAG1U,EAAN,IAAY6iG,SAArC,CAAA;;UAEA,IAAIk4C,eAAA,CAA+B/6I,EAA/B,EAAmCC,EAAnC,EAAuCzB,EAAvC,EAA2CC,EAA3C,EAA+CiW,EAA/C,EAAmDC,EAAnD,EAAuDrR,SAAvD,EAAkEnF,CAAlE,EAAqEC,CAArE,CAAJ,EAA6E;AAC3E,YAAA,OAAOyzB,SAAP,CAAA;AACD,WAAA;AACF,SAPD,MAOO;AACL,UAAA,IAAIipH,aAAA,CAA0B96I,EAA1B,EAA8BC,EAA9B,EAAkCyU,EAAlC,EAAsCC,EAAtC,EAA0CrR,SAA1C,EAAqDnF,CAArD,EAAwDC,CAAxD,CAAJ,EAAgE;AAC9D,YAAA,OAAOyzB,SAAP,CAAA;AACD,WAAA;AACF,SAAA;;QAEDA,SAAS,EAAA,CAAA;AACV,OAAA;AACF,KAAA;;AAED,IAAA,OAAO,CAAC,CAAR,CAAA;GAtDF,CAAA;;EAyDAgpH,cAAc,CAACn9I,SAAf,CAAyB+6B,OAAzB,GAAmC,UAAUt6B,CAAV,EAAaC,CAAb,EAAgB;IACjD,IAAIwwD,QAAQ,GAAG,IAAKC,CAAAA,qBAAL,CAA2B1wD,CAA3B,EAA8BC,CAA9B,CAAf,CAAA;AACA,IAAA,IAAIkC,IAAI,GAAG,IAAK+lD,CAAAA,eAAL,EAAX,CAAA;AACAloD,IAAAA,CAAC,GAAGywD,QAAQ,CAAC,CAAD,CAAZ,CAAA;AACAxwD,IAAAA,CAAC,GAAGwwD,QAAQ,CAAC,CAAD,CAAZ,CAAA;;IAEA,IAAItuD,IAAI,CAACm4B,OAAL,CAAat6B,CAAb,EAAgBC,CAAhB,CAAJ,EAAwB;AACtB;MACA,IAAIk9C,OAAO,GAAG,IAAA,CAAK+S,YAAL,GAAoB,IAAKM,CAAAA,aAAL,CAAmBxwD,CAAnB,EAAsBC,CAAtB,CAAlC,CAAA;MACA,OAAOk9C,OAAO,IAAI,CAAlB,CAAA;AACD,KAAA;;IAED,IAAK+S,CAAAA,YAAL,GAAoB,CAAC,CAArB,CAAA;AACA,IAAA,OAAO,KAAP,CAAA;GAbF,CAAA;;AAgBAwsF,EAAAA,cAAc,CAACn9I,SAAf,CAAyB2oD,eAAzB,GAA2C,YAAY;AACrD;IACA,IAAI/lD,IAAI,GAAG,IAAA,CAAKwuD,KAAhB,CAAA;;IAEA,IAAI,CAACxuD,IAAL,EAAW;MACT,IAAI0I,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,MAAA,IAAI0G,MAAM,GAAG1G,KAAK,CAAC4xI,IAAnB,CAAA;MACA,IAAIn2G,IAAI,GAAGxf,QAAX,CAAA;MACA,IAAIyf,IAAI,GAAGzf,QAAX,CAAA;MACA,IAAI0f,IAAI,GAAG,CAAC1f,QAAZ,CAAA;MACA,IAAI2f,IAAI,GAAG,CAAC3f,QAAZ,CAAA;;MAEA,KAAK,IAAI7jB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsO,MAAM,CAAChP,MAA3B,GAAoC;AAClC,QAAA,IAAIvC,CAAC,GAAGuR,MAAM,CAACtO,CAAC,EAAF,CAAd,CAAA;AACA,QAAA,IAAIhD,CAAC,GAAGsR,MAAM,CAACtO,CAAC,EAAF,CAAd,CAAA;QACAqjC,IAAI,GAAGvnC,IAAI,CAAC8iC,GAAL,CAAS7hC,CAAT,EAAYsmC,IAAZ,CAAP,CAAA;QACAE,IAAI,GAAGznC,IAAI,CAAC0iB,GAAL,CAASzhB,CAAT,EAAYwmC,IAAZ,CAAP,CAAA;QACAD,IAAI,GAAGxnC,IAAI,CAAC8iC,GAAL,CAAS5hC,CAAT,EAAYsmC,IAAZ,CAAP,CAAA;QACAE,IAAI,GAAG1nC,IAAI,CAAC0iB,GAAL,CAASxhB,CAAT,EAAYwmC,IAAZ,CAAP,CAAA;AACD,OAAA;;AAEDtkC,MAAAA,IAAI,GAAG,IAAKwuD,CAAAA,KAAL,GAAa,IAAIr6B,YAAJ,CAAyBgQ,IAAzB,EAA+BC,IAA/B,EAAqCC,IAArC,EAA2CC,IAA3C,CAApB,CAAA;AACD,KAAA;;AAED,IAAA,OAAOtkC,IAAP,CAAA;GAxBF,CAAA;;AA2BA,EAAA,OAAOu6I,cAAP,CAAA;AACD,CAzKD,CAyKEpmH,IAzKF,CAFA,CAAA;;AA6KA,IAAIumH,aAAa;AACjB;AACA,YAAY;AACV,EAAA,SAASA,aAAT,GAAyB;AACvB,IAAA,IAAA,CAAKjsH,KAAL,GAAa,IAAI0F,OAAJ,EAAb,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEumH,EAAAA,aAAa,CAACt9I,SAAd,CAAwB80B,UAAxB,GAAqC,UAAUZ,IAAV,EAAgB;AACnD,IAAA,IAAA,CAAKimB,MAAL,EAAA,CAAA;;AAEA,IAAA,IAAIojG,MAAM,GAAG,IAAKjsF,CAAAA,OAAL,EAAb,CAAA;;IAEAisF,MAAM,CAAC9tG,QAAP,CAAgB;AACdytG,MAAAA,IAAI,EAAEhpH,IAAI,CAACwM,SAAL,CAAe,aAAf,CAAA;KADR,CAAA,CAAA;;AAIA,IAAA,IAAA,CAAK6wB,UAAL,CAAgBgsF,MAAhB,EAAwBrpH,IAAxB,CAAA,CAAA;GATF,CAAA;;AAYA,EAAA,CAAA;AACA;AACF;AACA;;AAEEopH,EAAAA,aAAa,CAACt9I,SAAd,CAAwB48B,wBAAxB,GAAmD,UAAU1I,IAAV,EAAgB;IACjE,IAAK7C,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAKklB,MAAL,EAAA,CAAA;GAHF,CAAA;;AAMA,EAAA,CAAA;AACA;AACF;AACA;;EAEEmjG,aAAa,CAACt9I,SAAd,CAAwB88B,iBAAxB,GAA4C,UAAUC,UAAV,EAAsB7I,IAAtB,EAA4B;AACtE,IAAA,IAAI49B,SAAS,GAAG,IAAA,CAAKC,SAAL,CAAe,CAAf,CAAhB,CAAA;AACA,IAAA,IAAI7K,UAAU,GAAGhzB,IAAI,CAACwM,SAAL,CAAe,aAAf,CAAjB,CAAA;IACA,IAAI88G,OAAO,GAAG1rF,SAAS,IAAIA,SAAS,CAACxmD,KAAV,CAAgB4xI,IAA3C,CAHsE;AAItE;;AAEA,IAAA,IAAIM,OAAO,IAAIA,OAAO,CAACx6I,MAAR,GAAiB,GAAhC,EAAqC;AACnC,MAAA,IAAIgvD,MAAM,GAAGwrF,OAAO,CAACx6I,MAArB,CAAA;AACA,MAAA,IAAIy6I,OAAO,GAAG,IAAI7rF,YAAJ,CAAiBI,MAAM,GAAG9K,UAAU,CAAClkD,MAArC,CAAd,CAFmC;;MAInCy6I,OAAO,CAACxrF,GAAR,CAAYurF,OAAZ,CAAA,CAAA;AACAC,MAAAA,OAAO,CAACxrF,GAAR,CAAY/K,UAAZ,EAAwB8K,MAAxB,CAAA,CAAA;MACAF,SAAS,CAACriB,QAAV,CAAmB;AACjBytG,QAAAA,IAAI,EAAEO,OAAAA;OADR,CAAA,CAAA;AAGD,KATD,MASO;AACL;MACA,IAAK1rF,CAAAA,SAAL,GAAiB,EAAjB,CAAA;;AAEA,MAAA,IAAIwrF,MAAM,GAAG,IAAKjsF,CAAAA,OAAL,EAAb,CAAA;;MAEAisF,MAAM,CAAC74H,WAAP,GAAqB,IAArB,CAAA;MACA64H,MAAM,CAAC9tG,QAAP,CAAgB;AACdytG,QAAAA,IAAI,EAAEh2F,UAAAA;OADR,CAAA,CAAA;;AAIA,MAAA,IAAA,CAAKqK,UAAL,CAAgBgsF,MAAhB,EAAwBrpH,IAAxB,CAAA,CAAA;;AAEAqpH,MAAAA,MAAM,CAACt4H,YAAP,GAAsB8X,UAAU,CAACpP,KAAjC,CAAA;AACD,KAAA;GA7BH,CAAA;AA+BA;AACF;AACA;;;AAGE2vH,EAAAA,aAAa,CAACt9I,SAAd,CAAwBo8B,MAAxB,GAAiC,YAAY;AAC3C,IAAA,IAAA,CAAK+d,MAAL,EAAA,CAAA;GADF,CAAA;;AAIAmjG,EAAAA,aAAa,CAACt9I,SAAd,CAAwBo9B,YAAxB,GAAuC,UAAU/N,EAAV,EAAc;IACnD,IAAK0iC,CAAAA,SAAL,CAAe,CAAf,CAAqB1iC,IAAAA,EAAE,CAAC,IAAA,CAAK0iC,SAAL,CAAe,CAAf,CAAD,CAAvB,CAAA;GADF,CAAA;;AAIAurF,EAAAA,aAAa,CAACt9I,SAAd,CAAwBsxD,OAAxB,GAAkC,YAAY;AAC5C,IAAA,IAAIisF,MAAM,GAAG,IAAIJ,cAAJ,CAAmB;AAC9B5mH,MAAAA,MAAM,EAAE,SAAA;AADsB,KAAnB,CAAb,CAAA;;AAIA,IAAA,IAAA,CAAKw7B,SAAL,CAAehuD,IAAf,CAAoBw5I,MAApB,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKlsH,KAAL,CAAWO,GAAX,CAAe2rH,MAAf,CAAA,CAAA;AACA,IAAA,OAAOA,MAAP,CAAA;GARF,CAAA;;EAWAD,aAAa,CAACt9I,SAAd,CAAwBuxD,UAAxB,GAAqC,UAAUgsF,MAAV,EAAkBrpH,IAAlB,EAAwBwpH,aAAxB,EAAuC;AAC1E,IAAA,IAAI/mH,SAAS,GAAGzC,IAAI,CAACyC,SAArB,CAAA;IACA4mH,MAAM,CAAC9tG,QAAP,CAAgB;AACd/8B,MAAAA,QAAQ,EAAEikB,SAAS,CAACwB,GAAV,CAAc,UAAd,CADI;MAEdgtE,SAAS,EAAExuE,SAAS,CAACwB,GAAV,CAAc,CAAC,WAAD,EAAc,WAAd,CAAd,CAAA;KAFb,CAAA,CAAA;IAIAolH,MAAM,CAAC5kH,QAAP,CAAgBhC,SAAS,CAACsB,QAAV,CAAmB,WAAnB,CAAgCyX,CAAAA,YAAhC,EAAhB,CAAA,CAAA;AACA6tG,IAAAA,MAAM,CAACj5I,KAAP,CAAamB,aAAb,GAA6B,IAA7B,CAAA;AACA,IAAA,IAAInB,KAAK,GAAG4vB,IAAI,CAAClC,SAAL,CAAe,OAAf,CAAZ,CAAA;;AAEA,IAAA,IAAI1tB,KAAK,IAAIA,KAAK,CAACG,MAAnB,EAA2B;AACzB84I,MAAAA,MAAM,CAAC1rH,QAAP,CAAgB,QAAhB,EAA0BvtB,KAAK,CAACG,MAAhC,CAAA,CAAA;AACD,KAAA;;AAED84I,IAAAA,MAAM,CAAC1rH,QAAP,CAAgB,MAAhB,EAAwB,IAAxB,CAAA,CAAA;AACA,IAAA,IAAIugC,MAAM,GAAGl4B,SAAS,CAACqjH,MAAD,CAAtB,CAf0E;AAgB1E;;AAEAnrF,IAAAA,MAAM,CAACriB,WAAP,GAAqBpZ,SAAS,CAACoZ,WAA/B,CAAA;AACAwtG,IAAAA,MAAM,CAAC//F,EAAP,CAAU,WAAV,EAAuB,UAAUl6C,CAAV,EAAa;MAClC8uD,MAAM,CAACj+B,SAAP,GAAmB,IAAnB,CAAA;AACA,MAAA,IAAIA,SAAS,GAAGopH,MAAM,CAAC5sF,YAAvB,CAAA;;MAEA,IAAIx8B,SAAS,GAAG,CAAhB,EAAmB;AACjB;AACAi+B,QAAAA,MAAM,CAACj+B,SAAP,GAAmBA,SAAS,GAAGopH,MAAM,CAACt4H,YAAtC,CAAA;AACD,OAAA;KAPH,CAAA,CAAA;GAnBF,CAAA;;AA8BA,EAAA,CAAA;;AAEAq4H,EAAAA,aAAa,CAACt9I,SAAd,CAAwBm6C,MAAxB,GAAiC,YAAY;IAC3C,IAAK4X,CAAAA,SAAL,GAAiB,EAAjB,CAAA;IACA,IAAK1gC,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;GAFF,CAAA;;AAKA,EAAA,CAAA;AACA,EAAA,OAAOqoH,aAAP,CAAA;AACD,CAnID,EAFA;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BA,IAAIK,WAAW,GAAG;AAChB9sG,EAAAA,UAAU,EAAE,OADI;EAEhB2C,IAAI,EAAEC,mBAAmB,EAFT;EAGhBxzC,KAAK,EAAE,SAAUy2B,KAAAA,CAAAA,WAAV,EAAuB;AAC5B,IAAA,IAAI5F,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;IAEA,IAAI,CAACD,QAAL,EAAe;AACb,MAAA,IAAI1Z,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;QACzCsE,KAAK,CAAC,iDAAD,CAAL,CAAA;AACD,OAAA;;AAED,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIgiI,UAAU,GAAGlnH,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,CAAjB,CAAA;AACA,IAAA,IAAI0lH,OAAO,GAAGnnH,WAAW,CAACgd,eAAZ,CAA4BrxC,KAA1C,CAAA;IACA,OAAO;AACL4xC,MAAAA,QAAQ,EAAE,SAAA,QAAA,CAAUC,MAAV,EAAkByyE,QAAlB,EAA4B;QACpC,IAAIm3B,UAAU,GAAG,EAAjB,CAAA;;AAEA,QAAA,IAAID,OAAJ,EAAa;UACX,IAAI7rI,MAAM,GAAG,KAAK,CAAlB,CAAA;UACA,IAAImiC,QAAQ,GAAGD,MAAM,CAAChX,GAAP,GAAagX,MAAM,CAACvmB,KAAnC,CAAA;;AAEA,UAAA,IAAIiwH,UAAJ,EAAgB;YACd,IAAIG,gBAAgB,GAAG,CAAvB,CAAA;;AAEA,YAAA,KAAK,IAAIr6I,CAAC,GAAGwwC,MAAM,CAACvmB,KAApB,EAA2BjqB,CAAC,GAAGwwC,MAAM,CAAChX,GAAtC,EAA2Cx5B,CAAC,EAA5C,EAAgD;AAC9Cq6I,cAAAA,gBAAgB,IAAIrnH,WAAW,CAACsnH,kBAAZ,CAA+Bt6I,CAA/B,CAApB,CAAA;AACD,aAAA;;YAEDsO,MAAM,GAAG,IAAI4/C,YAAJ,CAAiBzd,QAAQ,GAAG4pG,gBAAgB,GAAG,CAA/C,CAAT,CAAA;AACD,WARD,MAQO;AACL/rI,YAAAA,MAAM,GAAG,IAAI4/C,YAAJ,CAAiBzd,QAAQ,GAAG,CAA5B,CAAT,CAAA;AACD,WAAA;;UAED,IAAIz8B,MAAM,GAAG,CAAb,CAAA;UACA,IAAImwB,EAAE,GAAG,EAAT,CAAA;;AAEA,UAAA,KAAK,IAAInkC,CAAC,GAAGwwC,MAAM,CAACvmB,KAApB,EAA2BjqB,CAAC,GAAGwwC,MAAM,CAAChX,GAAtC,EAA2Cx5B,CAAC,EAA5C,EAAgD;YAC9C,IAAIqJ,GAAG,GAAG2pB,WAAW,CAACunH,aAAZ,CAA0Bv6I,CAA1B,EAA6Bo6I,UAA7B,CAAV,CAAA;;AAEA,YAAA,IAAIF,UAAJ,EAAgB;AACd5rI,cAAAA,MAAM,CAAC0F,MAAM,EAAP,CAAN,GAAmB3K,GAAnB,CAAA;AACD,aAAA;;YAED,KAAK,IAAImC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGnC,GAApB,EAAyBmC,CAAC,EAA1B,EAA8B;AAC5B24B,cAAAA,EAAE,GAAG/W,QAAQ,CAACuO,WAAT,CAAqBy+G,UAAU,CAAC5uI,CAAD,CAA/B,EAAoC,KAApC,EAA2C24B,EAA3C,CAAL,CAAA;cACA71B,MAAM,CAAC0F,MAAM,EAAP,CAAN,GAAmBmwB,EAAE,CAAC,CAAD,CAArB,CAAA;cACA71B,MAAM,CAAC0F,MAAM,EAAP,CAAN,GAAmBmwB,EAAE,CAAC,CAAD,CAArB,CAAA;AACD,aAAA;AACF,WAAA;;AAED8+E,UAAAA,QAAQ,CAACpyE,SAAT,CAAmB,aAAnB,EAAkCviC,MAAlC,CAAA,CAAA;AACD,SAlCD,MAkCO;AACL,UAAA,KAAK,IAAItO,CAAC,GAAGwwC,MAAM,CAACvmB,KAApB,EAA2BjqB,CAAC,GAAGwwC,MAAM,CAAChX,GAAtC,EAA2Cx5B,CAAC,EAA5C,EAAgD;AAC9C,YAAA,IAAIo0B,SAAS,GAAG6uF,QAAQ,CAAC5uF,YAAT,CAAsBr0B,CAAtB,CAAhB,CAAA;YACA,IAAIqJ,GAAG,GAAG2pB,WAAW,CAACunH,aAAZ,CAA0Bv6I,CAA1B,EAA6Bo6I,UAA7B,CAAV,CAAA;YACA,IAAIp0B,GAAG,GAAG,EAAV,CAAA;;AAEA,YAAA,IAAIk0B,UAAJ,EAAgB;cACd,KAAK,IAAIh1H,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG7b,GAApB,EAAyB6b,CAAC,EAA1B,EAA8B;gBAC5B8gG,GAAG,CAAC3lH,IAAJ,CAAS+sB,QAAQ,CAACuO,WAAT,CAAqBy+G,UAAU,CAACl1H,CAAD,CAA/B,CAAT,CAAA,CAAA;AACD,eAAA;AACF,aAJD,MAIO;AACL8gG,cAAAA,GAAG,CAAC,CAAD,CAAH,GAAS54F,QAAQ,CAACuO,WAAT,CAAqBy+G,UAAU,CAAC,CAAD,CAA/B,CAAT,CAAA;AACAp0B,cAAAA,GAAG,CAAC,CAAD,CAAH,GAAS54F,QAAQ,CAACuO,WAAT,CAAqBy+G,UAAU,CAAC,CAAD,CAA/B,CAAT,CAAA;cACA,IAAI34C,SAAS,GAAGrtE,SAAS,CAACK,GAAV,CAAc,CAAC,WAAD,EAAc,WAAd,CAAd,CAAhB,CAAA;;cAEA,IAAI,CAACgtE,SAAL,EAAgB;AACdukB,gBAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAC,CAACA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAA,GAAYA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAb,IAA0B,CAA1B,GAA8B,CAACA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,IAAYA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAb,IAA0BvkB,SAAzD,EAAoE,CAACukB,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAYA,GAAAA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAb,IAA0B,CAA1B,GAA8B,CAACA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAYA,GAAAA,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,CAAb,IAA0BvkB,SAA5H,CAAT,CAAA;AACD,eAAA;AACF,aAAA;;AAEDwhB,YAAAA,QAAQ,CAACryE,aAAT,CAAuB5wC,CAAvB,EAA0BgmH,GAA1B,CAAA,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;KA7DH,CAAA;AA+DD,GAAA;AA/Ee,CAAlB;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoCA,IAAIw0B,SAAS;AACb;AACA,UAAUh6H,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC+5H,SAAD,EAAYh6H,MAAZ,CAAT,CAAA;;AAEA,EAAA,SAASg6H,SAAT,GAAqB;AACnB,IAAA,IAAI95H,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAamrI,SAAS,CAACnrI,IAAvB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED85H,SAAS,CAACl+I,SAAV,CAAoB8tC,MAApB,GAA6B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AAChE,IAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;;IAEA,IAAIi3F,QAAQ,GAAG,IAAKm1B,CAAAA,eAAL,CAAqBjqH,IAArB,EAA2BwC,WAA3B,CAAf,CAAA;;AAEA,IAAA,IAAI/R,MAAM,GAAG+R,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;IACA,IAAIimH,WAAW,GAAG1nH,WAAW,CAACyB,GAAZ,CAAgB,CAAC,QAAD,EAAW,aAAX,CAAhB,CAAlB,CAAA;AACA,IAAA,IAAIi+C,EAAE,GAAG75D,GAAG,CAACghC,KAAJ,EAAT,CAPgE;AAQhE;AACA;;IAEA,IAAI8gG,KAAK,GAAGjoE,EAAE,CAAC5yD,OAAH,CAAW/D,OAAX,OAAyB,KAArC,CAAA;;IAEA,IAAI,CAAC4+H,KAAL,EAAY;MACVjoE,EAAE,CAAC5yD,OAAH,CAAWiJ,QAAX,CAAoB9H,MAApB,CAAA,CAA4B7B,KAA5B,CAAkC,IAAlC,CAAA,CAAA;AACD,KAf+D;;;AAkBhE,IAAA,IAAI,KAAKw7H,WAAL,IAAoB,IAApB,IAA4B,CAACD,KAAjC,EAAwC;AACtCjoE,MAAAA,EAAE,CAACt3D,WAAH,CAAe,IAAA,CAAKw/H,WAApB,EAAiC;AAC/Bh6H,QAAAA,UAAU,EAAE,KAAA;OADd,CAAA,CAAA;AAGD,KAAA;;IAED,IAAI,IAAA,CAAKi6H,WAAL,CAAiB7nH,WAAjB,KAAiC0nH,WAAW,GAAG,CAAnD,EAAsD;MACpD,IAAI,CAACC,KAAL,EAAY;AACVjoE,QAAAA,EAAE,CAACt3D,WAAH,CAAe6F,MAAf,EAAuB;AACrBL,UAAAA,UAAU,EAAE,IADS;AAErBC,UAAAA,cAAc,EAAE/kB,IAAI,CAAC0iB,GAAL,CAAS1iB,IAAI,CAAC8iC,GAAL,CAAS87G,WAAW,GAAG,EAAd,GAAmB,GAA5B,EAAiC,CAAjC,CAAT,EAA8C,CAA9C,CAAA;SAFlB,CAAA,CAAA;OADF,MAKO,IAAIhnI,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;QAChDqE,OAAO,CAAC2tB,IAAR,CAAa,0DAAb,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;IAED0/E,QAAQ,CAACl0F,UAAT,CAAoBZ,IAApB,CAAA,CAAA;AACA,IAAA,IAAIra,QAAQ,GAAG6c,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,EAAwB,IAAxB,KAAiCsO,cAAc,CAAC/P,WAAW,CAAC3F,gBAAb,EAA+B,KAA/B,EAAsC2F,WAAtC,CAA9D,CAAA;;AAEA,IAAA,IAAI7c,QAAJ,EAAc;AACZ,MAAA,IAAA,CAAKwX,KAAL,CAAWzX,WAAX,CAAuBC,QAAvB,CAAA,CAAA;AACD,KAFD,MAEO;MACL,IAAKwX,CAAAA,KAAL,CAAW0pB,cAAX,EAAA,CAAA;AACD,KAAA;;IAED,IAAKujG,CAAAA,WAAL,GAAmB35H,MAAnB,CAAA;IACA,IAAK6tC,CAAAA,SAAL,GAAiB,IAAjB,CAAA;GA7CF,CAAA;;EAgDA0rF,SAAS,CAACl+I,SAAV,CAAoBk6C,wBAApB,GAA+C,UAAUxjB,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AAClF,IAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;;IAEA,IAAIi3F,QAAQ,GAAG,IAAKm1B,CAAAA,eAAL,CAAqBjqH,IAArB,EAA2BwC,WAA3B,CAAf,CAAA;;IAEAsyF,QAAQ,CAACpsF,wBAAT,CAAkC1I,IAAlC,CAAA,CAAA;;IAEA,IAAKrE,CAAAA,WAAL,CAAiBtT,GAAjB,CAAA,CAAA;;IAEA,IAAKi2C,CAAAA,SAAL,GAAiB,KAAjB,CAAA;GATF,CAAA;;EAYA0rF,SAAS,CAACl+I,SAAV,CAAoBq6C,iBAApB,GAAwC,UAAUtd,UAAV,EAAsBrG,WAAtB,EAAmCqX,OAAnC,EAA4C;IAClF,IAAKk9E,CAAAA,SAAL,CAAenuF,iBAAf,CAAiCC,UAAjC,EAA6CrG,WAAW,CAAC3E,OAAZ,EAA7C,CAAA,CAAA;;IAEA,IAAKygC,CAAAA,SAAL,GAAiBz1B,UAAU,CAACG,GAAX,KAAmBxG,WAAW,CAAC3E,OAAZ,EAAsB6V,CAAAA,KAAtB,EAApC,CAAA;GAHF,CAAA;;AAMAs2G,EAAAA,SAAS,CAACl+I,SAAV,CAAoBo9B,YAApB,GAAmC,UAAU/N,EAAV,EAAc;IAC/C,IAAK47F,CAAAA,SAAL,IAAkB,IAAKA,CAAAA,SAAL,CAAe7tF,YAAf,CAA4B/N,EAA5B,CAAlB,CAAA;GADF,CAAA;;EAIA6uH,SAAS,CAACl+I,SAAV,CAAoByyD,eAApB,GAAsC,UAAU/7B,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AACzE,IAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAI2hB,eAAe,GAAGhd,WAAW,CAACgd,eAAlC,CAAA;;IAEA,IAAI,CAAC,IAAK8e,CAAAA,SAAN,IAAmB9e,eAAe,CAACrxC,KAAnC,IAA4CqxC,eAAe,CAAC8qG,iBAAhE,EAAmF;AACjF;MACA,OAAO;AACLviH,QAAAA,MAAM,EAAE,IAAA;OADV,CAAA;AAGD,KALD,MAKO;AACL;AACA;MACA,IAAIy2B,GAAG,GAAGirF,WAAW,CAAC19I,KAAZ,CAAkBy2B,WAAlB,EAA+BqX,OAA/B,EAAwCxxB,GAAxC,CAAV,CAAA;;MAEA,IAAIm2C,GAAG,CAACze,QAAR,EAAkB;QAChBye,GAAG,CAACze,QAAJ,CAAa;AACXtmB,UAAAA,KAAK,EAAE,CADI;AAEXuP,UAAAA,GAAG,EAAEhJ,IAAI,CAAC0T,KAAL,EAFM;UAGXA,KAAK,EAAE1T,IAAI,CAAC0T,KAAL,EAAA;AAHI,SAAb,EAIG1T,IAJH,CAAA,CAAA;AAKD,OAXI;;;MAcL,IAAK+2F,CAAAA,SAAL,CAAexuF,YAAf,EAAA,CAAA;;MAEA,IAAK5M,CAAAA,WAAL,CAAiBtT,GAAjB,CAAA,CAAA;AACD,KAAA;GA1BH,CAAA;;EA6BA2hI,SAAS,CAACl+I,SAAV,CAAoBm+I,eAApB,GAAsC,UAAUjqH,IAAV,EAAgBwC,WAAhB,EAA6B;IACjE,IAAIsyF,QAAQ,GAAG,IAAA,CAAKiC,SAApB,CAAA;;AAEA,IAAA,IAAIwzB,SAAS,GAAG,IAAA,CAAKF,WAAL,CAAiB7nH,WAAjB,CAAhB,CAAA;;IAEA,IAAIknH,UAAU,GAAG,CAAC,CAAClnH,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,CAAnB,CAAA;AACA,IAAA,IAAIub,eAAe,GAAGhd,WAAW,CAACgd,eAAlC,CAAA;AACA,IAAA,IAAI8G,WAAW,GAAG9G,eAAe,CAACrxC,KAAlC,CAAA;;AAEA,IAAA,IAAI+U,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC,IAAImnI,SAAS,IAAIjkG,WAAjB,EAA8B;QAC5B7+B,OAAO,CAAC2tB,IAAR,CAAa,gCAAb,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAI,CAAC0/E,QAAD,IAAay1B,SAAS,KAAK,KAAKC,SAAhC,IAA6Cd,UAAU,KAAK,KAAKe,WAAjE,IAAgFnkG,WAAW,KAAK,IAAA,CAAKT,YAAzG,EAAuH;AACrH,MAAA,IAAIivE,QAAJ,EAAc;AACZA,QAAAA,QAAQ,CAAC5sF,MAAT,EAAA,CAAA;AACD,OAAA;;MAED4sF,QAAQ,GAAG,IAAKiC,CAAAA,SAAL,GAAiBzwE,WAAW,GAAG,IAAI8iG,aAAJ,EAAH,GAAyB,IAAI10B,QAAJ,CAAag1B,UAAU,GAAGa,SAAS,GAAGhC,cAAH,GAAoB99D,QAAhC,GAA2C8/D,SAAS,GAAGzD,UAAH,GAAgB38D,IAA3F,CAAhE,CAAA;MACA,IAAKqgE,CAAAA,SAAL,GAAiBD,SAAjB,CAAA;MACA,IAAKE,CAAAA,WAAL,GAAmBf,UAAnB,CAAA;MACA,IAAK7jG,CAAAA,YAAL,GAAoBS,WAApB,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKnpB,KAAL,CAAWO,GAAX,CAAeo3F,QAAQ,CAAC33F,KAAxB,CAAA,CAAA;AACA,IAAA,OAAO23F,QAAP,CAAA;GA3BF,CAAA;;AA8BAk1B,EAAAA,SAAS,CAACl+I,SAAV,CAAoBu+I,WAApB,GAAkC,UAAU7nH,WAAV,EAAuB;IACvD,OAAO,CAAC,CAACA,WAAW,CAACyB,GAAZ,CAAgB,CAAC,QAAD,EAAW,MAAX,CAAhB,CAAT,CAAA;GADF,CAAA;;AAIA+lH,EAAAA,SAAS,CAACl+I,SAAV,CAAoB6vB,WAApB,GAAkC,UAAUtT,GAAV,EAAe;AAC/C;AACA,IAAA,IAAI65D,EAAE,GAAG75D,GAAG,CAACghC,KAAJ,EAAT,CAAA;IACA,IAAI8gG,KAAK,GAAGjoE,EAAE,CAAC5yD,OAAH,CAAW/D,OAAX,OAAyB,KAArC,CAAA;;AAEA,IAAA,IAAI,CAAC4+H,KAAD,IAAU,KAAKC,WAAL,IAAoB,IAAlC,EAAwC;MACtCloE,EAAE,CAAC5yD,OAAH,CAAWiJ,QAAX,CAAoB,KAAK6xH,WAAzB,CAAA,CAAsCx7H,KAAtC,CAA4C,IAA5C,CAAA,CAAA;AACD,KAAA;GAPH,CAAA;;EAUAo7H,SAAS,CAACl+I,SAAV,CAAoBo8B,MAApB,GAA6B,UAAU2R,OAAV,EAAmBxxB,GAAnB,EAAwB;AACnD,IAAA,IAAA,CAAK0uG,SAAL,IAAkB,IAAA,CAAKA,SAAL,CAAe7uF,MAAf,EAAlB,CAAA;AACA,IAAA,IAAA,CAAK6uF,SAAL,GAAiB,IAAjB,CAFmD;;IAInD,IAAKp7F,CAAAA,WAAL,CAAiBtT,GAAjB,CAAA,CAAA;GAJF,CAAA;;EAOA2hI,SAAS,CAACl+I,SAAV,CAAoB4iB,OAApB,GAA8B,UAAUmrB,OAAV,EAAmBxxB,GAAnB,EAAwB;AACpD,IAAA,IAAA,CAAK6f,MAAL,CAAY2R,OAAZ,EAAqBxxB,GAArB,CAAA,CAAA;GADF,CAAA;;EAIA2hI,SAAS,CAACnrI,IAAV,GAAiB,OAAjB,CAAA;AACA,EAAA,OAAOmrI,SAAP,CAAA;AACD,CAtKD,CAsKEhtG,SAtKF,CAFA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiCA,IAAI0tG,SAAS,GAAG,OAAOC,WAAP,KAAuB,WAAvB,GAAqC7tG,KAArC,GAA6C6tG,WAA7D,CAAA;AACA,IAAIC,UAAU,GAAG,OAAOC,YAAP,KAAwB,WAAxB,GAAsC/tG,KAAtC,GAA8C+tG,YAA/D,CAAA;;AAEA,SAASC,SAAT,CAAmBxuE,SAAnB,EAA8B;AAC5B,EAAA,IAAIt8C,IAAI,GAAGs8C,SAAS,CAACt8C,IAArB,CAAA;;EAEA,IAAIA,IAAI,IAAIA,IAAI,CAAC,CAAD,CAAZ,IAAmBA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAnB,IAAiCA,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAW+U,CAAAA,KAAhD,EAAuD;AACrD,IAAA,IAAI7xB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCqE,MAAAA,OAAO,CAAC2tB,IAAR,CAAa,8CAAA,GAAiD,2BAA9D,CAAA,CAAA;AACD,KAAA;;IAEDknC,SAAS,CAACt8C,IAAV,GAAiBtvB,GAAG,CAACsvB,IAAD,EAAO,UAAU+qH,OAAV,EAAmB;AAC5C,MAAA,IAAIC,MAAM,GAAG,CAACD,OAAO,CAAC,CAAD,CAAP,CAAWh2G,KAAZ,EAAmBg2G,OAAO,CAAC,CAAD,CAAP,CAAWh2G,KAA9B,CAAb,CAAA;AACA,MAAA,IAAIp9B,MAAM,GAAG;AACXqzI,QAAAA,MAAM,EAAEA,MAAAA;OADV,CAAA;;AAIA,MAAA,IAAID,OAAO,CAAC,CAAD,CAAP,CAAWv4I,IAAf,EAAqB;QACnBmF,MAAM,CAACszI,QAAP,GAAkBF,OAAO,CAAC,CAAD,CAAP,CAAWv4I,IAA7B,CAAA;AACD,OAAA;;AAED,MAAA,IAAIu4I,OAAO,CAAC,CAAD,CAAP,CAAWv4I,IAAf,EAAqB;QACnBmF,MAAM,CAACuzI,MAAP,GAAgBH,OAAO,CAAC,CAAD,CAAP,CAAWv4I,IAA3B,CAAA;AACD,OAAA;;AAED,MAAA,OAAO24I,QAAQ,CAAC,CAACxzI,MAAD,EAASozI,OAAO,CAAC,CAAD,CAAhB,EAAqBA,OAAO,CAAC,CAAD,CAA5B,CAAD,CAAf,CAAA;AACD,KAfmB,CAApB,CAAA;AAgBD,GAAA;AACF,CAAA;;AAED,IAAIK,gBAAgB;AACpB;AACA,UAAUp7H,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACm7H,gBAAD,EAAmBp7H,MAAnB,CAAT,CAAA;;AAEA,EAAA,SAASo7H,gBAAT,GAA4B;AAC1B,IAAA,IAAIl7H,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAausI,gBAAgB,CAACvsI,IAA9B,CAAA;IACAqR,KAAK,CAACixG,qBAAN,GAA8B,WAA9B,CAAA;IACAjxG,KAAK,CAACwzG,cAAN,GAAuB,QAAvB,CAAA;AACA,IAAA,OAAOxzG,KAAP,CAAA;AACD,GAAA;;AAEDk7H,EAAAA,gBAAgB,CAACt/I,SAAjB,CAA2BytC,IAA3B,GAAkC,UAAU5c,MAAV,EAAkB;AAClD;IACAA,MAAM,CAACqD,IAAP,GAAcrD,MAAM,CAACqD,IAAP,IAAe,EAA7B,CAFkD;;IAIlD8qH,SAAS,CAACnuH,MAAD,CAAT,CAAA;;IAEA,IAAIk4C,MAAM,GAAG,IAAKw2E,CAAAA,uBAAL,CAA6B1uH,MAAM,CAACqD,IAApC,CAAb,CAAA;;AAEA,IAAA,IAAA,CAAKsrH,WAAL,GAAmBz2E,MAAM,CAAC02E,UAA1B,CAAA;AACA,IAAA,IAAA,CAAKC,iBAAL,GAAyB32E,MAAM,CAAC42E,gBAAhC,CAAA;;IAEA,IAAI52E,MAAM,CAAC02E,UAAX,EAAuB;MACrB5uH,MAAM,CAACqD,IAAP,GAAc,IAAI09B,YAAJ,CAAiBmX,MAAM,CAACnhC,KAAxB,CAAd,CAAA;AACD,KAAA;;IAED1jB,MAAM,CAAClkB,SAAP,CAAiBytC,IAAjB,CAAsB/c,KAAtB,CAA4B,IAA5B,EAAkC/sB,SAAlC,CAAA,CAAA;GAfF,CAAA;;AAkBA27I,EAAAA,gBAAgB,CAACt/I,SAAjB,CAA2BquD,WAA3B,GAAyC,UAAUx9B,MAAV,EAAkB;IACzDmuH,SAAS,CAACnuH,MAAD,CAAT,CAAA;;IAEA,IAAIA,MAAM,CAACqD,IAAX,EAAiB;AACf;MACA,IAAI60C,MAAM,GAAG,IAAKw2E,CAAAA,uBAAL,CAA6B1uH,MAAM,CAACqD,IAApC,CAAb,CAAA;;AAEA,MAAA,IAAA,CAAKsrH,WAAL,GAAmBz2E,MAAM,CAAC02E,UAA1B,CAAA;AACA,MAAA,IAAA,CAAKC,iBAAL,GAAyB32E,MAAM,CAAC42E,gBAAhC,CAAA;;MAEA,IAAI52E,MAAM,CAAC02E,UAAX,EAAuB;QACrB5uH,MAAM,CAACqD,IAAP,GAAc,IAAI09B,YAAJ,CAAiBmX,MAAM,CAACnhC,KAAxB,CAAd,CAAA;AACD,OAAA;AACF,KAAA;;IAED1jB,MAAM,CAAClkB,SAAP,CAAiBquD,WAAjB,CAA6B39B,KAA7B,CAAmC,IAAnC,EAAyC/sB,SAAzC,CAAA,CAAA;GAfF,CAAA;;AAkBA27I,EAAAA,gBAAgB,CAACt/I,SAAjB,CAA2B4/I,UAA3B,GAAwC,UAAU1rG,MAAV,EAAkB;IACxD,IAAI60B,MAAM,GAAG,IAAKw2E,CAAAA,uBAAL,CAA6BrrG,MAAM,CAAChgB,IAApC,CAAb,CAAA;;IAEA,IAAI60C,MAAM,CAAC02E,UAAX,EAAuB;MACrB,IAAI,CAAC,IAAKD,CAAAA,WAAV,EAAuB;AACrB,QAAA,IAAA,CAAKA,WAAL,GAAmBz2E,MAAM,CAAC02E,UAA1B,CAAA;AACA,QAAA,IAAA,CAAKC,iBAAL,GAAyB32E,MAAM,CAAC42E,gBAAhC,CAAA;AACD,OAHD,MAGO;QACL,IAAKH,CAAAA,WAAL,GAAmBK,WAAW,CAAC,IAAA,CAAKL,WAAN,EAAmBz2E,MAAM,CAAC02E,UAA1B,CAA9B,CAAA;QACA,IAAKC,CAAAA,iBAAL,GAAyBG,WAAW,CAAC,IAAA,CAAKH,iBAAN,EAAyB32E,MAAM,CAAC42E,gBAAhC,CAApC,CAAA;AACD,OAAA;;MAEDzrG,MAAM,CAAChgB,IAAP,GAAc,IAAI09B,YAAJ,CAAiBmX,MAAM,CAACnhC,KAAxB,CAAd,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAK6lB,UAAL,EAAkBmyF,CAAAA,UAAlB,CAA6B1rG,MAAM,CAAChgB,IAApC,CAAA,CAAA;GAfF,CAAA;;AAkBAorH,EAAAA,gBAAgB,CAACt/I,SAAjB,CAA2B8/I,uBAA3B,GAAqD,UAAUpwH,GAAV,EAAe;IAClE,IAAIoI,SAAS,GAAG,IAAK/F,CAAAA,OAAL,GAAegG,YAAf,CAA4BrI,GAA5B,CAAhB,CAAA;AACA,IAAA,IAAIwvH,MAAM,GAAGpnH,SAAS,CAACjH,MAAV,YAA4BmgB,KAA5B,GAAoClZ,SAAS,CAACjH,MAA9C,GAAuDiH,SAAS,CAACO,UAAV,CAAqB,QAArB,CAApE,CAAA;;AAEA,IAAA,IAAIjhB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,MAAA,IAAI,EAAE4nI,MAAM,YAAYluG,KAAlB,IAA2BkuG,MAAM,CAACl8I,MAAP,GAAgB,CAA3C,IAAgDk8I,MAAM,CAAC,CAAD,CAAN,YAAqBluG,KAAvE,CAAJ,EAAmF;AACjF,QAAA,MAAM,IAAIhgB,KAAJ,CAAU,iBAAA,GAAoB+1D,IAAI,CAACg5D,SAAL,CAAeb,MAAf,CAApB,GAA6C,iDAAvD,CAAN,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAOA,MAAP,CAAA;GAVF,CAAA;;AAaAI,EAAAA,gBAAgB,CAACt/I,SAAjB,CAA2Bg+I,kBAA3B,GAAgD,UAAUtuH,GAAV,EAAe;IAC7D,IAAI,IAAA,CAAKgwH,iBAAT,EAA4B;MAC1B,OAAO,IAAA,CAAKA,iBAAL,CAAuBhwH,GAAG,GAAG,CAAN,GAAU,CAAjC,CAAP,CAAA;AACD,KAFD,MAEO;AACL,MAAA,OAAO,IAAKowH,CAAAA,uBAAL,CAA6BpwH,GAA7B,EAAkC1sB,MAAzC,CAAA;AACD,KAAA;GALH,CAAA;;EAQAs8I,gBAAgB,CAACt/I,SAAjB,CAA2Bi+I,aAA3B,GAA2C,UAAUvuH,GAAV,EAAerO,GAAf,EAAoB;IAC7D,IAAI,IAAA,CAAKq+H,iBAAT,EAA4B;MAC1B,IAAIhoI,MAAM,GAAG,IAAKgoI,CAAAA,iBAAL,CAAuBhwH,GAAG,GAAG,CAA7B,CAAb,CAAA;MACA,IAAI3iB,GAAG,GAAG,IAAA,CAAK2yI,iBAAL,CAAuBhwH,GAAG,GAAG,CAAN,GAAU,CAAjC,CAAV,CAAA;;MAEA,KAAK,IAAIhsB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,EAAyBrJ,CAAC,EAA1B,EAA8B;QAC5B2d,GAAG,CAAC3d,CAAD,CAAH,GAAS2d,GAAG,CAAC3d,CAAD,CAAH,IAAU,EAAnB,CAAA;AACA2d,QAAAA,GAAG,CAAC3d,CAAD,CAAH,CAAO,CAAP,CAAY,GAAA,IAAA,CAAK87I,WAAL,CAAiB9nI,MAAM,GAAGhU,CAAC,GAAG,CAA9B,CAAZ,CAAA;AACA2d,QAAAA,GAAG,CAAC3d,CAAD,CAAH,CAAO,CAAP,IAAY,IAAK87I,CAAAA,WAAL,CAAiB9nI,MAAM,GAAGhU,CAAC,GAAG,CAAb,GAAiB,CAAlC,CAAZ,CAAA;AACD,OAAA;;AAED,MAAA,OAAOqJ,GAAP,CAAA;AACD,KAXD,MAWO;AACL,MAAA,IAAImyI,MAAM,GAAG,IAAA,CAAKY,uBAAL,CAA6BpwH,GAA7B,CAAb,CAAA;;AAEA,MAAA,KAAK,IAAIhsB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw7I,MAAM,CAACl8I,MAA3B,EAAmCU,CAAC,EAApC,EAAwC;QACtC2d,GAAG,CAAC3d,CAAD,CAAH,GAAS2d,GAAG,CAAC3d,CAAD,CAAH,IAAU,EAAnB,CAAA;AACA2d,QAAAA,GAAG,CAAC3d,CAAD,CAAH,CAAO,CAAP,CAAA,GAAYw7I,MAAM,CAACx7I,CAAD,CAAN,CAAU,CAAV,CAAZ,CAAA;AACA2d,QAAAA,GAAG,CAAC3d,CAAD,CAAH,CAAO,CAAP,CAAA,GAAYw7I,MAAM,CAACx7I,CAAD,CAAN,CAAU,CAAV,CAAZ,CAAA;AACD,OAAA;;MAED,OAAOw7I,MAAM,CAACl8I,MAAd,CAAA;AACD,KAAA;GAtBH,CAAA;;AAyBAs8I,EAAAA,gBAAgB,CAACt/I,SAAjB,CAA2Bu/I,uBAA3B,GAAqD,UAAUrrH,IAAV,EAAgB;IACnE,IAAI8rH,WAAW,GAAG,CAAlB,CAAA;;IAEA,IAAI,IAAA,CAAKR,WAAT,EAAsB;AACpBQ,MAAAA,WAAW,GAAG,IAAA,CAAKR,WAAL,CAAiBx8I,MAA/B,CAAA;AACD,KALkE;AAMnE;;;AAGA,IAAA,IAAI0M,QAAQ,CAACwkB,IAAI,CAAC,CAAD,CAAL,CAAZ,EAAuB;AACrB,MAAA,IAAInnB,GAAG,GAAGmnB,IAAI,CAAClxB,MAAf,CADqB;;AAGrB,MAAA,IAAIi9I,yBAAyB,GAAG,IAAIrB,SAAJ,CAAc7xI,GAAd,CAAhC,CAAA;AACA,MAAA,IAAImzI,aAAa,GAAG,IAAIpB,UAAJ,CAAe/xI,GAAf,CAApB,CAAA;MACA,IAAIozI,YAAY,GAAG,CAAnB,CAAA;MACA,IAAIC,YAAY,GAAG,CAAnB,CAAA;MACA,IAAIC,SAAS,GAAG,CAAhB,CAAA;;MAEA,KAAK,IAAI38I,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,GAA0B;QACxBszI,SAAS,EAAA,CAAA;QACT,IAAIz4G,KAAK,GAAG1T,IAAI,CAACxwB,CAAC,EAAF,CAAhB,CAFwB;;QAIxBu8I,yBAAyB,CAACG,YAAY,EAAb,CAAzB,GAA4CD,YAAY,GAAGH,WAA3D,CAJwB;;AAMxBC,QAAAA,yBAAyB,CAACG,YAAY,EAAb,CAAzB,GAA4Cx4G,KAA5C,CAAA;;QAEA,KAAK,IAAI14B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG04B,KAApB,EAA2B14B,CAAC,EAA5B,EAAgC;AAC9B,UAAA,IAAIzO,CAAC,GAAGyzB,IAAI,CAACxwB,CAAC,EAAF,CAAZ,CAAA;AACA,UAAA,IAAIhD,CAAC,GAAGwzB,IAAI,CAACxwB,CAAC,EAAF,CAAZ,CAAA;AACAw8I,UAAAA,aAAa,CAACC,YAAY,EAAb,CAAb,GAAgC1/I,CAAhC,CAAA;AACAy/I,UAAAA,aAAa,CAACC,YAAY,EAAb,CAAb,GAAgCz/I,CAAhC,CAAA;;UAEA,IAAIgD,CAAC,GAAGqJ,GAAR,EAAa;AACX,YAAA,IAAIqK,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,cAAA,MAAM,IAAI0Z,KAAJ,CAAU,sBAAV,CAAN,CAAA;AACD,aAAA;AACF,WAAA;AACF,SAAA;AACF,OAAA;;MAED,OAAO;QACL2uH,gBAAgB,EAAE,IAAId,WAAJ,CAAgBoB,yBAAyB,CAACpuF,MAA1C,EAAkD,CAAlD,EAAqDuuF,YAArD,CADb;AAELX,QAAAA,UAAU,EAAES,aAFP;AAGLt4G,QAAAA,KAAK,EAAEy4G,SAAAA;OAHT,CAAA;AAKD,KAAA;;IAED,OAAO;AACLV,MAAAA,gBAAgB,EAAE,IADb;AAELF,MAAAA,UAAU,EAAE,IAFP;MAGL73G,KAAK,EAAE1T,IAAI,CAAClxB,MAAAA;KAHd,CAAA;GA/CF,CAAA;;EAsDAs8I,gBAAgB,CAACt/I,SAAjB,CAA2B4wB,cAA3B,GAA4C,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;AACrE,IAAA,IAAI32B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC,IAAIgpI,QAAQ,GAAGtyB,uBAAgB,CAAC71F,GAAjB,CAAqBtH,MAAM,CAACE,gBAA5B,CAAf,CAAA;;MAEA,IAAI,CAACuvH,QAAL,EAAe;AACb,QAAA,MAAM,IAAItvH,KAAJ,CAAU,8BAA8BH,MAAM,CAACE,gBAA/C,CAAN,CAAA;AACD,OAAA;AACF,KAAA;;IAED,IAAI41F,QAAQ,GAAG,IAAIt5D,UAAJ,CAAe,CAAC,OAAD,CAAf,EAA0B,IAA1B,CAAf,CAAA;IACAs5D,QAAQ,CAAC9uF,aAAT,GAAyB,KAAzB,CAAA;AACA8uF,IAAAA,QAAQ,CAACr5D,QAAT,CAAkBz8B,MAAM,CAACqD,IAAzB,EAA+B,EAA/B,EAAmC,UAAU83G,QAAV,EAAoBtrE,OAApB,EAA6BvsC,SAA7B,EAAwCO,QAAxC,EAAkD;AACnF;MACA,IAAIs3G,QAAQ,YAAYh7F,KAAxB,EAA+B;AAC7B,QAAA,OAAO7R,GAAP,CAAA;AACD,OAFD,MAEO;QACLwnF,QAAQ,CAAC9uF,aAAT,GAAyB,IAAzB,CAAA;AACA,QAAA,IAAIqH,KAAK,GAAG8sG,QAAQ,CAAC9sG,KAArB,CAAA;;QAEA,IAAIA,KAAK,IAAI,IAAb,EAAmB;UACjB,OAAOA,KAAK,YAAY8R,KAAjB,GAAyB9R,KAAK,CAACxK,QAAD,CAA9B,GAA2CwK,KAAlD,CAAA;AACD,SAAA;AACF,OAAA;KAXH,CAAA,CAAA;AAaA,IAAA,OAAOynF,QAAP,CAAA;GAxBF,CAAA;;EA2BA24B,gBAAgB,CAACt/I,SAAjB,CAA2B6xE,aAA3B,GAA2C,UAAU19C,SAAV,EAAqB29C,cAArB,EAAqCC,QAArC,EAA+C;AACxF,IAAA,IAAI79C,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;AACA,IAAA,IAAI+F,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkB5D,SAAlB,CAAhB,CAAA;AACA,IAAA,IAAIztB,IAAI,GAAGoxB,SAAS,CAACK,GAAV,CAAc,MAAd,CAAX,CAAA;;AAEA,IAAA,IAAIzxB,IAAJ,EAAU;AACR,MAAA,OAAOA,IAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAIy4I,QAAQ,GAAGrnH,SAAS,CAACK,GAAV,CAAc,UAAd,CAAf,CAAA;AACA,IAAA,IAAIinH,MAAM,GAAGtnH,SAAS,CAACK,GAAV,CAAc,QAAd,CAAb,CAAA;IACA,IAAI62F,OAAO,GAAG,EAAd,CAAA;IACAmwB,QAAQ,IAAI,IAAZ,IAAoBnwB,OAAO,CAACjrH,IAAR,CAAao7I,QAAb,CAApB,CAAA;IACAC,MAAM,IAAI,IAAV,IAAkBpwB,OAAO,CAACjrH,IAAR,CAAaq7I,MAAb,CAAlB,CAAA;IACA,OAAOhtE,mBAAmB,CAAC,WAAD,EAAc;AACtC1rE,MAAAA,IAAI,EAAEsoH,OAAO,CAAChrH,IAAR,CAAa,KAAb,CAAA;AADgC,KAAd,CAA1B,CAAA;GAdF,CAAA;;AAmBAs7I,EAAAA,gBAAgB,CAACt/I,SAAjB,CAA2BugJ,kBAA3B,GAAgD,YAAY;IAC1D,OAAO,CAAC,CAAC,IAAA,CAAKpoH,GAAL,CAAS,CAAC,QAAD,EAAW,MAAX,CAAT,CAAT,CAAA;GADF,CAAA;;AAIAmnH,EAAAA,gBAAgB,CAACt/I,SAAjB,CAA2B22C,cAA3B,GAA4C,YAAY;AACtD,IAAA,IAAIhjB,WAAW,GAAG,IAAK9C,CAAAA,MAAL,CAAY8C,WAA9B,CAAA;;IAEA,IAAIA,WAAW,IAAI,IAAnB,EAAyB;MACvB,OAAO,IAAA,CAAK9C,MAAL,CAAYxuB,KAAZ,GAAoB,GAApB,GAA0B,IAAK81B,CAAAA,GAAL,CAAS,aAAT,CAAjC,CAAA;AACD,KAAA;;AAED,IAAA,OAAOxE,WAAP,CAAA;GAPF,CAAA;;AAUA2rH,EAAAA,gBAAgB,CAACt/I,SAAjB,CAA2B42C,uBAA3B,GAAqD,YAAY;AAC/D,IAAA,IAAIC,oBAAoB,GAAG,IAAKhmB,CAAAA,MAAL,CAAYgmB,oBAAvC,CAAA;;IAEA,IAAIA,oBAAoB,IAAI,IAA5B,EAAkC;MAChC,OAAO,IAAA,CAAKhmB,MAAL,CAAYxuB,KAAZ,GAAoB,GAApB,GAA0B,IAAK81B,CAAAA,GAAL,CAAS,sBAAT,CAAjC,CAAA;AACD,KAAA;;AAED,IAAA,OAAO0e,oBAAP,CAAA;GAPF,CAAA;;AAUAyoG,EAAAA,gBAAgB,CAACt/I,SAAjB,CAA2BswD,YAA3B,GAA0C,YAAY;AACpD,IAAA,IAAI4qF,WAAW,GAAG,IAAA,CAAKjjH,QAAL,CAAc,QAAd,CAAlB,CAAA;AACA,IAAA,IAAImmH,WAAW,GAAGlD,WAAW,CAAC/iH,GAAZ,CAAgB,aAAhB,CAAlB,CAAA;IACA,OAAO,IAAA,CAAKpG,OAAL,EAAe6V,CAAAA,KAAf,KAAyB,IAAKgP,CAAAA,uBAAL,EAAzB;AAAA,MACL,KAAK/iC,EADA,GACKqnI,WAAW,CAAC/iH,GAAZ,CAAgB,MAAhB,CAA2BimH,IAAAA,WAAW,GAAG,CAAzC,GAA6CA,WAAW,GAAG,EAA3D,GAAgE,EAD5E,CAAA;GAHF,CAAA;;EAOAkB,gBAAgB,CAACvsI,IAAjB,GAAwB,cAAxB,CAAA;EACAusI,gBAAgB,CAAC5sH,YAAjB,GAAgC,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,EAAyB,UAAzB,CAAhC,CAAA;EACA4sH,gBAAgB,CAAC3sH,aAAjB,GAAiC;AAC/B5B,IAAAA,gBAAgB,EAAE,KADa;AAE/B;AACA7E,IAAAA,CAAC,EAAE,CAH4B;AAI/B0G,IAAAA,eAAe,EAAE,IAJc;AAK/B;AACAitC,IAAAA,UAAU,EAAE,CANmB;AAO/BC,IAAAA,UAAU,EAAE,CAPmB;AAQ/B1tC,IAAAA,MAAM,EAAE,CAAC,MAAD,EAAS,MAAT,CARuB;AAS/BiB,IAAAA,UAAU,EAAE,CAAC,EAAD,EAAK,EAAL,CATmB;AAU/B;AACAk7D,IAAAA,QAAQ,EAAE,CAXqB;AAY/BiyD,IAAAA,MAAM,EAAE;AACNztH,MAAAA,IAAI,EAAE,KADA;AAEN8mH,MAAAA,MAAM,EAAE,CAFF;AAGNwB,MAAAA,aAAa,EAAE,CAHT;AAINjpH,MAAAA,MAAM,EAAE,QAJF;AAKNiB,MAAAA,UAAU,EAAE,CALN;AAMN0lF,MAAAA,IAAI,EAAE,IANA;AAONqlC,MAAAA,WAAW,EAAE,GAAA;KAnBgB;AAqB/B/7I,IAAAA,KAAK,EAAE,KArBwB;AAsB/B;AACAi0C,IAAAA,cAAc,EAAE,IAvBe;AAwB/B5jC,IAAAA,QAAQ,EAAE,KAxBqB;AAyB/B+b,IAAAA,IAAI,EAAE,IAzByB;AA0B/BoE,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,KADD;MAELjP,QAAQ,EAAE,KAFL;AAGL;;KA7B6B;AAgC/B6N,IAAAA,SAAS,EAAE;AACTxsB,MAAAA,OAAO,EAAE,GAAA;AADA,KAAA;GAhCb,CAAA;AAoCA,EAAA,OAAOm6I,gBAAP,CAAA;AACD,CA1RD,CA0REtrH,WA1RF,CAFA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASurF,SAAT,CAAmBr8G,CAAnB,EAAsB;AACpB,EAAA,IAAI,EAAEA,CAAC,YAAY8tC,KAAf,CAAJ,EAA2B;AACzB9tC,IAAAA,CAAC,GAAG,CAACA,CAAD,EAAIA,CAAJ,CAAJ,CAAA;AACD,GAAA;;AAED,EAAA,OAAOA,CAAP,CAAA;AACD,CAAA;;AAED,IAAIu9I,WAAW,GAAG;AAChB5vG,EAAAA,UAAU,EAAE,OADI;EAEhB5wC,KAAK,EAAE,SAAUy2B,KAAAA,CAAAA,WAAV,EAAuB;IAC5B,IAAIxE,UAAU,GAAGqtF,SAAS,CAAC7oF,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAD,CAA1B,CAAA;IACA,IAAI9E,UAAU,GAAGksF,SAAS,CAAC7oF,WAAW,CAACyB,GAAZ,CAAgB,YAAhB,CAAD,CAA1B,CAAA;AACA,IAAA,IAAIjE,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACAmC,IAAI,CAACyhB,SAAL,CAAe,YAAf,EAA6BzjB,UAAU,IAAIA,UAAU,CAAC,CAAD,CAArD,CAAA,CAAA;IACAgC,IAAI,CAACyhB,SAAL,CAAe,UAAf,EAA2BzjB,UAAU,IAAIA,UAAU,CAAC,CAAD,CAAnD,CAAA,CAAA;IACAgC,IAAI,CAACyhB,SAAL,CAAe,gBAAf,EAAiCtiB,UAAU,IAAIA,UAAU,CAAC,CAAD,CAAzD,CAAA,CAAA;IACAa,IAAI,CAACyhB,SAAL,CAAe,cAAf,EAA+BtiB,UAAU,IAAIA,UAAU,CAAC,CAAD,CAAvD,CAAA,CAAA;;AAEA,IAAA,SAASqtH,QAAT,CAAkBxsH,IAAlB,EAAwBxE,GAAxB,EAA6B;AAC3B,MAAA,IAAIoI,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;AACA,MAAA,IAAIwC,UAAU,GAAGqtF,SAAS,CAACznF,SAAS,CAACO,UAAV,CAAqB,QAArB,EAA+B,IAA/B,CAAD,CAA1B,CAAA;AACA,MAAA,IAAIhF,UAAU,GAAGksF,SAAS,CAACznF,SAAS,CAACO,UAAV,CAAqB,YAArB,EAAmC,IAAnC,CAAD,CAA1B,CAAA;AACAnG,MAAAA,UAAU,CAAC,CAAD,CAAV,IAAiBgC,IAAI,CAAC6hD,aAAL,CAAmBrmD,GAAnB,EAAwB,YAAxB,EAAsCwC,UAAU,CAAC,CAAD,CAAhD,CAAjB,CAAA;AACAA,MAAAA,UAAU,CAAC,CAAD,CAAV,IAAiBgC,IAAI,CAAC6hD,aAAL,CAAmBrmD,GAAnB,EAAwB,UAAxB,EAAoCwC,UAAU,CAAC,CAAD,CAA9C,CAAjB,CAAA;AACAmB,MAAAA,UAAU,CAAC,CAAD,CAAV,IAAiBa,IAAI,CAAC6hD,aAAL,CAAmBrmD,GAAnB,EAAwB,gBAAxB,EAA0C2D,UAAU,CAAC,CAAD,CAApD,CAAjB,CAAA;AACAA,MAAAA,UAAU,CAAC,CAAD,CAAV,IAAiBa,IAAI,CAAC6hD,aAAL,CAAmBrmD,GAAnB,EAAwB,cAAxB,EAAwC2D,UAAU,CAAC,CAAD,CAAlD,CAAjB,CAAA;AACD,KAAA;;IAED,OAAO;AACLqtH,MAAAA,QAAQ,EAAExsH,IAAI,CAAC2D,aAAL,GAAqB6oH,QAArB,GAAgC,IAAA;KAD5C,CAAA;AAGD,GAAA;AAxBe,CAAlB;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BO,SAASt9H,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4B6oG,SAA5B,CAAA,CAAA;EACA76H,SAAS,CAACiyB,mBAAV,CAA8BgqG,gBAA9B,CAAA,CAAA;EACAj8H,SAAS,CAACmyB,cAAV,CAAyBmoG,WAAzB,CAAA,CAAA;EACAt6H,SAAS,CAACqyB,cAAV,CAAyB+qG,WAAzB,CAAA,CAAA;AACD;;ACnDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA,IAAIE,eAAe,GAAG,GAAtB,CAAA;;AAEA,IAAIC,YAAY;AAChB;AACA,YAAY;AACV,EAAA,SAASA,YAAT,GAAwB;IACtB,IAAKC,CAAAA,QAAL,GAAgB,EAAhB,CAAA;IACA,IAAKC,CAAAA,SAAL,GAAiB,EAAjB,CAAA;IACA,IAAKC,CAAAA,UAAL,GAAkB,CAAlB,CAAA;IACA,IAAKC,CAAAA,UAAL,GAAkB,CAAlB,CAAA;AACA,IAAA,IAAA,CAAKC,eAAL,GAAuB;AACrBC,MAAAA,OAAO,EAAE,IADY;AAErBC,MAAAA,UAAU,EAAE,IAAA;KAFd,CAAA;AAIA,IAAA,IAAIC,MAAM,GAAGz9H,WAAW,CAACC,YAAZ,EAAb,CAAA;IACA,IAAKw9H,CAAAA,MAAL,GAAcA,MAAd,CAAA;AACD,GAAA;AACD;AACF;AACA;AACA;AACA;AACA;;;AAGER,EAAAA,YAAY,CAAC5gJ,SAAb,CAAuBi8B,MAAvB,GAAgC,UAAU/H,IAAV,EAAgBzqB,KAAhB,EAAuBC,MAAvB,EAA+B61G,SAA/B,EAA0C8hC,SAA1C,EAAqDC,SAArD,EAAgE;AAC9F,IAAA,IAAIhsI,KAAK,GAAG,IAAKisI,CAAAA,SAAL,EAAZ,CAAA;;IAEA,IAAIC,eAAe,GAAG,IAAKC,CAAAA,YAAL,CAAkBJ,SAAlB,EAA6B,SAA7B,CAAtB,CAAA;;IAEA,IAAIK,kBAAkB,GAAG,IAAKD,CAAAA,YAAL,CAAkBJ,SAAlB,EAA6B,YAA7B,CAAzB,CAAA;;AAEA,IAAA,IAAI//I,CAAC,GAAG,IAAA,CAAKw/I,SAAL,GAAiB,KAAKD,QAA9B,CAAA;IACA,IAAIO,MAAM,GAAG,IAAA,CAAKA,MAAlB,CAAA;AACA,IAAA,IAAIp7H,GAAG,GAAGo7H,MAAM,CAACn7H,UAAP,CAAkB,IAAlB,CAAV,CAAA;AACA,IAAA,IAAIlZ,GAAG,GAAGmnB,IAAI,CAAClxB,MAAf,CAAA;IACAo+I,MAAM,CAAC33I,KAAP,GAAeA,KAAf,CAAA;IACA23I,MAAM,CAAC13I,MAAP,GAAgBA,MAAhB,CAAA;;IAEA,KAAK,IAAIhG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqJ,GAApB,EAAyB,EAAErJ,CAA3B,EAA8B;AAC5B,MAAA,IAAIhB,CAAC,GAAGwxB,IAAI,CAACxwB,CAAD,CAAZ,CAAA;AACA,MAAA,IAAIjD,CAAC,GAAGiC,CAAC,CAAC,CAAD,CAAT,CAAA;AACA,MAAA,IAAIhC,CAAC,GAAGgC,CAAC,CAAC,CAAD,CAAT,CAAA;AACA,MAAA,IAAIw8B,KAAK,GAAGx8B,CAAC,CAAC,CAAD,CAAb,CAJ4B;;AAM5B,MAAA,IAAIgsI,KAAK,GAAGnvB,SAAS,CAACrgF,KAAD,CAArB,CAN4B;;MAQ5BlZ,GAAG,CAACmE,WAAJ,GAAkBukH,KAAlB,CAAA;MACA1oH,GAAG,CAACsD,SAAJ,CAAchU,KAAd,EAAqB7U,CAAC,GAAGa,CAAzB,EAA4BZ,CAAC,GAAGY,CAAhC,CAAA,CAAA;AACD,KAAA;;IAED,IAAI,CAAC8/I,MAAM,CAAC33I,KAAR,IAAiB,CAAC23I,MAAM,CAAC13I,MAA7B,EAAqC;AACnC;AACA;AACA,MAAA,OAAO03I,MAAP,CAAA;AACD,KA9B6F;;;AAiC9F,IAAA,IAAIO,SAAS,GAAG37H,GAAG,CAAC47H,YAAJ,CAAiB,CAAjB,EAAoB,CAApB,EAAuBR,MAAM,CAAC33I,KAA9B,EAAqC23I,MAAM,CAAC13I,MAA5C,CAAhB,CAAA;AACA,IAAA,IAAIm4I,MAAM,GAAGF,SAAS,CAACztH,IAAvB,CAAA;IACA,IAAIxc,MAAM,GAAG,CAAb,CAAA;AACA,IAAA,IAAIoqI,QAAQ,GAAGD,MAAM,CAAC7+I,MAAtB,CAAA;IACA,IAAIg+I,UAAU,GAAG,IAAA,CAAKA,UAAtB,CAAA;IACA,IAAID,UAAU,GAAG,IAAA,CAAKA,UAAtB,CAAA;AACA,IAAA,IAAIgB,WAAW,GAAGhB,UAAU,GAAGC,UAA/B,CAAA;;IAEA,OAAOtpI,MAAM,GAAGoqI,QAAhB,EAA0B;MACxB,IAAIpT,KAAK,GAAGmT,MAAM,CAACnqI,MAAM,GAAG,CAAV,CAAN,GAAqB,GAAjC,CAAA;AACA,MAAA,IAAIsqI,cAAc,GAAGxiJ,IAAI,CAACumC,KAAL,CAAW2oG,KAAK,IAAIiS,eAAe,GAAG,CAAtB,CAAhB,CAA4C,GAAA,CAAjE,CAFwB;;MAIxB,IAAIjS,KAAK,GAAG,CAAZ,EAAe;QACb,IAAI/jG,QAAQ,GAAG22G,SAAS,CAAC5S,KAAD,CAAT,GAAmB8S,eAAnB,GAAqCE,kBAApD,CADa;;QAGbhT,KAAK,GAAG,CAAR,KAAcA,KAAK,GAAGA,KAAK,GAAGqT,WAAR,GAAsBf,UAA5C,CAAA,CAAA;QACAa,MAAM,CAACnqI,MAAM,EAAP,CAAN,GAAmBizB,QAAQ,CAACq3G,cAAD,CAA3B,CAAA;QACAH,MAAM,CAACnqI,MAAM,EAAP,CAAN,GAAmBizB,QAAQ,CAACq3G,cAAc,GAAG,CAAlB,CAA3B,CAAA;QACAH,MAAM,CAACnqI,MAAM,EAAP,CAAN,GAAmBizB,QAAQ,CAACq3G,cAAc,GAAG,CAAlB,CAA3B,CAAA;AACAH,QAAAA,MAAM,CAACnqI,MAAM,EAAP,CAAN,GAAmBizB,QAAQ,CAACq3G,cAAc,GAAG,CAAlB,CAAR,GAA+BtT,KAA/B,GAAuC,GAA1D,CAAA;AACD,OARD,MAQO;AACLh3H,QAAAA,MAAM,IAAI,CAAV,CAAA;AACD,OAAA;AACF,KAAA;;AAEDsO,IAAAA,GAAG,CAACi8H,YAAJ,CAAiBN,SAAjB,EAA4B,CAA5B,EAA+B,CAA/B,CAAA,CAAA;AACA,IAAA,OAAOP,MAAP,CAAA;GA3DF,CAAA;AA6DA;AACF;AACA;;;AAGER,EAAAA,YAAY,CAAC5gJ,SAAb,CAAuBuhJ,SAAvB,GAAmC,YAAY;AAC7C,IAAA,IAAIW,WAAW,GAAG,IAAKC,CAAAA,YAAL,KAAsB,IAAKA,CAAAA,YAAL,GAAoBx+H,WAAW,CAACC,YAAZ,EAA1C,CAAlB,CAD6C;;AAG7C,IAAA,IAAItiB,CAAC,GAAG,IAAA,CAAKw/I,SAAL,GAAiB,KAAKD,QAA9B,CAAA;AACA,IAAA,IAAIx9I,CAAC,GAAG/B,CAAC,GAAG,CAAZ,CAAA;IACA4gJ,WAAW,CAACz4I,KAAZ,GAAoBpG,CAApB,CAAA;IACA6+I,WAAW,CAACx4I,MAAZ,GAAqBrG,CAArB,CAAA;AACA,IAAA,IAAI2iB,GAAG,GAAGk8H,WAAW,CAACj8H,UAAZ,CAAuB,IAAvB,CAAV,CAAA;IACAD,GAAG,CAACwD,SAAJ,CAAc,CAAd,EAAiB,CAAjB,EAAoBnmB,CAApB,EAAuBA,CAAvB,CAAA,CAR6C;AAS7C;AACA;;IAEA2iB,GAAG,CAAC9P,aAAJ,GAAoB7S,CAApB,CAAA;AACA2iB,IAAAA,GAAG,CAAC1P,UAAJ,GAAiB,IAAKuqI,CAAAA,QAAtB,CAb6C;AAc7C;;AAEA76H,IAAAA,GAAG,CAACzP,WAAJ,GAAkB,MAAlB,CAhB6C;;AAkB7CyP,IAAAA,GAAG,CAAC3S,SAAJ,EAAA,CAAA;AACA2S,IAAAA,GAAG,CAAC7kB,GAAJ,CAAQ,CAACG,CAAT,EAAYA,CAAZ,EAAe,IAAA,CAAKw/I,SAApB,EAA+B,CAA/B,EAAkCthJ,IAAI,CAACI,EAAL,GAAU,CAA5C,EAA+C,IAA/C,CAAA,CAAA;AACAomB,IAAAA,GAAG,CAACjjB,SAAJ,EAAA,CAAA;AACAijB,IAAAA,GAAG,CAACzhB,IAAJ,EAAA,CAAA;AACA,IAAA,OAAO29I,WAAP,CAAA;GAtBF,CAAA;AAwBA;AACF;AACA;AACA;;;EAGEtB,YAAY,CAAC5gJ,SAAb,CAAuByhJ,YAAvB,GAAsC,UAAUJ,SAAV,EAAqBn/F,KAArB,EAA4B;IAChE,IAAIkgG,cAAc,GAAG,IAAA,CAAKnB,eAA1B,CAAA;AACA,IAAA,IAAIoB,iBAAiB,GAAGD,cAAc,CAAClgG,KAAD,CAAd,KAA0BkgG,cAAc,CAAClgG,KAAD,CAAd,GAAwB,IAAIogG,iBAAJ,CAAsB,GAAM,GAAA,CAA5B,CAAlD,CAAxB,CAAA;IACA,IAAIh9I,KAAK,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAZ,CAAA;IACA,IAAI85C,GAAG,GAAG,CAAV,CAAA;;IAEA,KAAK,IAAI17C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,GAApB,EAAyBA,CAAC,EAA1B,EAA8B;MAC5B29I,SAAS,CAACn/F,KAAD,CAAT,CAAiBx+C,CAAC,GAAG,GAArB,EAA0B,IAA1B,EAAgC4B,KAAhC,CAAA,CAAA;MACA+8I,iBAAiB,CAACjjG,GAAG,EAAJ,CAAjB,GAA2B95C,KAAK,CAAC,CAAD,CAAhC,CAAA;MACA+8I,iBAAiB,CAACjjG,GAAG,EAAJ,CAAjB,GAA2B95C,KAAK,CAAC,CAAD,CAAhC,CAAA;MACA+8I,iBAAiB,CAACjjG,GAAG,EAAJ,CAAjB,GAA2B95C,KAAK,CAAC,CAAD,CAAhC,CAAA;MACA+8I,iBAAiB,CAACjjG,GAAG,EAAJ,CAAjB,GAA2B95C,KAAK,CAAC,CAAD,CAAhC,CAAA;AACD,KAAA;;AAED,IAAA,OAAO+8I,iBAAP,CAAA;GAdF,CAAA;;AAiBA,EAAA,OAAOzB,YAAP,CAAA;AACD,CAvID,EAFA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkCA,SAAS2B,qBAAT,CAA+BttC,UAA/B,EAA2CuB,SAA3C,EAAsDxf,QAAtD,EAAgE;EAC9D,IAAIwrD,QAAQ,GAAGvtC,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAzC,CAAA;EACAuB,SAAS,GAAG9uE,GAAA,CAAW8uE,SAAX,EAAsB,UAAUK,KAAV,EAAiB;IACjD,OAAO;AACL/hD,MAAAA,QAAQ,EAAE,CAAC,CAAC+hD,KAAK,CAAC/hD,QAAN,CAAe,CAAf,CAAoBmgD,GAAAA,UAAU,CAAC,CAAD,CAA/B,IAAsCutC,QAAvC,EAAiD,CAAC3rC,KAAK,CAAC/hD,QAAN,CAAe,CAAf,CAAoBmgD,GAAAA,UAAU,CAAC,CAAD,CAA/B,IAAsCutC,QAAvF,CAAA;KADZ,CAAA;AAGD,GAJW,CAAZ,CAAA;AAKA,EAAA,IAAIz1I,GAAG,GAAGypG,SAAS,CAACxzG,MAApB,CAAA;EACA,IAAI0+E,SAAS,GAAG,CAAhB,CAAA;EACA,OAAO,UAAU99E,GAAV,EAAe;IACpB,IAAIF,CAAJ,CADoB;;IAGpB,KAAKA,CAAC,GAAGg+E,SAAT,EAAoBh+E,CAAC,GAAGqJ,GAAxB,EAA6BrJ,CAAC,EAA9B,EAAkC;AAChC,MAAA,IAAIoxD,QAAQ,GAAG0hD,SAAS,CAAC9yG,CAAD,CAAT,CAAaoxD,QAA5B,CAAA;;AAEA,MAAA,IAAIA,QAAQ,CAAC,CAAD,CAAR,IAAelxD,GAAf,IAAsBA,GAAG,IAAIkxD,QAAQ,CAAC,CAAD,CAAzC,EAA8C;AAC5C4sB,QAAAA,SAAS,GAAGh+E,CAAZ,CAAA;AACA,QAAA,MAAA;AACD,OAAA;AACF,KAAA;;IAED,IAAIA,CAAC,KAAKqJ,GAAV,EAAe;AACb;AACA,MAAA,KAAKrJ,CAAC,GAAGg+E,SAAS,GAAG,CAArB,EAAwBh+E,CAAC,IAAI,CAA7B,EAAgCA,CAAC,EAAjC,EAAqC;AACnC,QAAA,IAAIoxD,QAAQ,GAAG0hD,SAAS,CAAC9yG,CAAD,CAAT,CAAaoxD,QAA5B,CAAA;;AAEA,QAAA,IAAIA,QAAQ,CAAC,CAAD,CAAR,IAAelxD,GAAf,IAAsBA,GAAG,IAAIkxD,QAAQ,CAAC,CAAD,CAAzC,EAA8C;AAC5C4sB,UAAAA,SAAS,GAAGh+E,CAAZ,CAAA;AACA,UAAA,MAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;IAED,OAAOA,CAAC,IAAI,CAAL,IAAUA,CAAC,GAAGqJ,GAAd,IAAqBiqF,QAAQ,CAACtzF,CAAD,CAApC,CAAA;GAxBF,CAAA;AA0BD,CAAA;;AAED,SAAS++I,sBAAT,CAAgCxtC,UAAhC,EAA4ChpE,KAA5C,EAAmD;EACjD,IAAIu2G,QAAQ,GAAGvtC,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAzC,CAAA;EACAhpE,KAAK,GAAG,CAAC,CAACA,KAAK,CAAC,CAAD,CAAL,GAAWgpE,UAAU,CAAC,CAAD,CAAtB,IAA6ButC,QAA9B,EAAwC,CAACv2G,KAAK,CAAC,CAAD,CAAL,GAAWgpE,UAAU,CAAC,CAAD,CAAtB,IAA6ButC,QAArE,CAAR,CAAA;EACA,OAAO,UAAU5+I,GAAV,EAAe;AACpB,IAAA,OAAOA,GAAG,IAAIqoC,KAAK,CAAC,CAAD,CAAZ,IAAmBroC,GAAG,IAAIqoC,KAAK,CAAC,CAAD,CAAtC,CAAA;GADF,CAAA;AAGD,CAAA;;AAED,SAASy2G,aAAT,CAAuB5xH,QAAvB,EAAiC;AAC/B,EAAA,IAAIwN,UAAU,GAAGxN,QAAQ,CAACwN,UAA1B,CAD+B;;AAG/B,EAAA,OAAOA,UAAU,CAAC,CAAD,CAAV,KAAkB,KAAlB,IAA2BA,UAAU,CAAC,CAAD,CAAV,KAAkB,KAApD,CAAA;AACD,CAAA;;AAED,IAAIqkH,WAAW;AACf;AACA,UAAUz+H,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACw+H,WAAD,EAAcz+H,MAAd,CAAT,CAAA;;AAEA,EAAA,SAASy+H,WAAT,GAAuB;AACrB,IAAA,IAAIv+H,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa4vI,WAAW,CAAC5vI,IAAzB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDu+H,WAAW,CAAC3iJ,SAAZ,CAAsB8tC,MAAtB,GAA+B,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AAClE,IAAA,IAAIqmI,qBAAJ,CAAA;AACA70G,IAAAA,OAAO,CAAC4V,aAAR,CAAsB,WAAtB,EAAmC,UAAUk/F,SAAV,EAAqB;AACtDA,MAAAA,SAAS,CAACC,gBAAV,CAA2B,UAAUC,YAAV,EAAwB;QACjD,IAAIA,YAAY,KAAKrsH,WAArB,EAAkC;AAChCksH,UAAAA,qBAAqB,GAAGC,SAAxB,CAAA;AACD,SAAA;OAHH,CAAA,CAAA;KADF,CAAA,CAAA;;AAQA,IAAA,IAAIzrI,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC,IAAI,CAACsrI,qBAAL,EAA4B;AAC1B,QAAA,MAAM,IAAI5xH,KAAJ,CAAU,iCAAV,CAAN,CAAA;AACD,OAAA;AACF,KAdiE;;;IAiBlE,IAAKsK,CAAAA,eAAL,GAAuB,IAAvB,CAAA;IACA,IAAKjK,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;AACA,IAAA,IAAInE,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;IAEA,IAAID,QAAQ,CAAC/d,IAAT,KAAkB,aAAlB,IAAmC+d,QAAQ,CAAC/d,IAAT,KAAkB,UAAzD,EAAqE;AACnE,MAAA,IAAA,CAAKiwI,6BAAL,CAAmCtsH,WAAnC,EAAgDna,GAAhD,EAAqD,CAArD,EAAwDma,WAAW,CAAC3E,OAAZ,EAAA,CAAsB6V,KAAtB,EAAxD,CAAA,CAAA;AACD,KAFD,MAEO,IAAI86G,aAAa,CAAC5xH,QAAD,CAAjB,EAA6B;MAClC,IAAKmyH,CAAAA,YAAL,CAAkBnyH,QAAlB,EAA4B4F,WAA5B,EAAyCksH,qBAAzC,EAAgErmI,GAAhE,CAAA,CAAA;AACD,KAAA;GAzBH,CAAA;;EA4BAomI,WAAW,CAAC3iJ,SAAZ,CAAsBk6C,wBAAtB,GAAiD,UAAUxjB,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;IACpF,IAAK8U,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;GADF,CAAA;;AAIA0tH,EAAAA,WAAW,CAAC3iJ,SAAZ,CAAsBq6C,iBAAtB,GAA0C,UAAUnG,MAAV,EAAkBxd,WAAlB,EAA+BqX,OAA/B,EAAwCxxB,GAAxC,EAA6C;AACrF,IAAA,IAAIuU,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;AAEA,IAAA,IAAID,QAAJ,EAAc;AACZ;AACA,MAAA,IAAI4xH,aAAa,CAAC5xH,QAAD,CAAjB,EAA6B;AAC3B,QAAA,IAAA,CAAKgd,MAAL,CAAYpX,WAAZ,EAAyBqX,OAAzB,EAAkCxxB,GAAlC,CAAA,CAAA;AACD,OAFD,MAEO;QACL,IAAK+e,CAAAA,eAAL,GAAuB,EAAvB,CAAA;;AAEA,QAAA,IAAA,CAAK0nH,6BAAL,CAAmCtsH,WAAnC,EAAgDna,GAAhD,EAAqD23B,MAAM,CAACvmB,KAA5D,EAAmEumB,MAAM,CAAChX,GAA1E,EAA+E,IAA/E,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GAZH,CAAA;;AAeAylH,EAAAA,WAAW,CAAC3iJ,SAAZ,CAAsBo9B,YAAtB,GAAqC,UAAU/N,EAAV,EAAc;IACjD0H,gBAAA,CAAyB,IAAA,CAAKuE,eAAL,IAAwB,IAAA,CAAKjK,KAAtD,EAA6DhC,EAA7D,CAAA,CAAA;GADF,CAAA;;AAIAszH,EAAAA,WAAW,CAAC3iJ,SAAZ,CAAsBgjJ,6BAAtB,GAAsD,UAAUtsH,WAAV,EAAuBna,GAAvB,EAA4BoR,KAA5B,EAAmCuP,GAAnC,EAAwCxY,WAAxC,EAAqD;AACzG,IAAA,IAAIoM,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,IAAA,IAAImyH,aAAa,GAAGx8G,sBAAsB,CAAC5V,QAAD,EAAW,aAAX,CAA1C,CAAA;AACA,IAAA,IAAIrnB,KAAJ,CAAA;AACA,IAAA,IAAIC,MAAJ,CAAA;AACA,IAAA,IAAIiwD,WAAJ,CAAA;AACA,IAAA,IAAIC,WAAJ,CAAA;;AAEA,IAAA,IAAIspF,aAAJ,EAAmB;AACjB,MAAA,IAAI3pF,KAAK,GAAGzoC,QAAQ,CAAC8Y,OAAT,CAAiB,GAAjB,CAAZ,CAAA;AACA,MAAA,IAAI4vB,KAAK,GAAG1oC,QAAQ,CAAC8Y,OAAT,CAAiB,GAAjB,CAAZ,CAAA;;AAEA,MAAA,IAAIxyB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,QAAA,IAAI,EAAEiiD,KAAK,CAACxmD,IAAN,KAAe,UAAf,IAA6BymD,KAAK,CAACzmD,IAAN,KAAe,UAA9C,CAAJ,EAA+D;AAC7D,UAAA,MAAM,IAAIie,KAAJ,CAAU,kDAAV,CAAN,CAAA;AACD,SAAA;;QAED,IAAI,EAAEuoC,KAAK,CAAChgB,MAAN,IAAgBigB,KAAK,CAACjgB,MAAxB,CAAJ,EAAqC;AACnC,UAAA,MAAM,IAAIvoB,KAAJ,CAAU,+DAAV,CAAN,CAAA;AACD,SAAA;AACF,OAZgB;;;AAejBvnB,MAAAA,KAAK,GAAG8vD,KAAK,CAACo5E,YAAN,KAAuB,EAA/B,CAAA;AACAjpI,MAAAA,MAAM,GAAG8vD,KAAK,CAACm5E,YAAN,KAAuB,EAAhC,CAAA;AACAh5E,MAAAA,WAAW,GAAGJ,KAAK,CAACjzC,KAAN,CAAYyY,SAAZ,EAAd,CAAA;AACA66B,MAAAA,WAAW,GAAGJ,KAAK,CAAClzC,KAAN,CAAYyY,SAAZ,EAAd,CAAA;AACD,KAAA;;IAED,IAAI1N,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAI6C,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAI87D,aAAa,GAAGn3D,WAAW,CAACuB,QAAZ,CAAqB,CAAC,UAAD,EAAa,WAAb,CAArB,CAAA,CAAgDC,YAAhD,EAApB,CAAA;AACA,IAAA,IAAIw0D,SAAS,GAAGh2D,WAAW,CAACuB,QAAZ,CAAqB,CAAC,MAAD,EAAS,WAAT,CAArB,CAAA,CAA4CC,YAA5C,EAAhB,CAAA;AACA,IAAA,IAAI41D,WAAW,GAAGp3D,WAAW,CAACuB,QAAZ,CAAqB,CAAC,QAAD,EAAW,WAAX,CAArB,CAAA,CAA8CC,YAA9C,EAAlB,CAAA;IACA,IAAImf,YAAY,GAAG3gB,WAAW,CAACyB,GAAZ,CAAgB,CAAC,WAAD,EAAc,cAAd,CAAhB,CAAnB,CAAA;AACA,IAAA,IAAIT,iBAAiB,GAAGU,oBAAoB,CAAC1B,WAAD,CAA5C,CAAA;AACA,IAAA,IAAIsB,aAAa,GAAGtB,WAAW,CAACuB,QAAZ,CAAqB,UAArB,CAApB,CAAA;AACA,IAAA,IAAIV,KAAK,GAAGS,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAZ,CAAA;AACA,IAAA,IAAIX,SAAS,GAAGQ,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAhB,CAAA;AACA,IAAA,IAAIV,gBAAgB,GAAGO,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAvB,CAAA;AACA,IAAA,IAAIgrH,QAAQ,GAAGD,aAAa,GAAG,CAAChvH,IAAI,CAACgK,YAAL,CAAkB,GAAlB,CAAD,EAAyBhK,IAAI,CAACgK,YAAL,CAAkB,GAAlB,CAAzB,EAAiDhK,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAjD,CAAH,GAAkF,CAAChK,IAAI,CAACgK,YAAL,CAAkB,MAAlB,CAAD,EAA4BhK,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAA5B,CAA9G,CAAA;;IAEA,KAAK,IAAIxO,GAAG,GAAG/B,KAAf,EAAsB+B,GAAG,GAAGwN,GAA5B,EAAiCxN,GAAG,EAApC,EAAwC;MACtC,IAAI9sB,IAAI,GAAG,KAAK,CAAhB,CAAA;MACA,IAAI0B,KAAK,GAAG4vB,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,OAAxB,CAAZ,CAAA;;AAEA,MAAA,IAAIwzH,aAAJ,EAAmB;AACjB,QAAA,IAAIE,QAAQ,GAAGlvH,IAAI,CAACiE,GAAL,CAASgrH,QAAQ,CAAC,CAAD,CAAjB,EAAsBzzH,GAAtB,CAAf,CAAA;AACA,QAAA,IAAI2zH,QAAQ,GAAGnvH,IAAI,CAACiE,GAAL,CAASgrH,QAAQ,CAAC,CAAD,CAAjB,EAAsBzzH,GAAtB,CAAf,CAFiB;;AAIjB,QAAA,IAAI7rB,KAAK,CAACqwB,IAAI,CAACiE,GAAL,CAASgrH,QAAQ,CAAC,CAAD,CAAjB,EAAsBzzH,GAAtB,CAAD,CAAL,IAAqC0zH,QAAQ,GAAGzpF,WAAW,CAAC,CAAD,CAA3D,IAAkEypF,QAAQ,GAAGzpF,WAAW,CAAC,CAAD,CAAxF,IAA+F0pF,QAAQ,GAAGzpF,WAAW,CAAC,CAAD,CAArH,IAA4HypF,QAAQ,GAAGzpF,WAAW,CAAC,CAAD,CAAtJ,EAA2J;AACzJ,UAAA,SAAA;AACD,SAAA;;QAED,IAAIh/B,KAAK,GAAG9J,QAAQ,CAACuO,WAAT,CAAqB,CAAC+jH,QAAD,EAAWC,QAAX,CAArB,CAAZ,CAAA;AACAzgJ,QAAAA,IAAI,GAAG,IAAIm0B,MAAJ,CAAiB;AACtBzrB,UAAAA,KAAK,EAAE;YACL7K,CAAC,EAAEm6B,KAAK,CAAC,CAAD,CAAL,GAAWnxB,KAAK,GAAG,CADjB;YAEL/I,CAAC,EAAEk6B,KAAK,CAAC,CAAD,CAAL,GAAWlxB,MAAM,GAAG,CAFlB;AAGLD,YAAAA,KAAK,EAAEA,KAHF;AAILC,YAAAA,MAAM,EAAEA,MAAAA;WALY;AAOtBpF,UAAAA,KAAK,EAAEA,KAAAA;AAPe,SAAjB,CAAP,CAAA;AASD,OAlBD,MAkBO;AACL;AACA,QAAA,IAAIT,KAAK,CAACqwB,IAAI,CAACiE,GAAL,CAASgrH,QAAQ,CAAC,CAAD,CAAjB,EAAsBzzH,GAAtB,CAAD,CAAT,EAAuC;AACrC,UAAA,SAAA;AACD,SAAA;;AAED9sB,QAAAA,IAAI,GAAG,IAAIm0B,MAAJ,CAAiB;AACtB3B,UAAAA,EAAE,EAAE,CADkB;AAEtB9pB,UAAAA,KAAK,EAAEwlB,QAAQ,CAACwyH,UAAT,CAAoB,CAACpvH,IAAI,CAACiE,GAAL,CAASgrH,QAAQ,CAAC,CAAD,CAAjB,EAAsBzzH,GAAtB,CAAD,CAApB,EAAkD6zH,YAFnC;AAGtBj/I,UAAAA,KAAK,EAAEA,KAAAA;AAHe,SAAjB,CAAP,CAAA;AAKD,OAjCqC;;;MAoCtC,IAAI4vB,IAAI,CAAC2D,aAAT,EAAwB;AACtB,QAAA,IAAIC,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;AACA,QAAA,IAAI8zH,eAAe,GAAG1rH,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAAtB,CAAA;QACA41D,aAAa,GAAG21D,eAAe,CAACvrH,QAAhB,CAAyB,WAAzB,CAAA,CAAsCC,YAAtC,EAAhB,CAAA;AACAw0D,QAAAA,SAAS,GAAG50D,SAAS,CAACG,QAAV,CAAmB,CAAC,MAAD,EAAS,WAAT,CAAnB,CAA0CC,CAAAA,YAA1C,EAAZ,CAAA;AACA41D,QAAAA,WAAW,GAAGh2D,SAAS,CAACG,QAAV,CAAmB,CAAC,QAAD,EAAW,WAAX,CAAnB,CAAA,CAA4CC,YAA5C,EAAd,CALsB;AAMtB;AACA;AACA;AACA;;QAEAmf,YAAY,GAAGvf,SAAS,CAACK,GAAV,CAAc,CAAC,WAAD,EAAc,cAAd,CAAd,CAAf,CAAA;AACAZ,QAAAA,KAAK,GAAGisH,eAAe,CAACrrH,GAAhB,CAAoB,OAApB,CAAR,CAAA;AACAX,QAAAA,SAAS,GAAGgsH,eAAe,CAACrrH,GAAhB,CAAoB,WAApB,CAAZ,CAAA;AACAV,QAAAA,gBAAgB,GAAG+rH,eAAe,CAACrrH,GAAhB,CAAoB,UAApB,CAAnB,CAAA;AACAT,QAAAA,iBAAiB,GAAGU,oBAAoB,CAACN,SAAD,CAAxC,CAAA;AACD,OAAA;;AAEDl1B,MAAAA,IAAI,CAAC0I,KAAL,CAAWhK,CAAX,GAAe+1C,YAAf,CAAA;AACA,MAAA,IAAI5nC,QAAQ,GAAGinB,WAAW,CAACkc,WAAZ,CAAwBljB,GAAxB,CAAf,CAAA;MACA,IAAI6J,WAAW,GAAG,GAAlB,CAAA;;MAEA,IAAI9pB,QAAQ,IAAIA,QAAQ,CAAC,CAAD,CAAR,IAAe,IAA/B,EAAqC;AACnC8pB,QAAAA,WAAW,GAAG9pB,QAAQ,CAAC,CAAD,CAAR,GAAc,EAA5B,CAAA;AACD,OAAA;;AAED2pB,MAAAA,aAAa,CAACx2B,IAAD,EAAO80B,iBAAP,EAA0B;AACrC2B,QAAAA,YAAY,EAAE3C,WADuB;AAErC4C,QAAAA,cAAc,EAAE5J,GAFqB;QAGrCgK,cAAc,EAAEp1B,KAAK,CAACa,OAHe;AAIrCo0B,QAAAA,WAAW,EAAEA,WAAAA;AAJwB,OAA1B,CAAb,CAAA;AAMA32B,MAAAA,IAAI,CAACi3B,WAAL,CAAiB,UAAjB,CAA6Bv1B,CAAAA,KAA7B,GAAqCupF,aAArC,CAAA;AACAjrF,MAAAA,IAAI,CAACi3B,WAAL,CAAiB,MAAjB,CAAyBv1B,CAAAA,KAAzB,GAAiCooF,SAAjC,CAAA;AACA9pF,MAAAA,IAAI,CAACi3B,WAAL,CAAiB,QAAjB,CAA2Bv1B,CAAAA,KAA3B,GAAmCwpF,WAAnC,CAAA;MACA9zD,mBAAmB,CAACp3B,IAAD,EAAO20B,KAAP,EAAcC,SAAd,EAAyBC,gBAAzB,CAAnB,CAAA;AACA70B,MAAAA,IAAI,CAAC8hB,WAAL,GAAmBA,WAAnB,CAxEsC;;AA0EtC,MAAA,IAAIA,WAAJ,EAAiB;AACf;AACA9hB,QAAAA,IAAI,CAACq/C,MAAL,CAAY/uB,QAAZ,CAAqB7G,UAArB,GAAkC,IAAlC,CAAA;AACD,OAAA;;MAEDgF,KAAK,CAACO,GAAN,CAAUhvB,IAAV,CAAA,CAAA;AACAsxB,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBtM,GAAtB,EAA2B9sB,IAA3B,CAAA,CAAA;;MAEA,IAAI,IAAA,CAAK04B,eAAT,EAA0B;AACxB,QAAA,IAAA,CAAKA,eAAL,CAAqBv3B,IAArB,CAA0BnB,IAA1B,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GA/HH,CAAA;;AAkIA+/I,EAAAA,WAAW,CAAC3iJ,SAAZ,CAAsBijJ,YAAtB,GAAqC,UAAUp6D,GAAV,EAAenyD,WAAf,EAA4B+sH,cAA5B,EAA4ClnI,GAA5C,EAAiD;AACpF,IAAA,IAAImnI,cAAc,GAAGD,cAAc,CAACE,aAAf,CAA6BzC,OAAlD,CAAA;IACA,IAAI0C,iBAAiB,GAAGH,cAAc,CAACE,aAAf,CAA6BxC,UAArD,CAFoF;AAGpF;AACA;;AAEA,IAAA,IAAIjtH,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAI8xH,OAAO,GAAG,IAAA,CAAKC,QAAL,IAAiB,KAAKA,QAAtB,IAAkC,IAAIlD,YAAJ,EAAhD,CAAA;IACAiD,OAAO,CAAChD,QAAR,GAAmBnqH,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,CAAnB,CAAA;IACA0rH,OAAO,CAAC/C,SAAR,GAAoBpqH,WAAW,CAACyB,GAAZ,CAAgB,WAAhB,CAApB,CAAA;IACA0rH,OAAO,CAAC7C,UAAR,GAAqBtqH,WAAW,CAACyB,GAAZ,CAAgB,YAAhB,CAArB,CAAA;IACA0rH,OAAO,CAAC9C,UAAR,GAAqBrqH,WAAW,CAACyB,GAAZ,CAAgB,YAAhB,CAArB,CAAA;AACA,IAAA,IAAIv1B,IAAI,GAAGimF,GAAG,CAAC5kC,WAAJ,EAAA,CAAkB3qC,KAAlB,EAAX,CAAA;AACA,IAAA,IAAIo6E,aAAa,GAAG7K,GAAG,CAAC2K,gBAAJ,EAApB,CAAA;AACA5wF,IAAAA,IAAI,CAAC4nD,cAAL,CAAoBkpC,aAApB,EAdoF;;IAgBpF,IAAIjzF,CAAC,GAAGjB,IAAI,CAAC0iB,GAAL,CAAStf,IAAI,CAACnC,CAAd,EAAiB,CAAjB,CAAR,CAAA;IACA,IAAIC,CAAC,GAAGlB,IAAI,CAAC0iB,GAAL,CAAStf,IAAI,CAAClC,CAAd,EAAiB,CAAjB,CAAR,CAAA;AACA,IAAA,IAAII,EAAE,GAAGtB,IAAI,CAAC8iC,GAAL,CAAS1/B,IAAI,CAAC6G,KAAL,GAAa7G,IAAI,CAACnC,CAA3B,EAA8B8b,GAAG,CAACmG,QAAJ,EAA9B,CAAT,CAAA;AACA,IAAA,IAAI3hB,EAAE,GAAGvB,IAAI,CAAC8iC,GAAL,CAAS1/B,IAAI,CAAC8G,MAAL,GAAc9G,IAAI,CAAClC,CAA5B,EAA+B6b,GAAG,CAACoG,SAAJ,EAA/B,CAAT,CAAA;AACA,IAAA,IAAIlZ,KAAK,GAAG3I,EAAE,GAAGL,CAAjB,CAAA;AACA,IAAA,IAAIiJ,MAAM,GAAG3I,EAAE,GAAGL,CAAlB,CAAA;IACA,IAAI29B,IAAI,GAAG,CAACnK,IAAI,CAACgK,YAAL,CAAkB,KAAlB,CAAD,EAA2BhK,IAAI,CAACgK,YAAL,CAAkB,KAAlB,CAA3B,EAAqDhK,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAArD,CAAX,CAAA;AACA,IAAA,IAAIlsB,MAAM,GAAGkiB,IAAI,CAAC45B,QAAL,CAAczvB,IAAd,EAAoB,UAAU0lH,GAAV,EAAeC,GAAf,EAAoB9kH,KAApB,EAA2B;MAC1D,IAAI2I,EAAE,GAAGghD,GAAG,CAACxpD,WAAJ,CAAgB,CAAC0kH,GAAD,EAAMC,GAAN,CAAhB,CAAT,CAAA;AACAn8G,MAAAA,EAAE,CAAC,CAAD,CAAF,IAASpnC,CAAT,CAAA;AACAonC,MAAAA,EAAE,CAAC,CAAD,CAAF,IAASnnC,CAAT,CAAA;MACAmnC,EAAE,CAAC9jC,IAAH,CAAQm7B,KAAR,CAAA,CAAA;AACA,MAAA,OAAO2I,EAAP,CAAA;AACD,KANY,CAAb,CAAA;AAOA,IAAA,IAAIotE,UAAU,GAAGwuC,cAAc,CAAC1kH,SAAf,EAAjB,CAAA;AACA,IAAA,IAAIuiH,SAAS,GAAGmC,cAAc,CAAC1wI,IAAf,KAAwB,sBAAxB,GAAiD0vI,sBAAsB,CAACxtC,UAAD,EAAawuC,cAAc,CAAC5yH,MAAf,CAAsBob,KAAnC,CAAvE,GAAmHs2G,qBAAqB,CAACttC,UAAD,EAAawuC,cAAc,CAACQ,YAAf,EAAb,EAA4CR,cAAc,CAAC5yH,MAAf,CAAsBmmE,QAAlE,CAAxJ,CAAA;AACA6sD,IAAAA,OAAO,CAAC5nH,MAAR,CAAejqB,MAAf,EAAuBvI,KAAvB,EAA8BC,MAA9B,EAAsCg6I,cAAc,CAACp+I,KAAf,CAAqB8vG,aAArB,EAAtC,EAA4E;AAC1E8rC,MAAAA,OAAO,EAAEwC,cAAc,CAACp+I,KAAf,CAAqBsvG,cAArB,EADiE;AAE1EusC,MAAAA,UAAU,EAAEyC,iBAAiB,CAACt+I,KAAlB,CAAwBsvG,cAAxB,EAAA;AAF8D,KAA5E,EAGG0sC,SAHH,CAAA,CAAA;AAIA,IAAA,IAAIxoI,GAAG,GAAG,IAAIie,OAAJ,CAAkB;AAC1BzyB,MAAAA,KAAK,EAAE;AACLmF,QAAAA,KAAK,EAAEA,KADF;AAELC,QAAAA,MAAM,EAAEA,MAFH;AAGLjJ,QAAAA,CAAC,EAAEA,CAHE;AAILC,QAAAA,CAAC,EAAEA,CAJE;QAKLqT,KAAK,EAAE8vI,OAAO,CAACzC,MAAAA;OANS;AAQ1B5qH,MAAAA,MAAM,EAAE,IAAA;AARkB,KAAlB,CAAV,CAAA;AAUA,IAAA,IAAA,CAAKnF,KAAL,CAAWO,GAAX,CAAe9Y,GAAf,CAAA,CAAA;GA9CF,CAAA;;EAiDA6pI,WAAW,CAAC5vI,IAAZ,GAAmB,SAAnB,CAAA;AACA,EAAA,OAAO4vI,WAAP,CAAA;AACD,CAlPD,CAkPEzxG,SAlPF,CAFA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAIgzG,kBAAkB;AACtB;AACA,UAAUhgI,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC+/H,kBAAD,EAAqBhgI,MAArB,CAAT,CAAA;;AAEA,EAAA,SAASggI,kBAAT,GAA8B;AAC5B,IAAA,IAAI9/H,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAamxI,kBAAkB,CAACnxI,IAAhC,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED8/H,kBAAkB,CAAClkJ,SAAnB,CAA6B4wB,cAA7B,GAA8C,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;AACvE,IAAA,OAAO9c,gBAAgB,CAAC,IAAD,EAAO,IAAP,EAAa;AAClC0gD,MAAAA,aAAa,EAAE,OAAA;AADmB,KAAb,CAAvB,CAAA;GADF,CAAA;;AAMAuyE,EAAAA,kBAAkB,CAAClkJ,SAAnB,CAA6BugJ,kBAA7B,GAAkD,YAAY;IAC5D,IAAI4D,eAAe,GAAGn2B,uBAAgB,CAAC71F,GAAjB,CAAqB,IAAA,CAAKA,GAAL,CAAS,kBAAT,CAArB,CAAtB,CAAA;;AAEA,IAAA,IAAIgsH,eAAe,IAAIA,eAAe,CAAC7lH,UAAvC,EAAmD;AACjD,MAAA,OAAO6lH,eAAe,CAAC7lH,UAAhB,CAA2B,CAA3B,CAAkC,KAAA,KAAlC,IAA2C6lH,eAAe,CAAC7lH,UAAhB,CAA2B,CAA3B,MAAkC,KAApF,CAAA;AACD,KAAA;GALH,CAAA;;EAQA4lH,kBAAkB,CAACnxI,IAAnB,GAA0B,gBAA1B,CAAA;EACAmxI,kBAAkB,CAACxxH,YAAnB,GAAkC,CAAC,MAAD,EAAS,KAAT,EAAgB,UAAhB,CAAlC,CAAA;EACAwxH,kBAAkB,CAACvxH,aAAnB,GAAmC;AACjC5B,IAAAA,gBAAgB,EAAE,aADe;AAEjC;AACA7E,IAAAA,CAAC,EAAE,CAH8B;AAIjC;AACA;AACA;AACA;AACAqiE,IAAAA,QAAQ,EAAE,CARuB;AASjCsyD,IAAAA,QAAQ,EAAE,EATuB;AAUjCC,IAAAA,SAAS,EAAE,EAVsB;AAWjCC,IAAAA,UAAU,EAAE,CAXqB;AAYjCC,IAAAA,UAAU,EAAE,CAZqB;AAajC1pG,IAAAA,MAAM,EAAE;AACNjlB,MAAAA,SAAS,EAAE;AACT8kB,QAAAA,WAAW,EAAE,SAAA;AADJ,OAAA;AADL,KAAA;GAbV,CAAA;AAmBA,EAAA,OAAO+sG,kBAAP,CAAA;AACD,CA9CD,CA8CElwH,WA9CF,CAFA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BO,SAAS5Q,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4BstG,WAA5B,CAAA,CAAA;EACAt/H,SAAS,CAACiyB,mBAAV,CAA8B4uG,kBAA9B,CAAA,CAAA;AACD;;AC/CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoCA,IAAIE,sBAAsB,GAAG,CAAC,WAAD,EAAc,aAAd,CAA7B;;AAEA,IAAIC,YAAY,GAAG,CAAC;AAClBhnC,EAAAA,EAAE,EAAE,GADc;AAElBC,EAAAA,EAAE,EAAE,OAFc;AAGlBr+D,EAAAA,KAAK,EAAE,CAHW;AAIlBqlG,EAAAA,OAAO,EAAE,CAAC,MAAD,EAAS,OAAT,CAAA;AAJS,CAAD,EAKhB;AACDjnC,EAAAA,EAAE,EAAE,GADH;AAEDC,EAAAA,EAAE,EAAE,QAFH;AAGDr+D,EAAAA,KAAK,EAAE,CAHN;AAIDqlG,EAAAA,OAAO,EAAE,CAAC,KAAD,EAAQ,QAAR,CAAA;AAJR,CALgB,CAAnB,CAAA;AAWA,IAAIC,gBAAgB,GAAG,IAAIxtH,MAAJ,EAAvB,CAAA;;AAEA,IAAIytH,gBAAgB;AACpB;AACA,UAAUtgI,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACqgI,gBAAD,EAAmBtgI,MAAnB,CAAT,CAAA;;AAEA,EAAA,SAASsgI,gBAAT,GAA4B;AAC1B,IAAA,IAAIpgI,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAayxI,gBAAgB,CAACzxI,IAA9B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDogI,gBAAgB,CAACxkJ,SAAjB,CAA2B8tC,MAA3B,GAAoC,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;IACvE,IAAI8U,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAI6C,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAIwJ,OAAO,GAAG,IAAA,CAAKC,KAAnB,CAAA;AACA,IAAA,IAAIkK,SAAS,GAAGhP,WAAW,CAAC3F,gBAA5B,CAAA;AACA,IAAA,IAAIyM,QAAQ,GAAGkI,SAAS,CAACjI,WAAV,EAAf,CAAA;AACA,IAAA,IAAIuI,YAAY,GAAGxI,QAAQ,CAACwI,YAAT,EAAnB,CAAA;AACA,IAAA,IAAIy+G,YAAY,GAAG/+G,SAAS,CAAC+6B,MAAV,CAAiBzF,OAAjB,EAAnB,CAAA;AACA,IAAA,IAAI5pC,GAAG,GAAG;AACRszH,MAAAA,MAAM,EAAE;AACNj7I,QAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADD;QAENhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;OAHF;AAKR+T,MAAAA,WAAW,EAAEA,WALL;AAMR5F,MAAAA,QAAQ,EAAE4U,SANF;AAORi/G,MAAAA,cAAc,EAAE,CAAC,CAACF,YAAY,CAAChkJ,CAAd,EAAiBgkJ,YAAY,CAAChkJ,CAAb,GAAiBgkJ,YAAY,CAACh7I,KAA/C,CAAD,EAAwD,CAACg7I,YAAY,CAAC/jJ,CAAd,EAAiB+jJ,YAAY,CAAC/jJ,CAAb,GAAiB+jJ,YAAY,CAAC/6I,MAA/C,CAAxD,CAPR;AAQRs8B,MAAAA,YAAY,EAAEA,YARN;AASR/H,MAAAA,QAAQ,EAAEomH,YAAY,CAAC,CAACr+G,YAAF,CATd;AAUR4+G,MAAAA,WAAW,EAAEP,YAAY,CAAC,CAAA,GAAI,CAACr+G,YAAN,CAAA;KAV3B,CAAA;IAYA9R,IAAI,CAAC0H,IAAL,CAAUL,OAAV,EAAmB3J,GAAnB,CAAuB,UAAUuC,SAAV,EAAqB;AAC1C,MAAA,IAAI,CAACD,IAAI,CAAC2nB,QAAL,CAAc1nB,SAAd,CAAL,EAA+B;AAC7B,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAI2D,SAAS,GAAGC,YAAY,CAAC7D,IAAD,EAAOC,SAAP,CAA5B,CAAA;MACA,IAAI0wH,UAAU,GAAGC,aAAa,CAAC5wH,IAAD,EAAOC,SAAP,EAAkB2D,SAAlB,EAA6B1G,GAA7B,CAA9B,CAAA;MACA,IAAI2zH,GAAG,GAAGC,SAAS,CAAC9wH,IAAD,EAAO9C,GAAP,EAAYyzH,UAAZ,CAAnB,CAAA;AACA3wH,MAAAA,IAAI,CAAC8H,gBAAL,CAAsB7H,SAAtB,EAAiC4wH,GAAjC,CAAA,CAAA;MACA1zH,KAAK,CAACO,GAAN,CAAUmzH,GAAV,CAAA,CAAA;AACA1hB,MAAAA,YAAY,CAAC0hB,GAAD,EAAM3zH,GAAN,EAAWyzH,UAAX,CAAZ,CAAA;AACD,KAXD,EAWG5oH,MAXH,CAWU,UAAUsgB,QAAV,EAAoBC,QAApB,EAA8B;AACtC,MAAA,IAAIuoG,GAAG,GAAGxpH,OAAO,CAACY,gBAAR,CAAyBqgB,QAAzB,CAAV,CAAA;;AAEA,MAAA,IAAI,CAACtoB,IAAI,CAAC2nB,QAAL,CAAcU,QAAd,CAAL,EAA8B;QAC5BlrB,KAAK,CAAC+K,MAAN,CAAa2oH,GAAb,CAAA,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIjtH,SAAS,GAAGC,YAAY,CAAC7D,IAAD,EAAOqoB,QAAP,CAA5B,CAAA;MACA,IAAIsoG,UAAU,GAAGC,aAAa,CAAC5wH,IAAD,EAAOqoB,QAAP,EAAiBzkB,SAAjB,EAA4B1G,GAA5B,CAA9B,CAAA;AACA,MAAA,IAAI6zH,iBAAiB,GAAGC,WAAW,CAAChxH,IAAD,EAAO2wH,UAAP,CAAnC,CAAA;;AAEA,MAAA,IAAIE,GAAG,IAAIE,iBAAiB,KAAKF,GAAG,CAACI,mBAArC,EAA0D;QACxD9zH,KAAK,CAAC+K,MAAN,CAAa2oH,GAAb,CAAA,CAAA;AACA7wH,QAAAA,IAAI,CAAC8H,gBAAL,CAAsBugB,QAAtB,EAAgC,IAAhC,CAAA,CAAA;AACAwoG,QAAAA,GAAG,GAAG,IAAN,CAAA;AACD,OAAA;;AAED,MAAA,IAAIA,GAAJ,EAAS;AACPK,QAAAA,SAAS,CAACL,GAAD,EAAM3zH,GAAN,EAAWyzH,UAAX,CAAT,CAAA;AACD,OAFD,MAEO;QACLE,GAAG,GAAGC,SAAS,CAAC9wH,IAAD,EAAO9C,GAAP,EAAYyzH,UAAZ,EAAwB,IAAxB,CAAf,CAAA;AACD,OAAA;;AAED3wH,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBugB,QAAtB,EAAgCwoG,GAAhC,CAAA,CAAA;AACAA,MAAAA,GAAG,CAACM,qBAAJ,GAA4BR,UAA5B,CAzBsC;;MA2BtCxzH,KAAK,CAACO,GAAN,CAAUmzH,GAAV,CAAA,CAAA;AACA1hB,MAAAA,YAAY,CAAC0hB,GAAD,EAAM3zH,GAAN,EAAWyzH,UAAX,CAAZ,CAAA;AACD,KAxCD,CAwCGzoH,CAAAA,MAxCH,CAwCU,UAAUjI,SAAV,EAAqB;AAC7B,MAAA,IAAI4wH,GAAG,GAAGxpH,OAAO,CAACY,gBAAR,CAAyBhI,SAAzB,CAAV,CAAA;AACA4wH,MAAAA,GAAG,IAAIO,SAAS,CAAC/pH,OAAD,EAAUpH,SAAV,EAAqB4wH,GAAG,CAACM,qBAAJ,CAA0B5qG,cAA/C,EAA+DsqG,GAA/D,CAAhB,CAAA;AACD,KA3CD,EA2CGxoH,OA3CH,EAAA,CAAA;IA4CA,IAAKf,CAAAA,KAAL,GAAatH,IAAb,CAAA;AACA,IAAA,OAAO,KAAK7C,KAAZ,CAAA;GAjEF,CAAA;;EAoEAmzH,gBAAgB,CAACxkJ,SAAjB,CAA2Bo8B,MAA3B,GAAoC,UAAU2R,OAAV,EAAmBxxB,GAAnB,EAAwB;IAC1D,IAAI8U,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACA,IAAI6C,IAAI,GAAG,IAAA,CAAKsH,KAAhB,CAAA;;AAEA,IAAA,IAAIuS,OAAO,CAAC5V,GAAR,CAAY,WAAZ,CAAJ,EAA8B;AAC5B,MAAA,IAAIjE,IAAJ,EAAU;AACRA,QAAAA,IAAI,CAACwI,iBAAL,CAAuB,UAAUqoH,GAAV,EAAe;AACpCO,UAAAA,SAAS,CAACpxH,IAAD,EAAOgG,SAAS,CAAC6qH,GAAD,CAAT,CAAe5wH,SAAtB,EAAiC4Z,OAAjC,EAA0Cg3G,GAA1C,CAAT,CAAA;SADF,CAAA,CAAA;AAGD,OAAA;AACF,KAND,MAMO;AACL1zH,MAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;AACD,KAAA;GAZH,CAAA;;EAeAuvH,gBAAgB,CAACzxI,IAAjB,GAAwB,cAAxB,CAAA;AACA,EAAA,OAAOyxI,gBAAP,CAAA;AACD,CA/FD,CA+FEtzG,SA/FF,CAFA;;;AAoGA,SAAS4zG,aAAT,CAAuB5wH,IAAvB,EAA6BC,SAA7B,EAAwC2D,SAAxC,EAAmD1G,GAAnD,EAAwD;AACtD,EAAA,IAAIwqB,MAAM,GAAG1nB,IAAI,CAACyH,aAAL,CAAmBxH,SAAnB,CAAb,CAAA;AACA,EAAA,IAAIoxH,YAAY,GAAGztH,SAAS,CAACK,GAAV,CAAc,cAAd,CAAnB,CAAA;AACA,EAAA,IAAIqtH,UAAU,GAAG1tH,SAAS,CAACK,GAAV,CAAc,YAAd,CAAjB,CAAA;EACA,IAAIstH,cAAc,GAAG3tH,SAAS,CAACK,GAAV,CAAc,gBAAd,KAAmC,OAAxD,CAAA;AACA,EAAA,IAAI7F,YAAY,GAAGwF,SAAS,CAACK,GAAV,CAAc,cAAd,CAAnB,CAAA;AACA,EAAA,IAAI3F,QAAQ,GAAG,CAACF,YAAY,IAAI,CAAjB,IAAsB9yB,IAAI,CAACI,EAA3B,GAAgC,GAAhC,IAAuC,CAAtD,CAAA;EACA,IAAI8lJ,iBAAiB,GAAG5tH,SAAS,CAACK,GAAV,CAAc,mBAAd,KAAsC,CAA9D,CAAA;AACA,EAAA,IAAIuiB,kBAAkB,GAAG5iB,SAAS,CAAC4iB,kBAAV,EAAzB,CAAA;AACA,EAAA,IAAImqG,UAAU,GAAG;AACf1wH,IAAAA,SAAS,EAAEA,SADI;AAEfynB,IAAAA,MAAM,EAAEA,MAFO;AAGf9jB,IAAAA,SAAS,EAAEA,SAHI;IAIf5F,UAAU,EAAEgC,IAAI,CAACuC,aAAL,CAAmBtC,SAAnB,EAA8B,QAA9B,CAAA,IAA2C,QAJxC;IAKf7vB,KAAK,EAAE4vB,IAAI,CAACuC,aAAL,CAAmBtC,SAAnB,EAA8B,OAA9B,CALQ;AAMfqxH,IAAAA,UAAU,EAAEA,UANG;AAOfD,IAAAA,YAAY,EAAEA,YAPC;AAQfI,IAAAA,qBAAqB,EAAE7tH,SAAS,CAACK,GAAV,CAAc,uBAAd,CARR;AASfutH,IAAAA,iBAAiB,EAAEA,iBATJ;AAUflzH,IAAAA,QAAQ,EAAEA,QAVK;AAWfioB,IAAAA,cAAc,EAAEC,kBAAkB,GAAG5iB,SAAH,GAAe,IAXlC;AAYfH,IAAAA,UAAU,EAAE+iB,kBAAkB,IAAI5iB,SAAS,CAACK,GAAV,CAAc,CAAC,UAAD,EAAa,OAAb,CAAd,CAZnB;IAaf/C,EAAE,EAAE0C,SAAS,CAACO,UAAV,CAAqB,GAArB,EAA0B,IAA1B,CAAmC,IAAA,CAAA;GAbzC,CAAA;EAeAutH,gBAAgB,CAAC9tH,SAAD,EAAYytH,YAAZ,EAA0B3pG,MAA1B,EAAkCxqB,GAAlC,EAAuCyzH,UAAvC,CAAhB,CAAA;EACAgB,iBAAiB,CAAC3xH,IAAD,EAAOC,SAAP,EAAkBynB,MAAlB,EAA0B2pG,YAA1B,EAAwCC,UAAxC,EAAoDX,UAAU,CAACiB,cAA/D,EAA+EjB,UAAU,CAACkB,MAA1F,EAAkGL,iBAAlG,EAAqHt0H,GAArH,EAA0HyzH,UAA1H,CAAjB,CAAA;AACAmB,EAAAA,gBAAgB,CAACluH,SAAD,EAAY+sH,UAAU,CAACoB,WAAvB,EAAoCzzH,QAApC,EAA8CpB,GAA9C,EAAmDyzH,UAAnD,CAAhB,CAAA;AACA,EAAA,IAAIxxH,UAAU,GAAGwxH,UAAU,CAACxxH,UAA5B,CAAA;AACA,EAAA,IAAIiF,YAAY,GAAGC,qBAAqB,CAACT,SAAS,CAACK,GAAV,CAAc,cAAd,CAAD,EAAgC9E,UAAhC,CAAxC,CAAA;AACA6yH,EAAAA,iBAAiB,CAACpuH,SAAD,EAAYzE,UAAZ,EAAwBuoB,MAAxB,EAAgC2pG,YAAhC,EAA8CC,UAA9C,EAA0DltH,YAA1D,EAAwEmtH,cAAxE,EAAwFZ,UAAU,CAACsB,cAAnG,EAAmHtB,UAAU,CAACiB,cAA9H,EAA8IjB,UAAU,CAACuB,eAAzJ,EAA0Kh1H,GAA1K,EAA+KyzH,UAA/K,CAAjB,CAAA;AACA,EAAA,OAAOA,UAAP,CAAA;AACD;;;AAGD,SAASe,gBAAT,CAA0B9tH,SAA1B,EAAqCytH,YAArC,EAAmD3pG,MAAnD,EAA2DxqB,GAA3D,EAAgEi1H,gBAAhE,EAAkF;AAChF,EAAA,IAAIpoH,QAAQ,GAAG7M,GAAG,CAAC6M,QAAnB,CAAA;AACA,EAAA,IAAIqoH,kBAAkB,GAAGxuH,SAAS,CAACK,GAAV,CAAc,oBAAd,CAAzB,CAAA;AACA,EAAA,IAAIuF,SAAS,GAAGtM,GAAG,CAACN,QAAJ,CAAa6M,YAAb,CAA0BvM,GAAG,CAACN,QAAJ,CAAa2M,WAAb,EAA1B,CAAhB,CAAA;AACA,EAAA,IAAI8oH,MAAM,GAAG7oH,SAAS,CAACqM,aAAV,CAAwBrM,SAAS,CAACsM,WAAV,CAAsB,CAAtB,CAAxB,CAAb,CAAA;AACA,EAAA,IAAIw8G,SAAS,GAAG,CAAI,GAAA,EAAE5qG,MAAM,CAAC3d,QAAQ,CAACq/E,EAAV,CAAN,IAAuB,CAAzB,CAApB,CAAA;AACA,EAAA,IAAIwoC,cAAJ,CAAA;;AAEA,EAAA,IAAIp+G,SAAA,CAAe4+G,kBAAf,CAAJ,EAAwC;IACtC,IAAIG,oBAAoB,GAAG,CAACC,oBAAoB,CAAChpH,SAAD,EAAY4oH,kBAAkB,CAAC,CAAD,CAA9B,CAApB,GAAyDC,MAA1D,EAAkEG,oBAAoB,CAAChpH,SAAD,EAAY4oH,kBAAkB,CAAC,CAAD,CAA9B,CAApB,GAAyDC,MAA3H,CAA3B,CAAA;AACAE,IAAAA,oBAAoB,CAAC,CAAD,CAApB,GAA0BA,oBAAoB,CAAC,CAAD,CAA9C,IAAqDA,oBAAoB,CAACt8G,OAArB,EAArD,CAAA;AACA27G,IAAAA,cAAc,GAAGW,oBAAoB,CAACD,SAAD,CAArC,CAAA;AACD,GAJD,MAIO,IAAIF,kBAAkB,IAAI,IAA1B,EAAgC;IACrCR,cAAc,GAAGY,oBAAoB,CAAChpH,SAAD,EAAY4oH,kBAAZ,CAApB,GAAsDC,MAAvE,CAAA;GADK,MAEA,IAAIhB,YAAJ,EAAkB;IACvBO,cAAc,GAAG10H,GAAG,CAACuzH,cAAJ,CAAmB1mH,QAAQ,CAACghB,KAA5B,CAAA,CAAmCunG,SAAnC,CAAA,GAAgDD,MAAjE,CAAA;AACD,GAFM,MAEA;AACLT,IAAAA,cAAc,GAAGlqG,MAAM,CAAC3d,QAAQ,CAACq/E,EAAV,CAAvB,CAAA;AACD,GAAA;;EAED+oC,gBAAgB,CAACP,cAAjB,GAAkCA,cAAlC,CAAA;;AAEA,EAAA,IAAIP,YAAJ,EAAkB;IAChBc,gBAAgB,CAACD,eAAjB,GAAmCxqG,MAAM,CAAC3d,QAAQ,CAACq/E,EAAV,CAAzC,CAAA;AACD,GAxB+E;AAyBhF;;;EAGA+oC,gBAAgB,CAACN,MAAjB,GAA0BD,cAAc,GAAG,CAAjB,GAAqB,CAArB,GAAyB,CAAC,CAApD,CAAA;AACD,CAAA;;AAED,SAASY,oBAAT,CAA8B/8G,IAA9B,EAAoCzK,KAApC,EAA2C;AACzC,EAAA,OAAOyK,IAAI,CAACI,aAAL,CAAmBJ,IAAI,CAACK,WAAL,CAAiBL,IAAI,CAACrjB,KAAL,CAAWuzC,KAAX,CAAiB36B,KAAjB,CAAjB,CAAnB,CAAP,CAAA;AACD;;;AAGD,SAAS2mH,iBAAT,CAA2B3xH,IAA3B,EAAiCC,SAAjC,EAA4CynB,MAA5C,EAAoD2pG,YAApD,EAAkEC,UAAlE,EAA8EM,cAA9E,EAA8FC,MAA9F,EAAsGL,iBAAtG,EAAyHt0H,GAAzH,EAA8Hi1H,gBAA9H,EAAgJ;AAC9I,EAAA,IAAIpoH,QAAQ,GAAG7M,GAAG,CAAC6M,QAAnB,CAAA;AACA,EAAA,IAAI2mH,WAAW,GAAGxzH,GAAG,CAACwzH,WAAtB,CAAA;AACA,EAAA,IAAI+B,YAAY,GAAGnnJ,IAAI,CAACyC,GAAL,CAAS25C,MAAM,CAACgpG,WAAW,CAACtnC,EAAb,CAAf,CAAnB,CAAA;EACA,IAAIjqF,UAAU,GAAGa,IAAI,CAACuC,aAAL,CAAmBtC,SAAnB,EAA8B,YAA9B,CAAjB,CAAA;AACA,EAAA,IAAIyyH,gBAAJ,CAAA;;AAEA,EAAA,IAAIl/G,SAAA,CAAerU,UAAf,CAAJ,EAAgC;AAC9BuzH,IAAAA,gBAAgB,GAAGvzH,UAAU,CAACtK,KAAX,EAAnB,CAAA;AACD,GAFD,MAEO;IACL,IAAIsK,UAAU,IAAI,IAAlB,EAAwB;AACtB;AACAuzH,MAAAA,gBAAgB,GAAG,CAAC,MAAD,EAAS,MAAT,CAAnB,CAAA;AACD,KAHD,MAGO;AACLA,MAAAA,gBAAgB,GAAG,CAACvzH,UAAD,EAAaA,UAAb,CAAnB,CAAA;AACD,KAAA;AACF,GAhB6I;AAiB9I;AACA;AACA;;;AAGAuzH,EAAAA,gBAAgB,CAAChC,WAAW,CAAC3lG,KAAb,CAAhB,GAAsCsF,YAAY,CAACqiG,gBAAgB,CAAChC,WAAW,CAAC3lG,KAAb,CAAjB,EAAsC0nG,YAAtC,CAAlD,CAAA;EACAC,gBAAgB,CAAC3oH,QAAQ,CAACghB,KAAV,CAAhB,GAAmCsF,YAAY,CAACqiG,gBAAgB,CAAC3oH,QAAQ,CAACghB,KAAV,CAAjB,EAAmCsmG,YAAY,GAAGoB,YAAH,GAAkBnnJ,IAAI,CAACyC,GAAL,CAAS6jJ,cAAT,CAAjE,CAA/C,CAAA;AACAO,EAAAA,gBAAgB,CAAChzH,UAAjB,GAA8BuzH,gBAA9B,CAxB8I;;EA0B9I,IAAIX,WAAW,GAAGI,gBAAgB,CAACJ,WAAjB,GAA+B,CAACW,gBAAgB,CAAC,CAAD,CAAhB,GAAsBlB,iBAAvB,EAA0CkB,gBAAgB,CAAC,CAAD,CAAhB,GAAsBlB,iBAAhE,CAAjD,CA1B8I;;AA4B9IO,EAAAA,WAAW,CAAChoH,QAAQ,CAACghB,KAAV,CAAX,IAA+B,CAAC7tB,GAAG,CAAC4U,YAAJ,GAAmB,CAAC,CAApB,GAAwB,CAAzB,IAA8B+/G,MAA7D,CAAA;AACD,CAAA;;AAED,SAASC,gBAAT,CAA0BluH,SAA1B,EAAqCmuH,WAArC,EAAkDzzH,QAAlD,EAA4DpB,GAA5D,EAAiEi1H,gBAAjE,EAAmF;AACjF;AACA;AACA;EACA,IAAIF,cAAc,GAAGruH,SAAS,CAACK,GAAV,CAAcisH,sBAAd,KAAyC,CAA9D,CAAA;;AAEA,EAAA,IAAI+B,cAAJ,EAAoB;IAClB5B,gBAAgB,CAACpvH,IAAjB,CAAsB;AACpBpf,MAAAA,MAAM,EAAEkwI,WAAW,CAAC,CAAD,CADC;AAEpBjwI,MAAAA,MAAM,EAAEiwI,WAAW,CAAC,CAAD,CAFC;AAGpBzzH,MAAAA,QAAQ,EAAEA,QAAAA;KAHZ,CAAA,CAAA;AAKA+xH,IAAAA,gBAAgB,CAAC9xF,eAAjB,EAAA,CAAA;AACA0zF,IAAAA,cAAc,IAAI5B,gBAAgB,CAAC7+I,YAAjB,EAAlB,CAAA;IACAygJ,cAAc,IAAIF,WAAW,CAAC70H,GAAG,CAAC6M,QAAJ,CAAaghB,KAAd,CAA7B,CAAA;AACD,GAAA;;AAEDonG,EAAAA,gBAAgB,CAACF,cAAjB,GAAkCA,cAAc,IAAI,CAApD,CAAA;AACD,CAAA;;AAED,SAASD,iBAAT,CAA2BpuH,SAA3B,EAAsCzE,UAAtC,EAAkDuoB,MAAlD,EAA0D2pG,YAA1D,EAAwEC,UAAxE,EAAoFltH,YAApF,EAAkGmtH,cAAlG,EAAkHU,cAAlH,EAAkIL,cAAlI,EAAkJM,eAAlJ,EAAmKh1H,GAAnK,EAAwKi1H,gBAAxK,EAA0L;AACxL,EAAA,IAAIzB,WAAW,GAAGxzH,GAAG,CAACwzH,WAAtB,CAAA;AACA,EAAA,IAAI3mH,QAAQ,GAAG7M,GAAG,CAAC6M,QAAnB,CAAA;AACA,EAAA,IAAI8nH,MAAM,GAAGM,gBAAgB,CAACN,MAA9B,CAAA;AACA,EAAA,IAAIc,UAAU,GAAGrnJ,IAAI,CAAC0iB,GAAL,CAASmR,UAAU,CAAC4K,QAAQ,CAACghB,KAAV,CAAV,GAA6BknG,cAAtC,EAAsD,CAAtD,CAAjB,CAAA;AACA,EAAA,IAAIW,OAAO,GAAGD,UAAd,CALwL;AAMxL;AACA;;AAEA,EAAA,IAAItB,YAAJ,EAAkB;AAChB,IAAA,IAAIwB,iBAAiB,GAAGvnJ,IAAI,CAACyC,GAAL,CAAS6jJ,cAAT,CAAxB,CAAA;AACA,IAAA,IAAIkB,YAAY,GAAGt/G,QAAA,CAAgB5P,SAAS,CAACK,GAAV,CAAc,cAAd,CAAhB,EAA+C,KAA/C,IAAwD,EAA3E,CAAA;IACA,IAAI8uH,SAAS,GAAG,KAAhB,CAAA;;IAEA,IAAID,YAAY,CAACE,WAAb,CAAyB,GAAzB,CAAkCF,KAAAA,YAAY,CAAChkJ,MAAb,GAAsB,CAA5D,EAA+D;AAC7DikJ,MAAAA,SAAS,GAAG,IAAZ,CAAA;AACAD,MAAAA,YAAY,GAAGA,YAAY,CAACj+H,KAAb,CAAmB,CAAnB,EAAsBi+H,YAAY,CAAChkJ,MAAb,GAAsB,CAA5C,CAAf,CAAA;AACD,KAAA;;AAED,IAAA,IAAImkJ,mBAAmB,GAAG5iG,YAAY,CAACyiG,YAAD,EAAe3zH,UAAU,CAAC4K,QAAQ,CAACghB,KAAV,CAAzB,CAAtC,CAAA;AACA,IAAA,IAAImoG,cAAc,GAAG5nJ,IAAI,CAAC0iB,GAAL,CAAS2kI,UAAU,GAAGM,mBAAmB,GAAG,CAA5C,EAA+C,CAA/C,CAArB,CAXgB;AAYhB;;IAEA,IAAIE,MAAM,GAAGJ,SAAS,GAAG,CAAH,GAAOE,mBAAmB,GAAG,CAAnD,CAdgB;AAehB;;AAEA,IAAA,IAAIG,eAAe,GAAGC,SAAS,CAAChC,YAAD,CAA/B,CAAA;AACA,IAAA,IAAIiC,WAAW,GAAGF,eAAe,GAAG/B,YAAH,GAAkBkC,UAAU,CAAC,CAACV,iBAAiB,GAAGM,MAArB,IAA+BD,cAAhC,CAA7D,CAlBgB;AAmBhB;;AAEA,IAAA,IAAIM,KAAK,GAAGX,iBAAiB,GAAGS,WAAW,GAAGX,UAA9C,CAAA;AACAM,IAAAA,mBAAmB,GAAGO,KAAK,GAAG,CAAR,IAAaT,SAAS,GAAGO,WAAH,GAAiBhoJ,IAAI,CAAC0iB,GAAL,CAASslI,WAAW,GAAG,CAAvB,EAA0B,CAA1B,CAAvC,CAAtB,CAAA;AACAJ,IAAAA,cAAc,GAAGP,UAAU,GAAGM,mBAAmB,GAAG,CAApD,CAAA;IACAE,MAAM,GAAGJ,SAAS,GAAG,CAAH,GAAOE,mBAAmB,GAAG,CAA/C,CAxBgB;;AA0BhB,IAAA,IAAI,CAACG,eAAD,IAAoB/B,YAAY,KAAK,OAAzC,EAAkD;AAChDiC,MAAAA,WAAW,GAAGpB,eAAe,GAAGqB,UAAU,CAAC,CAACjoJ,IAAI,CAACyC,GAAL,CAASmkJ,eAAT,CAA4BiB,GAAAA,MAA7B,IAAuCD,cAAxC,CAAb,GAAuE,CAApG,CAAA;AACD,KAAA;;AAEDN,IAAAA,OAAO,GAAGU,WAAW,GAAGJ,cAAd,GAA+BC,MAAzC,CAAA;IACAhB,gBAAgB,CAACmB,WAAjB,GAA+BA,WAA/B,CAAA;IACAnB,gBAAgB,CAACW,YAAjB,GAAgCG,mBAAhC,CAAA;AACD,GAAA;;AAED,EAAA,IAAIQ,OAAO,GAAG5B,MAAM,IAAIe,OAAO,GAAG,CAAd,CAApB,CAAA;AACA,EAAA,IAAIc,YAAY,GAAGvB,gBAAgB,CAACuB,YAAjB,GAAgC,EAAnD,CAAA;AACAA,EAAAA,YAAY,CAAChD,WAAW,CAAC3lG,KAAb,CAAZ,GAAkCrD,MAAM,CAACgpG,WAAW,CAACtnC,EAAb,CAAN,GAAyB,CAA3D,CAAA;EACAsqC,YAAY,CAAC3pH,QAAQ,CAACghB,KAAV,CAAZ,GAA+BwmG,cAAc,KAAK,OAAnB,GAA6BkC,OAA7B,GAAuClC,cAAc,KAAK,KAAnB,GAA2BK,cAAc,GAAG6B,OAA5C,GAAsD7B,cAAc,GAAG,CAA7I,CA/CwL;;AAiDxL,EAAA,IAAIxtH,YAAJ,EAAkB;AAChBsvH,IAAAA,YAAY,CAAC,CAAD,CAAZ,IAAmBtvH,YAAY,CAAC,CAAD,CAA/B,CAAA;AACAsvH,IAAAA,YAAY,CAAC,CAAD,CAAZ,IAAmBtvH,YAAY,CAAC,CAAD,CAA/B,CAAA;AACD,GAAA;;AAED,EAAA,IAAIuvH,cAAc,GAAGxB,gBAAgB,CAACwB,cAAjB,GAAkC,EAAvD,CAAA;EACAA,cAAc,CAACjD,WAAW,CAAC3lG,KAAb,CAAd,GAAoCrD,MAAM,CAACgpG,WAAW,CAACvnC,EAAb,CAA1C,CAAA;EACAwqC,cAAc,CAAC5pH,QAAQ,CAACghB,KAAV,CAAd,GAAiCrD,MAAM,CAAC3d,QAAQ,CAACo/E,EAAV,CAAvC,CAAA;AACA,EAAA,IAAIyqC,YAAY,GAAGzB,gBAAgB,CAACyB,YAAjB,GAAgCpgH,MAAA,CAAc,EAAd,EAAkBkU,MAAlB,CAAnD,CAAA;AACAksG,EAAAA,YAAY,CAAC7pH,QAAQ,CAACq/E,EAAV,CAAZ,GAA4ByoC,MAAM,GAAGvmJ,IAAI,CAAC0iB,GAAL,CAAS1iB,IAAI,CAACyC,GAAL,CAAS25C,MAAM,CAAC3d,QAAQ,CAACq/E,EAAV,CAAf,CAAT,EAAwC99G,IAAI,CAACyC,GAAL,CAAS2lJ,YAAY,CAAC3pH,QAAQ,CAACghB,KAAV,CAAZ,GAA+B0oG,OAAxC,CAAxC,CAArC,CAAA;EACAG,YAAY,CAAClD,WAAW,CAACtnC,EAAb,CAAZ,GAA+B1hE,MAAM,CAACgpG,WAAW,CAACtnC,EAAb,CAArC,CAAA;EACA,IAAIxiF,SAAS,GAAGurH,gBAAgB,CAACvrH,SAAjB,GAA6B,EAA7C,CA5DwL;;AA8DxLA,EAAAA,SAAS,CAAC8pH,WAAW,CAACvnC,EAAb,CAAT,GAA4B,CAACzhE,MAAM,CAACgpG,WAAW,CAACvnC,EAAb,CAAnC,CAAA;AACAviF,EAAAA,SAAS,CAAC8pH,WAAW,CAACtnC,EAAb,CAAT,GAA4BlsF,GAAG,CAACszH,MAAJ,CAAWE,WAAW,CAACtnC,EAAvB,CAA5B,CAAA;AACAxiF,EAAAA,SAAS,CAACmD,QAAQ,CAACo/E,EAAV,CAAT,GAAyB,CAAzB,CAAA;EACAviF,SAAS,CAACmD,QAAQ,CAACq/E,EAAV,CAAT,GAAyB1hE,MAAM,CAAC3d,QAAQ,CAACq/E,EAAV,CAA/B,CAAA;AACD,CAAA;;AAED,SAASyqC,UAAT,CAAoBlD,UAApB,EAAgC;AAC9B,EAAA,IAAIa,iBAAiB,GAAGb,UAAU,CAACa,iBAAnC,CAAA;EACA,IAAIr6I,IAAI,GAAGmmB,cAAY;AACvBqzH,EAAAA,UAAU,CAAC3yH,UADY,EACA,CAACwzH,iBAAD,GAAqB,CADrB,EACwB,CAACA,iBAAD,GAAqB,CAD7C,EACgDA,iBADhD,EACmEA,iBADnE,CAAvB,CAAA;EAEAr6I,IAAI,CAAC8pB,IAAL,CAAU;AACRE,IAAAA,OAAO,EAAE,IAAA;GADX,CAAA,CAAA;EAGAhqB,IAAI,CAAC0H,IAAL,KAAc,OAAd,IAAyB1H,IAAI,CAACwmB,QAAL,CAAc;AACrCpsB,IAAAA,aAAa,EAAE,IAAA;AADsB,GAAd,CAAzB,CAAA;AAGA,EAAA,OAAO4F,IAAP,CAAA;AACD,CAAA;;AAED,SAAS28I,2BAAT,CAAqCjD,GAArC,EAA0C3zH,GAA1C,EAA+CyzH,UAA/C,EAA2D5kG,QAA3D,EAAqE;AACnE,EAAA,IAAIgoG,MAAM,GAAGlD,GAAG,CAACmD,iBAAjB,CAAA;AACA,EAAA,IAAI70H,UAAU,GAAGwxH,UAAU,CAACxxH,UAA5B,CAAA;AACA,EAAA,IAAI8yH,cAAc,GAAGtB,UAAU,CAACsB,cAAhC,CAAA;AACA,EAAA,IAAIyB,YAAY,GAAG/C,UAAU,CAAC+C,YAA9B,CAAA;AACA,EAAA,IAAI3pH,QAAQ,GAAG7M,GAAG,CAAC6M,QAAnB,CAAA;AACA,EAAA,IAAIupH,WAAW,GAAG3C,UAAU,CAAC2C,WAAX,IAA0B,CAA5C,CAAA;EACA,IAAIvoG,KAAK,GAAG,CAAZ,CAAA;AACA,EAAA,IAAIkpG,IAAI,GAAG90H,UAAU,CAACjC,GAAG,CAAC6M,QAAJ,CAAaghB,KAAd,CAAV,GAAiCknG,cAAjC,GAAkDtB,UAAU,CAACmC,YAAX,GAA0B,CAAvF,CAAA;AACAoB,EAAAA,QAAQ,CAACrD,GAAD,EAAM,UAAU15I,IAAV,EAAgB;IAC5BA,IAAI,CAACg9I,yBAAL,GAAiCppG,KAAjC,CAAA;IACA5zC,IAAI,CAACi9I,sBAAL,GAA8Bd,WAA9B,CAAA;;IAEA,IAAIvoG,KAAK,GAAGuoG,WAAZ,EAAyB;AACvBxiJ,MAAAA,UAAU,CAACqG,IAAD,EAAO,IAAP,EAAak9I,UAAU,CAACtpG,KAAD,CAAvB,EAAgC4lG,UAAhC,EAA4C5kG,QAA5C,CAAV,CAAA;AACD,KAFD,MAEO;AACLj7C,MAAAA,UAAU,CAACqG,IAAD,EAAO,IAAP,EAAa;AACrB0K,QAAAA,MAAM,EAAE,CADa;AAErBC,QAAAA,MAAM,EAAE,CAAA;AAFa,OAAb,EAGP6uI,UAHO,EAGK5kG,QAHL,EAGe,YAAY;QACnCgoG,MAAM,CAAC7rH,MAAP,CAAc/wB,IAAd,CAAA,CAAA;AACD,OALS,CAAV,CAAA;AAMD,KAb2B;;;IAgB5B4zC,KAAK,EAAA,CAAA;AACN,GAjBO,CAAR,CAAA;;AAmBA,EAAA,OAAOA,KAAK,GAAGuoG,WAAf,EAA4BvoG,KAAK,EAAjC,EAAqC;AACnC,IAAA,IAAI5zC,IAAI,GAAG08I,UAAU,CAAClD,UAAD,CAArB,CAAA;IACAx5I,IAAI,CAACg9I,yBAAL,GAAiCppG,KAAjC,CAAA;IACA5zC,IAAI,CAACi9I,sBAAL,GAA8Bd,WAA9B,CAAA;IACAS,MAAM,CAACr2H,GAAP,CAAWvmB,IAAX,CAAA,CAAA;AACA,IAAA,IAAIQ,MAAM,GAAG08I,UAAU,CAACtpG,KAAD,CAAvB,CAAA;IACAj6C,UAAU,CAACqG,IAAD,EAAO;MACf5K,CAAC,EAAEoL,MAAM,CAACpL,CADK;MAEfC,CAAC,EAAEmL,MAAM,CAACnL,CAFK;AAGfqV,MAAAA,MAAM,EAAE,CAHO;AAIfC,MAAAA,MAAM,EAAE,CAAA;AAJO,KAAP,EAKP;MACDD,MAAM,EAAElK,MAAM,CAACkK,MADd;MAEDC,MAAM,EAAEnK,MAAM,CAACmK,MAFd;MAGDwc,QAAQ,EAAE3mB,MAAM,CAAC2mB,QAAAA;AAHhB,KALO,EASPqyH,UATO,EASK5kG,QATL,CAAV,CAAA;AAUD,GAAA;;EAED,SAASsoG,UAAT,CAAoBtpG,KAApB,EAA2B;AACzB,IAAA,IAAIn7B,QAAQ,GAAG8jI,YAAY,CAAC7+H,KAAb,EAAf,CADyB;AAEzB;;AAEA,IAAA,IAAIg9H,MAAM,GAAGlB,UAAU,CAACkB,MAAxB,CAAA;IACA,IAAIriJ,CAAC,GAAGu7C,KAAR,CAAA;;AAEA,IAAA,IAAI4lG,UAAU,CAACc,qBAAX,KAAqC,OAArC,GAA+CI,MAAM,GAAG,CAAxD,GAA4DA,MAAM,GAAG,CAAzE,EAA4E;AAC1EriJ,MAAAA,CAAC,GAAG8jJ,WAAW,GAAG,CAAd,GAAkBvoG,KAAtB,CAAA;AACD,KAAA;;IAEDn7B,QAAQ,CAACma,QAAQ,CAACghB,KAAV,CAAR,GAA2BkpG,IAAI,IAAIzkJ,CAAC,GAAG8jJ,WAAW,GAAG,CAAlB,GAAsB,GAA1B,CAAJ,GAAqCI,YAAY,CAAC3pH,QAAQ,CAACghB,KAAV,CAA5E,CAAA;IACA,OAAO;AACLx+C,MAAAA,CAAC,EAAEqjB,QAAQ,CAAC,CAAD,CADN;AAELpjB,MAAAA,CAAC,EAAEojB,QAAQ,CAAC,CAAD,CAFN;AAGL/N,MAAAA,MAAM,EAAE8uI,UAAU,CAACoB,WAAX,CAAuB,CAAvB,CAHH;AAILjwI,MAAAA,MAAM,EAAE6uI,UAAU,CAACoB,WAAX,CAAuB,CAAvB,CAJH;MAKLzzH,QAAQ,EAAEqyH,UAAU,CAACryH,QAAAA;KALvB,CAAA;AAOD,GAAA;AACF,CAAA;;AAED,SAASg2H,0BAAT,CAAoCzD,GAApC,EAAyC3zH,GAAzC,EAA8CyzH,UAA9C,EAA0D5kG,QAA1D,EAAoE;AAClE,EAAA,IAAIgoG,MAAM,GAAGlD,GAAG,CAACmD,iBAAjB,CAAA;AACA,EAAA,IAAIO,QAAQ,GAAG1D,GAAG,CAAC2D,mBAAnB,CAAA;;EAEA,IAAI,CAACD,QAAL,EAAe;IACbA,QAAQ,GAAG1D,GAAG,CAAC2D,mBAAJ,GAA0BX,UAAU,CAAClD,UAAD,CAA/C,CAAA;IACAoD,MAAM,CAACr2H,GAAP,CAAW62H,QAAX,CAAA,CAAA;IACAzjJ,UAAU,CAACyjJ,QAAD,EAAW;AACnBhoJ,MAAAA,CAAC,EAAEokJ,UAAU,CAAC+C,YAAX,CAAwB,CAAxB,CADgB;AAEnBlnJ,MAAAA,CAAC,EAAEmkJ,UAAU,CAAC+C,YAAX,CAAwB,CAAxB,CAFgB;AAGnB7xI,MAAAA,MAAM,EAAE,CAHW;AAInBC,MAAAA,MAAM,EAAE,CAJW;MAKnBwc,QAAQ,EAAEqyH,UAAU,CAACryH,QAAAA;AALF,KAAX,EAMP;AACDzc,MAAAA,MAAM,EAAE8uI,UAAU,CAACoB,WAAX,CAAuB,CAAvB,CADP;AAEDjwI,MAAAA,MAAM,EAAE6uI,UAAU,CAACoB,WAAX,CAAuB,CAAvB,CAAA;AAFP,KANO,EASPpB,UATO,EASK5kG,QATL,CAAV,CAAA;AAUD,GAbD,MAaO;AACLj7C,IAAAA,UAAU,CAACyjJ,QAAD,EAAW,IAAX,EAAiB;AACzBhoJ,MAAAA,CAAC,EAAEokJ,UAAU,CAAC+C,YAAX,CAAwB,CAAxB,CADsB;AAEzBlnJ,MAAAA,CAAC,EAAEmkJ,UAAU,CAAC+C,YAAX,CAAwB,CAAxB,CAFsB;AAGzB7xI,MAAAA,MAAM,EAAE8uI,UAAU,CAACoB,WAAX,CAAuB,CAAvB,CAHiB;AAIzBjwI,MAAAA,MAAM,EAAE6uI,UAAU,CAACoB,WAAX,CAAuB,CAAvB,CAJiB;MAKzBzzH,QAAQ,EAAEqyH,UAAU,CAACryH,QAAAA;AALI,KAAjB,EAMPqyH,UANO,EAMK5kG,QANL,CAAV,CAAA;AAOD,GAAA;AACF;;;AAGD,SAAS0oG,qBAAT,CAA+B5D,GAA/B,EAAoCF,UAApC,EAAgD5kG,QAAhD,EAA0D;EACxD,IAAIjT,SAAS,GAAGtF,MAAA,CAAc,EAAd,EAAkBm9G,UAAU,CAACiD,YAA7B,CAAhB,CAAA;AACA,EAAA,IAAIc,OAAO,GAAG7D,GAAG,CAAC8D,kBAAlB,CAAA;;EAEA,IAAI,CAACD,OAAL,EAAc;IACZA,OAAO,GAAG7D,GAAG,CAAC8D,kBAAJ,GAAyB,IAAI9xH,MAAJ,CAAiB;AAClD3B,MAAAA,EAAE,EAAE,CAD8C;AAElD9pB,MAAAA,KAAK,EAAE0hC,SAF2C;AAGlDxW,MAAAA,MAAM,EAAE,IAH0C;AAIlDlyB,MAAAA,KAAK,EAAE;AACLG,QAAAA,MAAM,EAAE,aADH;AAELF,QAAAA,IAAI,EAAE,aAFD;AAGLqB,QAAAA,SAAS,EAAE,CAAA;AAHN,OAAA;AAJ2C,KAAjB,CAAnC,CAAA;IAUAgjJ,OAAO,CAACx2C,eAAR,GAA0B,IAA1B,CAAA;IACA2yC,GAAG,CAACnzH,GAAJ,CAAQg3H,OAAR,CAAA,CAAA;AACD,GAbD,MAaO;AACL5jJ,IAAAA,UAAU,CAAC4jJ,OAAD,EAAU,IAAV,EAAgB;AACxBt9I,MAAAA,KAAK,EAAE0hC,SAAAA;AADiB,KAAhB,EAEP63G,UAFO,EAEK5kG,QAFL,CAAV,CAAA;AAGD,GAAA;AACF,CAAA;;AAED,SAAS6oG,kBAAT,CAA4B/D,GAA5B,EAAiC3zH,GAAjC,EAAsCyzH,UAAtC,EAAkD5kG,QAAlD,EAA4D;AAC1D;EACA,IAAI4kG,UAAU,CAACW,UAAf,EAA2B;AACzB,IAAA,IAAI3rI,QAAQ,GAAGkrI,GAAG,CAACgE,mBAAnB,CAAA;IACA,IAAIjuH,SAAS,GAAG4M,MAAA,CAAc,EAAd,EAAkBm9G,UAAU,CAAC/pH,SAA7B,CAAhB,CAAA;AACA,IAAA,IAAImD,QAAQ,GAAG7M,GAAG,CAAC6M,QAAnB,CAAA;AACA,IAAA,IAAIwc,cAAc,GAAGoqG,UAAU,CAACpqG,cAAhC,CAAA;AACA,IAAA,IAAItmB,SAAS,GAAG0wH,UAAU,CAAC1wH,SAA3B,CAAA;;AAEA,IAAA,IAAIta,QAAJ,EAAc;AACZkd,MAAAA,aAAA,CAAoBld,QAApB,EAA8B;AAC5BvO,QAAAA,KAAK,EAAEwvB,SAAAA;OADT,EAEG2f,cAFH,EAEmBtmB,SAFnB,CAAA,CAAA;AAGD,KAJD,MAIO;AACL2G,MAAAA,SAAS,CAACmD,QAAQ,CAACq/E,EAAV,CAAT,GAAyB,CAAzB,CAAA;AACAzjG,MAAAA,QAAQ,GAAG,IAAIkd,MAAJ,CAAiB;AAC1BzrB,QAAAA,KAAK,EAAEwvB,SAAAA;AADmB,OAAjB,CAAX,CAAA;;AAIAiqH,MAAAA,GAAG,CAACmD,iBAAJ,CAAsBtuI,WAAtB,CAAkCC,QAAlC,CAAA,CAAA;;MAEAkrI,GAAG,CAACgE,mBAAJ,GAA0BlvI,QAA1B,CAAA;MACA,IAAIhO,MAAM,GAAG,EAAb,CAAA;AACAA,MAAAA,MAAM,CAACoyB,QAAQ,CAACq/E,EAAV,CAAN,GAAsBunC,UAAU,CAAC/pH,SAAX,CAAqBmD,QAAQ,CAACq/E,EAA9B,CAAtB,CAAA;MACAvmF,OAAO,CAACkpB,QAAQ,GAAG,aAAH,GAAmB,WAA5B,CAAP,CAAgDpmC,QAAhD,EAA0D;AACxDvO,QAAAA,KAAK,EAAEO,MAAAA;OADT,EAEG4uC,cAFH,EAEmBtmB,SAFnB,CAAA,CAAA;AAGD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAAS4D,YAAT,CAAsB7D,IAAtB,EAA4BC,SAA5B,EAAuC;AACrC,EAAA,IAAI2D,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkB5D,SAAlB,CAAhB,CAAA;EACA2D,SAAS,CAACkxH,uBAAV,GAAoCA,uBAApC,CAAA;EACAlxH,SAAS,CAAC4iB,kBAAV,GAA+BA,kBAA/B,CAAA;AACA,EAAA,OAAO5iB,SAAP,CAAA;AACD,CAAA;;AAED,SAASkxH,uBAAT,CAAiC39I,IAAjC,EAAuC;AACrC;EACA,OAAO;IACL4zC,KAAK,EAAE5zC,IAAI,CAACg9I,yBADP;IAELzgH,KAAK,EAAEv8B,IAAI,CAACi9I,sBAAAA;GAFd,CAAA;AAID,CAAA;;AAED,SAAS5tG,kBAAT,GAA8B;AAC5B;EACA,OAAO,IAAA,CAAKy2B,WAAL,CAAiBz2B,kBAAjB,EAAA,IAAyC,CAAC,CAAC,IAAKriB,CAAAA,UAAL,CAAgB,WAAhB,CAAlD,CAAA;AACD,CAAA;;AAED,SAAS2sH,SAAT,CAAmB9wH,IAAnB,EAAyB9C,GAAzB,EAA8ByzH,UAA9B,EAA0C5kG,QAA1C,EAAoD;AAClD;EACA,IAAI8kG,GAAG,GAAG,IAAIhuH,OAAJ,EAAV,CAFkD;;AAIlD,EAAA,IAAIkxH,MAAM,GAAG,IAAIlxH,OAAJ,EAAb,CAAA;EACAguH,GAAG,CAACnzH,GAAJ,CAAQq2H,MAAR,CAAA,CAAA;EACAlD,GAAG,CAACmD,iBAAJ,GAAwBD,MAAxB,CAAA;EACAA,MAAM,CAACxnJ,CAAP,GAAWokJ,UAAU,CAACgD,cAAX,CAA0B,CAA1B,CAAX,CAAA;EACAI,MAAM,CAACvnJ,CAAP,GAAWmkJ,UAAU,CAACgD,cAAX,CAA0B,CAA1B,CAAX,CAAA;;EAEA,IAAIhD,UAAU,CAACU,YAAf,EAA6B;AAC3ByC,IAAAA,2BAA2B,CAACjD,GAAD,EAAM3zH,GAAN,EAAWyzH,UAAX,CAA3B,CAAA;AACD,GAFD,MAEO;AACL2D,IAAAA,0BAA0B,CAACzD,GAAD,EAAM3zH,GAAN,EAAWyzH,UAAX,CAA1B,CAAA;AACD,GAAA;;AAED8D,EAAAA,qBAAqB,CAAC5D,GAAD,EAAMF,UAAN,EAAkB5kG,QAAlB,CAArB,CAAA;EACA6oG,kBAAkB,CAAC/D,GAAD,EAAM3zH,GAAN,EAAWyzH,UAAX,EAAuB5kG,QAAvB,CAAlB,CAAA;EACA8kG,GAAG,CAACI,mBAAJ,GAA0BD,WAAW,CAAChxH,IAAD,EAAO2wH,UAAP,CAArC,CAAA;EACAE,GAAG,CAACM,qBAAJ,GAA4BR,UAA5B,CAAA;AACA,EAAA,OAAOE,GAAP,CAAA;AACD,CAAA;;AAED,SAASK,SAAT,CAAmBL,GAAnB,EAAwB3zH,GAAxB,EAA6ByzH,UAA7B,EAAyC;AACvC,EAAA,IAAIpqG,cAAc,GAAGoqG,UAAU,CAACpqG,cAAhC,CAAA;AACA,EAAA,IAAItmB,SAAS,GAAG0wH,UAAU,CAAC1wH,SAA3B,CAAA;AACA,EAAA,IAAI8zH,MAAM,GAAGlD,GAAG,CAACmD,iBAAjB,CAAA;AACAnxH,EAAAA,aAAA,CAAoBkxH,MAApB,EAA4B;AAC1BxnJ,IAAAA,CAAC,EAAEokJ,UAAU,CAACgD,cAAX,CAA0B,CAA1B,CADuB;AAE1BnnJ,IAAAA,CAAC,EAAEmkJ,UAAU,CAACgD,cAAX,CAA0B,CAA1B,CAAA;GAFL,EAGGptG,cAHH,EAGmBtmB,SAHnB,CAAA,CAAA;;EAKA,IAAI0wH,UAAU,CAACU,YAAf,EAA6B;IAC3ByC,2BAA2B,CAACjD,GAAD,EAAM3zH,GAAN,EAAWyzH,UAAX,EAAuB,IAAvB,CAA3B,CAAA;AACD,GAFD,MAEO;IACL2D,0BAA0B,CAACzD,GAAD,EAAM3zH,GAAN,EAAWyzH,UAAX,EAAuB,IAAvB,CAA1B,CAAA;AACD,GAAA;;AAED8D,EAAAA,qBAAqB,CAAC5D,GAAD,EAAMF,UAAN,EAAkB,IAAlB,CAArB,CAAA;EACAiE,kBAAkB,CAAC/D,GAAD,EAAM3zH,GAAN,EAAWyzH,UAAX,EAAuB,IAAvB,CAAlB,CAAA;AACD,CAAA;;AAED,SAASS,SAAT,CAAmBpxH,IAAnB,EAAyBC,SAAzB,EAAoCsmB,cAApC,EAAoDsqG,GAApD,EAAyD;AACvD;AACA,EAAA,IAAIkE,SAAS,GAAGlE,GAAG,CAAC8D,kBAApB,CAAA;AACAI,EAAAA,SAAS,IAAIA,SAAS,CAAC3uH,iBAAV,EAAb,CAAA;EACA,IAAIhuB,KAAK,GAAG,EAAZ,CAAA;AACA87I,EAAAA,QAAQ,CAACrD,GAAD,EAAM,UAAU15I,IAAV,EAAgB;IAC5BiB,KAAK,CAACvI,IAAN,CAAWsH,IAAX,CAAA,CAAA;AACD,GAFO,CAAR,CAAA;AAGA05I,EAAAA,GAAG,CAAC2D,mBAAJ,IAA2Bp8I,KAAK,CAACvI,IAAN,CAAWghJ,GAAG,CAAC2D,mBAAf,CAA3B,CARuD;;AAUvD3D,EAAAA,GAAG,CAACgE,mBAAJ,KAA4BtuG,cAAc,GAAG,IAA7C,CAAA,CAAA;AACA/S,EAAAA,MAAA,CAAYp7B,KAAZ,EAAmB,UAAUjB,IAAV,EAAgB;AACjC0rB,IAAAA,aAAA,CAAsB1rB,IAAtB,EAA4B;AAC1B0K,MAAAA,MAAM,EAAE,CADkB;AAE1BC,MAAAA,MAAM,EAAE,CAAA;AAFkB,KAA5B,EAGGykC,cAHH,EAGmBtmB,SAHnB,EAG8B,YAAY;MACxC4wH,GAAG,CAACrqH,MAAJ,IAAcqqH,GAAG,CAACrqH,MAAJ,CAAW0B,MAAX,CAAkB2oH,GAAlB,CAAd,CAAA;KAJF,CAAA,CAAA;GADF,CAAA,CAAA;AAQA7wH,EAAAA,IAAI,CAAC8H,gBAAL,CAAsB7H,SAAtB,EAAiC,IAAjC,CAAA,CAAA;AACD,CAAA;;AAED,SAAS+wH,WAAT,CAAqBhxH,IAArB,EAA2B2wH,UAA3B,EAAuC;AACrC,EAAA,OAAO,CAAC3wH,IAAI,CAACuC,aAAL,CAAmBouH,UAAU,CAAC1wH,SAA9B,EAAyC,QAAzC,CAAsD,IAAA,MAAvD,EAA+D,CAAC,CAAC0wH,UAAU,CAACU,YAA5E,EAA0F,CAAC,CAACV,UAAU,CAACW,UAAvG,CAAmHxhJ,CAAAA,IAAnH,CAAwH,GAAxH,CAAP,CAAA;AACD,CAAA;;AAED,SAASokJ,QAAT,CAAkBrD,GAAlB,EAAuB11H,EAAvB,EAA2BC,OAA3B,EAAoC;AAClC;AACAoY,EAAAA,MAAA,CAAYq9G,GAAG,CAACmD,iBAAJ,CAAsBjhJ,QAAtB,EAAZ,EAA8C,UAAUhC,EAAV,EAAc;AAC1DA,IAAAA,EAAE,KAAK8/I,GAAG,CAAC8D,kBAAX,IAAiCx5H,EAAE,CAAChL,IAAH,CAAQiL,OAAR,EAAiBrqB,EAAjB,CAAjC,CAAA;GADF,CAAA,CAAA;AAGD,CAAA;;AAED,SAASD,UAAT,CAAoBC,EAApB,EAAwBikJ,cAAxB,EAAwCC,cAAxC,EAAwDtE,UAAxD,EAAoE5kG,QAApE,EAA8E5wB,EAA9E,EAAkF;EAChF65H,cAAc,IAAIjkJ,EAAE,CAACkwB,IAAH,CAAQ+zH,cAAR,CAAlB,CADgF;;AAGhF,EAAA,IAAIrE,UAAU,CAACW,UAAX,IAAyB,CAACvlG,QAA9B,EAAwC;AACtCkpG,IAAAA,cAAc,IAAIlkJ,EAAE,CAACkwB,IAAH,CAAQg0H,cAAR,CAAlB,CAAA;AACD,GAFD,MAEO;IACLA,cAAc,IAAIpyH,OAAO,CAACkpB,QAAQ,GAAG,aAAH,GAAmB,WAA5B,CAAP,CAAgDh7C,EAAhD,EAAoDkkJ,cAApD,EAAoEtE,UAAU,CAACpqG,cAA/E,EAA+FoqG,UAAU,CAAC1wH,SAA1G,EAAqH9E,EAArH,CAAlB,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASg0G,YAAT,CAAsB0hB,GAAtB,EAA2B3zH,GAA3B,EAAgCyzH,UAAhC,EAA4C;AAC1C,EAAA,IAAI1wH,SAAS,GAAG0wH,UAAU,CAAC1wH,SAA3B,CAAA;AACA,EAAA,IAAI2D,SAAS,GAAG+sH,UAAU,CAAC/sH,SAA3B,CAF0C;AAG1C;;AAEA,EAAA,IAAIE,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAApB,CAAA;EACA,IAAI41D,aAAa,GAAG71D,aAAa,CAACC,QAAd,CAAuB,WAAvB,CAAoCC,CAAAA,YAApC,EAApB,CAAA;AACA,EAAA,IAAIw0D,SAAS,GAAG50D,SAAS,CAACG,QAAV,CAAmB,CAAC,MAAD,EAAS,WAAT,CAAnB,CAAA,CAA0CC,YAA1C,EAAhB,CAAA;AACA,EAAA,IAAI41D,WAAW,GAAGh2D,SAAS,CAACG,QAAV,CAAmB,CAAC,QAAD,EAAW,WAAX,CAAnB,CAAA,CAA4CC,YAA5C,EAAlB,CAAA;AACA,EAAA,IAAIN,WAAW,GAAGE,SAAS,CAACO,UAAV,CAAqB,QAArB,CAAlB,CAAA;AACA,EAAA,IAAId,KAAK,GAAGS,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAZ,CAAA;AACA,EAAA,IAAIX,SAAS,GAAGQ,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAhB,CAAA;AACA,EAAA,IAAIR,UAAU,GAAGK,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAjB,CAAA;AACAiwH,EAAAA,QAAQ,CAACrD,GAAD,EAAM,UAAU15I,IAAV,EAAgB;IAC5B,IAAIA,IAAI,YAAYjG,OAApB,EAA6B;AAC3B,MAAA,IAAIszB,SAAS,GAAGrtB,IAAI,CAAC/G,KAArB,CAAA;AACA+G,MAAAA,IAAI,CAACstB,QAAL,CAAc+O,MAAA,CAAc;AAC1B;QACA3zB,KAAK,EAAE2kB,SAAS,CAAC3kB,KAFS;QAG1BtT,CAAC,EAAEi4B,SAAS,CAACj4B,CAHa;QAI1BC,CAAC,EAAEg4B,SAAS,CAACh4B,CAJa;QAK1B+I,KAAK,EAAEivB,SAAS,CAACjvB,KALS;QAM1BC,MAAM,EAAEgvB,SAAS,CAAChvB,MAAAA;AANQ,OAAd,EAOXm7I,UAAU,CAACvgJ,KAPA,CAAd,CAAA,CAAA;AAQD,KAVD,MAUO;AACL+G,MAAAA,IAAI,CAACstB,QAAL,CAAcksH,UAAU,CAACvgJ,KAAzB,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIs1B,aAAa,GAAGvuB,IAAI,CAACwuB,WAAL,CAAiB,UAAjB,CAApB,CAAA;IACAD,aAAa,CAACt1B,KAAd,GAAsBupF,aAAtB,CAAA;;AAEA,IAAA,IAAIl2D,UAAJ,EAAgB;AACd;AACAiC,MAAAA,aAAa,CAAC7jB,MAAd,GAAuB1K,IAAI,CAAC0K,MAAL,GAAc,GAArC,CAAA;AACA6jB,MAAAA,aAAa,CAAC5jB,MAAd,GAAuB3K,IAAI,CAAC2K,MAAL,GAAc,GAArC,CAAA;AACD,KAAA;;AAED3K,IAAAA,IAAI,CAACwuB,WAAL,CAAiB,MAAjB,CAAyBv1B,CAAAA,KAAzB,GAAiCooF,SAAjC,CAAA;AACArhF,IAAAA,IAAI,CAACwuB,WAAL,CAAiB,QAAjB,CAA2Bv1B,CAAAA,KAA3B,GAAmCwpF,WAAnC,CAAA;AACAl2D,IAAAA,WAAW,KAAKvsB,IAAI,CAACkrB,MAAL,GAAcqB,WAAnB,CAAX,CAAA;AACAvsB,IAAAA,IAAI,CAAC+pB,EAAL,GAAUyvH,UAAU,CAACzvH,EAArB,CAAA;AACD,GA5BO,CAAR,CAAA;AA6BA,EAAA,IAAIg0H,kBAAkB,GAAGh4H,GAAG,CAAC6M,QAAJ,CAAaqmH,OAAb,CAAqB,EAAEO,UAAU,CAACiB,cAAX,GAA4B,CAA9B,CAArB,CAAzB,CAAA;AACA,EAAA,IAAI8C,OAAO,GAAG7D,GAAG,CAAC8D,kBAAlB,CAAA;AACAzvH,EAAAA,aAAa,CAACwvH,OAAD,EAAUxwH,oBAAoB,CAACN,SAAD,CAA9B,EAA2C;IACtDuB,YAAY,EAAEjI,GAAG,CAACsF,WADoC;AAEtD4C,IAAAA,cAAc,EAAEnF,SAFsC;IAGtDoF,WAAW,EAAEtF,eAAe,CAAC7C,GAAG,CAACsF,WAAJ,CAAgB3E,OAAhB,EAAD,EAA4BoC,SAA5B,CAH0B;AAItDsF,IAAAA,YAAY,EAAEorH,UAAU,CAACvgJ,KAAX,CAAiBC,IAJuB;AAKtDm1B,IAAAA,cAAc,EAAEmrH,UAAU,CAACvgJ,KAAX,CAAiBa,OALqB;AAMtD28C,IAAAA,sBAAsB,EAAEsnG,kBAAAA;AAN8B,GAA3C,CAAb,CAAA;AAQApvH,EAAAA,mBAAmB,CAAC+qH,GAAD,EAAMxtH,KAAN,EAAaC,SAAb,EAAwBQ,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAxB,CAAnB,CAAA;AACD,CAAA;;AAED,SAASsvH,UAAT,CAAoB4B,KAApB,EAA2B;EACzB,IAAIC,YAAY,GAAG9pJ,IAAI,CAACiD,KAAL,CAAW4mJ,KAAX,CAAnB,CADyB;;AAGzB,EAAA,OAAO7pJ,IAAI,CAACyC,GAAL,CAASonJ,KAAK,GAAGC,YAAjB,CAAA,GAAiC,IAAjC,GAAwCA,YAAxC,GAAuD9pJ,IAAI,CAACopD,IAAL,CAAUygG,KAAV,CAA9D,CAAA;AACD;;AC9qBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,IAAIE,uBAAuB;AAC3B;AACA,UAAUrlI,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAColI,uBAAD,EAA0BrlI,MAA1B,CAAT,CAAA;;AAEA,EAAA,SAASqlI,uBAAT,GAAmC;AACjC,IAAA,IAAInlI,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaw2I,uBAAuB,CAACx2I,IAArC,CAAA;IACAqR,KAAK,CAACuM,eAAN,GAAwB,IAAxB,CAAA;IACAvM,KAAK,CAAColI,aAAN,GAAsB,WAAtB,CAAA;AACA,IAAA,OAAOplI,KAAP,CAAA;AACD,GAAA;;AAEDmlI,EAAAA,uBAAuB,CAACvpJ,SAAxB,CAAkC4wB,cAAlC,GAAmD,UAAUC,MAAV,EAAkB;AACnE;IACAA,MAAM,CAAC44H,KAAP,GAAe,IAAf,CAAA;IACA,OAAOvlI,MAAM,CAAClkB,SAAP,CAAiB4wB,cAAjB,CAAgCF,KAAhC,CAAsC,IAAtC,EAA4C/sB,SAA5C,CAAP,CAAA;GAHF,CAAA;;EAMA4lJ,uBAAuB,CAACx2I,IAAxB,GAA+B,qBAA/B,CAAA;AACAw2I,EAAAA,uBAAuB,CAAC72H,YAAxB,GAAuC,CAAC,MAAD,CAAvC,CAAA;EACA62H,uBAAuB,CAAC52H,aAAxB,GAAwCokB,oBAAoB,CAACf,kBAAkB,CAACrjB,aAApB,EAAmC;AAC7FP,IAAAA,MAAM,EAAE,QADqF;AAE7FiB,IAAAA,UAAU,EAAE,IAFiF;AAG7Ff,IAAAA,YAAY,EAAE,IAH+E;AAI7FmzH,IAAAA,cAAc,EAAE,IAJ6E;AAK7FntH,IAAAA,YAAY,EAAE,IAL+E;AAM7F0uH,IAAAA,YAAY,EAAE,IAN+E;AAO7FzB,IAAAA,YAAY,EAAE,KAP+E;AAQ7FI,IAAAA,qBAAqB,EAAE,KARsE;AAS7FH,IAAAA,UAAU,EAAE,KATiF;AAU7Fc,IAAAA,kBAAkB,EAAE,IAVyE;AAW7FZ,IAAAA,iBAAiB,EAAE,GAX0E;AAY7FgE,IAAAA,MAAM,EAAE,OAZqF;AAa7F;AACA;AACA/1H,IAAAA,WAAW,EAAE,CAfgF;AAgB7FT,IAAAA,QAAQ,EAAE;AACR;AACA;AACA5M,MAAAA,KAAK,EAAE,KAAA;KAnBoF;AAqB7FgxB,IAAAA,MAAM,EAAE;AACNjlB,MAAAA,SAAS,EAAE;AACT8kB,QAAAA,WAAW,EAAE,SAAA;AADJ,OAAA;AADL,KAAA;AArBqF,GAAnC,CAA5D,CAAA;AA2BA,EAAA,OAAOoyG,uBAAP,CAAA;AACD,CAhDD,CAgDEvzG,kBAhDF,CAFA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BO,SAAS5yB,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4BmvG,gBAA5B,CAAA,CAAA;EACAnhI,SAAS,CAACiyB,mBAAV,CAA8Bi0G,uBAA9B,CAAA,CAAA;AACAlmI,EAAAA,SAAS,CAACmyB,cAAV,CAAyBnyB,SAAS,CAACwyB,QAAV,CAAmByN,MAAnB,CAA0BC,MAAnD,EAA2D6M,OAAK,CAACxU,QAAD,EAAS,cAAT,CAAhE,EAHiC;;AAKjCv4B,EAAAA,SAAS,CAACmyB,cAAV,CAAyBnyB,SAAS,CAACwyB,QAAV,CAAmByN,MAAnB,CAA0BE,kBAAnD,EAAuEC,uBAAuB,CAAC,cAAD,CAA9F,CAAA,CAAA;AACD;;ACpDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmCA,IAAIkmG,cAAc;AAClB;AACA,UAAUzlI,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACwlI,cAAD,EAAiBzlI,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAASylI,cAAT,GAA0B;AACxB,IAAA,IAAIvlI,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa42I,cAAc,CAAC52I,IAA5B,CAAA;IACAqR,KAAK,CAAC6G,OAAN,GAAgB,EAAhB,CAAA;AACA,IAAA,OAAO7G,KAAP,CAAA;AACD,GAAA;;EAEDulI,cAAc,CAAC3pJ,SAAf,CAAyB8tC,MAAzB,GAAkC,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC,EAAqC;AACrE,IAAA,IAAI2X,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAI3I,IAAI,GAAG,IAAX,CAAA;IACA,IAAIiI,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAIu4H,YAAY,GAAGlzH,WAAW,CAACmzH,cAAZ,EAAnB,CAAA;AACA,IAAA,IAAI9tD,UAAU,GAAG7nE,IAAI,CAACwM,SAAL,CAAe,YAAf,CAAjB,CAAA;AACA,IAAA,IAAI99B,IAAI,GAAGm5F,UAAU,CAACn5F,IAAtB,CAAA;AACA,IAAA,IAAI+xD,WAAW,GAAGonC,UAAU,CAACpnC,WAA7B,CAAA;IACAtjC,KAAK,CAAC5wB,CAAN,GAAU,CAAV,CAAA;IACA4wB,KAAK,CAAC3wB,CAAN,GAAUkC,IAAI,CAAClC,CAAL,GAASi0D,WAAW,CAAC,CAAD,CAA9B,CAAA;;IAEA,SAASm1F,SAAT,CAAmBv3I,IAAnB,EAAyB;MACvB,OAAOA,IAAI,CAAC7L,IAAZ,CAAA;AACD,KAAA;;AAED,IAAA,IAAIqjJ,UAAU,GAAG,IAAIr7C,UAAJ,CAAe,IAAKs7C,CAAAA,aAAL,IAAsB,EAArC,EAAyCJ,YAAzC,EAAuDE,SAAvD,EAAkEA,SAAlE,CAAjB,CAAA;IACA,IAAIG,eAAe,GAAG,EAAtB,CAAA;AACAF,IAAAA,UAAU,CAACn4H,GAAX,CAAemlD,MAAI,CAAC3/D,OAAD,EAAU,IAAV,EAAgB,KAAhB,CAAnB,CAAA,CAA2C6kB,MAA3C,CAAkD86C,MAAI,CAAC3/D,OAAD,EAAU,IAAV,EAAgB,QAAhB,CAAtD,CAAA,CAAiFglB,MAAjF,CAAwF26C,MAAI,CAAC3/D,OAAD,EAAU,IAAV,EAAgB,QAAhB,CAA5F,EAAuHmlB,OAAvH,EAAA,CAAA;;AAEA,IAAA,SAASnlB,OAAT,CAAiBipB,MAAjB,EAAyB3Q,GAAzB,EAA8BwM,MAA9B,EAAsC;AACpC,MAAA,IAAIguH,eAAe,GAAG9gI,IAAI,CAAC6B,OAA3B,CAAA;;MAEA,IAAIoV,MAAM,KAAK,QAAf,EAAyB;AACvBhP,QAAAA,KAAK,CAAC+K,MAAN,CAAa8tH,eAAe,CAACx6H,GAAD,CAA5B,CAAA,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;MAED,IAAIy6H,OAAO,GAAG,EAAd,CAAA;MACA,IAAIvjH,OAAO,GAAG,EAAd,CAAA;AACA,MAAA,IAAItiC,KAAJ,CAAA;AACA,MAAA,IAAIquC,OAAO,GAAGi3G,YAAY,CAACl6H,GAAD,CAAZ,CAAkBijB,OAAhC,CAAA;MACA,IAAI/pB,CAAC,GAAG,CAAR,CAAA;;MAEA,OAAOA,CAAC,GAAG+pB,OAAO,CAAC3vC,MAAnB,EAA2B4lB,CAAC,EAA5B,EAAgC;QAC9B,IAAIgzB,MAAM,GAAG1nB,IAAI,CAACyH,aAAL,CAAmBgX,OAAO,CAAC/pB,CAAD,CAA1B,CAAb,CAAA;AACA,QAAA,IAAInoB,CAAC,GAAGm7C,MAAM,CAACn7C,CAAf,CAAA;AACA,QAAA,IAAI8B,EAAE,GAAGq5C,MAAM,CAACr5C,EAAhB,CAAA;AACA,QAAA,IAAI7B,CAAC,GAAGk7C,MAAM,CAACl7C,CAAf,CAAA;AACAypJ,QAAAA,OAAO,CAACpmJ,IAAR,CAAatD,CAAb,EAAgB8B,EAAhB,CAAA,CAAA;AACAqkC,QAAAA,OAAO,CAAC7iC,IAAR,CAAatD,CAAb,EAAgB8B,EAAE,GAAG7B,CAArB,CAAA,CAAA;QACA4D,KAAK,GAAG4vB,IAAI,CAACuC,aAAL,CAAmBkc,OAAO,CAAC/pB,CAAD,CAA1B,EAA+B,OAA/B,CAAR,CAAA;AACD,OAAA;;AAED,MAAA,IAAIjW,OAAJ,CAAA;MACA,IAAIy3I,UAAU,GAAGl2H,IAAI,CAACyH,aAAL,CAAmBgX,OAAO,CAAC,CAAD,CAA1B,CAAjB,CAAA;AACA,MAAA,IAAI6W,UAAU,GAAG9yB,WAAW,CAACuB,QAAZ,CAAqB,OAArB,CAAjB,CAAA;AACA,MAAA,IAAItS,MAAM,GAAG6jC,UAAU,CAACrxB,GAAX,CAAe,QAAf,CAAb,CAAA;AACA,MAAA,IAAIH,aAAa,GAAGtB,WAAW,CAACuB,QAAZ,CAAqB,UAArB,CAApB,CAAA;;MAEA,IAAIoI,MAAM,KAAK,KAAf,EAAsB;QACpB,IAAIgqH,UAAU,GAAGJ,eAAe,CAACv6H,GAAD,CAAf,GAAuB,IAAIqH,OAAJ,EAAxC,CAAA;QACApkB,OAAO,GAAG,IAAI2yB,SAAJ,CAAc;AACtBh6B,UAAAA,KAAK,EAAE;AACL0G,YAAAA,MAAM,EAAEm4I,OADH;AAEL5kH,YAAAA,eAAe,EAAEqB,OAFZ;AAGLz0B,YAAAA,MAAM,EAAE,GAHH;AAILqzB,YAAAA,eAAe,EAAE,GAJZ;AAKLpB,YAAAA,gBAAgB,EAAE,KAAA;WANE;AAQtBhP,UAAAA,EAAE,EAAE,CAAA;AARkB,SAAd,CAAV,CAAA;QAUAi1H,UAAU,CAACz4H,GAAX,CAAejf,OAAf,CAAA,CAAA;QACA0e,KAAK,CAACO,GAAN,CAAUy4H,UAAV,CAAA,CAAA;;AAEA,QAAA,IAAI3zH,WAAW,CAACgkB,kBAAZ,EAAJ,EAAsC;AACpC/nC,UAAAA,OAAO,CAACiH,WAAR,CAAoB09G,mBAAmB,CAAC3kH,OAAO,CAACg2C,eAAR,EAAD,EAA4BjyB,WAA5B,EAAyC,YAAY;AAC1F/jB,YAAAA,OAAO,CAACooC,cAAR,EAAA,CAAA;AACD,WAFsC,CAAvC,CAAA,CAAA;AAGD,SAAA;AACF,OApBD,MAoBO;AACL,QAAA,IAAIsvG,UAAU,GAAGH,eAAe,CAAChuH,MAAD,CAAhC,CAAA;AACAvpB,QAAAA,OAAO,GAAG03I,UAAU,CAAC10H,OAAX,CAAmB,CAAnB,CAAV,CAAA;QACAtE,KAAK,CAACO,GAAN,CAAUy4H,UAAV,CAAA,CAAA;AACAJ,QAAAA,eAAe,CAACv6H,GAAD,CAAf,GAAuB26H,UAAvB,CAAA;AACAtzH,QAAAA,aAAA,CAAoBpkB,OAApB,EAA6B;AAC3BrH,UAAAA,KAAK,EAAE;AACL0G,YAAAA,MAAM,EAAEm4I,OADH;AAEL5kH,YAAAA,eAAe,EAAEqB,OAAAA;AAFZ,WAAA;AADoB,SAA7B,EAKGlQ,WALH,CAAA,CAAA;QAMAM,YAAY,CAACrkB,OAAD,CAAZ,CAAA;AACD,OAAA;;AAEDymB,MAAAA,aAAa,CAACzmB,OAAD,EAAUylB,oBAAoB,CAAC1B,WAAD,CAA9B,EAA6C;AACxD4C,QAAAA,cAAc,EAAEqZ,OAAO,CAAC/pB,CAAC,GAAG,CAAL,CADiC;QAExD2Q,WAAW,EAAErF,IAAI,CAACyF,OAAL,CAAagZ,OAAO,CAAC/pB,CAAC,GAAG,CAAL,CAApB,CAF2C;QAGxD6Q,YAAY,EAAEn1B,KAAK,CAACC,IAAAA;AAHoC,OAA7C,EAIV;AACDgpC,QAAAA,MAAM,EAAE;UACND,aAAa,EAAE,QADT;;AAAA,SAAA;AADP,OAJU,CAAb,CAAA;MAUA36B,OAAO,CAACqmC,aAAR,CAAsB;AACpBl1B,QAAAA,QAAQ,EAAE,IADU;AAEpBmkG,QAAAA,KAAK,EAAE,IAAA;OAFT,CAAA,CAAA;AAIA,MAAA,IAAIyM,OAAO,GAAG/hH,OAAO,CAACkI,cAAR,EAAd,CA9EoC;;AAgFpC,MAAA,IAAI65G,OAAJ,EAAa;AACXA,QAAAA,OAAO,CAACj0H,CAAR,GAAY2pJ,UAAU,CAAC3pJ,CAAX,GAAeklB,MAA3B,CAAA;QACA+uG,OAAO,CAACh0H,CAAR,GAAY0pJ,UAAU,CAAC7nJ,EAAX,GAAgB6nJ,UAAU,CAAC1pJ,CAAX,GAAe,CAA3C,CAAA;AACD,OAAA;;MAEDiS,OAAO,CAACgmB,QAAR,CAAiBr0B,KAAjB,CAAA,CAAA;AACA4vB,MAAAA,IAAI,CAAC8H,gBAAL,CAAsBtM,GAAtB,EAA2B/c,OAA3B,CAAA,CAAA;AACAi9B,MAAAA,wBAAwB,CAACj9B,OAAD,EAAU+jB,WAAV,CAAxB,CAAA;MACAsD,mBAAmB,CAACrnB,OAAD,EAAUqlB,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAV,EAAsCH,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAtC,EAAsEH,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAtE,CAAnB,CAAA;AACD,KAAA;;IAED,IAAK6xH,CAAAA,aAAL,GAAqBJ,YAArB,CAAA;IACA,IAAK3+H,CAAAA,OAAL,GAAeg/H,eAAf,CAAA;GA/GF,CAAA;;EAkHAN,cAAc,CAAC52I,IAAf,GAAsB,YAAtB,CAAA;AACA,EAAA,OAAO42I,cAAP,CAAA;AACD,CA/HD,CA+HEz4G,SA/HF,CAFA,CAAA;;AAmIA;;AAEA,SAASomF,mBAAT,CAA6B10H,IAA7B,EAAmC8zB,WAAnC,EAAgDrH,EAAhD,EAAoD;AAClD,EAAA,IAAIyjF,MAAM,GAAG,IAAI/7E,MAAJ,CAAiB;AAC5BzrB,IAAAA,KAAK,EAAE;AACL7K,MAAAA,CAAC,EAAEmC,IAAI,CAACnC,CAAL,GAAS,EADP;AAELC,MAAAA,CAAC,EAAEkC,IAAI,CAAClC,CAAL,GAAS,EAFP;AAGL+I,MAAAA,KAAK,EAAE,CAHF;AAILC,MAAAA,MAAM,EAAE9G,IAAI,CAAC8G,MAAL,GAAc,EAAA;AAJjB,KAAA;AADqB,GAAjB,CAAb,CAAA;AAQAqtB,EAAAA,SAAA,CAAkB+7E,MAAlB,EAA0B;AACxBxnG,IAAAA,KAAK,EAAE;AACL7K,MAAAA,CAAC,EAAEmC,IAAI,CAACnC,CAAL,GAAS,EADP;AAELgJ,MAAAA,KAAK,EAAE7G,IAAI,CAAC6G,KAAL,GAAa,GAFf;AAGLC,MAAAA,MAAM,EAAE9G,IAAI,CAAC8G,MAAL,GAAc,EAAA;AAHjB,KAAA;GADT,EAMGgtB,WANH,EAMgBrH,EANhB,CAAA,CAAA;AAOA,EAAA,OAAOyjF,MAAP,CAAA;AACD;;AC1MD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkCA,IAAIw3C,eAAe,GAAG,CAAtB,CAAA;;AAEA,IAAIC,qBAAqB;AACzB;AACA,UAAUrmI,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAComI,qBAAD,EAAwBrmI,MAAxB,CAAT,CAAA;;AAEA,EAAA,SAASqmI,qBAAT,GAAiC;AAC/B,IAAA,IAAInmI,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaw3I,qBAAqB,CAACx3I,IAAnC,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEmmI,EAAAA,qBAAqB,CAACvqJ,SAAtB,CAAgCytC,IAAhC,GAAuC,UAAU5c,MAAV,EAAkB;AACvD;IACA3M,MAAM,CAAClkB,SAAP,CAAiBytC,IAAjB,CAAsB/c,KAAtB,CAA4B,IAA5B,EAAkC/sB,SAAlC,CAAA,CAFuD;AAGvD;AACA;;;IAGA,IAAKwqD,CAAAA,oBAAL,GAA4B,IAAIZ,oBAAJ,CAAyB7lB,MAAA,CAAY,IAAA,CAAK3V,OAAjB,EAA0B,IAA1B,CAAzB,EAA0D2V,MAAA,CAAY,KAAK+lB,UAAjB,EAA6B,IAA7B,CAA1D,CAA5B,CAAA;GAPF,CAAA;AASA;AACF;AACA;AACA;AACA;AACA;;;AAGE88F,EAAAA,qBAAqB,CAACvqJ,SAAtB,CAAgCwqJ,OAAhC,GAA0C,UAAUt2H,IAAV,EAAgB;AACxD,IAAA,IAAIu2H,aAAa,GAAGv2H,IAAI,CAAClxB,MAAzB,CAAA;AACA;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEI,IAAA,IAAI0nJ,aAAa,GAAG,EAApB,CAVwD;;IAYxD,IAAI5b,WAAW,GAAGC,SAAS,CAAC76G,IAAD,EAAO,UAAU3hB,IAAV,EAAgB;AAChD,MAAA,IAAI,CAACm4I,aAAa,CAACz6H,cAAd,CAA6B1d,IAAI,CAAC,CAAD,CAAJ,GAAU,EAAvC,CAAL,EAAiD;QAC/Cm4I,aAAa,CAACn4I,IAAI,CAAC,CAAD,CAAJ,GAAU,EAAX,CAAb,GAA8B,CAAC,CAA/B,CAAA;AACD,OAAA;;MAED,OAAOA,IAAI,CAAC,CAAD,CAAX,CAAA;AACD,KAN0B,CAA3B,CAAA;IAOA,IAAIo4I,SAAS,GAAG,EAAhB,CAAA;IACA7b,WAAW,CAACE,OAAZ,CAAoBtiI,IAApB,CAAyB,UAAUo6C,KAAV,EAAiB//C,GAAjB,EAAsB;MAC7C4jJ,SAAS,CAAC5mJ,IAAV,CAAe;AACb2C,QAAAA,IAAI,EAAEK,GADO;AAEb6jJ,QAAAA,QAAQ,EAAE9jG,KAAAA;OAFZ,CAAA,CAAA;KADF,CAAA,CAAA;AAMA,IAAA,IAAI+jG,QAAQ,GAAGF,SAAS,CAAC3nJ,MAAzB,CAAA;;IAEA,KAAK,IAAIkM,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG27I,QAApB,EAA8B,EAAE37I,CAAhC,EAAmC;AACjC,MAAA,IAAIihF,MAAM,GAAGw6D,SAAS,CAACz7I,CAAD,CAAT,CAAaxI,IAA1B,CAAA;;AAEA,MAAA,KAAK,IAAIkiB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+hI,SAAS,CAACz7I,CAAD,CAAT,CAAa07I,QAAb,CAAsB5nJ,MAA1C,EAAkD,EAAE4lB,CAApD,EAAuD;AACrD,QAAA,IAAIkiI,SAAS,GAAGH,SAAS,CAACz7I,CAAD,CAAT,CAAa07I,QAAb,CAAsBhiI,CAAtB,CAAyB,CAAA,CAAzB,IAA8B,EAA9C,CAAA;AACA8hI,QAAAA,aAAa,CAACI,SAAD,CAAb,GAA2B57I,CAA3B,CAAA;AACD,OAAA;;AAED,MAAA,KAAK,IAAI47I,SAAT,IAAsBJ,aAAtB,EAAqC;AACnC,QAAA,IAAIA,aAAa,CAACz6H,cAAd,CAA6B66H,SAA7B,CAAA,IAA2CJ,aAAa,CAACI,SAAD,CAAb,KAA6B57I,CAA5E,EAA+E;AAC7Ew7I,UAAAA,aAAa,CAACI,SAAD,CAAb,GAA2B57I,CAA3B,CAAA;UACAglB,IAAI,CAACu2H,aAAD,CAAJ,GAAsB,CAACK,SAAD,EAAY,CAAZ,EAAe36D,MAAf,CAAtB,CAAA;UACAs6D,aAAa,EAAA,CAAA;AACd,SAAA;AACF,OAAA;AACF,KAAA;;AAED,IAAA,OAAOv2H,IAAP,CAAA;GA7CF,CAAA;AA+CA;AACF;AACA;AACA;AACA;;;EAGEq2H,qBAAqB,CAACvqJ,SAAtB,CAAgC4wB,cAAhC,GAAiD,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;AAC1E,IAAA,IAAIg9G,eAAe,GAAG,IAAK73F,CAAAA,sBAAL,CAA4B,YAA5B,EAA0CC,gBAA1C,CAA4DC,CAAAA,MAA5D,CAAmE,CAAnE,CAAtB,CAAA;IACA,IAAI2C,QAAQ,GAAGg1F,eAAe,CAAC5yH,GAAhB,CAAoB,MAApB,CAAf,CAF0E;;AAI1E,IAAA,IAAI6yH,UAAU,GAAGtjH,MAAA,CAAc7W,MAAM,CAACqD,IAArB,EAA2B,UAAU83G,QAAV,EAAoB;AAC9D,MAAA,OAAOA,QAAQ,CAAC,CAAD,CAAR,KAAgB32H,SAAvB,CAAA;KADe,CAAjB,CAJ0E;;IAQ1E,IAAI6e,IAAI,GAAG,IAAKs2H,CAAAA,OAAL,CAAaQ,UAAU,IAAI,EAA3B,CAAX,CAAA;IACA,IAAIl+F,QAAQ,GAAG,EAAf,CAAA;IACA,IAAIi5B,OAAO,GAAG,IAAKA,CAAAA,OAAL,GAAer+C,aAAA,EAA7B,CAAA;IACA,IAAIE,KAAK,GAAG,CAAZ,CAAA;;AAEA,IAAA,KAAK,IAAIlkC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwwB,IAAI,CAAClxB,MAAzB,EAAiC,EAAEU,CAAnC,EAAsC;MACpCopD,QAAQ,CAAC/oD,IAAT,CAAcmwB,IAAI,CAACxwB,CAAD,CAAJ,CAAQ4mJ,eAAR,CAAd,CAAA,CAAA;;AAEA,MAAA,IAAI,CAACvkE,OAAO,CAAC5tD,GAAR,CAAYjE,IAAI,CAACxwB,CAAD,CAAJ,CAAQ4mJ,eAAR,CAAZ,CAAL,EAA4C;QAC1CvkE,OAAO,CAAC9zB,GAAR,CAAY/9B,IAAI,CAACxwB,CAAD,CAAJ,CAAQ4mJ,eAAR,CAAZ,EAAsC1iH,KAAtC,CAAA,CAAA;QACAA,KAAK,EAAA,CAAA;AACN,OAAA;AACF,KAAA;;AAED,IAAA,IAAItJ,UAAU,GAAG8uB,uBAAuB,CAACl5B,IAAD,EAAO;MAC7C64B,eAAe,EAAE,CAAC,QAAD,CAD4B;AAE7Ck+F,MAAAA,gBAAgB,EAAE,CAAC;AACjBvkJ,QAAAA,IAAI,EAAE,MADW;QAEjBqM,IAAI,EAAE+9H,sBAAsB,CAAC/6E,QAAD,CAAA;AAFX,OAAD,EAGf;AACDrvD,QAAAA,IAAI,EAAE,OADL;AAEDqM,QAAAA,IAAI,EAAE,OAAA;AAFL,OAHe,EAMf;AACDrM,QAAAA,IAAI,EAAE,MADL;AAEDqM,QAAAA,IAAI,EAAE,SAAA;AAFL,OANe,CAF2B;AAY7Ci6C,MAAAA,YAAY,EAAE;AACZk+F,QAAAA,MAAM,EAAE,CADI;AAEZhsH,QAAAA,KAAK,EAAE,CAFK;AAGZsmC,QAAAA,QAAQ,EAAE,CAAA;AAHE,OAAA;KAZwB,CAAvB,CAiBdlnC,UAjBH,CAAA;IAkBA,IAAIne,IAAI,GAAG,IAAIktC,UAAJ,CAAe/uB,UAAf,EAA2B,IAA3B,CAAX,CAAA;IACAne,IAAI,CAACmtC,QAAL,CAAcp5B,IAAd,CAAA,CAAA;AACA,IAAA,OAAO/T,IAAP,CAAA;GA1CF,CAAA;AA4CA;AACF;AACA;AACA;;;AAGEoqI,EAAAA,qBAAqB,CAACvqJ,SAAtB,CAAgC6pJ,cAAhC,GAAiD,YAAY;AAC3D,IAAA,IAAI31H,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;AACA,IAAA,IAAIo5H,QAAQ,GAAGj3H,IAAI,CAAC0T,KAAL,EAAf,CAAA;IACA,IAAIwjH,QAAQ,GAAG,EAAf,CAAA;;IAEA,KAAK,IAAI1nJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGynJ,QAApB,EAA8B,EAAEznJ,CAAhC,EAAmC;AACjC0nJ,MAAAA,QAAQ,CAAC1nJ,CAAD,CAAR,GAAcA,CAAd,CAAA;AACD,KAAA;;IAED,IAAI2nJ,OAAO,GAAGn3H,IAAI,CAACgK,YAAL,CAAkB,QAAlB,CAAd,CAT2D;;IAW3D,IAAI4wG,WAAW,GAAGC,SAAS,CAACqc,QAAD,EAAW,UAAUnsG,KAAV,EAAiB;AACrD,MAAA,OAAO/qB,IAAI,CAACiE,GAAL,CAAS,MAAT,EAAiB8mB,KAAjB,CAAP,CAAA;AACD,KAF0B,CAA3B,CAAA;IAGA,IAAIqsG,WAAW,GAAG,EAAlB,CAAA;IACAxc,WAAW,CAACE,OAAZ,CAAoBtiI,IAApB,CAAyB,UAAUo6C,KAAV,EAAiB//C,GAAjB,EAAsB;AAC7C+/C,MAAAA,KAAK,CAACtlB,IAAN,CAAW,UAAU+pH,MAAV,EAAkBC,MAAlB,EAA0B;AACnC,QAAA,OAAOt3H,IAAI,CAACiE,GAAL,CAASkzH,OAAT,EAAkBE,MAAlB,CAA4Br3H,GAAAA,IAAI,CAACiE,GAAL,CAASkzH,OAAT,EAAkBG,MAAlB,CAAnC,CAAA;OADF,CAAA,CAAA;MAGAF,WAAW,CAACvnJ,IAAZ,CAAiB;AACf2C,QAAAA,IAAI,EAAEK,GADS;AAEf4rC,QAAAA,OAAO,EAAEmU,KAAAA;OAFX,CAAA,CAAA;KAJF,CAAA,CAAA;AASA,IAAA,OAAOwkG,WAAP,CAAA;GAxBF,CAAA;AA0BA;AACF;AACA;;;EAGEf,qBAAqB,CAACvqJ,SAAtB,CAAgCyrJ,kBAAhC,GAAqD,UAAU1tH,GAAV,EAAemB,KAAf,EAAsB1B,QAAtB,EAAgC;AACnF,IAAA,IAAI,CAACkK,SAAA,CAAe3J,GAAf,CAAL,EAA0B;AACxBA,MAAAA,GAAG,GAAGA,GAAG,GAAG,CAACA,GAAD,CAAH,GAAW,EAApB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI7J,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;AACA,IAAA,IAAIu5H,WAAW,GAAG,IAAKzB,CAAAA,cAAL,EAAlB,CAAA;IACA,IAAIl3G,OAAO,GAAG,EAAd,CAAA;AACA,IAAA,IAAIk4G,QAAQ,GAAGS,WAAW,CAACtoJ,MAA3B,CAAA;AACA,IAAA,IAAI0oJ,YAAJ,CAAA;;IAEA,KAAK,IAAIhoJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmnJ,QAApB,EAA8B,EAAEnnJ,CAAhC,EAAmC;AACjC,MAAA,IAAIioJ,OAAO,GAAGztG,MAAM,CAACC,SAArB,CAAA;MACA,IAAIytG,UAAU,GAAG,CAAC,CAAlB,CAAA;MACA,IAAIC,QAAQ,GAAGP,WAAW,CAAC5nJ,CAAD,CAAX,CAAeivC,OAAf,CAAuB3vC,MAAtC,CAAA;;MAEA,KAAK,IAAI4lB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGijI,QAApB,EAA8B,EAAEjjI,CAAhC,EAAmC;QACjC,IAAIkjI,QAAQ,GAAG53H,IAAI,CAACiE,GAAL,CAAS4F,GAAG,CAAC,CAAD,CAAZ,EAAiButH,WAAW,CAAC5nJ,CAAD,CAAX,CAAeivC,OAAf,CAAuB/pB,CAAvB,CAAjB,CAAf,CAAA;QACA,IAAIu/B,IAAI,GAAG3oD,IAAI,CAACyC,GAAL,CAAS6pJ,QAAQ,GAAG5sH,KAApB,CAAX,CAAA;;QAEA,IAAIipB,IAAI,IAAIwjG,OAAZ,EAAqB;AACnBD,UAAAA,YAAY,GAAGI,QAAf,CAAA;AACAH,UAAAA,OAAO,GAAGxjG,IAAV,CAAA;UACAyjG,UAAU,GAAGN,WAAW,CAAC5nJ,CAAD,CAAX,CAAeivC,OAAf,CAAuB/pB,CAAvB,CAAb,CAAA;AACD,SAAA;AACF,OAAA;;MAED+pB,OAAO,CAAC5uC,IAAR,CAAa6nJ,UAAb,CAAA,CAAA;AACD,KAAA;;IAED,OAAO;AACLt+B,MAAAA,WAAW,EAAE36E,OADR;AAEL+4G,MAAAA,YAAY,EAAEA,YAAAA;KAFhB,CAAA;GA9BF,CAAA;;EAoCAnB,qBAAqB,CAACvqJ,SAAtB,CAAgC6xE,aAAhC,GAAgD,UAAU19C,SAAV,EAAqB29C,cAArB,EAAqCC,QAArC,EAA+C;AAC7F,IAAA,IAAI79C,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;AACA,IAAA,IAAIrrB,IAAI,GAAGwtB,IAAI,CAACyF,OAAL,CAAaxF,SAAb,CAAX,CAAA;AACA,IAAA,IAAI+K,KAAK,GAAGhL,IAAI,CAACiE,GAAL,CAASjE,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAT,EAAqC/J,SAArC,CAAZ,CAAA;IACA,OAAOi+C,mBAAmB,CAAC,WAAD,EAAc;AACtC1rE,MAAAA,IAAI,EAAEA,IADgC;AAEtCw4B,MAAAA,KAAK,EAAEA,KAAAA;AAF+B,KAAd,CAA1B,CAAA;GAJF,CAAA;;EAUAqrH,qBAAqB,CAACx3I,IAAtB,GAA6B,mBAA7B,CAAA;AACAw3I,EAAAA,qBAAqB,CAAC73H,YAAtB,GAAqC,CAAC,YAAD,CAArC,CAAA;EACA63H,qBAAqB,CAAC53H,aAAtB,GAAsC;AACpC;AACAzG,IAAAA,CAAC,EAAE,CAFiC;AAGpC4iC,IAAAA,OAAO,EAAE,MAH2B;AAIpC/9B,IAAAA,gBAAgB,EAAE,YAJkB;AAKpC;AACA4jC,IAAAA,WAAW,EAAE,CAAC,KAAD,EAAQ,KAAR,CANuB;AAOpC;AACAo3F,IAAAA,eAAe,EAAE,CARmB;AASpCr4H,IAAAA,eAAe,EAAE,QATmB;AAUpCb,IAAAA,KAAK,EAAE;AACLlN,MAAAA,MAAM,EAAE,CADH;AAELoN,MAAAA,IAAI,EAAE,IAFD;AAGLjP,MAAAA,QAAQ,EAAE,MAHL;AAILhP,MAAAA,QAAQ,EAAE,EAAA;KAdwB;AAgBpCoe,IAAAA,QAAQ,EAAE;AACRL,MAAAA,KAAK,EAAE;AACLE,QAAAA,IAAI,EAAE,IAAA;AADD,OAAA;AADC,KAAA;GAhBZ,CAAA;AAsBA,EAAA,OAAOw3H,qBAAP,CAAA;AACD,CA7OD,CA6OEv2H,WA7OF,CAFA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2Be,SAASg4H,gBAAT,CAA0Bj+G,OAA1B,EAAmCxxB,GAAnC,EAAwC;AACrDwxB,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,YAAzB,EAAuC,UAAU/tB,WAAV,EAAuB;AAC5D,IAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAIm5H,MAAM,GAAGx0H,WAAW,CAAC3F,gBAAzB,CAAA;AACA,IAAA,IAAIgrE,UAAU,GAAG,EAAjB,CAH4D;;AAK5D,IAAA,IAAIn5F,IAAI,GAAGsoJ,MAAM,CAAClwF,OAAP,EAAX,CAAA;IACA+gC,UAAU,CAACn5F,IAAX,GAAkBA,IAAlB,CAAA;AACA,IAAA,IAAI+xD,WAAW,GAAGj+B,WAAW,CAACyB,GAAZ,CAAgB,aAAhB,CAAlB,CAAA;AACA,IAAA,IAAIwR,IAAI,GAAGuhH,MAAM,CAACthH,OAAP,EAAX,CAAA;IACAmyD,UAAU,CAACpnC,WAAX,GAAyBA,WAAzB,CAAA;;AAEA,IAAA,IAAIhrB,IAAI,CAAC6xD,MAAL,KAAgB,YAApB,EAAkC;AAChC7mC,MAAAA,WAAW,CAAC,CAAD,CAAX,GAAiB+gB,YAAA,CAAwB/gB,WAAW,CAAC,CAAD,CAAnC,EAAwC/xD,IAAI,CAAC8G,MAA7C,CAAjB,CAAA;AACAirD,MAAAA,WAAW,CAAC,CAAD,CAAX,GAAiB+gB,YAAA,CAAwB/gB,WAAW,CAAC,CAAD,CAAnC,EAAwC/xD,IAAI,CAAC8G,MAA7C,CAAjB,CAAA;AACA,MAAA,IAAIA,MAAM,GAAG9G,IAAI,CAAC8G,MAAL,GAAcirD,WAAW,CAAC,CAAD,CAAzB,GAA+BA,WAAW,CAAC,CAAD,CAAvD,CAAA;AACAs3F,MAAAA,kBAAkB,CAAC/3H,IAAD,EAAOwC,WAAP,EAAoBhtB,MAApB,CAAlB,CAAA;AACD,KALD,MAKO;AACLirD,MAAAA,WAAW,CAAC,CAAD,CAAX,GAAiB+gB,YAAA,CAAwB/gB,WAAW,CAAC,CAAD,CAAnC,EAAwC/xD,IAAI,CAAC6G,KAA7C,CAAjB,CAAA;AACAkrD,MAAAA,WAAW,CAAC,CAAD,CAAX,GAAiB+gB,YAAA,CAAwB/gB,WAAW,CAAC,CAAD,CAAnC,EAAwC/xD,IAAI,CAAC6G,KAA7C,CAAjB,CAAA;AACA,MAAA,IAAIA,KAAK,GAAG7G,IAAI,CAAC6G,KAAL,GAAakrD,WAAW,CAAC,CAAD,CAAxB,GAA8BA,WAAW,CAAC,CAAD,CAArD,CAAA;AACAs3F,MAAAA,kBAAkB,CAAC/3H,IAAD,EAAOwC,WAAP,EAAoBjtB,KAApB,CAAlB,CAAA;AACD,KAAA;;AAEDyqB,IAAAA,IAAI,CAACqgB,SAAL,CAAe,YAAf,EAA6BwnD,UAA7B,CAAA,CAAA;GAvBF,CAAA,CAAA;AAyBD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASkwD,kBAAT,CAA4B/3H,IAA5B,EAAkCwC,WAAlC,EAA+ChtB,MAA/C,EAAuD;AACrD,EAAA,IAAI,CAACwqB,IAAI,CAAC0T,KAAL,EAAL,EAAmB;AACjB,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI9W,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CALqD;;AAOrD,EAAA,IAAIu6H,WAAW,GAAG50H,WAAW,CAACmzH,cAAZ,EAAlB,CAPqD;;AASrD,EAAA,IAAIwB,OAAO,GAAGn3H,IAAI,CAACgK,YAAL,CAAkB,QAAlB,CAAd,CAAA;AACA,EAAA,IAAID,QAAQ,GAAG/J,IAAI,CAACgK,YAAL,CAAkB,OAAlB,CAAf,CAAA;EACA,IAAIguH,WAAW,GAAGxkH,GAAA,CAAW4jH,WAAX,EAAwB,UAAUa,WAAV,EAAuB;IAC/D,OAAOzkH,GAAA,CAAWykH,WAAW,CAACx5G,OAAvB,EAAgC,UAAUjjB,GAAV,EAAe;AACpD,MAAA,IAAImY,EAAE,GAAG/W,QAAQ,CAACuO,WAAT,CAAqBnL,IAAI,CAACiE,GAAL,CAASkzH,OAAT,EAAkB37H,GAAlB,CAArB,CAAT,CAAA;MACAmY,EAAE,CAAC,CAAD,CAAF,GAAQ3T,IAAI,CAACiE,GAAL,CAAS8F,QAAT,EAAmBvO,GAAnB,CAAR,CAAA;AACA,MAAA,OAAOmY,EAAP,CAAA;AACD,KAJM,CAAP,CAAA;AAKD,GANiB,CAAlB,CAAA;AAOA,EAAA,IAAIq1B,IAAI,GAAGkvF,eAAe,CAACF,WAAD,CAA1B,CAAA;AACA,EAAA,IAAIG,QAAQ,GAAGnvF,IAAI,CAAC36D,EAApB,CAAA;EACA,IAAI2sI,EAAE,GAAGxlI,MAAM,GAAGwzD,IAAI,CAACh7C,GAAvB,CApBqD;;AAsBrD,EAAA,IAAIk3E,CAAC,GAAGkyD,WAAW,CAACtoJ,MAApB,CAAA;EACA,IAAIyO,CAAC,GAAG65I,WAAW,CAAC,CAAD,CAAX,CAAe34G,OAAf,CAAuB3vC,MAA/B,CAAA;AACA,EAAA,IAAIspJ,MAAJ,CAAA;;EAEA,KAAK,IAAI1jI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGnX,CAApB,EAAuB,EAAEmX,CAAzB,EAA4B;AAC1B0jI,IAAAA,MAAM,GAAGD,QAAQ,CAACzjI,CAAD,CAAR,GAAcsmH,EAAvB,CAAA;AACAh7G,IAAAA,IAAI,CAACogB,aAAL,CAAmBg3G,WAAW,CAAC,CAAD,CAAX,CAAe34G,OAAf,CAAuB/pB,CAAvB,CAAnB,EAA8C;AAC5C2jI,MAAAA,UAAU,EAAE,CADgC;MAE5C9rJ,CAAC,EAAEyrJ,WAAW,CAAC,CAAD,CAAX,CAAetjI,CAAf,CAAkB,CAAA,CAAlB,CAFyC;AAG5CrmB,MAAAA,EAAE,EAAE+pJ,MAHwC;MAI5C5rJ,CAAC,EAAEwrJ,WAAW,CAAC,CAAD,CAAX,CAAetjI,CAAf,CAAkB,CAAA,CAAlB,CAAuBsmH,GAAAA,EAAAA;KAJ5B,CAAA,CAAA;;IAOA,KAAK,IAAIxrI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG01F,CAApB,EAAuB,EAAE11F,CAAzB,EAA4B;AAC1B4oJ,MAAAA,MAAM,IAAIJ,WAAW,CAACxoJ,CAAC,GAAG,CAAL,CAAX,CAAmBklB,CAAnB,CAAA,CAAsB,CAAtB,CAAA,GAA2BsmH,EAArC,CAAA;AACAh7G,MAAAA,IAAI,CAACogB,aAAL,CAAmBg3G,WAAW,CAAC5nJ,CAAD,CAAX,CAAeivC,OAAf,CAAuB/pB,CAAvB,CAAnB,EAA8C;AAC5C2jI,QAAAA,UAAU,EAAE7oJ,CADgC;QAE5CjD,CAAC,EAAEyrJ,WAAW,CAACxoJ,CAAD,CAAX,CAAeklB,CAAf,CAAkB,CAAA,CAAlB,CAFyC;AAG5CrmB,QAAAA,EAAE,EAAE+pJ,MAHwC;QAI5C5rJ,CAAC,EAAEwrJ,WAAW,CAACxoJ,CAAD,CAAX,CAAeklB,CAAf,CAAkB,CAAA,CAAlB,CAAuBsmH,GAAAA,EAAAA;OAJ5B,CAAA,CAAA;AAMD,KAAA;AACF,GAAA;AACF,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASkd,eAAT,CAAyBl4H,IAAzB,EAA+B;AAC7B,EAAA,IAAI22H,QAAQ,GAAG32H,IAAI,CAAClxB,MAApB,CAAA;AACA,EAAA,IAAI6oJ,QAAQ,GAAG33H,IAAI,CAAC,CAAD,CAAJ,CAAQlxB,MAAvB,CAAA;EACA,IAAIwpJ,IAAI,GAAG,EAAX,CAAA;EACA,IAAIjqJ,EAAE,GAAG,EAAT,CAAA;EACA,IAAI2f,GAAG,GAAG,CAAV,CAAA;;EAEA,KAAK,IAAIxe,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmoJ,QAApB,EAA8B,EAAEnoJ,CAAhC,EAAmC;IACjC,IAAI+oJ,IAAI,GAAG,CAAX,CAAA;;IAEA,KAAK,IAAI7jI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiiI,QAApB,EAA8B,EAAEjiI,CAAhC,EAAmC;MACjC6jI,IAAI,IAAIv4H,IAAI,CAACtL,CAAD,CAAJ,CAAQllB,CAAR,CAAW,CAAA,CAAX,CAAR,CAAA;AACD,KAAA;;IAED,IAAI+oJ,IAAI,GAAGvqI,GAAX,EAAgB;AACdA,MAAAA,GAAG,GAAGuqI,IAAN,CAAA;AACD,KAAA;;IAEDD,IAAI,CAACzoJ,IAAL,CAAU0oJ,IAAV,CAAA,CAAA;AACD,GAAA;;EAED,KAAK,IAAIv9I,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG28I,QAApB,EAA8B,EAAE38I,CAAhC,EAAmC;AACjC3M,IAAAA,EAAE,CAAC2M,CAAD,CAAF,GAAQ,CAACgT,GAAG,GAAGsqI,IAAI,CAACt9I,CAAD,CAAX,IAAkB,CAA1B,CAAA;AACD,GAAA;;AAEDgT,EAAAA,GAAG,GAAG,CAAN,CAAA;;EAEA,KAAK,IAAIqjG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsmC,QAApB,EAA8B,EAAEtmC,CAAhC,EAAmC;IACjC,IAAI5wE,GAAG,GAAG63G,IAAI,CAACjnC,CAAD,CAAJ,GAAUhjH,EAAE,CAACgjH,CAAD,CAAtB,CAAA;;IAEA,IAAI5wE,GAAG,GAAGzyB,GAAV,EAAe;AACbA,MAAAA,GAAG,GAAGyyB,GAAN,CAAA;AACD,KAAA;AACF,GAAA;;EAED,OAAO;AACLpyC,IAAAA,EAAE,EAAEA,EADC;AAEL2f,IAAAA,GAAG,EAAEA,GAAAA;GAFP,CAAA;AAID;;AC5KD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAWO,SAASkB,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4Bs0G,cAA5B,CAAA,CAAA;EACAtmI,SAAS,CAACiyB,mBAAV,CAA8Bi1G,qBAA9B,CAAA,CAAA;EACAlnI,SAAS,CAACmyB,cAAV,CAAyBw2G,gBAAzB,CAAA,CAAA;AACA3oI,EAAAA,SAAS,CAACuyB,iBAAV,CAA4B4P,YAAU,CAAC,YAAD,CAAtC,CAAA,CAAA;AACD;;ACjCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkCA,IAAIknG,gBAAgB,GAAG,CAAvB,CAAA;AACA,IAAIC,cAAc,GAAG,CAArB,CAAA;AACA;AACA;AACA;;AAEA,IAAIC,aAAa;AACjB;AACA,UAAU1oI,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACyoI,aAAD,EAAgB1oI,MAAhB,CAAT,CAAA;;EAEA,SAAS0oI,aAAT,CAAuBryI,IAAvB,EAA6Bmc,WAA7B,EAA0CqX,OAA1C,EAAmDxxB,GAAnD,EAAwD;IACtD,IAAI6H,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,KAAqB,IAAjC,CAAA;;IAEAD,KAAK,CAACgR,EAAN,GAAWs3H,gBAAX,CAAA;IACAtoI,KAAK,CAACkuB,UAAN,GAAmB;AACjByP,MAAAA,MAAM,EAAE,IAAA;KADV,CAAA;IAGA7nB,SAAS,CAAC9V,KAAD,CAAT,CAAiB2rB,WAAjB,GAA+BrZ,WAAW,CAACqZ,WAA3C,CAAA;AACA,IAAA,IAAI7oC,IAAI,GAAG,IAAI6vB,MAAJ,CAAiB;AAC1B3B,MAAAA,EAAE,EAAEu3H,cADsB;MAE1Bn2H,MAAM,EAAEjc,IAAI,CAAC0d,QAAL,EAAA,CAAgBE,GAAhB,CAAoB,CAAC,OAAD,EAAU,QAAV,CAApB,CAAA;AAFkB,KAAjB,CAAX,CAAA;;IAKA/T,KAAK,CAACzJ,cAAN,CAAqBzT,IAArB,CAAA,CAAA;;IAEAkd,KAAK,CAAC0Q,UAAN,CAAiB,IAAjB,EAAuBva,IAAvB,EAA6Bmc,WAA7B,EAA0CqX,OAA1C,EAAmDxxB,GAAnD,CAAA,CAAA;;AAEA,IAAA,OAAO6H,KAAP,CAAA;AACD,GAAA;;EAEDwoI,aAAa,CAAC5sJ,SAAd,CAAwB80B,UAAxB,GAAqC,UAAU42B,WAAV,EAAuBnxC,IAAvB;AACrCmc,EAAAA,WADqC,EACxBqX,OADwB,EACfxxB,GADe,EACV;IACzB,IAAKhC,CAAAA,IAAL,GAAYA,IAAZ,CAAA;IACAA,IAAI,CAACs8F,KAAL,GAAa,IAAb,CAAA;AACAngF,IAAAA,WAAW,GAAGA,WAAW,IAAI,IAAA,CAAKm2H,YAAlC,CAAA;AACA9+G,IAAAA,OAAO,GAAGA,OAAO,IAAI,IAAA,CAAK++G,QAA1B,CAAA;IACA,IAAIv0G,MAAM,GAAG,IAAb,CAAA;IACAre,SAAS,CAACqe,MAAD,CAAT,CAAkBpkB,SAAlB,GAA8B5Z,IAAI,CAAC4Z,SAAnC,CAAA;AACA,IAAA,IAAI2D,SAAS,GAAGvd,IAAI,CAAC0d,QAAL,EAAhB,CAAA;AACA,IAAA,IAAID,aAAa,GAAGF,SAAS,CAACG,QAAV,CAAmB,UAAnB,CAApB,CAAA;AACA,IAAA,IAAI2jB,MAAM,GAAGrhC,IAAI,CAACmmB,SAAL,EAAb,CAAA;IACA,IAAIggB,WAAW,GAAGhZ,MAAA,CAAc,EAAd,EAAkBkU,MAAlB,CAAlB,CAAA;IACA8E,WAAW,CAAC7tB,KAAZ,GAAoB,IAApB,CAAA;AACA,IAAA,IAAI+6D,WAAW,GAAGrzE,IAAI,CAACyX,SAAL,CAAe,OAAf,CAAlB,CAAA;IACA47D,WAAW,CAACj+C,QAAZ,GAAuB,OAAvB,CAAA;AACA,IAAA,IAAI9W,KAAK,GAAGte,IAAI,CAACyX,SAAL,CAAe,OAAf,CAAZ,CAAA;;AAEA,IAAA,IAAI6G,KAAJ,EAAW;MACT+0D,WAAW,CAAC/0D,KAAZ,GAAoBk1D,8BAA8B,CAACl1D,KAAD,EAAQtc,GAAR,CAAlD,CAAA;AACD,KAAA;;AAED,IAAA,IAAIgvC,YAAY,GAAGF,qBAAqB,CAACvzB,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAAD,EAAkCyoB,WAAlC,EAA+C,IAA/C,CAAxC,CAAA;AACAhZ,IAAAA,MAAA,CAAcgZ,WAAd,EAA2B6K,YAA3B,CAAA,CAAA;AACA7jB,IAAAA,MAAA,CAAYyE,cAAZ,EAA4B,UAAUilC,SAAV,EAAqB;AAC/C,MAAA,IAAIlvB,KAAK,GAAG3J,MAAM,CAAC1e,WAAP,CAAmBu3C,SAAnB,CAAZ,CAAA;MACA,IAAI27E,cAAc,GAAGj1H,SAAS,CAACG,QAAV,CAAmB,CAACm5C,SAAD,EAAY,WAAZ,CAAnB,CAArB,CAAA;MACAlvB,KAAK,CAAC59C,KAAN,GAAcyoJ,cAAc,CAAC70H,YAAf,EAAd,CAH+C;;AAK/C,MAAA,IAAIqzB,YAAY,GAAGF,qBAAqB,CAAC0hG,cAAD,EAAiBrsG,WAAjB,CAAxC,CAAA;;AAEA,MAAA,IAAI6K,YAAJ,EAAkB;QAChBrJ,KAAK,CAAC52C,KAAN,GAAcigD,YAAd,CAAA;AACD,OAAA;KATH,CAAA,CAAA;;AAYA,IAAA,IAAIG,WAAJ,EAAiB;MACfnT,MAAM,CAAC9I,QAAP,CAAgBiR,WAAhB,CAAA,CAAA;AACAnI,MAAAA,MAAM,CAACjtC,KAAP,CAAahK,CAAb,GAAiBs6C,MAAM,CAACrV,EAAxB,CAAA;AACAxP,MAAAA,aAAA,CAAoBwhB,MAApB,EAA4B;AAC1BjtC,QAAAA,KAAK,EAAE;UACLhK,CAAC,EAAEs6C,MAAM,CAACt6C,CAAAA;AADL,SAAA;AADmB,OAA5B,EAIGo1B,WAJH,EAIgBnc,IAAI,CAAC4Z,SAJrB,CAAA,CAAA;AAKD,KARD,MAQO;AACL;AACA;AACA4C,MAAAA,aAAA,CAAoBwhB,MAApB,EAA4B;AAC1BjtC,QAAAA,KAAK,EAAEo1C,WAAAA;AADmB,OAA5B,EAEGhqB,WAFH,CAAA,CAAA;MAGAM,YAAY,CAACuhB,MAAD,CAAZ,CAAA;AACD,KAAA;;IAEDA,MAAM,CAAC5f,QAAP,CAAgBi1D,WAAhB,CAAA,CAAA;;IAEA,IAAK/hC,CAAAA,YAAL,CAAkBn1B,WAAlB,CAAA,CAAA;;AAEA,IAAA,IAAIkB,WAAW,GAAGE,SAAS,CAACO,UAAV,CAAqB,QAArB,CAAlB,CAAA;IACAT,WAAW,IAAI2gB,MAAM,CAACpjB,IAAP,CAAY,QAAZ,EAAsByC,WAAtB,CAAf,CAAA;AACA,IAAA,IAAA,CAAKi1H,YAAL,GAAoBn2H,WAAW,IAAI,KAAKm2H,YAAxC,CAAA;AACA,IAAA,IAAA,CAAKC,QAAL,GAAgB/+G,OAAO,IAAI,KAAK++G,QAAhC,CAAA;AACA,IAAA,IAAIv1H,KAAK,GAAGS,aAAa,CAACG,GAAd,CAAkB,OAAlB,CAAZ,CAAA;IACA,IAAI45E,cAAc,GAAGx6E,KAAK,KAAK,UAAV,GAAuBhd,IAAI,CAACikF,mBAAL,EAAvB,GAAoDjnE,KAAK,KAAK,YAAV,GAAyBhd,IAAI,CAACkkF,oBAAL,EAAzB,GAAuDlnE,KAAhI,CAAA;AACAyC,IAAAA,mBAAmB,CAAC,IAAD,EAAO+3E,cAAP,EAAuB/5E,aAAa,CAACG,GAAd,CAAkB,WAAlB,CAAvB,EAAuDH,aAAa,CAACG,GAAd,CAAkB,UAAlB,CAAvD,CAAnB,CAAA;GA9DF,CAAA;;AAiEAy0H,EAAAA,aAAa,CAAC5sJ,SAAd,CAAwB6rD,YAAxB,GAAuC,UAAUn1B,WAAV,EAAuB;IAC5D,IAAItS,KAAK,GAAG,IAAZ,CAAA;;AAEA,IAAA,IAAI0T,SAAS,GAAG,IAAA,CAAKvd,IAAL,CAAU0d,QAAV,EAAhB,CAAA;AACA,IAAA,IAAImmE,gBAAgB,GAAGtmE,SAAS,CAACG,QAAV,CAAmB,OAAnB,CAAvB,CAAA;AACA,IAAA,IAAI2jB,MAAM,GAAG,IAAA,CAAKrhC,IAAL,CAAUmmB,SAAV,EAAb,CAAA;IACA,IAAIyY,KAAK,GAAGyC,MAAM,CAACp6C,QAAP,GAAkBo6C,MAAM,CAACr6C,UAArC,CAAA;IACA,IAAIsoD,QAAQ,GAAG,CAACjO,MAAM,CAACr6C,UAAP,GAAoBq6C,MAAM,CAACp6C,QAA5B,IAAwC,CAAvD,CAAA;AACA,IAAA,IAAIg5B,EAAE,GAAGh7B,IAAI,CAACG,GAAL,CAASkqD,QAAT,CAAT,CAAA;AACA,IAAA,IAAIpvB,EAAE,GAAGj7B,IAAI,CAACC,GAAL,CAASoqD,QAAT,CAAT,CAAA;IACA,IAAItR,MAAM,GAAG,IAAb,CAAA;AACA,IAAA,IAAI1lB,KAAK,GAAG0lB,MAAM,CAAC19B,cAAP,EAAZ,CAAA;AACA,IAAA,IAAIsZ,SAAS,GAAG,IAAK5Z,CAAAA,IAAL,CAAU4Z,SAA1B,CAAA;AACA,IAAA,IAAI64H,aAAa,GAAG5uD,gBAAgB,CAACjmE,GAAjB,CAAqB,UAArB,CAAA,GAAmC,GAAnC,GAAyC34B,IAAI,CAACI,EAAlE,CAAA;IACA,IAAIqtJ,aAAa,GAAG7uD,gBAAgB,CAACjmE,GAAjB,CAAqB,MAArB,KAAgC,EAAE60H,aAAa,IAAI,IAAjB,IAAyBxtJ,IAAI,CAACyC,GAAL,CAASk3C,KAAT,CAAA,GAAkB6zG,aAA7C,CAApD,CAAA;AACAn6H,IAAAA,KAAK,CAACypB,MAAN,GAAe,CAAC2wG,aAAhB,CAf4D;;AAiB5DvlH,IAAAA,MAAA,CAAYwlH,cAAZ,EAA4B,UAAU97E,SAAV,EAAqB;MAC/C,IAAI+7E,eAAe,GAAG/7E,SAAS,KAAK,QAAd,GAAyBt5C,SAAS,CAACG,QAAV,CAAmB,OAAnB,CAAzB,GAAuDH,SAAS,CAACG,QAAV,CAAmB,CAACm5C,SAAD,EAAY,OAAZ,CAAnB,CAA7E,CAAA;AACA,MAAA,IAAIg8E,QAAQ,GAAGh8E,SAAS,KAAK,QAA7B,CAAA;MACA,IAAIlvB,KAAK,GAAGkrG,QAAQ,GAAGv6H,KAAH,GAAWA,KAAK,CAACgH,WAAN,CAAkBu3C,SAAlB,CAA/B,CAAA;MACA,IAAIlqE,IAAI,GAAGwvB,WAAW,CAACs1B,iBAAZ,CAA8B73B,SAA9B,EAAyCi9C,SAAzC,CAAX,CAAA;;AAEA,MAAA,IAAIg8E,QAAJ,EAAc;AACZlmJ,QAAAA,IAAI,GAAGA,IAAI,IAAIkd,KAAK,CAAC7J,IAAN,CAAW7T,IAA1B,CAAA;AACD,OAAA;;AAEDw7C,MAAAA,KAAK,CAAC59C,KAAN,GAAcghE,eAAe,CAAC6nF,eAAD,EAAkB,EAAlB,EAAsB,IAAtB,EAA4B/7E,SAAS,KAAK,QAA1C,EAAoD,IAApD,CAA7B,CAAA;;AAEA,MAAA,IAAIlqE,IAAJ,EAAU;AACRg7C,QAAAA,KAAK,CAAC59C,KAAN,CAAY4C,IAAZ,GAAmBA,IAAnB,CAAA;AACD,OAd8C;;;AAiB/C,MAAA,IAAImmJ,OAAO,GAAGF,eAAe,CAACh1H,GAAhB,CAAoB,MAApB,CAAd,CAAA;;AAEA,MAAA,IAAIk1H,OAAO,IAAI,IAAX,IAAmB,CAACD,QAAxB,EAAkC;AAChClrG,QAAAA,KAAK,CAAC5F,MAAN,GAAe,CAAC+wG,OAAhB,CAAA;AACD,OAAA;;AAED,MAAA,IAAI5jG,aAAa,GAAG6jG,YAAY,CAACH,eAAD,EAAkB,UAAlB,CAAhC,CAAA;MACA,IAAII,WAAW,GAAGH,QAAQ,GAAG70G,MAAH,GAAYA,MAAM,CAAC0J,MAAP,CAAcmvB,SAAd,CAAtC,CAAA;AACA,MAAA,IAAIo8E,UAAU,GAAGD,WAAW,CAACjpJ,KAAZ,CAAkBC,IAAnC,CAAA;MACAgpJ,WAAW,CAACj7G,UAAZ,GAAyB;QACvBwjF,WAAW,EAAEq3B,eAAe,CAACh1H,GAAhB,CAAoB,OAApB,CAAA,KAAiC,SAAjC,GAA6Cq1H,UAA7C,GAA0D,IADhD;QAEvBzrG,MAAM,EAAE0H,aAAa,KAAK,SAAA;OAF5B,CAAA;AAIA,MAAA,IAAInoD,CAAJ,CAAA;MACA,IAAImsJ,YAAY,GAAGH,YAAY,CAACH,eAAD,EAAkB,UAAlB,CAAZ,IAA6C,CAAhE,CAAA;AACA,MAAA,IAAI14I,SAAS,GAAG64I,YAAY,CAACH,eAAD,EAAkB,OAAlB,CAA5B,CAAA;;MAEA,IAAI1jG,aAAa,KAAK,SAAtB,EAAiC;AAC/BnoD,QAAAA,CAAC,GAAGs6C,MAAM,CAACt6C,CAAP,GAAWmsJ,YAAf,CAAA;QACAh5I,SAAS,GAAGo1C,QAAQ,GAAGrqD,IAAI,CAACI,EAAL,GAAU,CAArB,GAAyB,OAAzB,GAAmC,MAA/C,CAAA;AACD,OAHD,MAGO;AACL,QAAA,IAAI,CAAC6U,SAAD,IAAcA,SAAS,KAAK,QAAhC,EAA0C;AACxC;AACA,UAAA,IAAI0kC,KAAK,KAAK,CAAI35C,GAAAA,IAAI,CAACI,EAAnB,IAAyBg8C,MAAM,CAACrV,EAAP,KAAc,CAA3C,EAA8C;AAC5CjlC,YAAAA,CAAC,GAAG,CAAJ,CAAA;AACD,WAFD,MAEO;YACLA,CAAC,GAAG,CAACs6C,MAAM,CAACt6C,CAAP,GAAWs6C,MAAM,CAACrV,EAAnB,IAAyB,CAA7B,CAAA;AACD,WAAA;;AAED9xB,UAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,SATD,MASO,IAAIA,SAAS,KAAK,MAAlB,EAA0B;AAC/BnT,UAAAA,CAAC,GAAGs6C,MAAM,CAACrV,EAAP,GAAYknH,YAAhB,CAAA;;AAEA,UAAA,IAAI5jG,QAAQ,GAAGrqD,IAAI,CAACI,EAAL,GAAU,CAAzB,EAA4B;AAC1B6U,YAAAA,SAAS,GAAG,OAAZ,CAAA;AACD,WAAA;AACF,SANM,MAMA,IAAIA,SAAS,KAAK,OAAlB,EAA2B;AAChCnT,UAAAA,CAAC,GAAGs6C,MAAM,CAACt6C,CAAP,GAAWmsJ,YAAf,CAAA;;AAEA,UAAA,IAAI5jG,QAAQ,GAAGrqD,IAAI,CAACI,EAAL,GAAU,CAAzB,EAA4B;AAC1B6U,YAAAA,SAAS,GAAG,MAAZ,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAEDytC,MAAAA,KAAK,CAAC59C,KAAN,CAAY+oC,KAAZ,GAAoB54B,SAApB,CAAA;AACAytC,MAAAA,KAAK,CAAC59C,KAAN,CAAYgpC,aAAZ,GAA4BggH,YAAY,CAACH,eAAD,EAAkB,eAAlB,CAAZ,IAAkD,QAA9E,CAAA;MACAjrG,KAAK,CAACzhD,CAAN,GAAUa,CAAC,GAAGk5B,EAAJ,GAASohB,MAAM,CAACx6C,EAA1B,CAAA;MACA8gD,KAAK,CAACxhD,CAAN,GAAUY,CAAC,GAAGm5B,EAAJ,GAASmhB,MAAM,CAACv6C,EAA1B,CAAA;AACA,MAAA,IAAI03C,UAAU,GAAGu0G,YAAY,CAACH,eAAD,EAAkB,QAAlB,CAA7B,CAAA;MACA,IAAIj0G,MAAM,GAAG,CAAb,CAAA;;MAEA,IAAIH,UAAU,KAAK,QAAnB,EAA6B;QAC3BG,MAAM,GAAG,CAAC2Q,QAAV,CAAA;;QAEA,IAAI3Q,MAAM,GAAG,CAAC15C,IAAI,CAACI,EAAN,GAAW,CAAxB,EAA2B;UACzBs5C,MAAM,IAAI15C,IAAI,CAACI,EAAf,CAAA;AACD,SAAA;AACF,OAND,MAMO,IAAIm5C,UAAU,KAAK,YAAnB,EAAiC;AACtCG,QAAAA,MAAM,GAAG15C,IAAI,CAACI,EAAL,GAAU,CAAV,GAAciqD,QAAvB,CAAA;;AAEA,QAAA,IAAI3Q,MAAM,GAAG15C,IAAI,CAACI,EAAL,GAAU,CAAvB,EAA0B;UACxBs5C,MAAM,IAAI15C,IAAI,CAACI,EAAf,CAAA;SADF,MAEO,IAAIs5C,MAAM,GAAG,CAAC15C,IAAI,CAACI,EAAN,GAAW,CAAxB,EAA2B;UAChCs5C,MAAM,IAAI15C,IAAI,CAACI,EAAf,CAAA;AACD,SAAA;OAPI,MAQA,IAAI8nC,QAAA,CAAgBqR,UAAhB,CAAJ,EAAiC;AACtCG,QAAAA,MAAM,GAAGH,UAAU,GAAGv5C,IAAI,CAACI,EAAlB,GAAuB,GAAhC,CAAA;AACD,OAAA;;MAEDsiD,KAAK,CAAC1vB,QAAN,GAAiB0mB,MAAjB,CAAA;KAvFF,CAAA,CAAA;;AA0FA,IAAA,SAASo0G,YAAT,CAAsBrxG,KAAtB,EAA6Bv1C,IAA7B,EAAmC;AACjC,MAAA,IAAIgnJ,SAAS,GAAGzxG,KAAK,CAAC9jB,GAAN,CAAUzxB,IAAV,CAAhB,CAAA;;MAEA,IAAIgnJ,SAAS,IAAI,IAAjB,EAAuB;AACrB,QAAA,OAAOtvD,gBAAgB,CAACjmE,GAAjB,CAAqBzxB,IAArB,CAAP,CAAA;AACD,OAAA;;AAED,MAAA,OAAOgnJ,SAAP,CAAA;AACD,KAAA;;AAED76H,IAAAA,KAAK,CAAC86H,UAAN,EAAA,CAAA;GArHF,CAAA;;AAwHA,EAAA,OAAOf,aAAP,CAAA;AACD,CAjND,CAiNE71H,MAjNF,CAFA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,IAAI62H,mBAAmB,GAAG,oBAA1B,CAAA;AACP,IAAIC,gBAAgB,GAAG,mBAAvB,CAAA;AACA,IAAIC,kBAAkB,GAAG,qBAAzB,CAAA;AACO,SAASC,qBAAT,CAA+B1qI,SAA/B,EAA0C;EAC/CA,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE66I,mBADiB;AAEvB3xH,IAAAA,MAAM,EAAE,YAAA;AAFe,GAAzB,EAGG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4B;IAC7BA,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAE,QADU;AAEpB8kC,MAAAA,OAAO,EAAE,UAFW;AAGpB7kC,MAAAA,KAAK,EAAE/S,OAAAA;AAHa,KAAtB,EAIG61D,gBAJH,CAAA,CAAA;;AAMA,IAAA,SAASA,gBAAT,CAA0B1qD,KAA1B,EAAiCgD,KAAjC,EAAwC;MACtC,IAAI4nD,UAAU,GAAGlD,kBAAkB,CAAC7yD,OAAD,EAAU,CAAC88G,mBAAD,CAAV,EAAiC3xG,KAAjC,CAAnC,CAAA;;AAEA,MAAA,IAAI4qD,UAAJ,EAAgB;AACd,QAAA,IAAIE,cAAc,GAAG9qD,KAAK,CAAC+qD,WAAN,EAArB,CAAA;;AAEA,QAAA,IAAID,cAAJ,EAAoB;AAClBj2D,UAAAA,OAAO,CAAC2xB,SAAR,GAAoBuhC,aAAa,CAAC+C,cAAD,EAAiBF,UAAU,CAACtsF,IAA5B,CAAb,GAAiD,QAAjD,GAA4D,WAAhF,CAAA;AACD,SAAA;;AAED0hC,QAAAA,KAAK,CAACgrD,aAAN,CAAoBJ,UAAU,CAACtsF,IAA/B,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GAtBH,CAAA,CAAA;EAwBA8I,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE86I,gBADiB;AAEvB5xH,IAAAA,MAAM,EAAE,MAAA;AAFe,GAAzB,EAGG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4BxxB,GAA5B,EAAiC;AAClC;AACAu0B,IAAAA,OAAO,GAAGvlC,MAAM,CAAC,EAAD,EAAKulC,OAAL,CAAhB,CAAA;IACA/C,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAE,QADU;AAEpB8kC,MAAAA,OAAO,EAAE,UAFW;AAGpB7kC,MAAAA,KAAK,EAAE/S,OAAAA;AAHa,KAAtB,EAIGk9G,eAJH,CAAA,CAAA;;IAMA,SAASA,eAAT,CAAyB/xG,KAAzB,EAAgC;MAC9B,IAAI4qD,UAAU,GAAGlD,kBAAkB,CAAC7yD,OAAD,EAAU,CAAC+8G,gBAAD,CAAV,EAA8B5xG,KAA9B,CAAnC,CAAA;;AAEA,MAAA,IAAI4qD,UAAJ,EAAgB;AACd/1D,QAAAA,OAAO,CAAC3c,SAAR,GAAoB0yE,UAAU,CAACtsF,IAAX,CAAgB4Z,SAApC,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAI/c,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC22I,MAAAA,mBAAmB,CAAC,WAAD,EAAc,mBAAd,CAAnB,CAAA;AACD,KAnBiC;;;AAsBlC1xI,IAAAA,GAAG,CAACwiC,cAAJ,CAAmBxzC,MAAM,CAACulC,OAAD,EAAU;AACjC/9B,MAAAA,IAAI,EAAE,WAAA;AAD2B,KAAV,CAAzB,CAAA,CAAA;GAzBF,CAAA,CAAA;EA6BAsQ,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE+6I,kBADiB;AAEvB7xH,IAAAA,MAAM,EAAE,YAAA;AAFe,GAAzB,EAGG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4BxxB,GAA5B,EAAiC;AAClCu0B,IAAAA,OAAO,GAAGvlC,MAAM,CAAC,EAAD,EAAKulC,OAAL,CAAhB,CAAA;;AAEA,IAAA,IAAI15B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC22I,MAAAA,mBAAmB,CAAC,UAAD,EAAa,qBAAb,CAAnB,CAAA;AACD,KAAA;;AAED1xI,IAAAA,GAAG,CAACwiC,cAAJ,CAAmBxzC,MAAM,CAACulC,OAAD,EAAU;AACjC/9B,MAAAA,IAAI,EAAE,UAAA;AAD2B,KAAV,CAAzB,CAAA,CAAA;GAVF,CAAA,CAAA;AAcD;;ACpHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiCA,IAAIm7I,YAAY;AAChB;AACA,UAAUhqI,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC+pI,YAAD,EAAehqI,MAAf,CAAT,CAAA;;AAEA,EAAA,SAASgqI,YAAT,GAAwB;AACtB,IAAA,IAAI9pI,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAam7I,YAAY,CAACn7I,IAA1B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED8pI,YAAY,CAACluJ,SAAb,CAAuB8tC,MAAvB,GAAgC,UAAUpX,WAAV,EAAuBqX,OAAvB,EAAgCxxB,GAAhC;AAChCu0B,EAAAA,OADgC,EACvB;IACP,IAAI1nB,IAAI,GAAG,IAAX,CAAA;IACA,IAAKsN,CAAAA,WAAL,GAAmBA,WAAnB,CAAA;IACA,IAAKna,CAAAA,GAAL,GAAWA,GAAX,CAAA;IACA,IAAKwxB,CAAAA,OAAL,GAAeA,OAAf,CAAA;AACA,IAAA,IAAI7Z,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAIorE,WAAW,GAAGjpE,IAAI,CAAC+oE,IAAL,CAAUv+E,IAA5B,CAAA;AACA,IAAA,IAAIyvI,OAAO,GAAGz3H,WAAW,CAACswE,WAAZ,EAAd,CAAA;IACA,IAAI31E,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAI+8H,sBAAsB,GAAG13H,WAAW,CAACyB,GAAZ,CAAgB,wBAAhB,CAA7B,CAAA;IACA,IAAIk2H,WAAW,GAAG,EAAlB,CAAA;AACAF,IAAAA,OAAO,CAACzsD,QAAR,CAAiB,UAAUnnF,IAAV,EAAgB;MAC/B8zI,WAAW,CAACtqJ,IAAZ,CAAiBwW,IAAjB,CAAA,CAAA;KADF,CAAA,CAAA;AAGA,IAAA,IAAI+zI,WAAW,GAAG,IAAKC,CAAAA,YAAL,IAAqB,EAAvC,CAAA;AACApgD,IAAAA,UAAU,CAACkgD,WAAD,EAAcC,WAAd,CAAV,CAAA;AACAE,IAAAA,YAAY,CAACrxD,WAAD,EAAcgxD,OAAd,CAAZ,CAAA;;AAEA,IAAA,IAAA,CAAK1gD,WAAL,EAAA,CAAA;;IAEA,IAAK8gD,CAAAA,YAAL,GAAoBF,WAApB,CAAA;;AAEA,IAAA,SAASlgD,UAAT,CAAoBkgD,WAApB,EAAiCC,WAAjC,EAA8C;MAC5C,IAAID,WAAW,CAACrrJ,MAAZ,KAAuB,CAAvB,IAA4BsrJ,WAAW,CAACtrJ,MAAZ,KAAuB,CAAvD,EAA0D;AACxD,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAI0rG,UAAJ,CAAe4/C,WAAf,EAA4BD,WAA5B,EAAyC1/C,MAAzC,EAAiDA,MAAjD,CAAA,CAAyD/8E,GAAzD,CAA6D68E,WAA7D,CAAA,CAA0ExyE,MAA1E,CAAiFwyE,WAAjF,CAAA,CAA8FryE,MAA9F,CAAqGsL,OAAA,CAAa+mE,WAAb,EAA0B,IAA1B,CAArG,EAAsIlyE,OAAtI,EAAA,CAAA;;MAEA,SAASoyE,MAAT,CAAgBp0F,IAAhB,EAAsB;QACpB,OAAOA,IAAI,CAACynF,KAAL,EAAP,CAAA;AACD,OAAA;;AAED,MAAA,SAASyM,WAAT,CAAqB5yE,MAArB,EAA6BK,MAA7B,EAAqC;QACnC,IAAI9hB,OAAO,GAAGyhB,MAAM,IAAI,IAAV,GAAiB,IAAjB,GAAwBwyH,WAAW,CAACxyH,MAAD,CAAjD,CAAA;QACA,IAAIoyE,OAAO,GAAG/xE,MAAM,IAAI,IAAV,GAAiB,IAAjB,GAAwBoyH,WAAW,CAACpyH,MAAD,CAAjD,CAAA;AACA6xE,QAAAA,YAAY,CAAC3zF,OAAD,EAAU6zF,OAAV,CAAZ,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,SAASF,YAAT,CAAsB3zF,OAAtB,EAA+B6zF,OAA/B,EAAwC;MACtC,IAAI,CAACmgD,sBAAD,IAA2Bh0I,OAA3B,IAAsC,CAACA,OAAO,CAACkoF,QAAR,EAA3C,EAA+D;AAC7D;AACAloF,QAAAA,OAAO,GAAG,IAAV,CAAA;AACD,OAAA;;AAED,MAAA,IAAIA,OAAO,KAAK+iF,WAAZ,IAA2B8Q,OAAO,KAAK9Q,WAA3C,EAAwD;AACtD,QAAA,IAAI8Q,OAAO,IAAIA,OAAO,CAAC4I,KAAvB,EAA8B;AAC5B,UAAA,IAAIz8F,OAAJ,EAAa;AACX;AACA6zF,YAAAA,OAAO,CAAC4I,KAAR,CAAc/hF,UAAd,CAAyB,KAAzB,EAAgC1a,OAAhC,EAAyCsc,WAAzC,EAAsDqX,OAAtD,EAA+DxxB,GAA/D,EAFW;;YAIX2X,IAAI,CAAC8H,gBAAL,CAAsB5hB,OAAO,CAAC+Z,SAA9B,EAAyC85E,OAAO,CAAC4I,KAAjD,CAAA,CAAA;AACD,WALD,MAKO;AACL;YACA3a,UAAU,CAAC+R,OAAD,CAAV,CAAA;AACD,WAAA;SATH,MAUO,IAAI7zF,OAAJ,EAAa;AAClB;AACA,UAAA,IAAIy8F,KAAK,GAAG,IAAI+1C,aAAJ,CAAkBxyI,OAAlB,EAA2Bsc,WAA3B,EAAwCqX,OAAxC,EAAiDxxB,GAAjD,CAAZ,CAAA;AACA8U,UAAAA,KAAK,CAACO,GAAN,CAAUilF,KAAV,EAHkB;;AAKlB3iF,UAAAA,IAAI,CAAC8H,gBAAL,CAAsB5hB,OAAO,CAAC+Z,SAA9B,EAAyC0iF,KAAzC,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;IAED,SAAS3a,UAAT,CAAoB3hF,IAApB,EAA0B;MACxB,IAAI,CAACA,IAAL,EAAW;AACT,QAAA,OAAA;AACD,OAAA;;MAED,IAAIA,IAAI,CAACs8F,KAAT,EAAgB;AACdxlF,QAAAA,KAAK,CAAC+K,MAAN,CAAa7hB,IAAI,CAACs8F,KAAlB,CAAA,CAAA;QACAt8F,IAAI,CAACs8F,KAAL,GAAa,IAAb,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,SAAS23C,YAAT,CAAsBrxD,WAAtB,EAAmC8G,QAAnC,EAA6C;AAC3C,MAAA,IAAIA,QAAQ,CAAC1C,KAAT,GAAiB,CAArB,EAAwB;AACtB;QACA,IAAIn4E,IAAI,CAACqlI,YAAT,EAAuB;AACrB;AACArlI,UAAAA,IAAI,CAACqlI,YAAL,CAAkB35H,UAAlB,CAA6B,KAA7B,EAAoCqoE,WAApC,EAAiDzmE,WAAjD,EAA8DqX,OAA9D,EAAuExxB,GAAvE,CAAA,CAAA;AACD,SAHD,MAGO;AACL;AACA6M,UAAAA,IAAI,CAACqlI,YAAL,GAAoB,IAAI7B,aAAJ,CAAkBzvD,WAAlB,EAA+BzmE,WAA/B,EAA4CqX,OAA5C,EAAqDxxB,GAArD,CAApB,CAAA;AACA8U,UAAAA,KAAK,CAACO,GAAN,CAAUxI,IAAI,CAACqlI,YAAf,CAAA,CAAA;AACD,SATqB;;;AAYtBxqD,QAAAA,QAAQ,CAAC4S,KAAT,CAAez3D,GAAf,CAAmB,OAAnB,CAAA,CAAA;QACAh2B,IAAI,CAACqlI,YAAL,CAAkBjxG,EAAlB,CAAqB,OAArB,EAA8B,UAAUl6C,CAAV,EAAa;AACzC8lB,UAAAA,IAAI,CAAC+mF,WAAL,CAAiBlM,QAAQ,CAAC9pF,UAA1B,CAAA,CAAA;SADF,CAAA,CAAA;AAGD,OAhBD,MAgBO,IAAIiP,IAAI,CAACqlI,YAAT,EAAuB;AAC5B;AACAp9H,QAAAA,KAAK,CAAC+K,MAAN,CAAahT,IAAI,CAACqlI,YAAlB,CAAA,CAAA;QACArlI,IAAI,CAACqlI,YAAL,GAAoB,IAApB,CAAA;AACD,OAAA;AACF,KAAA;GArGH,CAAA;AAuGA;AACF;AACA;;;AAGEP,EAAAA,YAAY,CAACluJ,SAAb,CAAuBytG,WAAvB,GAAqC,YAAY;IAC/C,IAAIrpF,KAAK,GAAG,IAAZ,CAAA;;AAEA,IAAA,IAAA,CAAKiN,KAAL,CAAW+tB,GAAX,CAAe,OAAf,CAAA,CAAA;IACA,IAAK/tB,CAAAA,KAAL,CAAWmsB,EAAX,CAAc,OAAd,EAAuB,UAAUl6C,CAAV,EAAa;MAClC,IAAIorJ,WAAW,GAAG,KAAlB,CAAA;;AAEA,MAAA,IAAIzqD,QAAQ,GAAG7/E,KAAK,CAACsS,WAAN,CAAkBswE,WAAlB,EAAf,CAAA;;AAEA/C,MAAAA,QAAQ,CAACvC,QAAT,CAAkB,UAAUnnF,IAAV,EAAgB;AAChC,QAAA,IAAI,CAACm0I,WAAD,IAAgBn0I,IAAI,CAACs8F,KAArB,IAA8Bt8F,IAAI,CAACs8F,KAAL,KAAevzG,CAAC,CAACuI,MAAnD,EAA2D;UACzD,IAAI68F,SAAS,GAAGnuF,IAAI,CAAC0d,QAAL,EAAgBE,CAAAA,GAAhB,CAAoB,WAApB,CAAhB,CAAA;;UAEA,IAAIuwE,SAAS,KAAK,YAAlB,EAAgC;YAC9BtkF,KAAK,CAAC+rF,WAAN,CAAkB51F,IAAlB,CAAA,CAAA;AACD,WAFD,MAEO,IAAImuF,SAAS,KAAK,MAAlB,EAA0B;AAC/B,YAAA,IAAI5wE,SAAS,GAAGvd,IAAI,CAAC0d,QAAL,EAAhB,CAAA;AACA,YAAA,IAAIo4E,IAAI,GAAGv4E,SAAS,CAACK,GAAV,CAAc,MAAd,CAAX,CAAA;;AAEA,YAAA,IAAIk4E,IAAJ,EAAU;cACR,IAAIC,UAAU,GAAGx4E,SAAS,CAACK,GAAV,CAAc,QAAd,EAAwB,IAAxB,CAAA,IAAiC,QAAlD,CAAA;AACAo4E,cAAAA,UAAU,CAACF,IAAD,EAAOC,UAAP,CAAV,CAAA;AACD,aAAA;AACF,WAAA;;AAEDo+C,UAAAA,WAAW,GAAG,IAAd,CAAA;AACD,SAAA;OAjBH,CAAA,CAAA;KALF,CAAA,CAAA;GAJF,CAAA;AA8BA;AACF;AACA;;;AAGER,EAAAA,YAAY,CAACluJ,SAAb,CAAuBmwG,WAAvB,GAAqC,UAAU51F,IAAV,EAAgB;AACnD,IAAA,IAAIA,IAAI,KAAK,IAAA,CAAKmc,WAAL,CAAiBswE,WAAjB,EAAb,EAA6C;MAC3C,IAAKzqF,CAAAA,GAAL,CAASwiC,cAAT,CAAwB;AACtBhsC,QAAAA,IAAI,EAAE66I,mBADgB;QAEtBn+D,IAAI,EAAE,KAAKxH,GAFW;AAGtB0H,QAAAA,QAAQ,EAAE,IAAA,CAAKj5D,WAAL,CAAiB7iB,EAHL;AAItBgwF,QAAAA,UAAU,EAAEtpF,IAAAA;OAJd,CAAA,CAAA;AAMD,KAAA;GARH,CAAA;AAUA;AACF;AACA;;;EAGE2zI,YAAY,CAACluJ,SAAb,CAAuB2sD,YAAvB,GAAsC,UAAU/xB,KAAV,EAAiBlE,WAAjB,EAA8B;AAClE,IAAA,IAAIglF,QAAQ,GAAGhlF,WAAW,CAAC3E,OAAZ,EAAf,CAAA;AACA,IAAA,IAAI66B,UAAU,GAAG8uD,QAAQ,CAAC//E,aAAT,CAAuB,CAAvB,CAAjB,CAAA;;AAEA,IAAA,IAAIixB,UAAJ,EAAgB;MACd,IAAIpyB,EAAE,GAAGI,KAAK,CAAC,CAAD,CAAL,GAAWgyB,UAAU,CAACxrD,EAA/B,CAAA;MACA,IAAIq5B,EAAE,GAAGG,KAAK,CAAC,CAAD,CAAL,GAAWgyB,UAAU,CAACvrD,EAA/B,CAAA;AACA,MAAA,IAAIijD,MAAM,GAAG9kD,IAAI,CAAC0kC,IAAL,CAAU1J,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAzB,CAAb,CAAA;MACA,OAAO6pB,MAAM,IAAIsI,UAAU,CAACtrD,CAArB,IAA0BgjD,MAAM,IAAIsI,UAAU,CAACrmB,EAAtD,CAAA;AACD,KAAA;GATH,CAAA;;EAYA2nH,YAAY,CAACn7I,IAAb,GAAoB,UAApB,CAAA;AACA,EAAA,OAAOm7I,YAAP,CAAA;AACD,CAtLD,CAsLEh9G,SAtLF,CAFA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiCA,IAAIy9G,mBAAmB;AACvB;AACA,UAAUzqI,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACwqI,mBAAD,EAAsBzqI,MAAtB,CAAT,CAAA;;AAEA,EAAA,SAASyqI,mBAAT,GAA+B;AAC7B,IAAA,IAAIvqI,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa47I,mBAAmB,CAAC57I,IAAjC,CAAA;IACAqR,KAAK,CAACmgF,iBAAN,GAA0B,IAA1B,CAAA;AACA,IAAA,OAAOngF,KAAP,CAAA;AACD,GAAA;;EAEDuqI,mBAAmB,CAAC3uJ,SAApB,CAA8B4wB,cAA9B,GAA+C,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;AACxE;AACA,IAAA,IAAIrvB,IAAI,GAAG;MACThY,IAAI,EAAEmqB,MAAM,CAACnqB,IADJ;MAETO,QAAQ,EAAE4pB,MAAM,CAACqD,IAAAA;KAFnB,CAAA;IAIAqzE,iBAAiB,CAAC7oF,IAAD,CAAjB,CAAA;AACA,IAAA,IAAI8jF,WAAW,GAAG,IAAA,CAAKosD,YAAL,GAAoBlnH,GAAA,CAAW7W,MAAM,CAAC22E,MAAP,IAAiB,EAA5B,EAAgC,UAAUI,WAAV,EAAuB;MAC3F,OAAO,IAAIl/B,KAAJ,CAAUk/B,WAAV,EAAuB,IAAvB,EAA6B75D,OAA7B,CAAP,CAAA;AACD,KAFqC,EAEnC,IAFmC,CAAtC,CAPwE;AAUxE;AACA;;IAEA,IAAIkvD,IAAI,GAAG2F,IAAI,CAACK,UAAL,CAAgBvkF,IAAhB,EAAsB,IAAtB,EAA4BykF,UAA5B,CAAX,CAAA;;IAEA,SAASA,UAAT,CAAoBuB,QAApB,EAA8B;MAC5BA,QAAQ,CAAChE,UAAT,CAAoB,cAApB,EAAoC,UAAUzkD,KAAV,EAAiBvsB,GAAjB,EAAsB;AACxD,QAAA,IAAInV,IAAI,GAAG0iF,IAAI,CAACC,kBAAL,CAAwBxtE,GAAxB,CAAX,CAAA;AACA,QAAA,IAAIm4E,UAAU,GAAGrF,WAAW,CAACjoF,IAAI,CAACgnF,KAAN,CAA5B,CAAA;AACAsG,QAAAA,UAAU,KAAK5rD,KAAK,CAACk1B,WAAN,GAAoB02B,UAAzB,CAAV,CAAA;AACA,QAAA,OAAO5rD,KAAP,CAAA;OAJF,CAAA,CAAA;AAMD,KAAA;;IAED,OAAOghD,IAAI,CAAC/oE,IAAZ,CAAA;GAxBF,CAAA;;AA2BAy6H,EAAAA,mBAAmB,CAAC3uJ,SAApB,CAA8B42D,aAA9B,GAA8C,YAAY;AACxD,IAAA,IAAA,CAAKqwC,aAAL,EAAA,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGE0nD,EAAAA,mBAAmB,CAAC3uJ,SAApB,CAA8BwuD,aAA9B,GAA8C,UAAUr6B,SAAV,EAAqB;AACjE,IAAA,IAAI+f,MAAM,GAAGhwB,MAAM,CAAClkB,SAAP,CAAiBwuD,aAAjB,CAA+B99B,KAA/B,CAAqC,IAArC,EAA2C/sB,SAA3C,CAAb,CAAA;;IAEA,IAAI4W,IAAI,GAAG,IAAA,CAAKwX,OAAL,EAAA,CAAekrE,IAAf,CAAoBC,kBAApB,CAAuC/oE,SAAvC,CAAX,CAAA;IACA+f,MAAM,CAACkwD,YAAP,GAAsBD,gBAAgB,CAAC5pF,IAAD,EAAO,IAAP,CAAtC,CAAA;AACA,IAAA,OAAO25B,MAAP,CAAA;GALF,CAAA;;AAQAy6G,EAAAA,mBAAmB,CAAC3uJ,SAApB,CAA8BuiG,aAA9B,GAA8C,UAAUhoF,IAAV,EAAgB;IAC5D,OAAO,IAAA,CAAKq0I,YAAL,IAAqB,IAAA,CAAKA,YAAL,CAAkBr0I,IAAI,CAACgnF,KAAvB,CAA5B,CAAA;GADF,CAAA;;AAIAotD,EAAAA,mBAAmB,CAAC3uJ,SAApB,CAA8BgnG,WAA9B,GAA4C,YAAY;AACtD,IAAA,OAAO,KAAKmB,SAAZ,CAAA;GADF,CAAA;;AAIAwmD,EAAAA,mBAAmB,CAAC3uJ,SAApB,CAA8BinG,aAA9B,GAA8C,UAAUhD,QAAV,EAAoB;IAChEA,QAAQ,GAAG,KAAKkE,SAAL,GAAiBlE,QAApB,GAA+BA,QAAQ,GAAG,IAAA,CAAKkE,SAAvD,CAAA;AACA,IAAA,IAAIzpF,IAAI,GAAG,IAAA,CAAK+uC,UAAL,EAAkBwvC,CAAAA,IAAlB,CAAuBv+E,IAAlC,CAAA;;AAEA,IAAA,IAAI,CAACulF,QAAD,IAAaA,QAAQ,KAAKvlF,IAAb,IAAqB,CAACA,IAAI,CAACujF,QAAL,CAAcgC,QAAd,CAAvC,EAAgE;MAC9D,IAAKkE,CAAAA,SAAL,GAAiBzpF,IAAjB,CAAA;AACD,KAAA;GANH,CAAA;;AASAiwI,EAAAA,mBAAmB,CAAC3uJ,SAApB,CAA8BooG,eAA9B,GAAgD,YAAY;IAC1DlB,sBAAsB,CAAC,IAAD,CAAtB,CAAA;GADF,CAAA;;EAIAynD,mBAAmB,CAAC57I,IAApB,GAA2B,iBAA3B,CAAA;EACA47I,mBAAmB,CAACh8H,aAApB,GAAoC;AAClC;AACAzG,IAAAA,CAAC,EAAE,CAF+B;AAGlC;AACAm4B,IAAAA,MAAM,EAAE,CAAC,KAAD,EAAQ,KAAR,CAJ0B;AAKlCC,IAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,KAAJ,CAL0B;AAMlC;AACAviD,IAAAA,SAAS,EAAE,IAPuB;AAQlCR,IAAAA,UAAU,EAAE,EARsB;AASlC;AACAmjD,IAAAA,QAAQ,EAAE,CAVwB;AAWlC;AACAK,IAAAA,gBAAgB,EAAE,IAZgB;AAalC;AACA2jD,IAAAA,SAAS,EAAE,YAduB;AAelC0lD,IAAAA,sBAAsB,EAAE,KAfU;AAgBlCv7H,IAAAA,KAAK,EAAE;AACL;AACAqmB,MAAAA,MAAM,EAAE,QAFH;AAGLnmB,MAAAA,IAAI,EAAE,IAHD;AAIL5tB,MAAAA,OAAO,EAAE,CAJJ;AAKL;AACA;AACAkoC,MAAAA,KAAK,EAAE,QAPF;AAQLvpB,MAAAA,QAAQ,EAAE,QARL;AASLmP,MAAAA,QAAQ,EAAE,CATL;AAULuD,MAAAA,MAAM,EAAE,IAAA;KA1BwB;AA4BlCnE,IAAAA,SAAS,EAAE;AACTzM,MAAAA,WAAW,EAAE,CADJ;AAETuxB,MAAAA,WAAW,EAAE,OAFJ;AAGTC,MAAAA,UAAU,EAAE,OAHH;AAIT9gC,MAAAA,UAAU,EAAE,CAJH;AAKTC,MAAAA,WAAW,EAAE,oBALJ;AAMTL,MAAAA,aAAa,EAAE,CANN;AAOTE,MAAAA,aAAa,EAAE,CAPN;AAQTjR,MAAAA,OAAO,EAAE,CAAA;KApCuB;AAsClC+tB,IAAAA,QAAQ,EAAE;AACRqE,MAAAA,KAAK,EAAE,YAAA;KAvCyB;AAyClCs3H,IAAAA,IAAI,EAAE;AACJx8H,MAAAA,SAAS,EAAE;AACTltB,QAAAA,OAAO,EAAE,GAAA;OAFP;AAIJ0tB,MAAAA,KAAK,EAAE;AACL1tB,QAAAA,OAAO,EAAE,GAAA;AADJ,OAAA;KA7CyB;AAiDlC;AACAwmD,IAAAA,aAAa,EAAE,WAlDmB;AAmDlCkE,IAAAA,iBAAiB,EAAE,IAnDe;AAoDlCG,IAAAA,uBAAuB,EAAE,GApDS;AAqDlC97B,IAAAA,IAAI,EAAE,EArD4B;;AAuDlC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIsN,IAAAA,IAAI,EAAE,MAAA;GAlER,CAAA;AAoEA,EAAA,OAAOmtH,mBAAP,CAAA;AACD,CAjJD,CAiJE36H,WAjJF,CAFA,CAAA;;AAqJA,SAASuzE,iBAAT,CAA2BhE,QAA3B,EAAqC;AACnC;AACA;AACA;EACA,IAAI5uD,GAAG,GAAG,CAAV,CAAA;EACAjN,MAAA,CAAY67D,QAAQ,CAACt8F,QAArB,EAA+B,UAAUW,KAAV,EAAiB;IAC9C2/F,iBAAiB,CAAC3/F,KAAD,CAAjB,CAAA;AACA,IAAA,IAAI4hG,UAAU,GAAG5hG,KAAK,CAACs3B,KAAvB,CAF8C;;IAI9CwI,SAAA,CAAe8hE,UAAf,CAAA,KAA+BA,UAAU,GAAGA,UAAU,CAAC,CAAD,CAAtD,CAAA,CAAA;AACA70D,IAAAA,GAAG,IAAI60D,UAAP,CAAA;GALF,CAAA,CAAA;AAOA,EAAA,IAAIC,SAAS,GAAGlG,QAAQ,CAACrkE,KAAzB,CAAA;;AAEA,EAAA,IAAIwI,SAAA,CAAe+hE,SAAf,CAAJ,EAA+B;AAC7BA,IAAAA,SAAS,GAAGA,SAAS,CAAC,CAAD,CAArB,CAAA;AACD,GAAA;;EAED,IAAIA,SAAS,IAAI,IAAb,IAAqB5lG,KAAK,CAAC4lG,SAAD,CAA9B,EAA2C;AACzCA,IAAAA,SAAS,GAAG90D,GAAZ,CAAA;AACD,GApBkC;;;EAuBnC,IAAI80D,SAAS,GAAG,CAAhB,EAAmB;AACjBA,IAAAA,SAAS,GAAG,CAAZ,CAAA;AACD,GAAA;;AAED/hE,EAAAA,SAAA,CAAe67D,QAAQ,CAACrkE,KAAxB,IAAiCqkE,QAAQ,CAACrkE,KAAT,CAAe,CAAf,IAAoBuqE,SAArD,GAAiElG,QAAQ,CAACrkE,KAAT,GAAiBuqE,SAAlF,CAAA;AACD;;ACnOD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAIzlD,MAAM,GAAGxkD,IAAI,CAACI,EAAL,GAAU,GAAvB,CAAA;AACe,SAASkvJ,cAAT,CAAwBj+G,UAAxB,EAAoC9C,OAApC,EAA6CxxB,GAA7C,EAAkD;AAC/DwxB,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB5T,UAAzB,EAAqC,UAAUna,WAAV,EAAuB;AAC1D,IAAA,IAAI2tB,MAAM,GAAG3tB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;AACA,IAAA,IAAImsB,MAAM,GAAG5tB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;;AAEA,IAAA,IAAI,CAACuP,SAAA,CAAe4c,MAAf,CAAL,EAA6B;AAC3BA,MAAAA,MAAM,GAAG,CAAC,CAAD,EAAIA,MAAJ,CAAT,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAAC5c,SAAA,CAAe2c,MAAf,CAAL,EAA6B;AAC3BA,MAAAA,MAAM,GAAG,CAACA,MAAD,EAASA,MAAT,CAAT,CAAA;AACD,KAAA;;AAED,IAAA,IAAI56C,KAAK,GAAG8S,GAAG,CAACmG,QAAJ,EAAZ,CAAA;AACA,IAAA,IAAIhZ,MAAM,GAAG6S,GAAG,CAACoG,SAAJ,EAAb,CAAA;IACA,IAAIwP,IAAI,GAAG3yB,IAAI,CAAC8iC,GAAL,CAAS74B,KAAT,EAAgBC,MAAhB,CAAX,CAAA;IACA,IAAItI,EAAE,GAAGmjD,YAAY,CAACF,MAAM,CAAC,CAAD,CAAP,EAAY56C,KAAZ,CAArB,CAAA;IACA,IAAIpI,EAAE,GAAGkjD,YAAY,CAACF,MAAM,CAAC,CAAD,CAAP,EAAY36C,MAAZ,CAArB,CAAA;AACA,IAAA,IAAI68B,EAAE,GAAGge,YAAY,CAACD,MAAM,CAAC,CAAD,CAAP,EAAYnyB,IAAI,GAAG,CAAnB,CAArB,CAAA;AACA,IAAA,IAAI7wB,CAAC,GAAGijD,YAAY,CAACD,MAAM,CAAC,CAAD,CAAP,EAAYnyB,IAAI,GAAG,CAAnB,CAApB,CAAA;IACA,IAAI5wB,UAAU,GAAG,CAACm1B,WAAW,CAACyB,GAAZ,CAAgB,YAAhB,CAAD,GAAiC6rB,MAAlD,CAAA;IACA,IAAIU,QAAQ,GAAGhuB,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,IAA8B6rB,MAA7C,CAAA;IACA,IAAIm5C,WAAW,GAAGzmE,WAAW,CAAC3E,OAAZ,EAAsBkrE,CAAAA,IAAtB,CAA2Bv+E,IAA7C,CAAA;AACA,IAAA,IAAIg9F,QAAQ,GAAGhlF,WAAW,CAACswE,WAAZ,EAAf,CAAA;AACA,IAAA,IAAI+nD,SAAS,GAAGrzC,QAAQ,CAACna,KAAzB,CAAA;AACA,IAAA,IAAI//D,IAAI,GAAG9K,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,CAAX,CAAA;;IAEA,IAAIqJ,IAAI,IAAI,IAAZ,EAAkB;AAChB26E,MAAAA,YAAY,CAACT,QAAD,EAAWl6E,IAAX,CAAZ,CAAA;AACD,KAAA;;IAED,IAAImjB,cAAc,GAAG,CAArB,CAAA;IACAjd,MAAA,CAAYg0E,QAAQ,CAACz0G,QAArB,EAA+B,UAAUW,KAAV,EAAiB;MAC9C,CAAC/D,KAAK,CAAC+D,KAAK,CAAC06F,QAAN,EAAD,CAAN,IAA4B39C,cAAc,EAA1C,CAAA;KADF,CAAA,CAAA;AAGA,IAAA,IAAIhQ,GAAG,GAAG+mE,QAAQ,CAACpZ,QAAT,EAAV,CAlC0D;;IAoC1D,IAAIz9C,UAAU,GAAGrlD,IAAI,CAACI,EAAL,IAAW+0C,GAAG,IAAIgQ,cAAlB,CAAA,GAAoC,CAArD,CAAA;AACA,IAAA,IAAIqqG,gBAAgB,GAAGtzC,QAAQ,CAACna,KAAT,GAAiB,CAAxC,CAAA;AACA,IAAA,IAAIiG,MAAM,GAAGkU,QAAQ,CAAChyG,MAAT,IAAmBslJ,gBAAgB,GAAG,CAAC,CAAJ,GAAQ,CAA3C,CAAb,CAAA;IACA,IAAIC,SAAS,GAAG,CAAC3tJ,CAAC,GAAGilC,EAAL,KAAYihE,MAAM,IAAI,CAAtB,CAAhB,CAAA;AACA,IAAA,IAAIzlG,SAAS,GAAG20B,WAAW,CAACyB,GAAZ,CAAgB,WAAhB,CAAhB,CAAA;IACA,IAAI4sB,gBAAgB,GAAGruB,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,CAAvB,CAzC0D;AA0C1D;AACA;;AAEA,IAAA,IAAIyK,GAAG,GAAG7gC,SAAS,GAAG,CAAH,GAAO,CAAC,CAA3B,CAAA;AACA;AACJ;AACA;AACA;;IAEI,IAAImsG,UAAU,GAAG,SAAbA,UAAa,CAAU3zF,IAAV,EAAgBhZ,UAAhB,EAA4B;MAC3C,IAAI,CAACgZ,IAAL,EAAW;AACT,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAI/Y,QAAQ,GAAGD,UAAf,CAL2C;;MAO3C,IAAIgZ,IAAI,KAAK4iF,WAAb,EAA0B;AACxB;AACA,QAAA,IAAIj+D,KAAK,GAAG3kB,IAAI,CAAC+nF,QAAL,EAAZ,CAAA;AACA,QAAA,IAAInpD,KAAK,GAAGxE,GAAG,KAAK,CAAR,IAAaoQ,gBAAb,GAAgCF,UAAhC,GAA6C3lB,KAAK,GAAG2lB,UAAjE,CAAA;;QAEA,IAAI1L,KAAK,GAAGuL,QAAZ,EAAsB;UACpBvL,KAAK,GAAGuL,QAAR,CADoB;AAErB,SAPuB;AAQxB;AACA;;;AAGAljD,QAAAA,QAAQ,GAAGD,UAAU,GAAGqhC,GAAG,GAAGuW,KAA9B,CAAA;AACA,QAAA,IAAIooD,KAAK,GAAGhnF,IAAI,CAACgnF,KAAL,GAAawtD,SAAb,IAA0BC,gBAAgB,GAAG,CAAC,CAAJ,GAAQ,CAAlD,CAAZ,CAAA;AACA,QAAA,IAAIE,MAAM,GAAG3oH,EAAE,GAAG0oH,SAAS,GAAG1tD,KAA9B,CAAA;QACA,IAAI4tD,IAAI,GAAG5oH,EAAE,GAAG0oH,SAAS,IAAI1tD,KAAK,GAAG,CAAZ,CAAzB,CAAA;AACA,QAAA,IAAIsG,UAAU,GAAGnxE,WAAW,CAAC6rE,aAAZ,CAA0BhoF,IAA1B,CAAjB,CAAA;;AAEA,QAAA,IAAIstF,UAAJ,EAAgB;UACd,IAAIunD,IAAI,GAAGvnD,UAAU,CAAC1vE,GAAX,CAAe,IAAf,EAAqB,IAArB,CAAX,CAAA;UACA,IAAIk3H,GAAG,GAAGxnD,UAAU,CAAC1vE,GAAX,CAAe,GAAf,EAAoB,IAApB,CAAV,CAAA;UACA,IAAIm3H,QAAQ,GAAGznD,UAAU,CAAC1vE,GAAX,CAAe,QAAf,EAAyB,IAAzB,CAAf,CAAA;;UAEA,IAAIm3H,QAAQ,IAAI,IAAhB,EAAsB;AACpBF,YAAAA,IAAI,GAAGE,QAAQ,CAAC,CAAD,CAAf,CAAA;AACAD,YAAAA,GAAG,GAAGC,QAAQ,CAAC,CAAD,CAAd,CAAA;AACD,WAAA;;AAEDF,UAAAA,IAAI,IAAI,IAAR,KAAiBF,MAAM,GAAG3qG,YAAY,CAAC6qG,IAAD,EAAOj9H,IAAI,GAAG,CAAd,CAAtC,CAAA,CAAA;AACAk9H,UAAAA,GAAG,IAAI,IAAP,KAAgBF,IAAI,GAAG5qG,YAAY,CAAC8qG,GAAD,EAAMl9H,IAAI,GAAG,CAAb,CAAnC,CAAA,CAAA;AACD,SAAA;;QAED5X,IAAI,CAACg6B,SAAL,CAAe;AACb4E,UAAAA,KAAK,EAAEA,KADM;AAEb53C,UAAAA,UAAU,EAAEA,UAFC;AAGbC,UAAAA,QAAQ,EAAEA,QAHG;AAIbO,UAAAA,SAAS,EAAEA,SAJE;AAKbX,UAAAA,EAAE,EAAEA,EALS;AAMbC,UAAAA,EAAE,EAAEA,EANS;AAObklC,UAAAA,EAAE,EAAE2oH,MAPS;AAQb5tJ,UAAAA,CAAC,EAAE6tJ,IAAAA;SARL,CAAA,CAAA;AAUD,OAjD0C;;;MAoD3C,IAAI50I,IAAI,CAACtT,QAAL,IAAiBsT,IAAI,CAACtT,QAAL,CAAcjE,MAAnC,EAA2C;AACzC;QACA,IAAIusJ,cAAc,GAAG,CAArB,CAAA;QACA7nH,MAAA,CAAYntB,IAAI,CAACtT,QAAjB,EAA2B,UAAUsT,IAAV,EAAgB;UACzCg1I,cAAc,IAAIrhD,UAAU,CAAC3zF,IAAD,EAAOhZ,UAAU,GAAGguJ,cAApB,CAA5B,CAAA;SADF,CAAA,CAAA;AAGD,OAAA;;MAED,OAAO/tJ,QAAQ,GAAGD,UAAlB,CAAA;AACD,KA7DD,CAnD0D;;;AAmH1D,IAAA,IAAIytJ,gBAAJ,EAAsB;MACpB,IAAIE,MAAM,GAAG3oH,EAAb,CAAA;AACA,MAAA,IAAI4oH,IAAI,GAAG5oH,EAAE,GAAG0oH,SAAhB,CAAA;AACA,MAAA,IAAI91G,KAAK,GAAG35C,IAAI,CAACI,EAAL,GAAU,CAAtB,CAAA;MACAu9F,WAAW,CAAC5oD,SAAZ,CAAsB;AACpB4E,QAAAA,KAAK,EAAEA,KADa;AAEpB53C,QAAAA,UAAU,EAAEA,UAFQ;QAGpBC,QAAQ,EAAED,UAAU,GAAG43C,KAHH;AAIpBp3C,QAAAA,SAAS,EAAEA,SAJS;AAKpBX,QAAAA,EAAE,EAAEA,EALgB;AAMpBC,QAAAA,EAAE,EAAEA,EANgB;AAOpBklC,QAAAA,EAAE,EAAE2oH,MAPgB;AAQpB5tJ,QAAAA,CAAC,EAAE6tJ,IAAAA;OARL,CAAA,CAAA;AAUD,KAAA;;AAEDjhD,IAAAA,UAAU,CAACwN,QAAD,EAAWn6G,UAAX,CAAV,CAAA;GAnIF,CAAA,CAAA;AAqID,CAAA;AACD;AACA;AACA;;AAEA,SAAS46G,YAAT,CAAsB5hG,IAAtB,EAA4Bi1I,SAA5B,EAAuC;AACrC,EAAA,IAAIvoJ,QAAQ,GAAGsT,IAAI,CAACtT,QAAL,IAAiB,EAAhC,CAAA;EACAsT,IAAI,CAACtT,QAAL,GAAgBu6B,IAAI,CAACv6B,QAAD,EAAWuoJ,SAAX,CAApB,CAFqC;;EAIrC,IAAIvoJ,QAAQ,CAACjE,MAAb,EAAqB;IACnB0kC,MAAA,CAAYntB,IAAI,CAACtT,QAAjB,EAA2B,UAAUW,KAAV,EAAiB;AAC1Cu0G,MAAAA,YAAY,CAACv0G,KAAD,EAAQ4nJ,SAAR,CAAZ,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;AACF,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAAShuH,IAAT,CAAcv6B,QAAd,EAAwBuoJ,SAAxB,EAAmC;AACjC,EAAA,IAAI9nH,UAAA,CAAkB8nH,SAAlB,CAAJ,EAAkC;AAChC,IAAA,IAAIC,WAAW,GAAG/nH,GAAA,CAAWzgC,QAAX,EAAqB,UAAUW,KAAV,EAAiB8nB,GAAjB,EAAsB;AAC3D,MAAA,IAAIwP,KAAK,GAAGt3B,KAAK,CAAC06F,QAAN,EAAZ,CAAA;MACA,OAAO;AACLpuD,QAAAA,MAAM,EAAE;UACNqtD,KAAK,EAAE35F,KAAK,CAAC25F,KADP;UAEN73F,MAAM,EAAE9B,KAAK,CAAC8B,MAFR;UAGNyqB,SAAS,EAAEvsB,KAAK,CAACusB,SAHX;AAINmuE,UAAAA,QAAQ,EAAE,SAAY,QAAA,GAAA;AACpB,YAAA,OAAOpjE,KAAP,CAAA;AACD,WAAA;SAPE;AASL+f,QAAAA,KAAK,EAAEvvB,GAAAA;OATT,CAAA;AAWD,KAbiB,CAAlB,CAAA;AAcA+/H,IAAAA,WAAW,CAACjuH,IAAZ,CAAiB,UAAUt+B,CAAV,EAAaC,CAAb,EAAgB;MAC/B,OAAOqsJ,SAAS,CAACtsJ,CAAC,CAACgxC,MAAH,EAAW/wC,CAAC,CAAC+wC,MAAb,CAAhB,CAAA;KADF,CAAA,CAAA;IAGA,OAAOxM,GAAA,CAAW+nH,WAAX,EAAwB,UAAU5jJ,MAAV,EAAkB;AAC/C,MAAA,OAAO5E,QAAQ,CAAC4E,MAAM,CAACozC,KAAR,CAAf,CAAA;AACD,KAFM,CAAP,CAAA;AAGD,GArBD,MAqBO;AACL,IAAA,IAAIywG,OAAO,GAAGF,SAAS,KAAK,KAA5B,CAAA;IACA,OAAOvoJ,QAAQ,CAACu6B,IAAT,CAAc,UAAUt+B,CAAV,EAAaC,CAAb,EAAgB;AACnC,MAAA,IAAIy4B,IAAI,GAAG,CAAC14B,CAAC,CAACo/F,QAAF,KAAen/F,CAAC,CAACm/F,QAAF,EAAhB,KAAiCotD,OAAO,GAAG,CAAH,GAAO,CAAC,CAAhD,CAAX,CAAA;MACA,OAAO9zH,IAAI,KAAK,CAAT,GAAa,CAAC14B,CAAC,CAACixB,SAAF,GAAchxB,CAAC,CAACgxB,SAAjB,KAA+Bu7H,OAAO,GAAG,CAAC,CAAJ,GAAQ,CAA9C,CAAb,GAAgE9zH,IAAvE,CAAA;AACD,KAHM,CAAP,CAAA;AAID,GAAA;AACF;;ACzOD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2Be,SAAS+zH,cAAT,CAAwB5hH,OAAxB,EAAiC;AAC9C,EAAA,IAAIgxE,YAAY,GAAG,EAAnB,CAD8C;;AAG9C,EAAA,SAAS6wC,SAAT,CAAmBr1I,IAAnB,EAAyBmc,WAAzB,EAAsCm5H,UAAtC,EAAkD;AAChD;IACA,IAAI5tH,OAAO,GAAG1nB,IAAd,CAAA;;AAEA,IAAA,OAAO0nB,OAAO,IAAIA,OAAO,CAACs/D,KAAR,GAAgB,CAAlC,EAAqC;MACnCt/D,OAAO,GAAGA,OAAO,CAAC9nB,UAAlB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI7U,KAAK,GAAGoxB,WAAW,CAACuoF,mBAAZ,CAAgCh9E,OAAO,CAACv7B,IAAR,IAAgBu7B,OAAO,CAAC9N,SAAR,GAAoB,EAApE,EAAwE4qF,YAAxE,CAAZ,CAAA;;IAEA,IAAIxkG,IAAI,CAACgnF,KAAL,GAAa,CAAb,IAAkBj0F,QAAQ,CAAChI,KAAD,CAA9B,EAAuC;AACrC;AACAA,MAAAA,KAAK,GAAGwqJ,IAAI,CAACxqJ,KAAD,EAAQ,CAACiV,IAAI,CAACgnF,KAAL,GAAa,CAAd,KAAoBsuD,UAAU,GAAG,CAAjC,CAAA,GAAsC,GAA9C,CAAZ,CAAA;AACD,KAAA;;AAED,IAAA,OAAOvqJ,KAAP,CAAA;AACD,GAAA;;AAEDyoC,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB,UAAzB,EAAqC,UAAU/tB,WAAV,EAAuB;AAC1D,IAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAIkrE,IAAI,GAAG/oE,IAAI,CAAC+oE,IAAhB,CAAA;AACAA,IAAAA,IAAI,CAACyE,QAAL,CAAc,UAAUnnF,IAAV,EAAgB;AAC5B,MAAA,IAAI0hC,KAAK,GAAG1hC,IAAI,CAAC0d,QAAL,EAAZ,CAAA;MACA,IAAI3zB,KAAK,GAAG23C,KAAK,CAAChkB,QAAN,CAAe,WAAf,CAA4BC,CAAAA,YAA5B,EAAZ,CAAA;;AAEA,MAAA,IAAI,CAAC5zB,KAAK,CAACC,IAAX,EAAiB;AACfD,QAAAA,KAAK,CAACC,IAAN,GAAaqrJ,SAAS,CAACr1I,IAAD,EAAOmc,WAAP,EAAoBumE,IAAI,CAACv+E,IAAL,CAAUhV,MAA9B,CAAtB,CAAA;AACD,OAAA;;MAED,IAAI48F,WAAW,GAAGpyE,IAAI,CAACqyE,sBAAL,CAA4BhsF,IAAI,CAAC4Z,SAAjC,EAA4C,OAA5C,CAAlB,CAAA;AACA5oB,MAAAA,MAAM,CAAC+6F,WAAD,EAAchiG,KAAd,CAAN,CAAA;KATF,CAAA,CAAA;GAHF,CAAA,CAAA;AAeD;;AChFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCO,SAAS8e,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4B64G,YAA5B,CAAA,CAAA;EACA7qI,SAAS,CAACiyB,mBAAV,CAA8Bq5G,mBAA9B,CAAA,CAAA;EACAtrI,SAAS,CAACmyB,cAAV,CAAyB4a,OAAK,CAAC0+F,cAAD,EAAiB,UAAjB,CAA9B,CAAA,CAAA;EACAzrI,SAAS,CAACuyB,iBAAV,CAA4Bwa,OAAK,CAAC5K,YAAD,EAAa,UAAb,CAAjC,CAAA,CAAA;EACAniC,SAAS,CAACqyB,cAAV,CAAyBi6G,cAAzB,CAAA,CAAA;EACA5B,qBAAqB,CAAC1qI,SAAD,CAArB,CAAA;AACD;;ACxDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BA;;AAEO,IAAI0sI,iBAAiB,GAAG;AAC7BzqJ,EAAAA,KAAK,EAAE,MADsB;AAE7B6xC,EAAAA,WAAW,EAAE,QAAA;AAFgB,CAAxB,CAAA;AAIA,IAAI64G,sBAAsB,GAAG;AAClC59H,EAAAA,MAAM,EAAE,CAD0B;AAElCiB,EAAAA,UAAU,EAAE,CAFsB;AAGlCuzF,EAAAA,gBAAgB,EAAE,CAHgB;AAIlCqpC,EAAAA,UAAU,EAAE,CAJsB;AAKlC1mH,EAAAA,UAAU,EAAE,CALsB;AAMlCvQ,EAAAA,KAAK,EAAE,CAN2B;AAOlCH,EAAAA,KAAK,EAAE,CAAA;AAP2B,CAA7B,CAAA;AASP,CAAA;AACO,IAAIq3H,gBAAgB,GAAG7iF,SAAS,EAAhC,CAAA;;AAEP,IAAI8iF,iBAAiB;AACrB;AACA,UAAUjsI,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACgsI,iBAAD,EAAoBjsI,MAApB,CAAT,CAAA;;AAEA,EAAA,SAASisI,iBAAT,GAA6B;AAC3B,IAAA,IAAI/rI,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAao9I,iBAAiB,CAACp9I,IAA/B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAED+rI,EAAAA,iBAAiB,CAACnwJ,SAAlB,CAA4B42D,aAA5B,GAA4C,YAAY;IACtD,IAAKw5F,CAAAA,aAAL,GAAqB,IAAKj4H,CAAAA,GAAL,CAAS,QAAT,EAAmB,IAAnB,CAArB,CAAA;IACA,IAAKk4H,CAAAA,QAAL,GAAgB,IAAKl4H,CAAAA,GAAL,CAAS,GAAT,EAAc,IAAd,CAAhB,CAAA;GAFF,CAAA;;EAKAg4H,iBAAiB,CAACnwJ,SAAlB,CAA4B4wB,cAA5B,GAA6C,UAAUC,MAAV,EAAkBkd,OAAlB,EAA2B;AACtE,IAAA,OAAO9c,gBAAgB,CAAC,IAAD,EAAO,IAAP,CAAvB,CAAA;GADF,CAAA;;EAIAk/H,iBAAiB,CAACnwJ,SAAlB,CAA4BwuD,aAA5B,GAA4C,UAAUr6B,SAAV,EAAqB49C,QAArB,EAA+B9sE,EAA/B,EAAmC;AAC7E,IAAA,IAAIivC,MAAM,GAAGhwB,MAAM,CAAClkB,SAAP,CAAiBwuD,aAAjB,CAA+BnqC,IAA/B,CAAoC,IAApC,EAA0C8P,SAA1C,EAAqD49C,QAArD,CAAb,CAAA;;IAEA9sE,EAAE,KAAKivC,MAAM,CAACyJ,IAAP,GAAcuyG,gBAAgB,CAACjrJ,EAAD,CAAhB,CAAqB04C,IAAxC,CAAF,CAAA;AACA,IAAA,OAAOzJ,MAAP,CAAA;GAJF,CAAA;;EAOAi8G,iBAAiB,CAACp9I,IAAlB,GAAyB,eAAzB,CAAA;AACAo9I,EAAAA,iBAAiB,CAACz9H,YAAlB,GAAiC,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,EAAyB,YAAzB,EAAuC,UAAvC,CAAjC,CAAA;EACAy9H,iBAAiB,CAACx9H,aAAlB,GAAkC;AAChC5B,IAAAA,gBAAgB,EAAE,aADc;AAEhC;AACA7E,IAAAA,CAAC,EAAE,CAH6B;AAIhC0G,IAAAA,eAAe,EAAE,IAJe;AAKhC;AACA;AACA;IACAnE,IAAI,EAAE,KAR0B;AAShC;AACA;AACA;AACA;AACA;AACA;;GAdF,CAAA;AAiBA,EAAA,OAAO0hI,iBAAP,CAAA;AACD,CA9CD,CA8CEn8H,WA9CF,CAFA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA,SAASs8H,iBAAT,CAAyBC,QAAzB,EAAmCvkB,QAAnC,EAA6C;AAC3C;AACAA,EAAAA,QAAQ,GAAGA,QAAQ,IAAI,CAAC,CAAD,EAAI,CAAJ,CAAvB,CAAA;AACA,EAAA,OAAOtkG,GAAA,CAAW,CAAC,GAAD,EAAM,GAAN,CAAX,EAAuB,UAAU3J,GAAV,EAAe+N,MAAf,EAAuB;AACnD,IAAA,IAAInC,IAAI,GAAG,IAAA,CAAKC,OAAL,CAAa7L,GAAb,CAAX,CAAA;AACA,IAAA,IAAIn6B,GAAG,GAAGooI,QAAQ,CAAClgG,MAAD,CAAlB,CAAA;AACA,IAAA,IAAI0kH,QAAQ,GAAGD,QAAQ,CAACzkH,MAAD,CAAR,GAAmB,CAAlC,CAAA;AACA,IAAA,OAAOnC,IAAI,CAAC52B,IAAL,KAAc,UAAd,GAA2B42B,IAAI,CAACgpG,YAAL,EAA3B,GAAiDnzI,IAAI,CAACyC,GAAL,CAAS0nC,IAAI,CAACK,WAAL,CAAiBpmC,GAAG,GAAG4sJ,QAAvB,CAAmC7mH,GAAAA,IAAI,CAACK,WAAL,CAAiBpmC,GAAG,GAAG4sJ,QAAvB,CAA5C,CAAxD,CAAA;GAJK,EAKJ,IALI,CAAP,CAAA;AAMD,CAAA;;AAEc,SAASC,sBAAT,CAAgC3/H,QAAhC,EAA0C;AACvD,EAAA,IAAIluB,IAAI,GAAGkuB,QAAQ,CAAC2vC,MAAT,CAAgBzF,OAAhB,EAAX,CAAA;EACA,OAAO;AACLlqC,IAAAA,QAAQ,EAAE;AACR;AACA/d,MAAAA,IAAI,EAAE,aAFE;MAGRtS,CAAC,EAAEmC,IAAI,CAACnC,CAHA;MAIRC,CAAC,EAAEkC,IAAI,CAAClC,CAJA;MAKR+I,KAAK,EAAE7G,IAAI,CAAC6G,KALJ;MAMRC,MAAM,EAAE9G,IAAI,CAAC8G,MAAAA;KAPV;AASL6S,IAAAA,GAAG,EAAE;MACH0sB,KAAK,EAAE,SAAU/U,KAAAA,CAAAA,IAAV,EAAgB;AACrB;AACA,QAAA,OAAOpD,QAAQ,CAACuO,WAAT,CAAqBnL,IAArB,CAAP,CAAA;OAHC;AAKH/B,MAAAA,IAAI,EAAEuV,MAAA,CAAY4oH,iBAAZ,EAA6Bx/H,QAA7B,CAAA;AALH,KAAA;GATP,CAAA;AAiBD;;AC1ED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA,SAASw/H,iBAAT,CAAyBC,QAAzB,EAAmCvkB,QAAnC,EAA6C;AAC3CA,EAAAA,QAAQ,GAAGA,QAAQ,IAAI,CAAC,CAAD,EAAI,CAAJ,CAAvB,CAAA;AACA,EAAA,OAAOtkG,GAAA,CAAW,CAAC,CAAD,EAAI,CAAJ,CAAX,EAAmB,UAAUoE,MAAV,EAAkB;AAC1C,IAAA,IAAIloC,GAAG,GAAGooI,QAAQ,CAAClgG,MAAD,CAAlB,CAAA;AACA,IAAA,IAAI0kH,QAAQ,GAAGD,QAAQ,CAACzkH,MAAD,CAAR,GAAmB,CAAlC,CAAA;IACA,IAAIp7B,EAAE,GAAG,EAAT,CAAA;IACA,IAAIu+D,EAAE,GAAG,EAAT,CAAA;AACAv+D,IAAAA,EAAE,CAACo7B,MAAD,CAAF,GAAaloC,GAAG,GAAG4sJ,QAAnB,CAAA;AACAvhF,IAAAA,EAAE,CAACnjC,MAAD,CAAF,GAAaloC,GAAG,GAAG4sJ,QAAnB,CAAA;AACA9/I,IAAAA,EAAE,CAAC,CAAA,GAAIo7B,MAAL,CAAF,GAAiBmjC,EAAE,CAAC,CAAInjC,GAAAA,MAAL,CAAF,GAAiBkgG,QAAQ,CAAC,CAAA,GAAIlgG,MAAL,CAA1C,CAAA;AACA,IAAA,OAAOtsC,IAAI,CAACyC,GAAL,CAAS,IAAKo9B,CAAAA,WAAL,CAAiB3uB,EAAjB,CAAA,CAAqBo7B,MAArB,CAAA,GAA+B,KAAKzM,WAAL,CAAiB4vC,EAAjB,CAAqBnjC,CAAAA,MAArB,CAAxC,CAAP,CAAA;GARK,EASJ,IATI,CAAP,CAAA;AAUD,CAAA;;AAEc,SAAS4kH,gBAAT,CAA0B5/H,QAA1B,EAAoC;AACjD,EAAA,IAAIluB,IAAI,GAAGkuB,QAAQ,CAAC63B,eAAT,EAAX,CAAA;EACA,OAAO;AACL73B,IAAAA,QAAQ,EAAE;AACR/d,MAAAA,IAAI,EAAE,KADE;MAERtS,CAAC,EAAEmC,IAAI,CAACnC,CAFA;MAGRC,CAAC,EAAEkC,IAAI,CAAClC,CAHA;MAIR+I,KAAK,EAAE7G,IAAI,CAAC6G,KAJJ;MAKRC,MAAM,EAAE9G,IAAI,CAAC8G,MALL;MAMRgxE,IAAI,EAAE5pD,QAAQ,CAACm8D,OAAT,EAAA;KAPH;AASL1wE,IAAAA,GAAG,EAAE;MACH0sB,KAAK,EAAE,SAAU/U,KAAAA,CAAAA,IAAV,EAAgB;AACrB;AACA;AACA;AACA,QAAA,OAAOpD,QAAQ,CAACuO,WAAT,CAAqBnL,IAArB,CAAP,CAAA;OALC;AAOH/B,MAAAA,IAAI,EAAEuV,MAAA,CAAY4oH,iBAAZ,EAA6Bx/H,QAA7B,CAAA;AAPH,KAAA;GATP,CAAA;AAmBD;;AC/ED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA,SAASw/H,iBAAT,CAAyBC,QAAzB,EAAmCvkB,QAAnC,EAA6C;AAC3C;AACA,EAAA,IAAIriG,IAAI,GAAG,IAAKC,CAAAA,OAAL,EAAX,CAAA;EACA,IAAIhmC,GAAG,GAAGooI,QAAQ,YAAYh7F,KAApB,GAA4Bg7F,QAAQ,CAAC,CAAD,CAApC,GAA0CA,QAApD,CAAA;AACA,EAAA,IAAIwkB,QAAQ,GAAG,CAACD,QAAQ,YAAYv/G,KAApB,GAA4Bu/G,QAAQ,CAAC,CAAD,CAApC,GAA0CA,QAA3C,IAAuD,CAAtE,CAAA;AACA,EAAA,OAAO5mH,IAAI,CAAC52B,IAAL,KAAc,UAAd,GAA2B42B,IAAI,CAACgpG,YAAL,EAA3B,GAAiDnzI,IAAI,CAACyC,GAAL,CAAS0nC,IAAI,CAACK,WAAL,CAAiBpmC,GAAG,GAAG4sJ,QAAvB,CAAmC7mH,GAAAA,IAAI,CAACK,WAAL,CAAiBpmC,GAAG,GAAG4sJ,QAAvB,CAA5C,CAAxD,CAAA;AACD,CAAA;;AAEc,SAASG,mBAAT,CAA6B7/H,QAA7B,EAAuC;AACpD,EAAA,IAAIluB,IAAI,GAAGkuB,QAAQ,CAACkqC,OAAT,EAAX,CAAA;EACA,OAAO;AACLlqC,IAAAA,QAAQ,EAAE;AACR/d,MAAAA,IAAI,EAAE,YADE;MAERtS,CAAC,EAAEmC,IAAI,CAACnC,CAFA;MAGRC,CAAC,EAAEkC,IAAI,CAAClC,CAHA;MAIR+I,KAAK,EAAE7G,IAAI,CAAC6G,KAJJ;MAKRC,MAAM,EAAE9G,IAAI,CAAC8G,MAAAA;KANV;AAQL6S,IAAAA,GAAG,EAAE;MACH0sB,KAAK,EAAE,SAAUrlC,KAAAA,CAAAA,GAAV,EAAe;AACpB;AACA,QAAA,OAAOktB,QAAQ,CAACuO,WAAT,CAAqBz7B,GAArB,CAAP,CAAA;OAHC;AAKHuuB,MAAAA,IAAI,EAAE4kD,MAAI,CAACu5E,iBAAD,EAAkBx/H,QAAlB,CAAA;AALP,KAAA;GARP,CAAA;AAgBD;;ACtED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA,SAASw/H,eAAT,CAAyBC,QAAzB,EAAmCvkB,QAAnC,EAA6C;AAC3C;AACAA,EAAAA,QAAQ,GAAGA,QAAQ,IAAI,CAAC,CAAD,EAAI,CAAJ,CAAvB,CAAA;AACA,EAAA,OAAOtkG,GAAA,CAAW,CAAC,QAAD,EAAW,OAAX,CAAX,EAAgC,UAAU3J,GAAV,EAAe+N,MAAf,EAAuB;AAC5D,IAAA,IAAI8kH,UAAU,GAAG,KAAA,GAAQ7yH,GAAR,GAAc,MAA/B,CAD4D;;AAG5D,IAAA,IAAI4L,IAAI,GAAG,IAAKinH,CAAAA,UAAL,CAAX,EAAA,CAAA;AACA,IAAA,IAAIhtJ,GAAG,GAAGooI,QAAQ,CAAClgG,MAAD,CAAlB,CAAA;AACA,IAAA,IAAI0kH,QAAQ,GAAGD,QAAQ,CAACzkH,MAAD,CAAR,GAAmB,CAAlC,CAAA;AACA,IAAA,IAAIi9B,MAAM,GAAGp/B,IAAI,CAAC52B,IAAL,KAAc,UAAd,GAA2B42B,IAAI,CAACgpG,YAAL,EAA3B,GAAiDnzI,IAAI,CAACyC,GAAL,CAAS0nC,IAAI,CAACK,WAAL,CAAiBpmC,GAAG,GAAG4sJ,QAAvB,CAAA,GAAmC7mH,IAAI,CAACK,WAAL,CAAiBpmC,GAAG,GAAG4sJ,QAAvB,CAA5C,CAA9D,CAAA;;IAEA,IAAIzyH,GAAG,KAAK,OAAZ,EAAqB;AACnBgrC,MAAAA,MAAM,GAAGA,MAAM,GAAGvpE,IAAI,CAACI,EAAd,GAAmB,GAA5B,CAAA;AACD,KAAA;;AAED,IAAA,OAAOmpE,MAAP,CAAA;GAZK,EAaJ,IAbI,CAAP,CAAA;AAcD,CAAA;;AAEc,SAAS8nF,kBAAT,CAA4B//H,QAA5B,EAAsC;AACnD,EAAA,IAAIggI,UAAU,GAAGhgI,QAAQ,CAACigI,aAAT,EAAjB,CAAA;AACA,EAAA,IAAIC,SAAS,GAAGlgI,QAAQ,CAACmgI,YAAT,EAAhB,CAAA;AACA,EAAA,IAAI3sG,MAAM,GAAGwsG,UAAU,CAAC/xH,SAAX,EAAb,CAAA;AACAulB,EAAAA,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAlB,IAAyBA,MAAM,CAACna,OAAP,EAAzB,CAAA;EACA,OAAO;AACLrZ,IAAAA,QAAQ,EAAE;AACR/d,MAAAA,IAAI,EAAE,OADE;MAER3R,EAAE,EAAE0vB,QAAQ,CAAC1vB,EAFL;MAGRC,EAAE,EAAEyvB,QAAQ,CAACzvB,EAHL;AAIRC,MAAAA,CAAC,EAAEgjD,MAAM,CAAC,CAAD,CAJD;MAKR/d,EAAE,EAAE+d,MAAM,CAAC,CAAD,CAAA;KANP;AAQL/nC,IAAAA,GAAG,EAAE;MACH0sB,KAAK,EAAE,SAAU/U,KAAAA,CAAAA,IAAV,EAAgB;QACrB,IAAIowB,MAAM,GAAGwsG,UAAU,CAACI,YAAX,CAAwBh9H,IAAI,CAAC,CAAD,CAA5B,CAAb,CAAA;QACA,IAAIilB,KAAK,GAAG63G,SAAS,CAACG,WAAV,CAAsBj9H,IAAI,CAAC,CAAD,CAA1B,CAAZ,CAAA;QACA,IAAI+U,KAAK,GAAGnY,QAAQ,CAAC+hD,YAAT,CAAsB,CAACvuB,MAAD,EAASnL,KAAT,CAAtB,CAAZ,CAAA;QACAlQ,KAAK,CAACllC,IAAN,CAAWugD,MAAX,EAAmBnL,KAAK,GAAG35C,IAAI,CAACI,EAAb,GAAkB,GAArC,CAAA,CAAA;AACA,QAAA,OAAOqpC,KAAP,CAAA;OANC;AAQH9W,MAAAA,IAAI,EAAEuV,MAAA,CAAY4oH,eAAZ,EAA6Bx/H,QAA7B,CAAA;AARH,KAAA;GARP,CAAA;AAmBD;;ACvFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASsgI,qBAAT,CAA+BtgI,QAA/B,EAAyC;AACtD,EAAA,IAAIluB,IAAI,GAAGkuB,QAAQ,CAACkqC,OAAT,EAAX,CAAA;AACA,EAAA,IAAIq2F,SAAS,GAAGvgI,QAAQ,CAACwgI,YAAT,EAAhB,CAAA;EACA,OAAO;AACLxgI,IAAAA,QAAQ,EAAE;AACR/d,MAAAA,IAAI,EAAE,UADE;MAERtS,CAAC,EAAEmC,IAAI,CAACnC,CAFA;MAGRC,CAAC,EAAEkC,IAAI,CAAClC,CAHA;MAIR+I,KAAK,EAAE7G,IAAI,CAAC6G,KAJJ;MAKRC,MAAM,EAAE9G,IAAI,CAAC8G,MALL;AAMR6nJ,MAAAA,SAAS,EAAEzgI,QAAQ,CAAC0gI,YAAT,EANH;AAORC,MAAAA,UAAU,EAAE3gI,QAAQ,CAAC4gI,aAAT,EAPJ;AAQRL,MAAAA,SAAS,EAAE;QACT1jI,KAAK,EAAE0jI,SAAS,CAAC1jI,KADR;QAETuP,GAAG,EAAEm0H,SAAS,CAACn0H,GAFN;QAGTy0H,KAAK,EAAEN,SAAS,CAACM,KAHR;QAITC,QAAQ,EAAEP,SAAS,CAACQ,MAAAA;AAJX,OAAA;KATR;AAgBLt1I,IAAAA,GAAG,EAAE;AACH0sB,MAAAA,KAAK,EAAE,SAAA,KAAA,CAAU/U,IAAV,EAAgBklC,KAAhB,EAAuB;AAC5B,QAAA,OAAOtoC,QAAQ,CAACuO,WAAT,CAAqBnL,IAArB,EAA2BklC,KAA3B,CAAP,CAAA;AACD,OAAA;AAHE,KAAA;GAhBP,CAAA;AAsBD;;ACnED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BA,IAAI04F,cAAc,GAAG,EAArB,CAAA;AACA;AACA;AACA;;AAEO,SAASC,oBAAT,CAA8BztJ,KAA9B,EAAqC0tJ,MAArC,EAA6CC,uBAA7C,EAAsEC,gBAAtE,EAAwF;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,OAAO5tJ,KAAK,KAAKA,KAAK,CAAC6tJ,MAAN,IAAgB7tJ,KAAK,CAAC6tJ,MAAN,KAAiB,KAAjB,IAA0B,CAACF,uBAA3B,IAAsD,CAACC,gBAAvD,IAA2EF,MAAM,KAAK,OAAtF;MAC7BA,MAAM,KAAK,MAAX,IAAqBx0E,MAAM,CAACl5E,KAAD,EAAQ,MAAR,CADE,CAArB,CAAZ,CAAA;AAED,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS8tJ,6BAAT,CAAuCC,SAAvC,EAAkDL,MAAlD,EAA0D5E,QAA1D,EAAoE;EACzE,IAAIkF,QAAQ,GAAGD,SAAf,CAAA;AACA,EAAA,IAAI//G,UAAJ,CAAA;AACA,EAAA,IAAI13B,WAAJ,CAAA;AACA,EAAA,IAAI23I,gBAAJ,CAAA;;EAEA,IAAIP,MAAM,KAAK,MAAf,EAAuB;AACrBO,IAAAA,gBAAgB,GAAGD,QAAnB,CAAA;AACD,GAFD,MAEO;AACLC,IAAAA,gBAAgB,GAAG,EAAnB,CAAA;AACA/0E,IAAAA,MAAM,CAAC80E,QAAD,EAAW,MAAX,CAAN,KAA6BC,gBAAgB,CAACrrJ,IAAjB,GAAwBorJ,QAAQ,CAACprJ,IAA9D,CAAA,CAAA;AACAs2E,IAAAA,MAAM,CAAC80E,QAAD,EAAW,MAAX,CAAN,KAA6BC,gBAAgB,CAACp9F,IAAjB,GAAwBm9F,QAAQ,CAACn9F,IAA9D,CAAA,CAAA;AACAqoB,IAAAA,MAAM,CAAC80E,QAAD,EAAW,UAAX,CAAN,KAAiCC,gBAAgB,CAAChuJ,IAAjB,GAAwB+tJ,QAAQ,CAACE,QAAlE,CAAA,CAAA;AACAh1E,IAAAA,MAAM,CAAC80E,QAAD,EAAW,YAAX,CAAN,KAAmCC,gBAAgB,CAAC9tJ,MAAjB,GAA0B6tJ,QAAQ,CAACG,UAAtE,CAAA,CAAA;AACAj1E,IAAAA,MAAM,CAAC80E,QAAD,EAAW,YAAX,CAAN,KAAmCC,gBAAgB,CAACt9I,UAAjB,GAA8Bq9I,QAAQ,CAACr9I,UAA1E,CAAA,CAAA;AACAuoE,IAAAA,MAAM,CAAC80E,QAAD,EAAW,UAAX,CAAN,KAAiCC,gBAAgB,CAACz9I,QAAjB,GAA4Bw9I,QAAQ,CAACx9I,QAAtE,CAAA,CAAA;AACA0oE,IAAAA,MAAM,CAAC80E,QAAD,EAAW,WAAX,CAAN,KAAkCC,gBAAgB,CAAC19I,SAAjB,GAA6By9I,QAAQ,CAACz9I,SAAxE,CAAA,CAAA;AACA2oE,IAAAA,MAAM,CAAC80E,QAAD,EAAW,YAAX,CAAN,KAAmCC,gBAAgB,CAACp9I,UAAjB,GAA8Bm9I,QAAQ,CAACn9I,UAA1E,CAAA,CAAA;AACAyF,IAAAA,WAAW,GAAG;AACZ7H,MAAAA,IAAI,EAAE,MADM;AAEZzO,MAAAA,KAAK,EAAEiuJ,gBAFK;AAGZ;AACA;AACA;AACA;AACA;AACA/7H,MAAAA,MAAM,EAAE,IAAA;KARV,CAAA;AAUA8b,IAAAA,UAAU,GAAG,EAAb,CAAA;AACA,IAAA,IAAIogH,SAAS,GAAGl1E,MAAM,CAAC80E,QAAD,EAAW,cAAX,CAAtB,CAAA;;AAEA,IAAA,IAAIlF,QAAJ,EAAc;MACZ96G,UAAU,CAACxuB,QAAX,GAAsB4uI,SAAS,GAAGJ,QAAQ,CAACl6G,YAAZ,GAA2B,QAA1D,CAAA;AACD,KAFD,MAEO;MACLs6G,SAAS,KAAKpgH,UAAU,CAACxuB,QAAX,GAAsBwuI,QAAQ,CAACl6G,YAApC,CAAT,CAAA;AACD,KAAA;;AAEDolC,IAAAA,MAAM,CAAC80E,QAAD,EAAW,cAAX,CAAN,KAAqChgH,UAAU,CAACxuB,QAAX,GAAsBwuI,QAAQ,CAACl6G,YAApE,CAAA,CAAA;AACAolC,IAAAA,MAAM,CAAC80E,QAAD,EAAW,YAAX,CAAN,KAAmChgH,UAAU,CAAC56B,MAAX,GAAoB46I,QAAQ,CAACK,UAAhE,CAAA,CAAA;AACAn1E,IAAAA,MAAM,CAAC80E,QAAD,EAAW,cAAX,CAAN,KAAqChgH,UAAU,CAAC9f,QAAX,GAAsB8/H,QAAQ,CAAC9vF,YAApE,CAAA,CAAA;AACAgb,IAAAA,MAAM,CAAC80E,QAAD,EAAW,cAAX,CAAN,KAAqChgH,UAAU,CAACrf,QAAX,GAAsBq/H,QAAQ,CAACM,YAApE,CAAA,CAAA;AACD,GAAA;;AAEDC,EAAAA,4BAA4B,CAACN,gBAAD,EAAmBF,SAAnB,CAA5B,CAAA;AACA3lJ,EAAAA,MAAI,CAAC6lJ,gBAAgB,CAACp9F,IAAlB,EAAwB,UAAU29F,QAAV,EAAoB;AAC9CD,IAAAA,4BAA4B,CAACC,QAAD,EAAWA,QAAX,CAA5B,CAAA;AACD,GAFG,CAAJ,CAAA;EAGA,OAAO;AACLxgH,IAAAA,UAAU,EAAEA,UADP;AAEL13B,IAAAA,WAAW,EAAEA,WAAAA;GAFf,CAAA;AAID,CAAA;AACD;AACA;AACA;;AAEA,SAASi4I,4BAAT,CAAsCxxI,GAAtC,EAA2CyxI,QAA3C,EAAqD;EACnD,IAAI,CAACA,QAAL,EAAe;AACb,IAAA,OAAA;AACD,GAHkD;AAInD;AACA;AACA;AACA;AACA;;;EAGAA,QAAQ,CAAC1+I,IAAT,GAAgB0+I,QAAQ,CAAC5tF,QAAT,IAAqB4tF,QAAQ,CAAC1+I,IAA9C,CAAA;AACAopE,EAAAA,MAAM,CAACs1E,QAAD,EAAW,iBAAX,CAAN,KAAwCzxI,GAAG,CAACzb,SAAJ,GAAgBktJ,QAAQ,CAACC,eAAjE,CAAA,CAAA;AACAv1E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,WAAX,CAAN,KAAkCzxI,GAAG,CAACgsB,KAAJ,GAAYylH,QAAQ,CAACr+I,SAAvD,CAAA,CAAA;AACA+oE,EAAAA,MAAM,CAACs1E,QAAD,EAAW,mBAAX,CAAN,KAA0CzxI,GAAG,CAACisB,aAAJ,GAAoBwlH,QAAQ,CAACn6G,iBAAvE,CAAA,CAAA;AACA6kC,EAAAA,MAAM,CAACs1E,QAAD,EAAW,gBAAX,CAAN,KAAuCzxI,GAAG,CAACq0G,UAAJ,GAAiBo9B,QAAQ,CAACE,cAAjE,CAAA,CAAA;AACAx1E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,WAAX,CAAN,KAAkCzxI,GAAG,CAAC5X,KAAJ,GAAYqpJ,QAAQ,CAACG,SAAvD,CAAA,CAAA;AACAz1E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,YAAX,CAAN,KAAmCzxI,GAAG,CAAC3X,MAAJ,GAAaopJ,QAAQ,CAACI,UAAzD,CAAA,CAAA;AACA11E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,qBAAX,CAAN,KAA4CzxI,GAAG,CAACH,eAAJ,GAAsB4xI,QAAQ,CAACK,mBAA3E,CAAA,CAAA;AACA31E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,aAAX,CAAN,KAAoCzxI,GAAG,CAACqE,OAAJ,GAAcotI,QAAQ,CAAC7/C,WAA3D,CAAA,CAAA;AACAz1B,EAAAA,MAAM,CAACs1E,QAAD,EAAW,iBAAX,CAAN,KAAwCzxI,GAAG,CAAC81B,WAAJ,GAAkB27G,QAAQ,CAACM,eAAnE,CAAA,CAAA;AACA51E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,iBAAX,CAAN,KAAwCzxI,GAAG,CAACuE,WAAJ,GAAkBktI,QAAQ,CAACO,eAAnE,CAAA,CAAA;AACA71E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,kBAAX,CAAN,KAAyCzxI,GAAG,CAACg2B,YAAJ,GAAmBy7G,QAAQ,CAACQ,gBAArE,CAAA,CAAA;AACA91E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,oBAAX,CAAN,KAA2CzxI,GAAG,CAAC9K,WAAJ,GAAkBu8I,QAAQ,CAACS,kBAAtE,CAAA,CAAA;AACA/1E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,mBAAX,CAAN,KAA0CzxI,GAAG,CAAC/K,UAAJ,GAAiBw8I,QAAQ,CAACU,iBAApE,CAAA,CAAA;AACAh2E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,sBAAX,CAAN,KAA6CzxI,GAAG,CAACnL,aAAJ,GAAoB48I,QAAQ,CAACW,oBAA1E,CAAA,CAAA;AACAj2E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,sBAAX,CAAN,KAA6CzxI,GAAG,CAACjL,aAAJ,GAAoB08I,QAAQ,CAACY,oBAA1E,CAAA,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGO,SAASC,gCAAT,CAA0CC,OAA1C,EAAmDC,KAAnD,EAA0DC,KAA1D,EAAiE;AACtE,EAAA,IAAIzyI,GAAG,GAAGuyI,OAAV,CADsE;;EAGtEvyI,GAAG,CAAC+2B,YAAJ,GAAmB/2B,GAAG,CAAC+2B,YAAJ,IAAoB07G,KAAK,CAAChwI,QAA1B,IAAsC,QAAzD,CAAA;EACAgwI,KAAK,CAACp8I,MAAN,IAAgB,IAAhB,KAAyB2J,GAAG,CAACsxI,UAAJ,GAAiBmB,KAAK,CAACp8I,MAAhD,CAAA,CAAA;EACAo8I,KAAK,CAACthI,QAAN,IAAkB,IAAlB,KAA2BnR,GAAG,CAACmhD,YAAJ,GAAmBsxF,KAAK,CAACthI,QAApD,CAAA,CAAA;EACAshI,KAAK,CAAC7gI,QAAN,IAAkB,IAAlB,KAA2B5R,GAAG,CAACuxI,YAAJ,GAAmBkB,KAAK,CAAC7gI,QAApD,CAAA,CAAA;EACA,IAAI8gI,QAAQ,GAAG1yI,GAAG,CAAC+2B,YAAJ,CAAiBlrC,OAAjB,CAAyB,QAAzB,CAAA,IAAsC,CAArD,CAAA;AACA,EAAA,IAAI8mJ,QAAQ,GAAGJ,OAAO,CAACrvJ,IAAR,IAAgB,MAA/B,CAAA;AACA0vJ,EAAAA,oBAAoB,CAAC5yI,GAAD,EAAMwyI,KAAN,CAApB,CAAA;AACA,EAAA,IAAIK,cAAc,GAAG7yI,GAAG,CAACmxI,QAAJ,IAAgB,IAArC,CAAA;;AAEA,EAAA,IAAIuB,QAAJ,EAAc;AACZ,IAAA,IAAIG,cAAJ,EAAoB;AAClB7yI,MAAAA,GAAG,CAACmxI,QAAJ,GAAesB,KAAK,CAACK,UAAN,IAAoB,MAAnC,CAAA;AACA,MAAA,CAAC9yI,GAAG,CAACoxI,UAAL,IAAmBqB,KAAK,CAACj+B,YAAzB,KAA0Cx0G,GAAG,CAACoxI,UAAJ,GAAiBqB,KAAK,CAACj+B,YAAjE,CAAA,CAAA;MACA,CAACx0G,GAAG,CAACoxI,UAAL,KAAoBpxI,GAAG,CAACoxI,UAAJ,GAAiBuB,QAArC,CAAA,CAAA;MACA3yI,GAAG,CAAC0xI,eAAJ,IAAuB,IAAvB,KAAgC1xI,GAAG,CAAC0xI,eAAJ,GAAsB,CAAtD,CAAA,CAAA;AACD,KAAA;AACF,GAPD,MAOO;AACL,IAAA,IAAImB,cAAJ,EAAoB;MAClB7yI,GAAG,CAACmxI,QAAJ,GAAeoB,OAAO,CAACrvJ,IAAR,IAAgBuvJ,KAAK,CAACh+B,WAAtB,IAAqC,MAApD,CAAA;AACD,KAAA;;AAED,IAAA,CAACz0G,GAAG,CAACoxI,UAAL,IAAmBqB,KAAK,CAACM,aAAzB,KAA2C/yI,GAAG,CAACoxI,UAAJ,GAAiBqB,KAAK,CAACM,aAAlE,CAAA,CAAA;AACD,GAAA;;AAED/yI,EAAAA,GAAG,CAACna,IAAJ,GAAW2sJ,KAAK,CAAC3sJ,IAAjB,CAAA;AACAma,EAAAA,GAAG,CAAC8zC,IAAJ,GAAW0+F,KAAK,CAAC1+F,IAAjB,CAAA;AACAzoD,EAAAA,MAAI,CAACmnJ,KAAK,CAAC1+F,IAAP,EAAa,UAAU29F,QAAV,EAAoB;AACnCmB,IAAAA,oBAAoB,CAACnB,QAAD,EAAWA,QAAX,CAApB,CAAA;AACD,GAFG,CAAJ,CAAA;AAGA,EAAA,OAAOzxI,GAAP,CAAA;AACD,CAAA;;AAED,SAAS4yI,oBAAT,CAA8B5yI,GAA9B,EAAmCyxI,QAAnC,EAA6C;EAC3C,IAAI,CAACA,QAAL,EAAe;AACb,IAAA,OAAA;AACD,GAAA;;AAEDt1E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,MAAX,CAAN,KAA6BzxI,GAAG,CAACmxI,QAAJ,GAAeM,QAAQ,CAACvuJ,IAArD,CAAA,CAAA;AACAi5E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,QAAX,CAAN,KAA+BzxI,GAAG,CAACoxI,UAAJ,GAAiBK,QAAQ,CAACvuJ,IAAzD,CAAA,CAAA;AACAi5E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,WAAX,CAAN,KAAkCzxI,GAAG,CAAC0xI,eAAJ,GAAsBD,QAAQ,CAACltJ,SAAjE,CAAA,CAAA;AACA43E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,MAAX,CAAN,KAA6BzxI,GAAG,CAACjN,IAAJ,GAAW0+I,QAAQ,CAAC1+I,IAAjD,CAAA,CAAA;AACAopE,EAAAA,MAAM,CAACs1E,QAAD,EAAW,WAAX,CAAN,KAAkCzxI,GAAG,CAACxM,SAAJ,GAAgBi+I,QAAQ,CAACj+I,SAA3D,CAAA,CAAA;AACA2oE,EAAAA,MAAM,CAACs1E,QAAD,EAAW,YAAX,CAAN,KAAmCzxI,GAAG,CAAClM,UAAJ,GAAiB29I,QAAQ,CAAC39I,UAA7D,CAAA,CAAA;AACAqoE,EAAAA,MAAM,CAACs1E,QAAD,EAAW,UAAX,CAAN,KAAiCzxI,GAAG,CAACvM,QAAJ,GAAeg+I,QAAQ,CAACh+I,QAAzD,CAAA,CAAA;AACA0oE,EAAAA,MAAM,CAACs1E,QAAD,EAAW,YAAX,CAAN,KAAmCzxI,GAAG,CAACpM,UAAJ,GAAiB69I,QAAQ,CAAC79I,UAA7D,CAAA,CAAA;AACAuoE,EAAAA,MAAM,CAACs1E,QAAD,EAAW,OAAX,CAAN,KAA8BzxI,GAAG,CAAC5M,SAAJ,GAAgBq+I,QAAQ,CAACzlH,KAAvD,CAAA,CAAA;AACAmwC,EAAAA,MAAM,CAACs1E,QAAD,EAAW,eAAX,CAAN,KAAsCzxI,GAAG,CAACs3B,iBAAJ,GAAwBm6G,QAAQ,CAACxlH,aAAvE,CAAA,CAAA;AACAkwC,EAAAA,MAAM,CAACs1E,QAAD,EAAW,YAAX,CAAN,KAAmCzxI,GAAG,CAAC2xI,cAAJ,GAAqBF,QAAQ,CAACp9B,UAAjE,CAAA,CAAA;AACAl4C,EAAAA,MAAM,CAACs1E,QAAD,EAAW,OAAX,CAAN,KAA8BzxI,GAAG,CAAC4xI,SAAJ,GAAgBH,QAAQ,CAACrpJ,KAAvD,CAAA,CAAA;AACA+zE,EAAAA,MAAM,CAACs1E,QAAD,EAAW,QAAX,CAAN,KAA+BzxI,GAAG,CAAC6xI,UAAJ,GAAiBJ,QAAQ,CAACppJ,MAAzD,CAAA,CAAA;AACA8zE,EAAAA,MAAM,CAACs1E,QAAD,EAAW,iBAAX,CAAN,KAAwCzxI,GAAG,CAAC8xI,mBAAJ,GAA0BL,QAAQ,CAAC5xI,eAA3E,CAAA,CAAA;AACAs8D,EAAAA,MAAM,CAACs1E,QAAD,EAAW,SAAX,CAAN,KAAgCzxI,GAAG,CAAC4xF,WAAJ,GAAkB6/C,QAAQ,CAACptI,OAA3D,CAAA,CAAA;AACA83D,EAAAA,MAAM,CAACs1E,QAAD,EAAW,aAAX,CAAN,KAAoCzxI,GAAG,CAAC+xI,eAAJ,GAAsBN,QAAQ,CAAC37G,WAAnE,CAAA,CAAA;AACAqmC,EAAAA,MAAM,CAACs1E,QAAD,EAAW,aAAX,CAAN,KAAoCzxI,GAAG,CAACgyI,eAAJ,GAAsBP,QAAQ,CAACltI,WAAnE,CAAA,CAAA;AACA43D,EAAAA,MAAM,CAACs1E,QAAD,EAAW,cAAX,CAAN,KAAqCzxI,GAAG,CAACiyI,gBAAJ,GAAuBR,QAAQ,CAACz7G,YAArE,CAAA,CAAA;AACAmmC,EAAAA,MAAM,CAACs1E,QAAD,EAAW,aAAX,CAAN,KAAoCzxI,GAAG,CAACkyI,kBAAJ,GAAyBT,QAAQ,CAACv8I,WAAtE,CAAA,CAAA;AACAinE,EAAAA,MAAM,CAACs1E,QAAD,EAAW,YAAX,CAAN,KAAmCzxI,GAAG,CAACmyI,iBAAJ,GAAwBV,QAAQ,CAACx8I,UAApE,CAAA,CAAA;AACAknE,EAAAA,MAAM,CAACs1E,QAAD,EAAW,eAAX,CAAN,KAAsCzxI,GAAG,CAACoyI,oBAAJ,GAA2BX,QAAQ,CAAC58I,aAA1E,CAAA,CAAA;AACAsnE,EAAAA,MAAM,CAACs1E,QAAD,EAAW,eAAX,CAAN,KAAsCzxI,GAAG,CAACqyI,oBAAJ,GAA2BZ,QAAQ,CAAC18I,aAA1E,CAAA,CAAA;AACAonE,EAAAA,MAAM,CAACs1E,QAAD,EAAW,iBAAX,CAAN,KAAwCzxI,GAAG,CAACgzI,eAAJ,GAAsBvB,QAAQ,CAACuB,eAAvE,CAAA,CAAA;AACA72E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,gBAAX,CAAN,KAAuCzxI,GAAG,CAACizI,cAAJ,GAAqBxB,QAAQ,CAACwB,cAArE,CAAA,CAAA;AACA92E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,mBAAX,CAAN,KAA0CzxI,GAAG,CAACkzI,iBAAJ,GAAwBzB,QAAQ,CAACyB,iBAA3E,CAAA,CAAA;AACA/2E,EAAAA,MAAM,CAACs1E,QAAD,EAAW,mBAAX,CAAN,KAA0CzxI,GAAG,CAACmzI,iBAAJ,GAAwB1B,QAAQ,CAAC0B,iBAA3E,CAAA,CAAA;AACD,CAAA;;AAEM,SAASC,cAAT,CAAwBC,UAAxB,EAAoCC,eAApC,EAAqD;AAC1D,EAAA,IAAIv9I,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,IAAA,IAAIvQ,GAAG,GAAG2tJ,UAAU,GAAG,KAAb,GAAqBC,eAA/B,CAAA;;AAEA,IAAA,IAAI,CAAC7C,cAAc,CAAC/qJ,GAAD,CAAnB,EAA0B;MACxB4U,OAAO,CAAC2tB,IAAR,CAAa,0BAAA,GAA6BorH,UAA7B,GAA0C,0BAA1C,GAAuEC,eAApF,CAAA,CAAA;AACA7C,MAAAA,cAAc,CAAC/qJ,GAAD,CAAd,GAAsB,IAAtB,CAAA;AACD,KAAA;AACF,GAAA;AACF;;AChPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiCA,IAAI6tJ,0BAA0B,GAAG;AAC/B9wI,EAAAA,QAAQ,EAAE,CAAC,GAAD,EAAM,GAAN,CADqB;AAE/BwC,EAAAA,KAAK,EAAE,CAAC,QAAD,EAAW,QAAX,CAFwB;AAG/Bg4E,EAAAA,MAAM,EAAE,CAAC,SAAD,EAAY,SAAZ,CAAA;AAHuB,CAAjC,CAAA;AAKA,IAAIu2D,sBAAsB,GAAG1sJ,IAAI,CAACysJ,0BAAD,CAAjC,CAAA;AACA,IAAIE,mBAAmB,GAAGC,MAAM,CAACC,mBAAD,EAAsB,UAAU9zG,GAAV,EAAen6C,GAAf,EAAoB;AACxEm6C,EAAAA,GAAG,CAACn6C,GAAD,CAAH,GAAW,CAAX,CAAA;AACA,EAAA,OAAOm6C,GAAP,CAAA;AACD,CAH+B,EAG7B,EAH6B,CAAhC,CAAA;AAIA,IAAI+zG,qBAAqB,GAAGD,mBAAmB,CAAChxJ,IAApB,CAAyB,IAAzB,CAA5B;;AAEO,IAAIkxJ,wBAAwB,GAAG,CAAC,EAAD,EAAK,OAAL,EAAc,OAAd,EAAuB,OAAvB,CAA/B,CAAA;AACP,CAAA;AACA,IAAIC,oBAAoB,GAAG9nF,SAAS,EAApC,CAAA;AACA,CAAA;;AAEA,SAAS+nF,yBAAT,CAAmCzpG,aAAnC,EAAkD1mD,EAAlD,EAAsDowJ,QAAtD,EAAgElkF,WAAhE,EAA6Eh9C,SAA7E,EAAwF;AACtF,EAAA,IAAImhI,aAAa,GAAG3pG,aAAa,GAAG,WAApC,CAAA;EACA,IAAIlnC,MAAM,GAAG8wI,kBAAkB,CAAC5pG,aAAD,EAAgBwlB,WAAhB,EAA6Bh9C,SAA7B,CAAlB,IAA6D,EAA1E,CAAA;EACA,IAAIqhI,UAAU,GAAGL,oBAAoB,CAAClwJ,EAAD,CAApB,CAAyBuwJ,UAA1C,CAHsF;;AAKtF,EAAA,IAAI/wI,MAAM,CAACstB,QAAP,GAAkB,CAAtB,EAAyB;AACvB;IACAttB,MAAM,CAACohB,MAAP,GAAgB2vH,UAAU,GAAGz+E,MAAI,CAAC0+E,UAAD,EAAa;AAC5CxwJ,MAAAA,EAAE,EAAEA,EADwC;AAE5CuwJ,MAAAA,UAAU,EAAEA,UAAAA;KAFmB,CAAP,GAGrB,IAHL,CAAA;IAIA/wI,MAAM,CAACutB,UAAP,GAAoB,IAApB,CAAA;IACAvtB,MAAM,CAACrY,KAAP,GAAeu/C,aAAf,CAAA;AACD,GAAA;;AAEDpgD,EAAAA,MAAM,CAACkZ,MAAD,EAAS4wI,QAAQ,CAACC,aAAD,CAAjB,CAAN,CAAA;AACA,EAAA,OAAO7wI,MAAP,CAAA;AACD,CAAA;;AAEM,SAASixI,qBAAT,CAA+BzwJ,EAA/B,EAAmCowJ,QAAnC,EAA6CM,eAA7C,EAA8DnuJ,IAA9D,EAAoE;EACzEA,IAAI,GAAGA,IAAI,IAAI,EAAf,CAAA;AACA,EAAA,IAAI2sB,SAAS,GAAG3sB,IAAI,CAAC2sB,SAArB;AAAA,MACI0C,MAAM,GAAGrvB,IAAI,CAACqvB,MADlB;AAAA,MAEI++H,UAAU,GAAGpuJ,IAAI,CAACouJ,UAFtB,CAAA;AAGA,EAAA,IAAIjwH,YAAY,GAAGgwH,eAAe,CAACj7G,kBAAhB,EAAnB,CALyE;;AAOzE,EAAA,IAAI7G,KAAK,GAAGshH,oBAAoB,CAAClwJ,EAAD,CAAhC,CAAA;AACA,EAAA,IAAI4wJ,QAAQ,GAAGR,QAAQ,CAAC/wJ,KAAxB,CAAA;AACAuvC,EAAAA,KAAK,CAAC2hH,UAAN,GAAmBH,QAAQ,CAACxvH,MAA5B,CAAA;EACA,IAAIiwH,cAAc,GAAG,EAArB,CAAA;EACA,IAAIC,UAAU,GAAG,EAAjB,CAAA;AACAC,EAAAA,6BAA6B,CAAC/wJ,EAAD,EAAKowJ,QAAL,EAAeU,UAAf,CAA7B,CAAA;AACAE,EAAAA,gCAAgC,CAAC,OAAD,EAAUZ,QAAV,EAAoBU,UAApB,CAAhC,CAAA;AACAE,EAAAA,gCAAgC,CAAC,OAAD,EAAUZ,QAAV,EAAoBU,UAApB,CAAhC,CAAA;;AAEA,EAAA,IAAI,CAACl/H,MAAD,IAAW8O,YAAf,EAA6B;AAC3BuwH,IAAAA,8BAA8B,CAACjxJ,EAAD,EAAKowJ,QAAL,EAAeS,cAAf,CAA9B,CAAA;IACAK,iCAAiC,CAAC,OAAD,EAAUlxJ,EAAV,EAAcowJ,QAAd,EAAwBS,cAAxB,CAAjC,CAAA;IACAK,iCAAiC,CAAC,OAAD,EAAUlxJ,EAAV,EAAcowJ,QAAd,EAAwBS,cAAxB,CAAjC,CAAA;IACAM,0BAA0B,CAACnxJ,EAAD,EAAKowJ,QAAL,EAAeQ,QAAf,EAAyBC,cAAzB,CAA1B,CAAA;AACD,GAAA;;EAEDC,UAAU,CAACzxJ,KAAX,GAAmBuxJ,QAAnB,CAAA;AACAQ,EAAAA,kBAAkB,CAACpxJ,EAAD,EAAK8wJ,UAAL,EAAiBH,UAAjB,CAAlB,CAAA;AACAU,EAAAA,cAAc,CAACrxJ,EAAD,EAAKowJ,QAAL,CAAd,CAAA;;AAEA,EAAA,IAAI1vH,YAAJ,EAAkB;AAChB,IAAA,IAAI9O,MAAJ,EAAY;MACV,IAAI0/H,gBAAgB,GAAG,EAAvB,CAAA;AACA7pJ,MAAAA,MAAI,CAACwoJ,wBAAD,EAA2B,UAAU/uJ,QAAV,EAAoB;QACjD,IAAItB,IAAI,GAAGsB,QAAQ,GAAGkvJ,QAAQ,CAAClvJ,QAAD,CAAX,GAAwBkvJ,QAA3C,CAAA;;AAEA,QAAA,IAAIxwJ,IAAI,IAAIA,IAAI,CAAC2xJ,SAAjB,EAA4B;AAC1B,UAAA,IAAIrwJ,QAAJ,EAAc;YACZowJ,gBAAgB,CAACpwJ,QAAD,CAAhB,GAA6BowJ,gBAAgB,CAACpwJ,QAAD,CAAhB,IAA8B,EAA3D,CAAA;AACD,WAAA;;AAEDoF,UAAAA,MAAM,CAACpF,QAAQ,GAAGowJ,gBAAgB,CAACpwJ,QAAD,CAAnB,GAAgCowJ,gBAAzC,EAA2D1xJ,IAAI,CAAC2xJ,SAAhE,CAAN,CAAA;AACD,SAAA;AACF,OAVG,CAAJ,CAAA;AAWA,MAAA,IAAI/xI,MAAM,GAAG2wI,yBAAyB,CAAC,OAAD,EAAUnwJ,EAAV,EAAcowJ,QAAd,EAAwBM,eAAxB,EAAyCxhI,SAAzC,CAAtC,CAAA;;AAEA,MAAA,IAAI1P,MAAM,CAACstB,QAAP,GAAkB,CAAtB,EAAyB;AACvB9sC,QAAAA,EAAE,CAACgtC,WAAH,CAAeskH,gBAAf,EAAiC9xI,MAAjC,CAAA,CAAA;AACD,OAAA;AACF,KAlBD,MAkBO;AACLgyI,MAAAA,oBAAoB,CAACxxJ,EAAD,EAAKowJ,QAAL,EAAelhI,SAAS,IAAI,CAA5B,EAA+BwhI,eAA/B,EAAgDG,cAAhD,CAApB,CAAA;AACD,KAAA;AACF,GAjDwE;;;AAoDzEY,EAAAA,aAAa,CAACzxJ,EAAD,EAAKowJ,QAAL,CAAb,CAAA;EACAQ,QAAQ,GAAG5wJ,EAAE,CAAC4kB,KAAH,EAAH,GAAgB5kB,EAAE,CAAC03B,UAAH,EAAxB,CAAA;AACD,CAAA;AACM,SAAS+5H,aAAT,CAAuBzxJ,EAAvB,EAA2BowJ,QAA3B,EAAqC;AAC1C;AACA,EAAA,IAAIsB,YAAY,GAAGxB,oBAAoB,CAAClwJ,EAAD,CAApB,CAAyB0xJ,YAA5C,CAAA;;AAEA,EAAA,KAAK,IAAIjzJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwxJ,wBAAwB,CAAClyJ,MAA7C,EAAqDU,CAAC,EAAtD,EAA0D;AACxD,IAAA,IAAIyC,QAAQ,GAAG+uJ,wBAAwB,CAACxxJ,CAAD,CAAvC,CAAA;IACA,IAAImB,IAAI,GAAGsB,QAAQ,GAAGkvJ,QAAQ,CAAClvJ,QAAD,CAAX,GAAwBkvJ,QAA3C,CAAA;;AAEA,IAAA,IAAIxwJ,IAAI,IAAIA,IAAI,CAAC+xJ,OAAjB,EAA0B;MACxB,IAAI,CAACD,YAAL,EAAmB;QACjBA,YAAY,GAAGxB,oBAAoB,CAAClwJ,EAAD,CAApB,CAAyB0xJ,YAAzB,GAAwC,EAAvD,CAAA;AACD,OAAA;;AAED,MAAA,IAAIxwJ,QAAJ,EAAc;QACZwwJ,YAAY,CAACxwJ,QAAD,CAAZ,GAAyBwwJ,YAAY,CAACxwJ,QAAD,CAAZ,IAA0B,EAAnD,CAAA;AACD,OAAA;;AAEDoF,MAAAA,MAAM,CAACpF,QAAQ,GAAGwwJ,YAAY,CAACxwJ,QAAD,CAAf,GAA4BwwJ,YAArC,EAAmD9xJ,IAAI,CAAC+xJ,OAAxD,CAAN,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;AACM,SAASC,oBAAT,CAA8B5xJ,EAA9B,EAAkCowJ,QAAlC,EAA4CM,eAA5C,EAA6DmB,QAA7D,EAAuE;AAC5E,EAAA,IAAI7xJ,EAAJ,EAAQ;AACN,IAAA,IAAI8X,QAAQ,GAAG9X,EAAE,CAACy1B,MAAlB,CAAA;AACA,IAAA,IAAIi8H,YAAY,GAAGxB,oBAAoB,CAAClwJ,EAAD,CAApB,CAAyB0xJ,YAA5C,CAAA;;AAEA,IAAA,IAAIA,YAAJ,EAAkB;AAChB;AACA;AACA,MAAA,IAAIlyI,MAAM,GAAG2wI,yBAAyB,CAAC,QAAD,EAAWnwJ,EAAX,EAAeowJ,QAAf,EAAyBM,eAAzB,EAA0C,CAA1C,CAAtC,CAAA;;MAEAlxI,MAAM,CAACmhB,IAAP,GAAc,YAAY;QACxB7oB,QAAQ,CAACqf,MAAT,CAAgBn3B,EAAhB,CAAA,CAAA;QACA6xJ,QAAQ,IAAIA,QAAQ,EAApB,CAAA;OAFF,CAAA;;AAKA7xJ,MAAAA,EAAE,CAAC6sC,SAAH,CAAa6kH,YAAb,EAA2BlyI,MAA3B,CAAA,CAAA;AACD,KAXD,MAWO;MACL1H,QAAQ,CAACqf,MAAT,CAAgBn3B,EAAhB,CAAA,CAAA;MACA6xJ,QAAQ,IAAIA,QAAQ,EAApB,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;AACM,SAASC,eAAT,CAAyBC,UAAzB,EAAqC;EAC1C,OAAOA,UAAU,KAAK,KAAtB,CAAA;AACD,CAAA;;AAED,SAASX,kBAAT,CAA4BpxJ,EAA5B;AACAgyJ,aADA,EACerB,UADf,EAC2B;AACzB,EAAA,IAAIC,QAAQ,GAAGoB,aAAa,CAAC3yJ,KAA7B,CAAA;;AAEA,EAAA,IAAI,CAACW,EAAE,CAACg4B,OAAJ,IAAe44H,QAAnB,EAA6B;AAC3B,IAAA,IAAID,UAAJ,EAAgB;AACd3wJ,MAAAA,EAAE,CAAC0zB,QAAH,CAAY,EAAZ,EADc;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAA,IAAIlrB,SAAS,GAAGxI,EAAE,CAACwI,SAAnB,CAAA;;AAEA,MAAA,KAAK,IAAI/J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+J,SAAS,CAACzK,MAA9B,EAAsCU,CAAC,EAAvC,EAA2C;AACzC,QAAA,IAAIoK,QAAQ,GAAGL,SAAS,CAAC/J,CAAD,CAAxB,CADyC;;AAGzC,QAAA,IAAIoK,QAAQ,CAAC8B,UAAT,KAAwB,OAA5B,EAAqC;AACnC9B,UAAAA,QAAQ,CAACopJ,YAAT,CAAsBjyJ,EAAE,CAACX,KAAzB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;IAEDW,EAAE,CAAC4sB,QAAH,CAAYgkI,QAAZ,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAIoB,aAAJ,EAAmB;AACjB;AACAA,IAAAA,aAAa,CAAC3yJ,KAAd,GAAsB,IAAtB,CAFiB;;AAIjB2yJ,IAAAA,aAAa,IAAIhyJ,EAAE,CAACkwB,IAAH,CAAQ8hI,aAAR,CAAjB,CAAA;IACAA,aAAa,CAAC3yJ,KAAd,GAAsBuxJ,QAAtB,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASY,oBAAT,CAA8BxxJ,EAA9B,EAAkCowJ,QAAlC,EAA4ClhI,SAA5C,EAAuD8nB,KAAvD;AACA65G,cADA,EACgB;AACd,EAAA,IAAIA,cAAJ,EAAoB;AAClB,IAAA,IAAIrxI,MAAM,GAAG2wI,yBAAyB,CAAC,QAAD,EAAWnwJ,EAAX,EAAeowJ,QAAf,EAAyBp5G,KAAzB,EAAgC9nB,SAAhC,CAAtC,CAAA;;AAEA,IAAA,IAAI1P,MAAM,CAACstB,QAAP,GAAkB,CAAtB,EAAyB;AACvB9sC,MAAAA,EAAE,CAACgtC,WAAH,CAAe6jH,cAAf,EAA+BrxI,MAA/B,CAAA,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAAS6xI,cAAT,CAAwBrxJ,EAAxB,EAA4BowJ,QAA5B,EAAsC;AACpC;AACA73E,EAAAA,MAAM,CAAC63E,QAAD,EAAW,QAAX,CAAN,KAA+BpwJ,EAAE,CAACuxB,MAAH,GAAY6+H,QAAQ,CAAC7+H,MAApD,CAAA,CAAA;AACAgnD,EAAAA,MAAM,CAAC63E,QAAD,EAAW,QAAX,CAAN,KAA+BpwJ,EAAE,CAACq3C,MAAH,GAAY+4G,QAAQ,CAAC/4G,MAApD,CAAA,CAAA;;EAEA,IAAIr3C,EAAE,YAAYonF,WAAlB,EAA+B;AAC7B7O,IAAAA,MAAM,CAAC63E,QAAD,EAAW,WAAX,CAAN,KAAkCpwJ,EAAE,CAAC4c,SAAH,GAAewzI,QAAQ,CAACxzI,SAA1D,CAAA,CAAA;AACD,GAAA;;EAED,IAAI5c,EAAE,YAAYsQ,IAAlB,EAAwB;AACtBioE,IAAAA,MAAM,CAAC63E,QAAD,EAAW,WAAX,CAAN,KAAkCpwJ,EAAE,CAACsiE,SAAH,GAAe8tF,QAAQ,CAAC9tF,SAA1D,CAAA,CAAA;AACD,GAAA;AACF;;;AAGD,IAAI4vF,cAAc,GAAG,EAArB,CAAA;AACA,IAAIC,mBAAmB,GAAG;AACxB;AACAzlJ,EAAAA,YAAY,EAAE,SAAA,YAAA,CAAU5K,GAAV,EAAenD,GAAf,EAAoB;AAChC,IAAA,IAAIwT,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCqB,MAAAA,MAAM,CAAC6kE,MAAM,CAACs3E,mBAAD,EAAsB/tJ,GAAtB,CAAP,EAAmC,OAAUkuJ,GAAAA,qBAAV,GAAkC,+BAArE,CAAN,CAAA;AACD,KAAA;;AAEDkC,IAAAA,cAAc,CAAClyJ,EAAf,CAAkB8B,GAAlB,IAAyBnD,GAAzB,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;GARsB;EAUxB8hI,YAAY,EAAE,SAAU3+H,YAAAA,CAAAA,GAAV,EAAe;AAC3B,IAAA,IAAIqQ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCqB,MAAAA,MAAM,CAAC6kE,MAAM,CAACs3E,mBAAD,EAAsB/tJ,GAAtB,CAAP,EAAmC,OAAUkuJ,GAAAA,qBAAV,GAAkC,+BAArE,CAAN,CAAA;AACD,KAAA;;AAED,IAAA,OAAOkC,cAAc,CAAClyJ,EAAf,CAAkB8B,GAAlB,CAAP,CAAA;GAfsB;AAiBxB0oC,EAAAA,QAAQ,EAAE,SAAA,QAAA,CAAU1oC,GAAV,EAAenD,GAAf,EAAoB;AAC5B,IAAA,IAAIwT,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC+/I,iBAAiB,CAACtwJ,GAAD,CAAjB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI9B,EAAE,GAAGkyJ,cAAc,CAAClyJ,EAAxB,CAAA;IACA,IAAIqG,KAAK,GAAGrG,EAAE,CAACqG,KAAH,KAAarG,EAAE,CAACqG,KAAH,GAAW,EAAxB,CAAZ,CAAA;AACAA,IAAAA,KAAK,CAACvE,GAAD,CAAL,GAAanD,GAAb,CAAA;AACAqB,IAAAA,EAAE,CAACouC,UAAH,IAAiBpuC,EAAE,CAACouC,UAAH,EAAjB,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;GA1BsB;EA4BxBikH,QAAQ,EAAE,SAAUvwJ,QAAAA,CAAAA,GAAV,EAAe;AACvB,IAAA,IAAIqQ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC+/I,iBAAiB,CAACtwJ,GAAD,CAAjB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIuE,KAAK,GAAG6rJ,cAAc,CAAClyJ,EAAf,CAAkBqG,KAA9B,CAAA;;AAEA,IAAA,IAAIA,KAAJ,EAAW;MACT,OAAOA,KAAK,CAACvE,GAAD,CAAZ,CAAA;AACD,KAAA;GArCqB;AAuCxB8qB,EAAAA,QAAQ,EAAE,SAAA,QAAA,CAAU9qB,GAAV,EAAenD,GAAf,EAAoB;AAC5B,IAAA,IAAIwT,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC+/I,iBAAiB,CAACtwJ,GAAD,CAAjB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI9B,EAAE,GAAGkyJ,cAAc,CAAClyJ,EAAxB,CAAA;AACA,IAAA,IAAIX,KAAK,GAAGW,EAAE,CAACX,KAAf,CAAA;;AAEA,IAAA,IAAIA,KAAJ,EAAW;AACT,MAAA,IAAI8S,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,QAAA,IAAIogH,KAAK,CAAC9zH,GAAD,CAAT,EAAgB;AACd0lC,UAAAA,IAAI,CAAC,QAAA,GAAWviC,GAAX,GAAiB,iCAAlB,CAAJ,CAAA;AACD,SAAA;AACF,OAAA;;AAEDzC,MAAAA,KAAK,CAACyC,GAAD,CAAL,GAAanD,GAAb,CAAA;AACAqB,MAAAA,EAAE,CAAC0oJ,UAAH,IAAiB1oJ,EAAE,CAAC0oJ,UAAH,EAAjB,CAAA;AACD,KAAA;;AAED,IAAA,OAAO,IAAP,CAAA;GA1DsB;EA4DxB4J,QAAQ,EAAE,SAAUxwJ,QAAAA,CAAAA,GAAV,EAAe;AACvB,IAAA,IAAIqQ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC+/I,iBAAiB,CAACtwJ,GAAD,CAAjB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIzC,KAAK,GAAG6yJ,cAAc,CAAClyJ,EAAf,CAAkBX,KAA9B,CAAA;;AAEA,IAAA,IAAIA,KAAJ,EAAW;MACT,OAAOA,KAAK,CAACyC,GAAD,CAAZ,CAAA;AACD,KAAA;GArEqB;AAuExBywJ,EAAAA,QAAQ,EAAE,SAAA,QAAA,CAAUzwJ,GAAV,EAAenD,GAAf,EAAoB;AAC5B,IAAA,IAAIwT,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC+/I,iBAAiB,CAACtwJ,GAAD,CAAjB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI0iI,KAAK,GAAG0tB,cAAc,CAAClyJ,EAAf,CAAkBwkI,KAAlB,KAA4B0tB,cAAc,CAAClyJ,EAAf,CAAkBwkI,KAAlB,GAA0B,EAAtD,CAAZ,CAAA;AACAA,IAAAA,KAAK,CAAC1iI,GAAD,CAAL,GAAanD,GAAb,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;GA9EsB;EAgFxB6zJ,QAAQ,EAAE,SAAU1wJ,QAAAA,CAAAA,GAAV,EAAe;AACvB,IAAA,IAAIqQ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC+/I,iBAAiB,CAACtwJ,GAAD,CAAjB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI0iI,KAAK,GAAG0tB,cAAc,CAAClyJ,EAAf,CAAkBwkI,KAA9B,CAAA;;AAEA,IAAA,IAAIA,KAAJ,EAAW;MACT,OAAOA,KAAK,CAAC1iI,GAAD,CAAZ,CAAA;AACD,KAAA;AACF,GAAA;AA1FuB,CAA1B,CAAA;;AA6FA,SAASswJ,iBAAT,CAA2BtwJ,GAA3B,EAAgC;AAC9B,EAAA,IAAIqQ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;IACzC,IAAIvQ,GAAG,KAAK,YAAR,IAAwBA,GAAG,KAAK,WAAhC,IAA+CA,GAAG,KAAK,SAA3D,EAAsE;AACpE,MAAA,MAAM,IAAIiqB,KAAJ,CAAU,sBAAsBjqB,GAAtB,GAA4B,GAAtC,CAAN,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAAS0uJ,UAAT,GAAsB;AACpB;AACA;AACA;AACA;AACA;EACA,IAAIrpJ,KAAK,GAAG,IAAZ,CAAA;AACA,EAAA,IAAInH,EAAE,GAAGmH,KAAK,CAACnH,EAAf,CAAA;;EAEA,IAAI,CAACA,EAAL,EAAS;AACP,IAAA,OAAA;AACD,GAXmB;AAYpB;;;AAGA,EAAA,IAAIyyJ,gBAAgB,GAAGvC,oBAAoB,CAAClwJ,EAAD,CAApB,CAAyBuwJ,UAAhD,CAAA;AACA,EAAA,IAAImC,eAAe,GAAGvrJ,KAAK,CAACopJ,UAA5B,CAhBoB;AAiBpB;AACA;AACA;AACA;AACA;;EAEA,IAAIkC,gBAAgB,KAAKC,eAAzB,EAA0C;AACxC;AACAvrJ,IAAAA,KAAK,CAACnH,EAAN,GAAWmH,KAAK,CAACopJ,UAAN,GAAmB,IAA9B,CAAA;AACA,IAAA,OAAA;AACD,GAAA;;AAED2B,EAAAA,cAAc,CAAClyJ,EAAf,GAAoBA,EAApB,CA7BoB;;AA+BpB0yJ,EAAAA,eAAe,CAACP,mBAAD,CAAf,CA/BoB;AAgCpB;AACD,CAAA;;AAED,SAASjB,iCAAT,CAA2CyB,QAA3C,EAAqDC,MAArD,EAA6DxC,QAA7D,EAAuES,cAAvE,EAAuF;AACrF,EAAA,IAAIgC,OAAO,GAAGzC,QAAQ,CAACuC,QAAD,CAAtB,CAAA;;EAEA,IAAI,CAACE,OAAL,EAAc;AACZ,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIC,aAAa,GAAGF,MAAM,CAACD,QAAD,CAA1B,CAAA;AACA,EAAA,IAAII,oBAAJ,CAAA;;AAEA,EAAA,IAAID,aAAJ,EAAmB;AACjB,IAAA,IAAIf,UAAU,GAAG3B,QAAQ,CAAC2B,UAA1B,CAAA;AACA,IAAA,IAAIiB,cAAc,GAAGH,OAAO,CAACd,UAA7B,CAAA;;AAEA,IAAA,IAAIiB,cAAJ,EAAoB;MAClB,CAACD,oBAAD,KAA0BA,oBAAoB,GAAGlC,cAAc,CAAC8B,QAAD,CAAd,GAA2B,EAA5E,CAAA,CAAA;;AAEA,MAAA,IAAIb,eAAe,CAACkB,cAAD,CAAnB,EAAqC;AACnC1sJ,QAAAA,MAAM,CAACysJ,oBAAD,EAAuBD,aAAvB,CAAN,CAAA;AACD,OAFD,MAEO;AACL,QAAA,IAAIG,cAAc,GAAGvuD,gBAAgB,CAACsuD,cAAD,CAArC,CAAA;;AAEA,QAAA,KAAK,IAAIv0J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw0J,cAAc,CAACl1J,MAAnC,EAA2CU,CAAC,EAA5C,EAAgD;AAC9C,UAAA,IAAIqD,GAAG,GAAGmxJ,cAAc,CAACx0J,CAAD,CAAxB,CAAA;AACA,UAAA,IAAIy0J,KAAK,GAAGJ,aAAa,CAAChxJ,GAAD,CAAzB,CAAA;AACAixJ,UAAAA,oBAAoB,CAACjxJ,GAAD,CAApB,GAA4BoxJ,KAA5B,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAdD,MAcO,IAAIpB,eAAe,CAACC,UAAD,CAAf,IAA+B9pJ,OAAO,CAAC8pJ,UAAD,EAAaY,QAAb,CAAP,IAAiC,CAApE,EAAuE;MAC5E,CAACI,oBAAD,KAA0BA,oBAAoB,GAAGlC,cAAc,CAAC8B,QAAD,CAAd,GAA2B,EAA5E,CAAA,CAAA;AACA,MAAA,IAAIQ,iBAAiB,GAAGjwJ,IAAI,CAAC4vJ,aAAD,CAA5B,CAAA;;AAEA,MAAA,KAAK,IAAIr0J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG00J,iBAAiB,CAACp1J,MAAtC,EAA8CU,CAAC,EAA/C,EAAmD;AACjD,QAAA,IAAIqD,GAAG,GAAGqxJ,iBAAiB,CAAC10J,CAAD,CAA3B,CAAA;AACA,QAAA,IAAIy0J,KAAK,GAAGJ,aAAa,CAAChxJ,GAAD,CAAzB,CAAA;;QAEA,IAAIsxJ,2BAA2B,CAACP,OAAO,CAAC/wJ,GAAD,CAAR,EAAeoxJ,KAAf,CAA/B,EAAsD;AACpDH,UAAAA,oBAAoB,CAACjxJ,GAAD,CAApB,GAA4BoxJ,KAA5B,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAASlC,gCAAT,CAA0C2B,QAA1C,EAAoDvC,QAApD,EAA8DiD,QAA9D,EAAwE;AACtE,EAAA,IAAIR,OAAO,GAAGzC,QAAQ,CAACuC,QAAD,CAAtB,CAAA;;EAEA,IAAI,CAACE,OAAL,EAAc;AACZ,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIS,cAAc,GAAGD,QAAQ,CAACV,QAAD,CAAR,GAAqB,EAA1C,CAAA;AACA,EAAA,IAAIY,UAAU,GAAGrwJ,IAAI,CAAC2vJ,OAAD,CAArB,CAAA;;AAEA,EAAA,KAAK,IAAIp0J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG80J,UAAU,CAACx1J,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;AAC1C,IAAA,IAAIqD,GAAG,GAAGyxJ,UAAU,CAAC90J,CAAD,CAApB,CAD0C;AAE1C;;IAEA60J,cAAc,CAACxxJ,GAAD,CAAd,GAAsB0xJ,UAAU,CAACX,OAAO,CAAC/wJ,GAAD,CAAR,CAAhC,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASmvJ,8BAAT,CAAwCjxJ,EAAxC,EAA4CowJ,QAA5C,EAAsDS,cAAtD,EAAsE;AACpE,EAAA,IAAIkB,UAAU,GAAG3B,QAAQ,CAAC2B,UAA1B,CAAA;AACA,EAAA,IAAIkB,cAAc,GAAGnB,eAAe,CAACC,UAAD,CAAf,GAA8BhC,mBAA9B,GAAoDrrD,gBAAgB,CAACqtD,UAAU,IAAI,EAAf,CAAzF,CAAA;;AAEA,EAAA,KAAK,IAAItzJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw0J,cAAc,CAACl1J,MAAnC,EAA2CU,CAAC,EAA5C,EAAgD;AAC9C,IAAA,IAAIqD,GAAG,GAAGmxJ,cAAc,CAACx0J,CAAD,CAAxB,CAAA;;IAEA,IAAIqD,GAAG,KAAK,OAAR,IAAmBA,GAAG,KAAK,OAA3B,IAAsCA,GAAG,KAAK,OAAlD,EAA2D;AACzD,MAAA,SAAA;AACD,KAAA;;AAED,IAAA,IAAIoxJ,KAAK,GAAGlzJ,EAAE,CAAC8B,GAAD,CAAd,CAAA;;AAEA,IAAA,IAAIqQ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCohJ,MAAAA,uBAAuB,CAAC3xJ,GAAD,EAAM,eAAN,CAAvB,CAAA;AACD,KAX6C;;;AAc9C+uJ,IAAAA,cAAc,CAAC/uJ,GAAD,CAAd,GAAsBoxJ,KAAtB,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASnC,6BAAT,CAAuC/wJ,EAAvC,EAA2CowJ,QAA3C,EAAqDiD,QAArD,EAA+D;AAC7D,EAAA,KAAK,IAAI50J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmxJ,sBAAsB,CAAC7xJ,MAA3C,EAAmDU,CAAC,EAApD,EAAwD;AACtD,IAAA,IAAIi1J,UAAU,GAAG9D,sBAAsB,CAACnxJ,CAAD,CAAvC,CAAA;AACA,IAAA,IAAIk1J,MAAM,GAAGhE,0BAA0B,CAAC+D,UAAD,CAAvC,CAAA;AACA,IAAA,IAAIE,SAAS,GAAGxD,QAAQ,CAACsD,UAAD,CAAxB,CAAA;;AAEA,IAAA,IAAIE,SAAJ,EAAe;MACbP,QAAQ,CAACM,MAAM,CAAC,CAAD,CAAP,CAAR,GAAsBC,SAAS,CAAC,CAAD,CAA/B,CAAA;MACAP,QAAQ,CAACM,MAAM,CAAC,CAAD,CAAP,CAAR,GAAsBC,SAAS,CAAC,CAAD,CAA/B,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,KAAK,IAAIn1J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsxJ,mBAAmB,CAAChyJ,MAAxC,EAAgDU,CAAC,EAAjD,EAAqD;AACnD,IAAA,IAAIqD,GAAG,GAAGiuJ,mBAAmB,CAACtxJ,CAAD,CAA7B,CAAA;;AAEA,IAAA,IAAI2xJ,QAAQ,CAACtuJ,GAAD,CAAR,IAAiB,IAArB,EAA2B;AACzBuxJ,MAAAA,QAAQ,CAACvxJ,GAAD,CAAR,GAAgBsuJ,QAAQ,CAACtuJ,GAAD,CAAxB,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAASqvJ,0BAAT,CAAoCyB,MAApC,EAA4CxC,QAA5C,EAAsDQ,QAAtD,EAAgEC,cAAhE,EAAgF;EAC9E,IAAI,CAACD,QAAL,EAAe;AACb,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIiD,WAAW,GAAGjB,MAAM,CAACvzJ,KAAzB,CAAA;AACA,EAAA,IAAIy0J,mBAAJ,CAAA;;AAEA,EAAA,IAAID,WAAJ,EAAiB;AACf,IAAA,IAAIE,eAAe,GAAGnD,QAAQ,CAACmB,UAA/B,CAAA;AACA,IAAA,IAAIiC,YAAY,GAAG5D,QAAQ,CAAC2B,UAA5B,CAAA;;AAEA,IAAA,IAAIgC,eAAe,IAAI,CAACjC,eAAe,CAACiC,eAAD,CAAvC,EAA0D;AACxD,MAAA,IAAId,cAAc,GAAGvuD,gBAAgB,CAACqvD,eAAD,CAArC,CAAA;MACA,CAACD,mBAAD,KAAyBA,mBAAmB,GAAGjD,cAAc,CAACxxJ,KAAf,GAAuB,EAAtE,CAAA,CAAA;;AAEA,MAAA,KAAK,IAAIZ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw0J,cAAc,CAACl1J,MAAnC,EAA2CU,CAAC,EAA5C,EAAgD;AAC9C,QAAA,IAAIqD,GAAG,GAAGmxJ,cAAc,CAACx0J,CAAD,CAAxB,CAAA;AACA,QAAA,IAAIy0J,KAAK,GAAGW,WAAW,CAAC/xJ,GAAD,CAAvB,CAF8C;;AAI9CgyJ,QAAAA,mBAAmB,CAAChyJ,GAAD,CAAnB,GAA2BoxJ,KAA3B,CAAA;AACD,OAAA;KATH,MAUO,IAAIN,MAAM,CAACqB,sBAAP,KAAkCnC,eAAe,CAACkC,YAAD,CAAf,IAAiClC,eAAe,CAACiC,eAAD,CAAhD,IAAqE9rJ,OAAO,CAAC+rJ,YAAD,EAAe,OAAf,CAAP,IAAkC,CAAzI,CAAJ,EAAiJ;AACtJ,MAAA,IAAIE,cAAc,GAAGtB,MAAM,CAACqB,sBAAP,EAArB,CAAA;MACA,IAAIE,mBAAmB,GAAGD,cAAc,GAAGA,cAAc,CAAC70J,KAAlB,GAA0B,IAAlE,CAAA;;AAEA,MAAA,IAAI80J,mBAAJ,EAAyB;QACvB,CAACL,mBAAD,KAAyBA,mBAAmB,GAAGjD,cAAc,CAACxxJ,KAAf,GAAuB,EAAtE,CAAA,CAAA;AACA,QAAA,IAAI+0J,SAAS,GAAGlxJ,IAAI,CAAC0tJ,QAAD,CAApB,CAAA;;AAEA,QAAA,KAAK,IAAInyJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG21J,SAAS,CAACr2J,MAA9B,EAAsCU,CAAC,EAAvC,EAA2C;AACzC,UAAA,IAAIqD,GAAG,GAAGsyJ,SAAS,CAAC31J,CAAD,CAAnB,CAAA;;AAEA,UAAA,IAAI01J,mBAAmB,CAACryJ,GAAD,CAAvB,EAA8B;AAC5B,YAAA,IAAIoxJ,KAAK,GAAGW,WAAW,CAAC/xJ,GAAD,CAAvB,CAAA;AACAgyJ,YAAAA,mBAAmB,CAAChyJ,GAAD,CAAnB,GAA2BoxJ,KAA3B,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;AACF,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAASE,2BAAT,CAAqCiB,MAArC,EAA6CnB,KAA7C,EAAoD;AAClD;AACA,EAAA,OAAO,CAACoB,WAAW,CAACD,MAAD,CAAZ,GAAuBA,MAAM,IAAI,IAAV,IAAkBryI,QAAQ,CAACqyI,MAAD,CAAjD,GAA4DA,MAAM,KAAKnB,KAA9E,CAAA;AACD,CAAA;;AAED,IAAIO,uBAAJ,CAAA;;AAEA,IAAIthJ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCohJ,EAAAA,uBAAuB,GAAG,SAAA,uBAAA,CAAU3xJ,GAAV,EAAeyyJ,MAAf,EAAuB;AAC/C,IAAA,IAAI,CAACh8E,MAAM,CAACs3E,mBAAD,EAAsB/tJ,GAAtB,CAAX,EAAuC;MACrCuiC,IAAI,CAAC,WAAWviC,GAAX,GAAiB,2BAAjB,GAA+CyyJ,MAA/C,GAAwD,KAAxD,GAAgE,QAAhE,GAA2ErxJ,IAAI,CAAC2sJ,mBAAD,CAAJ,CAA0B9wJ,IAA1B,CAA+B,MAA/B,CAA3E,GAAoH,kBAArH,CAAJ,CAAA;AACD,KAAA;GAHH,CAAA;AAKD;;AC5iBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BA,IAAIy1J,iBAAiB,GAAGpsF,SAAS,EAAjC,CAAA;AACA,IAAIqsF,qBAAqB,GAAG,CAAC,SAAD,EAAY,QAAZ,EAAsB,OAAtB,EAA+B,OAA/B,EAAwC,OAAxC,CAA5B,CAAA;AACA;AACA;AACA;AACA;;AAEO,SAASC,uCAAT,CAAiD10J,EAAjD,EAAqD;AAC1D;AACAA,EAAAA,EAAE,CAAC2wB,aAAH,CAAiB,UAAjB,EAF0D;;AAI1D3wB,EAAAA,EAAE,CAACkwB,IAAH,CAAQskI,iBAAiB,CAACx0J,EAAD,CAAzB,CAAA,CAAA;AACD,CAAA;AACM,SAAS20J,sBAAT,CAAgC30J,EAAhC,EAAoC40J,aAApC,EAAmDlE,eAAnD,EAAoE;EACzE,IAAI,CAACA,eAAe,CAACj7G,kBAAhB,EAAD,IAAyC,CAACm/G,aAA9C,EAA6D;AAC3D,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIx9I,SAAO,CAACw9I,aAAD,CAAX,EAA4B;AAC1BntJ,IAAAA,MAAI,CAACmtJ,aAAD,EAAgB,UAAUC,mBAAV,EAA+B;AACjDF,MAAAA,sBAAsB,CAAC30J,EAAD,EAAK60J,mBAAL,EAA0BnE,eAA1B,CAAtB,CAAA;AACD,KAFG,CAAJ,CAAA;AAGA,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIrmJ,SAAS,GAAGuqJ,aAAa,CAACvqJ,SAA9B,CAAA;AACA,EAAA,IAAIyiC,QAAQ,GAAG8nH,aAAa,CAAC9nH,QAA7B,CAAA;;AAEA,EAAA,IAAI4jH,eAAe,IAAI5jH,QAAQ,IAAI,IAAnC,EAAyC;AACvC;AACA;IACA,IAAIttB,MAAM,GAAG8wI,kBAAkB,CAAC,OAAD,EAAUI,eAAV,EAA2B,CAA3B,CAA/B,CAAA;AACA5jH,IAAAA,QAAQ,GAAGttB,MAAM,IAAIA,MAAM,CAACstB,QAA5B,CAAA;AACD,GAAA;;AAED,EAAA,IAAI,CAACziC,SAAD,IAAc,CAACyiC,QAAnB,EAA6B;AAC3B,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIgoH,cAAc,GAAGN,iBAAiB,CAACx0J,EAAD,CAAtC,CAAA;AACAyH,EAAAA,MAAI,CAACwoJ,wBAAD,EAA2B,UAAU8E,cAAV,EAA0B;AACvD,IAAA,IAAIA,cAAc,IAAI,CAAC/0J,EAAE,CAAC+0J,cAAD,CAAzB,EAA2C;AACzC,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIlsJ,QAAJ,CAAA;AACA,IAAA,IAAImsJ,aAAa,GAAG,KAApB,CANuD;;AAQvD3qJ,IAAAA,SAAS,CAACkyB,IAAV,CAAe,UAAUt+B,CAAV,EAAaC,CAAb,EAAgB;AAC7B,MAAA,OAAOD,CAAC,CAACsF,OAAF,GAAYrF,CAAC,CAACqF,OAArB,CAAA;KADF,CAAA,CAAA;AAGAkE,IAAAA,MAAI,CAAC4C,SAAD,EAAY,UAAUrC,EAAV,EAAc;AAC5B;AACA,MAAA,IAAIQ,SAAS,GAAGxI,EAAE,CAACwI,SAAnB,CAAA;MACA,IAAIysJ,QAAQ,GAAGF,cAAc,GAAG/sJ,EAAE,CAAC+sJ,cAAD,CAAL,GAAwB/sJ,EAArD,CAAA;;AAEA,MAAA,IAAImK,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,QAAA,IAAIrK,EAAE,CAACzE,OAAH,IAAc,CAAlB,EAAqB;AACnByxJ,UAAAA,aAAa,GAAG,IAAhB,CAAA;AACD,SAAA;AACF,OAAA;;MAED,IAAI,CAACC,QAAL,EAAe;AACb,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIC,QAAQ,GAAGhyJ,IAAI,CAAC+xJ,QAAD,CAAnB,CAAA;;MAEA,IAAI,CAACF,cAAL,EAAqB;AACnB;AACAG,QAAAA,QAAQ,GAAGxpJ,MAAM,CAACwpJ,QAAD,EAAW,UAAUpzJ,GAAV,EAAe;AACzC,UAAA,OAAOmG,OAAO,CAACwsJ,qBAAD,EAAwB3yJ,GAAxB,CAAP,GAAsC,CAA7C,CAAA;AACD,SAFgB,CAAjB,CAAA;AAGD,OAAA;;AAED,MAAA,IAAI,CAACozJ,QAAQ,CAACn3J,MAAd,EAAsB;AACpB,QAAA,OAAA;AACD,OAAA;;MAED,IAAI,CAAC8K,QAAL,EAAe;AACbA,QAAAA,QAAQ,GAAG7I,EAAE,CAAC80I,OAAH,CAAWigB,cAAX,EAA2BH,aAAa,CAAC9gD,IAAzC,EAA+C,IAA/C,CAAX,CAAA;QACAjrG,QAAQ,CAAC1B,KAAT,GAAiB,UAAjB,CAAA;AACD,OAAA;;AAED,MAAA,KAAK,IAAI1I,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+J,SAAS,CAACzK,MAA9B,EAAsCU,CAAC,EAAvC,EAA2C;AACzC;AACA,QAAA,IAAI+J,SAAS,CAAC/J,CAAD,CAAT,KAAiBoK,QAAjB,IAA6BL,SAAS,CAAC/J,CAAD,CAAT,CAAakM,UAAb,KAA4B9B,QAAQ,CAAC8B,UAAtE,EAAkF;AAChFnC,UAAAA,SAAS,CAAC/J,CAAD,CAAT,CAAa02J,UAAb,CAAwBD,QAAxB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;;AAEDH,MAAAA,cAAc,KAAKD,cAAc,CAACC,cAAD,CAAd,GAAiCD,cAAc,CAACC,cAAD,CAAd,IAAkC,EAAxE,CAAd,CAAA;MACA,IAAIK,WAAW,GAAGL,cAAc,GAAGD,cAAc,CAACC,cAAD,CAAjB,GAAoCD,cAApE,CAAA;AACArtJ,MAAAA,MAAI,CAACytJ,QAAD,EAAW,UAAUpzJ,GAAV,EAAe;AAC5B;AACAszJ,QAAAA,WAAW,CAACtzJ,GAAD,CAAX,GAAmB,CAAC,CAACizJ,cAAc,GAAG/0J,EAAE,CAAC+0J,cAAD,CAAL,GAAwB/0J,EAAvC,KAA8C,EAA/C,EAAmD8B,GAAnD,CAAnB,CAAA;AACD,OAHG,CAAJ,CAAA;AAIA+G,MAAAA,QAAQ,CAACwsJ,YAAT,CAAsBvoH,QAAQ,GAAG9kC,EAAE,CAACzE,OAApC,EAA6C0xJ,QAA7C,EAAuDC,QAAvD,EAAiEltJ,EAAE,CAACI,MAApE,CAAA,CAAA;AACD,KA/CG,CAAJ,CAAA;;IAiDA,IAAI,CAACS,QAAL,EAAe;AACb,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIsJ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC,IAAI,CAAC2iJ,aAAL,EAAoB;AAClB3wH,QAAAA,IAAI,CAAC,gEAAD,EAAmE,IAAnE,CAAJ,CAAA;AACD,OAAA;AACF,KAAA;;AAEDx7B,IAAAA,QAAQ,CAACI,KAAT,CAAe2rJ,aAAa,CAAC3rJ,KAAd,IAAuB,CAAtC,CAAyC6jC,CAAAA,QAAzC,CAAkDA,QAAlD,CAAA,CAA4DpkB,KAA5D,CAAkEksI,aAAa,CAACxsJ,MAAhF,CAAA,CAAA;AACD,GAvEG,CAAJ,CAAA;AAwED;;AC/JD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+CA,IAAIktJ,QAAQ,GAAG,UAAf,CAAA;AACA,IAAIC,MAAM,GAAG,QAAb,CAAA;AACA,IAAIC,IAAI,GAAG,MAAX,CAAA;AACA,IAAIC,MAAM,GAAG,QAAb,CAAA;AACA,IAAIC,MAAM,GAAG,CAACH,MAAD,EAASD,QAAT,EAAmBE,IAAnB,EAAyBC,MAAzB,CAAb,CAAA;AACA,IAAIE,eAAe,GAAG;EACpBrtH,MAAM,EAAE,CAAC,WAAD,CADY;AAEpBra,EAAAA,QAAQ,EAAE,CAACqnI,QAAD,EAAW,WAAX,CAFU;AAGpB1L,EAAAA,IAAI,EAAE,CAAC4L,IAAD,EAAO,WAAP,CAHc;AAIpBnjH,EAAAA,MAAM,EAAE,CAACojH,MAAD,EAAS,WAAT,CAAA;AAJY,CAAtB,CAAA;AAMA,IAAIG,UAAU,GAAG;EACfttH,MAAM,EAAE,CAAC,OAAD,CADO;AAEfra,EAAAA,QAAQ,EAAE,CAACqnI,QAAD,EAAW,OAAX,CAFK;AAGf1L,EAAAA,IAAI,EAAE,CAAC4L,IAAD,EAAO,OAAP,CAHS;AAIfnjH,EAAAA,MAAM,EAAE,CAACojH,MAAD,EAAS,OAAT,CAAA;AAJO,CAAjB,CAAA;AAMA,IAAII,kBAAkB,GAAG,CAAC,GAAD,EAAM,GAAN,CAAzB;AACA;;AAEA,IAAIC,iBAAiB,GAAG,OAAxB,CAAA;AACA,IAAIC,iBAAiB,GAAG;AACtBztH,EAAAA,MAAM,EAAE,EADc;AAEtBra,EAAAA,QAAQ,EAAE,EAFY;AAGtB27H,EAAAA,IAAI,EAAE,EAHgB;AAItBv3G,EAAAA,MAAM,EAAE,EAAA;AAJc,CAAxB,CAAA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI2jH,cAAc,GAAG;AACnB57G,EAAAA,WAAW,EAAE67G,sBADM;AAEnBryE,EAAAA,GAAG,EAAEsyE,gBAFc;AAGnBjQ,EAAAA,MAAM,EAAEkQ,mBAHW;AAInB/0H,EAAAA,KAAK,EAAEg1H,kBAJY;AAKnBC,EAAAA,QAAQ,EAAEC,qBAAAA;AALS,CAArB,CAAA;;AAQA,SAASC,MAAT,CAAgBv2J,EAAhB,EAAoB;AAClB,EAAA,OAAOA,EAAE,YAAYwjI,IAArB,CAAA;AACD,CAAA;;AAED,SAASgzB,aAAT,CAAuBx2J,EAAvB,EAA2B;EACzB,OAAOA,EAAE,YAAYonF,WAArB,CAAA;AACD,CAAA;;AAED,SAASqvE,WAAT,CAAqBC,QAArB,EAA+BC,QAA/B,EAAyC;EACvCA,QAAQ,CAAC/rJ,aAAT,CAAuB8rJ,QAAvB,CAAA,CAAA;;EAEA,IAAIF,aAAa,CAACG,QAAD,CAAb,IAA2BH,aAAa,CAACE,QAAD,CAA5C,EAAwD;AACtDC,IAAAA,QAAQ,CAAC/pI,QAAT,CAAkB8pI,QAAQ,CAACr3J,KAA3B,CAAA,CAAA;AACAs3J,IAAAA,QAAQ,CAAC1vI,CAAT,GAAayvI,QAAQ,CAACzvI,CAAtB,CAAA;AACA0vI,IAAAA,QAAQ,CAACxmI,EAAT,GAAcumI,QAAQ,CAACvmI,EAAvB,CAAA;AACAwmI,IAAAA,QAAQ,CAACj3I,MAAT,GAAkBg3I,QAAQ,CAACh3I,MAA3B,CAAA;AACAi3I,IAAAA,QAAQ,CAAC/5I,SAAT,GAAqB85I,QAAQ,CAAC95I,SAA9B,CAAA;AACA+5I,IAAAA,QAAQ,CAACt/G,MAAT,GAAkBq/G,QAAQ,CAACr/G,MAA3B,CAAA;;IAEA,IAAIk/G,MAAM,CAACI,QAAD,CAAN,IAAoBJ,MAAM,CAACG,QAAD,CAA9B,EAA0C;AACxCC,MAAAA,QAAQ,CAACnsH,QAAT,CAAkBksH,QAAQ,CAACrwJ,KAA3B,CAAA,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,IAAIuwJ,eAAe;AACnB;AACA,UAAU33I,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC03I,eAAD,EAAkB33I,MAAlB,CAAT,CAAA;;AAEA,EAAA,SAAS23I,eAAT,GAA2B;AACzB,IAAA,IAAIz3I,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa8oJ,eAAe,CAAC9oJ,IAA7B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDy3I,EAAAA,eAAe,CAAC77J,SAAhB,CAA0B8tC,MAA1B,GAAmC,UAAUguH,YAAV,EAAwB/tH,OAAxB,EAAiCxxB,GAAjC,EAAsCu0B,OAAtC,EAA+C;AAChF;IACA,IAAKxV,CAAAA,eAAL,GAAuB,IAAvB,CAAA;IACA,IAAIC,OAAO,GAAG,IAAA,CAAKC,KAAnB,CAAA;AACA,IAAA,IAAItH,IAAI,GAAG4nI,YAAY,CAAC/pI,OAAb,EAAX,CAAA;IACA,IAAIV,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACA,IAAI0qI,UAAU,GAAGC,cAAc,CAACF,YAAD,EAAe5nI,IAAf,EAAqB6Z,OAArB,EAA8BxxB,GAA9B,CAA/B,CAAA;;IAEA,IAAI,CAACgf,OAAL,EAAc;AACZ;AACA;AACAlK,MAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;AACD,KAAA;;IAEDf,IAAI,CAAC0H,IAAL,CAAUL,OAAV,EAAmB3J,GAAnB,CAAuB,UAAUiK,MAAV,EAAkB;AACvCogI,MAAAA,kBAAkB,CAAC1/I,GAAD,EAAM,IAAN,EAAYsf,MAAZ,EAAoBkgI,UAAU,CAAClgI,MAAD,EAASiV,OAAT,CAA9B,EAAiDgrH,YAAjD,EAA+DzqI,KAA/D,EAAsE6C,IAAtE,CAAlB,CAAA;AACD,KAFD,CAEGkI,CAAAA,MAFH,CAEU,UAAUF,MAAV,EAAkB;AAC1B,MAAA,IAAIj3B,EAAE,GAAGs2B,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAT,CAAA;MACA26H,oBAAoB,CAAC5xJ,EAAD,EAAKirJ,gBAAgB,CAACjrJ,EAAD,CAAhB,CAAqB4rB,MAA1B,EAAkCirI,YAAlC,CAApB,CAAA;AACD,KALD,EAKG7/H,MALH,CAKU,UAAUJ,MAAV,EAAkBK,MAAlB,EAA0B;AAClC,MAAA,IAAIggI,KAAK,GAAG3gI,OAAO,CAACY,gBAAR,CAAyBD,MAAzB,CAAZ,CAAA;AACA+/H,MAAAA,kBAAkB,CAAC1/I,GAAD,EAAM2/I,KAAN,EAAargI,MAAb,EAAqBkgI,UAAU,CAAClgI,MAAD,EAASiV,OAAT,CAA/B,EAAkDgrH,YAAlD,EAAgEzqI,KAAhE,EAAuE6C,IAAvE,CAAlB,CAAA;KAPF,CAAA,CAQGqI,OARH,EAAA,CAdgF;;IAwBhF,IAAI1iB,QAAQ,GAAGiiJ,YAAY,CAAC3jI,GAAb,CAAiB,MAAjB,EAAyB,IAAzB,CAAA,GAAiCsO,cAAc,CAACq1H,YAAY,CAAC/qI,gBAAd,EAAgC,KAAhC,EAAuC+qI,YAAvC,CAA/C,GAAsG,IAArH,CAAA;;AAEA,IAAA,IAAIjiJ,QAAJ,EAAc;MACZwX,KAAK,CAACzX,WAAN,CAAkBC,QAAlB,CAAA,CAAA;AACD,KAFD,MAEO;AACLwX,MAAAA,KAAK,CAAC0pB,cAAN,EAAA,CAAA;AACD,KAAA;;IAED,IAAKvf,CAAAA,KAAL,GAAatH,IAAb,CAAA;GAhCF,CAAA;;EAmCA2nI,eAAe,CAAC77J,SAAhB,CAA0Bk6C,wBAA1B,GAAqD,UAAU4hH,YAAV,EAAwB/tH,OAAxB,EAAiCxxB,GAAjC,EAAsC;IACzF,IAAK8U,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;IACA,IAAKuG,CAAAA,KAAL,GAAa,IAAb,CAAA;GAFF,CAAA;;AAKAqgI,EAAAA,eAAe,CAAC77J,SAAhB,CAA0Bq6C,iBAA1B,GAA8C,UAAUnG,MAAV,EAAkB4nH,YAAlB,EAAgC/tH,OAAhC,EAAyCxxB,GAAzC,EAA8Cu0B,OAA9C,EAAuD;AACnG,IAAA,IAAI5c,IAAI,GAAG4nI,YAAY,CAAC/pI,OAAb,EAAX,CAAA;IACA,IAAIgqI,UAAU,GAAGC,cAAc,CAACF,YAAD,EAAe5nI,IAAf,EAAqB6Z,OAArB,EAA8BxxB,GAA9B,CAA/B,CAAA;AACA,IAAA,IAAImmC,cAAc,GAAG,IAAKpnB,CAAAA,eAAL,GAAuB,EAA5C,CAAA;;IAEA,SAAS6gI,2BAAT,CAAqCl3J,EAArC,EAAyC;AACvC,MAAA,IAAI,CAACA,EAAE,CAACg4B,OAAR,EAAiB;QACfh4B,EAAE,CAACyf,WAAH,GAAiB,IAAjB,CAAA;AACAzf,QAAAA,EAAE,CAAC40B,WAAH,CAAe,UAAf,CAA2BxN,CAAAA,UAA3B,GAAwC,IAAxC,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,KAAK,IAAIqD,GAAG,GAAGwkB,MAAM,CAACvmB,KAAtB,EAA6B+B,GAAG,GAAGwkB,MAAM,CAAChX,GAA1C,EAA+CxN,GAAG,EAAlD,EAAsD;MACpD,IAAIzqB,EAAE,GAAGg3J,kBAAkB,CAAC,IAAD,EAAO,IAAP,EAAavsI,GAAb,EAAkBqsI,UAAU,CAACrsI,GAAD,EAAMohB,OAAN,CAA5B,EAA4CgrH,YAA5C,EAA0D,IAAKzqI,CAAAA,KAA/D,EAAsE6C,IAAtE,CAA3B,CAAA;;AAEA,MAAA,IAAIjvB,EAAJ,EAAQ;QACNA,EAAE,CAACk4B,QAAH,CAAYg/H,2BAAZ,CAAA,CAAA;QACAz5G,cAAc,CAAC3+C,IAAf,CAAoBkB,EAApB,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GAnBH,CAAA;;AAsBA42J,EAAAA,eAAe,CAAC77J,SAAhB,CAA0Bo9B,YAA1B,GAAyC,UAAU/N,EAAV,EAAc;IACrDo5G,gBAAA,CAA6B,IAAA,CAAKntG,eAAL,IAAwB,IAAA,CAAKjK,KAA1D,EAAiEhC,EAAjE,CAAA,CAAA;GADF,CAAA;;AAIAwsI,EAAAA,eAAe,CAAC77J,SAAhB,CAA0Bo8J,qBAA1B,GAAkD,UAAUC,SAAV,EAAqBx4G,KAArB,EAA4B+3G,QAA5B,EAAsCU,WAAtC,EAAmD;AACnG,IAAA,IAAIC,WAAW,GAAG14G,KAAK,CAACgvD,OAAxB,CAAA;;IAEA,IAAI0pD,WAAW,IAAI,IAAf,IAAuBX,QAAQ,CAACl1J,IAAT,KAAkB61J,WAA7C,EAA0D;AACxD,MAAA,OAAO,IAAP,CAAA;AACD,KALkG;AAMnG;;;AAGA,IAAA,OAAO,CAACX,QAAQ,GAAGA,QAAQ,CAAC1wG,YAAT,IAAyB0wG,QAAQ,CAAClhI,MAA9C,KAAyDkhI,QAAQ,KAAK,IAAA,CAAKvqI,KAAlF,EAAyF;AACvF,MAAA,IAAIuqI,QAAQ,CAACl1J,IAAT,KAAkB61J,WAAtB,EAAmC;AACjC,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAO,KAAP,CAAA;GAfF,CAAA;;EAkBAV,eAAe,CAAC9oJ,IAAhB,GAAuB,QAAvB,CAAA;AACA,EAAA,OAAO8oJ,eAAP,CAAA;AACD,CAhGD,CAgGE3qH,SAhGF,CAFA,CAAA;;AAsGA,SAASsrH,UAAT,CAAkBnH,QAAlB,EAA4B;AAC1B,EAAA,IAAIoH,WAAW,GAAGpH,QAAQ,CAACtiJ,IAA3B,CAAA;EACA,IAAI9N,EAAJ,CAF0B;AAG1B;;EAEA,IAAIw3J,WAAW,KAAK,MAApB,EAA4B;AAC1B,IAAA,IAAInxJ,KAAK,GAAG+pJ,QAAQ,CAAC/pJ,KAArB,CAD0B;;AAG1B,IAAA,IAAIoxJ,QAAQ,GAAGpxJ,KAAK,CAAC7B,KAAN,IAAe,IAAf,IAAuB6B,KAAK,CAAC5B,MAAN,IAAgB,IAAvC,GAA8C;AAC3DjJ,MAAAA,CAAC,EAAE6K,KAAK,CAAC7K,CAAN,IAAW,CAD6C;AAE3DC,MAAAA,CAAC,EAAE4K,KAAK,CAAC5K,CAAN,IAAW,CAF6C;MAG3D+I,KAAK,EAAE6B,KAAK,CAAC7B,KAH8C;MAI3DC,MAAM,EAAE4B,KAAK,CAAC5B,MAAAA;AAJ6C,KAA9C,GAKX,IALJ,CAAA;AAMA,IAAA,IAAIizJ,QAAQ,GAAGC,WAAW,CAACtxJ,KAAD,CAA1B,CAT0B;;AAW1BrG,IAAAA,EAAE,GAAGwjI,QAAA,CAAqBk0B,QAArB,EAA+B,IAA/B,EAAqCD,QAArC,EAA+CpxJ,KAAK,CAACswC,MAAN,IAAgB,QAA/D,CAAL,CAAA;AACAs0G,IAAAA,gBAAgB,CAACjrJ,EAAD,CAAhB,CAAqB43J,cAArB,GAAsCF,QAAtC,CAAA;AACD,GAbD,MAaO,IAAIF,WAAW,KAAK,OAApB,EAA6B;AAClCx3J,IAAAA,EAAE,GAAG,IAAIwjI,OAAJ,CAAsB,EAAtB,CAAL,CAAA;IACAynB,gBAAgB,CAACjrJ,EAAD,CAAhB,CAAqB63J,eAArB,GAAuCzH,QAAQ,CAAC/wJ,KAAT,CAAeyP,KAAtD,CAAA;AACD,GAHM,MAGA,IAAI0oJ,WAAW,KAAK,MAApB,EAA4B;IACjCx3J,EAAE,GAAG,IAAIwjI,MAAJ,CAAqB,EAArB,CAAL,CADiC;AAElC,GAFM,MAEA,IAAIg0B,WAAW,KAAK,OAApB,EAA6B;AAClCx3J,IAAAA,EAAE,GAAG,IAAIwjI,OAAJ,EAAL,CAAA;AACD,GAFM,MAEA,IAAIg0B,WAAW,KAAK,cAApB,EAAoC;AACzC,IAAA,MAAM,IAAIzrI,KAAJ,CAAU,sCAAV,CAAN,CAAA;AACD,GAFM,MAEA;AACL,IAAA,IAAI+rI,GAAG,GAAGt0B,aAAA,CAA0Bg0B,WAA1B,CAAV,CAAA;;IAEA,IAAI,CAACM,GAAL,EAAU;MACR,IAAIrkJ,MAAM,GAAG,EAAb,CAAA;;AAEA,MAAA,IAAItB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCoB,QAAAA,MAAM,GAAG,gBAAA,GAAmB+jJ,WAAnB,GAAiC,qBAA1C,CAAA;AACD,OAAA;;MAEDpnB,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,KAAA;;IAEDzT,EAAE,GAAG,IAAI83J,GAAJ,EAAL,CAAA;AACD,GAAA;;AAED7M,EAAAA,gBAAgB,CAACjrJ,EAAD,CAAhB,CAAqB+3J,iBAArB,GAAyCP,WAAzC,CAAA;AACAx3J,EAAAA,EAAE,CAACyB,IAAH,GAAU2uJ,QAAQ,CAAC3uJ,IAAnB,CA5C0B;AA6C1B;AACA;;EAEAzB,EAAE,CAACqnF,cAAH,GAAoB,CAApB,CAAA;EACArnF,EAAE,CAACg4J,YAAH,GAAkB,CAAlB,CAAA;AACA,EAAA,OAAOh4J,EAAP,CAAA;AACD,CAAA;;AAED,SAASi4J,cAAT;AACA3gJ,GADA,EACKtX,EADL,EACSkvB,SADT,EACoBkhI,QADpB,EAC8B8H,cAD9B,EAC8CzmI,WAD9C,EAC2DG,MAD3D,EACmE;AACjE;EACA8iI,uCAAuC,CAAC10J,EAAD,CAAvC,CAAA;EACA,IAAIm4J,QAAQ,GAAGD,cAAc,IAAIA,cAAc,CAAC5vH,MAAf,CAAsBl/B,GAAvD,CAAA;;AAEA,EAAA,IAAI+uJ,QAAJ,EAAc;AACZ;AACA;IACAn4J,EAAE,CAAC+zC,aAAH,CAAiBokH,QAAjB,CAAA,CAAA;AACD,GATgE;;;AAYjE,EAAA,IAAI/H,QAAQ,IAAIA,QAAQ,CAAC2B,UAAT,IAAuB,IAAvC,EAA6C;IAC3C3B,QAAQ,CAAC2B,UAAT,GAAsB8D,kBAAtB,CAAA;AACD,GAdgE;;;AAiBjE,EAAA,IAAIjF,QAAQ,GAAGR,QAAQ,IAAIA,QAAQ,CAAC/wJ,KAApC,CAAA;;AAEA,EAAA,IAAIuxJ,QAAJ,EAAc;AACZ,IAAA,IAAI5wJ,EAAE,CAAC8N,IAAH,KAAY,MAAhB,EAAwB;AACtB,MAAA,IAAIsqJ,eAAe,GAAGxH,QAAtB,CADsB;;AAGtBr4E,MAAAA,MAAM,CAAC6/E,eAAD,EAAkB,UAAlB,CAAN,KAAwCA,eAAe,CAAC94J,IAAhB,GAAuB84J,eAAe,CAAC7K,QAA/E,CAAA,CAAA;AACAh1E,MAAAA,MAAM,CAAC6/E,eAAD,EAAkB,YAAlB,CAAN,KAA0CA,eAAe,CAAC54J,MAAhB,GAAyB44J,eAAe,CAAC5K,UAAnF,CAAA,CAAA;AACD,KAAA;;IAED,IAAI6K,YAAY,GAAG,KAAK,CAAxB,CAAA;IACA,IAAIC,QAAQ,GAAG/B,MAAM,CAACv2J,EAAD,CAAN,GAAa4wJ,QAAQ,CAACh9H,KAAtB,GAA8B,IAA7C,CAAA;;IAEA,IAAItc,GAAG,IAAIghJ,QAAX,EAAqB;MACnBA,QAAQ,CAAC1zI,KAAT,GAAiB,IAAjB,CAAA;AACAyzI,MAAAA,YAAY,GAAGvvE,8BAA8B,CAACwvE,QAAD,EAAWhhJ,GAAX,CAA7C,CAAA;AACD,KAdW;;;IAiBZs5I,QAAQ,CAAC2H,cAAT,GAA0BF,YAA1B,CAAA;AACD,GAAA;;AAED,EAAA,IAAI7B,aAAa,CAACx2J,EAAD,CAAjB,EAAuB;AACrB,IAAA,IAAI4wJ,QAAJ,EAAc;AACZ,MAAA,IAAIyH,YAAY,GAAGzH,QAAQ,CAAC2H,cAA5B,CAAA;;AAEA,MAAA,IAAIF,YAAJ,EAAkB;QAChBzH,QAAQ,CAACh9H,KAAT,GAAiBykI,YAAjB,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;AAED5H,EAAAA,qBAAqB,CAACzwJ,EAAD,EAAKowJ,QAAL,EAAe3+H,WAAf,EAA4B;AAC/CvC,IAAAA,SAAS,EAAEA,SADoC;AAE/C0C,IAAAA,MAAM,EAAEA,MAFuC;AAG/C++H,IAAAA,UAAU,EAAE,IAAA;AAHmC,GAA5B,CAArB,CAAA;EAKAgE,sBAAsB,CAAC30J,EAAD,EAAKowJ,QAAQ,CAACoI,iBAAd,EAAiC/mI,WAAjC,CAAtB,CAAA;AACD,CAAA;;AAED,SAASgnI,eAAT,CAAyBx7G,KAAzB,EAAgCj9C,EAAhC,EAAoC04J,UAApC,EAAgD9H,QAAhD,EAA0DsH,cAA1D,EAA0E;EACxE,IAAIS,aAAa,GAAG34J,EAAE,CAACg4B,OAAH,GAAa,IAAb,GAAoBh4B,EAAxC,CAAA;EACA,IAAIm4J,QAAQ,GAAGD,cAAc,IAAIA,cAAc,CAACj7G,KAAD,CAAd,CAAsB7zC,GAAvD,CAFwE;;AAIxE,EAAA,IAAIuvJ,aAAJ,EAAmB;AACjB;AACA,IAAA,IAAIC,QAAQ,GAAGD,aAAa,CAAC/jI,WAAd,CAA0BqoB,KAA1B,CAAf,CAAA;;IAEA,IAAI2zG,QAAQ,KAAK,KAAjB,EAAwB;AACtB,MAAA,IAAIiI,qBAAqB,GAAGF,aAAa,CAAC9tH,QAAd,CAAuBoS,KAAvB,CAA5B,CAAA;;AAEA,MAAA,IAAI47G,qBAAJ,EAA2B;QACzBA,qBAAqB,CAACx5J,KAAtB,GAA8B,IAA9B,CAAA;AACD,OAAA;AACF,KAND,MAMO;AACL;AACAu5J,MAAAA,QAAQ,CAACv5J,KAAT,GAAiBuxJ,QAAQ,IAAI,IAA7B,CAAA;AACD,KAbgB;AAcjB;AACA;AACA;;;AAGA,IAAA,IAAIuH,QAAJ,EAAc;MACZS,QAAQ,CAACvrH,UAAT,GAAsB8qH,QAAtB,CAAA;AACD,KAAA;;IAEDxwE,oBAAoB,CAACgxE,aAAD,CAApB,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAS36B,OAAT,CAAiBh+H,EAAjB,EAAqBowJ,QAArB,EAA+B3+H,WAA/B,EAA4C;AAC1C;EACA,IAAIzxB,EAAE,CAACg4B,OAAP,EAAgB;AACd,IAAA,OAAA;AACD,GAAA;;EAED,IAAI2gI,aAAa,GAAG34J,EAApB,CAAA;AACA,EAAA,IAAIorJ,QAAQ,GAAG35H,WAAW,CAAC25H,QAA3B,CAAA;AACA,EAAA,IAAID,aAAa,GAAG15H,WAAW,CAAC05H,aAAhC,CAR0C;;EAU1CwN,aAAa,CAAC1xI,CAAd,GAAkBmkI,QAAlB,CAAA;AACAuN,EAAAA,aAAa,CAACj5I,MAAd,GAAuByrI,aAAvB,CAX0C;;AAa1C,EAAA,IAAI2N,KAAK,GAAG1I,QAAQ,CAACjgI,EAArB,CAAA;EACA2oI,KAAK,IAAI,IAAT,KAAkBH,aAAa,CAACxoI,EAAd,GAAmB2oI,KAAK,IAAI,CAA9C,CAAA,CAAA;;AAEA,EAAA,KAAK,IAAIr6J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi3J,MAAM,CAAC33J,MAA3B,EAAmCU,CAAC,EAApC,EAAwC;IACtCs6J,mBAAmB,CAACJ,aAAD,EAAgBvI,QAAhB,EAA0BsF,MAAM,CAACj3J,CAAD,CAAhC,CAAnB,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASs6J,mBAAT,CAA6BJ,aAA7B,EAA4CvI,QAA5C,EAAsDnzG,KAAtD,EAA6D;AAC3D,EAAA,IAAIkrG,QAAQ,GAAGlrG,KAAK,KAAKs4G,MAAzB,CAAA;EACA,IAAImD,UAAU,GAAGvQ,QAAQ,GAAGiI,QAAH,GAAc4I,mBAAmB,CAAC5I,QAAD,EAAWnzG,KAAX,CAA1D,CAAA;EACA,IAAI67G,KAAK,GAAGJ,UAAU,GAAGA,UAAU,CAACvoI,EAAd,GAAmB,IAAzC,CAAA;AACA,EAAA,IAAIyoI,QAAJ,CAAA;;EAEA,IAAIE,KAAK,IAAI,IAAb,EAAmB;AACjB;IACAF,QAAQ,GAAGzQ,QAAQ,GAAGwQ,aAAH,GAAmBA,aAAa,CAAC/jI,WAAd,CAA0BqoB,KAA1B,CAAtC,CAAA;AACA27G,IAAAA,QAAQ,CAACzoI,EAAT,GAAc2oI,KAAK,IAAI,CAAvB,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAS/B,cAAT,CAAwBF,YAAxB,EAAsC5nI,IAAtC,EAA4C6Z,OAA5C,EAAqDxxB,GAArD,EAA0D;AACxD,EAAA,IAAIw/I,UAAU,GAAGD,YAAY,CAAC3jI,GAAb,CAAiB,YAAjB,CAAjB,CAAA;AACA,EAAA,IAAIrH,QAAQ,GAAGgrI,YAAY,CAAC/qI,gBAA5B,CAAA;EACA,IAAImtI,aAAa,GAAG,EAApB,CAAA;;AAEA,EAAA,IAAIptI,QAAJ,EAAc;AACZ,IAAA,IAAI1Z,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCqB,MAAAA,MAAM,CAACojJ,UAAD,EAAa,4BAAb,CAAN,CAAA;AACApjJ,MAAAA,MAAM,CAACmY,QAAQ,CAACmqI,cAAT,IAA2BA,cAAc,CAACnqI,QAAQ,CAAC/d,IAAV,CAA1C,EAA2D,+CAA3D,CAAN,CAAA;AACD,KAJW;;;IAOZmrJ,aAAa,GAAGptI,QAAQ,CAACmqI,cAAT,GAA0BnqI,QAAQ,CAACmqI,cAAT,CAAwBnqI,QAAxB,CAA1B,GAA8DmqI,cAAc,CAACnqI,QAAQ,CAAC/d,IAAV,CAAd,CAA8B+d,QAA9B,CAA9E,CAAA;AACD,GAAA;;EAED,IAAIqtI,OAAO,GAAGp8F,QAAQ,CAAC;IACrBr/C,QAAQ,EAAEnG,GAAG,CAACmG,QADO;IAErBC,SAAS,EAAEpG,GAAG,CAACoG,SAFM;IAGrB46B,KAAK,EAAEhhC,GAAG,CAACghC,KAHU;IAIrBxI,mBAAmB,EAAEx4B,GAAG,CAACw4B,mBAJJ;AAKrB7V,IAAAA,KAAK,EAAEA,KALc;AAMrB56B,IAAAA,KAAK,EAAEA,KANc;AAOrB85J,IAAAA,eAAe,EAAEA,eAPI;AAQrBC,IAAAA,aAAa,EAAEA,aARM;AASrB7oD,IAAAA,MAAM,EAAEA,MATa;AAUrB8oD,IAAAA,SAAS,EAAEA,SAVU;AAWrBC,IAAAA,oBAAoB,EAAEA,oBAXD;AAYrBnqJ,IAAAA,IAAI,EAAEA,IAAAA;AAZe,GAAD,EAanB8pJ,aAAa,CAAC3hJ,GAAd,IAAqB,EAbF,CAAtB,CAAA;AAcA,EAAA,IAAIiiJ,UAAU,GAAG;AACf;AACA;AACA;AACAlvI,IAAAA,OAAO,EAAE,EAJM;IAKfqgE,QAAQ,EAAEmsE,YAAY,CAACjoJ,EALR;IAMf+8B,UAAU,EAAEkrH,YAAY,CAACp1J,IANV;IAOfqpC,WAAW,EAAE+rH,YAAY,CAAC/rH,WAPX;IAQfjf,QAAQ,EAAEotI,aAAa,CAACptI,QART;AASf2tI,IAAAA,gBAAgB,EAAEvqI,IAAI,CAAC0T,KAAL,EATH;AAUf82H,IAAAA,MAAM,EAAEC,aAAa,CAAC7C,YAAY,CAAC/pI,OAAb,EAAD,CAAA;AAVN,GAAjB,CA7BwD;AAyCxD;AACA;AACA;;AAEA,EAAA,IAAI6sI,mBAAJ,CAAA;AACA,EAAA,IAAIC,aAAJ,CAAA;EACA,IAAIC,mBAAmB,GAAG,EAA1B,CAAA;EACA,IAAIC,eAAe,GAAG,EAAtB,CAAA;EACA,IAAIC,qBAAqB,GAAG,EAA5B,CAAA;EACA,IAAIC,iBAAiB,GAAG,EAAxB,CAAA;;AAEA,EAAA,KAAK,IAAIv7J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi3J,MAAM,CAAC33J,MAA3B,EAAmCU,CAAC,EAApC,EAAwC;AACtC,IAAA,IAAI0tE,SAAS,GAAGupF,MAAM,CAACj3J,CAAD,CAAtB,CAAA;AACAs7J,IAAAA,qBAAqB,CAAC5tF,SAAD,CAArB,GAAmC0qF,YAAY,CAAC7jI,QAAb,CAAsB2iI,eAAe,CAACxpF,SAAD,CAArC,CAAnC,CAAA;AACA6tF,IAAAA,iBAAiB,CAAC7tF,SAAD,CAAjB,GAA+B0qF,YAAY,CAAC7jI,QAAb,CAAsB4iI,UAAU,CAACzpF,SAAD,CAAhC,CAA/B,CAAA;AACD,GAAA;;EAED,SAASr5C,YAAT,CAAsBmnI,eAAtB,EAAuC;IACrC,OAAOA,eAAe,KAAKN,mBAApB,GAA0CC,aAAa,KAAKA,aAAa,GAAG3qI,IAAI,CAAC6D,YAAL,CAAkBmnI,eAAlB,CAArB,CAAvD,GAAkHhrI,IAAI,CAAC6D,YAAL,CAAkBmnI,eAAlB,CAAzH,CAAA;AACD,GAAA;;AAED,EAAA,SAASC,iBAAT,CAA2BD,eAA3B,EAA4Ch9G,KAA5C,EAAmD;IACjD,OAAO,CAAChuB,IAAI,CAAC2D,aAAN,GAAsBmnI,qBAAqB,CAAC98G,KAAD,CAA3C,GAAqDg9G,eAAe,KAAKN,mBAApB,GAA0CE,mBAAmB,CAAC58G,KAAD,CAAnB,KAA+B48G,mBAAmB,CAAC58G,KAAD,CAAnB,GAA6BnqB,YAAY,CAACmnI,eAAD,CAAZ,CAA8BjnI,QAA9B,CAAuC2iI,eAAe,CAAC14G,KAAD,CAAtD,CAA5D,CAA1C,GAAwKnqB,YAAY,CAACmnI,eAAD,CAAZ,CAA8BjnI,QAA9B,CAAuC2iI,eAAe,CAAC14G,KAAD,CAAtD,CAApO,CAAA;AACD,GAAA;;AAED,EAAA,SAASk9G,aAAT,CAAuBF,eAAvB,EAAwCh9G,KAAxC,EAA+C;IAC7C,OAAO,CAAChuB,IAAI,CAAC2D,aAAN,GAAsBonI,iBAAiB,CAAC/8G,KAAD,CAAvC,GAAiDg9G,eAAe,KAAKN,mBAApB,GAA0CG,eAAe,CAAC78G,KAAD,CAAf,KAA2B68G,eAAe,CAAC78G,KAAD,CAAf,GAAyBnqB,YAAY,CAACmnI,eAAD,CAAZ,CAA8BjnI,QAA9B,CAAuC4iI,UAAU,CAAC34G,KAAD,CAAjD,CAApD,CAA1C,GAA2JnqB,YAAY,CAACmnI,eAAD,CAAZ,CAA8BjnI,QAA9B,CAAuC4iI,UAAU,CAAC34G,KAAD,CAAjD,CAAnN,CAAA;AACD,GAAA;;AAED,EAAA,OAAO,UAAUg9G,eAAV,EAA2BpuH,OAA3B,EAAoC;AACzC8tH,IAAAA,mBAAmB,GAAGM,eAAtB,CAAA;AACAL,IAAAA,aAAa,GAAG,IAAhB,CAAA;AACAC,IAAAA,mBAAmB,GAAG,EAAtB,CAAA;AACAC,IAAAA,eAAe,GAAG,EAAlB,CAAA;AACA,IAAA,OAAOhD,UAAU,IAAIA,UAAU,CAACh6F,QAAQ,CAAC;AACvCm9F,MAAAA,eAAe,EAAEA,eADsB;AAEvC/qI,MAAAA,SAAS,EAAED,IAAI,CAACkN,WAAL,CAAiB89H,eAAjB,CAF4B;AAGvC;AACAG,MAAAA,UAAU,EAAEvuH,OAAO,GAAGA,OAAO,CAAC/9B,IAAX,GAAkB,IAAA;AAJE,KAAD,EAKrCyrJ,UALqC,CAAT,EAKfL,OALe,CAA/B,CAAA;GALF,CAAA;AAYA;AACF;AACA;AACA;AACA;;AAEE,EAAA,SAASj/H,KAAT,CAAenB,GAAf,EAAoBmhI,eAApB,EAAqC;AACnCA,IAAAA,eAAe,IAAI,IAAnB,KAA4BA,eAAe,GAAGN,mBAA9C,CAAA,CAAA;AACA,IAAA,OAAO1qI,IAAI,CAAC4f,QAAL,EAAgB3b,CAAAA,GAAhB,CAAoBjE,IAAI,CAACS,iBAAL,CAAuBoJ,GAAG,IAAI,CAA9B,CAApB,EAAsDmhI,eAAtD,CAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;AACA;AACA;;;AAGE,EAAA,SAASd,eAAT,CAAyBrgI,GAAzB,EAA8BmhI,eAA9B,EAA+C;AAC7CA,IAAAA,eAAe,IAAI,IAAnB,KAA4BA,eAAe,GAAGN,mBAA9C,CAAA,CAAA;IACA7gI,GAAG,GAAGA,GAAG,IAAI,CAAb,CAAA;AACA,IAAA,IAAIyL,OAAO,GAAGtV,IAAI,CAACuV,gBAAL,CAAsB1L,GAAtB,CAAd,CAAA;;IAEA,IAAI,CAACyL,OAAL,EAAc;AACZ,MAAA,IAAI9U,QAAQ,GAAGR,IAAI,CAACS,iBAAL,CAAuBoJ,GAAvB,CAAf,CAAA;AACA,MAAA,OAAOrJ,QAAQ,IAAI,CAAZ,GAAgBR,IAAI,CAAC4f,QAAL,EAAgB3b,CAAAA,GAAhB,CAAoBzD,QAApB,EAA8BwqI,eAA9B,CAAhB,GAAiE7pJ,SAAxE,CAAA;AACD,KAAA;;IAED,IAAIzR,GAAG,GAAGswB,IAAI,CAACiE,GAAL,CAASqR,OAAO,CAAC9iC,IAAjB,EAAuBw4J,eAAvB,CAAV,CAAA;AACA,IAAA,IAAIhvB,WAAW,GAAG1mG,OAAO,IAAIA,OAAO,CAAC0mG,WAArC,CAAA;IACA,OAAOA,WAAW,GAAGA,WAAW,CAAC5xF,UAAZ,CAAuB16C,GAAvB,CAAH,GAAiCA,GAAnD,CAAA;AACD,GAAA;AACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGE,EAAA,SAASU,KAAT,CAAeg7J,SAAf,EAA0BJ,eAA1B,EAA2C;AACzC,IAAA,IAAI9nJ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCm9I,MAAAA,cAAc,CAAC,WAAD,EAAc,8CAAd,CAAd,CAAA;AACD,KAAA;;AAEDyK,IAAAA,eAAe,IAAI,IAAnB,KAA4BA,eAAe,GAAGN,mBAA9C,CAAA,CAAA;IACA,IAAIt6J,KAAK,GAAG4vB,IAAI,CAACuC,aAAL,CAAmByoI,eAAnB,EAAoC,OAApC,CAAZ,CAAA;AACA,IAAA,IAAIzmI,WAAW,GAAGn0B,KAAK,IAAIA,KAAK,CAACC,IAAjC,CAAA;AACA,IAAA,IAAIY,OAAO,GAAGb,KAAK,IAAIA,KAAK,CAACa,OAA7B,CAAA;IACA,IAAIktB,SAAS,GAAG8sI,iBAAiB,CAACD,eAAD,EAAkB1E,MAAlB,CAAjB,CAA2CtiI,YAA3C,EAAhB,CAAA;AACAO,IAAAA,WAAW,IAAI,IAAf,KAAwBpG,SAAS,CAAC9tB,IAAV,GAAiBk0B,WAAzC,CAAA,CAAA;AACAtzB,IAAAA,OAAO,IAAI,IAAX,KAAoBktB,SAAS,CAACltB,OAAV,GAAoBA,OAAxC,CAAA,CAAA;AACA,IAAA,IAAIisB,GAAG,GAAG;AACRqI,MAAAA,YAAY,EAAEnsB,QAAQ,CAACmrB,WAAD,CAAR,GAAwBA,WAAxB,GAAsC,MAAA;KADtD,CAAA;IAGA,IAAI+wB,UAAU,GAAG41G,aAAa,CAACF,eAAD,EAAkB1E,MAAlB,CAA9B,CAfyC;AAgBzC;AACA;;AAEA,IAAA,IAAI/xF,SAAS,GAAG82F,eAAA,CAAiC/1G,UAAjC,EAA6C,IAA7C,EAAmDp4B,GAAnD,EAAwD,KAAxD,EAA+D,IAA/D,CAAhB,CAAA;AACAq3C,IAAAA,SAAS,CAACvhE,IAAV,GAAiBsiD,UAAU,CAACnxB,UAAX,CAAsB,MAAtB,CAAgClhB,GAAAA,SAAS,CAAC2kJ,YAAY,CAAC9vG,iBAAb,CAA+BkzG,eAA/B,EAAgD1E,MAAhD,CAAD,EAA0DvmI,eAAe,CAACC,IAAD,EAAOgrI,eAAP,CAAzE,CAAzC,GAA6I,IAA9J,CAAA;IACA,IAAI5sH,UAAU,GAAGitH,gBAAA,CAAkC/1G,UAAlC,EAA8Cp4B,GAA9C,EAAmD,KAAnD,CAAjB,CAAA;AACAouI,IAAAA,iBAAiB,CAACF,SAAD,EAAYjtI,SAAZ,CAAjB,CAAA;IACAA,SAAS,GAAGshI,gCAAgC,CAACthI,SAAD,EAAYo2C,SAAZ,EAAuBn2B,UAAvB,CAA5C,CAAA;AACAgtH,IAAAA,SAAS,IAAIG,mBAAmB,CAACptI,SAAD,EAAYitI,SAAZ,CAAhC,CAAA;IACAjtI,SAAS,CAAC8/H,MAAV,GAAmB,IAAnB,CAAA;AACA,IAAA,OAAO9/H,SAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;AACA;AACA;;;AAGE,EAAA,SAASgsI,aAAT,CAAuBiB,SAAvB,EAAkCJ,eAAlC,EAAmD;AACjD,IAAA,IAAI9nJ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCm9I,MAAAA,cAAc,CAAC,mBAAD,EAAsB,8CAAtB,CAAd,CAAA;AACD,KAAA;;AAEDyK,IAAAA,eAAe,IAAI,IAAnB,KAA4BA,eAAe,GAAGN,mBAA9C,CAAA,CAAA;IACA,IAAIvsI,SAAS,GAAG8sI,iBAAiB,CAACD,eAAD,EAAkB3E,QAAlB,CAAjB,CAA6CriI,YAA7C,EAAhB,CAAA;AACA,IAAA,IAAIsxB,UAAU,GAAG41G,aAAa,CAACF,eAAD,EAAkB3E,QAAlB,CAA9B,CAAA;AACA,IAAA,IAAI9xF,SAAS,GAAG82F,eAAA,CAAiC/1G,UAAjC,EAA6C,IAA7C,EAAmD,IAAnD,EAAyD,IAAzD,EAA+D,IAA/D,CAAhB,CAAA;AACAif,IAAAA,SAAS,CAACvhE,IAAV,GAAiBsiD,UAAU,CAACnxB,UAAX,CAAsB,MAAtB,CAAgCg0B,GAAAA,SAAS,CAACyvG,YAAY,CAAC9vG,iBAAb,CAA+BkzG,eAA/B,EAAgD3E,QAAhD,CAAD,EAA4DuB,YAAY,CAAC9vG,iBAAb,CAA+BkzG,eAA/B,EAAgD1E,MAAhD,CAA5D,EAAqHvmI,eAAe,CAACC,IAAD,EAAOgrI,eAAP,CAApI,CAAzC,GAAwM,IAAzN,CAAA;IACA,IAAI5sH,UAAU,GAAGitH,gBAAA,CAAkC/1G,UAAlC,EAA8C,IAA9C,EAAoD,IAApD,CAAjB,CAAA;AACAg2G,IAAAA,iBAAiB,CAACF,SAAD,EAAYjtI,SAAZ,CAAjB,CAAA;IACAA,SAAS,GAAGshI,gCAAgC,CAACthI,SAAD,EAAYo2C,SAAZ,EAAuBn2B,UAAvB,CAA5C,CAAA;AACAgtH,IAAAA,SAAS,IAAIG,mBAAmB,CAACptI,SAAD,EAAYitI,SAAZ,CAAhC,CAAA;IACAjtI,SAAS,CAAC8/H,MAAV,GAAmB,IAAnB,CAAA;AACA,IAAA,OAAO9/H,SAAP,CAAA;AACD,GAAA;;AAED,EAAA,SAASotI,mBAAT,CAA6BptI,SAA7B,EAAwCo3G,KAAxC,EAA+C;AAC7C,IAAA,KAAK,IAAI1iI,GAAT,IAAgB0iI,KAAhB,EAAuB;AACrB,MAAA,IAAIjsD,MAAM,CAACisD,KAAD,EAAQ1iI,GAAR,CAAV,EAAwB;AACtBsrB,QAAAA,SAAS,CAACtrB,GAAD,CAAT,GAAiB0iI,KAAK,CAAC1iI,GAAD,CAAtB,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;AAED,EAAA,SAASy4J,iBAAT,CAA2B/1B,KAA3B,EAAkCp3G,SAAlC,EAA6C;AAC3C;AACA;AACA;AACA,IAAA,IAAIo3G,KAAJ,EAAW;MACTA,KAAK,CAAC+oB,QAAN,KAAmBngI,SAAS,CAACmgI,QAAV,GAAqB/oB,KAAK,CAAC+oB,QAA9C,CAAA,CAAA;MACA/oB,KAAK,CAACrxF,YAAN,KAAuB/lB,SAAS,CAAC+lB,YAAV,GAAyBqxF,KAAK,CAACrxF,YAAtD,CAAA,CAAA;AACD,KAAA;AACF,GAAA;AACD;AACF;AACA;AACA;;;AAGE,EAAA,SAASo9D,MAAT,CAAgB1jF,UAAhB,EAA4BotI,eAA5B,EAA6C;AAC3CA,IAAAA,eAAe,IAAI,IAAnB,KAA4BA,eAAe,GAAGN,mBAA9C,CAAA,CAAA;;AAEA,IAAA,IAAIphF,MAAM,CAACuyE,iBAAD,EAAoBj+H,UAApB,CAAV,EAA2C;MACzC,IAAI4tI,OAAO,GAAGxrI,IAAI,CAACuC,aAAL,CAAmByoI,eAAnB,EAAoC,OAApC,CAAd,CAAA;MACA,OAAOQ,OAAO,GAAGA,OAAO,CAAC3P,iBAAiB,CAACj+H,UAAD,CAAlB,CAAV,GAA4C,IAA1D,CAAA;AACD,KAN0C;AAO3C;;;AAGA,IAAA,IAAI0rD,MAAM,CAACwyE,sBAAD,EAAyBl+H,UAAzB,CAAV,EAAgD;AAC9C,MAAA,OAAOoC,IAAI,CAACuC,aAAL,CAAmByoI,eAAnB,EAAoCptI,UAApC,CAAP,CAAA;AACD,KAAA;AACF,GAAA;AACD;AACF;AACA;AACA;;;EAGE,SAASwsI,SAAT,CAAmBltI,GAAnB,EAAwB;AACtB,IAAA,IAAIN,QAAQ,CAAC/d,IAAT,KAAkB,aAAtB,EAAqC;AACnC,MAAA,IAAIyqB,QAAQ,GAAG1M,QAAQ,CAAC2M,WAAT,EAAf,CAAA;MACA,OAAOkiI,eAAe,CAAC59F,QAAQ,CAAC;AAC9Bp4B,QAAAA,IAAI,EAAEnM,QAAAA;OADuB,EAE5BpM,GAF4B,CAAT,CAAtB,CAAA;AAGD,KAAA;AACF,GAAA;AACD;AACF;AACA;;;AAGE,EAAA,SAASmtI,oBAAT,GAAgC;IAC9B,OAAOxwH,OAAO,CAAC6xH,uBAAR,EAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;AACA;;;EAGE,SAASxrJ,IAAT,CAAcgd,GAAd,EAAmB;AACjB,IAAA,OAAOmuI,OAAA,CAAyBnuI,GAAzB,EAA8B2c,OAA9B,CAAP,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAS4wH,aAAT,CAAuBzqI,IAAvB,EAA6B;EAC3B,IAAI2rI,SAAS,GAAG,EAAhB,CAAA;AACAnzJ,EAAAA,MAAI,CAACwnB,IAAI,CAACoK,UAAN,EAAkB,UAAUoiC,OAAV,EAAmB;AACvC,IAAA,IAAIl3B,OAAO,GAAGtV,IAAI,CAACuV,gBAAL,CAAsBi3B,OAAtB,CAAd,CAAA;;AAEA,IAAA,IAAI,CAACl3B,OAAO,CAACs2H,YAAb,EAA2B;AACzB,MAAA,IAAIvhI,QAAQ,GAAGiL,OAAO,CAACjL,QAAvB,CAAA;AACA,MAAA,IAAI4kH,QAAQ,GAAG0c,SAAS,CAACthI,QAAD,CAAT,GAAsBshI,SAAS,CAACthI,QAAD,CAAT,IAAuB,EAA5D,CAAA;MACA4kH,QAAQ,CAAC35G,OAAO,CAACu2H,aAAT,CAAR,GAAkC7rI,IAAI,CAACS,iBAAL,CAAuB+rC,OAAvB,CAAlC,CAAA;AACD,KAAA;AACF,GARG,CAAJ,CAAA;AASA,EAAA,OAAOm/F,SAAP,CAAA;AACD,CAAA;;AAED,SAAS5D,kBAAT,CAA4B1/I,GAA5B,EAAiCyjJ,QAAjC,EAA2C7rI,SAA3C,EAAsDkhI,QAAtD,EAAgE3+H,WAAhE,EAA6ErF,KAA7E,EAAoF6C,IAApF,EAA0F;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,CAACmhI,QAAL,EAAe;IACbhkI,KAAK,CAAC+K,MAAN,CAAa4jI,QAAb,CAAA,CAAA;AACA,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI/6J,EAAE,GAAGg7J,kBAAkB,CAAC1jJ,GAAD,EAAMyjJ,QAAN,EAAgB7rI,SAAhB,EAA2BkhI,QAA3B,EAAqC3+H,WAArC,EAAkDrF,KAAlD,CAA3B,CAAA;EACApsB,EAAE,IAAIivB,IAAI,CAAC8H,gBAAL,CAAsB7H,SAAtB,EAAiClvB,EAAjC,CAAN,CAAA;AACAA,EAAAA,EAAE,IAAI+0B,mBAAmB,CAAC/0B,EAAD,EAAKowJ,QAAQ,CAAC99H,KAAd,EAAqB89H,QAAQ,CAAC79H,SAA9B,EAAyC69H,QAAQ,CAAC59H,gBAAlD,CAAzB,CAAA;AACA,EAAA,OAAOxyB,EAAP,CAAA;AACD,CAAA;;AAED,SAASg7J,kBAAT,CAA4B1jJ,GAA5B,EAAiCyjJ,QAAjC,EAA2C7rI,SAA3C,EAAsDkhI,QAAtD,EAAgE3+H,WAAhE,EAA6ErF,KAA7E,EAAoF;AAClF,EAAA,IAAIja,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCqB,IAAAA,MAAM,CAAC08I,QAAD,EAAW,mDAAX,CAAN,CAAA;AACD,GAAA;;EAED,IAAI6K,eAAe,GAAG,CAAC,CAAvB,CAAA;EACA,IAAIhE,KAAK,GAAG8D,QAAZ,CAAA;;EAEA,IAAIA,QAAQ,IAAIG,kBAAkB,CAACH,QAAD,EAAW3K,QAAX,EAAqB3+H,WAArB,CAAlC;AACA;AACA;AACA;AACA;AACA;IACE;AACA;IACAwpI,eAAe,GAAGhzJ,OAAO,CAACmkB,KAAK,CAAC+uI,WAAN,EAAD,EAAsBJ,QAAtB,CAAzB,CAAA;AACAA,IAAAA,QAAQ,GAAG,IAAX,CAAA;AACD,GAAA;;EAED,IAAInpI,MAAM,GAAG,CAACmpI,QAAd,CAAA;EACA,IAAI/6J,EAAE,GAAG+6J,QAAT,CAAA;;EAEA,IAAI,CAAC/6J,EAAL,EAAS;AACPA,IAAAA,EAAE,GAAGu3J,UAAQ,CAACnH,QAAD,CAAb,CAAA;;AAEA,IAAA,IAAI6G,KAAJ,EAAW;AACTR,MAAAA,WAAW,CAACQ,KAAD,EAAQj3J,EAAR,CAAX,CAAA;AACD,KAAA;AACF,GAND,MAMO;AACL;AACA;AACA;AACAA,IAAAA,EAAE,CAACo7J,WAAH,EAAA,CAAA;AACD,GAlCiF;;;AAqClF,EAAA,IAAIhL,QAAQ,CAACiL,KAAT,KAAmB,KAAvB,EAA8B;IAC5Br7J,EAAE,CAACmtG,eAAH,GAAqB,IAArB,CAAA;AACD,GAFD,MAEO,IAAIntG,EAAE,CAACmtG,eAAP,EAAwB;IAC7BntG,EAAE,CAACmtG,eAAH,GAAqB,KAArB,CAAA;AACD,GAAA;;EAED4oD,iBAAiB,CAACztH,MAAlB,CAAyBl/B,GAAzB,GAA+B2sJ,iBAAiB,CAACztH,MAAlB,CAAyBgzH,MAAzB,GAAkCvF,iBAAiB,CAAC9nI,QAAlB,CAA2B7kB,GAA3B,GAAiC2sJ,iBAAiB,CAAC9nI,QAAlB,CAA2BqtI,MAA3B,GAAoCvF,iBAAiB,CAACnM,IAAlB,CAAuBxgJ,GAAvB,GAA6B2sJ,iBAAiB,CAACnM,IAAlB,CAAuB0R,MAAvB,GAAgCvF,iBAAiB,CAAC1jH,MAAlB,CAAyBjpC,GAAzB,GAA+B2sJ,iBAAiB,CAAC1jH,MAAlB,CAAyBipH,MAAzB,GAAkC,IAApQ,CAAA;EACAvF,iBAAiB,CAACwF,QAAlB,GAA6B,KAA7B,CAAA;AACAC,EAAAA,0BAA0B,CAACx7J,EAAD,EAAKkvB,SAAL,EAAgBkhI,QAAhB,EAA0B3+H,WAA1B,EAAuCG,MAAvC,EAA+CmkI,iBAA/C,CAA1B,CAAA;EACA0F,wBAAwB,CAACz7J,EAAD,EAAKkvB,SAAL,EAAgBkhI,QAAhB,EAA0B3+H,WAA1B,EAAuCG,MAAvC,CAAxB,CAAA;AACAqmI,EAAAA,cAAc,CAAC3gJ,GAAD,EAAMtX,EAAN,EAAUkvB,SAAV,EAAqBkhI,QAArB,EAA+B2F,iBAA/B,EAAkDtkI,WAAlD,EAA+DG,MAA/D,CAAd,CA/CkF;AAgDlF;AACA;;AAEA2mD,EAAAA,MAAM,CAAC63E,QAAD,EAAW,MAAX,CAAN,KAA6BnF,gBAAgB,CAACjrJ,EAAD,CAAhB,CAAqB04C,IAArB,GAA4B03G,QAAQ,CAAC13G,IAAlE,CAAA,CAAA;;AAEA,EAAA,KAAK,IAAIj6C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi3J,MAAM,CAAC33J,MAA3B,EAAmCU,CAAC,EAApC,EAAwC;AACtC,IAAA,IAAI0tE,SAAS,GAAGupF,MAAM,CAACj3J,CAAD,CAAtB,CAAA;;IAEA,IAAI0tE,SAAS,KAAKopF,MAAlB,EAA0B;AACxB,MAAA,IAAImG,aAAa,GAAG1C,mBAAmB,CAAC5I,QAAD,EAAWjkF,SAAX,CAAvC,CAAA;MACA,IAAIwvF,aAAa,GAAGC,0BAA0B,CAACxL,QAAD,EAAWsL,aAAX,EAA0BvvF,SAA1B,CAA9C,CAAA;MACAssF,eAAe,CAACtsF,SAAD,EAAYnsE,EAAZ,EAAgB07J,aAAhB,EAA+BC,aAA/B,EAA8C5F,iBAA9C,CAAf,CAAA;AACD,KAAA;AACF,GAAA;;AAED/3B,EAAAA,OAAO,CAACh+H,EAAD,EAAKowJ,QAAL,EAAe3+H,WAAf,CAAP,CAAA;;AAEA,EAAA,IAAI2+H,QAAQ,CAACtiJ,IAAT,KAAkB,OAAtB,EAA+B;IAC7B+tJ,aAAa,CAACvkJ,GAAD,EAAMtX,EAAN,EAAUkvB,SAAV,EAAqBkhI,QAArB,EAA+B3+H,WAA/B,CAAb,CAAA;AACD,GAAA;;EAED,IAAIwpI,eAAe,IAAI,CAAvB,EAA0B;AACxB7uI,IAAAA,KAAK,CAAC0vI,SAAN,CAAgB97J,EAAhB,EAAoBi7J,eAApB,CAAA,CAAA;AACD,GAFD,MAEO;IACL7uI,KAAK,CAACO,GAAN,CAAU3sB,EAAV,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,OAAOA,EAAP,CAAA;AACD;;;AAGD,SAASk7J,kBAAT,CAA4Bl7J,EAA5B,EAAgCowJ,QAAhC,EAA0C3+H,WAA1C,EAAuD;AACrD,EAAA,IAAIsqI,OAAO,GAAG9Q,gBAAgB,CAACjrJ,EAAD,CAA9B,CAAA;AACA,EAAA,IAAIg8J,YAAY,GAAG5L,QAAQ,CAACtiJ,IAA5B,CAAA;AACA,EAAA,IAAImuJ,aAAa,GAAG7L,QAAQ,CAAC/pJ,KAA7B,CAAA;AACA,EAAA,IAAI61J,aAAa,GAAG9L,QAAQ,CAAC/wJ,KAA7B,CAAA;EACA;AACE;IACAoyB,WAAW,CAAC0qI,4BAAZ,EAA2C;OACxCH,YAAY,IAAI,IAAhB,IAAwBA,YAAY,KAAKD,OAAO,CAAChE,iBADpD,IACyEiE,YAAY,KAAK,MAAjB,IAA2BI,cAAc,CAACH,aAAD,CAAzC,IAA4DtE,WAAW,CAACsE,aAAD,CAAX,KAA+BF,OAAO,CAACnE,cAD5K,IAC8LoE,YAAY,KAAK,OAAjB,IAA4BzjF,MAAM,CAAC2jF,aAAD,EAAgB,OAAhB,CAAlC,IAA8DA,aAAa,CAACptJ,KAAd,KAAwBitJ,OAAO,CAAClE,eAH9R;AAIE;AACA;AACA;AACA;;AAPF,IAAA;AAUD,CAAA;;AAED,SAAS4D,wBAAT,CAAkCz7J,EAAlC,EAAsCkvB,SAAtC,EAAiDkhI,QAAjD,EAA2D3+H,WAA3D,EAAwEG,MAAxE,EAAgF;AAC9E;AACA;AACA;AACA,EAAA,IAAIyqI,WAAW,GAAGjM,QAAQ,CAACx7I,QAA3B,CAAA;;EAEA,IAAIynJ,WAAW,KAAK,KAApB,EAA2B;AACzB,IAAA,IAAIr8J,EAAE,IAAIA,EAAE,CAACmqC,WAAH,EAAV,EAA4B;AAC1BnqC,MAAAA,EAAE,CAAC81C,cAAH,EAAA,CAAA;AACD,KAAA;GAHH,MAIO,IAAIumH,WAAJ,EAAiB;AACtB,IAAA,IAAIznJ,QAAQ,GAAG5U,EAAE,CAACmqC,WAAH,EAAf,CAAA;;IAEA,IAAIv1B,QAAQ,IAAIsmJ,kBAAkB,CAACtmJ,QAAD,EAAWynJ,WAAX,EAAwB5qI,WAAxB,CAAlC,EAAwE;AACtE7c,MAAAA,QAAQ,GAAG,IAAX,CAAA;AACD,KAAA;;IAED,IAAI,CAACA,QAAL,EAAe;AACbA,MAAAA,QAAQ,GAAG2iJ,UAAQ,CAAC8E,WAAD,CAAnB,CAAA;;AAEA,MAAA,IAAIlqJ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCqB,QAAAA,MAAM,CAAC6iJ,MAAM,CAAC3hJ,QAAD,CAAP,EAAmB,iEAAoEA,GAAAA,QAAQ,CAAC9G,IAA7E,GAAoF,GAAvG,CAAN,CAAA;AACD,OAAA;;MAED9N,EAAE,CAAC2U,WAAH,CAAeC,QAAf,CAAA,CAAA;AACD,KAAA;;AAEDqjJ,IAAAA,cAAc,CAAC,IAAD,EAAOrjJ,QAAP,EAAiBsa,SAAjB,EAA4BmtI,WAA5B,EAAyC,IAAzC,EAA+C5qI,WAA/C,EAA4DG,MAA5D,CAAd,CAAA;AACD,GA5B6E;;AA8B/E,CAAA;;AAED,SAAS4pI,0BAAT,CAAoCx7J,EAApC,EAAwCkvB,SAAxC,EAAmDkhI,QAAnD,EAA6D3+H,WAA7D,EAA0EG,MAA1E,EAAkFsmI,cAAlF,EAAkG;AAChG;EACA,IAAIl4J,EAAE,CAACg4B,OAAP,EAAgB;AACd,IAAA,OAAA;AACD,GAJ+F;;;AAOhGskI,EAAAA,aAAa,CAAClM,QAAD,EAAW,IAAX,EAAiB8H,cAAjB,CAAb,CAAA;EACAoE,aAAa,CAAClM,QAAD,EAAWkF,QAAX,EAAqB4C,cAArB,CAAb,CARgG;AAShG;AACA;AACA;AACA;AACA;;AAEA,EAAA,IAAIqE,cAAc,GAAGrE,cAAc,CAAC5vH,MAAf,CAAsBgzH,MAA3C,CAAA;AACA,EAAA,IAAIkB,gBAAgB,GAAGtE,cAAc,CAACjqI,QAAf,CAAwBqtI,MAA/C,CAAA;AACA,EAAA,IAAImB,YAAY,GAAGvE,cAAc,CAACtO,IAAf,CAAoB0R,MAAvC,CAAA;AACA,EAAA,IAAIoB,cAAc,GAAGxE,cAAc,CAAC7lH,MAAf,CAAsBipH,MAA3C,CAAA;;AAEA,EAAA,IAAIiB,cAAc,IAAI,IAAlB,IAA0BC,gBAAgB,IAAI,IAA9C,IAAsDE,cAAc,IAAI,IAAxE,IAAgFD,YAAY,IAAI,IAApG,EAA0G;AACxG,IAAA,IAAI9mJ,WAAW,GAAG3V,EAAE,CAAC4V,cAAH,EAAlB,CAAA;;IAEA,IAAI2mJ,cAAc,KAAK,KAAvB,EAA8B;AAC5B5mJ,MAAAA,WAAW,IAAI3V,EAAE,CAACq1B,iBAAH,EAAf,CAAA;AACD,KAFD,MAEO;MACLknI,cAAc,GAAGrE,cAAc,CAAC5vH,MAAf,CAAsBgzH,MAAtB,GAA+BiB,cAAc,IAAI;AAChEzuJ,QAAAA,IAAI,EAAE,MAAA;OADR,CAAA;;MAIA,IAAI,CAAC6H,WAAL,EAAkB;AAChBA,QAAAA,WAAW,GAAG4hJ,UAAQ,CAACgF,cAAD,CAAtB,CAAA;QACAv8J,EAAE,CAAC0V,cAAH,CAAkBC,WAAlB,CAAA,CAAA;AACD,OAHD,MAGO;AACL;AACA;AACAA,QAAAA,WAAW,CAACylJ,WAAZ,EAAA,CAAA;AACD,OAAA;;AAEDnD,MAAAA,cAAc,CAAC,IAAD,EAAOtiJ,WAAP,EAAoBuZ,SAApB,EAA+BqtI,cAA/B,EAA+C,IAA/C,EAAqD9qI,WAArD,EAAkEG,MAAlE,CAAd,CAAA;AACA,MAAA,IAAI+qI,iBAAiB,GAAGJ,cAAc,IAAIA,cAAc,CAACl9J,KAAzD,CAAA;;AAEA,MAAA,KAAK,IAAIZ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi3J,MAAM,CAAC33J,MAA3B,EAAmCU,CAAC,EAApC,EAAwC;AACtC,QAAA,IAAI0tE,SAAS,GAAGupF,MAAM,CAACj3J,CAAD,CAAtB,CAAA;;QAEA,IAAI0tE,SAAS,KAAKopF,MAAlB,EAA0B;AACxB,UAAA,IAAIqH,kBAAkB,GAAG1E,cAAc,CAAC/rF,SAAD,CAAd,CAA0BmvF,MAAnD,CAAA;AACA7C,UAAAA,eAAe,CAACtsF,SAAD,EAAYx2D,WAAZ,EAAyBinJ,kBAAzB,EAA6ChB,0BAA0B,CAACW,cAAD,EAAiBK,kBAAjB,EAAqCzwF,SAArC,CAAvE,EAAwH,IAAxH,CAAf,CAAA;AACD,SAAA;AACF,OAAA;;MAEDwwF,iBAAiB,GAAGhnJ,WAAW,CAACiP,KAAZ,EAAH,GAAyBjP,WAAW,CAAC+hB,UAAZ,EAA1C,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAAS4kI,aAAT,CAAuBlM,QAAvB,EAAiCnzG,KAAjC,EAAwCi7G,cAAxC,EAAwD;AACtD,EAAA,IAAI2E,QAAQ,GAAG,CAAC5/G,KAAD,GAASmzG,QAAT,GAAoB4I,mBAAmB,CAAC5I,QAAD,EAAWnzG,KAAX,CAAtD,CAAA;AACA,EAAA,IAAI2zG,QAAQ,GAAG,CAAC3zG,KAAD,GAASmzG,QAAQ,CAAC/wJ,KAAlB,GAA0Bu8J,0BAA0B,CAACxL,QAAD,EAAWyM,QAAX,EAAqBvH,QAArB,CAAnE,CAAA;AACA,EAAA,IAAIvI,MAAM,GAAGqD,QAAQ,CAACtiJ,IAAtB,CAAA;EACA,IAAI+gJ,KAAK,GAAGgO,QAAQ,GAAGA,QAAQ,CAACxvH,UAAZ,GAAyB,IAA7C,CAAA;AACA,EAAA,IAAIkvH,cAAc,GAAGnM,QAAQ,CAACz6I,WAA9B,CAAA;AACA,EAAA,IAAImnJ,QAAQ,GAAG,CAACP,cAAD,GAAkB,IAAlB,GAAyB,CAACt/G,KAAD,GAASs/G,cAAT,GAA0BvD,mBAAmB,CAACuD,cAAD,EAAiBt/G,KAAjB,CAArF,CAAA;;AAEA,EAAA,IAAI2zG,QAAQ;AACZ;AACAsH,EAAAA,cAAc,CAACqD,QAAf,IAA2BzO,oBAAoB,CAAC8D,QAAD,EAAW7D,MAAX,EAAmB,CAAC,CAAC8B,KAArB,EAA4B,CAAC,CAACiO,QAA9B,CAFnC,CAAZ,EAEyF;IACvF5E,cAAc,CAACqD,QAAf,GAA0B,IAA1B,CAAA;AACA,IAAA,IAAIwB,aAAa,GAAG5P,6BAA6B,CAACyD,QAAD,EAAW7D,MAAX,EAAmB,CAAC9vG,KAApB,CAAjD,CAFuF;AAGvF;AACA;;AAEA,IAAA,IAAI,CAAC4xG,KAAD,IAAUkO,aAAa,CAAC1vH,UAA5B,EAAwC;MACtCwhH,KAAK,GAAGkO,aAAa,CAAC1vH,UAAtB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAACyvH,QAAD,IAAaC,aAAa,CAACpnJ,WAA/B,EAA4C;MAC1CmnJ,QAAQ,GAAGC,aAAa,CAACpnJ,WAAzB,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAI,CAACsnC,KAAD,IAAU6/G,QAAd,EAAwB;AACtB,IAAA,IAAIE,gBAAgB,GAAGF,QAAvB,CADsB;;IAGtB,CAACE,gBAAgB,CAAClvJ,IAAlB,KAA2BkvJ,gBAAgB,CAAClvJ,IAAjB,GAAwB,MAAnD,CAAA,CAAA;;AAEA,IAAA,IAAIqE,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC;MACAqB,MAAM,CAACspJ,gBAAgB,CAAClvJ,IAAjB,KAA0B,MAA3B,EAAmC,iCAAnC,CAAN,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,IAAI4qC,IAAI,GAAG,CAACuE,KAAD,GAASi7G,cAAc,CAAC5vH,MAAxB,GAAiC4vH,cAAc,CAACj7G,KAAD,CAA1D,CAAA;EACAvE,IAAI,CAACtvC,GAAL,GAAWylJ,KAAX,CAAA;EACAn2G,IAAI,CAAC4iH,MAAL,GAAcwB,QAAd,CAAA;AACD,CAAA;;AAED,SAAS9D,mBAAT,CAA6B5I,QAA7B,EAAuCnzG,KAAvC,EAA8C;AAC5C,EAAA,OAAO,CAACA,KAAD,GAASmzG,QAAT,GAAoBA,QAAQ,GAAGA,QAAQ,CAACnzG,KAAD,CAAX,GAAqB,IAAxD,CAAA;AACD,CAAA;;AAED,SAAS2+G,0BAAT,CAAoCqB,iBAApC,EAAuDC,WAAvD,EAAoEjgH,KAApE,EAA2E;AACzE,EAAA,IAAI59C,KAAK,GAAG69J,WAAW,IAAIA,WAAW,CAAC79J,KAAvC,CAAA;;EAEA,IAAIA,KAAK,IAAI,IAAT,IAAiB49C,KAAK,KAAKq4G,QAA3B,IAAuC2H,iBAA3C,EAA8D;IAC5D59J,KAAK,GAAG49J,iBAAiB,CAAC7D,aAA1B,CAAA;AACD,GAAA;;AAED,EAAA,OAAO/5J,KAAP,CAAA;AACD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASw8J,aAAT,CAAuBvkJ,GAAvB,EAA4BtX,EAA5B,EAAgCkvB,SAAhC,EAA2CkhI,QAA3C,EAAqD3+H,WAArD,EAAkE;AAChE,EAAA,IAAI23H,WAAW,GAAGgH,QAAQ,CAACpuJ,QAA3B,CAAA;EACA,IAAIoJ,MAAM,GAAGg+I,WAAW,GAAGA,WAAW,CAACrrJ,MAAf,GAAwB,CAAhD,CAAA;AACA,EAAA,IAAI89J,aAAa,GAAGzL,QAAQ,CAAC+M,cAA7B,CAHgE;;EAKhE,IAAIC,MAAM,GAAGvB,aAAa,KAAK,QAAlB,IAA8BzL,QAAQ,CAACiN,kBAApD,CAAA;AACA,EAAA,IAAIC,QAAQ,GAAGzB,aAAa,KAAK,KAAjC,CANgE;;EAQhE,IAAI,CAACzwJ,MAAD,IAAW,CAACgyJ,MAAZ,IAAsB,CAACE,QAA3B,EAAqC;AACnC,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIF,MAAJ,EAAY;AACVG,IAAAA,iBAAiB,CAAC;AAChBjmJ,MAAAA,GAAG,EAAEA,GADW;AAEhB+xI,MAAAA,WAAW,EAAErpJ,EAAE,CAACgC,QAAH,MAAiB,EAFd;MAGhBonJ,WAAW,EAAEA,WAAW,IAAI,EAHZ;AAIhBl6H,MAAAA,SAAS,EAAEA,SAJK;AAKhBuC,MAAAA,WAAW,EAAEA,WALG;AAMhBrF,MAAAA,KAAK,EAAEpsB,EAAAA;AANS,KAAD,CAAjB,CAAA;AAQA,IAAA,OAAA;AACD,GAAA;;AAEDs9J,EAAAA,QAAQ,IAAIt9J,EAAE,CAACgwB,SAAH,EAAZ,CAxBgE;AAyBhE;;EAEA,IAAIgqB,KAAK,GAAG,CAAZ,CAAA;;AAEA,EAAA,OAAOA,KAAK,GAAG5uC,MAAf,EAAuB4uC,KAAK,EAA5B,EAAgC;IAC9BovG,WAAW,CAACpvG,KAAD,CAAX,IAAsBghH,kBAAkB,CAAC1jJ,GAAD,EAAMtX,EAAE,CAAC0wB,OAAH,CAAWspB,KAAX,CAAN,EAAyB9qB,SAAzB,EAAoCk6H,WAAW,CAACpvG,KAAD,CAA/C,EAAwDvoB,WAAxD,EAAqEzxB,EAArE,CAAxC,CAAA;AACD,GAAA;;AAED,EAAA,KAAK,IAAIvB,CAAC,GAAGuB,EAAE,CAACw9J,UAAH,EAAA,GAAkB,CAA/B,EAAkC/+J,CAAC,IAAIu7C,KAAvC,EAA8Cv7C,CAAC,EAA/C,EAAmD;AACjD;AACA;AACA;AACA,IAAA,IAAIkE,KAAK,GAAG3C,EAAE,CAAC0wB,OAAH,CAAWjyB,CAAX,CAAZ,CAAA;IACAmzJ,oBAAoB,CAACjvJ,KAAD,EAAQsoJ,gBAAgB,CAACjrJ,EAAD,CAAhB,CAAqB4rB,MAA7B,EAAqC6F,WAArC,CAApB,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAS8rI,iBAAT,CAA2BlzI,OAA3B,EAAoC;AAClC,EAAA,IAAIo/E,UAAJ,CAAep/E,OAAO,CAACg/H,WAAvB,EAAoCh/H,OAAO,CAAC++H,WAA5C,EAAyD1/C,MAAzD,EAAiEA,MAAjE,EAAyEr/E,OAAzE,CAAA,CAAkFsC,GAAlF,CAAsF8wI,gBAAtF,CAAA,CAAwGzmI,MAAxG,CAA+GymI,gBAA/G,CAAA,CAAiItmI,MAAjI,CAAwIumI,aAAxI,CAAA,CAAuJpmI,OAAvJ,EAAA,CAAA;AACD,CAAA;;AAED,SAASoyE,MAAT,CAAgBp8F,IAAhB,EAAsBmd,GAAtB,EAA2B;AACzB,EAAA,IAAIhpB,IAAI,GAAG6L,IAAI,IAAIA,IAAI,CAAC7L,IAAxB,CAAA;EACA,OAAOA,IAAI,IAAI,IAAR,GAAeA,IAAf,GAAsBq0J,iBAAiB,GAAGrrI,GAAjD,CAAA;AACD,CAAA;;AAED,SAASgzI,gBAAT,CAA0BnmH,QAA1B,EAAoCC,QAApC,EAA8C;EAC5C,IAAIltB,OAAO,GAAG,IAAA,CAAKA,OAAnB,CAAA;AACA,EAAA,IAAIszI,WAAW,GAAGrmH,QAAQ,IAAI,IAAZ,GAAmBjtB,OAAO,CAAC++H,WAAR,CAAoB9xG,QAApB,CAAnB,GAAmD,IAArE,CAAA;AACA,EAAA,IAAI30C,KAAK,GAAG40C,QAAQ,IAAI,IAAZ,GAAmBltB,OAAO,CAACg/H,WAAR,CAAoB9xG,QAApB,CAAnB,GAAmD,IAA/D,CAAA;EACAyjH,kBAAkB,CAAC3wI,OAAO,CAAC/S,GAAT,EAAc3U,KAAd,EAAqB0nB,OAAO,CAAC6E,SAA7B,EAAwCyuI,WAAxC,EAAqDtzI,OAAO,CAACoH,WAA7D,EAA0EpH,OAAO,CAAC+B,KAAlF,CAAlB,CAAA;AACD,CAAA;;AAED,SAASsxI,aAAT,CAAuBnmH,QAAvB,EAAiC;EAC/B,IAAIltB,OAAO,GAAG,IAAA,CAAKA,OAAnB,CAAA;AACA,EAAA,IAAI1nB,KAAK,GAAG0nB,OAAO,CAACg/H,WAAR,CAAoB9xG,QAApB,CAAZ,CAAA;AACAq6G,EAAAA,oBAAoB,CAACjvJ,KAAD,EAAQsoJ,gBAAgB,CAACtoJ,KAAD,CAAhB,CAAwBipB,MAAhC,EAAwCvB,OAAO,CAACoH,WAAhD,CAApB,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASkmI,WAAT,CAAqBtxJ,KAArB,EAA4B;AAC1B;EACA,OAAOA,KAAK,KAAKA,KAAK,CAACqxJ,QAAN,IAAkBrxJ,KAAK,CAACjI,CAA7B,CAAZ,CAAA;AACD,CAAA;;AAED,SAASg+J,cAAT,CAAwB/1J,KAAxB,EAA+B;AAC7B,EAAA,OAAOA,KAAK,KAAKkyE,MAAM,CAAClyE,KAAD,EAAQ,UAAR,CAAN,IAA6BkyE,MAAM,CAAClyE,KAAD,EAAQ,GAAR,CAAxC,CAAZ,CAAA;AACD;;ACzgCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BO,SAAS8X,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACgyB,iBAAV,CAA4BwmH,eAA5B,CAAA,CAAA;EACAx4I,SAAS,CAACiyB,mBAAV,CAA8B66G,iBAA9B,CAAA,CAAA;AACD;;AC/CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA,IAAI/iF,OAAK,GAAGC,SAAS,EAArB,CAAA;AACA,IAAI/zD,KAAK,GAAGouB,OAAZ,CAAA;AACA,IAAIqvC,IAAI,GAAGrvC,MAAX,CAAA;AACA;AACA;AACA;;AAEA,IAAIm7H,eAAe;AACnB;AACA,YAAY;AACV,EAAA,SAASA,eAAT,GAA2B;IACzB,IAAK3qF,CAAAA,SAAL,GAAiB,KAAjB,CAAA;AACA;AACJ;AACA;AACA;;IAEI,IAAK4qF,CAAAA,kBAAL,GAA0B,EAA1B,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGED,EAAAA,eAAe,CAAC7iK,SAAhB,CAA0B8tC,MAA1B,GAAmC,UAAUkS,SAAV,EAAqBuqB,gBAArB,EAAuChuD,GAAvC,EAA4CuwD,WAA5C,EAAyD;AAC1F,IAAA,IAAI5tC,KAAK,GAAGqrC,gBAAgB,CAACpyC,GAAjB,CAAqB,OAArB,CAAZ,CAAA;IACA,IAAIkI,MAAM,GAAGkqC,gBAAgB,CAACpyC,GAAjB,CAAqB,QAArB,CAAb,CAF0F;AAG1F;;IAEA,IAAK4qI,CAAAA,UAAL,GAAkB/iH,SAAlB,CAAA;IACA,IAAKgjH,CAAAA,iBAAL,GAAyBz4F,gBAAzB,CAAA;AACA,IAAA,IAAA,CAAKqtB,IAAL,GAAYr7E,GAAZ,CAP0F;AAQ1F;AACA;;AAEA,IAAA,IAAI,CAACuwD,WAAD,IAAgB,IAAA,CAAKm2F,UAAL,KAAoB/jI,KAApC,IAA6C,IAAKgkI,CAAAA,WAAL,KAAqB7iI,MAAtE,EAA8E;AAC5E,MAAA,OAAA;AACD,KAAA;;IAED,IAAK4iI,CAAAA,UAAL,GAAkB/jI,KAAlB,CAAA;IACA,IAAKgkI,CAAAA,WAAL,GAAmB7iI,MAAnB,CAAA;IACA,IAAIhP,KAAK,GAAG,IAAA,CAAK8xI,MAAjB,CAAA;IACA,IAAIC,MAAM,GAAG,IAAA,CAAKC,OAAlB,CAAA;;AAEA,IAAA,IAAI,CAAChjI,MAAD,IAAWA,MAAM,KAAK,MAA1B,EAAkC;AAChC;AACAhP,MAAAA,KAAK,IAAIA,KAAK,CAACiyI,IAAN,EAAT,CAAA;AACAF,MAAAA,MAAM,IAAIA,MAAM,CAACE,IAAP,EAAV,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AAEDjyI,IAAAA,KAAK,IAAIA,KAAK,CAAC0B,IAAN,EAAT,CAAA;AACAqwI,IAAAA,MAAM,IAAIA,MAAM,CAACrwI,IAAP,EAAV,CA5B0F;;IA8B1F,IAAIsiI,QAAQ,GAAG,EAAf,CAAA;AACA,IAAA,IAAA,CAAKkO,YAAL,CAAkBlO,QAAlB,EAA4Bn2H,KAA5B,EAAmC8gB,SAAnC,EAA8CuqB,gBAA9C,EAAgEhuD,GAAhE,CAAA,CA/B0F;;AAiC1F,IAAA,IAAIinJ,UAAU,GAAGnO,QAAQ,CAACmO,UAA1B,CAAA;;AAEA,IAAA,IAAIA,UAAU,KAAK,IAAKC,CAAAA,eAAxB,EAAyC;MACvC,IAAK3gJ,CAAAA,KAAL,CAAWvG,GAAX,CAAA,CAAA;AACD,KAAA;;IAED,IAAKknJ,CAAAA,eAAL,GAAuBD,UAAvB,CAAA;IACA,IAAIE,aAAa,GAAG,IAAA,CAAKC,cAAL,GAAsB,IAAKC,CAAAA,kBAAL,CAAwB5jH,SAAxB,EAAmCuqB,gBAAnC,CAA1C,CAAA;;IAEA,IAAI,CAACl5C,KAAL,EAAY;MACVA,KAAK,GAAG,KAAK8xI,MAAL,GAAc,IAAIpsI,OAAJ,EAAtB,CAAA;MACA,IAAK8sI,CAAAA,eAAL,CAAqBxyI,KAArB,EAA4BgkI,QAA5B,EAAsCr1G,SAAtC,EAAiDuqB,gBAAjD,CAAA,CAAA;MACA,IAAKu5F,CAAAA,aAAL,CAAmBzyI,KAAnB,EAA0BgkI,QAA1B,EAAoCr1G,SAApC,EAA+CuqB,gBAA/C,CAAA,CAAA;AACAhuD,MAAAA,GAAG,CAACghC,KAAJ,EAAY3rB,CAAAA,GAAZ,CAAgBP,KAAhB,CAAA,CAAA;AACD,KALD,MAKO;MACL,IAAI0yI,aAAa,GAAGr8H,OAAA,CAAagV,WAAb,EAA0B6tB,gBAA1B,EAA4Cm5F,aAA5C,CAApB,CAAA;AACA,MAAA,IAAA,CAAKM,eAAL,CAAqB3yI,KAArB,EAA4BgkI,QAA5B,EAAsC0O,aAAtC,CAAA,CAAA;MACA,IAAKE,CAAAA,aAAL,CAAmB5yI,KAAnB,EAA0BgkI,QAA1B,EAAoC0O,aAApC,EAAmDx5F,gBAAnD,CAAA,CAAA;AACD,KAAA;;AAED25F,IAAAA,oBAAoB,CAAC7yI,KAAD,EAAQk5C,gBAAR,EAA0B,IAA1B,CAApB,CAAA;;IAEA,IAAK45F,CAAAA,aAAL,CAAmBjlI,KAAnB,CAAA,CAAA;GAvDF,CAAA;AAyDA;AACF;AACA;;;AAGE2jI,EAAAA,eAAe,CAAC7iK,SAAhB,CAA0Bo8B,MAA1B,GAAmC,UAAU7f,GAAV,EAAe;IAChD,IAAKuG,CAAAA,KAAL,CAAWvG,GAAX,CAAA,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEsmJ,EAAAA,eAAe,CAAC7iK,SAAhB,CAA0B4iB,OAA1B,GAAoC,UAAUrG,GAAV,EAAe;IACjD,IAAKuG,CAAAA,KAAL,CAAWvG,GAAX,CAAA,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;EAGEsmJ,eAAe,CAAC7iK,SAAhB,CAA0B4jK,kBAA1B,GAA+C,UAAU5jH,SAAV,EAAqBuqB,gBAArB,EAAuC;AACpF,IAAA,IAAI39D,SAAS,GAAG29D,gBAAgB,CAACpyC,GAAjB,CAAqB,WAArB,CAAhB,CAAA;AACA,IAAA,IAAIwR,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;AACA,IAAA,IAAIy6H,cAAc,GAAGz6H,IAAI,CAAC52B,IAAL,KAAc,UAAnC,CAAA;IACA,IAAIsxJ,OAAO,GAAG95F,gBAAgB,CAACpyC,GAAjB,CAAqB,MAArB,CAAd,CAJoF;;AAMpF,IAAA,IAAI,CAACksI,OAAD,IAAY,CAACD,cAAjB,EAAiC;AAC/B,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAIx3J,SAAS,KAAK,MAAd,IAAwBA,SAAS,IAAI,IAAzC,EAA+C;MAC7C,IAAIk2J,kBAAkB,GAAG,IAAA,CAAKA,kBAA9B,CAAA;;AAEA,MAAA,IAAIsB,cAAc,IAAIz6H,IAAI,CAACgpG,YAAL,EAAA,GAAsBmwB,kBAA5C,EAAgE;AAC9D,QAAA,OAAO,IAAP,CAAA;AACD,OAL4C;AAM7C;AACA;;;AAGA,MAAA,IAAIuB,OAAJ,EAAa;QACX,IAAIv4F,eAAe,GAAGW,aAAA,CAAmCzsB,SAAnC,EAA8C8rB,eAApE,CAAA;AACA,QAAA,IAAItgC,UAAU,GAAG7B,IAAI,CAAC5K,SAAL,EAAjB,CAFW;;AAIX,QAAA,OAAOv/B,IAAI,CAACyC,GAAL,CAASupC,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAnC,CAA0CsgC,GAAAA,eAA1C,GAA4Dg3F,kBAAnE,CAAA;AACD,OAAA;;AAED,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;IAED,OAAOl2J,SAAS,KAAK,IAArB,CAAA;GA9BF,CAAA;AAgCA;AACF;AACA;AACA;;;AAGEi2J,EAAAA,eAAe,CAAC7iK,SAAhB,CAA0BujK,YAA1B,GAAyC,UAAUlO,QAAV,EAAoBn2H,KAApB,EAA2B8gB,SAA3B,EAAsCuqB,gBAAtC,EAAwDhuD,GAAxD,EAA6D;GAAtG,CAAA;AAEA;AACF;AACA;;;AAGEsmJ,EAAAA,eAAe,CAAC7iK,SAAhB,CAA0B6jK,eAA1B,GAA4C,UAAUxyI,KAAV,EAAiBgkI,QAAjB,EAA2Br1G,SAA3B,EAAsCuqB,gBAAtC,EAAwD;AAClG,IAAA,IAAI+5F,aAAa,GAAGjP,QAAQ,CAACtiC,OAA7B,CAAA;;AAEA,IAAA,IAAIuxC,aAAJ,EAAmB;MACjB,IAAIC,SAAS,GAAGn3F,OAAK,CAAC/7C,KAAD,CAAL,CAAakzI,SAAb,GAAyB,IAAIxtI,OAAO,CAACutI,aAAa,CAACvxJ,IAAf,CAAX,CAAgCuG,KAAK,CAAC+7I,QAAQ,CAACtiC,OAAV,CAArC,CAAzC,CAAA;MACA1hG,KAAK,CAACO,GAAN,CAAU2yI,SAAV,CAAA,CAAA;AACD,KAAA;GANH,CAAA;AAQA;AACF;AACA;;;AAGE1B,EAAAA,eAAe,CAAC7iK,SAAhB,CAA0B8jK,aAA1B,GAA0C,UAAUzyI,KAAV,EAAiBgkI,QAAjB,EAA2Br1G,SAA3B,EAAsCuqB,gBAAtC,EAAwD;IAChG,IAAI8qF,QAAQ,CAACxiI,KAAb,EAAoB;MAClB,IAAI6hG,OAAO,GAAGtnD,OAAK,CAAC/7C,KAAD,CAAL,CAAaqjG,OAAb,GAAuB,IAAI39F,MAAJ,CAAiBzd,KAAK,CAAC+7I,QAAQ,CAACxiI,KAAV,CAAtB,CAArC,CAAA;MACAxB,KAAK,CAACO,GAAN,CAAU8iG,OAAV,CAAA,CAAA;AACA8vC,MAAAA,mBAAmB,CAAC9vC,OAAD,EAAUnqD,gBAAV,CAAnB,CAAA;AACD,KAAA;GALH,CAAA;AAOA;AACF;AACA;;;EAGEs4F,eAAe,CAAC7iK,SAAhB,CAA0BgkK,eAA1B,GAA4C,UAAU3yI,KAAV,EAAiBgkI,QAAjB,EAA2B34G,WAA3B,EAAwC;AAClF,IAAA,IAAI6nH,SAAS,GAAGn3F,OAAK,CAAC/7C,KAAD,CAAL,CAAakzI,SAA7B,CAAA;;AAEA,IAAA,IAAIA,SAAS,IAAIlP,QAAQ,CAACtiC,OAA1B,EAAmC;AACjCwxC,MAAAA,SAAS,CAAC1yI,QAAV,CAAmBwjI,QAAQ,CAACtiC,OAAT,CAAiBzuH,KAApC,CAAA,CAAA;MACAo4C,WAAW,CAAC6nH,SAAD,EAAY;AACrBj5J,QAAAA,KAAK,EAAE+pJ,QAAQ,CAACtiC,OAAT,CAAiBznH,KAAAA;AADH,OAAZ,CAAX,CAAA;AAGD,KAAA;GARH,CAAA;AAUA;AACF;AACA;;;AAGEu3J,EAAAA,eAAe,CAAC7iK,SAAhB,CAA0BikK,aAA1B,GAA0C,UAAU5yI,KAAV,EAAiBgkI,QAAjB,EAA2B34G,WAA3B,EAAwC6tB,gBAAxC,EAA0D;AAClG,IAAA,IAAImqD,OAAO,GAAGtnD,OAAK,CAAC/7C,KAAD,CAAL,CAAaqjG,OAA3B,CAAA;;AAEA,IAAA,IAAIA,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAAC7iG,QAAR,CAAiBwjI,QAAQ,CAACxiI,KAAT,CAAevuB,KAAhC,CAAA,CAAA;MACAo4C,WAAW,CAACg4E,OAAD,EAAU;AACnB;AACA;AACA;AACA;AACAj0H,QAAAA,CAAC,EAAE40J,QAAQ,CAACxiI,KAAT,CAAepyB,CALC;AAMnBC,QAAAA,CAAC,EAAE20J,QAAQ,CAACxiI,KAAT,CAAenyB,CAAAA;AANC,OAAV,CAAX,CAAA;AAQA8jK,MAAAA,mBAAmB,CAAC9vC,OAAD,EAAUnqD,gBAAV,CAAnB,CAAA;AACD,KAAA;GAdH,CAAA;AAgBA;AACF;AACA;;;AAGEs4F,EAAAA,eAAe,CAAC7iK,SAAhB,CAA0BmkK,aAA1B,GAA0C,UAAUjlI,KAAV,EAAiB;AACzD,IAAA,IAAI,KAAKg5C,SAAL,IAAkB,CAAC,IAAA,CAAKusF,qBAA5B,EAAmD;AACjD,MAAA,OAAA;AACD,KAAA;;IAED,IAAIl6F,gBAAgB,GAAG,IAAA,CAAKy4F,iBAA5B,CAAA;;AAEA,IAAA,IAAI5sF,EAAE,GAAG,IAAA,CAAKwhB,IAAL,CAAUr6C,KAAV,EAAT,CAAA;;IAEA,IAAI6lH,MAAM,GAAG,IAAA,CAAKC,OAAlB,CAAA;AACA,IAAA,IAAIqB,WAAW,GAAGn6F,gBAAgB,CAACtyC,QAAjB,CAA0B,QAA1B,CAAlB,CAAA;AACA,IAAA,IAAIoI,MAAM,GAAGkqC,gBAAgB,CAACpyC,GAAjB,CAAqB,QAArB,CAAb,CAAA;;AAEA,IAAA,IAAI,CAACusI,WAAW,CAACvsI,GAAZ,CAAgB,MAAhB,CAAD,IAA4B,CAACkI,MAA7B,IAAuCA,MAAM,KAAK,MAAtD,EAA8D;AAC5D+iI,MAAAA,MAAM,IAAIhtF,EAAE,CAACh6C,MAAH,CAAUgnI,MAAV,CAAV,CAAA;MACA,IAAKC,CAAAA,OAAL,GAAe,IAAf,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIxsI,MAAJ,CAAA;;IAEA,IAAI,CAAC,IAAKwsI,CAAAA,OAAV,EAAmB;AACjBxsI,MAAAA,MAAM,GAAG,IAAT,CAAA;AACAusI,MAAAA,MAAM,GAAG,IAAA,CAAKC,OAAL,GAAetsI,UAAA,CAAmB2tI,WAAW,CAACvsI,GAAZ,CAAgB,MAAhB,CAAnB,EAA4C;AAClE5B,QAAAA,MAAM,EAAE,MAD0D;AAElEF,QAAAA,SAAS,EAAE,IAFuD;QAGlEsuI,WAAW,EAAE,SAAUrhK,WAAAA,CAAAA,CAAV,EAAa;AACxB;AACAi1E,UAAAA,IAAA,CAAej1E,CAAC,CAACy/C,KAAjB,CAAA,CAAA;SALgE;QAOlE6hH,WAAW,EAAE7tF,IAAI,CAAC,IAAK8tF,CAAAA,iBAAN,EAAyB,IAAzB,EAA+B,CAA/B,EAAkC,CAAlC,CAPiD;AAQlEvvI,QAAAA,KAAK,EAAEyhD,IAAI,CAAC,KAAK8tF,iBAAN,EAAyB,IAAzB,CARuD;AASlEtgC,QAAAA,SAAS,EAAExtD,IAAI,CAAC,IAAK+tF,CAAAA,gBAAN,EAAwB,IAAxB,CAAA;AATmD,OAA5C,CAAxB,CAAA;MAWA1uF,EAAE,CAACxkD,GAAH,CAAOwxI,MAAP,CAAA,CAAA;AACD,KAAA;;IAEDc,oBAAoB,CAACd,MAAD,EAAS74F,gBAAT,EAA2B,KAA3B,CAApB,CArCyD;;AAuCzD64F,IAAAA,MAAM,CAACvxI,QAAP,CAAgB6yI,WAAW,CAACxsI,YAAZ,CAAyB,IAAzB,EAA+B,CAAC,OAAD,EAAU,aAAV,EAAyB,aAAzB,EAAwC,SAAxC,EAAmD,aAAnD,EAAkE,YAAlE,EAAgF,eAAhF,EAAiG,eAAjG,CAA/B,CAAhB,CAAA,CAvCyD;;AAyCzD,IAAA,IAAIysG,UAAU,GAAG+/B,WAAW,CAACvsI,GAAZ,CAAgB,MAAhB,CAAjB,CAAA;;AAEA,IAAA,IAAI,CAACuP,SAAA,CAAei9F,UAAf,CAAL,EAAiC;AAC/BA,MAAAA,UAAU,GAAG,CAACA,UAAD,EAAaA,UAAb,CAAb,CAAA;AACD,KAAA;;IAEDy+B,MAAM,CAACrtJ,MAAP,GAAgB4uH,UAAU,CAAC,CAAD,CAAV,GAAgB,CAAhC,CAAA;IACAy+B,MAAM,CAACptJ,MAAP,GAAgB2uH,UAAU,CAAC,CAAD,CAAV,GAAgB,CAAhC,CAAA;AACAogC,IAAAA,cAAA,CAA4B,IAA5B,EAAkC,wBAAlC,EAA4DL,WAAW,CAACvsI,GAAZ,CAAgB,UAAhB,CAA+B,IAAA,CAA3F,EAA8F,SAA9F,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAK6sI,kBAAL,CAAwB9lI,KAAxB,EAA+BrI,MAA/B,CAAA,CAAA;GAnDF,CAAA;;EAsDAgsI,eAAe,CAAC7iK,SAAhB,CAA0BglK,kBAA1B,GAA+C,UAAU9lI,KAAV,EAAiBrI,MAAjB,EAAyB;IACtE6lB,WAAW,CAAC,IAAKsmH,CAAAA,iBAAN,EAAyB,CAACnsI,MAAD,IAAW,IAAK8sI,CAAAA,cAAzC,EAAyD,IAAA,CAAKN,OAA9D,EAAuE4B,mBAAmB,CAAC,IAAKC,CAAAA,kBAAL,CAAwBhmI,KAAxB,EAA+B,IAAA,CAAK6jI,UAApC,EAAgD,IAAKC,CAAAA,iBAArD,CAAD,CAA1F,CAAX,CAAA;GADF,CAAA;;EAIAH,eAAe,CAAC7iK,SAAhB,CAA0B6kK,iBAA1B,GAA8C,UAAUrqI,EAAV,EAAcC,EAAd,EAAkB;IAC9D,IAAI2oI,MAAM,GAAG,IAAA,CAAKC,OAAlB,CAAA;;IAEA,IAAI,CAACD,MAAL,EAAa;AACX,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKlrF,SAAL,GAAiB,IAAjB,CAP8D;;IAS9D,IAAIitF,KAAK,GAAG,IAAKV,CAAAA,qBAAL,CAA2BQ,mBAAmB,CAAC7B,MAAD,CAA9C,EAAwD,CAAC5oI,EAAD,EAAKC,EAAL,CAAxD,EAAkE,KAAKsoI,UAAvE,EAAmF,IAAKC,CAAAA,iBAAxF,CAAZ,CAAA;IACA,IAAKoC,CAAAA,YAAL,GAAoBD,KAApB,CAAA;AACA/B,IAAAA,MAAM,CAACxtI,aAAP,EAAA,CAAA;AACAwtI,IAAAA,MAAM,CAACjuI,IAAP,CAAY8vI,mBAAmB,CAACE,KAAD,CAA/B,CAAA,CAAA;AACA/3F,IAAAA,OAAK,CAACg2F,MAAD,CAAL,CAAciC,QAAd,GAAyB,IAAzB,CAAA;;AAEA,IAAA,IAAA,CAAKC,sBAAL,EAAA,CAAA;GAfF,CAAA;AAiBA;AACF;AACA;;;AAGEzC,EAAAA,eAAe,CAAC7iK,SAAhB,CAA0BslK,sBAA1B,GAAmD,YAAY;IAC7D,IAAIlC,MAAM,GAAG,IAAA,CAAKC,OAAlB,CAAA;;IAEA,IAAI,CAACD,MAAL,EAAa;AACX,MAAA,OAAA;AACD,KAAA;;IAED,IAAImC,WAAW,GAAG,IAAA,CAAKH,YAAvB,CAAA;IACA,IAAIplH,SAAS,GAAG,IAAA,CAAK+iH,UAArB,CAAA;;IAEA,IAAKnrE,CAAAA,IAAL,CAAU74C,cAAV,CAAyB;AACvBhsC,MAAAA,IAAI,EAAE,mBADiB;AAEvBtS,MAAAA,CAAC,EAAE8kK,WAAW,CAACC,WAAZ,CAAwB,CAAxB,CAFoB;AAGvB9kK,MAAAA,CAAC,EAAE6kK,WAAW,CAACC,WAAZ,CAAwB,CAAxB,CAHoB;MAIvBC,aAAa,EAAEF,WAAW,CAACE,aAJJ;AAKvBz8F,MAAAA,QAAQ,EAAE,CAAC;AACTjO,QAAAA,OAAO,EAAE/a,SAAS,CAACrW,IAAV,CAAe5L,GADf;QAET2hC,SAAS,EAAE1f,SAAS,CAACrP,cAAAA;OAFb,CAAA;KALZ,CAAA,CAAA;GAVF,CAAA;;AAsBAkyH,EAAAA,eAAe,CAAC7iK,SAAhB,CAA0B8kK,gBAA1B,GAA6C,YAAY;IACvD,IAAK5sF,CAAAA,SAAL,GAAiB,KAAjB,CAAA;IACA,IAAIkrF,MAAM,GAAG,IAAA,CAAKC,OAAlB,CAAA;;IAEA,IAAI,CAACD,MAAL,EAAa;AACX,MAAA,OAAA;AACD,KAAA;;IAED,IAAIlkI,KAAK,GAAG,IAAA,CAAK8jI,iBAAL,CAAuB7qI,GAAvB,CAA2B,OAA3B,CAAZ,CARuD;AASvD;AACA;;;AAGA,IAAA,IAAA,CAAK6sI,kBAAL,CAAwB9lI,KAAxB,CAAA,CAbuD;AAcvD;;;IAGA,IAAK04D,CAAAA,IAAL,CAAU74C,cAAV,CAAyB;AACvBhsC,MAAAA,IAAI,EAAE,SAAA;KADR,CAAA,CAAA;GAjBF,CAAA;AAqBA;AACF;AACA;;;AAGE8vJ,EAAAA,eAAe,CAAC7iK,SAAhB,CAA0B8iB,KAA1B,GAAkC,UAAUvG,GAAV,EAAe;IAC/C,IAAK0mJ,CAAAA,UAAL,GAAkB,IAAlB,CAAA;IACA,IAAKC,CAAAA,WAAL,GAAmB,IAAnB,CAAA;AACA,IAAA,IAAI9sF,EAAE,GAAG75D,GAAG,CAACghC,KAAJ,EAAT,CAAA;IACA,IAAIlsB,KAAK,GAAG,IAAA,CAAK8xI,MAAjB,CAAA;IACA,IAAIC,MAAM,GAAG,IAAA,CAAKC,OAAlB,CAAA;;IAEA,IAAIjtF,EAAE,IAAI/kD,KAAV,EAAiB;MACf,IAAKoyI,CAAAA,eAAL,GAAuB,IAAvB,CAAA;AACApyI,MAAAA,KAAK,IAAI+kD,EAAE,CAACh6C,MAAH,CAAU/K,KAAV,CAAT,CAAA;AACA+xI,MAAAA,MAAM,IAAIhtF,EAAE,CAACh6C,MAAH,CAAUgnI,MAAV,CAAV,CAAA;MACA,IAAKD,CAAAA,MAAL,GAAc,IAAd,CAAA;MACA,IAAKE,CAAAA,OAAL,GAAe,IAAf,CAAA;MACA,IAAK+B,CAAAA,YAAL,GAAoB,IAApB,CAAA;AACD,KAAA;;AAEDL,IAAAA,OAAA,CAAmB,IAAnB,EAAyB,wBAAzB,CAAA,CAAA;GAhBF,CAAA;AAkBA;AACF;AACA;;;AAGElC,EAAAA,eAAe,CAAC7iK,SAAhB,CAA0BupB,OAA1B,GAAoC,YAAY;GAAhD,CAAA;;EAGAs5I,eAAe,CAAC7iK,SAAhB,CAA0B0lK,UAA1B,GAAuC,UAAUroD,EAAV,EAAcC,EAAd,EAAkBqoD,SAAlB,EAA6B;IAClEA,SAAS,GAAGA,SAAS,IAAI,CAAzB,CAAA;IACA,OAAO;AACLllK,MAAAA,CAAC,EAAE48G,EAAE,CAACsoD,SAAD,CADA;AAELjlK,MAAAA,CAAC,EAAE28G,EAAE,CAAC,CAAA,GAAIsoD,SAAL,CAFA;AAGLl8J,MAAAA,KAAK,EAAE6zG,EAAE,CAACqoD,SAAD,CAHJ;AAILj8J,MAAAA,MAAM,EAAE4zG,EAAE,CAAC,CAAA,GAAIqoD,SAAL,CAAA;KAJZ,CAAA;GAFF,CAAA;;AAUA,EAAA,OAAO9C,eAAP,CAAA;AACD,CA5WD,EAFA,CAAA;;AAgXA,SAASnmH,WAAT,CAAqBjC,cAArB,EAAqCipH,aAArC,EAAoDz+J,EAApD,EAAwDk8C,KAAxD,EAA+D;AAC7D;AACA,EAAA,IAAI,CAACykH,UAAU,CAACx4F,OAAK,CAACnoE,EAAD,CAAL,CAAUogK,QAAX,EAAqBlkH,KAArB,CAAf,EAA4C;AAC1CisB,IAAAA,OAAK,CAACnoE,EAAD,CAAL,CAAUogK,QAAV,GAAqBlkH,KAArB,CAAA;IACAuiH,aAAa,GAAG3sI,aAAA,CAAoB9xB,EAApB,EAAwBk8C,KAAxB,EAA+B1G,cAA/B,CAAH,IAAqDx1C,EAAE,CAAC2wB,aAAH,EAAoB3wB,EAAAA,EAAE,CAACkwB,IAAH,CAAQgsB,KAAR,CAAzE,CAAb,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASykH,UAAT,CAAoBC,SAApB,EAA+BC,QAA/B,EAAyC;AACvC,EAAA,IAAIp+H,UAAA,CAAgBm+H,SAAhB,CAAA,IAA8Bn+H,UAAA,CAAgBo+H,QAAhB,CAAlC,EAA6D;IAC3D,IAAIC,QAAQ,GAAG,IAAf,CAAA;IACAr+H,MAAA,CAAYo+H,QAAZ,EAAsB,UAAUvzJ,IAAV,EAAgBxL,GAAhB,EAAqB;MACzCg/J,QAAQ,GAAGA,QAAQ,IAAIH,UAAU,CAACC,SAAS,CAAC9+J,GAAD,CAAV,EAAiBwL,IAAjB,CAAjC,CAAA;KADF,CAAA,CAAA;IAGA,OAAO,CAAC,CAACwzJ,QAAT,CAAA;AACD,GAND,MAMO;IACL,OAAOF,SAAS,KAAKC,QAArB,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAStB,mBAAT,CAA6B9vC,OAA7B,EAAsCnqD,gBAAtC,EAAwD;AACtDmqD,EAAAA,OAAO,CAACnqD,gBAAgB,CAACpyC,GAAjB,CAAqB,CAAC,OAAD,EAAU,MAAV,CAArB,CAAA,GAA0C,MAA1C,GAAmD,MAApD,CAAP,EAAA,CAAA;AACD,CAAA;;AAED,SAAS8sI,mBAAT,CAA6BE,KAA7B,EAAoC;EAClC,OAAO;AACL1kK,IAAAA,CAAC,EAAE0kK,KAAK,CAAC1kK,CAAN,IAAW,CADT;AAELC,IAAAA,CAAC,EAAEykK,KAAK,CAACzkK,CAAN,IAAW,CAFT;AAGL8xB,IAAAA,QAAQ,EAAE2yI,KAAK,CAAC3yI,QAAN,IAAkB,CAAA;GAH9B,CAAA;AAKD,CAAA;;AAED,SAAS0xI,oBAAT,CAA8B7yI,KAA9B,EAAqCk5C,gBAArC,EAAuD/zC,MAAvD,EAA+D;AAC7D,EAAA,IAAItK,CAAC,GAAGq+C,gBAAgB,CAACpyC,GAAjB,CAAqB,GAArB,CAAR,CAAA;AACA,EAAA,IAAIxT,MAAM,GAAG4lD,gBAAgB,CAACpyC,GAAjB,CAAqB,QAArB,CAAb,CAAA;AACA9G,EAAAA,KAAK,IAAIA,KAAK,CAAC8L,QAAN,CAAe,UAAUl4B,EAAV,EAAc;AACpC,IAAA,IAAIA,EAAE,CAAC8N,IAAH,KAAY,OAAhB,EAAyB;AACvBmZ,MAAAA,CAAC,IAAI,IAAL,KAAcjnB,EAAE,CAACinB,CAAH,GAAOA,CAArB,CAAA,CAAA;AACAvH,MAAAA,MAAM,IAAI,IAAV,KAAmB1f,EAAE,CAAC0f,MAAH,GAAYA,MAA/B,CAAA,CAAA;MACA1f,EAAE,CAACuxB,MAAH,GAAYA,MAAZ,CAAA;AACD,KAAA;AACF,GANQ,CAAT,CAAA;AAOD;;ACjdD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiCO,SAASwvI,YAAT,CAAsBz7F,gBAAtB,EAAwC;AAC7C,EAAA,IAAI07F,eAAe,GAAG17F,gBAAgB,CAACpyC,GAAjB,CAAqB,MAArB,CAAtB,CAAA;EACA,IAAI+tI,UAAU,GAAG37F,gBAAgB,CAACtyC,QAAjB,CAA0BguI,eAAe,GAAG,OAA5C,CAAjB,CAAA;AACA,EAAA,IAAI3hK,KAAJ,CAAA;;EAEA,IAAI2hK,eAAe,KAAK,MAAxB,EAAgC;AAC9B3hK,IAAAA,KAAK,GAAG4hK,UAAU,CAACx2H,YAAX,EAAR,CAAA;IACAprC,KAAK,CAACC,IAAN,GAAa,IAAb,CAAA;AACD,GAHD,MAGO,IAAI0hK,eAAe,KAAK,QAAxB,EAAkC;AACvC3hK,IAAAA,KAAK,GAAG4hK,UAAU,CAACj2H,YAAX,EAAR,CAAA;IACA3rC,KAAK,CAACG,MAAN,GAAe,IAAf,CAAA;AACD,GAAA;;AAED,EAAA,OAAOH,KAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;;AAEO,SAAS6hK,kBAAT,CAA4B9Q,QAA5B,EAAsCr1G,SAAtC,EAAiDuqB,gBAAjD,EAAmEhuD,GAAnE,EAAwE6pJ,QAAxE,EAAkF;AACvF,EAAA,IAAIlnI,KAAK,GAAGqrC,gBAAgB,CAACpyC,GAAjB,CAAqB,OAArB,CAAZ,CAAA;EACA,IAAIjxB,IAAI,GAAGm/J,aAAa,CAACnnI,KAAD,EAAQ8gB,SAAS,CAACrW,IAAlB,EAAwBqW,SAAS,CAACjS,OAAlC,EAA2Cw8B,gBAAgB,CAACpyC,GAAjB,CAAqB,mBAArB,CAA3C,EAAsF;IAC5Gj4B,SAAS,EAAEqqE,gBAAgB,CAACpyC,GAAjB,CAAqB,CAAC,OAAD,EAAU,WAAV,CAArB,CADiG;IAE5G8+D,SAAS,EAAE1sB,gBAAgB,CAACpyC,GAAjB,CAAqB,CAAC,OAAD,EAAU,WAAV,CAArB,CAAA;AAFiG,GAAtF,CAAxB,CAAA;AAIA,EAAA,IAAIqxB,UAAU,GAAG+gB,gBAAgB,CAACtyC,QAAjB,CAA0B,OAA1B,CAAjB,CAAA;AACA,EAAA,IAAIquI,QAAQ,GAAGC,mBAAA,CAA6B/8G,UAAU,CAACrxB,GAAX,CAAe,SAAf,CAAA,IAA6B,CAA1D,CAAf,CAAA;AACA,EAAA,IAAI/jB,IAAI,GAAGo1C,UAAU,CAAC2b,OAAX,EAAX,CAAA;EACA,IAAI7c,QAAQ,GAAGk+G,eAAA,CAA4Bt/J,IAA5B,EAAkCkN,IAAlC,CAAf,CAAA;AACA,EAAA,IAAI0P,QAAQ,GAAGsiJ,QAAQ,CAACtiJ,QAAxB,CAAA;AACA,EAAA,IAAIra,KAAK,GAAG6+C,QAAQ,CAAC7+C,KAAT,GAAiB68J,QAAQ,CAAC,CAAD,CAAzB,GAA+BA,QAAQ,CAAC,CAAD,CAAnD,CAAA;AACA,EAAA,IAAI58J,MAAM,GAAG4+C,QAAQ,CAAC5+C,MAAT,GAAkB48J,QAAQ,CAAC,CAAD,CAA1B,GAAgCA,QAAQ,CAAC,CAAD,CAArD,CAZuF;;AAcvF,EAAA,IAAIj5H,KAAK,GAAG+4H,QAAQ,CAAC/4H,KAArB,CAAA;EACAA,KAAK,KAAK,OAAV,KAAsBvpB,QAAQ,CAAC,CAAD,CAAR,IAAera,KAArC,CAAA,CAAA;EACA4jC,KAAK,KAAK,QAAV,KAAuBvpB,QAAQ,CAAC,CAAD,CAAR,IAAera,KAAK,GAAG,CAA9C,CAAA,CAAA;AACA,EAAA,IAAI6jC,aAAa,GAAG84H,QAAQ,CAAC94H,aAA7B,CAAA;EACAA,aAAa,KAAK,QAAlB,KAA+BxpB,QAAQ,CAAC,CAAD,CAAR,IAAepa,MAA9C,CAAA,CAAA;AACA4jC,EAAAA,aAAa,KAAK,QAAlB,KAA+BxpB,QAAQ,CAAC,CAAD,CAAR,IAAepa,MAAM,GAAG,CAAvD,CAAA,CAnBuF;;EAqBvF+8J,kBAAkB,CAAC3iJ,QAAD,EAAWra,KAAX,EAAkBC,MAAlB,EAA0B6S,GAA1B,CAAlB,CAAA;AACA,EAAA,IAAI8D,OAAO,GAAGmpC,UAAU,CAACrxB,GAAX,CAAe,iBAAf,CAAd,CAAA;;AAEA,EAAA,IAAI,CAAC9X,OAAD,IAAYA,OAAO,KAAK,MAA5B,EAAoC;AAClCA,IAAAA,OAAO,GAAG2/B,SAAS,CAAC7nB,GAAV,CAAc,CAAC,UAAD,EAAa,WAAb,EAA0B,OAA1B,CAAd,CAAV,CAAA;AACD,GAAA;;EAEDk9H,QAAQ,CAACxiI,KAAT,GAAiB;AACf;AACApyB,IAAAA,CAAC,EAAEqjB,QAAQ,CAAC,CAAD,CAFI;AAGfpjB,IAAAA,CAAC,EAAEojB,QAAQ,CAAC,CAAD,CAHI;AAIfxf,IAAAA,KAAK,EAAEghE,eAAe,CAAC9b,UAAD,EAAa;AACjCtiD,MAAAA,IAAI,EAAEA,IAD2B;AAEjCkN,MAAAA,IAAI,EAAEA,IAF2B;AAGjC7P,MAAAA,IAAI,EAAEilD,UAAU,CAAC+b,YAAX,EAH2B;AAIjC7/C,MAAAA,OAAO,EAAE4gJ,QAJwB;AAKjCplJ,MAAAA,eAAe,EAAEb,OAAAA;AALgB,KAAb,CAJP;AAWf;AACA+U,IAAAA,EAAE,EAAE,EAAA;GAZN,CAAA;AAcD;;AAED,SAASqxI,kBAAT,CAA4B3iJ,QAA5B,EAAsCra,KAAtC,EAA6CC,MAA7C,EAAqD6S,GAArD,EAA0D;AACxD,EAAA,IAAImK,SAAS,GAAGnK,GAAG,CAACmG,QAAJ,EAAhB,CAAA;AACA,EAAA,IAAIiE,UAAU,GAAGpK,GAAG,CAACoG,SAAJ,EAAjB,CAAA;AACAmB,EAAAA,QAAQ,CAAC,CAAD,CAAR,GAActkB,IAAI,CAAC8iC,GAAL,CAASxe,QAAQ,CAAC,CAAD,CAAR,GAAcra,KAAvB,EAA8Bid,SAA9B,IAA2Cjd,KAAzD,CAAA;AACAqa,EAAAA,QAAQ,CAAC,CAAD,CAAR,GAActkB,IAAI,CAAC8iC,GAAL,CAASxe,QAAQ,CAAC,CAAD,CAAR,GAAcpa,MAAvB,EAA+Bid,UAA/B,IAA6Cjd,MAA3D,CAAA;AACAoa,EAAAA,QAAQ,CAAC,CAAD,CAAR,GAActkB,IAAI,CAAC0iB,GAAL,CAAS4B,QAAQ,CAAC,CAAD,CAAjB,EAAsB,CAAtB,CAAd,CAAA;AACAA,EAAAA,QAAQ,CAAC,CAAD,CAAR,GAActkB,IAAI,CAAC0iB,GAAL,CAAS4B,QAAQ,CAAC,CAAD,CAAjB,EAAsB,CAAtB,CAAd,CAAA;AACD,CAAA;;AAEM,SAASuiJ,aAAT,CAAuBnnI,KAAvB,EAA8ByK,IAA9B,EAAoCoE,OAApC,EAA6C24H,iBAA7C,EAAgEt1I,GAAhE,EAAqE;EAC1E8N,KAAK,GAAGyK,IAAI,CAACrjB,KAAL,CAAWuzC,KAAX,CAAiB36B,KAAjB,CAAR,CAAA;AACA,EAAA,IAAIh4B,IAAI,GAAGyiC,IAAI,CAACrjB,KAAL,CAAWqgJ,QAAX,CAAoB;AAC7BznI,IAAAA,KAAK,EAAEA,KAAAA;AADsB,GAApB,EAER;AACD;AACA;IACAh/B,SAAS,EAAEkxB,GAAG,CAAClxB,SAAAA;AAHd,GAFQ,CAAX,CAAA;AAOA,EAAA,IAAI+2F,SAAS,GAAG7lE,GAAG,CAAC6lE,SAApB,CAAA;;AAEA,EAAA,IAAIA,SAAJ,EAAe;AACb,IAAA,IAAI2vE,QAAQ,GAAG;AACb1nI,MAAAA,KAAK,EAAEy9F,eAAA,CAA2BhzF,IAA3B,EAAiC;AACtCzK,QAAAA,KAAK,EAAEA,KAAAA;AAD+B,OAAjC,CADM;MAIb2nI,aAAa,EAAEl9H,IAAI,CAAC5L,GAJP;MAKb2hC,SAAS,EAAE/1B,IAAI,CAACsV,KALH;AAMb6nH,MAAAA,UAAU,EAAE,EAAA;KANd,CAAA;AAQAp/H,IAAAA,MAAA,CAAYg/H,iBAAZ,EAA+B,UAAUK,OAAV,EAAmB;MAChD,IAAIx2F,MAAM,GAAGxiC,OAAO,CAACi5H,gBAAR,CAAyBD,OAAO,CAACh3H,WAAjC,CAAb,CAAA;AACA,MAAA,IAAI5b,SAAS,GAAG4yI,OAAO,CAAC7H,eAAxB,CAAA;MACA,IAAI+H,UAAU,GAAG12F,MAAM,IAAIA,MAAM,CAAC/hB,aAAP,CAAqBr6B,SAArB,CAA3B,CAAA;MACA8yI,UAAU,IAAIL,QAAQ,CAACE,UAAT,CAAoB/iK,IAApB,CAAyBkjK,UAAzB,CAAd,CAAA;KAJF,CAAA,CAAA;;AAOA,IAAA,IAAIv/H,QAAA,CAAgBuvD,SAAhB,CAAJ,EAAgC;MAC9B/vF,IAAI,GAAG+vF,SAAS,CAAC9pF,OAAV,CAAkB,SAAlB,EAA6BjG,IAA7B,CAAP,CAAA;KADF,MAEO,IAAIwgC,UAAA,CAAkBuvD,SAAlB,CAAJ,EAAkC;AACvC/vF,MAAAA,IAAI,GAAG+vF,SAAS,CAAC2vE,QAAD,CAAhB,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAO1/J,IAAP,CAAA;AACD,CAAA;AACM,SAASggK,sBAAT,CAAgCv9H,IAAhC,EAAsCzK,KAAtC,EAA6C68D,UAA7C,EAAyD;AAC9D,EAAA,IAAIjwF,SAAS,GAAGm3D,QAAA,EAAhB,CAAA;EACAA,MAAA,CAAcn3D,SAAd,EAAyBA,SAAzB,EAAoCiwF,UAAU,CAACvpE,QAA/C,CAAA,CAAA;EACAywC,SAAA,CAAiBn3D,SAAjB,EAA4BA,SAA5B,EAAuCiwF,UAAU,CAACj4E,QAAlD,CAAA,CAAA;AACA,EAAA,OAAOiT,gBAAA,CAAuB,CAAC4S,IAAI,CAACK,WAAL,CAAiB9K,KAAjB,CAAD,EAA0B,CAAC68D,UAAU,CAACtgC,WAAX,IAA0B,CAA3B,IAAgC,CAACsgC,UAAU,CAACzgC,cAAX,IAA6B,CAA9B,KAAoCygC,UAAU,CAAC9zB,WAAX,IAA0B,CAA9D,CAA1D,CAAvB,EAAoJn8D,SAApJ,CAAP,CAAA;AACD,CAAA;AACM,SAASq7J,iCAAT,CAA2CjoI,KAA3C,EAAkDm2H,QAAlD,EAA4Dt5D,UAA5D,EAAwE/7C,SAAxE,EAAmFuqB,gBAAnF,EAAqGhuD,GAArG,EAA0G;AAC/G;AACA,EAAA,IAAI6tI,UAAU,GAAGtoF,WAAW,CAACQ,eAAZ,CAA4By5B,UAAU,CAACvpE,QAAvC,EAAiD,CAAjD,EAAoDupE,UAAU,CAACzgC,cAA/D,CAAjB,CAAA;AACAygC,EAAAA,UAAU,CAAC9zB,WAAX,GAAyBsC,gBAAgB,CAACpyC,GAAjB,CAAqB,CAAC,OAAD,EAAU,QAAV,CAArB,CAAzB,CAAA;EACAguI,kBAAkB,CAAC9Q,QAAD,EAAWr1G,SAAX,EAAsBuqB,gBAAtB,EAAwChuD,GAAxC,EAA6C;IAC7DuH,QAAQ,EAAEojJ,sBAAsB,CAAClnH,SAAS,CAACrW,IAAX,EAAiBzK,KAAjB,EAAwB68D,UAAxB,CAD6B;IAE7D1uD,KAAK,EAAE+8G,UAAU,CAAC31I,SAF2C;IAG7D64B,aAAa,EAAE88G,UAAU,CAACzxG,iBAAAA;AAHmC,GAA7C,CAAlB,CAAA;AAKD,CAAA;AACM,SAASyuH,aAAT,CAAuB12J,EAAvB,EAA2Bu+D,EAA3B,EAA+B02F,SAA/B,EAA0C;EAC/CA,SAAS,GAAGA,SAAS,IAAI,CAAzB,CAAA;EACA,OAAO;AACL3uJ,IAAAA,EAAE,EAAEtG,EAAE,CAACi1J,SAAD,CADD;AAEL1uJ,IAAAA,EAAE,EAAEvG,EAAE,CAAC,CAAA,GAAIi1J,SAAL,CAFD;AAGL7kK,IAAAA,EAAE,EAAEmuE,EAAE,CAAC02F,SAAD,CAHD;AAIL5kK,IAAAA,EAAE,EAAEkuE,EAAE,CAAC,CAAA,GAAI02F,SAAL,CAAA;GAJR,CAAA;AAMD,CAAA;AACM,SAAS0B,aAAT,CAAuBhqD,EAAvB,EAA2BC,EAA3B,EAA+BqoD,SAA/B,EAA0C;EAC/CA,SAAS,GAAGA,SAAS,IAAI,CAAzB,CAAA;EACA,OAAO;AACLllK,IAAAA,CAAC,EAAE48G,EAAE,CAACsoD,SAAD,CADA;AAELjlK,IAAAA,CAAC,EAAE28G,EAAE,CAAC,CAAA,GAAIsoD,SAAL,CAFA;AAGLl8J,IAAAA,KAAK,EAAE6zG,EAAE,CAACqoD,SAAD,CAHJ;AAILj8J,IAAAA,MAAM,EAAE4zG,EAAE,CAAC,CAAA,GAAIqoD,SAAL,CAAA;GAJZ,CAAA;AAMD,CAAA;AACM,SAAS2B,eAAT,CAAyBlmK,EAAzB,EAA6BC,EAA7B,EAAiCklC,EAAjC,EAAqCjlC,CAArC,EAAwCC,UAAxC,EAAoDC,QAApD,EAA8D;EACnE,OAAO;AACLJ,IAAAA,EAAE,EAAEA,EADC;AAELC,IAAAA,EAAE,EAAEA,EAFC;AAGLklC,IAAAA,EAAE,EAAEA,EAHC;AAILjlC,IAAAA,CAAC,EAAEA,CAJE;AAKLC,IAAAA,UAAU,EAAEA,UALP;AAMLC,IAAAA,QAAQ,EAAEA,QANL;AAOLO,IAAAA,SAAS,EAAE,IAAA;GAPb,CAAA;AASD;;AC1MD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAIwlK,oBAAoB;AACxB;AACA,UAAUrjJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACojJ,oBAAD,EAAuBrjJ,MAAvB,CAAT,CAAA;;AAEA,EAAA,SAASqjJ,oBAAT,GAAgC;AAC9B,IAAA,OAAOrjJ,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGE4jK,EAAAA,oBAAoB,CAACvnK,SAArB,CAA+BujK,YAA/B,GAA8C,UAAUlO,QAAV,EAAoBn2H,KAApB,EAA2B8gB,SAA3B,EAAsCuqB,gBAAtC,EAAwDhuD,GAAxD,EAA6D;AACzG,IAAA,IAAIotB,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;AACA,IAAA,IAAI+wB,IAAI,GAAG/wB,IAAI,CAAC+wB,IAAhB,CAAA;AACA,IAAA,IAAIurG,eAAe,GAAG17F,gBAAgB,CAACpyC,GAAjB,CAAqB,MAArB,CAAtB,CAAA;AACA,IAAA,IAAIiwG,WAAW,GAAGxoE,YAAY,CAAClF,IAAD,EAAO/wB,IAAP,CAAZ,CAAyBhM,YAAzB,CAAsCgM,IAAtC,CAAA,CAA4CswB,eAA5C,EAAlB,CAAA;AACA,IAAA,IAAIutG,UAAU,GAAG79H,IAAI,CAACI,aAAL,CAAmBJ,IAAI,CAACK,WAAL,CAAiB9K,KAAjB,EAAwB,IAAxB,CAAnB,CAAjB,CAAA;;AAEA,IAAA,IAAI+mI,eAAe,IAAIA,eAAe,KAAK,MAA3C,EAAmD;AACjD,MAAA,IAAIwB,OAAO,GAAGC,YAAA,CAAwBn9F,gBAAxB,CAAd,CAAA;AACA,MAAA,IAAI+5F,aAAa,GAAGqD,qBAAmB,CAAC1B,eAAD,CAAnB,CAAqCt8H,IAArC,EAA2C69H,UAA3C,EAAuDp/B,WAAvD,CAApB,CAAA;MACAk8B,aAAa,CAAChgK,KAAd,GAAsBmjK,OAAtB,CAAA;AACApS,MAAAA,QAAQ,CAACmO,UAAT,GAAsBc,aAAa,CAACvxJ,IAApC,CAAA;MACAsiJ,QAAQ,CAACtiC,OAAT,GAAmBuxC,aAAnB,CAAA;AACD,KAAA;;IAED,IAAIvoE,UAAU,GAAGvtB,QAAA,CAA2B9T,IAAI,CAACze,KAAhC,EAAuC+D,SAAvC,CAAjB,CAAA;IACA0nH,iCAAA;IACAxoI,KADA,EACOm2H,QADP,EACiBt5D,UADjB,EAC6B/7C,SAD7B,EACwCuqB,gBADxC,EAC0DhuD,GAD1D,CAAA,CAAA;GAhBF,CAAA;AAmBA;AACF;AACA;;;EAGEgrJ,oBAAoB,CAACvnK,SAArB,CAA+BklK,kBAA/B,GAAoD,UAAUhmI,KAAV,EAAiB8gB,SAAjB,EAA4BuqB,gBAA5B,EAA8C;AAChG,IAAA,IAAIwxB,UAAU,GAAGvtB,QAAA,CAA2BxuB,SAAS,CAACrW,IAAV,CAAe+wB,IAAf,CAAoBze,KAA/C,EAAsD+D,SAAtD,EAAiE;AAChF0b,MAAAA,WAAW,EAAE,KAAA;KADE,CAAjB,CADgG;;AAKhGqgC,IAAAA,UAAU,CAAC9zB,WAAX,GAAyBsC,gBAAgB,CAACpyC,GAAjB,CAAqB,CAAC,QAAD,EAAW,QAAX,CAArB,CAAzB,CAAA;AACA,IAAA,IAAI0sC,GAAG,GAAG6iG,sBAAA,CAAkC1nH,SAAS,CAACrW,IAA5C,EAAkDzK,KAAlD,EAAyD68D,UAAzD,CAAV,CAAA;IACA,OAAO;AACLt7F,MAAAA,CAAC,EAAEokE,GAAG,CAAC,CAAD,CADD;AAELnkE,MAAAA,CAAC,EAAEmkE,GAAG,CAAC,CAAD,CAFD;AAGLryC,MAAAA,QAAQ,EAAEupE,UAAU,CAACvpE,QAAX,IAAuBupE,UAAU,CAACzgC,cAAX,GAA4B,CAA5B,GAAgC97D,IAAI,CAACI,EAArC,GAA0C,CAAjE,CAAA;KAHZ,CAAA;GAPF,CAAA;AAaA;AACF;AACA;;;AAGE2nK,EAAAA,oBAAoB,CAACvnK,SAArB,CAA+BykK,qBAA/B,GAAuD,UAAU34J,SAAV,EAAqB+5F,KAArB,EAA4B7lD,SAA5B,EAAuCuqB,gBAAvC,EAAyD;AAC9G,IAAA,IAAI5gC,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;AACA,IAAA,IAAI+wB,IAAI,GAAG/wB,IAAI,CAAC+wB,IAAhB,CAAA;AACA,IAAA,IAAIlvB,UAAU,GAAG7B,IAAI,CAACswB,eAAL,CAAqB,IAArB,CAAjB,CAAA;AACA,IAAA,IAAImuE,WAAW,GAAGxoE,YAAY,CAAClF,IAAD,EAAO/wB,IAAP,CAAZ,CAAyBhM,YAAzB,CAAsCgM,IAAtC,CAAA,CAA4CswB,eAA5C,EAAlB,CAAA;IACA,IAAIvlC,QAAQ,GAAGiV,IAAI,CAAC5L,GAAL,KAAa,GAAb,GAAmB,CAAnB,GAAuB,CAAtC,CAAA;IACA,IAAI6pI,YAAY,GAAG,CAAC97J,SAAS,CAACrL,CAAX,EAAcqL,SAAS,CAACpL,CAAxB,CAAnB,CAAA;AACAknK,IAAAA,YAAY,CAAClzI,QAAD,CAAZ,IAA0BmxE,KAAK,CAACnxE,QAAD,CAA/B,CAAA;AACAkzI,IAAAA,YAAY,CAAClzI,QAAD,CAAZ,GAAyBl1B,IAAI,CAAC8iC,GAAL,CAASkJ,UAAU,CAAC,CAAD,CAAnB,EAAwBo8H,YAAY,CAAClzI,QAAD,CAApC,CAAzB,CAAA;AACAkzI,IAAAA,YAAY,CAAClzI,QAAD,CAAZ,GAAyBl1B,IAAI,CAAC0iB,GAAL,CAASspB,UAAU,CAAC,CAAD,CAAnB,EAAwBo8H,YAAY,CAAClzI,QAAD,CAApC,CAAzB,CAAA;AACA,IAAA,IAAImzI,gBAAgB,GAAG,CAACz/B,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAA7B,IAAoC,CAA3D,CAAA;AACA,IAAA,IAAIo9B,WAAW,GAAG,CAACqC,gBAAD,EAAmBA,gBAAnB,CAAlB,CAAA;IACArC,WAAW,CAAC9wI,QAAD,CAAX,GAAwBkzI,YAAY,CAAClzI,QAAD,CAApC,CAZ8G;;IAc9G,IAAIozI,cAAc,GAAG,CAAC;AACpBx6H,MAAAA,aAAa,EAAE,QAAA;AADK,KAAD,EAElB;AACDD,MAAAA,KAAK,EAAE,QAAA;AADN,KAFkB,CAArB,CAAA;IAKA,OAAO;AACL5sC,MAAAA,CAAC,EAAEmnK,YAAY,CAAC,CAAD,CADV;AAELlnK,MAAAA,CAAC,EAAEknK,YAAY,CAAC,CAAD,CAFV;MAGLp1I,QAAQ,EAAE1mB,SAAS,CAAC0mB,QAHf;AAILgzI,MAAAA,WAAW,EAAEA,WAJR;MAKLC,aAAa,EAAEqC,cAAc,CAACpzI,QAAD,CAAA;KAL/B,CAAA;GAnBF,CAAA;;AA4BA,EAAA,OAAO6yI,oBAAP,CAAA;AACD,CAlFD,CAkFE1E,eAlFF,CAFA,CAAA;;AAsFA,SAASjjG,YAAT,CAAsBlF,IAAtB,EAA4B/wB,IAA5B,EAAkC;EAChC,IAAIvY,GAAG,GAAG,EAAV,CAAA;EACAA,GAAG,CAACuY,IAAI,CAAC5L,GAAL,GAAW,WAAZ,CAAH,GAA8B4L,IAAI,CAACsV,KAAnC,CAAA;AACA,EAAA,OAAOyb,IAAI,CAACkF,YAAL,CAAkBxuC,GAAlB,CAAP,CAAA;AACD,CAAA;;AAED,IAAIu2I,qBAAmB,GAAG;AACxBp2I,EAAAA,IAAI,EAAE,SAAUoY,IAAAA,CAAAA,IAAV,EAAgB69H,UAAhB,EAA4Bp/B,WAA5B,EAAyC;AAC7C,IAAA,IAAIlhB,WAAW,GAAGwgD,aAAA,CAAyB,CAACF,UAAD,EAAap/B,WAAW,CAAC,CAAD,CAAxB,CAAzB,EAAuD,CAACo/B,UAAD,EAAap/B,WAAW,CAAC,CAAD,CAAxB,CAAvD,EAAqF2/B,eAAe,CAACp+H,IAAD,CAApG,CAAlB,CAAA;IACA,OAAO;AACL52B,MAAAA,IAAI,EAAE,MADD;AAELuwD,MAAAA,gBAAgB,EAAE,IAFb;AAGLh4D,MAAAA,KAAK,EAAE47G,WAAAA;KAHT,CAAA;GAHsB;AASxB8gD,EAAAA,MAAM,EAAE,SAAUr+H,MAAAA,CAAAA,IAAV,EAAgB69H,UAAhB,EAA4Bp/B,WAA5B,EAAyC;AAC/C,IAAA,IAAIsK,SAAS,GAAGlzI,IAAI,CAAC0iB,GAAL,CAAS,CAAT,EAAYynB,IAAI,CAACgpG,YAAL,EAAZ,CAAhB,CAAA;IACA,IAAItW,IAAI,GAAG+L,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAAvC,CAAA;IACA,OAAO;AACLr1H,MAAAA,IAAI,EAAE,MADD;MAELzH,KAAK,EAAEo8J,aAAA,CAAyB,CAACF,UAAU,GAAG90B,SAAS,GAAG,CAA1B,EAA6BtK,WAAW,CAAC,CAAD,CAAxC,CAAzB,EAAuE,CAACsK,SAAD,EAAYrW,IAAZ,CAAvE,EAA0F0rC,eAAe,CAACp+H,IAAD,CAAzG,CAAA;KAFT,CAAA;AAID,GAAA;AAhBuB,CAA1B,CAAA;;AAmBA,SAASo+H,eAAT,CAAyBp+H,IAAzB,EAA+B;EAC7B,OAAOA,IAAI,CAAC5L,GAAL,KAAa,GAAb,GAAmB,CAAnB,GAAuB,CAA9B,CAAA;AACD;;AChKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAIkqI,gBAAgB;AACpB;AACA,UAAU/jJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC8jJ,gBAAD,EAAmB/jJ,MAAnB,CAAT,CAAA;;AAEA,EAAA,SAAS+jJ,gBAAT,GAA4B;AAC1B,IAAA,IAAI7jJ,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAak1J,gBAAgB,CAACl1J,IAA9B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED6jJ,gBAAgB,CAACl1J,IAAjB,GAAwB,aAAxB,CAAA;EACAk1J,gBAAgB,CAACt1I,aAAjB,GAAiC;AAC/B;AACAI,IAAAA,IAAI,EAAE,MAFyB;AAG/B;AACA7G,IAAAA,CAAC,EAAE,EAJ4B;AAK/BnZ,IAAAA,IAAI,EAAE,MALyB;AAM/B;AACA;AACA43D,IAAAA,IAAI,EAAE,KARyB;AAS/BL,IAAAA,cAAc,EAAE,IATe;AAU/BprC,IAAAA,KAAK,EAAE,IAVwB;AAW/BmB,IAAAA,MAAM,EAAE,IAXuB;AAY/BgwE,IAAAA,IAAI,EAAE,EAZyB;AAa/B;AACA;AACAzjG,IAAAA,SAAS,EAAE,IAfoB;AAgB/BojD,IAAAA,uBAAuB,EAAE,GAhBM;AAiB/Br+B,IAAAA,SAAS,EAAE;AACTrsB,MAAAA,KAAK,EAAE,SADE;AAETmE,MAAAA,KAAK,EAAE,CAFE;AAGTsJ,MAAAA,IAAI,EAAE,QAAA;KApBuB;AAsB/Bm1J,IAAAA,WAAW,EAAE;AACX5iK,MAAAA,KAAK,EAAE,uBAAA;KAvBsB;AAyB/ButB,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,IADD;AAELkkE,MAAAA,SAAS,EAAE,IAFN;AAGL/2F,MAAAA,SAAS,EAAE,MAHN;AAILylB,MAAAA,MAAM,EAAE,CAJH;AAKLrgB,MAAAA,KAAK,EAAE,MALF;MAMLogB,OAAO,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CANJ;AAOLxE,MAAAA,eAAe,EAAE,MAPZ;AAQLi2B,MAAAA,WAAW,EAAE,IARR;AASLvxB,MAAAA,WAAW,EAAE,CATR;AAULyxB,MAAAA,YAAY,EAAE,CAAA;KAnCe;AAqC/B+rH,IAAAA,MAAM,EAAE;AACNrwI,MAAAA,IAAI,EAAE,KADA;AAEN;AACAo+D,MAAAA,IAAI,EAAE,0MAHA;AAINh/D,MAAAA,IAAI,EAAE,EAJA;AAKN;AACAxM,MAAAA,MAAM,EAAE,EANF;AAON;AACA;AACArgB,MAAAA,KAAK,EAAE,MATD;AAUNgR,MAAAA,UAAU,EAAE,CAVN;AAWNC,MAAAA,WAAW,EAAE,MAXP;AAYNL,MAAAA,aAAa,EAAE,CAZT;AAaNE,MAAAA,aAAa,EAAE,CAbT;AAcN;AACA0sC,MAAAA,QAAQ,EAAE,EAAA;AAfJ,KAAA;GArCV,CAAA;AAuDA,EAAA,OAAOmlH,gBAAP,CAAA;AACD,CAnED,CAmEEl1G,cAnEF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA,IAAIqa,OAAK,GAAGC,SAAS,EAArB,CAAA;AACA,IAAI3gE,MAAI,GAAGg7B,MAAX,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASygI,QAAT,CAAkBphK,GAAlB,EAAuBwV,GAAvB,EAA4Bi9G,OAA5B,EAAqC;EAC1C,IAAIniH,GAAG,CAACkD,IAAR,EAAc;AACZ,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI67D,EAAE,GAAG75D,GAAG,CAACghC,KAAJ,EAAT,CAAA;AACA6vB,EAAAA,OAAK,CAACgJ,EAAD,CAAL,CAAUgyF,OAAV,KAAsBh7F,OAAK,CAACgJ,EAAD,CAAL,CAAUgyF,OAAV,GAAoB,EAA1C,CAAA,CAAA;AACAC,EAAAA,mBAAmB,CAACjyF,EAAD,EAAK75D,GAAL,CAAnB,CAAA;EACA,IAAI+rJ,MAAM,GAAGl7F,OAAK,CAACgJ,EAAD,CAAL,CAAUgyF,OAAV,CAAkBrhK,GAAlB,MAA2BqmE,OAAK,CAACgJ,EAAD,CAAL,CAAUgyF,OAAV,CAAkBrhK,GAAlB,CAAyB,GAAA,EAApD,CAAb,CAAA;EACAuhK,MAAM,CAAC9uC,OAAP,GAAiBA,OAAjB,CAAA;AACD,CAAA;;AAED,SAAS6uC,mBAAT,CAA6BjyF,EAA7B,EAAiC75D,GAAjC,EAAsC;AACpC,EAAA,IAAI6wD,OAAK,CAACgJ,EAAD,CAAL,CAAUmyF,WAAd,EAA2B;AACzB,IAAA,OAAA;AACD,GAAA;;AAEDn7F,EAAAA,OAAK,CAACgJ,EAAD,CAAL,CAAUmyF,WAAV,GAAwB,IAAxB,CAAA;EACAC,UAAU,CAAC,OAAD,EAAU9gI,OAAA,CAAa+gI,OAAb,EAAsB,OAAtB,CAAV,CAAV,CAAA;AACAD,EAAAA,UAAU,CAAC,WAAD,EAAc9gI,OAAA,CAAa+gI,OAAb,EAAsB,WAAtB,CAAd,CAAV,CAPoC;;AASpCD,EAAAA,UAAU,CAAC,WAAD,EAAcE,OAAd,CAAV,CAAA;;AAEA,EAAA,SAASF,UAAT,CAAoBnM,SAApB,EAA+BhtI,EAA/B,EAAmC;AACjC+mD,IAAAA,EAAE,CAAC54B,EAAH,CAAM6+G,SAAN,EAAiB,UAAU/4J,CAAV,EAAa;AAC5B,MAAA,IAAIqlK,GAAG,GAAGC,oBAAkB,CAACrsJ,GAAD,CAA5B,CAAA;MACA7P,MAAI,CAAC0gE,OAAK,CAACgJ,EAAD,CAAL,CAAUgyF,OAAX,EAAoB,UAAUE,MAAV,EAAkB;QACxCA,MAAM,IAAIj5I,EAAE,CAACi5I,MAAD,EAAShlK,CAAT,EAAYqlK,GAAG,CAAC5pH,cAAhB,CAAZ,CAAA;AACD,OAFG,CAAJ,CAAA;AAGA8pH,MAAAA,sBAAsB,CAACF,GAAG,CAACG,QAAL,EAAevsJ,GAAf,CAAtB,CAAA;KALF,CAAA,CAAA;AAOD,GAAA;AACF,CAAA;;AAED,SAASssJ,sBAAT,CAAgCC,QAAhC,EAA0CvsJ,GAA1C,EAA+C;AAC7C,EAAA,IAAIwsJ,OAAO,GAAGD,QAAQ,CAACE,OAAT,CAAiBhmK,MAA/B,CAAA;AACA,EAAA,IAAIimK,OAAO,GAAGH,QAAQ,CAACI,OAAT,CAAiBlmK,MAA/B,CAAA;AACA,EAAA,IAAImmK,eAAJ,CAAA;;AAEA,EAAA,IAAIJ,OAAJ,EAAa;IACXI,eAAe,GAAGL,QAAQ,CAACE,OAAT,CAAiBD,OAAO,GAAG,CAA3B,CAAlB,CAAA;GADF,MAEO,IAAIE,OAAJ,EAAa;IAClBE,eAAe,GAAGL,QAAQ,CAACI,OAAT,CAAiBD,OAAO,GAAG,CAA3B,CAAlB,CAAA;AACD,GAAA;;AAED,EAAA,IAAIE,eAAJ,EAAqB;IACnBA,eAAe,CAACpqH,cAAhB,GAAiC,IAAjC,CAAA;IACAxiC,GAAG,CAACwiC,cAAJ,CAAmBoqH,eAAnB,CAAA,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAST,OAAT,CAAiBJ,MAAjB,EAAyBhlK,CAAzB,EAA4By7C,cAA5B,EAA4C;AAC1CupH,EAAAA,MAAM,CAAC9uC,OAAP,CAAe,OAAf,EAAwB,IAAxB,EAA8Bz6E,cAA9B,CAAA,CAAA;AACD,CAAA;;AAED,SAAS0pH,OAAT,CAAiBW,WAAjB,EAA8Bd,MAA9B,EAAsChlK,CAAtC,EAAyCy7C,cAAzC,EAAyD;AACvDupH,EAAAA,MAAM,CAAC9uC,OAAP,CAAe4vC,WAAf,EAA4B9lK,CAA5B,EAA+By7C,cAA/B,CAAA,CAAA;AACD,CAAA;;AAED,SAAS6pH,oBAAT,CAA4BrsJ,GAA5B,EAAiC;AAC/B,EAAA,IAAIusJ,QAAQ,GAAG;AACbE,IAAAA,OAAO,EAAE,EADI;AAEbE,IAAAA,OAAO,EAAE,EAAA;AAFI,GAAf,CAD+B;AAK/B;AACA;AACA;AACA;;AAEA,EAAA,IAAInqH,cAAc,GAAG,SAAjBA,cAAiB,CAAUjO,OAAV,EAAmB;AACtC,IAAA,IAAIu4H,WAAW,GAAGP,QAAQ,CAACh4H,OAAO,CAAC/9B,IAAT,CAA1B,CAAA;;AAEA,IAAA,IAAIs2J,WAAJ,EAAiB;MACfA,WAAW,CAACtlK,IAAZ,CAAiB+sC,OAAjB,CAAA,CAAA;AACD,KAFD,MAEO;MACLA,OAAO,CAACiO,cAAR,GAAyBA,cAAzB,CAAA;MACAxiC,GAAG,CAACwiC,cAAJ,CAAmBjO,OAAnB,CAAA,CAAA;AACD,KAAA;GARH,CAAA;;EAWA,OAAO;AACLiO,IAAAA,cAAc,EAAEA,cADX;AAEL+pH,IAAAA,QAAQ,EAAEA,QAAAA;GAFZ,CAAA;AAID,CAAA;;AAEM,SAASQ,UAAT,CAAoBviK,GAApB,EAAyBwV,GAAzB,EAA8B;EACnC,IAAIlF,GAAG,CAACkD,IAAR,EAAc;AACZ,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI67D,EAAE,GAAG75D,GAAG,CAACghC,KAAJ,EAAT,CAAA;AACA,EAAA,IAAI+qH,MAAM,GAAG,CAACl7F,OAAK,CAACgJ,EAAD,CAAL,CAAUgyF,OAAV,IAAqB,EAAtB,EAA0BrhK,GAA1B,CAAb,CAAA;;AAEA,EAAA,IAAIuhK,MAAJ,EAAY;IACVl7F,OAAK,CAACgJ,EAAD,CAAL,CAAUgyF,OAAV,CAAkBrhK,GAAlB,IAAyB,IAAzB,CAAA;AACD,GAAA;AACF;;ACxJD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,IAAIwiK,eAAe;AACnB;AACA,UAAUrlJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAColJ,eAAD,EAAkBrlJ,MAAlB,CAAT,CAAA;;AAEA,EAAA,SAASqlJ,eAAT,GAA2B;AACzB,IAAA,IAAInlJ,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaw2J,eAAe,CAACx2J,IAA7B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDmlJ,eAAe,CAACvpK,SAAhB,CAA0B8tC,MAA1B,GAAmC,UAAU07B,sBAAV,EAAkCz7B,OAAlC,EAA2CxxB,GAA3C,EAAgD;AACjF,IAAA,IAAI+sD,kBAAkB,GAAGv7B,OAAO,CAACw7B,YAAR,CAAqB,SAArB,CAAzB,CAAA;AACA,IAAA,IAAI+wD,SAAS,GAAG9wD,sBAAsB,CAACrxC,GAAvB,CAA2B,WAA3B,CAA2CmxC,IAAAA,kBAAkB,IAAIA,kBAAkB,CAACnxC,GAAnB,CAAuB,WAAvB,CAAjE,IAAwG,iBAAxH,CAFiF;AAGjF;;AAEAqxI,IAAAA,QAAA,CAAwB,aAAxB,EAAuCjtJ,GAAvC,EAA4C,UAAU6sJ,WAAV,EAAuB9lK,CAAvB,EAA0By7C,cAA1B,EAA0C;AACpF;AACA,MAAA,IAAIu7E,SAAS,KAAK,MAAd,KAAyB8uC,WAAW,KAAK,OAAhB,IAA2B9uC,SAAS,CAACptH,OAAV,CAAkBk8J,WAAlB,CAAkC,IAAA,CAAtF,CAAJ,EAA8F;AAC5FrqH,QAAAA,cAAc,CAAC;AACbhsC,UAAAA,IAAI,EAAE,mBADO;AAEbq2J,UAAAA,WAAW,EAAEA,WAFA;AAGb3oK,UAAAA,CAAC,EAAE6C,CAAC,IAAIA,CAAC,CAAC2S,OAHG;AAIbvV,UAAAA,CAAC,EAAE4C,CAAC,IAAIA,CAAC,CAAC6S,OAAAA;AAJG,SAAD,CAAd,CAAA;AAMD,OAAA;KATH,CAAA,CAAA;GALF,CAAA;;EAkBAozJ,eAAe,CAACvpK,SAAhB,CAA0Bo8B,MAA1B,GAAmC,UAAU2R,OAAV,EAAmBxxB,GAAnB,EAAwB;AACzDitJ,IAAAA,UAAA,CAA0B,aAA1B,EAAyCjtJ,GAAzC,CAAA,CAAA;GADF,CAAA;;EAIAgtJ,eAAe,CAACvpK,SAAhB,CAA0B4iB,OAA1B,GAAoC,UAAUmrB,OAAV,EAAmBxxB,GAAnB,EAAwB;AAC1DitJ,IAAAA,UAAA,CAA0B,aAA1B,EAAyCjtJ,GAAzC,CAAA,CAAA;GADF,CAAA;;EAIAgtJ,eAAe,CAACx2J,IAAhB,GAAuB,aAAvB,CAAA;AACA,EAAA,OAAOw2J,eAAP,CAAA;AACD,CAtCD,CAsCEp8F,aAtCF,CAFA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA;AACA;AACA;AACA;AACA;;AAEe,SAASs8F,mBAAT,CAA6BvpG,MAA7B,EAAqCnyB,OAArC,EAA8C;EAC3D,IAAInT,KAAK,GAAG,EAAZ,CAAA;AACA,EAAA,IAAImV,WAAW,GAAGmwB,MAAM,CAACnwB,WAAzB,CAAA;AACA,EAAA,IAAIrZ,WAAJ,CAAA;;AAEA,EAAA,IAAIqZ,WAAW,IAAI,IAAf,IAAuB,EAAErZ,WAAW,GAAGqX,OAAO,CAACi5H,gBAAR,CAAyBj3H,WAAzB,CAAhB,CAA3B,EAAmF;IACjF,OAAO;AACLnV,MAAAA,KAAK,EAAE,EAAA;KADT,CAAA;AAGD,GAAA;;AAED,EAAA,IAAI1G,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;EACA,IAAIoC,SAAS,GAAG4c,cAAA,CAAyB7c,IAAzB,EAA+BgsC,MAA/B,CAAhB,CAAA;;AAEA,EAAA,IAAI/rC,SAAS,IAAI,IAAb,IAAqBA,SAAS,GAAG,CAAjC,IAAsCuT,SAAA,CAAevT,SAAf,CAA1C,EAAqE;IACnE,OAAO;AACLyG,MAAAA,KAAK,EAAE,EAAA;KADT,CAAA;AAGD,GAAA;;AAED,EAAA,IAAI31B,EAAE,GAAGivB,IAAI,CAACiI,gBAAL,CAAsBhI,SAAtB,CAAT,CAAA;AACA,EAAA,IAAIrD,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;EAEA,IAAI2F,WAAW,CAACg8C,kBAAhB,EAAoC;AAClC93C,IAAAA,KAAK,GAAGlE,WAAW,CAACg8C,kBAAZ,CAA+Bv+C,SAA/B,KAA6C,EAArD,CAAA;AACD,GAFD,MAEO,IAAIrD,QAAQ,IAAIA,QAAQ,CAACuO,WAAzB,EAAsC;IAC3C,IAAI6gC,MAAM,CAACwpG,SAAX,EAAsB;AACpB,MAAA,IAAIlsI,QAAQ,GAAG1M,QAAQ,CAAC2M,WAAT,EAAf,CAAA;AACA,MAAA,IAAIC,SAAS,GAAG5M,QAAQ,CAAC6M,YAAT,CAAsBH,QAAtB,CAAhB,CAAA;AACA,MAAA,IAAIQ,YAAY,GAAGN,SAAS,CAACK,GAA7B,CAAA;AACA,MAAA,IAAID,WAAW,GAAGN,QAAQ,CAACO,GAA3B,CAAA;AACA,MAAA,IAAIK,cAAc,GAAGJ,YAAY,KAAK,GAAjB,IAAwBA,YAAY,KAAK,QAAzC,GAAoD,CAApD,GAAwD,CAA7E,CAAA;AACA,MAAA,IAAIG,OAAO,GAAGjK,IAAI,CAACgK,YAAL,CAAkBJ,WAAlB,CAAd,CAAA;MACA,IAAIsB,WAAW,GAAG,EAAlB,CAAA;MACAA,WAAW,CAAChB,cAAD,CAAX,GAA8BlK,IAAI,CAACiE,GAAL,CAASgG,OAAT,EAAkBhK,SAAlB,CAA9B,CAAA;AACAiL,MAAAA,WAAW,CAAC,CAAIhB,GAAAA,cAAL,CAAX,GAAkClK,IAAI,CAACiE,GAAL,CAASjE,IAAI,CAACwK,kBAAL,CAAwB,sBAAxB,CAAT,EAA0DvK,SAA1D,CAAlC,CAAA;AACAyG,MAAAA,KAAK,GAAG9J,QAAQ,CAACuO,WAAT,CAAqBD,WAArB,KAAqC,EAA7C,CAAA;AACD,KAXD,MAWO;AACLxE,MAAAA,KAAK,GAAG9J,QAAQ,CAACuO,WAAT,CAAqBnL,IAAI,CAAC0+C,SAAL,CAAelrC,GAAA,CAAW5W,QAAQ,CAACwN,UAApB,EAAgC,UAAUP,GAAV,EAAe;AACzF,QAAA,OAAO7J,IAAI,CAACgK,YAAL,CAAkBH,GAAlB,CAAP,CAAA;AACD,OAF2C,CAAf,EAEzB5J,SAFyB,CAArB,KAEW,EAFnB,CAAA;AAGD,KAAA;GAhBI,MAiBA,IAAIlvB,EAAJ,EAAQ;AACb;AACA,IAAA,IAAIrC,IAAI,GAAGqC,EAAE,CAAC0jD,eAAH,EAAA,CAAqBrvC,KAArB,EAAX,CAAA;AACA1W,IAAAA,IAAI,CAAC4nD,cAAL,CAAoBvlD,EAAE,CAAC6G,SAAvB,CAAA,CAAA;IACA8uB,KAAK,GAAG,CAACh4B,IAAI,CAACnC,CAAL,GAASmC,IAAI,CAAC6G,KAAL,GAAa,CAAvB,EAA0B7G,IAAI,CAAClC,CAAL,GAASkC,IAAI,CAAC8G,MAAL,GAAc,CAAjD,CAAR,CAAA;AACD,GAAA;;EAED,OAAO;AACLkxB,IAAAA,KAAK,EAAEA,KADF;AAEL31B,IAAAA,EAAE,EAAEA,EAAAA;GAFN,CAAA;AAID;;ACvGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BA,IAAImoE,OAAK,GAAGC,SAAS,EAArB,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,SAASs8F,WAAT,CAAqB74H,OAArB,EAA8B/C,OAA9B,EAAuCxxB,GAAvC,EAA4C;AACzD,EAAA,IAAI6sJ,WAAW,GAAGt4H,OAAO,CAACs4H,WAA1B,CAAA;EACA,IAAIxuI,KAAK,GAAG,CAACkW,OAAO,CAACrwC,CAAT,EAAYqwC,OAAO,CAACpwC,CAApB,CAAZ,CAAA;EACA,IAAIw/D,MAAM,GAAGpvB,OAAb,CAAA;AACA,EAAA,IAAIiO,cAAc,GAAGjO,OAAO,CAACiO,cAAR,IAA0Bg4B,MAAI,CAACx6D,GAAG,CAACwiC,cAAL,EAAqBxiC,GAArB,CAAnD,CAAA;EACA,IAAI2sD,gBAAgB,GAAGn7B,OAAO,CAACw7B,YAAR,CAAqB,aAArB,CAAA,CAAoCL,gBAA3D,CALyD;AAMzD;;EAEA,IAAI,CAACA,gBAAL,EAAuB;AACrB,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI0gG,YAAY,CAAChvI,KAAD,CAAhB,EAAyB;AACvB;AACA;IACAA,KAAK,GAAG6uI,mBAAmB,CAAC;MAC1B15H,WAAW,EAAEmwB,MAAM,CAACnwB,WADM;AAE1B;AACA;MACA5b,SAAS,EAAE+rC,MAAM,CAAC/rC,SAAAA;AAJQ,KAAD,EAKxB4Z,OALwB,CAAnB,CAKInT,KALZ,CAAA;AAMD,GAAA;;AAED,EAAA,IAAIivI,cAAc,GAAGD,YAAY,CAAChvI,KAAD,CAAjC,CAvByD;AAwBzD;AACA;AACA;;AAEA,EAAA,IAAIkvI,aAAa,GAAG5pG,MAAM,CAAC8I,QAA3B,CAAA;AACA,EAAA,IAAIA,QAAQ,GAAGE,gBAAgB,CAACF,QAAhC,CAAA;EACA,IAAI+gG,UAAU,GAAGX,WAAW,KAAK,OAAhB,IAA2BQ,YAAY,CAAChvI,KAAD,CAAxD,CAAA;EACA,IAAIovI,aAAa,GAAG,EAApB,CAAA;EACA,IAAIC,YAAY,GAAG,EAAnB,CAAA;AACA,EAAA,IAAIC,cAAc,GAAG;AACnB/pJ,IAAAA,IAAI,EAAE,EADa;AAEnBvb,IAAAA,GAAG,EAAE,EAAA;GAFP,CAAA;AAIA,EAAA,IAAIulK,QAAQ,GAAG;AACbl4C,IAAAA,WAAW,EAAE7hE,OAAK,CAAC6hE,WAAD,EAAcg4C,YAAd,CADL;AAEbG,IAAAA,WAAW,EAAEh6G,OAAK,CAACg6G,WAAD,EAAcF,cAAd,CAAA;AAFL,GAAf,CArCyD;;EA0CzDx9J,MAAI,CAACw8D,gBAAgB,CAACC,WAAlB,EAA+B,UAAUr4C,QAAV,EAAoB84C,WAApB,EAAiC;AAClE;IACA,IAAIygG,qBAAqB,GAAGR,cAAc,IAAI/4I,QAAQ,CAAC67B,YAAT,CAAsB/xB,KAAtB,CAA9C,CAAA;AACAluB,IAAAA,MAAI,CAACw8D,gBAAgB,CAACA,gBAAjB,CAAkCU,WAAlC,CAAD,EAAiD,UAAUkB,QAAV,EAAoB/jE,GAApB,EAAyB;AAC5E,MAAA,IAAI4iC,IAAI,GAAGmhC,QAAQ,CAACnhC,IAApB,CAAA;MACA,IAAI2gI,aAAa,GAAGC,iBAAiB,CAACT,aAAD,EAAgBh/F,QAAhB,CAArC,CAF4E;;MAI5E,IAAI,CAACi/F,UAAD,IAAeM,qBAAf,KAAyC,CAACP,aAAD,IAAkBQ,aAA3D,CAAJ,EAA+E;AAC7E,QAAA,IAAI1mK,GAAG,GAAG0mK,aAAa,IAAIA,aAAa,CAACprI,KAAzC,CAAA;;AAEA,QAAA,IAAIt7B,GAAG,IAAI,IAAP,IAAe,CAACimK,cAApB,EAAoC;AAClCjmK,UAAAA,GAAG,GAAG+lC,IAAI,CAACmwB,WAAL,CAAiBl/B,KAAjB,CAAN,CAAA;AACD,SAAA;;AAEDh3B,QAAAA,GAAG,IAAI,IAAP,IAAe4mK,aAAa,CAAC1/F,QAAD,EAAWlnE,GAAX,EAAgBumK,QAAhB,EAA0B,KAA1B,EAAiCH,aAAjC,CAA5B,CAAA;AACD,OAAA;AACF,KAbG,CAAJ,CAAA;GAHE,CAAJ,CA1CyD;;EA6DzD,IAAIS,YAAY,GAAG,EAAnB,CAAA;AACA/9J,EAAAA,MAAI,CAACs8D,QAAD,EAAW,UAAU0hG,WAAV,EAAuBC,MAAvB,EAA+B;AAC5C,IAAA,IAAI1/F,SAAS,GAAGy/F,WAAW,CAACz/F,SAA5B,CAD4C;;AAG5C,IAAA,IAAIA,SAAS,IAAI,CAACg/F,YAAY,CAACU,MAAD,CAA9B,EAAwC;MACtCj+J,MAAI,CAACu+D,SAAS,CAACjC,QAAX,EAAqB,UAAU4hG,WAAV,EAAuBC,MAAvB,EAA+B;AACtD,QAAA,IAAIC,UAAU,GAAGb,YAAY,CAACY,MAAD,CAA7B,CADsD;;AAGtD,QAAA,IAAID,WAAW,KAAKF,WAAhB,IAA+BI,UAAnC,EAA+C;AAC7C,UAAA,IAAIlnK,GAAG,GAAGknK,UAAU,CAAC5rI,KAArB,CAAA;AACA+rC,UAAAA,SAAS,CAACG,MAAV,KAAqBxnE,GAAG,GAAG8mK,WAAW,CAAC/gI,IAAZ,CAAiBrjB,KAAjB,CAAuBuzC,KAAvB,CAA6BoR,SAAS,CAACG,MAAV,CAAiBxnE,GAAjB,EAAsBmnK,eAAe,CAACH,WAAD,CAArC,EAAoDG,eAAe,CAACL,WAAD,CAAnE,CAA7B,CAA3B,CAAA,CAAA;AACAD,UAAAA,YAAY,CAACC,WAAW,CAAC3jK,GAAb,CAAZ,GAAgCnD,GAAhC,CAAA;AACD,SAAA;AACF,OARG,CAAJ,CAAA;AASD,KAAA;AACF,GAdG,CAAJ,CAAA;AAeA8I,EAAAA,MAAI,CAAC+9J,YAAD,EAAe,UAAU7mK,GAAV,EAAe+mK,MAAf,EAAuB;AACxCH,IAAAA,aAAa,CAACxhG,QAAQ,CAAC2hG,MAAD,CAAT,EAAmB/mK,GAAnB,EAAwBumK,QAAxB,EAAkC,IAAlC,EAAwCH,aAAxC,CAAb,CAAA;AACD,GAFG,CAAJ,CAAA;AAGAgB,EAAAA,mBAAmB,CAACf,YAAD,EAAejhG,QAAf,EAAyBghG,aAAzB,CAAnB,CAAA;EACAiB,uBAAuB,CAACf,cAAD,EAAiBtvI,KAAjB,EAAwBkW,OAAxB,EAAiCiO,cAAjC,CAAvB,CAAA;AACAmsH,EAAAA,wBAAwB,CAACliG,QAAD,EAAWjqB,cAAX,EAA2BxiC,GAA3B,CAAxB,CAAA;AACA,EAAA,OAAOytJ,aAAP,CAAA;AACD,CAAA;;AAED,SAASQ,aAAT,CAAuB1/F,QAAvB,EAAiCqgG,QAAjC,EAA2ChB,QAA3C,EAAqDiB,MAArD,EAA6DC,YAA7D,EAA2E;AACzE,EAAA,IAAI1hI,IAAI,GAAGmhC,QAAQ,CAACnhC,IAApB,CAAA;;AAEA,EAAA,IAAIA,IAAI,CAACrjB,KAAL,CAAWmhD,OAAX,EAAA,IAAwB,CAAC99B,IAAI,CAACivB,WAAL,CAAiBuyG,QAAjB,CAA7B,EAAyD;AACvD,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI,CAACrgG,QAAQ,CAACD,aAAd,EAA6B;AAC3Bs/F,IAAAA,QAAQ,CAACl4C,WAAT,CAAqBnnD,QAArB,EAA+BqgG,QAA/B,CAAA,CAAA;AACA,IAAA,OAAA;AACD,GAVwE;;;AAazE,EAAA,IAAI5F,WAAW,GAAG+F,qBAAqB,CAACH,QAAD,EAAWrgG,QAAX,CAAvC,CAAA;AACA,EAAA,IAAIygG,YAAY,GAAGhG,WAAW,CAACgG,YAA/B,CAAA;AACA,EAAA,IAAIC,WAAW,GAAGjG,WAAW,CAACiG,WAA9B,CAfyE;AAgBzE;;EAEA,IAAID,YAAY,CAAC,CAAD,CAAZ,IAAmBF,YAAY,CAACt7H,WAAb,IAA4B,IAAnD,EAAyD;AACvDxkC,IAAAA,MAAM,CAAC8/J,YAAD,EAAeE,YAAY,CAAC,CAAD,CAA3B,CAAN,CAAA;AACD,GApBwE;AAqBzE;;;AAGA,EAAA,IAAI,CAACH,MAAD,IAAWtgG,QAAQ,CAACH,IAAxB,EAA8B;IAC5B,IAAIhhC,IAAI,CAACivB,WAAL,CAAiB4yG,WAAjB,CAAiCA,IAAAA,WAAW,IAAI,IAApD,EAA0D;AACxDL,MAAAA,QAAQ,GAAGK,WAAX,CAAA;AACD,KAAA;AACF,GAAA;;EAEDrB,QAAQ,CAACl4C,WAAT,CAAqBnnD,QAArB,EAA+BqgG,QAA/B,EAAyCI,YAAzC,CAAA,CA9ByE;AA+BzE;;AAEApB,EAAAA,QAAQ,CAACC,WAAT,CAAqBt/F,QAArB,EAA+By6F,WAA/B,EAA4CiG,WAA5C,CAAA,CAAA;AACD,CAAA;;AAED,SAASF,qBAAT,CAA+BpsI,KAA/B,EAAsC4rC,QAAtC,EAAgD;AAC9C,EAAA,IAAInhC,IAAI,GAAGmhC,QAAQ,CAACnhC,IAApB,CAAA;AACA,EAAA,IAAI5L,GAAG,GAAG4L,IAAI,CAAC5L,GAAf,CAAA;EACA,IAAIytI,WAAW,GAAGtsI,KAAlB,CAAA;EACA,IAAIqsI,YAAY,GAAG,EAAnB,CAAA;AACA,EAAA,IAAI5f,OAAO,GAAGztG,MAAM,CAACC,SAArB,CAAA;EACA,IAAIstH,OAAO,GAAG,CAAC,CAAf,CAAA;EACA/+J,MAAI,CAACo+D,QAAQ,CAACE,YAAV,EAAwB,UAAUuF,MAAV,EAAkB7gD,GAAlB,EAAuB;IACjD,IAAIg8I,OAAO,GAAGn7F,MAAM,CAACx+C,OAAP,EAAiBsC,CAAAA,gBAAjB,CAAkC0J,GAAlC,CAAd,CAAA;AACA,IAAA,IAAI4tI,kBAAJ,CAAA;AACA,IAAA,IAAIr+C,WAAJ,CAAA;;IAEA,IAAI/8C,MAAM,CAACk7E,kBAAX,EAA+B;MAC7B,IAAI1iF,MAAM,GAAGwH,MAAM,CAACk7E,kBAAP,CAA0BigB,OAA1B,EAAmCxsI,KAAnC,EAA0CyK,IAA1C,CAAb,CAAA;MACA2jF,WAAW,GAAGvkD,MAAM,CAACukD,WAArB,CAAA;MACAq+C,kBAAkB,GAAG5iG,MAAM,CAAC2iF,YAA5B,CAAA;AACD,KAJD,MAIO;AACLp+B,MAAAA,WAAW,GAAG/8C,MAAM,CAACx+C,OAAP,EAAiB65I,CAAAA,gBAAjB,CAAkCF,OAAO,CAAC,CAAD,CAAzC,EAA8CxsI,KAA9C;AACd;AACA;MACAyK,IAAI,CAAC52B,IAAL,KAAc,UAAd,GAA2B,GAA3B,GAAiC,IAHnB,CAAd,CAAA;;AAKA,MAAA,IAAI,CAACu6G,WAAW,CAACtqH,MAAjB,EAAyB;AACvB,QAAA,OAAA;AACD,OAAA;;AAED2oK,MAAAA,kBAAkB,GAAGp7F,MAAM,CAACx+C,OAAP,EAAA,CAAiBoG,GAAjB,CAAqBuzI,OAAO,CAAC,CAAD,CAA5B,EAAiCp+C,WAAW,CAAC,CAAD,CAA5C,CAArB,CAAA;AACD,KAAA;;IAED,IAAIq+C,kBAAkB,IAAI,IAAtB,IAA8B,CAAC1kJ,QAAQ,CAAC0kJ,kBAAD,CAA3C,EAAiE;AAC/D,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI/vI,IAAI,GAAGsD,KAAK,GAAGysI,kBAAnB,CAAA;IACA,IAAIxjH,IAAI,GAAG3oD,IAAI,CAACyC,GAAL,CAAS25B,IAAT,CAAX,CA3BiD;;IA6BjD,IAAIusB,IAAI,IAAIwjG,OAAZ,EAAqB;MACnB,IAAIxjG,IAAI,GAAGwjG,OAAP,IAAkB/vH,IAAI,IAAI,CAAR,IAAa6vI,OAAO,GAAG,CAA7C,EAAgD;AAC9C9f,QAAAA,OAAO,GAAGxjG,IAAV,CAAA;AACAsjH,QAAAA,OAAO,GAAG7vI,IAAV,CAAA;AACA4vI,QAAAA,WAAW,GAAGG,kBAAd,CAAA;QACAJ,YAAY,CAACvoK,MAAb,GAAsB,CAAtB,CAAA;AACD,OAAA;;AAED0J,MAAAA,MAAI,CAAC4gH,WAAD,EAAc,UAAUn5F,SAAV,EAAqB;QACrCo3I,YAAY,CAACxnK,IAAb,CAAkB;UAChBgsC,WAAW,EAAEwgC,MAAM,CAACxgC,WADJ;AAEhBmvH,UAAAA,eAAe,EAAE/qI,SAFD;AAGhBA,UAAAA,SAAS,EAAEo8C,MAAM,CAACx+C,OAAP,EAAiBqP,CAAAA,WAAjB,CAA6BjN,SAA7B,CAAA;SAHb,CAAA,CAAA;AAKD,OANG,CAAJ,CAAA;AAOD,KAAA;AACF,GA7CG,CAAJ,CAAA;EA8CA,OAAO;AACLo3I,IAAAA,YAAY,EAAEA,YADT;AAELC,IAAAA,WAAW,EAAEA,WAAAA;GAFf,CAAA;AAID,CAAA;;AAED,SAASv5C,WAAT,CAAqBg4C,YAArB,EAAmCn/F,QAAnC,EAA6C5rC,KAA7C,EAAoDqsI,YAApD,EAAkE;AAChEtB,EAAAA,YAAY,CAACn/F,QAAQ,CAAC/jE,GAAV,CAAZ,GAA6B;AAC3Bm4B,IAAAA,KAAK,EAAEA,KADoB;AAE3BqsI,IAAAA,YAAY,EAAEA,YAAAA;GAFhB,CAAA;AAID,CAAA;;AAED,SAASnB,WAAT,CAAqBF,cAArB,EAAqCp/F,QAArC,EAA+Cy6F,WAA/C,EAA4DrmI,KAA5D,EAAmE;AACjE,EAAA,IAAIqsI,YAAY,GAAGhG,WAAW,CAACgG,YAA/B,CAAA;AACA,EAAA,IAAI5hI,IAAI,GAAGmhC,QAAQ,CAACnhC,IAApB,CAAA;AACA,EAAA,IAAIqW,SAAS,GAAGrW,IAAI,CAACsS,KAArB,CAAA;AACA,EAAA,IAAIsuB,gBAAgB,GAAGO,QAAQ,CAACP,gBAAhC,CAJiE;AAKjE;;EAEA,IAAI,CAACO,QAAQ,CAACR,cAAV,IAA4B,CAACihG,YAAY,CAACvoK,MAA9C,EAAsD;AACpD,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI+mE,aAAa,GAAGe,QAAQ,CAACh6C,QAAT,CAAkBmrB,KAAtC,CAAA;AACA,EAAA,IAAI2tB,WAAW,GAAGiiG,OAAA,CAAoB9hG,aAApB,CAAlB,CAAA;AACA,EAAA,IAAI+hG,YAAY,GAAG5B,cAAc,CAACtlK,GAAf,CAAmBglE,WAAnB,CAAnB,CAAA;;EAEA,IAAI,CAACkiG,YAAL,EAAmB;AACjBA,IAAAA,YAAY,GAAG5B,cAAc,CAACtlK,GAAf,CAAmBglE,WAAnB,CAAkC,GAAA;MAC/CmiG,UAAU,EAAEhiG,aAAa,CAACl2D,EADqB;MAE/Cm4J,aAAa,EAAEjiG,aAAa,CAACp5B,cAFkB;MAG/Ci1E,YAAY,EAAE77C,aAAa,CAACh3D,IAHmB;MAI/Ck5J,gBAAgB,EAAEliG,aAAa,CAACnmB,QAJe;AAK/CsoH,MAAAA,UAAU,EAAE,EAAA;KALd,CAAA;AAOAhC,IAAAA,cAAc,CAAC/pJ,IAAf,CAAoBpc,IAApB,CAAyB+nK,YAAzB,CAAA,CAAA;AACD,GAAA;;AAEDA,EAAAA,YAAY,CAACI,UAAb,CAAwBnoK,IAAxB,CAA6B;IAC3Bg3D,OAAO,EAAEpxB,IAAI,CAAC5L,GADa;IAE3B2hC,SAAS,EAAE1f,SAAS,CAACrP,cAFM;IAG3BolB,QAAQ,EAAE/V,SAAS,CAACjtC,IAHO;IAI3BisC,MAAM,EAAEgB,SAAS,CAACnsC,EAJS;AAK3BqrB,IAAAA,KAAK,EAAEA,KALoB;AAM3B;AACA;AACA;AACA;AACAitI,IAAAA,aAAa,EAAE;MACbjsK,SAAS,EAAEqqE,gBAAgB,CAACpyC,GAAjB,CAAqB,CAAC,OAAD,EAAU,WAAV,CAArB,CADE;MAEb8+D,SAAS,EAAE1sB,gBAAgB,CAACpyC,GAAjB,CAAqB,CAAC,OAAD,EAAU,WAAV,CAArB,CAAA;KAZc;IAc3BuuI,iBAAiB,EAAE6E,YAAY,CAACxiJ,KAAb,EAAA;GAdrB,CAAA,CAAA;AAgBD,CAAA;;AAED,SAASiiJ,mBAAT,CAA6Bf,YAA7B,EAA2CjhG,QAA3C,EAAqDghG,aAArD,EAAoE;EAClE,IAAIoC,cAAc,GAAGpC,aAAa,CAAChhG,QAAd,GAAyB,EAA9C,CADkE;;AAGlEt8D,EAAAA,MAAI,CAACs8D,QAAD,EAAW,UAAU8B,QAAV,EAAoB/jE,GAApB,EAAyB;AACtC,IAAA,IAAI8pB,MAAM,GAAGi6C,QAAQ,CAACP,gBAAT,CAA0B15C,MAAvC,CAAA;AACA,IAAA,IAAIw7I,OAAO,GAAGpC,YAAY,CAACljK,GAAD,CAA1B,CAAA;;AAEA,IAAA,IAAIslK,OAAJ,EAAa;MACX,CAACvhG,QAAQ,CAACC,SAAV,KAAwBl6C,MAAM,CAACwP,MAAP,GAAgB,MAAxC,CAAA,CAAA;AACAxP,MAAAA,MAAM,CAACqO,KAAP,GAAemtI,OAAO,CAACntI,KAAvB,CAFW;;MAIXrO,MAAM,CAAC61I,iBAAP,GAA2B,CAAC2F,OAAO,CAACd,YAAR,IAAwB,EAAzB,EAA6BxiJ,KAA7B,EAA3B,CAAA;AACD,KALD;AAMA;SACK;AACD;AACA;MACA,CAAC+hD,QAAQ,CAACC,SAAV,KAAwBl6C,MAAM,CAACwP,MAAP,GAAgB,MAAxC,CAAA,CAAA;AACD,KAfmC;;;IAkBtCxP,MAAM,CAACwP,MAAP,KAAkB,MAAlB,IAA4B+rI,cAAc,CAACroK,IAAf,CAAoB;AAC9Cg3D,MAAAA,OAAO,EAAE+P,QAAQ,CAACnhC,IAAT,CAAc5L,GADuB;AAE9C2hC,MAAAA,SAAS,EAAEoL,QAAQ,CAACnhC,IAAT,CAAcsS,KAAd,CAAoBtL,cAFe;MAG9CzR,KAAK,EAAErO,MAAM,CAACqO,KAAAA;AAHgC,KAApB,CAA5B,CAAA;AAKD,GAvBG,CAAJ,CAAA;AAwBD,CAAA;;AAED,SAAS+rI,uBAAT,CAAiCf,cAAjC,EAAiDtvI,KAAjD,EAAwDkW,OAAxD,EAAiEiO,cAAjE,EAAiF;AAC/E;EACA,IAAI6qH,YAAY,CAAChvI,KAAD,CAAZ,IAAuB,CAACsvI,cAAc,CAAC/pJ,IAAf,CAAoBnd,MAAhD,EAAwD;AACtD+7C,IAAAA,cAAc,CAAC;AACbhsC,MAAAA,IAAI,EAAE,SAAA;AADO,KAAD,CAAd,CAAA;AAGA,IAAA,OAAA;AACD,GAP8E;AAQ/E;AACA;AACA;;;EAGA,IAAIu5J,UAAU,GAAG,CAAC,CAACpC,cAAc,CAAC/pJ,IAAf,CAAoB,CAApB,CAAuB+rJ,CAAAA,UAAvB,CAAkC,CAAlC,CAAA,IAAwC,EAAzC,EAA6CxF,iBAA7C,IAAkE,EAAnE,EAAuE,CAAvE,CAAA,IAA6E,EAA9F,CAAA;AACA3nH,EAAAA,cAAc,CAAC;AACbhsC,IAAAA,IAAI,EAAE,SADO;AAEbw5J,IAAAA,aAAa,EAAE,IAFF;AAGb9rK,IAAAA,CAAC,EAAEm6B,KAAK,CAAC,CAAD,CAHK;AAIbl6B,IAAAA,CAAC,EAAEk6B,KAAK,CAAC,CAAD,CAJK;IAKb6qI,aAAa,EAAE30H,OAAO,CAAC20H,aALV;IAMb3hJ,QAAQ,EAAEgtB,OAAO,CAAChtB,QANL;IAObo7I,eAAe,EAAEoN,UAAU,CAACpN,eAPf;IAQb/qI,SAAS,EAAEm4I,UAAU,CAACn4I,SART;IASb4b,WAAW,EAAEu8H,UAAU,CAACv8H,WATX;IAUbm6H,cAAc,EAAEA,cAAc,CAAC/pJ,IAAAA;AAVlB,GAAD,CAAd,CAAA;AAYD,CAAA;;AAED,SAAS+qJ,wBAAT,CAAkCliG,QAAlC,EAA4CjqB,cAA5C,EAA4DxiC,GAA5D,EAAiE;AAC/D;AACA;AACA;AACA,EAAA,IAAI65D,EAAE,GAAG75D,GAAG,CAACghC,KAAJ,EAAT,CAAA;EACA,IAAIivH,WAAW,GAAG,2BAAlB,CAAA;EACA,IAAIC,cAAc,GAAGr/F,OAAK,CAACgJ,EAAD,CAAL,CAAUo2F,WAAV,CAAA,IAA0B,EAA/C,CAAA;EACA,IAAIE,aAAa,GAAGt/F,OAAK,CAACgJ,EAAD,CAAL,CAAUo2F,WAAV,CAAA,GAAyB,EAA7C,CAP+D;AAQ/D;;AAEA9/J,EAAAA,MAAI,CAACs8D,QAAD,EAAW,UAAU8B,QAAV,EAAoB/jE,GAApB,EAAyB;AACtC,IAAA,IAAI8pB,MAAM,GAAGi6C,QAAQ,CAACP,gBAAT,CAA0B15C,MAAvC,CAAA;AACAA,IAAAA,MAAM,CAACwP,MAAP,KAAkB,MAAlB,IAA4B3zB,MAAI,CAACmkB,MAAM,CAAC61I,iBAAR,EAA2B,UAAUiG,SAAV,EAAqB;MAC9E,IAAI5lK,GAAG,GAAG4lK,SAAS,CAAC58H,WAAV,GAAwB,KAAxB,GAAgC48H,SAAS,CAACx4I,SAApD,CAAA;AACAu4I,MAAAA,aAAa,CAAC3lK,GAAD,CAAb,GAAqB4lK,SAArB,CAAA;AACD,KAH+B,CAAhC,CAAA;GAFE,CAAJ,CAV+D;;EAkB/D,IAAIC,WAAW,GAAG,EAAlB,CAAA;EACA,IAAIC,UAAU,GAAG,EAAjB,CAAA;AACAngK,EAAAA,MAAI,CAAC+/J,cAAD,EAAiB,UAAUE,SAAV,EAAqB5lK,GAArB,EAA0B;IAC7C,CAAC2lK,aAAa,CAAC3lK,GAAD,CAAd,IAAuB8lK,UAAU,CAAC9oK,IAAX,CAAgB4oK,SAAhB,CAAvB,CAAA;AACD,GAFG,CAAJ,CAAA;AAGAjgK,EAAAA,MAAI,CAACggK,aAAD,EAAgB,UAAUC,SAAV,EAAqB5lK,GAArB,EAA0B;IAC5C,CAAC0lK,cAAc,CAAC1lK,GAAD,CAAf,IAAwB6lK,WAAW,CAAC7oK,IAAZ,CAAiB4oK,SAAjB,CAAxB,CAAA;AACD,GAFG,CAAJ,CAAA;AAGAE,EAAAA,UAAU,CAAC7pK,MAAX,IAAqBuZ,GAAG,CAACwiC,cAAJ,CAAmB;AACtChsC,IAAAA,IAAI,EAAE,UADgC;AAEtCw5J,IAAAA,aAAa,EAAE,IAFuB;AAGtC;AACAO,IAAAA,OAAO,EAAE,IAJ6B;AAKtCC,IAAAA,KAAK,EAAEF,UAAAA;AAL+B,GAAnB,CAArB,CAAA;AAOAD,EAAAA,WAAW,CAAC5pK,MAAZ,IAAsBuZ,GAAG,CAACwiC,cAAJ,CAAmB;AACvChsC,IAAAA,IAAI,EAAE,WADiC;AAEvCw5J,IAAAA,aAAa,EAAE,IAFwB;AAGvC;AACAO,IAAAA,OAAO,EAAE,IAJ8B;AAKvCC,IAAAA,KAAK,EAAEH,WAAAA;AALgC,GAAnB,CAAtB,CAAA;AAOD,CAAA;;AAED,SAASrC,iBAAT,CAA2BT,aAA3B,EAA0Ch/F,QAA1C,EAAoD;AAClD,EAAA,KAAK,IAAIpnE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAAComK,aAAa,IAAI,EAAlB,EAAsB9mK,MAA1C,EAAkDU,CAAC,EAAnD,EAAuD;AACrD,IAAA,IAAI4mK,aAAa,GAAGR,aAAa,CAACpmK,CAAD,CAAjC,CAAA;;IAEA,IAAIonE,QAAQ,CAACnhC,IAAT,CAAc5L,GAAd,KAAsBusI,aAAa,CAACvvG,OAApC,IAA+C+P,QAAQ,CAACnhC,IAAT,CAAcsS,KAAd,CAAoBtL,cAApB,KAAuC25H,aAAa,CAAC5qG,SAAxG,EAAmH;AACjH,MAAA,OAAO4qG,aAAP,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAASS,eAAT,CAAyBjgG,QAAzB,EAAmC;AACjC,EAAA,IAAI9qB,SAAS,GAAG8qB,QAAQ,CAACnhC,IAAT,CAAcsS,KAA9B,CAAA;EACA,IAAI1pC,IAAI,GAAG,EAAX,CAAA;EACA,IAAIwrB,GAAG,GAAGxrB,IAAI,CAACwoD,OAAL,GAAe+P,QAAQ,CAACnhC,IAAT,CAAc5L,GAAvC,CAAA;AACAxrB,EAAAA,IAAI,CAACmtD,SAAL,GAAiBntD,IAAI,CAACwrB,GAAG,GAAG,WAAP,CAAJ,GAA0BiiB,SAAS,CAACrP,cAArD,CAAA;AACAp+B,EAAAA,IAAI,CAACojD,QAAL,GAAgBpjD,IAAI,CAACwrB,GAAG,GAAG,UAAP,CAAJ,GAAyBiiB,SAAS,CAACt5C,IAAnD,CAAA;AACA6L,EAAAA,IAAI,CAACysC,MAAL,GAAczsC,IAAI,CAACwrB,GAAG,GAAG,QAAP,CAAJ,GAAuBiiB,SAAS,CAACnsC,EAA/C,CAAA;AACA,EAAA,OAAOtB,IAAP,CAAA;AACD,CAAA;;AAED,SAASq3J,YAAT,CAAsBhvI,KAAtB,EAA6B;AAC3B,EAAA,OAAO,CAACA,KAAD,IAAUA,KAAK,CAAC,CAAD,CAAL,IAAY,IAAtB,IAA8B/2B,KAAK,CAAC+2B,KAAK,CAAC,CAAD,CAAN,CAAnC,IAAiDA,KAAK,CAAC,CAAD,CAAL,IAAY,IAA7D,IAAqE/2B,KAAK,CAAC+2B,KAAK,CAAC,CAAD,CAAN,CAAjF,CAAA;AACD;;ACvZD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCO,SAASxX,SAAT,CAAiBC,SAAjB,EAA4B;AACjC;AACA;AACA;AACAkpD,EAAAA,QAAQ,CAACU,wBAAT,CAAkC,sBAAlC,EAA0Ds6F,oBAA1D,CAAA,CAAA;EACAlkJ,SAAS,CAAC6zC,sBAAV,CAAiC+wG,gBAAjC,CAAA,CAAA;EACA5kJ,SAAS,CAACksD,qBAAV,CAAgCg6F,eAAhC,CAAA,CAAA;AACAlmJ,EAAAA,SAAS,CAACosD,oBAAV,CAA+B,UAAU5+C,MAAV,EAAkB;AAC/C;AACA,IAAA,IAAIA,MAAJ,EAAY;AACV,MAAA,CAAC,CAACA,MAAM,CAACmjC,WAAR,IAAuBnjC,MAAM,CAACmjC,WAAP,CAAmBhxD,MAAnB,KAA8B,CAAtD,MAA6D6tB,MAAM,CAACmjC,WAAP,GAAqB,EAAlF,CAAA,CAAA;MACA,IAAIq8C,IAAI,GAAGx/E,MAAM,CAACmjC,WAAP,CAAmBq8C,IAA9B,CAFU;AAGV;AACA;;AAEA,MAAA,IAAIA,IAAI,IAAI,CAACh0F,SAAO,CAACg0F,IAAD,CAApB,EAA4B;AAC1Bx/E,QAAAA,MAAM,CAACmjC,WAAP,CAAmBq8C,IAAnB,GAA0B,CAACA,IAAD,CAA1B,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAZD,EAPiC;AAoBjC;;AAEAhtF,EAAAA,SAAS,CAACuyB,iBAAV,CAA4BvyB,SAAS,CAACwyB,QAAV,CAAmBC,SAAnB,CAA6BC,SAAzD,EAAoE,UAAUhI,OAAV,EAAmBxxB,GAAnB,EAAwB;AAC1F;AACA;AACAwxB,IAAAA,OAAO,CAACw7B,YAAR,CAAqB,aAArB,CAAoCL,CAAAA,gBAApC,GAAuDJ,OAAO,CAAC/6B,OAAD,EAAUxxB,GAAV,CAA9D,CAAA;AACD,GAJD,EAtBiC;;EA4BjC8G,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,mBADiB;AAEvBgwC,IAAAA,KAAK,EAAE,mBAFgB;AAGvB9mB,IAAAA,MAAM,EAAE,oBAAA;AAHe,GAAzB,EAIG0tI,WAJH,CAAA,CAAA;AAKD;;AClFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAASvmJ,SAAT,CAAiBC,SAAjB,EAA4B;EACjCqsD,GAAG,CAACs9F,SAAD,CAAH,CAAA;EACAt9F,GAAG,CAACu9F,SAAD,CAAH,CAAA;AACD;;AChDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgCA,IAAIC,gBAAgB;AACpB;AACA,UAAUhpJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC+oJ,gBAAD,EAAmBhpJ,MAAnB,CAAT,CAAA;;AAEA,EAAA,SAASgpJ,gBAAT,GAA4B;AAC1B,IAAA,OAAOhpJ,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEupK,EAAAA,gBAAgB,CAACltK,SAAjB,CAA2BujK,YAA3B,GAA0C,UAAUlO,QAAV,EAAoBn2H,KAApB,EAA2B8gB,SAA3B,EAAsCuqB,gBAAtC,EAAwDhuD,GAAxD,EAA6D;AACrG,IAAA,IAAIotB,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;;AAEA,IAAA,IAAIA,IAAI,CAAC5L,GAAL,KAAa,OAAjB,EAA0B;AACxB,MAAA,IAAA,CAAK+kI,kBAAL,GAA0BtjK,IAAI,CAACI,EAAL,GAAU,EAApC,CAAA;AACD,KAAA;;AAED,IAAA,IAAIymC,KAAK,GAAGsD,IAAI,CAACtD,KAAjB,CAAA;AACA,IAAA,IAAI8Y,SAAS,GAAG9Y,KAAK,CAAC1I,YAAN,CAAmBgM,IAAnB,CAAhB,CAAA;AACA,IAAA,IAAIy+F,WAAW,GAAGjpF,SAAS,CAACpgB,SAAV,EAAlB,CAAA;AACA,IAAA,IAAIouI,UAAU,GAAGxjI,IAAI,CAACK,WAAL,CAAiB9K,KAAjB,CAAjB,CAAA;AACA,IAAA,IAAI+mI,eAAe,GAAG17F,gBAAgB,CAACpyC,GAAjB,CAAqB,MAArB,CAAtB,CAAA;;AAEA,IAAA,IAAI8tI,eAAe,IAAIA,eAAe,KAAK,MAA3C,EAAmD;AACjD,MAAA,IAAIwB,OAAO,GAAGC,YAAA,CAAwBn9F,gBAAxB,CAAd,CAAA;AACA,MAAA,IAAI+5F,aAAa,GAAGqD,qBAAmB,CAAC1B,eAAD,CAAnB,CAAqCt8H,IAArC,EAA2CtD,KAA3C,EAAkD8mI,UAAlD,EAA8D/kC,WAA9D,CAApB,CAAA;MACAk8B,aAAa,CAAChgK,KAAd,GAAsBmjK,OAAtB,CAAA;AACApS,MAAAA,QAAQ,CAACmO,UAAT,GAAsBc,aAAa,CAACvxJ,IAApC,CAAA;MACAsiJ,QAAQ,CAACtiC,OAAT,GAAmBuxC,aAAnB,CAAA;AACD,KAAA;;IAED,IAAIr8F,WAAW,GAAGsC,gBAAgB,CAACpyC,GAAjB,CAAqB,CAAC,OAAD,EAAU,QAAV,CAArB,CAAlB,CAAA;AACA,IAAA,IAAIiuI,QAAQ,GAAGgH,gBAAgB,CAACluI,KAAD,EAAQ8gB,SAAR,EAAmBuqB,gBAAnB,EAAqClkC,KAArC,EAA4C4hC,WAA5C,CAA/B,CAAA;IACAy/F,kBAAA,CAA8BrS,QAA9B,EAAwCr1G,SAAxC,EAAmDuqB,gBAAnD,EAAqEhuD,GAArE,EAA0E6pJ,QAA1E,CAAA,CAAA;GAvBF,CAAA;;AA0BA,EAAA,OAAO8G,gBAAP,CAAA;AACD,CAtCD,CAsCErK,eAtCF,CAFA,CAAA;;AA0CA,CAAA;;AAEA,SAASuK,gBAAT,CAA0BluI,KAA1B,EAAiC8gB,SAAjC,EAA4CuqB,gBAA5C,EAA8DlkC,KAA9D,EAAqE4hC,WAArE,EAAkF;AAChF,EAAA,IAAIt+B,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;AACA,EAAA,IAAIV,KAAK,GAAGU,IAAI,CAACK,WAAL,CAAiB9K,KAAjB,CAAZ,CAAA;EACA,IAAImuI,SAAS,GAAGhnI,KAAK,CAAC4qH,YAAN,EAAqBlyH,CAAAA,SAArB,EAAiC,CAAA,CAAjC,CAAhB,CAAA;AACAsuI,EAAAA,SAAS,GAAGA,SAAS,GAAG,GAAZ,GAAkB7tK,IAAI,CAACI,EAAnC,CAAA;AACA,EAAA,IAAIo1E,YAAY,GAAG3uC,KAAK,CAAC0qH,aAAN,EAAA,CAAsBhyH,SAAtB,EAAnB,CAAA;AACA,EAAA,IAAIjb,QAAJ,CAAA;AACA,EAAA,IAAIupB,KAAJ,CAAA;AACA,EAAA,IAAIC,aAAJ,CAAA;;AAEA,EAAA,IAAI3D,IAAI,CAAC5L,GAAL,KAAa,QAAjB,EAA2B;AACzB,IAAA,IAAIjyB,SAAS,GAAGm3D,QAAA,EAAhB,CAAA;AACAA,IAAAA,MAAA,CAAcn3D,SAAd,EAAyBA,SAAzB,EAAoCuhK,SAApC,CAAA,CAAA;AACApqG,IAAAA,SAAA,CAAiBn3D,SAAjB,EAA4BA,SAA5B,EAAuC,CAACu6B,KAAK,CAACjlC,EAAP,EAAWilC,KAAK,CAAChlC,EAAjB,CAAvC,CAAA,CAAA;AACAyiB,IAAAA,QAAQ,GAAGiT,gBAAA,CAAuB,CAACkS,KAAD,EAAQ,CAACg/B,WAAT,CAAvB,EAA8Cn8D,SAA9C,CAAX,CAAA;AACA,IAAA,IAAIq8D,aAAa,GAAGnoB,SAAS,CAAC/nB,QAAV,CAAmB,WAAnB,CAAgCE,CAAAA,GAAhC,CAAoC,QAApC,CAAiD,IAAA,CAArE,CALyB;;AAOzB,IAAA,IAAIu0B,WAAW,GAAGoV,WAAW,CAACQ,eAAZ,CAA4B+qG,SAA5B,EAAuCllG,aAAa,GAAG3oE,IAAI,CAACI,EAArB,GAA0B,GAAjE,EAAsE,CAAC,CAAvE,CAAlB,CAAA;IACAytC,KAAK,GAAGqf,WAAW,CAACj4C,SAApB,CAAA;IACA64B,aAAa,GAAGof,WAAW,CAAC/T,iBAA5B,CAAA;AACD,GAVD,MAUO;AACL;AACA,IAAA,IAAIr3C,CAAC,GAAG0zE,YAAY,CAAC,CAAD,CAApB,CAAA;AACAlxD,IAAAA,QAAQ,GAAGuiB,KAAK,CAACwsC,YAAN,CAAmB,CAACvxE,CAAC,GAAG2mE,WAAL,EAAkBh/B,KAAlB,CAAnB,CAAX,CAAA;AACA,IAAA,IAAI7nC,EAAE,GAAGilC,KAAK,CAACjlC,EAAf,CAAA;AACA,IAAA,IAAIC,EAAE,GAAGglC,KAAK,CAAChlC,EAAf,CAAA;IACAgsC,KAAK,GAAG7tC,IAAI,CAACyC,GAAL,CAAS6hB,QAAQ,CAAC,CAAD,CAAR,GAAc1iB,EAAvB,CAA6BE,GAAAA,CAA7B,GAAiC,GAAjC,GAAuC,QAAvC,GAAkDwiB,QAAQ,CAAC,CAAD,CAAR,GAAc1iB,EAAd,GAAmB,MAAnB,GAA4B,OAAtF,CAAA;IACAksC,aAAa,GAAG9tC,IAAI,CAACyC,GAAL,CAAS6hB,QAAQ,CAAC,CAAD,CAAR,GAAcziB,EAAvB,CAA6BC,GAAAA,CAA7B,GAAiC,GAAjC,GAAuC,QAAvC,GAAkDwiB,QAAQ,CAAC,CAAD,CAAR,GAAcziB,EAAd,GAAmB,KAAnB,GAA2B,QAA7F,CAAA;AACD,GAAA;;EAED,OAAO;AACLyiB,IAAAA,QAAQ,EAAEA,QADL;AAELupB,IAAAA,KAAK,EAAEA,KAFF;AAGLC,IAAAA,aAAa,EAAEA,aAAAA;GAHjB,CAAA;AAKD,CAAA;;AAED,IAAIq6H,qBAAmB,GAAG;EACxBp2I,IAAI,EAAE,cAAUoY,IAAV,EAAgBtD,KAAhB,EAAuB8mI,UAAvB,EAAmC/kC,WAAnC,EAAgD;AACpD,IAAA,OAAOz+F,IAAI,CAAC5L,GAAL,KAAa,OAAb,GAAuB;AAC5BhrB,MAAAA,IAAI,EAAE,MADsB;AAE5BzH,MAAAA,KAAK,EAAEo8J,aAAA,CAAyBrhI,KAAK,CAACwsC,YAAN,CAAmB,CAACu1D,WAAW,CAAC,CAAD,CAAZ,EAAiB+kC,UAAjB,CAAnB,CAAzB,EAA2E9mI,KAAK,CAACwsC,YAAN,CAAmB,CAACu1D,WAAW,CAAC,CAAD,CAAZ,EAAiB+kC,UAAjB,CAAnB,CAA3E,CAAA;AAFqB,KAAvB,GAGH;AACFp6J,MAAAA,IAAI,EAAE,QADJ;AAEFzH,MAAAA,KAAK,EAAE;QACLlK,EAAE,EAAEilC,KAAK,CAACjlC,EADL;QAELC,EAAE,EAAEglC,KAAK,CAAChlC,EAFL;AAGLC,QAAAA,CAAC,EAAE6rK,UAAAA;AAHE,OAAA;KALT,CAAA;GAFsB;EAcxBnF,MAAM,EAAE,gBAAUr+H,IAAV,EAAgBtD,KAAhB,EAAuB8mI,UAAvB,EAAmC/kC,WAAnC,EAAgD;AACtD,IAAA,IAAIsK,SAAS,GAAGlzI,IAAI,CAAC0iB,GAAL,CAAS,CAAT,EAAYynB,IAAI,CAACgpG,YAAL,EAAZ,CAAhB,CAAA;AACA,IAAA,IAAIt9D,MAAM,GAAG71E,IAAI,CAACI,EAAL,GAAU,GAAvB,CAAA;AACA,IAAA,OAAO+pC,IAAI,CAAC5L,GAAL,KAAa,OAAb,GAAuB;AAC5BhrB,MAAAA,IAAI,EAAE,QADsB;MAE5BzH,KAAK,EAAEo8J,eAAA,CAA2BrhI,KAAK,CAACjlC,EAAjC,EAAqCilC,KAAK,CAAChlC,EAA3C,EAA+C+mI,WAAW,CAAC,CAAD,CAA1D,EAA+DA,WAAW,CAAC,CAAD,CAA1E;AACP,MAAA,CAAC,CAAC+kC,UAAD,GAAcz6B,SAAS,GAAG,CAA3B,IAAgCr9D,MADzB,EACiC,CAAC,CAAC83F,UAAD,GAAcz6B,SAAS,GAAG,CAA3B,IAAgCr9D,MADjE,CAAA;AAFqB,KAAvB,GAIH;AACFtiE,MAAAA,IAAI,EAAE,QADJ;AAEFzH,MAAAA,KAAK,EAAEo8J,eAAA,CAA2BrhI,KAAK,CAACjlC,EAAjC,EAAqCilC,KAAK,CAAChlC,EAA3C,EAA+C8rK,UAAU,GAAGz6B,SAAS,GAAG,CAAxE,EAA2Ey6B,UAAU,GAAGz6B,SAAS,GAAG,CAApG,EAAuG,CAAvG,EAA0GlzI,IAAI,CAACI,EAAL,GAAU,CAApH,CAAA;KANT,CAAA;AAQD,GAAA;AAzBuB,CAA1B;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAI0tK,UAAU;AACd;AACA,UAAUppJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACmpJ,UAAD,EAAappJ,MAAb,CAAT,CAAA;;AAEA,EAAA,SAASopJ,UAAT,GAAsB;AACpB,IAAA,IAAIlpJ,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAau6J,UAAU,CAACv6J,IAAxB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDkpJ,EAAAA,UAAU,CAACttK,SAAX,CAAqButK,aAArB,GAAqC,UAAUx3G,QAAV,EAAoB;AACvD,IAAA,IAAIy3G,cAAJ,CAAA;IACA,IAAIz/H,OAAO,GAAG,IAAA,CAAKA,OAAnB,CAAA;AACAA,IAAAA,OAAO,CAAC4V,aAAR,CAAsBoS,QAAtB,EAAgC,UAAU/V,SAAV,EAAqB;AACnD,MAAA,IAAIA,SAAS,CAACiT,gBAAV,EAAA,KAAiC,IAArC,EAA2C;AACzCu6G,QAAAA,cAAc,GAAGxtH,SAAjB,CAAA;AACD,OAAA;AACF,KAJD,EAIG,IAJH,CAAA,CAAA;AAKA,IAAA,OAAOwtH,cAAP,CAAA;GARF,CAAA;;EAWAF,UAAU,CAACv6J,IAAX,GAAkB,OAAlB,CAAA;AACAu6J,EAAAA,UAAU,CAAC56I,YAAX,GAA0B,CAAC,YAAD,EAAe,WAAf,CAA1B,CAAA;EACA46I,UAAU,CAAC36I,aAAX,GAA2B;AACzB;AACAzG,IAAAA,CAAC,EAAE,CAFsB;AAGzBm4B,IAAAA,MAAM,EAAE,CAAC,KAAD,EAAQ,KAAR,CAHiB;AAIzBC,IAAAA,MAAM,EAAE,KAAA;GAJV,CAAA;AAMA,EAAA,OAAOgpH,UAAP,CAAA;AACD,CA9BD,CA8BEv6G,cA9BF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,IAAI06G,cAAc;AAClB;AACA,UAAUvpJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACspJ,cAAD,EAAiBvpJ,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAASupJ,cAAT,GAA0B;AACxB,IAAA,OAAOvpJ,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;;AAED8pK,EAAAA,cAAc,CAACztK,SAAf,CAAyBizD,gBAAzB,GAA4C,YAAY;IACtD,OAAO,IAAA,CAAKC,sBAAL,CAA4B,OAA5B,EAAqCC,gBAArC,CAAuDC,CAAAA,MAAvD,CAA8D,CAA9D,CAAP,CAAA;GADF,CAAA;;EAIAq6G,cAAc,CAAC16J,IAAf,GAAsB,WAAtB,CAAA;AACA,EAAA,OAAO06J,cAAP,CAAA;AACD,CAbD,CAaE16G,cAbF,CAFA,CAAA;;AAiBArrB,KAAA,CAAa+lI,cAAb,EAA6Bp6G,oBAA7B,CAAA,CAAA;;AAGA,IAAIq6G,cAAc;AAClB;AACA,UAAUxpJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACupJ,cAAD,EAAiBxpJ,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAASwpJ,cAAT,GAA0B;AACxB,IAAA,IAAItpJ,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa26J,cAAc,CAAC36J,IAA5B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDspJ,cAAc,CAAC36J,IAAf,GAAsB,WAAtB,CAAA;AACA,EAAA,OAAO26J,cAAP,CAAA;AACD,CAZD,CAYED,cAZF,CAFA,CAAA;;AAkBA,IAAIE,eAAe;AACnB;AACA,UAAUzpJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACwpJ,eAAD,EAAkBzpJ,MAAlB,CAAT,CAAA;;AAEA,EAAA,SAASypJ,eAAT,GAA2B;AACzB,IAAA,IAAIvpJ,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa46J,eAAe,CAAC56J,IAA7B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDupJ,eAAe,CAAC56J,IAAhB,GAAuB,YAAvB,CAAA;AACA,EAAA,OAAO46J,eAAP,CAAA;AACD,CAZD,CAYEF,cAZF,CAFA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAIG,UAAU;AACd;AACA,UAAU1pJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACypJ,UAAD,EAAa1pJ,MAAb,CAAT,CAAA;;AAEA,EAAA,SAAS0pJ,UAAT,CAAoBtnJ,KAApB,EAA2B0uD,YAA3B,EAAyC;AACvC,IAAA,OAAO9wD,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB,QAAlB,EAA4BiC,KAA5B,EAAmC0uD,YAAnC,CAAA,IAAoD,IAA3D,CAAA;AACD,GAAA;;EAED44F,UAAU,CAAC5tK,SAAX,CAAqB85D,WAArB,GAAmC,UAAUl/B,KAAV,EAAiBw+B,KAAjB,EAAwB;AACzD,IAAA,OAAO,KAAK/yB,KAAL,CAAWyzB,WAAX,CAAuBl/B,KAAvB,EAA8Bw+B,KAA9B,CAAqC,CAAA,IAAA,CAAKr7B,GAAL,KAAa,QAAb,GAAwB,CAAxB,GAA4B,CAAjE,CAAP,CAAA;GADF,CAAA;;AAIA,EAAA,OAAO6vI,UAAP,CAAA;AACD,CAZD,CAYEpzG,IAZF,CAFA,CAAA;;AAgBAozG,UAAU,CAAC5tK,SAAX,CAAqBkxJ,YAArB,GAAoC12F,IAAI,CAACx6D,SAAL,CAAegqC,WAAnD,CAAA;AACA4jI,UAAU,CAAC5tK,SAAX,CAAqB6tK,YAArB,GAAoCrzG,IAAI,CAACx6D,SAAL,CAAe+5D,WAAnD;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BA,IAAIqT,OAAK,GAAGC,SAAS,EAArB,CAAA;;AAEA,IAAIygG,SAAS;AACb;AACA,UAAU5pJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC2pJ,SAAD,EAAY5pJ,MAAZ,CAAT,CAAA;;AAEA,EAAA,SAAS4pJ,SAAT,CAAmBxnJ,KAAnB,EAA0B+rG,WAA1B,EAAuC;AACrC,IAAA,OAAOnuG,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB,OAAlB,EAA2BiC,KAA3B,EAAkC+rG,WAAW,IAAI,CAAC,CAAD,EAAI,GAAJ,CAAjD,KAA8D,IAArE,CAAA;AACD,GAAA;;EAEDy7C,SAAS,CAAC9tK,SAAV,CAAoB85D,WAApB,GAAkC,UAAUl/B,KAAV,EAAiBw+B,KAAjB,EAAwB;AACxD,IAAA,OAAO,KAAK/yB,KAAL,CAAWyzB,WAAX,CAAuBl/B,KAAvB,EAA8Bw+B,KAA9B,CAAqC,CAAA,IAAA,CAAKr7B,GAAL,KAAa,QAAb,GAAwB,CAAxB,GAA4B,CAAjE,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;AACA;AACA;AACA;;;AAGE+vI,EAAAA,SAAS,CAAC9tK,SAAV,CAAoB+tK,yBAApB,GAAgD,YAAY;IAC1D,IAAIpkI,IAAI,GAAG,IAAX,CAAA;AACA,IAAA,IAAI6f,UAAU,GAAG7f,IAAI,CAACy1H,aAAL,EAAjB,CAAA;AACA,IAAA,IAAI4O,YAAY,GAAGrkI,IAAI,CAACrjB,KAAxB,CAAA;AACA,IAAA,IAAI2nJ,aAAa,GAAGD,YAAY,CAACjvI,SAAb,EAApB,CAJ0D;AAK1D;AACA;;AAEA,IAAA,IAAImvI,SAAS,GAAGF,YAAY,CAACpmI,KAAb,EAAhB,CAAA;;IAEA,IAAIqmI,aAAa,CAAC,CAAD,CAAb,GAAmBA,aAAa,CAAC,CAAD,CAAhC,GAAsC,CAA1C,EAA6C;AAC3C,MAAA,OAAO,CAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAI1iI,SAAS,GAAG0iI,aAAa,CAAC,CAAD,CAA7B,CAAA;AACA,IAAA,IAAIE,QAAQ,GAAGxkI,IAAI,CAACK,WAAL,CAAiBuB,SAAS,GAAG,CAA7B,IAAkC5B,IAAI,CAACK,WAAL,CAAiBuB,SAAjB,CAAjD,CAAA;IACA,IAAI6iI,KAAK,GAAG5uK,IAAI,CAACyC,GAAL,CAASksK,QAAT,CAAZ,CAhB0D;AAiB1D;;IAEA,IAAIvrK,IAAI,GAAG4jK,eAAA,CAA4Bj7H,SAAS,IAAI,IAAb,GAAoB,EAApB,GAAyBA,SAAS,GAAG,EAAjE,EAAqEie,UAAU,CAAC2b,OAAX,EAArE,EAA2F,QAA3F,EAAqG,KAArG,CAAX,CAAA;IACA,IAAIkpG,IAAI,GAAG7uK,IAAI,CAAC0iB,GAAL,CAAStf,IAAI,CAAC8G,MAAd,EAAsB,CAAtB,CAAX,CAAA;AACA,IAAA,IAAIuK,EAAE,GAAGo6J,IAAI,GAAGD,KAAhB,CArB0D;;AAuB1DvqK,IAAAA,KAAK,CAACoQ,EAAD,CAAL,KAAcA,EAAE,GAAGsT,QAAnB,CAAA,CAAA;AACA,IAAA,IAAIutC,QAAQ,GAAGt1D,IAAI,CAAC0iB,GAAL,CAAS,CAAT,EAAY1iB,IAAI,CAACumC,KAAL,CAAW9xB,EAAX,CAAZ,CAAf,CAAA;AACA,IAAA,IAAIq6J,KAAK,GAAGlhG,OAAK,CAACzjC,IAAI,CAACsS,KAAN,CAAjB,CAAA;AACA,IAAA,IAAIsyH,gBAAgB,GAAGD,KAAK,CAACC,gBAA7B,CAAA;AACA,IAAA,IAAIC,aAAa,GAAGF,KAAK,CAACE,aAA1B,CA3B0D;AA4B1D;AACA;;IAEA,IAAID,gBAAgB,IAAI,IAApB,IAA4BC,aAAa,IAAI,IAA7C,IAAqDhvK,IAAI,CAACyC,GAAL,CAASssK,gBAAgB,GAAGz5G,QAA5B,CAAyC,IAAA,CAA9F,IAAmGt1D,IAAI,CAACyC,GAAL,CAASusK,aAAa,GAAGN,SAAzB,CAAuC,IAAA,CAA1I;AACJ;OACGK,gBAAgB,GAAGz5G,QAFtB,EAEgC;AAC9BA,MAAAA,QAAQ,GAAGy5G,gBAAX,CAAA;AACD,KAJD;AAKA;SACK;MACDD,KAAK,CAACE,aAAN,GAAsBN,SAAtB,CAAA;MACAI,KAAK,CAACC,gBAAN,GAAyBz5G,QAAzB,CAAA;AACD,KAAA;;AAEH,IAAA,OAAOA,QAAP,CAAA;GA1CF,CAAA;;AA6CA,EAAA,OAAOg5G,SAAP,CAAA;AACD,CAjED,CAiEEtzG,IAjEF,CAFA,CAAA;;AAqEAszG,SAAS,CAAC9tK,SAAV,CAAoBmxJ,WAApB,GAAkC32F,IAAI,CAACx6D,SAAL,CAAegqC,WAAjD,CAAA;AACA8jI,SAAS,CAAC9tK,SAAV,CAAoByuK,WAApB,GAAkCj0G,IAAI,CAACx6D,SAAL,CAAe+5D,WAAjD;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BO,IAAI20G,eAAe,GAAG,CAAC,QAAD,EAAW,OAAX,CAAtB,CAAA;;AAEP,IAAIC,KAAK;AACT;AACA,YAAY;EACV,SAASA,KAAT,CAAejoK,IAAf,EAAqB;IACnB,IAAK43B,CAAAA,UAAL,GAAkBowI,eAAlB,CAAA;IACA,IAAK37J,CAAAA,IAAL,GAAY,OAAZ,CAAA;AACA;AACJ;AACA;;IAEI,IAAK3R,CAAAA,EAAL,GAAU,CAAV,CAAA;AACA;AACJ;AACA;;IAEI,IAAKC,CAAAA,EAAL,GAAU,CAAV,CAAA;AACA,IAAA,IAAA,CAAKutK,WAAL,GAAmB,IAAIhB,UAAJ,EAAnB,CAAA;AACA,IAAA,IAAA,CAAKiB,UAAL,GAAkB,IAAIf,SAAJ,EAAlB,CAAA;IACA,IAAK3vG,CAAAA,kBAAL,GAA0B,IAA1B,CAAA;AACA,IAAA,IAAA,CAAKz3D,IAAL,GAAYA,IAAI,IAAI,EAApB,CAAA;IACA,IAAKkoK,CAAAA,WAAL,CAAiBvoI,KAAjB,GAAyB,KAAKwoI,UAAL,CAAgBxoI,KAAhB,GAAwB,IAAjD,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEsoI,EAAAA,KAAK,CAAC3uK,SAAN,CAAgB2sD,YAAhB,GAA+B,UAAU/xB,KAAV,EAAiB;AAC9C,IAAA,IAAIqO,KAAK,GAAG,IAAA,CAAK0I,YAAL,CAAkB/W,KAAlB,CAAZ,CAAA;AACA,IAAA,OAAO,KAAKg0I,WAAL,CAAiB7zI,OAAjB,CAAyBkO,KAAK,CAAC,CAAD,CAA9B,KAAsC,IAAK4lI,CAAAA,UAAL,CAAgB9zI,OAAhB,CAAwBkO,KAAK,CAAC,CAAD,CAA7B,CAA7C,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;AAGE0lI,EAAAA,KAAK,CAAC3uK,SAAN,CAAgB44D,WAAhB,GAA8B,UAAU1kC,IAAV,EAAgB;AAC5C,IAAA,OAAO,KAAK06I,WAAL,CAAiBh2G,WAAjB,CAA6B1kC,IAAI,CAAC,CAAD,CAAjC,KAAyC,IAAK26I,CAAAA,UAAL,CAAgBj2G,WAAhB,CAA4B1kC,IAAI,CAAC,CAAD,CAAhC,CAAhD,CAAA;GADF,CAAA;;AAIAy6I,EAAAA,KAAK,CAAC3uK,SAAN,CAAgB4pC,OAAhB,GAA0B,UAAU7L,GAAV,EAAe;AACvC,IAAA,IAAIh3B,GAAG,GAAG,GAAMg3B,GAAAA,GAAN,GAAY,MAAtB,CAAA;IACA,OAAO,IAAA,CAAKh3B,GAAL,CAAP,CAAA;GAFF,CAAA;;AAKA4nK,EAAAA,KAAK,CAAC3uK,SAAN,CAAgBu3D,OAAhB,GAA0B,YAAY;AACpC,IAAA,OAAO,CAAC,IAAKq3G,CAAAA,WAAN,EAAmB,IAAA,CAAKC,UAAxB,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEF,EAAAA,KAAK,CAAC3uK,SAAN,CAAgB+qC,cAAhB,GAAiC,UAAUysB,SAAV,EAAqB;IACpD,IAAIgH,IAAI,GAAG,EAAX,CAAA;IACA,IAAIwyF,SAAS,GAAG,IAAA,CAAK6d,UAArB,CAAA;IACA,IAAI/d,UAAU,GAAG,IAAA,CAAK8d,WAAtB,CAAA;AACA5d,IAAAA,SAAS,CAAC1qI,KAAV,CAAgBvT,IAAhB,KAAyBykD,SAAzB,IAAsCgH,IAAI,CAACz6D,IAAL,CAAUitJ,SAAV,CAAtC,CAAA;AACAF,IAAAA,UAAU,CAACxqI,KAAX,CAAiBvT,IAAjB,KAA0BykD,SAA1B,IAAuCgH,IAAI,CAACz6D,IAAL,CAAU+sJ,UAAV,CAAvC,CAAA;AACA,IAAA,OAAOtyF,IAAP,CAAA;GANF,CAAA;;AASAmwG,EAAAA,KAAK,CAAC3uK,SAAN,CAAgBixJ,YAAhB,GAA+B,YAAY;AACzC,IAAA,OAAO,KAAK4d,UAAZ,CAAA;GADF,CAAA;;AAIAF,EAAAA,KAAK,CAAC3uK,SAAN,CAAgB+wJ,aAAhB,GAAgC,YAAY;AAC1C,IAAA,OAAO,KAAK6d,WAAZ,CAAA;GADF,CAAA;;AAIAD,EAAAA,KAAK,CAAC3uK,SAAN,CAAgB29B,YAAhB,GAA+B,UAAUgM,IAAV,EAAgB;IAC7C,IAAIqnH,SAAS,GAAG,IAAA,CAAK6d,UAArB,CAAA;AACA,IAAA,OAAOllI,IAAI,KAAKqnH,SAAT,GAAqB,IAAK4d,CAAAA,WAA1B,GAAwC5d,SAA/C,CAAA;GAFF,CAAA;AAIA;AACF;AACA;AACA;;;AAGE2d,EAAAA,KAAK,CAAC3uK,SAAN,CAAgBy9B,WAAhB,GAA8B,YAAY;AACxC,IAAA,OAAO,KAAKsN,cAAL,CAAoB,SAApB,CAAA,CAA+B,CAA/B,CAAqC,IAAA,IAAA,CAAKA,cAAL,CAAoB,MAApB,CAA4B,CAAA,CAA5B,CAArC,IAAuE,IAAA,CAAKkmH,YAAL,EAA9E,CAAA;GADF,CAAA;;AAIA0d,EAAAA,KAAK,CAAC3uK,SAAN,CAAgBmhE,cAAhB,GAAiC,UAAUpjC,GAAV,EAAe;AAC9C,IAAA,IAAIP,QAAQ,GAAGO,GAAG,IAAI,IAAP,IAAeA,GAAG,KAAK,MAAvB,GAAgC,IAAA,CAAK6L,OAAL,CAAa7L,GAAb,CAAhC,GAAoD,IAAA,CAAKN,WAAL,EAAnE,CAAA;IACA,OAAO;MACL2jC,QAAQ,EAAE,CAAC5jC,QAAD,CADL;AAEL6jC,MAAAA,SAAS,EAAE,CAAC,IAAA,CAAK1jC,YAAL,CAAkBH,QAAlB,CAAD,CAAA;KAFb,CAAA;GAFF,CAAA;AAOA;AACF;AACA;AACA;;;EAGEmxI,KAAK,CAAC3uK,SAAN,CAAgBq/B,WAAhB,GAA8B,UAAUnL,IAAV,EAAgBklC,KAAhB,EAAuB;AACnD,IAAA,OAAO,IAAKyZ,CAAAA,YAAL,CAAkB,CAAC,IAAK+7F,CAAAA,WAAL,CAAiB1d,YAAjB,CAA8Bh9H,IAAI,CAAC,CAAD,CAAlC,EAAuCklC,KAAvC,CAAD,EAAgD,IAAKy1G,CAAAA,UAAL,CAAgB1d,WAAhB,CAA4Bj9H,IAAI,CAAC,CAAD,CAAhC,EAAqCklC,KAArC,CAAhD,CAAlB,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;EAGEu1G,KAAK,CAAC3uK,SAAN,CAAgB85D,WAAhB,GAA8B,UAAUl/B,KAAV,EAAiBw+B,KAAjB,EAAwB;AACpD,IAAA,IAAInwB,KAAK,GAAG,IAAA,CAAK0I,YAAL,CAAkB/W,KAAlB,CAAZ,CAAA;IACA,OAAO,CAAC,IAAKg0I,CAAAA,WAAL,CAAiBf,YAAjB,CAA8B5kI,KAAK,CAAC,CAAD,CAAnC,EAAwCmwB,KAAxC,CAAD,EAAiD,IAAKy1G,CAAAA,UAAL,CAAgBJ,WAAhB,CAA4BxlI,KAAK,CAAC,CAAD,CAAjC,EAAsCmwB,KAAtC,CAAjD,CAAP,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;AAGEu1G,EAAAA,KAAK,CAAC3uK,SAAN,CAAgB2xC,YAAhB,GAA+B,UAAU/W,KAAV,EAAiB;IAC9C,IAAIJ,EAAE,GAAGI,KAAK,CAAC,CAAD,CAAL,GAAW,KAAKx5B,EAAzB,CAAA;IACA,IAAIq5B,EAAE,GAAGG,KAAK,CAAC,CAAD,CAAL,GAAW,KAAKv5B,EAAzB,CAAA;AACA,IAAA,IAAI2vJ,SAAS,GAAG,IAAKC,CAAAA,YAAL,EAAhB,CAAA;AACA,IAAA,IAAInyH,MAAM,GAAGkyH,SAAS,CAACjyH,SAAV,EAAb,CAAA;AACA,IAAA,IAAI2lB,QAAQ,GAAGllD,IAAI,CAAC8iC,GAAL,CAASxD,MAAM,CAAC,CAAD,CAAf,EAAoBA,MAAM,CAAC,CAAD,CAA1B,CAAf,CAAA;AACA,IAAA,IAAIgwI,QAAQ,GAAGtvK,IAAI,CAAC0iB,GAAL,CAAS4c,MAAM,CAAC,CAAD,CAAf,EAAoBA,MAAM,CAAC,CAAD,CAA1B,CAAf,CAN8C;AAO9C;;AAEAkyH,IAAAA,SAAS,CAAC9qH,OAAV,GAAoBwe,QAAQ,GAAGoqH,QAAQ,GAAG,GAA1C,GAAgDA,QAAQ,GAAGpqH,QAAQ,GAAG,GAAtE,CAAA;AACA,IAAA,IAAIJ,MAAM,GAAG9kD,IAAI,CAAC0kC,IAAL,CAAU1J,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAzB,CAAb,CAAA;AACAD,IAAAA,EAAE,IAAI8pB,MAAN,CAAA;AACA7pB,IAAAA,EAAE,IAAI6pB,MAAN,CAAA;AACA,IAAA,IAAI+wB,MAAM,GAAG71E,IAAI,CAAC8qD,KAAL,CAAW,CAAC7vB,EAAZ,EAAgBD,EAAhB,IAAsBh7B,IAAI,CAACI,EAA3B,GAAgC,GAA7C,CAb8C;;IAe9C,IAAIgjC,GAAG,GAAGyyC,MAAM,GAAG3wB,QAAT,GAAoB,CAApB,GAAwB,CAAC,CAAnC,CAAA;;AAEA,IAAA,OAAO2wB,MAAM,GAAG3wB,QAAT,IAAqB2wB,MAAM,GAAGy5F,QAArC,EAA+C;MAC7Cz5F,MAAM,IAAIzyC,GAAG,GAAG,GAAhB,CAAA;AACD,KAAA;;AAED,IAAA,OAAO,CAAC0hB,MAAD,EAAS+wB,MAAT,CAAP,CAAA;GArBF,CAAA;AAuBA;AACF;AACA;;;AAGEs5F,EAAAA,KAAK,CAAC3uK,SAAN,CAAgB6yE,YAAhB,GAA+B,UAAU5pC,KAAV,EAAiB;AAC9C,IAAA,IAAIqb,MAAM,GAAGrb,KAAK,CAAC,CAAD,CAAlB,CAAA;IACA,IAAIosC,MAAM,GAAGpsC,KAAK,CAAC,CAAD,CAAL,GAAW,GAAX,GAAiBzpC,IAAI,CAACI,EAAnC,CAAA;AACA,IAAA,IAAIa,CAAC,GAAGjB,IAAI,CAACG,GAAL,CAAS01E,MAAT,CAAA,GAAmB/wB,MAAnB,GAA4B,IAAKljD,CAAAA,EAAzC,CAH8C;;AAK9C,IAAA,IAAIV,CAAC,GAAG,CAAClB,IAAI,CAACC,GAAL,CAAS41E,MAAT,CAAD,GAAoB/wB,MAApB,GAA6B,KAAKjjD,EAA1C,CAAA;AACA,IAAA,OAAO,CAACZ,CAAD,EAAIC,CAAJ,CAAP,CAAA;GANF,CAAA;AAQA;AACF;AACA;AACA;;;AAGEiuK,EAAAA,KAAK,CAAC3uK,SAAN,CAAgB8lC,OAAhB,GAA0B,YAAY;AACpC,IAAA,IAAIkrH,SAAS,GAAG,IAAKC,CAAAA,YAAL,EAAhB,CAAA;AACA,IAAA,IAAIH,UAAU,GAAG,IAAKC,CAAAA,aAAL,EAAjB,CAAA;AACA,IAAA,IAAI/7E,YAAY,GAAG87E,UAAU,CAAC/xH,SAAX,EAAA,CAAuBhW,KAAvB,EAAnB,CAAA;AACAisD,IAAAA,YAAY,CAAC,CAAD,CAAZ,GAAkBA,YAAY,CAAC,CAAD,CAA9B,IAAqCA,YAAY,CAAC7qC,OAAb,EAArC,CAAA;AACA,IAAA,IAAIkoF,WAAW,GAAG2+B,SAAS,CAACjyH,SAAV,EAAlB,CAAA;AACA,IAAA,IAAIilB,MAAM,GAAGxkD,IAAI,CAACI,EAAL,GAAU,GAAvB,CAAA;IACA,OAAO;MACLwB,EAAE,EAAE,KAAKA,EADJ;MAELC,EAAE,EAAE,KAAKA,EAFJ;AAGLklC,MAAAA,EAAE,EAAEyuC,YAAY,CAAC,CAAD,CAHX;AAIL1zE,MAAAA,CAAC,EAAE0zE,YAAY,CAAC,CAAD,CAJV;AAKLzzE,MAAAA,UAAU,EAAE,CAAC8wH,WAAW,CAAC,CAAD,CAAZ,GAAkBruE,MALzB;AAMLxiD,MAAAA,QAAQ,EAAE,CAAC6wH,WAAW,CAAC,CAAD,CAAZ,GAAkBruE,MANvB;MAOLjiD,SAAS,EAAEivJ,SAAS,CAAC9qH,OAPhB;AAQLnL,MAAAA,OAAO,EAAE,SAAA,OAAA,CAAUt6B,CAAV,EAAaC,CAAb,EAAgB;AACvB;AACA;AACA,QAAA,IAAI85B,EAAE,GAAG/5B,CAAC,GAAG,KAAKW,EAAlB,CAAA;AACA,QAAA,IAAIq5B,EAAE,GAAG/5B,CAAC,GAAG,IAAKW,CAAAA,EAAlB,CAJuB;;QAMvB,IAAI0tK,EAAE,GAAGv0I,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAf,GAAoB,IAA7B,CAAA;QACA,IAAIn5B,CAAC,GAAG,IAAA,CAAKA,CAAb,CAAA;QACA,IAAIilC,EAAE,GAAG,IAAA,CAAKA,EAAd,CAAA;QACA,OAAOwoI,EAAE,IAAIztK,CAAC,GAAGA,CAAV,IAAeytK,EAAE,IAAIxoI,EAAE,GAAGA,EAAjC,CAAA;AACD,OAAA;KAlBH,CAAA;GAPF,CAAA;;EA6BAooI,KAAK,CAAC3uK,SAAN,CAAgBigE,cAAhB,GAAiC,UAAUlyB,OAAV,EAAmBmyB,MAAnB,EAA2BhhC,KAA3B,EAAkC;AACjE,IAAA,IAAIpO,QAAQ,GAAGqjE,aAAW,CAACj0B,MAAD,CAA1B,CAAA;IACA,OAAOpvC,QAAQ,KAAK,IAAb,GAAoB,IAAA,CAAKuO,WAAL,CAAiBH,KAAjB,CAApB,GAA8C,IAArD,CAAA;GAFF,CAAA;;EAKAyvI,KAAK,CAAC3uK,SAAN,CAAgBogE,gBAAhB,GAAmC,UAAUryB,OAAV,EAAmBmyB,MAAnB,EAA2B2V,KAA3B,EAAkC;AACnE,IAAA,IAAI/kD,QAAQ,GAAGqjE,aAAW,CAACj0B,MAAD,CAA1B,CAAA;IACA,OAAOpvC,QAAQ,KAAK,IAAb,GAAoB,IAAA,CAAKgpC,WAAL,CAAiB+b,KAAjB,CAApB,GAA8C,IAArD,CAAA;GAFF,CAAA;;AAKA,EAAA,OAAO84F,KAAP,CAAA;AACD,CAlMD,EAFA,CAAA;;AAsMA,SAASx6E,aAAT,CAAqBj0B,MAArB,EAA6B;AAC3B,EAAA,IAAIxpC,WAAW,GAAGwpC,MAAM,CAACxpC,WAAzB,CAAA;AACA,EAAA,IAAIs4I,UAAU,GAAG9uG,MAAM,CAAC8uG,UAAxB,CAAA;EACA,OAAOA,UAAU,IAAIA,UAAU,CAACj+I,gBAAzB,IAA6C2F,WAAW,IAAIA,WAAW,CAAC3F,gBAA/E,CAAA;AACD;;ACxPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA;AACA;AACA;;AAEA,SAASk+I,WAAT,CAAqB5oI,KAArB,EAA4B2oI,UAA5B,EAAwCzyJ,GAAxC,EAA6C;AAC3C,EAAA,IAAI8nC,MAAM,GAAG2qH,UAAU,CAAC72I,GAAX,CAAe,QAAf,CAAb,CAAA;AACA,EAAA,IAAI1uB,KAAK,GAAG8S,GAAG,CAACmG,QAAJ,EAAZ,CAAA;AACA,EAAA,IAAIhZ,MAAM,GAAG6S,GAAG,CAACoG,SAAJ,EAAb,CAAA;EACA0jB,KAAK,CAACjlC,EAAN,GAAWmjD,YAAY,CAACF,MAAM,CAAC,CAAD,CAAP,EAAY56C,KAAZ,CAAvB,CAAA;EACA48B,KAAK,CAAChlC,EAAN,GAAWkjD,YAAY,CAACF,MAAM,CAAC,CAAD,CAAP,EAAY36C,MAAZ,CAAvB,CAAA;AACA,EAAA,IAAIonJ,UAAU,GAAGzqH,KAAK,CAAC0qH,aAAN,EAAjB,CAAA;EACA,IAAI5+H,IAAI,GAAG3yB,IAAI,CAAC8iC,GAAL,CAAS74B,KAAT,EAAgBC,MAAhB,CAAA,GAA0B,CAArC,CAAA;AACA,EAAA,IAAI46C,MAAM,GAAG0qH,UAAU,CAAC72I,GAAX,CAAe,QAAf,CAAb,CAAA;;EAEA,IAAImsB,MAAM,IAAI,IAAd,EAAoB;AAClBA,IAAAA,MAAM,GAAG,CAAC,CAAD,EAAI,MAAJ,CAAT,CAAA;GADF,MAEO,IAAI,CAAC5c,SAAA,CAAe4c,MAAf,CAAL,EAA6B;AAClC;AACAA,IAAAA,MAAM,GAAG,CAAC,CAAD,EAAIA,MAAJ,CAAT,CAAA;AACD,GAAA;;EAED,IAAI4qH,YAAY,GAAG,CAAC3qH,YAAY,CAACD,MAAM,CAAC,CAAD,CAAP,EAAYnyB,IAAZ,CAAb,EAAgCoyB,YAAY,CAACD,MAAM,CAAC,CAAD,CAAP,EAAYnyB,IAAZ,CAA5C,CAAnB,CAAA;AACA2+H,EAAAA,UAAU,CAAC5qH,OAAX,GAAqB4qH,UAAU,CAAC3zF,SAAX,CAAqB+xG,YAAY,CAAC,CAAD,CAAjC,EAAsCA,YAAY,CAAC,CAAD,CAAlD,CAArB,GAA8Epe,UAAU,CAAC3zF,SAAX,CAAqB+xG,YAAY,CAAC,CAAD,CAAjC,EAAsCA,YAAY,CAAC,CAAD,CAAlD,CAA9E,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASC,gBAAT,CAA0BphI,OAA1B,EAAmCxxB,GAAnC,EAAwC;EACtC,IAAI8pB,KAAK,GAAG,IAAZ,CAAA;AACA,EAAA,IAAI2qH,SAAS,GAAG3qH,KAAK,CAAC4qH,YAAN,EAAhB,CAAA;AACA,EAAA,IAAIH,UAAU,GAAGzqH,KAAK,CAAC0qH,aAAN,EAAjB,CAHsC;;EAKtCC,SAAS,CAAC1qI,KAAV,CAAgB62C,SAAhB,CAA0B51C,QAA1B,EAAoC,CAACA,QAArC,CAAA,CAAA;EACAupI,UAAU,CAACxqI,KAAX,CAAiB62C,SAAjB,CAA2B51C,QAA3B,EAAqC,CAACA,QAAtC,CAAA,CAAA;AACAwmB,EAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;AACxC,IAAA,IAAIA,WAAW,CAAC3F,gBAAZ,KAAiCsV,KAArC,EAA4C;AAC1C,MAAA,IAAImG,MAAM,GAAG9V,WAAW,CAAC3E,OAAZ,EAAb,CAAA;AACA2V,MAAAA,MAAA,CAAYu5B,uBAAuB,CAACz0B,MAAD,EAAS,QAAT,CAAnC,EAAuD,UAAUzO,GAAV,EAAe;AACpE+yH,QAAAA,UAAU,CAACxqI,KAAX,CAAiB46C,mBAAjB,CAAqC10B,MAArC,EAA6CzO,GAA7C,CAAA,CAAA;OADF,CAAA,CAAA;AAGA2J,MAAAA,MAAA,CAAYu5B,uBAAuB,CAACz0B,MAAD,EAAS,OAAT,CAAnC,EAAsD,UAAUzO,GAAV,EAAe;AACnEizH,QAAAA,SAAS,CAAC1qI,KAAV,CAAgB46C,mBAAhB,CAAoC10B,MAApC,EAA4CzO,GAA5C,CAAA,CAAA;OADF,CAAA,CAAA;AAGD,KAAA;GATH,CAAA,CAAA;EAWA6gC,eAAe,CAACoyF,SAAS,CAAC1qI,KAAX,EAAkB0qI,SAAS,CAAC/0G,KAA5B,CAAf,CAAA;EACA2iB,eAAe,CAACkyF,UAAU,CAACxqI,KAAZ,EAAmBwqI,UAAU,CAAC70G,KAA9B,CAAf,CAnBsC;;EAqBtC,IAAI+0G,SAAS,CAACj+I,IAAV,KAAmB,UAAnB,IAAiC,CAACi+I,SAAS,CAACz3G,MAAhD,EAAwD;AACtD,IAAA,IAAIza,MAAM,GAAGkyH,SAAS,CAACjyH,SAAV,EAAb,CAAA;IACA,IAAInD,IAAI,GAAG,GAAMo1H,GAAAA,SAAS,CAAC1qI,KAAV,CAAgBshB,KAAhB,EAAjB,CAAA;AACAopH,IAAAA,SAAS,CAAC9qH,OAAV,GAAoBpH,MAAM,CAAC,CAAD,CAAN,IAAalD,IAAjC,GAAwCkD,MAAM,CAAC,CAAD,CAAN,IAAalD,IAArD,CAAA;IACAo1H,SAAS,CAAC7zF,SAAV,CAAoBr+B,MAAM,CAAC,CAAD,CAA1B,EAA+BA,MAAM,CAAC,CAAD,CAArC,CAAA,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASswI,gBAAT,CAA0BpvH,SAA1B,EAAqC;AACnC,EAAA,OAAOA,SAAS,CAAC4D,QAAV,KAAuB,WAA9B,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASyrH,OAAT,CAAiB1lI,IAAjB,EAAuBqW,SAAvB,EAAkC;EAChCrW,IAAI,CAAC52B,IAAL,GAAYitC,SAAS,CAAC7nB,GAAV,CAAc,MAAd,CAAZ,CAAA;AACAwR,EAAAA,IAAI,CAACrjB,KAAL,GAAas6C,oBAAkB,CAAC5gB,SAAD,CAA/B,CAAA;AACArW,EAAAA,IAAI,CAAC4P,MAAL,GAAcyG,SAAS,CAAC7nB,GAAV,CAAc,aAAd,CAAgCwR,IAAAA,IAAI,CAAC52B,IAAL,KAAc,UAA5D,CAAA;EACA42B,IAAI,CAACzD,OAAL,GAAe8Z,SAAS,CAAC7nB,GAAV,CAAc,SAAd,CAAf,CAAA;;AAEA,EAAA,IAAIi3I,gBAAgB,CAACpvH,SAAD,CAApB,EAAiC;AAC/BrW,IAAAA,IAAI,CAACzD,OAAL,GAAeyD,IAAI,CAACzD,OAAL,KAAiB8Z,SAAS,CAAC7nB,GAAV,CAAc,WAAd,CAAhC,CAAA;AACA,IAAA,IAAI52B,UAAU,GAAGy+C,SAAS,CAAC7nB,GAAV,CAAc,YAAd,CAAjB,CAAA;AACAwR,IAAAA,IAAI,CAACwzB,SAAL,CAAe57D,UAAf,EAA2BA,UAAU,IAAIooC,IAAI,CAACzD,OAAL,GAAe,CAAC,GAAhB,GAAsB,GAA1B,CAArC,CAAA,CAAA;AACD,GAV+B;;;EAahC8Z,SAAS,CAACrW,IAAV,GAAiBA,IAAjB,CAAA;EACAA,IAAI,CAACsS,KAAL,GAAa+D,SAAb,CAAA;AACD,CAAA;;AAED,IAAIsvH,YAAY,GAAG;AACjBhxI,EAAAA,UAAU,EAAEowI,eADK;AAEjBptG,EAAAA,MAAM,EAAE,SAAA,MAAA,CAAUvzB,OAAV,EAAmBxxB,GAAnB,EAAwB;IAC9B,IAAIgzJ,SAAS,GAAG,EAAhB,CAAA;IACAxhI,OAAO,CAAC4V,aAAR,CAAsB,OAAtB,EAA+B,UAAUqrH,UAAV,EAAsBt/I,GAAtB,EAA2B;MACxD,IAAI2W,KAAK,GAAG,IAAIsoI,KAAJ,CAAUj/I,GAAG,GAAG,EAAhB,CAAZ,CADwD;;MAGxD2W,KAAK,CAACpK,MAAN,GAAekzI,gBAAf,CAAA;AACA,MAAA,IAAIre,UAAU,GAAGzqH,KAAK,CAAC0qH,aAAN,EAAjB,CAAA;AACA,MAAA,IAAIC,SAAS,GAAG3qH,KAAK,CAAC4qH,YAAN,EAAhB,CAAA;AACA,MAAA,IAAIue,eAAe,GAAGR,UAAU,CAACzB,aAAX,CAAyB,YAAzB,CAAtB,CAAA;AACA,MAAA,IAAIkC,cAAc,GAAGT,UAAU,CAACzB,aAAX,CAAyB,WAAzB,CAArB,CAAA;AACA8B,MAAAA,OAAO,CAACve,UAAD,EAAa0e,eAAb,CAAP,CAAA;AACAH,MAAAA,OAAO,CAACre,SAAD,EAAYye,cAAZ,CAAP,CAAA;AACAR,MAAAA,WAAW,CAAC5oI,KAAD,EAAQ2oI,UAAR,EAAoBzyJ,GAApB,CAAX,CAAA;MACAgzJ,SAAS,CAACxrK,IAAV,CAAesiC,KAAf,CAAA,CAAA;MACA2oI,UAAU,CAACj+I,gBAAX,GAA8BsV,KAA9B,CAAA;MACAA,KAAK,CAAC4V,KAAN,GAAc+yH,UAAd,CAAA;AACD,KAdD,EAF8B;;AAkB9BjhI,IAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;AACxC,MAAA,IAAIA,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,CAAA,KAAwC,OAA5C,EAAqD;AACnD,QAAA,IAAI62I,UAAU,GAAGt4I,WAAW,CAACw8B,sBAAZ,CAAmC,OAAnC,EAA4CC,gBAA5C,CAAA,CAA8DC,MAA9D,CAAqE,CAArE,CAAjB,CAAA;;AAEA,QAAA,IAAIh8C,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;UACzC,IAAI,CAAC03J,UAAL,EAAiB;YACf,MAAM,IAAIh+I,KAAJ,CAAU,SAAY0W,GAAAA,QAAA,CAAgBhR,WAAW,CAACyB,GAAZ,CAAgB,YAAhB,CAAhB,EAA+CzB,WAAW,CAACyB,GAAZ,CAAgB,SAAhB,CAA/C,EAA2E,CAA3E,CAAZ,GAA4F,aAAtG,CAAN,CAAA;AACD,WAAA;AACF,SAAA;;AAEDzB,QAAAA,WAAW,CAAC3F,gBAAZ,GAA+Bi+I,UAAU,CAACj+I,gBAA1C,CAAA;AACD,OAAA;KAXH,CAAA,CAAA;AAaA,IAAA,OAAOw+I,SAAP,CAAA;AACD,GAAA;AAlCgB,CAAnB;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiCA,IAAIxmC,WAAW,GAAG,CAAC,UAAD,EAAa,WAAb,EAA0B,UAA1B,EAAsC,WAAtC,EAAmD,WAAnD,EAAgE,gBAAhE,EAAkF,WAAlF,CAAlB,CAAA;;AAEA,SAAS2mC,gBAAT,CAA0BrpI,KAA1B,EAAiCspI,OAAjC,EAA0Cx2H,KAA1C,EAAiD;AAC/Cw2H,EAAAA,OAAO,CAAC,CAAD,CAAP,GAAaA,OAAO,CAAC,CAAD,CAApB,KAA4BA,OAAO,GAAGA,OAAO,CAAC5mJ,KAAR,EAAA,CAAgBohB,OAAhB,EAAtC,CAAA,CAAA;AACA,EAAA,IAAIxc,KAAK,GAAG0Y,KAAK,CAACwsC,YAAN,CAAmB,CAAC88F,OAAO,CAAC,CAAD,CAAR,EAAax2H,KAAb,CAAnB,CAAZ,CAAA;AACA,EAAA,IAAIjc,GAAG,GAAGmJ,KAAK,CAACwsC,YAAN,CAAmB,CAAC88F,OAAO,CAAC,CAAD,CAAR,EAAax2H,KAAb,CAAnB,CAAV,CAAA;EACA,OAAO;AACLniC,IAAAA,EAAE,EAAE2W,KAAK,CAAC,CAAD,CADJ;AAEL1W,IAAAA,EAAE,EAAE0W,KAAK,CAAC,CAAD,CAFJ;AAGL7sB,IAAAA,EAAE,EAAEo8B,GAAG,CAAC,CAAD,CAHF;IAILn8B,EAAE,EAAEm8B,GAAG,CAAC,CAAD,CAAA;GAJT,CAAA;AAMD,CAAA;;AAED,SAAS0yI,YAAT,CAAsBvpI,KAAtB,EAA6B;AAC3B,EAAA,IAAIyqH,UAAU,GAAGzqH,KAAK,CAAC0qH,aAAN,EAAjB,CAAA;AACA,EAAA,OAAOD,UAAU,CAAC5qH,OAAX,GAAqB,CAArB,GAAyB,CAAhC,CAAA;AACD;;;AAGD,SAAS2pI,eAAT,CAAyB1vJ,IAAzB,EAA+B;AAC7B,EAAA,IAAI2vJ,SAAS,GAAG3vJ,IAAI,CAAC,CAAD,CAApB,CAAA;EACA,IAAI4vJ,QAAQ,GAAG5vJ,IAAI,CAACA,IAAI,CAACnd,MAAL,GAAc,CAAf,CAAnB,CAAA;;EAEA,IAAI8sK,SAAS,IAAIC,QAAb,IAAyBvwK,IAAI,CAACyC,GAAL,CAASzC,IAAI,CAACyC,GAAL,CAAS6tK,SAAS,CAAC7mI,KAAV,GAAkB8mI,QAAQ,CAAC9mI,KAApC,CAA6C,GAAA,GAAtD,CAA6D,GAAA,IAA1F,EAAgG;AAC9F9oB,IAAAA,IAAI,CAAC0+C,GAAL,EAAA,CAAA;AACD,GAAA;AACF,CAAA;;AAED,IAAImxG,aAAa;AACjB;AACA,UAAU9rJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC6rJ,aAAD,EAAgB9rJ,MAAhB,CAAT,CAAA;;AAEA,EAAA,SAAS8rJ,aAAT,GAAyB;AACvB,IAAA,IAAI5rJ,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAai9J,aAAa,CAACj9J,IAA3B,CAAA;IACAqR,KAAK,CAACooD,gBAAN,GAAyB,kBAAzB,CAAA;AACA,IAAA,OAAOpoD,KAAP,CAAA;AACD,GAAA;;EAED4rJ,aAAa,CAAChwK,SAAd,CAAwB8tC,MAAxB,GAAiC,UAAU2hI,cAAV,EAA0B1hI,OAA1B,EAAmC;IAClE,IAAK1c,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;;AAEA,IAAA,IAAI,CAACw6I,cAAc,CAACt3I,GAAf,CAAmB,MAAnB,CAAL,EAAiC;AAC/B,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI64H,SAAS,GAAGye,cAAc,CAAC9lI,IAA/B,CAAA;AACA,IAAA,IAAItD,KAAK,GAAG2qH,SAAS,CAAC3qH,KAAtB,CAAA;AACA,IAAA,IAAI2uC,YAAY,GAAG3uC,KAAK,CAAC0qH,aAAN,EAAA,CAAsBhyH,SAAtB,EAAnB,CAAA;AACA,IAAA,IAAIkxI,WAAW,GAAGjf,SAAS,CAACtpF,cAAV,EAAlB,CAAA;AACA,IAAA,IAAIwoG,eAAe,GAAGlf,SAAS,CAACnpF,mBAAV,EAAtB,CAAA;AACA,IAAA,IAAIK,MAAM,GAAGxgC,GAAA,CAAWspH,SAAS,CAAC7lH,aAAV,EAAX,EAAsC,UAAUC,SAAV,EAAqB;AACtEA,MAAAA,SAAS,GAAG1D,OAAA,CAAa0D,SAAb,CAAZ,CAAA;AACA,MAAA,IAAI9kB,KAAK,GAAG0qI,SAAS,CAAC1qI,KAAtB,CAAA;AACA,MAAA,IAAIilB,SAAS,GAAGjlB,KAAK,CAACvT,IAAN,KAAe,SAAf,GAA2BuT,KAAK,CAACglB,mBAAN,CAA0BF,SAAS,CAACG,SAApC,CAA3B,GAA4EH,SAAS,CAACG,SAAtG,CAAA;MACAH,SAAS,CAACnC,KAAV,GAAkB+nH,SAAS,CAAChnH,WAAV,CAAsBuB,SAAtB,CAAlB,CAAA;AACA,MAAA,OAAOH,SAAP,CAAA;AACD,KANY,CAAb,CAAA;IAOAykI,eAAe,CAAC3nG,MAAD,CAAf,CAAA;IACA2nG,eAAe,CAACI,WAAD,CAAf,CAAA;AACAvoI,IAAAA,MAAA,CAAYqhG,WAAZ,EAAyB,UAAUriI,IAAV,EAAgB;MACvC,IAAI+oK,cAAc,CAACt3I,GAAf,CAAmB,CAACzxB,IAAD,EAAO,MAAP,CAAnB,CAAuC,KAAA,CAACsqJ,SAAS,CAAC1qI,KAAV,CAAgBmhD,OAAhB,EAAD,IAA8B/gE,IAAI,KAAK,UAA9E,CAAJ,EAA+F;AAC7FypK,QAAAA,yBAAyB,CAACzpK,IAAD,CAAzB,CAAgC,IAAA,CAAK2qB,KAArC,EAA4Co+I,cAA5C,EAA4DppI,KAA5D,EAAmE4pI,WAAnE,EAAgFC,eAAhF,EAAiGl7F,YAAjG,EAA+G9M,MAA/G,CAAA,CAAA;AACD,OAAA;AACF,KAJD,EAIG,IAJH,CAAA,CAAA;GArBF,CAAA;;EA4BA8nG,aAAa,CAACj9J,IAAd,GAAqB,WAArB,CAAA;AACA,EAAA,OAAOi9J,aAAP,CAAA;AACD,CAzCD,CAyCEzjG,QAzCF,CAFA,CAAA;;AA6CA,IAAI4jG,yBAAyB,GAAG;AAC9Bl8G,EAAAA,QAAQ,EAAE,SAAA,QAAA,CAAU5iC,KAAV,EAAiBo+I,cAAjB,EAAiCppI,KAAjC,EAAwC4pI,WAAxC,EAAqDC,eAArD,EAAsEl7F,YAAtE,EAAoF;AAC5F,IAAA,IAAIhnC,cAAc,GAAGyhI,cAAc,CAACx3I,QAAf,CAAwB,CAAC,UAAD,EAAa,WAAb,CAAxB,CAArB,CAD4F;;AAG5F,IAAA,IAAIm4I,GAAG,GAAGR,YAAY,CAACvpI,KAAD,CAAtB,CAAA;AACA,IAAA,IAAIgqI,IAAI,GAAGD,GAAG,GAAG,CAAH,GAAO,CAArB,CAAA;AACA,IAAA,IAAI9kK,KAAJ,CAAA;;AAEA,IAAA,IAAI0pE,YAAY,CAACq7F,IAAD,CAAZ,KAAuB,CAA3B,EAA8B;AAC5B/kK,MAAAA,KAAK,GAAG,IAAIyrB,MAAJ,CAAmB;AACzBzrB,QAAAA,KAAK,EAAE;UACLlK,EAAE,EAAEilC,KAAK,CAACjlC,EADL;UAELC,EAAE,EAAEglC,KAAK,CAAChlC,EAFL;UAGLC,CAAC,EAAE0zE,YAAY,CAACo7F,GAAD,CAAA;SAJQ;AAMzB9rK,QAAAA,KAAK,EAAE0pC,cAAc,CAAC0B,YAAf,EANkB;AAOzBta,QAAAA,EAAE,EAAE,CAPqB;AAQzBoB,QAAAA,MAAM,EAAE,IAAA;AARiB,OAAnB,CAAR,CAAA;AAUD,KAXD,MAWO;AACLlrB,MAAAA,KAAK,GAAG,IAAIyrB,IAAJ,CAAiB;AACvBzrB,QAAAA,KAAK,EAAE;UACLlK,EAAE,EAAEilC,KAAK,CAACjlC,EADL;UAELC,EAAE,EAAEglC,KAAK,CAAChlC,EAFL;AAGLC,UAAAA,CAAC,EAAE0zE,YAAY,CAACo7F,GAAD,CAHV;UAIL7pI,EAAE,EAAEyuC,YAAY,CAACq7F,IAAD,CAAA;SALK;AAOvB/rK,QAAAA,KAAK,EAAE0pC,cAAc,CAAC0B,YAAf,EAPgB;AAQvBta,QAAAA,EAAE,EAAE,CARmB;AASvBoB,QAAAA,MAAM,EAAE,IAAA;AATe,OAAjB,CAAR,CAAA;AAWD,KAAA;;AAEDlrB,IAAAA,KAAK,CAAChH,KAAN,CAAYC,IAAZ,GAAmB,IAAnB,CAAA;IACA8sB,KAAK,CAACO,GAAN,CAAUtmB,KAAV,CAAA,CAAA;GAlC4B;AAoC9B8oD,EAAAA,QAAQ,EAAE,SAAA,QAAA,CAAU/iC,KAAV,EAAiBo+I,cAAjB,EAAiCppI,KAAjC,EAAwC4pI,WAAxC,EAAqDC,eAArD,EAAsEl7F,YAAtE,EAAoF;AAC5F,IAAA,IAAIxN,SAAS,GAAGioG,cAAc,CAACx3I,QAAf,CAAwB,UAAxB,CAAhB,CAAA;AACA,IAAA,IAAIq5F,OAAO,GAAG,CAAC9pD,SAAS,CAACrvC,GAAV,CAAc,QAAd,CAAA,GAA0B,CAAC,CAA3B,GAA+B,CAAhC,IAAqCqvC,SAAS,CAACrvC,GAAV,CAAc,QAAd,CAAnD,CAAA;IACA,IAAImsB,MAAM,GAAG0wB,YAAY,CAAC46F,YAAY,CAACvpI,KAAD,CAAb,CAAzB,CAAA;IACA,IAAIiqI,KAAK,GAAG5oI,GAAA,CAAWuoI,WAAX,EAAwB,UAAUM,aAAV,EAAyB;AAC3D,MAAA,OAAO,IAAIx5I,MAAJ,CAAiB;AACtBzrB,QAAAA,KAAK,EAAEokK,gBAAgB,CAACrpI,KAAD,EAAQ,CAACie,MAAD,EAASA,MAAM,GAAGgtE,OAAlB,CAAR,EAAoCi/C,aAAa,CAACtnI,KAAlD,CAAA;AADD,OAAjB,CAAP,CAAA;AAGD,KAJW,CAAZ,CAAA;IAKA5X,KAAK,CAACO,GAAN,CAAUmF,SAAA,CAAkBu5I,KAAlB,EAAyB;AACjChsK,MAAAA,KAAK,EAAEojC,QAAA,CAAgB8/B,SAAS,CAACvvC,QAAV,CAAmB,WAAnB,CAAgCyX,CAAAA,YAAhC,EAAhB,EAAgE;QACrEjrC,MAAM,EAAEgrK,cAAc,CAACt3I,GAAf,CAAmB,CAAC,UAAD,EAAa,WAAb,EAA0B,OAA1B,CAAnB,CAAA;OADH,CAAA;AAD0B,KAAzB,CAAV,CAAA,CAAA;GA7C4B;AAmD9B68B,EAAAA,SAAS,EAAE,SAAA,SAAA,CAAU3jC,KAAV,EAAiBo+I,cAAjB,EAAiCppI,KAAjC,EAAwCmqI,UAAxC,EAAoDN,eAApD,EAAqEl7F,YAArE,EAAmF;AAC5F,IAAA,IAAI,CAACk7F,eAAe,CAACltK,MAArB,EAA6B;AAC3B,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIwkE,SAAS,GAAGioG,cAAc,CAACx3I,QAAf,CAAwB,UAAxB,CAAhB,CAAA;AACA,IAAA,IAAI0vC,cAAc,GAAG8nG,cAAc,CAACx3I,QAAf,CAAwB,WAAxB,CAArB,CAAA;AACA,IAAA,IAAIq5F,OAAO,GAAG,CAAC9pD,SAAS,CAACrvC,GAAV,CAAc,QAAd,CAAA,GAA0B,CAAC,CAA3B,GAA+B,CAAhC,IAAqCwvC,cAAc,CAACxvC,GAAf,CAAmB,QAAnB,CAAnD,CAAA;IACA,IAAImsB,MAAM,GAAG0wB,YAAY,CAAC46F,YAAY,CAACvpI,KAAD,CAAb,CAAzB,CAAA;IACA,IAAIiqI,KAAK,GAAG,EAAZ,CAAA;;AAEA,IAAA,KAAK,IAAI5sK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwsK,eAAe,CAACltK,MAApC,EAA4CU,CAAC,EAA7C,EAAiD;AAC/C,MAAA,KAAK,IAAIwL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGghK,eAAe,CAACxsK,CAAD,CAAf,CAAmBV,MAAvC,EAA+CkM,CAAC,EAAhD,EAAoD;AAClDohK,QAAAA,KAAK,CAACvsK,IAAN,CAAW,IAAIgzB,MAAJ,CAAiB;UAC1BzrB,KAAK,EAAEokK,gBAAgB,CAACrpI,KAAD,EAAQ,CAACie,MAAD,EAASA,MAAM,GAAGgtE,OAAlB,CAAR,EAAoC4+C,eAAe,CAACxsK,CAAD,CAAf,CAAmBwL,CAAnB,EAAsB+5B,KAA1D,CAAA;AADG,SAAjB,CAAX,CAAA,CAAA;AAGD,OAAA;AACF,KAAA;;IAED5X,KAAK,CAACO,GAAN,CAAUmF,SAAA,CAAkBu5I,KAAlB,EAAyB;MACjChsK,KAAK,EAAEojC,QAAA,CAAgBigC,cAAc,CAAC1vC,QAAf,CAAwB,WAAxB,CAAA,CAAqCyX,YAArC,EAAhB,EAAqEhI,QAAA,CAAgB8/B,SAAS,CAAC93B,YAAV,EAAhB,EAA0C;QACpHjrC,MAAM,EAAEgrK,cAAc,CAACt3I,GAAf,CAAmB,CAAC,UAAD,EAAa,WAAb,EAA0B,OAA1B,CAAnB,CAAA;AAD4G,OAA1C,CAArE,CAAA;AAD0B,KAAzB,CAAV,CAAA,CAAA;GAtE4B;AA4E9Bk8B,EAAAA,SAAS,EAAE,SAAA,SAAA,CAAUhjC,KAAV,EAAiBo+I,cAAjB,EAAiCppI,KAAjC,EAAwC4pI,WAAxC,EAAqDC,eAArD,EAAsEl7F,YAAtE,EAAoF9M,MAApF,EAA4F;AACrG,IAAA,IAAIE,eAAe,GAAGqnG,cAAc,CAACx4G,aAAf,CAA6B,IAA7B,CAAtB,CAAA;AACA,IAAA,IAAIw5G,gBAAgB,GAAGhB,cAAc,CAACx3I,QAAf,CAAwB,WAAxB,CAAvB,CAAA;AACA,IAAA,IAAIgwC,WAAW,GAAGwoG,gBAAgB,CAACt4I,GAAjB,CAAqB,QAArB,CAAlB,CAAA;IACA,IAAI27B,YAAY,GAAG27G,cAAc,CAACt3I,GAAf,CAAmB,cAAnB,CAAnB,CAJqG;;IAMrGuP,MAAA,CAAYwgC,MAAZ,EAAoB,UAAU98B,SAAV,EAAqB1b,GAArB,EAA0B;MAC5C,IAAI85B,UAAU,GAAGinH,gBAAjB,CAAA;AACA,MAAA,IAAIllI,SAAS,GAAGH,SAAS,CAACG,SAA1B,CAAA;MACA,IAAIjqC,CAAC,GAAG0zE,YAAY,CAAC46F,YAAY,CAACvpI,KAAD,CAAb,CAApB,CAAA;AACA,MAAA,IAAI3jC,CAAC,GAAG2jC,KAAK,CAACwsC,YAAN,CAAmB,CAACvxE,CAAC,GAAG2mE,WAAL,EAAkB78B,SAAS,CAACnC,KAA5B,CAAnB,CAAR,CAAA;AACA,MAAA,IAAI7nC,EAAE,GAAGilC,KAAK,CAACjlC,EAAf,CAAA;AACA,MAAA,IAAIC,EAAE,GAAGglC,KAAK,CAAChlC,EAAf,CAAA;AACA,MAAA,IAAIqvK,cAAc,GAAGlxK,IAAI,CAACyC,GAAL,CAASS,CAAC,CAAC,CAAD,CAAD,GAAOtB,EAAhB,CAAsBE,GAAAA,CAAtB,GAA0B,GAA1B,GAAgC,QAAhC,GAA2CoB,CAAC,CAAC,CAAD,CAAD,GAAOtB,EAAP,GAAY,MAAZ,GAAqB,OAArF,CAAA;AACA,MAAA,IAAIuvK,sBAAsB,GAAGnxK,IAAI,CAACyC,GAAL,CAASS,CAAC,CAAC,CAAD,CAAD,GAAOrB,EAAhB,CAAsBC,GAAAA,CAAtB,GAA0B,GAA1B,GAAgC,QAAhC,GAA2CoB,CAAC,CAAC,CAAD,CAAD,GAAOrB,EAAP,GAAY,KAAZ,GAAoB,QAA5F,CAAA;;AAEA,MAAA,IAAI+mE,eAAe,IAAIA,eAAe,CAAC78B,SAAD,CAAtC,EAAmD;AACjD,QAAA,IAAIi9B,eAAe,GAAGJ,eAAe,CAAC78B,SAAD,CAArC,CAAA;;QAEA,IAAI7D,UAAA,CAAgB8gC,eAAhB,CAAoCA,IAAAA,eAAe,CAACC,SAAxD,EAAmE;AACjEjf,UAAAA,UAAU,GAAG,IAAIkf,KAAJ,CAAUF,eAAe,CAACC,SAA1B,EAAqCgoG,gBAArC,EAAuDA,gBAAgB,CAAC1iI,OAAxE,CAAb,CAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,IAAI4O,MAAM,GAAG,IAAI5lB,MAAJ,CAAiB;AAC5BP,QAAAA,MAAM,EAAEsrC,WAAW,CAACgB,aAAZ,CAA0B2sG,cAA1B,CADoB;AAE5BnrK,QAAAA,KAAK,EAAEghE,eAAe,CAAC9b,UAAD,EAAa;AACjC/oD,UAAAA,CAAC,EAAEiC,CAAC,CAAC,CAAD,CAD6B;AAEjChC,UAAAA,CAAC,EAAEgC,CAAC,CAAC,CAAD,CAF6B;AAGjC6B,UAAAA,IAAI,EAAEilD,UAAU,CAAC+b,YAAX,EAAA,IAA6BkqG,cAAc,CAACt3I,GAAf,CAAmB,CAAC,UAAD,EAAa,WAAb,EAA0B,OAA1B,CAAnB,CAHF;UAIjCjxB,IAAI,EAAEkkC,SAAS,CAACi9B,cAJiB;AAKjCh7B,UAAAA,KAAK,EAAEqjI,cAL0B;AAMjCpjI,UAAAA,aAAa,EAAEqjI,sBAAAA;SANK,CAAA;AAFM,OAAjB,CAAb,CAAA;AAWAt/I,MAAAA,KAAK,CAACO,GAAN,CAAU+qB,MAAV,EA7B4C;;AA+B5C,MAAA,IAAImX,YAAJ,EAAkB;AAChB,QAAA,IAAItjB,SAAS,GAAGsxB,WAAW,CAACe,qBAAZ,CAAkC4sG,cAAlC,CAAhB,CAAA;QACAj/H,SAAS,CAACk1B,UAAV,GAAuB,WAAvB,CAAA;AACAl1B,QAAAA,SAAS,CAACtR,KAAV,GAAkBkM,SAAS,CAACk9B,QAA5B,CAAA;AACApuC,QAAAA,SAAS,CAACyiB,MAAD,CAAT,CAAkBnM,SAAlB,GAA8BA,SAA9B,CAAA;AACD,OAAA;AACF,KArCD,EAqCG,IArCH,CAAA,CAAA;GAlF4B;AAyH9BgkB,EAAAA,SAAS,EAAE,SAAA,SAAA,CAAUnjC,KAAV,EAAiBo+I,cAAjB,EAAiCppI,KAAjC,EAAwC4pI,WAAxC,EAAqDC,eAArD,EAAsEl7F,YAAtE,EAAoF;AAC7F,IAAA,IAAIlG,cAAc,GAAG2gG,cAAc,CAACx3I,QAAf,CAAwB,WAAxB,CAArB,CAAA;AACA,IAAA,IAAI+V,cAAc,GAAG8gC,cAAc,CAAC72C,QAAf,CAAwB,WAAxB,CAArB,CAAA;AACA,IAAA,IAAI82C,UAAU,GAAG/gC,cAAc,CAAC7V,GAAf,CAAmB,OAAnB,CAAjB,CAAA;IACA,IAAI62C,SAAS,GAAG,CAAhB,CAAA;IACAD,UAAU,GAAGA,UAAU,YAAY/9B,KAAtB,GAA8B+9B,UAA9B,GAA2C,CAACA,UAAD,CAAxD,CAAA;IACA,IAAIsF,UAAU,GAAG,EAAjB,CAAA;;AAEA,IAAA,KAAK,IAAI3wE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGusK,WAAW,CAACjtK,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C,MAAA,IAAIqqE,UAAU,GAAGiB,SAAS,EAAKD,GAAAA,UAAU,CAAC/rE,MAA1C,CAAA;MACAqxE,UAAU,CAACtG,UAAD,CAAV,GAAyBsG,UAAU,CAACtG,UAAD,CAAV,IAA0B,EAAnD,CAAA;MACAsG,UAAU,CAACtG,UAAD,CAAV,CAAuBhqE,IAAvB,CAA4B,IAAIgzB,MAAJ,CAAiB;AAC3CzrB,QAAAA,KAAK,EAAEokK,gBAAgB,CAACrpI,KAAD,EAAQ2uC,YAAR,EAAsBi7F,WAAW,CAACvsK,CAAD,CAAX,CAAeulC,KAArC,CAAA;AADoB,OAAjB,CAA5B,CAAA,CAAA;AAGD,KAd4F;AAe7F;;;AAGA,IAAA,KAAK,IAAIvlC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2wE,UAAU,CAACrxE,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;MAC1C2tB,KAAK,CAACO,GAAN,CAAUmF,SAAA,CAAkBs9C,UAAU,CAAC3wE,CAAD,CAA5B,EAAiC;AACzCY,QAAAA,KAAK,EAAEojC,QAAA,CAAgB;AACrBjjC,UAAAA,MAAM,EAAEsqE,UAAU,CAACrrE,CAAC,GAAGqrE,UAAU,CAAC/rE,MAAhB,CAAA;AADG,SAAhB,EAEJgrC,cAAc,CAAC0B,YAAf,EAFI,CADkC;AAIzClZ,QAAAA,MAAM,EAAE,IAJiC;AAKzCtK,QAAAA,CAAC,EAAEujJ,cAAc,CAACt3I,GAAf,CAAmB,GAAnB,CAAA;AALsC,OAAjC,CAAV,CAAA,CAAA;AAOD,KAAA;GAnJ2B;AAqJ9B88B,EAAAA,cAAc,EAAE,SAAA,cAAA,CAAU5jC,KAAV,EAAiBo+I,cAAjB,EAAiCppI,KAAjC,EAAwC4pI,WAAxC,EAAqDC,eAArD,EAAsEl7F,YAAtE,EAAoF;AAClG,IAAA,IAAI,CAACk7F,eAAe,CAACltK,MAArB,EAA6B;AAC3B,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIksE,mBAAmB,GAAGugG,cAAc,CAACx3I,QAAf,CAAwB,gBAAxB,CAA1B,CAAA;AACA,IAAA,IAAI+V,cAAc,GAAGkhC,mBAAmB,CAACj3C,QAApB,CAA6B,WAA7B,CAArB,CAAA;IACA,IAAIq4I,KAAK,GAAG,EAAZ,CAAA;;AAEA,IAAA,KAAK,IAAI5sK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwsK,eAAe,CAACltK,MAApC,EAA4CU,CAAC,EAA7C,EAAiD;AAC/C,MAAA,KAAK,IAAIwL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGghK,eAAe,CAACxsK,CAAD,CAAf,CAAmBV,MAAvC,EAA+CkM,CAAC,EAAhD,EAAoD;AAClDohK,QAAAA,KAAK,CAACvsK,IAAN,CAAW,IAAIgzB,MAAJ,CAAiB;AAC1BzrB,UAAAA,KAAK,EAAEokK,gBAAgB,CAACrpI,KAAD,EAAQ2uC,YAAR,EAAsBk7F,eAAe,CAACxsK,CAAD,CAAf,CAAmBwL,CAAnB,EAAsB+5B,KAA5C,CAAA;AADG,SAAjB,CAAX,CAAA,CAAA;AAGD,OAAA;AACF,KAAA;;IAED5X,KAAK,CAACO,GAAN,CAAUmF,SAAA,CAAkBu5I,KAAlB,EAAyB;AACjChsK,MAAAA,KAAK,EAAE0pC,cAAc,CAAC0B,YAAf,EAD0B;AAEjClZ,MAAAA,MAAM,EAAE,IAFyB;AAGjCtK,MAAAA,CAAC,EAAEujJ,cAAc,CAACt3I,GAAf,CAAmB,GAAnB,CAAA;AAH8B,KAAzB,CAAV,CAAA,CAAA;GAtK4B;AA4K9Bs8B,EAAAA,SAAS,EAAE,SAAA,SAAA,CAAUpjC,KAAV,EAAiBo+I,cAAjB,EAAiCppI,KAAjC,EAAwC4pI,WAAxC,EAAqDC,eAArD,EAAsEl7F,YAAtE,EAAoF;AAC7F,IAAA,IAAI,CAACi7F,WAAW,CAACjtK,MAAjB,EAAyB;AACvB,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIyqE,cAAc,GAAGgiG,cAAc,CAACx3I,QAAf,CAAwB,WAAxB,CAArB,CAAA;AACA,IAAA,IAAIgW,cAAc,GAAGw/B,cAAc,CAACx1C,QAAf,CAAwB,WAAxB,CAArB,CAAA;AACA,IAAA,IAAIy1C,UAAU,GAAGz/B,cAAc,CAAC9V,GAAf,CAAmB,OAAnB,CAAjB,CAAA;IACA,IAAI62C,SAAS,GAAG,CAAhB,CAAA;IACAtB,UAAU,GAAGA,UAAU,YAAY18B,KAAtB,GAA8B08B,UAA9B,GAA2C,CAACA,UAAD,CAAxD,CAAA;IACA,IAAI4G,UAAU,GAAG,EAAjB,CAAA;AACA,IAAA,IAAItwB,MAAM,GAAGxkD,IAAI,CAACI,EAAL,GAAU,GAAvB,CAAA;IACA,IAAIgxK,SAAS,GAAG,CAACX,WAAW,CAAC,CAAD,CAAX,CAAehnI,KAAhB,GAAwB+a,MAAxC,CAAA;AACA,IAAA,IAAIzd,EAAE,GAAG/mC,IAAI,CAAC8iC,GAAL,CAAS0yC,YAAY,CAAC,CAAD,CAArB,EAA0BA,YAAY,CAAC,CAAD,CAAtC,CAAT,CAAA;AACA,IAAA,IAAI67F,EAAE,GAAGrxK,IAAI,CAAC0iB,GAAL,CAAS8yD,YAAY,CAAC,CAAD,CAArB,EAA0BA,YAAY,CAAC,CAAD,CAAtC,CAAT,CAAA;AACA,IAAA,IAAIjzE,SAAS,GAAG0tK,cAAc,CAACt3I,GAAf,CAAmB,WAAnB,CAAhB,CAAA;;AAEA,IAAA,KAAK,IAAIz0B,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGkjK,WAAW,CAACjtK,MAAlC,EAA0CU,CAAC,IAAIqJ,GAA/C,EAAoDrJ,CAAC,EAArD,EAAyD;AACvD,MAAA,IAAIulC,KAAK,GAAGvlC,CAAC,KAAKqJ,GAAN,GAAYkjK,WAAW,CAAC,CAAD,CAAX,CAAehnI,KAA3B,GAAmCgnI,WAAW,CAACvsK,CAAD,CAAX,CAAeulC,KAA9D,CAAA;AACA,MAAA,IAAI8kC,UAAU,GAAGiB,SAAS,EAAKtB,GAAAA,UAAU,CAAC1qE,MAA1C,CAAA;MACAsxE,UAAU,CAACvG,UAAD,CAAV,GAAyBuG,UAAU,CAACvG,UAAD,CAAV,IAA0B,EAAnD,CAAA;MACAuG,UAAU,CAACvG,UAAD,CAAV,CAAuBhqE,IAAvB,CAA4B,IAAIgzB,MAAJ,CAAmB;AAC7CzrB,QAAAA,KAAK,EAAE;UACLlK,EAAE,EAAEilC,KAAK,CAACjlC,EADL;UAELC,EAAE,EAAEglC,KAAK,CAAChlC,EAFL;AAGLklC,UAAAA,EAAE,EAAEA,EAHC;AAILjlC,UAAAA,CAAC,EAAEuvK,EAJE;AAKLtvK,UAAAA,UAAU,EAAEqvK,SALP;AAMLpvK,UAAAA,QAAQ,EAAE,CAACynC,KAAD,GAAS+a,MANd;AAOLjiD,UAAAA,SAAS,EAAEA,SAAAA;SARgC;AAU7Cy0B,QAAAA,MAAM,EAAE,IAAA;AAVqC,OAAnB,CAA5B,CAAA,CAAA;AAYAo6I,MAAAA,SAAS,GAAG,CAAC3nI,KAAD,GAAS+a,MAArB,CAAA;AACD,KAlC4F;AAmC7F;;;AAGA,IAAA,KAAK,IAAItgD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4wE,UAAU,CAACtxE,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;MAC1C2tB,KAAK,CAACO,GAAN,CAAUmF,SAAA,CAAkBu9C,UAAU,CAAC5wE,CAAD,CAA5B,EAAiC;AACzCY,QAAAA,KAAK,EAAEojC,QAAA,CAAgB;AACrBnjC,UAAAA,IAAI,EAAEmpE,UAAU,CAAChqE,CAAC,GAAGgqE,UAAU,CAAC1qE,MAAhB,CAAA;AADK,SAAhB,EAEJirC,cAAc,CAACgC,YAAf,EAFI,CADkC;AAIzCzZ,QAAAA,MAAM,EAAE,IAAA;AAJiC,OAAjC,CAAV,CAAA,CAAA;AAMD,KAAA;AACF,GAAA;AA1N6B,CAAhC;;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BA,IAAI23C,kBAAgB,GAAG,CAAC,UAAD,EAAa,eAAb,EAA8B,UAA9B,CAAvB,CAAA;AACA,IAAIC,kBAAgB,GAAG,CAAC,WAAD,EAAc,WAAd,EAA2B,gBAA3B,CAAvB,CAAA;;AAEA,IAAI0iG,cAAc;AAClB;AACA,UAAU5sJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC2sJ,cAAD,EAAiB5sJ,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAAS4sJ,cAAT,GAA0B;AACxB,IAAA,IAAI1sJ,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa+9J,cAAc,CAAC/9J,IAA5B,CAAA;IACAqR,KAAK,CAACooD,gBAAN,GAAyB,kBAAzB,CAAA;AACA,IAAA,OAAOpoD,KAAP,CAAA;AACD,GAAA;;EAED0sJ,cAAc,CAAC9wK,SAAf,CAAyB8tC,MAAzB,GAAkC,UAAU0hI,eAAV,EAA2BzhI,OAA3B,EAAoC;IACpE,IAAK1c,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;;AAEA,IAAA,IAAI,CAACu6I,eAAe,CAACr3I,GAAhB,CAAoB,MAApB,CAAL,EAAkC;AAChC,MAAA,OAAA;AACD,KAAA;;IAED,IAAIm2C,YAAY,GAAG,IAAA,CAAKC,UAAxB,CAAA;IACA,IAAIwiG,YAAY,GAAG,IAAKxiG,CAAAA,UAAL,GAAkB,IAAIx3C,OAAJ,EAArC,CAAA;AACA,IAAA,IAAA,CAAK1F,KAAL,CAAWO,GAAX,CAAem/I,YAAf,CAAA,CAAA;AACA,IAAA,IAAIjgB,UAAU,GAAG0e,eAAe,CAAC7lI,IAAjC,CAAA;AACA,IAAA,IAAItD,KAAK,GAAGyqH,UAAU,CAACzqH,KAAvB,CAAA;AACA,IAAA,IAAI2qH,SAAS,GAAG3qH,KAAK,CAAC4qH,YAAN,EAAhB,CAAA;AACA,IAAA,IAAIjqF,WAAW,GAAG8pF,UAAU,CAACppF,cAAX,EAAlB,CAAA;AACA,IAAA,IAAIE,gBAAgB,GAAGkpF,UAAU,CAACjpF,mBAAX,EAAvB,CAAA;AACA,IAAA,IAAIwlG,SAAS,GAAGrc,SAAS,CAACjyH,SAAV,EAAA,CAAsB,CAAtB,CAAhB,CAAA;AACA,IAAA,IAAIi2C,YAAY,GAAG87E,UAAU,CAAC/xH,SAAX,EAAnB,CAAA;IACA,IAAI6c,MAAM,GAAGo1H,UAAU,CAAC3qI,KAAD,EAAQmpI,eAAR,EAAyBnC,SAAzB,CAAvB,CAAA;IACA,IAAI5+F,WAAW,GAAG,IAAI3M,WAAJ,CAAgB0tG,eAAhB,EAAiC5zH,MAAjC,CAAlB,CAAA;IACAlU,MAAA,CAAYymC,kBAAZ,EAA8BM,WAAW,CAAC78C,GAA1C,EAA+C68C,WAA/C,CAAA,CAAA;AACAsiG,IAAAA,YAAY,CAACn/I,GAAb,CAAiB68C,WAAW,CAACpM,QAAZ,EAAjB,CAAA,CAAA;AACAtrC,IAAAA,eAAA,CAAwBu3C,YAAxB,EAAsCyiG,YAAtC,EAAoDvB,eAApD,CAAA,CAAA;AACA9nI,IAAAA,MAAA,CAAY0mC,kBAAZ,EAA8B,UAAU1nE,IAAV,EAAgB;AAC5C,MAAA,IAAI8oK,eAAe,CAACr3I,GAAhB,CAAoB,CAACzxB,IAAD,EAAO,MAAP,CAApB,CAAA,IAAuC,CAACoqJ,UAAU,CAACxqI,KAAX,CAAiBmhD,OAAjB,EAA5C,EAAwE;AACtEmH,QAAAA,qBAAmB,CAACloE,IAAD,CAAnB,CAA0B,IAAA,CAAK2qB,KAA/B,EAAsCm+I,eAAtC,EAAuDnpI,KAAvD,EAA8DgnI,SAA9D,EAAyEr4F,YAAzE,EAAuFhO,WAAvF,EAAoGY,gBAApG,CAAA,CAAA;AACD,OAAA;AACF,KAJD,EAIG,IAJH,CAAA,CAAA;GAtBF,CAAA;;EA6BAkpG,cAAc,CAAC/9J,IAAf,GAAsB,YAAtB,CAAA;AACA,EAAA,OAAO+9J,cAAP,CAAA;AACD,CA1CD,CA0CEvkG,QA1CF,CAFA,CAAA;;AA8CA,IAAIqC,qBAAmB,GAAG;AACxBpa,EAAAA,SAAS,EAAE,SAAA,SAAA,CAAUnjC,KAAV,EAAiBm+I,eAAjB,EAAkCnpI,KAAlC,EAAyCgnI,SAAzC,EAAoDr4F,YAApD,EAAkEhO,WAAlE,EAA+E;AACxF,IAAA,IAAI8H,cAAc,GAAG0gG,eAAe,CAACv3I,QAAhB,CAAyB,WAAzB,CAArB,CAAA;AACA,IAAA,IAAI+V,cAAc,GAAG8gC,cAAc,CAAC72C,QAAf,CAAwB,WAAxB,CAArB,CAAA;AACA,IAAA,IAAI82C,UAAU,GAAG/gC,cAAc,CAAC7V,GAAf,CAAmB,OAAnB,CAAjB,CAAA;IACA,IAAI62C,SAAS,GAAG,CAAhB,CAAA;IACAD,UAAU,GAAGA,UAAU,YAAY/9B,KAAtB,GAA8B+9B,UAA9B,GAA2C,CAACA,UAAD,CAAxD,CAAA;IACA,IAAIsF,UAAU,GAAG,EAAjB,CAAA;;AAEA,IAAA,KAAK,IAAI3wE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsjE,WAAW,CAAChkE,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C,MAAA,IAAIqqE,UAAU,GAAGiB,SAAS,EAAKD,GAAAA,UAAU,CAAC/rE,MAA1C,CAAA;MACAqxE,UAAU,CAACtG,UAAD,CAAV,GAAyBsG,UAAU,CAACtG,UAAD,CAAV,IAA0B,EAAnD,CAAA;MACAsG,UAAU,CAACtG,UAAD,CAAV,CAAuBhqE,IAAvB,CAA4B,IAAIgzB,MAAJ,CAAmB;AAC7CzrB,QAAAA,KAAK,EAAE;UACLlK,EAAE,EAAEilC,KAAK,CAACjlC,EADL;UAELC,EAAE,EAAEglC,KAAK,CAAChlC,EAFL;AAGL;AACAC,UAAAA,CAAC,EAAE9B,IAAI,CAAC0iB,GAAL,CAAS8kD,WAAW,CAACtjE,CAAD,CAAX,CAAeulC,KAAxB,EAA+B,CAA/B,CAAA;AAJE,SAAA;AADsC,OAAnB,CAA5B,CAAA,CAAA;AAQD,KAnBuF;AAoBxF;;;AAGA,IAAA,KAAK,IAAIvlC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2wE,UAAU,CAACrxE,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;MAC1C2tB,KAAK,CAACO,GAAN,CAAUmF,SAAA,CAAkBs9C,UAAU,CAAC3wE,CAAD,CAA5B,EAAiC;AACzCY,QAAAA,KAAK,EAAEojC,QAAA,CAAgB;UACrBjjC,MAAM,EAAEsqE,UAAU,CAACrrE,CAAC,GAAGqrE,UAAU,CAAC/rE,MAAhB,CADG;AAErBuB,UAAAA,IAAI,EAAE,IAAA;AAFe,SAAhB,EAGJypC,cAAc,CAAC0B,YAAf,EAHI,CADkC;AAKzClZ,QAAAA,MAAM,EAAE,IAAA;AALiC,OAAjC,CAAV,CAAA,CAAA;AAOD,KAAA;GAhCqB;AAkCxBy+B,EAAAA,cAAc,EAAE,SAAA,cAAA,CAAU5jC,KAAV,EAAiBm+I,eAAjB,EAAkCnpI,KAAlC,EAAyCgnI,SAAzC,EAAoDr4F,YAApD,EAAkEhO,WAAlE,EAA+EY,gBAA/E,EAAiG;AAC/G,IAAA,IAAI,CAACA,gBAAgB,CAAC5kE,MAAtB,EAA8B;AAC5B,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIksE,mBAAmB,GAAGsgG,eAAe,CAACv3I,QAAhB,CAAyB,gBAAzB,CAA1B,CAAA;AACA,IAAA,IAAI+V,cAAc,GAAGkhC,mBAAmB,CAACj3C,QAApB,CAA6B,WAA7B,CAArB,CAAA;IACA,IAAIq4I,KAAK,GAAG,EAAZ,CAAA;;AAEA,IAAA,KAAK,IAAI5sK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkkE,gBAAgB,CAAC5kE,MAArC,EAA6CU,CAAC,EAA9C,EAAkD;AAChD,MAAA,KAAK,IAAIwL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG04D,gBAAgB,CAAClkE,CAAD,CAAhB,CAAoBV,MAAxC,EAAgDkM,CAAC,EAAjD,EAAqD;AACnDohK,QAAAA,KAAK,CAACvsK,IAAN,CAAW,IAAIgzB,MAAJ,CAAmB;AAC5BzrB,UAAAA,KAAK,EAAE;YACLlK,EAAE,EAAEilC,KAAK,CAACjlC,EADL;YAELC,EAAE,EAAEglC,KAAK,CAAChlC,EAFL;AAGLC,YAAAA,CAAC,EAAEsmE,gBAAgB,CAAClkE,CAAD,CAAhB,CAAoBwL,CAApB,CAAuB+5B,CAAAA,KAAAA;AAHrB,WAAA;AADqB,SAAnB,CAAX,CAAA,CAAA;AAOD,OAAA;AACF,KAAA;;IAED5X,KAAK,CAACO,GAAN,CAAUmF,SAAA,CAAkBu5I,KAAlB,EAAyB;AACjChsK,MAAAA,KAAK,EAAEojC,QAAA,CAAgB;AACrBnjC,QAAAA,IAAI,EAAE,IAAA;AADe,OAAhB,EAEJypC,cAAc,CAAC0B,YAAf,EAFI,CAD0B;AAIjClZ,MAAAA,MAAM,EAAE,IAAA;AAJyB,KAAzB,CAAV,CAAA,CAAA;GAvDsB;AA8DxBi+B,EAAAA,SAAS,EAAE,SAAA,SAAA,CAAUpjC,KAAV,EAAiBm+I,eAAjB,EAAkCnpI,KAAlC,EAAyCgnI,SAAzC,EAAoDr4F,YAApD,EAAkEhO,WAAlE,EAA+E;AACxF,IAAA,IAAI,CAACA,WAAW,CAAChkE,MAAjB,EAAyB;AACvB,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIyqE,cAAc,GAAG+hG,eAAe,CAACv3I,QAAhB,CAAyB,WAAzB,CAArB,CAAA;AACA,IAAA,IAAIgW,cAAc,GAAGw/B,cAAc,CAACx1C,QAAf,CAAwB,WAAxB,CAArB,CAAA;AACA,IAAA,IAAIy1C,UAAU,GAAGz/B,cAAc,CAAC9V,GAAf,CAAmB,OAAnB,CAAjB,CAAA;IACA,IAAI62C,SAAS,GAAG,CAAhB,CAAA;IACAtB,UAAU,GAAGA,UAAU,YAAY18B,KAAtB,GAA8B08B,UAA9B,GAA2C,CAACA,UAAD,CAAxD,CAAA;IACA,IAAI4G,UAAU,GAAG,EAAjB,CAAA;AACA,IAAA,IAAI28F,UAAU,GAAGjqG,WAAW,CAAC,CAAD,CAAX,CAAe/9B,KAAhC,CAAA;;AAEA,IAAA,KAAK,IAAIvlC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsjE,WAAW,CAAChkE,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C,MAAA,IAAIqqE,UAAU,GAAGiB,SAAS,EAAKtB,GAAAA,UAAU,CAAC1qE,MAA1C,CAAA;MACAsxE,UAAU,CAACvG,UAAD,CAAV,GAAyBuG,UAAU,CAACvG,UAAD,CAAV,IAA0B,EAAnD,CAAA;MACAuG,UAAU,CAACvG,UAAD,CAAV,CAAuBhqE,IAAvB,CAA4B,IAAIgzB,MAAJ,CAAmB;AAC7CzrB,QAAAA,KAAK,EAAE;UACLlK,EAAE,EAAEilC,KAAK,CAACjlC,EADL;UAELC,EAAE,EAAEglC,KAAK,CAAChlC,EAFL;AAGLklC,UAAAA,EAAE,EAAE0qI,UAHC;AAIL3vK,UAAAA,CAAC,EAAE0lE,WAAW,CAACtjE,CAAD,CAAX,CAAeulC,KAJb;AAKL1nC,UAAAA,UAAU,EAAE,CALP;AAMLC,UAAAA,QAAQ,EAAEhC,IAAI,CAACI,EAAL,GAAU,CAAA;SAPuB;AAS7C42B,QAAAA,MAAM,EAAE,IAAA;AATqC,OAAnB,CAA5B,CAAA,CAAA;AAWAy6I,MAAAA,UAAU,GAAGjqG,WAAW,CAACtjE,CAAD,CAAX,CAAeulC,KAA5B,CAAA;AACD,KA5BuF;AA6BxF;;;AAGA,IAAA,KAAK,IAAIvlC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4wE,UAAU,CAACtxE,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;MAC1C2tB,KAAK,CAACO,GAAN,CAAUmF,SAAA,CAAkBu9C,UAAU,CAAC5wE,CAAD,CAA5B,EAAiC;AACzCY,QAAAA,KAAK,EAAEojC,QAAA,CAAgB;AACrBnjC,UAAAA,IAAI,EAAEmpE,UAAU,CAAChqE,CAAC,GAAGgqE,UAAU,CAAC1qE,MAAhB,CAAA;AADK,SAAhB,EAEJirC,cAAc,CAACgC,YAAf,EAFI,CADkC;AAIzCzZ,QAAAA,MAAM,EAAE,IAAA;AAJiC,OAAjC,CAAV,CAAA,CAAA;AAMD,KAAA;AACF,GAAA;AAtGuB,CAA1B,CAAA;AAwGA;AACA;AACA;;AAEA,SAASw6I,UAAT,CAAoB3qI,KAApB,EAA2BmpI,eAA3B,EAA4CnC,SAA5C,EAAuD;EACrD,OAAO;IACLvpJ,QAAQ,EAAE,CAACuiB,KAAK,CAACjlC,EAAP,EAAWilC,KAAK,CAAChlC,EAAjB,CADL;AAELmxB,IAAAA,QAAQ,EAAE66I,SAAS,GAAG,GAAZ,GAAkB7tK,IAAI,CAACI,EAF5B;IAGL07D,cAAc,EAAE,CAAC,CAHZ;IAILC,aAAa,EAAE,CAAC,CAJX;AAKLC,IAAAA,aAAa,EAAE,CALV;IAMLrR,WAAW,EAAEqlH,eAAe,CAACv3I,QAAhB,CAAyB,WAAzB,CAAsCE,CAAAA,GAAtC,CAA0C,QAA1C,CANR;AAOL;AACA/C,IAAAA,EAAE,EAAE,CAAA;GARN,CAAA;AAUD;;ACvND;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,SAAS87I,gBAAT,CAA0Bx6I,WAA1B,EAAuC;EACrC,OAAOA,WAAW,CAACyB,GAAZ,CAAgB,OAAhB,CAA4B,IAAA,aAAA,GAAgBzB,WAAW,CAACqZ,WAA/D,CAAA;AACD,CAAA;;AAED,SAASohI,UAAT,CAAoB9qI,KAApB,EAA2BsD,IAA3B,EAAiC;EAC/B,OAAOA,IAAI,CAAC5L,GAAL,GAAWsI,KAAK,CAAC4V,KAAN,CAAYtL,cAA9B,CAAA;AACD,CAAA;;AAED,SAASygI,cAAT,CAAwBvgI,UAAxB,EAAoC9C,OAApC,EAA6CxxB,GAA7C,EAAkD;EAChD,IAAI80J,eAAe,GAAG,EAAtB,CAAA;AACA,EAAA,IAAIC,iBAAiB,GAAGC,YAAY,CAAC7pI,MAAA,CAAcqG,OAAO,CAACyjI,eAAR,CAAwB3gI,UAAxB,CAAd,EAAmD,UAAUna,WAAV,EAAuB;AAC7G,IAAA,OAAO,CAACqX,OAAO,CAACwpG,gBAAR,CAAyB7gH,WAAzB,CAAD,IAA0CA,WAAW,CAAC3F,gBAAtD,IAA0E2F,WAAW,CAAC3F,gBAAZ,CAA6Bhe,IAA7B,KAAsC,OAAvH,CAAA;AACD,GAFoC,CAAD,CAApC,CAAA;AAGAg7B,EAAAA,OAAO,CAAC0W,gBAAR,CAAyB5T,UAAzB,EAAqC,UAAUna,WAAV,EAAuB;AAC1D;AACA,IAAA,IAAIA,WAAW,CAAC3F,gBAAZ,CAA6Bhe,IAA7B,KAAsC,OAA1C,EAAmD;AACjD,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAImhB,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAIsU,KAAK,GAAG3P,WAAW,CAAC3F,gBAAxB,CAAA;AACA,IAAA,IAAIyM,QAAQ,GAAG6I,KAAK,CAAC5I,WAAN,EAAf,CAAA;AACA,IAAA,IAAImtC,OAAO,GAAGumG,UAAU,CAAC9qI,KAAD,EAAQ7I,QAAR,CAAxB,CAAA;AACA,IAAA,IAAIi0I,OAAO,GAAGP,gBAAgB,CAACx6I,WAAD,CAA9B,CAAA;IACA,IAAIg7I,gBAAgB,GAAGJ,iBAAiB,CAAC1mG,OAAD,CAAjB,CAA2B6mG,OAA3B,CAAvB,CAAA;AACA,IAAA,IAAIE,YAAY,GAAGD,gBAAgB,CAACh6J,MAApC,CAAA;AACA,IAAA,IAAIk6J,WAAW,GAAGF,gBAAgB,CAACjoK,KAAnC,CAAA;AACA,IAAA,IAAIi0B,SAAS,GAAG2I,KAAK,CAAC1I,YAAN,CAAmBH,QAAnB,CAAhB,CAAA;AACA,IAAA,IAAIp8B,EAAE,GAAGs1B,WAAW,CAAC3F,gBAAZ,CAA6B3vB,EAAtC,CAAA;AACA,IAAA,IAAIC,EAAE,GAAGq1B,WAAW,CAAC3F,gBAAZ,CAA6B1vB,EAAtC,CAAA;IACA,IAAI+0C,YAAY,GAAG1f,WAAW,CAACyB,GAAZ,CAAgB,cAAhB,KAAmC,CAAtD,CAAA;IACA,IAAIke,WAAW,GAAG3f,WAAW,CAACyB,GAAZ,CAAgB,aAAhB,KAAkC,CAApD,CAAA;IACAk5I,eAAe,CAACI,OAAD,CAAf,GAA2BJ,eAAe,CAACI,OAAD,CAAf,IAA4B,EAAvD,CAAA;IACA,IAAIxzI,QAAQ,GAAG/J,IAAI,CAACgK,YAAL,CAAkBR,SAAS,CAACK,GAA5B,CAAf,CAAA;IACA,IAAII,OAAO,GAAGjK,IAAI,CAACgK,YAAL,CAAkBV,QAAQ,CAACO,GAA3B,CAAd,CAAA;AACA,IAAA,IAAIS,OAAO,GAAGG,kBAAkB,CAACzK,IAAD,EAAO+J,QAAAA;AACvC;KADA,CAAA;AAGA,IAAA,IAAI4zI,WAAW,GAAGr0I,QAAQ,CAACO,GAAT,KAAiB,QAAjB,IAA6B,CAACrH,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,EAA4B,IAA5B,CAAhD,CAAA;AACA,IAAA,IAAI25I,cAAc,GAAGp0I,SAAS,CAACsM,WAAV,CAAsB,CAAtB,CAArB,CAAA;;AAEA,IAAA,KAAK,IAAIta,GAAG,GAAG,CAAV,EAAa3iB,GAAG,GAAGmnB,IAAI,CAAC0T,KAAL,EAAxB,EAAsClY,GAAG,GAAG3iB,GAA5C,EAAiD2iB,GAAG,EAApD,EAAwD;MACtD,IAAIwP,KAAK,GAAGhL,IAAI,CAACiE,GAAL,CAAS8F,QAAT,EAAmBvO,GAAnB,CAAZ,CAAA;MACA,IAAIqiJ,SAAS,GAAG79I,IAAI,CAACiE,GAAL,CAASgG,OAAT,EAAkBzO,GAAlB,CAAhB,CAAA;MACA,IAAIysG,IAAI,GAAGj9F,KAAK,IAAI,CAAT,GAAa,GAAb,GAAmB,GAA9B,CAAA;AACA,MAAA,IAAI8yI,SAAS,GAAGF,cAAhB,CAJsD;AAKtD;AACA;;AAEA,MAAA,IAAItzI,OAAJ,EAAa;QACX,IAAI,CAAC6yI,eAAe,CAACI,OAAD,CAAf,CAAyBM,SAAzB,CAAL,EAA0C;AACxCV,UAAAA,eAAe,CAACI,OAAD,CAAf,CAAyBM,SAAzB,CAAsC,GAAA;AACpCrvK,YAAAA,CAAC,EAAEovK,cADiC;YAEpC14E,CAAC,EAAE04E,cAFiC;;WAAtC,CAAA;AAKD,SAPU;;;QAUXE,SAAS,GAAGX,eAAe,CAACI,OAAD,CAAf,CAAyBM,SAAzB,CAAoC51C,CAAAA,IAApC,CAAZ,CAAA;AACD,OAAA;;MAED,IAAI51F,EAAE,GAAG,KAAK,CAAd,CAAA;MACA,IAAIjlC,CAAC,GAAG,KAAK,CAAb,CAAA;MACA,IAAIC,UAAU,GAAG,KAAK,CAAtB,CAAA;AACA,MAAA,IAAIC,QAAQ,GAAG,KAAK,CAApB,CAxBsD;;AA0BtD,MAAA,IAAIk8B,SAAS,CAACK,GAAV,KAAkB,QAAtB,EAAgC;QAC9B,IAAIk0I,UAAU,GAAGv0I,SAAS,CAACsM,WAAV,CAAsB9K,KAAtB,IAA+B4yI,cAAhD,CAAA;AACA,QAAA,IAAI34H,KAAK,GAAG3b,QAAQ,CAACwM,WAAT,CAAqB+nI,SAArB,CAAZ,CAAA;;AAEA,QAAA,IAAIvyK,IAAI,CAACyC,GAAL,CAASgwK,UAAT,CAAA,GAAuB77H,YAA3B,EAAyC;UACvC67H,UAAU,GAAG,CAACA,UAAU,GAAG,CAAb,GAAiB,CAAC,CAAlB,GAAsB,CAAvB,IAA4B77H,YAAzC,CAAA;AACD,SAAA;;AAED7P,QAAAA,EAAE,GAAGyrI,SAAL,CAAA;QACA1wK,CAAC,GAAG0wK,SAAS,GAAGC,UAAhB,CAAA;QACA1wK,UAAU,GAAG43C,KAAK,GAAGw4H,YAArB,CAAA;QACAnwK,QAAQ,GAAGD,UAAU,GAAGqwK,WAAxB,CAAA;QACApzI,OAAO,KAAK6yI,eAAe,CAACI,OAAD,CAAf,CAAyBM,SAAzB,CAAoC51C,CAAAA,IAApC,CAA4C76H,GAAAA,CAAjD,CAAP,CAAA;AACD,OAbD;WAcK;QACD,IAAI4wK,SAAS,GAAGx0I,SAAS,CAACsM,WAAV,CAAsB9K,KAAtB,EAA6B2yI,WAA7B,CAAA,GAA4CC,cAA5D,CAAA;AACA,QAAA,IAAIxtH,MAAM,GAAG9mB,QAAQ,CAACwM,WAAT,CAAqB+nI,SAArB,CAAb,CAAA;;AAEA,QAAA,IAAIvyK,IAAI,CAACyC,GAAL,CAASiwK,SAAT,CAAA,GAAsB77H,WAA1B,EAAuC;UACrC67H,SAAS,GAAG,CAACA,SAAS,GAAG,CAAZ,GAAgB,CAAC,CAAjB,GAAqB,CAAtB,IAA2B77H,WAAvC,CAAA;AACD,SAAA;;QAED9P,EAAE,GAAG+d,MAAM,GAAGqtH,YAAd,CAAA;QACArwK,CAAC,GAAGilC,EAAE,GAAGqrI,WAAT,CAAA;AACArwK,QAAAA,UAAU,GAAGywK,SAAb,CAAA;AACAxwK,QAAAA,QAAQ,GAAGwwK,SAAS,GAAGE,SAAvB,CAXC;AAYD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;QAEA1zI,OAAO,KAAK6yI,eAAe,CAACI,OAAD,CAAf,CAAyBM,SAAzB,CAAoC51C,CAAAA,IAApC,CAA4C36H,GAAAA,QAAjD,CAAP,CAAA;AACD,OAAA;;AAEH0yB,MAAAA,IAAI,CAACogB,aAAL,CAAmB5kB,GAAnB,EAAwB;AACtBtuB,QAAAA,EAAE,EAAEA,EADkB;AAEtBC,QAAAA,EAAE,EAAEA,EAFkB;AAGtBklC,QAAAA,EAAE,EAAEA,EAHkB;AAItBjlC,QAAAA,CAAC,EAAEA,CAJmB;AAKtB;AACA;QACAC,UAAU,EAAE,CAACA,UAAD,GAAc/B,IAAI,CAACI,EAAnB,GAAwB,GAPd;QAQtB4B,QAAQ,EAAE,CAACA,QAAD,GAAYhC,IAAI,CAACI,EAAjB,GAAsB,GARV;;AAUtB;AACR;AACA;AACA;AACA;AACA;QACQmC,SAAS,EAAER,UAAU,IAAIC,QAAAA;OAhB3B,CAAA,CAAA;AAkBD,KAAA;GA/GH,CAAA,CAAA;AAiHD,CAAA;AACD;AACA;AACA;;;AAGA,SAAS+vK,YAAT,CAAsBY,SAAtB,EAAiC;AAC/B;EACA,IAAIC,UAAU,GAAG,EAAjB,CAAA;EACA1qI,MAAA,CAAYyqI,SAAZ,EAAuB,UAAUz7I,WAAV,EAAuBhH,GAAvB,EAA4B;AACjD,IAAA,IAAIwE,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,IAAA,IAAIsU,KAAK,GAAG3P,WAAW,CAAC3F,gBAAxB,CAAA;AACA,IAAA,IAAIyM,QAAQ,GAAG6I,KAAK,CAAC5I,WAAN,EAAf,CAAA;AACA,IAAA,IAAImtC,OAAO,GAAGumG,UAAU,CAAC9qI,KAAD,EAAQ7I,QAAR,CAAxB,CAAA;AACA,IAAA,IAAIgO,UAAU,GAAGhO,QAAQ,CAACuB,SAAT,EAAjB,CAAA;AACA,IAAA,IAAI2zG,SAAS,GAAGl1G,QAAQ,CAACzqB,IAAT,KAAkB,UAAlB,GAA+ByqB,QAAQ,CAACm1G,YAAT,EAA/B,GAAyDnzI,IAAI,CAACyC,GAAL,CAASupC,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAnC,CAAA,GAA0CtX,IAAI,CAAC0T,KAAL,EAAnH,CAAA;AACA,IAAA,IAAIyqI,aAAa,GAAGD,UAAU,CAACxnG,OAAD,CAAV,IAAuB;AACzC8nE,MAAAA,SAAS,EAAEA,SAD8B;AAEzC4/B,MAAAA,aAAa,EAAE5/B,SAF0B;AAGzC6/B,MAAAA,cAAc,EAAE,CAHyB;AAIzCC,MAAAA,WAAW,EAAE,KAJ4B;AAKzC7tG,MAAAA,GAAG,EAAE,KALoC;AAMzC8tG,MAAAA,MAAM,EAAE,EAAA;KANV,CAAA;AAQA,IAAA,IAAIA,MAAM,GAAGJ,aAAa,CAACI,MAA3B,CAAA;AACAL,IAAAA,UAAU,CAACxnG,OAAD,CAAV,GAAsBynG,aAAtB,CAAA;AACA,IAAA,IAAIZ,OAAO,GAAGP,gBAAgB,CAACx6I,WAAD,CAA9B,CAAA;;AAEA,IAAA,IAAI,CAAC+7I,MAAM,CAAChB,OAAD,CAAX,EAAsB;AACpBY,MAAAA,aAAa,CAACE,cAAd,EAAA,CAAA;AACD,KAAA;;IAEDE,MAAM,CAAChB,OAAD,CAAN,GAAkBgB,MAAM,CAAChB,OAAD,CAAN,IAAmB;AACnChoK,MAAAA,KAAK,EAAE,CAD4B;AAEnCgqD,MAAAA,QAAQ,EAAE,CAAA;KAFZ,CAAA;AAIA,IAAA,IAAIhR,QAAQ,GAAG8B,YAAY,CAAC7tB,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,CAAD,EAA8Bu6G,SAA9B,CAA3B,CAAA;AACA,IAAA,IAAIkE,WAAW,GAAGryF,YAAY,CAAC7tB,WAAW,CAACyB,GAAZ,CAAgB,aAAhB,CAAD,EAAiCu6G,SAAjC,CAA9B,CAAA;AACA,IAAA,IAAIgX,MAAM,GAAGhzH,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAb,CAAA;AACA,IAAA,IAAIu6I,cAAc,GAAGh8I,WAAW,CAACyB,GAAZ,CAAgB,gBAAhB,CAArB,CAAA;;IAEA,IAAIsqB,QAAQ,IAAI,CAACgwH,MAAM,CAAChB,OAAD,CAAN,CAAgBhoK,KAAjC,EAAwC;MACtCg5C,QAAQ,GAAGjjD,IAAI,CAAC8iC,GAAL,CAAS+vI,aAAa,CAACC,aAAvB,EAAsC7vH,QAAtC,CAAX,CAAA;AACAgwH,MAAAA,MAAM,CAAChB,OAAD,CAAN,CAAgBhoK,KAAhB,GAAwBg5C,QAAxB,CAAA;MACA4vH,aAAa,CAACC,aAAd,IAA+B7vH,QAA/B,CAAA;AACD,KAAA;;IAEDm0F,WAAW,KAAK67B,MAAM,CAAChB,OAAD,CAAN,CAAgBh+G,QAAhB,GAA2BmjF,WAAhC,CAAX,CAAA;AACA8S,IAAAA,MAAM,IAAI,IAAV,KAAmB2oB,aAAa,CAAC1tG,GAAd,GAAoB+kF,MAAvC,CAAA,CAAA;AACAgpB,IAAAA,cAAc,IAAI,IAAlB,KAA2BL,aAAa,CAACG,WAAd,GAA4BE,cAAvD,CAAA,CAAA;GAxCF,CAAA,CAAA;EA0CA,IAAI3pG,MAAM,GAAG,EAAb,CAAA;EACArhC,MAAA,CAAY0qI,UAAZ,EAAwB,UAAUC,aAAV,EAAyBM,YAAzB,EAAuC;AAC7D5pG,IAAAA,MAAM,CAAC4pG,YAAD,CAAN,GAAuB,EAAvB,CAAA;AACA,IAAA,IAAIF,MAAM,GAAGJ,aAAa,CAACI,MAA3B,CAAA;AACA,IAAA,IAAI//B,SAAS,GAAG2/B,aAAa,CAAC3/B,SAA9B,CAAA;IACA,IAAI8/B,WAAW,GAAGjuH,YAAY,CAAC8tH,aAAa,CAACG,WAAf,EAA4B9/B,SAA5B,CAA9B,CAAA;IACA,IAAIkgC,aAAa,GAAGruH,YAAY,CAAC8tH,aAAa,CAAC1tG,GAAf,EAAoB,CAApB,CAAhC,CAAA;AACA,IAAA,IAAI2tG,aAAa,GAAGD,aAAa,CAACC,aAAlC,CAAA;AACA,IAAA,IAAIC,cAAc,GAAGF,aAAa,CAACE,cAAnC,CAAA;AACA,IAAA,IAAIM,SAAS,GAAG,CAACP,aAAa,GAAGE,WAAjB,KAAiCD,cAAc,GAAG,CAACA,cAAc,GAAG,CAAlB,IAAuBK,aAAzE,CAAhB,CAAA;IACAC,SAAS,GAAGrzK,IAAI,CAAC0iB,GAAL,CAAS2wJ,SAAT,EAAoB,CAApB,CAAZ,CAT6D;;IAW7DnrI,MAAA,CAAY+qI,MAAZ,EAAoB,UAAUK,MAAV,EAAkBrpB,KAAlB,EAAyB;AAC3C,MAAA,IAAIh2F,QAAQ,GAAGq/G,MAAM,CAACr/G,QAAtB,CAAA;;AAEA,MAAA,IAAIA,QAAQ,IAAIA,QAAQ,GAAGo/G,SAA3B,EAAsC;QACpCp/G,QAAQ,GAAGj0D,IAAI,CAAC8iC,GAAL,CAASmxB,QAAT,EAAmB6+G,aAAnB,CAAX,CAAA;;QAEA,IAAIQ,MAAM,CAACrpK,KAAX,EAAkB;UAChBgqD,QAAQ,GAAGj0D,IAAI,CAAC8iC,GAAL,CAASmxB,QAAT,EAAmBq/G,MAAM,CAACrpK,KAA1B,CAAX,CAAA;AACD,SAAA;;AAED6oK,QAAAA,aAAa,IAAI7+G,QAAjB,CAAA;QACAq/G,MAAM,CAACrpK,KAAP,GAAegqD,QAAf,CAAA;QACA8+G,cAAc,EAAA,CAAA;AACf,OAAA;AACF,KAdD,EAX6D;;AA2B7DM,IAAAA,SAAS,GAAG,CAACP,aAAa,GAAGE,WAAjB,KAAiCD,cAAc,GAAG,CAACA,cAAc,GAAG,CAAlB,IAAuBK,aAAzE,CAAZ,CAAA;IACAC,SAAS,GAAGrzK,IAAI,CAAC0iB,GAAL,CAAS2wJ,SAAT,EAAoB,CAApB,CAAZ,CAAA;IACA,IAAIE,QAAQ,GAAG,CAAf,CAAA;AACA,IAAA,IAAIC,UAAJ,CAAA;IACAtrI,MAAA,CAAY+qI,MAAZ,EAAoB,UAAUK,MAAV,EAAkBpjJ,GAAlB,EAAuB;AACzC,MAAA,IAAI,CAACojJ,MAAM,CAACrpK,KAAZ,EAAmB;QACjBqpK,MAAM,CAACrpK,KAAP,GAAeopK,SAAf,CAAA;AACD,OAAA;;AAEDG,MAAAA,UAAU,GAAGF,MAAb,CAAA;AACAC,MAAAA,QAAQ,IAAID,MAAM,CAACrpK,KAAP,IAAgB,CAAA,GAAImpK,aAApB,CAAZ,CAAA;KANF,CAAA,CAAA;;AASA,IAAA,IAAII,UAAJ,EAAgB;AACdD,MAAAA,QAAQ,IAAIC,UAAU,CAACvpK,KAAX,GAAmBmpK,aAA/B,CAAA;AACD,KAAA;;AAED,IAAA,IAAIl7J,MAAM,GAAG,CAACq7J,QAAD,GAAY,CAAzB,CAAA;IACArrI,MAAA,CAAY+qI,MAAZ,EAAoB,UAAUK,MAAV,EAAkBrB,OAAlB,EAA2B;AAC7C1oG,MAAAA,MAAM,CAAC4pG,YAAD,CAAN,CAAqBlB,OAArB,CAAA,GAAgC1oG,MAAM,CAAC4pG,YAAD,CAAN,CAAqBlB,OAArB,CAAiC,IAAA;AAC/D/5J,QAAAA,MAAM,EAAEA,MADuD;QAE/DjO,KAAK,EAAEqpK,MAAM,CAACrpK,KAAAA;OAFhB,CAAA;AAIAiO,MAAAA,MAAM,IAAIo7J,MAAM,CAACrpK,KAAP,IAAgB,CAAA,GAAImpK,aAApB,CAAV,CAAA;KALF,CAAA,CAAA;GA7CF,CAAA,CAAA;AAqDA,EAAA,OAAO7pG,MAAP,CAAA;AACD;;ACtRD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuCA,IAAIkqG,oBAAoB,GAAG;AACzB1xK,EAAAA,UAAU,EAAE,EADa;AAEzBQ,EAAAA,SAAS,EAAE,IAFc;AAGzBgzD,EAAAA,WAAW,EAAE,EAHY;AAIzBV,EAAAA,SAAS,EAAE;AACTnb,IAAAA,MAAM,EAAE,CAAA;AADC,GAAA;AAJc,CAA3B,CAAA;AAQA,IAAIg6H,qBAAqB,GAAG;AAC1Bn+G,EAAAA,WAAW,EAAE,CAAA;AADa,CAA5B,CAAA;;AAIA,IAAIo+G,SAAS;AACb;AACA,UAAUjvJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACgvJ,SAAD,EAAYjvJ,MAAZ,CAAT,CAAA;;AAEA,EAAA,SAASivJ,SAAT,GAAqB;AACnB,IAAA,IAAI/uJ,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaogK,SAAS,CAACpgK,IAAvB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED+uJ,SAAS,CAACpgK,IAAV,GAAiB,OAAjB,CAAA;AACA,EAAA,OAAOogK,SAAP,CAAA;AACD,CAZD,CAYEhmG,aAZF,CAFA,CAAA;;AAgBO,SAAS/pD,SAAT,CAAiBC,SAAjB,EAA4B;EACjCqsD,GAAG,CAACu9F,SAAD,CAAH,CAAA;AACA1gG,EAAAA,QAAQ,CAACU,wBAAT,CAAkC,kBAAlC,EAAsDigG,gBAAtD,CAAA,CAAA;AACA7pJ,EAAAA,SAAS,CAACmsD,wBAAV,CAAmC,OAAnC,EAA4C8/F,YAA5C,CAAA,CAAA;EACAjsJ,SAAS,CAAC6zC,sBAAV,CAAiCo2G,UAAjC,CAAA,CAAA;AACAjqJ,EAAAA,SAAS,CAACksD,qBAAV,CAAgC4jG,SAAhC,EALiC;;EAOjCz9G,gBAAgB,CAACryC,SAAD,EAAY,OAAZ,EAAqBqqJ,cAArB,EAAqCuF,oBAArC,CAAhB,CAAA;EACAv9G,gBAAgB,CAACryC,SAAD,EAAY,QAAZ,EAAsBsqJ,eAAtB,EAAuCuF,qBAAvC,CAAhB,CAAA;EACA7vJ,SAAS,CAACksD,qBAAV,CAAgCygG,aAAhC,CAAA,CAAA;EACA3sJ,SAAS,CAACksD,qBAAV,CAAgCuhG,cAAhC,CAAA,CAAA;EACAztJ,SAAS,CAACmyB,cAAV,CAAyB4a,OAAK,CAACghH,cAAD,EAAiB,KAAjB,CAA9B,CAAA,CAAA;AACD;;AChGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BO,SAASx1H,QAAT,CAAgBoE,SAAhB,EAA2B5uB,GAA3B,EAAgC;EACrCA,GAAG,GAAGA,GAAG,IAAI,EAAb,CAAA;AACA,EAAA,IAAI85H,MAAM,GAAGlrG,SAAS,CAACjvB,gBAAvB,CAAA;AACA,EAAA,IAAI4Y,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;EACA,IAAIiS,MAAM,GAAG,EAAb,CAAA;AACA,EAAA,IAAIkf,YAAY,GAAGnxB,IAAI,CAAC7lB,QAAxB,CAAA;AACA,EAAA,IAAI03E,MAAM,GAAG7xD,IAAI,CAAC6xD,MAAlB,CAAA;AACA,EAAA,IAAI54F,IAAI,GAAGsoJ,MAAM,CAAClwF,OAAP,EAAX,CAAA;EACA,IAAIC,SAAS,GAAG,CAACr4D,IAAI,CAACnC,CAAN,EAASmC,IAAI,CAACnC,CAAL,GAASmC,IAAI,CAAC6G,KAAvB,EAA8B7G,IAAI,CAAClC,CAAnC,EAAsCkC,IAAI,CAAClC,CAAL,GAASkC,IAAI,CAAC8G,MAApD,CAAhB,CAAA;AACA,EAAA,IAAI82C,WAAW,GAAG;AAChBw9E,IAAAA,UAAU,EAAE;AACVh6G,MAAAA,GAAG,EAAEi3C,SAAS,CAAC,CAAD,CADJ;MAEV9L,MAAM,EAAE8L,SAAS,CAAC,CAAD,CAAA;KAHH;AAKhBgjE,IAAAA,QAAQ,EAAE;AACRl6G,MAAAA,IAAI,EAAEk3C,SAAS,CAAC,CAAD,CADP;MAER/L,KAAK,EAAE+L,SAAS,CAAC,CAAD,CAAA;AAFR,KAAA;GALZ,CAAA;AAUArf,EAAAA,MAAM,CAAC93B,QAAP,GAAkB,CAAC03E,MAAM,KAAK,UAAX,GAAwBh7C,WAAW,CAACy9E,QAAZ,CAAqBnjE,YAArB,CAAxB,GAA6DG,SAAS,CAAC,CAAD,CAAvE,EAA4EugC,MAAM,KAAK,YAAX,GAA0Bh7C,WAAW,CAACw9E,UAAZ,CAAuBljE,YAAvB,CAA1B,GAAiEG,SAAS,CAAC,CAAD,CAAtJ,CAAlB,CAAA;AACA,EAAA,IAAI35D,CAAC,GAAG;AACN08H,IAAAA,UAAU,EAAE,CADN;AAENC,IAAAA,QAAQ,EAAE,CAAA;GAFZ,CAAA;AAIAriF,EAAAA,MAAM,CAACppB,QAAP,GAAkBhzB,IAAI,CAACI,EAAL,GAAU,CAAV,GAAc0B,CAAC,CAACk6F,MAAD,CAAjC,CAAA;AACA,EAAA,IAAI43E,YAAY,GAAG;IACjBpvJ,GAAG,EAAE,CAAC,CADW;AAEjBmrC,IAAAA,MAAM,EAAE,CAFS;AAGjBD,IAAAA,KAAK,EAAE,CAHU;AAIjBnrC,IAAAA,IAAI,EAAE,CAAC,CAAA;GAJT,CAAA;AAMA63B,EAAAA,MAAM,CAAC0f,cAAP,GAAwB1f,MAAM,CAAC2f,aAAP,GAAuB3f,MAAM,CAAC4f,aAAP,GAAuB43G,YAAY,CAACt4G,YAAD,CAAlF,CAAA;;EAEA,IAAI9a,SAAS,CAAC7nB,GAAV,CAAc,CAAC,UAAD,EAAa,QAAb,CAAd,CAAJ,EAA2C;AACzCyjB,IAAAA,MAAM,CAAC2f,aAAP,GAAuB,CAAC3f,MAAM,CAAC2f,aAA/B,CAAA;AACD,GAAA;;AAED,EAAA,IAAI7zB,QAAA,CAAgBtW,GAAG,CAACsqC,WAApB,EAAiC1b,SAAS,CAAC7nB,GAAV,CAAc,CAAC,WAAD,EAAc,QAAd,CAAd,CAAjC,CAAJ,EAA8E;AAC5EyjB,IAAAA,MAAM,CAAC0f,cAAP,GAAwB,CAAC1f,MAAM,CAAC0f,cAAhC,CAAA;AACD,GAAA;;AAED,EAAA,IAAI6M,aAAa,GAAG/2C,GAAG,CAAC8nB,MAAxB,CAAA;AACAivB,EAAAA,aAAa,IAAI,IAAjB,KAA0BA,aAAa,GAAGnoB,SAAS,CAAC7nB,GAAV,CAAc,CAAC,WAAD,EAAc,QAAd,CAAd,CAA1C,CAAA,CAAA;EACAyjB,MAAM,CAACusB,aAAP,GAAuBrN,YAAY,KAAK,KAAjB,GAAyB,CAACqN,aAA1B,GAA0CA,aAAjE,CAAA;EACAvsB,MAAM,CAACxmB,EAAP,GAAY,CAAZ,CAAA;AACA,EAAA,OAAOwmB,MAAP,CAAA;AACD;;ACzFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA,IAAIuyB,gBAAgB,GAAG,CAAC,UAAD,EAAa,eAAb,EAA8B,UAA9B,CAAvB,CAAA;AACA,IAAIC,gBAAgB,GAAG,CAAC,WAAD,EAAc,WAAd,CAAvB,CAAA;;AAEA,IAAIilG,cAAc;AAClB;AACA,UAAUnvJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACkvJ,cAAD,EAAiBnvJ,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAASmvJ,cAAT,GAA0B;AACxB,IAAA,IAAIjvJ,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAasgK,cAAc,CAACtgK,IAA5B,CAAA;IACAqR,KAAK,CAACooD,gBAAN,GAAyB,mBAAzB,CAAA;AACA,IAAA,OAAOpoD,KAAP,CAAA;AACD,GAAA;;AAEDivJ,EAAAA,cAAc,CAACrzK,SAAf,CAAyB8tC,MAAzB,GAAkC,UAAUkS,SAAV,EAAqBjS,OAArB,EAA8BxxB,GAA9B,EAAmCu0B,OAAnC,EAA4C;IAC5E,IAAIzf,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACAA,IAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;IACA,IAAIq5C,YAAY,GAAG,IAAA,CAAKC,UAAxB,CAAA;AACA,IAAA,IAAA,CAAKA,UAAL,GAAkB,IAAIx3C,OAAJ,EAAlB,CAAA;AACA,IAAA,IAAI6kB,MAAM,GAAG03H,QAAA,CAAwBtzH,SAAxB,CAAb,CAAA;IACA,IAAIyuB,WAAW,GAAG,IAAI3M,WAAJ,CAAgB9hB,SAAhB,EAA2BpE,MAA3B,CAAlB,CAAA;IACAlU,MAAA,CAAYymC,gBAAZ,EAA8BM,WAAW,CAAC78C,GAA1C,EAA+C68C,WAA/C,CAAA,CAAA;AACAp9C,IAAAA,KAAK,CAACO,GAAN,CAAU,IAAA,CAAK28C,UAAf,CAAA,CAAA;AACAl9C,IAAAA,KAAK,CAACO,GAAN,CAAU68C,WAAW,CAACpM,QAAZ,EAAV,CAAA,CAAA;AACA36B,IAAAA,MAAA,CAAY0mC,gBAAZ,EAA8B,UAAU1nE,IAAV,EAAgB;MAC5C,IAAIs5C,SAAS,CAAC7nB,GAAV,CAAc,CAACzxB,IAAD,EAAO,MAAP,CAAd,CAAJ,EAAmC;AACjCkoE,QAAAA,mBAAmB,CAACloE,IAAD,CAAnB,CAA0B,IAA1B,EAAgC,IAAK2qB,CAAAA,KAArC,EAA4C,IAAA,CAAKk9C,UAAjD,EAA6DvuB,SAA7D,CAAA,CAAA;AACD,OAAA;AACF,KAJD,EAIG,IAJH,CAAA,CAAA;IAKAjpB,eAAA,CAAwBu3C,YAAxB,EAAsC,IAAKC,CAAAA,UAA3C,EAAuDvuB,SAAvD,CAAA,CAAA;;AAEA97B,IAAAA,MAAM,CAAClkB,SAAP,CAAiB8tC,MAAjB,CAAwBzpB,IAAxB,CAA6B,IAA7B,EAAmC27B,SAAnC,EAA8CjS,OAA9C,EAAuDxxB,GAAvD,EAA4Du0B,OAA5D,CAAA,CAAA;GAjBF,CAAA;;AAoBAuiI,EAAAA,cAAc,CAACrzK,SAAf,CAAyBo8B,MAAzB,GAAkC,YAAY;IAC5C8xC,yBAAyB,CAAC,IAAD,CAAzB,CAAA;GADF,CAAA;;EAIAmlG,cAAc,CAACtgK,IAAf,GAAsB,YAAtB,CAAA;AACA,EAAA,OAAOsgK,cAAP,CAAA;AACD,CArCD,CAqCE9mG,QArCF,CAFA,CAAA;;AAyCA,IAAIqC,mBAAmB,GAAG;EACxBpa,SAAS,EAAE,mBAAU+Y,QAAV,EAAoBl8C,KAApB,EAA2Bm8C,SAA3B,EAAsCxtB,SAAtC,EAAiD;AAC1D,IAAA,IAAIrW,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;;AAEA,IAAA,IAAIA,IAAI,CAACrjB,KAAL,CAAWmhD,OAAX,EAAJ,EAA0B;AACxB,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIqH,cAAc,GAAG9uB,SAAS,CAAC/nB,QAAV,CAAmB,WAAnB,CAArB,CAAA;AACA,IAAA,IAAI+V,cAAc,GAAG8gC,cAAc,CAAC72C,QAAf,CAAwB,WAAxB,CAArB,CAAA;AACA,IAAA,IAAI82C,UAAU,GAAG/gC,cAAc,CAAC7V,GAAf,CAAmB,OAAnB,CAAjB,CAAA;IACA42C,UAAU,GAAGA,UAAU,YAAY/9B,KAAtB,GAA8B+9B,UAA9B,GAA2C,CAACA,UAAD,CAAxD,CAAA;AACA,IAAA,IAAI5P,QAAQ,GAAGnf,SAAS,CAACjvB,gBAAV,CAA2BiqC,OAA3B,EAAf,CAAA;AACA,IAAA,IAAIh1B,YAAY,GAAG2D,IAAI,CAAC3D,YAAL,EAAnB,CAAA;IACA,IAAIquC,UAAU,GAAG,EAAjB,CAAA;IACA,IAAIrF,SAAS,GAAG,CAAhB,CAAA;AACA,IAAA,IAAIhI,WAAW,GAAGr9B,IAAI,CAAC+9B,cAAL,CAAoB;AACpCF,MAAAA,SAAS,EAAEsH,cAAAA;AADyB,KAApB,CAAlB,CAAA;IAGA,IAAIp+D,EAAE,GAAG,EAAT,CAAA;IACA,IAAIu+D,EAAE,GAAG,EAAT,CAAA;;AAEA,IAAA,KAAK,IAAIvrE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsjE,WAAW,CAAChkE,MAAhC,EAAwC,EAAEU,CAA1C,EAA6C;AAC3C,MAAA,IAAI2jE,SAAS,GAAG19B,IAAI,CAACI,aAAL,CAAmBi9B,WAAW,CAACtjE,CAAD,CAAX,CAAeulC,KAAlC,CAAhB,CAAA;;AAEA,MAAA,IAAIjD,YAAJ,EAAkB;AAChBt1B,QAAAA,EAAE,CAAC,CAAD,CAAF,GAAQ22D,SAAR,CAAA;AACA32D,QAAAA,EAAE,CAAC,CAAD,CAAF,GAAQyuD,QAAQ,CAACz+D,CAAjB,CAAA;AACAuuE,QAAAA,EAAE,CAAC,CAAD,CAAF,GAAQ5H,SAAR,CAAA;QACA4H,EAAE,CAAC,CAAD,CAAF,GAAQ9P,QAAQ,CAACz+D,CAAT,GAAay+D,QAAQ,CAACz1D,MAA9B,CAAA;AACD,OALD,MAKO;AACLgH,QAAAA,EAAE,CAAC,CAAD,CAAF,GAAQyuD,QAAQ,CAAC1+D,CAAjB,CAAA;AACAiQ,QAAAA,EAAE,CAAC,CAAD,CAAF,GAAQ22D,SAAR,CAAA;QACA4H,EAAE,CAAC,CAAD,CAAF,GAAQ9P,QAAQ,CAAC1+D,CAAT,GAAa0+D,QAAQ,CAAC11D,KAA9B,CAAA;AACAwlE,QAAAA,EAAE,CAAC,CAAD,CAAF,GAAQ5H,SAAR,CAAA;AACD,OAAA;;AAED,MAAA,IAAI0G,UAAU,GAAGiB,SAAS,EAAKD,GAAAA,UAAU,CAAC/rE,MAA1C,CAAA;MACAqxE,UAAU,CAACtG,UAAD,CAAV,GAAyBsG,UAAU,CAACtG,UAAD,CAAV,IAA0B,EAAnD,CAAA;MACAsG,UAAU,CAACtG,UAAD,CAAV,CAAuBhqE,IAAvB,CAA4B,IAAIgzB,MAAJ,CAAiB;AAC3CusC,QAAAA,gBAAgB,EAAE,IADyB;AAE3Ch4D,QAAAA,KAAK,EAAE;AACL0L,UAAAA,EAAE,EAAEtG,EAAE,CAAC,CAAD,CADD;AAELuG,UAAAA,EAAE,EAAEvG,EAAE,CAAC,CAAD,CAFD;AAGL5P,UAAAA,EAAE,EAAEmuE,EAAE,CAAC,CAAD,CAHD;UAILluE,EAAE,EAAEkuE,EAAE,CAAC,CAAD,CAAA;SANmC;AAQ3Cz4C,QAAAA,MAAM,EAAE,IAAA;AARmC,OAAjB,CAA5B,CAAA,CAAA;AAUD,KAAA;;IAED,IAAI7E,SAAS,GAAGqc,cAAc,CAAC0B,YAAf,CAA4B,CAAC,OAAD,CAA5B,CAAhB,CAAA;;AAEA,IAAA,KAAK,IAAIhsC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2wE,UAAU,CAACrxE,MAA/B,EAAuC,EAAEU,CAAzC,EAA4C;MAC1C2tB,KAAK,CAACO,GAAN,CAAUmF,SAAA,CAAkBs9C,UAAU,CAAC3wE,CAAD,CAA5B,EAAiC;AACzCY,QAAAA,KAAK,EAAEojC,QAAA,CAAgB;AACrBjjC,UAAAA,MAAM,EAAEsqE,UAAU,CAACrrE,CAAC,GAAGqrE,UAAU,CAAC/rE,MAAhB,CAAA;SADb,EAEJ2uB,SAFI,CADkC;AAIzC6E,QAAAA,MAAM,EAAE,IAAA;AAJiC,OAAjC,CAAV,CAAA,CAAA;AAMD,KAAA;GA5DqB;EA8DxBi+B,SAAS,EAAE,mBAAU8Y,QAAV,EAAoBl8C,KAApB,EAA2Bm8C,SAA3B,EAAsCxtB,SAAtC,EAAiD;IAC1DstB,2BAA2B,CAACC,QAAD,EAAWC,SAAX,EAAsBxtB,SAAtB,EAAiCA,SAAjC,CAA3B,CAAA;AACD,GAAA;AAhEuB,CAA1B;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAIuzH,eAAe;AACnB;AACA,UAAUrvJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACovJ,eAAD,EAAkBrvJ,MAAlB,CAAT,CAAA;;AAEA,EAAA,SAASqvJ,eAAT,GAA2B;AACzB,IAAA,IAAInvJ,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAawgK,eAAe,CAACxgK,IAA7B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDmvJ,EAAAA,eAAe,CAACvzK,SAAhB,CAA0BizD,gBAA1B,GAA6C,YAAY;AACvD,IAAA,OAAO,IAAP,CAAA;GADF,CAAA;;EAIAsgH,eAAe,CAACxgK,IAAhB,GAAuB,YAAvB,CAAA;EACAwgK,eAAe,CAAC1gH,UAAhB,GAA6B,KAA7B,CAAA;EACA0gH,eAAe,CAAC5gJ,aAAhB,GAAgC;AAC9B5O,IAAAA,IAAI,EAAE,IADwB;AAE9BC,IAAAA,GAAG,EAAE,IAFyB;AAG9BkrC,IAAAA,KAAK,EAAE,IAHuB;AAI9BC,IAAAA,MAAM,EAAE,IAJsB;AAK9Bp8C,IAAAA,IAAI,EAAE,OALwB;AAM9B+Q,IAAAA,QAAQ,EAAE,QANoB;AAO9B03E,IAAAA,MAAM,EAAE,YAPsB;AAQ9BvnC,IAAAA,QAAQ,EAAE;AACRlhC,MAAAA,IAAI,EAAE,IADE;AAERpB,MAAAA,SAAS,EAAE;AACTloB,QAAAA,KAAK,EAAE,CADE;AAETsJ,QAAAA,IAAI,EAAE,OAAA;AAFG,OAAA;KAViB;AAe9B;AACA;AACA;AACAghD,IAAAA,OAAO,EAAE;AACPhhC,MAAAA,IAAI,EAAE,IAAA;KAnBsB;AAqB9BqhC,IAAAA,QAAQ,EAAE;AACRrhC,MAAAA,IAAI,EAAE,IADE;AAER/vB,MAAAA,MAAM,EAAE,CAFA;AAGR2uB,MAAAA,SAAS,EAAE;AACTloB,QAAAA,KAAK,EAAE,CAAA;AADE,OAAA;KAxBiB;AA4B9B4qD,IAAAA,SAAS,EAAE;AACTthC,MAAAA,IAAI,EAAE,IADG;AAET+hC,MAAAA,QAAQ,EAAE,MAAA;KA9BkB;AAgC9BN,IAAAA,SAAS,EAAE;AACTzhC,MAAAA,IAAI,EAAE,IADG;AAETpB,MAAAA,SAAS,EAAE;AACT5e,QAAAA,IAAI,EAAE,QADG;AAET5N,QAAAA,OAAO,EAAE,GAAA;AAFA,OAAA;AAFF,KAAA;GAhCb,CAAA;AAwCA,EAAA,OAAOouK,eAAP,CAAA;AACD,CAzDD,CAyDExgH,cAzDF,CAFA,CAAA;;AA6DAs+E,KAAK,CAACkiC,eAAD,EAAkBlgH,oBAAoB,CAACrzD,SAAvC,CAAL;;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAIwzK,UAAU;AACd;AACA,UAAUtvJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACqvJ,UAAD,EAAatvJ,MAAb,CAAT,CAAA;;EAEA,SAASsvJ,UAAT,CAAoBz1I,GAApB,EAAyBzX,KAAzB,EAAgC8zC,WAAhC,EAA6CrE,QAA7C,EAAuDjyC,QAAvD,EAAiE;AAC/D,IAAA,IAAIM,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB0Z,GAAlB,EAAuBzX,KAAvB,EAA8B8zC,WAA9B,KAA8C,IAA1D,CAAA;;AAEAh2C,IAAAA,KAAK,CAACrR,IAAN,GAAagjD,QAAQ,IAAI,OAAzB,CAAA;AACA3xC,IAAAA,KAAK,CAACN,QAAN,GAAiBA,QAAQ,IAAI,QAA7B,CAAA;AACA,IAAA,OAAOM,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEovJ,EAAAA,UAAU,CAACxzK,SAAX,CAAqBgmC,YAArB,GAAoC,YAAY;IAC9C,IAAIliB,QAAQ,GAAG,IAAA,CAAKA,QAApB,CAAA;AACA,IAAA,OAAOA,QAAQ,KAAK,KAAb,IAAsBA,QAAQ,KAAK,QAA1C,CAAA;GAFF,CAAA;;EAKA0vJ,UAAU,CAACxzK,SAAX,CAAqB85D,WAArB,GAAmC,UAAUl/B,KAAV,EAAiBw+B,KAAjB,EAAwB;IACzD,OAAO,IAAA,CAAKroC,gBAAL,CAAsB+oC,WAAtB,CAAkCl/B,KAAlC,CAAA,CAAyC,CAAzC,CAAP,CAAA;GADF,CAAA;;AAIA,EAAA,OAAO44I,UAAP,CAAA;AACD,CAzBD,CAyBEh5G,IAzBF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiCO,IAAIi5G,gBAAgB,GAAG,CAAC,QAAD,CAAvB,CAAA;AACP;AACA;AACA;;AAEA,IAAIC,MAAM;AACV;AACA,YAAY;AACV,EAAA,SAASA,MAAT,CAAgB1zH,SAAhB,EAA2BjS,OAA3B,EAAoCxxB,GAApC,EAAyC;IACvC,IAAKxJ,CAAAA,IAAL,GAAY,QAAZ,CAAA;IACA,IAAK22B,CAAAA,SAAL,GAAiB,QAAjB,CAAA;AACA;AACJ;AACA;;IAEI,IAAKpL,CAAAA,UAAL,GAAkBm1I,gBAAlB,CAAA;IACA,IAAKt1G,CAAAA,kBAAL,GAA0B,IAA1B,CAAA;IACA,IAAKliB,CAAAA,KAAL,GAAa+D,SAAb,CAAA;;AAEA,IAAA,IAAA,CAAK08E,KAAL,CAAW18E,SAAX,EAAsBjS,OAAtB,EAA+BxxB,GAA/B,CAAA,CAAA;AACD,GAAA;AACD;AACF;AACA;;;EAGEm3J,MAAM,CAAC1zK,SAAP,CAAiB08H,KAAjB,GAAyB,UAAU18E,SAAV,EAAqBjS,OAArB,EAA8BxxB,GAA9B,EAAmC;IAC1D,IAAIwhB,GAAG,GAAG,IAAA,CAAK2L,SAAf,CAAA;AACA,IAAA,IAAIC,IAAI,GAAG,IAAI6pI,UAAJ,CAAez1I,GAAf,EAAoB4+F,oBAAA,CAA8B38E,SAA9B,CAApB,EAA8D,CAAC,CAAD,EAAI,CAAJ,CAA9D,EAAsEA,SAAS,CAAC7nB,GAAV,CAAc,MAAd,CAAtE,EAA6F6nB,SAAS,CAAC7nB,GAAV,CAAc,UAAd,CAA7F,CAAX,CAAA;AACA,IAAA,IAAI0oC,UAAU,GAAGl3B,IAAI,CAAC52B,IAAL,KAAc,UAA/B,CAAA;IACA42B,IAAI,CAAC4P,MAAL,GAAcsnB,UAAU,IAAI7gB,SAAS,CAAC7nB,GAAV,CAAc,aAAd,CAA5B,CAAA;IACAwR,IAAI,CAACzD,OAAL,GAAe8Z,SAAS,CAAC7nB,GAAV,CAAc,SAAd,CAAf,CAAA;IACAwR,IAAI,CAAC6xD,MAAL,GAAcx7C,SAAS,CAAC7nB,GAAV,CAAc,QAAd,CAAd,CAAA;IACA6nB,SAAS,CAACrW,IAAV,GAAiBA,IAAjB,CAAA;IACAA,IAAI,CAACsS,KAAL,GAAa+D,SAAb,CAAA;IACArW,IAAI,CAAC5Y,gBAAL,GAAwB,IAAxB,CAAA;IACA,IAAK4iJ,CAAAA,KAAL,GAAahqI,IAAb,CAAA;GAVF,CAAA;AAYA;AACF;AACA;;;EAGE+pI,MAAM,CAAC1zK,SAAP,CAAiBi8B,MAAjB,GAA0B,UAAU8R,OAAV,EAAmBxxB,GAAnB,EAAwB;AAChDwxB,IAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;AACxC,MAAA,IAAIA,WAAW,CAAC3F,gBAAZ,KAAiC,IAArC,EAA2C;AACzC,QAAA,IAAIyb,MAAM,GAAG9V,WAAW,CAAC3E,OAAZ,EAAb,CAAA;QACArlB,MAAI,CAAC8/B,MAAM,CAACnY,gBAAP,CAAwB,IAAKqV,CAAAA,SAA7B,CAAD,EAA0C,UAAU3L,GAAV,EAAe;UAC3D,IAAK41I,CAAAA,KAAL,CAAWrtJ,KAAX,CAAiB46C,mBAAjB,CAAqC10B,MAArC,EAA6CzO,GAA7C,CAAA,CAAA;SADE,EAED,IAFC,CAAJ,CAAA;QAGA4+F,eAAA,CAA2B,IAAKg3C,CAAAA,KAAL,CAAWrtJ,KAAtC,EAA6C,IAAA,CAAKqtJ,KAAL,CAAW13H,KAAxD,CAAA,CAAA;AACD,OAAA;AACF,KARD,EAQG,IARH,CAAA,CAAA;GADF,CAAA;AAWA;AACF;AACA;;;EAGEy3H,MAAM,CAAC1zK,SAAP,CAAiBwf,MAAjB,GAA0B,UAAUwgC,SAAV,EAAqBzjC,GAArB,EAA0B;IAClD,IAAK60C,CAAAA,KAAL,GAAagO,aAAa,CAAC;AACzBr7C,MAAAA,IAAI,EAAEi8B,SAAS,CAAC7nB,GAAV,CAAc,MAAd,CADmB;AAEzBnU,MAAAA,GAAG,EAAEg8B,SAAS,CAAC7nB,GAAV,CAAc,KAAd,CAFoB;AAGzB+2B,MAAAA,KAAK,EAAElP,SAAS,CAAC7nB,GAAV,CAAc,OAAd,CAHkB;AAIzBg3B,MAAAA,MAAM,EAAEnP,SAAS,CAAC7nB,GAAV,CAAc,QAAd,CAJiB;AAKzB1uB,MAAAA,KAAK,EAAEu2C,SAAS,CAAC7nB,GAAV,CAAc,OAAd,CALkB;AAMzBzuB,MAAAA,MAAM,EAAEs2C,SAAS,CAAC7nB,GAAV,CAAc,QAAd,CAAA;AANiB,KAAD,EAOvB;AACD1uB,MAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADN;MAEDhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;AAFP,KAPuB,CAA1B,CAAA;;AAYA,IAAA,IAAA,CAAKixJ,WAAL,EAAA,CAAA;GAbF,CAAA;;AAgBAF,EAAAA,MAAM,CAAC1zK,SAAP,CAAiBg7D,OAAjB,GAA2B,YAAY;AACrC,IAAA,OAAO,KAAK5J,KAAZ,CAAA;GADF,CAAA;;AAIAsiH,EAAAA,MAAM,CAAC1zK,SAAP,CAAiB4zK,WAAjB,GAA+B,YAAY;IACzC,IAAIhxK,IAAI,GAAG,IAAA,CAAKwuD,KAAhB,CAAA;IACA,IAAIznB,IAAI,GAAG,IAAA,CAAKgqI,KAAhB,CAAA;AACA,IAAA,IAAI3tI,YAAY,GAAG2D,IAAI,CAAC3D,YAAL,EAAnB,CAAA;AACA,IAAA,IAAIlH,MAAM,GAAGkH,YAAY,GAAG,CAAC,CAAD,EAAIpjC,IAAI,CAAC6G,KAAT,CAAH,GAAqB,CAAC,CAAD,EAAI7G,IAAI,CAAC8G,MAAT,CAA9C,CAAA;IACA,IAAIgmB,GAAG,GAAGia,IAAI,CAACQ,OAAL,GAAe,CAAf,GAAmB,CAA7B,CAAA;AACAR,IAAAA,IAAI,CAACwzB,SAAL,CAAer+B,MAAM,CAACpP,GAAD,CAArB,EAA4BoP,MAAM,CAAC,CAAIpP,GAAAA,GAAL,CAAlC,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKmkJ,oBAAL,CAA0BlqI,IAA1B,EAAgC3D,YAAY,GAAGpjC,IAAI,CAACnC,CAAR,GAAYmC,IAAI,CAAClC,CAA7D,CAAA,CAAA;GARF,CAAA;;EAWAgzK,MAAM,CAAC1zK,SAAP,CAAiB6zK,oBAAjB,GAAwC,UAAUlqI,IAAV,EAAgBi4B,SAAhB,EAA2B;AACjE,IAAA,IAAIp2B,UAAU,GAAG7B,IAAI,CAAC5K,SAAL,EAAjB,CAAA;IACA,IAAI+0I,SAAS,GAAGtoI,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAA1C,CAAA;AACA,IAAA,IAAIxF,YAAY,GAAG2D,IAAI,CAAC3D,YAAL,EAAnB,CAAA;AACA2D,IAAAA,IAAI,CAACI,aAAL,GAAqB/D,YAAY,GAAG,UAAUiD,KAAV,EAAiB;MACnD,OAAOA,KAAK,GAAG24B,SAAf,CAAA;KAD+B,GAE7B,UAAU34B,KAAV,EAAiB;AACnB,MAAA,OAAO6qI,SAAS,GAAG7qI,KAAZ,GAAoB24B,SAA3B,CAAA;KAHF,CAAA;AAKAj4B,IAAAA,IAAI,CAACgvB,YAAL,GAAoB3yB,YAAY,GAAG,UAAUiD,KAAV,EAAiB;MAClD,OAAOA,KAAK,GAAG24B,SAAf,CAAA;KAD8B,GAE5B,UAAU34B,KAAV,EAAiB;AACnB,MAAA,OAAO6qI,SAAS,GAAG7qI,KAAZ,GAAoB24B,SAA3B,CAAA;KAHF,CAAA;GATF,CAAA;AAeA;AACF;AACA;;;AAGE8xG,EAAAA,MAAM,CAAC1zK,SAAP,CAAiB4pC,OAAjB,GAA2B,YAAY;AACrC,IAAA,OAAO,KAAK+pI,KAAZ,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGED,EAAAA,MAAM,CAAC1zK,SAAP,CAAiBy9B,WAAjB,GAA+B,YAAY;AACzC,IAAA,OAAO,KAAKk2I,KAAZ,CAAA;GADF,CAAA;;AAIAD,EAAAA,MAAM,CAAC1zK,SAAP,CAAiBu3D,OAAjB,GAA2B,YAAY;IACrC,OAAO,CAAC,IAAKo8G,CAAAA,KAAN,CAAP,CAAA;GADF,CAAA;;AAIAD,EAAAA,MAAM,CAAC1zK,SAAP,CAAiBmhE,cAAjB,GAAkC,YAAY;IAC5C,OAAO;AACLC,MAAAA,QAAQ,EAAE,CAAC,IAAKx3B,CAAAA,OAAL,EAAD,CADL;AAEL;AACAy3B,MAAAA,SAAS,EAAE,EAAA;KAHb,CAAA;GADF,CAAA;AAOA;AACF;AACA;;;AAGEqyG,EAAAA,MAAM,CAAC1zK,SAAP,CAAiB2sD,YAAjB,GAAgC,UAAU/xB,KAAV,EAAiB;AAC/C,IAAA,IAAIh4B,IAAI,GAAG,IAAKo4D,CAAAA,OAAL,EAAX,CAAA;AACA,IAAA,IAAIrxB,IAAI,GAAG,IAAKC,CAAAA,OAAL,EAAX,CAAA;AACA,IAAA,IAAI4xD,MAAM,GAAG7xD,IAAI,CAAC6xD,MAAlB,CAAA;;IAEA,IAAIA,MAAM,KAAK,YAAf,EAA6B;AAC3B,MAAA,OAAO7xD,IAAI,CAAC5O,OAAL,CAAa4O,IAAI,CAACgvB,YAAL,CAAkB/9B,KAAK,CAAC,CAAD,CAAvB,CAAb,CAAA,IAA6CA,KAAK,CAAC,CAAD,CAAL,IAAYh4B,IAAI,CAAClC,CAA9D,IAAmEk6B,KAAK,CAAC,CAAD,CAAL,IAAYh4B,IAAI,CAAClC,CAAL,GAASkC,IAAI,CAAC8G,MAApG,CAAA;AACD,KAFD,MAEO;AACL,MAAA,OAAOigC,IAAI,CAAC5O,OAAL,CAAa4O,IAAI,CAACgvB,YAAL,CAAkB/9B,KAAK,CAAC,CAAD,CAAvB,CAAb,CAAA,IAA6CA,KAAK,CAAC,CAAD,CAAL,IAAYh4B,IAAI,CAAClC,CAA9D,IAAmEk6B,KAAK,CAAC,CAAD,CAAL,IAAYh4B,IAAI,CAAClC,CAAL,GAASkC,IAAI,CAAC8G,MAApG,CAAA;AACD,KAAA;GATH,CAAA;;AAYAgqK,EAAAA,MAAM,CAAC1zK,SAAP,CAAiB85D,WAAjB,GAA+B,UAAUl/B,KAAV,EAAiB;AAC9C,IAAA,IAAI+O,IAAI,GAAG,IAAKC,CAAAA,OAAL,EAAX,CAAA;IACA,OAAO,CAACD,IAAI,CAACowB,WAAL,CAAiBpwB,IAAI,CAACgvB,YAAL,CAAkB/9B,KAAK,CAAC+O,IAAI,CAAC6xD,MAAL,KAAgB,YAAhB,GAA+B,CAA/B,GAAmC,CAApC,CAAvB,CAAjB,CAAD,CAAP,CAAA;GAFF,CAAA;AAIA;AACF;AACA;AACA;;;AAGEk4E,EAAAA,MAAM,CAAC1zK,SAAP,CAAiBq/B,WAAjB,GAA+B,UAAUz7B,GAAV,EAAe;AAC5C,IAAA,IAAI+lC,IAAI,GAAG,IAAKC,CAAAA,OAAL,EAAX,CAAA;AACA,IAAA,IAAIhnC,IAAI,GAAG,IAAKo4D,CAAAA,OAAL,EAAX,CAAA;IACA,IAAInzB,EAAE,GAAG,EAAT,CAAA;IACA,IAAInY,GAAG,GAAGia,IAAI,CAAC6xD,MAAL,KAAgB,YAAhB,GAA+B,CAA/B,GAAmC,CAA7C,CAAA;;IAEA,IAAI53F,GAAG,YAAYotC,KAAnB,EAA0B;AACxBptC,MAAAA,GAAG,GAAGA,GAAG,CAAC,CAAD,CAAT,CAAA;AACD,KAAA;;AAEDikC,IAAAA,EAAE,CAACnY,GAAD,CAAF,GAAUia,IAAI,CAACI,aAAL,CAAmBJ,IAAI,CAACK,WAAL,CAAiB,CAACpmC,GAAlB,CAAnB,CAAV,CAAA;IACAikC,EAAE,CAAC,CAAInY,GAAAA,GAAL,CAAF,GAAcA,GAAG,KAAK,CAAR,GAAY9sB,IAAI,CAAClC,CAAL,GAASkC,IAAI,CAAC8G,MAAL,GAAc,CAAnC,GAAuC9G,IAAI,CAACnC,CAAL,GAASmC,IAAI,CAAC6G,KAAL,GAAa,CAA3E,CAAA;AACA,IAAA,OAAOo+B,EAAP,CAAA;GAZF,CAAA;;EAeA6rI,MAAM,CAAC1zK,SAAP,CAAiBigE,cAAjB,GAAkC,UAAUlyB,OAAV,EAAmBmyB,MAAnB,EAA2BhhC,KAA3B,EAAkC;AAClE,IAAA,IAAIpO,QAAQ,GAAGqjE,aAAW,CAACj0B,MAAD,CAA1B,CAAA;IACA,OAAOpvC,QAAQ,KAAK,IAAb,GAAoB,IAAA,CAAKuO,WAAL,CAAiBH,KAAjB,CAApB,GAA8C,IAArD,CAAA;GAFF,CAAA;;EAKAw0I,MAAM,CAAC1zK,SAAP,CAAiBogE,gBAAjB,GAAoC,UAAUryB,OAAV,EAAmBmyB,MAAnB,EAA2B2V,KAA3B,EAAkC;AACpE,IAAA,IAAI/kD,QAAQ,GAAGqjE,aAAW,CAACj0B,MAAD,CAA1B,CAAA;IACA,OAAOpvC,QAAQ,KAAK,IAAb,GAAoB,IAAA,CAAKgpC,WAAL,CAAiB+b,KAAjB,CAApB,GAA8C,IAArD,CAAA;GAFF,CAAA;;AAKA,EAAA,OAAO69F,MAAP,CAAA;AACD,CAnLD,EAFA,CAAA;;AAuLA,SAASv/E,aAAT,CAAqBj0B,MAArB,EAA6B;AAC3B,EAAA,IAAIxpC,WAAW,GAAGwpC,MAAM,CAACxpC,WAAzB,CAAA;AACA,EAAA,IAAIq9I,WAAW,GAAG7zG,MAAM,CAAC6qF,eAAzB,CAAA;EACA,OAAOgpB,WAAW,IAAIA,WAAW,CAAChjJ,gBAA3B,IAA+C2F,WAAW,IAAIA,WAAW,CAAC3F,gBAAjF,CAAA;AACD;;AClPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA;AACA;AACA;;AAEA,SAASuwC,MAAT,CAAgBvzB,OAAhB,EAAyBxxB,GAAzB,EAA8B;EAC5B,IAAIy3J,OAAO,GAAG,EAAd,CAAA;EACAjmI,OAAO,CAAC4V,aAAR,CAAsB,YAAtB,EAAoC,UAAU3D,SAAV,EAAqBtwB,GAArB,EAA0B;IAC5D,IAAIw7H,MAAM,GAAG,IAAIwoB,MAAJ,CAAW1zH,SAAX,EAAsBjS,OAAtB,EAA+BxxB,GAA/B,CAAb,CAAA;AACA2uI,IAAAA,MAAM,CAACxkJ,IAAP,GAAc,SAAA,GAAYgpB,GAA1B,CAAA;AACAw7H,IAAAA,MAAM,CAAC1rI,MAAP,CAAcwgC,SAAd,EAAyBzjC,GAAzB,CAAA,CAAA;IACAyjC,SAAS,CAACjvB,gBAAV,GAA6Bm6H,MAA7B,CAAA;IACA8oB,OAAO,CAACjwK,IAAR,CAAamnJ,MAAb,CAAA,CAAA;GALF,CAAA,CAAA;AAOAn9G,EAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;AACxC,IAAA,IAAIA,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,CAAA,KAAwC,YAA5C,EAA0D;AACxD,MAAA,IAAI4yH,eAAe,GAAGr0H,WAAW,CAACw8B,sBAAZ,CAAmC,YAAnC,EAAiDC,gBAAjD,CAAA,CAAmEC,MAAnE,CAA0E,CAA1E,CAAtB,CAAA;AACA18B,MAAAA,WAAW,CAAC3F,gBAAZ,GAA+Bg6H,eAAe,IAAIA,eAAe,CAACh6H,gBAAlE,CAAA;AACD,KAAA;GAJH,CAAA,CAAA;AAMA,EAAA,OAAOijJ,OAAP,CAAA;AACD,CAAA;;AAED,IAAIC,aAAa,GAAG;AAClB3yG,EAAAA,MAAM,EAAEA,MADU;AAElBhjC,EAAAA,UAAU,EAAEm1I,gBAAAA;AAFM,CAApB;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BA,IAAIS,IAAE,GAAG,CAAC,GAAD,EAAM,GAAN,CAAT,CAAA;AACA,IAAIC,IAAE,GAAG,CAAC,OAAD,EAAU,QAAV,CAAT,CAAA;;AAEA,IAAIC,iBAAiB;AACrB;AACA,UAAUlwJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACiwJ,iBAAD,EAAoBlwJ,MAApB,CAAT,CAAA;;AAEA,EAAA,SAASkwJ,iBAAT,GAA6B;AAC3B,IAAA,OAAOlwJ,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEywK,EAAAA,iBAAiB,CAACp0K,SAAlB,CAA4BujK,YAA5B,GAA2C,UAAUlO,QAAV,EAAoBn2H,KAApB,EAA2B8gB,SAA3B,EAAsCuqB,gBAAtC,EAAwDhuD,GAAxD,EAA6D;AACtG,IAAA,IAAIotB,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;AACA,IAAA,IAAI7Y,QAAQ,GAAG6Y,IAAI,CAAC5Y,gBAApB,CAAA;IACA,IAAIq3G,WAAW,GAAGnuE,eAAe,CAACnpC,QAAD,EAAW,CAAA,GAAIujJ,gBAAgB,CAAC1qI,IAAD,CAA/B,CAAjC,CAAA;IACA,IAAI69H,UAAU,GAAG12I,QAAQ,CAACuO,WAAT,CAAqBH,KAArB,CAA4B,CAAA,CAA5B,CAAjB,CAAA;AACA,IAAA,IAAI+mI,eAAe,GAAG17F,gBAAgB,CAACpyC,GAAjB,CAAqB,MAArB,CAAtB,CAAA;;AAEA,IAAA,IAAI8tI,eAAe,IAAIA,eAAe,KAAK,MAA3C,EAAmD;AACjD,MAAA,IAAIwB,OAAO,GAAGC,YAAA,CAAwBn9F,gBAAxB,CAAd,CAAA;AACA,MAAA,IAAI+5F,aAAa,GAAGqD,mBAAmB,CAAC1B,eAAD,CAAnB,CAAqCt8H,IAArC,EAA2C69H,UAA3C,EAAuDp/B,WAAvD,CAApB,CAAA;MACAk8B,aAAa,CAAChgK,KAAd,GAAsBmjK,OAAtB,CAAA;AACApS,MAAAA,QAAQ,CAACmO,UAAT,GAAsBc,aAAa,CAACvxJ,IAApC,CAAA;MACAsiJ,QAAQ,CAACtiC,OAAT,GAAmBuxC,aAAnB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIvoE,UAAU,GAAGu3E,QAAA,CAAwBtzH,SAAxB,CAAjB,CAAA;IACA0nH,iCAAA;IACAxoI,KADA,EACOm2H,QADP,EACiBt5D,UADjB,EAC6B/7C,SAD7B,EACwCuqB,gBADxC,EAC0DhuD,GAD1D,CAAA,CAAA;GAhBF,CAAA;AAmBA;AACF;AACA;;;EAGE63J,iBAAiB,CAACp0K,SAAlB,CAA4BklK,kBAA5B,GAAiD,UAAUhmI,KAAV,EAAiB8gB,SAAjB,EAA4BuqB,gBAA5B,EAA8C;AAC7F,IAAA,IAAIwxB,UAAU,GAAGu3E,QAAA,CAAwBtzH,SAAxB,EAAmC;AAClD0b,MAAAA,WAAW,EAAE,KAAA;KADE,CAAjB,CAD6F;;AAK7FqgC,IAAAA,UAAU,CAAC9zB,WAAX,GAAyBsC,gBAAgB,CAACpyC,GAAjB,CAAqB,CAAC,QAAD,EAAW,QAAX,CAArB,CAAzB,CAAA;AACA,IAAA,IAAIrU,QAAQ,GAAG4jJ,sBAAA,CAAkC1nH,SAAS,CAACrW,IAA5C,EAAkDzK,KAAlD,EAAyD68D,UAAzD,CAAf,CAAA;IACA,OAAO;AACLt7F,MAAAA,CAAC,EAAEqjB,QAAQ,CAAC,CAAD,CADN;AAELpjB,MAAAA,CAAC,EAAEojB,QAAQ,CAAC,CAAD,CAFN;AAGL0O,MAAAA,QAAQ,EAAEupE,UAAU,CAACvpE,QAAX,IAAuBupE,UAAU,CAACzgC,cAAX,GAA4B,CAA5B,GAAgC97D,IAAI,CAACI,EAArC,GAA0C,CAAjE,CAAA;KAHZ,CAAA;GAPF,CAAA;AAaA;AACF;AACA;;;AAGEw0K,EAAAA,iBAAiB,CAACp0K,SAAlB,CAA4BykK,qBAA5B,GAAoD,UAAU34J,SAAV,EAAqB+5F,KAArB,EAA4B7lD,SAA5B,EAAuCuqB,gBAAvC,EAAyD;AAC3G,IAAA,IAAI5gC,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;AACA,IAAA,IAAI7Y,QAAQ,GAAG6Y,IAAI,CAAC5Y,gBAApB,CAAA;AACA,IAAA,IAAI2D,QAAQ,GAAG2/I,gBAAgB,CAAC1qI,IAAD,CAA/B,CAAA;AACA,IAAA,IAAI6B,UAAU,GAAGyuB,eAAe,CAACnpC,QAAD,EAAW4D,QAAX,CAAhC,CAAA;IACA,IAAIkzI,YAAY,GAAG,CAAC97J,SAAS,CAACrL,CAAX,EAAcqL,SAAS,CAACpL,CAAxB,CAAnB,CAAA;AACAknK,IAAAA,YAAY,CAAClzI,QAAD,CAAZ,IAA0BmxE,KAAK,CAACnxE,QAAD,CAA/B,CAAA;AACAkzI,IAAAA,YAAY,CAAClzI,QAAD,CAAZ,GAAyBl1B,IAAI,CAAC8iC,GAAL,CAASkJ,UAAU,CAAC,CAAD,CAAnB,EAAwBo8H,YAAY,CAAClzI,QAAD,CAApC,CAAzB,CAAA;AACAkzI,IAAAA,YAAY,CAAClzI,QAAD,CAAZ,GAAyBl1B,IAAI,CAAC0iB,GAAL,CAASspB,UAAU,CAAC,CAAD,CAAnB,EAAwBo8H,YAAY,CAAClzI,QAAD,CAApC,CAAzB,CAAA;IACA,IAAI0zG,WAAW,GAAGnuE,eAAe,CAACnpC,QAAD,EAAW,CAAA,GAAI4D,QAAf,CAAjC,CAAA;AACA,IAAA,IAAImzI,gBAAgB,GAAG,CAACz/B,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAA7B,IAAoC,CAA3D,CAAA;AACA,IAAA,IAAIo9B,WAAW,GAAG,CAACqC,gBAAD,EAAmBA,gBAAnB,CAAlB,CAAA;AACArC,IAAAA,WAAW,CAAC9wI,QAAD,CAAX,GAAwBkzI,YAAY,CAAClzI,QAAD,CAApC,CAAA;IACA,OAAO;AACLj0B,MAAAA,CAAC,EAAEmnK,YAAY,CAAC,CAAD,CADV;AAELlnK,MAAAA,CAAC,EAAEknK,YAAY,CAAC,CAAD,CAFV;MAGLp1I,QAAQ,EAAE1mB,SAAS,CAAC0mB,QAHf;AAILgzI,MAAAA,WAAW,EAAEA,WAJR;AAKLC,MAAAA,aAAa,EAAE;AACbn4H,QAAAA,aAAa,EAAE,QAAA;AADF,OAAA;KALjB,CAAA;GAbF,CAAA;;AAwBA,EAAA,OAAO8mI,iBAAP,CAAA;AACD,CA9ED,CA8EEvR,eA9EF,CAFA,CAAA;;AAkFA,IAAI8E,mBAAmB,GAAG;AACxBp2I,EAAAA,IAAI,EAAE,SAAUoY,IAAAA,CAAAA,IAAV,EAAgB69H,UAAhB,EAA4Bp/B,WAA5B,EAAyC;AAC7C,IAAA,IAAIlhB,WAAW,GAAGwgD,aAAA,CAAyB,CAACF,UAAD,EAAap/B,WAAW,CAAC,CAAD,CAAxB,CAAzB,EAAuD,CAACo/B,UAAD,EAAap/B,WAAW,CAAC,CAAD,CAAxB,CAAvD,EAAqFisC,gBAAgB,CAAC1qI,IAAD,CAArG,CAAlB,CAAA;IACA,OAAO;AACL52B,MAAAA,IAAI,EAAE,MADD;AAELuwD,MAAAA,gBAAgB,EAAE,IAFb;AAGLh4D,MAAAA,KAAK,EAAE47G,WAAAA;KAHT,CAAA;GAHsB;AASxB8gD,EAAAA,MAAM,EAAE,SAAUr+H,MAAAA,CAAAA,IAAV,EAAgB69H,UAAhB,EAA4Bp/B,WAA5B,EAAyC;AAC/C,IAAA,IAAIsK,SAAS,GAAG/oG,IAAI,CAACgpG,YAAL,EAAhB,CAAA;IACA,IAAItW,IAAI,GAAG+L,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAAvC,CAAA;IACA,OAAO;AACLr1H,MAAAA,IAAI,EAAE,MADD;MAELzH,KAAK,EAAEo8J,aAAA,CAAyB,CAACF,UAAU,GAAG90B,SAAS,GAAG,CAA1B,EAA6BtK,WAAW,CAAC,CAAD,CAAxC,CAAzB,EAAuE,CAACsK,SAAD,EAAYrW,IAAZ,CAAvE,EAA0Fg4C,gBAAgB,CAAC1qI,IAAD,CAA1G,CAAA;KAFT,CAAA;AAID,GAAA;AAhBuB,CAA1B,CAAA;;AAmBA,SAAS0qI,gBAAT,CAA0B1qI,IAA1B,EAAgC;AAC9B,EAAA,OAAOA,IAAI,CAAC3D,YAAL,EAAsB,GAAA,CAAtB,GAA0B,CAAjC,CAAA;AACD,CAAA;;AAED,SAASi0B,eAAT,CAAyBnpC,QAAzB,EAAmC4D,QAAnC,EAA6C;AAC3C,EAAA,IAAI9xB,IAAI,GAAGkuB,QAAQ,CAACkqC,OAAT,EAAX,CAAA;EACA,OAAO,CAACp4D,IAAI,CAACsxK,IAAE,CAACx/I,QAAD,CAAH,CAAL,EAAqB9xB,IAAI,CAACsxK,IAAE,CAACx/I,QAAD,CAAH,CAAJ,GAAqB9xB,IAAI,CAACuxK,IAAE,CAACz/I,QAAD,CAAH,CAA9C,CAAP,CAAA;AACD;;AC7JD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoCA,IAAI4/I,UAAU;AACd;AACA,UAAUpwJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACmwJ,UAAD,EAAapwJ,MAAb,CAAT,CAAA;;AAEA,EAAA,SAASowJ,UAAT,GAAsB;AACpB,IAAA,IAAIlwJ,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAauhK,UAAU,CAACvhK,IAAxB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDkwJ,UAAU,CAACvhK,IAAX,GAAkB,QAAlB,CAAA;AACA,EAAA,OAAOuhK,UAAP,CAAA;AACD,CAZD,CAYEnnG,aAZF,CAFA,CAAA;;AAgBO,SAAS/pD,SAAT,CAAiBC,SAAjB,EAA4B;EACjCqsD,GAAG,CAACu9F,SAAD,CAAH,CAAA;AACA1gG,EAAAA,QAAQ,CAACU,wBAAT,CAAkC,mBAAlC,EAAuDmnG,iBAAvD,CAAA,CAAA;AACA/wJ,EAAAA,SAAS,CAACksD,qBAAV,CAAgC+kG,UAAhC,EAHiC;;EAKjCjxJ,SAAS,CAACksD,qBAAV,CAAgC8jG,cAAhC,CAAA,CAAA;EACAhwJ,SAAS,CAAC6zC,sBAAV,CAAiCq8G,eAAjC,CAAA,CAAA;EACA79G,gBAAgB,CAACryC,SAAD,EAAY,QAAZ,EAAsBkwJ,eAAtB,EAAuCA,eAAe,CAAC5gJ,aAAvD,CAAhB,CAAA;AACAtP,EAAAA,SAAS,CAACmsD,wBAAV,CAAmC,QAAnC,EAA6CykG,aAA7C,CAAA,CAAA;AACD;;AC9ED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAIM,aAAa;AACjB;AACA,UAAUrwJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACowJ,aAAD,EAAgBrwJ,MAAhB,CAAT,CAAA;;AAEA,EAAA,SAASqwJ,aAAT,GAAyB;AACvB,IAAA,IAAInwJ,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAawhK,aAAa,CAACxhK,IAA3B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;EAGEmwJ,aAAa,CAACv0K,SAAd,CAAwBytC,IAAxB,GAA+B,UAAU5c,MAAV,EAAkBsgD,WAAlB,EAA+BpjC,OAA/B,EAAwC;AACrE,IAAA,IAAIsoB,mBAAmB,GAAGC,eAAe,CAACzlC,MAAD,CAAzC,CAAA;;IAEA3M,MAAM,CAAClkB,SAAP,CAAiBytC,IAAjB,CAAsB/c,KAAtB,CAA4B,IAA5B,EAAkC/sB,SAAlC,CAAA,CAAA;;AAEA6wK,IAAAA,+BAA6B,CAAC3jJ,MAAD,EAASwlC,mBAAT,CAA7B,CAAA;GALF,CAAA;AAOA;AACF;AACA;;;AAGEk+G,EAAAA,aAAa,CAACv0K,SAAd,CAAwBquD,WAAxB,GAAsC,UAAUx9B,MAAV,EAAkB;IACtD3M,MAAM,CAAClkB,SAAP,CAAiBquD,WAAjB,CAA6B39B,KAA7B,CAAmC,IAAnC,EAAyC/sB,SAAzC,CAAA,CAAA;;AAEA6wK,IAAAA,+BAA6B,CAAC,IAAA,CAAK3jJ,MAAN,EAAcA,MAAd,CAA7B,CAAA;GAHF,CAAA;;AAMA0jJ,EAAAA,aAAa,CAACv0K,SAAd,CAAwBy0K,WAAxB,GAAsC,YAAY;AAChD;IACA,OAAO,IAAA,CAAK5jJ,MAAL,CAAY6jJ,QAAnB,CAAA;GAFF,CAAA;;EAKAH,aAAa,CAACxhK,IAAd,GAAqB,UAArB,CAAA;EACAwhK,aAAa,CAAC5hJ,aAAd,GAA8B;AAC5B;AACAzG,IAAAA,CAAC,EAAE,CAFyB;AAG5BnI,IAAAA,IAAI,EAAE,EAHsB;AAI5BC,IAAAA,GAAG,EAAE,EAJuB;AAK5B0wJ,IAAAA,QAAQ,EAAE,EALkB;AAM5B;AACAl5E,IAAAA,MAAM,EAAE,YAPoB;AAQ5B;AACAhnC,IAAAA,SAAS,EAAE;AACTzhC,MAAAA,IAAI,EAAE,IADG;AAETpB,MAAAA,SAAS,EAAE;AACTrsB,QAAAA,KAAK,EAAE,MADE;AAETmE,QAAAA,KAAK,EAAE,CAFE;AAGTsJ,QAAAA,IAAI,EAAE,OAAA;AAHG,OAAA;KAXe;AAiB5B;AACAsf,IAAAA,SAAS,EAAE;AACT/sB,MAAAA,KAAK,EAAE,MADE;AAETsgB,MAAAA,WAAW,EAAE,CAFJ;AAGTuxB,MAAAA,WAAW,EAAE,MAAA;KArBa;AAuB5B;AACAw9H,IAAAA,QAAQ,EAAE;AACR5hJ,MAAAA,IAAI,EAAE,IADE;AAER6hJ,MAAAA,QAAQ,EAAE,CAFF;AAGR;AACA9wJ,MAAAA,QAAQ,EAAE,OAJF;AAKR6B,MAAAA,MAAM,EAAE,KALA;AAMRrgB,MAAAA,KAAK,EAAE,MAAA;KA9BmB;AAgC5B;AACAuvK,IAAAA,UAAU,EAAE;AACV9hJ,MAAAA,IAAI,EAAE,IADI;AAEV;AACAjP,MAAAA,QAAQ,EAAE,OAHA;AAIV6B,MAAAA,MAAM,EAAE,CAJE;AAKV;AACA0nB,MAAAA,KAAK,EAAE,QANG;AAOV4pD,MAAAA,SAAS,EAAE,IAPD;AAQV3xF,MAAAA,KAAK,EAAE,MAAA;KAzCmB;AA2C5B;AACAwvK,IAAAA,SAAS,EAAE;AACT/hJ,MAAAA,IAAI,EAAE,IADG;AAET;AACAjP,MAAAA,QAAQ,EAAE,IAHD;AAIT6B,MAAAA,MAAM,EAAE,EAJC;AAKTsxE,MAAAA,SAAS,EAAE,IALF;AAMT3xF,MAAAA,KAAK,EAAE,MANE;AAOT2P,MAAAA,UAAU,EAAE,YAPH;AAQTE,MAAAA,UAAU,EAAE,QARH;AASTL,MAAAA,QAAQ,EAAE,EAAA;AATD,KAAA;GA5Cb,CAAA;AAwDA,EAAA,OAAOy/J,aAAP,CAAA;AACD,CA/FD,CA+FExhH,cA/FF,CAFA,CAAA;;AAmGA,SAASyhH,+BAAT,CAAuC3oK,MAAvC,EAA+Cq9E,GAA/C,EAAoD;AAClD;AACA,EAAA,IAAIwrF,QAAQ,GAAG7oK,MAAM,CAAC6oK,QAAtB,CAAA;AACA,EAAA,IAAIK,WAAJ,CAAA;;AAEA,EAAA,IAAI,CAACrtI,SAAA,CAAegtI,QAAf,CAAL,EAA+B;IAC7BK,WAAW,GAAGlpK,MAAM,CAAC6oK,QAAP,GAAkB,CAACA,QAAD,EAAWA,QAAX,CAAhC,CAAA;AACD,GAFD,MAEO;AACLK,IAAAA,WAAW,GAAGL,QAAd,CAAA;AACD,GAAA;;AAED,EAAA,IAAIK,WAAW,CAAC/xK,MAAZ,KAAuB,CAA3B,EAA8B;AAC5B+xK,IAAAA,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAA5B,CAAA;AACD,GAAA;;AAED,EAAA,IAAIC,UAAU,GAAGttI,GAAA,CAAW,CAAC,CAAD,EAAI,CAAJ,CAAX,EAAmB,UAAUutI,KAAV,EAAiB;AACnD;AACA;AACA;AACA,IAAA,IAAIC,cAAc,CAAChsF,GAAD,EAAM+rF,KAAN,CAAlB,EAAgC;AAC9BF,MAAAA,WAAW,CAACE,KAAD,CAAX,GAAqB,MAArB,CAAA;AACD,KAAA;;AAED,IAAA,OAAOF,WAAW,CAACE,KAAD,CAAX,IAAsB,IAAtB,IAA8BF,WAAW,CAACE,KAAD,CAAX,KAAuB,MAA5D,CAAA;AACD,GATgB,CAAjB,CAAA;AAUAt+G,EAAAA,gBAAgB,CAAC9qD,MAAD,EAASq9E,GAAT,EAAc;AAC5Bn2E,IAAAA,IAAI,EAAE,KADsB;AAE5BiiK,IAAAA,UAAU,EAAEA,UAAAA;AAFgB,GAAd,CAAhB,CAAA;AAID;;AC/KD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkCA,IAAIG,YAAY;AAChB;AACA,UAAUjxJ,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACgxJ,YAAD,EAAejxJ,MAAf,CAAT,CAAA;;AAEA,EAAA,SAASixJ,YAAT,GAAwB;AACtB,IAAA,IAAI/wJ,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaoiK,YAAY,CAACpiK,IAA1B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED+wJ,YAAY,CAACn1K,SAAb,CAAuB8tC,MAAvB,GAAgC,UAAUsnI,aAAV,EAAyBrnI,OAAzB,EAAkCxxB,GAAlC,EAAuC;IACrE,IAAI8U,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACAA,IAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;AACA,IAAA,IAAInE,QAAQ,GAAGskJ,aAAa,CAACrkJ,gBAA7B,CAHqE;;AAKrE,IAAA,IAAIskJ,SAAS,GAAGvkJ,QAAQ,CAACwgI,YAAT,EAAhB,CAAA;AACA,IAAA,IAAI91D,MAAM,GAAG1qE,QAAQ,CAACkuE,SAAT,EAAb,CANqE;;AAQrE,IAAA,IAAIs2E,WAAW,GAAGvnI,OAAO,CAACwnI,cAAR,EAAlB,CAAA;;IAEA,IAAKC,CAAAA,cAAL,CAAoBJ,aAApB,EAAmCC,SAAnC,EAA8ChkJ,KAA9C,EAVqE;;;IAarE,IAAKokJ,CAAAA,YAAL,CAAkBL,aAAlB,EAAiCC,SAAjC,EAA4C75E,MAA5C,EAAoDnqE,KAApD,CAAA,CAAA;;IAEA,IAAKqkJ,CAAAA,eAAL,CAAqBN,aAArB,EAAoCC,SAApC,EAA+C75E,MAA/C,EAAuDnqE,KAAvD,CAAA,CAAA;;IAEA,IAAKskJ,CAAAA,gBAAL,CAAsBP,aAAtB,EAAqCE,WAArC,EAAkD95E,MAAlD,EAA0DnqE,KAA1D,CAAA,CAAA;;IAEA,IAAKukJ,CAAAA,eAAL,CAAqBR,aAArB,EAAoCE,WAApC,EAAiDD,SAAjD,EAA4D75E,MAA5D,EAAoEnqE,KAApE,CAAA,CAAA;AACD,GApBD,CAVgB;;;EAiChB8jJ,YAAY,CAACn1K,SAAb,CAAuBw1K,cAAvB,GAAwC,UAAUJ,aAAV,EAAyBC,SAAzB,EAAoChkJ,KAApC,EAA2C;AACjF,IAAA,IAAIP,QAAQ,GAAGskJ,aAAa,CAACrkJ,gBAA7B,CAAA;IACA,IAAI8kJ,kBAAkB,GAAGT,aAAa,CAACn9I,QAAd,CAAuB,WAAvB,CAAoCC,CAAAA,YAApC,EAAzB,CAAA;AACA,IAAA,IAAI8nG,EAAE,GAAGlvG,QAAQ,CAAC0gI,YAAT,EAAT,CAAA;AACA,IAAA,IAAIskB,EAAE,GAAGhlJ,QAAQ,CAAC4gI,aAAT,EAAT,CAAA;;AAEA,IAAA,KAAK,IAAIhuJ,CAAC,GAAG2xK,SAAS,CAAC1nJ,KAAV,CAAgBpe,IAA7B,EAAmC7L,CAAC,IAAI2xK,SAAS,CAACn4I,GAAV,CAAc3tB,IAAtD,EAA4D7L,CAAC,GAAGotB,QAAQ,CAACilJ,WAAT,CAAqBryK,CAArB,EAAwB,CAAxB,CAA2B6L,CAAAA,IAA3F,EAAiG;AAC/F,MAAA,IAAIqrB,KAAK,GAAG9J,QAAQ,CAACwyH,UAAT,CAAoB,CAAC5/I,CAAD,CAApB,EAAyB,KAAzB,CAAgCsyK,CAAAA,EAA5C,CAD+F;;AAG/F,MAAA,IAAIpzK,IAAI,GAAG,IAAIm0B,MAAJ,CAAiB;AAC1BzrB,QAAAA,KAAK,EAAE;AACL7K,UAAAA,CAAC,EAAEm6B,KAAK,CAAC,CAAD,CADH;AAELl6B,UAAAA,CAAC,EAAEk6B,KAAK,CAAC,CAAD,CAFH;AAGLnxB,UAAAA,KAAK,EAAEu2H,EAHF;AAILt2H,UAAAA,MAAM,EAAEosK,EAAAA;SALgB;AAO1Bv/I,QAAAA,MAAM,EAAE,SAPkB;AAQ1BjyB,QAAAA,KAAK,EAAEuxK,kBAAAA;AARmB,OAAjB,CAAX,CAAA;MAUAxkJ,KAAK,CAACO,GAAN,CAAUhvB,IAAV,CAAA,CAAA;AACD,KAAA;AACF,GArBD,CAjCgB;;;AAyDhBuyK,EAAAA,YAAY,CAACn1K,SAAb,CAAuBy1K,YAAvB,GAAsC,UAAUL,aAAV,EAAyBC,SAAzB,EAAoC75E,MAApC,EAA4CnqE,KAA5C,EAAmD;IACvF,IAAIjI,IAAI,GAAG,IAAX,CAAA;AACA,IAAA,IAAI0H,QAAQ,GAAGskJ,aAAa,CAACrkJ,gBAA7B,CAAA;AACA,IAAA,IAAIid,cAAc,GAAGonI,aAAa,CAACn9I,QAAd,CAAuB,CAAC,WAAD,EAAc,WAAd,CAAvB,CAAA,CAAmDyX,YAAnD,EAArB,CAAA;IACA,IAAI3c,IAAI,GAAGqiJ,aAAa,CAACj9I,GAAd,CAAkB,CAAC,WAAD,EAAc,MAAd,CAAlB,CAAX,CAAA;AACA,IAAA,IAAIvyB,SAAS,GAAGooC,cAAc,CAACpoC,SAA/B,CAAA;IACA,IAAKqwK,CAAAA,SAAL,GAAiB,EAAjB,CAAA;IACA,IAAKC,CAAAA,SAAL,GAAiB,EAAjB,CAAA;IACA,IAAKC,CAAAA,gBAAL,GAAwB,EAAxB,CAAA;IACA,IAAKC,CAAAA,eAAL,GAAuB,EAAvB,CAAA;AACA,IAAA,IAAIxB,QAAQ,GAAGS,SAAS,CAAC1nJ,KAAzB,CAAA;;AAEA,IAAA,KAAK,IAAIjqB,CAAC,GAAG,CAAb,EAAgBkxK,QAAQ,CAACrlK,IAAT,IAAiB8lK,SAAS,CAACn4I,GAAV,CAAc3tB,IAA/C,EAAqD7L,CAAC,EAAtD,EAA0D;AACxD2yK,MAAAA,SAAS,CAACzB,QAAQ,CAAC0B,YAAV,CAAT,CAAA;;MAEA,IAAI5yK,CAAC,KAAK,CAAV,EAAa;AACXkxK,QAAAA,QAAQ,GAAG9jJ,QAAQ,CAACylJ,WAAT,CAAqBlB,SAAS,CAAC1nJ,KAAV,CAAgBjtB,CAAhB,GAAoB,GAApB,GAA0B20K,SAAS,CAAC1nJ,KAAV,CAAgBlc,CAA/D,CAAX,CAAA;AACD,OAAA;;AAED,MAAA,IAAI+kK,IAAI,GAAG5B,QAAQ,CAAC4B,IAApB,CAAA;AACAA,MAAAA,IAAI,CAACC,QAAL,CAAcD,IAAI,CAACE,QAAL,KAAkB,CAAhC,CAAA,CAAA;AACA9B,MAAAA,QAAQ,GAAG9jJ,QAAQ,CAACylJ,WAAT,CAAqBC,IAArB,CAAX,CAAA;AACD,KAAA;;AAEDH,IAAAA,SAAS,CAACvlJ,QAAQ,CAACilJ,WAAT,CAAqBV,SAAS,CAACn4I,GAAV,CAAc3tB,IAAnC,EAAyC,CAAzC,CAAA,CAA4C+mK,YAA7C,CAAT,CAAA;;IAEA,SAASD,SAAT,CAAmBG,IAAnB,EAAyB;MACvBptJ,IAAI,CAAC+sJ,gBAAL,CAAsBpyK,IAAtB,CAA2B+sB,QAAQ,CAACylJ,WAAT,CAAqBC,IAArB,CAA3B,CAAA,CAAA;;AAEAptJ,MAAAA,IAAI,CAACgtJ,eAAL,CAAqBryK,IAArB,CAA0B+sB,QAAQ,CAACwyH,UAAT,CAAoB,CAACkzB,IAAD,CAApB,EAA4B,KAA5B,EAAmCR,EAA7D,CAAA,CAAA;;MAEA,IAAIhkK,MAAM,GAAGoX,IAAI,CAACutJ,uBAAL,CAA6BvB,aAA7B,EAA4CoB,IAA5C,EAAkDh7E,MAAlD,CAAb,CAAA;;MAEApyE,IAAI,CAAC6sJ,SAAL,CAAelyK,IAAf,CAAoBiO,MAAM,CAAC,CAAD,CAA1B,CAAA,CAAA;;AAEAoX,MAAAA,IAAI,CAAC8sJ,SAAL,CAAenyK,IAAf,CAAoBiO,MAAM,CAACA,MAAM,CAAChP,MAAP,GAAgB,CAAjB,CAA1B,CAAA,CAAA;;MAEA+vB,IAAI,IAAI3J,IAAI,CAACwtJ,cAAL,CAAoB5kK,MAApB,EAA4Bg8B,cAA5B,EAA4C3c,KAA5C,CAAR,CAAA;AACD,KAtCsF;;;IAyCvF0B,IAAI,IAAI,KAAK6jJ,cAAL,CAAoBxtJ,IAAI,CAACytJ,eAAL,CAAqBztJ,IAAI,CAAC6sJ,SAA1B,EAAqCrwK,SAArC,EAAgD41F,MAAhD,CAApB,EAA6ExtD,cAA7E,EAA6F3c,KAA7F,CAAR,CAzCuF;;IA2CvF0B,IAAI,IAAI,KAAK6jJ,cAAL,CAAoBxtJ,IAAI,CAACytJ,eAAL,CAAqBztJ,IAAI,CAAC8sJ,SAA1B,EAAqCtwK,SAArC,EAAgD41F,MAAhD,CAApB,EAA6ExtD,cAA7E,EAA6F3c,KAA7F,CAAR,CAAA;AACD,GA5CD,CAzDgB;;;EAwGhB8jJ,YAAY,CAACn1K,SAAb,CAAuB62K,eAAvB,GAAyC,UAAU7kK,MAAV,EAAkBpM,SAAlB,EAA6B41F,MAA7B,EAAqC;IAC5E,IAAIs7E,EAAE,GAAG,CAAC9kK,MAAM,CAAC,CAAD,CAAN,CAAU+W,KAAV,EAAD,EAAoB/W,MAAM,CAACA,MAAM,CAAChP,MAAP,GAAgB,CAAjB,CAAN,CAA0B+lB,KAA1B,EAApB,CAAT,CAAA;IACA,IAAI2G,GAAG,GAAG8rE,MAAM,KAAK,YAAX,GAA0B,CAA1B,GAA8B,CAAxC,CAF4E;;AAI5Es7E,IAAAA,EAAE,CAAC,CAAD,CAAF,CAAMpnJ,GAAN,CAAaonJ,GAAAA,EAAE,CAAC,CAAD,CAAF,CAAMpnJ,GAAN,CAAa9pB,GAAAA,SAAS,GAAG,CAAtC,CAAA;AACAkxK,IAAAA,EAAE,CAAC,CAAD,CAAF,CAAMpnJ,GAAN,CAAaonJ,GAAAA,EAAE,CAAC,CAAD,CAAF,CAAMpnJ,GAAN,CAAa9pB,GAAAA,SAAS,GAAG,CAAtC,CAAA;AACA,IAAA,OAAOkxK,EAAP,CAAA;AACD,GAPD,CAxGgB;;;EAkHhB3B,YAAY,CAACn1K,SAAb,CAAuB42K,cAAvB,GAAwC,UAAU5kK,MAAV,EAAkB2f,SAAlB,EAA6BN,KAA7B,EAAoC;AAC1E,IAAA,IAAI0lJ,OAAO,GAAG,IAAIhgJ,UAAJ,CAAqB;AACjC3B,MAAAA,EAAE,EAAE,EAD6B;AAEjC9pB,MAAAA,KAAK,EAAE;AACL0G,QAAAA,MAAM,EAAEA,MAAAA;OAHuB;AAKjC1N,MAAAA,KAAK,EAAEqtB,SAAAA;AAL0B,KAArB,CAAd,CAAA;IAOAN,KAAK,CAACO,GAAN,CAAUmlJ,OAAV,CAAA,CAAA;AACD,GATD,CAlHgB;;;EA8HhB5B,YAAY,CAACn1K,SAAb,CAAuB22K,uBAAvB,GAAiD,UAAUvB,aAAV,EAAyBoB,IAAzB,EAA+Bh7E,MAA/B,EAAuC;AACtF,IAAA,IAAI1qE,QAAQ,GAAGskJ,aAAa,CAACrkJ,gBAA7B,CAAA;AACA,IAAA,IAAIimJ,UAAU,GAAGlmJ,QAAQ,CAACylJ,WAAT,CAAqBC,IAArB,CAAjB,CAAA;IACA,IAAIxkK,MAAM,GAAG,EAAb,CAAA;;IAEA,KAAK,IAAItO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAApB,EAAuBA,CAAC,EAAxB,EAA4B;MAC1B,IAAIuzK,IAAI,GAAGnmJ,QAAQ,CAACilJ,WAAT,CAAqBiB,UAAU,CAACznK,IAAhC,EAAsC7L,CAAtC,CAAX,CAAA;AACA,MAAA,IAAIk3B,KAAK,GAAG9J,QAAQ,CAACwyH,UAAT,CAAoB,CAAC2zB,IAAI,CAAC1nK,IAAN,CAApB,EAAiC,KAAjC,CAAZ,CAAA;MACAyC,MAAM,CAAC,IAAIilK,IAAI,CAACC,GAAV,CAAN,GAAuBt8I,KAAK,CAACo7I,EAA7B,CAAA;AACAhkK,MAAAA,MAAM,CAAC,CAAIilK,GAAAA,IAAI,CAACC,GAAT,GAAe,CAAhB,CAAN,GAA2Bt8I,KAAK,CAAC4gE,MAAM,KAAK,YAAX,GAA0B,IAA1B,GAAiC,IAAlC,CAAhC,CAAA;AACD,KAAA;;AAED,IAAA,OAAOxpF,MAAP,CAAA;GAZF,CAAA;;EAeAmjK,YAAY,CAACn1K,SAAb,CAAuBm3K,eAAvB,GAAyC,UAAUlgF,SAAV,EAAqB/iD,MAArB,EAA6B;AACpE,IAAA,IAAI5mC,QAAQ,CAAC2pF,SAAD,CAAR,IAAuBA,SAA3B,EAAsC;AACpC,MAAA,OAAOmgF,eAAe,CAACngF,SAAD,EAAY/iD,MAAZ,CAAtB,CAAA;AACD,KAAA;;AAED,IAAA,IAAInjC,UAAU,CAACkmF,SAAD,CAAd,EAA2B;MACzB,OAAOA,SAAS,CAAC/iD,MAAD,CAAhB,CAAA;AACD,KAAA;;IAED,OAAOA,MAAM,CAAC6xC,OAAd,CAAA;GATF,CAAA;;AAYAovF,EAAAA,YAAY,CAACn1K,SAAb,CAAuBq3K,wBAAvB,GAAkD,UAAU16H,MAAV,EAAkB/hB,KAAlB,EAAyB4gE,MAAzB,EAAiC13E,QAAjC,EAA2C6B,MAA3C,EAAmD;AACnG,IAAA,IAAIllB,CAAC,GAAGm6B,KAAK,CAAC,CAAD,CAAb,CAAA;AACA,IAAA,IAAIl6B,CAAC,GAAGk6B,KAAK,CAAC,CAAD,CAAb,CAAA;AACA,IAAA,IAAI08I,MAAM,GAAG,CAAC,QAAD,EAAW,QAAX,CAAb,CAAA;;IAEA,IAAIxzJ,QAAQ,KAAK,QAAjB,EAA2B;AACzBpjB,MAAAA,CAAC,IAAIilB,MAAL,CAAA;AACA2xJ,MAAAA,MAAM,GAAG,CAAC,QAAD,EAAW,KAAX,CAAT,CAAA;AACD,KAHD,MAGO,IAAIxzJ,QAAQ,KAAK,MAAjB,EAAyB;AAC9BrjB,MAAAA,CAAC,IAAIklB,MAAL,CAAA;AACD,KAFM,MAEA,IAAI7B,QAAQ,KAAK,OAAjB,EAA0B;AAC/BrjB,MAAAA,CAAC,IAAIklB,MAAL,CAAA;AACA2xJ,MAAAA,MAAM,GAAG,CAAC,QAAD,EAAW,KAAX,CAAT,CAAA;AACD,KAHM,MAGA;AACL;AACA52K,MAAAA,CAAC,IAAIilB,MAAL,CAAA;AACD,KAAA;;IAED,IAAIuzB,MAAM,GAAG,CAAb,CAAA;;AAEA,IAAA,IAAIp1B,QAAQ,KAAK,MAAb,IAAuBA,QAAQ,KAAK,OAAxC,EAAiD;AAC/Co1B,MAAAA,MAAM,GAAG15C,IAAI,CAACI,EAAL,GAAU,CAAnB,CAAA;AACD,KAAA;;IAED,OAAO;AACL4yB,MAAAA,QAAQ,EAAE0mB,MADL;AAELz4C,MAAAA,CAAC,EAAEA,CAFE;AAGLC,MAAAA,CAAC,EAAEA,CAHE;AAIL4D,MAAAA,KAAK,EAAE;AACL+oC,QAAAA,KAAK,EAAEiqI,MAAM,CAAC,CAAD,CADR;QAELhqI,aAAa,EAAEgqI,MAAM,CAAC,CAAD,CAAA;AAFhB,OAAA;KAJT,CAAA;AASD,GAjCD,CAzJgB;;;AA6LhBnC,EAAAA,YAAY,CAACn1K,SAAb,CAAuB01K,eAAvB,GAAyC,UAAUN,aAAV,EAAyBC,SAAzB,EAAoC75E,MAApC,EAA4CnqE,KAA5C,EAAmD;AAC1F,IAAA,IAAIyjJ,SAAS,GAAGM,aAAa,CAACn9I,QAAd,CAAuB,WAAvB,CAAhB,CAAA;;AAEA,IAAA,IAAI,CAAC68I,SAAS,CAAC38I,GAAV,CAAc,MAAd,CAAL,EAA4B;AAC1B,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIxS,MAAM,GAAGmvJ,SAAS,CAAC38I,GAAV,CAAc,QAAd,CAAb,CAAA;AACA,IAAA,IAAI0sC,GAAG,GAAGiwG,SAAS,CAAC38I,GAAV,CAAc,UAAd,CAAV,CAAA;;IAEA,IAAI,CAAC0sC,GAAL,EAAU;AACRA,MAAAA,GAAG,GAAG22B,MAAM,KAAK,YAAX,GAA0B,KAA1B,GAAkC,MAAxC,CAAA;AACD,KAAA;;AAED,IAAA,IAAIxpF,MAAM,GAAG,CAAC,KAAKikK,SAAL,CAAe,KAAKA,SAAL,CAAejzK,MAAf,GAAwB,CAAvC,CAAD,EAA4C,IAAA,CAAKkzK,SAAL,CAAe,CAAf,CAA5C,CAAb,CAAA;AACA,IAAA,IAAIqB,EAAE,GAAG,CAACvlK,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAAzC,CAAA;AACA,IAAA,IAAIwlK,EAAE,GAAG,CAACxlK,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAhB,IAAgC,CAAzC,CAAA;IACA,IAAI0d,GAAG,GAAG8rE,MAAM,KAAK,YAAX,GAA0B,CAA1B,GAA8B,CAAxC,CAAA;AACA,IAAA,IAAIi8E,SAAS,GAAG;MACdzzJ,GAAG,EAAE,CAACuzJ,EAAD,EAAKvlK,MAAM,CAAC0d,GAAD,CAAN,CAAY,CAAZ,CAAL,CADS;AAEdy/B,MAAAA,MAAM,EAAE,CAACooH,EAAD,EAAKvlK,MAAM,CAAC,CAAI0d,GAAAA,GAAL,CAAN,CAAgB,CAAhB,CAAL,CAFM;AAGd3L,MAAAA,IAAI,EAAE,CAAC/R,MAAM,CAAC,CAAI0d,GAAAA,GAAL,CAAN,CAAgB,CAAhB,CAAD,EAAqB8nJ,EAArB,CAHQ;MAIdtoH,KAAK,EAAE,CAACl9C,MAAM,CAAC0d,GAAD,CAAN,CAAY,CAAZ,CAAD,EAAiB8nJ,EAAjB,CAAA;KAJT,CAAA;AAMA,IAAA,IAAI9wK,IAAI,GAAG2uK,SAAS,CAAC1nJ,KAAV,CAAgBjtB,CAA3B,CAAA;;AAEA,IAAA,IAAI,CAAC20K,SAAS,CAACn4I,GAAV,CAAcx8B,CAAf,GAAmB,CAAC20K,SAAS,CAAC1nJ,KAAV,CAAgBjtB,CAAxC,EAA2C;MACzCgG,IAAI,GAAGA,IAAI,GAAG,GAAP,GAAa2uK,SAAS,CAACn4I,GAAV,CAAcx8B,CAAlC,CAAA;AACD,KAAA;;AAED,IAAA,IAAIu2F,SAAS,GAAG69E,SAAS,CAAC38I,GAAV,CAAc,WAAd,CAAhB,CAAA;AACA,IAAA,IAAI+b,MAAM,GAAG;AACXvmB,MAAAA,KAAK,EAAE0nJ,SAAS,CAAC1nJ,KAAV,CAAgBjtB,CADZ;AAEXw8B,MAAAA,GAAG,EAAEm4I,SAAS,CAACn4I,GAAV,CAAcx8B,CAFR;AAGXqlF,MAAAA,OAAO,EAAEr/E,IAAAA;KAHX,CAAA;;IAMA,IAAIgqG,OAAO,GAAG,IAAKymE,CAAAA,eAAL,CAAqBlgF,SAArB,EAAgC/iD,MAAhC,CAAd,CAAA;;AAEA,IAAA,IAAIwjI,QAAQ,GAAG,IAAI3gJ,MAAJ,CAAiB;AAC9B3B,MAAAA,EAAE,EAAE,EAD0B;AAE9B9wB,MAAAA,KAAK,EAAEghE,eAAe,CAACwvG,SAAD,EAAY;AAChC5tK,QAAAA,IAAI,EAAEwpG,OAAAA;OADc,CAAA;AAFQ,KAAjB,CAAf,CAAA;AAMAgnE,IAAAA,QAAQ,CAACviJ,IAAT,CAAc,KAAKkiJ,wBAAL,CAA8BK,QAA9B,EAAwCD,SAAS,CAAC5yG,GAAD,CAAjD,EAAwD22B,MAAxD,EAAgE32B,GAAhE,EAAqEl/C,MAArE,CAAd,CAAA,CAAA;IACA0L,KAAK,CAACO,GAAN,CAAU8lJ,QAAV,CAAA,CAAA;GA9CF,CAAA;;AAiDAvC,EAAAA,YAAY,CAACn1K,SAAb,CAAuB23K,yBAAvB,GAAmD,UAAU/8I,KAAV,EAAiBg9I,QAAjB,EAA2Bp8E,MAA3B,EAAmC13E,QAAnC,EAA6C6B,MAA7C,EAAqD;IACtG,IAAI0nB,KAAK,GAAG,MAAZ,CAAA;IACA,IAAIwqI,MAAM,GAAG,KAAb,CAAA;AACA,IAAA,IAAIp3K,CAAC,GAAGm6B,KAAK,CAAC,CAAD,CAAb,CAAA;AACA,IAAA,IAAIl6B,CAAC,GAAGk6B,KAAK,CAAC,CAAD,CAAb,CAAA;;IAEA,IAAI4gE,MAAM,KAAK,YAAf,EAA6B;MAC3B96F,CAAC,GAAGA,CAAC,GAAGilB,MAAR,CAAA;;AAEA,MAAA,IAAIiyJ,QAAJ,EAAc;AACZvqI,QAAAA,KAAK,GAAG,QAAR,CAAA;AACD,OAAA;;MAED,IAAIvpB,QAAQ,KAAK,OAAjB,EAA0B;AACxB+zJ,QAAAA,MAAM,GAAG,QAAT,CAAA;AACD,OAAA;AACF,KAVD,MAUO;MACLp3K,CAAC,GAAGA,CAAC,GAAGklB,MAAR,CAAA;;AAEA,MAAA,IAAIiyJ,QAAJ,EAAc;AACZC,QAAAA,MAAM,GAAG,QAAT,CAAA;AACD,OAAA;;MAED,IAAI/zJ,QAAQ,KAAK,OAAjB,EAA0B;AACxBupB,QAAAA,KAAK,GAAG,OAAR,CAAA;AACD,OAAA;AACF,KAAA;;IAED,OAAO;AACL5sC,MAAAA,CAAC,EAAEA,CADE;AAELC,MAAAA,CAAC,EAAEA,CAFE;AAGL2sC,MAAAA,KAAK,EAAEA,KAHF;AAILC,MAAAA,aAAa,EAAEuqI,MAAAA;KAJjB,CAAA;AAMD,GAlCD,CA9OgB;;;AAmRhB1C,EAAAA,YAAY,CAACn1K,SAAb,CAAuB21K,gBAAvB,GAA0C,UAAUP,aAAV,EAAyBE,WAAzB,EAAsC95E,MAAtC,EAA8CnqE,KAA9C,EAAqD;AAC7F,IAAA,IAAIwjJ,UAAU,GAAGO,aAAa,CAACn9I,QAAd,CAAuB,YAAvB,CAAjB,CAAA;;AAEA,IAAA,IAAI,CAAC48I,UAAU,CAAC18I,GAAX,CAAe,MAAf,CAAL,EAA6B;AAC3B,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI4tD,OAAO,GAAG8uF,UAAU,CAAC18I,GAAX,CAAe,SAAf,CAAd,CAAA;AACA,IAAA,IAAIxS,MAAM,GAAGkvJ,UAAU,CAAC18I,GAAX,CAAe,QAAf,CAAb,CAAA;AACA,IAAA,IAAI0sC,GAAG,GAAGgwG,UAAU,CAAC18I,GAAX,CAAe,UAAf,CAAV,CAAA;AACA,IAAA,IAAIkV,KAAK,GAAGwnI,UAAU,CAAC18I,GAAX,CAAe,OAAf,CAAZ,CAAA;IACA,IAAI2/I,UAAU,GAAG,CAAC,IAAA,CAAK7B,SAAN,EAAiB,IAAA,CAAKC,SAAtB,CAAjB,CAAA;;AAEA,IAAA,IAAI,CAACnwF,OAAD,IAAYz4E,QAAQ,CAACy4E,OAAD,CAAxB,EAAmC;AACjC,MAAA,IAAIA,OAAJ,EAAa;AACX;AACAuvF,QAAAA,WAAW,GAAGC,cAAc,CAACxvF,OAAD,CAAd,IAA2BuvF,WAAzC,CAAA;AACD,OAJgC;AAKjC;;;MAGAvvF,OAAO,GAAGuvF,WAAW,CAACn9I,GAAZ,CAAgB,CAAC,MAAD,EAAS,WAAT,CAAhB,CAAA,IAA0C,EAApD,CAAA;AACD,KAAA;;IAED,IAAIzI,GAAG,GAAGm1C,GAAG,KAAK,OAAR,GAAkB,CAAlB,GAAsB,CAAhC,CAAA;IACA,IAAIl7B,IAAI,GAAG6xD,MAAM,KAAK,YAAX,GAA0B,CAA1B,GAA8B,CAAzC,CAAA;IACA71E,MAAM,GAAGk/C,GAAG,KAAK,OAAR,GAAkB,CAACl/C,MAAnB,GAA4BA,MAArC,CAAA;AACA,IAAA,IAAIiyJ,QAAQ,GAAGvqI,KAAK,KAAK,QAAzB,CAAA;;AAEA,IAAA,KAAK,IAAI3pC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGo0K,UAAU,CAACpoJ,GAAD,CAAV,CAAgB1sB,MAAhB,GAAyB,CAA7C,EAAgDU,CAAC,EAAjD,EAAqD;MACnD,IAAIo8C,GAAG,GAAGg4H,UAAU,CAACpoJ,GAAD,CAAV,CAAgBhsB,CAAhB,CAAmBqlB,CAAAA,KAAnB,EAAV,CAAA;AACA,MAAA,IAAI6rJ,QAAQ,GAAG,IAAA,CAAKuB,gBAAL,CAAsBzyK,CAAtB,CAAf,CAAA;;AAEA,MAAA,IAAIk0K,QAAJ,EAAc;AACZ,QAAA,IAAIG,cAAc,GAAG,IAAA,CAAK3B,eAAL,CAAqB1yK,CAArB,CAArB,CAAA;QACAo8C,GAAG,CAACnW,IAAD,CAAH,GAAY,CAACouI,cAAc,CAACpuI,IAAD,CAAd,GAAuBmuI,UAAU,CAAC,CAAD,CAAV,CAAcp0K,CAAC,GAAG,CAAlB,CAAqBimC,CAAAA,IAArB,CAAxB,IAAsD,CAAlE,CAAA;AACD,OAAA;;AAED,MAAA,IAAIstD,SAAS,GAAG49E,UAAU,CAAC18I,GAAX,CAAe,WAAf,CAAhB,CAAA;MACA,IAAIg4D,MAAM,GAAGpK,OAAO,CAAC,CAAC6uF,QAAQ,CAACnjK,CAAV,GAAc,CAAf,CAApB,CAAA;AACA,MAAA,IAAIyiC,MAAM,GAAG;QACX8jI,IAAI,EAAEpD,QAAQ,CAACl0K,CADJ;QAEXu3K,EAAE,EAAE,CAACrD,QAAQ,CAACl0K,CAAT,GAAa,EAAd,EAAkBqoB,KAAlB,CAAwB,CAAxB,CAFO;QAGXmvJ,EAAE,EAAEtD,QAAQ,CAACnjK,CAHF;AAIXqzB,QAAAA,CAAC,EAAE,CAAC8vI,QAAQ,CAACnjK,CAJF;AAKXs0E,QAAAA,OAAO,EAAEoK,MAAAA;OALX,CAAA;;MAQA,IAAIugB,OAAO,GAAG,IAAKymE,CAAAA,eAAL,CAAqBlgF,SAArB,EAAgC/iD,MAAhC,CAAd,CAAA;;AAEA,MAAA,IAAIikI,SAAS,GAAG,IAAIphJ,MAAJ,CAAiB;AAC/B3B,QAAAA,EAAE,EAAE,EAD2B;AAE/B9wB,QAAAA,KAAK,EAAEiH,MAAM,CAAC+5D,eAAe,CAACuvG,UAAD,EAAa;AACxC3tK,UAAAA,IAAI,EAAEwpG,OAAAA;AADkC,SAAb,CAAhB,EAET,IAAKinE,CAAAA,yBAAL,CAA+B73H,GAA/B,EAAoC83H,QAApC,EAA8Cp8E,MAA9C,EAAsD32B,GAAtD,EAA2Dl/C,MAA3D,CAFS,CAAA;AAFkB,OAAjB,CAAhB,CAAA;MAMA0L,KAAK,CAACO,GAAN,CAAUumJ,SAAV,CAAA,CAAA;AACD,KAAA;GAzDH,CAAA;;AA4DAhD,EAAAA,YAAY,CAACn1K,SAAb,CAAuBo4K,wBAAvB,GAAkD,UAAUx9I,KAAV,EAAiB4gE,MAAjB,EAAyB13E,QAAzB,EAAmC6B,MAAnC,EAA2C+uJ,QAA3C,EAAqD;IACrG,IAAIrnI,KAAK,GAAG,QAAZ,CAAA;IACA,IAAIwqI,MAAM,GAAG,QAAb,CAAA;AACA,IAAA,IAAIp3K,CAAC,GAAGm6B,KAAK,CAAC,CAAD,CAAb,CAAA;AACA,IAAA,IAAIl6B,CAAC,GAAGk6B,KAAK,CAAC,CAAD,CAAb,CAAA;AACA,IAAA,IAAIy9I,OAAO,GAAGv0J,QAAQ,KAAK,OAA3B,CAAA;;IAEA,IAAI03E,MAAM,KAAK,YAAf,EAA6B;AAC3B/6F,MAAAA,CAAC,GAAGA,CAAC,GAAGklB,MAAJ,GAAa,CAAC0yJ,OAAO,GAAG,CAAH,GAAO,CAAC,CAAhB,IAAqB3D,QAAQ,CAAC,CAAD,CAA7B,GAAmC,CAApD,CAAA;AACArnI,MAAAA,KAAK,GAAGgrI,OAAO,GAAG,OAAH,GAAa,MAA5B,CAAA;AACD,KAHD,MAGO;AACL33K,MAAAA,CAAC,GAAGA,CAAC,GAAGilB,MAAJ,GAAa,CAAC0yJ,OAAO,GAAG,CAAH,GAAO,CAAC,CAAhB,IAAqB3D,QAAQ,CAAC,CAAD,CAA7B,GAAmC,CAApD,CAAA;AACAmD,MAAAA,MAAM,GAAGQ,OAAO,GAAG,QAAH,GAAc,KAA9B,CAAA;AACD,KAAA;;IAED,OAAO;AACL53K,MAAAA,CAAC,EAAEA,CADE;AAELC,MAAAA,CAAC,EAAEA,CAFE;AAGL2sC,MAAAA,KAAK,EAAEA,KAHF;AAILC,MAAAA,aAAa,EAAEuqI,MAAAA;KAJjB,CAAA;AAMD,GArBD,CA/UgB;;;AAuWhB1C,EAAAA,YAAY,CAACn1K,SAAb,CAAuB41K,eAAvB,GAAyC,UAAUR,aAAV,EAAyBE,WAAzB,EAAsCD,SAAtC,EAAiD75E,MAAjD,EAAyDnqE,KAAzD,EAAgE;AACvG,IAAA,IAAIsjJ,QAAQ,GAAGS,aAAa,CAACn9I,QAAd,CAAuB,UAAvB,CAAf,CAAA;;AAEA,IAAA,IAAI,CAAC08I,QAAQ,CAACx8I,GAAT,CAAa,MAAb,CAAL,EAA2B;AACzB,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIrH,QAAQ,GAAGskJ,aAAa,CAACrkJ,gBAA7B,CAAA;AACA,IAAA,IAAI8zC,GAAG,GAAG8vG,QAAQ,CAACx8I,GAAT,CAAa,UAAb,CAAV,CAAA;AACA,IAAA,IAAI4tD,OAAO,GAAG4uF,QAAQ,CAACx8I,GAAT,CAAa,SAAb,CAAd,CAAA;AACA,IAAA,IAAIxS,MAAM,GAAGgvJ,QAAQ,CAACx8I,GAAT,CAAa,QAAb,CAAb,CAAA;AACA,IAAA,IAAImgJ,cAAc,GAAGxnJ,QAAQ,CAACynJ,iBAAT,EAArB,CAAA;;AAEA,IAAA,IAAI,CAACxyF,OAAD,IAAYz4E,QAAQ,CAACy4E,OAAD,CAAxB,EAAmC;AACjC,MAAA,IAAIA,OAAJ,EAAa;AACX;AACAuvF,QAAAA,WAAW,GAAGC,cAAc,CAACxvF,OAAD,CAAd,IAA2BuvF,WAAzC,CAAA;AACD,OAJgC;;;MAOjC,IAAIkD,cAAc,GAAGlD,WAAW,CAACn9I,GAAZ,CAAgB,CAAC,MAAD,EAAS,gBAAT,CAAhB,CAArB,CAAA;AACA4tD,MAAAA,OAAO,GAAGyyF,cAAc,IAAI5zK,GAAG,CAAC0wK,WAAW,CAACn9I,GAAZ,CAAgB,CAAC,MAAD,EAAS,eAAT,CAAhB,CAAD,EAA6C,UAAUv0B,GAAV,EAAe;QACzF,OAAOA,GAAG,CAAC,CAAD,CAAV,CAAA;AACD,OAF8B,CAA/B,CAAA;AAGD,KAAA;;AAED,IAAA,IAAI+pB,KAAK,GAAGmD,QAAQ,CAACilJ,WAAT,CAAqBV,SAAS,CAACn4I,GAAV,CAAc3tB,IAAnC,EAAyC,CAAA,GAAI8lK,SAAS,CAACoD,KAAvD,EAA8DlpK,IAA1E,CAAA;AACA,IAAA,IAAImlK,QAAQ,GAAG,CAAC5jJ,QAAQ,CAAC0gI,YAAT,EAAD,EAA0B1gI,QAAQ,CAAC4gI,aAAT,EAA1B,CAAf,CAAA;AACA/rI,IAAAA,MAAM,GAAG4+B,YAAY,CAAC5+B,MAAD,EAASnmB,IAAI,CAAC8iC,GAAL,CAASoyI,QAAQ,CAAC,CAAD,CAAjB,EAAsBA,QAAQ,CAAC,CAAD,CAA9B,CAAT,CAArB,CAAA;;IAEA,IAAI7vG,GAAG,KAAK,OAAZ,EAAqB;AACnBl3C,MAAAA,KAAK,GAAGmD,QAAQ,CAACilJ,WAAT,CAAqBV,SAAS,CAAC1nJ,KAAV,CAAgBpe,IAArC,EAA2C,EAAE,CAAI8lK,GAAAA,SAAS,CAACqD,KAAhB,CAA3C,EAAmEnpK,IAA3E,CAAA;MACAoW,MAAM,GAAG,CAACA,MAAV,CAAA;AACD,KAAA;;IAED,KAAK,IAAIjiB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAApB,EAAuBA,CAAC,EAAxB,EAA4B;MAC1B,IAAIuzK,IAAI,GAAGnmJ,QAAQ,CAACilJ,WAAT,CAAqBpoJ,KAArB,EAA4BjqB,CAA5B,CAAX,CAAA;AACA,MAAA,IAAIk3B,KAAK,GAAG9J,QAAQ,CAACwyH,UAAT,CAAoB,CAAC2zB,IAAI,CAAC1nK,IAAN,CAApB,EAAiC,KAAjC,EAAwC80C,MAApD,CAAA;MACA,IAAI6yH,GAAG,GAAGxzK,CAAV,CAAA;MACAwzK,GAAG,GAAG13K,IAAI,CAACyC,GAAL,CAAS,CAACyB,CAAC,GAAG40K,cAAL,IAAuB,CAAhC,CAAN,CAAA;AACA,MAAA,IAAIK,QAAQ,GAAG,IAAI5hJ,MAAJ,CAAiB;AAC9B3B,QAAAA,EAAE,EAAE,EAD0B;AAE9B9wB,QAAAA,KAAK,EAAEiH,MAAM,CAAC+5D,eAAe,CAACqvG,QAAD,EAAW;UACtCztK,IAAI,EAAE6+E,OAAO,CAACmxF,GAAD,CAAA;AADyB,SAAX,CAAhB,EAET,IAAKkB,CAAAA,wBAAL,CAA8Bx9I,KAA9B,EAAqC4gE,MAArC,EAA6C32B,GAA7C,EAAkDl/C,MAAlD,EAA0D+uJ,QAA1D,CAFS,CAAA;AAFiB,OAAjB,CAAf,CAAA;MAMArjJ,KAAK,CAACO,GAAN,CAAU+mJ,QAAV,CAAA,CAAA;AACD,KAAA;GA/CH,CAAA;;EAkDAxD,YAAY,CAACpiK,IAAb,GAAoB,UAApB,CAAA;AACA,EAAA,OAAOoiK,YAAP,CAAA;AACD,CA3ZD,CA2ZEhoG,aA3ZF,CAFA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,IAAIyrG,iBAAiB,GAAG,QAAxB,CAAA;;AAEA,IAAIC,QAAQ;AACZ;AACA,YAAY;AACV,EAAA,SAASA,QAAT,CAAkBzD,aAAlB,EAAiCrnI,OAAjC,EAA0CxxB,GAA1C,EAA+C;IAC7C,IAAKxJ,CAAAA,IAAL,GAAY,UAAZ,CAAA;AACA,IAAA,IAAA,CAAKurB,UAAL,GAAkBu6I,QAAQ,CAACv6I,UAA3B,CAF6C;;AAI7C,IAAA,IAAA,CAAKw6I,iBAAL,GAAyBD,QAAQ,CAACC,iBAAlC,CAAA;IACA,IAAKn/H,CAAAA,MAAL,GAAcy7H,aAAd,CAAA;AACD,GAAA;;EAEDyD,QAAQ,CAACC,iBAAT,GAA6B,YAAY;AACvC,IAAA,OAAO,CAAC;AACNpyK,MAAAA,IAAI,EAAE,MADA;AAENqM,MAAAA,IAAI,EAAE,MAAA;KAFD,EAGJ,OAHI,CAAP,CAAA;GADF,CAAA;;AAOA8lK,EAAAA,QAAQ,CAAC74K,SAAT,CAAmBsxJ,YAAnB,GAAkC,YAAY;AAC5C,IAAA,OAAO,KAAKynB,UAAZ,CAAA;GADF,CAAA;;AAIAF,EAAAA,QAAQ,CAAC74K,SAAT,CAAmBi4B,QAAnB,GAA8B,YAAY;AACxC,IAAA,OAAO,KAAK0hB,MAAZ,CAAA;GADF,CAAA;;AAIAk/H,EAAAA,QAAQ,CAAC74K,SAAT,CAAmBg7D,OAAnB,GAA6B,YAAY;AACvC,IAAA,OAAO,KAAK5J,KAAZ,CAAA;GADF,CAAA;;AAIAynH,EAAAA,QAAQ,CAAC74K,SAAT,CAAmBwxJ,YAAnB,GAAkC,YAAY;AAC5C,IAAA,OAAO,KAAKwnB,GAAZ,CAAA;GADF,CAAA;;AAIAH,EAAAA,QAAQ,CAAC74K,SAAT,CAAmB0xJ,aAAnB,GAAmC,YAAY;AAC7C,IAAA,OAAO,KAAKunB,GAAZ,CAAA;GADF,CAAA;;AAIAJ,EAAAA,QAAQ,CAAC74K,SAAT,CAAmBg/F,SAAnB,GAA+B,YAAY;AACzC,IAAA,OAAO,KAAKk6E,OAAZ,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGEL,EAAAA,QAAQ,CAAC74K,SAAT,CAAmBu4K,iBAAnB,GAAuC,YAAY;AACjD,IAAA,OAAO,KAAKY,eAAZ,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;;;AAGEN,EAAAA,QAAQ,CAAC74K,SAAT,CAAmBu2K,WAAnB,GAAiC,UAAUC,IAAV,EAAgB;AAC/CA,IAAAA,IAAI,GAAG9gG,SAAA,CAAqB8gG,IAArB,CAAP,CAAA;AACA,IAAA,IAAI91K,CAAC,GAAG81K,IAAI,CAAC4C,WAAL,EAAR,CAAA;AACA,IAAA,IAAI3nK,CAAC,GAAG+kK,IAAI,CAACE,QAAL,KAAkB,CAA1B,CAAA;IACA,IAAI2C,IAAI,GAAG5nK,CAAC,GAAG,EAAJ,GAAS,GAAMA,GAAAA,CAAf,GAAmB,EAAA,GAAKA,CAAnC,CAAA;AACA,IAAA,IAAIpO,CAAC,GAAGmzK,IAAI,CAAC8C,OAAL,EAAR,CAAA;IACA,IAAIC,IAAI,GAAGl2K,CAAC,GAAG,EAAJ,GAAS,GAAMA,GAAAA,CAAf,GAAmB,EAAA,GAAKA,CAAnC,CAAA;AACA,IAAA,IAAI6zK,GAAG,GAAGV,IAAI,CAACgD,MAAL,EAAV,CAAA;AACAtC,IAAAA,GAAG,GAAG13K,IAAI,CAACyC,GAAL,CAAS,CAACi1K,GAAG,GAAG,CAAN,GAAU,IAAKqB,CAAAA,iBAAL,EAAX,IAAuC,CAAhD,CAAN,CAAA;IACA,OAAO;MACL73K,CAAC,EAAEA,CAAC,GAAG,EADF;AAEL+Q,MAAAA,CAAC,EAAE4nK,IAFE;AAGLh2K,MAAAA,CAAC,EAAEk2K,IAHE;AAILrC,MAAAA,GAAG,EAAEA,GAJA;AAKL3nK,MAAAA,IAAI,EAAEinK,IAAI,CAACiD,OAAL,EALD;MAMLnD,YAAY,EAAE51K,CAAC,GAAG,GAAJ,GAAU24K,IAAV,GAAiB,GAAjB,GAAuBE,IANhC;AAOL/C,MAAAA,IAAI,EAAEA,IAAAA;KAPR,CAAA;GATF,CAAA;;EAoBAqC,QAAQ,CAAC74K,SAAT,CAAmB+1K,WAAnB,GAAiC,UAAUS,IAAV,EAAgBp9E,CAAhB,EAAmB;IAClDA,CAAC,GAAGA,CAAC,IAAI,CAAT,CAAA;;IAEA,IAAIA,CAAC,KAAK,CAAV,EAAa;AACX,MAAA,OAAO,IAAKm9E,CAAAA,WAAL,CAAiBC,IAAjB,CAAP,CAAA;AACD,KAAA;;IAEDA,IAAI,GAAG,IAAI3oJ,IAAJ,CAAS,IAAA,CAAK0oJ,WAAL,CAAiBC,IAAjB,CAAuBjnK,CAAAA,IAAhC,CAAP,CAAA;AACAinK,IAAAA,IAAI,CAACkD,OAAL,CAAalD,IAAI,CAAC8C,OAAL,KAAiBlgF,CAA9B,CAAA,CAAA;AACA,IAAA,OAAO,IAAKm9E,CAAAA,WAAL,CAAiBC,IAAjB,CAAP,CAAA;GATF,CAAA;;EAYAqC,QAAQ,CAAC74K,SAAT,CAAmBi8B,MAAnB,GAA4B,UAAU8R,OAAV,EAAmBxxB,GAAnB,EAAwB;AAClD,IAAA,IAAA,CAAK48J,eAAL,GAAuB,CAAC,IAAA,CAAKx/H,MAAL,CAAY1hB,QAAZ,CAAqB,UAArB,CAAA,CAAiCE,GAAjC,CAAqC,UAArC,CAAxB,CAAA;IACA,IAAK+gJ,CAAAA,OAAL,GAAe,IAAKv/H,CAAAA,MAAL,CAAYxhB,GAAZ,CAAgB,QAAhB,CAAf,CAAA;AACA,IAAA,IAAA,CAAKwhJ,UAAL,GAAkB,IAAKhgI,CAAAA,MAAL,CAAY1hB,QAAZ,CAAqB,WAArB,CAAkCC,CAAAA,YAAlC,EAAiDtyB,CAAAA,SAAjD,IAA8D,CAAhF,CAAA;IACA,IAAKmzK,CAAAA,UAAL,GAAkB,IAAKa,CAAAA,aAAL,CAAmB,IAAKC,CAAAA,gBAAL,EAAnB,CAAlB,CAAA;AACA,IAAA,IAAIloB,KAAK,GAAG,IAAA,CAAKonB,UAAL,CAAgBpnB,KAAhB,IAAyB,CAArC,CAAA;AACA,IAAA,IAAImoB,OAAO,GAAG,CAAC,OAAD,EAAU,QAAV,CAAd,CAAA;;IAEA,IAAIpF,QAAQ,GAAG,IAAK/6H,CAAAA,MAAL,CAAY86H,WAAZ,EAAA,CAA0B1rJ,KAA1B,EAAf,CAAA;;AAEA,IAAA,IAAIgxJ,YAAY,GAAG,IAAA,CAAKpgI,MAAL,CAAYuK,kBAAZ,EAAnB,CAAA;;AAEA,IAAA,IAAI81H,WAAW,GAAG,IAAA,CAAKd,OAAL,KAAiB,YAAjB,GAAgC,CAACvnB,KAAD,EAAQ,CAAR,CAAhC,GAA6C,CAAC,CAAD,EAAIA,KAAJ,CAA/D,CAAA;IACAjqH,MAAA,CAAY,CAAC,CAAD,EAAI,CAAJ,CAAZ,EAAoB,UAAUhY,GAAV,EAAe;AACjC,MAAA,IAAIuqJ,iBAAiB,CAACvF,QAAD,EAAWhlJ,GAAX,CAArB,EAAsC;AACpCqqJ,QAAAA,YAAY,CAACD,OAAO,CAACpqJ,GAAD,CAAR,CAAZ,GAA6BglJ,QAAQ,CAAChlJ,GAAD,CAAR,GAAgBsqJ,WAAW,CAACtqJ,GAAD,CAAxD,CAAA;AACD,OAAA;KAHH,CAAA,CAAA;AAKA,IAAA,IAAIwqJ,QAAQ,GAAG;AACbzwK,MAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADM;MAEbhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;KAFV,CAAA;AAIA,IAAA,IAAIw3J,YAAY,GAAG,IAAK/oH,CAAAA,KAAL,GAAaxV,aAAA,CAAqBm+H,YAArB,EAAmCG,QAAnC,CAAhC,CAAA;IACAxyI,MAAA,CAAY,CAAC,CAAD,EAAI,CAAJ,CAAZ,EAAoB,UAAUhY,GAAV,EAAe;AACjC,MAAA,IAAI,CAACuqJ,iBAAiB,CAACvF,QAAD,EAAWhlJ,GAAX,CAAtB,EAAuC;AACrCglJ,QAAAA,QAAQ,CAAChlJ,GAAD,CAAR,GAAgByqJ,YAAY,CAACL,OAAO,CAACpqJ,GAAD,CAAR,CAAZ,GAA6BsqJ,WAAW,CAACtqJ,GAAD,CAAxD,CAAA;AACD,OAAA;KAHH,CAAA,CAAA;;AAMA,IAAA,SAASuqJ,iBAAT,CAA2BvF,QAA3B,EAAqChlJ,GAArC,EAA0C;AACxC,MAAA,OAAOglJ,QAAQ,CAAChlJ,GAAD,CAAR,IAAiB,IAAjB,IAAyBglJ,QAAQ,CAAChlJ,GAAD,CAAR,KAAkB,MAAlD,CAAA;AACD,KA/BiD;;;AAkClD,IAAA,IAAA,CAAKspJ,GAAL,GAAWtE,QAAQ,CAAC,CAAD,CAAnB,CAAA;AACA,IAAA,IAAA,CAAKuE,GAAL,GAAWvE,QAAQ,CAAC,CAAD,CAAnB,CAAA;GAnCF,CAAA;AAqCA;AACF;AACA;AACE;AACA;;;EAGAmE,QAAQ,CAAC74K,SAAT,CAAmBq/B,WAAnB,GAAiC,UAAUnL,IAAV,EAAgBklC,KAAhB,EAAuB;IACtD1xB,SAAA,CAAexT,IAAf,CAAA,KAAyBA,IAAI,GAAGA,IAAI,CAAC,CAAD,CAApC,CAAA,CAAA;AACAklC,IAAAA,KAAK,IAAI,IAAT,KAAkBA,KAAK,GAAG,IAA1B,CAAA,CAAA;AACA,IAAA,IAAIghH,OAAO,GAAG,IAAA,CAAK7D,WAAL,CAAiBriJ,IAAjB,CAAd,CAAA;IACA,IAAI+X,KAAK,GAAG,IAAA,CAAK8sI,UAAjB,CAAA;AACA,IAAA,IAAIvC,IAAI,GAAG4D,OAAO,CAAC9D,YAAnB,CALsD;;IAOtD,IAAIl9G,KAAK,IAAI,EAAEghH,OAAO,CAAC7qK,IAAR,IAAgB08B,KAAK,CAACte,KAAN,CAAYpe,IAA5B,IAAoC6qK,OAAO,CAAC7qK,IAAR,GAAe08B,KAAK,CAAC/O,GAAN,CAAU3tB,IAAV,GAAiBqpK,iBAAtE,CAAb,EAAuG;AACrG,MAAA,OAAO,CAACz5I,GAAD,EAAMA,GAAN,CAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAIk7I,IAAI,GAAGD,OAAO,CAAClD,GAAnB,CAAA;;AAEA,IAAA,IAAIoD,OAAO,GAAG,IAAKV,CAAAA,aAAL,CAAmB,CAAC3tI,KAAK,CAACte,KAAN,CAAYpe,IAAb,EAAmBinK,IAAnB,CAAnB,EAA6C8D,OAA3D,CAAA;;AAEA,IAAA,IAAI,IAAKpB,CAAAA,OAAL,KAAiB,UAArB,EAAiC;AAC/B,MAAA,OAAO,CAAC,IAAA,CAAK9nH,KAAL,CAAW3wD,CAAX,GAAe45K,IAAI,GAAG,IAAKrB,CAAAA,GAA3B,GAAiC,IAAA,CAAKA,GAAL,GAAW,CAA7C,EAAgD,IAAA,CAAK5nH,KAAL,CAAW1wD,CAAX,GAAe45K,OAAO,GAAG,IAAKrB,CAAAA,GAA9B,GAAoC,IAAA,CAAKA,GAAL,GAAW,CAA/F,CAAP,CAAA;AACD,KAAA;;AAED,IAAA,OAAO,CAAC,IAAA,CAAK7nH,KAAL,CAAW3wD,CAAX,GAAe65K,OAAO,GAAG,IAAKtB,CAAAA,GAA9B,GAAoC,IAAA,CAAKA,GAAL,GAAW,CAAhD,EAAmD,IAAA,CAAK5nH,KAAL,CAAW1wD,CAAX,GAAe25K,IAAI,GAAG,IAAKpB,CAAAA,GAA3B,GAAiC,IAAA,CAAKA,GAAL,GAAW,CAA/F,CAAP,CAAA;GAnBF,CAAA;AAqBA;AACF;AACA;;;AAGEJ,EAAAA,QAAQ,CAAC74K,SAAT,CAAmB85D,WAAnB,GAAiC,UAAUl/B,KAAV,EAAiB;AAChD,IAAA,IAAI47I,IAAI,GAAG,IAAA,CAAK+D,WAAL,CAAiB3/I,KAAjB,CAAX,CAAA;AACA,IAAA,OAAO47I,IAAI,IAAIA,IAAI,CAACjnK,IAApB,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;EAGEspK,QAAQ,CAAC74K,SAAT,CAAmBsjJ,UAAnB,GAAgC,UAAUpvH,IAAV,EAAgBklC,KAAhB,EAAuB;IACrD,IAAIx+B,KAAK,GAAG,IAAKyE,CAAAA,WAAL,CAAiBnL,IAAjB,EAAuBklC,KAAvB,CAAZ,CAAA;IACA,OAAO;AACLmqF,MAAAA,YAAY,EAAE;AACZ9iJ,QAAAA,CAAC,EAAEm6B,KAAK,CAAC,CAAD,CAAL,GAAW,CAAC,IAAA,CAAKo+I,GAAL,GAAW,IAAKW,CAAAA,UAAjB,IAA+B,CADjC;AAEZj5K,QAAAA,CAAC,EAAEk6B,KAAK,CAAC,CAAD,CAAL,GAAW,CAAC,IAAA,CAAKq+I,GAAL,GAAW,IAAKU,CAAAA,UAAjB,IAA+B,CAFjC;AAGZlwK,QAAAA,KAAK,EAAE,IAAA,CAAKuvK,GAAL,GAAW,KAAKW,UAHX;AAIZjwK,QAAAA,MAAM,EAAE,IAAA,CAAKuvK,GAAL,GAAW,IAAKU,CAAAA,UAAAA;OALrB;AAOLt1H,MAAAA,MAAM,EAAEzpB,KAPH;MAQLo7I,EAAE,EAAE,CAACp7I,KAAK,CAAC,CAAD,CAAL,GAAW,KAAKo+I,GAAL,GAAW,CAAvB,EAA0Bp+I,KAAK,CAAC,CAAD,CAAL,GAAW,IAAKq+I,CAAAA,GAAL,GAAW,CAAhD,CARC;MASLuB,EAAE,EAAE,CAAC5/I,KAAK,CAAC,CAAD,CAAL,GAAW,KAAKo+I,GAAL,GAAW,CAAvB,EAA0Bp+I,KAAK,CAAC,CAAD,CAAL,GAAW,IAAKq+I,CAAAA,GAAL,GAAW,CAAhD,CATC;MAULwB,EAAE,EAAE,CAAC7/I,KAAK,CAAC,CAAD,CAAL,GAAW,KAAKo+I,GAAL,GAAW,CAAvB,EAA0Bp+I,KAAK,CAAC,CAAD,CAAL,GAAW,IAAKq+I,CAAAA,GAAL,GAAW,CAAhD,CAVC;MAWLyB,EAAE,EAAE,CAAC9/I,KAAK,CAAC,CAAD,CAAL,GAAW,KAAKo+I,GAAL,GAAW,CAAvB,EAA0Bp+I,KAAK,CAAC,CAAD,CAAL,GAAW,IAAKq+I,CAAAA,GAAL,GAAW,CAAhD,CAAA;KAXN,CAAA;GAFF,CAAA;AAgBA;AACF;AACA;AACA;AACA;AACA;;;AAGEJ,EAAAA,QAAQ,CAAC74K,SAAT,CAAmBu6K,WAAnB,GAAiC,UAAU3/I,KAAV,EAAiB;IAChD,IAAI+/I,IAAI,GAAGn7K,IAAI,CAACumC,KAAL,CAAW,CAACnL,KAAK,CAAC,CAAD,CAAL,GAAW,IAAA,CAAKw2B,KAAL,CAAW3wD,CAAvB,IAA4B,IAAKu4K,CAAAA,GAA5C,IAAmD,CAA9D,CAAA;IACA,IAAI4B,IAAI,GAAGp7K,IAAI,CAACumC,KAAL,CAAW,CAACnL,KAAK,CAAC,CAAD,CAAL,GAAW,IAAA,CAAKw2B,KAAL,CAAW1wD,CAAvB,IAA4B,IAAKu4K,CAAAA,GAA5C,IAAmD,CAA9D,CAAA;AACA,IAAA,IAAIhtI,KAAK,GAAG,IAAK8sI,CAAAA,UAAL,CAAgB9sI,KAA5B,CAAA;;AAEA,IAAA,IAAI,IAAKitI,CAAAA,OAAL,KAAiB,UAArB,EAAiC;MAC/B,OAAO,IAAA,CAAK2B,qBAAL,CAA2BD,IAA3B,EAAiCD,IAAI,GAAG,CAAxC,EAA2C1uI,KAA3C,CAAP,CAAA;AACD,KAAA;;IAED,OAAO,IAAA,CAAK4uI,qBAAL,CAA2BF,IAA3B,EAAiCC,IAAI,GAAG,CAAxC,EAA2C3uI,KAA3C,CAAP,CAAA;GATF,CAAA;;EAYA4sI,QAAQ,CAAC74K,SAAT,CAAmBigE,cAAnB,GAAoC,UAAUlyB,OAAV,EAAmBmyB,MAAnB,EAA2BhhC,KAA3B,EAAkC;AACpE,IAAA,IAAIpO,QAAQ,GAAGqjE,WAAW,CAACj0B,MAAD,CAA1B,CAAA;IACA,OAAOpvC,QAAQ,KAAK,IAAb,GAAoBA,QAAQ,CAACuO,WAAT,CAAqBH,KAArB,CAApB,GAAkD,IAAzD,CAAA;GAFF,CAAA;;EAKA25I,QAAQ,CAAC74K,SAAT,CAAmBogE,gBAAnB,GAAsC,UAAUryB,OAAV,EAAmBmyB,MAAnB,EAA2B2V,KAA3B,EAAkC;AACtE,IAAA,IAAI/kD,QAAQ,GAAGqjE,WAAW,CAACj0B,MAAD,CAA1B,CAAA;IACA,OAAOpvC,QAAQ,KAAK,IAAb,GAAoBA,QAAQ,CAACgpC,WAAT,CAAqB+b,KAArB,CAApB,GAAkD,IAAzD,CAAA;GAFF,CAAA;;AAKAgjG,EAAAA,QAAQ,CAAC74K,SAAT,CAAmB2sD,YAAnB,GAAkC,UAAU/xB,KAAV,EAAiB;IACjDjf,OAAO,CAAC2tB,IAAR,CAAa,kBAAb,CAAA,CAAA;AACA,IAAA,OAAO,KAAP,CAAA;GAFF,CAAA;AAIA;AACF;AACA;AACA;;;AAGEuvI,EAAAA,QAAQ,CAAC74K,SAAT,CAAmB65K,gBAAnB,GAAsC,YAAY;IAChD,IAAI5tI,KAAK,GAAG,IAAK0N,CAAAA,MAAL,CAAYxhB,GAAZ,CAAgB,OAAhB,CAAZ,CAAA;;IAEA,IAAI2iJ,eAAJ,CAHgD;;IAKhD,IAAIpzI,SAAA,CAAeuE,KAAf,CAAyBA,IAAAA,KAAK,CAACjpC,MAAN,KAAiB,CAA9C,EAAiD;AAC/CipC,MAAAA,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAb,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAACvE,SAAA,CAAeuE,KAAf,CAAL,EAA4B;AAC1B,MAAA,IAAI8uI,QAAQ,GAAG9uI,KAAK,CAAC+uI,QAAN,EAAf,CAD0B;;AAG1B,MAAA,IAAI,SAAUC,CAAAA,IAAV,CAAeF,QAAf,CAAJ,EAA8B;QAC5BD,eAAe,GAAG,CAACC,QAAQ,GAAG,QAAZ,EAAsBA,QAAQ,GAAG,QAAjC,CAAlB,CAAA;AACD,OALyB;;;AAQ1B,MAAA,IAAI,sBAAuBE,CAAAA,IAAvB,CAA4BF,QAA5B,CAAJ,EAA2C;AACzC,QAAA,IAAIptJ,KAAK,GAAG,IAAA,CAAK4oJ,WAAL,CAAiBwE,QAAjB,CAAZ,CAAA;AACA,QAAA,IAAInG,QAAQ,GAAGjnJ,KAAK,CAAC6oJ,IAArB,CAAA;AACA5B,QAAAA,QAAQ,CAAC6B,QAAT,CAAkB7B,QAAQ,CAAC8B,QAAT,KAAsB,CAAxC,CAAA,CAAA;QACA,IAAIx5I,GAAG,GAAG,IAAK64I,CAAAA,WAAL,CAAiBnB,QAAjB,EAA2B,CAAC,CAA5B,CAAV,CAAA;QACAkG,eAAe,GAAG,CAACntJ,KAAK,CAAC2oJ,YAAP,EAAqBp5I,GAAG,CAACo5I,YAAzB,CAAlB,CAAA;AACD,OAdyB;;;AAiB1B,MAAA,IAAI,mCAAoC2E,CAAAA,IAApC,CAAyCF,QAAzC,CAAJ,EAAwD;AACtDD,QAAAA,eAAe,GAAG,CAACC,QAAD,EAAWA,QAAX,CAAlB,CAAA;AACD,OAAA;AACF,KApBD,MAoBO;AACLD,MAAAA,eAAe,GAAG7uI,KAAlB,CAAA;AACD,KAAA;;IAED,IAAI,CAAC6uI,eAAL,EAAsB;AACpB,MAAA,IAAI1jK,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;QACzCowB,QAAA,CAAgB,qBAAhB,CAAA,CAAA;AACD,OAHmB;;;AAMpB,MAAA,OAAOuE,KAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAI6T,GAAG,GAAG,IAAA,CAAK85H,aAAL,CAAmBkB,eAAnB,CAAV,CAAA;;IAEA,IAAIh7H,GAAG,CAACnyB,KAAJ,CAAUpe,IAAV,GAAiBuwC,GAAG,CAAC5iB,GAAJ,CAAQ3tB,IAA7B,EAAmC;AACjCurK,MAAAA,eAAe,CAAC3wI,OAAhB,EAAA,CAAA;AACD,KAAA;;AAED,IAAA,OAAO2wI,eAAP,CAAA;GAhDF,CAAA;AAkDA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGEjC,EAAAA,QAAQ,CAAC74K,SAAT,CAAmB45K,aAAnB,GAAmC,UAAU3tI,KAAV,EAAiB;IAClD,IAAIivI,WAAW,GAAG,CAAC,IAAA,CAAK3E,WAAL,CAAiBtqI,KAAK,CAAC,CAAD,CAAtB,CAAD,EAA6B,IAAA,CAAKsqI,WAAL,CAAiBtqI,KAAK,CAAC,CAAD,CAAtB,CAA7B,CAAlB,CAAA;AACA,IAAA,IAAIkvI,QAAJ,CAAA;;AAEA,IAAA,IAAID,WAAW,CAAC,CAAD,CAAX,CAAe3rK,IAAf,GAAsB2rK,WAAW,CAAC,CAAD,CAAX,CAAe3rK,IAAzC,EAA+C;AAC7C4rK,MAAAA,QAAQ,GAAG,IAAX,CAAA;AACAD,MAAAA,WAAW,CAAC/wI,OAAZ,EAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAI0nH,MAAM,GAAGryJ,IAAI,CAACumC,KAAL,CAAWm1I,WAAW,CAAC,CAAD,CAAX,CAAe3rK,IAAf,GAAsBqpK,iBAAjC,CAAA,GAAsDp5K,IAAI,CAACumC,KAAL,CAAWm1I,WAAW,CAAC,CAAD,CAAX,CAAe3rK,IAAf,GAAsBqpK,iBAAjC,CAAtD,GAA4G,CAAzH,CATkD;AAUlD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEA,IAAIpC,IAAI,GAAG,IAAI3oJ,IAAJ,CAASqtJ,WAAW,CAAC,CAAD,CAAX,CAAe3rK,IAAxB,CAAX,CAAA;AACA,IAAA,IAAI6rK,YAAY,GAAG5E,IAAI,CAAC8C,OAAL,EAAnB,CAAA;IACA,IAAI+B,UAAU,GAAGH,WAAW,CAAC,CAAD,CAAX,CAAe1E,IAAf,CAAoB8C,OAApB,EAAjB,CAAA;IACA9C,IAAI,CAACkD,OAAL,CAAa0B,YAAY,GAAGvpB,MAAf,GAAwB,CAArC,CAAA,CAvBkD;;AAyBlD,IAAA,IAAIypB,OAAO,GAAG9E,IAAI,CAAC8C,OAAL,EAAd,CAAA;;IAEA,IAAIgC,OAAO,KAAKD,UAAhB,EAA4B;AAC1B,MAAA,IAAIl/C,IAAI,GAAGq6C,IAAI,CAACiD,OAAL,EAAA,GAAiByB,WAAW,CAAC,CAAD,CAAX,CAAe3rK,IAAhC,GAAuC,CAAvC,GAA2C,CAA3C,GAA+C,CAAC,CAA3D,CAAA;;MAEA,OAAO,CAAC+rK,OAAO,GAAG9E,IAAI,CAAC8C,OAAL,EAAX,MAA+B+B,UAA/B,IAA6C,CAAC7E,IAAI,CAACiD,OAAL,EAAA,GAAiByB,WAAW,CAAC,CAAD,CAAX,CAAe3rK,IAAjC,IAAyC4sH,IAAzC,GAAgD,CAApG,EAAuG;AACrG01B,QAAAA,MAAM,IAAI11B,IAAV,CAAA;AACAq6C,QAAAA,IAAI,CAACkD,OAAL,CAAa4B,OAAO,GAAGn/C,IAAvB,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAIw1B,KAAK,GAAGnyJ,IAAI,CAACumC,KAAL,CAAW,CAAC8rH,MAAM,GAAGqpB,WAAW,CAAC,CAAD,CAAX,CAAehE,GAAxB,GAA8B,CAA/B,IAAoC,CAA/C,CAAZ,CAAA;IACA,IAAIoD,OAAO,GAAGa,QAAQ,GAAG,CAACxpB,KAAD,GAAS,CAAZ,GAAgBA,KAAK,GAAG,CAA9C,CAAA;AACAwpB,IAAAA,QAAQ,IAAID,WAAW,CAAC/wI,OAAZ,EAAZ,CAAA;IACA,OAAO;AACL8B,MAAAA,KAAK,EAAE,CAACivI,WAAW,CAAC,CAAD,CAAX,CAAe5E,YAAhB,EAA8B4E,WAAW,CAAC,CAAD,CAAX,CAAe5E,YAA7C,CADF;AAEL3oJ,MAAAA,KAAK,EAAEutJ,WAAW,CAAC,CAAD,CAFb;AAGLh+I,MAAAA,GAAG,EAAEg+I,WAAW,CAAC,CAAD,CAHX;AAILrpB,MAAAA,MAAM,EAAEA,MAJH;AAKLF,MAAAA,KAAK,EAAEA,KALF;AAML;AACA2oB,MAAAA,OAAO,EAAEA,OAPJ;AAQL5B,MAAAA,KAAK,EAAEwC,WAAW,CAAC,CAAD,CAAX,CAAehE,GARjB;AASLuB,MAAAA,KAAK,EAAEyC,WAAW,CAAC,CAAD,CAAX,CAAehE,GAAAA;KATxB,CAAA;GAvCF,CAAA;AAmDA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAGE2B,QAAQ,CAAC74K,SAAT,CAAmB66K,qBAAnB,GAA2C,UAAUP,OAAV,EAAmBpD,GAAnB,EAAwBjrI,KAAxB,EAA+B;AACxE,IAAA,IAAIolH,SAAS,GAAG,IAAA,CAAKuoB,aAAL,CAAmB3tI,KAAnB,CAAhB,CAAA;;IAEA,IAAIquI,OAAO,GAAGjpB,SAAS,CAACM,KAApB,IAA6B2oB,OAAO,KAAK,CAAZ,IAAiBpD,GAAG,GAAG7lB,SAAS,CAACqnB,KAA9D,IAAuE4B,OAAO,KAAKjpB,SAAS,CAACM,KAAtB,IAA+BulB,GAAG,GAAG7lB,SAAS,CAAConB,KAA1H,EAAiI;AAC/H,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAI8C,MAAM,GAAG,CAACjB,OAAO,GAAG,CAAX,IAAgB,CAAhB,GAAoBjpB,SAAS,CAACqnB,KAA9B,GAAsCxB,GAAnD,CAAA;IACA,IAAIV,IAAI,GAAG,IAAI3oJ,IAAJ,CAASwjI,SAAS,CAAC1jI,KAAV,CAAgBpe,IAAzB,CAAX,CAAA;IACAinK,IAAI,CAACkD,OAAL,CAAa,CAACroB,SAAS,CAAC1jI,KAAV,CAAgBtqB,CAAjB,GAAqBk4K,MAAlC,CAAA,CAAA;AACA,IAAA,OAAO,IAAKhF,CAAAA,WAAL,CAAiBC,IAAjB,CAAP,CAAA;GAVF,CAAA;;AAaAqC,EAAAA,QAAQ,CAACv3G,MAAT,GAAkB,UAAUvzB,OAAV,EAAmBxxB,GAAnB,EAAwB;IACxC,IAAIi/J,YAAY,GAAG,EAAnB,CAAA;AACAztI,IAAAA,OAAO,CAAC4V,aAAR,CAAsB,UAAtB,EAAkC,UAAUyxH,aAAV,EAAyB;MACzD,IAAI9Z,QAAQ,GAAG,IAAIud,QAAJ,CAAazD,aAAb,EAA4BrnI,OAA5B,EAAqCxxB,GAArC,CAAf,CAAA;MACAi/J,YAAY,CAACz3K,IAAb,CAAkBu3J,QAAlB,CAAA,CAAA;MACA8Z,aAAa,CAACrkJ,gBAAd,GAAiCuqI,QAAjC,CAAA;KAHF,CAAA,CAAA;AAKAvtH,IAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAU26G,cAAV,EAA0B;AAC3C,MAAA,IAAIA,cAAc,CAACtjJ,GAAf,CAAmB,kBAAnB,CAAA,KAA2C,UAA/C,EAA2D;AACzD;AACAsjJ,QAAAA,cAAc,CAAC1qJ,gBAAf,GAAkCyqJ,YAAY,CAACC,cAAc,CAACtjJ,GAAf,CAAmB,eAAnB,CAAuC,IAAA,CAAxC,CAA9C,CAAA;AACD,OAAA;KAJH,CAAA,CAAA;AAMA,IAAA,OAAOqjJ,YAAP,CAAA;GAbF,CAAA;;AAgBA3C,EAAAA,QAAQ,CAACv6I,UAAT,GAAsB,CAAC,MAAD,EAAS,OAAT,CAAtB,CAAA;AACA,EAAA,OAAOu6I,QAAP,CAAA;AACD,CA3XD,EAFA,CAAA;;AA+XA,SAAS1kF,WAAT,CAAqBj0B,MAArB,EAA6B;AAC3B,EAAA,IAAIk1G,aAAa,GAAGl1G,MAAM,CAACk1G,aAA3B,CAAA;AACA,EAAA,IAAI1+I,WAAW,GAAGwpC,MAAM,CAACxpC,WAAzB,CAAA;AACA,EAAA,IAAI5F,QAAQ,GAAGskJ,aAAa,GAAGA,aAAa,CAACrkJ,gBAAjB,GAAoC2F,WAAW,GAAGA,WAAW,CAAC3F,gBAAf,GAAkC,IAA7G,CAAA;AACA,EAAA,OAAOD,QAAP,CAAA;AACD;;ACpbD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAAS1N,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiCq9G,aAAjC,CAAA,CAAA;EACAlxJ,SAAS,CAACksD,qBAAV,CAAgC4lG,YAAhC,CAAA,CAAA;AACA9xJ,EAAAA,SAAS,CAACmsD,wBAAV,CAAmC,UAAnC,EAA+CqpG,QAA/C,CAAA,CAAA;AACD;;ACjDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BA,CAAA;AACA,CAAA;AACA,CAAA;AACO,SAAS6C,uBAAT,CAAiCC,UAAjC,EAA6CC,WAA7C,EAA0D;AAC/D,EAAA,IAAIC,aAAa,GAAGF,UAAU,CAACG,QAA/B,CAD+D;;AAG/DF,EAAAA,WAAW,CAAC/nK,EAAZ,GAAiB8nK,UAAU,CAACI,OAAX,CAAmBloK,EAApC,CAAA;AACA,EAAA,CAAC+nK,WAAW,CAAC7oK,IAAb,IAAqB8oK,aAArB,KAAuCD,WAAW,CAAC7oK,IAAZ,GAAmB8oK,aAAa,CAAC9oK,IAAxE,EAJ+D;;AAM/D,EAAA,IAAI6oK,WAAW,CAACI,QAAZ,IAAwB,IAA5B,EAAkC;AAChC,IAAA,IAAIC,iBAAiB,GAAGL,WAAW,CAACM,YAApC,CAAA;;AAEA,IAAA,IAAID,iBAAJ,EAAuB;AACrBL,MAAAA,WAAW,CAACI,QAAZ,GAAuBC,iBAAiB,CAACpoK,EAAzC,CAAA;KADF,MAEO,IAAIgoK,aAAJ,EAAmB;AACxBD,MAAAA,WAAW,CAACI,QAAZ,GAAuBH,aAAa,CAACG,QAArC,CAAA;AACD,KAAA;AACF,GAd8D;;;EAiB/DJ,WAAW,CAACM,YAAZ,GAA2B,IAA3B,CAAA;AACD,CAAA;;AAED,SAASC,QAAT,CAAkBj7H,GAAlB,EAAuBC,KAAvB,EAA8B;AAC5B,EAAA,IAAIi7H,KAAJ,CAAA;AACA10I,EAAAA,MAAA,CAAYyZ,KAAZ,EAAmB,UAAUt8C,IAAV,EAAgB;AACjCq8C,IAAAA,GAAG,CAACr8C,IAAD,CAAH,IAAa,IAAb,IAAqBq8C,GAAG,CAACr8C,IAAD,CAAH,KAAc,MAAnC,KAA8Cu3K,KAAK,GAAG,IAAtD,CAAA,CAAA;GADF,CAAA,CAAA;AAGA,EAAA,OAAOA,KAAP,CAAA;AACD,CAAA;;AAED,SAASC,uBAAT,CAAiCC,SAAjC,EAA4Cr9H,KAA5C,EAAmD28H,WAAnD,EAAgE;AAC9D;EACA,IAAIW,YAAY,GAAG70I,MAAA,CAAc,EAAd,EAAkBk0I,WAAlB,CAAnB,CAAA;AACA,EAAA,IAAIC,aAAa,GAAGS,SAAS,CAACr9H,KAAD,CAA7B,CAAA;AACA,EAAA,IAAIu9H,OAAO,GAAGZ,WAAW,CAACY,OAAZ,IAAuB,OAArC,CAAA;;EAEA,IAAIA,OAAO,KAAK,OAAhB,EAAyB;AACvB,IAAA,IAAIX,aAAJ,EAAmB;AACjB,MAAA,IAAIzkK,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,QAAA,IAAImlK,OAAO,GAAGb,WAAW,CAAC7oK,IAA1B,CAAA;AACA20B,QAAAA,MAAA,CAAc,CAAC+0I,OAAD,IAAYZ,aAAa,CAAC9oK,IAAd,KAAuB0pK,OAAjD,EAA0D,gDAA1D,CAAA,CAAA;AACD,OAJgB;AAKjB;;;MAGA/0I,KAAA,CAAam0I,aAAb,EAA4BU,YAA5B,EAA0C,IAA1C,CAAA,CARiB;;AAUjB5lH,MAAAA,gBAAgB,CAACklH,aAAD,EAAgBU,YAAhB,EAA8B;AAC5CvH,QAAAA,UAAU,EAAE,IAAA;OADE,CAAhB,CAViB;;AAcjB0H,MAAAA,gBAAgB,CAACd,WAAD,EAAcC,aAAd,CAAhB,CAdiB;AAejB;;AAEAc,MAAAA,kBAAkB,CAACf,WAAD,EAAcC,aAAd,CAAlB,CAAA;AACAc,MAAAA,kBAAkB,CAACf,WAAD,EAAcC,aAAd,EAA6B,OAA7B,CAAlB,CAAA;AACAc,MAAAA,kBAAkB,CAACf,WAAD,EAAcC,aAAd,EAA6B,OAA7B,CAAlB,CAAA;MACAc,kBAAkB,CAACf,WAAD,EAAcC,aAAd,EAA6B,OAA7B,CAAlB,CApBiB;;AAsBjBD,MAAAA,WAAW,CAAC/hK,QAAZ,GAAuBgiK,aAAa,CAAChiK,QAArC,CAAA;AACD,KAvBD,MAuBO;AACLyiK,MAAAA,SAAS,CAACr9H,KAAD,CAAT,GAAmBs9H,YAAnB,CAAA;AACD,KAAA;AACF,GA3BD,MA2BO,IAAIC,OAAO,KAAK,SAAhB,EAA2B;AAChCF,IAAAA,SAAS,CAACr9H,KAAD,CAAT,GAAmBs9H,YAAnB,CAAA;AACD,GAFM,MAEA,IAAIC,OAAO,KAAK,QAAhB,EAA0B;AAC/B;AACAX,IAAAA,aAAa,KAAKS,SAAS,CAACr9H,KAAD,CAAT,GAAmB,IAAxB,CAAb,CAAA;AACD,GAAA;AACF,CAAA;;AAED,IAAI29H,wBAAwB,GAAG,CAAC,YAAD,EAAe,WAAf,EAA4B,SAA5B,CAA/B,CAAA;AACA,IAAIC,6BAA6B,GAAGD,wBAAwB,CAAC9nG,MAAzB,CAAgC,CAAC,gBAAD,EAAmB,iBAAnB,EAAsC,gBAAtC,CAAhC,CAApC,CAAA;;AAEA,SAAS6nG,kBAAT,CAA4B9wK,MAA5B,EAAoCqhD,MAApC,EAA4Cv9C,UAA5C,EAAwD;AACtD,EAAA,IAAIA,UAAJ,EAAgB;IACd,IAAI,CAAC9D,MAAM,CAAC8D,UAAD,CAAP,IAAuBu9C,MAAM,CAACv9C,UAAD,CAAjC,EAA+C;AAC7C;AACA9D,MAAAA,MAAM,CAAC8D,UAAD,CAAN,GAAqB,EAArB,CAAA;AACD,KAAA;;AAED9D,IAAAA,MAAM,GAAGA,MAAM,CAAC8D,UAAD,CAAf,CAAA;AACAu9C,IAAAA,MAAM,GAAGA,MAAM,CAACv9C,UAAD,CAAf,CAAA;AACD,GAAA;;AAED,EAAA,IAAI,CAAC9D,MAAD,IAAW,CAACqhD,MAAhB,EAAwB;AACtB,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI/L,KAAK,GAAGxxC,UAAU,GAAGitK,wBAAH,GAA8BC,6BAApD,CAAA;;AAEA,EAAA,KAAK,IAAIn5K,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGy9C,KAAK,CAACn+C,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;AACrC,IAAA,IAAImB,IAAI,GAAGs8C,KAAK,CAACz9C,CAAD,CAAhB,CAAA;;AAEA,IAAA,IAAImI,MAAM,CAAChH,IAAD,CAAN,IAAgB,IAAhB,IAAwBqoD,MAAM,CAACroD,IAAD,CAAN,IAAgB,IAA5C,EAAkD;AAChDgH,MAAAA,MAAM,CAAChH,IAAD,CAAN,GAAeqoD,MAAM,CAACroD,IAAD,CAArB,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAASi4K,oBAAT,CAA8BC,SAA9B,EAAyCnB,WAAzC,EAAsD;EACpD,IAAI,CAACmB,SAAL,EAAgB;AACd,IAAA,OAAA;AACD,GAAA;;AAEDA,EAAAA,SAAS,CAACC,EAAV,GAAepB,WAAW,CAACoB,EAAZ,GAAiB;EAChCb,QAAQ,CAACP,WAAD,EAAc,CAAC,MAAD,EAAS,OAAT,CAAd,CADwB;EAEhCO,QAAQ,CAACP,WAAD,EAAc,CAAC,KAAD,EAAQ,QAAR,CAAd,CAFwB,CAAhC,CALoD;;AASpD,EAAA,IAAImB,SAAS,CAAChqK,IAAV,KAAmB,OAAvB,EAAgC;IAC9B,IAAIkqK,gBAAgB,GAAGF,SAAvB,CAAA;IACA,IAAIG,WAAW,GAAGtB,WAAlB,CAAA;AACAqB,IAAAA,gBAAgB,CAACxzK,KAAjB,IAA0B,IAA1B,KAAmCwzK,gBAAgB,CAACxzK,KAAjB,GAAyByzK,WAAW,CAACzzK,KAAZ,GAAoB,CAAhF,CAAA,CAAA;AACAwzK,IAAAA,gBAAgB,CAACvzK,MAAjB,IAA2B,IAA3B,KAAoCuzK,gBAAgB,CAACvzK,MAAjB,GAA0BwzK,WAAW,CAACxzK,MAAZ,GAAqB,CAAnF,CAAA,CAAA;AACD,GAAA;AACF,CAAA;;AAED,IAAIyzK,qBAAqB;AACzB;AACA,UAAUj5J,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACg5J,qBAAD,EAAwBj5J,MAAxB,CAAT,CAAA;;AAEA,EAAA,SAASi5J,qBAAT,GAAiC;AAC/B,IAAA,IAAI/4J,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaoqK,qBAAqB,CAACpqK,IAAnC,CAAA;IACAqR,KAAK,CAACg5J,YAAN,GAAqB,IAArB,CAAA;AACA,IAAA,OAAOh5J,KAAP,CAAA;AACD,GAAA;;EAED+4J,qBAAqB,CAACn9K,SAAtB,CAAgCquD,WAAhC,GAA8C,UAAUx9B,MAAV,EAAkBkd,OAAlB,EAA2B;AACvE;AACA,IAAA,IAAIsvI,QAAQ,GAAG,IAAKxsJ,CAAAA,MAAL,CAAYwsJ,QAA3B,CAAA;AACA,IAAA,IAAA,CAAKxsJ,MAAL,CAAYwsJ,QAAZ,GAAuB,IAAvB,CAAA;;IAEAn5J,MAAM,CAAClkB,SAAP,CAAiBquD,WAAjB,CAA6BhqC,IAA7B,CAAkC,IAAlC,EAAwCwM,MAAxC,EAAgDkd,OAAhD,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKld,MAAL,CAAYwsJ,QAAZ,GAAuBA,QAAvB,CAAA;GAPF,CAAA;;EAUAF,qBAAqB,CAACn9K,SAAtB,CAAgC42D,aAAhC,GAAgD,UAAU4jE,SAAV,EAAqB3jG,MAArB,EAA6B;IAC3E,IAAIggC,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;IACA,IAAIysJ,OAAO,GAAG,CAACzmJ,MAAM,GAAGggC,UAAH,GAAgB2jE,SAAvB,EAAkC6iD,QAAhD,CAAA;AACA,IAAA,IAAIf,SAAS,GAAGzlH,UAAU,CAACwmH,QAAX,GAAsBxmJ,MAAM,GAAG,EAAH,GAAQggC,UAAU,CAACwmH,QAA/D,CAAA;IACA,IAAIE,aAAa,GAAG,EAApB,CAAA;;AAEA,IAAA,IAAA,CAAKC,QAAL,CAAcF,OAAd,EAAuBC,aAAvB,EAAsC,IAAtC,CAAA,CAAA;;AAEA,IAAA,IAAIE,aAAa,GAAG1sI,eAAA,CAA0BurI,SAA1B,EAAqCiB,aAArC,EAAoD,aAApD,CAApB,CAR2E;;AAU3E,IAAA,IAAIG,iBAAiB,GAAG,IAAKC,CAAAA,kBAAL,GAA0B,EAAlD,CAAA;IACAj2I,MAAA,CAAY+1I,aAAZ,EAA2B,UAAU9B,UAAV,EAAsB18H,KAAtB,EAA6B;AACtD,MAAA,IAAI28H,WAAW,GAAGD,UAAU,CAACnhD,SAA7B,CAAA;;AAEA,MAAA,IAAIpjH,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCowB,QAAAA,MAAA,CAAcA,UAAA,CAAgBk0I,WAAhB,CAAgCD,IAAAA,UAAU,CAACG,QAAzD,EAAmE,iCAAnE,CAAA,CAAA;AACD,OAAA;;MAED,IAAI,CAACF,WAAL,EAAkB;AAChB,QAAA,OAAA;AACD,OAAA;;MAED8B,iBAAiB,CAAC35K,IAAlB,CAAuB63K,WAAvB,CAAA,CAAA;AACAF,MAAAA,uBAAuB,CAACC,UAAD,EAAaC,WAAb,CAAvB,CAAA;AACAS,MAAAA,uBAAuB,CAACC,SAAD,EAAYr9H,KAAZ,EAAmB28H,WAAnB,CAAvB,CAAA;AACAkB,MAAAA,oBAAoB,CAACR,SAAS,CAACr9H,KAAD,CAAV,EAAmB28H,WAAnB,CAApB,CAAA;KAdF,EAeG,IAfH,CAAA,CAX2E;;IA4B3E/kH,UAAU,CAACwmH,QAAX,GAAsB31I,MAAA,CAAc40I,SAAd,EAAyB,UAAU/pK,IAAV,EAAgB;AAC7D;AACA;AACAA,MAAAA,IAAI,IAAI,OAAOA,IAAI,CAACiqK,OAApB,CAAA;MACA,OAAOjqK,IAAI,IAAI,IAAf,CAAA;AACD,KALqB,CAAtB,CAAA;GA5BF,CAAA;AAmCA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAGE4qK,qBAAqB,CAACn9K,SAAtB,CAAgCw9K,QAAhC,GAA2C,UAAUI,UAAV,EAAsB70G,MAAtB,EAA8BmzG,YAA9B,EAA4C;AACrFx0I,IAAAA,MAAA,CAAYk2I,UAAZ,EAAwB,UAAU/sJ,MAAV,EAAkB;MACxC,IAAI,CAACA,MAAL,EAAa;AACX,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIqrJ,YAAJ,EAAkB;QAChBrrJ,MAAM,CAACqrJ,YAAP,GAAsBA,YAAtB,CAAA;AACD,OAAA;;MAEDnzG,MAAM,CAAChlE,IAAP,CAAY8sB,MAAZ,CAAA,CAAA;AACA,MAAA,IAAI5pB,QAAQ,GAAG4pB,MAAM,CAAC5pB,QAAtB,CAVwC;AAWxC;;AAEA,MAAA,IAAIA,QAAQ,IAAIA,QAAQ,CAACjE,MAAzB,EAAiC;AAC/B,QAAA,IAAA,CAAKw6K,QAAL,CAAcv2K,QAAd,EAAwB8hE,MAAxB,EAAgCl4C,MAAhC,CAAA,CAAA;AACD,OAfuC;;;MAkBxC,OAAOA,MAAM,CAAC5pB,QAAd,CAAA;AACD,KAnBD,EAmBG,IAnBH,CAAA,CAAA;AAoBD,GArBD,CAxEgB;AA8FhB;;;AAGAk2K,EAAAA,qBAAqB,CAACn9K,SAAtB,CAAgC69K,oBAAhC,GAAuD,YAAY;AACjE,IAAA,IAAIrxF,GAAG,GAAG,IAAKmxF,CAAAA,kBAAf,CADiE;;IAGjE,IAAKA,CAAAA,kBAAL,GAA0B,IAA1B,CAAA;AACA,IAAA,OAAOnxF,GAAP,CAAA;GAJF,CAAA;;EAOA2wF,qBAAqB,CAACpqK,IAAtB,GAA6B,SAA7B,CAAA;EACAoqK,qBAAqB,CAACxqJ,aAAtB,GAAsC;IACpC0qJ,QAAQ,EAAE,EAD0B;;GAAtC,CAAA;AAIA,EAAA,OAAOF,qBAAP,CAAA;AACD,CA9GD,CA8GEpqH,cA9GF,CAFA;;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsCA,IAAI+qH,uBAAuB,GAAG;AAC5B;AACAzyK,EAAAA,IAAI,EAAE,IAFsB;AAG5BmgF,EAAAA,YAAY,EAAE,IAHc;AAI5B;EACAn6D,KAAK,EAAEo3G,OALqB;EAM5B10H,KAAK,EAAE00H,OANqB;EAO5BvhI,IAAI,EAAEuhI,MAAYs1C;AAPU,CAA9B,CAAA;AASO,IAAI3wG,OAAK,GAAGr8B,SAAA,EAAZ;AACP;AACA;;AAEA,IAAIitI,oBAAoB;AACxB;AACA,UAAU95J,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC65J,oBAAD,EAAuB95J,MAAvB,CAAT,CAAA;;AAEA,EAAA,SAAS85J,oBAAT,GAAgC;AAC9B,IAAA,IAAI55J,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAairK,oBAAoB,CAACjrK,IAAlC,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAED45J,EAAAA,oBAAoB,CAACh+K,SAArB,CAA+BytC,IAA/B,GAAsC,YAAY;AAChD,IAAA,IAAA,CAAKwwI,MAAL,GAAcv2I,aAAA,EAAd,CAAA;GADF,CAAA;;EAIAs2I,oBAAoB,CAACh+K,SAArB,CAA+B8tC,MAA/B,GAAwC,UAAUowI,YAAV,EAAwBnwI,OAAxB,EAAiCxxB,GAAjC,EAAsC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAA,IAAI2hK,YAAY,KAAK,IAAKC,CAAAA,iBAA1B,EAA6C;AAC3C,MAAA,IAAA,CAAKhkI,MAAL,EAAA,CAAA;AACD,KAAA;;IAED,IAAKgkI,CAAAA,iBAAL,GAAyBD,YAAzB,CAAA;;IAEA,IAAKE,CAAAA,eAAL,CAAqBF,YAArB,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKG,SAAL,CAAeH,YAAf,EAA6B3hK,GAA7B,CAAA,CAAA;GAlBF,CAAA;AAoBA;AACF;AACA;;;AAGEyhK,EAAAA,oBAAoB,CAACh+K,SAArB,CAA+Bo+K,eAA/B,GAAiD,UAAUF,YAAV,EAAwB;AACvE,IAAA,IAAIR,iBAAiB,GAAGQ,YAAY,CAACL,oBAAb,EAAxB,CAAA;;IAEA,IAAI,CAACH,iBAAL,EAAwB;AACtB,MAAA,OAAA;AACD,KAAA;;IAED,IAAIY,KAAK,GAAG,IAAA,CAAKL,MAAjB,CAAA;IACA,IAAIM,SAAS,GAAG,IAAA,CAAKltJ,KAArB,CAAA;AACA,IAAA,IAAImtJ,OAAO,GAAGN,YAAY,CAAC/lJ,GAAb,CAAiB,GAAjB,CAAd,CAAA;IACA,IAAIsmJ,YAAY,GAAGP,YAAY,CAAC/lJ,GAAb,CAAiB,QAAjB,CAAnB,CAVuE;;AAYvEuP,IAAAA,MAAA,CAAYg2I,iBAAZ,EAA+B,UAAUroB,QAAV,EAAoB;MACjD,IAAIxhJ,EAAE,GAAGk9B,mBAAA,CAA8BskH,QAAQ,CAACxhJ,EAAvC,EAA2C,IAA3C,CAAT,CAAA;AACA,MAAA,IAAI6qK,UAAU,GAAG7qK,EAAE,IAAI,IAAN,GAAayqK,KAAK,CAACnmJ,GAAN,CAAUtkB,EAAV,CAAb,GAA6B,IAA9C,CAAA;MACA,IAAImoK,QAAQ,GAAGjrI,mBAAA,CAA8BskH,QAAQ,CAAC2mB,QAAvC,EAAiD,IAAjD,CAAf,CAAA;AACA,MAAA,IAAI2C,cAAc,GAAG3C,QAAQ,IAAI,IAAZ,GAAmBsC,KAAK,CAACnmJ,GAAN,CAAU6jJ,QAAV,CAAnB,GAAyCuC,SAA9D,CAAA;AACA,MAAA,IAAIvsB,MAAM,GAAGqD,QAAQ,CAACtiJ,IAAtB,CAAA;AACA,MAAA,IAAIouJ,aAAa,GAAG9L,QAAQ,CAAC/wJ,KAA7B,CAAA;;AAEA,MAAA,IAAI0tJ,MAAM,KAAK,MAAX,IAAqBmP,aAAzB,EAAwC;AACtC;AACA;QACA,IAAI9L,QAAQ,CAAC2nB,EAAT,IAAe3nB,QAAQ,CAAC2nB,EAAT,CAAY,CAAZ,CAAnB,EAAmC;AACjC7b,UAAAA,aAAa,CAACxoH,iBAAd,GAAkCwoH,aAAa,CAAC3sJ,YAAd,GAA6B2sJ,aAAa,CAAC7zH,aAAd,GAA8B6zH,aAAa,CAAC9zH,KAAd,GAAsB,IAAnH,CAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,IAAIuxI,iBAAiB,GAAGvpB,QAAQ,CAACz6I,WAAjC,CAAA;AACA,MAAA,IAAI03B,UAAU,GAAG+iH,QAAQ,CAAC/iH,UAA1B,CAAA;;AAEA,MAAA,IAAI6uH,aAAa,IAAIpP,oBAAoB,CAACoP,aAAD,EAAgBnP,MAAhB,EAAwB,CAAC,CAAC1/G,UAA1B,EAAsC,CAAC,CAACssI,iBAAxC,CAAzC,EAAqG;QACnG,IAAI5c,aAAa,GAAG5P,6BAA6B,CAAC+O,aAAD,EAAgBnP,MAAhB,EAAwB,IAAxB,CAAjD,CAAA;;AAEA,QAAA,IAAI,CAAC1/G,UAAD,IAAe0vH,aAAa,CAAC1vH,UAAjC,EAA6C;AAC3CA,UAAAA,UAAU,GAAG+iH,QAAQ,CAAC/iH,UAAT,GAAsB0vH,aAAa,CAAC1vH,UAAjD,CAAA;AACD,SAAA;;AAED,QAAA,IAAI,CAACssI,iBAAD,IAAsB5c,aAAa,CAACpnJ,WAAxC,EAAqD;UACnDgkK,iBAAiB,GAAG5c,aAAa,CAACpnJ,WAAlC,CAAA;AACD,SAAA;AACF,OA7BgD;;;AAgCjD,MAAA,IAAIikK,eAAe,GAAGC,kBAAkB,CAACzpB,QAAD,CAAxC,CAhCiD;;AAkCjD,MAAA,IAAIj+I,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzConK,QAAAA,UAAU,IAAIh3I,MAAA,CAAci3I,cAAc,KAAKD,UAAU,CAAChkJ,MAA5C,EAAoD,mCAApD,CAAd,CAAA;AACD,OAAA;;AAED,MAAA,IAAI8hJ,OAAO,GAAGnnB,QAAQ,CAACmnB,OAAT,IAAoB,OAAlC,CAAA;AACA,MAAA,IAAIuC,OAAO,GAAGvC,OAAO,KAAK,OAA1B,CAAA;AACA,MAAA,IAAIwC,SAAS,GAAGxC,OAAO,KAAK,SAA5B,CAAA;;AAEA,MAAA,IAAIuC,OAAJ,EAAa;QACX,IAAIloJ,MAAM,GAAG,CAAC6nJ,UAAd,CAAA;QACA,IAAIO,IAAI,GAAGP,UAAX,CAAA;;AAEA,QAAA,IAAI7nJ,MAAJ,EAAY;AACVooJ,UAAAA,IAAI,GAAGziB,QAAQ,CAAC3oJ,EAAD,EAAK8qK,cAAL,EAAqBtpB,QAAQ,CAACtiJ,IAA9B,EAAoCurK,KAApC,CAAf,CAAA;AACD,SAFD,MAEO;UACLW,IAAI,KAAK7xG,OAAK,CAAC6xG,IAAD,CAAL,CAAYC,KAAZ,GAAoB,KAAzB,CAAJ,CADK;;UAGLvlB,uCAAuC,CAACslB,IAAD,CAAvC,CAAA;AACD,SAAA;;AAED,QAAA,IAAIA,IAAJ,EAAU;AACRvpB,UAAAA,qBAAqB,CAACupB,IAAD,EAAOJ,eAAP,EAAwBX,YAAxB,EAAsC;AACzDrnJ,YAAAA,MAAM,EAAEA,MAAAA;AADiD,WAAtC,CAArB,CAAA;UAGAsoJ,iBAAiB,CAACF,IAAD,EAAO5pB,QAAP,EAAiBmpB,OAAjB,EAA0BC,YAA1B,CAAjB,CAAA;AACD,SAAA;OAjBH,MAkBO,IAAIO,SAAJ,EAAe;QACpBI,QAAQ,CAACV,UAAD,EAAarpB,QAAb,EAAuBipB,KAAvB,EAA8BJ,YAA9B,CAAR,CAAA;AACA,QAAA,IAAImB,IAAI,GAAG7iB,QAAQ,CAAC3oJ,EAAD,EAAK8qK,cAAL,EAAqBtpB,QAAQ,CAACtiJ,IAA9B,EAAoCurK,KAApC,CAAnB,CAAA;;AAEA,QAAA,IAAIe,IAAJ,EAAU;AACR3pB,UAAAA,qBAAqB,CAAC2pB,IAAD,EAAOR,eAAP,EAAwBX,YAAxB,EAAsC;AACzDrnJ,YAAAA,MAAM,EAAE,IAAA;AADiD,WAAtC,CAArB,CAAA;UAGAsoJ,iBAAiB,CAACE,IAAD,EAAOhqB,QAAP,EAAiBmpB,OAAjB,EAA0BC,YAA1B,CAAjB,CAAA;AACD,SAAA;AACF,OAVM,MAUA,IAAIjC,OAAO,KAAK,QAAhB,EAA0B;AAC/B9lB,QAAAA,aAAa,CAACgoB,UAAD,EAAarpB,QAAb,CAAb,CAAA;QACA+pB,QAAQ,CAACV,UAAD,EAAarpB,QAAb,EAAuBipB,KAAvB,EAA8BJ,YAA9B,CAAR,CAAA;AACD,OAAA;;AAED,MAAA,IAAIj5K,EAAE,GAAGq5K,KAAK,CAACnmJ,GAAN,CAAUtkB,EAAV,CAAT,CAAA;;MAEA,IAAI5O,EAAE,IAAI25K,iBAAV,EAA6B;AAC3B,QAAA,IAAIG,OAAJ,EAAa;AACX,UAAA,IAAIO,mBAAmB,GAAGr6K,EAAE,CAAC4V,cAAH,EAA1B,CAAA;AACAykK,UAAAA,mBAAmB,GAAGA,mBAAmB,CAACnqJ,IAApB,CAAyBypJ,iBAAzB,CAAH,GAAiD35K,EAAE,CAAC0V,cAAH,CAAkB,IAAI8tH,MAAJ,CAAqBm2C,iBAArB,CAAlB,CAApE,CAAA;SAFF,MAGO,IAAII,SAAJ,EAAe;UACpB/5K,EAAE,CAAC0V,cAAH,CAAkB,IAAI8tH,MAAJ,CAAqBm2C,iBAArB,CAAlB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,IAAI35K,EAAJ,EAAQ;AACN,QAAA,IAAIs6K,cAAc,GAAGlqB,QAAQ,CAACx7I,QAA9B,CAAA;;AAEA,QAAA,IAAI0lK,cAAJ,EAAoB;AAClB,UAAA,IAAIC,YAAY,GAAGD,cAAc,CAACxsK,IAAlC,CAAA;UACA,IAAI8G,QAAQ,GAAG,KAAK,CAApB,CAAA;UACA,IAAIgd,MAAM,GAAG,KAAb,CAAA;;AAEA,UAAA,IAAIkoJ,OAAJ,EAAa;AACX,YAAA,IAAI5vI,WAAW,GAAGlqC,EAAE,CAACmqC,WAAH,EAAlB,CAAA;YACAvY,MAAM,GAAG,CAACsY,WAAD,IAAgBi+B,OAAK,CAACj+B,WAAD,CAAL,CAAmBp8B,IAAnB,KAA4BysK,YAArD,CAAA;YACA3lK,QAAQ,GAAGgd,MAAM,GAAG4oJ,KAAK,CAACD,YAAD,CAAR,GAAyBrwI,WAA1C,CAAA;WAHF,MAIO,IAAI6vI,SAAJ,EAAe;AACpBnoJ,YAAAA,MAAM,GAAG,IAAT,CAAA;AACAhd,YAAAA,QAAQ,GAAG4lK,KAAK,CAACD,YAAD,CAAhB,CAAA;AACD,WAAA;;UAEDv6K,EAAE,CAAC2U,WAAH,CAAeC,QAAf,CAAA,CAAA;AACA67I,UAAAA,qBAAqB,CAAC77I,QAAD,EAAW0lK,cAAX,EAA2BrB,YAA3B,EAAyC;AAC5DrnJ,YAAAA,MAAM,EAAEA,MAAAA;AADoD,WAAzC,CAArB,CAAA;UAGA+iI,sBAAsB,CAAC//I,QAAD,EAAW0lK,cAAc,CAAC9hB,iBAA1B,EAA6CygB,YAA7C,CAAtB,CAAA;AACD,SAAA;;AAED,QAAA,IAAIld,OAAO,GAAG5zF,OAAK,CAACnoE,EAAD,CAAnB,CAAA;QACAA,EAAE,CAAC+zC,aAAH,CAAiB1G,UAAjB,CAAA,CAAA;QACA0uH,OAAO,CAACnwI,MAAR,GAAiBwkI,QAAjB,CAAA;AACAqqB,QAAAA,YAAY,CAACz6K,EAAD,EAAKi5K,YAAL,EAAmB7oB,QAAnB,CAAZ,CAAA;QACA5sB,gBAAA,CAA6B;AAC3BxjI,UAAAA,EAAE,EAAEA,EADuB;AAE3B6+C,UAAAA,cAAc,EAAEo6H,YAFW;UAG3B14G,QAAQ,EAAEvgE,EAAE,CAACyB,IAHc;UAI3B8nF,iBAAiB,EAAE6mE,QAAQ,CAACthG,OAAAA;SAJ9B,CAAA,CAAA;QAMA6lG,sBAAsB,CAAC30J,EAAD,EAAKowJ,QAAQ,CAACoI,iBAAd,EAAiCygB,YAAjC,CAAtB,CAAA;AACD,OAAA;KAzHH,CAAA,CAAA;GAZF,CAAA;AAwIA;AACF;AACA;;;EAGEF,oBAAoB,CAACh+K,SAArB,CAA+Bq+K,SAA/B,GAA2C,UAAUH,YAAV,EAAwB3hK,GAAxB,EAA6B;AACtE,IAAA,IAAIojK,SAAS,GAAGzB,YAAY,CAACrtJ,MAAb,CAAoBwsJ,QAApC,CAAA;IACA,IAAIkB,SAAS,GAAG,IAAA,CAAKltJ,KAArB,CAAA;IACA,IAAIitJ,KAAK,GAAG,IAAA,CAAKL,MAAjB,CAAA;AACA,IAAA,IAAI2B,QAAQ,GAAGrjK,GAAG,CAACmG,QAAJ,EAAf,CAAA;AACA,IAAA,IAAIm9J,SAAS,GAAGtjK,GAAG,CAACoG,SAAJ,EAAhB,CAAA;IACA,IAAI06F,EAAE,GAAG,CAAC,GAAD,EAAM,GAAN,CAAT,CANsE;;AAQtE,IAAA,KAAK,IAAI35G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi8K,SAAS,CAAC38K,MAA9B,EAAsCU,CAAC,EAAvC,EAA2C;AACzC,MAAA,IAAI2xJ,QAAQ,GAAGsqB,SAAS,CAACj8K,CAAD,CAAxB,CAAA;MACA,IAAImQ,EAAE,GAAGk9B,mBAAA,CAA8BskH,QAAQ,CAACxhJ,EAAvC,EAA2C,IAA3C,CAAT,CAAA;AACA,MAAA,IAAI5O,EAAE,GAAG4O,EAAE,IAAI,IAAN,GAAayqK,KAAK,CAACnmJ,GAAN,CAAUtkB,EAAV,CAAb,GAA6B,IAAtC,CAAA;;AAEA,MAAA,IAAI,CAAC5O,EAAD,IAAO,CAACA,EAAE,CAACg4B,OAAf,EAAwB;AACtB,QAAA,SAAA;AACD,OAAA;;AAED,MAAA,IAAI2hE,QAAQ,GAAG35F,EAAE,CAACy1B,MAAlB,CAAA;AACA,MAAA,IAAIolJ,YAAY,GAAGlhF,QAAQ,KAAK2/E,SAAhC,CAVyC;;AAYzC,MAAA,IAAIvd,OAAO,GAAG5zF,OAAK,CAACnoE,EAAD,CAAnB,CAAA;AACA,MAAA,IAAI86K,aAAa,GAAG3yG,OAAK,CAACwxB,QAAD,CAAzB,CAAA;MACAoiE,OAAO,CAACv3J,KAAR,GAAgB86C,YAAY,CAACy8G,OAAO,CAACnwI,MAAR,CAAepnB,KAAhB,EAAuBq2K,YAAY,GAAGF,QAAH,GAAcG,aAAa,CAACt2K,KAA/D,CAAZ,IAAqF,CAArG,CAAA;MACAu3J,OAAO,CAACt3J,MAAR,GAAiB66C,YAAY,CAACy8G,OAAO,CAACnwI,MAAR,CAAennB,MAAhB,EAAwBo2K,YAAY,GAAGD,SAAH,GAAeE,aAAa,CAACr2K,MAAjE,CAAZ,IAAwF,CAAzG,CAAA;AACD,KAxBqE;;;AA2BtE,IAAA,KAAK,IAAIhG,CAAC,GAAGi8K,SAAS,CAAC38K,MAAV,GAAmB,CAAhC,EAAmCU,CAAC,IAAI,CAAxC,EAA2CA,CAAC,EAA5C,EAAgD;AAC9C,MAAA,IAAI2xJ,QAAQ,GAAGsqB,SAAS,CAACj8K,CAAD,CAAxB,CAAA;MACA,IAAImQ,EAAE,GAAGk9B,mBAAA,CAA8BskH,QAAQ,CAACxhJ,EAAvC,EAA2C,IAA3C,CAAT,CAAA;AACA,MAAA,IAAI5O,EAAE,GAAG4O,EAAE,IAAI,IAAN,GAAayqK,KAAK,CAACnmJ,GAAN,CAAUtkB,EAAV,CAAb,GAA6B,IAAtC,CAAA;;MAEA,IAAI,CAAC5O,EAAL,EAAS;AACP,QAAA,SAAA;AACD,OAAA;;AAED,MAAA,IAAI25F,QAAQ,GAAG35F,EAAE,CAACy1B,MAAlB,CAAA;AACA,MAAA,IAAIqlJ,aAAa,GAAG3yG,OAAK,CAACwxB,QAAD,CAAzB,CAAA;AACA,MAAA,IAAIohF,aAAa,GAAGphF,QAAQ,KAAK2/E,SAAb,GAAyB;AAC3C90K,QAAAA,KAAK,EAAEm2K,QADoC;AAE3Cl2K,QAAAA,MAAM,EAAEm2K,SAAAA;AAFmC,OAAzB,GAGhB;QACFp2K,KAAK,EAAEs2K,aAAa,CAACt2K,KADnB;QAEFC,MAAM,EAAEq2K,aAAa,CAACr2K,MAAAA;AAFpB,OAHJ,CAX8C;AAkB9C;AACA;AACA;;MAEA,IAAIu2K,SAAS,GAAG,EAAhB,CAAA;AACA,MAAA,IAAIC,QAAQ,GAAG7iD,eAAA,CAA2Bp4H,EAA3B,EAA+BowJ,QAA/B,EAAyC2qB,aAAzC,EAAwD,IAAxD,EAA8D;QAC3EhD,EAAE,EAAE3nB,QAAQ,CAAC2nB,EAD8D;QAE3EmD,YAAY,EAAE9qB,QAAQ,CAAC+qB,QAAAA;OAFV,EAGZH,SAHY,CAAf,CAAA;;MAKA,IAAI,CAAC7yG,OAAK,CAACnoE,EAAD,CAAL,CAAUi6K,KAAX,IAAoBgB,QAAxB,EAAkC;AAChC,QAAA,IAAIlpB,UAAU,GAAG3B,QAAQ,CAAC2B,UAA1B,CAAA;QACA,IAAIqpB,UAAU,GAAG,EAAjB,CAAA;;AAEA,QAAA,KAAK,IAAInxK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmuG,EAAE,CAACr6G,MAAvB,EAA+BkM,CAAC,EAAhC,EAAoC;AAClC,UAAA,IAAInI,GAAG,GAAGs2G,EAAE,CAACnuG,CAAD,CAAZ,CAAA;AACA,UAAA,IAAItL,GAAG,GAAGq8K,SAAS,CAACl5K,GAAD,CAAnB,CAAA;;AAEA,UAAA,IAAIiwJ,UAAU,KAAKD,eAAe,CAACC,UAAD,CAAf,IAA+BtvH,OAAA,CAAesvH,UAAf,EAA2BjwJ,GAA3B,CAAmC,IAAA,CAAvE,CAAd,EAAyF;AACvFs5K,YAAAA,UAAU,CAACt5K,GAAD,CAAV,GAAkBnD,GAAlB,CAAA;AACD,WAFD,MAEO;AACLqB,YAAAA,EAAE,CAAC8B,GAAD,CAAF,GAAUnD,GAAV,CAAA;AACD,WAAA;AACF,SAAA;;QAED84C,aAAW,CAACz3C,EAAD,EAAKo7K,UAAL,EAAiBnC,YAAjB,EAA+B,CAA/B,CAAX,CAAA;AACD,OAhBD,MAgBO;QACLj5K,EAAE,CAACkwB,IAAH,CAAQ8qJ,SAAR,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GA1EH,CAAA;AA4EA;AACF;AACA;;;AAGEjC,EAAAA,oBAAoB,CAACh+K,SAArB,CAA+Bm6C,MAA/B,GAAwC,YAAY;IAClD,IAAI/1B,KAAK,GAAG,IAAZ,CAAA;;IAEA,IAAIk6J,KAAK,GAAG,IAAA,CAAKL,MAAjB,CAAA;AACAK,IAAAA,KAAK,CAAC5xK,IAAN,CAAW,UAAUzH,EAAV,EAAc;AACvBm6K,MAAAA,QAAQ,CAACn6K,EAAD,EAAKmoE,OAAK,CAACnoE,EAAD,CAAL,CAAU4rB,MAAf,EAAuBytJ,KAAvB,EAA8Bl6J,KAAK,CAAC+5J,iBAApC,CAAR,CAAA;KADF,CAAA,CAAA;AAGA,IAAA,IAAA,CAAKF,MAAL,GAAcv2I,aAAA,EAAd,CAAA;GAPF,CAAA;;AAUAs2I,EAAAA,oBAAoB,CAACh+K,SAArB,CAA+B4iB,OAA/B,GAAyC,YAAY;AACnD,IAAA,IAAA,CAAKu3B,MAAL,EAAA,CAAA;GADF,CAAA;;EAIA6jI,oBAAoB,CAACjrK,IAArB,GAA4B,SAA5B,CAAA;AACA,EAAA,OAAOirK,oBAAP,CAAA;AACD,CArRD,CAqRE7wG,aArRF,CAFA,CAAA;;AA2RA,SAASsyG,KAAT,CAAehjB,WAAf,EAA4B;AAC1B,EAAA,IAAIrlJ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCowB,IAAAA,MAAA,CAAc+0H,WAAd,EAA2B,0BAA3B,CAAA,CAAA;AACD,GAAA;;EAED,IAAIM,GAAG,GAAGr1H,MAAA,CAAco2I,uBAAd,EAAuCrhB,WAAvC,CAAoD;AAC9D;IACEqhB,uBAAuB,CAACrhB,WAAD,CAFf,GAE+Bh0B,aAAA,CAA0Bg0B,WAA1B,CAFzC,CAAA;;AAIA,EAAA,IAAIrlJ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;IACzCowB,MAAA,CAAcq1H,GAAd,EAAmB,eAAkBN,GAAAA,WAAlB,GAAgC,mBAAnD,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAIx3J,EAAE,GAAG,IAAI83J,GAAJ,CAAQ,EAAR,CAAT,CAAA;AACA3vF,EAAAA,OAAK,CAACnoE,EAAD,CAAL,CAAU8N,IAAV,GAAiB0pJ,WAAjB,CAAA;AACA,EAAA,OAAOx3J,EAAP,CAAA;AACD,CAAA;;AAED,SAASu3J,QAAT,CAAkB3oJ,EAAlB,EAAsB8qK,cAAtB,EAAsCliB,WAAtC,EAAmD6hB,KAAnD,EAA0D;AACxD,EAAA,IAAIr5K,EAAE,GAAGw6K,KAAK,CAAChjB,WAAD,CAAd,CAAA;EACAkiB,cAAc,CAAC/sJ,GAAf,CAAmB3sB,EAAnB,CAAA,CAAA;AACAq5K,EAAAA,KAAK,CAACrsH,GAAN,CAAUp+C,EAAV,EAAc5O,EAAd,CAAA,CAAA;AACAmoE,EAAAA,OAAK,CAACnoE,EAAD,CAAL,CAAU4O,EAAV,GAAeA,EAAf,CAAA;AACAu5D,EAAAA,OAAK,CAACnoE,EAAD,CAAL,CAAUi6K,KAAV,GAAkB,IAAlB,CAAA;AACA,EAAA,OAAOj6K,EAAP,CAAA;AACD,CAAA;;AAED,SAASm6K,QAAT,CAAkBV,UAAlB,EAA8BrpB,QAA9B,EAAwCipB,KAAxC,EAA+CJ,YAA/C,EAA6D;AAC3D,EAAA,IAAIoC,aAAa,GAAG5B,UAAU,IAAIA,UAAU,CAAChkJ,MAA7C,CAAA;;AAEA,EAAA,IAAI4lJ,aAAJ,EAAmB;IACjB5B,UAAU,CAAC3rK,IAAX,KAAoB,OAApB,IAA+B2rK,UAAU,CAACvhJ,QAAX,CAAoB,UAAUl4B,EAAV,EAAc;MAC/Dm6K,QAAQ,CAACn6K,EAAD,EAAKowJ,QAAL,EAAeipB,KAAf,EAAsBJ,YAAtB,CAAR,CAAA;AACD,KAF8B,CAA/B,CAAA;AAGArnB,IAAAA,oBAAoB,CAAC6nB,UAAD,EAAarpB,QAAb,EAAuB6oB,YAAvB,CAApB,CAAA;IACAI,KAAK,CAACh6F,SAAN,CAAgBlX,OAAK,CAACsxG,UAAD,CAAL,CAAkB7qK,EAAlC,CAAA,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASsrK,iBAAT,CAA2Bl6K,EAA3B,EAA+BowJ,QAA/B,EAAyCkrB,QAAzC,EAAmDC,aAAnD,EAAkE;AAChE,EAAA,IAAI,CAACv7K,EAAE,CAACg4B,OAAR,EAAiB;AACfyK,IAAAA,MAAA,CAAY,CAAC,CAAC,QAAD,EAAW2kD,WAAW,CAACrsF,SAAZ,CAAsBu2B,MAAjC,CAAD;AACZ;AACA,IAAA,CAAC,QAAD,EAAWiqJ,aAAa,IAAI,CAA5B,CAFY,EAEoB,CAAC,GAAD,EAAMD,QAAQ,IAAI,CAAlB,CAFpB;IAGZ,CAAC,IAAD,EAAO,CAAP,CAHY,CAAZ,EAGY,UAAUhuK,IAAV,EAAgB;AAC1B,MAAA,IAAI1N,IAAI,GAAG0N,IAAI,CAAC,CAAD,CAAf,CAAA;;MAEA,IAAIm1B,MAAA,CAAc2tH,QAAd,EAAwBxwJ,IAAxB,CAAJ,EAAmC;AACjCI,QAAAA,EAAE,CAACJ,IAAD,CAAF,GAAW6iC,SAAA,CAAiB2tH,QAAQ,CAACxwJ,IAAD,CAAzB,EAAiC0N,IAAI,CAAC,CAAD,CAArC,CAAX,CAAA;OADF,MAEO,IAAItN,EAAE,CAACJ,IAAD,CAAF,IAAY,IAAhB,EAAsB;AAC3BI,QAAAA,EAAE,CAACJ,IAAD,CAAF,GAAW0N,IAAI,CAAC,CAAD,CAAf,CAAA;AACD,OAAA;KAVH,CAAA,CAAA;AAYD,GAAA;;AAEDm1B,EAAAA,MAAA,CAAYA,IAAA,CAAY2tH,QAAZ,CAAZ,EAAmC,UAAUtuJ,GAAV,EAAe;AAChD;AACA;AACA,IAAA,IAAIA,GAAG,CAACmG,OAAJ,CAAY,IAAZ,CAAA,KAAsB,CAA1B,EAA6B;AAC3B,MAAA,IAAItJ,GAAG,GAAGyxJ,QAAQ,CAACtuJ,GAAD,CAAlB,CAAA;AACA9B,MAAAA,EAAE,CAAC8B,GAAD,CAAF,GAAU2gC,UAAA,CAAkB9jC,GAAlB,CAAA,GAAyBA,GAAzB,GAA+B,IAAzC,CAAA;AACD,KAAA;GANH,CAAA,CAAA;;EASA,IAAI8jC,MAAA,CAAc2tH,QAAd,EAAwB,WAAxB,CAAJ,EAA0C;AACxCpwJ,IAAAA,EAAE,CAACoxB,SAAH,GAAeg/H,QAAQ,CAACh/H,SAAxB,CAAA;AACD,GA3B+D;;;EA8BhEg/H,QAAQ,CAAC3uJ,IAAT,IAAiB,IAAjB,KAA0BzB,EAAE,CAACyB,IAAH,GAAU2uJ,QAAQ,CAAC3uJ,IAA7C,CAAA,CAAA;EACA2uJ,QAAQ,CAACxhJ,EAAT,IAAe,IAAf,KAAwB5O,EAAE,CAAC4O,EAAH,GAAQwhJ,QAAQ,CAACxhJ,EAAzC,CAAA,CAAA;AACD;;;AAGD,SAASirK,kBAAT,CAA4BzpB,QAA5B,EAAsC;EACpCA,QAAQ,GAAG3tH,MAAA,CAAc,EAAd,EAAkB2tH,QAAlB,CAAX,CAAA;EACA3tH,MAAA,CAAY,CAAC,IAAD,EAAO,UAAP,EAAmB,SAAnB,EAA8B,IAA9B,EAAoC,UAApC,EAAgD,aAAhD,EAA+D,UAA/D,CAA2EotC,CAAAA,MAA3E,CAAkFuoD,eAAlF,CAAZ,EAA2H,UAAU32H,IAAV,EAAgB;IACzI,OAAO2uJ,QAAQ,CAAC3uJ,IAAD,CAAf,CAAA;GADF,CAAA,CAAA;AAGA,EAAA,OAAO2uJ,QAAP,CAAA;AACD,CAAA;;AAED,SAASqqB,YAAT,CAAsBz6K,EAAtB,EAA0Bi5K,YAA1B,EAAwC7oB,QAAxC,EAAkD;EAChD,IAAI7kH,SAAS,GAAGtW,SAAS,CAACj1B,EAAD,CAAT,CAAcurC,SAA9B,CADgD;;AAGhD,EAAA,IAAI,CAACvrC,EAAE,CAACuxB,MAAJ,IAAc,CAACvxB,EAAE,CAACq3C,MAAlB,IAA4B,CAAC9L,SAAjC,EAA4C;AAC1CA,IAAAA,SAAS,GAAGtW,SAAS,CAACj1B,EAAD,CAAT,CAAcurC,SAAd,GAA0B;AACpCC,MAAAA,aAAa,EAAE,SADqB;MAEpCE,cAAc,EAAEutI,YAAY,CAACvtI,cAFO;MAGpCjqC,IAAI,EAAEzB,EAAE,CAACyB,IAAAA;KAHX,CAAA;AAKD,GAT+C;AAUhD;;;AAGA,EAAA,IAAI8pC,SAAJ,EAAe;AACbA,IAAAA,SAAS,CAACmN,IAAV,GAAiB03G,QAAQ,CAAC13G,IAA1B,CAAA;AACD,GAAA;AACF;;ACjcD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAASv6B,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiCimH,qBAAjC,CAAA,CAAA;EACA95J,SAAS,CAACksD,qBAAV,CAAgCyuG,oBAAhC,CAAA,CAAA;AACA36J,EAAAA,SAAS,CAACosD,oBAAV,CAA+B,UAAU5+C,MAAV,EAAkB;AAC/C,IAAA,IAAI4vJ,aAAa,GAAG5vJ,MAAM,CAACkG,OAA3B,CAD+C;AAE/C;AACA;AACA;AACA;AACA;;AAEA,IAAA,IAAI1a,SAAO,CAACokK,aAAD,CAAX,EAA4B;AAC1B,MAAA,IAAI,CAACA,aAAa,CAAC,CAAD,CAAd,IAAqB,CAACA,aAAa,CAAC,CAAD,CAAb,CAAiBpD,QAA3C,EAAqD;QACnDxsJ,MAAM,CAACkG,OAAP,GAAiB,CAAC;AAChBsmJ,UAAAA,QAAQ,EAAEoD,aAAAA;AADM,SAAD,CAAjB,CAAA;AAGD,OAJD,MAIO;AACL;AACA;QACA5vJ,MAAM,CAACkG,OAAP,GAAiB,CAAClG,MAAM,CAACkG,OAAP,CAAe,CAAf,CAAD,CAAjB,CAAA;AACD,OAAA;KATH,MAUO,IAAI0pJ,aAAa,IAAI,CAACA,aAAa,CAACpD,QAApC,EAA8C;MACnDxsJ,MAAM,CAACkG,OAAP,GAAiB,CAAC;QAChBsmJ,QAAQ,EAAE,CAACoD,aAAD,CAAA;AADM,OAAD,CAAjB,CAAA;AAGD,KAAA;GAtBH,CAAA,CAAA;AAwBD;;ACxED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BO,IAAIC,yBAAyB,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,QAAX,EAAqB,OAArB,EAA8B,QAA9B,CAAhC;AACP;;AAEA,IAAIC,aAAa,GAAG,CAAC,aAAD,EAAgB,OAAhB,EAAyB,YAAzB,CAApB,CAAA;AACO,SAASC,gBAAT,CAA0BlqJ,WAA1B,EAAuC;AAC5C,EAAA,IAAImqJ,SAAS,GAAGnqJ,WAAW,CAACyB,GAAZ,CAAgB,kBAAhB,CAAhB,CAAA;AACA,EAAA,OAAOjrB,OAAO,CAACyzK,aAAD,EAAgBE,SAAhB,CAAP,IAAqC,CAA5C,CAAA;AACD,CAAA;AACM,SAASC,eAAT,CAAyB/lH,OAAzB,EAAkC;AACvC,EAAA,IAAI3jD,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;IACzCqB,MAAM,CAACoiD,OAAD,CAAN,CAAA;AACD,GAAA;;EAED,OAAOA,OAAO,GAAG,MAAjB,CAAA;AACD,CAAA;AACM,SAASgmH,oBAAT,CAA8BhmH,OAA9B,EAAuC;AAC5C,EAAA,IAAI3jD,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;IACzCqB,MAAM,CAACoiD,OAAD,CAAN,CAAA;AACD,GAAA;;EAED,OAAOA,OAAO,GAAG,WAAjB,CAAA;AACD,CAAA;AACM,SAASimH,iBAAT,CAA2BjmH,OAA3B,EAAoC;AACzC,EAAA,IAAI3jD,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;IACzCqB,MAAM,CAACoiD,OAAD,CAAN,CAAA;AACD,GAAA;;EAED,OAAOA,OAAO,GAAG,QAAjB,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;;AAEO,SAASkmH,qBAAT,CAA+BlzI,OAA/B,EAAwC+C,OAAxC,EAAiD;AACtD;EACA,IAAIowI,WAAW,GAAG9+F,aAAa,EAA/B,CAAA;AACA,EAAA,IAAI++F,cAAc,GAAG,EAArB,CAHsD;;AAKtD,EAAA,IAAIC,gBAAgB,GAAGh/F,aAAa,EAApC,CALsD;;EAOtDr0C,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,IAAAA,QAAQ,EAAE,UADU;AAEpBC,IAAAA,KAAK,EAAE/S,OAAAA;GAFT,EAGG,UAAUuwI,aAAV,EAAyB;IAC1B,IAAI,CAACD,gBAAgB,CAACjpJ,GAAjB,CAAqBkpJ,aAAa,CAACp5F,GAAnC,CAAL,EAA8C;MAC5Cq5F,aAAa,CAACD,aAAD,CAAb,CAAA;AACD,KAAA;AACF,GAPD,EAPsD;AAetD;;AAEA,EAAA,IAAIE,YAAJ,CAAA;;EAEA,GAAG;AACDA,IAAAA,YAAY,GAAG,KAAf,CAAA;AACAxzI,IAAAA,OAAO,CAAC4V,aAAR,CAAsB,UAAtB,EAAkC69H,aAAlC,CAAA,CAAA;AACD,GAHD,QAGSD,YAHT,EAAA;;EAKA,SAASC,aAAT,CAAuBH,aAAvB,EAAsC;AACpC,IAAA,IAAI,CAACD,gBAAgB,CAACjpJ,GAAjB,CAAqBkpJ,aAAa,CAACp5F,GAAnC,CAAD,IAA4Cw5F,QAAQ,CAACJ,aAAD,CAAxD,EAAyE;MACvEC,aAAa,CAACD,aAAD,CAAb,CAAA;AACAE,MAAAA,YAAY,GAAG,IAAf,CAAA;AACD,KAAA;AACF,GAAA;;EAED,SAASD,aAAT,CAAuBI,QAAvB,EAAiC;AAC/BN,IAAAA,gBAAgB,CAACnvH,GAAjB,CAAqByvH,QAAQ,CAACz5F,GAA9B,EAAmC,IAAnC,CAAA,CAAA;IACAk5F,cAAc,CAACp9K,IAAf,CAAoB29K,QAApB,CAAA,CAAA;IACAC,kBAAkB,CAACD,QAAD,CAAlB,CAAA;AACD,GAAA;;EAED,SAASD,QAAT,CAAkBJ,aAAlB,EAAiC;IAC/B,IAAIO,MAAM,GAAG,KAAb,CAAA;AACAP,IAAAA,aAAa,CAACQ,cAAd,CAA6B,UAAU9mH,OAAV,EAAmB2E,SAAnB,EAA8B;AACzD,MAAA,IAAIoiH,UAAU,GAAGZ,WAAW,CAAC/oJ,GAAZ,CAAgB4iC,OAAhB,CAAjB,CAAA;;AAEA,MAAA,IAAI+mH,UAAU,IAAIA,UAAU,CAACpiH,SAAD,CAA5B,EAAyC;AACvCkiH,QAAAA,MAAM,GAAG,IAAT,CAAA;AACD,OAAA;KALH,CAAA,CAAA;AAOA,IAAA,OAAOA,MAAP,CAAA;AACD,GAAA;;EAED,SAASD,kBAAT,CAA4BN,aAA5B,EAA2C;AACzCA,IAAAA,aAAa,CAACQ,cAAd,CAA6B,UAAU9mH,OAAV,EAAmB2E,SAAnB,EAA8B;AACzD,MAAA,CAACwhH,WAAW,CAAC/oJ,GAAZ,CAAgB4iC,OAAhB,KAA4BmmH,WAAW,CAACjvH,GAAZ,CAAgB8I,OAAhB,EAAyB,EAAzB,CAA7B,EAA2D2E,SAA3D,IAAwE,IAAxE,CAAA;KADF,CAAA,CAAA;AAGD,GAAA;;AAED,EAAA,OAAOyhH,cAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASY,6BAAT,CAAuCV,aAAvC,EAAsD;AAC3D,EAAA,IAAItzI,OAAO,GAAGszI,aAAa,CAACtzI,OAA5B,CAAA;AACA,EAAA,IAAIi0I,gBAAgB,GAAG;AACrBC,IAAAA,QAAQ,EAAE,EADW;AAErBC,IAAAA,OAAO,EAAE9/F,aAAa,EAAA;GAFxB,CAAA;AAIAi/F,EAAAA,aAAa,CAACQ,cAAd,CAA6B,UAAU9mH,OAAV,EAAmB2E,SAAnB,EAA8B;AACzD,IAAA,IAAI1f,SAAS,GAAGjS,OAAO,CAACw7B,YAAR,CAAqBu3G,eAAe,CAAC/lH,OAAD,CAApC,EAA+C2E,SAA/C,CAAhB,CAAA;;IAEA,IAAI,CAAC1f,SAAL,EAAgB;AACd,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI+pB,aAAa,GAAG/pB,SAAS,CAACiT,gBAAV,EAApB,CAAA;;IAEA,IAAI,CAAC8W,aAAL,EAAoB;AAClB,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIo4G,WAAW,GAAGp4G,aAAa,CAACke,GAAhC,CAAA;IACA,IAAIm6F,YAAY,GAAGJ,gBAAgB,CAACE,OAAjB,CAAyB/pJ,GAAzB,CAA6BgqJ,WAA7B,CAAnB,CAAA;;IAEA,IAAI,CAACC,YAAL,EAAmB;AACjBA,MAAAA,YAAY,GAAG;AACbnmI,QAAAA,KAAK,EAAE8tB,aADM;AAEb6wD,QAAAA,UAAU,EAAE,EAAA;OAFd,CAAA;AAIAonD,MAAAA,gBAAgB,CAACC,QAAjB,CAA0Bl+K,IAA1B,CAA+Bq+K,YAA/B,CAAA,CAAA;AACAJ,MAAAA,gBAAgB,CAACE,OAAjB,CAAyBjwH,GAAzB,CAA6BkwH,WAA7B,EAA0CC,YAA1C,CAAA,CAAA;AACD,KAAA;;AAEDA,IAAAA,YAAY,CAACxnD,UAAb,CAAwB72H,IAAxB,CAA6Bi8C,SAA7B,CAAA,CAAA;GAzBF,CAAA,CAAA;AA2BA,EAAA,OAAOgiI,gBAAP,CAAA;AACD;;AC5LD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,IAAIK,gBAAgB;AACpB;AACA,YAAY;AACV,EAAA,SAASA,gBAAT,GAA4B;IAC1B,IAAKC,CAAAA,SAAL,GAAiB,EAAjB,CAAA;IACA,IAAKC,CAAAA,QAAL,GAAgB,EAAhB,CAAA;AACD,GAAA;;AAEDF,EAAAA,gBAAgB,CAACriL,SAAjB,CAA2B4xB,GAA3B,GAAiC,UAAU4wJ,WAAV,EAAuB;AACtD;AACA,IAAA,IAAI,CAAC,IAAKD,CAAAA,QAAL,CAAcC,WAAd,CAAL,EAAiC;AAC/B,MAAA,IAAA,CAAKF,SAAL,CAAev+K,IAAf,CAAoBy+K,WAApB,CAAA,CAAA;AACA,MAAA,IAAA,CAAKD,QAAL,CAAcC,WAAd,CAAA,GAA6B,IAA7B,CAAA;AACD,KAAA;GALH,CAAA;;AAQA,EAAA,OAAOH,gBAAP,CAAA;AACD,CAfD,EAFA,CAAA;;AAmBA,IAAII,aAAa;AACjB;AACA,UAAUv+J,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACs+J,aAAD,EAAgBv+J,MAAhB,CAAT,CAAA;;AAEA,EAAA,SAASu+J,aAAT,GAAyB;AACvB,IAAA,IAAIr+J,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa0vK,aAAa,CAAC1vK,IAA3B,CAAA;IACAqR,KAAK,CAACs+J,aAAN,GAAsB,IAAtB,CAAA;IACAt+J,KAAK,CAACu+J,SAAN,GAAkB,IAAlB,CAAA;AACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEIv+J,IAAAA,KAAK,CAACw+J,cAAN,GAAuB,CAAC,SAAD,EAAY,SAAZ,CAAvB,CAAA;AACA,IAAA,OAAOx+J,KAAP,CAAA;AACD,GAAA;;EAEDq+J,aAAa,CAACziL,SAAd,CAAwBytC,IAAxB,GAA+B,UAAU5c,MAAV,EAAkBsgD,WAAlB,EAA+BpjC,OAA/B,EAAwC;AACrE,IAAA,IAAI80I,cAAc,GAAGC,iBAAiB,CAACjyJ,MAAD,CAAtC,CAAA;AACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEI,IAAKkyJ,CAAAA,aAAL,GAAqBF,cAArB,CAAA;AACA,IAAA,IAAA,CAAK1sH,oBAAL,CAA0BtlC,MAA1B,EAAkCkd,OAAlC,CAAA,CAAA;;IAEA,IAAKi1I,CAAAA,OAAL,CAAaH,cAAb,CAAA,CAAA;GA3BF,CAAA;;AA8BAJ,EAAAA,aAAa,CAACziL,SAAd,CAAwBquD,WAAxB,GAAsC,UAAUmsE,SAAV,EAAqB;AACzD,IAAA,IAAIqoD,cAAc,GAAGC,iBAAiB,CAACtoD,SAAD,CAAtC,CADyD;;AAGzDxkE,IAAAA,KAAK,CAAC,IAAKnlC,CAAAA,MAAN,EAAc2pG,SAAd,EAAyB,IAAzB,CAAL,CAAA;AACAxkE,IAAAA,KAAK,CAAC,IAAK+sH,CAAAA,aAAN,EAAqBF,cAArB,EAAqC,IAArC,CAAL,CAAA;;IAEA,IAAKG,CAAAA,OAAL,CAAaH,cAAb,CAAA,CAAA;GANF,CAAA;;AASAJ,EAAAA,aAAa,CAACziL,SAAd,CAAwBgjL,OAAxB,GAAkC,UAAUH,cAAV,EAA0B;IAC1D,IAAIhsH,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;;IAEA,IAAKoyJ,CAAAA,mBAAL,CAAyBJ,cAAzB,CAAA,CAAA;;IAEA,IAAKK,CAAAA,eAAL,CAAqBL,cAArB,CAAA,CAAA;;IAEA,IAAIE,aAAa,GAAG,IAAA,CAAKA,aAAzB,CAAA;AACAr2K,IAAAA,MAAI,CAAC,CAAC,CAAC,OAAD,EAAU,YAAV,CAAD,EAA0B,CAAC,KAAD,EAAQ,UAAR,CAA1B,CAAD,EAAiD,UAAU6rF,KAAV,EAAiBt5C,KAAjB,EAAwB;AAC3E;AACA;AACA;AACA,MAAA,IAAI,KAAK2jI,cAAL,CAAoB3jI,KAApB,CAAA,KAA+B,OAAnC,EAA4C;AAC1C4X,QAAAA,UAAU,CAAC0hC,KAAK,CAAC,CAAD,CAAN,CAAV,GAAuBwqF,aAAa,CAACxqF,KAAK,CAAC,CAAD,CAAN,CAAb,GAA0B,IAAjD,CAAA;AACD,OAN0E;;KAAzE,EAQD,IARC,CAAJ,CAAA;;AAUA,IAAA,IAAA,CAAK4qF,YAAL,EAAA,CAAA;GAlBF,CAAA;;AAqBAV,EAAAA,aAAa,CAACziL,SAAd,CAAwBmjL,YAAxB,GAAuC,YAAY;IACjD,IAAIC,YAAY,GAAG,IAAKjrJ,CAAAA,GAAL,CAAS,QAAT,EAAmB,IAAnB,CAAnB,CAAA;AACA,IAAA,IAAIkrJ,kBAAkB,GAAG,IAAA,CAAKC,kBAAL,GAA0BlhG,aAAa,EAAhE,CAAA;;AAEA,IAAA,IAAImhG,gBAAgB,GAAG,IAAA,CAAKC,wBAAL,CAA8BH,kBAA9B,CAAvB,CAAA;;AAEA,IAAA,IAAIE,gBAAJ,EAAsB;AACpB,MAAA,IAAA,CAAKrK,OAAL,GAAekK,YAAY,IAAI,IAAA,CAAKK,2BAAL,EAA/B,CAAA;AACD,KAFD,MAEO;AACL,MAAA,IAAA,CAAKvK,OAAL,GAAekK,YAAY,IAAI,YAA/B,CAAA;;AAEA,MAAA,IAAA,CAAKM,2BAAL,CAAiCL,kBAAjC,EAAqD,KAAKnK,OAA1D,CAAA,CAAA;AACD,KAAA;;IAED,IAAKyJ,CAAAA,SAAL,GAAiB,IAAjB,CAAA;AACAU,IAAAA,kBAAkB,CAAC32K,IAAnB,CAAwB,UAAUo+D,QAAV,EAAoB;AAC1C,MAAA,IAAIA,QAAQ,CAACw3G,SAAT,CAAmBt/K,MAAvB,EAA+B;QAC7B,IAAK2/K,CAAAA,SAAL,GAAiB,KAAjB,CAAA;AACD,OAAA;AACF,KAJD,EAIG,IAJH,CAAA,CAAA;GAfF,CAAA;;AAsBAF,EAAAA,aAAa,CAACziL,SAAd,CAAwBwjL,wBAAxB,GAAmD,UAAUH,kBAAV,EAA8B;IAC/E,IAAIE,gBAAgB,GAAG,KAAvB,CAAA;AACA72K,IAAAA,MAAI,CAACg0K,yBAAD,EAA4B,UAAU3lH,OAAV,EAAmB;AACjD,MAAA,IAAI4oH,QAAQ,GAAG,IAAKzwH,CAAAA,sBAAL,CAA4B4tH,eAAe,CAAC/lH,OAAD,CAA3C,EAAsD6oH,kBAAtD,CAAf,CADiD;AAEjD;AACA;;AAEA,MAAA,IAAI,CAACD,QAAQ,CAACE,SAAd,EAAyB;AACvB,QAAA,OAAA;AACD,OAAA;;AAEDN,MAAAA,gBAAgB,GAAG,IAAnB,CAAA;AACA,MAAA,IAAIz4G,QAAQ,GAAG,IAAIu3G,gBAAJ,EAAf,CAAA;AACA31K,MAAAA,MAAI,CAACi3K,QAAQ,CAACvwH,MAAV,EAAkB,UAAUpT,SAAV,EAAqB;AACzC8qB,QAAAA,QAAQ,CAACl5C,GAAT,CAAaouB,SAAS,CAACrP,cAAvB,CAAA,CAAA;AACD,OAFG,CAAJ,CAAA;AAGA0yI,MAAAA,kBAAkB,CAACpxH,GAAnB,CAAuB8I,OAAvB,EAAgC+P,QAAhC,CAAA,CAAA;KAdE,EAeD,IAfC,CAAJ,CAAA;AAgBA,IAAA,OAAOy4G,gBAAP,CAAA;GAlBF,CAAA;;EAqBAd,aAAa,CAACziL,SAAd,CAAwB0jL,2BAAxB,GAAsD,UAAUL,kBAAV,EAA8B7nF,MAA9B,EAAsC;IAC1F,IAAIztD,OAAO,GAAG,IAAA,CAAKA,OAAnB,CAAA;AACA,IAAA,IAAI+1I,QAAQ,GAAG,IAAf,CAF0F;;AAI1F,IAAA,IAAIA,QAAJ,EAAc;MACZ,IAAI/oH,OAAO,GAAGygC,MAAM,KAAK,UAAX,GAAwB,GAAxB,GAA8B,GAA5C,CAAA;AACA,MAAA,IAAIo/B,UAAU,GAAG7sF,OAAO,CAAC2X,cAAR,CAAuB;QACtC9B,QAAQ,EAAEmX,OAAO,GAAG,MAAA;AADkB,OAAvB,CAAjB,CAAA;AAGAgpH,MAAAA,eAAe,CAACnpD,UAAD,EAAa7/D,OAAb,CAAf,CAAA;AACD,KAVyF;;;AAa1F,IAAA,IAAI+oH,QAAJ,EAAc;AACZ,MAAA,IAAIlpD,UAAU,GAAG7sF,OAAO,CAAC2X,cAAR,CAAuB;AACtC9B,QAAAA,QAAQ,EAAE,YAD4B;QAEtCjzC,MAAM,EAAE,SAAUqvC,MAAAA,CAAAA,SAAV,EAAqB;UAC3B,OAAOA,SAAS,CAAC7nB,GAAV,CAAc,QAAd,EAAwB,IAAxB,MAAkCqjE,MAAzC,CAAA;AACD,SAAA;AAJqC,OAAvB,CAAjB,CAAA;AAMAuoF,MAAAA,eAAe,CAACnpD,UAAD,EAAa,QAAb,CAAf,CAAA;AACD,KAAA;;AAED,IAAA,SAASmpD,eAAT,CAAyBnpD,UAAzB,EAAqC7/D,OAArC,EAA8C;AAC5C;AACA,MAAA,IAAI/a,SAAS,GAAG46E,UAAU,CAAC,CAAD,CAA1B,CAAA;;MAEA,IAAI,CAAC56E,SAAL,EAAgB;AACd,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAI8qB,QAAQ,GAAG,IAAIu3G,gBAAJ,EAAf,CAAA;AACAv3G,MAAAA,QAAQ,CAACl5C,GAAT,CAAaouB,SAAS,CAACrP,cAAvB,CAAA,CAAA;AACA0yI,MAAAA,kBAAkB,CAACpxH,GAAnB,CAAuB8I,OAAvB,EAAgC+P,QAAhC,CAAA,CAAA;MACAg5G,QAAQ,GAAG,KAAX,CAX4C;;AAa5C,MAAA,IAAI/oH,OAAO,KAAK,GAAZ,IAAmBA,OAAO,KAAK,GAAnC,EAAwC;AACtC,QAAA,IAAIipH,WAAW,GAAGhkI,SAAS,CAACkT,sBAAV,CAAiC,MAAjC,EAAyCC,gBAAzC,CAAA,CAA2DC,MAA3D,CAAkE,CAAlE,CAAlB,CAAA;AACA4wH,QAAAA,WAAW,IAAIt3K,MAAI,CAACkuH,UAAD,EAAa,UAAUqpD,OAAV,EAAmB;UACjD,IAAIjkI,SAAS,CAACrP,cAAV,KAA6BszI,OAAO,CAACtzI,cAArC,IAAuDqzI,WAAW,KAAKC,OAAO,CAAC/wH,sBAAR,CAA+B,MAA/B,EAAuCC,gBAAvC,EAAyDC,MAAzD,CAAgE,CAAhE,CAA3E,EAA+I;AAC7I0X,YAAAA,QAAQ,CAACl5C,GAAT,CAAaqyJ,OAAO,CAACtzI,cAArB,CAAA,CAAA;AACD,WAAA;AACF,SAJkB,CAAnB,CAAA;AAKD,OAAA;AACF,KAAA;;AAED,IAAA,IAAImzI,QAAJ,EAAc;AACZ;AACAp3K,MAAAA,MAAI,CAACg0K,yBAAD,EAA4B,UAAU3lH,OAAV,EAAmB;QACjD,IAAI,CAAC+oH,QAAL,EAAe;AACb,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAIlpD,UAAU,GAAG7sF,OAAO,CAAC2X,cAAR,CAAuB;AACtC9B,UAAAA,QAAQ,EAAEk9H,eAAe,CAAC/lH,OAAD,CADa;UAEtCpqD,MAAM,EAAE,SAAUqvC,MAAAA,CAAAA,SAAV,EAAqB;YAC3B,OAAOA,SAAS,CAAC7nB,GAAV,CAAc,MAAd,EAAsB,IAAtB,MAAgC,UAAvC,CAAA;AACD,WAAA;AAJqC,SAAvB,CAAjB,CAAA;;AAOA,QAAA,IAAIyiG,UAAU,CAAC,CAAD,CAAd,EAAmB;AACjB,UAAA,IAAI9vD,QAAQ,GAAG,IAAIu3G,gBAAJ,EAAf,CAAA;UACAv3G,QAAQ,CAACl5C,GAAT,CAAagpG,UAAU,CAAC,CAAD,CAAV,CAAcjqF,cAA3B,CAAA,CAAA;AACA0yI,UAAAA,kBAAkB,CAACpxH,GAAnB,CAAuB8I,OAAvB,EAAgC+P,QAAhC,CAAA,CAAA;AACAg5G,UAAAA,QAAQ,GAAG,KAAX,CAAA;AACD,SAAA;OAjBC,EAkBD,IAlBC,CAAJ,CAAA;AAmBD,KAAA;GAnEH,CAAA;;AAsEArB,EAAAA,aAAa,CAACziL,SAAd,CAAwByjL,2BAAxB,GAAsD,YAAY;IAChE,IAAI1lJ,GAAJ,CADgE;;AAGhE,IAAA,IAAA,CAAK8jJ,cAAL,CAAoB,UAAU9mH,OAAV,EAAmB;AACrC,MAAA,CAACh9B,GAAD,KAASA,GAAG,GAAGg9B,OAAf,CAAA,CAAA;AACD,KAFD,EAEG,IAFH,CAAA,CAAA;AAGA,IAAA,OAAOh9B,GAAG,KAAK,GAAR,GAAc,UAAd,GAA2B,YAAlC,CAAA;GANF,CAAA;;AASA0kJ,EAAAA,aAAa,CAACziL,SAAd,CAAwBijL,mBAAxB,GAA8C,UAAUJ,cAAV,EAA0B;AACtE;AACA,IAAA,IAAIA,cAAc,CAAC5yJ,cAAf,CAA8B,UAA9B,CAAJ,EAA+C;MAC7C,IAAKyyJ,CAAAA,aAAL,GAAqB,KAArB,CAAA;AACD,KAAA;;IAED,IAAI,IAAA,CAAKA,aAAT,EAAwB;AACtB,MAAA,IAAIwB,YAAY,GAAG,IAAKn2I,CAAAA,OAAL,CAAald,MAAhC,CAAA;AACA,MAAA,IAAA,CAAKA,MAAL,CAAYiyB,QAAZ,GAAuBohI,YAAY,CAACt3K,SAAb,IAA0Bs3K,YAAY,CAACl0H,uBAAb,GAAuC,CAAjE,GAAqE,GAArE,GAA2E,EAAlG,CAAA;AACD,KAAA;GATH,CAAA;;AAYAyyH,EAAAA,aAAa,CAACziL,SAAd,CAAwBkjL,eAAxB,GAA0C,UAAUL,cAAV,EAA0B;IAClE,IAAIsB,aAAa,GAAG,IAAA,CAAKvB,cAAzB,CAAA;AACA,IAAA,IAAIwB,iBAAiB,GAAG,IAAA,CAAKjsJ,GAAL,CAAS,WAAT,CAAxB,CAAA;AACAzrB,IAAAA,MAAI,CAAC,CAAC,CAAC,OAAD,EAAU,YAAV,CAAD,EAA0B,CAAC,KAAD,EAAQ,UAAR,CAA1B,CAAD,EAAiD,UAAU6rF,KAAV,EAAiBt5C,KAAjB,EAAwB;MAC3E,IAAIolI,gBAAgB,GAAGxB,cAAc,CAACtqF,KAAK,CAAC,CAAD,CAAN,CAAd,IAA4B,IAAnD,CAAA;MACA,IAAI+rF,cAAc,GAAGzB,cAAc,CAACtqF,KAAK,CAAC,CAAD,CAAN,CAAd,IAA4B,IAAjD,CAAA;;AAEA,MAAA,IAAI8rF,gBAAgB,IAAI,CAACC,cAAzB,EAAyC;AACvCH,QAAAA,aAAa,CAACllI,KAAD,CAAb,GAAuB,SAAvB,CAAA;AACD,OAFD,MAEO,IAAI,CAAColI,gBAAD,IAAqBC,cAAzB,EAAyC;AAC9CH,QAAAA,aAAa,CAACllI,KAAD,CAAb,GAAuB,OAAvB,CAAA;OADK,MAEA,IAAImlI,iBAAJ,EAAuB;AAC5BD,QAAAA,aAAa,CAACllI,KAAD,CAAb,GAAuBmlI,iBAAiB,CAACnlI,KAAD,CAAxC,CAAA;OADK,MAEA,IAAIolI,gBAAJ,EAAsB;AAC3B;AACAF,QAAAA,aAAa,CAACllI,KAAD,CAAb,GAAuB,SAAvB,CAAA;AACD,OAb0E;;AAe5E,KAfG,CAAJ,CAAA;GAHF,CAAA;;AAqBAwjI,EAAAA,aAAa,CAACziL,SAAd,CAAwBukL,QAAxB,GAAmC,YAAY;AAC7C,IAAA,OAAO,KAAK5B,SAAZ,CAAA;GADF,CAAA;;AAIAF,EAAAA,aAAa,CAACziL,SAAd,CAAwBwkL,uBAAxB,GAAkD,YAAY;AAC5D,IAAA,IAAIC,cAAJ,CAAA;AACA,IAAA,IAAA,CAAK5C,cAAL,CAAoB,UAAU9mH,OAAV,EAAmB2E,SAAnB,EAA8B;MAChD,IAAI+kH,cAAc,IAAI,IAAtB,EAA4B;AAC1BA,QAAAA,cAAc,GAAG,IAAA,CAAK12I,OAAL,CAAaw7B,YAAb,CAA0Bu3G,eAAe,CAAC/lH,OAAD,CAAzC,EAAoD2E,SAApD,CAAjB,CAAA;AACD,OAAA;AACF,KAJD,EAIG,IAJH,CAAA,CAAA;AAKA,IAAA,OAAO+kH,cAAP,CAAA;GAPF,CAAA;AASA;AACF;AACA;;;EAGEhC,aAAa,CAACziL,SAAd,CAAwB6hL,cAAxB,GAAyC,UAAUx8E,QAAV,EAAoB/1E,OAApB,EAA6B;IACpE,IAAKg0J,CAAAA,kBAAL,CAAwB52K,IAAxB,CAA6B,UAAUo+D,QAAV,EAAoB/P,OAApB,EAA6B;AACxDruD,MAAAA,MAAI,CAACo+D,QAAQ,CAACw3G,SAAV,EAAqB,UAAU5iH,SAAV,EAAqB;AAC5C2lC,QAAAA,QAAQ,CAAChhF,IAAT,CAAciL,OAAd,EAAuByrC,OAAvB,EAAgC2E,SAAhC,CAAA,CAAA;AACD,OAFG,CAAJ,CAAA;KADF,CAAA,CAAA;GADF,CAAA;AAOA;AACF;AACA;;;EAGE+iH,aAAa,CAACziL,SAAd,CAAwB0kL,YAAxB,GAAuC,UAAU3pH,OAAV,EAAmB2E,SAAnB,EAA8B;IACnE,IAAI1f,SAAS,GAAG,IAAK2kI,CAAAA,YAAL,CAAkB5pH,OAAlB,EAA2B2E,SAA3B,CAAhB,CAAA;;AAEA,IAAA,IAAI1f,SAAJ,EAAe;MACb,OAAOA,SAAS,CAAC4kI,aAAjB,CAAA;AACD,KAAA;GALH,CAAA;AAOA;AACF;AACA;;;EAGEnC,aAAa,CAACziL,SAAd,CAAwB2kL,YAAxB,GAAuC,UAAU5pH,OAAV,EAAmB2E,SAAnB,EAA8B;AACnE,IAAA,IAAItoD,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCqB,MAAAA,MAAM,CAACoiD,OAAO,IAAI2E,SAAS,IAAI,IAAzB,CAAN,CAAA;AACD,KAAA;;IAED,IAAIoL,QAAQ,GAAG,IAAKw4G,CAAAA,kBAAL,CAAwBnrJ,GAAxB,CAA4B4iC,OAA5B,CAAf,CAAA;;IAEA,IAAI+P,QAAQ,IAAIA,QAAQ,CAACy3G,QAAT,CAAkB7iH,SAAlB,CAAhB,EAA8C;MAC5C,OAAO,IAAA,CAAK3xB,OAAL,CAAaw7B,YAAb,CAA0Bu3G,eAAe,CAAC/lH,OAAD,CAAzC,EAAoD2E,SAApD,CAAP,CAAA;AACD,KAAA;GATH,CAAA;AAWA;AACF;AACA;;;AAGE+iH,EAAAA,aAAa,CAACziL,SAAd,CAAwB6kL,WAAxB,GAAsC,UAAUzzJ,GAAV,EAAe;IACnD,IAAIylC,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;IACA,IAAIkyJ,aAAa,GAAG,IAAA,CAAKA,aAAzB,CAAA;AACAr2K,IAAAA,MAAI,CAAC,CAAC,CAAC,OAAD,EAAU,YAAV,CAAD,EAA0B,CAAC,KAAD,EAAQ,UAAR,CAA1B,CAAD,EAAiD,UAAU6rF,KAAV,EAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAA,IAAInnE,GAAG,CAACmnE,KAAK,CAAC,CAAD,CAAN,CAAH,IAAiB,IAAjB,IAAyBnnE,GAAG,CAACmnE,KAAK,CAAC,CAAD,CAAN,CAAH,IAAiB,IAA9C,EAAoD;QAClD1hC,UAAU,CAAC0hC,KAAK,CAAC,CAAD,CAAN,CAAV,GAAuBwqF,aAAa,CAACxqF,KAAK,CAAC,CAAD,CAAN,CAAb,GAA0BnnE,GAAG,CAACmnE,KAAK,CAAC,CAAD,CAAN,CAApD,CAAA;QACA1hC,UAAU,CAAC0hC,KAAK,CAAC,CAAD,CAAN,CAAV,GAAuBwqF,aAAa,CAACxqF,KAAK,CAAC,CAAD,CAAN,CAAb,GAA0BnnE,GAAG,CAACmnE,KAAK,CAAC,CAAD,CAAN,CAApD,CAAA;AACD,OAAA;KAbC,EAcD,IAdC,CAAJ,CAAA;;IAgBA,IAAK2qF,CAAAA,eAAL,CAAqB9xJ,GAArB,CAAA,CAAA;GAnBF,CAAA;;AAsBAqxJ,EAAAA,aAAa,CAACziL,SAAd,CAAwB8kL,kBAAxB,GAA6C,UAAU1zJ,GAAV,EAAe;IAC1D,IAAIP,MAAM,GAAG,IAAA,CAAKA,MAAlB,CAAA;AACAnkB,IAAAA,MAAI,CAAC,CAAC,OAAD,EAAU,YAAV,EAAwB,KAAxB,EAA+B,UAA/B,CAAD,EAA6C,UAAUhG,IAAV,EAAgB;AAC/DmqB,MAAAA,MAAM,CAACnqB,IAAD,CAAN,GAAe0qB,GAAG,CAAC1qB,IAAD,CAAlB,CAAA;AACD,KAFG,CAAJ,CAAA;GAFF,CAAA;;AAOA+7K,EAAAA,aAAa,CAACziL,SAAd,CAAwB+kL,eAAxB,GAA0C,YAAY;AACpD,IAAA,IAAIC,SAAS,GAAG,IAAKC,CAAAA,2BAAL,EAAhB,CAAA;;AAEA,IAAA,IAAID,SAAJ,EAAe;MACb,OAAOA,SAAS,CAACE,oBAAV,EAAP,CAAA;AACD,KAAA;GALH,CAAA;AAOA;AACF;AACA;AACA;AACA;;;EAGEzC,aAAa,CAACziL,SAAd,CAAwBmlL,aAAxB,GAAwC,UAAUpqH,OAAV,EAAmB2E,SAAnB,EAA8B;AACpE,IAAA,IAAI3E,OAAO,IAAI,IAAX,IAAmB2E,SAAS,IAAI,IAApC,EAA0C;AACxC,MAAA,IAAIslH,SAAS,GAAG,IAAKC,CAAAA,2BAAL,EAAhB,CAAA;;AAEA,MAAA,IAAID,SAAJ,EAAe;QACb,OAAOA,SAAS,CAACI,kBAAV,EAAP,CAAA;AACD,OAAA;AACF,KAND,MAMO;MACL,OAAO,IAAA,CAAKV,YAAL,CAAkB3pH,OAAlB,EAA2B2E,SAA3B,CAAA,CAAsC0lH,kBAAtC,EAAP,CAAA;AACD,KAAA;GATH,CAAA;AAWA;AACF;AACA;AACA;;;AAGE3C,EAAAA,aAAa,CAACziL,SAAd,CAAwBilL,2BAAxB,GAAsD,UAAUjlI,SAAV,EAAqB;AACzE,IAAA,IAAIA,SAAJ,EAAe;MACb,OAAOA,SAAS,CAAC4kI,aAAjB,CAAA;AACD,KAHwE;;;AAMzE,IAAA,IAAIS,UAAJ,CAAA;;AAEA,IAAA,IAAIC,WAAW,GAAG,IAAA,CAAKhC,kBAAL,CAAwBn7K,IAAxB,EAAlB,CAAA;;AAEA,IAAA,KAAK,IAAIzE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4hL,WAAW,CAACtiL,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C,MAAA,IAAIq3D,OAAO,GAAGuqH,WAAW,CAAC5hL,CAAD,CAAzB,CAAA;;MAEA,IAAIonE,QAAQ,GAAG,IAAKw4G,CAAAA,kBAAL,CAAwBnrJ,GAAxB,CAA4B4iC,OAA5B,CAAf,CAAA;;AAEA,MAAA,KAAK,IAAInyC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkiD,QAAQ,CAACw3G,SAAT,CAAmBt/K,MAAvC,EAA+C4lB,CAAC,EAAhD,EAAoD;AAClD,QAAA,IAAI28J,KAAK,GAAG,IAAKb,CAAAA,YAAL,CAAkB3pH,OAAlB,EAA2B+P,QAAQ,CAACw3G,SAAT,CAAmB15J,CAAnB,CAA3B,CAAZ,CAAA;;AAEA,QAAA,IAAI28J,KAAK,CAACC,QAAN,CAAe,IAAf,CAAJ,EAA0B;AACxB,UAAA,OAAOD,KAAP,CAAA;AACD,SAAA;;QAED,IAAI,CAACF,UAAL,EAAiB;AACfA,UAAAA,UAAU,GAAGE,KAAb,CAAA;AACD,SAAA;AACF,OAAA;AACF,KA1BwE;AA2BzE;AACA;;;AAGA,IAAA,OAAOF,UAAP,CAAA;GA/BF,CAAA;;AAkCA5C,EAAAA,aAAa,CAACziL,SAAd,CAAwBylL,gBAAxB,GAA2C,YAAY;AACrD,IAAA,OAAO,IAAK7C,CAAAA,cAAL,CAAoB75J,KAApB,EAAP,CAAA;GADF,CAAA;;AAIA05J,EAAAA,aAAa,CAACziL,SAAd,CAAwBg/F,SAAxB,GAAoC,YAAY;AAC9C,IAAA,IAAI5nF,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC;MACAqB,MAAM,CAAC,IAAKugK,CAAAA,OAAN,CAAN,CAAA;AACD,KAAA;;AAED,IAAA,OAAO,KAAKA,OAAZ,CAAA;GANF,CAAA;;EASAuJ,aAAa,CAAC1vK,IAAd,GAAqB,UAArB,CAAA;AACA0vK,EAAAA,aAAa,CAAC/vJ,YAAd,GAA6B,CAAC,OAAD,EAAU,OAAV,EAAmB,YAAnB,EAAiC,WAAjC,EAA8C,YAA9C,EAA4D,QAA5D,EAAsE,SAAtE,CAA7B,CAAA;EACA+vJ,aAAa,CAAC9vJ,aAAd,GAA8B;AAC5B;AACAzG,IAAAA,CAAC,EAAE,CAFyB;AAG5Bw5J,IAAAA,UAAU,EAAE,QAHgB;AAI5B/3J,IAAAA,KAAK,EAAE,CAJqB;AAK5BuP,IAAAA,GAAG,EAAE,GAAA;GALP,CAAA;AAOA,EAAA,OAAOulJ,aAAP,CAAA;AACD,CApaD,CAoaE1vH,cApaF,CAFA,CAAA;AAuaA;AACA;AACA;AACA;AACA;;;AAGA,SAAS+vH,iBAAT,CAA2BjyJ,MAA3B,EAAmC;EACjC,IAAIvO,GAAG,GAAG,EAAV,CAAA;AACA5V,EAAAA,MAAI,CAAC,CAAC,OAAD,EAAU,KAAV,EAAiB,YAAjB,EAA+B,UAA/B,EAA2C,UAA3C,CAAD,EAAyD,UAAUhG,IAAV,EAAgB;AAC3EmqB,IAAAA,MAAM,CAACZ,cAAP,CAAsBvpB,IAAtB,CAAgC4b,KAAAA,GAAG,CAAC5b,IAAD,CAAH,GAAYmqB,MAAM,CAACnqB,IAAD,CAAlD,CAAA,CAAA;AACD,GAFG,CAAJ,CAAA;AAGA,EAAA,OAAO4b,GAAP,CAAA;AACD;;ACvfD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAIqjK,mBAAmB;AACvB;AACA,UAAUzhK,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACwhK,mBAAD,EAAsBzhK,MAAtB,CAAT,CAAA;;AAEA,EAAA,SAASyhK,mBAAT,GAA+B;AAC7B,IAAA,IAAIvhK,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa4yK,mBAAmB,CAAC5yK,IAAjC,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDuhK,mBAAmB,CAAC5yK,IAApB,GAA2B,iBAA3B,CAAA;AACA,EAAA,OAAO4yK,mBAAP,CAAA;AACD,CAZD,CAYElD,aAZF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAImD,YAAY;AAChB;AACA,UAAU1hK,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACyhK,YAAD,EAAe1hK,MAAf,CAAT,CAAA;;AAEA,EAAA,SAAS0hK,YAAT,GAAwB;AACtB,IAAA,IAAIxhK,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa6yK,YAAY,CAAC7yK,IAA1B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDwhK,EAAAA,YAAY,CAAC5lL,SAAb,CAAuB8tC,MAAvB,GAAgC,UAAUuzI,aAAV,EAAyBtzI,OAAzB,EAAkCxxB,GAAlC,EAAuCu0B,OAAvC,EAAgD;IAC9E,IAAKuwI,CAAAA,aAAL,GAAqBA,aAArB,CAAA;IACA,IAAKtzI,CAAAA,OAAL,GAAeA,OAAf,CAAA;IACA,IAAKxxB,CAAAA,GAAL,GAAWA,GAAX,CAAA;GAHF,CAAA;;EAMAqpK,YAAY,CAAC7yK,IAAb,GAAoB,UAApB,CAAA;AACA,EAAA,OAAO6yK,YAAP,CAAA;AACD,CAlBD,CAkBEz4G,aAlBF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAI04G,kBAAkB;AACtB;AACA,UAAU3hK,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC0hK,kBAAD,EAAqB3hK,MAArB,CAAT,CAAA;;AAEA,EAAA,SAAS2hK,kBAAT,GAA8B;AAC5B,IAAA,IAAIzhK,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa8yK,kBAAkB,CAAC9yK,IAAhC,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDyhK,kBAAkB,CAAC9yK,IAAnB,GAA0B,iBAA1B,CAAA;AACA,EAAA,OAAO8yK,kBAAP,CAAA;AACD,CAZD,CAYED,YAZF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA,IAAIl5K,MAAI,GAAGg7B,MAAX,CAAA;AACA,IAAI2yB,KAAG,GAAGqb,KAAV,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIowG,SAAS;AACb;AACA,YAAY;EACV,SAASA,SAAT,CAAmBplH,OAAnB,EAA4BhB,SAA5B,EAAuC2hH,aAAvC,EAAsDtzI,OAAtD,EAA+D;IAC7D,IAAKg4I,CAAAA,QAAL,GAAgBrlH,OAAhB,CAAA;IACA,IAAKslH,CAAAA,UAAL,GAAkBtmH,SAAlB,CAAA;IACA,IAAK3xB,CAAAA,OAAL,GAAeA,OAAf,CAAA;AACA,IAAA,IAAA,CAAKk4I,cAAL,GAAsB5E,aAAtB,CAJ6D;AAK7D;AACA;AACA;AACA;AACD,GAAA;AACD;AACF;AACA;;;AAGEyE,EAAAA,SAAS,CAAC9lL,SAAV,CAAoBwlL,QAApB,GAA+B,UAAUnE,aAAV,EAAyB;IACtD,OAAO,IAAA,CAAK4E,cAAL,KAAwB5E,aAA/B,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEyE,EAAAA,SAAS,CAAC9lL,SAAV,CAAoBolL,kBAApB,GAAyC,YAAY;AACnD,IAAA,OAAO,IAAKc,CAAAA,YAAL,CAAkBn9J,KAAlB,EAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGE+8J,EAAAA,SAAS,CAAC9lL,SAAV,CAAoBklL,oBAApB,GAA2C,YAAY;AACrD,IAAA,OAAO,IAAKiB,CAAAA,cAAL,CAAoBp9J,KAApB,EAAP,CAAA;GADF,CAAA;;AAIA+8J,EAAAA,SAAS,CAAC9lL,SAAV,CAAoBomL,qBAApB,GAA4C,YAAY;IACtD,IAAIp7G,YAAY,GAAG,EAAnB,CAAA;AACA,IAAA,IAAA,CAAKj9B,OAAL,CAAa+yB,UAAb,CAAwB,UAAUpqC,WAAV,EAAuB;AAC7C,MAAA,IAAIkqJ,gBAAgB,CAAClqJ,WAAD,CAApB,EAAmC;AACjC,QAAA,IAAI2vJ,YAAY,GAAGvF,eAAe,CAAC,IAAA,CAAKiF,QAAN,CAAlC,CAAA;AACA,QAAA,IAAI/lI,SAAS,GAAGtpB,WAAW,CAACw8B,sBAAZ,CAAmCmzH,YAAnC,EAAiDlzH,gBAAjD,CAAA,CAAmEC,MAAnE,CAA0E,CAA1E,CAAhB,CAAA;;QAEA,IAAIpT,SAAS,IAAI,IAAKgmI,CAAAA,UAAL,KAAoBhmI,SAAS,CAACrP,cAA/C,EAA+D;UAC7Dq6B,YAAY,CAACjnE,IAAb,CAAkB2yB,WAAlB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KATD,EASG,IATH,CAAA,CAAA;AAUA,IAAA,OAAOs0C,YAAP,CAAA;GAZF,CAAA;;AAeA86G,EAAAA,SAAS,CAAC9lL,SAAV,CAAoB2kL,YAApB,GAAmC,YAAY;AAC7C,IAAA,OAAO,IAAK52I,CAAAA,OAAL,CAAaw7B,YAAb,CAA0B,IAAA,CAAKw8G,QAAL,GAAgB,MAA1C,EAAkD,IAAKC,CAAAA,UAAvD,CAAP,CAAA;GADF,CAAA;;AAIAF,EAAAA,SAAS,CAAC9lL,SAAV,CAAoBsmL,aAApB,GAAoC,YAAY;AAC9C,IAAA,OAAO5+I,OAAA,CAAa,IAAA,CAAK6+I,WAAlB,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGET,EAAAA,SAAS,CAAC9lL,SAAV,CAAoBwmL,mBAApB,GAA0C,UAAUp1J,GAAV,EAAe;IACvD,IAAI6jF,UAAU,GAAG,IAAA,CAAKwxE,WAAtB,CAAA;AACA,IAAA,IAAIzmI,SAAS,GAAG,IAAK2kI,CAAAA,YAAL,EAAhB,CAAA;AACA,IAAA,IAAIr+J,KAAK,GAAG05B,SAAS,CAACrW,IAAV,CAAerjB,KAA3B,CAAA;;AAEA,IAAA,IAAI69J,aAAa,GAAG,IAAA,CAAK8B,cAAL,CAAoBR,gBAApB,EAApB,CAAA;;AAEA,IAAA,IAAIiB,aAAa,GAAG,CAAC,CAAD,EAAI,GAAJ,CAApB,CAAA;IACA,IAAIC,aAAa,GAAG,EAApB,CAAA;IACA,IAAIC,WAAW,GAAG,EAAlB,CAAA;AACA,IAAA,IAAIC,gBAAJ,CAAA;IACAn6K,MAAI,CAAC,CAAC,OAAD,EAAU,KAAV,CAAD,EAAmB,UAAU7H,IAAV,EAAgB6qB,GAAhB,EAAqB;AAC1C,MAAA,IAAIo3J,YAAY,GAAG11J,GAAG,CAACvsB,IAAD,CAAtB,CAAA;MACA,IAAIkiL,UAAU,GAAG31J,GAAG,CAACvsB,IAAI,GAAG,OAAR,CAApB,CAF0C;AAG1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAA,IAAIs/K,aAAa,CAACz0J,GAAD,CAAb,KAAuB,SAA3B,EAAsC;QACpCo3J,YAAY,IAAI,IAAhB,KAAyBA,YAAY,GAAGJ,aAAa,CAACh3J,GAAD,CAArD,CAAA,CADoC;;AAGpCq3J,QAAAA,UAAU,GAAGzgK,KAAK,CAACuzC,KAAN,CAAY6b,WAAA,CAAqBoxG,YAArB,EAAmCJ,aAAnC,EAAkDzxE,UAAlD,CAAZ,CAAb,CAAA;AACD,OAJD,MAIO;AACL4xE,QAAAA,gBAAgB,GAAG,IAAnB,CAAA;AACAE,QAAAA,UAAU,GAAGA,UAAU,IAAI,IAAd,GAAqB9xE,UAAU,CAACvlF,GAAD,CAA/B,GAAuCpJ,KAAK,CAACuzC,KAAN,CAAYktH,UAAZ,CAApD,CAFK;AAGL;AACA;;QAEAD,YAAY,GAAGpxG,WAAA,CAAqBqxG,UAArB,EAAiC9xE,UAAjC,EAA6CyxE,aAA7C,CAAf,CAAA;AACD,OA3ByC;AA4B1C;;;AAGAE,MAAAA,WAAW,CAACl3J,GAAD,CAAX,GAAmBq3J,UAAnB,CAAA;AACAJ,MAAAA,aAAa,CAACj3J,GAAD,CAAb,GAAqBo3J,YAArB,CAAA;AACD,KAjCG,CAAJ,CAAA;IAkCAzsH,KAAG,CAACusH,WAAD,CAAH,CAAA;AACAvsH,IAAAA,KAAG,CAACssH,aAAD,CAAH,CA9CuD;AA+CvD;AACA;AACA;AACA;;IAEA,IAAIK,KAAK,GAAG,IAAA,CAAKT,WAAjB,CAAA;IACAM,gBAAgB,GAAGI,WAAW,CAACL,WAAD,EAAcD,aAAd,EAA6B1xE,UAA7B,EAAyCyxE,aAAzC,EAAwD,KAAxD,CAAd,GAA+EO,WAAW,CAACN,aAAD,EAAgBC,WAAhB,EAA6BF,aAA7B,EAA4CzxE,UAA5C,EAAwD,IAAxD,CAA1G,CAAA;;IAEA,SAASgyE,WAAT,CAAqBC,UAArB,EAAiCC,QAAjC,EAA2CC,UAA3C,EAAuDC,QAAvD,EAAiEC,OAAjE,EAA0E;AACxE,MAAA,IAAIC,MAAM,GAAGD,OAAO,GAAG,MAAH,GAAY,WAAhC,CAAA;MACA/rD,UAAU,CAAC,CAAD,EAAI2rD,UAAJ,EAAgBE,UAAhB,EAA4B,KAA5B,EAAmCJ,KAAK,CAAC,KAAQO,GAAAA,MAAT,CAAxC,EAA0DP,KAAK,CAAC,KAAQO,GAAAA,MAAT,CAA/D,CAAV,CAAA;;MAEA,KAAK,IAAI7jL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAApB,EAAuBA,CAAC,EAAxB,EAA4B;AAC1ByjL,QAAAA,QAAQ,CAACzjL,CAAD,CAAR,GAAcgyE,WAAA,CAAqBwxG,UAAU,CAACxjL,CAAD,CAA/B,EAAoC0jL,UAApC,EAAgDC,QAAhD,EAA0D,IAA1D,CAAd,CAAA;AACAC,QAAAA,OAAO,KAAKH,QAAQ,CAACzjL,CAAD,CAAR,GAAc4iB,KAAK,CAACuzC,KAAN,CAAYstH,QAAQ,CAACzjL,CAAD,CAApB,CAAnB,CAAP,CAAA;AACD,OAAA;AACF,KAAA;;IAED,OAAO;AACLkjL,MAAAA,WAAW,EAAEA,WADR;AAELD,MAAAA,aAAa,EAAEA,aAAAA;KAFjB,CAAA;GAjEF,CAAA;AAsEA;AACF;AACA;AACA;AACA;;;AAGEb,EAAAA,SAAS,CAAC9lL,SAAV,CAAoBC,KAApB,GAA4B,UAAUohL,aAAV,EAAyB;AACnD,IAAA,IAAIA,aAAa,KAAK,IAAK4E,CAAAA,cAA3B,EAA2C;AACzC,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIljC,YAAY,GAAG,IAAA,CAAKqjC,qBAAL,EAAnB,CALmD;;AAOnD,IAAA,IAAA,CAAKK,WAAL,GAAmBe,mBAAmB,CAAC,IAAD,EAAO,IAAKzB,CAAAA,QAAZ,EAAsBhjC,YAAtB,CAAtC,CAPmD;;AASnD,IAAA,IAAA,CAAK0kC,iBAAL,EAAA,CAAA;;IAEA,IAAIC,UAAU,GAAG,IAAKlB,CAAAA,mBAAL,CAAyBnF,aAAa,CAAC0B,aAAvC,CAAjB,CAAA;AACA,IAAA,IAAA,CAAKmD,YAAL,GAAoBwB,UAAU,CAACd,WAA/B,CAAA;AACA,IAAA,IAAA,CAAKT,cAAL,GAAsBuB,UAAU,CAACf,aAAjC,CAbmD;;AAenD,IAAA,IAAA,CAAKgB,aAAL,EAAA,CAAA;GAfF,CAAA;;EAkBA7B,SAAS,CAAC9lL,SAAV,CAAoBgrJ,UAApB,GAAiC,UAAUq2B,aAAV,EAAyB9kK,GAAzB,EAA8B;AAC7D,IAAA,IAAI8kK,aAAa,KAAK,IAAK4E,CAAAA,cAA3B,EAA2C;AACzC,MAAA,OAAA;AACD,KAAA;;IAED,IAAIlrH,OAAO,GAAG,IAAA,CAAKgrH,QAAnB,CAAA;AACA,IAAA,IAAI/6G,YAAY,GAAG,IAAKo7G,CAAAA,qBAAL,EAAnB,CAAA;AACA,IAAA,IAAIV,UAAU,GAAGrE,aAAa,CAAClpJ,GAAd,CAAkB,YAAlB,CAAjB,CAAA;IACA,IAAIyuJ,WAAW,GAAG,IAAA,CAAKV,YAAvB,CAAA;;IAEA,IAAIR,UAAU,KAAK,MAAnB,EAA2B;AACzB,MAAA,OAAA;AACD,KAZ4D;AAa7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGAh5K,IAAAA,MAAI,CAACs+D,YAAD,EAAe,UAAUt0C,WAAV,EAAuB;AACxC,MAAA,IAAIowI,UAAU,GAAGpwI,WAAW,CAAC3E,OAAZ,EAAjB,CAAA;AACA,MAAA,IAAIoxH,QAAQ,GAAG2jB,UAAU,CAACzyI,gBAAX,CAA4B0mC,OAA5B,CAAf,CAAA;;AAEA,MAAA,IAAI,CAACooF,QAAQ,CAACngJ,MAAd,EAAsB;AACpB,QAAA,OAAA;AACD,OAAA;;MAED,IAAI0iL,UAAU,KAAK,YAAnB,EAAiC;AAC/B,QAAA,IAAIkC,OAAO,GAAG9gB,UAAU,CAAChzH,QAAX,EAAd,CAAA;QACA,IAAI+zI,gBAAgB,GAAGngJ,GAAA,CAAWy7G,QAAX,EAAqB,UAAUplH,GAAV,EAAe;AACzD,UAAA,OAAO+oI,UAAU,CAACnyI,iBAAX,CAA6BoJ,GAA7B,CAAP,CAAA;SADqB,EAEpB+oI,UAFoB,CAAvB,CAAA;AAGAA,QAAAA,UAAU,CAACnhH,UAAX,CAAsB,UAAUxxB,SAAV,EAAqB;AACzC,UAAA,IAAI2zJ,OAAJ,CAAA;AACA,UAAA,IAAIC,QAAJ,CAAA;AACA,UAAA,IAAIlsI,QAAJ,CAAA;;AAEA,UAAA,KAAK,IAAIn4C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGy/I,QAAQ,CAACngJ,MAA7B,EAAqCU,CAAC,EAAtC,EAA0C;AACxC,YAAA,IAAIw7B,KAAK,GAAG0oJ,OAAO,CAACzvJ,GAAR,CAAY0vJ,gBAAgB,CAACnkL,CAAD,CAA5B,EAAiCywB,SAAjC,CAAZ,CAAA;AACA,YAAA,IAAI6zJ,YAAY,GAAG,CAACnkL,KAAK,CAACq7B,KAAD,CAAzB,CAAA;AACA,YAAA,IAAI+oJ,WAAW,GAAG/oJ,KAAK,GAAG0nJ,WAAW,CAAC,CAAD,CAArC,CAAA;AACA,YAAA,IAAIsB,YAAY,GAAGhpJ,KAAK,GAAG0nJ,WAAW,CAAC,CAAD,CAAtC,CAAA;;AAEA,YAAA,IAAIoB,YAAY,IAAI,CAACC,WAAjB,IAAgC,CAACC,YAArC,EAAmD;AACjD,cAAA,OAAO,IAAP,CAAA;AACD,aAAA;;AAEDF,YAAAA,YAAY,KAAKnsI,QAAQ,GAAG,IAAhB,CAAZ,CAAA;AACAosI,YAAAA,WAAW,KAAKH,OAAO,GAAG,IAAf,CAAX,CAAA;AACAI,YAAAA,YAAY,KAAKH,QAAQ,GAAG,IAAhB,CAAZ,CAAA;AACD,WAlBwC;;;AAqBzC,UAAA,OAAOlsI,QAAQ,IAAIisI,OAAZ,IAAuBC,QAA9B,CAAA;SArBF,CAAA,CAAA;AAuBD,OA5BD,MA4BO;AACLr7K,QAAAA,MAAI,CAACy2I,QAAD,EAAW,UAAUplH,GAAV,EAAe;UAC5B,IAAI2nJ,UAAU,KAAK,OAAnB,EAA4B;AAC1BhvJ,YAAAA,WAAW,CAACue,OAAZ,CAAoB6xH,UAAU,GAAGA,UAAU,CAACliK,GAAX,CAAem5B,GAAf,EAAoB,UAAUmB,KAAV,EAAiB;cACpE,OAAO,CAACipJ,UAAU,CAACjpJ,KAAD,CAAX,GAAqBC,GAArB,GAA2BD,KAAlC,CAAA;AACD,aAFgC,CAAjC,CAAA,CAAA;AAGD,WAJD,MAIO;YACL,IAAI+M,KAAK,GAAG,EAAZ,CAAA;AACAA,YAAAA,KAAK,CAAClO,GAAD,CAAL,GAAa6oJ,WAAb,CAFK;;AAIL9f,YAAAA,UAAU,CAACshB,WAAX,CAAuBn8I,KAAvB,EAJK;AAKN,WAAA;AACF,SAXG,CAAJ,CAAA;AAYD,OAAA;;AAEDv/B,MAAAA,MAAI,CAACy2I,QAAD,EAAW,UAAUplH,GAAV,EAAe;AAC5B+oI,QAAAA,UAAU,CAACuhB,oBAAX,CAAgCzB,WAAhC,EAA6C7oJ,GAA7C,CAAA,CAAA;AACD,OAFG,CAAJ,CAAA;AAGD,KAtDG,CAAJ,CAAA;;IAwDA,SAASoqJ,UAAT,CAAoBjpJ,KAApB,EAA2B;AACzB,MAAA,OAAOA,KAAK,IAAI0nJ,WAAW,CAAC,CAAD,CAApB,IAA2B1nJ,KAAK,IAAI0nJ,WAAW,CAAC,CAAD,CAAtD,CAAA;AACD,KAAA;GA3FH,CAAA;;AA8FAd,EAAAA,SAAS,CAAC9lL,SAAV,CAAoBynL,iBAApB,GAAwC,YAAY;AAClD,IAAA,IAAIa,UAAU,GAAG,IAAK/B,CAAAA,WAAL,GAAmB,EAApC,CAAA;IACA,IAAIlF,aAAa,GAAG,IAAA,CAAK4E,cAAzB,CAAA;IACA,IAAIhxE,UAAU,GAAG,IAAA,CAAKwxE,WAAtB,CAAA;IACA/5K,MAAI,CAAC,CAAC,KAAD,EAAQ,KAAR,CAAD,EAAiB,UAAU67K,MAAV,EAAkB;MACrC,IAAIC,WAAW,GAAGnH,aAAa,CAAClpJ,GAAd,CAAkBowJ,MAAM,GAAG,MAA3B,CAAlB,CAAA;MACA,IAAIE,SAAS,GAAGpH,aAAa,CAAClpJ,GAAd,CAAkBowJ,MAAM,GAAG,WAA3B,CAAhB,CAAA;AACAE,MAAAA,SAAS,IAAI,IAAb,KAAsBA,SAAS,GAAG,KAAK9D,YAAL,EAAA,CAAoBh7I,IAApB,CAAyBrjB,KAAzB,CAA+BuzC,KAA/B,CAAqC4uH,SAArC,CAAlC,EAHqC;;MAKrC,IAAIA,SAAS,IAAI,IAAjB,EAAuB;QACrBD,WAAW,GAAG9yG,WAAA,CAAqBu/B,UAAU,CAAC,CAAD,CAAV,GAAgBwzE,SAArC,EAAgDxzE,UAAhD,EAA4D,CAAC,CAAD,EAAI,GAAJ,CAA5D,EAAsE,IAAtE,CAAd,CAAA;AACD,OAFD,MAEO,IAAIuzE,WAAW,IAAI,IAAnB,EAAyB;QAC9BC,SAAS,GAAG/yG,WAAA,CAAqB8yG,WAArB,EAAkC,CAAC,CAAD,EAAI,GAAJ,CAAlC,EAA4CvzE,UAA5C,EAAwD,IAAxD,IAAgEA,UAAU,CAAC,CAAD,CAAtF,CAAA;AACD,OAAA;;AAEDqzE,MAAAA,UAAU,CAACC,MAAM,GAAG,MAAV,CAAV,GAA8BC,WAA9B,CAAA;AACAF,MAAAA,UAAU,CAACC,MAAM,GAAG,WAAV,CAAV,GAAmCE,SAAnC,CAAA;KAZE,EAaD,IAbC,CAAJ,CAAA;GAJF,CAAA;;AAoBA3C,EAAAA,SAAS,CAAC9lL,SAAV,CAAoB2nL,aAApB,GAAoC,YAAY;AAC9C,IAAA,IAAI3nI,SAAS,GAAG,IAAK2kI,CAAAA,YAAL,EAAhB,CAAA;IACA,IAAIgC,aAAa,GAAG,IAAA,CAAKR,cAAzB,CAAA;IACA,IAAIS,WAAW,GAAG,IAAA,CAAKV,YAAvB,CAAA;;IAEA,IAAI,CAACS,aAAL,EAAoB;AAClB,MAAA,OAAA;AACD,KAP6C;;;AAU9C,IAAA,IAAIzmL,SAAS,GAAGw1E,iBAAA,CAA6BkxG,WAA7B,EAA0C,CAAC,CAAD,EAAI,GAAJ,CAA1C,CAAhB,CAAA;IACA1mL,SAAS,GAAGV,IAAI,CAAC8iC,GAAL,CAASpiC,SAAT,EAAoB,EAApB,CAAZ,CAX8C;AAY9C;AACA;AACA;;IAEA,IAAIwoL,aAAa,GAAG1oI,SAAS,CAACrW,IAAV,CAAerjB,KAAf,CAAqBoiK,aAAzC,CAAA;;AAEA,IAAA,IAAI/B,aAAa,CAAC,CAAD,CAAb,KAAqB,CAAzB,EAA4B;AAC1B+B,MAAAA,aAAa,CAACC,mBAAd,CAAkC,KAAlC,EAAyC,CAAC/B,WAAW,CAAC,CAAD,CAAX,CAAe1wD,OAAf,CAAuBh2H,SAAvB,CAA1C,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIymL,aAAa,CAAC,CAAD,CAAb,KAAqB,GAAzB,EAA8B;AAC5B+B,MAAAA,aAAa,CAACC,mBAAd,CAAkC,KAAlC,EAAyC,CAAC/B,WAAW,CAAC,CAAD,CAAX,CAAe1wD,OAAf,CAAuBh2H,SAAvB,CAA1C,CAAA,CAAA;AACD,KAAA;;AAEDwoL,IAAAA,aAAa,CAACE,MAAd,EAAA,CAAA;GA1BF,CAAA;;AA6BA,EAAA,OAAO9C,SAAP,CAAA;AACD,CA9SD,EAFA,CAAA;;AAkTA,SAAS0B,mBAAT,CAA6BxC,SAA7B,EAAwCjqH,OAAxC,EAAiDiQ,YAAjD,EAA+D;AAC7D,EAAA,IAAIiqC,UAAU,GAAG,CAAC1tF,QAAD,EAAW,CAACA,QAAZ,CAAjB,CAAA;AACA7a,EAAAA,MAAI,CAACs+D,YAAD,EAAe,UAAUt0C,WAAV,EAAuB;IACxCmyJ,uBAAuB,CAAC5zE,UAAD,EAAav+E,WAAW,CAAC3E,OAAZ,EAAb,EAAoCgpC,OAApC,CAAvB,CAAA;GADE,CAAJ,CAF6D;AAK7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAA,IAAI/a,SAAS,GAAGglI,SAAS,CAACL,YAAV,EAAhB,CAAA;AACA,EAAA,IAAImE,eAAe,GAAGC,wBAAwB,CAAC/oI,SAAS,CAACrW,IAAV,CAAerjB,KAAhB,EAAuB05B,SAAvB,EAAkCi1D,UAAlC,CAAxB,CAAsE+zE,SAAtE,EAAtB,CAAA;EACA,OAAO,CAACF,eAAe,CAACxmJ,GAAjB,EAAsBwmJ,eAAe,CAAC5mK,GAAtC,CAAP,CAAA;AACD;;AC9XD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA,IAAI+mK,iBAAiB,GAAG;AACtB;AACA;AACA;EACAC,eAAe,EAAE,SAAUn7I,eAAAA,CAAAA,OAAV,EAAmB;IAClC,SAASo7I,aAAT,CAAuB95J,EAAvB,EAA2B;AACzB0e,MAAAA,OAAO,CAAC4V,aAAR,CAAsB,UAAtB,EAAkC,UAAU09H,aAAV,EAAyB;AACzDA,QAAAA,aAAa,CAACQ,cAAd,CAA6B,UAAU9mH,OAAV,EAAmB2E,SAAnB,EAA8B;AACzD,UAAA,IAAI1f,SAAS,GAAGjS,OAAO,CAACw7B,YAAR,CAAqBu3G,eAAe,CAAC/lH,OAAD,CAApC,EAA+C2E,SAA/C,CAAhB,CAAA;UACArwC,EAAE,CAAC0rC,OAAD,EAAU2E,SAAV,EAAqB1f,SAArB,EAAgCqhI,aAAhC,CAAF,CAAA;SAFF,CAAA,CAAA;OADF,CAAA,CAAA;AAMD,KARiC;AASlC;;;IAGA8H,aAAa,CAAC,UAAUpuH,OAAV,EAAmB2E,SAAnB,EAA8B1f,SAA9B,EAAyCqhI,aAAzC,EAAwD;AACpE;MACArhI,SAAS,CAAC4kI,aAAV,GAA0B,IAA1B,CAAA;AACD,KAHY,CAAb,CAAA;IAIA,IAAIwE,SAAS,GAAG,EAAhB,CAAA;IACAD,aAAa,CAAC,UAAUpuH,OAAV,EAAmB2E,SAAnB,EAA8B1f,SAA9B,EAAyCqhI,aAAzC,EAAwD;AACpE;AACA;AACA,MAAA,IAAI,CAACrhI,SAAS,CAAC4kI,aAAf,EAA8B;AAC5B;AACA5kI,QAAAA,SAAS,CAAC4kI,aAAV,GAA0B,IAAIkB,SAAJ,CAAc/qH,OAAd,EAAuB2E,SAAvB,EAAkC2hH,aAAlC,EAAiDtzI,OAAjD,CAA1B,CAAA;AACAq7I,QAAAA,SAAS,CAACrlL,IAAV,CAAei8C,SAAS,CAAC4kI,aAAzB,CAAA,CAAA;AACD,OAAA;AACF,KARY,CAAb,CAAA;IASA,IAAIyE,cAAc,GAAGjnG,aAAa,EAAlC,CAAA;AACA11E,IAAAA,MAAI,CAAC08K,SAAD,EAAY,UAAUpE,SAAV,EAAqB;MACnCt4K,MAAI,CAACs4K,SAAS,CAACoB,qBAAV,EAAD,EAAoC,UAAU1vJ,WAAV,EAAuB;AAC7D2yJ,QAAAA,cAAc,CAACp3H,GAAf,CAAmBv7B,WAAW,CAACuxD,GAA/B,EAAoCvxD,WAApC,CAAA,CAAA;AACD,OAFG,CAAJ,CAAA;AAGD,KAJG,CAAJ,CAAA;AAKA,IAAA,OAAO2yJ,cAAP,CAAA;GApCoB;AAsCtB;AACA;AACA;AACAC,EAAAA,YAAY,EAAE,SAAA,YAAA,CAAUv7I,OAAV,EAAmBxxB,GAAnB,EAAwB;AACpCwxB,IAAAA,OAAO,CAAC4V,aAAR,CAAsB,UAAtB,EAAkC,UAAU09H,aAAV,EAAyB;AACzD;AACA;AACA;AACAA,MAAAA,aAAa,CAACQ,cAAd,CAA6B,UAAU9mH,OAAV,EAAmB2E,SAAnB,EAA8B;QACzD2hH,aAAa,CAACqD,YAAd,CAA2B3pH,OAA3B,EAAoC2E,SAApC,CAAA,CAA+Cz/D,KAA/C,CAAqDohL,aAArD,CAAA,CAAA;AACD,OAFD,EAJyD;AAOzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEAA,MAAAA,aAAa,CAACQ,cAAd,CAA6B,UAAU9mH,OAAV,EAAmB2E,SAAnB,EAA8B;QACzD2hH,aAAa,CAACqD,YAAd,CAA2B3pH,OAA3B,EAAoC2E,SAApC,CAAA,CAA+CsrF,UAA/C,CAA0Dq2B,aAA1D,EAAyE9kK,GAAzE,CAAA,CAAA;OADF,CAAA,CAAA;KArBF,CAAA,CAAA;AAyBAwxB,IAAAA,OAAO,CAAC4V,aAAR,CAAsB,UAAtB,EAAkC,UAAU09H,aAAV,EAAyB;AACzD;AACA;AACA,MAAA,IAAI2D,SAAS,GAAG3D,aAAa,CAAC4D,2BAAd,EAAhB,CAAA;;AAEA,MAAA,IAAID,SAAJ,EAAe;AACb,QAAA,IAAIuE,YAAY,GAAGvE,SAAS,CAACE,oBAAV,EAAnB,CAAA;AACA,QAAA,IAAIsE,UAAU,GAAGxE,SAAS,CAACI,kBAAV,EAAjB,CAAA;QACA/D,aAAa,CAACyD,kBAAd,CAAiC;AAC/Bn3J,UAAAA,KAAK,EAAE47J,YAAY,CAAC,CAAD,CADY;AAE/BrsJ,UAAAA,GAAG,EAAEqsJ,YAAY,CAAC,CAAD,CAFc;AAG/B12I,UAAAA,UAAU,EAAE22I,UAAU,CAAC,CAAD,CAHS;UAI/B12I,QAAQ,EAAE02I,UAAU,CAAC,CAAD,CAAA;SAJtB,CAAA,CAAA;AAMD,OAAA;KAdH,CAAA,CAAA;AAgBD,GAAA;AAnFqB,CAAxB;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2Be,SAASC,qBAAT,CAA+BpmK,SAA/B,EAA0C;EACvDA,SAAS,CAACqgC,cAAV,CAAyB,UAAzB,EAAqC,UAAU5S,OAAV,EAAmB/C,OAAnB,EAA4B;AAC/D,IAAA,IAAIozI,cAAc,GAAGF,qBAAqB,CAAClzI,OAAD,EAAU+C,OAAV,CAA1C,CAAA;AACApkC,IAAAA,MAAI,CAACy0K,cAAD,EAAiB,UAAUE,aAAV,EAAyB;MAC5CA,aAAa,CAACwD,WAAd,CAA0B;QACxBl3J,KAAK,EAAEmjB,OAAO,CAACnjB,KADS;QAExBuP,GAAG,EAAE4T,OAAO,CAAC5T,GAFW;QAGxB2V,UAAU,EAAE/B,OAAO,CAAC+B,UAHI;QAIxBC,QAAQ,EAAEhC,OAAO,CAACgC,QAAAA;OAJpB,CAAA,CAAA;AAMD,KAPG,CAAJ,CAAA;GAFF,CAAA,CAAA;AAWD;;ACxDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA,IAAI42I,WAAS,GAAG,KAAhB,CAAA;AACe,SAASC,eAAT,CAAuBtmK,SAAvB,EAAkC;AAC/C,EAAA,IAAIqmK,WAAJ,EAAe;AACb,IAAA,OAAA;AACD,GAAA;;AAEDA,EAAAA,WAAS,GAAG,IAAZ,CAAA;EACArmK,SAAS,CAACuyB,iBAAV,CAA4BvyB,SAAS,CAACwyB,QAAV,CAAmBC,SAAnB,CAA6B8zI,MAAzD,EAAiEX,iBAAjE,CAAA,CAAA;EACAQ,qBAAqB,CAACpmK,SAAD,CAArB,CAAA;AACAA,EAAAA,SAAS,CAAC8zC,wBAAV,CAAmC,UAAnC,EAA+C,YAAY;AACzD;AACA,IAAA,OAAO,QAAP,CAAA;GAFF,CAAA,CAAA;AAID;;ACzDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAAS/zC,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiC2yH,mBAAjC,CAAA,CAAA;EACAxmK,SAAS,CAACksD,qBAAV,CAAgCu6G,kBAAhC,CAAA,CAAA;EACAH,eAAa,CAACtmK,SAAD,CAAb,CAAA;AACD;;ACjDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AAEA,IAAI0mK,cAAc;AAClB;AACA,YAAY;EACV,SAASA,cAAT,GAA0B,EAAE;;AAE5B,EAAA,OAAOA,cAAP,CAAA;AACD,CAJD,EAFA,CAAA;AASA,IAAI1iG,QAAQ,GAAG,EAAf,CAAA;AACO,SAAS2iG,eAAT,CAAyBtjL,IAAzB,EAA+BujL,IAA/B,EAAqC;AAC1C5iG,EAAAA,QAAQ,CAAC3gF,IAAD,CAAR,GAAiBujL,IAAjB,CAAA;AACD,CAAA;AACM,SAASC,UAAT,CAAoBxjL,IAApB,EAA0B;EAC/B,OAAO2gF,QAAQ,CAAC3gF,IAAD,CAAf,CAAA;AACD;;ACvCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAIyjL,YAAY;AAChB;AACA,UAAUjmK,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACgmK,YAAD,EAAejmK,MAAf,CAAT,CAAA;;AAEA,EAAA,SAASimK,YAAT,GAAwB;AACtB,IAAA,IAAI/lK,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAao3K,YAAY,CAACp3K,IAA1B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAED+lK,EAAAA,YAAY,CAACnqL,SAAb,CAAuB42D,aAAvB,GAAuC,YAAY;IACjD1yC,MAAM,CAAClkB,SAAP,CAAiB42D,aAAjB,CAA+BlmC,KAA/B,CAAqC,IAArC,EAA2C/sB,SAA3C,CAAA,CAAA;;IAEA,IAAIoqC,OAAO,GAAG,IAAA,CAAKA,OAAnB,CAAA;AACArG,IAAAA,MAAA,CAAY,IAAA,CAAK7W,MAAL,CAAYu5J,OAAxB,EAAiC,UAAUC,UAAV,EAAsBC,WAAtB,EAAmC;AAClE,MAAA,IAAIC,OAAO,GAAGC,UAAA,CAA0BF,WAA1B,CAAd,CAAA;;AAEA,MAAA,IAAIC,OAAJ,EAAa;QACX,IAAIA,OAAO,CAAC9zH,gBAAZ,EAA8B;UAC5B8zH,OAAO,CAAC53J,aAAR,GAAwB43J,OAAO,CAAC9zH,gBAAR,CAAyB1oB,OAAzB,CAAxB,CAAA;AACD,SAAA;;AAEDrG,QAAAA,KAAA,CAAa2iJ,UAAb,EAAyBE,OAAO,CAAC53J,aAAjC,CAAA,CAAA;AACD,OAAA;KATH,CAAA,CAAA;GAJF,CAAA;;EAiBAw3J,YAAY,CAACp3K,IAAb,GAAoB,SAApB,CAAA;EACAo3K,YAAY,CAACt3H,UAAb,GAA0B;AACxB9/C,IAAAA,IAAI,EAAE,KADkB;AAExBiiK,IAAAA,UAAU,EAAE,IAAA;GAFd,CAAA;EAIAmV,YAAY,CAACx3J,aAAb,GAA6B;AAC3BI,IAAAA,IAAI,EAAE,IADqB;AAE3B7G,IAAAA,CAAC,EAAE,CAFwB;AAG3B;AACAsvE,IAAAA,MAAM,EAAE,YAJmB;AAK3Bz3E,IAAAA,IAAI,EAAE,OALqB;AAM3BC,IAAAA,GAAG,EAAE,KANsB;AAO3B;AACA;AACA9C,IAAAA,eAAe,EAAE,aATU;AAU3Bi2B,IAAAA,WAAW,EAAE,MAVc;AAW3BE,IAAAA,YAAY,EAAE,CAXa;AAY3BzxB,IAAAA,WAAW,EAAE,CAZc;AAa3BF,IAAAA,OAAO,EAAE,CAbkB;AAc3B+wG,IAAAA,QAAQ,EAAE,EAdiB;AAe3Bg0D,IAAAA,OAAO,EAAE,CAfkB;AAgB3BC,IAAAA,SAAS,EAAE,IAhBgB;AAiB3BC,IAAAA,SAAS,EAAE;AACTxzI,MAAAA,WAAW,EAAE,MADJ;AAET7xC,MAAAA,KAAK,EAAE,MAAA;KAnBkB;AAqB3B4tB,IAAAA,QAAQ,EAAE;AACRy3J,MAAAA,SAAS,EAAE;AACTxzI,QAAAA,WAAW,EAAE,SAAA;AADJ,OAAA;KAtBc;AA0B3B;AACA;AACA4c,IAAAA,OAAO,EAAE;AACPhhC,MAAAA,IAAI,EAAE,KADC;AAEPjP,MAAAA,QAAQ,EAAE,QAAA;AAFH,KAAA;GA5BX,CAAA;AAiCA,EAAA,OAAOqmK,YAAP,CAAA;AACD,CAlED,CAkEEp3H,cAlEF,CAFA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASnX,MAAT,CAAgBvqB,KAAhB,EAAuByyB,cAAvB,EAAuCvnC,GAAvC,EAA4C;AACjD,EAAA,IAAI0iD,eAAe,GAAGnb,cAAc,CAACI,kBAAf,EAAtB,CAAA;AACA,EAAA,IAAIx+B,OAAO,GAAGo+B,cAAc,CAAC3rB,GAAf,CAAmB,SAAnB,CAAd,CAAA;AACA,EAAA,IAAIyyJ,YAAY,GAAG;AACjBnhL,IAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADU;IAEjBhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;GAFV,CAAA;EAIA,IAAI/f,IAAI,GAAGw8D,aAAa,CAACH,eAAD,EAAkB2rH,YAAlB,EAAgCllK,OAAhC,CAAxB,CAAA;EACAmlK,GAAS,CAAC/mI,cAAc,CAAC3rB,GAAf,CAAmB,QAAnB,CAAD,EAA+B9G,KAA/B,EAAsCyyB,cAAc,CAAC3rB,GAAf,CAAmB,SAAnB,CAAtC,EAAqEv1B,IAAI,CAAC6G,KAA1E,EAAiF7G,IAAI,CAAC8G,MAAtF,CAAT,CAAA;EACAohL,eAAe,CAACz5J,KAAD,EAAQ4tC,eAAR,EAAyB2rH,YAAzB,EAAuCllK,OAAvC,CAAf,CAAA;AACD,CAAA;AACM,SAASqlK,cAAT,CAAwBnoL,IAAxB,EAA8BkhD,cAA9B,EAA8C;AACnD,EAAA,IAAIp+B,OAAO,GAAG6gJ,mBAAA,CAA6BziH,cAAc,CAAC3rB,GAAf,CAAmB,SAAnB,CAA7B,CAAd,CAAA;EACA,IAAI7zB,KAAK,GAAGw/C,cAAc,CAAC5rB,YAAf,CAA4B,CAAC,OAAD,EAAU,SAAV,CAA5B,CAAZ,CAAA;EACA5zB,KAAK,CAACC,IAAN,GAAau/C,cAAc,CAAC3rB,GAAf,CAAmB,iBAAnB,CAAb,CAAA;AACAv1B,EAAAA,IAAI,GAAG,IAAIm0B,MAAJ,CAAiB;AACtBzrB,IAAAA,KAAK,EAAE;MACL7K,CAAC,EAAEmC,IAAI,CAACnC,CAAL,GAASilB,OAAO,CAAC,CAAD,CADd;MAELhlB,CAAC,EAAEkC,IAAI,CAAClC,CAAL,GAASglB,OAAO,CAAC,CAAD,CAFd;AAGLjc,MAAAA,KAAK,EAAE7G,IAAI,CAAC6G,KAAL,GAAaic,OAAO,CAAC,CAAD,CAApB,GAA0BA,OAAO,CAAC,CAAD,CAHnC;AAILhc,MAAAA,MAAM,EAAE9G,IAAI,CAAC8G,MAAL,GAAcgc,OAAO,CAAC,CAAD,CAArB,GAA2BA,OAAO,CAAC,CAAD,CAJrC;AAKLpkB,MAAAA,CAAC,EAAEwiD,cAAc,CAAC3rB,GAAf,CAAmB,cAAnB,CAAA;KANiB;AAQtB7zB,IAAAA,KAAK,EAAEA,KARe;AAStBkyB,IAAAA,MAAM,EAAE,IATc;AAUtBpB,IAAAA,EAAE,EAAE,CAAC,CAAA;GAVA,CAAP,CAJmD;AAgBnD;AACA;AACA;;AAEA,EAAA,OAAOxyB,IAAP,CAAA;AACD;;ACtFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAsCA,IAAIooL,WAAW;AACf;AACA,UAAU9mK,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC6mK,WAAD,EAAc9mK,MAAd,CAAT,CAAA;;AAEA,EAAA,SAAS8mK,WAAT,GAAuB;AACrB,IAAA,OAAO9mK,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;;AAEDqnL,EAAAA,WAAW,CAAChrL,SAAZ,CAAsB8tC,MAAtB,GAA+B,UAAUm9I,YAAV,EAAwBl9I,OAAxB,EAAiCxxB,GAAjC,EAAsCu0B,OAAtC,EAA+C;IAC5E,IAAIzf,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACAA,IAAAA,KAAK,CAAC4D,SAAN,EAAA,CAAA;;AAEA,IAAA,IAAI,CAACg2J,YAAY,CAAC9yJ,GAAb,CAAiB,MAAjB,CAAL,EAA+B;AAC7B,MAAA,OAAA;AACD,KAAA;;IAED,IAAIs+F,QAAQ,GAAG,CAACw0D,YAAY,CAAC9yJ,GAAb,CAAiB,UAAjB,CAAhB,CAAA;IACA,IAAI+yJ,UAAU,GAAGD,YAAY,CAAC9yJ,GAAb,CAAiB,QAAjB,MAA+B,UAAhD,CAAA;IACA,IAAIgzJ,WAAW,GAAGF,YAAY,CAAC9yJ,GAAb,CAAiB,SAAjB,KAA+B,EAAjD,CAAA;IACA,IAAIkvD,QAAQ,GAAG,IAAK+jG,CAAAA,SAAL,KAAmB,IAAKA,CAAAA,SAAL,GAAiB,EAApC,CAAf,CAAA;IACA,IAAIC,YAAY,GAAG,EAAnB,CAAA;IACA3jJ,MAAA,CAAYyjJ,WAAZ,EAAyB,UAAU/5J,GAAV,EAAe1qB,IAAf,EAAqB;MAC5C2kL,YAAY,CAACtnL,IAAb,CAAkB2C,IAAlB,CAAA,CAAA;KADF,CAAA,CAAA;AAGA,IAAA,IAAIgoG,UAAJ,CAAe,IAAK48E,CAAAA,aAAL,IAAsB,EAArC,EAAyCD,YAAzC,CAAuDz5J,CAAAA,GAAvD,CAA2D25J,cAA3D,EAA2EtvJ,MAA3E,CAAkFsvJ,cAAlF,CAAA,CAAkGnvJ,MAAlG,CAAyGsL,OAAA,CAAa6jJ,cAAb,EAA6B,IAA7B,CAAzG,CAA6IhvJ,CAAAA,OAA7I,GAhB4E;;IAkB5E,IAAK+uJ,CAAAA,aAAL,GAAqBD,YAArB,CAAA;;AAEA,IAAA,SAASE,cAAT,CAAwBhvI,QAAxB,EAAkCC,QAAlC,EAA4C;AAC1C,MAAA,IAAI8tI,WAAW,GAAGe,YAAY,CAAC9uI,QAAD,CAA9B,CAAA;AACA,MAAA,IAAIivI,OAAO,GAAGH,YAAY,CAAC7uI,QAAD,CAA1B,CAAA;AACA,MAAA,IAAI6tI,UAAU,GAAGc,WAAW,CAACb,WAAD,CAA5B,CAAA;AACA,MAAA,IAAImB,YAAY,GAAG,IAAI/iH,KAAJ,CAAU2hH,UAAV,EAAsBY,YAAtB,EAAoCA,YAAY,CAACl9I,OAAjD,CAAnB,CAAA;MACA,IAAIq8I,OAAJ,CAL0C;;AAO1C,MAAA,IAAIt5I,OAAO,IAAIA,OAAO,CAAC46I,QAAR,IAAoB,IAA/B,IAAuC56I,OAAO,CAACw5I,WAAR,KAAwBA,WAAnE,EAAgF;AAC9ED,QAAAA,UAAU,CAAC70D,KAAX,GAAmB1kF,OAAO,CAAC46I,QAA3B,CAAA;AACD,OAAA;;AAED,MAAA,IAAIpB,WAAW,IAAI,CAACkB,OAApB,EAA6B;AAC3B;AACA,QAAA,IAAIG,iBAAiB,CAACrB,WAAD,CAArB,EAAoC;AAClCF,UAAAA,OAAO,GAAG;AACRh/E,YAAAA,OAAO,EAAEqgF,YAAY,CAAC56J,MAAb,CAAoBu6E,OADrB;AAERk/E,YAAAA,WAAW,EAAEA,WAAAA;WAFf,CAAA;AAID,SALD,MAKO;AACL,UAAA,IAAIC,OAAO,GAAGL,UAAU,CAACI,WAAD,CAAxB,CAAA;;UAEA,IAAI,CAACC,OAAL,EAAc;AACZ,YAAA,OAAA;AACD,WAAA;;UAEDH,OAAO,GAAG,IAAIG,OAAJ,EAAV,CAAA;AACD,SAAA;;AAEDljG,QAAAA,QAAQ,CAACijG,WAAD,CAAR,GAAwBF,OAAxB,CAAA;AACD,OAlBD,MAkBO;AACLA,QAAAA,OAAO,GAAG/iG,QAAQ,CAACmkG,OAAD,CAAlB,CADK;;QAGL,IAAI,CAACpB,OAAL,EAAc;AACZ,UAAA,OAAA;AACD,SAAA;AACF,OAAA;;AAEDA,MAAAA,OAAO,CAACniG,GAAR,GAAcC,MAAM,CAAC,iBAAD,CAApB,CAAA;MACAkiG,OAAO,CAACnuI,KAAR,GAAgBwvI,YAAhB,CAAA;MACArB,OAAO,CAACr8I,OAAR,GAAkBA,OAAlB,CAAA;MACAq8I,OAAO,CAAC7tK,GAAR,GAAcA,GAAd,CAAA;AACA,MAAA,IAAIqvK,gBAAgB,GAAGxB,OAAO,YAAYL,cAA1C,CAAA;;AAEA,MAAA,IAAI,CAACO,WAAD,IAAgBkB,OAApB,EAA6B;AAC3BI,QAAAA,gBAAgB,IAAIxB,OAAO,CAACxnK,OAA5B,IAAuCwnK,OAAO,CAACxnK,OAAR,CAAgBmrB,OAAhB,EAAyBxxB,GAAzB,CAAvC,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAI,CAACkvK,YAAY,CAACtzJ,GAAb,CAAiB,MAAjB,CAAD,IAA6ByzJ,gBAAgB,IAAIxB,OAAO,CAACyB,QAA7D,EAAuE;AACrED,QAAAA,gBAAgB,IAAIxB,OAAO,CAAChuJ,MAA5B,IAAsCguJ,OAAO,CAAChuJ,MAAR,CAAe2R,OAAf,EAAwBxxB,GAAxB,CAAtC,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;AAEDuvK,MAAAA,eAAe,CAACL,YAAD,EAAerB,OAAf,EAAwBE,WAAxB,CAAf,CAAA;;AAEAmB,MAAAA,YAAY,CAACM,aAAb,GAA6B,UAAUC,QAAV,EAAoB3rJ,MAApB,EAA4B;QACvD,IAAIxP,MAAM,GAAG,IAAA,CAAKA,MAAlB,CAAA;QACA,IAAIo7J,SAAS,GAAG,IAAA,CAAKA,SAArB,CAAA;AACAp7J,QAAAA,MAAM,CAACq7J,UAAP,GAAoBr7J,MAAM,CAACq7J,UAAP,IAAqB,EAAzC,CAAA;AACAr7J,QAAAA,MAAM,CAACq7J,UAAP,CAAkBF,QAAlB,IAA8B3rJ,MAA9B,CAAA;;AAEA,QAAA,IAAI4rJ,SAAS,CAACD,QAAD,CAAb,EAAyB;UACvB,CAAC3rJ,MAAM,KAAK,UAAX,GAAwBrK,aAAxB,GAAwCE,aAAzC,EAAwD+1J,SAAS,CAACD,QAAD,CAAjE,CAAA,CAAA;AACD,SAAA;OARH,CAAA;;MAWA,IAAI5B,OAAO,YAAYL,cAAvB,EAAuC;QACrC,IAAIK,OAAO,CAACt8I,MAAZ,EAAoB;UAClBs8I,OAAO,CAACt8I,MAAR,CAAe29I,YAAf,EAA6B19I,OAA7B,EAAsCxxB,GAAtC,EAA2Cu0B,OAA3C,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;AAED,IAAA,SAASg7I,eAAT,CAAyBL,YAAzB,EAAuCrB,OAAvC,EAAgDE,WAAhD,EAA6D;AAC3D,MAAA,IAAI6B,cAAc,GAAGV,YAAY,CAACxzJ,QAAb,CAAsB,WAAtB,CAArB,CAAA;AACA,MAAA,IAAIm0J,sBAAsB,GAAGX,YAAY,CAACxzJ,QAAb,CAAsB,CAAC,UAAD,EAAa,WAAb,CAAtB,CAA7B,CAF2D;AAG3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;MAEA,IAAIo0J,KAAK,GAAGjC,OAAO,YAAYL,cAAnB,IAAqCK,OAAO,CAACkC,QAA7C,GAAwDlC,OAAO,CAACkC,QAAR,EAAxD,GAA6Eb,YAAY,CAACtzJ,GAAb,CAAiB,MAAjB,CAAzF,CAAA;MACA,IAAIo0J,MAAM,GAAGd,YAAY,CAACtzJ,GAAb,CAAiB,OAAjB,KAA6B,EAA1C,CAAA;AACA,MAAA,IAAIq0J,QAAJ,CAAA;AACA,MAAA,IAAIC,SAAJ,CAAA;;AAEA,MAAA,IAAI/kJ,QAAA,CAAgB2kJ,KAAhB,CAAJ,EAA4B;AAC1BG,QAAAA,QAAQ,GAAG,EAAX,CAAA;AACAA,QAAAA,QAAQ,CAAClC,WAAD,CAAR,GAAwB+B,KAAxB,CAAA;AACD,OAHD,MAGO;AACLG,QAAAA,QAAQ,GAAGH,KAAX,CAAA;AACD,OAAA;;AAED,MAAA,IAAI3kJ,QAAA,CAAgB6kJ,MAAhB,CAAJ,EAA6B;AAC3BE,QAAAA,SAAS,GAAG,EAAZ,CAAA;AACAA,QAAAA,SAAS,CAACnC,WAAD,CAAT,GAAyBiC,MAAzB,CAAA;AACD,OAHD,MAGO;AACLE,QAAAA,SAAS,GAAGF,MAAZ,CAAA;AACD,OAAA;;AAED,MAAA,IAAIN,SAAS,GAAGR,YAAY,CAACQ,SAAb,GAAyB,EAAzC,CAAA;MACAvkJ,MAAA,CAAY8kJ,QAAZ,EAAsB,UAAUE,OAAV,EAAmBV,QAAnB,EAA6B;QACjD,IAAI3gL,IAAI,GAAG0rB,UAAA,CAAmB21J,OAAnB,EAA4B,EAA5B,EAAgC;AACzCjsL,UAAAA,CAAC,EAAE,CAACg2H,QAAD,GAAY,CAD0B;AAEzC/1H,UAAAA,CAAC,EAAE,CAAC+1H,QAAD,GAAY,CAF0B;AAGzChtH,UAAAA,KAAK,EAAEgtH,QAHkC;AAIzC/sH,UAAAA,MAAM,EAAE+sH,QAAAA;SAJC,CAAX,CADiD;;AAQjDprH,QAAAA,IAAI,CAACwmB,QAAL,CAAcs6J,cAAc,CAACj0J,YAAf,EAAd,CAAA,CAAA;AACA,QAAA,IAAIs5C,iBAAiB,GAAGnmE,IAAI,CAACwuB,WAAL,CAAiB,UAAjB,CAAxB,CAAA;QACA23C,iBAAiB,CAACltE,KAAlB,GAA0B8nL,sBAAsB,CAACl0J,YAAvB,EAA1B,CAViD;;AAYjD,QAAA,IAAItd,WAAW,GAAG,IAAI+xK,MAAJ,CAAW;AAC3BroL,UAAAA,KAAK,EAAE;AACL4C,YAAAA,IAAI,EAAEulL,SAAS,CAACT,QAAD,CADV;AAEL3+I,YAAAA,KAAK,EAAE++I,sBAAsB,CAACj0J,GAAvB,CAA2B,WAA3B,CAFF;AAGLkf,YAAAA,YAAY,EAAE+0I,sBAAsB,CAACj0J,GAAvB,CAA2B,kBAA3B,CAHT;AAILzS,YAAAA,OAAO,EAAE0mK,sBAAsB,CAACj0J,GAAvB,CAA2B,aAA3B,CAJJ;AAKL5zB,YAAAA,IAAI,EAAE,IAAA;WANmB;AAQ3B+3C,UAAAA,MAAM,EAAE,IAAA;AARmB,SAAX,CAAlB,CAAA;QAUAjxC,IAAI,CAACsP,cAAL,CAAoBC,WAApB,CAAA,CAAA;QACAmc,gBAAA,CAAyB;AACvB9xB,UAAAA,EAAE,EAAEoG,IADmB;AAEvBy4C,UAAAA,cAAc,EAAEmnI,YAFO;AAGvBzlH,UAAAA,QAAQ,EAAEwmH,QAHa;AAIvBY,UAAAA,oBAAoB,EAAE;YACpBp3D,KAAK,EAAEi3D,SAAS,CAACT,QAAD,CAAA;AADI,WAAA;SAJxB,CAAA,CAAA;AAQA3gL,QAAAA,IAAI,CAACwhL,OAAL,GAAeJ,SAAS,CAACT,QAAD,CAAxB,CAAA;AACA3gL,QAAAA,IAAI,CAACmyC,EAAL,CAAQ,WAAR,EAAqB,YAAY;AAC/B;AACA,UAAA,IAAIsvI,UAAU,GAAGV,sBAAsB,CAACl0J,YAAvB,EAAjB,CAAA;AACA,UAAA,IAAI60J,mBAAmB,GAAG7B,UAAU,GAAGD,YAAY,CAAC9yJ,GAAb,CAAiB,OAAjB,KAA6B,IAA7B,IAAqC8yJ,YAAY,CAAC9yJ,GAAb,CAAiB,MAAjB,CAAA,KAA6B,OAAlE,GAA4E,OAA5E,GAAsF,MAAzF,GAAkG8yJ,YAAY,CAAC9yJ,GAAb,CAAiB,QAAjB,KAA8B,IAA9B,IAAsC8yJ,YAAY,CAAC9yJ,GAAb,CAAiB,KAAjB,CAAA,KAA4B,QAAlE,GAA6E,QAA7E,GAAwF,KAA9N,CAAA;UACAvd,WAAW,CAACiX,QAAZ,CAAqB;AACnBttB,YAAAA,IAAI,EAAE6nL,sBAAsB,CAACj0J,GAAvB,CAA2B,UAA3B,CAAA,IAA0C20J,UAAU,CAACvoL,IAArD,IAA6DuoL,UAAU,CAACroL,MAAxE,IAAkF,MADrE;AAEnByc,YAAAA,eAAe,EAAEkrK,sBAAsB,CAACj0J,GAAvB,CAA2B,qBAA3B,CAAA;WAFnB,CAAA,CAAA;UAIA9sB,IAAI,CAAC2tC,aAAL,CAAmB;AACjBl1B,YAAAA,QAAQ,EAAEsoK,sBAAsB,CAACj0J,GAAvB,CAA2B,cAA3B,CAA8C40J,IAAAA,mBAAAA;WAD1D,CAAA,CAAA;UAGAnyK,WAAW,CAAC0hC,MAAZ,GAAqB,CAAC2uI,YAAY,CAAC9yJ,GAAb,CAAiB,WAAjB,CAAtB,CAX+B;AAY/B;;UAEA5b,GAAG,CAACyZ,aAAJ,CAAkB,IAAlB,CAAA,CAAA;AACD,SAfD,CAeGwnB,CAAAA,EAfH,CAeM,UAfN,EAekB,YAAY;UAC5B,IAAIiuI,YAAY,CAACtzJ,GAAb,CAAiB,CAAC,YAAD,EAAe6zJ,QAAf,CAAjB,CAA+C,KAAA,UAAnD,EAA+D;YAC7DzvK,GAAG,CAAC2Z,aAAJ,CAAkB,IAAlB,CAAA,CAAA;AACD,WAAA;;AAEDtb,UAAAA,WAAW,CAAC0oJ,IAAZ,EAAA,CAAA;SApBF,CAAA,CAAA;AAsBA,QAAA,CAACmoB,YAAY,CAACtzJ,GAAb,CAAiB,CAAC,YAAD,EAAe6zJ,QAAf,CAAjB,CAAA,KAA+C,UAA/C,GAA4Dh2J,aAA5D,GAA4EE,aAA7E,EAA4F7qB,IAA5F,CAAA,CAAA;QACAgmB,KAAK,CAACO,GAAN,CAAUvmB,IAAV,CAAA,CAAA;QACAA,IAAI,CAACmyC,EAAL,CAAQ,OAAR,EAAiB9V,MAAA,CAAY0iJ,OAAO,CAACh/E,OAApB,EAA6Bg/E,OAA7B,EAAsCr8I,OAAtC,EAA+CxxB,GAA/C,EAAoDyvK,QAApD,CAAjB,CAAA,CAAA;AACAC,QAAAA,SAAS,CAACD,QAAD,CAAT,GAAsB3gL,IAAtB,CAAA;OAzDF,CAAA,CAAA;AA2DD,KAAA;;IAED2hL,MAAA,CAA2B37J,KAA3B,EAAkC45J,YAAlC,EAAgD1uK,GAAhD,CAAA,CA5L4E;AA6L5E;;AAEA8U,IAAAA,KAAK,CAACO,GAAN,CAAUo7J,cAAA,CAAmC37J,KAAK,CAACs3B,eAAN,EAAnC,EAA4DsiI,YAA5D,CAAV,EA/L4E;;AAiM5EC,IAAAA,UAAU,IAAI75J,KAAK,CAACmgC,SAAN,CAAgB,UAAU2/B,IAAV,EAAgB;AAC5C,MAAA,IAAI87F,SAAS,GAAG97F,IAAI,CAAC07F,OAArB,CAD4C;AAE5C;;AAEA,MAAA,IAAIjzJ,aAAa,GAAGu3D,IAAI,CAACt3D,WAAL,CAAiB,UAAjB,CAApB,CAAA;MACA,IAAIqzJ,kBAAkB,GAAGtzJ,aAAa,CAAC0Y,UAAd,KAA6B1Y,aAAa,CAAC0Y,UAAd,GAA2B,EAAxD,CAAzB,CAAA;AACA,MAAA,IAAI13B,WAAW,GAAGu2E,IAAI,CAACt2E,cAAL,EAAlB,CAAA;MACA,IAAIsyK,iBAAiB,GAAGvyK,WAAW,IAAIA,WAAW,CAACif,WAAZ,CAAwB,UAAxB,CAAvC,CAP4C;;MAS5C,IAAIszJ,iBAAiB,IAAI,CAACzlJ,UAAA,CAAkBylJ,iBAAlB,CAAtB,IAA8DF,SAAlE,EAA6E;QAC3E,IAAIG,iBAAiB,GAAGD,iBAAiB,CAAC7oL,KAAlB,KAA4B6oL,iBAAiB,CAAC7oL,KAAlB,GAA0B,EAAtD,CAAxB,CAAA;AACA,QAAA,IAAI1B,IAAI,GAAG4jK,eAAA,CAA4BymB,SAA5B,EAAuCN,MAAM,CAACU,QAAP,CAAgBD,iBAAhB,CAAvC,CAAX,CAAA;QACA,IAAIn3K,OAAO,GAAGk7E,IAAI,CAAC1wF,CAAL,GAAS4wB,KAAK,CAAC5wB,CAA7B,CAAA;QACA,IAAI0V,OAAO,GAAGg7E,IAAI,CAACzwF,CAAL,GAAS2wB,KAAK,CAAC3wB,CAAf,GAAmB+1H,QAAjC,CAAA;QACA,IAAI62D,YAAY,GAAG,KAAnB,CAAA;;QAEA,IAAIn3K,OAAO,GAAGvT,IAAI,CAAC8G,MAAf,GAAwB6S,GAAG,CAACoG,SAAJ,EAA5B,EAA6C;UAC3CuqK,kBAAkB,CAACppK,QAAnB,GAA8B,KAA9B,CAAA;AACAwpK,UAAAA,YAAY,GAAG,IAAf,CAAA;AACD,SAAA;;AAED,QAAA,IAAIC,SAAS,GAAGD,YAAY,GAAG,CAAC,CAAD,GAAK1qL,IAAI,CAAC8G,MAAb,GAAsB+sH,QAAQ,GAAG,EAA7D,CAAA;;AAEA,QAAA,IAAIxgH,OAAO,GAAGrT,IAAI,CAAC6G,KAAL,GAAa,CAAvB,GAA2B8S,GAAG,CAACmG,QAAJ,EAA/B,EAA+C;AAC7CwqK,UAAAA,kBAAkB,CAACppK,QAAnB,GAA8B,CAAC,MAAD,EAASypK,SAAT,CAA9B,CAAA;UACAH,iBAAiB,CAAC//I,KAAlB,GAA0B,OAA1B,CAAA;SAFF,MAGO,IAAIp3B,OAAO,GAAGrT,IAAI,CAAC6G,KAAL,GAAa,CAAvB,GAA2B,CAA/B,EAAkC;AACvCyjL,UAAAA,kBAAkB,CAACppK,QAAnB,GAA8B,CAAC,CAAD,EAAIypK,SAAJ,CAA9B,CAAA;UACAH,iBAAiB,CAAC//I,KAAlB,GAA0B,MAA1B,CAAA;AACD,SAAA;AACF,OAAA;AACF,KA/Ba,CAAd,CAAA;GAjMF,CAAA;;AAmOA29I,EAAAA,WAAW,CAAChrL,SAAZ,CAAsBwtL,UAAtB,GAAmC,UAAUvC,YAAV,EAAwBl9I,OAAxB,EAAiCxxB,GAAjC,EAAsCu0B,OAAtC,EAA+C;IAChFpJ,MAAA,CAAY,IAAA,CAAK0jJ,SAAjB,EAA4B,UAAUhB,OAAV,EAAmB;MAC7CA,OAAO,YAAYL,cAAnB,IAAqCK,OAAO,CAACoD,UAA7C,IAA2DpD,OAAO,CAACoD,UAAR,CAAmBpD,OAAO,CAACnuI,KAA3B,EAAkClO,OAAlC,EAA2CxxB,GAA3C,EAAgDu0B,OAAhD,CAA3D,CAAA;KADF,CAAA,CAAA;AAGD,GAJD,CA1OgB;AA+OhB;AACA;AACA;AACA;;;EAGAk6I,WAAW,CAAChrL,SAAZ,CAAsBo8B,MAAtB,GAA+B,UAAU2R,OAAV,EAAmBxxB,GAAnB,EAAwB;IACrDmrB,MAAA,CAAY,IAAA,CAAK0jJ,SAAjB,EAA4B,UAAUhB,OAAV,EAAmB;AAC7CA,MAAAA,OAAO,YAAYL,cAAnB,IAAqCK,OAAO,CAAChuJ,MAA7C,IAAuDguJ,OAAO,CAAChuJ,MAAR,CAAe2R,OAAf,EAAwBxxB,GAAxB,CAAvD,CAAA;KADF,CAAA,CAAA;IAGA,IAAK8U,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;GAJF,CAAA;;EAOA+1J,WAAW,CAAChrL,SAAZ,CAAsB4iB,OAAtB,GAAgC,UAAUmrB,OAAV,EAAmBxxB,GAAnB,EAAwB;IACtDmrB,MAAA,CAAY,IAAA,CAAK0jJ,SAAjB,EAA4B,UAAUhB,OAAV,EAAmB;AAC7CA,MAAAA,OAAO,YAAYL,cAAnB,IAAqCK,OAAO,CAACxnK,OAA7C,IAAwDwnK,OAAO,CAACxnK,OAAR,CAAgBmrB,OAAhB,EAAyBxxB,GAAzB,CAAxD,CAAA;KADF,CAAA,CAAA;GADF,CAAA;;EAMAyuK,WAAW,CAACj4K,IAAZ,GAAmB,SAAnB,CAAA;AACA,EAAA,OAAOi4K,WAAP,CAAA;AACD,CApQD,CAoQE79G,aApQF,CAFA,CAAA;;AAwQA,SAASw+G,iBAAT,CAA2BrB,WAA3B,EAAwC;AACtC,EAAA,OAAOA,WAAW,CAACp9K,OAAZ,CAAoB,IAApB,MAA8B,CAArC,CAAA;AACD;;ACjUD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA;;AAEA,IAAIugL,WAAW;AACf;AACA,UAAUvpK,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACspK,WAAD,EAAcvpK,MAAd,CAAT,CAAA;;AAEA,EAAA,SAASupK,WAAT,GAAuB;AACrB,IAAA,OAAOvpK,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;;EAED8pL,WAAW,CAACztL,SAAZ,CAAsBorG,OAAtB,GAAgC,UAAUr9D,OAAV,EAAmBxxB,GAAnB,EAAwB;IACtD,IAAI0/B,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAIu5E,KAAK,GAAGv5E,KAAK,CAAC9jB,GAAN,CAAU,MAAV,CAAqB4V,IAAAA,OAAO,CAAC5V,GAAR,CAAY,cAAZ,CAArB,IAAoD,SAAhE,CAAA;IACA,IAAIkmH,KAAK,GAAG9hI,GAAG,CAACghC,KAAJ,GAAY/5B,OAAZ,CAAoB/D,OAApB,EAAA,KAAkC,KAA9C,CAAA;AACA,IAAA,IAAI1M,IAAI,GAAGsrI,KAAK,GAAG,KAAH,GAAWpiG,KAAK,CAAC9jB,GAAN,CAAU,MAAV,EAAkB,IAAlB,KAA2B,KAAtD,CAAA;AACA,IAAA,IAAIuoD,GAAG,GAAGnkE,GAAG,CAACmxK,mBAAJ,CAAwB;AAChC36K,MAAAA,IAAI,EAAEA,IAD0B;AAEhCmO,MAAAA,eAAe,EAAE+6B,KAAK,CAAC9jB,GAAN,CAAU,iBAAV,EAA6B,IAA7B,CAAsC4V,IAAAA,OAAO,CAAC5V,GAAR,CAAY,iBAAZ,CAAtC,IAAwE,MAFzD;AAGhCw1J,MAAAA,wBAAwB,EAAE1xI,KAAK,CAAC9jB,GAAN,CAAU,0BAAV,CAHM;AAIhCy1J,MAAAA,iBAAiB,EAAE3xI,KAAK,CAAC9jB,GAAN,CAAU,mBAAV,CAJa;AAKhC9H,MAAAA,UAAU,EAAE4rB,KAAK,CAAC9jB,GAAN,CAAU,YAAV,CAAA;AALoB,KAAxB,CAAV,CAAA;AAOA,IAAA,IAAI01J,OAAO,GAAGx2K,GAAG,CAACw2K,OAAlB,CAZsD;;AActD,IAAA,IAAI98K,UAAU,CAAC+8K,UAAD,CAAV,KAA2BD,OAAO,CAACE,OAAR,IAAmB,CAACF,OAAO,CAACG,EAAT,IAAe,CAACH,OAAO,CAAC1uF,IAAtE,CAAJ,EAAiF;AAC/E,MAAA,IAAI8uF,EAAE,GAAGtnL,QAAQ,CAACF,aAAT,CAAuB,GAAvB,CAAT,CAAA;AACAwnL,MAAAA,EAAE,CAACC,QAAH,GAAc14D,KAAK,GAAG,GAAR,GAAcziH,IAA5B,CAAA;MACAk7K,EAAE,CAACpiL,MAAH,GAAY,QAAZ,CAAA;MACAoiL,EAAE,CAAC/5K,IAAH,GAAUwsE,GAAV,CAAA;AACA,MAAA,IAAIytG,GAAG,GAAG,IAAIL,UAAJ,CAAe,OAAf,EAAwB;AAChC;QACAz2F,IAAI,EAAE1wF,QAAQ,CAACynL,WAFiB;AAGhCC,QAAAA,OAAO,EAAE,IAHuB;AAIhCC,QAAAA,UAAU,EAAE,KAAA;AAJoB,OAAxB,CAAV,CAAA;MAMAL,EAAE,CAACM,aAAH,CAAiBJ,GAAjB,CAAA,CAAA;AACD,KAZD;SAaK;AACD;AACA,MAAA,IAAIK,MAAM,CAACC,SAAP,CAAiBC,gBAAjB,IAAqCrwC,KAAzC,EAAgD;QAC9C,IAAIswC,KAAK,GAAGjuG,GAAG,CAAC6/B,KAAJ,CAAU,GAAV,CAAZ,CAD8C;;AAG9C,QAAA,IAAIquE,aAAa,GAAGD,KAAK,CAAC,CAAD,CAAL,CAASzhL,OAAT,CAAiB,QAAjB,CAA6B,GAAA,CAAC,CAAlD,CAAA;QACA,IAAI2hL,IAAI,GAAGxwC,KAAK;AAAA,UACdywC,kBAAkB,CAACH,KAAK,CAAC,CAAD,CAAN,CADJ,GACiBA,KAAK,CAAC,CAAD,CADtC,CAJ8C;AAM9C;AACA;AACA;;QAEAC,aAAa,KAAKC,IAAI,GAAGL,MAAM,CAACO,IAAP,CAAYF,IAAZ,CAAZ,CAAb,CAAA;QACA,IAAIG,QAAQ,GAAGx5D,KAAK,GAAG,GAAR,GAAcziH,IAA7B,CAX8C;;AAa9C,QAAA,IAAIy7K,MAAM,CAACC,SAAP,CAAiBC,gBAArB,EAAuC;AACrC,UAAA,IAAIt1F,CAAC,GAAGy1F,IAAI,CAAC7rL,MAAb,CAAA;AACA,UAAA,IAAIisL,KAAK,GAAG,IAAIC,UAAJ,CAAe91F,CAAf,CAAZ,CAAA;;UAEA,OAAOA,CAAC,EAAR,EAAY;YACV61F,KAAK,CAAC71F,CAAD,CAAL,GAAWy1F,IAAI,CAACxxK,UAAL,CAAgB+7E,CAAhB,CAAX,CAAA;AACD,WAAA;;UAED,IAAI+1F,IAAI,GAAG,IAAIC,IAAJ,CAAS,CAACH,KAAD,CAAT,CAAX,CARqC;;AAUrCT,UAAAA,MAAM,CAACC,SAAP,CAAiBC,gBAAjB,CAAkCS,IAAlC,EAAwCH,QAAxC,CAAA,CAAA;AACD,SAXD,MAWO;AACL,UAAA,IAAIt6I,KAAK,GAAG/tC,QAAQ,CAACF,aAAT,CAAuB,QAAvB,CAAZ,CAAA;AACAE,UAAAA,QAAQ,CAAC0oL,IAAT,CAAc70K,WAAd,CAA0Bk6B,KAA1B,CAAA,CAAA;AACA,UAAA,IAAI46I,EAAE,GAAG56I,KAAK,CAAC66I,aAAf,CAAA;AACA,UAAA,IAAIC,GAAG,GAAGF,EAAE,CAAC3oL,QAAb,CAAA;AACA6oL,UAAAA,GAAG,CAACC,IAAJ,CAAS,eAAT,EAA0B,SAA1B,CAAA,CAAA;UACAD,GAAG,CAACE,KAAJ,CAAUb,IAAV,CAAA,CAAA;AACAW,UAAAA,GAAG,CAACz4E,KAAJ,EAAA,CAAA;AACAu4E,UAAAA,EAAE,CAAC/3J,KAAH,EAAA,CAAA;AACAi4J,UAAAA,GAAG,CAACG,WAAJ,CAAgB,QAAhB,EAA0B,IAA1B,EAAgCX,QAAhC,CAAA,CAAA;AACAroL,UAAAA,QAAQ,CAAC0oL,IAAT,CAAc/0K,WAAd,CAA0Bo6B,KAA1B,CAAA,CAAA;AACD,SAAA;AACF,OApCD,MAoCO;AACL,QAAA,IAAIk7I,IAAI,GAAG3zI,KAAK,CAAC9jB,GAAN,CAAU,MAAV,CAAX,CAAA;QACA,IAAI03J,IAAI,GAAG,EAAK,GAAA,0BAAL,GAAkC,YAAlC,GAAiDnvG,GAAjD,GAAuD,mCAAvD,IAA8FkvG,IAAI,IAAIA,IAAI,CAAC,CAAD,CAAZ,IAAmB,EAAjH,CAAA,GAAuH,MAAvH,GAAgI,SAA3I,CAAA;AACA,QAAA,IAAIE,GAAG,GAAGtB,MAAM,CAACiB,IAAP,EAAV,CAAA;AACAK,QAAAA,GAAG,CAACnpL,QAAJ,CAAa+oL,KAAb,CAAmBG,IAAnB,CAAA,CAAA;AACAC,QAAAA,GAAG,CAACnpL,QAAJ,CAAa6uH,KAAb,GAAqBA,KAArB,CAAA;AACD,OAAA;AACF,KAAA;GAxEL,CAAA;;AA2EAi4D,EAAAA,WAAW,CAACh3H,gBAAZ,GAA+B,UAAU1oB,OAAV,EAAmB;AAChD,IAAA,IAAIpb,aAAa,GAAG;AAClBI,MAAAA,IAAI,EAAE,IADY;AAElBo+D,MAAAA,IAAI,EAAE,kFAFY;AAGlBqkC,MAAAA,KAAK,EAAEznF,OAAO,CAACwnI,cAAR,GAAyBp9I,GAAzB,CAA6B,CAAC,SAAD,EAAY,aAAZ,EAA2B,OAA3B,CAA7B,CAHW;AAIlBplB,MAAAA,IAAI,EAAE,KAJY;AAKlB;AACA;AACA46K,MAAAA,wBAAwB,EAAE,MAPR;AAQlBjnL,MAAAA,IAAI,EAAE,EARY;MASlBknL,iBAAiB,EAAE,CAAC,SAAD,CATD;AAUlB;AACA;AACAgC,MAAAA,IAAI,EAAE7hJ,OAAO,CAACwnI,cAAR,EAAyBp9I,CAAAA,GAAzB,CAA6B,CAAC,SAAD,EAAY,aAAZ,EAA2B,MAA3B,CAA7B,CAAA;KAZR,CAAA;AAcA,IAAA,OAAOxF,aAAP,CAAA;GAfF,CAAA;;AAkBA,EAAA,OAAO86J,WAAP,CAAA;AACD,CArGD,CAqGE1D,cArGF,CAFA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BA,IAAIgG,mBAAmB,GAAG,wBAA1B,CAAA;AACA,IAAIC,YAAU,GAAG,CAAC,MAAD,EAAS,KAAT,EAAgB,OAAhB,CAAjB;;AAEA,IAAIC,WAAW,GAAG,CAAC,MAAD,EAAS,KAAT,EAAgB,OAAhB,EAAyB,OAAzB,CAAlB,CAAA;AACA,IAAIC,UAAU,GAAG,CAAC,CAAC,MAAD,EAAS,KAAT,CAAD,EAAkB,CAAC,OAAD,CAAlB,CAAjB,CAAA;;AAEA,IAAIC,SAAS;AACb;AACA,UAAUjsK,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACgsK,SAAD,EAAYjsK,MAAZ,CAAT,CAAA;;AAEA,EAAA,SAASisK,SAAT,GAAqB;AACnB,IAAA,OAAOjsK,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;;AAEDwsL,EAAAA,SAAS,CAACnwL,SAAV,CAAoBssL,QAApB,GAA+B,YAAY;IACzC,IAAIrwI,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAIm0I,cAAc,GAAGn0I,KAAK,CAAC9jB,GAAN,CAAU,MAAV,CAArB,CAAA;IACA,IAAIk0J,KAAK,GAAG,EAAZ,CAAA;AACA3kJ,IAAAA,MAAA,CAAYuU,KAAK,CAAC9jB,GAAN,CAAU,MAAV,CAAZ,EAA+B,UAAUplB,IAAV,EAAgB;AAC7C,MAAA,IAAIq9K,cAAc,CAACr9K,IAAD,CAAlB,EAA0B;AACxBs5K,QAAAA,KAAK,CAACt5K,IAAD,CAAL,GAAcq9K,cAAc,CAACr9K,IAAD,CAA5B,CAAA;AACD,OAAA;KAHH,CAAA,CAAA;AAKA,IAAA,OAAOs5K,KAAP,CAAA;GATF,CAAA;;AAYA8D,EAAAA,SAAS,CAAC15H,gBAAV,GAA6B,UAAU1oB,OAAV,EAAmB;AAC9C,IAAA,IAAIpb,aAAa,GAAG;AAClBI,MAAAA,IAAI,EAAE,IADY;AAElBhgB,MAAAA,IAAI,EAAE,EAFY;AAGlB;AACAo+E,MAAAA,IAAI,EAAE;AACJ5/D,QAAAA,IAAI,EAAE,8DADF;AAEJwzH,QAAAA,GAAG,EAAE,iFAFD;AAGJ;QACA0E,KAAK,EAAE,kYAJH;;OAJY;AAWlB;AACAj0B,MAAAA,KAAK,EAAEznF,OAAO,CAACwnI,cAAR,GAAyBp9I,GAAzB,CAA6B,CAAC,SAAD,EAAY,WAAZ,EAAyB,OAAzB,CAA7B,CAZW;AAalBtH,MAAAA,MAAM,EAAE,EAbU;AAclBkf,MAAAA,WAAW,EAAE,EAAA;KAdf,CAAA;AAgBA,IAAA,OAAOpd,aAAP,CAAA;GAjBF,CAAA;;EAoBAw9J,SAAS,CAACnwL,SAAV,CAAoBorG,OAApB,GAA8B,UAAUr9D,OAAV,EAAmBxxB,GAAnB,EAAwBxJ,IAAxB,EAA8B;IAC1D,IAAIkpC,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAIlM,WAAW,GAAGkM,KAAK,CAAC9jB,GAAN,CAAU,CAAC,aAAD,EAAgBplB,IAAhB,CAAV,CAAlB,CAF0D;;AAI1D,IAAA,IAAI,CAACs9K,kBAAkB,CAACt9K,IAAD,CAAvB,EAA+B;AAC7B,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIynH,SAAS,GAAG;AACdjqD,MAAAA,MAAM,EAAE,EAAA;KADV,CAAA;;AAIA,IAAA,IAAI+/G,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAU55J,WAAV,EAAuB;AAClD,MAAA,IAAIma,UAAU,GAAGna,WAAW,CAACgyD,OAA7B,CAAA;AACA,MAAA,IAAIiH,QAAQ,GAAGj5D,WAAW,CAAC7iB,EAA3B,CAAA;AACA,MAAA,IAAI08K,YAAY,GAAGF,kBAAkB,CAACt9K,IAAD,CAAlB,CAAyB89B,UAAzB,EAAqC8+C,QAArC,EAA+Cj5D,WAA/C,EAA4DulB,KAA5D,CAAnB,CAAA;;AAEA,MAAA,IAAIs0I,YAAJ,EAAkB;AAChB;AACA7oJ,QAAAA,QAAA,CAAgB6oJ,YAAhB,EAA8B75J,WAAW,CAAC7F,MAA1C,CAAA,CAAA;AACA2pG,QAAAA,SAAS,CAACjqD,MAAV,CAAiBxsE,IAAjB,CAAsBwsL,YAAtB,CAAA,CAAA;AACD,OATiD;;;AAYlD,MAAA,IAAIz/J,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;AAEA,MAAA,IAAID,QAAQ,IAAIA,QAAQ,CAAC/d,IAAT,KAAkB,aAA9B,KAAgDA,IAAI,KAAK,MAAT,IAAmBA,IAAI,KAAK,KAA5E,CAAJ,EAAwF;QACtF,IAAI+3B,YAAY,GAAGha,QAAQ,CAACia,cAAT,CAAwB,SAAxB,CAAmC,CAAA,CAAnC,CAAnB,CAAA;;AAEA,QAAA,IAAID,YAAJ,EAAkB;AAChB,UAAA,IAAIiwB,OAAO,GAAGjwB,YAAY,CAAC/M,GAA3B,CAAA;AACA,UAAA,IAAIg4B,QAAQ,GAAGgF,OAAO,GAAG,MAAzB,CAAA;AACA,UAAA,IAAI/a,SAAS,GAAGtpB,WAAW,CAACw8B,sBAAZ,CAAmC6C,QAAnC,EAA6C5C,gBAA7C,CAAA,CAA+DC,MAA/D,CAAsE,CAAtE,CAAhB,CAAA;AACA,UAAA,IAAIsM,SAAS,GAAG1f,SAAS,CAACrP,cAA1B,CAAA;UACA6pF,SAAS,CAACzkE,QAAD,CAAT,GAAsBykE,SAAS,CAACzkE,QAAD,CAAT,IAAuB,EAA7C,CAAA;;UAEA,KAAK,IAAIryD,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAIg8D,SAArB,EAAgCh8D,CAAC,EAAjC,EAAqC;AACnC82H,YAAAA,SAAS,CAACzkE,QAAD,CAAT,CAAoB2J,SAApB,CAAA,GAAiC86D,SAAS,CAACzkE,QAAD,CAAT,CAAoB2J,SAApB,KAAkC,EAAnE,CAAA;AACD,WAAA;;UAED86D,SAAS,CAACzkE,QAAD,CAAT,CAAoB2J,SAApB,EAA+B/K,WAA/B,GAA6C5hD,IAAI,KAAK,KAAtD,CAAA;AACD,SAAA;AACF,OAAA;KA9BH,CAAA;;AAiCA20B,IAAAA,MAAA,CAAYwoJ,UAAZ,EAAwB,UAAUM,KAAV,EAAiB;MACvC,IAAI9oJ,OAAA,CAAe8oJ,KAAf,EAAsBz9K,IAAtB,CAA+B,IAAA,CAAnC,EAAsC;AACpC20B,QAAAA,MAAA,CAAY8oJ,KAAZ,EAAmB,UAAUj+K,IAAV,EAAgB;AACjC0pC,UAAAA,KAAK,CAAC8vI,aAAN,CAAoBx5K,IAApB,EAA0B,QAA1B,CAAA,CAAA;SADF,CAAA,CAAA;AAGD,OAAA;KALH,CAAA,CAAA;AAOA0pC,IAAAA,KAAK,CAAC8vI,aAAN,CAAoBh5K,IAApB,EAA0B,UAA1B,CAAA,CAAA;IACAg7B,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAE,QADU;AAEpBC,MAAAA,KAAK,EAAE9T,WAAW,IAAI,IAAf,GAAsB,IAAtB,GAA6B;AAClCA,QAAAA,WAAW,EAAEA,WAAAA;AADqB,OAAA;AAFhB,KAAtB,EAKGugJ,sBALH,CAAA,CAAA;AAMA,IAAA,IAAI5E,QAAJ,CAAA;AACA,IAAA,IAAI+E,WAAW,GAAG19K,IAAlB,CA5D0D;;IA8D1D,IAAIA,IAAI,KAAK,OAAb,EAAsB;AACpB;AACA;AACA;AACA24K,MAAAA,QAAQ,GAAGhkJ,KAAA,CAAa;AACtB+hH,QAAAA,KAAK,EAAExtG,KAAK,CAACprB,MAAN,CAAa2kG,KAAb,CAAmBk7D,KADJ;AAEtBA,QAAAA,KAAK,EAAEz0I,KAAK,CAACprB,MAAN,CAAa2kG,KAAb,CAAmBi0B,KAAAA;AAFJ,OAAb,EAGRxtG,KAAK,CAACprB,MAAN,CAAa2kG,KAHL,CAAX,CAAA;;MAKA,IAAIv5E,KAAK,CAAC9jB,GAAN,CAAU,CAAC,YAAD,EAAeplB,IAAf,CAAV,CAAoC,KAAA,UAAxC,EAAoD;AAClD09K,QAAAA,WAAW,GAAG,OAAd,CAAA;AACD,OAAA;AACF,KAAA;;IAEDl0K,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,MAAAA,IAAI,EAAE,iBADW;AAEjB09K,MAAAA,WAAW,EAAEA,WAFI;AAGjBj2D,MAAAA,SAAS,EAAEA,SAHM;AAIjBkxD,MAAAA,QAAQ,EAAEA,QAJO;AAKjBpB,MAAAA,WAAW,EAAE,WAAA;KALf,CAAA,CAAA;GA5EF,CAAA;;AAqFA,EAAA,OAAO6F,SAAP,CAAA;AACD,CA7HD,CA6HEpG,cA7HF,CAFA,CAAA;;AAiIA,IAAIsG,kBAAkB,GAAG;EACvB,MAAQ,EAAA,SAAA,IAAA,CAAUx/I,UAAV,EAAsB8+C,QAAtB,EAAgCj5D,WAAhC,EAA6CulB,KAA7C,EAAoD;IAC1D,IAAIpL,UAAU,KAAK,KAAnB,EAA0B;MACxB,OAAOnJ,KAAA,CAAa;AAClB7zB,QAAAA,EAAE,EAAE87E,QADc;AAElB58E,QAAAA,IAAI,EAAE,MAFY;AAGlB;AACAmhB,QAAAA,IAAI,EAAEwC,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,CAJY;AAKlBsxH,QAAAA,KAAK,EAAE/yH,WAAW,CAACyB,GAAZ,CAAgB,OAAhB,CALW;AAMlBw4J,QAAAA,SAAS,EAAEj6J,WAAW,CAACyB,GAAZ,CAAgB,WAAhB,CANO;AAOlBy4J,QAAAA,QAAQ,EAAEl6J,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,CAAA;AAPQ,OAAb,EAQJ8jB,KAAK,CAAC9jB,GAAN,CAAU,CAAC,QAAD,EAAW,MAAX,CAAV,CAAA,IAAiC,EAR7B,EAQiC,IARjC,CAAP,CAAA;AASD,KAAA;GAZoB;EAcvB,KAAO,EAAA,SAAA,GAAA,CAAU0Y,UAAV,EAAsB8+C,QAAtB,EAAgCj5D,WAAhC,EAA6CulB,KAA7C,EAAoD;IACzD,IAAIpL,UAAU,KAAK,MAAnB,EAA2B;MACzB,OAAOnJ,KAAA,CAAa;AAClB7zB,QAAAA,EAAE,EAAE87E,QADc;AAElB58E,QAAAA,IAAI,EAAE,KAFY;AAGlB;AACAmhB,QAAAA,IAAI,EAAEwC,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,CAJY;AAKlBsxH,QAAAA,KAAK,EAAE/yH,WAAW,CAACyB,GAAZ,CAAgB,OAAhB,CALW;AAMlBw4J,QAAAA,SAAS,EAAEj6J,WAAW,CAACyB,GAAZ,CAAgB,WAAhB,CANO;AAOlBy4J,QAAAA,QAAQ,EAAEl6J,WAAW,CAACyB,GAAZ,CAAgB,UAAhB,CAAA;AAPQ,OAAb,EAQJ8jB,KAAK,CAAC9jB,GAAN,CAAU,CAAC,QAAD,EAAW,KAAX,CAAV,CAAA,IAAgC,EAR5B,EAQgC,IARhC,CAAP,CAAA;AASD,KAAA;GAzBoB;EA2BvB,OAAS,EAAA,SAAA,KAAA,CAAU0Y,UAAV,EAAsB8+C,QAAtB,EAAgCj5D,WAAhC,EAA6CulB,KAA7C,EAAoD;IAC3D,IAAI40I,OAAO,GAAGn6J,WAAW,CAACyB,GAAZ,CAAgB,OAAhB,MAA6B43J,mBAA3C,CAAA;;AAEA,IAAA,IAAIl/I,UAAU,KAAK,MAAf,IAAyBA,UAAU,KAAK,KAA5C,EAAmD;MACjDoL,KAAK,CAAC8vI,aAAN,CAAoB,OAApB,EAA6B8E,OAAO,GAAG,QAAH,GAAc,UAAlD,CAAA,CAAA;MACA,OAAOnpJ,KAAA,CAAa;AAClB7zB,QAAAA,EAAE,EAAE87E,QADc;AAElB85D,QAAAA,KAAK,EAAEonC,OAAO,GAAG,EAAH,GAAQd,mBAAAA;AAFJ,OAAb,EAGJ9zI,KAAK,CAAC9jB,GAAN,CAAU,CAAC,QAAD,EAAW,OAAX,CAAV,CAAA,IAAkC,EAH9B,EAGkC,IAHlC,CAAP,CAAA;AAID,KAAA;AACF,GAAA;AArCsB,CAAzB;;AAwCAu+C,cAAA,CAAuB;AACrB3jE,EAAAA,IAAI,EAAE,iBADe;AAErBgwC,EAAAA,KAAK,EAAE,kBAFc;AAGrB9mB,EAAAA,MAAM,EAAE,kBAAA;AAHa,CAAvB,EAIG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4B;AAC7BA,EAAAA,OAAO,CAACsgB,WAAR,CAAoBvd,OAAO,CAAC0pF,SAA5B,CAAA,CAAA;AACD,CAND,CAAA;;AC9NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiCA;;AAEA,IAAIs2D,aAAa,GAAG,IAAI9/I,KAAJ,CAAU,EAAV,CAAchtC,CAAAA,IAAd,CAAmB,GAAnB,CAApB,CAAA;AACA,IAAI+sL,YAAY,GAAG,IAAnB,CAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASC,WAAT,CAAqBjjJ,OAArB,EAA8B;EAC5B,IAAIkjJ,yBAAyB,GAAG,EAAhC,CAAA;EACA,IAAIC,WAAW,GAAG,EAAlB,CAAA;EACA,IAAIC,IAAI,GAAG,EAAX,CAAA;AACApjJ,EAAAA,OAAO,CAACqjJ,aAAR,CAAsB,UAAU16J,WAAV,EAAuB;AAC3C,IAAA,IAAI5F,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;AAEA,IAAA,IAAID,QAAQ,KAAKA,QAAQ,CAAC/d,IAAT,KAAkB,aAAlB,IAAmC+d,QAAQ,CAAC/d,IAAT,KAAkB,OAA1D,CAAZ,EAAgF;AAC9E;AACA,MAAA,IAAIyqB,QAAQ,GAAG1M,QAAQ,CAAC2M,WAAT,EAAf,CAAA;;AAEA,MAAA,IAAID,QAAQ,CAACzqB,IAAT,KAAkB,UAAtB,EAAkC;QAChC,IAAIhM,GAAG,GAAGy2B,QAAQ,CAACO,GAAT,GAAe,GAAf,GAAqBP,QAAQ,CAACyhB,KAAxC,CAAA;;AAEA,QAAA,IAAI,CAACgyI,yBAAyB,CAAClqL,GAAD,CAA9B,EAAqC;UACnCkqL,yBAAyB,CAAClqL,GAAD,CAAzB,GAAiC;AAC/B+jC,YAAAA,YAAY,EAAEtN,QADiB;AAE/BE,YAAAA,SAAS,EAAE5M,QAAQ,CAAC6M,YAAT,CAAsBH,QAAtB,CAFoB;AAG/B+yC,YAAAA,MAAM,EAAE,EAAA;WAHV,CAAA;UAKA4gH,IAAI,CAACptL,IAAL,CAAU;YACRg3D,OAAO,EAAEv9B,QAAQ,CAACO,GADV;YAER2hC,SAAS,EAAEliC,QAAQ,CAACyhB,KAAAA;WAFtB,CAAA,CAAA;AAID,SAAA;;QAEDgyI,yBAAyB,CAAClqL,GAAD,CAAzB,CAA+BwpE,MAA/B,CAAsCxsE,IAAtC,CAA2C2yB,WAA3C,CAAA,CAAA;AACD,OAhBD,MAgBO;QACLw6J,WAAW,CAACntL,IAAZ,CAAiB2yB,WAAjB,CAAA,CAAA;AACD,OAAA;AACF,KAvBD,MAuBO;MACLw6J,WAAW,CAACntL,IAAZ,CAAiB2yB,WAAjB,CAAA,CAAA;AACD,KAAA;GA5BH,CAAA,CAAA;EA8BA,OAAO;AACLu6J,IAAAA,yBAAyB,EAAEA,yBADtB;AAELI,IAAAA,KAAK,EAAEH,WAFF;AAGLC,IAAAA,IAAI,EAAEA,IAAAA;GAHR,CAAA;AAKD,CAAA;AACD;AACA;AACA;AACA;;;AAGA,SAASG,8BAAT,CAAwCC,MAAxC,EAAgD;EAC9C,IAAIC,MAAM,GAAG,EAAb,CAAA;EACA9pJ,MAAA,CAAY6pJ,MAAZ,EAAoB,UAAUlgK,KAAV,EAAiBtqB,GAAjB,EAAsB;AACxC,IAAA,IAAI+jC,YAAY,GAAGzZ,KAAK,CAACyZ,YAAzB,CAAA;AACA,IAAA,IAAIpN,SAAS,GAAGrM,KAAK,CAACqM,SAAtB,CAAA;AACA,IAAA,IAAIM,YAAY,GAAGN,SAAS,CAACK,GAA7B,CAAA;AACA,IAAA,IAAI0zJ,OAAO,GAAG,CAAC,GAAD,CAAA,CAAM38G,MAAN,CAAaptC,GAAA,CAAWrW,KAAK,CAACk/C,MAAjB,EAAyB,UAAUA,MAAV,EAAkB;MACpE,OAAOA,MAAM,CAAC7pE,IAAd,CAAA;KADyB,CAAb,CAAd,CAJwC;;IAQxC,IAAIgrL,OAAO,GAAG,CAAC5mJ,YAAY,CAACmR,KAAb,CAAmBgb,aAAnB,EAAD,CAAd,CAAA;IACAvvB,MAAA,CAAYrW,KAAK,CAACk/C,MAAlB,EAA0B,UAAUA,MAAV,EAAkB;AAC1C,MAAA,IAAI1iB,OAAO,GAAG0iB,MAAM,CAAC9iB,UAAP,EAAd,CAAA;AACAikI,MAAAA,OAAO,CAAC3tL,IAAR,CAAawsE,MAAM,CAAC9iB,UAAP,GAAoBK,QAApB,CAA6BD,OAAO,CAAC3vB,YAAR,CAAqBF,YAArB,CAA7B,EAAiE,UAAUp6B,GAAV,EAAe;AAC3F,QAAA,OAAOA,GAAP,CAAA;AACD,OAFY,CAAb,CAAA,CAAA;AAGD,KALD,EATwC;;IAgBxC,IAAI0sK,KAAK,GAAG,CAACmhB,OAAO,CAACztL,IAAR,CAAa+sL,YAAb,CAAD,CAAZ,CAAA;;AAEA,IAAA,KAAK,IAAIrtL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGguL,OAAO,CAAC,CAAD,CAAP,CAAW1uL,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;MAC1C,IAAIojD,KAAK,GAAG,EAAZ,CAAA;;AAEA,MAAA,KAAK,IAAIl+B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8oK,OAAO,CAAC1uL,MAA5B,EAAoC4lB,CAAC,EAArC,EAAyC;QACvCk+B,KAAK,CAAC/iD,IAAN,CAAW2tL,OAAO,CAAC9oK,CAAD,CAAP,CAAWllB,CAAX,CAAX,CAAA,CAAA;AACD,OAAA;;MAED4sK,KAAK,CAACvsK,IAAN,CAAW+iD,KAAK,CAAC9iD,IAAN,CAAW+sL,YAAX,CAAX,CAAA,CAAA;AACD,KAAA;;IAEDS,MAAM,CAACztL,IAAP,CAAYusK,KAAK,CAACtsK,IAAN,CAAW,IAAX,CAAZ,CAAA,CAAA;GA5BF,CAAA,CAAA;EA8BA,OAAOwtL,MAAM,CAACxtL,IAAP,CAAY,SAAS8sL,aAAT,GAAyB,MAArC,CAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASa,mBAAT,CAA6BphH,MAA7B,EAAqC;EACnC,OAAO7oC,GAAA,CAAW6oC,MAAX,EAAmB,UAAUA,MAAV,EAAkB;AAC1C,IAAA,IAAIr8C,IAAI,GAAGq8C,MAAM,CAAC9iB,UAAP,EAAX,CAAA;AACA,IAAA,IAAI6iH,KAAK,GAAG,CAAC//F,MAAM,CAAC7pE,IAAR,CAAZ,CAAA;IACA,IAAIjD,IAAI,GAAG,EAAX,CAAA;AACAywB,IAAAA,IAAI,CAACxnB,IAAL,CAAUwnB,IAAI,CAACoK,UAAf,EAA2B,YAAY;AACrC,MAAA,IAAIszJ,MAAM,GAAGjuL,SAAS,CAACX,MAAvB,CAAA;AACA,MAAA,IAAImxB,SAAS,GAAGxwB,SAAS,CAACiuL,MAAM,GAAG,CAAV,CAAzB,CAAA;AACA,MAAA,IAAIlrL,IAAI,GAAGwtB,IAAI,CAACyF,OAAL,CAAaxF,SAAb,CAAX,CAAA;;AAEA,MAAA,KAAK,IAAIzwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkuL,MAAM,GAAG,CAA7B,EAAgCluL,CAAC,EAAjC,EAAqC;AACnCD,QAAAA,IAAI,CAACC,CAAD,CAAJ,GAAUC,SAAS,CAACD,CAAD,CAAnB,CAAA;AACD,OAAA;;AAED4sK,MAAAA,KAAK,CAACvsK,IAAN,CAAW,CAAC2C,IAAI,GAAGA,IAAI,GAAGqqL,YAAV,GAAyB,EAA9B,IAAoCttL,IAAI,CAACO,IAAL,CAAU+sL,YAAV,CAA/C,CAAA,CAAA;KATF,CAAA,CAAA;AAWA,IAAA,OAAOzgB,KAAK,CAACtsK,IAAN,CAAW,IAAX,CAAP,CAAA;AACD,GAhBM,EAgBJA,IAhBI,CAgBC,SAAS8sL,aAAT,GAAyB,MAhB1B,CAAP,CAAA;AAiBD,CAAA;;AAED,SAASe,mBAAT,CAA6B9jJ,OAA7B,EAAsC;AACpC,EAAA,IAAIg7B,MAAM,GAAGioH,WAAW,CAACjjJ,OAAD,CAAxB,CAAA;EACA,OAAO;IACL7O,KAAK,EAAEwI,MAAA,CAAc,CAAC4pJ,8BAA8B,CAACvoH,MAAM,CAACkoH,yBAAR,CAA/B,EAAmEU,mBAAmB,CAAC5oH,MAAM,CAACsoH,KAAR,CAAtF,CAAd,EAAqH,UAAUvhL,GAAV,EAAe;MACzI,OAAO,CAAC,CAACA,GAAG,CAAC3C,OAAJ,CAAY,WAAZ,EAAyB,EAAzB,CAAT,CAAA;AACD,KAFM,EAEJnJ,IAFI,CAEC,SAAS8sL,aAAT,GAAyB,MAF1B,CADF;IAILK,IAAI,EAAEpoH,MAAM,CAACooH,IAAAA;GAJf,CAAA;AAMD,CAAA;;AAED,SAASxwG,IAAT,CAAc7wE,GAAd,EAAmB;AACjB,EAAA,OAAOA,GAAG,CAAC3C,OAAJ,CAAY,QAAZ,EAAsB,EAAtB,CAAA,CAA0BA,OAA1B,CAAkC,QAAlC,EAA4C,EAA5C,CAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAAS2kL,WAAT,CAAqBC,KAArB,EAA4B;AAC1B;AACA,EAAA,IAAIC,SAAS,GAAGD,KAAK,CAAChpK,KAAN,CAAY,CAAZ,EAAegpK,KAAK,CAAC7kL,OAAN,CAAc,IAAd,CAAf,CAAhB,CAAA;;AAEA,EAAA,IAAI8kL,SAAS,CAAC9kL,OAAV,CAAkB6jL,YAAlB,CAAA,IAAmC,CAAvC,EAA0C;AACxC,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;AACF,CAAA;;AAED,IAAIkB,cAAc,GAAG,IAAIC,MAAJ,CAAW,GAAMnB,GAAAA,YAAN,GAAqB,IAAhC,EAAsC,GAAtC,CAArB,CAAA;AACA;AACA;AACA;AACA;;AAEA,SAASoB,gBAAT,CAA0BC,GAA1B,EAA+B;AAC7B,EAAA,IAAIC,QAAQ,GAAGD,GAAG,CAAC7xE,KAAJ,CAAU,MAAV,CAAf,CAAA;AACA,EAAA,IAAIkxE,OAAO,GAAG9wG,IAAI,CAAC0xG,QAAQ,CAACr5F,KAAT,EAAD,CAAJ,CAAuBunB,KAAvB,CAA6B0xE,cAA7B,CAAd,CAAA;EACA,IAAI3zI,UAAU,GAAG,EAAjB,CAAA;EACA,IAAIiyB,MAAM,GAAG7oC,GAAA,CAAW+pJ,OAAX,EAAoB,UAAUp/G,MAAV,EAAkB;IACjD,OAAO;AACL3rE,MAAAA,IAAI,EAAE2rE,MADD;AAELn+C,MAAAA,IAAI,EAAE,EAAA;KAFR,CAAA;AAID,GALY,CAAb,CAAA;;AAOA,EAAA,KAAK,IAAIxwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2uL,QAAQ,CAACrvL,MAA7B,EAAqCU,CAAC,EAAtC,EAA0C;AACxC,IAAA,IAAIojD,KAAK,GAAG65B,IAAI,CAAC0xG,QAAQ,CAAC3uL,CAAD,CAAT,CAAJ,CAAkB68G,KAAlB,CAAwB0xE,cAAxB,CAAZ,CAAA;AACA3zI,IAAAA,UAAU,CAACv6C,IAAX,CAAgB+iD,KAAK,CAACkyC,KAAN,EAAhB,CAAA,CAAA;;AAEA,IAAA,KAAK,IAAIpwE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGk+B,KAAK,CAAC9jD,MAA1B,EAAkC4lB,CAAC,EAAnC,EAAuC;AACrC2nD,MAAAA,MAAM,CAAC3nD,CAAD,CAAN,KAAc2nD,MAAM,CAAC3nD,CAAD,CAAN,CAAUsL,IAAV,CAAexwB,CAAf,CAAA,GAAoBojD,KAAK,CAACl+B,CAAD,CAAvC,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;EAED,OAAO;AACL2nD,IAAAA,MAAM,EAAEA,MADH;AAELjyB,IAAAA,UAAU,EAAEA,UAAAA;GAFd,CAAA;AAID,CAAA;;AAED,SAASg0I,iBAAT,CAA2BxiL,GAA3B,EAAgC;AAC9B,EAAA,IAAIwgK,KAAK,GAAGxgK,GAAG,CAACywG,KAAJ,CAAU,MAAV,CAAZ,CAAA;EACA,IAAI3vE,UAAU,GAAG+vC,IAAI,CAAC2vF,KAAK,CAACt3E,KAAN,EAAD,CAArB,CAAA;EACA,IAAI9kE,IAAI,GAAG,EAAX,CAAA;;AAEA,EAAA,KAAK,IAAIxwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4sK,KAAK,CAACttK,MAA1B,EAAkCU,CAAC,EAAnC,EAAuC;AACrC;AACA;IACA,IAAI6tB,IAAI,GAAGovD,IAAI,CAAC2vF,KAAK,CAAC5sK,CAAD,CAAN,CAAf,CAAA;;IAEA,IAAI,CAAC6tB,IAAL,EAAW;AACT,MAAA,SAAA;AACD,KAAA;;AAED,IAAA,IAAIu1B,KAAK,GAAGv1B,IAAI,CAACgvF,KAAL,CAAW0xE,cAAX,CAAZ,CAAA;IACA,IAAI9hG,MAAM,GAAG,EAAb,CAAA;IACA,IAAIjxD,KAAK,GAAG,KAAK,CAAjB,CAAA;IACA,IAAIqzJ,OAAO,GAAG,KAAd,CAAA;;AAEA,IAAA,IAAI1uL,KAAK,CAACijD,KAAK,CAAC,CAAD,CAAN,CAAT,EAAqB;AACnB;AACAyrI,MAAAA,OAAO,GAAG,IAAV,CAAA;AACApiG,MAAAA,MAAM,GAAGrpC,KAAK,CAAC,CAAD,CAAd,CAAA;AACAA,MAAAA,KAAK,GAAGA,KAAK,CAAC/9B,KAAN,CAAY,CAAZ,CAAR,CAAA;MACAmL,IAAI,CAACxwB,CAAD,CAAJ,GAAU;AACRgD,QAAAA,IAAI,EAAEypF,MADE;AAERjxD,QAAAA,KAAK,EAAE,EAAA;OAFT,CAAA;AAIAA,MAAAA,KAAK,GAAGhL,IAAI,CAACxwB,CAAD,CAAJ,CAAQw7B,KAAhB,CAAA;AACD,KAVD,MAUO;AACLA,MAAAA,KAAK,GAAGhL,IAAI,CAACxwB,CAAD,CAAJ,GAAU,EAAlB,CAAA;AACD,KAAA;;AAED,IAAA,KAAK,IAAIklB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGk+B,KAAK,CAAC9jD,MAA1B,EAAkC4lB,CAAC,EAAnC,EAAuC;AACrCsW,MAAAA,KAAK,CAACn7B,IAAN,CAAW,CAAC+iD,KAAK,CAACl+B,CAAD,CAAjB,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIsW,KAAK,CAACl8B,MAAN,KAAiB,CAArB,EAAwB;MACtBuvL,OAAO,GAAGr+J,IAAI,CAACxwB,CAAD,CAAJ,CAAQw7B,KAAR,GAAgBA,KAAK,CAAC,CAAD,CAAxB,GAA8BhL,IAAI,CAACxwB,CAAD,CAAJ,GAAUw7B,KAAK,CAAC,CAAD,CAApD,CAAA;AACD,KAAA;AACF,GAAA;;EAED,OAAO;AACLx4B,IAAAA,IAAI,EAAEkqC,UADD;AAEL1c,IAAAA,IAAI,EAAEA,IAAAA;GAFR,CAAA;AAID,CAAA;;AAED,SAASs+J,aAAT,CAAuB1iL,GAAvB,EAA4B2iL,aAA5B,EAA2C;AACzC,EAAA,IAAIlgH,MAAM,GAAGziE,GAAG,CAACywG,KAAJ,CAAU,IAAI2xE,MAAJ,CAAW,KAAA,GAAQpB,aAAR,GAAwB,KAAnC,EAA0C,GAA1C,CAAV,CAAb,CAAA;AACA,EAAA,IAAIt2D,SAAS,GAAG;AACdjqD,IAAAA,MAAM,EAAE,EAAA;GADV,CAAA;EAGA7oC,MAAA,CAAY6qC,MAAZ,EAAoB,UAAUw/G,KAAV,EAAiBriK,GAAjB,EAAsB;AACxC,IAAA,IAAIoiK,WAAW,CAACC,KAAD,CAAf,EAAwB;AACtB,MAAA,IAAIhpH,MAAM,GAAGopH,gBAAgB,CAACJ,KAAD,CAA7B,CAAA;AACA,MAAA,IAAIW,SAAS,GAAGD,aAAa,CAAC/iK,GAAD,CAA7B,CAAA;AACA,MAAA,IAAIk7C,OAAO,GAAG8nH,SAAS,CAAC33H,OAAV,GAAoB,MAAlC,CAAA;;AAEA,MAAA,IAAI23H,SAAJ,EAAe;QACbl4D,SAAS,CAAC5vD,OAAD,CAAT,GAAqB4vD,SAAS,CAAC5vD,OAAD,CAAT,IAAsB,EAA3C,CAAA;AACA4vD,QAAAA,SAAS,CAAC5vD,OAAD,CAAT,CAAmB8nH,SAAS,CAAChzH,SAA7B,CAA0C,GAAA;UACxCxrC,IAAI,EAAE60C,MAAM,CAACzqB,UAAAA;SADf,CAAA;AAGAk8E,QAAAA,SAAS,CAACjqD,MAAV,GAAmBiqD,SAAS,CAACjqD,MAAV,CAAiBuE,MAAjB,CAAwB/L,MAAM,CAACwH,MAA/B,CAAnB,CAAA;AACD,OAAA;AACF,KAZD,MAYO;AACL,MAAA,IAAIxH,MAAM,GAAGupH,iBAAiB,CAACP,KAAD,CAA9B,CAAA;AACAv3D,MAAAA,SAAS,CAACjqD,MAAV,CAAiBxsE,IAAjB,CAAsBglE,MAAtB,CAAA,CAAA;AACD,KAAA;GAhBH,CAAA,CAAA;AAkBA,EAAA,OAAOyxD,SAAP,CAAA;AACD,CAAA;;AAED,IAAIm4D,QAAQ;AACZ;AACA,UAAUzuK,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACwuK,QAAD,EAAWzuK,MAAX,CAAT,CAAA;;AAEA,EAAA,SAASyuK,QAAT,GAAoB;AAClB,IAAA,OAAOzuK,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;;EAEDgvL,QAAQ,CAAC3yL,SAAT,CAAmBorG,OAAnB,GAA6B,UAAUr9D,OAAV,EAAmBxxB,GAAnB,EAAwB;AACnD;AACAqvG,IAAAA,UAAU,CAAC,YAAY;MACrBrvG,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,QAAAA,IAAI,EAAE,SAAA;OADR,CAAA,CAAA;AAGD,KAJS,CAAV,CAAA;AAKA,IAAA,IAAI6/K,SAAS,GAAGr2K,GAAG,CAACs2K,MAAJ,EAAhB,CAAA;IACA,IAAI52I,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;;IAEA,IAAI,IAAA,CAAK62I,IAAT,EAAe;AACbF,MAAAA,SAAS,CAACt4K,WAAV,CAAsB,IAAA,CAAKw4K,IAA3B,CAAA,CAAA;AACD,KAAA;;IAED,IAAIp0K,IAAI,GAAG/X,QAAQ,CAACF,aAAT,CAAuB,KAAvB,CAAX,CAdmD;;AAgBnDiY,IAAAA,IAAI,CAACpa,KAAL,CAAW+a,OAAX,GAAqB,6DAArB,CAAA;AACAX,IAAAA,IAAI,CAACpa,KAAL,CAAW4c,eAAX,GAA6B+6B,KAAK,CAAC9jB,GAAN,CAAU,iBAAV,CAAgC,IAAA,MAA7D,CAjBmD;;AAmBnD,IAAA,IAAIk6C,MAAM,GAAG1rE,QAAQ,CAACF,aAAT,CAAuB,IAAvB,CAAb,CAAA;IACA,IAAImpL,IAAI,GAAG3zI,KAAK,CAAC9jB,GAAN,CAAU,MAAV,KAAqB,EAAhC,CAAA;AACAk6C,IAAAA,MAAM,CAACxvD,SAAP,GAAmB+sK,IAAI,CAAC,CAAD,CAAJ,IAAW3zI,KAAK,CAAC9jB,GAAN,CAAU,OAAV,CAA9B,CAAA;AACAk6C,IAAAA,MAAM,CAAC/tE,KAAP,CAAa+a,OAAb,GAAuB,kBAAvB,CAAA;IACAgzD,MAAM,CAAC/tE,KAAP,CAAagB,KAAb,GAAqB22C,KAAK,CAAC9jB,GAAN,CAAU,WAAV,CAArB,CAAA;AACA,IAAA,IAAI46J,QAAQ,GAAGpsL,QAAQ,CAACF,aAAT,CAAuB,KAAvB,CAAf,CAAA;AACA,IAAA,IAAIusL,QAAQ,GAAGrsL,QAAQ,CAACF,aAAT,CAAuB,UAAvB,CAAf,CAAA;AACAssL,IAAAA,QAAQ,CAACzuL,KAAT,CAAe+a,OAAf,GAAyB,eAAzB,CAAA;AACA,IAAA,IAAI4zK,eAAe,GAAGh3I,KAAK,CAAC9jB,GAAN,CAAU,iBAAV,CAAtB,CAAA;AACA,IAAA,IAAI+6J,eAAe,GAAGj3I,KAAK,CAAC9jB,GAAN,CAAU,iBAAV,CAAtB,CAAA;AACA,IAAA,IAAI4wC,MAAM,GAAG8oH,mBAAmB,CAAC9jJ,OAAD,CAAhC,CAAA;;AAEA,IAAA,IAAIrG,UAAA,CAAkBurJ,eAAlB,CAAJ,EAAwC;MACtC,IAAIE,SAAS,GAAGF,eAAe,CAAC12K,GAAG,CAAC62K,SAAJ,EAAD,CAA/B,CAAA;;AAEA,MAAA,IAAI1rJ,QAAA,CAAgByrJ,SAAhB,CAAJ,EAAgC;QAC9BJ,QAAQ,CAAClwK,SAAT,GAAqBswK,SAArB,CAAA;OADF,MAEO,IAAIzrJ,KAAA,CAAayrJ,SAAb,CAAJ,EAA6B;QAClCJ,QAAQ,CAACv4K,WAAT,CAAqB24K,SAArB,CAAA,CAAA;AACD,OAAA;AACF,KARD,MAQO;AACL;MACAH,QAAQ,CAACK,QAAT,GAAoBp3I,KAAK,CAAC9jB,GAAN,CAAU,UAAV,CAApB,CAAA;AACA,MAAA,IAAI7zB,KAAK,GAAG0uL,QAAQ,CAAC1uL,KAArB,CAHK;;MAKLA,KAAK,CAAC+a,OAAN,GAAgB,6IAAhB,CAAA;MACA/a,KAAK,CAACgB,KAAN,GAAc22C,KAAK,CAAC9jB,GAAN,CAAU,WAAV,CAAd,CAAA;MACA7zB,KAAK,CAAC6yC,WAAN,GAAoB8E,KAAK,CAAC9jB,GAAN,CAAU,qBAAV,CAApB,CAAA;MACA7zB,KAAK,CAAC4c,eAAN,GAAwB+6B,KAAK,CAAC9jB,GAAN,CAAU,eAAV,CAAxB,CAAA;AACA66J,MAAAA,QAAQ,CAAC9zJ,KAAT,GAAiB6pC,MAAM,CAAC7pC,KAAxB,CAAA;MACA6zJ,QAAQ,CAACv4K,WAAT,CAAqBw4K,QAArB,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIP,aAAa,GAAG1pH,MAAM,CAACooH,IAA3B,CAAA;AACA,IAAA,IAAImC,eAAe,GAAG3sL,QAAQ,CAACF,aAAT,CAAuB,KAAvB,CAAtB,CAAA;AACA6sL,IAAAA,eAAe,CAAChvL,KAAhB,CAAsB+a,OAAtB,GAAgC,6CAAhC,CAtDmD;;IAwDnD,IAAIk0K,WAAW,GAAG,2GAAlB,CAAA;AACA,IAAA,IAAIC,WAAW,GAAG7sL,QAAQ,CAACF,aAAT,CAAuB,KAAvB,CAAlB,CAAA;AACA,IAAA,IAAIgtL,aAAa,GAAG9sL,QAAQ,CAACF,aAAT,CAAuB,KAAvB,CAApB,CAAA;AACA8sL,IAAAA,WAAW,IAAI,oBAAuBt3I,GAAAA,KAAK,CAAC9jB,GAAN,CAAU,aAAV,CAAtC,CAAA;AACAo7J,IAAAA,WAAW,IAAI,SAAYt3I,GAAAA,KAAK,CAAC9jB,GAAN,CAAU,iBAAV,CAA3B,CAAA;IACA,IAAI/O,IAAI,GAAG,IAAX,CAAA;;AAEA,IAAA,SAAS2tF,KAAT,GAAiB;MACf67E,SAAS,CAACt4K,WAAV,CAAsBoE,IAAtB,CAAA,CAAA;MACA0K,IAAI,CAAC0pK,IAAL,GAAY,IAAZ,CAAA;AACD,KAAA;;AAEDY,IAAAA,gBAAgB,CAACF,WAAD,EAAc,OAAd,EAAuBz8E,KAAvB,CAAhB,CAAA;AACA28E,IAAAA,gBAAgB,CAACD,aAAD,EAAgB,OAAhB,EAAyB,YAAY;AACnD,MAAA,IAAIP,eAAe,IAAI,IAAnB,IAA2BD,eAAe,IAAI,IAA9C,IAAsDC,eAAe,IAAI,IAAnB,IAA2BD,eAAe,IAAI,IAAxG,EAA8G;AAC5G,QAAA,IAAI77K,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC;UACAgyB,IAAI,CAAC,4IAAD,CAAJ,CAAA;AACD,SAAA;;QAEDytE,KAAK,EAAA,CAAA;AACL,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIyjB,SAAJ,CAAA;;MAEA,IAAI;AACF,QAAA,IAAI9yF,UAAA,CAAkBwrJ,eAAlB,CAAJ,EAAwC;UACtC14D,SAAS,GAAG04D,eAAe,CAACH,QAAD,EAAWx2K,GAAG,CAAC62K,SAAJ,EAAX,CAA3B,CAAA;AACD,SAFD,MAEO;UACL54D,SAAS,GAAGg4D,aAAa,CAACQ,QAAQ,CAAC9zJ,KAAV,EAAiBuzJ,aAAjB,CAAzB,CAAA;AACD,SAAA;OALH,CAME,OAAOnvL,CAAP,EAAU;QACVyzG,KAAK,EAAA,CAAA;AACL,QAAA,MAAM,IAAI/lF,KAAJ,CAAU,yBAAA,GAA4B1tB,CAAtC,CAAN,CAAA;AACD,OAAA;;AAED,MAAA,IAAIk3H,SAAJ,EAAe;QACbj+G,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,UAAAA,IAAI,EAAE,gBADW;AAEjBynH,UAAAA,SAAS,EAAEA,SAAAA;SAFb,CAAA,CAAA;AAID,OAAA;;MAEDzjB,KAAK,EAAA,CAAA;AACN,KAhCe,CAAhB,CAAA;AAiCAy8E,IAAAA,WAAW,CAAC3wK,SAAZ,GAAwB+sK,IAAI,CAAC,CAAD,CAA5B,CAAA;AACA6D,IAAAA,aAAa,CAAC5wK,SAAd,GAA0B+sK,IAAI,CAAC,CAAD,CAA9B,CAAA;IACA6D,aAAa,CAACnvL,KAAd,CAAoB+a,OAApB,GAA8Bm0K,WAAW,CAAClvL,KAAZ,CAAkB+a,OAAlB,GAA4Bk0K,WAA1D,CAAA;AACA,IAAA,CAACt3I,KAAK,CAAC9jB,GAAN,CAAU,UAAV,CAAD,IAA0Bm7J,eAAe,CAAC94K,WAAhB,CAA4Bi5K,aAA5B,CAA1B,CAAA;IACAH,eAAe,CAAC94K,WAAhB,CAA4Bg5K,WAA5B,CAAA,CAAA;IACA90K,IAAI,CAAClE,WAAL,CAAiB63D,MAAjB,CAAA,CAAA;IACA3zD,IAAI,CAAClE,WAAL,CAAiBu4K,QAAjB,CAAA,CAAA;IACAr0K,IAAI,CAAClE,WAAL,CAAiB84K,eAAjB,CAAA,CAAA;IACAP,QAAQ,CAACzuL,KAAT,CAAeoF,MAAf,GAAwBkpL,SAAS,CAACe,YAAV,GAAyB,EAAzB,GAA8B,IAAtD,CAAA;IACAf,SAAS,CAACp4K,WAAV,CAAsBkE,IAAtB,CAAA,CAAA;IACA,IAAKo0K,CAAAA,IAAL,GAAYp0K,IAAZ,CAAA;GAhHF,CAAA;;EAmHAi0K,QAAQ,CAAC3yL,SAAT,CAAmBo8B,MAAnB,GAA4B,UAAU2R,OAAV,EAAmBxxB,GAAnB,EAAwB;IAClD,IAAKu2K,CAAAA,IAAL,IAAav2K,GAAG,CAACs2K,MAAJ,GAAav4K,WAAb,CAAyB,IAAKw4K,CAAAA,IAA9B,CAAb,CAAA;GADF,CAAA;;EAIAH,QAAQ,CAAC3yL,SAAT,CAAmB4iB,OAAnB,GAA6B,UAAUmrB,OAAV,EAAmBxxB,GAAnB,EAAwB;AACnD,IAAA,IAAA,CAAK6f,MAAL,CAAY2R,OAAZ,EAAqBxxB,GAArB,CAAA,CAAA;GADF,CAAA;;AAIAo2K,EAAAA,QAAQ,CAACl8H,gBAAT,GAA4B,UAAU1oB,OAAV,EAAmB;AAC7C,IAAA,IAAIpb,aAAa,GAAG;AAClBI,MAAAA,IAAI,EAAE,IADY;AAElBsgK,MAAAA,QAAQ,EAAE,KAFQ;AAGlBJ,MAAAA,eAAe,EAAE,IAHC;AAIlBC,MAAAA,eAAe,EAAE,IAJC;AAKlB;AACA/hG,MAAAA,IAAI,EAAE,6GANY;AAOlBqkC,MAAAA,KAAK,EAAEznF,OAAO,CAACwnI,cAAR,GAAyBp9I,GAAzB,CAA6B,CAAC,SAAD,EAAY,UAAZ,EAAwB,OAAxB,CAA7B,CAPW;AAQlBy3J,MAAAA,IAAI,EAAE7hJ,OAAO,CAACwnI,cAAR,GAAyBp9I,GAAzB,CAA6B,CAAC,SAAD,EAAY,UAAZ,EAAwB,MAAxB,CAA7B,CARY;AASlBjX,MAAAA,eAAe,EAAE,MATC;AAUlBynD,MAAAA,SAAS,EAAE,MAVO;AAWlBirH,MAAAA,aAAa,EAAE,MAXG;AAYlBC,MAAAA,mBAAmB,EAAE,MAZH;AAalBC,MAAAA,WAAW,EAAE,SAbK;AAclBC,MAAAA,eAAe,EAAE,MAAA;KAdnB,CAAA;AAgBA,IAAA,OAAOphK,aAAP,CAAA;GAjBF,CAAA;;AAoBA,EAAA,OAAOggK,QAAP,CAAA;AACD,CAvJD,CAuJE5I,cAvJF,CAFA,CAAA;AA0JA;AACA;AACA;;;AAGA,SAASiK,kBAAT,CAA4Bz0J,OAA5B,EAAqCuwD,YAArC,EAAmD;EACjD,OAAOpoD,GAAA,CAAWnI,OAAX,EAAoB,UAAUq2E,MAAV,EAAkBlmF,GAAlB,EAAuB;AAChD,IAAA,IAAIukK,QAAQ,GAAGnkG,YAAY,IAAIA,YAAY,CAACpgE,GAAD,CAA3C,CAAA;;AAEA,IAAA,IAAIgY,UAAA,CAAgBusJ,QAAhB,CAAA,IAA6B,CAACvsJ,SAAA,CAAeusJ,QAAf,CAAlC,EAA4D;AAC1D,MAAA,IAAIC,cAAc,GAAGxsJ,UAAA,CAAgBkuE,MAAhB,CAA2B,IAAA,CAACluE,SAAA,CAAekuE,MAAf,CAAjD,CAAA;;MAEA,IAAI,CAACs+E,cAAL,EAAqB;AACnBt+E,QAAAA,MAAM,GAAG;AACP12E,UAAAA,KAAK,EAAE02E,MAAAA;SADT,CAAA;AAGD,OAPyD;;;AAU1D,MAAA,IAAIu+E,gBAAgB,GAAGF,QAAQ,CAACvtL,IAAT,IAAiB,IAAjB,IAAyBkvG,MAAM,CAAClvG,IAAP,IAAe,IAA/D,CAV0D;;MAY1DkvG,MAAM,GAAGluE,QAAA,CAAgBkuE,MAAhB,EAAwBq+E,QAAxB,CAAT,CAAA;AACAE,MAAAA,gBAAgB,IAAI,OAAOv+E,MAAM,CAAClvG,IAAlC,CAAA;AACA,MAAA,OAAOkvG,MAAP,CAAA;AACD,KAfD,MAeO;AACL,MAAA,OAAOA,MAAP,CAAA;AACD,KAAA;AACF,GArBM,CAAP,CAAA;AAsBD;;;AAGDl/B,cAAA,CAAuB;AACrB3jE,EAAAA,IAAI,EAAE,gBADe;AAErBgwC,EAAAA,KAAK,EAAE,iBAFc;AAGrB9mB,EAAAA,MAAM,EAAE,kBAAA;AAHa,CAAvB,EAIG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4B;EAC7B,IAAIqmJ,gBAAgB,GAAG,EAAvB,CAAA;EACA1sJ,MAAA,CAAYoJ,OAAO,CAAC0pF,SAAR,CAAkBjqD,MAA9B,EAAsC,UAAUC,SAAV,EAAqB;IACzD,IAAI95C,WAAW,GAAGqX,OAAO,CAACsmJ,eAAR,CAAwB7jH,SAAS,CAAC9pE,IAAlC,CAAwC,CAAA,CAAxC,CAAlB,CAAA;;IAEA,IAAI,CAACgwB,WAAL,EAAkB;AAChB;AACA;AACA09J,MAAAA,gBAAgB,CAACrwL,IAAjB,CAAsB2jC,MAAA,CAAc;AAClC;AACA30B,QAAAA,IAAI,EAAE,SAAA;OAFc,EAGnBy9D,SAHmB,CAAtB,CAAA,CAAA;AAID,KAPD,MAOO;AACL,MAAA,IAAIsf,YAAY,GAAGp5D,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,CAAnB,CAAA;MACAi8J,gBAAgB,CAACrwL,IAAjB,CAAsB;QACpB2C,IAAI,EAAE8pE,SAAS,CAAC9pE,IADI;AAEpBwtB,QAAAA,IAAI,EAAE8/J,kBAAkB,CAACxjH,SAAS,CAACt8C,IAAX,EAAiB47D,YAAjB,CAAA;OAF1B,CAAA,CAAA;AAID,KAAA;GAhBH,CAAA,CAAA;AAkBA/hD,EAAAA,OAAO,CAACsgB,WAAR,CAAoB3mB,QAAA,CAAgB;AAClC6oC,IAAAA,MAAM,EAAE6jH,gBAAAA;AAD0B,GAAhB,EAEjBtjJ,OAAO,CAAC0pF,SAFS,CAApB,CAAA,CAAA;AAGD,CA3BD,CAAA;;ACneA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA,IAAI9tH,MAAI,GAAGg7B,MAAX,CAAA;AACA,IAAI0lC,OAAK,GAAGC,SAAS,EAArB,CAAA;AACA;AACA;AACA;AACA;;AAEO,SAAStpE,IAAT,CAAcgqC,OAAd,EAAuBumJ,WAAvB,EAAoC;AACzC,EAAA,IAAIC,eAAe,GAAGC,iBAAiB,CAACzmJ,OAAD,CAAvC,CADyC;AAEzC;;AAEArhC,EAAAA,MAAI,CAAC4nL,WAAD,EAAc,UAAU3nB,SAAV,EAAqB8nB,UAArB,EAAiC;AACjD,IAAA,IAAI/wL,CAAC,GAAG6wL,eAAe,CAACvxL,MAAhB,GAAyB,CAAjC,CAAA;;AAEA,IAAA,OAAOU,CAAC,IAAI,CAAZ,EAAeA,CAAC,EAAhB,EAAoB;AAClB,MAAA,IAAIgxL,QAAQ,GAAGH,eAAe,CAAC7wL,CAAD,CAA9B,CAAA;;AAEA,MAAA,IAAIgxL,QAAQ,CAACD,UAAD,CAAZ,EAA0B;AACxB,QAAA,MAAA;AACD,OAAA;AACF,KAAA;;IAED,IAAI/wL,CAAC,GAAG,CAAR,EAAW;AACT;AACA,MAAA,IAAI29K,aAAa,GAAGtzI,OAAO,CAAC8sF,eAAR,CAAwB;AAC1Cj3E,QAAAA,QAAQ,EAAE,UADgC;AAE1C8kC,QAAAA,OAAO,EAAE,QAFiC;AAG1C70E,QAAAA,EAAE,EAAE4gL,UAAAA;OAHc,CAAA,CAIjB,CAJiB,CAApB,CAAA;;AAMA,MAAA,IAAIpT,aAAJ,EAAmB;AACjB,QAAA,IAAIkI,YAAY,GAAGlI,aAAa,CAAC0D,eAAd,EAAnB,CAAA;AACAwP,QAAAA,eAAe,CAAC,CAAD,CAAf,CAAmBE,UAAnB,CAAiC,GAAA;AAC/BA,UAAAA,UAAU,EAAEA,UADmB;AAE/B9mK,UAAAA,KAAK,EAAE47J,YAAY,CAAC,CAAD,CAFY;UAG/BrsJ,GAAG,EAAEqsJ,YAAY,CAAC,CAAD,CAAA;SAHnB,CAAA;AAKD,OAAA;AACF,KAAA;AACF,GA5BG,CAAJ,CAAA;EA6BAgL,eAAe,CAACxwL,IAAhB,CAAqBuwL,WAArB,CAAA,CAAA;AACD,CAAA;AACM,SAASz1H,GAAT,CAAa9wB,OAAb,EAAsB;AAC3B,EAAA,IAAIwmJ,eAAe,GAAGC,iBAAiB,CAACzmJ,OAAD,CAAvC,CAAA;EACA,IAAIs9D,IAAI,GAAGkpF,eAAe,CAACA,eAAe,CAACvxL,MAAhB,GAAyB,CAA1B,CAA1B,CAAA;EACAuxL,eAAe,CAACvxL,MAAhB,GAAyB,CAAzB,IAA8BuxL,eAAe,CAAC11H,GAAhB,EAA9B,CAH2B;;EAK3B,IAAI61H,QAAQ,GAAG,EAAf,CAAA;AACAhoL,EAAAA,MAAI,CAAC2+F,IAAD,EAAO,UAAUshE,SAAV,EAAqB8nB,UAArB,EAAiC;AAC1C,IAAA,KAAK,IAAI/wL,CAAC,GAAG6wL,eAAe,CAACvxL,MAAhB,GAAyB,CAAtC,EAAyCU,CAAC,IAAI,CAA9C,EAAiDA,CAAC,EAAlD,EAAsD;AACpDipK,MAAAA,SAAS,GAAG4nB,eAAe,CAAC7wL,CAAD,CAAf,CAAmB+wL,UAAnB,CAAZ,CAAA;;AAEA,MAAA,IAAI9nB,SAAJ,EAAe;AACb+nB,QAAAA,QAAQ,CAACD,UAAD,CAAR,GAAuB9nB,SAAvB,CAAA;AACA,QAAA,MAAA;AACD,OAAA;AACF,KAAA;AACF,GATG,CAAJ,CAAA;AAUA,EAAA,OAAO+nB,QAAP,CAAA;AACD,CAAA;AACM,SAAS5xK,KAAT,CAAeirB,OAAf,EAAwB;AAC7Bq/B,EAAAA,OAAK,CAACr/B,OAAD,CAAL,CAAe4mJ,SAAf,GAA2B,IAA3B,CAAA;AACD,CAAA;AACM,SAAS/sJ,KAAT,CAAemG,OAAf,EAAwB;AAC7B,EAAA,OAAOymJ,iBAAiB,CAACzmJ,OAAD,CAAjB,CAA2B/qC,MAAlC,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;;AAEA,SAASwxL,iBAAT,CAA2BzmJ,OAA3B,EAAoC;AAClC,EAAA,IAAI8F,KAAK,GAAGu5B,OAAK,CAACr/B,OAAD,CAAjB,CAAA;;AAEA,EAAA,IAAI,CAAC8F,KAAK,CAAC8gJ,SAAX,EAAsB;AACpB9gJ,IAAAA,KAAK,CAAC8gJ,SAAN,GAAkB,CAAC,EAAD,CAAlB,CAAA;AACD,GAAA;;EAED,OAAO9gJ,KAAK,CAAC8gJ,SAAb,CAAA;AACD;;AC3HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAIC,aAAa;AACjB;AACA,UAAU1wK,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACywK,aAAD,EAAgB1wK,MAAhB,CAAT,CAAA;;AAEA,EAAA,SAAS0wK,aAAT,GAAyB;AACvB,IAAA,OAAO1wK,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;;EAEDixL,aAAa,CAAC50L,SAAd,CAAwBorG,OAAxB,GAAkC,UAAUr9D,OAAV,EAAmBxxB,GAAnB,EAAwB;IACxDs4K,KAAA,CAAc9mJ,OAAd,CAAA,CAAA;IACAxxB,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,MAAAA,IAAI,EAAE,SADW;AAEjB08E,MAAAA,IAAI,EAAE,IAAKxH,CAAAA,GAAAA;KAFb,CAAA,CAAA;GAFF,CAAA;;AAQA2sG,EAAAA,aAAa,CAACn+H,gBAAd,GAAiC,UAAU1oB,OAAV,EAAmB;AAClD,IAAA,IAAIpb,aAAa,GAAG;AAClBI,MAAAA,IAAI,EAAE,IADY;AAElB;AACAo+D,MAAAA,IAAI,EAAE,iLAHY;AAIlBqkC,MAAAA,KAAK,EAAEznF,OAAO,CAACwnI,cAAR,EAAyBp9I,CAAAA,GAAzB,CAA6B,CAAC,SAAD,EAAY,SAAZ,EAAuB,OAAvB,CAA7B,CAAA;KAJT,CAAA;AAMA,IAAA,OAAOxF,aAAP,CAAA;GAPF,CAAA;;AAUA,EAAA,OAAOiiK,aAAP,CAAA;AACD,CA1BD,CA0BE7K,cA1BF,CAFA;;;AA+BArzG,cAAA,CAAuB;AACrB3jE,EAAAA,IAAI,EAAE,SADe;AAErBgwC,EAAAA,KAAK,EAAE,SAFc;AAGrB9mB,EAAAA,MAAM,EAAE,kBAAA;AAHa,CAAvB,EAIG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4B;EAC7BA,OAAO,CAAC+mJ,WAAR,CAAoB,UAApB,CAAA,CAAA;AACD,CAND,CAAA;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BA;;AAEA,IAAIC,yBAAyB,GAAG,CAAC,MAAD,EAAS,OAAT,EAAkB,OAAlB,EAA2B,KAA3B,EAAkC,OAAlC,EAA2C,OAA3C,EAAoD,YAApD,EAAkE,WAAlE,EAA+E,MAA/E,CAAhC,CAAA;;AAEA,IAAIC,kBAAkB;AACtB;AACA,YAAY;AACV;AACF;AACA;AACA;AACA;AACE,EAAA,SAASA,kBAAT,CAA4B90H,MAA5B,EAAoCnyB,OAApC,EAA6C3c,GAA7C,EAAkD;IAChD,IAAIhN,KAAK,GAAG,IAAZ,CAAA;;IAEA,IAAK6wK,CAAAA,eAAL,GAAuB,EAAvB,CAAA;AACA,IAAA,IAAIC,SAAS,GAAGC,WAAW,CAACpnJ,OAAD,EAAUmyB,MAAV,CAA3B,CAAA;AACAxzD,IAAAA,MAAI,CAAC0oL,kBAAD,EAAqB,UAAUC,OAAV,EAAmBtiL,IAAnB,EAAyB;AAChD,MAAA,IAAI,CAACqe,GAAD,IAAQ,CAACA,GAAG,CAACkkK,OAAb,IAAwBpoL,OAAO,CAACkkB,GAAG,CAACkkK,OAAL,EAAcviL,IAAd,CAAP,IAA8B,CAA1D,EAA6D;AAC3DsiL,QAAAA,OAAO,CAACH,SAAD,EAAY9wK,KAAK,CAAC6wK,eAAlB,CAAP,CAAA;AACD,OAAA;AACF,KAJG,CAAJ,CAAA;AAKD,GAAA;;EAEDD,kBAAkB,CAACh1L,SAAnB,CAA6Bu1L,eAA7B,GAA+C,UAAUxxD,KAAV,EAAiBh2F,OAAjB,EAA0B;AACvE,IAAA,IAAA,CAAKynJ,iBAAL,CAAuBzxD,KAAvB,EAA8Bh2F,OAA9B,EAAuC,UAAUmrB,IAAV,EAAgBu8H,UAAhB,EAA4B3kK,QAA5B,EAAsC;AAC3E,MAAA,CAACooC,IAAI,CAACw8H,WAAL,KAAqBx8H,IAAI,CAACw8H,WAAL,GAAmB,EAAxC,CAAD,EAA8C3xL,IAA9C,CAAmD0xL,UAAnD,EAD2E;;AAG3E,MAAA,IAAI,CAACv8H,IAAI,CAACu8H,UAAV,EAAsB;AACpBv8H,QAAAA,IAAI,CAACu8H,UAAL,GAAkBA,UAAlB,CADoB;AAEpB;AACA;AACA;AACA;;AAEA,QAAA,IAAI1sH,MAAM,GAAG4sH,YAAY,CAACz8H,IAAI,CAACioE,SAAN,CAAZ,CAA6B,CAA7B,EAAgCrwG,QAAhC,EAA0C2kK,UAA1C,CAAb,CAAA;QACAv8H,IAAI,CAAC08H,aAAL,GAAqB;UACnBl+K,MAAM,EAAEm+K,aAAa,CAAC38H,IAAI,CAACioE,SAAN,CAAb,CAA8Bp4D,MAAM,CAAC4J,MAArC,EAA6CzZ,IAAI,CAACjtB,KAAlD,EAAyD,CAAC,CAAD,EAAI,CAAJ,CAAzD,CADW;UAEnB6pJ,QAAQ,EAAE/sH,MAAM,CAAC+sH,QAAAA;SAFnB,CAAA;AAID,OAAA;KAfH,CAAA,CAAA;AAiBA,IAAA,OAAO/xD,KAAP,CAAA;GAlBF,CAAA;;EAqBAixD,kBAAkB,CAACh1L,SAAnB,CAA6Bw1L,iBAA7B,GAAiD,UAAUzxD,KAAV,EAAiBh2F,OAAjB,EAA0B1e,EAA1B,EAA8B;AAC7E3iB,IAAAA,MAAI,CAACq3H,KAAD,EAAQ,UAAU7qE,IAAV,EAAgB;MAC1B,IAAI2tC,UAAU,GAAG,IAAKkvF,CAAAA,cAAL,CAAoB78H,IAApB,EAA0BnrB,OAA1B,CAAjB,CAAA;;AAEA,MAAA,IAAI84D,UAAU,IAAIA,UAAU,KAAK,IAAjC,EAAuC;AACrCn6F,QAAAA,MAAI,CAACm6F,UAAU,CAACmvF,UAAZ,EAAwB,UAAUllK,QAAV,EAAoB;AAC9C,UAAA,IAAIi4C,MAAM,GAAG4sH,YAAY,CAACz8H,IAAI,CAACioE,SAAN,CAAZ,CAA6B,CAA7B,EAAgCrwG,QAAhC,EAA0CooC,IAAI,CAACjtB,KAA/C,EAAsD,IAAtD,CAAb,CAAA;UACA5c,EAAE,CAAC6pC,IAAD,EAAO6P,MAAM,CAAC4J,MAAd,EAAsB7hD,QAAtB,EAAgCid,OAAhC,CAAF,CAAA;AACD,SAHG,CAAJ,CAAA;AAID,OAAA;KARC,EASD,IATC,CAAJ,CAAA;GADF,CAAA;AAYA;AACF;AACA;AACA;AACA;;;EAGEinJ,kBAAkB,CAACh1L,SAAnB,CAA6Bi2L,cAA7B,GAA8C,UAAUlyD,KAAV,EAAiBh2F,OAAjB,EAA0B;AACtErhC,IAAAA,MAAI,CAACq3H,KAAD,EAAQ,UAAU7qE,IAAV,EAAgB;MAC1B,IAAI2tC,UAAU,GAAG,IAAKkvF,CAAAA,cAAL,CAAoB78H,IAApB,EAA0BnrB,OAA1B,CAAjB,CAAA;;AAEA,MAAA,IAAI32B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCqB,QAAAA,MAAM,CAAC,CAACkuF,UAAD,IAAeA,UAAU,KAAK,IAA9B,IAAsC3tC,IAAI,CAACu8H,UAA5C,EAAwD,0DAAxD,CAAN,CAAA;AACA98K,QAAAA,MAAM,CAAC,CAACkuF,UAAD,IAAeA,UAAU,KAAK,IAA9B,IAAsC3tC,IAAI,CAACjtB,KAA5C,EAAmD,0CAAnD,CAAN,CAAA;AACD,OAAA;;MAEDitB,IAAI,CAACjtB,KAAL,GAAaitB,IAAI,CAACjtB,KAAL,IAAc,EAA3B,CAR0B;;AAU1B,MAAA,IAAI46D,UAAU,IAAIA,UAAU,KAAK,IAAjC,EAAuC;AACrC3tC,QAAAA,IAAI,CAACyoE,OAAL,GAAe96B,UAAU,CAAC86B,OAA1B,CADqC;AAErC;AACA;AACA;AACA;AACA;;AAEA,QAAA,IAAI54D,MAAM,GAAG4sH,YAAY,CAACz8H,IAAI,CAACioE,SAAN,CAAZ,CAA6B,CAA7B,EAAgCt6B,UAAU,CAAC/1E,QAA3C,EAAqDooC,IAAI,CAACu8H,UAA1D,CAAb,CAAA;AACA,QAAA,IAAIS,WAAW,GAAGh9H,IAAI,CAAC08H,aAAvB,CAAA;AACA18H,QAAAA,IAAI,CAACjtB,KAAL,GAAaiqJ,WAAW,GAAGL,aAAa,CAAC38H,IAAI,CAACioE,SAAN,CAAb,CAA8Bp4D,MAAM,CAAC4J,MAArC,EAA6CujH,WAAW,CAACx+K,MAAzD,EAAiEy+K,SAAS,CAACptH,MAAM,CAAC+sH,QAAR,EAAkBI,WAAW,CAACJ,QAA9B,CAA1E,CAAH,GAAwH/sH,MAAM,CAAC4J,MAAvJ,CAAA;AACD,OAAA;KArBC,EAsBD,IAtBC,CAAJ,CAAA;GADF,CAAA;;EA0BAqiH,kBAAkB,CAACh1L,SAAnB,CAA6Bo2L,aAA7B,GAA6C,UAAU75K,GAAV,EAAe85K,mBAAf,EAAoC;AAC/E,IAAA,OAAOzxL,GAAG,CAAC,IAAA,CAAKqwL,eAAN,EAAuB,UAAUpuF,UAAV,EAAsB;AACrD,MAAA,IAAIjkG,IAAI,GAAGikG,UAAU,CAACyvF,YAAX,EAAX,CAAA;MACA,OAAO;QACL30D,OAAO,EAAE96B,UAAU,CAAC86B,OADf;QAELgG,gBAAgB,EAAE0uD,mBAAmB,GAAGA,mBAAmB,CAACxvF,UAAD,CAAtB,GAAqC,IAFrE;AAGLhtF,QAAAA,QAAQ,EAAE6vH,qBAAA,CAAkC9mI,IAAlC,CAHL;AAIL+gI,QAAAA,gBAAgB,EAAE+F,wBAAA,CAAqC9mI,IAArC,EAA2C2Z,GAA3C,EAAgDsqF,UAAU,CAAC98B,aAA3D,CAJb;AAKLs+D,QAAAA,yBAAyB,EAAEqB,0BAAA,CAAuC9mI,IAAvC,CAAA;OAL7B,CAAA;AAOD,KATS,CAAV,CAAA;GADF,CAAA;;EAaAoyL,kBAAkB,CAACh1L,SAAnB,CAA6Bu2L,aAA7B,GAA6C,UAAUr9H,IAAV,EAAgBxiC,WAAhB,EAA6BqX,OAA7B,EAAsC;AACjF;AACA;IACA,IAAI84D,UAAU,GAAG,IAAKkvF,CAAAA,cAAL,CAAoB78H,IAApB,EAA0BnrB,OAA1B,CAAjB,CAAA;AACA,IAAA,OAAO84D,UAAU,KAAK,IAAf,IAAuBA,UAAU,IAAI35F,OAAO,CAAC25F,UAAU,CAACmvF,UAAZ,EAAwBt/J,WAAW,CAAC3F,gBAApC,CAAP,IAAgE,CAA5G,CAAA;GAJF,CAAA;AAMA;AACF;AACA;AACA;AACA;;;EAGEikK,kBAAkB,CAACh1L,SAAnB,CAA6B+1L,cAA7B,GAA8C,UAAU78H,IAAV,EAAgBnrB,OAAhB,EAAyB;IACrE,IAAIyoJ,cAAc,GAAG,IAAA,CAAKvB,eAA1B,CAAA;AACA,IAAA,IAAIC,SAAS,GAAGC,WAAW,CAACpnJ,OAAD,EAAUmrB,IAAV,CAA3B,CAAA;;AAEA,IAAA,KAAK,IAAIx1D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8yL,cAAc,CAACxzL,MAAnC,EAA2CU,CAAC,EAA5C,EAAgD;AAC9C,MAAA,IAAImjG,UAAU,GAAG2vF,cAAc,CAAC9yL,CAAD,CAA/B,CAAA;AACA,MAAA,IAAI+yL,WAAW,GAAGv9H,IAAI,CAACyoE,OAAvB,CAAA;;AAEA,MAAA,IAAI80D,WAAJ,EAAiB;AACf,QAAA,IAAI5vF,UAAU,CAAC86B,OAAX,KAAuB80D,WAA3B,EAAwC;AACtC,UAAA,OAAO5vF,UAAP,CAAA;AACD,SAAA;AACF,OAJD,MAIO;AACL,QAAA,KAAK,IAAIj+E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8tK,kBAAkB,CAAC1zL,MAAvC,EAA+C4lB,CAAC,EAAhD,EAAoD;UAClD,IAAI8tK,kBAAkB,CAAC9tK,CAAD,CAAlB,CAAsBssK,SAAtB,EAAiCruF,UAAjC,CAAJ,EAAkD;AAChD,YAAA,OAAOA,UAAP,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;AACF,KAAA;;AAED,IAAA,OAAO,IAAP,CAAA;GArBF,CAAA;;AAwBA,EAAA,OAAOmuF,kBAAP,CAAA;AACD,CAvID,EAFA,CAAA;;AA2IA,SAAS2B,YAAT,CAAsBpO,MAAtB,EAA8B;AAC5BA,EAAAA,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAlB,IAAyBA,MAAM,CAACp+I,OAAP,EAAzB,CAAA;AACA,EAAA,OAAOo+I,MAAP,CAAA;AACD,CAAA;;AAED,SAAS4M,WAAT,CAAqBpnJ,OAArB,EAA8BmyB,MAA9B,EAAsC;AACpC,EAAA,OAAO02H,aAAoB,CAAC7oJ,OAAD,EAAUmyB,MAAV,EAAkB;AAC3C22H,IAAAA,gBAAgB,EAAE9B,yBAAAA;AADyB,GAAlB,CAA3B,CAAA;AAGD,CAAA;;AAED,IAAIK,kBAAkB,GAAG;AACvB16H,EAAAA,IAAI,EAAE,SAAA,IAAA,CAAUw6H,SAAV,EAAqBsB,cAArB,EAAqC;AACzC,IAAA,IAAIM,WAAW,GAAG5B,SAAS,CAAC4B,WAA5B,CAAA;AACA,IAAA,IAAIC,WAAW,GAAG7B,SAAS,CAAC6B,WAA5B,CAAA;AACA,IAAA,IAAIC,UAAU,GAAG9B,SAAS,CAAC8B,UAA3B,CAHyC;;IAKzC,IAAIC,YAAY,GAAG70G,aAAa,EAAhC,CAAA;IACA,IAAI80G,QAAQ,GAAG,EAAf,CAAA;IACA,IAAIC,QAAQ,GAAG,EAAf,CAAA;;IAEA,IAAI,CAACL,WAAD,IAAgB,CAACC,WAAjB,IAAgC,CAACC,UAArC,EAAiD;AAC/C,MAAA,OAAA;AACD,KAAA;;AAEDtqL,IAAAA,MAAI,CAACoqL,WAAD,EAAc,UAAU92I,SAAV,EAAqB;MACrC,IAAIya,SAAS,GAAGza,SAAS,CAACrW,IAAV,CAAe+wB,IAAf,CAAoBze,KAApC,CAAA;AACAg7I,MAAAA,YAAY,CAAChlI,GAAb,CAAiBwI,SAAS,CAAC5mD,EAA3B,EAA+B4mD,SAA/B,CAAA,CAAA;AACAy8H,MAAAA,QAAQ,CAACz8H,SAAS,CAAC5mD,EAAX,CAAR,GAAyB,IAAzB,CAAA;AACD,KAJG,CAAJ,CAAA;AAKAnH,IAAAA,MAAI,CAACqqL,WAAD,EAAc,UAAU/2I,SAAV,EAAqB;MACrC,IAAIya,SAAS,GAAGza,SAAS,CAACrW,IAAV,CAAe+wB,IAAf,CAAoBze,KAApC,CAAA;AACAg7I,MAAAA,YAAY,CAAChlI,GAAb,CAAiBwI,SAAS,CAAC5mD,EAA3B,EAA+B4mD,SAA/B,CAAA,CAAA;AACA08H,MAAAA,QAAQ,CAAC18H,SAAS,CAAC5mD,EAAX,CAAR,GAAyB,IAAzB,CAAA;AACD,KAJG,CAAJ,CAAA;AAKAnH,IAAAA,MAAI,CAACsqL,UAAD,EAAa,UAAUv8H,SAAV,EAAqB;AACpCw8H,MAAAA,YAAY,CAAChlI,GAAb,CAAiBwI,SAAS,CAAC5mD,EAA3B,EAA+B4mD,SAA/B,CAAA,CAAA;AACAy8H,MAAAA,QAAQ,CAACz8H,SAAS,CAAC5mD,EAAX,CAAR,GAAyB,IAAzB,CAAA;AACAsjL,MAAAA,QAAQ,CAAC18H,SAAS,CAAC5mD,EAAX,CAAR,GAAyB,IAAzB,CAAA;AACD,KAJG,CAAJ,CAAA;AAKAojL,IAAAA,YAAY,CAACvqL,IAAb,CAAkB,UAAU+tD,SAAV,EAAqB;AACrC,MAAA,IAAIC,IAAI,GAAGD,SAAS,CAAC1pC,gBAArB,CAAA;MACA,IAAI49C,UAAU,GAAG,EAAjB,CAAA;MACAjiE,MAAI,CAACguD,IAAI,CAACsF,aAAL,EAAD,EAAuB,UAAUt6B,SAAV,EAAqBuZ,KAArB,EAA4B;AACrD,QAAA,IAAI/xC,OAAO,CAAC4pL,WAAD,EAAcpxJ,SAAS,CAACkE,OAAV,CAAkB,GAAlB,CAAA,CAAuBqS,KAArC,CAAP,IAAsD,CAAtD,IAA2D/uC,OAAO,CAAC6pL,WAAD,EAAcrxJ,SAAS,CAACkE,OAAV,CAAkB,GAAlB,CAAuBqS,CAAAA,KAArC,CAAP,IAAsD,CAArH,EAAwH;UACtH0yB,UAAU,CAAC5qE,IAAX,CAAgB2hC,SAAhB,CAAA,CAAA;AACD,SAAA;AACF,OAJG,CAAJ,CAAA;MAKA8wJ,cAAc,CAACzyL,IAAf,CAAoB;AAClB49H,QAAAA,OAAO,EAAE,QAAA,GAAWlnE,SAAS,CAAC5mD,EADZ;AAElB4mD,QAAAA,SAAS,EAAEA,SAFO;AAGlBsP,QAAAA,aAAa,EAAEtP,SAHG;AAIlB;AACA3pC,QAAAA,QAAQ,EAAE69C,UAAU,CAAC,CAAD,CALF;AAMlBqnH,QAAAA,UAAU,EAAErnH,UANM;QAOlB2nH,YAAY,EAAEc,iBAAiB,CAAC18H,IAPd;AAQlB28H,QAAAA,aAAa,EAAEH,QAAQ,CAACz8H,SAAS,CAAC5mD,EAAX,CARL;AASlByjL,QAAAA,aAAa,EAAEH,QAAQ,CAAC18H,SAAS,CAAC5mD,EAAX,CAAA;OATzB,CAAA,CAAA;KARF,CAAA,CAAA;GA7BqB;AAkDvBg1E,EAAAA,GAAG,EAAE,SAAA,GAAA,CAAUqsG,SAAV,EAAqBsB,cAArB,EAAqC;AACxC9pL,IAAAA,MAAI,CAACwoL,SAAS,CAACqC,SAAX,EAAsB,UAAUzqG,QAAV,EAAoB;AAC5C,MAAA,IAAIh8D,QAAQ,GAAGg8D,QAAQ,CAAC/7D,gBAAxB,CAAA;MACAylK,cAAc,CAACzyL,IAAf,CAAoB;AAClB49H,QAAAA,OAAO,EAAE,OAAA,GAAU70C,QAAQ,CAACj5E,EADV;AAElBi5E,QAAAA,QAAQ,EAAEA,QAFQ;AAGlB/iB,QAAAA,aAAa,EAAE+iB,QAHG;AAIlBh8D,QAAAA,QAAQ,EAAEA,QAJQ;QAKlBklK,UAAU,EAAE,CAACllK,QAAD,CALM;QAMlBwlK,YAAY,EAAEc,iBAAiB,CAACvuG,GAAAA;OANlC,CAAA,CAAA;AAQD,KAVG,CAAJ,CAAA;AAWD,GAAA;AA9DsB,CAAzB,CAAA;AAgEA,IAAI6tG,kBAAkB,GAAG;AACzB,UAAUxB,SAAV,EAAqBruF,UAArB,EAAiC;AAC/B,EAAA,IAAI/qC,UAAU,GAAGo5H,SAAS,CAACp5H,UAA3B,CAAA;AACA,EAAA,IAAIC,UAAU,GAAGm5H,SAAS,CAACn5H,UAA3B,CAAA;AACA,EAAA,IAAItB,SAAS,GAAGy6H,SAAS,CAACz6H,SAA1B,CAAA;AACA,EAAA,CAACA,SAAD,IAAcqB,UAAd,KAA6BrB,SAAS,GAAGqB,UAAU,CAACnyB,IAAX,CAAgB+wB,IAAhB,CAAqBze,KAA9D,CAAA,CAAA;AACA,EAAA,CAACwe,SAAD,IAAcsB,UAAd,KAA6BtB,SAAS,GAAGsB,UAAU,CAACpyB,IAAX,CAAgB+wB,IAAhB,CAAqBze,KAA9D,CAAA,CAAA;AACA,EAAA,OAAOwe,SAAS,IAAIA,SAAS,KAAKosC,UAAU,CAACpsC,SAA7C,CAAA;AACD,CARwB;AASzB,UAAUy6H,SAAV,EAAqBruF,UAArB,EAAiC;AAC/B,EAAA,IAAI/Z,QAAQ,GAAGooG,SAAS,CAACpoG,QAAzB,CAAA;AACA,EAAA,OAAOA,QAAQ,IAAIA,QAAQ,KAAK+Z,UAAU,CAAC/Z,QAA3C,CAAA;AACD,CAZwB,CAAzB,CAAA;AAaA,IAAIsqG,iBAAiB,GAAG;AACtB18H,EAAAA,IAAI,EAAE,SAAY,IAAA,GAAA;AAChB;IACA,OAAO,IAAA,CAAK5pC,QAAL,CAAc2vC,MAAd,CAAqBzF,OAArB,EAAA,CAA+B1hD,KAA/B,EAAP,CAAA;GAHoB;AAKtBuvE,EAAAA,GAAG,EAAE,SAAY,GAAA,GAAA;IACf,IAAI/3D,QAAQ,GAAG,IAAA,CAAKA,QAApB,CAAA;IACA,IAAIluB,IAAI,GAAGkuB,QAAQ,CAAC63B,eAAT,EAA2BrvC,CAAAA,KAA3B,EAAX,CAFe;;IAIf1W,IAAI,CAAC4nD,cAAL,CAAoBzzB,cAAA,CAAqBjG,QAArB,CAApB,CAAA,CAAA;AACA,IAAA,OAAOluB,IAAP,CAAA;AACD,GAAA;AAXqB,CAAxB,CAAA;AAaA,IAAI+yL,YAAY,GAAG;AACjB9tD,EAAAA,KAAK,EAAEz3E,OAAK,CAAConI,WAAD,EAAc,CAAd,CADK;AAEjBzvD,EAAAA,KAAK,EAAE33E,OAAK,CAAConI,WAAD,EAAc,CAAd,CAFK;EAGjB50L,IAAI,EAAE,cAAUoxI,EAAV,EAAcljH,QAAd,EAAwB2mK,iBAAxB,EAA2Cr+H,KAA3C,EAAkD;IACtD,IAAIs+H,QAAQ,GAAG1jD,EAAE,GAAGljH,QAAQ,CAACgpC,WAAT,CAAqB,CAAC29H,iBAAiB,CAAC,CAAD,CAAjB,CAAqB,CAArB,CAAD,EAA0BA,iBAAiB,CAAC,CAAD,CAAjB,CAAqB,CAArB,CAA1B,CAArB,EAAyEr+H,KAAzE,CAAH,GAAqFtoC,QAAQ,CAACuO,WAAT,CAAqB,CAACo4J,iBAAiB,CAAC,CAAD,CAAjB,CAAqB,CAArB,CAAD,EAA0BA,iBAAiB,CAAC,CAAD,CAAjB,CAAqB,CAArB,CAA1B,CAArB,EAAyEr+H,KAAzE,CAAtG,CAAA;IACA,IAAIu+H,QAAQ,GAAG3jD,EAAE,GAAGljH,QAAQ,CAACgpC,WAAT,CAAqB,CAAC29H,iBAAiB,CAAC,CAAD,CAAjB,CAAqB,CAArB,CAAD,EAA0BA,iBAAiB,CAAC,CAAD,CAAjB,CAAqB,CAArB,CAA1B,CAArB,EAAyEr+H,KAAzE,CAAH,GAAqFtoC,QAAQ,CAACuO,WAAT,CAAqB,CAACo4J,iBAAiB,CAAC,CAAD,CAAjB,CAAqB,CAArB,CAAD,EAA0BA,iBAAiB,CAAC,CAAD,CAAjB,CAAqB,CAArB,CAA1B,CAArB,EAAyEr+H,KAAzE,CAAtG,CAAA;AACA,IAAA,IAAIuZ,MAAM,GAAG,CAACgkH,YAAY,CAAC,CAACe,QAAQ,CAAC,CAAD,CAAT,EAAcC,QAAQ,CAAC,CAAD,CAAtB,CAAD,CAAb,EAA2ChB,YAAY,CAAC,CAACe,QAAQ,CAAC,CAAD,CAAT,EAAcC,QAAQ,CAAC,CAAD,CAAtB,CAAD,CAAvD,CAAb,CAAA;IACA,OAAO;AACLhlH,MAAAA,MAAM,EAAEA,MADH;AAELmjH,MAAAA,QAAQ,EAAEnjH,MAAAA;KAFZ,CAAA;GAPe;EAYjBhgE,OAAO,EAAE,iBAAUqhI,EAAV,EAAcljH,QAAd,EAAwB2mK,iBAAxB,EAA2Cr+H,KAA3C,EAAkD;AACzD,IAAA,IAAI08H,QAAQ,GAAG,CAAC,CAACvuK,QAAD,EAAW,CAACA,QAAZ,CAAD,EAAwB,CAACA,QAAD,EAAW,CAACA,QAAZ,CAAxB,CAAf,CAAA;IACA,IAAIorD,MAAM,GAAG/tE,GAAG,CAAC6yL,iBAAD,EAAoB,UAAUllL,IAAV,EAAgB;MAClD,IAAI7P,CAAC,GAAGsxI,EAAE,GAAGljH,QAAQ,CAACgpC,WAAT,CAAqBvnD,IAArB,EAA2B6mD,KAA3B,CAAH,GAAuCtoC,QAAQ,CAACuO,WAAT,CAAqB9sB,IAArB,EAA2B6mD,KAA3B,CAAjD,CAAA;MACA08H,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAAiBt2L,GAAAA,IAAI,CAAC8iC,GAAL,CAASwzJ,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAAT,EAAyBpzL,CAAC,CAAC,CAAD,CAA1B,CAAjB,CAAA;MACAozL,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAAiBt2L,GAAAA,IAAI,CAAC8iC,GAAL,CAASwzJ,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAAT,EAAyBpzL,CAAC,CAAC,CAAD,CAA1B,CAAjB,CAAA;MACAozL,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAAiBt2L,GAAAA,IAAI,CAAC0iB,GAAL,CAAS4zK,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAAT,EAAyBpzL,CAAC,CAAC,CAAD,CAA1B,CAAjB,CAAA;MACAozL,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAAiBt2L,GAAAA,IAAI,CAAC0iB,GAAL,CAAS4zK,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAAT,EAAyBpzL,CAAC,CAAC,CAAD,CAA1B,CAAjB,CAAA;AACA,MAAA,OAAOA,CAAP,CAAA;AACD,KAPe,CAAhB,CAAA;IAQA,OAAO;AACLiwE,MAAAA,MAAM,EAAEA,MADH;AAELmjH,MAAAA,QAAQ,EAAEA,QAAAA;KAFZ,CAAA;AAID,GAAA;AA1BgB,CAAnB,CAAA;;AA6BA,SAAS0B,WAAT,CAAqBI,aAArB,EAAoC5jD,EAApC,EAAwCljH,QAAxC,EAAkD2mK,iBAAlD,EAAqE;AACnE,EAAA,IAAIrgL,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;IACzCqB,MAAM,CAACmY,QAAQ,CAAC/d,IAAT,KAAkB,aAAnB,EAAkC,qDAAlC,CAAN,CAAA;AACD,GAAA;;AAED,EAAA,IAAI42B,IAAI,GAAG7Y,QAAQ,CAAC8Y,OAAT,CAAiB,CAAC,GAAD,EAAM,GAAN,CAAWguJ,CAAAA,aAAX,CAAjB,CAAX,CAAA;AACA,EAAA,IAAIjlH,MAAM,GAAGgkH,YAAY,CAAC/xL,GAAG,CAAC,CAAC,CAAD,EAAI,CAAJ,CAAD,EAAS,UAAUlB,CAAV,EAAa;AACjD,IAAA,OAAOswI,EAAE,GAAGrqG,IAAI,CAACowB,WAAL,CAAiBpwB,IAAI,CAACgvB,YAAL,CAAkB8+H,iBAAiB,CAAC/zL,CAAD,CAAnC,CAAjB,EAA0D,IAA1D,CAAH,GAAqEimC,IAAI,CAACI,aAAL,CAAmBJ,IAAI,CAACK,WAAL,CAAiBytJ,iBAAiB,CAAC/zL,CAAD,CAAlC,CAAnB,CAA9E,CAAA;AACD,GAF4B,CAAJ,CAAzB,CAAA;EAGA,IAAIoyL,QAAQ,GAAG,EAAf,CAAA;AACAA,EAAAA,QAAQ,CAAC8B,aAAD,CAAR,GAA0BjlH,MAA1B,CAAA;EACAmjH,QAAQ,CAAC,IAAI8B,aAAL,CAAR,GAA8B,CAACz4J,GAAD,EAAMA,GAAN,CAA9B,CAAA;EACA,OAAO;AACLwzC,IAAAA,MAAM,EAAEA,MADH;AAELmjH,IAAAA,QAAQ,EAAEA,QAAAA;GAFZ,CAAA;AAID,CAAA;;AAED,IAAID,aAAa,GAAG;AAClBhuD,EAAAA,KAAK,EAAEz3E,OAAK,CAACynI,iBAAD,EAAoB,CAApB,CADM;AAElB9vD,EAAAA,KAAK,EAAE33E,OAAK,CAACynI,iBAAD,EAAoB,CAApB,CAFM;AAGlBj1L,EAAAA,IAAI,EAAE,SAAU+vE,IAAAA,CAAAA,MAAV,EAAkBmlH,KAAlB,EAAyBC,MAAzB,EAAiC;AACrC,IAAA,OAAO,CAAC,CAACplH,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAA,GAAeolH,MAAM,CAAC,CAAD,CAAN,GAAYD,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,CAA5B,EAAyCnlH,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,IAAeolH,MAAM,CAAC,CAAD,CAAN,GAAYD,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,CAApE,CAAD,EAAmF,CAACnlH,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,IAAeolH,MAAM,CAAC,CAAD,CAAN,GAAYD,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,CAA5B,EAAyCnlH,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeolH,GAAAA,MAAM,CAAC,CAAD,CAAN,GAAYD,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,CAApE,CAAnF,CAAP,CAAA;GAJgB;AAMlBnlL,EAAAA,OAAO,EAAE,SAAUggE,OAAAA,CAAAA,MAAV,EAAkBmlH,KAAlB,EAAyBC,MAAzB,EAAiC;IACxC,OAAOnzL,GAAG,CAAC+tE,MAAD,EAAS,UAAUpgE,IAAV,EAAgBmd,GAAhB,EAAqB;AACtC,MAAA,OAAO,CAACnd,IAAI,CAAC,CAAD,CAAJ,GAAUwlL,MAAM,CAAC,CAAD,CAAN,GAAYD,KAAK,CAACpoK,GAAD,CAAL,CAAW,CAAX,CAAvB,EAAsCnd,IAAI,CAAC,CAAD,CAAJ,GAAUwlL,MAAM,CAAC,CAAD,CAAN,GAAYD,KAAK,CAACpoK,GAAD,CAAL,CAAW,CAAX,CAA5D,CAAP,CAAA;AACD,KAFS,CAAV,CAAA;AAGD,GAAA;AAViB,CAApB,CAAA;;AAaA,SAASmoK,iBAAT,CAA2BD,aAA3B,EAA0CjlH,MAA1C,EAAkDmlH,KAAlD,EAAyDC,MAAzD,EAAiE;AAC/D,EAAA,OAAO,CAACplH,MAAM,CAAC,CAAD,CAAN,GAAYolH,MAAM,CAACH,aAAD,CAAN,GAAwBE,KAAK,CAAC,CAAD,CAA1C,EAA+CnlH,MAAM,CAAC,CAAD,CAAN,GAAYolH,MAAM,CAACH,aAAD,CAAN,GAAwBE,KAAK,CAAC,CAAD,CAAxF,CAAP,CAAA;AACD;AACD;AACA;;;AAGA,SAAS3B,SAAT,CAAmB6B,YAAnB,EAAiCC,cAAjC,EAAiD;AAC/C,EAAA,IAAIC,QAAQ,GAAG11K,OAAO,CAACw1K,YAAD,CAAtB,CAAA;AACA,EAAA,IAAIG,UAAU,GAAG31K,OAAO,CAACy1K,cAAD,CAAxB,CAAA;EACA,IAAIF,MAAM,GAAG,CAACG,QAAQ,CAAC,CAAD,CAAR,GAAcC,UAAU,CAAC,CAAD,CAAzB,EAA8BD,QAAQ,CAAC,CAAD,CAAR,GAAcC,UAAU,CAAC,CAAD,CAAtD,CAAb,CAAA;AACAt0L,EAAAA,KAAK,CAACk0L,MAAM,CAAC,CAAD,CAAP,CAAL,KAAqBA,MAAM,CAAC,CAAD,CAAN,GAAY,CAAjC,CAAA,CAAA;AACAl0L,EAAAA,KAAK,CAACk0L,MAAM,CAAC,CAAD,CAAP,CAAL,KAAqBA,MAAM,CAAC,CAAD,CAAN,GAAY,CAAjC,CAAA,CAAA;AACA,EAAA,OAAOA,MAAP,CAAA;AACD,CAAA;;AAED,SAASv1K,OAAT,CAAiBszK,QAAjB,EAA2B;AACzB,EAAA,OAAOA,QAAQ,GAAG,CAACA,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAAA,GAAiBA,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAAlB,EAAkCA,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAAiBA,GAAAA,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAAnD,CAAH,GAAwE,CAAC32J,GAAD,EAAMA,GAAN,CAAvF,CAAA;AACD;;AChXD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAmCA,IAAIzyB,MAAI,GAAGg7B,MAAX,CAAA;AACA,IAAI0wJ,iBAAiB,GAAGC,uBAAuB,CAAC,mBAAD,CAA/C,CAAA;AACA,IAAIrI,YAAU,GAAG,CAAC,MAAD,EAAS,MAAT,CAAjB,CAAA;;AAEA,IAAIsI,eAAe;AACnB;AACA,UAAUp0K,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACm0K,eAAD,EAAkBp0K,MAAlB,CAAT,CAAA;;AAEA,EAAA,SAASo0K,eAAT,GAA2B;AACzB,IAAA,OAAOp0K,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;;AAED20L,EAAAA,eAAe,CAACt4L,SAAhB,CAA0B8tC,MAA1B,GAAmC,UAAU29I,YAAV,EAAwB19I,OAAxB,EAAiCxxB,GAAjC,EAAsCu0B,OAAtC,EAA+C;IAChF,IAAI,CAAC,IAAKm4F,CAAAA,gBAAV,EAA4B;MAC1B,IAAKA,CAAAA,gBAAL,GAAwB,IAAIxI,eAAJ,CAAoBlkH,GAAG,CAACghC,KAAJ,EAApB,CAAxB,CAAA;;AAEA,MAAA,IAAA,CAAK0rF,gBAAL,CAAsBzrF,EAAtB,CAAyB,OAAzB,EAAkC9V,MAAA,CAAY,KAAKwhG,QAAjB,EAA2B,IAA3B,CAAlC,EAAoEtH,KAApE,EAAA,CAAA;AACD,KAAA;;IAED22D,mBAAmB,CAAC9M,YAAD,EAAe19I,OAAf,EAAwB,IAAxB,EAA8B+C,OAA9B,EAAuCv0B,GAAvC,CAAnB,CAAA;AACAi8K,IAAAA,mBAAmB,CAAC/M,YAAD,EAAe19I,OAAf,CAAnB,CAAA;GARF,CAAA;;EAWAuqJ,eAAe,CAACt4L,SAAhB,CAA0BorG,OAA1B,GAAoC,UAAUr9D,OAAV,EAAmBxxB,GAAnB,EAAwBxJ,IAAxB,EAA8B;AAChEwmH,IAAAA,QAAQ,CAACxmH,IAAD,CAAR,CAAesR,IAAf,CAAoB,IAApB,CAAA,CAAA;GADF,CAAA;;EAIAi0K,eAAe,CAACt4L,SAAhB,CAA0Bo8B,MAA1B,GAAmC,UAAU2R,OAAV,EAAmBxxB,GAAnB,EAAwB;AACzD,IAAA,IAAA,CAAK0sH,gBAAL,IAAyB,IAAA,CAAKA,gBAAL,CAAsBnG,OAAtB,EAAzB,CAAA;GADF,CAAA;;EAIAw1D,eAAe,CAACt4L,SAAhB,CAA0B4iB,OAA1B,GAAoC,UAAUmrB,OAAV,EAAmBxxB,GAAnB,EAAwB;AAC1D,IAAA,IAAA,CAAK0sH,gBAAL,IAAyB,IAAA,CAAKA,gBAAL,CAAsBrmH,OAAtB,EAAzB,CAAA;GADF,CAAA;;AAIA01K,EAAAA,eAAe,CAACt4L,SAAhB,CAA0BkpI,QAA1B,GAAqC,UAAUU,UAAV,EAAsB;AACzD,IAAA,IAAI7F,KAAK,GAAG6F,UAAU,CAAC7F,KAAvB,CAAA;;IAEA,IAAI,CAAC6F,UAAU,CAACxwF,KAAZ,IAAqB,CAAC2qF,KAAK,CAAC/gI,MAAhC,EAAwC;AACtC,MAAA,OAAA;AACD,KAAA;;IAED,IAAI0xL,QAAQ,GAAG,EAAf,CAAA;IACA,IAAI3mJ,OAAO,GAAG,IAAA,CAAKA,OAAnB,CAAA;;AAEA,IAAA,IAAA,CAAKk7F,gBAAL,CAAsBnH,YAAtB,CAAmC,EAAnC,EAVyD;;;AAazD,IAAA,IAAI22D,kBAAkB,GAAG,IAAIzD,kBAAJ,CAAuB0D,cAAc,CAAC,IAAA,CAAKz8I,KAAN,CAArC,EAAmDlO,OAAnD,EAA4D;MACnFunJ,OAAO,EAAE,CAAC,MAAD,CAAA;AAD0E,KAA5D,CAAzB,CAAA;AAGAmD,IAAAA,kBAAkB,CAACjD,iBAAnB,CAAqCzxD,KAArC,EAA4Ch2F,OAA5C,EAAqD,UAAUmrB,IAAV,EAAgBu8H,UAAhB,EAA4B3kK,QAA5B,EAAsC;AACzF,MAAA,IAAIA,QAAQ,CAAC/d,IAAT,KAAkB,aAAtB,EAAqC;AACnC,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIouH,SAAS,GAAGjoE,IAAI,CAACioE,SAArB,CAAA;;MAEA,IAAIA,SAAS,KAAK,MAAlB,EAA0B;QACxBw3D,QAAQ,CAAC,GAAD,EAAM7nK,QAAN,EAAgB2kK,UAAU,CAAC,CAAD,CAA1B,CAAR,CAAA;QACAkD,QAAQ,CAAC,GAAD,EAAM7nK,QAAN,EAAgB2kK,UAAU,CAAC,CAAD,CAA1B,CAAR,CAAA;AACD,OAHD,MAGO;AACLkD,QAAAA,QAAQ,CAAC;AACP9wD,UAAAA,KAAK,EAAE,GADA;AAEPE,UAAAA,KAAK,EAAE,GAAA;AAFA,SAAA,CAGP5G,SAHO,CAAD,EAGMrwG,QAHN,EAGgB2kK,UAHhB,CAAR,CAAA;AAID,OAAA;KAfH,CAAA,CAAA;AAiBAZ,IAAAA,IAAA,CAAa9mJ,OAAb,EAAsB2mJ,QAAtB,CAAA,CAAA;;IAEA,IAAKkE,CAAAA,mBAAL,CAAyBlE,QAAzB,CAAA,CAAA;;AAEA,IAAA,SAASiE,QAAT,CAAkBj4H,OAAlB,EAA2B5vC,QAA3B,EAAqCy3J,MAArC,EAA6C;AAC3C,MAAA,IAAI5+I,IAAI,GAAG7Y,QAAQ,CAAC8Y,OAAT,CAAiB82B,OAAjB,CAAX,CAAA;AACA,MAAA,IAAI1gB,SAAS,GAAGrW,IAAI,CAACsS,KAArB,CAAA;MACA,IAAIolI,aAAa,GAAGwX,YAAY,CAACn4H,OAAD,EAAU1gB,SAAV,EAAqBjS,OAArB,CAAhC,CAH2C;;MAK3C,IAAIu6I,UAAU,GAAGjH,aAAa,CAAC4D,2BAAd,CAA0CjlI,SAA1C,CAAqDsmI,CAAAA,aAArD,EAAjB,CAAA;;MAEA,IAAIgC,UAAU,CAACwQ,YAAX,IAA2B,IAA3B,IAAmCxQ,UAAU,CAACyQ,YAAX,IAA2B,IAAlE,EAAwE;QACtExQ,MAAM,GAAGhtD,UAAU,CAAC,CAAD,EAAIgtD,MAAM,CAACx/J,KAAP,EAAJ,EAAoB4gB,IAAI,CAACrjB,KAAL,CAAWyY,SAAX,EAApB,EAA4C,CAA5C,EAA+CupJ,UAAU,CAACwQ,YAA1D,EAAwExQ,UAAU,CAACyQ,YAAnF,CAAnB,CAAA;AACD,OAAA;;AAED1X,MAAAA,aAAa,KAAKqT,QAAQ,CAACrT,aAAa,CAACxtK,EAAf,CAAR,GAA6B;QAC7C4gL,UAAU,EAAEpT,aAAa,CAACxtK,EADmB;AAE7Cg/B,QAAAA,UAAU,EAAE01I,MAAM,CAAC,CAAD,CAF2B;QAG7Cz1I,QAAQ,EAAEy1I,MAAM,CAAC,CAAD,CAAA;AAH6B,OAAlC,CAAb,CAAA;AAKD,KAAA;;AAED,IAAA,SAASsQ,YAAT,CAAsBn4H,OAAtB,EAA+B1gB,SAA/B,EAA0CjS,OAA1C,EAAmD;AACjD,MAAA,IAAIirJ,KAAJ,CAAA;MACAjrJ,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,QAAAA,QAAQ,EAAE,UADU;AAEpB8kC,QAAAA,OAAO,EAAE,QAAA;OAFX,EAGG,UAAUuwG,OAAV,EAAmB;QACpB,IAAIC,GAAG,GAAGD,OAAO,CAACtU,YAAR,CAAqBjkH,OAArB,EAA8B1gB,SAAS,CAACrP,cAAxC,CAAV,CAAA;AACAuoJ,QAAAA,GAAG,KAAKF,KAAK,GAAGC,OAAb,CAAH,CAAA;OALF,CAAA,CAAA;AAOA,MAAA,OAAOD,KAAP,CAAA;AACD,KAAA;GAjEH,CAAA;;AAoEA,EAAA,CAAA;;AAEAV,EAAAA,eAAe,CAACt4L,SAAhB,CAA0B44L,mBAA1B,GAAgD,UAAUlE,QAAV,EAAoB;AAClE,IAAA,IAAI3nB,KAAK,GAAG,EAAZ,CADkE;;AAGlErgK,IAAAA,MAAI,CAACgoL,QAAD,EAAW,UAAU/nB,SAAV,EAAqB8nB,UAArB,EAAiC;MAC9C1nB,KAAK,CAAChpK,IAAN,CAAW2jC,OAAA,CAAailI,SAAb,CAAX,CAAA,CAAA;AACD,KAFG,CAAJ,CAAA;AAGAI,IAAAA,KAAK,CAAC/pK,MAAN,IAAgB,KAAKuZ,GAAL,CAASwiC,cAAT,CAAwB;AACtChsC,MAAAA,IAAI,EAAE,UADgC;MAEtC08E,IAAI,EAAE,KAAKxH,GAF2B;AAGtC8kF,MAAAA,KAAK,EAAEA,KAAAA;AAH+B,KAAxB,CAAhB,CAAA;GANF,CAAA;;AAaAurB,EAAAA,eAAe,CAAC7hI,gBAAhB,GAAmC,UAAU1oB,OAAV,EAAmB;AACpD,IAAA,IAAIpb,aAAa,GAAG;AAClBI,MAAAA,IAAI,EAAE,IADY;AAElB2yJ,MAAAA,UAAU,EAAE,QAFM;AAGlB;AACAv0F,MAAAA,IAAI,EAAE;AACJzW,QAAAA,IAAI,EAAE,uDADF;AAEJy+G,QAAAA,IAAI,EAAE,2DAAA;OANU;AAQlB;AACA3jE,MAAAA,KAAK,EAAEznF,OAAO,CAACwnI,cAAR,GAAyBp9I,GAAzB,CAA6B,CAAC,SAAD,EAAY,UAAZ,EAAwB,OAAxB,CAA7B,CATW;AAUlBioG,MAAAA,UAAU,EAAE;AACVx6G,QAAAA,WAAW,EAAE,CADH;AAEVtgB,QAAAA,KAAK,EAAE,uBAAA;AAFG,OAAA;KAVd,CAAA;AAeA,IAAA,OAAOqtB,aAAP,CAAA;GAhBF,CAAA;;AAmBA,EAAA,OAAO2lK,eAAP,CAAA;AACD,CArID,CAqIEvO,cArIF,CAFA,CAAA;;AAyIA,IAAIxwD,QAAQ,GAAG;AACb7+C,EAAAA,IAAI,EAAE,SAAY,IAAA,GAAA;AAChB,IAAA,IAAI0+G,UAAU,GAAG,CAAC,IAAA,CAAKC,aAAvB,CAAA;IACA,IAAK98K,CAAAA,GAAL,CAASwiC,cAAT,CAAwB;AACtBhsC,MAAAA,IAAI,EAAE,kBADgB;AAEtBhM,MAAAA,GAAG,EAAE,gBAFiB;AAGtBuyL,MAAAA,oBAAoB,EAAEF,UAAAA;KAHxB,CAAA,CAAA;GAHW;AASbD,EAAAA,IAAI,EAAE,SAAY,IAAA,GAAA;IAChB,IAAKP,CAAAA,mBAAL,CAAyB/D,GAAA,CAAY,IAAA,CAAK9mJ,OAAjB,CAAzB,CAAA,CAAA;AACD,GAAA;AAXY,CAAf,CAAA;;AAcA,SAAS2qJ,cAAT,CAAwBa,cAAxB,EAAwC;AACtC,EAAA,IAAIt/G,OAAO,GAAG;IACZpa,UAAU,EAAE05H,cAAc,CAACphK,GAAf,CAAmB,YAAnB,EAAiC,IAAjC,CADA;IAEZ2nC,UAAU,EAAEy5H,cAAc,CAACphK,GAAf,CAAmB,YAAnB,EAAiC,IAAjC,CAFA;IAGZqhK,OAAO,EAAED,cAAc,CAACphK,GAAf,CAAmB,SAAnB,EAA8B,IAA9B,CAHG;AAIZshK,IAAAA,OAAO,EAAEF,cAAc,CAACphK,GAAf,CAAmB,SAAnB,EAA8B,IAA9B,CAAA;AAJG,GAAd,CADsC;AAOtC;AACA;AACA;;EAEA,IAAI8hD,OAAO,CAACpa,UAAR,IAAsB,IAAtB,IAA8Boa,OAAO,CAACu/G,OAAR,IAAmB,IAArD,EAA2D;IACzDv/G,OAAO,CAACpa,UAAR,GAAqB,KAArB,CAAA;AACD,GAAA;;EAED,IAAIoa,OAAO,CAACna,UAAR,IAAsB,IAAtB,IAA8Bma,OAAO,CAACw/G,OAAR,IAAmB,IAArD,EAA2D;IACzDx/G,OAAO,CAACna,UAAR,GAAqB,KAArB,CAAA;AACD,GAAA;;AAED,EAAA,OAAOma,OAAP,CAAA;AACD,CAAA;;AAED,SAASu+G,mBAAT,CAA6B/M,YAA7B,EAA2C19I,OAA3C,EAAoD;AAClD09I,EAAAA,YAAY,CAACM,aAAb,CAA2B,MAA3B,EAAmC8I,KAAA,CAAc9mJ,OAAd,CAAyB,GAAA,CAAzB,GAA6B,UAA7B,GAA0C,QAA7E,CAAA,CAAA;AACD,CAAA;;AAED,SAASwqJ,mBAAT,CAA6B9M,YAA7B,EAA2C19I,OAA3C,EAAoDspD,IAApD,EAA0DvmD,OAA1D,EAAmEv0B,GAAnE,EAAwE;AACtE,EAAA,IAAIm9K,UAAU,GAAGriG,IAAI,CAACgiG,aAAtB,CAAA;;AAEA,EAAA,IAAIvoJ,OAAO,IAAIA,OAAO,CAAC/9B,IAAR,KAAiB,kBAAhC,EAAoD;IAClD2mL,UAAU,GAAG5oJ,OAAO,CAAC/pC,GAAR,KAAgB,gBAAhB,GAAmC+pC,OAAO,CAACwoJ,oBAA3C,GAAkE,KAA/E,CAAA;AACD,GAAA;;EAEDjiG,IAAI,CAACgiG,aAAL,GAAqBK,UAArB,CAAA;EACAjO,YAAY,CAACM,aAAb,CAA2B,MAA3B,EAAmC2N,UAAU,GAAG,UAAH,GAAgB,QAA7D,CAAA,CAAA;EACA,IAAIjB,kBAAkB,GAAG,IAAIzD,kBAAJ,CAAuB0D,cAAc,CAACjN,YAAD,CAArC,EAAqD19I,OAArD,EAA8D;IACrFunJ,OAAO,EAAE,CAAC,MAAD,CAAA;AAD4E,GAA9D,CAAzB,CAAA;EAGA,IAAI9xD,MAAM,GAAGi1D,kBAAkB,CAACrC,aAAnB,CAAiC75K,GAAjC,EAAsC,UAAUsqF,UAAV,EAAsB;IACvE,OAAOA,UAAU,CAACwwF,aAAX,IAA4B,CAACxwF,UAAU,CAACywF,aAAxC,GAAwD,OAAxD,GAAkE,CAACzwF,UAAU,CAACwwF,aAAZ,IAA6BxwF,UAAU,CAACywF,aAAxC,GAAwD,OAAxD,GAAkE,MAA3I,CAAA;AACD,GAFY,CAAb,CAAA;;AAIAjgG,EAAAA,IAAI,CAAC4xC,gBAAL,CAAsB1H,SAAtB,CAAgCiC,MAAhC,CAAA,CAAwC1C,WAAxC,CAAoD44D,UAAU,IAAIl2D,MAAM,CAACxgI,MAArB,GAA8B;AAChFm+H,IAAAA,SAAS,EAAE,MADqE;AAEhFf,IAAAA,UAAU,EAAEqrD,YAAY,CAACxzJ,QAAb,CAAsB,YAAtB,EAAoCC,YAApC,EAAA;AAFoE,GAA9B,GAGhD,KAHJ,CAAA,CAAA;AAID,CAAA;;AAEDyhK,6BAA6B,CAAC,UAAD,EAAa,UAAU5rJ,OAAV,EAAmB;EAC3D,IAAIk9I,YAAY,GAAGl9I,OAAO,CAACw7B,YAAR,CAAqB,SAArB,EAAgC,CAAhC,CAAnB,CAAA;AACA,EAAA,IAAIqwH,mBAAmB,GAAG,CAAC,SAAD,EAAY,UAAZ,CAA1B,CAAA;;EAEA,IAAI,CAAC3O,YAAD,IAAiBA,YAAY,CAAC9yJ,GAAb,CAAiByhK,mBAAjB,CAAyC,IAAA,IAA9D,EAAoE;AAClE,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIL,cAAc,GAAGtO,YAAY,CAAChzJ,QAAb,CAAsB2hK,mBAAtB,CAArB,CAAA;EACA,IAAIC,SAAS,GAAG,EAAhB,CAAA;AACA,EAAA,IAAI35H,MAAM,GAAGw4H,cAAc,CAACa,cAAD,CAA3B,CAAA;AACA,EAAA,IAAIO,YAAY,GAAG3E,aAAW,CAACpnJ,OAAD,EAAUmyB,MAAV,CAA9B,CAAA;AACAxzD,EAAAA,MAAI,CAACotL,YAAY,CAAChD,WAAd,EAA2B,UAAU92I,SAAV,EAAqB;AAClD,IAAA,OAAO+5I,oBAAoB,CAAC/5I,SAAD,EAAY,OAAZ,EAAqB,YAArB,CAA3B,CAAA;AACD,GAFG,CAAJ,CAAA;AAGAtzC,EAAAA,MAAI,CAACotL,YAAY,CAAC/C,WAAd,EAA2B,UAAU/2I,SAAV,EAAqB;AAClD,IAAA,OAAO+5I,oBAAoB,CAAC/5I,SAAD,EAAY,OAAZ,EAAqB,YAArB,CAA3B,CAAA;AACD,GAFG,CAAJ,CAAA;;AAIA,EAAA,SAAS+5I,oBAAT,CAA8B/5I,SAA9B,EAAyCqmI,YAAzC,EAAuD2T,iBAAvD,EAA0E;AACxE,IAAA,IAAIt6H,SAAS,GAAG1f,SAAS,CAACrP,cAA1B,CAAA;AACA,IAAA,IAAIspJ,MAAM,GAAG;AACXlnL,MAAAA,IAAI,EAAE,QADK;AAEXmnL,MAAAA,YAAY,EAAE,IAFH;AAGX;MACAxU,UAAU,EAAE6T,cAAc,CAACphK,GAAf,CAAmB,YAAnB,EAAiC,IAAjC,CAAA,IAA0C,QAJ3C;AAKX;AACAtkB,MAAAA,EAAE,EAAEukL,iBAAiB,GAAG/R,YAApB,GAAmC3mH,SAAAA;KANzC,CAAA;AAQAu6H,IAAAA,MAAM,CAACD,iBAAD,CAAN,GAA4Bt6H,SAA5B,CAAA;IACAm6H,SAAS,CAAC91L,IAAV,CAAek2L,MAAf,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,OAAOJ,SAAP,CAAA;AACD,CAlC4B,CAA7B;;AC/PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoCO,SAASz2K,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiCizH,YAAjC,CAAA,CAAA;EACA9mK,SAAS,CAACksD,qBAAV,CAAgCy7G,WAAhC,CAAA,CAAA;AACAhB,EAAAA,eAAe,CAAC,aAAD,EAAgByD,WAAhB,CAAf,CAAA;AACAzD,EAAAA,eAAe,CAAC,WAAD,EAAcmG,SAAd,CAAf,CAAA;AACAnG,EAAAA,eAAe,CAAC,UAAD,EAAa2I,QAAb,CAAf,CAAA;AACA3I,EAAAA,eAAe,CAAC,UAAD,EAAamQ,eAAb,CAAf,CAAA;AACAnQ,EAAAA,eAAe,CAAC,SAAD,EAAYoQ,aAAZ,CAAf,CAAA;EACA1qH,GAAG,CAAC2qH,SAAD,CAAH,CAAA;AACD;;AC9DD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAIC,YAAY;AAChB;AACA,UAAUp2K,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACm2K,YAAD,EAAep2K,MAAf,CAAT,CAAA;;AAEA,EAAA,SAASo2K,YAAT,GAAwB;AACtB,IAAA,IAAIl2K,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaunL,YAAY,CAACvnL,IAA1B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDk2K,YAAY,CAACvnL,IAAb,GAAoB,SAApB,CAAA;AACAunL,EAAAA,YAAY,CAAC5nK,YAAb,GAA4B,CAAC,aAAD,CAA5B,CAAA;EACA4nK,YAAY,CAAC3nK,aAAb,GAA6B;AAC3B;AACAzG,IAAAA,CAAC,EAAE,EAFwB;AAG3B6G,IAAAA,IAAI,EAAE,IAHqB;AAI3B;AACAwnK,IAAAA,WAAW,EAAE,IALc;AAM3B;AACA;AACAxhH,IAAAA,OAAO,EAAE,MARkB;AAS3B;AACAuhD,IAAAA,SAAS,EAAE,iBAVgB;AAW3BkgE,IAAAA,iBAAiB,EAAE,KAXQ;AAY3BC,IAAAA,WAAW,EAAE,QAZc;AAa3BC,IAAAA,UAAU,EAAE,MAbe;AAc3B;AACA;AACA;AACAC,IAAAA,OAAO,EAAE,IAjBkB;AAkB3BC,IAAAA,SAAS,EAAE,CAlBgB;AAmB3BC,IAAAA,SAAS,EAAE,GAnBgB;AAoB3B;AACAC,IAAAA,kBAAkB,EAAE,GArBO;AAsB3BC,IAAAA,SAAS,EAAE,KAtBgB;AAuB3B75K,IAAAA,eAAe,EAAE,MAvBU;AAwB3B;AACA5K,IAAAA,UAAU,EAAE,EAzBe;AA0B3BC,IAAAA,WAAW,EAAE,mBA1Bc;AA2B3BL,IAAAA,aAAa,EAAE,CA3BY;AA4B3BE,IAAAA,aAAa,EAAE,CA5BY;AA6B3B;AACAihC,IAAAA,YAAY,EAAE,CA9Ba;AA+B3B;AACAzxB,IAAAA,WAAW,EAAE,CAhCc;AAiC3B;AACA;AACA;AACAF,IAAAA,OAAO,EAAE,IApCkB;AAqC3B;AACAs1K,IAAAA,YAAY,EAAE,EAtCa;AAuC3B;AACAhnI,IAAAA,WAAW,EAAE;AACX;AACA;AACAjhD,MAAAA,IAAI,EAAE,MAHK;AAIX;AACA;AACA;AACA;AACA42B,MAAAA,IAAI,EAAE,MARK;AASX/8B,MAAAA,SAAS,EAAE,MATA;AAUXojD,MAAAA,uBAAuB,EAAE,GAVd;AAWXD,MAAAA,qBAAqB,EAAE,gBAXZ;AAYX4b,MAAAA,UAAU,EAAE;AACVrmE,QAAAA,KAAK,EAAE,MADG;AAEVmE,QAAAA,KAAK,EAAE,CAFG;AAGVsJ,QAAAA,IAAI,EAAE,QAHI;AAIV;AACA01D,QAAAA,SAAS,EAAE,EAAA;AALD,OAZD;AAmBX;;KA3DyB;AA8D3BA,IAAAA,SAAS,EAAE;AACTnjE,MAAAA,KAAK,EAAE,MADE;AAETwP,MAAAA,QAAQ,EAAE,EAAA;AAFD,KAAA;GA9Db,CAAA;AAmEA,EAAA,OAAOwlL,YAAP,CAAA;AACD,CAhFD,CAgFEvnI,cAhFF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA;;AAEO,SAASkoI,oBAAT,CAA8BC,YAA9B,EAA4C;AACjD,EAAA,IAAIC,aAAa,GAAGD,YAAY,CAAC/iK,GAAb,CAAiB,SAAjB,CAApB,CAAA;AACA,EAAA,OAAOgjK,aAAa,IAAI,IAAjB,GAAwB,CAAC,CAACA,aAA1B;AAAA,IACLD,YAAY,CAAC/iK,GAAb,CAAiB,YAAjB,MAAmC,UADrC,CAAA;AAED,CAAA;;AAED,SAASijK,SAAT,CAAmBC,UAAnB,EAA+B;AAC7B,EAAA,IAAI,CAAChkL,GAAG,CAACikL,YAAT,EAAuB;AACrB,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIh3L,KAAK,GAAGqC,QAAQ,CAAC40L,eAAT,CAAyBj3L,KAArC,CAAA;;AAEA,EAAA,KAAK,IAAIZ,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGsuL,UAAU,CAACr4L,MAAjC,EAAyCU,CAAC,GAAGqJ,GAA7C,EAAkDrJ,CAAC,EAAnD,EAAuD;AACrD,IAAA,IAAI23L,UAAU,CAAC33L,CAAD,CAAV,IAAiBY,KAArB,EAA4B;MAC1B,OAAO+2L,UAAU,CAAC33L,CAAD,CAAjB,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAEM,IAAI83L,gBAAgB,GAAGJ,SAAS,CAAC,CAAC,WAAD,EAAc,iBAAd,EAAiC,YAAjC,EAA+C,cAA/C,EAA+D,aAA/D,CAAD,CAAhC,CAAA;AACA,IAAIK,iBAAiB,GAAGL,SAAS,CAAC,CAAC,kBAAD,EAAqB,YAArB,EAAmC,aAAnC,EAAkD,eAAlD,EAAmE,cAAnE,CAAD,CAAjC,CAAA;AACA,SAASM,iBAAT,CAA2BC,WAA3B,EAAwCC,SAAxC,EAAmD;EACxD,IAAI,CAACD,WAAL,EAAkB;AAChB,IAAA,OAAOC,SAAP,CAAA;AACD,GAAA;;AAEDA,EAAAA,SAAS,GAAGC,WAAW,CAACD,SAAD,EAAY,IAAZ,CAAvB,CAAA;AACA,EAAA,IAAIlsK,GAAG,GAAGisK,WAAW,CAACzuL,OAAZ,CAAoB0uL,SAApB,CAAV,CAAA;EACAD,WAAW,GAAGjsK,GAAG,KAAK,CAAC,CAAT,GAAaksK,SAAb,GAAyB,GAAMD,GAAAA,WAAW,CAAC5yK,KAAZ,CAAkB,CAAlB,EAAqB2G,GAArB,CAAN,GAAkC,GAAlC,GAAwCksK,SAA/E,CAAA;EACA,OAAOD,WAAW,CAAC72L,WAAZ,EAAP,CAAA;AACD,CAAA;AACM,SAASg3L,gBAAT,CAA0B72L,EAA1B,EAA8BX,KAA9B,EAAqC;AAC1C,EAAA,IAAIy3L,GAAG,GAAG92L,EAAE,CAAC+2L,YAAH,IAAmBr1L,QAAQ,CAACynL,WAAT,IAAwBznL,QAAQ,CAACynL,WAAT,CAAqB0N,gBAArB,CAAsC72L,EAAtC,CAArD,CAAA;EACA,OAAO82L,GAAG,GAAGz3L,KAAK,GAAGy3L,GAAG,CAACz3L,KAAD,CAAN,GAAgBy3L,GAAxB,GAA8B,IAAxC,CAAA;AACD;;ACjFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA;;AAEA,IAAIE,qBAAqB,GAAGP,iBAAiB,CAACD,iBAAD,EAAoB,YAApB,CAA7C,CAAA;AACA,IAAIS,oBAAoB,GAAGR,iBAAiB,CAACF,gBAAD,EAAmB,WAAnB,CAA5C;;AAEA,IAAIW,QAAQ,GAAG,wFAAA,IAA4F9kL,GAAG,CAAC+kL,oBAAJ,GAA2B,wBAA3B,GAAsD,EAAlJ,CAAf,CAAA;;AAEA,SAASC,SAAT,CAAmBx3H,GAAnB,EAAwB;AACtBA,EAAAA,GAAG,GAAGA,GAAG,KAAK,MAAR,GAAiB,OAAjB,GAA2BA,GAAG,KAAK,OAAR,GAAkB,MAAlB,GAA2BA,GAAG,KAAK,KAAR,GAAgB,QAAhB,GAA2B,KAAvF,CAAA;AACA,EAAA,OAAOA,GAAP,CAAA;AACD,CAAA;;AAED,SAASy3H,aAAT,CAAuBpB,YAAvB,EAAqC/jJ,WAArC,EAAkDolJ,aAAlD,EAAiE;EAC/D,IAAI,CAACjvL,QAAQ,CAACivL,aAAD,CAAT,IAA4BA,aAAa,KAAK,QAAlD,EAA4D;AAC1D,IAAA,OAAO,EAAP,CAAA;AACD,GAAA;;AAED,EAAA,IAAIr7K,eAAe,GAAGg6K,YAAY,CAAC/iK,GAAb,CAAiB,iBAAjB,CAAtB,CAAA;AACA,EAAA,IAAIvS,WAAW,GAAGs1K,YAAY,CAAC/iK,GAAb,CAAiB,aAAjB,CAAlB,CAAA;AACAgf,EAAAA,WAAW,GAAGjI,oBAAoB,CAACiI,WAAD,CAAlC,CAAA;AACA,EAAA,IAAIqlJ,QAAQ,GAAGH,SAAS,CAACE,aAAD,CAAxB,CAAA;AACA,EAAA,IAAI74H,SAAS,GAAGlkE,IAAI,CAAC0iB,GAAL,CAAS1iB,IAAI,CAACiD,KAAL,CAAWmjB,WAAX,CAAA,GAA0B,GAAnC,EAAwC,CAAxC,CAAhB,CAAA;EACA,IAAI62K,aAAa,GAAG,EAApB,CAAA;AACA,EAAA,IAAIC,cAAc,GAAGR,oBAAoB,GAAG,GAA5C,CAAA;AACA,EAAA,IAAIS,SAAJ,CAAA;;AAEA,EAAA,IAAIzvL,OAAO,CAAC,CAAC,MAAD,EAAS,OAAT,CAAD,EAAoBsvL,QAApB,CAAP,GAAuC,CAAC,CAA5C,EAA+C;AAC7CC,IAAAA,aAAa,IAAI,SAAjB,CAAA;AACAC,IAAAA,cAAc,IAAI,0BAAA,IAA8BC,SAAS,GAAGH,QAAQ,KAAK,MAAb,GAAsB,CAAC,GAAvB,GAA6B,CAAC,EAAxE,IAA8E,MAAhG,CAAA;AACD,GAHD,MAGO;AACLC,IAAAA,aAAa,IAAI,UAAjB,CAAA;AACAC,IAAAA,cAAc,IAAI,0BAAA,IAA8BC,SAAS,GAAGH,QAAQ,KAAK,KAAb,GAAqB,GAArB,GAA2B,EAArE,CAAA,GAA2E,MAA7F,CAAA;AACD,GAAA;;EAED,IAAII,YAAY,GAAGD,SAAS,GAAGn9L,IAAI,CAACI,EAAjB,GAAsB,GAAzC,CAAA;AACA,EAAA,IAAIi9L,OAAO,GAAGn5H,SAAS,GAAG99C,WAA1B,CAAA;AACA,EAAA,IAAIk3K,SAAS,GAAGD,OAAO,GAAGr9L,IAAI,CAACyC,GAAL,CAASzC,IAAI,CAACG,GAAL,CAASi9L,YAAT,CAAT,CAAV,GAA6CC,OAAO,GAAGr9L,IAAI,CAACyC,GAAL,CAASzC,IAAI,CAACC,GAAL,CAASm9L,YAAT,CAAT,CAAvE,CAAA;AACA,EAAA,IAAIj5H,WAAW,GAAGnkE,IAAI,CAACiD,KAAL,CAAW,CAAC,CAACq6L,SAAS,GAAGt9L,IAAI,CAACu9L,KAAL,GAAan3K,WAA1B,IAAyC,CAAzC,GAA6CpmB,IAAI,CAACu9L,KAAL,GAAan3K,WAA1D,GAAwE,CAACk3K,SAAS,GAAGD,OAAb,IAAwB,CAAjG,IAAsG,GAAjH,IAAwH,GAA1I,CAAA;EACAJ,aAAa,IAAI,MAAMD,QAAN,GAAiB,IAAjB,GAAwB74H,WAAxB,GAAsC,IAAvD,CAAA;EACA,IAAIq5H,WAAW,GAAG7lJ,WAAW,GAAG,SAAd,GAA0BvxB,WAA1B,GAAwC,KAA1D,CAAA;AACA,EAAA,IAAIq3K,QAAQ,GAAG,CAAC,0BAAA,GAA6Bv5H,SAA7B,GAAyC,YAAzC,GAAwDA,SAAxD,GAAoE,KAArE,EAA4E+4H,aAAa,GAAG,GAAhB,GAAsBC,cAAtB,GAAuC,GAAnH,EAAwH,gBAAA,GAAmBM,WAA3I,EAAwJ,eAAkBA,GAAAA,WAA1K,EAAuL,mBAAA,GAAsB97K,eAAtB,GAAwC,GAA/N,CAAf,CAAA;EACA,OAAO,eAAA,GAAkB+7K,QAAQ,CAACj5L,IAAT,CAAc,EAAd,CAAlB,GAAsC,WAA7C,CAAA;AACD,CAAA;;AAED,SAASk5L,kBAAT,CAA4BnrJ,QAA5B,EAAsCorJ,QAAtC,EAAgD;EAC9C,IAAIC,eAAe,GAAG,6BAAtB,CAAA;EACA,IAAIC,gBAAgB,GAAG,GAAMtrJ,GAAAA,QAAQ,GAAG,CAAjB,GAAqB,IAArB,GAA4BqrJ,eAAnD,CAAA;AACA,EAAA,IAAIE,cAAc,GAAG,SAAA,GAAYD,gBAAZ,GAA+B,aAA/B,GAA+CA,gBAApE,CAAA;;EAEA,IAAI,CAACF,QAAL,EAAe;AACbE,IAAAA,gBAAgB,GAAG,GAAMtrJ,GAAAA,QAAN,GAAiB,IAAjB,GAAwBqrJ,eAA3C,CAAA;AACAE,IAAAA,cAAc,IAAIjmL,GAAG,CAACkmL,kBAAJ,GAAyB,GAAMrB,GAAAA,oBAAN,GAA6BmB,gBAAtD,GAAyE,OAAUA,GAAAA,gBAAV,GAA6B,MAA7B,GAAsCA,gBAAjI,CAAA;AACD,GAAA;;AAED,EAAA,OAAOpB,qBAAqB,GAAG,GAAxB,GAA8BqB,cAArC,CAAA;AACD,CAAA;;AAED,SAASE,iBAAT,CAA2B/8L,CAA3B,EAA8BC,CAA9B,EAAiCs6K,QAAjC,EAA2C;AACzC;AACA;EACA,IAAI14K,EAAE,GAAG7B,CAAC,CAACy1H,OAAF,CAAU,CAAV,IAAe,IAAxB,CAAA;EACA,IAAI3zH,EAAE,GAAG7B,CAAC,CAACw1H,OAAF,CAAU,CAAV,CAAA,GAAe,IAAxB,CAJyC;;AAMzC,EAAA,IAAI,CAAC7+G,GAAG,CAACkmL,kBAAT,EAA6B;IAC3B,OAAOviB,QAAQ,GAAG,MAASz4K,GAAAA,EAAT,GAAc,QAAd,GAAyBD,EAAzB,GAA8B,GAAjC,GAAuC,CAAC,CAAC,KAAD,EAAQC,EAAR,CAAD,EAAc,CAAC,MAAD,EAASD,EAAT,CAAd,CAAtD,CAAA;AACD,GARwC;;;AAWzC,EAAA,IAAIm7L,IAAI,GAAGpmL,GAAG,CAAC+kL,oBAAf,CAAA;EACA,IAAIsB,SAAS,GAAG,WAAeD,IAAAA,IAAI,GAAG,IAAH,GAAU,EAA7B,CAAA,GAAmC,GAAnC,GAAyCn7L,EAAzC,GAA8C,GAA9C,GAAoDC,EAApD,IAA0Dk7L,IAAI,GAAG,IAAH,GAAU,EAAxE,CAAA,GAA8E,GAA9F,CAAA;AACA,EAAA,OAAOziB,QAAQ,GAAG,eAAkBkhB,GAAAA,oBAAlB,GAAyC,GAAzC,GAA+CwB,SAA/C,GAA2D,GAA9D,GAAoE,CAAC,CAAC,KAAD,EAAQ,CAAR,CAAD,EAAa,CAAC,MAAD,EAAS,CAAT,CAAb,EAA0B,CAAClC,gBAAD,EAAmBkC,SAAnB,CAA1B,CAAnF,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;;;AAGA,SAASC,YAAT,CAAsBj5H,cAAtB,EAAsC;EACpC,IAAIrlD,OAAO,GAAG,EAAd,CAAA;AACA,EAAA,IAAIvK,QAAQ,GAAG4vD,cAAc,CAACvsC,GAAf,CAAmB,UAAnB,CAAf,CAAA;AACA,EAAA,IAAI7yB,KAAK,GAAGo/D,cAAc,CAACa,YAAf,EAAZ,CAAA;AACAjgE,EAAAA,KAAK,IAAI+Z,OAAO,CAACtb,IAAR,CAAa,QAAA,GAAWuB,KAAxB,CAAT,CAAA;AACA+Z,EAAAA,OAAO,CAACtb,IAAR,CAAa,UAAU2gE,cAAc,CAACS,OAAf,EAAvB,CAAA,CAAA;AACArwD,EAAAA,QAAQ;AAAA,KACLuK,OAAO,CAACtb,IAAR,CAAa,cAAA,GAAiBvE,IAAI,CAACiD,KAAL,CAAWqS,QAAQ,GAAG,CAAX,GAAe,CAA1B,CAAjB,GAAgD,IAA7D,CADH,CAAA;AAEA,EAAA,IAAIyB,WAAW,GAAGmuD,cAAc,CAACvsC,GAAf,CAAmB,iBAAnB,CAAlB,CAAA;EACA,IAAI7hB,UAAU,GAAGouD,cAAc,CAACvsC,GAAf,CAAmB,gBAAnB,KAAwC,CAAzD,CAAA;EACA,IAAIjiB,aAAa,GAAGwuD,cAAc,CAACvsC,GAAf,CAAmB,mBAAnB,KAA2C,CAA/D,CAAA;EACA,IAAI/hB,aAAa,GAAGsuD,cAAc,CAACvsC,GAAf,CAAmB,mBAAnB,KAA2C,CAA/D,CAAA;EACA5hB,WAAW,IAAID,UAAf,IAA6B+I,OAAO,CAACtb,IAAR,CAAa,iBAAiBmS,aAAjB,GAAiC,KAAjC,GAAyCE,aAAzC,GAAyD,KAAzD,GAAiEE,UAAjE,GAA8E,KAA9E,GAAsFC,WAAnG,CAA7B,CAAA;EACA7J,MAAI,CAAC,CAAC,YAAD,EAAe,OAAf,CAAD,EAA0B,UAAUhG,IAAV,EAAgB;AAC5C,IAAA,IAAI9C,GAAG,GAAG8gE,cAAc,CAACvsC,GAAf,CAAmBzxB,IAAnB,CAAV,CAAA;IACA9C,GAAG,IAAIyb,OAAO,CAACtb,IAAR,CAAa,OAAU2C,GAAAA,IAAV,GAAiB,GAAjB,GAAuB9C,GAApC,CAAP,CAAA;AACD,GAHG,CAAJ,CAAA;AAIA,EAAA,OAAOyb,OAAO,CAACrb,IAAR,CAAa,GAAb,CAAP,CAAA;AACD,CAAA;;AAED,SAAS45L,eAAT,CAAyB1C,YAAzB,EAAuC2C,gBAAvC,EAAyDV,QAAzD,EAAmE;EACjE,IAAI99K,OAAO,GAAG,EAAd,CAAA;AACA,EAAA,IAAIy7K,kBAAkB,GAAGI,YAAY,CAAC/iK,GAAb,CAAiB,oBAAjB,CAAzB,CAAA;AACA,EAAA,IAAIjX,eAAe,GAAGg6K,YAAY,CAAC/iK,GAAb,CAAiB,iBAAjB,CAAtB,CAAA;AACA,EAAA,IAAI7hB,UAAU,GAAG4kL,YAAY,CAAC/iK,GAAb,CAAiB,YAAjB,CAAjB,CAAA;AACA,EAAA,IAAI5hB,WAAW,GAAG2kL,YAAY,CAAC/iK,GAAb,CAAiB,aAAjB,CAAlB,CAAA;AACA,EAAA,IAAIjiB,aAAa,GAAGglL,YAAY,CAAC/iK,GAAb,CAAiB,eAAjB,CAApB,CAAA;AACA,EAAA,IAAI/hB,aAAa,GAAG8kL,YAAY,CAAC/iK,GAAb,CAAiB,eAAjB,CAApB,CAAA;AACA,EAAA,IAAIusC,cAAc,GAAGw2H,YAAY,CAACjjK,QAAb,CAAsB,WAAtB,CAArB,CAAA;AACA,EAAA,IAAIvS,OAAO,GAAGo4K,0BAA0B,CAAC5C,YAAD,EAAe,MAAf,CAAxC,CAAA;AACA,EAAA,IAAI6C,SAAS,GAAG7nL,aAAa,GAAG,KAAhB,GAAwBE,aAAxB,GAAwC,KAAxC,GAAgDE,UAAhD,GAA6D,KAA7D,GAAqEC,WAArF,CAAA;AACA8I,EAAAA,OAAO,CAACtb,IAAR,CAAa,aAAgBg6L,GAAAA,SAA7B,EAXiE;;AAajEF,EAAAA,gBAAgB,IAAI/C,kBAApB,IAA0Cz7K,OAAO,CAACtb,IAAR,CAAam5L,kBAAkB,CAACpC,kBAAD,EAAqBqC,QAArB,CAA/B,CAA1C,CAAA;;AAEA,EAAA,IAAIj8K,eAAJ,EAAqB;AACnB7B,IAAAA,OAAO,CAACtb,IAAR,CAAa,mBAAA,GAAsBmd,eAAnC,CAAA,CAAA;AACD,GAjBgE;;;EAoBjExU,MAAI,CAAC,CAAC,OAAD,EAAU,OAAV,EAAmB,QAAnB,CAAD,EAA+B,UAAUhG,IAAV,EAAgB;IACjD,IAAIs3L,UAAU,GAAG,SAAA,GAAYt3L,IAA7B,CAAA;AACA,IAAA,IAAIu3L,SAAS,GAAGpC,WAAW,CAACmC,UAAD,CAA3B,CAAA;AACA,IAAA,IAAIp6L,GAAG,GAAGs3L,YAAY,CAAC/iK,GAAb,CAAiB8lK,SAAjB,CAAV,CAAA;IACAr6L,GAAG,IAAI,IAAP,IAAeyb,OAAO,CAACtb,IAAR,CAAai6L,UAAU,GAAG,GAAb,GAAmBp6L,GAAnB,IAA0B8C,IAAI,KAAK,OAAT,GAAmB,EAAnB,GAAwB,IAAlD,CAAb,CAAf,CAAA;GAJE,CAAJ,CApBiE;;EA2BjE2Y,OAAO,CAACtb,IAAR,CAAa45L,YAAY,CAACj5H,cAAD,CAAzB,EA3BiE;;EA6BjE,IAAIh/C,OAAO,IAAI,IAAf,EAAqB;AACnBrG,IAAAA,OAAO,CAACtb,IAAR,CAAa,UAAA,GAAamvG,mBAAiB,CAACxtF,OAAD,CAAjB,CAA2B1hB,IAA3B,CAAgC,KAAhC,CAAb,GAAsD,IAAnE,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,OAAOqb,OAAO,CAACrb,IAAR,CAAa,GAAb,IAAoB,GAA3B,CAAA;AACD;;;AAGD,SAASk6L,gBAAT,CAAwB78K,GAAxB,EAA6B+0D,EAA7B,EAAiC+nH,YAAjC,EAA+CC,GAA/C,EAAoDC,GAApD,EAAyD;AACvD,EAAA,IAAIC,SAAS,GAAGloH,EAAE,IAAIA,EAAE,CAAC5yD,OAAzB,CAAA;;AAEA,EAAA,IAAI26K,YAAJ,EAAkB;AAChB,IAAA,IAAII,cAAc,GAAGD,SAAS,IAAIA,SAAS,CAAC5+K,eAAV,EAAlC,CAAA;;AAEA,IAAA,IAAI6+K,cAAJ,EAAoB;AAClB;AACAC,MAAAA,mBAAmB,CAACn9K,GAAD,EAAMk9K,cAAN,EAAsB53L,QAAQ,CAAC0oL,IAA/B,EAAqC+O,GAArC,EAA0CC,GAA1C,CAAnB,CAAA;AACD,KAAA;AACF,GAPD,MAOO;AACLh9K,IAAAA,GAAG,CAAC,CAAD,CAAH,GAAS+8K,GAAT,CAAA;AACA/8K,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASg9K,GAAT,CAFK;AAGL;AACA;;AAEA,IAAA,IAAII,kBAAkB,GAAGH,SAAS,IAAIA,SAAS,CAAC3+K,qBAAV,EAAtC,CAAA;;AAEA,IAAA,IAAI8+K,kBAAJ,EAAwB;AACtBp9K,MAAAA,GAAG,CAAC,CAAD,CAAH,IAAUo9K,kBAAkB,CAAC5+K,UAA7B,CAAA;AACAwB,MAAAA,GAAG,CAAC,CAAD,CAAH,IAAUo9K,kBAAkB,CAAC3+K,SAA7B,CAAA;AACD,KAAA;AACF,GAAA;;AAEDuB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASA,GAAG,CAAC,CAAD,CAAH,GAAS+0D,EAAE,CAAC1zD,QAAH,EAAlB,CAAA;AACArB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASA,GAAG,CAAC,CAAD,CAAH,GAAS+0D,EAAE,CAACzzD,SAAH,EAAlB,CAAA;AACD,CAAA;;AAED,IAAI+7K,kBAAkB;AACtB;AACA,YAAY;AACV,EAAA,SAASA,kBAAT,CAA4B9L,SAA5B,EAAuCr2K,GAAvC,EAA4C6U,GAA5C,EAAiD;IAC/C,IAAKutK,CAAAA,KAAL,GAAa,KAAb,CAAA;IACA,IAAKC,CAAAA,WAAL,GAAmB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAnB,CAAA;IACA,IAAKC,CAAAA,UAAL,GAAkB,IAAlB,CAAA;IACA,IAAKC,CAAAA,UAAL,GAAkB,IAAlB,CAAA;IACA,IAAKC,CAAAA,SAAL,GAAiB,IAAjB,CAAA;;IAEA,IAAI1nL,GAAG,CAACqX,GAAR,EAAa;AACX,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;;IAED,IAAIzpB,EAAE,GAAG0B,QAAQ,CAACF,aAAT,CAAuB,KAAvB,CAAT,CAX+C;;IAa/CxB,EAAE,CAAC+5L,aAAH,GAAmB,IAAnB,CAAA;IACA,IAAK/5L,CAAAA,EAAL,GAAUA,EAAV,CAAA;IACA,IAAImxE,EAAE,GAAG,IAAKS,CAAAA,GAAL,GAAWt6D,GAAG,CAACghC,KAAJ,EAApB,CAAA;IACA,IAAI4gJ,YAAY,GAAG,IAAKc,CAAAA,aAAL,GAAqB7tK,GAAG,IAAIA,GAAG,CAAC+sK,YAAnD,CAAA;AACAD,IAAAA,gBAAc,CAAC,IAAKU,CAAAA,WAAN,EAAmBxoH,EAAnB,EAAuB+nH,YAAvB,EAAqC5hL,GAAG,CAACmG,QAAJ,EAAA,GAAiB,CAAtD,EAAyDnG,GAAG,CAACoG,SAAJ,EAAA,GAAkB,CAA3E,CAAd,CAAA;;AAEA,IAAA,IAAIw7K,YAAJ,EAAkB;AAChBx3L,MAAAA,QAAQ,CAAC0oL,IAAT,CAAc70K,WAAd,CAA0BvV,EAA1B,CAAA,CAAA;AACD,KAFD,MAEO;MACL2tL,SAAS,CAACp4K,WAAV,CAAsBvV,EAAtB,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKi6L,UAAL,GAAkBtM,SAAlB,CAzB+C;AA0B/C;AACA;;IAEA,IAAIxpK,IAAI,GAAG,IAAX,CAAA;;IAEAnkB,EAAE,CAACk6L,YAAH,GAAkB,YAAY;AAC5B;MACA,IAAI/1K,IAAI,CAACy1K,UAAT,EAAqB;AACnBzzE,QAAAA,YAAY,CAAChiG,IAAI,CAACg2K,YAAN,CAAZ,CAAA;QACAh2K,IAAI,CAACu1K,KAAL,GAAa,IAAb,CAAA;AACD,OAAA;;MAEDv1K,IAAI,CAACi2K,UAAL,GAAkB,IAAlB,CAAA;KAPF,CAAA;;AAUAp6L,IAAAA,EAAE,CAAC0/J,WAAH,GAAiB,UAAUrhK,CAAV,EAAa;AAC5BA,MAAAA,CAAC,GAAGA,CAAC,IAAIkrL,MAAM,CAACzrI,KAAhB,CAAA;;AAEA,MAAA,IAAI,CAAC35B,IAAI,CAACy1K,UAAV,EAAsB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,QAAA,IAAIrlE,OAAO,GAAGpjD,EAAE,CAACojD,OAAjB,CAAA;AACA,QAAA,IAAI+kE,cAAc,GAAGnoH,EAAE,CAAC5yD,OAAH,CAAW9D,eAAX,EAArB,CAAA;AACA4/K,QAAAA,cAAc,CAACf,cAAD,EAAiBj7L,CAAjB,EAAoB,IAApB,CAAd,CAAA;AACAk2H,QAAAA,OAAO,CAAC+lE,QAAR,CAAiB,WAAjB,EAA8Bj8L,CAA9B,CAAA,CAAA;AACD,OAAA;KAdH,CAAA;;IAiBA2B,EAAE,CAACu6L,YAAH,GAAkB,YAAY;AAC5B;MACAp2K,IAAI,CAACi2K,UAAL,GAAkB,KAAlB,CAAA;;MAEA,IAAIj2K,IAAI,CAACy1K,UAAT,EAAqB;QACnB,IAAIz1K,IAAI,CAACu1K,KAAT,EAAgB;AACdv1K,UAAAA,IAAI,CAACq2K,SAAL,CAAer2K,IAAI,CAACs2K,UAApB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;KARH,CAAA;AAUD,GAAA;AACD;AACF;AACA;;;AAGEhB,EAAAA,kBAAkB,CAAC1+L,SAAnB,CAA6Bi8B,MAA7B,GAAsC,UAAUi/J,YAAV,EAAwB;AAC5D;AACA;IACA,IAAItI,SAAS,GAAG,IAAA,CAAKsM,UAArB,CAAA;AACA,IAAA,IAAIp7K,QAAQ,GAAGg4K,gBAAgB,CAAClJ,SAAD,EAAY,UAAZ,CAA/B,CAAA;AACA,IAAA,IAAIptK,QAAQ,GAAGotK,SAAS,CAACtuL,KAAzB,CAAA;;IAEA,IAAIkhB,QAAQ,CAAC1B,QAAT,KAAsB,UAAtB,IAAoCA,QAAQ,KAAK,UAArD,EAAiE;MAC/D0B,QAAQ,CAAC1B,QAAT,GAAoB,UAApB,CAAA;AACD,KAT2D;;;AAY5D,IAAA,IAAI02K,iBAAiB,GAAGU,YAAY,CAAC/iK,GAAb,CAAiB,mBAAjB,CAAxB,CAAA;AACAqiK,IAAAA,iBAAiB,IAAI,IAAA,CAAKmF,cAAL,EAArB,CAb4D;;AAe5D,IAAA,IAAA,CAAK16L,EAAL,CAAQmD,SAAR,GAAoB8yL,YAAY,CAAC/iK,GAAb,CAAiB,WAAjB,CAAA,IAAiC,EAArD,CAf4D;AAgB5D;AACA;GAjBF,CAAA;;EAoBAumK,kBAAkB,CAAC1+L,SAAnB,CAA6B+yB,IAA7B,GAAoC,UAAUmoK,YAAV,EAAwB0E,cAAxB,EAAwC;IAC1Ex0E,YAAY,CAAC,IAAKg0E,CAAAA,YAAN,CAAZ,CAAA;IACAh0E,YAAY,CAAC,IAAKy0E,CAAAA,gBAAN,CAAZ,CAAA;IACA,IAAI56L,EAAE,GAAG,IAAA,CAAKA,EAAd,CAAA;AACA,IAAA,IAAIX,KAAK,GAAGW,EAAE,CAACX,KAAf,CAAA;IACA,IAAIw7L,UAAU,GAAG,IAAA,CAAKlB,WAAtB,CAAA;;AAEA,IAAA,IAAI,CAAC35L,EAAE,CAAC4d,SAAR,EAAmB;MACjBve,KAAK,CAACie,OAAN,GAAgB,MAAhB,CAAA;AACD,KAFD,MAEO;AACLje,MAAAA,KAAK,CAAC+a,OAAN,GAAgB88K,QAAQ,GAAGyB,eAAe,CAAC1C,YAAD,EAAe,CAAC,KAAK4D,UAArB,EAAiC,IAAKC,CAAAA,SAAtC,CAA1B;AAAA,QACdvB,iBAAiB,CAACsC,UAAU,CAAC,CAAD,CAAX,EAAgBA,UAAU,CAAC,CAAD,CAA1B,EAA+B,IAA/B,CADH,IAC2C,eAAkB5wJ,GAAAA,oBAAoB,CAAC0wJ,cAAD,CAAtC,GAAyD,GADpG,CAAA,IAC4G1E,YAAY,CAAC/iK,GAAb,CAAiB,cAAjB,CAAA,IAAoC,EADhJ,CACoJ;AACpK;AACA;AACA;AACA;SACG,kBAAA,IAAsB,KAAK0mK,UAAL,GAAkB,MAAlB,GAA2B,MAAjD,CANa,CAAhB,CAAA;AAOD,KAAA;;IAED,IAAKF,CAAAA,KAAL,GAAa,IAAb,CAAA;IACA,IAAKG,CAAAA,UAAL,GAAkB,KAAlB,CAAA;IACA,IAAKC,CAAAA,SAAL,GAAiB,KAAjB,CAAA;GArBF,CAAA;;AAwBAL,EAAAA,kBAAkB,CAAC1+L,SAAnB,CAA6B+/L,UAA7B,GAA0C,UAAUrvF,OAAV,EAAmBsvF,OAAnB,EAA4B9E,YAA5B,EAA0C/jJ,WAA1C,EAAuDolJ,aAAvD,EAAsE;IAC9G,IAAIt3L,EAAE,GAAG,IAAA,CAAKA,EAAd,CAAA;;IAEA,IAAIyrG,OAAO,IAAI,IAAf,EAAqB;MACnBzrG,EAAE,CAAC4d,SAAH,GAAe,EAAf,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;IAED,IAAIo9K,KAAK,GAAG,EAAZ,CAAA;;AAEA,IAAA,IAAI3yL,QAAQ,CAACivL,aAAD,CAAR,IAA2BrB,YAAY,CAAC/iK,GAAb,CAAiB,SAAjB,CAAA,KAAgC,MAA3D,IAAqE,CAAC8iK,oBAAoB,CAACC,YAAD,CAA9F,EAA8G;MAC5G+E,KAAK,GAAG3D,aAAa,CAACpB,YAAD,EAAe/jJ,WAAf,EAA4BolJ,aAA5B,CAArB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIjvL,QAAQ,CAACojG,OAAD,CAAZ,EAAuB;AACrBzrG,MAAAA,EAAE,CAAC4d,SAAH,GAAe6tF,OAAO,GAAGuvF,KAAzB,CAAA;KADF,MAEO,IAAIvvF,OAAJ,EAAa;AAClB;MACAzrG,EAAE,CAAC4d,SAAH,GAAe,EAAf,CAAA;;AAEA,MAAA,IAAI,CAACxG,SAAO,CAACq0F,OAAD,CAAZ,EAAuB;QACrBA,OAAO,GAAG,CAACA,OAAD,CAAV,CAAA;AACD,OAAA;;AAED,MAAA,KAAK,IAAIhtG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgtG,OAAO,CAAC1tG,MAA5B,EAAoCU,CAAC,EAArC,EAAyC;AACvC,QAAA,IAAIw8L,KAAK,CAACxvF,OAAO,CAAChtG,CAAD,CAAR,CAAL,IAAqBgtG,OAAO,CAAChtG,CAAD,CAAP,CAAWyW,UAAX,KAA0BlV,EAAnD,EAAuD;AACrDA,UAAAA,EAAE,CAACuV,WAAH,CAAek2F,OAAO,CAAChtG,CAAD,CAAtB,CAAA,CAAA;AACD,SAAA;AACF,OAZiB;;;AAelB,MAAA,IAAIu8L,KAAK,IAAIh7L,EAAE,CAACk7L,UAAH,CAAcn9L,MAA3B,EAAmC;AACjC;AACA;AACA,QAAA,IAAIo9L,OAAO,GAAGz5L,QAAQ,CAACF,aAAT,CAAuB,KAAvB,CAAd,CAAA;QACA25L,OAAO,CAACv9K,SAAR,GAAoBo9K,KAApB,CAAA;QACAh7L,EAAE,CAACuV,WAAH,CAAe4lL,OAAf,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GAtCH,CAAA;;AAyCA1B,EAAAA,kBAAkB,CAAC1+L,SAAnB,CAA6BqgM,YAA7B,GAA4C,UAAUtF,SAAV,EAAqB;IAC/D,IAAK8D,CAAAA,UAAL,GAAkB9D,SAAlB,CAAA;GADF,CAAA;;AAIA2D,EAAAA,kBAAkB,CAAC1+L,SAAnB,CAA6BwiB,OAA7B,GAAuC,YAAY;IACjD,IAAIvd,EAAE,GAAG,IAAA,CAAKA,EAAd,CAAA;IACA,OAAO,CAACA,EAAE,CAACq7L,WAAJ,EAAiBr7L,EAAE,CAACs7L,YAApB,CAAP,CAAA;GAFF,CAAA;;EAKA7B,kBAAkB,CAAC1+L,SAAnB,CAA6BQ,MAA7B,GAAsC,UAAU49L,GAAV,EAAeC,GAAf,EAAoB;IACxD,IAAIyB,UAAU,GAAG,IAAA,CAAKlB,WAAtB,CAAA;AACAV,IAAAA,gBAAc,CAAC4B,UAAD,EAAa,IAAA,CAAKjpH,GAAlB,EAAuB,IAAKooH,CAAAA,aAA5B,EAA2Cb,GAA3C,EAAgDC,GAAhD,CAAd,CAAA;;AAEA,IAAA,IAAIyB,UAAU,CAAC,CAAD,CAAV,IAAiB,IAAjB,IAAyBA,UAAU,CAAC,CAAD,CAAV,IAAiB,IAA9C,EAAoD;AAClD,MAAA,IAAIpgC,OAAO,GAAG,IAAKz6J,CAAAA,EAAL,CAAQX,KAAtB,CAAA;AACA,MAAA,IAAIk8L,UAAU,GAAGhD,iBAAiB,CAACsC,UAAU,CAAC,CAAD,CAAX,EAAgBA,UAAU,CAAC,CAAD,CAA1B,CAAlC,CAAA;AACApzL,MAAAA,MAAI,CAAC8zL,UAAD,EAAa,UAAU10L,SAAV,EAAqB;QACpC4zJ,OAAO,CAAC5zJ,SAAS,CAAC,CAAD,CAAV,CAAP,GAAwBA,SAAS,CAAC,CAAD,CAAjC,CAAA;AACD,OAFG,CAAJ,CAAA;AAGD,KAAA;GAVH,CAAA;AAYA;AACF;AACA;AACA;;;AAGE4yL,EAAAA,kBAAkB,CAAC1+L,SAAnB,CAA6B2/L,cAA7B,GAA8C,YAAY;AACxD;IACA,IAAIc,MAAM,GAAG,IAAK7B,CAAAA,WAAL,CAAiB,CAAjB,CAAb,CAFwD;;AAIxD,IAAA,IAAI8B,MAAM,GAAG,IAAA,CAAK9B,WAAL,CAAiB,CAAjB,CAAb,CAAA;AACA,IAAA,IAAA,CAAKp+L,MAAL,CAAYigM,MAAM,GAAG,IAAA,CAAK5pH,GAAL,CAASn0D,QAAT,EAArB,EAA0Cg+K,MAAM,GAAG,IAAA,CAAK7pH,GAAL,CAASl0D,SAAT,EAAnD,CAAA,CAAA;GALF,CAAA;;AAQA+7K,EAAAA,kBAAkB,CAAC1+L,SAAnB,CAA6BsjK,IAA7B,GAAoC,YAAY;IAC9C,IAAIl/I,KAAK,GAAG,IAAZ,CAAA;;AAEA,IAAA,IAAI9f,KAAK,GAAG,IAAKW,CAAAA,EAAL,CAAQX,KAApB,CAAA;IACAA,KAAK,CAAC67E,UAAN,GAAmB,QAAnB,CAAA;IACA77E,KAAK,CAACa,OAAN,GAAgB,GAAhB,CAAA;AACAkS,IAAAA,GAAG,CAAC+kL,oBAAJ,KAA6B93L,KAAK,CAACq8L,UAAN,GAAmB,EAAhD,CAAA,CAAA;IACA,IAAKhC,CAAAA,KAAL,GAAa,KAAb,CAAA;AACA,IAAA,IAAA,CAAKkB,gBAAL,GAAwBj0E,UAAU,CAAC,YAAY;AAC7C,MAAA,OAAOxnG,KAAK,CAAC26K,SAAN,GAAkB,IAAzB,CAAA;KADgC,EAE/B,GAF+B,CAAlC,CAAA;GARF,CAAA;;AAaAL,EAAAA,kBAAkB,CAAC1+L,SAAnB,CAA6By/L,SAA7B,GAAyC,UAAUlwL,IAAV,EAAgB;IACvD,IAAI,IAAA,CAAKovL,KAAL,IAAc,EAAE,IAAA,CAAKU,UAAL,IAAmB,IAAA,CAAKR,UAA1B,CAAlB,EAAyD;AACvD,MAAA,IAAItvL,IAAJ,EAAU;AACR,QAAA,IAAA,CAAKmwL,UAAL,GAAkBnwL,IAAlB,CADQ;;QAGR,IAAKovL,CAAAA,KAAL,GAAa,KAAb,CAAA;AACA,QAAA,IAAA,CAAKS,YAAL,GAAoBxzE,UAAU,CAAC70C,MAAI,CAAC,IAAKusF,CAAAA,IAAN,EAAY,IAAZ,CAAL,EAAwB/zJ,IAAxB,CAA9B,CAAA;AACD,OALD,MAKO;AACL,QAAA,IAAA,CAAK+zJ,IAAL,EAAA,CAAA;AACD,OAAA;AACF,KAAA;GAVH,CAAA;;AAaAo7B,EAAAA,kBAAkB,CAAC1+L,SAAnB,CAA6BgzG,MAA7B,GAAsC,YAAY;AAChD,IAAA,OAAO,KAAK2rF,KAAZ,CAAA;GADF,CAAA;;AAIAD,EAAAA,kBAAkB,CAAC1+L,SAAnB,CAA6B4iB,OAA7B,GAAuC,YAAY;AACjD,IAAA,IAAA,CAAK3d,EAAL,CAAQkV,UAAR,CAAmBG,WAAnB,CAA+B,KAAKrV,EAApC,CAAA,CAAA;GADF,CAAA;;AAIA,EAAA,OAAOy5L,kBAAP,CAAA;AACD,CAtOD,EAFA;;ACrNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAIkC,kBAAkB;AACtB;AACA,YAAY;EACV,SAASA,kBAAT,CAA4BrkL,GAA5B,EAAiC;IAC/B,IAAKoiL,CAAAA,KAAL,GAAa,KAAb,CAAA;IACA,IAAKC,CAAAA,WAAL,GAAmB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAnB,CAAA;IACA,IAAKC,CAAAA,UAAL,GAAkB,IAAlB,CAAA;AACA,IAAA,IAAA,CAAKhoH,GAAL,GAAWt6D,GAAG,CAACghC,KAAJ,EAAX,CAAA;AACA2gJ,IAAAA,cAAc,CAAC,IAAKU,CAAAA,WAAN,EAAmB,IAAK/nH,CAAAA,GAAxB,EAA6Bt6D,GAAG,CAACmG,QAAJ,EAAA,GAAiB,CAA9C,EAAiDnG,GAAG,CAACoG,SAAJ,EAAA,GAAkB,CAAnE,CAAd,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEi+K,EAAAA,kBAAkB,CAAC5gM,SAAnB,CAA6Bi8B,MAA7B,GAAsC,UAAUi/J,YAAV,EAAwB;AAC5D,IAAA,IAAIV,iBAAiB,GAAGU,YAAY,CAAC/iK,GAAb,CAAiB,mBAAjB,CAAxB,CAAA;IACAqiK,iBAAiB,IAAI,IAAKmF,CAAAA,cAAL,EAArB,CAAA;GAFF,CAAA;;AAKAiB,EAAAA,kBAAkB,CAAC5gM,SAAnB,CAA6B+yB,IAA7B,GAAoC,YAAY;IAC9C,IAAI,IAAA,CAAKqsK,YAAT,EAAuB;MACrBh0E,YAAY,CAAC,IAAKg0E,CAAAA,YAAN,CAAZ,CAAA;AACD,KAAA;;IAED,IAAKn6L,CAAAA,EAAL,CAAQ8tB,IAAR,EAAA,CAAA;IACA,IAAK4rK,CAAAA,KAAL,GAAa,IAAb,CAAA;GANF,CAAA;AAQA;AACF;AACA;;;AAGEiC,EAAAA,kBAAkB,CAAC5gM,SAAnB,CAA6B+/L,UAA7B,GAA0C,UAAUrvF,OAAV,EAAmBmwF,kBAAnB,EAAuC3F,YAAvC,EAAqD/jJ,WAArD,EAAkEolJ,aAAlE,EAAiF;IACzH,IAAIn4K,KAAK,GAAG,IAAZ,CAAA;;AAEA,IAAA,IAAIsjB,UAAA,CAAgBgpE,OAAhB,CAAJ,EAA8B;AAC5B2kC,MAAAA,UAAU,CAACj+H,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC,oEAAxC,GAA+G,EAAhH,CAAV,CAAA;AACD,KAAA;;IAED,IAAI,IAAA,CAAKrS,EAAT,EAAa;AACX,MAAA,IAAA,CAAK4xE,GAAL,CAASz6C,MAAT,CAAgB,KAAKn3B,EAArB,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIy/D,cAAc,GAAGw2H,YAAY,CAACjjK,QAAb,CAAsB,WAAtB,CAArB,CAAA;AACA,IAAA,IAAA,CAAKhzB,EAAL,GAAU,IAAI0nL,MAAJ,CAAW;AACnBroL,MAAAA,KAAK,EAAE;QACL6wD,IAAI,EAAE0rI,kBAAkB,CAACC,cADpB;AAEL55L,QAAAA,IAAI,EAAEwpG,OAFD;AAGLglB,QAAAA,UAAU,EAAE,EAHP;AAIL9vG,QAAAA,WAAW,EAAE,CAJR;AAKLuxB,QAAAA,WAAW,EAAEA,WALR;AAMLk9G,QAAAA,eAAe,EAAE3vF,cAAc,CAACvsC,GAAf,CAAmB,iBAAnB,CANZ;QAOL5zB,IAAI,EAAE22L,YAAY,CAAC/iK,GAAb,CAAiB,CAAC,WAAD,EAAc,OAAd,CAAjB,CAPD;AAQLzS,QAAAA,OAAO,EAAEo4K,0BAA0B,CAAC5C,YAAD,EAAe,UAAf,CAR9B;AASL5tJ,QAAAA,aAAa,EAAE,KATV;AAULD,QAAAA,KAAK,EAAE,MAAA;OAXU;AAanBnhB,MAAAA,CAAC,EAAEgvK,YAAY,CAAC/iK,GAAb,CAAiB,GAAjB,CAAA;AAbgB,KAAX,CAAV,CAAA;AAeAuP,IAAAA,MAAA,CAAY,CAAC,iBAAD,EAAoB,cAApB,EAAoC,aAApC,EAAmD,YAAnD,EAAiE,eAAjE,EAAkF,eAAlF,CAAZ,EAAgH,UAAUvhC,QAAV,EAAoB;AAClIie,MAAAA,KAAK,CAACnf,EAAN,CAASX,KAAT,CAAe6B,QAAf,CAA2B+0L,GAAAA,YAAY,CAAC/iK,GAAb,CAAiBhyB,QAAjB,CAA3B,CAAA;KADF,CAAA,CAAA;AAGAuhC,IAAAA,MAAA,CAAY,CAAC,gBAAD,EAAmB,mBAAnB,EAAwC,mBAAxC,CAAZ,EAA0E,UAAUvhC,QAAV,EAAoB;AAC5Fie,MAAAA,KAAK,CAACnf,EAAN,CAASX,KAAT,CAAe6B,QAAf,CAA2Bu+D,GAAAA,cAAc,CAACvsC,GAAf,CAAmBhyB,QAAnB,KAAgC,CAA3D,CAAA;KADF,CAAA,CAAA;;AAIA,IAAA,IAAA,CAAK0wE,GAAL,CAASjlD,GAAT,CAAa,KAAK3sB,EAAlB,CAAA,CAAA;;IAEA,IAAImkB,IAAI,GAAG,IAAX,CAAA;AACA,IAAA,IAAA,CAAKnkB,EAAL,CAAQu4C,EAAR,CAAW,WAAX,EAAwB,YAAY;AAClC;MACA,IAAIp0B,IAAI,CAACy1K,UAAT,EAAqB;AACnBzzE,QAAAA,YAAY,CAAChiG,IAAI,CAACg2K,YAAN,CAAZ,CAAA;QACAh2K,IAAI,CAACu1K,KAAL,GAAa,IAAb,CAAA;AACD,OAAA;;MAEDv1K,IAAI,CAACi2K,UAAL,GAAkB,IAAlB,CAAA;KAPF,CAAA,CAAA;AASA,IAAA,IAAA,CAAKp6L,EAAL,CAAQu4C,EAAR,CAAW,UAAX,EAAuB,YAAY;MACjC,IAAIp0B,IAAI,CAACy1K,UAAT,EAAqB;QACnB,IAAIz1K,IAAI,CAACu1K,KAAT,EAAgB;AACdv1K,UAAAA,IAAI,CAACq2K,SAAL,CAAer2K,IAAI,CAACs2K,UAApB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;;MAEDt2K,IAAI,CAACi2K,UAAL,GAAkB,KAAlB,CAAA;KAPF,CAAA,CAAA;GA9CF,CAAA;;AAyDAuB,EAAAA,kBAAkB,CAAC5gM,SAAnB,CAA6BqgM,YAA7B,GAA4C,UAAUtF,SAAV,EAAqB;IAC/D,IAAK8D,CAAAA,UAAL,GAAkB9D,SAAlB,CAAA;GADF,CAAA;;AAIA6F,EAAAA,kBAAkB,CAAC5gM,SAAnB,CAA6BwiB,OAA7B,GAAuC,YAAY;IACjD,IAAIvd,EAAE,GAAG,IAAA,CAAKA,EAAd,CAAA;IACA,IAAIm7K,QAAQ,GAAG,IAAKn7K,CAAAA,EAAL,CAAQ0jD,eAAR,EAAf,CAFiD;AAGjD;;AAEA,IAAA,IAAIo4I,eAAe,GAAGC,mBAAmB,CAAC/7L,EAAE,CAACX,KAAJ,CAAzC,CAAA;IACA,OAAO,CAAC87K,QAAQ,CAAC32K,KAAT,GAAiBs3L,eAAe,CAACh9K,IAAjC,GAAwCg9K,eAAe,CAAC7xI,KAAzD,EAAgEkxH,QAAQ,CAAC12K,MAAT,GAAkBq3L,eAAe,CAAC/8K,GAAlC,GAAwC+8K,eAAe,CAAC5xI,MAAxH,CAAP,CAAA;GANF,CAAA;;EASAyxI,kBAAkB,CAAC5gM,SAAnB,CAA6BQ,MAA7B,GAAsC,UAAUC,CAAV,EAAaC,CAAb,EAAgB;IACpD,IAAIuE,EAAE,GAAG,IAAA,CAAKA,EAAd,CAAA;;AAEA,IAAA,IAAIA,EAAJ,EAAQ;MACN,IAAI66L,UAAU,GAAG,IAAA,CAAKlB,WAAtB,CAAA;MACAV,cAAc,CAAC4B,UAAD,EAAa,IAAA,CAAKjpH,GAAlB,EAAuBp2E,CAAvB,EAA0BC,CAA1B,CAAd,CAAA;AACAD,MAAAA,CAAC,GAAGq/L,UAAU,CAAC,CAAD,CAAd,CAAA;AACAp/L,MAAAA,CAAC,GAAGo/L,UAAU,CAAC,CAAD,CAAd,CAAA;AACA,MAAA,IAAIx7L,KAAK,GAAGW,EAAE,CAACX,KAAf,CAAA;MACA,IAAIshB,WAAW,GAAGq7K,YAAY,CAAC38L,KAAK,CAACshB,WAAN,IAAqB,CAAtB,CAA9B,CAAA;AACA,MAAA,IAAIm7K,eAAe,GAAGC,mBAAmB,CAAC18L,KAAD,CAAzC,CAPM;;MASNW,EAAE,CAACxE,CAAH,GAAOA,CAAC,GAAGmlB,WAAJ,GAAkBm7K,eAAe,CAACh9K,IAAzC,CAAA;MACA9e,EAAE,CAACvE,CAAH,GAAOA,CAAC,GAAGklB,WAAJ,GAAkBm7K,eAAe,CAAC/8K,GAAzC,CAAA;AACA/e,MAAAA,EAAE,CAAC03B,UAAH,EAAA,CAAA;AACD,KAAA;GAfH,CAAA;AAiBA;AACF;AACA;AACA;;;AAGEikK,EAAAA,kBAAkB,CAAC5gM,SAAnB,CAA6B2/L,cAA7B,GAA8C,YAAY;AACxD;IACA,IAAIc,MAAM,GAAG,IAAK7B,CAAAA,WAAL,CAAiB,CAAjB,CAAb,CAFwD;;AAIxD,IAAA,IAAI8B,MAAM,GAAG,IAAA,CAAK9B,WAAL,CAAiB,CAAjB,CAAb,CAAA;AACA,IAAA,IAAA,CAAKp+L,MAAL,CAAYigM,MAAM,GAAG,IAAA,CAAK5pH,GAAL,CAASn0D,QAAT,EAArB,EAA0Cg+K,MAAM,GAAG,IAAA,CAAK7pH,GAAL,CAASl0D,SAAT,EAAnD,CAAA,CAAA;GALF,CAAA;;AAQAi+K,EAAAA,kBAAkB,CAAC5gM,SAAnB,CAA6BsjK,IAA7B,GAAoC,YAAY;IAC9C,IAAI,IAAA,CAAKr+J,EAAT,EAAa;MACX,IAAKA,CAAAA,EAAL,CAAQq+J,IAAR,EAAA,CAAA;AACD,KAAA;;IAED,IAAKq7B,CAAAA,KAAL,GAAa,KAAb,CAAA;GALF,CAAA;;AAQAiC,EAAAA,kBAAkB,CAAC5gM,SAAnB,CAA6By/L,SAA7B,GAAyC,UAAUlwL,IAAV,EAAgB;IACvD,IAAI,IAAA,CAAKovL,KAAL,IAAc,EAAE,IAAA,CAAKU,UAAL,IAAmB,IAAA,CAAKR,UAA1B,CAAlB,EAAyD;AACvD,MAAA,IAAItvL,IAAJ,EAAU;AACR,QAAA,IAAA,CAAKmwL,UAAL,GAAkBnwL,IAAlB,CADQ;;QAGR,IAAKovL,CAAAA,KAAL,GAAa,KAAb,CAAA;AACA,QAAA,IAAA,CAAKS,YAAL,GAAoBxzE,UAAU,CAAClkF,MAAA,CAAY,IAAA,CAAK47H,IAAjB,EAAuB,IAAvB,CAAD,EAA+B/zJ,IAA/B,CAA9B,CAAA;AACD,OALD,MAKO;AACL,QAAA,IAAA,CAAK+zJ,IAAL,EAAA,CAAA;AACD,OAAA;AACF,KAAA;GAVH,CAAA;;AAaAs9B,EAAAA,kBAAkB,CAAC5gM,SAAnB,CAA6BgzG,MAA7B,GAAsC,YAAY;AAChD,IAAA,OAAO,KAAK2rF,KAAZ,CAAA;GADF,CAAA;;AAIAiC,EAAAA,kBAAkB,CAAC5gM,SAAnB,CAA6B4iB,OAA7B,GAAuC,YAAY;AACjD,IAAA,IAAA,CAAKi0D,GAAL,CAASz6C,MAAT,CAAgB,KAAKn3B,EAArB,CAAA,CAAA;GADF,CAAA;;AAIA,EAAA,OAAO27L,kBAAP,CAAA;AACD,CAlKD,EAFA,CAAA;;AAsKA,SAASK,YAAT,CAAsBr9L,GAAtB,EAA2B;AACzB,EAAA,OAAOpE,IAAI,CAAC0iB,GAAL,CAAS,CAAT,EAAYte,GAAZ,CAAP,CAAA;AACD,CAAA;;AAED,SAASo9L,mBAAT,CAA6B18L,KAA7B,EAAoC;EAClC,IAAIgS,UAAU,GAAG2qL,YAAY,CAAC38L,KAAK,CAACgS,UAAN,IAAoB,CAArB,CAA7B,CAAA;EACA,IAAIJ,aAAa,GAAG+qL,YAAY,CAAC38L,KAAK,CAAC4R,aAAN,IAAuB,CAAxB,CAAhC,CAAA;EACA,IAAIE,aAAa,GAAG6qL,YAAY,CAAC38L,KAAK,CAAC8R,aAAN,IAAuB,CAAxB,CAAhC,CAAA;EACA,OAAO;AACL2N,IAAAA,IAAI,EAAEk9K,YAAY,CAAC3qL,UAAU,GAAGJ,aAAd,CADb;AAELg5C,IAAAA,KAAK,EAAE+xI,YAAY,CAAC3qL,UAAU,GAAGJ,aAAd,CAFd;AAGL8N,IAAAA,GAAG,EAAEi9K,YAAY,CAAC3qL,UAAU,GAAGF,aAAd,CAHZ;AAIL+4C,IAAAA,MAAM,EAAE8xI,YAAY,CAAC3qL,UAAU,GAAGF,aAAd,CAAA;GAJtB,CAAA;AAMD,CAAA;;AAED,SAAS8nL,cAAT,CAAwB78K,GAAxB,EAA6B+0D,EAA7B,EAAiCgoH,GAAjC,EAAsCC,GAAtC,EAA2C;AACzCh9K,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS+8K,GAAT,CAAA;AACA/8K,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASg9K,GAAT,CAAA;AACAh9K,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASA,GAAG,CAAC,CAAD,CAAH,GAAS+0D,EAAE,CAAC1zD,QAAH,EAAlB,CAAA;AACArB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASA,GAAG,CAAC,CAAD,CAAH,GAAS+0D,EAAE,CAACzzD,SAAH,EAAlB,CAAA;AACD;;AC1OD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiDA,IAAIu+K,SAAS,GAAG,IAAIhhJ,MAAJ,CAAS;AACvB50C,EAAAA,KAAK,EAAE;IACL7K,CAAC,EAAE,CAAC,CADC;IAELC,CAAC,EAAE,CAAC,CAFC;AAGL+I,IAAAA,KAAK,EAAE,CAHF;AAILC,IAAAA,MAAM,EAAE,CAAA;AAJH,GAAA;AADgB,CAAT,CAAhB,CAAA;;AASA,IAAIy3L,WAAW;AACf;AACA,UAAUj9K,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACg9K,WAAD,EAAcj9K,MAAd,CAAT,CAAA;;AAEA,EAAA,SAASi9K,WAAT,GAAuB;AACrB,IAAA,IAAI/8K,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaouL,WAAW,CAACpuL,IAAzB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED+8K,WAAW,CAACnhM,SAAZ,CAAsBytC,IAAtB,GAA6B,UAAUM,OAAV,EAAmBxxB,GAAnB,EAAwB;IACnD,IAAIlF,GAAG,CAACkD,IAAJ,IAAY,CAACgC,GAAG,CAACs2K,MAAJ,EAAjB,EAA+B;AAC7B,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIqI,YAAY,GAAGntJ,OAAO,CAACw7B,YAAR,CAAqB,SAArB,CAAnB,CAAA;AACA,IAAA,IAAImxH,UAAU,GAAG,IAAK0G,CAAAA,WAAL,GAAmBC,oBAAoB,CAACnG,YAAY,CAAC/iK,GAAb,CAAiB,YAAjB,CAAD,CAAxD,CAAA;IACA,IAAKmpK,CAAAA,eAAL,GAAuB5G,UAAU,KAAK,UAAf,GAA4B,IAAIkG,kBAAJ,CAAuBrkL,GAAvB,CAA5B,GAA0D,IAAImiL,kBAAJ,CAAuBniL,GAAG,CAACs2K,MAAJ,EAAvB,EAAqCt2K,GAArC,EAA0C;AACzH4hL,MAAAA,YAAY,EAAEjD,YAAY,CAAC/iK,GAAb,CAAiB,cAAjB,EAAiC,IAAjC,CAAA;AAD2G,KAA1C,CAAjF,CAAA;GAPF,CAAA;;EAYAgpK,WAAW,CAACnhM,SAAZ,CAAsB8tC,MAAtB,GAA+B,UAAUotJ,YAAV,EAAwBntJ,OAAxB,EAAiCxxB,GAAjC,EAAsC;IACnE,IAAIlF,GAAG,CAACkD,IAAJ,IAAY,CAACgC,GAAG,CAACs2K,MAAJ,EAAjB,EAA+B;AAC7B,MAAA,OAAA;AACD,KAHkE;;;IAMnE,IAAKxhK,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;IACA,IAAKssK,CAAAA,aAAL,GAAqBrG,YAArB,CAAA;IACA,IAAKpuC,CAAAA,QAAL,GAAgB/+G,OAAhB,CAAA;IACA,IAAK6pD,CAAAA,IAAL,GAAYr7E,GAAZ,CAAA;AACA;AACJ;AACA;AACA;;AAEI,IAAA,IAAA,CAAKilL,kBAAL,GAA0BtG,YAAY,CAAC/iK,GAAb,CAAiB,mBAAjB,CAA1B,CAAA;IACA,IAAIspK,cAAc,GAAG,IAAA,CAAKH,eAA1B,CAAA;IACAG,cAAc,CAACxlK,MAAf,CAAsBi/J,YAAtB,CAAA,CAAA;IACAuG,cAAc,CAACpB,YAAf,CAA4BnF,YAAY,CAAC/iK,GAAb,CAAiB,WAAjB,CAA5B,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKupK,mBAAL,EAAA,CAAA;;IAEA,IAAKC,CAAAA,SAAL,GAtBmE;AAuBnE;AACA;AACA;AACA;AACA;;;IAGA,IAAI,IAAA,CAAKP,WAAL,KAAqB,UAArB,IAAmClG,YAAY,CAAC/iK,GAAb,CAAiB,oBAAjB,CAAvC,EAA+E;MAC7EshG,cAAc,CAAC,IAAD,EAAO,iBAAP,EAA0B,EAA1B,EAA8B,SAA9B,CAAd,CAAA;AACD,KAFD,MAEO;AACL32G,MAAAA,OAAK,CAAC,IAAD,EAAO,iBAAP,CAAL,CAAA;AACD,KAAA;GAlCH,CAAA;;AAqCAq+K,EAAAA,WAAW,CAACnhM,SAAZ,CAAsB0hM,mBAAtB,GAA4C,YAAY;IACtD,IAAIxG,YAAY,GAAG,IAAA,CAAKqG,aAAxB,CAAA;AACA,IAAA,IAAIjnE,SAAS,GAAG4gE,YAAY,CAAC/iK,GAAb,CAAiB,WAAjB,CAAhB,CAAA;AACAqxI,IAAAA,QAAA,CAAwB,aAAxB,EAAuC,KAAK5xE,IAA5C,EAAkD7gB,MAAI,CAAC,UAAUqyF,WAAV,EAAuB9lK,CAAvB,EAA0By7C,cAA1B,EAA0C;AAC/F;MACA,IAAIu7E,SAAS,KAAK,MAAlB,EAA0B;AACxB,QAAA,IAAIA,SAAS,CAACptH,OAAV,CAAkBk8J,WAAlB,CAAA,IAAkC,CAAtC,EAAyC;AACvC,UAAA,IAAA,CAAKw4B,QAAL,CAAct+L,CAAd,EAAiBy7C,cAAjB,CAAA,CAAA;AACD,SAFD,MAEO,IAAIqqH,WAAW,KAAK,OAApB,EAA6B;UAClC,IAAKy4B,CAAAA,KAAL,CAAW9iJ,cAAX,CAAA,CAAA;AACD,SAAA;AACF,OAAA;KARmD,EASnD,IATmD,CAAtD,CAAA,CAAA;GAHF,CAAA;;AAeAoiJ,EAAAA,WAAW,CAACnhM,SAAZ,CAAsB2hM,SAAtB,GAAkC,YAAY;IAC5C,IAAIzG,YAAY,GAAG,IAAA,CAAKqG,aAAxB,CAAA;IACA,IAAIxzJ,OAAO,GAAG,IAAA,CAAK++G,QAAnB,CAAA;IACA,IAAIvwI,GAAG,GAAG,IAAA,CAAKq7E,IAAf,CAAA;IACA,IAAI0iC,SAAS,GAAG4gE,YAAY,CAAC/iK,GAAb,CAAiB,WAAjB,CAAhB,CAJ4C;;IAM5C,IAAI,IAAA,CAAK2pK,MAAL,IAAe,IAAf,IAAuB,IAAKC,CAAAA,MAAL,IAAe,IAAtC;AACJ;AACA;AAFI,OAGDznE,SAAS,KAAK,MAHb,IAGuBA,SAAS,KAAK,OAHzC,EAGkD;MAChD,IAAIntG,MAAM,GAAG,IAAb,CAAA;MACAi+F,YAAY,CAAC,IAAK42E,CAAAA,qBAAN,CAAZ,CAAA;AACA,MAAA,IAAA,CAAKA,qBAAL,GAA6Bp2E,UAAU,CAAC,YAAY;AAClD;AACA;AACA;AACA,QAAA,CAACrvG,GAAG,CAAC0lL,UAAJ,EAAD,IAAqB90K,MAAM,CAAC+0K,eAAP,CAAuBhH,YAAvB,EAAqCntJ,OAArC,EAA8CxxB,GAA9C,EAAmD;UACtE9b,CAAC,EAAE0sB,MAAM,CAAC20K,MAD4D;UAEtEphM,CAAC,EAAEysB,MAAM,CAAC40K,MAF4D;UAGtE73B,cAAc,EAAE/8I,MAAM,CAACg1K,mBAAAA;AAH+C,SAAnD,CAArB,CAAA;AAKD,OATsC,CAAvC,CAAA;AAUD,KAAA;GAtBH,CAAA;AAwBA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGEhB,EAAAA,WAAW,CAACnhM,SAAZ,CAAsBkiM,eAAtB,GAAwC,UAAUhH,YAAV,EAAwBntJ,OAAxB,EAAiCxxB,GAAjC,EAAsCu0B,OAAtC,EAA+C;AACrF,IAAA,IAAIA,OAAO,CAAC2+C,IAAR,KAAiB,IAAA,CAAKxH,GAAtB,IAA6B5wE,GAAG,CAACkD,IAAjC,IAAyC,CAACgC,GAAG,CAACs2K,MAAJ,EAA9C,EAA4D;AAC1D,MAAA,OAAA;AACD,KAAA;;IAED,IAAI9zI,cAAc,GAAG6pH,kBAAkB,CAAC93H,OAAD,EAAUv0B,GAAV,CAAvC,CALqF;;AAOrF,IAAA,IAAA,CAAK6lL,OAAL,GAAe,EAAf,CAPqF;;AASrF,IAAA,IAAIl4B,cAAc,GAAGp5H,OAAO,CAACo5H,cAA7B,CAAA;IACA,IAAIm4B,OAAO,GAAGC,sBAAsB,CAACxxJ,OAAD,EAAU/C,OAAV,EAAmBxxB,GAAnB,CAApC,CAAA;;AAEA,IAAA,IAAI8lL,OAAJ,EAAa;MACX,IAAIz/L,IAAI,GAAGy/L,OAAO,CAACp9L,EAAR,CAAW0jD,eAAX,EAA6BrvC,CAAAA,KAA7B,EAAX,CAAA;AACA1W,MAAAA,IAAI,CAAC4nD,cAAL,CAAoB63I,OAAO,CAACp9L,EAAR,CAAW6G,SAA/B,CAAA,CAAA;;AAEA,MAAA,IAAA,CAAK81L,QAAL,CAAc;QACZ3rL,OAAO,EAAErT,IAAI,CAACnC,CAAL,GAASmC,IAAI,CAAC6G,KAAL,GAAa,CADnB;QAEZ0M,OAAO,EAAEvT,IAAI,CAAClC,CAAL,GAASkC,IAAI,CAAC8G,MAAL,GAAc,CAFpB;QAGZmC,MAAM,EAAEw2L,OAAO,CAACp9L,EAHJ;QAIZ6e,QAAQ,EAAEgtB,OAAO,CAAChtB,QAJN;AAKZ;AACA;AACAy+K,QAAAA,eAAe,EAAE,QAAA;AAPL,OAAd,EAQGxjJ,cARH,CAAA,CAAA;AASD,KAbD,MAaO,IAAIjO,OAAO,CAACijB,OAAR,IAAmBjjB,OAAO,CAACrwC,CAAR,IAAa,IAAhC,IAAwCqwC,OAAO,CAACpwC,CAAR,IAAa,IAAzD,EAA+D;MACpE,IAAIuE,EAAE,GAAGi8L,SAAT,CAAA;AACAj8L,MAAAA,EAAE,CAACxE,CAAH,GAAOqwC,OAAO,CAACrwC,CAAf,CAAA;AACAwE,MAAAA,EAAE,CAACvE,CAAH,GAAOowC,OAAO,CAACpwC,CAAf,CAAA;AACAuE,MAAAA,EAAE,CAACg3B,MAAH,EAAA,CAAA;AACA/B,MAAAA,SAAS,CAACj1B,EAAD,CAAT,CAAcu9L,aAAd,GAA8B;AAC5B97L,QAAAA,IAAI,EAAE,IADsB;QAE5BmqB,MAAM,EAAEigB,OAAO,CAACijB,OAAAA;AAFY,OAA9B,CALoE;;AAUpE,MAAA,IAAA,CAAK6tI,QAAL,CAAc;QACZ3rL,OAAO,EAAE66B,OAAO,CAACrwC,CADL;QAEZ0V,OAAO,EAAE26B,OAAO,CAACpwC,CAFL;AAGZmL,QAAAA,MAAM,EAAE5G,EAAAA;AAHI,OAAd,EAIG85C,cAJH,CAAA,CAAA;KAVK,MAeA,IAAImrH,cAAJ,EAAoB;AACzB,MAAA,IAAA,CAAK03B,QAAL,CAAc;QACZ3rL,OAAO,EAAE66B,OAAO,CAACrwC,CADL;QAEZ0V,OAAO,EAAE26B,OAAO,CAACpwC,CAFL;QAGZojB,QAAQ,EAAEgtB,OAAO,CAAChtB,QAHN;AAIZomJ,QAAAA,cAAc,EAAEA,cAJJ;QAKZzE,aAAa,EAAE30H,OAAO,CAAC20H,aAAAA;AALX,OAAd,EAMG1mH,cANH,CAAA,CAAA;AAOD,KARM,MAQA,IAAIjO,OAAO,CAACf,WAAR,IAAuB,IAA3B,EAAiC;MACtC,IAAI,IAAA,CAAK0yJ,oBAAL,CAA0BvH,YAA1B,EAAwCntJ,OAAxC,EAAiDxxB,GAAjD,EAAsDu0B,OAAtD,CAAJ,EAAoE;AAClE,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAI4xJ,SAAS,GAAGj5B,mBAAmB,CAAC34H,OAAD,EAAU/C,OAAV,CAAnC,CAAA;AACA,MAAA,IAAI3sC,EAAE,GAAGshM,SAAS,CAAC9nK,KAAV,CAAgB,CAAhB,CAAT,CAAA;AACA,MAAA,IAAIv5B,EAAE,GAAGqhM,SAAS,CAAC9nK,KAAV,CAAgB,CAAhB,CAAT,CAAA;;AAEA,MAAA,IAAIx5B,EAAE,IAAI,IAAN,IAAcC,EAAE,IAAI,IAAxB,EAA8B;AAC5B,QAAA,IAAA,CAAKugM,QAAL,CAAc;AACZ3rL,UAAAA,OAAO,EAAE7U,EADG;AAEZ+U,UAAAA,OAAO,EAAE9U,EAFG;UAGZwK,MAAM,EAAE62L,SAAS,CAACz9L,EAHN;UAIZ6e,QAAQ,EAAEgtB,OAAO,CAAChtB,QAJN;AAKZ;AACA;AACAy+K,UAAAA,eAAe,EAAE,QAAA;AAPL,SAAd,EAQGxjJ,cARH,CAAA,CAAA;AASD,OAAA;AACF,KApBM,MAoBA,IAAIjO,OAAO,CAACrwC,CAAR,IAAa,IAAb,IAAqBqwC,OAAO,CAACpwC,CAAR,IAAa,IAAtC,EAA4C;AACjD;AACA;MACA6b,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,QAAAA,IAAI,EAAE,mBADW;QAEjBtS,CAAC,EAAEqwC,OAAO,CAACrwC,CAFM;QAGjBC,CAAC,EAAEowC,OAAO,CAACpwC,CAAAA;OAHb,CAAA,CAAA;;AAMA,MAAA,IAAA,CAAKkhM,QAAL,CAAc;QACZ3rL,OAAO,EAAE66B,OAAO,CAACrwC,CADL;QAEZ0V,OAAO,EAAE26B,OAAO,CAACpwC,CAFL;QAGZojB,QAAQ,EAAEgtB,OAAO,CAAChtB,QAHN;AAIZjY,QAAAA,MAAM,EAAE0Q,GAAG,CAACghC,KAAJ,GAAYolJ,SAAZ,CAAsB7xJ,OAAO,CAACrwC,CAA9B,EAAiCqwC,OAAO,CAACpwC,CAAzC,CAA4CmL,CAAAA,MAAAA;AAJxC,OAAd,EAKGkzC,cALH,CAAA,CAAA;AAMD,KAAA;GAnFH,CAAA;;AAsFAoiJ,EAAAA,WAAW,CAACnhM,SAAZ,CAAsB4iM,eAAtB,GAAwC,UAAU1H,YAAV,EAAwBntJ,OAAxB,EAAiCxxB,GAAjC,EAAsCu0B,OAAtC,EAA+C;IACrF,IAAI2wJ,cAAc,GAAG,IAAA,CAAKH,eAA1B,CAAA;;AAEA,IAAA,IAAI,CAAC,IAAKE,CAAAA,kBAAN,IAA4B,IAAA,CAAKD,aAArC,EAAoD;MAClDE,cAAc,CAAChC,SAAf,CAAyB,IAAA,CAAK8B,aAAL,CAAmBppK,GAAnB,CAAuB,WAAvB,CAAzB,CAAA,CAAA;AACD,KAAA;;IAED,IAAK2pK,CAAAA,MAAL,GAAc,IAAKC,CAAAA,MAAL,GAAc,IAAKI,CAAAA,mBAAL,GAA2B,IAAvD,CAAA;;AAEA,IAAA,IAAIrxJ,OAAO,CAAC2+C,IAAR,KAAiB,IAAA,CAAKxH,GAA1B,EAA+B;AAC7B,MAAA,IAAA,CAAK45G,KAAL,CAAWj5B,kBAAkB,CAAC93H,OAAD,EAAUv0B,GAAV,CAA7B,CAAA,CAAA;AACD,KAAA;AACF,GAZD,CA1MgB;AAuNhB;AACA;;;AAGA4kL,EAAAA,WAAW,CAACnhM,SAAZ,CAAsByiM,oBAAtB,GAA6C,UAAUvH,YAAV,EAAwBntJ,OAAxB,EAAiCxxB,GAAjC,EAAsCu0B,OAAtC,EAA+C;AAC1F,IAAA,IAAIf,WAAW,GAAGe,OAAO,CAACf,WAA1B,CAAA;AACA,IAAA,IAAI5b,SAAS,GAAG2c,OAAO,CAAC3c,SAAxB,CAF0F;;IAI1F,IAAI+0C,gBAAgB,GAAGn7B,OAAO,CAACw7B,YAAR,CAAqB,aAArB,EAAoCL,gBAA3D,CAAA;;IAEA,IAAIn5B,WAAW,IAAI,IAAf,IAAuB5b,SAAS,IAAI,IAApC,IAA4C+0C,gBAAgB,IAAI,IAApE,EAA0E;AACxE,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIxyC,WAAW,GAAGqX,OAAO,CAACi5H,gBAAR,CAAyBj3H,WAAzB,CAAlB,CAAA;;IAEA,IAAI,CAACrZ,WAAL,EAAkB;AAChB,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAI8wK,oBAAoB,GAAGC,iBAAiB,CAAC,CAAC5uK,IAAI,CAAC6D,YAAL,CAAkB5D,SAAlB,CAAD,EAA+BuC,WAA/B,EAA4C,CAACA,WAAW,CAAC3F,gBAAZ,IAAgC,EAAjC,EAAqCkrB,KAAjF,CAAD,EAA0F,IAAKslJ,CAAAA,aAA/F,CAA5C,CAAA;;AAEA,IAAA,IAAIsB,oBAAoB,CAAC1qK,GAArB,CAAyB,SAAzB,CAAA,KAAwC,MAA5C,EAAoD;AAClD,MAAA,OAAA;AACD,KAAA;;IAED5b,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,MAAAA,IAAI,EAAE,mBADW;AAEjBg9B,MAAAA,WAAW,EAAEA,WAFI;AAGjB5b,MAAAA,SAAS,EAAEA,SAHM;MAIjBrQ,QAAQ,EAAEgtB,OAAO,CAAChtB,QAAAA;KAJpB,CAAA,CAAA;AAMA,IAAA,OAAO,IAAP,CAAA;GA7BF,CAAA;;EAgCAq9K,WAAW,CAACnhM,SAAZ,CAAsB4hM,QAAtB,GAAiC,UAAUt+L,CAAV,EAAay7C,cAAb,EAA6B;AAC5D,IAAA,IAAI95C,EAAE,GAAG3B,CAAC,CAACuI,MAAX,CAAA;IACA,IAAIqvL,YAAY,GAAG,IAAA,CAAKqG,aAAxB,CAAA;;IAEA,IAAI,CAACrG,YAAL,EAAmB;AACjB,MAAA,OAAA;AACD,KAN2D;;;AAS5D,IAAA,IAAA,CAAK4G,MAAL,GAAcx+L,CAAC,CAAC2S,OAAhB,CAAA;AACA,IAAA,IAAA,CAAK8rL,MAAL,GAAcz+L,CAAC,CAAC6S,OAAhB,CAAA;AACA,IAAA,IAAI+zJ,cAAc,GAAG5mK,CAAC,CAAC4mK,cAAvB,CAAA;;AAEA,IAAA,IAAIA,cAAc,IAAIA,cAAc,CAAClnK,MAArC,EAA6C;AAC3C,MAAA,IAAA,CAAK+/L,gBAAL,CAAsB74B,cAAtB,EAAsC5mK,CAAtC,CAAA,CAAA;KADF,MAEO,IAAI2B,EAAJ,EAAQ;MACb,IAAKk9L,CAAAA,mBAAL,GAA2B,IAA3B,CAAA;AACA,MAAA,IAAIa,kBAAJ,CAAA;AACA,MAAA,IAAIC,gBAAJ,CAAA;AACAlrG,MAAAA,mBAAmB,CAAC9yF,EAAD,EAAK,UAAU4G,MAAV,EAAkB;AACxC;QACA,IAAIquB,SAAS,CAACruB,MAAD,CAAT,CAAkBsoB,SAAlB,IAA+B,IAAnC,EAAyC;AACvC6uK,UAAAA,kBAAkB,GAAGn3L,MAArB,CAAA;AACA,UAAA,OAAO,IAAP,CAAA;AACD,SALuC;;;QAQxC,IAAIquB,SAAS,CAACruB,MAAD,CAAT,CAAkB22L,aAAlB,IAAmC,IAAvC,EAA6C;AAC3CS,UAAAA,gBAAgB,GAAGp3L,MAAnB,CAAA;AACA,UAAA,OAAO,IAAP,CAAA;AACD,SAAA;OAXgB,EAYhB,IAZgB,CAAnB,CAAA;;AAcA,MAAA,IAAIm3L,kBAAJ,EAAwB;AACtB,QAAA,IAAA,CAAKE,sBAAL,CAA4B5/L,CAA5B,EAA+B0/L,kBAA/B,EAAmDjkJ,cAAnD,CAAA,CAAA;OADF,MAEO,IAAIkkJ,gBAAJ,EAAsB;AAC3B,QAAA,IAAA,CAAKE,yBAAL,CAA+B7/L,CAA/B,EAAkC2/L,gBAAlC,EAAoDlkJ,cAApD,CAAA,CAAA;AACD,OAFM,MAEA;QACL,IAAK8iJ,CAAAA,KAAL,CAAW9iJ,cAAX,CAAA,CAAA;AACD,OAAA;AACF,KAzBM,MAyBA;MACL,IAAKojJ,CAAAA,mBAAL,GAA2B,IAA3B,CAAA;;MAEA,IAAKN,CAAAA,KAAL,CAAW9iJ,cAAX,CAAA,CAAA;AACD,KAAA;GA5CH,CAAA;;EA+CAoiJ,WAAW,CAACnhM,SAAZ,CAAsBojM,WAAtB,GAAoC,UAAUlI,YAAV,EAAwB7rK,EAAxB,EAA4B;AAC9D;AACA;AACA;AACA;AACA,IAAA,IAAInhB,KAAK,GAAGgtL,YAAY,CAAC/iK,GAAb,CAAiB,WAAjB,CAAZ,CAAA;AACA9I,IAAAA,EAAE,GAAG0nD,MAAI,CAAC1nD,EAAD,EAAK,IAAL,CAAT,CAAA;IACA+7F,YAAY,CAAC,IAAKi4E,CAAAA,WAAN,CAAZ,CAAA;AACAn1L,IAAAA,KAAK,GAAG,CAAR,GAAY,IAAA,CAAKm1L,WAAL,GAAmBz3E,UAAU,CAACv8F,EAAD,EAAKnhB,KAAL,CAAzC,GAAuDmhB,EAAE,EAAzD,CAAA;GARF,CAAA;;EAWA8xK,WAAW,CAACnhM,SAAZ,CAAsB+iM,gBAAtB,GAAyC,UAAU74B,cAAV,EAA0B5mK,CAA1B,EAA6B;IACpE,IAAIyqC,OAAO,GAAG,IAAA,CAAK++G,QAAnB,CAAA;IACA,IAAIxjF,kBAAkB,GAAG,IAAA,CAAKi4H,aAA9B,CAAA;IACA,IAAI3mK,KAAK,GAAG,CAACt3B,CAAC,CAAC2S,OAAH,EAAY3S,CAAC,CAAC6S,OAAd,CAAZ,CAAA;IACA,IAAImtL,kBAAkB,GAAGR,iBAAiB,CAAC,CAACx/L,CAAC,CAACmiK,aAAH,CAAD,EAAoBn8F,kBAApB,CAA1C,CAAA;IACA,IAAIoxH,UAAU,GAAG,IAAA,CAAK0G,WAAtB,CAAA;IACA,IAAImC,YAAY,GAAG,EAAnB,CAAA;AACA,IAAA,IAAIC,aAAa,GAAGpxH,mBAAmB,CAAC,SAAD,EAAY;AACjDG,MAAAA,MAAM,EAAE,EADyC;AAEjDye,MAAAA,QAAQ,EAAE,IAAA;KAF2B,CAAvC,CAPoE;;IAYpE,IAAIyyG,mBAAmB,GAAG,EAA1B,CAAA;AACA,IAAA,IAAI5C,kBAAkB,GAAG,IAAI6C,yBAAJ,EAAzB,CAAA;AACAh3L,IAAAA,MAAI,CAACw9J,cAAD,EAAiB,UAAUy5B,YAAV,EAAwB;AAC3Cj3L,MAAAA,MAAI,CAACi3L,YAAY,CAACz3B,UAAd,EAA0B,UAAU03B,QAAV,EAAoB;AAChD,QAAA,IAAI5jJ,SAAS,GAAGjS,OAAO,CAACw7B,YAAR,CAAqBq6H,QAAQ,CAAC7oI,OAAT,GAAmB,MAAxC,EAAgD6oI,QAAQ,CAAClkI,SAAzD,CAAhB,CAAA;AACA,QAAA,IAAImkI,SAAS,GAAGD,QAAQ,CAAC1kK,KAAzB,CAAA;;AAEA,QAAA,IAAI,CAAC8gB,SAAD,IAAc6jJ,SAAS,IAAI,IAA/B,EAAqC;AACnC,UAAA,OAAA;AACD,SAAA;;QAED,IAAIC,cAAc,GAAGC,aAAA,CAAoCF,SAApC,EAA+C7jJ,SAAS,CAACrW,IAAzD,EAA+DoE,OAA/D,EAAwE61J,QAAQ,CAACl9B,iBAAjF,EAAoGk9B,QAAQ,CAACz3B,aAA7G,CAArB,CAAA;AACA,QAAA,IAAI63B,iBAAiB,GAAG5xH,mBAAmB,CAAC,SAAD,EAAY;AACrDC,UAAAA,MAAM,EAAEyxH,cAD6C;AAErD9yG,UAAAA,QAAQ,EAAE,CAACrQ,MAAI,CAACmjH,cAAD,CAFsC;AAGrDxxH,UAAAA,UAAU,EAAE,IAHyC;AAIrDC,UAAAA,MAAM,EAAE,EAAA;AAJ6C,SAAZ,CAA3C,CAAA;AAMAixH,QAAAA,aAAa,CAACjxH,MAAd,CAAqBxuE,IAArB,CAA0BigM,iBAA1B,CAAA,CAAA;AACAt3L,QAAAA,MAAI,CAACk3L,QAAQ,CAACl9B,iBAAV,EAA6B,UAAUK,OAAV,EAAmB;UAClD,IAAIx2F,MAAM,GAAGxiC,OAAO,CAACi5H,gBAAR,CAAyBD,OAAO,CAACh3H,WAAjC,CAAb,CAAA;AACA,UAAA,IAAI5b,SAAS,GAAG4yI,OAAO,CAAC7H,eAAxB,CAAA;UACA,IAAI+kC,QAAQ,GAAG1zH,MAAM,CAAC/hB,aAAP,CAAqBr6B,SAArB,CAAf,CAHkD;;AAKlD,UAAA,IAAI8vK,QAAQ,CAAC9vK,SAAT,GAAqB,CAAzB,EAA4B;AAC1B,YAAA,OAAA;AACD,WAAA;;AAED8vK,UAAAA,QAAQ,CAAClpI,OAAT,GAAmB6oI,QAAQ,CAAC7oI,OAA5B,CAAA;AACAkpI,UAAAA,QAAQ,CAACvkI,SAAT,GAAqBkkI,QAAQ,CAAClkI,SAA9B,CAAA;AACAukI,UAAAA,QAAQ,CAACluI,QAAT,GAAoB6tI,QAAQ,CAAC7tI,QAA7B,CAAA;AACAkuI,UAAAA,QAAQ,CAACjlJ,MAAT,GAAkB4kJ,QAAQ,CAAC5kJ,MAA3B,CAAA;UACAilJ,QAAQ,CAACJ,SAAT,GAAqBlnE,eAAA,CAA2B38E,SAAS,CAACrW,IAArC,EAA2C;AAC9DzK,YAAAA,KAAK,EAAE2kK,SAAAA;AADuD,WAA3C,CAArB,CAAA;AAGAI,UAAAA,QAAQ,CAACH,cAAT,GAA0BA,cAA1B,CAhBkD;AAiBlD;;AAEAG,UAAAA,QAAQ,CAACC,MAAT,GAAkBrD,kBAAkB,CAACsD,iBAAnB,CAAqC,MAArC,EAA6Cj1J,oBAAoB,CAAC+0J,QAAQ,CAAC3+L,KAAV,CAAjE,EAAmFo1L,UAAnF,CAAlB,CAAA;AACA,UAAA,IAAI0J,mBAAmB,GAAGC,4BAA4B,CAAC9zH,MAAM,CAACsB,aAAP,CAAqB19C,SAArB,EAAgC,IAAhC,EAAsC,IAAtC,CAAD,CAAtD,CAAA;AACA,UAAA,IAAImwK,IAAI,GAAGF,mBAAmB,CAACE,IAA/B,CAAA;;AAEA,UAAA,IAAIA,IAAJ,EAAU;AACR,YAAA,IAAIC,cAAc,GAAGzB,iBAAiB,CAAC,CAACvyH,MAAD,CAAD,EAAWjH,kBAAX,CAAjB,CAAgDnxC,GAAhD,CAAoD,gBAApD,CAArB,CAAA;YACA6rK,iBAAiB,CAACzxH,MAAlB,CAAyBxuE,IAAzB,CAA8BwgM,cAAc,GAAGh5L,MAAM,CAAC;AACpDg5L,cAAAA,cAAc,EAAEA,cAAAA;AADoC,aAAD,EAElDD,IAFkD,CAAT,GAEjCA,IAFX,CAAA,CAAA;AAGD,WAAA;;UAED,IAAIF,mBAAmB,CAACl9L,IAAxB,EAA8B;AAC5Bu8L,YAAAA,mBAAmB,CAAC1/L,IAApB,CAAyBqgM,mBAAmB,CAACl9L,IAA7C,CAAA,CAAA;AACD,WAAA;;UAEDq8L,YAAY,CAACx/L,IAAb,CAAkBkgM,QAAlB,CAAA,CAAA;AACD,SAnCG,CAAJ,CAAA;AAoCD,OApDG,CAAJ,CAAA;KADE,CAAJ,CAdoE;AAqEpE;;IAEAT,aAAa,CAACjxH,MAAd,CAAqBpoC,OAArB,EAAA,CAAA;AACAs5J,IAAAA,mBAAmB,CAACt5J,OAApB,EAAA,CAAA;AACA,IAAA,IAAIq6J,YAAY,GAAGlhM,CAAC,CAACwgB,QAArB,CAAA;AACA,IAAA,IAAI2gL,SAAS,GAAGnB,kBAAkB,CAACnrK,GAAnB,CAAuB,OAAvB,CAAhB,CAAA;IACA,IAAIusK,eAAe,GAAGC,kBAAkB,CAACnB,aAAD,EAAgB3C,kBAAhB,EAAoCnG,UAApC,EAAgD+J,SAAhD,EAA2D12J,OAAO,CAAC5V,GAAR,CAAY,QAAZ,CAA3D,EAAkFmrK,kBAAkB,CAACnrK,GAAnB,CAAuB,WAAvB,CAAlF,CAAxC,CAAA;AACAusK,IAAAA,eAAe,IAAIjB,mBAAmB,CAAC/4J,OAApB,CAA4Bg6J,eAA5B,CAAnB,CAAA;IACA,IAAIE,UAAU,GAAGlK,UAAU,KAAK,UAAf,GAA4B,MAA5B,GAAqC,OAAtD,CAAA;AACA,IAAA,IAAImK,aAAa,GAAGpB,mBAAmB,CAACz/L,IAApB,CAAyB4gM,UAAzB,CAApB,CAAA;;AAEA,IAAA,IAAA,CAAKxB,WAAL,CAAiBE,kBAAjB,EAAqC,YAAY;AAC/C,MAAA,IAAI,KAAKwB,8BAAL,CAAoC56B,cAApC,EAAoDq5B,YAApD,CAAJ,EAAuE;AACrE,QAAA,IAAA,CAAKwB,eAAL,CAAqBzB,kBAArB,EAAyCkB,YAAzC,EAAuD5pK,KAAK,CAAC,CAAD,CAA5D,EAAiEA,KAAK,CAAC,CAAD,CAAtE,EAA2E,IAAK0mK,CAAAA,eAAhF,EAAiGiC,YAAjG,CAAA,CAAA;AACD,OAFD,MAEO;AACL,QAAA,IAAA,CAAKyB,mBAAL,CAAyB1B,kBAAzB,EAA6CuB,aAA7C,EAA4DtB,YAA5D,EAA0E/jM,IAAI,CAACysB,MAAL,EAAA,GAAgB,EAA1F,EAA8F2O,KAAK,CAAC,CAAD,CAAnG,EAAwGA,KAAK,CAAC,CAAD,CAA7G,EAAkH4pK,YAAlH,EAAgI,IAAhI,EAAsI3D,kBAAtI,CAAA,CAAA;AACD,OAAA;AACF,KAND,EAhFoE;AAuFpE;;GAvFF,CAAA;;EA2FAM,WAAW,CAACnhM,SAAZ,CAAsBkjM,sBAAtB,GAA+C,UAAU5/L,CAAV,EAAa2hM,UAAb,EAAyBlmJ,cAAzB,EAAyC;IACtF,IAAIhR,OAAO,GAAG,IAAA,CAAK++G,QAAnB,CAAA;AACA,IAAA,IAAI16F,MAAM,GAAGl4B,SAAS,CAAC+qK,UAAD,CAAtB,CAFsF;AAGtF;AACA;;AAEA,IAAA,IAAIl1J,WAAW,GAAGqiB,MAAM,CAACriB,WAAzB,CAAA;IACA,IAAIrZ,WAAW,GAAGqX,OAAO,CAACi5H,gBAAR,CAAyBj3H,WAAzB,CAAlB,CAPsF;;AAStF,IAAA,IAAIm1J,SAAS,GAAG9yI,MAAM,CAAC8yI,SAAP,IAAoBxuK,WAApC,CAAA;AACA,IAAA,IAAIvC,SAAS,GAAGi+B,MAAM,CAACj+B,SAAvB,CAAA;AACA,IAAA,IAAI49C,QAAQ,GAAG3f,MAAM,CAAC2f,QAAtB,CAAA;AACA,IAAA,IAAI79C,IAAI,GAAGgxK,SAAS,CAACnzK,OAAV,CAAkBggD,QAAlB,CAAX,CAAA;IACA,IAAI2oH,UAAU,GAAG,IAAA,CAAK0G,WAAtB,CAAA;AACA,IAAA,IAAImB,eAAe,GAAGj/L,CAAC,CAACi/L,eAAxB,CAAA;AACA,IAAA,IAAIrH,YAAY,GAAG4H,iBAAiB,CAAC,CAAC5uK,IAAI,CAAC6D,YAAL,CAAkB5D,SAAlB,CAAD,EAA+B+wK,SAA/B,EAA0CxuK,WAAW,IAAI,CAACA,WAAW,CAAC3F,gBAAZ,IAAgC,EAAjC,EAAqCkrB,KAA9F,CAAD,EAAuG,IAAA,CAAKslJ,aAA5G,EAA2HgB,eAAe,GAAG;AAC/Kz+K,MAAAA,QAAQ,EAAEy+K,eAAAA;KADkK,GAE1K,IAFgC,CAApC,CAAA;AAGA,IAAA,IAAI4C,cAAc,GAAGjK,YAAY,CAAC/iK,GAAb,CAAiB,SAAjB,CAArB,CAAA;;AAEA,IAAA,IAAIgtK,cAAc,IAAI,IAAlB,IAA0BA,cAAc,KAAK,MAAjD,EAAyD;AACvD,MAAA,OAAA;AACD,KAAA;;IAED,IAAIjxJ,MAAM,GAAGgxJ,SAAS,CAAC12I,aAAV,CAAwBr6B,SAAxB,EAAmC49C,QAAnC,CAAb,CAAA;AACA,IAAA,IAAI8uH,kBAAkB,GAAG,IAAI6C,yBAAJ,EAAzB,CAzBsF;AA0BtF;;AAEAxvJ,IAAAA,MAAM,CAACgwJ,MAAP,GAAgBrD,kBAAkB,CAACsD,iBAAnB,CAAqC,MAArC,EAA6Cj1J,oBAAoB,CAACgF,MAAM,CAAC5uC,KAAR,CAAjE,EAAiFo1L,UAAjF,CAAhB,CAAA;AACA,IAAA,IAAI0J,mBAAmB,GAAGC,4BAA4B,CAACa,SAAS,CAACrzH,aAAV,CAAwB19C,SAAxB,EAAmC,KAAnC,EAA0C49C,QAA1C,CAAD,CAAtD,CAAA;AACA,IAAA,IAAI0yH,SAAS,GAAGvJ,YAAY,CAAC/iK,GAAb,CAAiB,OAAjB,CAAhB,CAAA;AACA,IAAA,IAAIosK,cAAc,GAAGrJ,YAAY,CAAC/iK,GAAb,CAAiB,gBAAjB,CAArB,CAAA;AACA,IAAA,IAAImsK,IAAI,GAAGF,mBAAmB,CAACE,IAA/B,CAAA;IACA,IAAIc,UAAU,GAAGd,IAAI,GAAGK,kBAAkB,CAACJ,cAAc,GAAGh5L,MAAM,CAAC;AACjEg5L,MAAAA,cAAc,EAAEA,cAAAA;AADiD,KAAD,EAE/DD,IAF+D,CAAT,GAE9CA,IAF+B,EAEzBzD,kBAFyB,EAELnG,UAFK,EAEO+J,SAFP,EAEkB12J,OAAO,CAAC5V,GAAR,CAAY,QAAZ,CAFlB,EAEyC+iK,YAAY,CAAC/iK,GAAb,CAAiB,WAAjB,CAFzC,CAArB,GAE+FisK,mBAAmB,CAACl9L,IAFxI,CAAA;IAGA,IAAIm+L,WAAW,GAAG,OAAUH,GAAAA,SAAS,CAACx+L,IAApB,GAA2B,GAA3B,GAAiCytB,SAAnD,CAAA;;AAEA,IAAA,IAAA,CAAKivK,WAAL,CAAiBlI,YAAjB,EAA+B,YAAY;MACzC,IAAK8J,CAAAA,mBAAL,CAAyB9J,YAAzB,EAAuCkK,UAAvC,EAAmDlxJ,MAAnD,EAA2DmxJ,WAA3D,EAAwE/hM,CAAC,CAAC2S,OAA1E,EAAmF3S,CAAC,CAAC6S,OAArF,EAA8F7S,CAAC,CAACwgB,QAAhG,EAA0GxgB,CAAC,CAACuI,MAA5G,EAAoHg1L,kBAApH,CAAA,CAAA;AACD,KAFD,EAtCsF;AAyCtF;;;AAGA9hJ,IAAAA,cAAc,CAAC;AACbhsC,MAAAA,IAAI,EAAE,SADO;AAEbmsJ,MAAAA,eAAe,EAAE/qI,SAFJ;AAGbA,MAAAA,SAAS,EAAED,IAAI,CAACkN,WAAL,CAAiBjN,SAAjB,CAHE;AAIb4b,MAAAA,WAAW,EAAEA,WAJA;AAKb0/C,MAAAA,IAAI,EAAE,IAAKxH,CAAAA,GAAAA;AALE,KAAD,CAAd,CAAA;GA5CF,CAAA;;EAqDAk5G,WAAW,CAACnhM,SAAZ,CAAsBmjM,yBAAtB,GAAkD,UAAU7/L,CAAV,EAAa2B,EAAb,EAAiB85C,cAAjB,EAAiC;AACjF,IAAA,IAAIqT,MAAM,GAAGl4B,SAAS,CAACj1B,EAAD,CAAtB,CAAA;AACA,IAAA,IAAIu9L,aAAa,GAAGpwI,MAAM,CAACowI,aAA3B,CAAA;AACA,IAAA,IAAIz/H,UAAU,GAAGy/H,aAAa,CAAC3xK,MAAd,IAAwB,EAAzC,CAAA;;AAEA,IAAA,IAAIvjB,QAAQ,CAACy1D,UAAD,CAAZ,EAA0B;MACxB,IAAI2tC,OAAO,GAAG3tC,UAAd,CAAA;AACAA,MAAAA,UAAU,GAAG;AACX2tC,QAAAA,OAAO,EAAEA,OADE;AAEX;AACAzZ,QAAAA,SAAS,EAAEyZ,OAAAA;OAHb,CAAA;AAKD,KAAA;;AAED,IAAA,IAAI40F,mBAAmB,GAAG,CAACviI,UAAD,CAA1B,CAAA;;AAEA,IAAA,IAAIwiI,IAAI,GAAG,IAAKz4C,CAAAA,QAAL,CAAcvjF,YAAd,CAA2BnX,MAAM,CAACozI,iBAAlC,EAAqDpzI,MAAM,CAACzhB,cAA5D,CAAX,CAAA;;AAEA,IAAA,IAAI40J,IAAJ,EAAU;MACRD,mBAAmB,CAACvhM,IAApB,CAAyBwhM,IAAzB,CAAA,CAAA;AACD,KApBgF;AAqBjF;AACA;;;IAGAD,mBAAmB,CAACvhM,IAApB,CAAyB;MACvBkzF,SAAS,EAAEl0B,UAAU,CAAC2tC,OAAAA;KADxB,CAAA,CAAA;AAGA,IAAA,IAAI6xF,eAAe,GAAGj/L,CAAC,CAACi/L,eAAxB,CAAA;IACA,IAAIkD,eAAe,GAAG3C,iBAAiB,CAACwC,mBAAD,EAAsB,IAAK/D,CAAAA,aAA3B,EAA0CgB,eAAe,GAAG;AACjGz+K,MAAAA,QAAQ,EAAEy+K,eAAAA;KADoF,GAE5F,IAFmC,CAAvC,CAAA;AAGA,IAAA,IAAImD,WAAW,GAAGD,eAAe,CAACttK,GAAhB,CAAoB,SAApB,CAAlB,CAAA;IACA,IAAIktK,WAAW,GAAG7lM,IAAI,CAACysB,MAAL,EAAgB,GAAA,EAAlC,CAjCiF;;AAmCjF,IAAA,IAAI40K,kBAAkB,GAAG,IAAI6C,yBAAJ,EAAzB,CAnCiF;AAoCjF;AACA;;AAEA,IAAA,IAAA,CAAKN,WAAL,CAAiBqC,eAAjB,EAAkC,YAAY;AAC5C;AACA;MACA,IAAIE,eAAe,GAAGrsL,OAAK,CAACmsL,eAAe,CAACttK,GAAhB,CAAoB,iBAApB,CAA0C,IAAA,EAA3C,CAA3B,CAAA;;MAEA,IAAK6sK,CAAAA,mBAAL,CAAyBS,eAAzB,EAA0CC,WAA1C,EAAuDC,eAAvD,EAAwEN,WAAxE,EAAqF/hM,CAAC,CAAC2S,OAAvF,EAAgG3S,CAAC,CAAC6S,OAAlG,EAA2G7S,CAAC,CAACwgB,QAA7G,EAAuH7e,EAAvH,EAA2H47L,kBAA3H,CAAA,CAAA;AACD,KAND,EAvCiF;;;AAgDjF9hJ,IAAAA,cAAc,CAAC;AACbhsC,MAAAA,IAAI,EAAE,SADO;AAEb08E,MAAAA,IAAI,EAAE,IAAKxH,CAAAA,GAAAA;AAFE,KAAD,CAAd,CAAA;GAhDF,CAAA;;AAsDAk5G,EAAAA,WAAW,CAACnhM,SAAZ,CAAsBglM,mBAAtB,GAA4C;AAC5C;AACA9J,EAAAA,YAF4C,EAE9BwK,WAF8B,EAEjBxxJ,MAFiB,EAETmxJ,WAFS,EAEI5kM,CAFJ,EAEOC,CAFP,EAEU8jM,YAFV,EAEwBv/L,EAFxB,EAE4B47L,kBAF5B,EAEgD;AAC1F;IACA,IAAKuB,CAAAA,OAAL,GAAe,EAAf,CAAA;;AAEA,IAAA,IAAI,CAAClH,YAAY,CAAC/iK,GAAb,CAAiB,aAAjB,CAAD,IAAoC,CAAC+iK,YAAY,CAAC/iK,GAAb,CAAiB,MAAjB,CAAzC,EAAmE;AACjE,MAAA,OAAA;AACD,KAAA;;IAED,IAAIspK,cAAc,GAAG,IAAA,CAAKH,eAA1B,CAAA;IACAG,cAAc,CAACpB,YAAf,CAA4BnF,YAAY,CAAC/iK,GAAb,CAAiB,WAAjB,CAA5B,CAAA,CAAA;AACA,IAAA,IAAI8+D,SAAS,GAAGikG,YAAY,CAAC/iK,GAAb,CAAiB,WAAjB,CAAhB,CAAA;IACAqsK,YAAY,GAAGA,YAAY,IAAItJ,YAAY,CAAC/iK,GAAb,CAAiB,UAAjB,CAA/B,CAAA;IACA,IAAI03J,IAAI,GAAG6V,WAAX,CAAA;;IAEA,IAAIE,SAAS,GAAG,IAAA,CAAKC,gBAAL,CAAsB,CAACplM,CAAD,EAAIC,CAAJ,CAAtB,EAA8BwzC,MAA9B,EAAsCgnJ,YAAY,CAAC/iK,GAAb,CAAiB,SAAjB,CAAtC,EAAmE+iK,YAAY,CAAC/iK,GAAb,CAAiB,aAAjB,CAAnE,CAAhB,CAAA;;AAEA,IAAA,IAAIynK,cAAc,GAAGgG,SAAS,CAACtgM,KAA/B,CAAA;;AAEA,IAAA,IAAI2xF,SAAJ,EAAe;AACb,MAAA,IAAI3pF,QAAQ,CAAC2pF,SAAD,CAAZ,EAAyB;QACvB,IAAI6uG,MAAM,GAAG5K,YAAY,CAACntJ,OAAb,CAAqB5V,GAArB,CAAyB,QAAzB,CAAb,CAAA;AACA,QAAA,IAAI4tK,OAAO,GAAG1pL,SAAO,CAAC63B,MAAD,CAAP,GAAkBA,MAAM,CAAC,CAAD,CAAxB,GAA8BA,MAA5C,CAAA;AACA,QAAA,IAAI8xJ,UAAU,GAAGD,OAAO,IAAIA,OAAO,CAAChwI,QAAnB,IAA+BgwI,OAAO,CAAChwI,QAAR,CAAiB7oD,OAAjB,CAAyB,MAAzB,KAAoC,CAApF,CAAA;AACA2iL,QAAAA,IAAI,GAAG54F,SAAP,CAAA;;AAEA,QAAA,IAAI+uG,UAAJ,EAAgB;UACdnW,IAAI,GAAGoW,MAAU,CAACF,OAAO,CAAClC,SAAT,EAAoBhU,IAApB,EAA0BiW,MAA1B,CAAjB,CAAA;AACD,SAAA;;QAEDjW,IAAI,GAAGqW,SAAS,CAACrW,IAAD,EAAO37I,MAAP,EAAe,IAAf,CAAhB,CAAA;AACD,OAXD,MAWO,IAAInjC,UAAU,CAACkmF,SAAD,CAAd,EAA2B;QAChC,IAAIoO,QAAQ,GAAGtuB,MAAI,CAAC,UAAUovH,QAAV,EAAoBtW,IAApB,EAA0B;AAC5C,UAAA,IAAIsW,QAAQ,KAAK,IAAK/D,CAAAA,OAAtB,EAA+B;YAC7BX,cAAc,CAAC1B,UAAf,CAA0BlQ,IAA1B,EAAgCgR,kBAAhC,EAAoD3F,YAApD,EAAkE0E,cAAlE,EAAkF4E,YAAlF,CAAA,CAAA;;AAEA,YAAA,IAAA,CAAKO,eAAL,CAAqB7J,YAArB,EAAmCsJ,YAAnC,EAAiD/jM,CAAjD,EAAoDC,CAApD,EAAuD+gM,cAAvD,EAAuEvtJ,MAAvE,EAA+EjvC,EAA/E,CAAA,CAAA;AACD,WAAA;SALgB,EAMhB,IANgB,CAAnB,CAAA;QAOA,IAAKm9L,CAAAA,OAAL,GAAeiD,WAAf,CAAA;QACAxV,IAAI,GAAG54F,SAAS,CAAC/iD,MAAD,EAASmxJ,WAAT,EAAsBhgG,QAAtB,CAAhB,CAAA;AACD,OAVM,MAUA;AACLwqF,QAAAA,IAAI,GAAG54F,SAAP,CAAA;AACD,OAAA;AACF,KAAA;;IAEDwqG,cAAc,CAAC1B,UAAf,CAA0BlQ,IAA1B,EAAgCgR,kBAAhC,EAAoD3F,YAApD,EAAkE0E,cAAlE,EAAkF4E,YAAlF,CAAA,CAAA;AACA/C,IAAAA,cAAc,CAAC1uK,IAAf,CAAoBmoK,YAApB,EAAkC0E,cAAlC,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKmF,eAAL,CAAqB7J,YAArB,EAAmCsJ,YAAnC,EAAiD/jM,CAAjD,EAAoDC,CAApD,EAAuD+gM,cAAvD,EAAuEvtJ,MAAvE,EAA+EjvC,EAA/E,CAAA,CAAA;GAlDF,CAAA;;AAqDAk8L,EAAAA,WAAW,CAACnhM,SAAZ,CAAsB6lM,gBAAtB,GAAyC,UAAUjrK,KAAV,EAAiBwrK,iBAAjB,EAAoCrtH,OAApC,EAA6C5hC,WAA7C,EAA0D;IACjG,IAAI4hC,OAAO,KAAK,MAAZ,IAAsB18D,SAAO,CAAC+pL,iBAAD,CAAjC,EAAsD;MACpD,OAAO;QACL9gM,KAAK,EAAE6xC,WAAW,KAAK,IAAKiqJ,CAAAA,WAAL,KAAqB,MAArB,GAA8B,MAA9B,GAAuC,MAA5C,CAAA;OADpB,CAAA;AAGD,KAAA;;AAED,IAAA,IAAI,CAAC/kL,SAAO,CAAC+pL,iBAAD,CAAZ,EAAiC;MAC/B,OAAO;QACL9gM,KAAK,EAAE6xC,WAAW,IAAIivJ,iBAAiB,CAAC9gM,KAAjC,IAA0C8gM,iBAAiB,CAACjvJ,WAAAA;OADrE,CAAA;AAGD,KAAA;GAXH,CAAA;;EAcAgqJ,WAAW,CAACnhM,SAAZ,CAAsB+kM,eAAtB,GAAwC,UAAU7J,YAAV,EAAwBsJ,YAAxB,EAAsC/jM,CAAtC;AACxCC,EAAAA,CADwC;AAExCgwG,EAAAA,OAFwC,EAE/Bx8D,MAF+B,EAEvBjvC,EAFuB,EAEnB;AACnB,IAAA,IAAIyhB,SAAS,GAAG,IAAA,CAAKkxE,IAAL,CAAUl1E,QAAV,EAAhB,CAAA;;AAEA,IAAA,IAAIiE,UAAU,GAAG,IAAA,CAAKixE,IAAL,CAAUj1E,SAAV,EAAjB,CAAA;;IAEA6hL,YAAY,GAAGA,YAAY,IAAItJ,YAAY,CAAC/iK,GAAb,CAAiB,UAAjB,CAA/B,CAAA;AACA,IAAA,IAAIkuK,WAAW,GAAG31F,OAAO,CAACluF,OAAR,EAAlB,CAAA;AACA,IAAA,IAAI6qB,KAAK,GAAG6tJ,YAAY,CAAC/iK,GAAb,CAAiB,OAAjB,CAAZ,CAAA;AACA,IAAA,IAAI0/I,MAAM,GAAGqjB,YAAY,CAAC/iK,GAAb,CAAiB,eAAjB,CAAb,CAAA;IACA,IAAIv1B,IAAI,GAAGqC,EAAE,IAAIA,EAAE,CAAC0jD,eAAH,EAAqBrvC,CAAAA,KAArB,EAAjB,CAAA;IACArU,EAAE,IAAIrC,IAAI,CAAC4nD,cAAL,CAAoBvlD,EAAE,CAAC6G,SAAvB,CAAN,CAAA;;AAEA,IAAA,IAAIiF,UAAU,CAACyzL,YAAD,CAAd,EAA8B;AAC5B;AACAA,MAAAA,YAAY,GAAGA,YAAY,CAAC,CAAC/jM,CAAD,EAAIC,CAAJ,CAAD,EAASwzC,MAAT,EAAiBw8D,OAAO,CAACzrG,EAAzB,EAA6BrC,IAA7B,EAAmC;AAC5D6yE,QAAAA,QAAQ,EAAE,CAAC/uD,SAAD,EAAYC,UAAZ,CADkD;QAE5D0/K,WAAW,EAAEA,WAAW,CAACt9K,KAAZ,EAAA;AAF+C,OAAnC,CAA3B,CAAA;AAID,KAAA;;AAED,IAAA,IAAI1M,SAAO,CAACmoL,YAAD,CAAX,EAA2B;MACzB/jM,CAAC,GAAG8jD,YAAY,CAACigJ,YAAY,CAAC,CAAD,CAAb,EAAkB99K,SAAlB,CAAhB,CAAA;MACAhmB,CAAC,GAAG6jD,YAAY,CAACigJ,YAAY,CAAC,CAAD,CAAb,EAAkB79K,UAAlB,CAAhB,CAAA;AACD,KAHD,MAGO,IAAInK,UAAQ,CAACgoL,YAAD,CAAZ,EAA4B;MACjC,IAAI8B,iBAAiB,GAAG9B,YAAxB,CAAA;AACA8B,MAAAA,iBAAiB,CAAC78L,KAAlB,GAA0B48L,WAAW,CAAC,CAAD,CAArC,CAAA;AACAC,MAAAA,iBAAiB,CAAC58L,MAAlB,GAA2B28L,WAAW,CAAC,CAAD,CAAtC,CAAA;AACA,MAAA,IAAIj4G,UAAU,GAAGhvB,aAAa,CAACknI,iBAAD,EAAoB;AAChD78L,QAAAA,KAAK,EAAEid,SADyC;AAEhDhd,QAAAA,MAAM,EAAEid,UAAAA;AAFwC,OAApB,CAA9B,CAAA;MAIAlmB,CAAC,GAAG2tF,UAAU,CAAC3tF,CAAf,CAAA;MACAC,CAAC,GAAG0tF,UAAU,CAAC1tF,CAAf,CAAA;MACA2sC,KAAK,GAAG,IAAR,CAViC;AAWjC;;AAEAwqI,MAAAA,MAAM,GAAG,IAAT,CAAA;AACD,KAdM;AAAA,SAeF,IAAIvqK,QAAQ,CAACk3L,YAAD,CAAR,IAA0Bv/L,EAA9B,EAAkC;AACnC,MAAA,IAAI4/D,GAAG,GAAG0hI,mBAAmB,CAAC/B,YAAD,EAAe5hM,IAAf,EAAqByjM,WAArB,EAAkCnL,YAAY,CAAC/iK,GAAb,CAAiB,aAAjB,CAAlC,CAA7B,CAAA;AACA13B,MAAAA,CAAC,GAAGokE,GAAG,CAAC,CAAD,CAAP,CAAA;AACAnkE,MAAAA,CAAC,GAAGmkE,GAAG,CAAC,CAAD,CAAP,CAAA;AACD,KAJE,MAII;MACL,IAAIA,GAAG,GAAG2hI,oBAAoB,CAAC/lM,CAAD,EAAIC,CAAJ,EAAOgwG,OAAP,EAAgBhqF,SAAhB,EAA2BC,UAA3B,EAAuC0mB,KAAK,GAAG,IAAH,GAAU,EAAtD,EAA0DwqI,MAAM,GAAG,IAAH,GAAU,EAA1E,CAA9B,CAAA;AACAp3K,MAAAA,CAAC,GAAGokE,GAAG,CAAC,CAAD,CAAP,CAAA;AACAnkE,MAAAA,CAAC,GAAGmkE,GAAG,CAAC,CAAD,CAAP,CAAA;AACD,KAAA;;IAEHx3B,KAAK,KAAK5sC,CAAC,IAAIgmM,aAAa,CAACp5J,KAAD,CAAb,GAAuBg5J,WAAW,CAAC,CAAD,CAAX,GAAiB,CAAxC,GAA4Ch5J,KAAK,KAAK,OAAV,GAAoBg5J,WAAW,CAAC,CAAD,CAA/B,GAAqC,CAA3F,CAAL,CAAA;IACAxuB,MAAM,KAAKn3K,CAAC,IAAI+lM,aAAa,CAAC5uB,MAAD,CAAb,GAAwBwuB,WAAW,CAAC,CAAD,CAAX,GAAiB,CAAzC,GAA6CxuB,MAAM,KAAK,QAAX,GAAsBwuB,WAAW,CAAC,CAAD,CAAjC,GAAuC,CAA9F,CAAN,CAAA;;AAEA,IAAA,IAAIpL,oBAAoB,CAACC,YAAD,CAAxB,EAAwC;AACtC,MAAA,IAAIr2H,GAAG,GAAG6hI,sBAAsB,CAACjmM,CAAD,EAAIC,CAAJ,EAAOgwG,OAAP,EAAgBhqF,SAAhB,EAA2BC,UAA3B,CAAhC,CAAA;AACAlmB,MAAAA,CAAC,GAAGokE,GAAG,CAAC,CAAD,CAAP,CAAA;AACAnkE,MAAAA,CAAC,GAAGmkE,GAAG,CAAC,CAAD,CAAP,CAAA;AACD,KAAA;;AAED6rC,IAAAA,OAAO,CAAClwG,MAAR,CAAeC,CAAf,EAAkBC,CAAlB,CAAA,CAAA;AACD,GA5DD,CA9jBgB;AA2nBhB;;;EAGAygM,WAAW,CAACnhM,SAAZ,CAAsB8kM,8BAAtB,GAAuD,UAAU56B,cAAV,EAA0Bq5B,YAA1B,EAAwC;IAC7F,IAAIoD,YAAY,GAAG,IAAA,CAAKxE,mBAAxB,CAAA;IACA,IAAIyE,gBAAgB,GAAG,IAAA,CAAKC,aAA5B,CAAA;AACA,IAAA,IAAIC,iBAAiB,GAAG,CAAC,CAACH,YAAF,IAAkBA,YAAY,CAAC3jM,MAAb,KAAwBknK,cAAc,CAAClnK,MAAjF,CAAA;IACA8jM,iBAAiB,IAAIp6L,MAAI,CAACi6L,YAAD,EAAe,UAAUI,gBAAV,EAA4BC,aAA5B,EAA2C;AACjF,MAAA,IAAIC,cAAc,GAAGF,gBAAgB,CAAC76B,UAAjB,IAA+B,EAApD,CAAA;AACA,MAAA,IAAIg7B,gBAAgB,GAAGh9B,cAAc,CAAC88B,aAAD,CAAd,IAAiC,EAAxD,CAAA;AACA,MAAA,IAAIG,cAAc,GAAGD,gBAAgB,CAACh7B,UAAjB,IAA+B,EAApD,CAAA;MACA46B,iBAAiB,GAAGA,iBAAiB,IAAIG,cAAc,CAACjkM,MAAf,KAA0BmkM,cAAc,CAACnkM,MAAlF,CAAA;MACA8jM,iBAAiB,IAAIp6L,MAAI,CAACu6L,cAAD,EAAiB,UAAUl3B,QAAV,EAAoBq3B,SAApB,EAA+B;AACvE,QAAA,IAAIC,QAAQ,GAAGF,cAAc,CAACC,SAAD,CAAd,IAA6B,EAA5C,CAAA;AACA,QAAA,IAAIE,WAAW,GAAGv3B,QAAQ,CAACrJ,iBAAT,IAA8B,EAAhD,CAAA;AACA,QAAA,IAAI6gC,UAAU,GAAGF,QAAQ,CAAC3gC,iBAAT,IAA8B,EAA/C,CAAA;AACAogC,QAAAA,iBAAiB,GAAGA,iBAAiB,IAAI/2B,QAAQ,CAAC7wI,KAAT,KAAmBmoK,QAAQ,CAACnoK,KAAjD,IAA0D6wI,QAAQ,CAACh6G,QAAT,KAAsBsxI,QAAQ,CAACtxI,QAAzF,IAAqGg6G,QAAQ,CAAC/wH,MAAT,KAAoBqoJ,QAAQ,CAACroJ,MAAlI,IAA4IsoJ,WAAW,CAACtkM,MAAZ,KAAuBukM,UAAU,CAACvkM,MAAlM,CAAA;QACA8jM,iBAAiB,IAAIp6L,MAAI,CAAC46L,WAAD,EAAc,UAAUE,WAAV,EAAuB5+K,CAAvB,EAA0B;AAC/D,UAAA,IAAI6+K,UAAU,GAAGF,UAAU,CAAC3+K,CAAD,CAA3B,CAAA;AACAk+K,UAAAA,iBAAiB,GAAGA,iBAAiB,IAAIU,WAAW,CAACz3J,WAAZ,KAA4B03J,UAAU,CAAC13J,WAA5D,IAA2Ey3J,WAAW,CAACrzK,SAAZ,KAA0BszK,UAAU,CAACtzK,SAApI,CAAA;SAFuB,CAAzB,CALuE;;QAUvEyyK,gBAAgB,IAAIl6L,MAAI,CAACqjK,QAAQ,CAACrJ,iBAAV,EAA6B,UAAUK,OAAV,EAAmB;AACtE,UAAA,IAAI2gC,SAAS,GAAG3gC,OAAO,CAACh3H,WAAxB,CAAA;AACA,UAAA,IAAIk0J,QAAQ,GAAGV,YAAY,CAACmE,SAAD,CAA3B,CAAA;AACA,UAAA,IAAIC,YAAY,GAAGf,gBAAgB,CAACc,SAAD,CAAnC,CAAA;;UAEA,IAAIzD,QAAQ,IAAI0D,YAAZ,IAA4BA,YAAY,CAACzzK,IAAb,KAAsB+vK,QAAQ,CAAC/vK,IAA/D,EAAqE;AACnE4yK,YAAAA,iBAAiB,GAAG,KAApB,CAAA;AACD,WAAA;AACF,SARuB,CAAxB,CAAA;AASD,OAnBwB,CAAzB,CAAA;AAoBD,KAzBwB,CAAzB,CAAA;IA0BA,IAAK3E,CAAAA,mBAAL,GAA2Bj4B,cAA3B,CAAA;IACA,IAAK28B,CAAAA,aAAL,GAAqBtD,YAArB,CAAA;IACA,OAAO,CAAC,CAACuD,iBAAT,CAAA;GAhCF,CAAA;;AAmCA3F,EAAAA,WAAW,CAACnhM,SAAZ,CAAsB6hM,KAAtB,GAA8B,UAAU9iJ,cAAV,EAA0B;AACtD;AACA;AACA;AACA;IACA,IAAKojJ,CAAAA,mBAAL,GAA2B,IAA3B,CAAA;AACApjJ,IAAAA,cAAc,CAAC;AACbhsC,MAAAA,IAAI,EAAE,SADO;AAEb08E,MAAAA,IAAI,EAAE,IAAKxH,CAAAA,GAAAA;AAFE,KAAD,CAAd,CAAA;GANF,CAAA;;EAYAk5G,WAAW,CAACnhM,SAAZ,CAAsB4iB,OAAtB,GAAgC,UAAUmrB,OAAV,EAAmBxxB,GAAnB,EAAwB;IACtD,IAAIlF,GAAG,CAACkD,IAAJ,IAAY,CAACgC,GAAG,CAACs2K,MAAJ,EAAjB,EAA+B;AAC7B,MAAA,OAAA;AACD,KAAA;;AAED/vK,IAAAA,OAAK,CAAC,IAAD,EAAO,iBAAP,CAAL,CAAA;;IAEA,IAAKw+K,CAAAA,eAAL,CAAqB1+K,OAArB,EAAA,CAAA;;AAEA4mJ,IAAAA,UAAA,CAA0B,aAA1B,EAAyCjtJ,GAAzC,CAAA,CAAA;GATF,CAAA;;EAYA4kL,WAAW,CAACpuL,IAAZ,GAAmB,SAAnB,CAAA;AACA,EAAA,OAAOouL,WAAP,CAAA;AACD,CA3rBD,CA2rBEh0H,aA3rBF,CAFA,CAAA;AA8rBA;AACA;AACA;;;AAGA,SAAS21H,iBAAT,CAA2B8E,YAA3B,EAAyCt+H,kBAAzC,EAA6Du+H,oBAA7D,EAAmF;AACjF;AACA,EAAA,IAAI95J,OAAO,GAAGu7B,kBAAkB,CAACv7B,OAAjC,CAAA;AACA,EAAA,IAAI+5J,WAAJ,CAAA;;AAEA,EAAA,IAAID,oBAAJ,EAA0B;IACxBC,WAAW,GAAG,IAAIp/H,KAAJ,CAAUm/H,oBAAV,EAAgC95J,OAAhC,EAAyCA,OAAzC,CAAd,CAAA;IACA+5J,WAAW,GAAG,IAAIp/H,KAAJ,CAAUY,kBAAkB,CAACz4C,MAA7B,EAAqCi3K,WAArC,EAAkD/5J,OAAlD,CAAd,CAAA;AACD,GAHD,MAGO;AACL+5J,IAAAA,WAAW,GAAGx+H,kBAAd,CAAA;AACD,GAAA;;AAED,EAAA,KAAK,IAAI5lE,CAAC,GAAGkkM,YAAY,CAAC5kM,MAAb,GAAsB,CAAnC,EAAsCU,CAAC,IAAI,CAA3C,EAA8CA,CAAC,EAA/C,EAAmD;AACjD,IAAA,IAAIq/D,UAAU,GAAG6kI,YAAY,CAAClkM,CAAD,CAA7B,CAAA;;AAEA,IAAA,IAAIq/D,UAAJ,EAAgB;MACd,IAAIA,UAAU,YAAY2F,KAA1B,EAAiC;QAC/B3F,UAAU,GAAGA,UAAU,CAAC5qC,GAAX,CAAe,SAAf,EAA0B,IAA1B,CAAb,CAAA;AACD,OAHa;AAId;AACA;AACA;AACA;;;AAGA,MAAA,IAAI7qB,QAAQ,CAACy1D,UAAD,CAAZ,EAA0B;AACxBA,QAAAA,UAAU,GAAG;AACXk0B,UAAAA,SAAS,EAAEl0B,UAAAA;SADb,CAAA;AAGD,OAAA;;AAED,MAAA,IAAIA,UAAJ,EAAgB;QACd+kI,WAAW,GAAG,IAAIp/H,KAAJ,CAAU3F,UAAV,EAAsB+kI,WAAtB,EAAmC/5J,OAAnC,CAAd,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;AAED,EAAA,OAAO+5J,WAAP,CAAA;AACD,CAAA;;AAED,SAASl/B,kBAAT,CAA4B93H,OAA5B,EAAqCv0B,GAArC,EAA0C;EACxC,OAAOu0B,OAAO,CAACiO,cAAR,IAA0Bg4B,MAAI,CAACx6D,GAAG,CAACwiC,cAAL,EAAqBxiC,GAArB,CAArC,CAAA;AACD,CAAA;;AAED,SAASiqL,oBAAT,CAA8B/lM,CAA9B,EAAiCC,CAAjC,EAAoCgwG,OAApC,EAA6ChqF,SAA7C,EAAwDC,UAAxD,EAAoEohL,IAApE,EAA0EC,IAA1E,EAAgF;AAC9E,EAAA,IAAI71K,IAAI,GAAGu+E,OAAO,CAACluF,OAAR,EAAX,CAAA;AACA,EAAA,IAAI/Y,KAAK,GAAG0oB,IAAI,CAAC,CAAD,CAAhB,CAAA;AACA,EAAA,IAAIzoB,MAAM,GAAGyoB,IAAI,CAAC,CAAD,CAAjB,CAAA;;EAEA,IAAI41K,IAAI,IAAI,IAAZ,EAAkB;AAChB;AACA;AACA;AACA;IACA,IAAItnM,CAAC,GAAGgJ,KAAJ,GAAYs+L,IAAZ,GAAmB,CAAnB,GAAuBrhL,SAA3B,EAAsC;MACpCjmB,CAAC,IAAIgJ,KAAK,GAAGs+L,IAAb,CAAA;AACD,KAFD,MAEO;AACLtnM,MAAAA,CAAC,IAAIsnM,IAAL,CAAA;AACD,KAAA;AACF,GAAA;;EAED,IAAIC,IAAI,IAAI,IAAZ,EAAkB;AAChB,IAAA,IAAItnM,CAAC,GAAGgJ,MAAJ,GAAas+L,IAAb,GAAoBrhL,UAAxB,EAAoC;MAClCjmB,CAAC,IAAIgJ,MAAM,GAAGs+L,IAAd,CAAA;AACD,KAFD,MAEO;AACLtnM,MAAAA,CAAC,IAAIsnM,IAAL,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAO,CAACvnM,CAAD,EAAIC,CAAJ,CAAP,CAAA;AACD,CAAA;;AAED,SAASgmM,sBAAT,CAAgCjmM,CAAhC,EAAmCC,CAAnC,EAAsCgwG,OAAtC,EAA+ChqF,SAA/C,EAA0DC,UAA1D,EAAsE;AACpE,EAAA,IAAIwL,IAAI,GAAGu+E,OAAO,CAACluF,OAAR,EAAX,CAAA;AACA,EAAA,IAAI/Y,KAAK,GAAG0oB,IAAI,CAAC,CAAD,CAAhB,CAAA;AACA,EAAA,IAAIzoB,MAAM,GAAGyoB,IAAI,CAAC,CAAD,CAAjB,CAAA;EACA1xB,CAAC,GAAGjB,IAAI,CAAC8iC,GAAL,CAAS7hC,CAAC,GAAGgJ,KAAb,EAAoBid,SAApB,CAAA,GAAiCjd,KAArC,CAAA;EACA/I,CAAC,GAAGlB,IAAI,CAAC8iC,GAAL,CAAS5hC,CAAC,GAAGgJ,MAAb,EAAqBid,UAArB,CAAA,GAAmCjd,MAAvC,CAAA;EACAjJ,CAAC,GAAGjB,IAAI,CAAC0iB,GAAL,CAASzhB,CAAT,EAAY,CAAZ,CAAJ,CAAA;EACAC,CAAC,GAAGlB,IAAI,CAAC0iB,GAAL,CAASxhB,CAAT,EAAY,CAAZ,CAAJ,CAAA;AACA,EAAA,OAAO,CAACD,CAAD,EAAIC,CAAJ,CAAP,CAAA;AACD,CAAA;;AAED,SAAS6lM,mBAAT,CAA6BziL,QAA7B,EAAuClhB,IAAvC,EAA6CyjM,WAA7C,EAA0DzgL,WAA1D,EAAuE;AACrE,EAAA,IAAIqiL,QAAQ,GAAG5B,WAAW,CAAC,CAAD,CAA1B,CAAA;AACA,EAAA,IAAI6B,SAAS,GAAG7B,WAAW,CAAC,CAAD,CAA3B,CAAA;AACA,EAAA,IAAI3uL,MAAM,GAAGlY,IAAI,CAACopD,IAAL,CAAUppD,IAAI,CAACu9L,KAAL,GAAan3K,WAAvB,CAAA,GAAsC,CAAnD,CAAA;EACA,IAAInlB,CAAC,GAAG,CAAR,CAAA;EACA,IAAIC,CAAC,GAAG,CAAR,CAAA;AACA,EAAA,IAAIynM,SAAS,GAAGvlM,IAAI,CAAC6G,KAArB,CAAA;AACA,EAAA,IAAI2+L,UAAU,GAAGxlM,IAAI,CAAC8G,MAAtB,CAAA;;AAEA,EAAA,QAAQoa,QAAR;AACE,IAAA,KAAK,QAAL;MACErjB,CAAC,GAAGmC,IAAI,CAACnC,CAAL,GAAS0nM,SAAS,GAAG,CAArB,GAAyBF,QAAQ,GAAG,CAAxC,CAAA;MACAvnM,CAAC,GAAGkC,IAAI,CAAClC,CAAL,GAAS0nM,UAAU,GAAG,CAAtB,GAA0BF,SAAS,GAAG,CAA1C,CAAA;AACA,MAAA,MAAA;;AAEF,IAAA,KAAK,KAAL;MACEznM,CAAC,GAAGmC,IAAI,CAACnC,CAAL,GAAS0nM,SAAS,GAAG,CAArB,GAAyBF,QAAQ,GAAG,CAAxC,CAAA;AACAvnM,MAAAA,CAAC,GAAGkC,IAAI,CAAClC,CAAL,GAASwnM,SAAT,GAAqBxwL,MAAzB,CAAA;AACA,MAAA,MAAA;;AAEF,IAAA,KAAK,QAAL;MACEjX,CAAC,GAAGmC,IAAI,CAACnC,CAAL,GAAS0nM,SAAS,GAAG,CAArB,GAAyBF,QAAQ,GAAG,CAAxC,CAAA;AACAvnM,MAAAA,CAAC,GAAGkC,IAAI,CAAClC,CAAL,GAAS0nM,UAAT,GAAsB1wL,MAA1B,CAAA;AACA,MAAA,MAAA;;AAEF,IAAA,KAAK,MAAL;AACEjX,MAAAA,CAAC,GAAGmC,IAAI,CAACnC,CAAL,GAASwnM,QAAT,GAAoBvwL,MAAxB,CAAA;MACAhX,CAAC,GAAGkC,IAAI,CAAClC,CAAL,GAAS0nM,UAAU,GAAG,CAAtB,GAA0BF,SAAS,GAAG,CAA1C,CAAA;AACA,MAAA,MAAA;;AAEF,IAAA,KAAK,OAAL;AACEznM,MAAAA,CAAC,GAAGmC,IAAI,CAACnC,CAAL,GAAS0nM,SAAT,GAAqBzwL,MAAzB,CAAA;MACAhX,CAAC,GAAGkC,IAAI,CAAClC,CAAL,GAAS0nM,UAAU,GAAG,CAAtB,GAA0BF,SAAS,GAAG,CAA1C,CAAA;AAvBJ,GAAA;;AA0BA,EAAA,OAAO,CAACznM,CAAD,EAAIC,CAAJ,CAAP,CAAA;AACD,CAAA;;AAED,SAAS+lM,aAAT,CAAuBp5J,KAAvB,EAA8B;AAC5B,EAAA,OAAOA,KAAK,KAAK,QAAV,IAAsBA,KAAK,KAAK,QAAvC,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASi1J,sBAAT,CAAgCxxJ,OAAhC,EAAyC/C,OAAzC,EAAkDxxB,GAAlD,EAAuD;AACrD,EAAA,IAAI8rL,cAAc,GAAGC,cAAc,CAACx3J,OAAD,CAAd,CAAwBu3J,cAA7C,CAAA;AACA,EAAA,IAAI7C,iBAAiB,GAAG6C,cAAc,CAAClgM,IAAf,EAAA,CAAsB,CAAtB,CAAxB,CAAA;;AAEA,EAAA,IAAI,CAACq9L,iBAAD,IAAsBA,iBAAiB,KAAK,QAAhD,EAA0D;AACxD,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI+C,WAAW,GAAGC,wBAAwB,CAACz6J,OAAD,EAAUy3J,iBAAV,EAA6B6C,cAAc,CAAClwK,GAAf,CAAmBqtK,iBAAnB,CAA7B,EAAoE;AAC5GiD,IAAAA,UAAU,EAAE,KADgG;AAE5GC,IAAAA,SAAS,EAAE,KAFiG;AAG5GC,IAAAA,UAAU,EAAE,KAAA;AAHgG,GAApE,CAA1C,CAAA;AAKA,EAAA,IAAI1sJ,KAAK,GAAGssJ,WAAW,CAACn1I,MAAZ,CAAmB,CAAnB,CAAZ,CAAA;;EAEA,IAAI,CAACnX,KAAL,EAAY;AACV,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIo7C,IAAI,GAAG96E,GAAG,CAACqsL,uBAAJ,CAA4B3sJ,KAA5B,CAAX,CAAA;AACA,EAAA,IAAIh3C,EAAJ,CAAA;AACAoyF,EAAAA,IAAI,CAAChmE,KAAL,CAAW8L,QAAX,CAAoB,UAAU0rK,KAAV,EAAiB;AACnC,IAAA,IAAIrG,aAAa,GAAGtoK,SAAS,CAAC2uK,KAAD,CAAT,CAAiBrG,aAArC,CAAA;;IAEA,IAAIA,aAAa,IAAIA,aAAa,CAAC97L,IAAd,KAAuBoqC,OAAO,CAACpqC,IAApD,EAA0D;AACxDzB,MAAAA,EAAE,GAAG4jM,KAAL,CAAA;MACA,OAAO,IAAP,CAFwD;AAGzD,KAAA;GANH,CAAA,CAAA;;AASA,EAAA,IAAI5jM,EAAJ,EAAQ;IACN,OAAO;AACLugM,MAAAA,iBAAiB,EAAEA,iBADd;MAEL70J,cAAc,EAAEsL,KAAK,CAACtL,cAFjB;AAGL1rC,MAAAA,EAAE,EAAEA,EAAAA;KAHN,CAAA;AAKD,GAAA;AACF;;AC57BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BO,SAASme,SAAT,CAAiBC,SAAjB,EAA4B;EACjCqsD,GAAG,CAACu9F,SAAD,CAAH,CAAA;EACA5pJ,SAAS,CAAC6zC,sBAAV,CAAiCojI,YAAjC,CAAA,CAAA;EACAj3K,SAAS,CAACksD,qBAAV,CAAgC4xH,WAAhC,CAAA,CAAA;AACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAEE99K,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,SADiB;AAEvBgwC,IAAAA,KAAK,EAAE,SAFgB;AAGvB9mB,IAAAA,MAAM,EAAE,yBAAA;AAHe,GAAzB,EAIG06C,IAJH,CAAA,CAAA;EAKAtzD,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,SADiB;AAEvBgwC,IAAAA,KAAK,EAAE,SAFgB;AAGvB9mB,IAAAA,MAAM,EAAE,yBAAA;AAHe,GAAzB,EAIG06C,IAJH,CAAA,CAAA;AAKD;;ACtED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA,IAAImyH,oBAAoB,GAAG,CAAC,MAAD,EAAS,SAAT,EAAoB,MAApB,EAA4B,OAA5B,CAA3B,CAAA;AACe,SAASC,iBAAT,CAA2Bl4K,MAA3B,EAAmCquJ,KAAnC,EAA0C;EACvD,IAAI8pB,eAAe,GAAGr/F,gBAAgB,CAAC94E,MAAM,GAAGA,MAAM,CAACvb,KAAV,GAAkB,EAAzB,CAAtC,CAAA;;AAEA,EAAA,IAAI,CAAC0zL,eAAe,CAAChmM,MAArB,EAA6B;AAC3B,IAAA,OAAA;AACD,GAAA;;EAED,IAAIimM,2BAA2B,GAAG,EAAlC,CAAA;AACAvhK,EAAAA,MAAA,CAAYshK,eAAZ,EAA6B,UAAUE,QAAV,EAAoB;AAC/C,IAAA,IAAIC,GAAG,GAAGD,QAAQ,CAACj5K,cAAT,CAAwB,SAAxB,CAAA,GAAqCi5K,QAAQ,CAACE,OAA9C,GAAwD,EAAlE,CAAA;;IAEA,IAAID,GAAG,YAAYn4J,KAAnB,EAA0B;AACxBi4J,MAAAA,2BAA2B,GAAGA,2BAA2B,CAACn0H,MAA5B,CAAmCq0H,GAAnC,CAA9B,CAAA;AACD,KAAA;GALH,CAAA,CAAA;AAOA,EAAA,IAAIC,OAAO,GAAGv4K,MAAM,IAAIA,MAAM,CAACu4K,OAA/B,CAAA;;AAEA,EAAA,IAAI1hK,SAAA,CAAe0hK,OAAf,CAAJ,EAA6B;AAC3BA,IAAAA,OAAO,GAAGA,OAAO,CAAC,CAAD,CAAjB,CAAA;AACD,GAAA;;EAED,IAAI,CAACA,OAAL,EAAc;AACZA,IAAAA,OAAO,GAAG;AACRhf,MAAAA,OAAO,EAAE,EAAA;KADX,CAAA;AAGAv5J,IAAAA,MAAM,CAACu4K,OAAP,GAAiB,CAACA,OAAD,CAAjB,CAAA;AACD,GAAA;;EAED,IAAIC,cAAc,GAAGD,OAAO,CAAChf,OAAR,KAAoBgf,OAAO,CAAChf,OAAR,GAAkB,EAAtC,CAArB,CAAA;EACA,IAAIkf,YAAY,GAAGD,cAAc,CAAC/zL,KAAf,KAAyB+zL,cAAc,CAAC/zL,KAAf,GAAuB,EAAhD,CAAnB,CAAA;EACA,IAAIi0L,UAAU,GAAGD,YAAY,CAACv2L,IAAb,KAAsBu2L,YAAY,CAACv2L,IAAb,GAAoB,EAA1C,CAAjB,CAAA;AACAw2L,EAAAA,UAAU,CAACxlM,IAAX,CAAgB2sB,KAAhB,CAAsB64K,UAAtB,EAAkCN,2BAAlC,CAAA,CAAA;EACAO,eAAe,CAACD,UAAD,CAAf,CAAA;;AAEA,EAAA,IAAIrqB,KAAK,IAAI,CAACqqB,UAAU,CAACvmM,MAAzB,EAAiC;AAC/BumM,IAAAA,UAAU,CAACxlM,IAAX,CAAgB2sB,KAAhB,CAAsB64K,UAAtB,EAAkCT,oBAAlC,CAAA,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASU,eAAT,CAAyBC,GAAzB,EAA8B;EAC5B,IAAI7kM,GAAG,GAAG,EAAV,CAAA;AACA8iC,EAAAA,MAAA,CAAY+hK,GAAZ,EAAiB,UAAU7lM,GAAV,EAAe;AAC9BgB,IAAAA,GAAG,CAAChB,GAAD,CAAH,GAAW,CAAX,CAAA;GADF,CAAA,CAAA;EAGA6lM,GAAG,CAACzmM,MAAJ,GAAa,CAAb,CAAA;EACA0kC,MAAA,CAAY9iC,GAAZ,EAAiB,UAAU8kM,IAAV,EAAgB9lM,GAAhB,EAAqB;IACpC6lM,GAAG,CAAC1lM,IAAJ,CAASH,GAAT,CAAA,CAAA;GADF,CAAA,CAAA;AAGD;;AC7FD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgCA,IAAI8I,MAAI,GAAGg7B,MAAX,CAAA;;AAEA,SAASiiK,OAAT,CAAiBzoJ,GAAjB,EAAsB;AACpB,EAAA,IAAIA,GAAJ,EAAS;AACP,IAAA,KAAK,IAAIivC,MAAT,IAAmBjvC,GAAnB,EAAwB;AACtB,MAAA,IAAIA,GAAG,CAACjxB,cAAJ,CAAmBkgE,MAAnB,CAAJ,EAAgC;AAC9B,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;AACF,CAAA;;AAEM,SAASy5G,oBAAT,CAA8B/4K,MAA9B,EAAsCg5K,SAAtC,EAAiDC,sBAAjD,EAAyE;EAC9E,IAAIC,cAAc,GAAG,EAArB,CAAA;AACAr9L,EAAAA,MAAI,CAACm9L,SAAD,EAAY,UAAU3nJ,KAAV,EAAiB;IAC/B,IAAI8nJ,QAAQ,GAAGD,cAAc,CAAC7nJ,KAAD,CAAd,GAAwB+nJ,cAAc,EAArD,CAAA;IACAv9L,MAAI,CAACmkB,MAAM,CAACqxB,KAAD,CAAP,EAAgB,UAAUgoJ,UAAV,EAAsBp4K,UAAtB,EAAkC;AACpD,MAAA,IAAI,CAACuiF,aAAa,CAACiB,WAAd,CAA0BxjF,UAA1B,CAAL,EAA4C;AAC1C,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIq4K,aAAa,GAAG;AAClBp3L,QAAAA,IAAI,EAAE+e,UADY;AAElB0jF,QAAAA,MAAM,EAAE00F,UAAAA;OAFV,CAAA;AAIAJ,MAAAA,sBAAsB,IAAIA,sBAAsB,CAACK,aAAD,EAAgBjoJ,KAAhB,CAAhD,CAAA;MACA8nJ,QAAQ,CAACl4K,UAAD,CAAR,GAAuB,IAAIuiF,aAAJ,CAAkB81F,aAAlB,CAAvB,CAVoD;AAWpD;;MAEA,IAAIr4K,UAAU,KAAK,SAAnB,EAA8B;AAC5Bq4K,QAAAA,aAAa,GAAGziK,OAAA,CAAayiK,aAAb,CAAhB,CAAA;QACAA,aAAa,CAACp3L,IAAd,GAAqB,YAArB,CAAA;QACAi3L,QAAQ,CAACI,QAAT,CAAkBC,iBAAlB,GAAsC,IAAIh2F,aAAJ,CAAkB81F,aAAlB,CAAtC,CAAA;AACD,OAAA;AACF,KAlBG,CAAJ,CAAA;AAmBD,GArBG,CAAJ,CAAA;AAsBA,EAAA,OAAOJ,cAAP,CAAA;;AAEA,EAAA,SAASE,cAAT,GAA0B;IACxB,IAAIK,OAAO,GAAG,SAAVA,OAAU,GAAY,EAA1B,CADwB;AAExB;;;AAGAA,IAAAA,OAAO,CAACtqM,SAAR,CAAkBoqM,QAAlB,GAA6BE,OAAO,CAACtqM,SAArC,CAAA;AACA,IAAA,IAAIkhD,GAAG,GAAG,IAAIopJ,OAAJ,EAAV,CAAA;AACA,IAAA,OAAOppJ,GAAP,CAAA;AACD,GAAA;AACF,CAAA;AACM,SAASqpJ,mBAAT,CAA6B1zI,UAA7B,EAAyC2jE,SAAzC,EAAoDryH,IAApD,EAA0D;AAC/D;AACA;AACA;AACA;AACA,EAAA,IAAI+wL,GAAJ,CAAA;AACAxxJ,EAAAA,MAAA,CAAYv/B,IAAZ,EAAkB,UAAUpB,GAAV,EAAe;AAC/B,IAAA,IAAIyzH,SAAS,CAACvqG,cAAV,CAAyBlpB,GAAzB,CAAA,IAAiC4iM,OAAO,CAACnvE,SAAS,CAACzzH,GAAD,CAAV,CAA5C,EAA8D;AAC5DmyL,MAAAA,GAAG,GAAG,IAAN,CAAA;AACD,KAAA;GAHH,CAAA,CAAA;EAKAA,GAAG,IAAIxxJ,MAAA,CAAYv/B,IAAZ,EAAkB,UAAUpB,GAAV,EAAe;AACtC,IAAA,IAAIyzH,SAAS,CAACvqG,cAAV,CAAyBlpB,GAAzB,CAAA,IAAiC4iM,OAAO,CAACnvE,SAAS,CAACzzH,GAAD,CAAV,CAA5C,EAA8D;AAC5D8vD,MAAAA,UAAU,CAAC9vD,GAAD,CAAV,GAAkB2gC,OAAA,CAAa8yF,SAAS,CAACzzH,GAAD,CAAtB,CAAlB,CAAA;AACD,KAFD,MAEO;MACL,OAAO8vD,UAAU,CAAC9vD,GAAD,CAAjB,CAAA;AACD,KAAA;AACF,GANM,CAAP,CAAA;AAOD,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAAS4tG,WAAT,CAAqBk1F,SAArB,EAAgCE,cAAhC,EAAgD71K,IAAhD,EAAsDs2K,aAAtD,EAAqEp+L,KAArE,EAA4Es9B,SAA5E,EAAuF;EAC5F,IAAI+gK,cAAc,GAAG,EAArB,CAAA;AACA/iK,EAAAA,MAAA,CAAYmiK,SAAZ,EAAuB,UAAU3nJ,KAAV,EAAiB;IACtC,IAAI8zD,WAAW,GAAG3B,aAAa,CAAC0B,kBAAd,CAAiCg0F,cAAc,CAAC7nJ,KAAD,CAA/C,CAAlB,CAAA;AACAuoJ,IAAAA,cAAc,CAACvoJ,KAAD,CAAd,GAAwB8zD,WAAxB,CAAA;GAFF,CAAA,CAAA;AAIA,EAAA,IAAI7hF,SAAJ,CAAA;;EAEA,SAASnC,SAAT,CAAmBjrB,GAAnB,EAAwB;AACtB,IAAA,OAAO2jM,qBAAqB,CAACx2K,IAAD,EAAOC,SAAP,EAAkBptB,GAAlB,CAA5B,CAAA;AACD,GAAA;;AAED,EAAA,SAAS4uC,SAAT,CAAmB5uC,GAAnB,EAAwBm4B,KAAxB,EAA+B;IAC7ByrK,qBAAqB,CAACz2K,IAAD,EAAOC,SAAP,EAAkBptB,GAAlB,EAAuBm4B,KAAvB,CAArB,CAAA;AACD,GAAA;;EAED,IAAIwK,SAAS,IAAI,IAAjB,EAAuB;IACrBxV,IAAI,CAACxnB,IAAL,CAAUk+L,QAAV,CAAA,CAAA;AACD,GAFD,MAEO;AACL12K,IAAAA,IAAI,CAACxnB,IAAL,CAAU,CAACg9B,SAAD,CAAV,EAAuBkhK,QAAvB,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,SAASA,QAAT,CAAkBC,YAAlB,EAAgC5rJ,KAAhC,EAAuC;AACrC9qB,IAAAA,SAAS,GAAGuV,SAAS,IAAI,IAAb,GAAoBmhK,YAApB;AAAA,MACV5rJ,KADF,CAAA;IAEA,IAAI6rJ,WAAW,GAAG52K,IAAI,CAAC6wE,cAAL,CAAoB5wE,SAApB,CAAlB,CAHqC;AAIrC;;AAEA,IAAA,IAAI22K,WAAW,IAAIA,WAAW,CAACjoD,SAAZ,KAA0B,KAA7C,EAAoD;AAClD,MAAA,OAAA;AACD,KAAA;;IAED,IAAIkoD,UAAU,GAAGP,aAAa,CAACnmL,IAAd,CAAmBjY,KAAnB,EAA0By+L,YAA1B,CAAjB,CAAA;AACA,IAAA,IAAIb,QAAQ,GAAGD,cAAc,CAACgB,UAAD,CAA7B,CAAA;AACA,IAAA,IAAI/0F,WAAW,GAAGy0F,cAAc,CAACM,UAAD,CAAhC,CAAA;;AAEA,IAAA,KAAK,IAAIrnM,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGipG,WAAW,CAAChzG,MAAlC,EAA0CU,CAAC,GAAGqJ,GAA9C,EAAmDrJ,CAAC,EAApD,EAAwD;AACtD,MAAA,IAAIqP,IAAI,GAAGijG,WAAW,CAACtyG,CAAD,CAAtB,CAAA;AACAsmM,MAAAA,QAAQ,CAACj3L,IAAD,CAAR,IAAkBi3L,QAAQ,CAACj3L,IAAD,CAAR,CAAe4hG,WAAf,CAA2Bk2F,YAA3B,EAAyC74K,SAAzC,EAAoD2jB,SAApD,CAAlB,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASq1J,sBAAT,CAAgCnB,SAAhC,EAA2CE,cAA3C,EAA2DS,aAA3D,EAA0EzsK,GAA1E,EAA+E;EACpF,IAAI0sK,cAAc,GAAG,EAArB,CAAA;AACA/iK,EAAAA,MAAA,CAAYmiK,SAAZ,EAAuB,UAAU3nJ,KAAV,EAAiB;IACtC,IAAI8zD,WAAW,GAAG3B,aAAa,CAAC0B,kBAAd,CAAiCg0F,cAAc,CAAC7nJ,KAAD,CAA/C,CAAlB,CAAA;AACAuoJ,IAAAA,cAAc,CAACvoJ,KAAD,CAAd,GAAwB8zD,WAAxB,CAAA;GAFF,CAAA,CAAA;EAIA,OAAO;AACL/hE,IAAAA,QAAQ,EAAE,SAASA,QAAT,CAAkBC,MAAlB,EAA0BhgB,IAA1B,EAAgC;AACxC,MAAA,IAAIQ,QAAJ,CAAA;;MAEA,IAAIqJ,GAAG,IAAI,IAAX,EAAiB;AACfrJ,QAAAA,QAAQ,GAAGR,IAAI,CAACS,iBAAL,CAAuBoJ,GAAvB,CAAX,CAAA;AACD,OAAA;;MAED,SAAS/L,SAAT,CAAmBjrB,GAAnB,EAAwB;AACtB,QAAA,OAAO2jM,qBAAqB,CAACx2K,IAAD,EAAOC,SAAP,EAAkBptB,GAAlB,CAA5B,CAAA;AACD,OAAA;;AAED,MAAA,SAAS4uC,SAAT,CAAmB5uC,GAAnB,EAAwBm4B,KAAxB,EAA+B;QAC7ByrK,qBAAqB,CAACz2K,IAAD,EAAOC,SAAP,EAAkBptB,GAAlB,EAAuBm4B,KAAvB,CAArB,CAAA;AACD,OAAA;;AAED,MAAA,IAAI/K,SAAJ,CAAA;AACA,MAAA,IAAI0f,KAAK,GAAG3f,IAAI,CAAC4f,QAAL,EAAZ,CAAA;;MAEA,OAAO,CAAC3f,SAAS,GAAG+f,MAAM,CAAChS,IAAP,EAAb,KAA+B,IAAtC,EAA4C;QAC1C,IAAI4oK,WAAW,GAAG52K,IAAI,CAAC6wE,cAAL,CAAoB5wE,SAApB,CAAlB,CAD0C;AAE1C;;AAEA,QAAA,IAAI22K,WAAW,IAAIA,WAAW,CAACjoD,SAAZ,KAA0B,KAA7C,EAAoD;AAClD,UAAA,SAAA;AACD,SAAA;;AAED,QAAA,IAAI3jH,KAAK,GAAGnB,GAAG,IAAI,IAAP,GAAc8V,KAAK,CAAC1b,GAAN,CAAUzD,QAAV,EAAoBP,SAApB,CAAd,GAA+CA,SAA3D,CAAA;AACA,QAAA,IAAI42K,UAAU,GAAGP,aAAa,CAACtrK,KAAD,CAA9B,CAAA;AACA,QAAA,IAAI8qK,QAAQ,GAAGD,cAAc,CAACgB,UAAD,CAA7B,CAAA;AACA,QAAA,IAAI/0F,WAAW,GAAGy0F,cAAc,CAACM,UAAD,CAAhC,CAAA;;AAEA,QAAA,KAAK,IAAIrnM,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGipG,WAAW,CAAChzG,MAAlC,EAA0CU,CAAC,GAAGqJ,GAA9C,EAAmDrJ,CAAC,EAApD,EAAwD;AACtD,UAAA,IAAIqP,IAAI,GAAGijG,WAAW,CAACtyG,CAAD,CAAtB,CAAA;AACAsmM,UAAAA,QAAQ,CAACj3L,IAAD,CAAR,IAAkBi3L,QAAQ,CAACj3L,IAAD,CAAR,CAAe4hG,WAAf,CAA2Bz1E,KAA3B,EAAkClN,SAAlC,EAA6C2jB,SAA7C,CAAlB,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;GArCH,CAAA;AAuCD;;AC7ND;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAASs1J,gCAAT,CAA0C/xI,IAA1C,EAAgD;AACrD,EAAA,IAAIioE,SAAS,GAAGjoE,IAAI,CAACioE,SAArB,CADqD;;AAGrD,EAAA,IAAIj5H,SAAS,GAAG;IACd0yB,KAAK,EAAE,SAAUgyB,KAAAA,CAAAA,UAAV,EAAsB;AAC3B,MAAA,OAAOs+I,QAAQ,CAAC/pE,SAAD,CAAR,CAAoBvmG,KAApB,CAA0BgyB,UAA1B,EAAsC1kD,SAAtC,EAAiDgxD,IAAjD,CAAP,CAAA;KAFY;IAIdt2D,IAAI,EAAE,SAAUgqD,IAAAA,CAAAA,UAAV,EAAsB;AAC1B,MAAA,OAAOs+I,QAAQ,CAAC/pE,SAAD,CAAR,CAAoBv+H,IAApB,CAAyBgqD,UAAzB,EAAqC1kD,SAArC,EAAgDgxD,IAAhD,CAAP,CAAA;AACD,KAAA;GANH,CAAA;AAQA,EAAA,OAAOhxD,SAAP,CAAA;AACD,CAAA;AACD,IAAIgjM,QAAQ,GAAG;AACbrjE,EAAAA,KAAK,EAAEsjE,gBAAgB,CAAC,CAAD,CADV;AAEbpjE,EAAAA,KAAK,EAAEojE,gBAAgB,CAAC,CAAD,CAFV;AAGbvoM,EAAAA,IAAI,EAAE;AACJg4B,IAAAA,KAAK,EAAE,SAAUgyB,KAAAA,CAAAA,UAAV,EAAsB1kD,SAAtB,EAAiCgxD,IAAjC,EAAuC;AAC5C,MAAA,OAAOtM,UAAU,IAAIsM,IAAI,CAAC/xC,YAAL,CAAkB4T,OAAlB,CAA0B6xB,UAAU,CAAC,CAAD,CAApC,EAAyCA,UAAU,CAAC,CAAD,CAAnD,CAArB,CAAA;KAFE;AAIJhqD,IAAAA,IAAI,EAAE,SAAUgqD,IAAAA,CAAAA,UAAV,EAAsB1kD,SAAtB,EAAiCgxD,IAAjC,EAAuC;MAC3C,OAAOtM,UAAU,IAAIsM,IAAI,CAAC/xC,YAAL,CAAkBO,SAAlB,CAA4BklC,UAA5B,CAArB,CAAA;AACD,KAAA;GATU;AAWbj6C,EAAAA,OAAO,EAAE;AACPioB,IAAAA,KAAK,EAAE,SAAUgyB,KAAAA,CAAAA,UAAV,EAAsB1kD,SAAtB,EAAiCgxD,IAAjC,EAAuC;AAC5C,MAAA,OAAOtM,UAAU,IAAIsM,IAAI,CAAC/xC,YAAL,CAAkB4T,OAAlB,CAA0B6xB,UAAU,CAAC,CAAD,CAApC,EAAyCA,UAAU,CAAC,CAAD,CAAnD,CAAd,IAAyEw+I,OAAA,CAAuBlyI,IAAI,CAACjtB,KAA5B,EAAmC2gB,UAAU,CAAC,CAAD,CAA7C,EAAkDA,UAAU,CAAC,CAAD,CAA5D,CAAhF,CAAA;KAFK;AAIPhqD,IAAAA,IAAI,EAAE,SAAUgqD,IAAAA,CAAAA,UAAV,EAAsB1kD,SAAtB,EAAiCgxD,IAAjC,EAAuC;AAC3C,MAAA,IAAIlnD,MAAM,GAAGknD,IAAI,CAACjtB,KAAlB,CAAA;;MAEA,IAAI,CAAC2gB,UAAD,IAAe56C,MAAM,CAAChP,MAAP,IAAiB,CAApC,EAAuC;AACrC,QAAA,OAAO,KAAP,CAAA;AACD,OAAA;;AAED,MAAA,IAAIvC,CAAC,GAAGmsD,UAAU,CAACnsD,CAAnB,CAAA;AACA,MAAA,IAAIC,CAAC,GAAGksD,UAAU,CAAClsD,CAAnB,CAAA;AACA,MAAA,IAAI+I,KAAK,GAAGmjD,UAAU,CAACnjD,KAAvB,CAAA;AACA,MAAA,IAAIC,MAAM,GAAGkjD,UAAU,CAACljD,MAAxB,CAAA;AACA,MAAA,IAAIhH,CAAC,GAAGsP,MAAM,CAAC,CAAD,CAAd,CAAA;;AAEA,MAAA,IAAIo5L,OAAA,CAAuBp5L,MAAvB,EAA+BvR,CAA/B,EAAkCC,CAAlC,CAAA,IAAwC0qM,OAAA,CAAuBp5L,MAAvB,EAA+BvR,CAAC,GAAGgJ,KAAnC,EAA0C/I,CAA1C,CAAxC,IAAwF0qM,OAAA,CAAuBp5L,MAAvB,EAA+BvR,CAA/B,EAAkCC,CAAC,GAAGgJ,MAAtC,CAAxF,IAAyI0hM,OAAA,CAAuBp5L,MAAvB,EAA+BvR,CAAC,GAAGgJ,KAAnC,EAA0C/I,CAAC,GAAGgJ,MAA9C,CAAzI,IAAkMqd,YAAY,CAACu6C,MAAb,CAAoB1U,UAApB,EAAgC7xB,OAAhC,CAAwCr4B,CAAC,CAAC,CAAD,CAAzC,EAA8CA,CAAC,CAAC,CAAD,CAA/C,CAAlM,IAAyP2oM,oBAAoB,CAAC5qM,CAAD,EAAIC,CAAJ,EAAOD,CAAC,GAAGgJ,KAAX,EAAkB/I,CAAlB,EAAqBsR,MAArB,CAA7Q,IAA6Sq5L,oBAAoB,CAAC5qM,CAAD,EAAIC,CAAJ,EAAOD,CAAP,EAAUC,CAAC,GAAGgJ,MAAd,EAAsBsI,MAAtB,CAAjU,IAAkWq5L,oBAAoB,CAAC5qM,CAAC,GAAGgJ,KAAL,EAAY/I,CAAZ,EAAeD,CAAC,GAAGgJ,KAAnB,EAA0B/I,CAAC,GAAGgJ,MAA9B,EAAsCsI,MAAtC,CAAtX,IAAuaq5L,oBAAoB,CAAC5qM,CAAD,EAAIC,CAAC,GAAGgJ,MAAR,EAAgBjJ,CAAC,GAAGgJ,KAApB,EAA2B/I,CAAC,GAAGgJ,MAA/B,EAAuCsI,MAAvC,CAA/b,EAA+e;AAC7e,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;AACF,KAAA;AApBM,GAAA;AAXI,CAAf,CAAA;;AAmCA,SAASm5L,gBAAT,CAA0BhjE,OAA1B,EAAmC;AACjC,EAAA,IAAI9qB,EAAE,GAAG,CAAC,GAAD,EAAM,GAAN,CAAT,CAAA;AACA,EAAA,IAAIC,EAAE,GAAG,CAAC,OAAD,EAAU,QAAV,CAAT,CAAA;EACA,OAAO;AACL1iF,IAAAA,KAAK,EAAE,SAAUgyB,KAAAA,CAAAA,UAAV,EAAsB1kD,SAAtB,EAAiCgxD,IAAjC,EAAuC;AAC5C,MAAA,IAAItM,UAAJ,EAAgB;AACd,QAAA,IAAI3gB,KAAK,GAAGitB,IAAI,CAACjtB,KAAjB,CAAA;AACA,QAAA,IAAIvpC,CAAC,GAAGkqD,UAAU,CAACu7E,OAAD,CAAlB,CAAA;AACA,QAAA,OAAOmjE,WAAW,CAAC5oM,CAAD,EAAIupC,KAAJ,CAAlB,CAAA;AACD,OAAA;KANE;AAQLrpC,IAAAA,IAAI,EAAE,SAAUgqD,IAAAA,CAAAA,UAAV,EAAsB1kD,SAAtB,EAAiCgxD,IAAjC,EAAuC;AAC3C,MAAA,IAAItM,UAAJ,EAAgB;AACd,QAAA,IAAI3gB,KAAK,GAAGitB,IAAI,CAACjtB,KAAjB,CAAA;QACA,IAAIs/J,WAAW,GAAG,CAAC3+I,UAAU,CAACywD,EAAE,CAAC8qB,OAAD,CAAH,CAAX,EAA0Bv7E,UAAU,CAACywD,EAAE,CAAC8qB,OAAD,CAAH,CAAV,GAA0Bv7E,UAAU,CAAC0wD,EAAE,CAAC6qB,OAAD,CAAH,CAA9D,CAAlB,CAAA;AACAojE,QAAAA,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAA5B,IAAmCA,WAAW,CAACphK,OAAZ,EAAnC,CAAA;AACA,QAAA,OAAOmhK,WAAW,CAACC,WAAW,CAAC,CAAD,CAAZ,EAAiBt/J,KAAjB,CAAX,IAAsCq/J,WAAW,CAACC,WAAW,CAAC,CAAD,CAAZ,EAAiBt/J,KAAjB,CAAjD,IAA4Eq/J,WAAW,CAACr/J,KAAK,CAAC,CAAD,CAAN,EAAWs/J,WAAX,CAAvF,IAAkHD,WAAW,CAACr/J,KAAK,CAAC,CAAD,CAAN,EAAWs/J,WAAX,CAApI,CAAA;AACD,OAAA;AACF,KAAA;GAfH,CAAA;AAiBD,CAAA;;AAED,SAASD,WAAT,CAAqB5oM,CAArB,EAAwBupC,KAAxB,EAA+B;AAC7B,EAAA,OAAOA,KAAK,CAAC,CAAD,CAAL,IAAYvpC,CAAZ,IAAiBA,CAAC,IAAIupC,KAAK,CAAC,CAAD,CAAlC,CAAA;AACD;;ACrHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA,IAAIu/J,UAAU,GAAG,CAAC,SAAD,EAAY,YAAZ,CAAjB,CAAA;AACA,IAAIC,eAAe,GAAG,iBAAtB,CAAA;AACA,IAAIC,aAAa,GAAG,wBAApB,CAAA;AACA,CAAA;AACO,SAASC,YAAT,CAAsB59J,OAAtB,EAA+B;EACpCA,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,IAAAA,QAAQ,EAAE,OAAA;GADZ,EAEG,UAAUgoJ,UAAV,EAAsB;AACvB,IAAA,IAAInT,kBAAkB,GAAGmT,UAAU,CAACnT,kBAAX,GAAgC,IAAIzD,kBAAJ,CAAuB4W,UAAU,CAAC/6K,MAAlC,EAA0Ckd,OAA1C,CAAzD,CAAA;AACA0qJ,IAAAA,kBAAkB,CAACxC,cAAnB,CAAkC2V,UAAU,CAAC7nE,KAA7C,EAAoDh2F,OAApD,CAAA,CAAA;GAJF,CAAA,CAAA;AAMD,CAAA;AACD;AACA;AACA;;AAEe,SAAS89J,WAAT,CAAqB99J,OAArB,EAA8BxxB,GAA9B,EAAmCu0B,OAAnC,EAA4C;EACzD,IAAIg7J,aAAa,GAAG,EAApB,CAAA;AACA,EAAA,IAAIC,YAAJ,CAAA;AACA,EAAA,IAAIC,aAAJ,CAAA;EACAj+J,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,IAAAA,QAAQ,EAAE,OAAA;GADZ,EAEG,UAAUgoJ,UAAV,EAAsB;IACvB96J,OAAO,IAAIA,OAAO,CAAC/9B,IAAR,KAAiB,kBAA5B,IAAkD64L,UAAU,CAACK,cAAX,CAA0Bn7J,OAAO,CAAC/pC,GAAR,KAAgB,OAAhB,GAA0B+pC,OAAO,CAACiwF,WAAlC,GAAgD;AAC1HI,MAAAA,SAAS,EAAE,KAAA;AAD+G,KAA1E,CAAlD,CAAA;GAHF,CAAA,CAAA;EAOAwqE,YAAY,CAAC59J,OAAD,CAAZ,CAAA;EACAA,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,IAAAA,QAAQ,EAAE,OAAA;AADU,GAAtB,EAEG,UAAUgoJ,UAAV,EAAsBM,UAAtB,EAAkC;AACnC,IAAA,IAAIC,iBAAiB,GAAG;MACtBC,OAAO,EAAER,UAAU,CAAC/3L,EADE;AAEtBq4L,MAAAA,UAAU,EAAEA,UAFU;MAGtBG,SAAS,EAAET,UAAU,CAACllM,IAHA;MAItBq9H,KAAK,EAAEr8F,OAAA,CAAakkK,UAAU,CAAC7nE,KAAxB,CAJe;AAKtB/sC,MAAAA,QAAQ,EAAE,EAAA;AALY,KAAxB,CADmC;AAQnC;;IAEA80G,aAAa,CAAC/nM,IAAd,CAAmBooM,iBAAnB,CAAA,CAAA;AACA,IAAA,IAAIprE,WAAW,GAAG6qE,UAAU,CAAC/6K,MAA7B,CAAA;AACA,IAAA,IAAIy7K,SAAS,GAAGvrE,WAAW,CAACurE,SAA5B,CAAA;IACA,IAAIC,eAAe,GAAG,EAAtB,CAAA;IACA,IAAIC,wBAAwB,GAAG,EAA/B,CAAA;IACA,IAAIC,iBAAiB,GAAG,EAAxB,CAAA;IACA,IAAIC,cAAc,GAAG,KAArB,CAAA;;IAEA,IAAI,CAACR,UAAL,EAAiB;AACf;MACAH,YAAY,GAAGhrE,WAAW,CAACgrE,YAA3B,CAAA;MACAC,aAAa,GAAGjrE,WAAW,CAACirE,aAA5B,CAAA;AACD,KAtBkC;;;AAyBnC,IAAA,IAAIjoE,KAAK,GAAGr8F,GAAA,CAAWkkK,UAAU,CAAC7nE,KAAtB,EAA6B,UAAU7qE,IAAV,EAAgB;AACvD,MAAA,IAAIm8H,OAAO,GAAGsX,oBAAoB,CAACzzI,IAAI,CAACioE,SAAN,CAAlC,CAAA;AACA,MAAA,IAAIyrE,cAAc,GAAGllK,QAAA,CAAgB;QACnCvgB,YAAY,EAAEkuK,OAAO,GAAGA,OAAO,CAACn8H,IAAD,CAAV,GAAmB,KAAK,CAAA;OAD1B,EAElBA,IAFkB,CAArB,CAAA;AAGA0zI,MAAAA,cAAc,CAAC1kM,SAAf,GAA2B+iM,gCAAgC,CAAC2B,cAAD,CAA3D,CAAA;AACA,MAAA,OAAOA,cAAP,CAAA;AACD,KAPW,CAAZ,CAAA;AAQA,IAAA,IAAI7C,cAAc,GAAG8C,oBAAA,CAAoCjB,UAAU,CAAC/6K,MAA/C,EAAuD26K,UAAvD,EAAmE,UAAUrB,aAAV,EAAyB;MAC/GA,aAAa,CAAC71F,aAAd,GAA8B,OAA9B,CAAA;AACD,KAFoB,CAArB,CAAA;AAGA5sE,IAAAA,SAAA,CAAe4kK,SAAf,CAA6B5kK,IAAAA,MAAA,CAAY4kK,SAAZ,EAAuB,UAAUv8J,WAAV,EAAuB;AACzEw8J,MAAAA,eAAe,CAACx8J,WAAD,CAAf,GAA+B,CAA/B,CAAA;AACD,KAF4B,CAA7B,CAAA;;IAIA,SAAS+8J,UAAT,CAAoB/8J,WAApB,EAAiC;MAC/B,OAAOu8J,SAAS,KAAK,KAAd,IAAuB,CAAC,CAACC,eAAe,CAACx8J,WAAD,CAA/C,CAAA;AACD,KA1CkC;AA2CnC;;;IAGA,SAASg9J,OAAT,CAAiBC,aAAjB,EAAgC;AAC9B,MAAA,OAAO,CAAC,CAACA,aAAa,CAAChqM,MAAvB,CAAA;AACD,KAAA;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI;;;AAGA+qC,IAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuBqZ,WAAvB,EAAoC;AACrD,MAAA,IAAIi9J,aAAa,GAAGP,iBAAiB,CAAC18J,WAAD,CAAjB,GAAiC,EAArD,CAAA;AACArZ,MAAAA,WAAW,CAACgyD,OAAZ,KAAwB,UAAxB,GAAqCukH,aAAa,CAACv2K,WAAD,EAAcqZ,WAAd,CAAlD,GAA+Em9J,WAAW,CAACx2K,WAAD,EAAcqZ,WAAd,EAA2Bi9J,aAA3B,CAA1F,CAAA;KAFF,CAAA,CAAA;;AAKA,IAAA,SAASC,aAAT,CAAuBv2K,WAAvB,EAAoCqZ,WAApC,EAAiD;AAC/C,MAAA,IAAIjf,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA27K,MAAAA,cAAc,GAAGA,cAAc,IAAI57K,QAAQ,CAACwtG,cAAT,EAAnC,CAAA;AACAwuE,MAAAA,UAAU,CAAC/8J,WAAD,CAAV,IAA2Bjf,QAAQ,CAACknG,eAAT,CAAyBthG,WAAW,CAAC3E,OAAZ,EAAzB,EAAgD,UAAUgmG,WAAV,EAAuB5jG,SAAvB,EAAkC;QAC3G4jG,WAAW,KAAK,QAAhB,KAA6By0E,wBAAwB,CAACr4K,SAAD,CAAxB,GAAsC,CAAnE,CAAA,CAAA;AACD,OAF0B,CAA3B,CAAA;AAGD,KAAA;;AAED,IAAA,SAAS+4K,WAAT,CAAqBx2K,WAArB,EAAkCqZ,WAAlC,EAA+Ci9J,aAA/C,EAA8D;MAC5D,IAAI,CAACt2K,WAAW,CAACogB,aAAb,IAA8Bq2J,qBAAqB,CAACvB,UAAD,EAAa77J,WAAb,CAAvD,EAAkF;AAChF,QAAA,OAAA;AACD,OAAA;;AAEDrI,MAAAA,MAAA,CAAYq8F,KAAZ,EAAmB,UAAU7qE,IAAV,EAAgB;AACjC,QAAA,IAAI0yI,UAAU,CAACnT,kBAAX,CAA8BlC,aAA9B,CAA4Cr9H,IAA5C,EAAkDxiC,WAAlD,EAA+DqX,OAA/D,CAAJ,EAA6E;UAC3Ei/J,aAAa,CAACjpM,IAAd,CAAmBm1D,IAAnB,CAAA,CAAA;AACD,SAAA;;AAEDwzI,QAAAA,cAAc,GAAGA,cAAc,IAAIK,OAAO,CAACC,aAAD,CAA1C,CAAA;OALF,CAAA,CAAA;;MAQA,IAAIF,UAAU,CAAC/8J,WAAD,CAAV,IAA2Bg9J,OAAO,CAACC,aAAD,CAAtC,EAAuD;AACrD,QAAA,IAAIxgK,MAAM,GAAG9V,WAAW,CAAC3E,OAAZ,EAAb,CAAA;AACAya,QAAAA,MAAM,CAAC9/B,IAAP,CAAY,UAAUynB,SAAV,EAAqB;UAC/B,IAAIi5K,YAAY,CAAC12K,WAAD,EAAcs2K,aAAd,EAA6BxgK,MAA7B,EAAqCrY,SAArC,CAAhB,EAAiE;AAC/Dq4K,YAAAA,wBAAwB,CAACr4K,SAAD,CAAxB,GAAsC,CAAtC,CAAA;AACD,WAAA;SAHH,CAAA,CAAA;AAKD,OAAA;AACF,KAlGkC;;;AAqGnC4Z,IAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuBqZ,WAAvB,EAAoC;AACrD,MAAA,IAAIs9J,mBAAmB,GAAG;QACxB19G,QAAQ,EAAEj5D,WAAW,CAAC7iB,EADE;AAExBk8B,QAAAA,WAAW,EAAEA,WAFW;QAGxBa,UAAU,EAAEla,WAAW,CAAChwB,IAHA;AAIxBytB,QAAAA,SAAS,EAAE,EAAA;AAJa,OAA1B,CADqD;AAOrD;;AAEAg4K,MAAAA,iBAAiB,CAACn1G,QAAlB,CAA2BjzF,IAA3B,CAAgCspM,mBAAhC,CAAA,CAAA;AACA,MAAA,IAAIL,aAAa,GAAGP,iBAAiB,CAAC18J,WAAD,CAArC,CAAA;AACA,MAAA,IAAI7b,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;MACA,IAAIy4K,aAAa,GAAGsC,UAAU,CAAC/8J,WAAD,CAAV,GAA0B,UAAU5b,SAAV,EAAqB;QACjE,OAAOq4K,wBAAwB,CAACr4K,SAAD,CAAxB,IAAuCk5K,mBAAmB,CAACl5K,SAApB,CAA8BpwB,IAA9B,CAAmCmwB,IAAI,CAACkN,WAAL,CAAiBjN,SAAjB,CAAnC,CAAiE,EAAA,SAAxG,IAAqH,YAA5H,CAAA;OADkB,GAEhB,UAAUA,SAAV,EAAqB;QACvB,OAAOi5K,YAAY,CAAC12K,WAAD,EAAcs2K,aAAd,EAA6B94K,IAA7B,EAAmCC,SAAnC,CAAZ,IAA6Dk5K,mBAAmB,CAACl5K,SAApB,CAA8BpwB,IAA9B,CAAmCmwB,IAAI,CAACkN,WAAL,CAAiBjN,SAAjB,CAAnC,CAAA,EAAiE,SAA9H,IAA2I,YAAlJ,CAAA;AACD,OAJD,CAZqD;;MAkBrD,CAAC24K,UAAU,CAAC/8J,WAAD,CAAV,GAA0B28J,cAA1B,GAA2CK,OAAO,CAACC,aAAD,CAAnD,KAAuEH,WAAA,CAA2BrB,UAA3B,EAAuCzB,cAAvC,EAAuD71K,IAAvD,EAA6Ds2K,aAA7D,CAAvE,CAAA;KAlBF,CAAA,CAAA;GAvGF,CAAA,CAAA;EA4HAzrJ,gBAAc,CAACxiC,GAAD,EAAMwvL,YAAN,EAAoBC,aAApB,EAAmCF,aAAnC,EAAkDh7J,OAAlD,CAAd,CAAA;AACD,CAAA;AACD,CAAA;;AAEA,SAASiO,gBAAT,CAAwBxiC,GAAxB,EAA6BwvL,YAA7B,EAA2CC,aAA3C,EAA0DF,aAA1D,EAAyEh7J,OAAzE,EAAkF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,IAAI,CAACA,OAAL,EAAc;AACZ,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIslC,EAAE,GAAG75D,GAAG,CAACghC,KAAJ,EAAT,CAAA;;AAEA,EAAA,IAAI64B,EAAE,CAACs1H,aAAD,CAAN,EAAuB;AACrB,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAI,CAACt1H,EAAE,CAACq1H,eAAD,CAAP,EAA0B;AACxBr1H,IAAAA,EAAE,CAACq1H,eAAD,CAAF,GAAsB6B,UAAtB,CAAA;AACD,GAAA;;AAED,EAAA,IAAIC,EAAE,GAAGxoC,cAAA,CAA4B3uF,EAA5B,EAAgCq1H,eAAhC,EAAiDO,aAAjD,EAAgED,YAAhE,CAAT,CAAA;AACAwB,EAAAA,EAAE,CAAChxL,GAAD,EAAMuvL,aAAN,CAAF,CAAA;AACD,CAAA;;AAED,SAASwB,UAAT,CAAoB/wL,GAApB,EAAyBuvL,aAAzB,EAAwC;AACtC,EAAA,IAAI,CAACvvL,GAAG,CAAC0lL,UAAJ,EAAL,EAAuB;AACrB,IAAA,IAAI7rH,EAAE,GAAG75D,GAAG,CAACghC,KAAJ,EAAT,CAAA;AACA64B,IAAAA,EAAE,CAACs1H,aAAD,CAAF,GAAoB,IAApB,CAAA;IACAnvL,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,MAAAA,IAAI,EAAE,aADW;AAEjBg6J,MAAAA,KAAK,EAAE++B,aAAAA;KAFT,CAAA,CAAA;AAIA11H,IAAAA,EAAE,CAACs1H,aAAD,CAAF,GAAoB,KAApB,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAS0B,YAAT,CAAsB12K,WAAtB,EAAmCs2K,aAAnC,EAAkD94K,IAAlD,EAAwDC,SAAxD,EAAmE;AACjE,EAAA,KAAK,IAAIzwB,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGigM,aAAa,CAAChqM,MAApC,EAA4CU,CAAC,GAAGqJ,GAAhD,EAAqDrJ,CAAC,EAAtD,EAA0D;AACxD,IAAA,IAAIw1D,IAAI,GAAG8zI,aAAa,CAACtpM,CAAD,CAAxB,CAAA;;AAEA,IAAA,IAAIgzB,WAAW,CAACogB,aAAZ,CAA0B3iB,SAA1B,EAAqCD,IAArC,EAA2CglC,IAAI,CAAChxD,SAAhD,EAA2DgxD,IAA3D,CAAJ,EAAsE;AACpE,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAASi0I,qBAAT,CAA+BvB,UAA/B,EAA2C77J,WAA3C,EAAwD;AACtD,EAAA,IAAIy9J,aAAa,GAAG5B,UAAU,CAAC/6K,MAAX,CAAkBkf,WAAtC,CAAA;EACA,OAAOy9J,aAAa,IAAI,IAAjB,IAAyBA,aAAa,KAAK,KAA3C,KAAqD9lK,SAAA,CAAe8lK,aAAf,CAAgC9lK,GAAAA,OAAA,CAAe8lK,aAAf,EAA8Bz9J,WAA9B,CAA6C,GAAA,CAA7E,GAAiFA,WAAW,KAAKy9J,aAAtJ,CAAP,CAAA;AACD,CAAA;;AAED,IAAIb,oBAAoB,GAAG;EACzB/pM,IAAI,EAAE,SAAUs2D,IAAAA,CAAAA,IAAV,EAAgB;AACpB,IAAA,OAAOu0I,yBAAyB,CAACv0I,IAAI,CAACjtB,KAAN,CAAhC,CAAA;GAFuB;EAIzBt5B,OAAO,EAAE,SAAUumD,OAAAA,CAAAA,IAAV,EAAgB;AACvB,IAAA,IAAIqvH,MAAJ,CAAA;AACA,IAAA,IAAIt8I,KAAK,GAAGitB,IAAI,CAACjtB,KAAjB,CAAA;;AAEA,IAAA,KAAK,IAAIvoC,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGk/B,KAAK,CAACjpC,MAA5B,EAAoCU,CAAC,GAAGqJ,GAAxC,EAA6CrJ,CAAC,EAA9C,EAAkD;AAChD6kL,MAAAA,MAAM,GAAGA,MAAM,IAAI,CAAC,CAAChhK,QAAD,EAAW,CAACA,QAAZ,CAAD,EAAwB,CAACA,QAAD,EAAW,CAACA,QAAZ,CAAxB,CAAnB,CAAA;AACA,MAAA,IAAImmL,EAAE,GAAGzhK,KAAK,CAACvoC,CAAD,CAAd,CAAA;MACAgqM,EAAE,CAAC,CAAD,CAAF,GAAQnlB,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAR,KAAyBA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAemlB,GAAAA,EAAE,CAAC,CAAD,CAA1C,CAAA,CAAA;MACAA,EAAE,CAAC,CAAD,CAAF,GAAQnlB,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAR,KAAyBA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAemlB,GAAAA,EAAE,CAAC,CAAD,CAA1C,CAAA,CAAA;MACAA,EAAE,CAAC,CAAD,CAAF,GAAQnlB,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAR,KAAyBA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAemlB,GAAAA,EAAE,CAAC,CAAD,CAA1C,CAAA,CAAA;MACAA,EAAE,CAAC,CAAD,CAAF,GAAQnlB,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAR,KAAyBA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAemlB,GAAAA,EAAE,CAAC,CAAD,CAA1C,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,OAAOnlB,MAAM,IAAIklB,yBAAyB,CAACllB,MAAD,CAA1C,CAAA;AACD,GAAA;AAlBwB,CAA3B,CAAA;;AAqBA,SAASklB,yBAAT,CAAmCllB,MAAnC,EAA2C;EACzC,OAAO,IAAIxhK,YAAJ,CAAiBwhK,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAjB,EAA+BA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA/B,EAA6CA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAeA,GAAAA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAA5D,EAA0EA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,IAAeA,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAzF,CAAP,CAAA;AACD;;ACzRD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,IAAIolB,SAAS;AACb;AACA,UAAUzpL,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACwpL,SAAD,EAAYzpL,MAAZ,CAAT,CAAA;;AAEA,EAAA,SAASypL,SAAT,GAAqB;AACnB,IAAA,IAAIvpL,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa46L,SAAS,CAAC56L,IAAvB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDupL,SAAS,CAAC3tM,SAAV,CAAoBytC,IAApB,GAA2B,UAAUM,OAAV,EAAmBxxB,GAAnB,EAAwB;IACjD,IAAKwxB,CAAAA,OAAL,GAAeA,OAAf,CAAA;IACA,IAAKxxB,CAAAA,GAAL,GAAWA,GAAX,CAAA;AACA,IAAA,IAAA,CAAK0/B,KAAL,CAAA;IACA,CAAC,IAAA,CAAKgtF,gBAAL,GAAwB,IAAIxI,eAAJ,CAAoBlkH,GAAG,CAACghC,KAAJ,EAApB,CAAzB,EAA2DC,EAA3D,CAA8D,OAA9D,EAAuE9V,MAAA,CAAY,IAAKwhG,CAAAA,QAAjB,EAA2B,IAA3B,CAAvE,CAAA,CAAyGtH,KAAzG,EAAA,CAAA;GAJF,CAAA;;AAOA+rE,EAAAA,SAAS,CAAC3tM,SAAV,CAAoB8tC,MAApB,GAA6B,UAAU89J,UAAV,EAAsB79J,OAAtB,EAA+BxxB,GAA/B,EAAoCu0B,OAApC,EAA6C;IACxE,IAAKmL,CAAAA,KAAL,GAAa2vJ,UAAb,CAAA;;IAEA,IAAKjiH,CAAAA,iBAAL,CAAuBiiH,UAAvB,EAAmC79J,OAAnC,EAA4CxxB,GAA5C,EAAiDu0B,OAAjD,CAAA,CAAA;GAHF,CAAA;;AAMA68J,EAAAA,SAAS,CAAC3tM,SAAV,CAAoByyD,eAApB,GAAsC,UAAUm5I,UAAV,EAAsB79J,OAAtB,EAA+BxxB,GAA/B,EAAoCu0B,OAApC,EAA6C;AACjF;AACA;AACA;IACA66J,YAAY,CAAC59J,OAAD,CAAZ,CAAA;;IAEA,IAAK47C,CAAAA,iBAAL,CAAuBiiH,UAAvB,EAAmC79J,OAAnC,EAA4CxxB,GAA5C,EAAiDu0B,OAAjD,CAAA,CAAA;GANF,CAAA;;AASA68J,EAAAA,SAAS,CAAC3tM,SAAV,CAAoB4tM,YAApB,GAAmC,UAAUhC,UAAV,EAAsB79J,OAAtB,EAA+BxxB,GAA/B,EAAoCu0B,OAApC,EAA6C;IAC9E,IAAK2hB,CAAAA,eAAL,CAAqBm5I,UAArB,EAAiC79J,OAAjC,EAA0CxxB,GAA1C,EAA+Cu0B,OAA/C,CAAA,CAAA;GADF,CAAA;;AAIA68J,EAAAA,SAAS,CAAC3tM,SAAV,CAAoBwtL,UAApB,GAAiC,UAAUoe,UAAV,EAAsB79J,OAAtB,EAA+BxxB,GAA/B,EAAoCu0B,OAApC,EAA6C;IAC5E,IAAK64C,CAAAA,iBAAL,CAAuBiiH,UAAvB,EAAmC79J,OAAnC,EAA4CxxB,GAA5C,EAAiDu0B,OAAjD,CAAA,CAAA;GADF,CAAA;;AAIA68J,EAAAA,SAAS,CAAC3tM,SAAV,CAAoB2pF,iBAApB,GAAwC,UAAUiiH,UAAV,EAAsB79J,OAAtB,EAA+BxxB,GAA/B,EAAoCu0B,OAApC,EAA6C;AACnF;AACA,IAAA,CAAC,CAACA,OAAD,IAAYA,OAAO,CAAC+8J,KAAR,KAAkBjC,UAAU,CAAC/3L,EAA1C,KAAiD,IAAKo1H,CAAAA,gBAAL,CAAsB1H,SAAtB,CAAgCqqE,UAAU,CAACnT,kBAAX,CAA8BrC,aAA9B,CAA4C75K,GAA5C,CAAhC,EAAkFukH,WAAlF,CAA8F8qE,UAAU,CAAC7qE,WAAzG,CAAsHe,CAAAA,YAAtH,CAAmI8pE,UAAU,CAAC7nE,KAAX,CAAiBh7G,KAAjB,EAAnI,CAAjD,CAAA;AACD,GAHD,CAxCgB;AA4ChB;;;AAGA4kL,EAAAA,SAAS,CAAC3tM,SAAV,CAAoB4iB,OAApB,GAA8B,YAAY;IACxC,IAAKqmH,CAAAA,gBAAL,CAAsBrmH,OAAtB,EAAA,CAAA;GADF,CAAA;;AAIA+qL,EAAAA,SAAS,CAAC3tM,SAAV,CAAoBkpI,QAApB,GAA+B,UAAUU,UAAV,EAAsB;AACnD,IAAA,IAAIkkE,OAAO,GAAG,IAAK7xJ,CAAAA,KAAL,CAAWpoC,EAAzB,CAAA;AACA,IAAA,IAAIkwH,KAAK,GAAG,IAAA,CAAK9nF,KAAL,CAAWw8I,kBAAX,CAA8BlD,eAA9B,CAA8C3rD,UAAU,CAAC7F,KAAzD,EAAgE,KAAKh2F,OAArE,CAAZ,CAFmD;AAGnD;AACA;AACA;;AAEA,IAAA,CAAC,CAAC67F,UAAU,CAACxwF,KAAZ,IAAqBwwF,UAAU,CAACrJ,aAAjC,KAAmD,IAAA,CAAKhkH,GAAL,CAASwiC,cAAT,CAAwB;AACzEhsC,MAAAA,IAAI,EAAE,OADmE;AAEzEq5L,MAAAA,OAAO,EAAE0B,OAFgE;AAGzE/pE,MAAAA,KAAK,EAAEr8F,OAAA,CAAaq8F,KAAb,CAHkE;AAIzE8pE,MAAAA,KAAK,EAAEC,OAAAA;AAJkE,KAAxB,CAAnD,CAAA;AAMAlkE,IAAAA,UAAU,CAACxwF,KAAX,IAAoB,KAAK78B,GAAL,CAASwiC,cAAT,CAAwB;AAC1ChsC,MAAAA,IAAI,EAAE,UADoC;AAE1Cq5L,MAAAA,OAAO,EAAE0B,OAFiC;AAG1C/pE,MAAAA,KAAK,EAAEr8F,OAAA,CAAaq8F,KAAb,CAHmC;AAI1C8pE,MAAAA,KAAK,EAAEC,OAAAA;AAJmC,KAAxB,CAApB,CAAA;GAbF,CAAA;;EAqBAH,SAAS,CAAC56L,IAAV,GAAiB,OAAjB,CAAA;AACA,EAAA,OAAO46L,SAAP,CAAA;AACD,CA1ED,CA0EExgI,aA1EF,CAFA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BA,IAAI4gI,0BAA0B,GAAG,MAAjC,CAAA;;AAEA,IAAIC,UAAU;AACd;AACA,UAAU9pL,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC6pL,UAAD,EAAa9pL,MAAb,CAAT,CAAA;;AAEA,EAAA,SAAS8pL,UAAT,GAAsB;AACpB,IAAA,IAAI5pL,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAai7L,UAAU,CAACj7L,IAAxB,CAAA;AACA;AACJ;AACA;;IAEIqR,KAAK,CAAC2/G,KAAN,GAAc,EAAd,CAAA;AACA;AACJ;AACA;AACA;;IAEI3/G,KAAK,CAAC28G,WAAN,GAAoB,EAApB,CAAA;AACA,IAAA,OAAO38G,KAAP,CAAA;AACD,GAAA;;EAED4pL,UAAU,CAAChuM,SAAX,CAAqB42D,aAArB,GAAqC,UAAU4jE,SAAV,EAAqB3jG,MAArB,EAA6B;IAChE,IAAIggC,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;AACA,IAAA,CAACgG,MAAD,IAAWg2K,mBAAA,CAAmCh2I,UAAnC,EAA+C2jE,SAA/C,EAA0D,CAAC,SAAD,EAAY,YAAZ,CAA1D,CAAX,CAAA;AACA,IAAA,IAAIyzE,OAAO,GAAGp3I,UAAU,CAACo3I,OAAX,GAAqBp3I,UAAU,CAACo3I,OAAX,IAAsB,EAAzD,CAHgE;;AAKhEp3I,IAAAA,UAAU,CAACq3I,UAAX,GAAwBr3I,UAAU,CAACq3I,UAAX,IAAyB;AAC/C5oM,MAAAA,KAAK,EAAEyoM,0BAAAA;KADT,CAAA;;AAIA,IAAA,IAAI,CAACE,OAAO,CAACh+K,cAAR,CAAuB,OAAvB,CAAL,EAAsC;AACpC;AACA;MACAg+K,OAAO,CAACj1K,KAAR,GAAgB,CAAhB,CAAA;AACD,KAAA;GAbH,CAAA;AAeA;AACF;AACA;;;AAGEg1K,EAAAA,UAAU,CAAChuM,SAAX,CAAqBmuM,QAArB,GAAgC,UAAUpqE,KAAV,EAAiB;AAC/C,IAAA,IAAI3sH,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzCowB,MAAA,CAAcA,SAAA,CAAeq8F,KAAf,CAAd,CAAA,CAAA;AACAr8F,MAAAA,MAAA,CAAYq8F,KAAZ,EAAmB,UAAU7qE,IAAV,EAAgB;AACjCxxB,QAAAA,MAAA,CAAcwxB,IAAI,CAACioE,SAAnB,EAA8B,eAA9B,CAAA,CAAA;OADF,CAAA,CAAA;AAGD,KAN8C;AAO/C;AACA;;;IAGA,IAAI,CAAC4C,KAAL,EAAY;AACV,MAAA,OAAA;AACD,KAAA;;IAED,IAAKA,CAAAA,KAAL,GAAar8F,GAAA,CAAWq8F,KAAX,EAAkB,UAAU7qE,IAAV,EAAgB;AAC7C,MAAA,OAAOk1I,mBAAmB,CAAC,IAAA,CAAKv9K,MAAN,EAAcqoC,IAAd,CAA1B,CAAA;KADW,EAEV,IAFU,CAAb,CAAA;GAfF,CAAA;AAmBA;AACF;AACA;;;AAGE80I,EAAAA,UAAU,CAAChuM,SAAX,CAAqBisM,cAArB,GAAsC,UAAUlrE,WAAV,EAAuB;IAC3D,IAAKA,CAAAA,WAAL,GAAmBqtE,mBAAmB,CAAC,KAAKv9K,MAAN,EAAckwG,WAAd,CAAtC,CAAA;AACA,IAAA,IAAA,CAAKI,SAAL,GAAiB,IAAKJ,CAAAA,WAAL,CAAiBI,SAAlC,CAAA;GAFF,CAAA;;EAKA6sE,UAAU,CAACj7L,IAAX,GAAkB,OAAlB,CAAA;AACAi7L,EAAAA,UAAU,CAACt7K,YAAX,GAA0B,CAAC,KAAD,EAAQ,MAAR,EAAgB,OAAhB,EAAyB,OAAzB,EAAkC,UAAlC,EAA8C,QAA9C,CAA1B,CAAA;EACAs7K,UAAU,CAACr7K,aAAX,GAA2B;AACzBod,IAAAA,WAAW,EAAE,KADY;AAEzBoxF,IAAAA,SAAS,EAAE,MAFc;AAGzBb,IAAAA,SAAS,EAAE,QAHc;AAIzBD,IAAAA,aAAa,EAAE,IAJU;AAKzBD,IAAAA,UAAU,EAAE;AACVx6G,MAAAA,WAAW,EAAE,CADH;AAEVtgB,MAAAA,KAAK,EAAE,uBAFG;AAGV6xC,MAAAA,WAAW,EAAE,SAAA;KARU;AAUzB40J,IAAAA,YAAY,EAAE,SAVW;AAWzBC,IAAAA,aAAa,EAAE,CAXU;AAYzBzrE,IAAAA,aAAa,EAAE,IAZU;AAazBr0G,IAAAA,CAAC,EAAE,KAAA;GAbL,CAAA;AAeA,EAAA,OAAO8hL,UAAP,CAAA;AACD,CAxFD,CAwFEj7I,cAxFF,CAFA,CAAA;;AA4FA,SAASq7I,mBAAT,CAA6Bv9K,MAA7B,EAAqCkwG,WAArC,EAAkD;EAChD,OAAOr5F,KAAA,CAAa;IAClBy5F,SAAS,EAAEtwG,MAAM,CAACswG,SADA;IAElBb,SAAS,EAAEzvG,MAAM,CAACyvG,SAFA;IAGlBD,aAAa,EAAExvG,MAAM,CAACwvG,aAHJ;IAIlBD,UAAU,EAAE,IAAI13D,KAAJ,CAAU73C,MAAM,CAACuvG,UAAjB,CAA6BloG,CAAAA,YAA7B,EAJM;IAKlBqoG,aAAa,EAAE1vG,MAAM,CAAC0vG,aALJ;IAMlBr0G,CAAC,EAAE2E,MAAM,CAAC3E,CAAAA;AANQ,GAAb,EAOJ60G,WAPI,EAOS,IAPT,CAAP,CAAA;AAQD;;ACtJD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA,IAAIivD,UAAU,GAAG,CAAC,MAAD,EAAS,SAAT,EAAoB,OAApB,EAA6B,OAA7B,EAAsC,MAAtC,EAA8C,OAA9C,CAAjB,CAAA;;AAEA,IAAIqe,YAAY;AAChB;AACA,UAAUnqL,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACkqL,YAAD,EAAenqL,MAAf,CAAT,CAAA;;AAEA,EAAA,SAASmqL,YAAT,GAAwB;AACtB,IAAA,OAAOnqL,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAA3D,CAAA;AACD,GAAA;;EAED0qM,YAAY,CAACruM,SAAb,CAAuB8tC,MAAvB,GAAgC,UAAU29I,YAAV,EAAwB19I,OAAxB,EAAiCxxB,GAAjC,EAAsC;AACpE,IAAA,IAAI4kH,SAAJ,CAAA;AACA,IAAA,IAAIb,SAAJ,CAAA;AACA,IAAA,IAAIguE,SAAJ,CAAA;IACAvgK,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAE,OAAA;KADZ,EAEG,UAAUgoJ,UAAV,EAAsB;MACvBzqE,SAAS,GAAGyqE,UAAU,CAACzqE,SAAvB,CAAA;AACAb,MAAAA,SAAS,GAAGsrE,UAAU,CAAC7qE,WAAX,CAAuBT,SAAvB,IAAoC,QAAhD,CAAA;MACAguE,SAAS,GAAGA,SAAS,IAAI,CAAC,CAAC1C,UAAU,CAAC7nE,KAAX,CAAiB/gI,MAA5C,CAAA;KALF,CAAA,CAAA;IAOA,IAAKi+H,CAAAA,UAAL,GAAkBE,SAAlB,CAAA;IACA,IAAKotE,CAAAA,UAAL,GAAkBjuE,SAAlB,CAAA;AACA54F,IAAAA,MAAA,CAAY+jJ,YAAY,CAACtzJ,GAAb,CAAiB,MAAjB,EAAyB,IAAzB,CAAZ,EAA4C,UAAUplB,IAAV,EAAgB;MAC1D04K,YAAY,CAACM,aAAb,CAA2Bh5K,IAA3B,EAAiC,CAACA,IAAI,KAAK,MAAT,GAAkButH,SAAS,KAAK,UAAhC,GAA6CvtH,IAAI,KAAK,OAAT,GAAmBu7L,SAAnB,GAA+Bv7L,IAAI,KAAKouH,SAAtF,IAAmG,UAAnG,GAAgH,QAAjJ,CAAA,CAAA;KADF,CAAA,CAAA;GAbF,CAAA;;EAkBAktE,YAAY,CAACruM,SAAb,CAAuBwtL,UAAvB,GAAoC,UAAU/B,YAAV,EAAwB19I,OAAxB,EAAiCxxB,GAAjC,EAAsC;AACxE,IAAA,IAAA,CAAKuxB,MAAL,CAAY29I,YAAZ,EAA0B19I,OAA1B,EAAmCxxB,GAAnC,CAAA,CAAA;GADF,CAAA;;AAIA8xL,EAAAA,YAAY,CAACruM,SAAb,CAAuBssL,QAAvB,GAAkC,YAAY;IAC5C,IAAIrwI,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;IACA,IAAIm0I,cAAc,GAAGn0I,KAAK,CAAC9jB,GAAN,CAAU,MAAV,EAAkB,IAAlB,CAArB,CAAA;IACA,IAAIk0J,KAAK,GAAG,EAAZ,CAAA;AACA3kJ,IAAAA,MAAA,CAAYuU,KAAK,CAAC9jB,GAAN,CAAU,MAAV,EAAkB,IAAlB,CAAZ,EAAqC,UAAUplB,IAAV,EAAgB;AACnD,MAAA,IAAIq9K,cAAc,CAACr9K,IAAD,CAAlB,EAA0B;AACxBs5K,QAAAA,KAAK,CAACt5K,IAAD,CAAL,GAAcq9K,cAAc,CAACr9K,IAAD,CAA5B,CAAA;AACD,OAAA;KAHH,CAAA,CAAA;AAKA,IAAA,OAAOs5K,KAAP,CAAA;GATF,CAAA;;AAYA,EAAA,CAAA;;EAEAgiB,YAAY,CAACruM,SAAb,CAAuBorG,OAAvB,GAAiC,UAAUr9D,OAAV,EAAmBxxB,GAAnB,EAAwBxJ,IAAxB,EAA8B;IAC7D,IAAIouH,SAAS,GAAG,IAAA,CAAKF,UAArB,CAAA;IACA,IAAIX,SAAS,GAAG,IAAA,CAAKiuE,UAArB,CAAA;;IAEA,IAAIx7L,IAAI,KAAK,OAAb,EAAsB;AACpB;MACAwJ,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,QAAAA,IAAI,EAAE,gBADW;AAEjBusH,QAAAA,SAAS,EAAE,EAAA;OAFb,CAAA,CAAA;MAIA/iH,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,QAAAA,IAAI,EAAE,OADW;AAEjBy7L,QAAAA,OAAO,EAAE,OAFQ;AAGjB;AACAzqE,QAAAA,KAAK,EAAE,EAAA;OAJT,CAAA,CAAA;AAMD,KAZD,MAYO;MACLxnH,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,QAAAA,IAAI,EAAE,kBADW;AAEjBhM,QAAAA,GAAG,EAAE,OAFY;AAGjBg6H,QAAAA,WAAW,EAAE;AACXI,UAAAA,SAAS,EAAEpuH,IAAI,KAAK,MAAT,GAAkBouH,SAAlB,GAA8BA,SAAS,KAAKpuH,IAAd,GAAqB,KAArB,GAA6BA,IAD3D;AAEXutH,UAAAA,SAAS,EAAEvtH,IAAI,KAAK,MAAT,GAAkButH,SAAS,KAAK,UAAd,GAA2B,QAA3B,GAAsC,UAAxD,GAAqEA,SAAAA;AAFrE,SAAA;OAHf,CAAA,CAAA;AAQD,KAAA;GAzBH,CAAA;;AA4BA,EAAA,CAAA;;AAEA+tE,EAAAA,YAAY,CAAC53I,gBAAb,GAAgC,UAAU1oB,OAAV,EAAmB;AACjD,IAAA,IAAIpb,aAAa,GAAG;AAClBI,MAAAA,IAAI,EAAE,IADY;AAElBhgB,MAAAA,IAAI,EAAEi9K,UAAU,CAACjnK,KAAX,EAFY;AAGlBooE,MAAAA,IAAI,EAAE;AACJ;AACAvuF,QAAAA,IAAI,EAAE,gQAFF;AAGJ+P,QAAAA,OAAO,EAAE,sbAHL;AAIJk1H,QAAAA,KAAK,EAAE,gNAJH;AAKJE,QAAAA,KAAK,EAAE,+LALH;AAMJ0mE,QAAAA,IAAI,EAAE,2KANF;QAOJ3rL,KAAK,EAAE,wMAPH;;AASJ;;OAZgB;AAelB;AACA0yG,MAAAA,KAAK,EAAEznF,OAAO,CAACwnI,cAAR,EAAyBp9I,CAAAA,GAAzB,CAA6B,CAAC,SAAD,EAAY,OAAZ,EAAqB,OAArB,CAA7B,CAAA;KAhBT,CAAA;AAkBA,IAAA,OAAOxF,aAAP,CAAA;GAnBF,CAAA;;AAsBA,EAAA,OAAO07K,YAAP,CAAA;AACD,CAhGD,CAgGEtkB,cAhGF,CAFA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiCO,SAAS3mK,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACksD,qBAAV,CAAgCo+H,SAAhC,CAAA,CAAA;EACAtqL,SAAS,CAAC6zC,sBAAV,CAAiC82I,UAAjC,CAAA,CAAA;EACA3qL,SAAS,CAACosD,oBAAV,CAA+Bs5H,iBAA/B,CAAA,CAAA;EACA1lL,SAAS,CAACqyB,cAAV,CAAyBryB,SAAS,CAACwyB,QAAV,CAAmByN,MAAnB,CAA0B+mF,KAAnD,EAA0DwhE,WAA1D,CAAA,CAAA;EACAxoL,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,OADiB;AAEvBgwC,IAAAA,KAAK,EAAE,OAFgB;AAGvB9mB,IAAAA,MAAM,EAAE,cAAA;AAHe,GAAzB,EAIG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4B;IAC7BA,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAE,OADU;AAEpBC,MAAAA,KAAK,EAAE/S,OAAAA;KAFT,EAGG,UAAU86J,UAAV,EAAsB;AACvBA,MAAAA,UAAU,CAACuC,QAAX,CAAoBr9J,OAAO,CAACizF,KAA5B,CAAA,CAAA;KAJF,CAAA,CAAA;GALF,CAAA,CAAA;AAYA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAEE1gH,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,aADiB;AAEvBgwC,IAAAA,KAAK,EAAE,eAFgB;AAGvB9mB,IAAAA,MAAM,EAAE,MAAA;AAHe,GAAzB,EAIG06C,IAJH,CAAA,CAAA;EAKAtzD,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,UADiB;AAEvBgwC,IAAAA,KAAK,EAAE,UAFgB;AAGvB9mB,IAAAA,MAAM,EAAE,MAAA;AAHe,GAAzB,EAIG06C,IAJH,CAAA,CAAA;AAKAqzG,EAAAA,eAAe,CAAC,OAAD,EAAUqkB,YAAV,CAAf,CAAA;AACD;;ACpGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmCA,IAAIK,UAAU;AACd;AACA,UAAUxqL,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACuqL,UAAD,EAAaxqL,MAAb,CAAT,CAAA;;AAEA,EAAA,SAASwqL,UAAT,GAAsB;AACpB,IAAA,IAAItqL,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa27L,UAAU,CAAC37L,IAAxB,CAAA;IACAqR,KAAK,CAACyuC,UAAN,GAAmB;AACjB9/C,MAAAA,IAAI,EAAE,KADW;AAEjBiiK,MAAAA,UAAU,EAAE,IAAA;KAFd,CAAA;AAIA,IAAA,OAAO5wJ,KAAP,CAAA;AACD,GAAA;;EAEDsqL,UAAU,CAAC37L,IAAX,GAAkB,OAAlB,CAAA;EACA27L,UAAU,CAAC/7K,aAAX,GAA2B;AACzB;AACAzG,IAAAA,CAAC,EAAE,CAFsB;AAGzB6G,IAAAA,IAAI,EAAE,IAHmB;AAIzB7rB,IAAAA,IAAI,EAAE,EAJmB;AAKzB2E,IAAAA,MAAM,EAAE,OALiB;AAMzB8iM,IAAAA,OAAO,EAAE,EANgB;AAOzBC,IAAAA,SAAS,EAAE,OAPc;AAQzB7qL,IAAAA,IAAI,EAAE,CARmB;AASzBC,IAAAA,GAAG,EAAE,CAToB;AAUzB9C,IAAAA,eAAe,EAAE,eAVQ;AAWzBi2B,IAAAA,WAAW,EAAE,MAXY;AAYzBvxB,IAAAA,WAAW,EAAE,CAZY;AAazBF,IAAAA,OAAO,EAAE,CAbgB;AAczB+kK,IAAAA,OAAO,EAAE,EAdgB;AAezBhiH,IAAAA,SAAS,EAAE;AACT3zD,MAAAA,QAAQ,EAAE,EADD;AAETK,MAAAA,UAAU,EAAE,MAFH;AAGT7P,MAAAA,KAAK,EAAE,SAAA;KAlBgB;AAoBzBupM,IAAAA,YAAY,EAAE;AACZ/5L,MAAAA,QAAQ,EAAE,EADE;AAEZxP,MAAAA,KAAK,EAAE,SAAA;AAFK,KAAA;GApBhB,CAAA;AAyBA,EAAA,OAAOopM,UAAP,CAAA;AACD,CAzCD,CAyCE37I,cAzCF,CAFA;;;AA8CA,IAAI+7I,SAAS;AACb;AACA,UAAU5qL,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC2qL,SAAD,EAAY5qL,MAAZ,CAAT,CAAA;;AAEA,EAAA,SAAS4qL,SAAT,GAAqB;AACnB,IAAA,IAAI1qL,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa+7L,SAAS,CAAC/7L,IAAvB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED0qL,SAAS,CAAC9uM,SAAV,CAAoB8tC,MAApB,GAA6B,UAAUihK,UAAV,EAAsBhhK,OAAtB,EAA+BxxB,GAA/B,EAAoC;IAC/D,IAAK8U,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;;AAEA,IAAA,IAAI,CAAC85K,UAAU,CAAC52K,GAAX,CAAe,MAAf,CAAL,EAA6B;AAC3B,MAAA,OAAA;AACD,KAAA;;IAED,IAAI9G,KAAK,GAAG,IAAA,CAAKA,KAAjB,CAAA;AACA,IAAA,IAAIqzC,cAAc,GAAGqqI,UAAU,CAAC92K,QAAX,CAAoB,WAApB,CAArB,CAAA;AACA,IAAA,IAAI+2K,iBAAiB,GAAGD,UAAU,CAAC92K,QAAX,CAAoB,cAApB,CAAxB,CAAA;AACA,IAAA,IAAIxjB,SAAS,GAAGs6L,UAAU,CAAC52K,GAAX,CAAe,WAAf,CAAhB,CAAA;AACA,IAAA,IAAIwgB,iBAAiB,GAAGjR,SAAA,CAAiBqnK,UAAU,CAAC52K,GAAX,CAAe,cAAf,CAAjB,EAAiD42K,UAAU,CAAC52K,GAAX,CAAe,mBAAf,CAAjD,CAAxB,CAAA;AACA,IAAA,IAAIwkB,MAAM,GAAG,IAAI5lB,MAAJ,CAAiB;AAC5BzyB,MAAAA,KAAK,EAAEghE,eAAe,CAACZ,cAAD,EAAiB;AACrCx9D,QAAAA,IAAI,EAAE6nM,UAAU,CAAC52K,GAAX,CAAe,MAAf,CAD+B;QAErC5zB,IAAI,EAAEmgE,cAAc,CAACa,YAAf,EAAA;AAF+B,OAAjB,EAGnB;AACD0pI,QAAAA,UAAU,EAAE,IAAA;AADX,OAHmB,CADM;AAO5B75K,MAAAA,EAAE,EAAE,EAAA;AAPwB,KAAjB,CAAb,CAAA;AASA,IAAA,IAAIkzB,QAAQ,GAAG3L,MAAM,CAACgM,eAAP,EAAf,CAAA;AACA,IAAA,IAAIumJ,OAAO,GAAGH,UAAU,CAAC52K,GAAX,CAAe,SAAf,CAAd,CAAA;AACA,IAAA,IAAIg3K,SAAS,GAAG,IAAIp4K,MAAJ,CAAiB;AAC/BzyB,MAAAA,KAAK,EAAEghE,eAAe,CAAC0pI,iBAAD,EAAoB;AACxC9nM,QAAAA,IAAI,EAAEgoM,OADkC;AAExC3qM,QAAAA,IAAI,EAAEyqM,iBAAiB,CAACzpI,YAAlB,EAFkC;QAGxC7kE,CAAC,EAAE4nD,QAAQ,CAAC5+C,MAAT,GAAkBqlM,UAAU,CAAC52K,GAAX,CAAe,SAAf,CAHmB;AAIxCmV,QAAAA,aAAa,EAAE,KAAA;AAJyB,OAApB,EAKnB;AACD2hK,QAAAA,UAAU,EAAE,IAAA;AADX,OALmB,CADS;AAS/B75K,MAAAA,EAAE,EAAE,EAAA;AAT2B,KAAjB,CAAhB,CAAA;AAWA,IAAA,IAAIi7E,IAAI,GAAG0+F,UAAU,CAAC52K,GAAX,CAAe,MAAf,CAAX,CAAA;AACA,IAAA,IAAIi3K,OAAO,GAAGL,UAAU,CAAC52K,GAAX,CAAe,SAAf,CAAd,CAAA;IACA,IAAI27B,YAAY,GAAGi7I,UAAU,CAAC52K,GAAX,CAAe,cAAf,EAA+B,IAA/B,CAAnB,CAAA;AACAwkB,IAAAA,MAAM,CAACnmB,MAAP,GAAgB,CAAC65E,IAAD,IAAS,CAACv8C,YAA1B,CAAA;AACAq7I,IAAAA,SAAS,CAAC34K,MAAV,GAAmB,CAAC44K,OAAD,IAAY,CAACt7I,YAAhC,CAAA;;AAEA,IAAA,IAAIu8C,IAAJ,EAAU;AACR1zD,MAAAA,MAAM,CAACa,EAAP,CAAU,OAAV,EAAmB,YAAY;QAC7B+yD,UAAU,CAACF,IAAD,EAAO,GAAM0+F,GAAAA,UAAU,CAAC52K,GAAX,CAAe,QAAf,CAAb,CAAV,CAAA;OADF,CAAA,CAAA;AAGD,KAAA;;AAED,IAAA,IAAIi3K,OAAJ,EAAa;AACXD,MAAAA,SAAS,CAAC3xJ,EAAV,CAAa,OAAb,EAAsB,YAAY;QAChC+yD,UAAU,CAAC6+F,OAAD,EAAU,GAAML,GAAAA,UAAU,CAAC52K,GAAX,CAAe,WAAf,CAAhB,CAAV,CAAA;OADF,CAAA,CAAA;AAGD,KAAA;;AAED+B,IAAAA,SAAS,CAACyiB,MAAD,CAAT,CAAkBnM,SAAlB,GAA8BtW,SAAS,CAACi1K,SAAD,CAAT,CAAqB3+J,SAArB,GAAiCsjB,YAAY,GAAG;AAC5ErjB,MAAAA,aAAa,EAAE,OAD6D;MAE5EE,cAAc,EAAEo+J,UAAU,CAACp+J,cAAAA;AAFiD,KAAH,GAGvE,IAHJ,CAAA;IAIAtf,KAAK,CAACO,GAAN,CAAU+qB,MAAV,CAAA,CAAA;IACAuyJ,OAAO,IAAI79K,KAAK,CAACO,GAAN,CAAUu9K,SAAV,CAAX,CAzD+D;;AA2D/D,IAAA,IAAIE,SAAS,GAAGh+K,KAAK,CAACs3B,eAAN,EAAhB,CAAA;AACA,IAAA,IAAI2mJ,YAAY,GAAGP,UAAU,CAAC7qJ,kBAAX,EAAnB,CAAA;AACAorJ,IAAAA,YAAY,CAAC7lM,KAAb,GAAqB4lM,SAAS,CAAC5lM,KAA/B,CAAA;AACA6lM,IAAAA,YAAY,CAAC5lM,MAAb,GAAsB2lM,SAAS,CAAC3lM,MAAhC,CAAA;AACA,IAAA,IAAI0kF,UAAU,GAAGhvB,aAAa,CAACkwI,YAAD,EAAe;AAC3C7lM,MAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADoC;MAE3ChZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;KAFoB,EAG3BosL,UAAU,CAAC52K,GAAX,CAAe,SAAf,CAH2B,CAA9B,CA/D+D;;IAoE/D,IAAI,CAAC1jB,SAAL,EAAgB;AACd;AACAA,MAAAA,SAAS,GAAGs6L,UAAU,CAAC52K,GAAX,CAAe,MAAf,CAAA,IAA0B42K,UAAU,CAAC52K,GAAX,CAAe,OAAf,CAAtC,CAFc;;MAId,IAAI1jB,SAAS,KAAK,QAAlB,EAA4B;AAC1BA,QAAAA,SAAS,GAAG,QAAZ,CAAA;AACD,OANa;;;MASd,IAAIA,SAAS,KAAK,OAAlB,EAA2B;AACzB25E,QAAAA,UAAU,CAAC3tF,CAAX,IAAgB2tF,UAAU,CAAC3kF,KAA3B,CAAA;AACD,OAFD,MAEO,IAAIgL,SAAS,KAAK,QAAlB,EAA4B;AACjC25E,QAAAA,UAAU,CAAC3tF,CAAX,IAAgB2tF,UAAU,CAAC3kF,KAAX,GAAmB,CAAnC,CAAA;AACD,OAAA;AACF,KAAA;;IAED,IAAI,CAACkvC,iBAAL,EAAwB;AACtBA,MAAAA,iBAAiB,GAAGo2J,UAAU,CAAC52K,GAAX,CAAe,KAAf,CAAA,IAAyB42K,UAAU,CAAC52K,GAAX,CAAe,QAAf,CAA7C,CADsB;;MAGtB,IAAIwgB,iBAAiB,KAAK,QAA1B,EAAoC;AAClCA,QAAAA,iBAAiB,GAAG,QAApB,CAAA;AACD,OAAA;;MAED,IAAIA,iBAAiB,KAAK,QAA1B,EAAoC;AAClCy1C,QAAAA,UAAU,CAAC1tF,CAAX,IAAgB0tF,UAAU,CAAC1kF,MAA3B,CAAA;AACD,OAFD,MAEO,IAAIivC,iBAAiB,KAAK,QAA1B,EAAoC;AACzCy1C,QAAAA,UAAU,CAAC1tF,CAAX,IAAgB0tF,UAAU,CAAC1kF,MAAX,GAAoB,CAApC,CAAA;AACD,OAAA;;MAEDivC,iBAAiB,GAAGA,iBAAiB,IAAI,KAAzC,CAAA;AACD,KAAA;;AAEDtnB,IAAAA,KAAK,CAAC5wB,CAAN,GAAU2tF,UAAU,CAAC3tF,CAArB,CAAA;AACA4wB,IAAAA,KAAK,CAAC3wB,CAAN,GAAU0tF,UAAU,CAAC1tF,CAArB,CAAA;AACA2wB,IAAAA,KAAK,CAACsL,UAAN,EAAA,CAAA;AACA,IAAA,IAAI4yK,UAAU,GAAG;AACfliK,MAAAA,KAAK,EAAE54B,SADQ;AAEf64B,MAAAA,aAAa,EAAEqL,iBAAAA;KAFjB,CAAA;IAIAgE,MAAM,CAAC9qB,QAAP,CAAgB09K,UAAhB,CAAA,CAAA;AACAJ,IAAAA,SAAS,CAACt9K,QAAV,CAAmB09K,UAAnB,EA5G+D;AA6G/D;;AAEAF,IAAAA,SAAS,GAAGh+K,KAAK,CAACs3B,eAAN,EAAZ,CAAA;AACA,IAAA,IAAIjjC,OAAO,GAAG0oE,UAAU,CAACzoE,MAAzB,CAAA;IACA,IAAIrhB,KAAK,GAAGyqM,UAAU,CAAC72K,YAAX,CAAwB,CAAC,OAAD,EAAU,SAAV,CAAxB,CAAZ,CAAA;IACA5zB,KAAK,CAACC,IAAN,GAAawqM,UAAU,CAAC52K,GAAX,CAAe,iBAAf,CAAb,CAAA;AACA,IAAA,IAAIv1B,IAAI,GAAG,IAAIm0B,MAAJ,CAAiB;AAC1BzrB,MAAAA,KAAK,EAAE;QACL7K,CAAC,EAAE4uM,SAAS,CAAC5uM,CAAV,GAAcilB,OAAO,CAAC,CAAD,CADnB;QAELhlB,CAAC,EAAE2uM,SAAS,CAAC3uM,CAAV,GAAcglB,OAAO,CAAC,CAAD,CAFnB;AAGLjc,QAAAA,KAAK,EAAE4lM,SAAS,CAAC5lM,KAAV,GAAkBic,OAAO,CAAC,CAAD,CAAzB,GAA+BA,OAAO,CAAC,CAAD,CAHxC;AAILhc,QAAAA,MAAM,EAAE2lM,SAAS,CAAC3lM,MAAV,GAAmBgc,OAAO,CAAC,CAAD,CAA1B,GAAgCA,OAAO,CAAC,CAAD,CAJ1C;AAKLpkB,QAAAA,CAAC,EAAEytM,UAAU,CAAC52K,GAAX,CAAe,cAAf,CAAA;OANqB;AAQ1B7zB,MAAAA,KAAK,EAAEA,KARmB;AAS1Bg/D,MAAAA,gBAAgB,EAAE,IATQ;AAU1B9sC,MAAAA,MAAM,EAAE,IAAA;AAVkB,KAAjB,CAAX,CAAA;IAYAnF,KAAK,CAACO,GAAN,CAAUhvB,IAAV,CAAA,CAAA;GA/HF,CAAA;;EAkIAksM,SAAS,CAAC/7L,IAAV,GAAiB,OAAjB,CAAA;AACA,EAAA,OAAO+7L,SAAP,CAAA;AACD,CA9ID,CA8IE3hI,aA9IF,CAFA,CAAA;;AAkJO,SAAS/pD,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiCw3I,UAAjC,CAAA,CAAA;EACArrL,SAAS,CAACksD,qBAAV,CAAgCu/H,SAAhC,CAAA,CAAA;AACD;;ACvPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,IAAIU,aAAa;AACjB;AACA,UAAUtrL,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACqrL,aAAD,EAAgBtrL,MAAhB,CAAT,CAAA;;AAEA,EAAA,SAASsrL,aAAT,GAAyB;AACvB,IAAA,IAAIprL,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAay8L,aAAa,CAACz8L,IAA3B,CAAA;IACAqR,KAAK,CAACyuC,UAAN,GAAmB,KAAnB,CAAA;AACA,IAAA,OAAOzuC,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;EAGEorL,aAAa,CAACxvM,SAAd,CAAwBytC,IAAxB,GAA+B,UAAU5c,MAAV,EAAkBsgD,WAAlB,EAA+BpjC,OAA/B,EAAwC;AACrE,IAAA,IAAA,CAAKooB,oBAAL,CAA0BtlC,MAA1B,EAAkCkd,OAAlC,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAK0hK,SAAL,EAAA,CAAA;GAHF,CAAA;AAKA;AACF;AACA;;;AAGED,EAAAA,aAAa,CAACxvM,SAAd,CAAwBquD,WAAxB,GAAsC,UAAUx9B,MAAV,EAAkB;IACtD3M,MAAM,CAAClkB,SAAP,CAAiBquD,WAAjB,CAA6B39B,KAA7B,CAAmC,IAAnC,EAAyC/sB,SAAzC,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAK8rM,SAAL,EAAA,CAAA;GAHF,CAAA;;AAMAD,EAAAA,aAAa,CAACxvM,SAAd,CAAwB0vM,eAAxB,GAA0C,UAAUC,YAAV,EAAwB;IAChE,IAAIA,YAAY,IAAI,IAApB,EAA0B;AACxBA,MAAAA,YAAY,GAAG,IAAA,CAAK9+K,MAAL,CAAY8+K,YAA3B,CAAA;AACD,KAAA;;AAED,IAAA,IAAI/nK,KAAK,GAAG,IAAA,CAAKpM,KAAL,CAAWoM,KAAX,EAAZ,CAAA;;AAEA,IAAA,IAAI,IAAK/W,CAAAA,MAAL,CAAYkoF,IAAhB,EAAsB;MACpB42F,YAAY,GAAG,CAACA,YAAY,GAAG/nK,KAAf,GAAuBA,KAAxB,IAAiCA,KAAhD,CAAA;AACD,KAFD,MAEO;AACL+nK,MAAAA,YAAY,IAAI/nK,KAAhB,KAA0B+nK,YAAY,GAAG/nK,KAAK,GAAG,CAAjD,CAAA,CAAA;AACA+nK,MAAAA,YAAY,GAAG,CAAf,KAAqBA,YAAY,GAAG,CAApC,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAK9+K,MAAL,CAAY8+K,YAAZ,GAA2BA,YAA3B,CAAA;GAdF,CAAA;AAgBA;AACF;AACA;;;AAGEH,EAAAA,aAAa,CAACxvM,SAAd,CAAwB4vM,eAAxB,GAA0C,YAAY;IACpD,OAAO,IAAA,CAAK/+K,MAAL,CAAY8+K,YAAnB,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEH,EAAAA,aAAa,CAACxvM,SAAd,CAAwB6vM,UAAxB,GAAqC,YAAY;IAC/C,OAAO,IAAA,CAAKD,eAAL,EAA0B,IAAA,IAAA,CAAKp0K,KAAL,CAAWoM,KAAX,KAAqB,CAAtD,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGE4nK,EAAAA,aAAa,CAACxvM,SAAd,CAAwB8vM,YAAxB,GAAuC,UAAU5tJ,KAAV,EAAiB;AACtD,IAAA,IAAA,CAAKrxB,MAAL,CAAYk/K,QAAZ,GAAuB,CAAC,CAAC7tJ,KAAzB,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEstJ,EAAAA,aAAa,CAACxvM,SAAd,CAAwBgwM,YAAxB,GAAuC,YAAY;AACjD,IAAA,OAAO,CAAC,CAAC,IAAKn/K,CAAAA,MAAL,CAAYk/K,QAArB,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEP,EAAAA,aAAa,CAACxvM,SAAd,CAAwByvM,SAAxB,GAAoC,YAAY;IAC9C,IAAI54I,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;AACA,IAAA,IAAIo/K,OAAO,GAAGp5I,UAAU,CAAC3iC,IAAX,IAAmB,EAAjC,CAAA;AACA,IAAA,IAAI6hC,QAAQ,GAAGc,UAAU,CAACd,QAA1B,CAAA;AACA,IAAA,IAAIwiC,KAAK,GAAG,IAAK23G,CAAAA,MAAL,GAAc,EAA1B,CAAA;AACA,IAAA,IAAIC,gBAAJ,CAAA;;IAEA,IAAIp6I,QAAQ,KAAK,UAAjB,EAA6B;AAC3Bo6I,MAAAA,gBAAgB,GAAG,EAAnB,CAAA;AACAzjM,MAAAA,MAAI,CAACujM,OAAD,EAAU,UAAU19L,IAAV,EAAgB0sC,KAAhB,EAAuB;QACnC,IAAI/f,KAAK,GAAGskE,mBAAmB,CAAC4sG,gBAAgB,CAAC79L,IAAD,CAAjB,EAAyB,EAAzB,CAA/B,CAAA;AACA,QAAA,IAAIq+H,OAAJ,CAAA;;AAEA,QAAA,IAAIp0H,UAAQ,CAACjK,IAAD,CAAZ,EAAoB;AAClBq+H,UAAAA,OAAO,GAAGt3H,OAAK,CAAC/G,IAAD,CAAf,CAAA;UACAq+H,OAAO,CAAC1xG,KAAR,GAAgB+f,KAAhB,CAAA;AACD,SAHD,MAGO;AACL2xF,UAAAA,OAAO,GAAG3xF,KAAV,CAAA;AACD,SAAA;;QAEDkxJ,gBAAgB,CAACpsM,IAAjB,CAAsB6sI,OAAtB,CAAA,CAAA;QACAr4C,KAAK,CAACx0F,IAAN,CAAWm7B,KAAX,CAAA,CAAA;AACD,OAbG,CAAJ,CAAA;AAcD,KAhBD,MAgBO;AACLixK,MAAAA,gBAAgB,GAAGF,OAAnB,CAAA;AACD,KAAA;;AAED,IAAA,IAAII,OAAO,GAAG;AACZ96I,MAAAA,QAAQ,EAAE,SADE;AAEZhmD,MAAAA,IAAI,EAAE,MAFM;AAGZ2vB,MAAAA,KAAK,EAAE,QAAA;KACP62B,CAAAA,QAJY,KAIC,QAJf,CAAA;IAKA,IAAI7hC,IAAI,GAAG,IAAKsH,CAAAA,KAAL,GAAa,IAAI6xB,UAAJ,CAAe,CAAC;AACtC3mD,MAAAA,IAAI,EAAE,OADgC;AAEtCqM,MAAAA,IAAI,EAAEs9L,OAAAA;KAF+B,CAAf,EAGpB,IAHoB,CAAxB,CAAA;AAIAn8K,IAAAA,IAAI,CAACo5B,QAAL,CAAc6iJ,gBAAd,EAAgC53G,KAAhC,CAAA,CAAA;GApCF,CAAA;;AAuCAi3G,EAAAA,aAAa,CAACxvM,SAAd,CAAwB+xB,OAAxB,GAAkC,YAAY;AAC5C,IAAA,OAAO,KAAKyJ,KAAZ,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;;;AAGEg0K,EAAAA,aAAa,CAACxvM,SAAd,CAAwBi3D,aAAxB,GAAwC,YAAY;AAClD,IAAA,IAAI,KAAK9+B,GAAL,CAAS,UAAT,CAAA,KAAyB,UAA7B,EAAyC;AACvC,MAAA,OAAO,IAAK+3K,CAAAA,MAAL,CAAYnnL,KAAZ,EAAP,CAAA;AACD,KAAA;GAHH,CAAA;;EAMAymL,aAAa,CAACz8L,IAAd,GAAqB,UAArB,CAAA;AACA;AACF;AACA;;EAEEy8L,aAAa,CAAC78K,aAAd,GAA8B;AAC5B;AACAzG,IAAAA,CAAC,EAAE,CAFyB;AAG5B6G,IAAAA,IAAI,EAAE,IAHsB;AAI5BgjC,IAAAA,QAAQ,EAAE,MAJkB;AAK5Bg0E,IAAAA,QAAQ,EAAE,IALkB;AAM5BhmH,IAAAA,IAAI,EAAE,KANsB;AAO5BC,IAAAA,GAAG,EAAE,IAPuB;AAQ5BkrC,IAAAA,KAAK,EAAE,KARqB;AAS5BC,IAAAA,MAAM,EAAE,CAToB;AAU5B1lD,IAAAA,KAAK,EAAE,IAVqB;AAW5BC,IAAAA,MAAM,EAAE,EAXoB;AAY5Bgc,IAAAA,OAAO,EAAE,CAZmB;AAa5B4qL,IAAAA,eAAe,EAAE,MAbW;AAc5BP,IAAAA,QAAQ,EAAE,KAdkB;AAe5BQ,IAAAA,MAAM,EAAE,KAfoB;AAgB5Bx3F,IAAAA,IAAI,EAAE,IAhBsB;AAiB5By3F,IAAAA,YAAY,EAAE,IAjBc;AAkB5Bb,IAAAA,YAAY,EAAE,CAlBc;AAmB5Bt9K,IAAAA,SAAS,EAAE,EAnBiB;AAoB5BQ,IAAAA,KAAK,EAAE;AACLvtB,MAAAA,KAAK,EAAE,MAAA;KArBmB;AAuB5B4uB,IAAAA,IAAI,EAAE,EAAA;GAvBR,CAAA;AAyBA,EAAA,OAAOs7K,aAAP,CAAA;AACD,CAzKD,CAyKEz8I,cAzKF,CAFA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,IAAI09I,mBAAmB;AACvB;AACA,UAAUvsL,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACssL,mBAAD,EAAsBvsL,MAAtB,CAAT,CAAA;;AAEA,EAAA,SAASusL,mBAAT,GAA+B;AAC7B,IAAA,IAAIrsL,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa09L,mBAAmB,CAAC19L,IAAjC,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDqsL,mBAAmB,CAAC19L,IAApB,GAA2B,iBAA3B,CAAA;AACA;AACF;AACA;;EAEE09L,mBAAmB,CAAC99K,aAApB,GAAoCokB,oBAAoB,CAACy4J,aAAa,CAAC78K,aAAf,EAA8B;AACpFzR,IAAAA,eAAe,EAAE,eADmE;AAEpFi2B,IAAAA,WAAW,EAAE,MAFuE;AAGpFvxB,IAAAA,WAAW,EAAE,CAHuE;AAIpF41E,IAAAA,MAAM,EAAE,YAJ4E;AAKpFt1D,IAAAA,OAAO,EAAE,KAL2E;AAMpF6tB,IAAAA,OAAO,EAAE;MACPglB,OAAO,EAAE,MADF;;KAN2E;AAUpF3mD,IAAAA,MAAM,EAAE,QAV4E;AAWpFiB,IAAAA,UAAU,EAAE,EAXwE;AAYpF1B,IAAAA,SAAS,EAAE;AACToB,MAAAA,IAAI,EAAE,IADG;AAETtpB,MAAAA,KAAK,EAAE,CAFE;AAGTnE,MAAAA,KAAK,EAAE,SAAA;KAf2E;AAiBpFutB,IAAAA,KAAK,EAAE;AACL/O,MAAAA,QAAQ,EAAE,MADL;AAEL;AACA;AACA;AACAiP,MAAAA,IAAI,EAAE,IALD;AAML+hC,MAAAA,QAAQ,EAAE,MANL;AAOL5b,MAAAA,MAAM,EAAE,CAPH;AAQL;AACA;AACA5zC,MAAAA,KAAK,EAAE,SAAA;KA3B2E;AA6BpF+sB,IAAAA,SAAS,EAAE;AACT/sB,MAAAA,KAAK,EAAE,SADE;AAETsgB,MAAAA,WAAW,EAAE,CAAA;KA/BqE;AAiCpF8qL,IAAAA,eAAe,EAAE;AACft+K,MAAAA,MAAM,EAAE,QADO;AAEfiB,MAAAA,UAAU,EAAE,EAFG;AAGf/tB,MAAAA,KAAK,EAAE,SAHQ;AAIf6xC,MAAAA,WAAW,EAAE,MAJE;AAKfvxB,MAAAA,WAAW,EAAE,CALE;AAMftP,MAAAA,UAAU,EAAE,CANG;AAOfJ,MAAAA,aAAa,EAAE,CAPA;AAQfE,MAAAA,aAAa,EAAE,CARA;AASfG,MAAAA,WAAW,EAAE,oBATE;AAUf;AACA3J,MAAAA,SAAS,EAAE,IAXI;AAYfijD,MAAAA,iBAAiB,EAAE,GAZJ;AAafn8B,MAAAA,eAAe,EAAE,cAAA;KA9CiE;AAgDpFi9K,IAAAA,YAAY,EAAE;AACZ59K,MAAAA,IAAI,EAAE,IADM;AAEZ69K,MAAAA,WAAW,EAAE,IAFD;AAGZC,MAAAA,WAAW,EAAE,IAHD;AAIZC,MAAAA,WAAW,EAAE,IAJD;AAKZr6E,MAAAA,QAAQ,EAAE,EALE;AAMZg0D,MAAAA,OAAO,EAAE,EANG;AAOZ3mK,MAAAA,QAAQ,EAAE,MAPE;AAQZitL,MAAAA,QAAQ,EAAE,2UARE;AASZC,MAAAA,QAAQ,EAAE,gdATE;AAUZ;AACAC,MAAAA,QAAQ,EAAE,kLAXE;AAYZ;AACAC,MAAAA,QAAQ,EAAE,iLAbE;AAcZC,MAAAA,WAAW,EAAE,EAdD;AAeZC,MAAAA,WAAW,EAAE,EAfD;AAgBZ9rM,MAAAA,KAAK,EAAE,SAhBK;AAiBZ6xC,MAAAA,WAAW,EAAE,SAjBD;AAkBZvxB,MAAAA,WAAW,EAAE,CAAA;KAlEqE;AAoEpFsN,IAAAA,QAAQ,EAAE;AACRL,MAAAA,KAAK,EAAE;AACLE,QAAAA,IAAI,EAAE,IADD;AAEL;AACAztB,QAAAA,KAAK,EAAE,SAAA;OAJD;AAMR+sB,MAAAA,SAAS,EAAE;AACT/sB,QAAAA,KAAK,EAAE,SAAA;OAPD;AASRqrM,MAAAA,YAAY,EAAE;AACZrrM,QAAAA,KAAK,EAAE,SADK;AAEZ6xC,QAAAA,WAAW,EAAE,SAFD;AAGZvxB,QAAAA,WAAW,EAAE,CAAA;AAHD,OAAA;KA7EoE;AAmFpFquB,IAAAA,QAAQ,EAAE;AACRtiB,MAAAA,SAAS,EAAE;AACTrsB,QAAAA,KAAK,EAAE,SAAA;OAFD;AAIR+sB,MAAAA,SAAS,EAAE;AACT/sB,QAAAA,KAAK,EAAE,SAAA;OALD;AAORutB,MAAAA,KAAK,EAAE;AACLvtB,QAAAA,KAAK,EAAE,SAAA;AADF,OAAA;KA1F2E;AA8FpF4uB,IAAAA,IAAI,EAAE,EAAA;AA9F8E,GAA9B,CAAxD,CAAA;AAgGA,EAAA,OAAOu8K,mBAAP,CAAA;AACD,CAhHD,CAgHEjB,aAhHF,CAFA,CAAA;;AAoHAn+D,KAAK,CAACo/D,mBAAD,EAAsBY,eAAe,CAACrxM,SAAtC,CAAL;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAIsxM,YAAY;AAChB;AACA,UAAUptL,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACmtL,YAAD,EAAeptL,MAAf,CAAT,CAAA;;AAEA,EAAA,SAASotL,YAAT,GAAwB;AACtB,IAAA,IAAIltL,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAau+L,YAAY,CAACv+L,IAA1B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDktL,YAAY,CAACv+L,IAAb,GAAoB,UAApB,CAAA;AACA,EAAA,OAAOu+L,YAAP,CAAA;AACD,CAZD,CAYEnkI,aAZF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA;AACA;AACA;;AAEA,IAAIokI,YAAY;AAChB;AACA,UAAUrtL,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACotL,YAAD,EAAertL,MAAf,CAAT,CAAA;;EAEA,SAASqtL,YAAT,CAAsBxzK,GAAtB,EAA2BzX,KAA3B,EAAkC8zC,WAAlC,EAA+CrE,QAA/C,EAAyD;AACvD,IAAA,IAAI3xC,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,IAAZ,EAAkB0Z,GAAlB,EAAuBzX,KAAvB,EAA8B8zC,WAA9B,KAA8C,IAA1D,CAAA;;AAEAh2C,IAAAA,KAAK,CAACrR,IAAN,GAAagjD,QAAQ,IAAI,OAAzB,CAAA;AACA,IAAA,OAAO3xC,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGEmtL,EAAAA,YAAY,CAACvxM,SAAb,CAAuBo/J,aAAvB,GAAuC,YAAY;AACjD;AACA,IAAA,OAAO,KAAKnjH,KAAL,CAAWhkB,QAAX,CAAoB,OAApB,CAAP,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;AAGEs5K,EAAAA,YAAY,CAACvxM,SAAb,CAAuBgmC,YAAvB,GAAsC,YAAY;AAChD,IAAA,OAAO,KAAKiW,KAAL,CAAW9jB,GAAX,CAAe,QAAf,MAA6B,YAApC,CAAA;GADF,CAAA;;AAIA,EAAA,OAAOo5K,YAAP,CAAA;AACD,CA5BD,CA4BE/2I,IA5BF,CAFA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4CA,IAAI56D,EAAE,GAAGJ,IAAI,CAACI,EAAd,CAAA;AACA,IAAI4xM,mBAAmB,GAAGnkI,SAAS,EAAnC,CAAA;;AAEA,IAAIokI,kBAAkB;AACtB;AACA,UAAUvtL,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACstL,kBAAD,EAAqBvtL,MAArB,CAAT,CAAA;;AAEA,EAAA,SAASutL,kBAAT,GAA8B;AAC5B,IAAA,IAAIrtL,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa0+L,kBAAkB,CAAC1+L,IAAhC,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDqtL,kBAAkB,CAACzxM,SAAnB,CAA6BytC,IAA7B,GAAoC,UAAUM,OAAV,EAAmBxxB,GAAnB,EAAwB;IAC1D,IAAKA,CAAAA,GAAL,GAAWA,GAAX,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;EAGEk1L,kBAAkB,CAACzxM,SAAnB,CAA6B8tC,MAA7B,GAAsC,UAAU4jK,aAAV,EAAyB3jK,OAAzB,EAAkCxxB,GAAlC,EAAuC;IAC3E,IAAK0/B,CAAAA,KAAL,GAAay1J,aAAb,CAAA;IACA,IAAKn1L,CAAAA,GAAL,GAAWA,GAAX,CAAA;IACA,IAAKwxB,CAAAA,OAAL,GAAeA,OAAf,CAAA;IACA,IAAK1c,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;;IAEA,IAAIy8K,aAAa,CAACv5K,GAAd,CAAkB,MAAlB,EAA0B,IAA1B,CAAJ,EAAqC;MACnC,IAAIw5K,YAAY,GAAG,IAAKC,CAAAA,OAAL,CAAaF,aAAb,EAA4Bn1L,GAA5B,CAAnB,CAAA;;AAEA,MAAA,IAAIs1L,WAAW,GAAG,IAAA,CAAKC,YAAL,CAAkB,YAAlB,CAAlB,CAAA;;AAEA,MAAA,IAAIC,UAAU,GAAG,IAAA,CAAKD,YAAL,CAAkB,aAAlB,CAAjB,CAAA;;MAEA,IAAIE,MAAM,GAAG,IAAA,CAAKr+B,KAAL,GAAa,IAAKs+B,CAAAA,WAAL,CAAiBN,YAAjB,EAA+BD,aAA/B,CAA1B,CAAA;;AAEAA,MAAAA,aAAa,CAAC7/H,aAAd,GAA8B,UAAU19C,SAAV,EAAqB;AACjD,QAAA,IAAIztB,IAAI,GAAGsrM,MAAM,CAAC1rL,KAAP,CAAaqgJ,QAAb,CAAsB;AAC/BznI,UAAAA,KAAK,EAAE/K,SAAAA;AADwB,SAAtB,CAAX,CAAA;QAGA,OAAOi+C,mBAAmB,CAAC,WAAD,EAAc;AACtC8/H,UAAAA,MAAM,EAAE,IAD8B;AAEtChzK,UAAAA,KAAK,EAAEx4B,IAAAA;AAF+B,SAAd,CAA1B,CAAA;OAJF,CAAA;;AAUAgG,MAAAA,MAAI,CAAC,CAAC,UAAD,EAAa,UAAb,EAAyB,SAAzB,EAAoC,gBAApC,CAAD,EAAwD,UAAUhG,IAAV,EAAgB;QAC1E,IAAK,CAAA,SAAA,GAAYA,IAAjB,CAAuBirM,CAAAA,YAAvB,EAAqCE,WAArC,EAAkDG,MAAlD,EAA0DN,aAA1D,CAAA,CAAA;OADE,EAED,IAFC,CAAJ,CAAA;;MAIA,IAAKS,CAAAA,gBAAL,CAAsBR,YAAtB,EAAoCI,UAApC,EAAgDC,MAAhD,EAAwDN,aAAxD,CAAA,CAAA;;AAEA,MAAA,IAAA,CAAKU,SAAL,CAAeT,YAAf,EAA6BD,aAA7B,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKW,WAAL,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAKC,kBAAL,EAAA,CAAA;GApCF,CAAA;AAsCA;AACF;AACA;;;AAGEb,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6Bo8B,MAA7B,GAAsC,YAAY;AAChD,IAAA,IAAA,CAAKm2K,WAAL,EAAA,CAAA;;IAEA,IAAKlhL,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;GAHF,CAAA;AAKA;AACF;AACA;;;AAGEw8K,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6B4iB,OAA7B,GAAuC,YAAY;AACjD,IAAA,IAAA,CAAK2vL,WAAL,EAAA,CAAA;GADF,CAAA;;EAIAd,kBAAkB,CAACzxM,SAAnB,CAA6B4xM,OAA7B,GAAuC,UAAUF,aAAV,EAAyBn1L,GAAzB,EAA8B;IACnE,IAAIi2L,WAAW,GAAGd,aAAa,CAACv5K,GAAd,CAAkB,CAAC,OAAD,EAAU,UAAV,CAAlB,CAAlB,CAAA;AACA,IAAA,IAAIqjE,MAAM,GAAGk2G,aAAa,CAACv5K,GAAd,CAAkB,QAAlB,CAAb,CAAA;AACA,IAAA,IAAIisB,QAAQ,GAAGH,WAAW,CAACytJ,aAAD,EAAgBn1L,GAAhB,CAA1B,CAAA;IACA,IAAIk2L,cAAJ,CAJmE;;AAMnE,IAAA,IAAID,WAAW,IAAI,IAAf,IAAuBA,WAAW,KAAK,MAA3C,EAAmD;AACjDC,MAAAA,cAAc,GAAGj3G,MAAM,KAAK,YAAX,GAA0Bp3C,QAAQ,CAAC1jD,CAAT,GAAa0jD,QAAQ,CAAC16C,MAAT,GAAkB,CAA/B,GAAmC6S,GAAG,CAACoG,SAAJ,KAAkB,CAArD,GAAyD,GAAzD,GAA+D,GAAzF,GAA+FyhC,QAAQ,CAAC3jD,CAAT,GAAa2jD,QAAQ,CAAC36C,KAAT,GAAiB,CAA9B,GAAkC8S,GAAG,CAACmG,QAAJ,EAAA,GAAiB,CAAnD,GAAuD,GAAvD,GAA6D,GAA7K,CAAA;AACD,KAFD,MAEO,IAAIpV,QAAQ,CAACklM,WAAD,CAAZ,EAA2B;AAChCC,MAAAA,cAAc,GAAG;AACfz0E,QAAAA,UAAU,EAAE;AACVh6G,UAAAA,GAAG,EAAE,GADK;AAEVmrC,UAAAA,MAAM,EAAE,GAAA;SAHK;AAKf8uE,QAAAA,QAAQ,EAAE;AACRl6G,UAAAA,IAAI,EAAE,GADE;AAERmrC,UAAAA,KAAK,EAAE,GAAA;AAFC,SAAA;OAIVssC,CAAAA,MATe,CASPg3G,CAAAA,WATO,CAAjB,CAAA;AAUD,KAXM,MAWA;AACL;AACAC,MAAAA,cAAc,GAAGD,WAAjB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIE,aAAa,GAAG;AAClB10E,MAAAA,UAAU,EAAE,QADM;MAElBC,QAAQ,EAAEw0E,cAAc,IAAI,CAAlB,IAAuBA,cAAc,KAAK,GAA1C,GAAgD,MAAhD,GAAyD,OAAA;KAFrE,CAAA;AAIA,IAAA,IAAIE,gBAAgB,GAAG;MACrB30E,UAAU,EAAEy0E,cAAc,IAAI,CAAlB,IAAuBA,cAAc,KAAK,GAA1C,GAAgD,KAAhD,GAAwD,QAD/C;AAErBx0E,MAAAA,QAAQ,EAAE,QAAA;KAFZ,CAAA;AAIA,IAAA,IAAI20E,WAAW,GAAG;AAChB50E,MAAAA,UAAU,EAAE,CADI;MAEhBC,QAAQ,EAAEr+H,EAAE,GAAG,CAAA;AAFC,KAAlB,CAhCmE;;AAqCnE,IAAA,IAAIizM,UAAU,GAAGr3G,MAAM,KAAK,UAAX,GAAwBp3C,QAAQ,CAAC16C,MAAjC,GAA0C06C,QAAQ,CAAC36C,KAApE,CAAA;AACA,IAAA,IAAIqpM,YAAY,GAAGpB,aAAa,CAACz5K,QAAd,CAAuB,cAAvB,CAAnB,CAAA;IACA,IAAI86K,WAAW,GAAGD,YAAY,CAAC36K,GAAb,CAAiB,MAAjB,EAAyB,IAAzB,CAAlB,CAAA;IACA,IAAI66K,WAAW,GAAGD,WAAW,GAAGD,YAAY,CAAC36K,GAAb,CAAiB,UAAjB,CAAH,GAAkC,CAA/D,CAAA;IACA,IAAI86K,UAAU,GAAGF,WAAW,GAAGD,YAAY,CAAC36K,GAAb,CAAiB,SAAjB,CAAH,GAAiC,CAA7D,CAAA;AACA,IAAA,IAAI+6K,WAAW,GAAGF,WAAW,GAAGC,UAAhC,CA1CmE;;AA4CnE,IAAA,IAAI9qI,aAAa,GAAGupI,aAAa,CAACv5K,GAAd,CAAkB,CAAC,OAAD,EAAU,QAAV,CAAlB,CAAA,IAA0C,CAA9D,CAAA;AACAgwC,IAAAA,aAAa,GAAGA,aAAa,GAAGvoE,EAAhB,GAAqB,GAArC,CA7CmE;;AA+CnE,IAAA,IAAIuzM,YAAJ,CAAA;AACA,IAAA,IAAIC,eAAJ,CAAA;AACA,IAAA,IAAIC,eAAJ,CAAA;IACA,IAAI/C,eAAe,GAAGwC,YAAY,CAAC36K,GAAb,CAAiB,UAAjB,EAA6B,IAA7B,CAAtB,CAAA;IACA,IAAIy4K,WAAW,GAAGmC,WAAW,IAAID,YAAY,CAAC36K,GAAb,CAAiB,aAAjB,EAAgC,IAAhC,CAAjC,CAAA;IACA,IAAI04K,WAAW,GAAGkC,WAAW,IAAID,YAAY,CAAC36K,GAAb,CAAiB,aAAjB,EAAgC,IAAhC,CAAjC,CAAA;IACA,IAAI24K,WAAW,GAAGiC,WAAW,IAAID,YAAY,CAAC36K,GAAb,CAAiB,aAAjB,EAAgC,IAAhC,CAAjC,CAAA;IACA,IAAIm7K,KAAK,GAAG,CAAZ,CAAA;AACA,IAAA,IAAIC,MAAM,GAAGV,UAAb,CAvDmE;;AAyDnE,IAAA,IAAIvC,eAAe,KAAK,MAApB,IAA8BA,eAAe,KAAK,QAAtD,EAAgE;AAC9DM,MAAAA,WAAW,KAAKuC,YAAY,GAAG,CAAC,CAAD,EAAI,CAAJ,CAAf,EAAuBG,KAAK,IAAIJ,WAArC,CAAX,CAAA;AACArC,MAAAA,WAAW,KAAKuC,eAAe,GAAG,CAACE,KAAD,EAAQ,CAAR,CAAlB,EAA8BA,KAAK,IAAIJ,WAA5C,CAAX,CAAA;AACApC,MAAAA,WAAW,KAAKuC,eAAe,GAAG,CAACE,MAAM,GAAGP,WAAV,EAAuB,CAAvB,CAAlB,EAA6CO,MAAM,IAAIL,WAA5D,CAAX,CAAA;AACD,KAJD,MAIO;AACL;AACAtC,MAAAA,WAAW,KAAKuC,YAAY,GAAG,CAACI,MAAM,GAAGP,WAAV,EAAuB,CAAvB,CAAf,EAA0CO,MAAM,IAAIL,WAAzD,CAAX,CAAA;AACArC,MAAAA,WAAW,KAAKuC,eAAe,GAAG,CAAC,CAAD,EAAI,CAAJ,CAAlB,EAA0BE,KAAK,IAAIJ,WAAxC,CAAX,CAAA;AACApC,MAAAA,WAAW,KAAKuC,eAAe,GAAG,CAACE,MAAM,GAAGP,WAAV,EAAuB,CAAvB,CAAlB,EAA6CO,MAAM,IAAIL,WAA5D,CAAX,CAAA;AACD,KAAA;;AAED,IAAA,IAAI1nK,UAAU,GAAG,CAAC8nK,KAAD,EAAQC,MAAR,CAAjB,CAAA;;AAEA,IAAA,IAAI7B,aAAa,CAACv5K,GAAd,CAAkB,SAAlB,CAAJ,EAAkC;AAChCqT,MAAAA,UAAU,CAACrB,OAAX,EAAA,CAAA;AACD,KAAA;;IAED,OAAO;AACLia,MAAAA,QAAQ,EAAEA,QADL;AAELyuJ,MAAAA,UAAU,EAAEA,UAFP;AAGLr3G,MAAAA,MAAM,EAAEA,MAHH;AAILhpE,MAAAA,QAAQ,EAAEogL,WAAW,CAACp3G,MAAD,CAJhB;AAKLrzB,MAAAA,aAAa,EAAEA,aALV;AAMLqqI,MAAAA,WAAW,EAAEC,cANR;AAOLe,MAAAA,UAAU,EAAE9B,aAAa,CAACv5K,GAAd,CAAkB,CAAC,OAAD,EAAU,OAAV,CAAlB,CAAA,IAAyCu6K,aAAa,CAACl3G,MAAD,CAP7D;MAQLi4G,aAAa,EAAE/B,aAAa,CAACv5K,GAAd,CAAkB,CAAC,OAAD,EAAU,eAAV,CAAlB,CAAiDu5K,IAAAA,aAAa,CAACv5K,GAAd,CAAkB,CAAC,OAAD,EAAU,UAAV,CAAlB,CAAjD,IAA6Fw6K,gBAAgB,CAACn3G,MAAD,CARvH;AASL;AACA23G,MAAAA,YAAY,EAAEA,YAVT;AAWLC,MAAAA,eAAe,EAAEA,eAXZ;AAYLC,MAAAA,eAAe,EAAEA,eAZZ;AAaL7nK,MAAAA,UAAU,EAAEA,UAbP;AAcLwnK,MAAAA,WAAW,EAAEA,WAdR;AAeLC,MAAAA,UAAU,EAAEA,UAAAA;KAfd,CAAA;GA1EF,CAAA;;EA6FAxB,kBAAkB,CAACzxM,SAAnB,CAA6BoyM,SAA7B,GAAyC,UAAUr2G,UAAV,EAAsB21G,aAAtB,EAAqC;AAC5E;AACA;AACA;AACA;AACA;IACA,IAAIgC,SAAS,GAAG,IAAA,CAAK53G,UAArB,CAAA;IACA,IAAIi2G,UAAU,GAAG,IAAA,CAAK4B,WAAtB,CAAA;AACA,IAAA,IAAIvvJ,QAAQ,GAAG23C,UAAU,CAAC33C,QAA1B,CAAA;;AAEA,IAAA,IAAI23C,UAAU,CAACP,MAAX,KAAsB,UAA1B,EAAsC;AACpC;AACA,MAAA,IAAI/pF,CAAC,GAAGwxD,QAAA,EAAR,CAAA;AACA,MAAA,IAAI2wI,aAAa,GAAGxvJ,QAAQ,CAAC3jD,CAA7B,CAAA;MACA,IAAIozM,aAAa,GAAGzvJ,QAAQ,CAAC1jD,CAAT,GAAa0jD,QAAQ,CAAC16C,MAA1C,CAAA;AACAu5D,MAAAA,SAAA,CAAiBxxD,CAAjB,EAAoBA,CAApB,EAAuB,CAAC,CAACmiM,aAAF,EAAiB,CAACC,aAAlB,CAAvB,CAAA,CAAA;MACA5wI,MAAA,CAAcxxD,CAAd,EAAiBA,CAAjB,EAAoB,CAAC7R,EAAD,GAAM,CAA1B,CAAA,CAAA;MACAqjE,SAAA,CAAiBxxD,CAAjB,EAAoBA,CAApB,EAAuB,CAACmiM,aAAD,EAAgBC,aAAhB,CAAvB,CAAA,CAAA;AACAzvJ,MAAAA,QAAQ,GAAGA,QAAQ,CAAC9qC,KAAT,EAAX,CAAA;MACA8qC,QAAQ,CAACoG,cAAT,CAAwB/4C,CAAxB,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIqiM,SAAS,GAAGC,QAAQ,CAAC3vJ,QAAD,CAAxB,CAAA;IACA,IAAI4vJ,SAAS,GAAGD,QAAQ,CAACL,SAAS,CAAC/qJ,eAAV,EAAD,CAAxB,CAAA;IACA,IAAIsrJ,UAAU,GAAGF,QAAQ,CAAChC,UAAU,CAACppJ,eAAX,EAAD,CAAzB,CAAA;IACA,IAAIurJ,YAAY,GAAG,CAACR,SAAS,CAACjzM,CAAX,EAAcizM,SAAS,CAAChzM,CAAxB,CAAnB,CAAA;IACA,IAAIyzM,cAAc,GAAG,CAACpC,UAAU,CAACtxM,CAAZ,EAAesxM,UAAU,CAACrxM,CAA1B,CAArB,CAAA;AACAyzM,IAAAA,cAAc,CAAC,CAAD,CAAd,GAAoBD,YAAY,CAAC,CAAD,CAAZ,GAAkBJ,SAAS,CAAC,CAAD,CAAT,CAAa,CAAb,CAAtC,CAAA;AACA,IAAA,IAAItB,WAAW,GAAGz2G,UAAU,CAACy2G,WAA7B,CAAA;;IAEA,IAAIA,WAAW,IAAI,IAAf,IAAuBllM,QAAQ,CAACklM,WAAD,CAAnC,EAAkD;AAChD;MACA,IAAI4B,YAAY,GAAG5B,WAAW,KAAK,GAAhB,GAAsB,CAAtB,GAA0B,CAA7C,CAAA;MACA6B,OAAO,CAACH,YAAD,EAAeF,SAAf,EAA0BF,SAA1B,EAAqC,CAArC,EAAwCM,YAAxC,CAAP,CAAA;MACAC,OAAO,CAACF,cAAD,EAAiBF,UAAjB,EAA6BH,SAA7B,EAAwC,CAAxC,EAA2C,CAAIM,GAAAA,YAA/C,CAAP,CAAA;AACD,KALD,MAKO;MACL,IAAIA,YAAY,GAAG5B,WAAW,IAAI,CAAf,GAAmB,CAAnB,GAAuB,CAA1C,CAAA;MACA6B,OAAO,CAACH,YAAD,EAAeF,SAAf,EAA0BF,SAA1B,EAAqC,CAArC,EAAwCM,YAAxC,CAAP,CAAA;MACAD,cAAc,CAAC,CAAD,CAAd,GAAoBD,YAAY,CAAC,CAAD,CAAZ,GAAkB1B,WAAtC,CAAA;AACD,KAAA;;IAEDkB,SAAS,CAAC33K,WAAV,CAAsBm4K,YAAtB,CAAA,CAAA;IACAnC,UAAU,CAACh2K,WAAX,CAAuBo4K,cAAvB,CAAA,CAAA;IACAT,SAAS,CAAClhL,QAAV,GAAqBu/K,UAAU,CAACv/K,QAAX,GAAsBupE,UAAU,CAACvpE,QAAtD,CAAA;IACAC,SAAS,CAACihL,SAAD,CAAT,CAAA;IACAjhL,SAAS,CAACs/K,UAAD,CAAT,CAAA;;IAEA,SAASt/K,SAAT,CAAmB6hL,WAAnB,EAAgC;AAC9BA,MAAAA,WAAW,CAACvoM,OAAZ,GAAsB+nM,SAAS,CAAC,CAAD,CAAT,CAAa,CAAb,CAAA,GAAkBQ,WAAW,CAAC7zM,CAApD,CAAA;AACA6zM,MAAAA,WAAW,CAACtoM,OAAZ,GAAsB8nM,SAAS,CAAC,CAAD,CAAT,CAAa,CAAb,CAAA,GAAkBQ,WAAW,CAAC5zM,CAApD,CAAA;AACD,KAAA;;IAED,SAASqzM,QAAT,CAAkBnxM,IAAlB,EAAwB;AACtB;AACA,MAAA,OAAO,CAAC,CAACA,IAAI,CAACnC,CAAN,EAASmC,IAAI,CAACnC,CAAL,GAASmC,IAAI,CAAC6G,KAAvB,CAAD,EAAgC,CAAC7G,IAAI,CAAClC,CAAN,EAASkC,IAAI,CAAClC,CAAL,GAASkC,IAAI,CAAC8G,MAAvB,CAAhC,CAAP,CAAA;AACD,KAAA;;IAED,SAAS2qM,OAAT,CAAiB/rF,OAAjB,EAA0B74B,IAA1B,EAAgCukD,EAAhC,EAAoCloG,MAApC,EAA4CyoK,QAA5C,EAAsD;AACpDjsF,MAAAA,OAAO,CAACx8E,MAAD,CAAP,IAAmBkoG,EAAE,CAACloG,MAAD,CAAF,CAAWyoK,QAAX,IAAuB9kH,IAAI,CAAC3jD,MAAD,CAAJ,CAAayoK,QAAb,CAA1C,CAAA;AACD,KAAA;GA3DH,CAAA;;EA8DA9C,kBAAkB,CAACzxM,SAAnB,CAA6BiyM,WAA7B,GAA2C,UAAUl2G,UAAV,EAAsB21G,aAAtB,EAAqC;AAC9E,IAAA,IAAIx9K,IAAI,GAAGw9K,aAAa,CAAC3/K,OAAd,EAAX,CAAA;AACA,IAAA,IAAIgkC,QAAQ,GAAG27I,aAAa,CAACv5K,GAAd,CAAkB,UAAlB,CAAf,CAAA;IACA,IAAI7R,KAAK,GAAGs6C,kBAAkB,CAAC8wI,aAAD,EAAgB37I,QAAhB,CAA9B,CAH8E;;IAK9EzvC,KAAK,CAACg2C,QAAN,GAAiB,YAAY;MAC3B,OAAOpoC,IAAI,CAAC45B,QAAL,CAAc,CAAC,OAAD,CAAd,EAAyB,UAAU5uB,KAAV,EAAiB;QAC/C,OAAO;AACLA,UAAAA,KAAK,EAAEA,KAAAA;SADT,CAAA;AAGD,OAJM,CAAP,CAAA;KADF,CAAA;;AAQA,IAAA,IAAI+1E,UAAU,GAAG/gF,IAAI,CAAC8wB,aAAL,CAAmB,OAAnB,CAAjB,CAAA;IACA1+B,KAAK,CAAC62C,SAAN,CAAgB83C,UAAU,CAAC,CAAD,CAA1B,EAA+BA,UAAU,CAAC,CAAD,CAAzC,CAAA,CAAA;AACA3uF,IAAAA,KAAK,CAACkuL,aAAN,EAAA,CAAA;AACA,IAAA,IAAI7qK,IAAI,GAAG,IAAI4nK,YAAJ,CAAiB,OAAjB,EAA0BjrL,KAA1B,EAAiCy1E,UAAU,CAACvwD,UAA5C,EAAwDuqB,QAAxD,CAAX,CAAA;IACApsB,IAAI,CAACsS,KAAL,GAAay1J,aAAb,CAAA;AACA,IAAA,OAAO/nK,IAAP,CAAA;GAlBF,CAAA;;AAqBA8nK,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6B8xM,YAA7B,GAA4C,UAAU/qM,GAAV,EAAe;IACzD,IAAI0tM,QAAQ,GAAG,IAAK1tM,CAAAA,GAAL,IAAY,IAAIgwB,OAAJ,EAA3B,CAAA;AACA,IAAA,IAAA,CAAK1F,KAAL,CAAWO,GAAX,CAAe6iL,QAAf,CAAA,CAAA;AACA,IAAA,OAAOA,QAAP,CAAA;GAHF,CAAA;;AAMAhD,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6B00M,eAA7B,GAA+C,UAAU34G,UAAV,EAAsB1qE,KAAtB,EAA6BsY,IAA7B,EAAmC+nK,aAAnC,EAAkD;AAC/F,IAAA,IAAIlmK,UAAU,GAAG7B,IAAI,CAAC5K,SAAL,EAAjB,CAAA;;IAEA,IAAI,CAAC2yK,aAAa,CAACv5K,GAAd,CAAkB,CAAC,WAAD,EAAc,MAAd,CAAlB,CAAL,EAA+C;AAC7C,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI5G,IAAI,GAAG,IAAIwF,MAAJ,CAAiB;AAC1BzrB,MAAAA,KAAK,EAAE;AACL0L,QAAAA,EAAE,EAAEw0B,UAAU,CAAC,CAAD,CADT;AAELv0B,QAAAA,EAAE,EAAE,CAFC;AAGLnW,QAAAA,EAAE,EAAE0qC,UAAU,CAAC,CAAD,CAHT;AAILzqC,QAAAA,EAAE,EAAE,CAAA;OALoB;MAO1BuD,KAAK,EAAEiH,MAAM,CAAC;AACZ83D,QAAAA,OAAO,EAAE,OAAA;OADE,EAEVquI,aAAa,CAACz5K,QAAd,CAAuB,WAAvB,CAAA,CAAoCyX,YAApC,EAFU,CAPa;AAU1BlZ,MAAAA,MAAM,EAAE,IAVkB;AAW1BpB,MAAAA,EAAE,EAAE,CAAA;AAXsB,KAAjB,CAAX,CAAA;IAaA/D,KAAK,CAACO,GAAN,CAAUL,IAAV,CAAA,CAAA;IACA,IAAIojL,YAAY,GAAG,IAAKC,CAAAA,aAAL,GAAqB,IAAI79K,MAAJ,CAAiB;AACvDzrB,MAAAA,KAAK,EAAE;AACL0L,QAAAA,EAAE,EAAEw0B,UAAU,CAAC,CAAD,CADT;AAEL1qC,QAAAA,EAAE,EAAE,IAAA,CAAK+zM,eAAL,GAAuB,IAAKA,CAAAA,eAAL,CAAqBp0M,CAA5C,GAAgD+qC,UAAU,CAAC,CAAD,CAFzD;AAGLv0B,QAAAA,EAAE,EAAE,CAHC;AAILlW,QAAAA,EAAE,EAAE,CAAA;OALiD;MAOvDuD,KAAK,EAAEy9D,QAAQ,CAAC;AACdsB,QAAAA,OAAO,EAAE,OADK;AAEdz9D,QAAAA,SAAS,EAAE2rB,IAAI,CAACjtB,KAAL,CAAWsB,SAAAA;AAFR,OAAD,EAGZ8rM,aAAa,CAACz5K,QAAd,CAAuB,CAAC,UAAD,EAAa,WAAb,CAAvB,CAAkDyX,CAAAA,YAAlD,EAHY,CAPwC;AAWvDlZ,MAAAA,MAAM,EAAE,IAX+C;AAYvDpB,MAAAA,EAAE,EAAE,CAAA;AAZmD,KAAjB,CAAxC,CAAA;IAcA/D,KAAK,CAACO,GAAN,CAAU+iL,YAAV,CAAA,CAAA;GAnCF,CAAA;;AAsCAlD,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6B80M,eAA7B,GAA+C,UAAU/4G,UAAV,EAAsB1qE,KAAtB,EAA6BsY,IAA7B,EAAmC+nK,aAAnC,EAAkD;IAC/F,IAAIttL,KAAK,GAAG,IAAZ,CAAA;;AAEA,IAAA,IAAI8P,IAAI,GAAGw9K,aAAa,CAAC3/K,OAAd,EAAX,CAH+F;;AAK/F,IAAA,IAAI4rC,KAAK,GAAGh0B,IAAI,CAACrjB,KAAL,CAAWg2C,QAAX,EAAZ,CAAA;AACA,IAAA,IAAA,CAAKy4I,YAAL,GAAoB,EAApB,CAN+F;;AAQ/FroM,IAAAA,MAAI,CAACixD,KAAD,EAAQ,UAAUq3I,IAAV,EAAgB;MAC1B,IAAI3tI,SAAS,GAAG19B,IAAI,CAACK,WAAL,CAAiBgrK,IAAI,CAAC91K,KAAtB,CAAhB,CAAA;MACA,IAAIpH,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBi9K,IAAI,CAAC91K,KAAvB,CAAhB,CAAA;AACA,MAAA,IAAI6tH,cAAc,GAAGj1H,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAArB,CAAA;MACA,IAAIg9K,eAAe,GAAGn9K,SAAS,CAACG,QAAV,CAAmB,CAAC,UAAD,EAAa,WAAb,CAAnB,CAAtB,CAAA;MACA,IAAIi9K,kBAAkB,GAAGp9K,SAAS,CAACG,QAAV,CAAmB,CAAC,UAAD,EAAa,WAAb,CAAnB,CAAzB,CAAA;AACA,MAAA,IAAIk9K,SAAS,GAAG;AACd10M,QAAAA,CAAC,EAAE4mE,SADW;AAEd3mE,QAAAA,CAAC,EAAE,CAFW;QAGd0qG,OAAO,EAAEr0B,MAAI,CAAC3yD,KAAK,CAACgxL,eAAP,EAAwBhxL,KAAxB,EAA+B4wL,IAAI,CAAC91K,KAApC,CAAA;OAHf,CAAA;MAKA,IAAIj6B,EAAE,GAAGowM,UAAU,CAACv9K,SAAD,EAAYi1H,cAAZ,EAA4B17H,KAA5B,EAAmC8jL,SAAnC,CAAnB,CAAA;MACAlwM,EAAE,CAAC40B,WAAH,CAAe,UAAf,CAAA,CAA2Bv1B,KAA3B,GAAmC2wM,eAAe,CAAC/8K,YAAhB,EAAnC,CAAA;MACAjzB,EAAE,CAAC40B,WAAH,CAAe,UAAf,CAAA,CAA2Bv1B,KAA3B,GAAmC4wM,kBAAkB,CAACh9K,YAAnB,EAAnC,CAAA;MACAo9K,mBAAmB,CAACrwM,EAAD,CAAnB,CAAA;AACA,MAAA,IAAImtD,MAAM,GAAGl4B,SAAS,CAACj1B,EAAD,CAAtB,CAAA;;AAEA,MAAA,IAAI6yB,SAAS,CAACK,GAAV,CAAc,SAAd,CAAJ,EAA8B;AAC5Bi6B,QAAAA,MAAM,CAACj+B,SAAP,GAAmB6gL,IAAI,CAAC91K,KAAxB,CAAA;QACAkzB,MAAM,CAAC8yI,SAAP,GAAmBwM,aAAnB,CAAA;AACD,OAHD,MAGO;AACLt/I,QAAAA,MAAM,CAACj+B,SAAP,GAAmBi+B,MAAM,CAAC8yI,SAAP,GAAmB,IAAtC,CAAA;AACD,OAAA;;AAED9gL,MAAAA,KAAK,CAAC2wL,YAAN,CAAmBhxM,IAAnB,CAAwBkB,EAAxB,CAAA,CAAA;AACD,KAzBG,CAAJ,CAAA;GARF,CAAA;;AAoCAwsM,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6BmyM,gBAA7B,GAAgD,UAAUp2G,UAAV,EAAsB1qE,KAAtB,EAA6BsY,IAA7B,EAAmC+nK,aAAnC,EAAkD;IAChG,IAAIttL,KAAK,GAAG,IAAZ,CAAA;;AAEA,IAAA,IAAIolC,UAAU,GAAG7f,IAAI,CAACy1H,aAAL,EAAjB,CAAA;;AAEA,IAAA,IAAI,CAAC51G,UAAU,CAACrxB,GAAX,CAAe,MAAf,CAAL,EAA6B;AAC3B,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIjE,IAAI,GAAGw9K,aAAa,CAAC3/K,OAAd,EAAX,CAAA;AACA,IAAA,IAAIm2C,MAAM,GAAGv+B,IAAI,CAACwB,aAAL,EAAb,CAAA;IACA,IAAKoqK,CAAAA,WAAL,GAAmB,EAAnB,CAAA;AACA7oM,IAAAA,MAAI,CAACw7D,MAAD,EAAS,UAAU98B,SAAV,EAAqB;AAChC;AACA,MAAA,IAAIjX,SAAS,GAAGiX,SAAS,CAACG,SAA1B,CAAA;AACA,MAAA,IAAIzT,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkB5D,SAAlB,CAAhB,CAAA;AACA,MAAA,IAAIiqE,gBAAgB,GAAGtmE,SAAS,CAACG,QAAV,CAAmB,OAAnB,CAAvB,CAAA;MACA,IAAIu9K,eAAe,GAAG19K,SAAS,CAACG,QAAV,CAAmB,CAAC,UAAD,EAAa,OAAb,CAAnB,CAAtB,CAAA;MACA,IAAIw9K,kBAAkB,GAAG39K,SAAS,CAACG,QAAV,CAAmB,CAAC,UAAD,EAAa,OAAb,CAAnB,CAAzB,CAAA;MACA,IAAIovC,SAAS,GAAG19B,IAAI,CAACK,WAAL,CAAiBoB,SAAS,CAACG,SAA3B,CAAhB,CAAA;AACA,MAAA,IAAIoR,MAAM,GAAG,IAAI5lB,MAAJ,CAAiB;AAC5Bt2B,QAAAA,CAAC,EAAE4mE,SADyB;AAE5B3mE,QAAAA,CAAC,EAAE,CAFyB;AAG5B8xB,QAAAA,QAAQ,EAAEupE,UAAU,CAAC5zB,aAAX,GAA2B4zB,UAAU,CAACvpE,QAHpB;QAI5B44E,OAAO,EAAEr0B,MAAI,CAAC3yD,KAAK,CAACgxL,eAAP,EAAwBhxL,KAAxB,EAA+B+P,SAA/B,CAJe;AAK5BqC,QAAAA,MAAM,EAAE,KALoB;AAM5BlyB,QAAAA,KAAK,EAAEghE,eAAe,CAAC84B,gBAAD,EAAmB;UACvCl3F,IAAI,EAAEkkC,SAAS,CAACi9B,cADuB;UAEvCh7B,KAAK,EAAE0uD,UAAU,CAACy3G,UAFqB;UAGvClmK,aAAa,EAAEyuD,UAAU,CAAC03G,aAAAA;SAHN,CAAA;AANM,OAAjB,CAAb,CAAA;MAYA92J,MAAM,CAAC9iB,WAAP,CAAmB,UAAnB,CAAA,CAA+Bv1B,KAA/B,GAAuCghE,eAAe,CAACkwI,eAAD,CAAtD,CAAA;MACA74J,MAAM,CAAC9iB,WAAP,CAAmB,UAAnB,CAAA,CAA+Bv1B,KAA/B,GAAuCghE,eAAe,CAACmwI,kBAAD,CAAtD,CAAA;MACApkL,KAAK,CAACO,GAAN,CAAU+qB,MAAV,CAAA,CAAA;MACA24J,mBAAmB,CAAC34J,MAAD,CAAnB,CAAA;AACA60J,MAAAA,mBAAmB,CAAC70J,MAAD,CAAnB,CAA4BxoB,SAA5B,GAAwCA,SAAxC,CAAA;;AAEA/P,MAAAA,KAAK,CAACmxL,WAAN,CAAkBxxM,IAAlB,CAAuB44C,MAAvB,CAAA,CAAA;AACD,KA3BG,CAAJ,CAAA;GAZF,CAAA;;AA0CA80J,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6B01M,cAA7B,GAA8C,UAAU35G,UAAV,EAAsB1qE,KAAtB,EAA6BsY,IAA7B,EAAmC+nK,aAAnC,EAAkD;AAC9F,IAAA,IAAIsB,WAAW,GAAGj3G,UAAU,CAACi3G,WAA7B,CAAA;AACA,IAAA,IAAIxgL,QAAQ,GAAGupE,UAAU,CAACvpE,QAA1B,CAAA;IACA,IAAIH,SAAS,GAAGq/K,aAAa,CAACz5K,QAAd,CAAuB,cAAvB,CAAuCC,CAAAA,YAAvC,EAAhB,CAAA;AACA,IAAA,IAAI40J,UAAU,GAAG4kB,aAAa,CAACz5K,QAAd,CAAuB,CAAC,UAAD,EAAa,cAAb,CAAvB,CAAA,CAAqDC,YAArD,EAAjB,CAAA;AACA,IAAA,IAAIy9K,SAAS,GAAGjE,aAAa,CAAC1B,YAAd,EAAhB,CAAA;IACA,IAAI9pK,OAAO,GAAGwrK,aAAa,CAACv5K,GAAd,CAAkB,SAAlB,EAA6B,IAA7B,CAAd,CAAA;IACAy9K,OAAO,CAAC75G,UAAU,CAACs3G,eAAZ,EAA6B,MAA7B,EAAqCt8H,MAAI,CAAC,IAAA,CAAKq+H,eAAN,EAAuB,IAAvB,EAA6BlvK,OAAO,GAAG,GAAH,GAAS,GAA7C,CAAzC,CAAP,CAAA;IACA0vK,OAAO,CAAC75G,UAAU,CAACq3G,eAAZ,EAA6B,MAA7B,EAAqCr8H,MAAI,CAAC,IAAA,CAAKq+H,eAAN,EAAuB,IAAvB,EAA6BlvK,OAAO,GAAG,GAAH,GAAS,GAA7C,CAAzC,CAAP,CAAA;IACA0vK,OAAO,CAAC75G,UAAU,CAACo3G,YAAZ,EAA0BwC,SAAS,GAAG,MAAH,GAAY,MAA/C,EAAuD5+H,MAAI,CAAC,IAAA,CAAK8+H,gBAAN,EAAwB,IAAxB,EAA8B,CAACF,SAA/B,CAA3D,EAAsG,IAAtG,CAAP,CAAA;;IAEA,SAASC,OAAT,CAAiB9xL,QAAjB,EAA2BkoK,QAA3B,EAAqC5gF,OAArC,EAA8C0qG,UAA9C,EAA0D;MACxD,IAAI,CAAChyL,QAAL,EAAe;AACb,QAAA,OAAA;AACD,OAAA;;MAED,IAAIiyL,QAAQ,GAAGxxJ,cAAY,CAACptC,SAAS,CAACu6L,aAAa,CAACv5K,GAAd,CAAkB,CAAC,cAAD,EAAiB6zJ,QAAQ,GAAG,SAA5B,CAAlB,CAAD,EAA4DgnB,WAA5D,CAAV,EAAoFA,WAApF,CAA3B,CAAA;AACA,MAAA,IAAIpwM,IAAI,GAAG,CAAC,CAAD,EAAI,CAACmzM,QAAD,GAAY,CAAhB,EAAmBA,QAAnB,EAA6BA,QAA7B,CAAX,CAAA;MACA,IAAIC,GAAG,GAAGC,eAAe,CAACvE,aAAD,EAAgB1lB,QAAQ,GAAG,MAA3B,EAAmCppL,IAAnC,EAAyC;AAChEnC,QAAAA,CAAC,EAAEqjB,QAAQ,CAAC,CAAD,CADqD;AAEhEpjB,QAAAA,CAAC,EAAEojB,QAAQ,CAAC,CAAD,CAFqD;QAGhE/X,OAAO,EAAEinM,WAAW,GAAG,CAHyC;AAIhEhnM,QAAAA,OAAO,EAAE,CAJuD;AAKhEwmB,QAAAA,QAAQ,EAAEsjL,UAAU,GAAG,CAACtjL,QAAJ,GAAe,CAL6B;AAMhE0jL,QAAAA,SAAS,EAAE,IANqD;AAOhE5xM,QAAAA,KAAK,EAAE+tB,SAPyD;AAQhE+4E,QAAAA,OAAO,EAAEA,OAAAA;AARuD,OAAzC,CAAzB,CAAA;AAUA4qG,MAAAA,GAAG,CAACn8K,WAAJ,CAAgB,UAAhB,CAA4Bv1B,CAAAA,KAA5B,GAAoCwoL,UAApC,CAAA;MACAz7J,KAAK,CAACO,GAAN,CAAUokL,GAAV,CAAA,CAAA;MACAV,mBAAmB,CAACU,GAAD,CAAnB,CAAA;AACD,KAAA;GA/BH,CAAA;;AAkCAvE,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6Bm2M,qBAA7B,GAAqD,UAAUp6G,UAAV,EAAsB1qE,KAAtB,EAA6BsY,IAA7B,EAAmC+nK,aAAnC,EAAkD;AACrG,IAAA,IAAIx9K,IAAI,GAAGw9K,aAAa,CAAC3/K,OAAd,EAAX,CAAA;AACA,IAAA,IAAI49K,YAAY,GAAG+B,aAAa,CAAC9B,eAAd,EAAnB,CAAA;IACA,IAAIr9E,YAAY,GAAGr+F,IAAI,CAAC6D,YAAL,CAAkB43K,YAAlB,CAAgC13K,CAAAA,QAAhC,CAAyC,iBAAzC,CAAnB,CAAA;IACA,IAAIm+K,EAAE,GAAG,IAAT,CAAA;AACA,IAAA,IAAI/wG,QAAQ,GAAG;MACbgxG,QAAQ,EAAE,SAAUtjF,QAAAA,CAAAA,OAAV,EAAmB;QAC3BA,OAAO,CAAC18F,SAAR,GAAoB,IAApB,CAAA;QACA08F,OAAO,CAACz9F,KAAR,GAAgByhD,MAAI,CAACq/H,EAAE,CAACE,kBAAJ,EAAwBF,EAAxB,CAApB,CAAA;QACArjF,OAAO,CAACwR,SAAR,GAAoBxtD,MAAI,CAACq/H,EAAE,CAACG,qBAAJ,EAA2BH,EAA3B,CAAxB,CAAA;AACAI,QAAAA,aAAa,CAACzjF,OAAD,EAAUqjF,EAAE,CAACxB,aAAb,EAA4BjF,YAA5B,EAA0ChmK,IAA1C,EAAgD+nK,aAAhD,EAA+D,IAA/D,CAAb,CAAA;OALW;MAOb+E,QAAQ,EAAE,SAAU1jF,QAAAA,CAAAA,OAAV,EAAmB;AAC3ByjF,QAAAA,aAAa,CAACzjF,OAAD,EAAUqjF,EAAE,CAACxB,aAAb,EAA4BjF,YAA5B,EAA0ChmK,IAA1C,EAAgD+nK,aAAhD,CAAb,CAAA;AACD,OAAA;AATY,KAAf,CALqG;;AAiBrG,IAAA,IAAA,CAAKmD,eAAL,GAAuBQ,UAAU,CAAC9iF,YAAD,EAAeA,YAAf,EAA6B,IAAKz2B,CAAAA,UAAlC,EAA8C,EAA9C,EAAkD,KAAK+4G,eAAvD,EAAwExvG,QAAxE,CAAjC,CAAA;GAjBF,CAAA;;AAoBAosG,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6B61M,gBAA7B,GAAgD,UAAUa,SAAV,EAAqB;AACnE,IAAA,IAAA,CAAKnE,WAAL,EAAA,CAAA;;IAEA,IAAKh2L,CAAAA,GAAL,CAASwiC,cAAT,CAAwB;AACtBhsC,MAAAA,IAAI,EAAE,oBADgB;AAEtB4iM,MAAAA,SAAS,EAAEe,SAFW;AAGtBjnH,MAAAA,IAAI,EAAE,IAAKxH,CAAAA,GAAAA;KAHb,CAAA,CAAA;GAHF,CAAA;;EAUAwpH,kBAAkB,CAACzxM,SAAnB,CAA6Bs2M,kBAA7B,GAAkD,UAAU97K,EAAV,EAAcC,EAAd,EAAkBn3B,CAAlB,EAAqB;AACrE,IAAA,IAAA,CAAKivM,WAAL,EAAA,CAAA;;IAEA,IAAKoE,CAAAA,sBAAL,CAA4B,CAACrzM,CAAC,CAAC2S,OAAH,EAAY3S,CAAC,CAAC6S,OAAd,CAA5B,CAAA,CAAA;GAHF,CAAA;;AAMAs7L,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6Bu2M,qBAA7B,GAAqD,UAAUjzM,CAAV,EAAa;AAChE,IAAA,IAAA,CAAKqzM,sBAAL,CAA4B,CAACrzM,CAAC,CAAC2S,OAAH,EAAY3S,CAAC,CAAC6S,OAAd,CAA5B,EAAoD,IAApD,CAAA,CAAA;GADF,CAAA;;EAIAs7L,kBAAkB,CAACzxM,SAAnB,CAA6B22M,sBAA7B,GAAsD,UAAUC,QAAV,EAAoB79H,OAApB,EAA6B;IACjF,IAAI89H,OAAO,GAAG,IAAKC,CAAAA,YAAL,CAAkBF,QAAlB,CAAA,CAA4B,CAA5B,CAAd,CAAA;;IAEA,IAAIjtK,IAAI,GAAG,IAAA,CAAKgqI,KAAhB,CAAA;AACA,IAAA,IAAInoI,UAAU,GAAGkqC,KAAA,CAAe/rC,IAAI,CAAC5K,SAAL,EAAA,CAAiBhW,KAAjB,EAAf,CAAjB,CAAA;IACA8tL,OAAO,GAAGrrK,UAAU,CAAC,CAAD,CAApB,KAA4BqrK,OAAO,GAAGrrK,UAAU,CAAC,CAAD,CAAhD,CAAA,CAAA;IACAqrK,OAAO,GAAGrrK,UAAU,CAAC,CAAD,CAApB,KAA4BqrK,OAAO,GAAGrrK,UAAU,CAAC,CAAD,CAAhD,CAAA,CAAA;AACA,IAAA,IAAA,CAAKqpK,eAAL,CAAqBp0M,CAArB,GAAyBo2M,OAAzB,CAAA;;IAEA,IAAKhC,CAAAA,eAAL,CAAqBl4K,UAArB,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAKi4K,aAAL,CAAmBtpM,KAAnB,CAAyBxK,EAAzB,GAA8B+1M,OAA9B,CAAA;;IAEA,IAAKjC,CAAAA,aAAL,CAAmB/qL,KAAnB,EAAA,CAAA;;AAEA,IAAA,IAAIktL,eAAe,GAAG,IAAA,CAAKC,gBAAL,CAAsBH,OAAtB,CAAtB,CAAA;;IAEA,IAAInF,aAAa,GAAG,IAAA,CAAKz1J,KAAzB,CAAA;;AAEA,IAAA,IAAI88B,OAAO,IAAIg+H,eAAe,KAAKrF,aAAa,CAAC9B,eAAd,EAApB,IAAuD8B,aAAa,CAACv5K,GAAd,CAAkB,UAAlB,CAAtE,EAAqG;MACnG,IAAKi9K,CAAAA,eAAL,CAAqB2B,eAArB,CAAA,CAAA;AACD,KAAA;GArBH,CAAA;;AAwBAtF,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6BqyM,WAA7B,GAA2C,YAAY;IACrD,IAAIjuL,KAAK,GAAG,IAAZ,CAAA;;AAEA,IAAA,IAAA,CAAKmuL,WAAL,EAAA,CAAA;;AAEA,IAAA,IAAI,IAAKt2J,CAAAA,KAAL,CAAW+zJ,YAAX,EAAJ,EAA+B;AAC7B,MAAA,IAAA,CAAKiH,MAAL,GAAcrrF,UAAU,CAAC,YAAY;AACnC;AACA,QAAA,IAAI8lF,aAAa,GAAGttL,KAAK,CAAC63B,KAA1B,CAAA;;AAEA73B,QAAAA,KAAK,CAACgxL,eAAN,CAAsB1D,aAAa,CAAC9B,eAAd,MAAmC8B,aAAa,CAACv5K,GAAd,CAAkB,QAAlB,EAA4B,IAA5B,CAAA,GAAoC,CAAC,CAArC,GAAyC,CAA5E,CAAtB,CAAA,CAAA;OAJsB,EAKrB,KAAK8jB,KAAL,CAAW9jB,GAAX,CAAe,cAAf,CALqB,CAAxB,CAAA;AAMD,KAAA;GAZH,CAAA;;AAeAs5K,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6B82M,YAA7B,GAA4C,UAAUI,MAAV,EAAkB;AAC5D,IAAA,IAAI/xC,KAAK,GAAG,IAAA,CAAKrpE,UAAL,CAAgBh1B,iBAAhB,EAAZ,CAAA;;IAEA,OAAO/vC,gBAAA,CAAuBmgL,MAAvB,EAA+B/xC,KAA/B,EAAsC,IAAtC,CAAP,CAAA;GAHF,CAAA;;AAMAssC,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6Bg3M,gBAA7B,GAAgD,UAAUG,SAAV,EAAqB;AACnE,IAAA,IAAIjjL,IAAI,GAAG,IAAA,CAAK+nB,KAAL,CAAWlqB,OAAX,EAAX,CAAA;IACA,IAAIo2B,IAAI,GAAG5gC,QAAX,CAAA;AACA,IAAA,IAAIwvL,eAAJ,CAAA;IACA,IAAIptK,IAAI,GAAG,IAAA,CAAKgqI,KAAhB,CAAA;IACAz/I,IAAI,CAACxnB,IAAL,CAAU,CAAC,OAAD,CAAV,EAAqB,UAAUwyB,KAAV,EAAiB/K,SAAjB,EAA4B;AAC/C,MAAA,IAAI8U,KAAK,GAAGU,IAAI,CAACK,WAAL,CAAiB9K,KAAjB,CAAZ,CAAA;MACA,IAAI77B,CAAC,GAAG7D,IAAI,CAACyC,GAAL,CAASgnC,KAAK,GAAGkuK,SAAjB,CAAR,CAAA;;MAEA,IAAI9zM,CAAC,GAAG8kD,IAAR,EAAc;AACZA,QAAAA,IAAI,GAAG9kD,CAAP,CAAA;AACA0zM,QAAAA,eAAe,GAAG5iL,SAAlB,CAAA;AACD,OAAA;KAPH,CAAA,CAAA;AASA,IAAA,OAAO4iL,eAAP,CAAA;GAdF,CAAA;;AAiBAtF,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6BuyM,WAA7B,GAA2C,YAAY;IACrD,IAAI,IAAA,CAAK0E,MAAT,EAAiB;MACf7rF,YAAY,CAAC,IAAK6rF,CAAAA,MAAN,CAAZ,CAAA;MACA,IAAKA,CAAAA,MAAL,GAAc,IAAd,CAAA;AACD,KAAA;GAJH,CAAA;;AAOAxF,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6Bo1M,eAA7B,GAA+C,UAAUppK,SAAV,EAAqB;AAClE,IAAA,IAAI2jK,YAAY,GAAG,IAAA,CAAK1zJ,KAAL,CAAW2zJ,eAAX,EAAnB,CAAA;;IAEA,IAAI5jK,SAAS,KAAK,GAAlB,EAAuB;MACrBA,SAAS,GAAG2jK,YAAY,GAAG,CAA3B,CAAA;AACD,KAFD,MAEO,IAAI3jK,SAAS,KAAK,GAAlB,EAAuB;MAC5BA,SAAS,GAAG2jK,YAAY,GAAG,CAA3B,CAAA;AACD,KAAA;;IAED,IAAKpzL,CAAAA,GAAL,CAASwiC,cAAT,CAAwB;AACtBhsC,MAAAA,IAAI,EAAE,gBADgB;AAEtB48L,MAAAA,YAAY,EAAE3jK,SAFQ;AAGtByjD,MAAAA,IAAI,EAAE,IAAKxH,CAAAA,GAAAA;KAHb,CAAA,CAAA;GATF,CAAA;;AAgBAwpH,EAAAA,kBAAkB,CAACzxM,SAAnB,CAA6BsyM,kBAA7B,GAAkD,YAAY;AAC5D,IAAA,IAAI3C,YAAY,GAAG,IAAA,CAAK1zJ,KAAL,CAAW2zJ,eAAX,EAAnB,CAAA;IACA,IAAIwH,WAAW,GAAG,IAAA,CAAKrC,YAAvB,CAAA;IACA,IAAIsC,UAAU,GAAG,IAAA,CAAK9B,WAAtB,CAAA;;AAEA,IAAA,IAAI6B,WAAJ,EAAiB;AACf,MAAA,KAAK,IAAI1zM,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0zM,WAAW,CAACp0M,MAAhC,EAAwCU,CAAC,EAAzC,EAA6C;AAC3C0zM,QAAAA,WAAW,IAAIA,WAAW,CAAC1zM,CAAD,CAA1B,IAAiC0zM,WAAW,CAAC1zM,CAAD,CAAX,CAAe4zM,WAAf,CAA2B,UAA3B,EAAuC5zM,CAAC,GAAGisM,YAA3C,CAAjC,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAI0H,UAAJ,EAAgB;AACd,MAAA,KAAK,IAAI3zM,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2zM,UAAU,CAACr0M,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;QAC1C2zM,UAAU,IAAIA,UAAU,CAAC3zM,CAAD,CAAxB,IAA+B2zM,UAAU,CAAC3zM,CAAD,CAAV,CAAc4zM,WAAd,CAA0B,UAA1B,EAAsC9F,mBAAmB,CAAC6F,UAAU,CAAC3zM,CAAD,CAAX,CAAnB,CAAmCywB,SAAnC,IAAgDw7K,YAAtF,CAA/B,CAAA;AACD,OAAA;AACF,KAAA;GAfH,CAAA;;EAkBA8B,kBAAkB,CAAC1+L,IAAnB,GAA0B,iBAA1B,CAAA;AACA,EAAA,OAAO0+L,kBAAP,CAAA;AACD,CAxiBD,CAwiBEH,YAxiBF,CAFA,CAAA;;AA4iBA,SAAS1wI,kBAAT,CAA4B3kB,KAA5B,EAAmC8Z,QAAnC,EAA6C;EAC3CA,QAAQ,GAAGA,QAAQ,IAAI9Z,KAAK,CAAC9jB,GAAN,CAAU,MAAV,CAAvB,CAAA;;AAEA,EAAA,IAAI49B,QAAJ,EAAc;AACZ,IAAA,QAAQA,QAAR;AACE;AACA,MAAA,KAAK,UAAL;QACE,OAAO,IAAIwhJ,YAAJ,CAAiB;AACtBrnE,UAAAA,WAAW,EAAEj0F,KAAK,CAACgb,aAAN,EADS;AAEtBn4B,UAAAA,MAAM,EAAE,CAACvX,QAAD,EAAW,CAACA,QAAZ,CAAA;AAFc,SAAjB,CAAP,CAAA;;AAKF,MAAA,KAAK,MAAL;QACE,OAAO,IAAIiwL,SAAJ,CAAc;AACnBC,UAAAA,MAAM,EAAEx7J,KAAK,CAAClO,OAAN,CAAcwnI,cAAd,EADW;AAEnBuwB,UAAAA,MAAM,EAAE7pJ,KAAK,CAAClO,OAAN,CAAc5V,GAAd,CAAkB,QAAlB,CAAA;AAFW,SAAd,CAAP,CAAA;;AAKF,MAAA;AACE;QACA,OAAO,IAAIikC,aAAJ,EAAP,CAAA;AAhBJ,KAAA;AAkBD,GAAA;AACF,CAAA;;AAED,SAASnY,WAAT,CAAqBhI,KAArB,EAA4B1/B,GAA5B,EAAiC;EAC/B,OAAOq/B,aAAA,CAAqBK,KAAK,CAACiI,kBAAN,EAArB,EAAiD;AACtDz6C,IAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EAD+C;IAEtDhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;AAF8C,GAAjD,EAGJs5B,KAAK,CAAC9jB,GAAN,CAAU,SAAV,CAHI,CAAP,CAAA;AAID,CAAA;;AAED,SAAS89K,eAAT,CAAyBvE,aAAzB,EAAwCgG,OAAxC,EAAiD90M,IAAjD,EAAuD4E,IAAvD,EAA6D;AAC3D,EAAA,IAAIlD,KAAK,GAAGkD,IAAI,CAAClD,KAAjB,CAAA;EACA,IAAI6sF,IAAI,GAAGp6D,UAAA,CAAmB26K,aAAa,CAACv5K,GAAd,CAAkB,CAAC,cAAD,EAAiBu/K,OAAjB,CAAlB,CAAnB,EAAiElwM,IAAI,IAAI,EAAzE,EAA6E,IAAIuf,YAAJ,CAAiBnkB,IAAI,CAAC,CAAD,CAArB,EAA0BA,IAAI,CAAC,CAAD,CAA9B,EAAmCA,IAAI,CAAC,CAAD,CAAvC,EAA4CA,IAAI,CAAC,CAAD,CAAhD,CAA7E,CAAX,CAF2D;;AAI3D,EAAA,IAAI0B,KAAJ,EAAW;IACT6sF,IAAI,CAACt/D,QAAL,CAAcvtB,KAAd,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,OAAO6sF,IAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;;;AAGA,SAASkkH,UAAT,CAAoB1+K,SAApB,EAA+Bo2H,cAA/B,EAA+C17H,KAA/C,EAAsDD,GAAtD,EAA2DgB,MAA3D,EAAmEizE,QAAnE,EAA6E;AAC3E,EAAA,IAAI//F,KAAK,GAAGynJ,cAAc,CAAC50H,GAAf,CAAmB,OAAnB,CAAZ,CAAA;;EAEA,IAAI,CAAC/F,MAAL,EAAa;AACX,IAAA,IAAIF,UAAU,GAAGyE,SAAS,CAACwB,GAAV,CAAc,QAAd,CAAjB,CAAA;AACA/F,IAAAA,MAAM,GAAGZ,cAAY,CAACU,UAAD,EAAa,CAAC,CAAd,EAAiB,CAAC,CAAlB,EAAqB,CAArB,EAAwB,CAAxB,EAA2B5sB,KAA3B,CAArB,CAAA;AACA8sB,IAAAA,MAAM,CAACP,QAAP,CAAgB,eAAhB,EAAiC,IAAjC,CAAA,CAAA;IACAR,KAAK,CAACO,GAAN,CAAUQ,MAAV,CAAA,CAAA;AACAizE,IAAAA,QAAQ,IAAIA,QAAQ,CAACgxG,QAAT,CAAkBjkL,MAAlB,CAAZ,CAAA;AACD,GAND,MAMO;IACLA,MAAM,CAAC0G,QAAP,CAAgBxzB,KAAhB,CAAA,CAAA;AACA+rB,IAAAA,KAAK,CAACO,GAAN,CAAUQ,MAAV,EAFK;;AAILizE,IAAAA,QAAQ,IAAIA,QAAQ,CAACoxG,QAAT,CAAkBrkL,MAAlB,CAAZ,CAAA;AACD,GAd0E;;;EAiB3E,IAAIC,SAAS,GAAG06H,cAAc,CAAC70H,YAAf,CAA4B,CAAC,OAAD,CAA5B,CAAhB,CAAA;AACA9F,EAAAA,MAAM,CAACP,QAAP,CAAgBQ,SAAhB,EAlB2E;;EAoB3EjB,GAAG,GAAG4kC,KAAK,CAAC;AACVkgJ,IAAAA,SAAS,EAAE,IADD;AAEV9gL,IAAAA,EAAE,EAAE,GAAA;AAFM,GAAD,EAGRhE,GAHQ,EAGH,IAHG,CAAX,CAAA;EAIA,IAAIiC,UAAU,GAAGkH,mBAAmB,CAAC5D,SAAS,CAACwB,GAAV,CAAc,YAAd,CAAD,CAApC,CAAA;EACA/G,GAAG,CAACrb,MAAJ,GAAasd,UAAU,CAAC,CAAD,CAAV,GAAgB,CAA7B,CAAA;EACAjC,GAAG,CAACpb,MAAJ,GAAaqd,UAAU,CAAC,CAAD,CAAV,GAAgB,CAA7B,CAAA;AACA,EAAA,IAAIiF,YAAY,GAAGC,qBAAqB,CAAC5B,SAAS,CAACwB,GAAV,CAAc,cAAd,CAAD,EAAgC9E,UAAhC,CAAxC,CAAA;;AAEA,EAAA,IAAIiF,YAAJ,EAAkB;AAChBlH,IAAAA,GAAG,CAAC3wB,CAAJ,GAAQ,CAAC2wB,GAAG,CAAC3wB,CAAJ,IAAS,CAAV,IAAe63B,YAAY,CAAC,CAAD,CAAnC,CAAA;AACAlH,IAAAA,GAAG,CAAC1wB,CAAJ,GAAQ,CAAC0wB,GAAG,CAAC1wB,CAAJ,IAAS,CAAV,IAAe43B,YAAY,CAAC,CAAD,CAAnC,CAAA;AACD,GAAA;;AAED,EAAA,IAAIhG,YAAY,GAAGqE,SAAS,CAACwB,GAAV,CAAc,cAAd,CAAnB,CAAA;AACA/G,EAAAA,GAAG,CAACoB,QAAJ,GAAe,CAACF,YAAY,IAAI,CAAjB,IAAsB9yB,IAAI,CAACI,EAA3B,GAAgC,GAAhC,IAAuC,CAAtD,CAAA;AACAwyB,EAAAA,MAAM,CAAC+C,IAAP,CAAY/D,GAAZ,EApC2E;AAqC3E;AACA;AACA;AACA;AACA;;AAEAgB,EAAAA,MAAM,CAACqgC,eAAP,EAAA,CAAA;AACA,EAAA,OAAOrgC,MAAP,CAAA;AACD,CAAA;;AAED,SAASokL,aAAT,CAAuBzjF,OAAvB,EAAgC4hF,YAAhC,EAA8CxgL,SAA9C,EAAyDwV,IAAzD,EAA+D+nK,aAA/D,EAA8EiG,WAA9E,EAA2F;EACzF,IAAI5kF,OAAO,CAAC6kF,QAAZ,EAAsB;AACpB,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIrlF,YAAY,GAAGm/E,aAAa,CAACz5K,QAAd,CAAuB,iBAAvB,CAAnB,CAAA;AACA,EAAA,IAAI4+K,OAAO,GAAGltK,IAAI,CAACK,WAAL,CAAiB0nK,aAAa,CAAC3/K,OAAd,EAAA,CAAwBoG,GAAxB,CAA4B,OAA5B,EAAqChE,SAArC,CAAjB,CAAd,CAAA;;EAEA,IAAIwjL,WAAW,IAAI,CAACplF,YAAY,CAACp6F,GAAb,CAAiB,WAAjB,EAA8B,IAA9B,CAApB,EAAyD;IACvD46F,OAAO,CAAC59F,IAAR,CAAa;AACX10B,MAAAA,CAAC,EAAEo2M,OADQ;AAEXn2M,MAAAA,CAAC,EAAE,CAAA;KAFL,CAAA,CAAA;AAIAi0M,IAAAA,YAAY,IAAIA,YAAY,CAACx/K,IAAb,CAAkB;AAChC7pB,MAAAA,KAAK,EAAE;AACLxK,QAAAA,EAAE,EAAE+1M,OAAAA;AADC,OAAA;AADyB,KAAlB,CAAhB,CAAA;AAKD,GAVD,MAUO;AACL,IAAA,IAAIjpM,YAAY,GAAG;MACjBmkC,QAAQ,EAAEwgF,YAAY,CAACp6F,GAAb,CAAiB,mBAAjB,EAAsC,IAAtC,CADO;AAEjB9qB,MAAAA,MAAM,EAAEklH,YAAY,CAACp6F,GAAb,CAAiB,iBAAjB,EAAoC,IAApC,CAAA;KAFV,CAAA;AAIA46F,IAAAA,OAAO,CAACn9F,aAAR,CAAsB,IAAtB,EAA4B,IAA5B,CAAA,CAAA;IACAm9F,OAAO,CAACjhF,SAAR,CAAkB;AAChBrxC,MAAAA,CAAC,EAAEo2M,OADa;AAEhBn2M,MAAAA,CAAC,EAAE,CAAA;AAFa,KAAlB,EAGGkN,YAHH,CAAA,CAAA;AAIA+mM,IAAAA,YAAY,IAAIA,YAAY,CAAC7iK,SAAb,CAAuB;AACrCxmC,MAAAA,KAAK,EAAE;AACLxK,QAAAA,EAAE,EAAE+1M,OAAAA;AADC,OAAA;KADO,EAIbjpM,YAJa,CAAhB,CAAA;AAKD,GAAA;AACF;;AC7uBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BO,SAASiqM,qBAAT,CAA+Bx0L,SAA/B,EAA0C;EAC/CA,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,gBADiB;AAEvBgwC,IAAAA,KAAK,EAAE,iBAFgB;AAGvB9mB,IAAAA,MAAM,EAAE,kBAAA;AAHe,GAAzB,EAIG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4BxxB,GAA5B,EAAiC;AAClC,IAAA,IAAIm1L,aAAa,GAAG3jK,OAAO,CAACw7B,YAAR,CAAqB,UAArB,CAApB,CAAA;;AAEA,IAAA,IAAImoI,aAAa,IAAI5gK,OAAO,CAAC6+J,YAAR,IAAwB,IAA7C,EAAmD;AACjD+B,MAAAA,aAAa,CAAChC,eAAd,CAA8B5+J,OAAO,CAAC6+J,YAAtC,CAAA,CAAA;;AAEA,MAAA,IAAI,CAAC+B,aAAa,CAACv5K,GAAd,CAAkB,MAAlB,EAA0B,IAA1B,CAAD,IAAoCu5K,aAAa,CAAC7B,UAAd,EAApC,IAAkE6B,aAAa,CAAC1B,YAAd,EAAtE,EAAoG;AAClG0B,QAAAA,aAAa,CAAC5B,YAAd,CAA2B,KAA3B,EADkG;;QAGlGvzL,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,UAAAA,IAAI,EAAE,oBADW;AAEjB4iM,UAAAA,SAAS,EAAE,KAFM;UAGjBlmH,IAAI,EAAE3+C,OAAO,CAAC2+C,IAAAA;SAHhB,CAAA,CAAA;AAKD,OAAA;AACF,KAfiC;;;AAkBlC1hD,IAAAA,OAAO,CAAC+mJ,WAAR,CAAoB,UAApB,EAAgC;AAC9BgjB,MAAAA,YAAY,EAAEpG,aAAa,CAACv5K,GAAd,CAAkB,cAAlB,EAAkC,IAAlC,CAAA;KADhB,CAAA,CAAA;AAGA,IAAA,OAAO4pC,QAAQ,CAAC;AACd4tI,MAAAA,YAAY,EAAE+B,aAAa,CAAC7gL,MAAd,CAAqB8+K,YAAAA;KADtB,EAEZ7+J,OAFY,CAAf,CAAA;GAzBF,CAAA,CAAA;EA6BAztB,SAAS,CAACqgC,cAAV,CAAyB;AACvB3wC,IAAAA,IAAI,EAAE,oBADiB;AAEvBgwC,IAAAA,KAAK,EAAE,qBAFgB;AAGvB9mB,IAAAA,MAAM,EAAE,QAAA;AAHe,GAAzB,EAIG,UAAU6U,OAAV,EAAmB/C,OAAnB,EAA4B;AAC7B,IAAA,IAAI2jK,aAAa,GAAG3jK,OAAO,CAACw7B,YAAR,CAAqB,UAArB,CAApB,CAAA;;AAEA,IAAA,IAAImoI,aAAa,IAAI5gK,OAAO,CAAC6kK,SAAR,IAAqB,IAA1C,EAAgD;AAC9CjE,MAAAA,aAAa,CAAC5B,YAAd,CAA2Bh/J,OAAO,CAAC6kK,SAAnC,CAAA,CAAA;AACD,KAAA;GATH,CAAA,CAAA;AAWD;;ACpFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2Be,SAASoC,oBAAT,CAA8BlnL,MAA9B,EAAsC;AACnD,EAAA,IAAImnL,WAAW,GAAGnnL,MAAM,IAAIA,MAAM,CAAConL,QAAnC,CAAA;;AAEA,EAAA,IAAI,CAACvwK,SAAA,CAAeswK,WAAf,CAAL,EAAkC;AAChCA,IAAAA,WAAW,GAAGA,WAAW,GAAG,CAACA,WAAD,CAAH,GAAmB,EAA5C,CAAA;AACD,GAAA;;AAEDtwK,EAAAA,MAAA,CAAYswK,WAAZ,EAAyB,UAAU5mL,GAAV,EAAe;IACtC,IAAI,CAACA,GAAL,EAAU;AACR,MAAA,OAAA;AACD,KAAA;;IAED8mL,aAAa,CAAC9mL,GAAD,CAAb,CAAA;GALF,CAAA,CAAA;AAOD,CAAA;;AAED,SAAS8mL,aAAT,CAAuB9mL,GAAvB,EAA4B;AAC1B,EAAA,IAAIre,IAAI,GAAGqe,GAAG,CAACre,IAAf,CAAA;AACA,EAAA,IAAIolM,QAAQ,GAAG;AACb,IAAA,QAAA,EAAU,OADG;IAEb,MAAQ,EAAA,MAAA;AAFK,GAAf,CAF0B;;AAO1B,EAAA,IAAIA,QAAQ,CAACplM,IAAD,CAAZ,EAAoB;AAClBqe,IAAAA,GAAG,CAAC2kC,QAAJ,GAAeoiJ,QAAQ,CAACplM,IAAD,CAAvB,CAAA;IACA,OAAOqe,GAAG,CAACre,IAAX,CAAA;AACD,GAAA;;EAEDqlM,YAAY,CAAChnL,GAAD,CAAZ,CAAA;;AAEA,EAAA,IAAI8nK,KAAG,CAAC9nK,GAAD,EAAM,iBAAN,CAAP,EAAiC;IAC/B,IAAIu/K,YAAY,GAAGv/K,GAAG,CAACu/K,YAAJ,KAAqBv/K,GAAG,CAACu/K,YAAJ,GAAmB,EAAxC,CAAnB,CAAA;;AAEA,IAAA,IAAI,CAACzX,KAAG,CAACyX,YAAD,EAAe,UAAf,CAAR,EAAoC;AAClCA,MAAAA,YAAY,CAAC7sL,QAAb,GAAwBsN,GAAG,CAACk/K,eAA5B,CAAA;AACD,KAAA;;AAED,IAAA,IAAIK,YAAY,CAAC7sL,QAAb,KAA0B,MAA1B,IAAoC,CAACo1K,KAAG,CAACyX,YAAD,EAAe,MAAf,CAA5C,EAAoE;MAClEA,YAAY,CAAC59K,IAAb,GAAoB,KAApB,CAAA;MACA,OAAO49K,YAAY,CAAC7sL,QAApB,CAAA;AACD,KAAA;;IAED,OAAOsN,GAAG,CAACk/K,eAAX,CAAA;AACD,GAAA;;EAED5oK,MAAA,CAAYtW,GAAG,CAAC8C,IAAJ,IAAY,EAAxB,EAA4B,UAAU83G,QAAV,EAAoB;AAC9C,IAAA,IAAItkG,UAAA,CAAgBskG,QAAhB,CAAA,IAA6B,CAACtkG,SAAA,CAAeskG,QAAf,CAAlC,EAA4D;AAC1D,MAAA,IAAI,CAACktD,KAAG,CAACltD,QAAD,EAAW,OAAX,CAAJ,IAA2BktD,KAAG,CAACltD,QAAD,EAAW,MAAX,CAAlC,EAAsD;AACpD;AACAA,QAAAA,QAAQ,CAAC9sG,KAAT,GAAiB8sG,QAAQ,CAACtlI,IAA1B,CAAA;AACD,OAAA;;MAED0xM,YAAY,CAACpsE,QAAD,CAAZ,CAAA;AACD,KAAA;GARH,CAAA,CAAA;AAUD,CAAA;;AAED,SAASosE,YAAT,CAAsBhnL,GAAtB,EAA2B;EACzB,IAAIiB,SAAS,GAAGjB,GAAG,CAACiB,SAAJ,KAAkBjB,GAAG,CAACiB,SAAJ,GAAgB,EAAlC,CAAhB,CAAA;AACA,EAAA,IAAIgmL,iBAAiB,GAAGhmL,SAAS,CAACa,QAAV,KAAuBb,SAAS,CAACa,QAAV,GAAqB,EAA5C,CAAxB,CAFyB;;EAIzB,IAAIL,KAAK,GAAGzB,GAAG,CAACyB,KAAJ,IAAazB,GAAG,CAACyB,KAAjB,IAA0B,EAAtC,CAAA;EACA,IAAIylL,WAAW,GAAGzlL,KAAK,CAAC0a,MAAN,KAAiB1a,KAAK,CAAC0a,MAAN,GAAe,EAAhC,CAAlB,CAAA;AACA,EAAA,IAAIgrK,gBAAgB,GAAG;AACrBhrK,IAAAA,MAAM,EAAE,CADa;AAErBra,IAAAA,QAAQ,EAAE,CAAA;GAFZ,CAAA;EAIAwU,MAAA,CAAY7U,KAAZ,EAAmB,UAAUqM,KAAV,EAAiBx4B,IAAjB,EAAuB;AACxC,IAAA,IAAI,CAAC6xM,gBAAgB,CAAC7xM,IAAD,CAAjB,IAA2B,CAACwyL,KAAG,CAACof,WAAD,EAAc5xM,IAAd,CAAnC,EAAwD;AACtD4xM,MAAAA,WAAW,CAAC5xM,IAAD,CAAX,GAAoBw4B,KAApB,CAAA;AACD,KAAA;GAHH,CAAA,CAAA;;EAMA,IAAIm5K,iBAAiB,CAACxlL,KAAlB,IAA2B,CAACqmK,KAAG,CAACrmK,KAAD,EAAQ,UAAR,CAAnC,EAAwD;AACtDA,IAAAA,KAAK,CAACK,QAAN,GAAiBmlL,iBAAiB,CAACxlL,KAAnC,CAAA;IACA,OAAOwlL,iBAAiB,CAACxlL,KAAzB,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASqmK,KAAT,CAAah4I,GAAb,EAAkB/rB,IAAlB,EAAwB;AACtB,EAAA,OAAO+rB,GAAG,CAACjxB,cAAJ,CAAmBkF,IAAnB,CAAP,CAAA;AACD;;AC7HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAWO,SAAS/R,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiCu5I,mBAAjC,CAAA,CAAA;EACAptL,SAAS,CAACksD,qBAAV,CAAgCkiI,kBAAhC,CAAA,CAAA;AACApuL,EAAAA,SAAS,CAAC8zC,wBAAV,CAAmC,UAAnC,EAA+C,YAAY;AACzD;AACA,IAAA,OAAO,QAAP,CAAA;GAFF,CAAA,CAAA;EAIA0gJ,qBAAqB,CAACx0L,SAAD,CAArB,CAAA;EACAA,SAAS,CAACosD,oBAAV,CAA+B0pE,oBAA/B,CAAA,CAAA;AACD;;ACrCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0Be,SAASq/D,mBAAT,CAA6BC,UAA7B,EAAyCjmI,UAAzC,EAAqD;EAClE,IAAI,CAACimI,UAAL,EAAiB;AACf,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;;EAED,IAAIC,YAAY,GAAGr8L,SAAO,CAACo8L,UAAD,CAAP,GAAsBA,UAAtB,GAAmC,CAACA,UAAD,CAAtD,CAAA;;AAEA,EAAA,KAAK,IAAI/oL,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAGgpL,YAAY,CAAC11M,MAArC,EAA6C0sB,GAAG,EAAhD,EAAoD;AAClD,IAAA,IAAIgpL,YAAY,CAAChpL,GAAD,CAAZ,IAAqBgpL,YAAY,CAAChpL,GAAD,CAAZ,CAAkB8iD,UAAlB,CAAzB,EAAwD;AACtD,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAO,KAAP,CAAA;AACD;;ACzDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiCA,SAASmmI,SAAT,CAAmBvnL,GAAnB,EAAwB;EACtBk9F,eAAe,CAACl9F,GAAD,EAAM,OAAN,EAAe,CAAC,MAAD,CAAf,CAAf,CAAA;AACD;;;AAGD,IAAIg8C,OAAK,GAAGC,SAAS,EAArB,CAAA;;AAEA,IAAIurI,WAAW;AACf;AACA,UAAU10L,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACy0L,WAAD,EAAc10L,MAAd,CAAT,CAAA;;AAEA,EAAA,SAAS00L,WAAT,GAAuB;AACrB,IAAA,IAAIx0L,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa6lM,WAAW,CAAC7lM,IAAzB,CAAA;AACA;AACJ;AACA;;IAEIqR,KAAK,CAACy0L,aAAN,GAAsB,KAAtB,CAAA;AACA,IAAA,OAAOz0L,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;EAGEw0L,WAAW,CAAC54M,SAAZ,CAAsBytC,IAAtB,GAA6B,UAAU5c,MAAV,EAAkBsgD,WAAlB,EAA+BpjC,OAA/B,EAAwC;AACnE,IAAA,IAAI32B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,MAAA,IAAI,IAAKvE,CAAAA,IAAL,KAAc,QAAlB,EAA4B;AAC1B,QAAA,MAAM,IAAIie,KAAJ,CAAU,oFAAV,CAAN,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAA,CAAKmlC,oBAAL,CAA0BtlC,MAA1B,EAAkCkd,OAAlC,CAAA,CAAA;;IAEA,IAAK+qK,CAAAA,YAAL,CAAkBjoL,MAAlB,EAA0Bkd,OAA1B,EAAmC,KAAnC,EAA0C,IAA1C,CAAA,CAAA;GATF,CAAA;;AAYA6qK,EAAAA,WAAW,CAAC54M,SAAZ,CAAsB06C,kBAAtB,GAA2C,YAAY;IACrD,IAAIrjC,GAAG,CAACkD,IAAR,EAAc;AACZ,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;IAED,IAAIw+L,UAAU,GAAG,IAAA,CAAKC,YAAtB,CAAA;IACA,OAAO,IAAA,CAAK3gL,UAAL,CAAgB,WAAhB,CAAA,IAAgC0gL,UAAhC,IAA8CA,UAAU,CAACr+J,kBAAX,EAArD,CAAA;GANF,CAAA;AAQA;AACF;AACA;;;EAGEk+J,WAAW,CAAC54M,SAAZ,CAAsBquD,WAAtB,GAAoC,UAAU4rI,MAAV,EAAkBlsJ,OAAlB,EAA2B;IAC7D,IAAK+qK,CAAAA,YAAL,CAAkB7e,MAAlB,EAA0BlsJ,OAA1B,EAAmC,KAAnC,EAA0C,KAA1C,CAAA,CAAA;GADF,CAAA;;AAIA6qK,EAAAA,WAAW,CAAC54M,SAAZ,CAAsB84M,YAAtB,GAAqC,UAAU7e,MAAV,EAAkBlsJ,OAAlB,EAA2B8qK,aAA3B,EAA0ChiL,MAA1C,EAAkD;IACrF,IAAI4Z,aAAa,GAAG,IAAA,CAAKmT,QAAzB,CAAA;;IAEA,IAAI,CAACi1J,aAAL,EAAoB;AAClB9qK,MAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;AACxC;QACA,IAAIuiL,SAAS,GAAGviL,WAAW,CAACyB,GAAZ,CAAgB,IAAKyrB,CAAAA,QAArB,EAA+B,IAA/B,CAAhB,CAAA;QACA,IAAIs1J,WAAW,GAAG9rI,OAAK,CAAC12C,WAAD,CAAL,CAAmB+Z,aAAnB,CAAlB,CAAA;;AAEA,QAAA,IAAI,CAACwoK,SAAD,IAAc,CAACA,SAAS,CAAC/kL,IAA7B,EAAmC;AACjCk5C,UAAAA,OAAK,CAAC12C,WAAD,CAAL,CAAmB+Z,aAAnB,IAAoC,IAApC,CAAA;AACA,UAAA,OAAA;AACD,SAAA;;QAED,IAAI,CAACyoK,WAAL,EAAkB;AAChB,UAAA,IAAIriL,MAAJ,EAAY;AACV;YACA8hL,SAAS,CAACM,SAAD,CAAT,CAAA;AACD,WAAA;;UAEDvxK,MAAA,CAAYuxK,SAAS,CAAC/kL,IAAtB,EAA4B,UAAU3hB,IAAV,EAAgB;AAC1C;YACA,IAAIA,IAAI,YAAYy+B,KAApB,EAA2B;AACzB2nK,cAAAA,SAAS,CAACpmM,IAAI,CAAC,CAAD,CAAL,CAAT,CAAA;AACAomM,cAAAA,SAAS,CAACpmM,IAAI,CAAC,CAAD,CAAL,CAAT,CAAA;AACD,aAHD,MAGO;cACLomM,SAAS,CAACpmM,IAAD,CAAT,CAAA;AACD,aAAA;WAPH,CAAA,CAAA;UASA2mM,WAAW,GAAG,IAAKC,CAAAA,2BAAL,CAAiCF,SAAjC,EAA4C,IAA5C,EAAkDlrK,OAAlD,CAAd,CAfgB;AAgBhB;AACA;;AAEArG,UAAAA,MAAA,CAAcwxK,WAAd,EAA2B;YACzBt1J,QAAQ,EAAE,KAAKA,QADU;AAEzB;YACA7T,WAAW,EAAErZ,WAAW,CAACqZ,WAHA;YAIzBrpC,IAAI,EAAEgwB,WAAW,CAAChwB,IAJO;AAKzBmyM,YAAAA,aAAa,EAAE,IAAA;WALjB,CAAA,CAAA;UAOAK,WAAW,CAACF,YAAZ,GAA2BtiL,WAA3B,CAAA;AACD,SA3BD,MA2BO;AACLwiL,UAAAA,WAAW,CAACJ,YAAZ,CAAyBG,SAAzB,EAAoClrK,OAApC,EAA6C,IAA7C,CAAA,CAAA;AACD,SAAA;;AAEDq/B,QAAAA,OAAK,CAAC12C,WAAD,CAAL,CAAmB+Z,aAAnB,IAAoCyoK,WAApC,CAAA;AACD,OA1CD,EA0CG,IA1CH,CAAA,CAAA;AA2CD,KAAA;GA/CH,CAAA;;EAkDAN,WAAW,CAAC54M,SAAZ,CAAsB6xE,aAAtB,GAAsC,UAAU19C,SAAV,EAAqB29C,cAArB,EAAqCC,QAArC,EAA+C;AACnF,IAAA,IAAI79C,IAAI,GAAG,IAAKnC,CAAAA,OAAL,EAAX,CAAA;AACA,IAAA,IAAImN,KAAK,GAAG,IAAA,CAAK0T,WAAL,CAAiBze,SAAjB,CAAZ,CAAA;AACA,IAAA,IAAIqxC,QAAQ,GAAGtxC,IAAI,CAACyF,OAAL,CAAaxF,SAAb,CAAf,CAAA;IACA,OAAOi+C,mBAAmB,CAAC,SAAD,EAAY;MACpCC,MAAM,EAAE,KAAK3rE,IADuB;AAEpC6rE,MAAAA,MAAM,EAAE,CAACH,mBAAmB,CAAC,WAAD,EAAc;AACxC1rE,QAAAA,IAAI,EAAE8+D,QADkC;AAExCtmC,QAAAA,KAAK,EAAEA,KAFiC;QAGxCgzK,MAAM,EAAE,CAAC1sI,QAH+B;QAIxCy/B,OAAO,EAAE/lE,KAAK,IAAI,IAAA;AAJsB,OAAd,CAApB,CAAA;AAF4B,KAAZ,CAA1B,CAAA;GAJF,CAAA;;AAeA05K,EAAAA,WAAW,CAAC54M,SAAZ,CAAsB+xB,OAAtB,GAAgC,YAAY;AAC1C,IAAA,OAAO,KAAKyJ,KAAZ,CAAA;GADF,CAAA;;AAIAo9K,EAAAA,WAAW,CAAC54M,SAAZ,CAAsBi1C,OAAtB,GAAgC,UAAU/gB,IAAV,EAAgB;IAC9C,IAAKsH,CAAAA,KAAL,GAAatH,IAAb,CAAA;GADF,CAAA;;AAIA0kL,EAAAA,WAAW,CAACQ,wBAAZ,GAAuC,UAAU1iL,WAAV;AACvC+Z,EAAAA,aADuC,EACxB;AACb,IAAA,OAAO28B,OAAK,CAAC12C,WAAD,CAAL,CAAmB+Z,aAAnB,CAAP,CAAA;GAFF,CAAA;;EAKAmoK,WAAW,CAAC7lM,IAAZ,GAAmB,QAAnB,CAAA;EACA6lM,WAAW,CAAClmL,YAAZ,GAA2B,CAAC,QAAD,EAAW,MAAX,EAAmB,OAAnB,EAA4B,KAA5B,CAA3B,CAAA;AACA,EAAA,OAAOkmL,WAAP,CAAA;AACD,CAjID,CAiIE7lJ,cAjIF,CAFA,CAAA;;AAqIArrB,KAAA,CAAakxK,WAAb,EAA0BvH,eAAe,CAACrxM,SAA1C,CAAA;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAIq5M,cAAc;AAClB;AACA,UAAUn1L,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACk1L,cAAD,EAAiBn1L,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAASm1L,cAAT,GAA0B;AACxB,IAAA,IAAIj1L,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAasmM,cAAc,CAACtmM,IAA5B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDi1L,cAAc,CAACr5M,SAAf,CAAyBm5M,2BAAzB,GAAuD,UAAUF,SAAV,EAAqBK,iBAArB,EAAwCvrK,OAAxC,EAAiD;IACtG,OAAO,IAAIsrK,cAAJ,CAAmBJ,SAAnB,EAA8BK,iBAA9B,EAAiDvrK,OAAjD,CAAP,CAAA;GADF,CAAA;;EAIAsrK,cAAc,CAACtmM,IAAf,GAAsB,WAAtB,CAAA;EACAsmM,cAAc,CAAC1mL,aAAf,GAA+B;AAC7B;AACAzG,IAAAA,CAAC,EAAE,CAF0B;AAG7BkG,IAAAA,MAAM,EAAE,KAHqB;AAI7BiB,IAAAA,UAAU,EAAE,EAJiB;AAK7B;AACA;AACA0gC,IAAAA,OAAO,EAAE;AACPglB,MAAAA,OAAO,EAAE,MAAA;KARkB;AAU7BlmD,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,IADD;AAELjP,MAAAA,QAAQ,EAAE,QAAA;KAZiB;AAc7BuO,IAAAA,SAAS,EAAE;AACTzM,MAAAA,WAAW,EAAE,CAAA;KAfc;AAiB7BsN,IAAAA,QAAQ,EAAE;AACRL,MAAAA,KAAK,EAAE;AACLE,QAAAA,IAAI,EAAE,IAAA;AADD,OAAA;AADC,KAAA;GAjBZ,CAAA;AAuBA,EAAA,OAAOsmL,cAAP,CAAA;AACD,CAvCD,CAuCET,WAvCF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,SAASW,OAAT,CAAiBhnM,IAAjB,EAAuB;EACrB,OAAO,EAAE1O,KAAK,CAACmR,UAAU,CAACzC,IAAI,CAAC9R,CAAN,CAAX,CAAL,IAA6BoD,KAAK,CAACmR,UAAU,CAACzC,IAAI,CAAC7R,CAAN,CAAX,CAApC,CAAP,CAAA;AACD,CAAA;;AAED,SAAS84M,QAAT,CAAkBjnM,IAAlB,EAAwB;EACtB,OAAO,CAAC1O,KAAK,CAACmR,UAAU,CAACzC,IAAI,CAAC9R,CAAN,CAAX,CAAN,IAA8B,CAACoD,KAAK,CAACmR,UAAU,CAACzC,IAAI,CAAC7R,CAAN,CAAX,CAA3C,CAAA;AACD,CAAA;;AAED,SAAS+4M,8BAAT,CAAwCjnI,UAAxC,EAAoDt+C,IAApD,EAA0DwlL,YAA1D,EAAwEC,aAAxE,EAAuFC,eAAvF,EAAwGC,gBAAxG,EAA0H;EACxH,IAAIC,QAAQ,GAAG,EAAf,CAAA;AACA,EAAA,IAAIt7K,OAAO,GAAGG,kBAAkB,CAACzK,IAAD,EAAOylL,aAAAA;AACvC;GADA,CAAA;EAGA,IAAII,WAAW,GAAGv7K,OAAO,GAAGtK,IAAI,CAACwK,kBAAL,CAAwB,sBAAxB,CAAH,GAAqDi7K,aAA9E,CAAA;EACA,IAAIz6K,KAAK,GAAG86K,YAAY,CAAC9lL,IAAD,EAAO6lL,WAAP,EAAoBvnI,UAApB,CAAxB,CAAA;EACA,IAAIr+C,SAAS,GAAGD,IAAI,CAAC03I,gBAAL,CAAsBmuC,WAAtB,EAAmC76K,KAAnC,CAA0C,CAAA,CAA1C,CAAhB,CAAA;EACA46K,QAAQ,CAACF,eAAD,CAAR,GAA4B1lL,IAAI,CAACiE,GAAL,CAASuhL,YAAT,EAAuBvlL,SAAvB,CAA5B,CAAA;EACA2lL,QAAQ,CAACD,gBAAD,CAAR,GAA6B3lL,IAAI,CAACiE,GAAL,CAAS4hL,WAAT,EAAsB5lL,SAAtB,CAA7B,CAAA;EACA,IAAI8lL,aAAa,GAAG/lL,IAAI,CAACiE,GAAL,CAASwhL,aAAT,EAAwBxlL,SAAxB,CAApB,CAVwH;;AAYxH,EAAA,IAAIj0B,SAAS,GAAGw1E,YAAA,CAAwBxhD,IAAI,CAACiE,GAAL,CAASwhL,aAAT,EAAwBxlL,SAAxB,CAAxB,CAAhB,CAAA;EACAj0B,SAAS,GAAGV,IAAI,CAAC8iC,GAAL,CAASpiC,SAAT,EAAoB,EAApB,CAAZ,CAAA;;EAEA,IAAIA,SAAS,IAAI,CAAjB,EAAoB;AAClB45M,IAAAA,QAAQ,CAACD,gBAAD,CAAR,GAA6B,CAACC,QAAQ,CAACD,gBAAD,CAAR,CAA2B3jF,OAA3B,CAAmCh2H,SAAnC,CAA9B,CAAA;AACD,GAAA;;AAED,EAAA,OAAO,CAAC45M,QAAD,EAAWG,aAAX,CAAP,CAAA;AACD;;;AAGD,IAAIC,oBAAoB,GAAG;AACzB53K,EAAAA,GAAG,EAAE8tB,OAAK,CAACqpJ,8BAAD,EAAiC,KAAjC,CADe;AAEzBv3L,EAAAA,GAAG,EAAEkuC,OAAK,CAACqpJ,8BAAD,EAAiC,KAAjC,CAFe;AAGzBhlK,EAAAA,OAAO,EAAE2b,OAAK,CAACqpJ,8BAAD,EAAiC,SAAjC,CAHW;AAIzBpmE,EAAAA,MAAM,EAAEjjF,OAAK,CAACqpJ,8BAAD,EAAiC,QAAjC,CAAA;AAJY,CAA3B,CAAA;AAMA;AACA;AACA;AACA;AACA;;AAEO,SAASU,aAAT,CAAuBzjL,WAAvB,EAAoCnkB,IAApC,EAA0C;AAC/C,EAAA,IAAI2hB,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,EAAA,IAAIjB,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAF+C;AAG/C;AACA;AACA;;AAEA,EAAA,IAAIxe,IAAI,IAAI,CAACinM,QAAQ,CAACjnM,IAAD,CAAjB,IAA2B,CAAC8J,SAAO,CAAC9J,IAAI,CAAC02B,KAAN,CAAnC,IAAmDnY,QAAvD,EAAiE;AAC/D,IAAA,IAAIuN,IAAI,GAAGvN,QAAQ,CAACwN,UAApB,CAAA;AACA,IAAA,IAAIwsC,QAAQ,GAAGsB,WAAW,CAAC75D,IAAD,EAAO2hB,IAAP,EAAapD,QAAb,EAAuB4F,WAAvB,CAA1B,CAF+D;AAG/D;;AAEAnkB,IAAAA,IAAI,GAAG+G,OAAK,CAAC/G,IAAD,CAAZ,CAAA;;AAEA,IAAA,IAAIA,IAAI,CAACQ,IAAL,IAAamnM,oBAAoB,CAAC3nM,IAAI,CAACQ,IAAN,CAAjC,IAAgD+3D,QAAQ,CAACttC,QAAzD,IAAqEstC,QAAQ,CAACptC,SAAlF,EAA6F;MAC3F,IAAIk8K,eAAe,GAAG1sM,OAAO,CAACmxB,IAAD,EAAOysC,QAAQ,CAACttC,QAAT,CAAkBO,GAAzB,CAA7B,CAAA;MACA,IAAI87K,gBAAgB,GAAG3sM,OAAO,CAACmxB,IAAD,EAAOysC,QAAQ,CAACptC,SAAT,CAAmBK,GAA1B,CAA9B,CAAA;MACA,IAAIq8K,SAAS,GAAGF,oBAAoB,CAAC3nM,IAAI,CAACQ,IAAN,CAApB,CAAgCmhB,IAAhC,EAAsC42C,QAAQ,CAACuvI,WAA/C,EAA4DvvI,QAAQ,CAACwvI,YAArE,EAAmFV,eAAnF,EAAoGC,gBAApG,CAAhB,CAAA;MACAtnM,IAAI,CAAC02B,KAAL,GAAamxK,SAAS,CAAC,CAAD,CAAtB,CAJ2F;AAK3F;;AAEA7nM,MAAAA,IAAI,CAAC2sB,KAAL,GAAak7K,SAAS,CAAC,CAAD,CAAtB,CAAA;AACD,KARD,MAQO;AACL;AACA,MAAA,IAAInxK,KAAK,GAAG,CAAC12B,IAAI,CAACgnD,KAAL,IAAc,IAAd,GAAqBhnD,IAAI,CAACgnD,KAA1B,GAAkChnD,IAAI,CAACu+I,UAAxC,EAAoDv+I,IAAI,CAACinD,KAAL,IAAc,IAAd,GAAqBjnD,IAAI,CAACinD,KAA1B,GAAkCjnD,IAAI,CAACy+I,SAA3F,CAAZ,CAFK;;MAIL,KAAK,IAAIttJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAApB,EAAuBA,CAAC,EAAxB,EAA4B;AAC1B,QAAA,IAAIw2M,oBAAoB,CAACjxK,KAAK,CAACvlC,CAAD,CAAN,CAAxB,EAAoC;UAClCulC,KAAK,CAACvlC,CAAD,CAAL,GAAWs2M,YAAY,CAAC9lL,IAAD,EAAOA,IAAI,CAACgK,YAAL,CAAkBG,IAAI,CAAC36B,CAAD,CAAtB,CAAP,EAAmCulC,KAAK,CAACvlC,CAAD,CAAxC,CAAvB,CAAA;AACD,SAAA;AACF,OAAA;;MAED6O,IAAI,CAAC02B,KAAL,GAAaA,KAAb,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAO12B,IAAP,CAAA;AACD,CAAA;AACM,SAAS65D,WAAT,CAAqB75D,IAArB,EAA2B2hB,IAA3B,EAAiCpD,QAAjC,EAA2C4F,WAA3C,EAAwD;EAC7D,IAAIpU,GAAG,GAAG,EAAV,CAAA;;EAEA,IAAI/P,IAAI,CAACgoM,UAAL,IAAmB,IAAnB,IAA2BhoM,IAAI,CAAC0rB,QAAL,IAAiB,IAAhD,EAAsD;IACpD3b,GAAG,CAACg4L,YAAJ,GAAmB/nM,IAAI,CAACgoM,UAAL,IAAmB,IAAnB,GAA0BrmL,IAAI,CAACsmL,YAAL,CAAkBjoM,IAAI,CAACgoM,UAAvB,CAA1B,GAA+DhoM,IAAI,CAAC0rB,QAAvF,CAAA;AACA3b,IAAAA,GAAG,CAACob,SAAJ,GAAgB5M,QAAQ,CAAC8Y,OAAT,CAAiB6wK,iBAAiB,CAAC/jL,WAAD,EAAcpU,GAAG,CAACg4L,YAAlB,CAAlC,CAAhB,CAAA;IACAh4L,GAAG,CAACkb,QAAJ,GAAe1M,QAAQ,CAAC6M,YAAT,CAAsBrb,GAAG,CAACob,SAA1B,CAAf,CAAA;AACApb,IAAAA,GAAG,CAAC+3L,WAAJ,GAAkBnmL,IAAI,CAACgK,YAAL,CAAkB5b,GAAG,CAACkb,QAAJ,CAAaO,GAA/B,CAAlB,CAAA;AACD,GALD,MAKO;AACLzb,IAAAA,GAAG,CAACkb,QAAJ,GAAe9G,WAAW,CAAC+G,WAAZ,EAAf,CAAA;IACAnb,GAAG,CAACob,SAAJ,GAAgB5M,QAAQ,CAAC6M,YAAT,CAAsBrb,GAAG,CAACkb,QAA1B,CAAhB,CAAA;AACAlb,IAAAA,GAAG,CAAC+3L,WAAJ,GAAkBnmL,IAAI,CAACgK,YAAL,CAAkB5b,GAAG,CAACkb,QAAJ,CAAaO,GAA/B,CAAlB,CAAA;AACAzb,IAAAA,GAAG,CAACg4L,YAAJ,GAAmBpmL,IAAI,CAACgK,YAAL,CAAkB5b,GAAG,CAACob,SAAJ,CAAcK,GAAhC,CAAnB,CAAA;AACD,GAAA;;AAED,EAAA,OAAOzb,GAAP,CAAA;AACD,CAAA;;AAED,SAASm4L,iBAAT,CAA2B/jL,WAA3B,EAAwCg1I,OAAxC,EAAiD;EAC/C,IAAIgvC,OAAO,GAAGhkL,WAAW,CAAC3E,OAAZ,EAAsB0X,CAAAA,gBAAtB,CAAuCiiI,OAAvC,CAAd,CAAA;AACA,EAAA,OAAOgvC,OAAO,IAAIA,OAAO,CAACn8K,QAA1B,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;;;AAGO,SAASinB,UAAT;AACP10B,QADO,EACGve,IADH,EACS;AACd;EACA,OAAOue,QAAQ,IAAIA,QAAQ,CAAC8nC,WAArB,IAAoCrmD,IAAI,CAAC02B,KAAzC,IAAkD,CAACswK,OAAO,CAAChnM,IAAD,CAA1D,GAAmEue,QAAQ,CAAC8nC,WAAT,CAAqBrmD,IAAI,CAAC02B,KAA1B,CAAnE,GAAsG,IAA7G,CAAA;AACD,CAAA;AACM,SAAS0xK,UAAT;AACP7pL,QADO,EACG8pL,KADH,EACUC,KADV,EACiB;AACtB;AACA,EAAA,OAAO/pL,QAAQ,IAAIA,QAAQ,CAAC+nC,WAArB,IAAoC+hJ,KAAK,CAAC3xK,KAA1C,IAAmD4xK,KAAK,CAAC5xK,KAAzD,IAAkE,CAACswK,OAAO,CAACqB,KAAD,CAA1E,IAAqF,CAACrB,OAAO,CAACsB,KAAD,CAA7F,GAAuG/pL,QAAQ,CAAC+nC,WAAT,CAAqB+hJ,KAAK,CAAC3xK,KAA3B,EAAkC4xK,KAAK,CAAC5xK,KAAxC,CAAvG,GAAwJ,IAA/J,CAAA;AACD,CAAA;AACM,SAAS6xK,0BAAT,CAAoCC,UAApC,EAAgD18K,IAAhD,EAAsD;EAC3D,OAAO08K,UAAU,GAAG,UAAUxoM,IAAV,EAAgBmuD,OAAhB,EAAyBvsC,SAAzB,EAAoCO,QAApC,EAA8C;AAChE,IAAA,IAAIJ,MAAM,GAAGI,QAAQ,GAAG,CAAX;AAAA,MACXniB,IAAI,CAAC02B,KAAL,IAAc12B,IAAI,CAAC02B,KAAL,CAAWvU,QAAX,CADH,GAC0BniB,IAAI,CAAC2sB,KAD5C,CAAA;IAEA,OAAO87K,cAAc,CAAC1mL,MAAD,EAAS+J,IAAI,CAAC3J,QAAD,CAAb,CAArB,CAAA;GAHe,GAIb,UAAUniB,IAAV,EAAgBmuD,OAAhB,EAAyBvsC,SAAzB,EAAoCO,QAApC,EAA8C;IAChD,OAAOsmL,cAAc,CAACzoM,IAAI,CAAC2sB,KAAN,EAAab,IAAI,CAAC3J,QAAD,CAAjB,CAArB,CAAA;GALF,CAAA;AAOD,CAAA;AACM,SAASslL,YAAT,CAAsB9lL,IAAtB,EAA4BomL,YAA5B,EAA0CvnM,IAA1C,EAAgD;EACrD,IAAIA,IAAI,KAAK,SAAb,EAAwB;IACtB,IAAIkoM,KAAK,GAAG,CAAZ,CAAA;IACA,IAAIC,OAAO,GAAG,CAAd,CAAA;IACAhnL,IAAI,CAACxnB,IAAL,CAAU4tM,YAAV,EAAwB,UAAU12M,GAAV,EAAe8rB,GAAf,EAAoB;AAC1C,MAAA,IAAI,CAAC7rB,KAAK,CAACD,GAAD,CAAV,EAAiB;AACfq3M,QAAAA,KAAK,IAAIr3M,GAAT,CAAA;QACAs3M,OAAO,EAAA,CAAA;AACR,OAAA;KAJH,CAAA,CAAA;IAMA,OAAOD,KAAK,GAAGC,OAAf,CAAA;AACD,GAVD,MAUO,IAAInoM,IAAI,KAAK,QAAb,EAAuB;AAC5B,IAAA,OAAOmhB,IAAI,CAACinL,SAAL,CAAeb,YAAf,CAAP,CAAA;AACD,GAFM,MAEA;AACL;AACA,IAAA,OAAOpmL,IAAI,CAAC8wB,aAAL,CAAmBs1J,YAAnB,CAAA,CAAiCvnM,IAAI,KAAK,KAAT,GAAiB,CAAjB,GAAqB,CAAtD,CAAP,CAAA;AACD,GAAA;AACF;;AChMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA+BA,IAAIq6D,OAAK,GAAGC,SAAS,EAArB,CAAA;;AAEA,IAAI+tI,UAAU;AACd;AACA,UAAUl3L,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACi3L,UAAD,EAAal3L,MAAb,CAAT,CAAA;;AAEA,EAAA,SAASk3L,UAAT,GAAsB;AACpB,IAAA,IAAIh3L,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaqoM,UAAU,CAACroM,IAAxB,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAEDg3L,EAAAA,UAAU,CAACp7M,SAAX,CAAqBytC,IAArB,GAA4B,YAAY;IACtC,IAAK4tK,CAAAA,cAAL,GAAsBj5H,aAAa,EAAnC,CAAA;GADF,CAAA;;EAIAg5H,UAAU,CAACp7M,SAAX,CAAqB8tC,MAArB,GAA8B,UAAUorK,WAAV,EAAuBnrK,OAAvB,EAAgCxxB,GAAhC,EAAqC;IACjE,IAAI6H,KAAK,GAAG,IAAZ,CAAA;;IAEA,IAAIi3L,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;AACAA,IAAAA,cAAc,CAAC3uM,IAAf,CAAoB,UAAU6F,IAAV,EAAgB;AAClC66D,MAAAA,OAAK,CAAC76D,IAAD,CAAL,CAAYk8L,IAAZ,GAAmB,KAAnB,CAAA;KADF,CAAA,CAAA;AAGA1gK,IAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;MACxC,IAAIwiL,WAAW,GAAGN,WAAW,CAACQ,wBAAZ,CAAqC1iL,WAArC,EAAkDtS,KAAK,CAACrR,IAAxD,CAAlB,CAAA;AACAmmM,MAAAA,WAAW,IAAI90L,KAAK,CAACk3L,YAAN,CAAmB5kL,WAAnB,EAAgCwiL,WAAhC,EAA6CnrK,OAA7C,EAAsDxxB,GAAtD,CAAf,CAAA;KAFF,CAAA,CAAA;AAIA8+L,IAAAA,cAAc,CAAC3uM,IAAf,CAAoB,UAAU6F,IAAV,EAAgB;AAClC,MAAA,CAAC66D,OAAK,CAAC76D,IAAD,CAAL,CAAYk8L,IAAb,IAAqBrqL,KAAK,CAACiN,KAAN,CAAY+K,MAAZ,CAAmB7pB,IAAI,CAAC8e,KAAxB,CAArB,CAAA;KADF,CAAA,CAAA;GAXF,CAAA;;AAgBA+pL,EAAAA,UAAU,CAACp7M,SAAX,CAAqBu7M,QAArB,GAAgC,UAAUC,SAAV,EAAqB;AACnDpuI,IAAAA,OAAK,CAACouI,SAAD,CAAL,CAAiB/M,IAAjB,GAAwB,IAAxB,CAAA;GADF,CAAA;;EAIA2M,UAAU,CAACp7M,SAAX,CAAqBy7M,gBAArB,GAAwC,UAAUC,eAAV,EAA2BC,MAA3B,EAAmC;IACzE,IAAIv3L,KAAK,GAAG,IAAZ,CAAA;;AAEA1X,IAAAA,MAAI,CAACgvM,eAAD,EAAkB,UAAUhlL,WAAV,EAAuB;MAC3C,IAAIwiL,WAAW,GAAGN,WAAW,CAACQ,wBAAZ,CAAqC1iL,WAArC,EAAkDtS,KAAK,CAACrR,IAAxD,CAAlB,CAAA;;AAEA,MAAA,IAAImmM,WAAJ,EAAiB;AACf,QAAA,IAAIhlL,IAAI,GAAGglL,WAAW,CAACnnL,OAAZ,EAAX,CAAA;AACAmC,QAAAA,IAAI,CAACwI,iBAAL,CAAuB,UAAUz3B,EAAV,EAAc;AACnC,UAAA,IAAIA,EAAJ,EAAQ;YACN02M,MAAM,GAAGC,SAAS,CAAC32M,EAAD,CAAZ,GAAmB42M,SAAS,CAAC52M,EAAD,CAAlC,CAAA;AACD,WAAA;SAHH,CAAA,CAAA;AAKD,OAAA;AACF,KAXG,CAAJ,CAAA;GAHF,CAAA;;EAiBAm2M,UAAU,CAACroM,IAAX,GAAkB,QAAlB,CAAA;AACA,EAAA,OAAOqoM,UAAP,CAAA;AACD,CArDD,CAqDEjuI,aArDF,CAFA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoCA,SAAS2uI,kBAAT,CAA4BC,MAA5B,EAAoCrlL,WAApC,EAAiDna,GAAjD,EAAsD;AACpD,EAAA,IAAIuU,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACAgrL,EAAAA,MAAM,CAACrvM,IAAP,CAAY,UAAUgjB,GAAV,EAAe;AACzB,IAAA,IAAIoI,SAAS,GAAGikL,MAAM,CAAChkL,YAAP,CAAoBrI,GAApB,CAAhB,CAAA;AACA,IAAA,IAAIkL,KAAJ,CAAA;AACA,IAAA,IAAIohL,GAAG,GAAGtmI,YAAA,CAAwB59C,SAAS,CAACK,GAAV,CAAc,GAAd,CAAxB,EAA4C5b,GAAG,CAACmG,QAAJ,EAA5C,CAAV,CAAA;AACA,IAAA,IAAIu5L,GAAG,GAAGvmI,YAAA,CAAwB59C,SAAS,CAACK,GAAV,CAAc,GAAd,CAAxB,EAA4C5b,GAAG,CAACoG,SAAJ,EAA5C,CAAV,CAAA;;IAEA,IAAI,CAAC9e,KAAK,CAACm4M,GAAD,CAAN,IAAe,CAACn4M,KAAK,CAACo4M,GAAD,CAAzB,EAAgC;AAC9BrhL,MAAAA,KAAK,GAAG,CAACohL,GAAD,EAAMC,GAAN,CAAR,CAAA;AACD,KAFD;AAAA,SAGK,IAAIvlL,WAAW,CAACuf,iBAAhB,EAAmC;AACpC;AACArb,MAAAA,KAAK,GAAGlE,WAAW,CAACuf,iBAAZ,CAA8B8lK,MAAM,CAACnpI,SAAP,CAAiBmpI,MAAM,CAACz9K,UAAxB,EAAoC5O,GAApC,CAA9B,CAAR,CAAA;KAFC,MAGI,IAAIoB,QAAJ,EAAc;AACnB,MAAA,IAAIrwB,CAAC,GAAGs7M,MAAM,CAAC5jL,GAAP,CAAWrH,QAAQ,CAACwN,UAAT,CAAoB,CAApB,CAAX,EAAmC5O,GAAnC,CAAR,CAAA;AACA,MAAA,IAAIhvB,CAAC,GAAGq7M,MAAM,CAAC5jL,GAAP,CAAWrH,QAAQ,CAACwN,UAAT,CAAoB,CAApB,CAAX,EAAmC5O,GAAnC,CAAR,CAAA;MACAkL,KAAK,GAAG9J,QAAQ,CAACuO,WAAT,CAAqB,CAAC5+B,CAAD,EAAIC,CAAJ,CAArB,CAAR,CAAA;AACD,KAhBsB;;;AAmBzB,IAAA,IAAI,CAACmD,KAAK,CAACm4M,GAAD,CAAV,EAAiB;AACfphL,MAAAA,KAAK,CAAC,CAAD,CAAL,GAAWohL,GAAX,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAACn4M,KAAK,CAACo4M,GAAD,CAAV,EAAiB;AACfrhL,MAAAA,KAAK,CAAC,CAAD,CAAL,GAAWqhL,GAAX,CAAA;AACD,KAAA;;AAEDF,IAAAA,MAAM,CAACznK,aAAP,CAAqB5kB,GAArB,EAA0BkL,KAA1B,CAAA,CAAA;GA3BF,CAAA,CAAA;AA6BD,CAAA;;AAED,IAAIshL,aAAa;AACjB;AACA,UAAUh4L,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC+3L,aAAD,EAAgBh4L,MAAhB,CAAT,CAAA;;AAEA,EAAA,SAASg4L,aAAT,GAAyB;AACvB,IAAA,IAAI93L,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAampM,aAAa,CAACnpM,IAA3B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED83L,aAAa,CAACl8M,SAAd,CAAwByyD,eAAxB,GAA0C,UAAU0pJ,cAAV,EAA0BpuK,OAA1B,EAAmCxxB,GAAnC,EAAwC;AAChFwxB,IAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;MACxC,IAAI0lL,OAAO,GAAGxD,WAAW,CAACQ,wBAAZ,CAAqC1iL,WAArC,EAAkD,WAAlD,CAAd,CAAA;;AAEA,MAAA,IAAI0lL,OAAJ,EAAa;QACXN,kBAAkB,CAACM,OAAO,CAACrqL,OAAR,EAAD,EAAoB2E,WAApB,EAAiCna,GAAjC,CAAlB,CAAA;QACA,IAAK8+L,CAAAA,cAAL,CAAoBljL,GAApB,CAAwBzB,WAAW,CAAC7iB,EAApC,EAAwC4oB,YAAxC,EAAA,CAAA;AACD,OAAA;AACF,KAPD,EAOG,IAPH,CAAA,CAAA;GADF,CAAA;;AAWAy/K,EAAAA,aAAa,CAACl8M,SAAd,CAAwBs7M,YAAxB,GAAuC,UAAU5kL,WAAV,EAAuB0lL,OAAvB,EAAgCruK,OAAhC,EAAyCxxB,GAAzC,EAA8C;AACnF,IAAA,IAAIuU,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,IAAA,IAAI4+D,QAAQ,GAAGj5D,WAAW,CAAC7iB,EAA3B,CAAA;AACA,IAAA,IAAIizJ,UAAU,GAAGpwI,WAAW,CAAC3E,OAAZ,EAAjB,CAAA;IACA,IAAIsqL,aAAa,GAAG,IAAA,CAAKhB,cAAzB,CAAA;AACA,IAAA,IAAI1tK,UAAU,GAAG0uK,aAAa,CAAClkL,GAAd,CAAkBw3D,QAAlB,CAAA,IAA+B0sH,aAAa,CAACpqJ,GAAd,CAAkB09B,QAAlB,EAA4B,IAAIz0D,UAAJ,EAA5B,CAAhD,CAAA;IACA,IAAI6gL,MAAM,GAAGO,UAAU,CAACxrL,QAAD,EAAW4F,WAAX,EAAwB0lL,OAAxB,CAAvB,CANmF;;IAQnFA,OAAO,CAACnnK,OAAR,CAAgB8mK,MAAhB,CAAA,CAAA;IACAD,kBAAkB,CAACM,OAAO,CAACrqL,OAAR,EAAD,EAAoB2E,WAApB,EAAiCna,GAAjC,CAAlB,CAAA;AACAw/L,IAAAA,MAAM,CAACrvM,IAAP,CAAY,UAAUgjB,GAAV,EAAe;AACzB,MAAA,IAAIoI,SAAS,GAAGikL,MAAM,CAAChkL,YAAP,CAAoBrI,GAApB,CAAhB,CAAA;AACA,MAAA,IAAI0C,MAAM,GAAG0F,SAAS,CAACO,UAAV,CAAqB,QAArB,CAAb,CAAA;AACA,MAAA,IAAIhF,UAAU,GAAGyE,SAAS,CAACO,UAAV,CAAqB,YAArB,CAAjB,CAAA;AACA,MAAA,IAAI/F,YAAY,GAAGwF,SAAS,CAACO,UAAV,CAAqB,cAArB,CAAnB,CAAA;AACA,MAAA,IAAIC,YAAY,GAAGR,SAAS,CAACO,UAAV,CAAqB,cAArB,CAAnB,CAAA;MACA,IAAIuuF,gBAAgB,GAAG9uF,SAAS,CAACO,UAAV,CAAqB,kBAArB,CAAvB,CANyB;;AAQzB,MAAA,IAAItnB,UAAU,CAACqhB,MAAD,CAAV,IAAsBrhB,UAAU,CAACsiB,UAAD,CAAhC,IAAgDtiB,UAAU,CAACuhB,YAAD,CAA1D,IAA4EvhB,UAAU,CAACunB,YAAD,CAA1F,EAA0G;AACxG,QAAA,IAAIimB,MAAM,GAAG69J,OAAO,CAACxpK,WAAR,CAAoBljB,GAApB,CAAb,CAAA;AACA,QAAA,IAAIu3I,UAAU,GAAGm1C,OAAO,CAAC5tJ,aAAR,CAAsB9+B,GAAtB,CAAjB,CAAA;;AAEA,QAAA,IAAI3e,UAAU,CAACqhB,MAAD,CAAd,EAAwB;AACtBA,UAAAA,MAAM,GAAGA,MAAM,CAACmsB,MAAD,EAAS0oH,UAAT,CAAf,CAAA;AACD,SAAA;;AAED,QAAA,IAAIl2J,UAAU,CAACsiB,UAAD,CAAd,EAA4B;AAC1B;AACAA,UAAAA,UAAU,GAAGA,UAAU,CAACkrB,MAAD,EAAS0oH,UAAT,CAAvB,CAAA;AACD,SAAA;;AAED,QAAA,IAAIl2J,UAAU,CAACuhB,YAAD,CAAd,EAA8B;AAC5BA,UAAAA,YAAY,GAAGA,YAAY,CAACisB,MAAD,EAAS0oH,UAAT,CAA3B,CAAA;AACD,SAAA;;AAED,QAAA,IAAIl2J,UAAU,CAACunB,YAAD,CAAd,EAA8B;AAC5BA,UAAAA,YAAY,GAAGA,YAAY,CAACimB,MAAD,EAAS0oH,UAAT,CAA3B,CAAA;AACD,SAAA;AACF,OAAA;;MAED,IAAI3iK,KAAK,GAAGwzB,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAAgCC,CAAAA,YAAhC,EAAZ,CAAA;AACA,MAAA,IAAI5yB,KAAK,GAAGi3M,iBAAiB,CAACz1C,UAAD,EAAa,OAAb,CAA7B,CAAA;;AAEA,MAAA,IAAI,CAACxiK,KAAK,CAACC,IAAX,EAAiB;QACfD,KAAK,CAACC,IAAN,GAAae,KAAb,CAAA;AACD,OAAA;;AAEDy2M,MAAAA,MAAM,CAAChmI,aAAP,CAAqBrmD,GAArB,EAA0B;AACxB0C,QAAAA,MAAM,EAAEA,MADgB;AAExBiB,QAAAA,UAAU,EAAEA,UAFY;AAGxBf,QAAAA,YAAY,EAAEA,YAHU;AAIxBgG,QAAAA,YAAY,EAAEA,YAJU;AAKxBsuF,QAAAA,gBAAgB,EAAEA,gBALM;AAMxBtiH,QAAAA,KAAK,EAAEA,KAAAA;OANT,CAAA,CAAA;AAQD,KA7CD,EAVmF;;IAyDnFqpC,UAAU,CAAC7Y,UAAX,CAAsBinL,MAAtB,CAAA,CAAA;IACA,IAAK1qL,CAAAA,KAAL,CAAWO,GAAX,CAAe+b,UAAU,CAACtc,KAA1B,EA1DmF;AA2DnF;;AAEA0qL,IAAAA,MAAM,CAACr/K,iBAAP,CAAyB,UAAUz3B,EAAV,EAAc;AACrCA,MAAAA,EAAE,CAACk4B,QAAH,CAAY,UAAUv1B,KAAV,EAAiB;AAC3BsyB,QAAAA,SAAS,CAACtyB,KAAD,CAAT,CAAiBs9L,SAAjB,GAA6BkX,OAA7B,CAAA;OADF,CAAA,CAAA;KADF,CAAA,CAAA;IAKA,IAAKb,CAAAA,QAAL,CAAc5tK,UAAd,CAAA,CAAA;AACAA,IAAAA,UAAU,CAACtc,KAAX,CAAiBmF,MAAjB,GAA0B4lL,OAAO,CAACjkL,GAAR,CAAY,QAAZ,KAAyBzB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAnD,CAAA;GAnEF,CAAA;;EAsEA+jL,aAAa,CAACnpM,IAAd,GAAqB,WAArB,CAAA;AACA,EAAA,OAAOmpM,aAAP,CAAA;AACD,CA7FD,CA6FEd,UA7FF,CAFA,CAAA;;AAiGA,SAASkB,UAAT,CAAoBxrL,QAApB,EAA8B4F,WAA9B,EAA2C0lL,OAA3C,EAAoD;AAClD,EAAA,IAAII,cAAJ,CAAA;;AAEA,EAAA,IAAI1rL,QAAJ,EAAc;IACZ0rL,cAAc,GAAG53M,GAAG,CAACksB,QAAQ,IAAIA,QAAQ,CAACwN,UAAtB,EAAkC,UAAUC,QAAV,EAAoB;AACxE,MAAA,IAAIof,IAAI,GAAGjnB,WAAW,CAAC3E,OAAZ,EAAA,CAAsB0X,gBAAtB,CAAuC/S,WAAW,CAAC3E,OAAZ,EAAA,CAAsBmM,YAAtB,CAAmCK,QAAnC,CAAvC,CAAwF,IAAA,EAAnG,CADwE;;MAGxE,OAAOhzB,MAAM,CAACA,MAAM,CAAC,EAAD,EAAKoyC,IAAL,CAAP,EAAmB;AAC9Bj3C,QAAAA,IAAI,EAAE63B,QADwB;AAE9B;AACA2xG,QAAAA,WAAW,EAAE,IAAA;AAHiB,OAAnB,CAAb,CAAA;AAKD,KARmB,CAApB,CAAA;AASD,GAVD,MAUO;AACLssE,IAAAA,cAAc,GAAG,CAAC;AAChB91M,MAAAA,IAAI,EAAE,OADU;AAEhBqM,MAAAA,IAAI,EAAE,OAAA;AAFU,KAAD,CAAjB,CAAA;AAID,GAAA;;EAED,IAAIgpM,MAAM,GAAG,IAAI1uJ,UAAJ,CAAemvJ,cAAf,EAA+BJ,OAA/B,CAAb,CAAA;AACA,EAAA,IAAIK,OAAO,GAAG73M,GAAG,CAACw3M,OAAO,CAACjkL,GAAR,CAAY,MAAZ,CAAD,EAAsBi4B,OAAK,CAACssJ,aAAD,EAA6BhmL,WAA7B,CAA3B,CAAjB,CAAA;;AAEA,EAAA,IAAI5F,QAAJ,EAAc;AACZ2rL,IAAAA,OAAO,GAAG9rM,MAAM,CAAC8rM,OAAD,EAAUrsJ,OAAK,CAACssJ,UAAD,EAA0B5rL,QAA1B,CAAf,CAAhB,CAAA;AACD,GAAA;;EAED,IAAI6rL,cAAc,GAAGD,0BAAA,CAAwC,CAAC,CAAC5rL,QAA1C,EAAoD0rL,cAApD,CAArB,CAAA;AACAT,EAAAA,MAAM,CAACzuJ,QAAP,CAAgBmvJ,OAAhB,EAAyB,IAAzB,EAA+BE,cAA/B,CAAA,CAAA;AACA,EAAA,OAAOZ,MAAP,CAAA;AACD;;ACrND;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAUO,SAAS34L,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiCmiJ,cAAjC,CAAA,CAAA;EACAh2L,SAAS,CAACksD,qBAAV,CAAgC2sI,aAAhC,CAAA,CAAA;AACA74L,EAAAA,SAAS,CAACosD,oBAAV,CAA+B,UAAUr+C,GAAV,EAAe;IAC5C,IAAIonL,mBAAmB,CAACpnL,GAAG,CAACm/C,MAAL,EAAa,WAAb,CAAvB,EAAkD;AAChD;AACAn/C,MAAAA,GAAG,CAACu/J,SAAJ,GAAgBv/J,GAAG,CAACu/J,SAAJ,IAAiB,EAAjC,CAAA;AACD,KAAA;GAJH,CAAA,CAAA;AAMD;;ACpCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAIisB,aAAa;AACjB;AACA,UAAU14L,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACy4L,aAAD,EAAgB14L,MAAhB,CAAT,CAAA;;AAEA,EAAA,SAAS04L,aAAT,GAAyB;AACvB,IAAA,IAAIx4L,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa6pM,aAAa,CAAC7pM,IAA3B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDw4L,aAAa,CAAC58M,SAAd,CAAwBm5M,2BAAxB,GAAsD,UAAUF,SAAV,EAAqBK,iBAArB,EAAwCvrK,OAAxC,EAAiD;IACrG,OAAO,IAAI6uK,aAAJ,CAAkB3D,SAAlB,EAA6BK,iBAA7B,EAAgDvrK,OAAhD,CAAP,CAAA;GADF,CAAA;;EAIA6uK,aAAa,CAAC7pM,IAAd,GAAqB,UAArB,CAAA;EACA6pM,aAAa,CAACjqL,aAAd,GAA8B;AAC5B;AACAzG,IAAAA,CAAC,EAAE,CAFyB;AAG5BkG,IAAAA,MAAM,EAAE,CAAC,QAAD,EAAW,OAAX,CAHoB;AAI5BiB,IAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,EAAJ,CAJgB;AAK5B;AACAiF,IAAAA,YAAY,EAAE,CANc;AAO5Bp4B,IAAAA,SAAS,EAAE,CAPiB;AAQ5B6zD,IAAAA,OAAO,EAAE;AACPglB,MAAAA,OAAO,EAAE,MAAA;KATiB;AAW5BlmD,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,IADD;AAELjP,MAAAA,QAAQ,EAAE,KAFL;AAGLmP,MAAAA,QAAQ,EAAE,CAAA;KAdgB;AAgB5BtB,IAAAA,SAAS,EAAE;AACT5e,MAAAA,IAAI,EAAE,QAAA;KAjBoB;AAmB5BmgB,IAAAA,QAAQ,EAAE;AACRL,MAAAA,KAAK,EAAE;AACLE,QAAAA,IAAI,EAAE,IAAA;OAFA;AAIRpB,MAAAA,SAAS,EAAE;AACTloB,QAAAA,KAAK,EAAE,CAAA;AADE,OAAA;KAvBe;AA2B5BiqB,IAAAA,eAAe,EAAE,QAAA;GA3BnB,CAAA;AA6BA,EAAA,OAAOkpL,aAAP,CAAA;AACD,CA7CD,CA6CEhE,WA7CF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsCA,IAAIxrI,OAAK,GAAGC,SAAS,EAArB,CAAA;;AAEA,IAAIwvI,iBAAiB,GAAG,SAApBA,iBAAoB,CAAUnmL,WAAV,EAAuB5F,QAAvB,EAAiCgsL,OAAjC,EAA0CvqM,IAA1C,EAAgD;AACtE,EAAA,IAAI2hB,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,EAAA,IAAIgrL,SAAJ,CAAA;;AAEA,EAAA,IAAI,CAAC1gM,SAAO,CAAC9J,IAAD,CAAZ,EAAoB;AAClB;AACA,IAAA,IAAIyqM,MAAM,GAAGzqM,IAAI,CAACQ,IAAlB,CAAA;;AAEA,IAAA,IAAIiqM,MAAM,KAAK,KAAX,IAAoBA,MAAM,KAAK,KAA/B,IAAwCA,MAAM,KAAK,SAAnD,IAAgEA,MAAM,KAAK,QAA3E;AACJ;AACA;AACA;OACGzqM,IAAI,CAACgnD,KAAL,IAAc,IAJb,IAIqBhnD,IAAI,CAACinD,KAAL,IAAc,IAJvC,EAI6C;MAC3C,IAAI97B,SAAS,GAAG,KAAK,CAArB,CAAA;MACA,IAAIwB,KAAK,GAAG,KAAK,CAAjB,CAAA;;MAEA,IAAI3sB,IAAI,CAACinD,KAAL,IAAc,IAAd,IAAsBjnD,IAAI,CAACgnD,KAAL,IAAc,IAAxC,EAA8C;AAC5C77B,QAAAA,SAAS,GAAG5M,QAAQ,CAAC8Y,OAAT,CAAiBr3B,IAAI,CAACinD,KAAL,IAAc,IAAd,GAAqB,GAArB,GAA2B,GAA5C,CAAZ,CAAA;QACAt6B,KAAK,GAAGulC,QAAQ,CAAClyD,IAAI,CAACinD,KAAN,EAAajnD,IAAI,CAACgnD,KAAlB,CAAhB,CAAA;AACD,OAHD,MAGO;AACL,QAAA,IAAIuR,QAAQ,GAAG4xI,WAAA,CAAyBnqM,IAAzB,EAA+B2hB,IAA/B,EAAqCpD,QAArC,EAA+C4F,WAA/C,CAAf,CAAA;QACAgH,SAAS,GAAGotC,QAAQ,CAACptC,SAArB,CAAA;QACA,IAAI48K,YAAY,GAAG2C,mBAAmB,CAAC/oL,IAAD,EAAO42C,QAAQ,CAACwvI,YAAhB,CAAtC,CAAA;QACAp7K,KAAK,GAAGw9K,YAAA,CAA0BxoL,IAA1B,EAAgComL,YAAhC,EAA8C0C,MAA9C,CAAR,CAAA;AACD,OAAA;;MAED,IAAIzC,UAAU,GAAG78K,SAAS,CAACK,GAAV,KAAkB,GAAlB,GAAwB,CAAxB,GAA4B,CAA7C,CAAA;AACA,MAAA,IAAIiK,SAAS,GAAG,CAAIuyK,GAAAA,UAApB,CAf2C;;AAiB3C,MAAA,IAAI2C,MAAM,GAAG5jM,OAAK,CAAC/G,IAAD,CAAlB,CAAA;AACA,MAAA,IAAI4qM,IAAI,GAAG;AACTl0K,QAAAA,KAAK,EAAE,EAAA;OADT,CAAA;MAGAi0K,MAAM,CAACnqM,IAAP,GAAc,IAAd,CAAA;MACAmqM,MAAM,CAACj0K,KAAP,GAAe,EAAf,CAAA;AACAi0K,MAAAA,MAAM,CAACj0K,KAAP,CAAajB,SAAb,CAAA,GAA0B,CAACzgB,QAA3B,CAAA;AACA41L,MAAAA,IAAI,CAACl0K,KAAL,CAAWjB,SAAX,IAAwBzgB,QAAxB,CAAA;AACA,MAAA,IAAIrnB,SAAS,GAAG48M,OAAO,CAAC3kL,GAAR,CAAY,WAAZ,CAAhB,CAAA;;MAEA,IAAIj4B,SAAS,IAAI,CAAb,IAAkBwP,QAAQ,CAACwvB,KAAD,CAA9B,EAAuC;AACrCA,QAAAA,KAAK,GAAG,CAACA,KAAK,CAACg3F,OAAN,CAAc12H,IAAI,CAAC8iC,GAAL,CAASpiC,SAAT,EAAoB,EAApB,CAAd,CAAT,CAAA;AACD,OAAA;;MAEDg9M,MAAM,CAACj0K,KAAP,CAAasxK,UAAb,CAAA,GAA2B4C,IAAI,CAACl0K,KAAL,CAAWsxK,UAAX,CAAA,GAAyBr7K,KAApD,CAAA;AACA69K,MAAAA,SAAS,GAAG,CAACG,MAAD,EAASC,IAAT,EAAe;AACzBpqM,QAAAA,IAAI,EAAEiqM,MADmB;QAEzBzC,UAAU,EAAEhoM,IAAI,CAACgoM,UAFQ;AAGzB;AACAr7K,QAAAA,KAAK,EAAEA,KAAAA;AAJkB,OAAf,CAAZ,CAAA;AAMD,KA1CD,MA0CO;AACL;AACA,MAAA,IAAI9nB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;QACzCC,QAAQ,CAAC,wBAAD,CAAR,CAAA;AACD,OAAA;;AAEDwlM,MAAAA,SAAS,GAAG,EAAZ,CAAA;AACD,KAAA;AACF,GAtDD,MAsDO;AACLA,IAAAA,SAAS,GAAGxqM,IAAZ,CAAA;AACD,GAAA;;AAED,EAAA,IAAI6qM,cAAc,GAAG,CAACV,aAAA,CAA2BhmL,WAA3B,EAAwCqmL,SAAS,CAAC,CAAD,CAAjD,CAAD,EAAwDL,aAAA,CAA2BhmL,WAA3B,EAAwCqmL,SAAS,CAAC,CAAD,CAAjD,CAAxD,EAA+GxxM,MAAM,CAAC,EAAD,EAAKwxM,SAAS,CAAC,CAAD,CAAd,CAArH,CAArB,CA9DsE;;AAgEtEK,EAAAA,cAAc,CAAC,CAAD,CAAd,CAAkBrqM,IAAlB,GAAyBqqM,cAAc,CAAC,CAAD,CAAd,CAAkBrqM,IAAlB,IAA0B,IAAnD,CAhEsE;;EAkEtEijD,KAAK,CAAConJ,cAAc,CAAC,CAAD,CAAf,EAAoBA,cAAc,CAAC,CAAD,CAAlC,CAAL,CAAA;EACApnJ,KAAK,CAAConJ,cAAc,CAAC,CAAD,CAAf,EAAoBA,cAAc,CAAC,CAAD,CAAlC,CAAL,CAAA;AACA,EAAA,OAAOA,cAAP,CAAA;AACD,CArED,CAAA;;AAuEA,SAASC,aAAT,CAAqBz5M,GAArB,EAA0B;EACxB,OAAO,CAACC,KAAK,CAACD,GAAD,CAAN,IAAe,CAACqjB,QAAQ,CAACrjB,GAAD,CAA/B,CAAA;AACD;;;AAGD,SAAS05M,oBAAT,CAA8B5oL,QAA9B,EAAwC6oL,SAAxC,EAAmD1G,OAAnD,EAA4D/lL,QAA5D,EAAsE;EACpE,IAAI0sL,aAAa,GAAG,CAAA,GAAI9oL,QAAxB,CAAA;AACA,EAAA,IAAIgsC,OAAO,GAAG5vC,QAAQ,CAACwN,UAAT,CAAoB5J,QAApB,CAAd,CAAA;AACA,EAAA,OAAO2oL,aAAW,CAACE,SAAS,CAACC,aAAD,CAAV,CAAX,IAAyCH,aAAW,CAACxG,OAAO,CAAC2G,aAAD,CAAR,CAApD,IAAgFD,SAAS,CAAC7oL,QAAD,CAAT,KAAwBmiL,OAAO,CAACniL,QAAD,CAA/G,IAA6H5D,QAAQ,CAAC8Y,OAAT,CAAiB82B,OAAjB,EAA0B9H,WAA1B,CAAsC2kJ,SAAS,CAAC7oL,QAAD,CAA/C,CAApI,CAAA;AACD,CAAA;;AAED,SAAS+oL,cAAT,CAAwB3sL,QAAxB,EAAkCve,IAAlC,EAAwC;AACtC,EAAA,IAAIue,QAAQ,CAAC/d,IAAT,KAAkB,aAAtB,EAAqC;AACnC,IAAA,IAAIwqM,SAAS,GAAGhrM,IAAI,CAAC,CAAD,CAAJ,CAAQ02B,KAAxB,CAAA;IACA,IAAI4tK,OAAO,GAAGtkM,IAAI,CAAC,CAAD,CAAJ,CAAQ02B,KAAtB,CAFmC;AAGnC;AACA;AACA;AACA;AACA;;IAEA,IAAIs0K,SAAS,IAAI1G,OAAb,KAAyByG,oBAAoB,CAAC,CAAD,EAAIC,SAAJ,EAAe1G,OAAf,EAAwB/lL,QAAxB,CAApB,IAAyDwsL,oBAAoB,CAAC,CAAD,EAAIC,SAAJ,EAAe1G,OAAf,EAAwB/lL,QAAxB,CAAtG,CAAJ,EAA8I;AAC5I,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;AACF,GAAA;;EAED,OAAO4rL,UAAA,CAAwB5rL,QAAxB,EAAkCve,IAAI,CAAC,CAAD,CAAtC,KAA8CmqM,UAAA,CAAwB5rL,QAAxB,EAAkCve,IAAI,CAAC,CAAD,CAAtC,CAArD,CAAA;AACD,CAAA;;AAED,SAASmrM,2BAAT,CAAqCxpL,IAArC,EAA2CxE,GAA3C,EAAgDk8B,MAAhD,EAAwDl1B,WAAxD,EAAqEna,GAArE,EAA0E;AACxE,EAAA,IAAIuU,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,EAAA,IAAI+G,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;AACA,EAAA,IAAIkL,KAAJ,CAAA;AACA,EAAA,IAAIohL,GAAG,GAAGtmI,YAAA,CAAwB59C,SAAS,CAACK,GAAV,CAAc,GAAd,CAAxB,EAA4C5b,GAAG,CAACmG,QAAJ,EAA5C,CAAV,CAAA;AACA,EAAA,IAAIu5L,GAAG,GAAGvmI,YAAA,CAAwB59C,SAAS,CAACK,GAAV,CAAc,GAAd,CAAxB,EAA4C5b,GAAG,CAACoG,SAAJ,EAA5C,CAAV,CAAA;;EAEA,IAAI,CAAC9e,KAAK,CAACm4M,GAAD,CAAN,IAAe,CAACn4M,KAAK,CAACo4M,GAAD,CAAzB,EAAgC;AAC9BrhL,IAAAA,KAAK,GAAG,CAACohL,GAAD,EAAMC,GAAN,CAAR,CAAA;AACD,GAFD,MAEO;AACL;IACA,IAAIvlL,WAAW,CAACuf,iBAAhB,EAAmC;AACjC;AACArb,MAAAA,KAAK,GAAGlE,WAAW,CAACuf,iBAAZ,CAA8B/hB,IAAI,CAAC0+C,SAAL,CAAe1+C,IAAI,CAACoK,UAApB,EAAgC5O,GAAhC,CAA9B,CAAR,CAAA;AACD,KAHD,MAGO;AACL,MAAA,IAAI2O,IAAI,GAAGvN,QAAQ,CAACwN,UAApB,CAAA;AACA,MAAA,IAAI79B,CAAC,GAAGyzB,IAAI,CAACiE,GAAL,CAASkG,IAAI,CAAC,CAAD,CAAb,EAAkB3O,GAAlB,CAAR,CAAA;AACA,MAAA,IAAIhvB,CAAC,GAAGwzB,IAAI,CAACiE,GAAL,CAASkG,IAAI,CAAC,CAAD,CAAb,EAAkB3O,GAAlB,CAAR,CAAA;MACAkL,KAAK,GAAG9J,QAAQ,CAACuO,WAAT,CAAqB,CAAC5+B,CAAD,EAAIC,CAAJ,CAArB,CAAR,CAAA;AACD,KAVI;AAWL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,IAAA,IAAIgmC,sBAAsB,CAAC5V,QAAD,EAAW,aAAX,CAA1B,EAAqD;AACnD;AACA,MAAA,IAAIyoC,KAAK,GAAGzoC,QAAQ,CAAC8Y,OAAT,CAAiB,GAAjB,CAAZ,CAAA;AACA,MAAA,IAAI4vB,KAAK,GAAG1oC,QAAQ,CAAC8Y,OAAT,CAAiB,GAAjB,CAAZ,CAAA;AACA,MAAA,IAAIvL,IAAI,GAAGvN,QAAQ,CAACwN,UAApB,CAAA;;AAEA,MAAA,IAAI++K,aAAW,CAACnpL,IAAI,CAACiE,GAAL,CAASkG,IAAI,CAAC,CAAD,CAAb,EAAkB3O,GAAlB,CAAD,CAAf,EAAyC;AACvCkL,QAAAA,KAAK,CAAC,CAAD,CAAL,GAAW2+B,KAAK,CAACxvB,aAAN,CAAoBwvB,KAAK,CAACx6B,SAAN,GAAkB6sB,MAAM,GAAG,CAAH,GAAO,CAA/B,CAApB,CAAX,CAAA;AACD,OAFD,MAEO,IAAIyxJ,aAAW,CAACnpL,IAAI,CAACiE,GAAL,CAASkG,IAAI,CAAC,CAAD,CAAb,EAAkB3O,GAAlB,CAAD,CAAf,EAAyC;AAC9CkL,QAAAA,KAAK,CAAC,CAAD,CAAL,GAAW4+B,KAAK,CAACzvB,aAAN,CAAoByvB,KAAK,CAACz6B,SAAN,GAAkB6sB,MAAM,GAAG,CAAH,GAAO,CAA/B,CAApB,CAAX,CAAA;AACD,OAAA;AACF,KAhCI;;;AAmCL,IAAA,IAAI,CAAC/nD,KAAK,CAACm4M,GAAD,CAAV,EAAiB;AACfphL,MAAAA,KAAK,CAAC,CAAD,CAAL,GAAWohL,GAAX,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAACn4M,KAAK,CAACo4M,GAAD,CAAV,EAAiB;AACfrhL,MAAAA,KAAK,CAAC,CAAD,CAAL,GAAWqhL,GAAX,CAAA;AACD,KAAA;AACF,GAAA;;AAED/nL,EAAAA,IAAI,CAACogB,aAAL,CAAmB5kB,GAAnB,EAAwBkL,KAAxB,CAAA,CAAA;AACD,CAAA;;AAED,IAAI+iL,YAAY;AAChB;AACA,UAAUz5L,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACw5L,YAAD,EAAez5L,MAAf,CAAT,CAAA;;AAEA,EAAA,SAASy5L,YAAT,GAAwB;AACtB,IAAA,IAAIv5L,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa4qM,YAAY,CAAC5qM,IAA1B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDu5L,YAAY,CAAC39M,SAAb,CAAuByyD,eAAvB,GAAyC,UAAUmrJ,aAAV,EAAyB7vK,OAAzB,EAAkCxxB,GAAlC,EAAuC;AAC9EwxB,IAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;MACxC,IAAIomL,OAAO,GAAGlE,WAAW,CAACQ,wBAAZ,CAAqC1iL,WAArC,EAAkD,UAAlD,CAAd,CAAA;;AAEA,MAAA,IAAIomL,OAAJ,EAAa;AACX,QAAA,IAAIe,QAAQ,GAAGf,OAAO,CAAC/qL,OAAR,EAAf,CAAA;AACA,QAAA,IAAI+rL,UAAU,GAAG1wI,OAAK,CAAC0vI,OAAD,CAAL,CAAertH,IAAhC,CAAA;QACA,IAAIsuH,QAAQ,GAAG3wI,OAAK,CAAC0vI,OAAD,CAAL,CAAe9oE,EAA9B,CAHW;;AAKX8pE,QAAAA,UAAU,CAACpxM,IAAX,CAAgB,UAAUgjB,GAAV,EAAe;UAC7BguL,2BAA2B,CAACI,UAAD,EAAapuL,GAAb,EAAkB,IAAlB,EAAwBgH,WAAxB,EAAqCna,GAArC,CAA3B,CAAA;UACAmhM,2BAA2B,CAACK,QAAD,EAAWruL,GAAX,EAAgB,KAAhB,EAAuBgH,WAAvB,EAAoCna,GAApC,CAA3B,CAAA;AACD,SAHD,EALW;;AAUXshM,QAAAA,QAAQ,CAACnxM,IAAT,CAAc,UAAUgjB,GAAV,EAAe;AAC3BmuL,UAAAA,QAAQ,CAACvpK,aAAT,CAAuB5kB,GAAvB,EAA4B,CAACouL,UAAU,CAACniL,aAAX,CAAyBjM,GAAzB,CAAD,EAAgCquL,QAAQ,CAACpiL,aAAT,CAAuBjM,GAAvB,CAAhC,CAA5B,CAAA,CAAA;SADF,CAAA,CAAA;QAGA,IAAK2rL,CAAAA,cAAL,CAAoBljL,GAApB,CAAwBzB,WAAW,CAAC7iB,EAApC,EAAwC4oB,YAAxC,EAAA,CAAA;AACD,OAAA;AACF,KAlBD,EAkBG,IAlBH,CAAA,CAAA;GADF,CAAA;;AAsBAkhL,EAAAA,YAAY,CAAC39M,SAAb,CAAuBs7M,YAAvB,GAAsC,UAAU5kL,WAAV,EAAuBomL,OAAvB,EAAgC/uK,OAAhC,EAAyCxxB,GAAzC,EAA8C;AAClF,IAAA,IAAIuU,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,IAAA,IAAI4+D,QAAQ,GAAGj5D,WAAW,CAAC7iB,EAA3B,CAAA;AACA,IAAA,IAAIizJ,UAAU,GAAGpwI,WAAW,CAAC3E,OAAZ,EAAjB,CAAA;IACA,IAAIisL,WAAW,GAAG,IAAA,CAAK3C,cAAvB,CAAA;AACA,IAAA,IAAIryF,QAAQ,GAAGg1F,WAAW,CAAC7lL,GAAZ,CAAgBw3D,QAAhB,CAAA,IAA6BquH,WAAW,CAAC/rJ,GAAZ,CAAgB09B,QAAhB,EAA0B,IAAIi5B,QAAJ,EAA1B,CAA5C,CAAA;AACA,IAAA,IAAA,CAAKv3F,KAAL,CAAWO,GAAX,CAAeo3F,QAAQ,CAAC33F,KAAxB,CAAA,CAAA;IACA,IAAI4sL,MAAM,GAAGC,YAAU,CAACptL,QAAD,EAAW4F,WAAX,EAAwBomL,OAAxB,CAAvB,CAAA;AACA,IAAA,IAAIqB,QAAQ,GAAGF,MAAM,CAACxuH,IAAtB,CAAA;AACA,IAAA,IAAI2uH,MAAM,GAAGH,MAAM,CAACjqE,EAApB,CAAA;AACA,IAAA,IAAIrtB,QAAQ,GAAGs3F,MAAM,CAAC1sL,IAAtB,CAAA;AACA67C,IAAAA,OAAK,CAAC0vI,OAAD,CAAL,CAAertH,IAAf,GAAsB0uH,QAAtB,CAAA;IACA/wI,OAAK,CAAC0vI,OAAD,CAAL,CAAe9oE,EAAf,GAAoBoqE,MAApB,CAZkF;;AAclFtB,IAAAA,OAAO,CAAC7nK,OAAR,CAAgB0xE,QAAhB,EAdkF;AAelF;AACA;AACA;;AAEA,IAAA,IAAIz0F,UAAU,GAAG4qL,OAAO,CAAC3kL,GAAR,CAAY,QAAZ,CAAjB,CAAA;AACA,IAAA,IAAI9E,UAAU,GAAGypL,OAAO,CAAC3kL,GAAR,CAAY,YAAZ,CAAjB,CAAA;AACA,IAAA,IAAI7F,YAAY,GAAGwqL,OAAO,CAAC3kL,GAAR,CAAY,cAAZ,CAAnB,CAAA;IACA,IAAIG,YAAY,GAAGwkL,OAAO,CAAC3kL,GAAR,CAAY,cAAZ,CAAnB,CAtBkF;;AAwBlF,IAAA,IAAI,CAAC9b,SAAO,CAAC6V,UAAD,CAAZ,EAA0B;AACxBA,MAAAA,UAAU,GAAG,CAACA,UAAD,EAAaA,UAAb,CAAb,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAAC7V,SAAO,CAACgX,UAAD,CAAZ,EAA0B;AACxBA,MAAAA,UAAU,GAAG,CAACA,UAAD,EAAaA,UAAb,CAAb,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAAChX,SAAO,CAACiW,YAAD,CAAZ,EAA4B;AAC1BA,MAAAA,YAAY,GAAG,CAACA,YAAD,EAAeA,YAAf,CAAf,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAACjW,SAAO,CAACic,YAAD,CAAZ,EAA4B;AAC1BA,MAAAA,YAAY,GAAG,CAACA,YAAD,EAAeA,YAAf,CAAf,CAAA;AACD,KAtCiF;;;AAyClF2lL,IAAAA,MAAM,CAACxuH,IAAP,CAAY/iF,IAAZ,CAAiB,UAAUgjB,GAAV,EAAe;AAC9B2uL,MAAAA,yBAAyB,CAACF,QAAD,EAAWzuL,GAAX,EAAgB,IAAhB,CAAzB,CAAA;AACA2uL,MAAAA,yBAAyB,CAACD,MAAD,EAAS1uL,GAAT,EAAc,KAAd,CAAzB,CAAA;AACD,KAHD,EAzCkF;;AA8ClFi3F,IAAAA,QAAQ,CAACj6G,IAAT,CAAc,UAAUgjB,GAAV,EAAe;AAC3B,MAAA,IAAIiC,SAAS,GAAGg1F,QAAQ,CAAC5uF,YAAT,CAAsBrI,GAAtB,CAA2BuI,CAAAA,QAA3B,CAAoC,WAApC,CAAA,CAAiDyX,YAAjD,EAAhB,CAD2B;AAE3B;AACA;;AAEAi3E,MAAAA,QAAQ,CAACryE,aAAT,CAAuB5kB,GAAvB,EAA4B,CAACyuL,QAAQ,CAACxiL,aAAT,CAAuBjM,GAAvB,CAAD,EAA8B0uL,MAAM,CAACziL,aAAP,CAAqBjM,GAArB,CAA9B,CAA5B,CAAA,CAAA;;AAEA,MAAA,IAAIiC,SAAS,CAACltB,MAAV,IAAoB,IAAxB,EAA8B;QAC5BktB,SAAS,CAACltB,MAAV,GAAmB05M,QAAQ,CAAC1nL,aAAT,CAAuB/G,GAAvB,EAA4B,OAA5B,CAAA,CAAqCnrB,IAAxD,CAAA;AACD,OAAA;;AAEDoiH,MAAAA,QAAQ,CAAC5wC,aAAT,CAAuBrmD,GAAvB,EAA4B;QAC1B4uL,oBAAoB,EAAEH,QAAQ,CAAC1nL,aAAT,CAAuB/G,GAAvB,EAA4B,kBAA5B,CADI;QAE1B6uL,gBAAgB,EAAEJ,QAAQ,CAAC1nL,aAAT,CAAuB/G,GAAvB,EAA4B,cAA5B,CAFQ;QAG1B8uL,gBAAgB,EAAEL,QAAQ,CAAC1nL,aAAT,CAAuB/G,GAAvB,EAA4B,cAA5B,CAHQ;QAI1B+uL,cAAc,EAAEN,QAAQ,CAAC1nL,aAAT,CAAuB/G,GAAvB,EAA4B,YAA5B,CAJU;QAK1Bi7F,UAAU,EAAEwzF,QAAQ,CAAC1nL,aAAT,CAAuB/G,GAAvB,EAA4B,QAA5B,CALc;QAM1BgvL,kBAAkB,EAAEN,MAAM,CAAC3nL,aAAP,CAAqB/G,GAArB,EAA0B,kBAA1B,CANM;QAO1BivL,cAAc,EAAEP,MAAM,CAAC3nL,aAAP,CAAqB/G,GAArB,EAA0B,cAA1B,CAPU;QAQ1BkvL,cAAc,EAAER,MAAM,CAAC3nL,aAAP,CAAqB/G,GAArB,EAA0B,cAA1B,CARU;QAS1BmvL,YAAY,EAAET,MAAM,CAAC3nL,aAAP,CAAqB/G,GAArB,EAA0B,YAA1B,CATY;QAU1Bk7F,QAAQ,EAAEwzF,MAAM,CAAC3nL,aAAP,CAAqB/G,GAArB,EAA0B,QAA1B,CAVgB;AAW1BprB,QAAAA,KAAK,EAAEqtB,SAAAA;OAXT,CAAA,CAAA;KAXF,CAAA,CAAA;AAyBAq3F,IAAAA,QAAQ,CAACl0F,UAAT,CAAoB6xF,QAApB,EAvEkF;AAwElF;;AAEAs3F,IAAAA,MAAM,CAAC1sL,IAAP,CAAYmL,iBAAZ,CAA8B,UAAUz3B,EAAV,EAAc;AAC1Ci1B,MAAAA,SAAS,CAACj1B,EAAD,CAAT,CAAcigM,SAAd,GAA0B4X,OAA1B,CAAA;AACA73M,MAAAA,EAAE,CAACk4B,QAAH,CAAY,UAAUv1B,KAAV,EAAiB;AAC3BsyB,QAAAA,SAAS,CAACtyB,KAAD,CAAT,CAAiBs9L,SAAjB,GAA6B4X,OAA7B,CAAA;OADF,CAAA,CAAA;KAFF,CAAA,CAAA;;AAOA,IAAA,SAASuB,yBAAT,CAAmCnqL,IAAnC,EAAyCxE,GAAzC,EAA8Ck8B,MAA9C,EAAsD;AACpD,MAAA,IAAI9zB,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;MACAguL,2BAA2B,CAACxpL,IAAD,EAAOxE,GAAP,EAAYk8B,MAAZ,EAAoBl1B,WAApB,EAAiCna,GAAjC,CAA3B,CAAA;MACA,IAAIjY,KAAK,GAAGwzB,SAAS,CAACG,QAAV,CAAmB,WAAnB,CAAgCC,CAAAA,YAAhC,EAAZ,CAAA;;AAEA,MAAA,IAAI5zB,KAAK,CAACC,IAAN,IAAc,IAAlB,EAAwB;QACtBD,KAAK,CAACC,IAAN,GAAag4M,iBAAiB,CAACz1C,UAAD,EAAa,OAAb,CAA9B,CAAA;AACD,OAAA;;AAED5yI,MAAAA,IAAI,CAAC6hD,aAAL,CAAmBrmD,GAAnB,EAAwB;AACtBk3F,QAAAA,gBAAgB,EAAE9uF,SAAS,CAACK,GAAV,CAAc,kBAAd,CADI;AAEtB;QACAG,YAAY,EAAEnhB,SAAS,CAAC2gB,SAAS,CAACK,GAAV,CAAc,cAAd,EAA8B,IAA9B,CAAD,EAAsCG,YAAY,CAACszB,MAAM,GAAG,CAAH,GAAO,CAAd,CAAlD,CAHD;QAItBt5B,YAAY,EAAEnb,SAAS,CAAC2gB,SAAS,CAACK,GAAV,CAAc,cAAd,EAA8B,IAA9B,CAAD,EAAsC7F,YAAY,CAACs5B,MAAM,GAAG,CAAH,GAAO,CAAd,CAAlD,CAJD;AAKtB;AACAv4B,QAAAA,UAAU,EAAElc,SAAS,CAAC2gB,SAAS,CAACK,GAAV,CAAc,YAAd,CAAD,EAA8B9E,UAAU,CAACu4B,MAAM,GAAG,CAAH,GAAO,CAAd,CAAxC,CANC;QAOtBx5B,MAAM,EAAEjb,SAAS,CAAC2gB,SAAS,CAACK,GAAV,CAAc,QAAd,EAAwB,IAAxB,CAAD,EAAgCjG,UAAU,CAAC05B,MAAM,GAAG,CAAH,GAAO,CAAd,CAA1C,CAPK;AAQtBtnD,QAAAA,KAAK,EAAEA,KAAAA;OART,CAAA,CAAA;AAUD,KAAA;;IAED,IAAKi3M,CAAAA,QAAL,CAAcvyF,QAAd,CAAA,CAAA;AACAA,IAAAA,QAAQ,CAAC33F,KAAT,CAAemF,MAAf,GAAwBsmL,OAAO,CAAC3kL,GAAR,CAAY,QAAZ,KAAyBzB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAAjD,CAAA;GAvGF,CAAA;;EA0GAwlL,YAAY,CAAC5qM,IAAb,GAAoB,UAApB,CAAA;AACA,EAAA,OAAO4qM,YAAP,CAAA;AACD,CA5ID,CA4IEvC,UA5IF,CAFA,CAAA;;AAgJA,SAAS8C,YAAT,CAAoBptL,QAApB,EAA8B4F,WAA9B,EAA2ComL,OAA3C,EAAoD;AAClD,EAAA,IAAIN,cAAJ,CAAA;;AAEA,EAAA,IAAI1rL,QAAJ,EAAc;IACZ0rL,cAAc,GAAG53M,GAAG,CAACksB,QAAQ,IAAIA,QAAQ,CAACwN,UAAtB,EAAkC,UAAUC,QAAV,EAAoB;AACxE,MAAA,IAAIof,IAAI,GAAGjnB,WAAW,CAAC3E,OAAZ,EAAA,CAAsB0X,gBAAtB,CAAuC/S,WAAW,CAAC3E,OAAZ,EAAA,CAAsBmM,YAAtB,CAAmCK,QAAnC,CAAvC,CAAwF,IAAA,EAAnG,CADwE;;MAGxE,OAAOhzB,MAAM,CAACA,MAAM,CAAC,EAAD,EAAKoyC,IAAL,CAAP,EAAmB;AAC9Bj3C,QAAAA,IAAI,EAAE63B,QADwB;AAE9B;AACA2xG,QAAAA,WAAW,EAAE,IAAA;AAHiB,OAAnB,CAAb,CAAA;AAKD,KARmB,CAApB,CAAA;AASD,GAVD,MAUO;AACLssE,IAAAA,cAAc,GAAG,CAAC;AAChB91M,MAAAA,IAAI,EAAE,OADU;AAEhBqM,MAAAA,IAAI,EAAE,OAAA;AAFU,KAAD,CAAjB,CAAA;AAID,GAAA;;EAED,IAAIorM,QAAQ,GAAG,IAAI9wJ,UAAJ,CAAemvJ,cAAf,EAA+BM,OAA/B,CAAf,CAAA;EACA,IAAIsB,MAAM,GAAG,IAAI/wJ,UAAJ,CAAemvJ,cAAf,EAA+BM,OAA/B,CAAb,CArBkD;;EAuBlD,IAAIn2F,QAAQ,GAAG,IAAIt5D,UAAJ,CAAe,EAAf,EAAmByvJ,OAAnB,CAAf,CAAA;EACA,IAAIgC,OAAO,GAAGl6M,GAAG,CAACk4M,OAAO,CAAC3kL,GAAR,CAAY,MAAZ,CAAD,EAAsBi4B,OAAK,CAACysJ,iBAAD,EAAoBnmL,WAApB,EAAiC5F,QAAjC,EAA2CgsL,OAA3C,CAA3B,CAAjB,CAAA;;AAEA,EAAA,IAAIhsL,QAAJ,EAAc;IACZguL,OAAO,GAAGnuM,MAAM,CAACmuM,OAAD,EAAU1uJ,OAAK,CAACqtJ,cAAD,EAAiB3sL,QAAjB,CAAf,CAAhB,CAAA;AACD,GAAA;;EAED,IAAI6rL,cAAc,GAAGD,0BAAA,CAAwC,CAAC,CAAC5rL,QAA1C,EAAoD0rL,cAApD,CAArB,CAAA;EACA2B,QAAQ,CAAC7wJ,QAAT,CAAkB1oD,GAAG,CAACk6M,OAAD,EAAU,UAAUvsM,IAAV,EAAgB;IAC7C,OAAOA,IAAI,CAAC,CAAD,CAAX,CAAA;AACD,GAFoB,CAArB,EAEI,IAFJ,EAEUoqM,cAFV,CAAA,CAAA;EAGAyB,MAAM,CAAC9wJ,QAAP,CAAgB1oD,GAAG,CAACk6M,OAAD,EAAU,UAAUvsM,IAAV,EAAgB;IAC3C,OAAOA,IAAI,CAAC,CAAD,CAAX,CAAA;AACD,GAFkB,CAAnB,EAEI,IAFJ,EAEUoqM,cAFV,CAAA,CAAA;EAGAh2F,QAAQ,CAACr5D,QAAT,CAAkB1oD,GAAG,CAACk6M,OAAD,EAAU,UAAUvsM,IAAV,EAAgB;IAC7C,OAAOA,IAAI,CAAC,CAAD,CAAX,CAAA;AACD,GAFoB,CAArB,CAAA,CAAA;EAGAo0G,QAAQ,CAAC9uF,aAAT,GAAyB,IAAzB,CAAA;EACA,OAAO;AACL43D,IAAAA,IAAI,EAAE0uH,QADD;AAELnqE,IAAAA,EAAE,EAAEoqE,MAFC;AAGL7sL,IAAAA,IAAI,EAAEo1F,QAAAA;GAHR,CAAA;AAKD;;ACnZD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAUO,SAASvjG,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiC0lJ,aAAjC,CAAA,CAAA;EACAv5L,SAAS,CAACksD,qBAAV,CAAgCouI,YAAhC,CAAA,CAAA;AACAt6L,EAAAA,SAAS,CAACosD,oBAAV,CAA+B,UAAUr+C,GAAV,EAAe;IAC5C,IAAIonL,mBAAmB,CAACpnL,GAAG,CAACm/C,MAAL,EAAa,UAAb,CAAvB,EAAiD;AAC/C;AACAn/C,MAAAA,GAAG,CAACw/J,QAAJ,GAAex/J,GAAG,CAACw/J,QAAJ,IAAgB,EAA/B,CAAA;AACD,KAAA;GAJH,CAAA,CAAA;AAMD;;ACpCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,IAAImuB,aAAa;AACjB;AACA,UAAU76L,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC46L,aAAD,EAAgB76L,MAAhB,CAAT,CAAA;;AAEA,EAAA,SAAS66L,aAAT,GAAyB;AACvB,IAAA,IAAI36L,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAagsM,aAAa,CAAChsM,IAA3B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED26L,aAAa,CAAC/+M,SAAd,CAAwBm5M,2BAAxB,GAAsD,UAAUF,SAAV,EAAqBK,iBAArB,EAAwCvrK,OAAxC,EAAiD;IACrG,OAAO,IAAIgxK,aAAJ,CAAkB9F,SAAlB,EAA6BK,iBAA7B,EAAgDvrK,OAAhD,CAAP,CAAA;GADF,CAAA;;EAIAgxK,aAAa,CAAChsM,IAAd,GAAqB,UAArB,CAAA;EACAgsM,aAAa,CAACpsL,aAAd,GAA8B;AAC5B;AACA;AACAzG,IAAAA,CAAC,EAAE,CAHyB;AAI5B6nC,IAAAA,OAAO,EAAE;AACPglB,MAAAA,OAAO,EAAE,MAAA;KALiB;AAO5B;AACAnsE,IAAAA,SAAS,EAAE,KARiB;AAS5BimB,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,IADD;AAELjP,MAAAA,QAAQ,EAAE,KAAA;KAXgB;AAa5BuO,IAAAA,SAAS,EAAE;AACT;AACA;AACA;AACAzM,MAAAA,WAAW,EAAE,CAAA;KAjBa;AAmB5BsN,IAAAA,QAAQ,EAAE;AACRL,MAAAA,KAAK,EAAE;AACLE,QAAAA,IAAI,EAAE,IADD;AAELjP,QAAAA,QAAQ,EAAE,KAAA;AAFL,OAAA;AADC,KAAA;GAnBZ,CAAA;AA0BA,EAAA,OAAOi7L,aAAP,CAAA;AACD,CA1CD,CA0CEnG,WA1CF,CAFA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0CA,IAAIxrI,OAAK,GAAGC,SAAS,EAArB,CAAA;;AAEA,IAAI2xI,iBAAiB,GAAG,SAApBA,iBAAoB,CAAUtoL,WAAV,EAAuB5F,QAAvB,EAAiCmuL,OAAjC,EAA0C1sM,IAA1C,EAAgD;AACtE,EAAA,IAAI2sM,EAAE,GAAGxC,aAAA,CAA2BhmL,WAA3B,EAAwCnkB,IAAI,CAAC,CAAD,CAA5C,CAAT,CAAA;AACA,EAAA,IAAI4sM,EAAE,GAAGzC,aAAA,CAA2BhmL,WAA3B,EAAwCnkB,IAAI,CAAC,CAAD,CAA5C,CAAT,CAFsE;;AAItE,EAAA,IAAI6sM,OAAO,GAAGF,EAAE,CAACj2K,KAAjB,CAAA;AACA,EAAA,IAAIo2K,OAAO,GAAGF,EAAE,CAACl2K,KAAjB,CAAA;AACAm2K,EAAAA,OAAO,CAAC,CAAD,CAAP,GAAa36I,QAAQ,CAAC26I,OAAO,CAAC,CAAD,CAAR,EAAa,CAAC73L,QAAd,CAArB,CAAA;AACA63L,EAAAA,OAAO,CAAC,CAAD,CAAP,GAAa36I,QAAQ,CAAC26I,OAAO,CAAC,CAAD,CAAR,EAAa,CAAC73L,QAAd,CAArB,CAAA;AACA83L,EAAAA,OAAO,CAAC,CAAD,CAAP,GAAa56I,QAAQ,CAAC46I,OAAO,CAAC,CAAD,CAAR,EAAa93L,QAAb,CAArB,CAAA;AACA83L,EAAAA,OAAO,CAAC,CAAD,CAAP,GAAa56I,QAAQ,CAAC46I,OAAO,CAAC,CAAD,CAAR,EAAa93L,QAAb,CAArB,CATsE;;EAWtE,IAAIwhD,MAAM,GAAGs2E,QAAQ,CAAC,CAAC,EAAD,EAAK6/D,EAAL,EAASC,EAAT,CAAD,CAArB,CAAA;EACAp2I,MAAM,CAAC9/B,KAAP,GAAe,CAACi2K,EAAE,CAACj2K,KAAJ,EAAWk2K,EAAE,CAACl2K,KAAd,CAAf,CAAA;AACA8/B,EAAAA,MAAM,CAACzmE,EAAP,GAAY48M,EAAE,CAACz+M,CAAf,CAAA;AACAsoE,EAAAA,MAAM,CAACxmE,EAAP,GAAY28M,EAAE,CAACx+M,CAAf,CAAA;AACAqoE,EAAAA,MAAM,CAAC/xD,EAAP,GAAYmoM,EAAE,CAAC1+M,CAAf,CAAA;AACAsoE,EAAAA,MAAM,CAAC9xD,EAAP,GAAYkoM,EAAE,CAACz+M,CAAf,CAAA;AACA,EAAA,OAAOqoE,MAAP,CAAA;AACD,CAlBD,CAAA;;AAoBA,SAASs0I,WAAT,CAAqBz5M,GAArB,EAA0B;EACxB,OAAO,CAACC,KAAK,CAACD,GAAD,CAAN,IAAe,CAACqjB,QAAQ,CAACrjB,GAAD,CAA/B,CAAA;AACD;;;AAGD,SAAS07M,oBAAT,CAA8B5qL,QAA9B,EAAwC6oL,SAAxC,EAAmD1G,OAAnD,EAA4D/lL,QAA5D,EAAsE;EACpE,IAAI0sL,aAAa,GAAG,CAAA,GAAI9oL,QAAxB,CAAA;AACA,EAAA,OAAO2oL,WAAW,CAACE,SAAS,CAACC,aAAD,CAAV,CAAX,IAAyCH,WAAW,CAACxG,OAAO,CAAC2G,aAAD,CAAR,CAA3D,CAAA;AACD,CAAA;;AAED,SAAS+B,cAAT,CAAwBzuL,QAAxB,EAAkCve,IAAlC,EAAwC;AACtC,EAAA,IAAIgrM,SAAS,GAAGhrM,IAAI,CAAC02B,KAAL,CAAW,CAAX,CAAhB,CAAA;AACA,EAAA,IAAI4tK,OAAO,GAAGtkM,IAAI,CAAC02B,KAAL,CAAW,CAAX,CAAd,CAAA;AACA,EAAA,IAAIu2K,KAAK,GAAG;AACVv2K,IAAAA,KAAK,EAAEs0K,SADG;IAEV98M,CAAC,EAAE8R,IAAI,CAACjQ,EAFE;IAGV5B,CAAC,EAAE6R,IAAI,CAAChQ,EAAAA;GAHV,CAAA;AAKA,EAAA,IAAIq4M,KAAK,GAAG;AACV3xK,IAAAA,KAAK,EAAE4tK,OADG;IAEVp2M,CAAC,EAAE8R,IAAI,CAACyE,EAFE;IAGVtW,CAAC,EAAE6R,IAAI,CAAC0E,EAAAA;GAHV,CAAA;;AAMA,EAAA,IAAIyvB,sBAAsB,CAAC5V,QAAD,EAAW,aAAX,CAA1B,EAAqD;AACnD;AACA;AACA;AACA;AACA;AACA;IACA,IAAIysL,SAAS,IAAI1G,OAAb,KAAyByI,oBAAoB,CAAC,CAAD,EAAI/B,SAAJ,EAAe1G,OAAf,EAAwB/lL,QAAxB,CAApB,IAAyDwuL,oBAAoB,CAAC,CAAD,EAAI/B,SAAJ,EAAe1G,OAAf,EAAwB/lL,QAAxB,CAAtG,CAAJ,EAA8I;AAC5I,MAAA,OAAO,IAAP,CAAA;AACD,KATkD;AAUnD;AACA;AACA;AACA;;;IAGA,OAAO4rL,UAAA,CAAwB5rL,QAAxB,EAAkC0uL,KAAlC,EAAyC5E,KAAzC,CAAP,CAAA;AACD,GAAA;;AAED,EAAA,OAAO8B,UAAA,CAAwB5rL,QAAxB,EAAkC0uL,KAAlC,CAA4C9C,IAAAA,UAAA,CAAwB5rL,QAAxB,EAAkC8pL,KAAlC,CAAnD,CAAA;AACD;;;AAGD,SAAS6E,uBAAT,CAAiCvrL,IAAjC,EAAuCxE,GAAvC,EAA4C2O,IAA5C,EAAkD3H,WAAlD,EAA+Dna,GAA/D,EAAoE;AAClE,EAAA,IAAIuU,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,EAAA,IAAI+G,SAAS,GAAG5D,IAAI,CAAC6D,YAAL,CAAkBrI,GAAlB,CAAhB,CAAA;AACA,EAAA,IAAIkL,KAAJ,CAAA;EACA,IAAIohL,GAAG,GAAGtmI,YAAA,CAAwB59C,SAAS,CAACK,GAAV,CAAckG,IAAI,CAAC,CAAD,CAAlB,CAAxB,EAAgD9hB,GAAG,CAACmG,QAAJ,EAAhD,CAAV,CAAA;EACA,IAAIu5L,GAAG,GAAGvmI,YAAA,CAAwB59C,SAAS,CAACK,GAAV,CAAckG,IAAI,CAAC,CAAD,CAAlB,CAAxB,EAAgD9hB,GAAG,CAACoG,SAAJ,EAAhD,CAAV,CAAA;;EAEA,IAAI,CAAC9e,KAAK,CAACm4M,GAAD,CAAN,IAAe,CAACn4M,KAAK,CAACo4M,GAAD,CAAzB,EAAgC;AAC9BrhL,IAAAA,KAAK,GAAG,CAACohL,GAAD,EAAMC,GAAN,CAAR,CAAA;AACD,GAFD,MAEO;AACL;IACA,IAAIvlL,WAAW,CAACuf,iBAAhB,EAAmC;AACjC;AACArb,MAAAA,KAAK,GAAGlE,WAAW,CAACuf,iBAAZ,CAA8B/hB,IAAI,CAAC0+C,SAAL,CAAev0C,IAAf,EAAqB3O,GAArB,CAA9B,CAAR,CAAA;AACD,KAHD,MAGO;AACL,MAAA,IAAIjvB,CAAC,GAAGyzB,IAAI,CAACiE,GAAL,CAASkG,IAAI,CAAC,CAAD,CAAb,EAAkB3O,GAAlB,CAAR,CAAA;AACA,MAAA,IAAIhvB,CAAC,GAAGwzB,IAAI,CAACiE,GAAL,CAASkG,IAAI,CAAC,CAAD,CAAb,EAAkB3O,GAAlB,CAAR,CAAA;AACA,MAAA,IAAImY,EAAE,GAAG,CAACpnC,CAAD,EAAIC,CAAJ,CAAT,CAAA;MACAowB,QAAQ,CAAColB,SAAT,IAAsBplB,QAAQ,CAAColB,SAAT,CAAmBrO,EAAnB,EAAuBA,EAAvB,CAAtB,CAAA;MACAjN,KAAK,GAAG9J,QAAQ,CAACuO,WAAT,CAAqBwI,EAArB,EAAyB,IAAzB,CAAR,CAAA;AACD,KAAA;;AAED,IAAA,IAAInB,sBAAsB,CAAC5V,QAAD,EAAW,aAAX,CAA1B,EAAqD;AACnD;AACA,MAAA,IAAIyoC,KAAK,GAAGzoC,QAAQ,CAAC8Y,OAAT,CAAiB,GAAjB,CAAZ,CAAA;AACA,MAAA,IAAI4vB,KAAK,GAAG1oC,QAAQ,CAAC8Y,OAAT,CAAiB,GAAjB,CAAZ,CAAA;AACA,MAAA,IAAInpC,CAAC,GAAGyzB,IAAI,CAACiE,GAAL,CAASkG,IAAI,CAAC,CAAD,CAAb,EAAkB3O,GAAlB,CAAR,CAAA;AACA,MAAA,IAAIhvB,CAAC,GAAGwzB,IAAI,CAACiE,GAAL,CAASkG,IAAI,CAAC,CAAD,CAAb,EAAkB3O,GAAlB,CAAR,CAAA;;AAEA,MAAA,IAAI2tL,WAAW,CAAC58M,CAAD,CAAf,EAAoB;QAClBm6B,KAAK,CAAC,CAAD,CAAL,GAAW2+B,KAAK,CAACxvB,aAAN,CAAoBwvB,KAAK,CAACx6B,SAAN,GAAkBV,IAAI,CAAC,CAAD,CAAJ,KAAY,IAAZ,GAAmB,CAAnB,GAAuB,CAAzC,CAApB,CAAX,CAAA;AACD,OAFD,MAEO,IAAIg/K,WAAW,CAAC38M,CAAD,CAAf,EAAoB;QACzBk6B,KAAK,CAAC,CAAD,CAAL,GAAW4+B,KAAK,CAACzvB,aAAN,CAAoByvB,KAAK,CAACz6B,SAAN,GAAkBV,IAAI,CAAC,CAAD,CAAJ,KAAY,IAAZ,GAAmB,CAAnB,GAAuB,CAAzC,CAApB,CAAX,CAAA;AACD,OAAA;AACF,KAzBI;;;AA4BL,IAAA,IAAI,CAACx6B,KAAK,CAACm4M,GAAD,CAAV,EAAiB;AACfphL,MAAAA,KAAK,CAAC,CAAD,CAAL,GAAWohL,GAAX,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAACn4M,KAAK,CAACo4M,GAAD,CAAV,EAAiB;AACfrhL,MAAAA,KAAK,CAAC,CAAD,CAAL,GAAWqhL,GAAX,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,OAAOrhL,KAAP,CAAA;AACD,CAAA;;AAED,IAAI8kL,eAAe,GAAG,CAAC,CAAC,IAAD,EAAO,IAAP,CAAD,EAAe,CAAC,IAAD,EAAO,IAAP,CAAf,EAA6B,CAAC,IAAD,EAAO,IAAP,CAA7B,EAA2C,CAAC,IAAD,EAAO,IAAP,CAA3C,CAAtB,CAAA;;AAEA,IAAIC,YAAY;AAChB;AACA,UAAUz7L,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACw7L,YAAD,EAAez7L,MAAf,CAAT,CAAA;;AAEA,EAAA,SAASy7L,YAAT,GAAwB;AACtB,IAAA,IAAIv7L,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa4sM,YAAY,CAAC5sM,IAA1B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDu7L,YAAY,CAAC3/M,SAAb,CAAuByyD,eAAvB,GAAyC,UAAUmtJ,aAAV,EAAyB7xK,OAAzB,EAAkCxxB,GAAlC,EAAuC;AAC9EwxB,IAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;MACxC,IAAIuoL,OAAO,GAAGrG,WAAW,CAACQ,wBAAZ,CAAqC1iL,WAArC,EAAkD,UAAlD,CAAd,CAAA;;AAEA,MAAA,IAAIuoL,OAAJ,EAAa;AACX,QAAA,IAAIY,UAAU,GAAGZ,OAAO,CAACltL,OAAR,EAAjB,CAAA;AACA8tL,QAAAA,UAAU,CAACnzM,IAAX,CAAgB,UAAUgjB,GAAV,EAAe;UAC7B,IAAI1d,MAAM,GAAGpN,GAAG,CAAC86M,eAAD,EAAkB,UAAU3hL,GAAV,EAAe;YAC/C,OAAO0hL,uBAAuB,CAACI,UAAD,EAAanwL,GAAb,EAAkBqO,GAAlB,EAAuBrH,WAAvB,EAAoCna,GAApC,CAA9B,CAAA;WADc,CAAhB,CAD6B;;AAK7BsjM,UAAAA,UAAU,CAACvrK,aAAX,CAAyB5kB,GAAzB,EAA8B1d,MAA9B,CAAA,CAAA;AACA,UAAA,IAAI/M,EAAE,GAAG46M,UAAU,CAAC1jL,gBAAX,CAA4BzM,GAA5B,CAAT,CAAA;AACAzqB,UAAAA,EAAE,CAACwqC,QAAH,CAAY,QAAZ,EAAsBz9B,MAAtB,CAAA,CAAA;SAPF,CAAA,CAAA;AASD,OAAA;AACF,KAfD,EAeG,IAfH,CAAA,CAAA;GADF,CAAA;;AAmBA2tM,EAAAA,YAAY,CAAC3/M,SAAb,CAAuBs7M,YAAvB,GAAsC,UAAU5kL,WAAV,EAAuBuoL,OAAvB,EAAgClxK,OAAhC,EAAyCxxB,GAAzC,EAA8C;AAClF,IAAA,IAAIuU,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;AACA,IAAA,IAAI4+D,QAAQ,GAAGj5D,WAAW,CAAC7iB,EAA3B,CAAA;AACA,IAAA,IAAIizJ,UAAU,GAAGpwI,WAAW,CAAC3E,OAAZ,EAAjB,CAAA;IACA,IAAI+tL,YAAY,GAAG,IAAA,CAAKzE,cAAxB,CAAA;AACA,IAAA,IAAI0E,YAAY,GAAGD,YAAY,CAAC3nL,GAAb,CAAiBw3D,QAAjB,CAAA,IAA8BmwH,YAAY,CAAC7tJ,GAAb,CAAiB09B,QAAjB,EAA2B;AAC1Et+D,MAAAA,KAAK,EAAE,IAAI0F,OAAJ,EAAA;AADmE,KAA3B,CAAjD,CAAA;AAGA,IAAA,IAAA,CAAK1F,KAAL,CAAWO,GAAX,CAAemuL,YAAY,CAAC1uL,KAA5B,CAAA,CAAA;IACA,IAAKkqL,CAAAA,QAAL,CAAcwE,YAAd,CAAA,CAAA;IACA,IAAIC,QAAQ,GAAG9B,UAAU,CAACptL,QAAD,EAAW4F,WAAX,EAAwBuoL,OAAxB,CAAzB,CAVkF;;AAYlFA,IAAAA,OAAO,CAAChqK,OAAR,CAAgB+qK,QAAhB,EAZkF;;AAclFA,IAAAA,QAAQ,CAACtzM,IAAT,CAAc,UAAUgjB,GAAV,EAAe;AAC3B;MACA,IAAI1d,MAAM,GAAGpN,GAAG,CAAC86M,eAAD,EAAkB,UAAU3hL,GAAV,EAAe;QAC/C,OAAO0hL,uBAAuB,CAACO,QAAD,EAAWtwL,GAAX,EAAgBqO,GAAhB,EAAqBrH,WAArB,EAAkCna,GAAlC,CAA9B,CAAA;AACD,OAFe,CAAhB,CAAA;MAGA,IAAIy7C,UAAU,GAAGlnC,QAAQ,CAAC8Y,OAAT,CAAiB,GAAjB,EAAsBtjB,KAAvC,CAAA;MACA,IAAI2xC,UAAU,GAAGnnC,QAAQ,CAAC8Y,OAAT,CAAiB,GAAjB,EAAsBtjB,KAAvC,CAAA;AACA,MAAA,IAAIqzC,WAAW,GAAG3B,UAAU,CAACj5B,SAAX,EAAlB,CAAA;AACA,MAAA,IAAI66B,WAAW,GAAG3B,UAAU,CAACl5B,SAAX,EAAlB,CAAA;AACA,MAAA,IAAIkhL,YAAY,GAAG,CAACjoJ,UAAU,CAAC6B,KAAX,CAAiBmmJ,QAAQ,CAAC7nL,GAAT,CAAa,IAAb,EAAmBzI,GAAnB,CAAjB,CAAD,EAA4CsoC,UAAU,CAAC6B,KAAX,CAAiBmmJ,QAAQ,CAAC7nL,GAAT,CAAa,IAAb,EAAmBzI,GAAnB,CAAjB,CAA5C,CAAnB,CAAA;AACA,MAAA,IAAIwwL,YAAY,GAAG,CAACjoJ,UAAU,CAAC4B,KAAX,CAAiBmmJ,QAAQ,CAAC7nL,GAAT,CAAa,IAAb,EAAmBzI,GAAnB,CAAjB,CAAD,EAA4CuoC,UAAU,CAAC4B,KAAX,CAAiBmmJ,QAAQ,CAAC7nL,GAAT,CAAa,IAAb,EAAmBzI,GAAnB,CAAjB,CAA5C,CAAnB,CAAA;MACAgmD,KAAA,CAAeuqI,YAAf,CAAA,CAAA;MACAvqI,KAAA,CAAewqI,YAAf,CAAA,CAAA;MACA,IAAIC,UAAU,GAAG,EAAExmJ,WAAW,CAAC,CAAD,CAAX,GAAiBsmJ,YAAY,CAAC,CAAD,CAA7B,IAAoCtmJ,WAAW,CAAC,CAAD,CAAX,GAAiBsmJ,YAAY,CAAC,CAAD,CAAjE,IAAwErmJ,WAAW,CAAC,CAAD,CAAX,GAAiBsmJ,YAAY,CAAC,CAAD,CAArG,IAA4GtmJ,WAAW,CAAC,CAAD,CAAX,GAAiBsmJ,YAAY,CAAC,CAAD,CAA3I,CAAjB,CAb2B;AAc3B;;MAEA,IAAI9xL,UAAU,GAAG,CAAC+xL,UAAlB,CAAA;AACAH,MAAAA,QAAQ,CAAC1rK,aAAT,CAAuB5kB,GAAvB,EAA4B;AAC1B1d,QAAAA,MAAM,EAAEA,MADkB;AAE1Boc,QAAAA,UAAU,EAAEA,UAAAA;OAFd,CAAA,CAAA;AAIA,MAAA,IAAI9pB,KAAK,GAAG07M,QAAQ,CAACjoL,YAAT,CAAsBrI,GAAtB,CAAA,CAA2BuI,QAA3B,CAAoC,WAApC,CAAA,CAAiDC,YAAjD,EAAZ,CAAA;AACA,MAAA,IAAI5yB,OAAK,GAAGi3M,iBAAiB,CAACz1C,UAAD,EAAa,OAAb,CAA7B,CAAA;;AAEA,MAAA,IAAI,CAACxiK,KAAK,CAACC,IAAX,EAAiB;QACfD,KAAK,CAACC,IAAN,GAAae,OAAb,CAAA;;AAEA,QAAA,IAAIgI,QAAQ,CAAChJ,KAAK,CAACC,IAAP,CAAZ,EAA0B;AACxBD,UAAAA,KAAK,CAACC,IAAN,GAAa67M,WAAA,CAAsB97M,KAAK,CAACC,IAA5B,EAAkC,GAAlC,CAAb,CAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,IAAI,CAACD,KAAK,CAACG,MAAX,EAAmB;QACjBH,KAAK,CAACG,MAAN,GAAea,OAAf,CAAA;AACD,OAlC0B;;;AAqC3B06M,MAAAA,QAAQ,CAACjqI,aAAT,CAAuBrmD,GAAvB,EAA4B,OAA5B,EAAqCprB,KAArC,CAAA,CAAA;KArCF,CAAA,CAAA;AAuCA07M,IAAAA,QAAQ,CAACpkL,IAAT,CAAcwxC,OAAK,CAAC2yI,YAAD,CAAL,CAAoB7rL,IAAlC,CAAwCtC,CAAAA,GAAxC,CAA4C,UAAUlC,GAAV,EAAe;AACzD,MAAA,IAAIksB,MAAM,GAAGokK,QAAQ,CAACrkL,aAAT,CAAuBjM,GAAvB,CAAb,CAAA;;AAEA,MAAA,IAAI,CAACksB,MAAM,CAACxtB,UAAZ,EAAwB;AACtB,QAAA,IAAIzb,OAAO,GAAG,IAAIokB,OAAJ,CAAoB;AAChCzrB,UAAAA,KAAK,EAAE;YACL0G,MAAM,EAAE4pC,MAAM,CAAC5pC,MAAAA;AADV,WAAA;AADyB,SAApB,CAAd,CAAA;AAKAguM,QAAAA,QAAQ,CAAChkL,gBAAT,CAA0BtM,GAA1B,EAA+B/c,OAA/B,CAAA,CAAA;AACAotM,QAAAA,YAAY,CAAC1uL,KAAb,CAAmBO,GAAnB,CAAuBjf,OAAvB,CAAA,CAAA;AACD,OAAA;AACF,KAZD,EAYGspB,MAZH,CAYU,UAAUJ,MAAV,EAAkBK,MAAlB,EAA0B;AAClC,MAAA,IAAIvpB,OAAO,GAAGy6D,OAAK,CAAC2yI,YAAD,CAAL,CAAoB7rL,IAApB,CAAyBiI,gBAAzB,CAA0CD,MAA1C,CAAd,CAAA;AACA,MAAA,IAAI0f,MAAM,GAAGokK,QAAQ,CAACrkL,aAAT,CAAuBE,MAAvB,CAAb,CAAA;;AAEA,MAAA,IAAI,CAAC+f,MAAM,CAACxtB,UAAZ,EAAwB;AACtB,QAAA,IAAIzb,OAAJ,EAAa;AACXokB,UAAAA,aAAA,CAAoBpkB,OAApB,EAA6B;AAC3BrH,YAAAA,KAAK,EAAE;cACL0G,MAAM,EAAE4pC,MAAM,CAAC5pC,MAAAA;AADV,aAAA;WADT,EAIGitM,OAJH,EAIYpjL,MAJZ,CAAA,CAAA;AAKD,SAND,MAMO;AACLlpB,UAAAA,OAAO,GAAG,IAAIokB,OAAJ,CAAoB;AAC5BzrB,YAAAA,KAAK,EAAE;cACL0G,MAAM,EAAE4pC,MAAM,CAAC5pC,MAAAA;AADV,aAAA;AADqB,WAApB,CAAV,CAAA;AAKD,SAAA;;AAEDguM,QAAAA,QAAQ,CAAChkL,gBAAT,CAA0BH,MAA1B,EAAkClpB,OAAlC,CAAA,CAAA;AACAotM,QAAAA,YAAY,CAAC1uL,KAAb,CAAmBO,GAAnB,CAAuBjf,OAAvB,CAAA,CAAA;OAhBF,MAiBO,IAAIA,OAAJ,EAAa;AAClBotM,QAAAA,YAAY,CAAC1uL,KAAb,CAAmB+K,MAAnB,CAA0BzpB,OAA1B,CAAA,CAAA;AACD,OAAA;AACF,KApCD,CAoCGypB,CAAAA,MApCH,CAoCU,UAAU1M,GAAV,EAAe;AACvB,MAAA,IAAI/c,OAAO,GAAGy6D,OAAK,CAAC2yI,YAAD,CAAL,CAAoB7rL,IAApB,CAAyBiI,gBAAzB,CAA0CzM,GAA1C,CAAd,CAAA;AACAqwL,MAAAA,YAAY,CAAC1uL,KAAb,CAAmB+K,MAAnB,CAA0BzpB,OAA1B,CAAA,CAAA;AACD,KAvCD,EAuCG4pB,OAvCH,EAAA,CAAA;AAwCAyjL,IAAAA,QAAQ,CAACtjL,iBAAT,CAA2B,UAAU/pB,OAAV,EAAmB+c,GAAnB,EAAwB;AACjD,MAAA,IAAIoI,SAAS,GAAGkoL,QAAQ,CAACjoL,YAAT,CAAsBrI,GAAtB,CAAhB,CAAA;MACA,IAAIprB,KAAK,GAAG07M,QAAQ,CAACvpL,aAAT,CAAuB/G,GAAvB,EAA4B,OAA5B,CAAZ,CAAA;MACA/c,OAAO,CAACgmB,QAAR,CAAiBqnL,QAAQ,CAACvpL,aAAT,CAAuB/G,GAAvB,EAA4B,OAA5B,CAAjB,CAAA,CAAA;AACA0J,MAAAA,aAAa,CAACzmB,OAAD,EAAUylB,oBAAoB,CAACN,SAAD,CAA9B,EAA2C;AACtDuB,QAAAA,YAAY,EAAE4lL,OADwC;AAEtD3lL,QAAAA,cAAc,EAAE5J,GAFsC;AAGtD6J,QAAAA,WAAW,EAAEymL,QAAQ,CAACrmL,OAAT,CAAiBjK,GAAjB,KAAyB,EAHgB;AAItD+J,QAAAA,YAAY,EAAEnsB,QAAQ,CAAChJ,KAAK,CAACC,IAAP,CAAR,GAAuB67M,WAAA,CAAsB97M,KAAK,CAACC,IAA5B,EAAkC,CAAlC,CAAvB,GAA8D,MAAA;AAJtB,OAA3C,CAAb,CAAA;AAMAqrC,MAAAA,wBAAwB,CAACj9B,OAAD,EAAUmlB,SAAV,CAAxB,CAAA;AACAkC,MAAAA,mBAAmB,CAACrnB,OAAD,EAAU,IAAV,EAAgB,IAAhB,EAAsBmlB,SAAS,CAACK,GAAV,CAAc,CAAC,UAAD,EAAa,UAAb,CAAd,CAAtB,CAAnB,CAAA;AACA+B,MAAAA,SAAS,CAACvnB,OAAD,CAAT,CAAmBuyL,SAAnB,GAA+B+Z,OAA/B,CAAA;KAZF,CAAA,CAAA;AAcA7xI,IAAAA,OAAK,CAAC2yI,YAAD,CAAL,CAAoB7rL,IAApB,GAA2B8rL,QAA3B,CAAA;AACAD,IAAAA,YAAY,CAAC1uL,KAAb,CAAmBmF,MAAnB,GAA4ByoL,OAAO,CAAC9mL,GAAR,CAAY,QAAZ,KAAyBzB,WAAW,CAACyB,GAAZ,CAAgB,QAAhB,CAArD,CAAA;GA5GF,CAAA;;EA+GAwnL,YAAY,CAAC5sM,IAAb,GAAoB,UAApB,CAAA;AACA,EAAA,OAAO4sM,YAAP,CAAA;AACD,CA9ID,CA8IEvE,UA9IF,CAFA,CAAA;;AAkJA,SAAS8C,UAAT,CAAoBptL,QAApB,EAA8B4F,WAA9B,EAA2CuoL,OAA3C,EAAoD;AAClD,EAAA,IAAIe,QAAJ,CAAA;AACA,EAAA,IAAI78D,QAAJ,CAAA;EACA,IAAI9kH,IAAI,GAAG,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,CAAX,CAAA;;AAEA,EAAA,IAAIvN,QAAJ,EAAc;AACZ,IAAA,IAAIuvL,gBAAgB,GAAGz7M,GAAG,CAACksB,QAAQ,IAAIA,QAAQ,CAACwN,UAAtB,EAAkC,UAAUC,QAAV,EAAoB;AAC9E,MAAA,IAAIrK,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACA,MAAA,IAAI4rB,IAAI,GAAGzpB,IAAI,CAACuV,gBAAL,CAAsBvV,IAAI,CAACgK,YAAL,CAAkBK,QAAlB,CAAtB,CAAsD,IAAA,EAAjE,CAF8E;;MAI9E,OAAOhzB,MAAM,CAACA,MAAM,CAAC,EAAD,EAAKoyC,IAAL,CAAP,EAAmB;AAC9Bj3C,QAAAA,IAAI,EAAE63B,QADwB;AAE9B;AACA2xG,QAAAA,WAAW,EAAE,IAAA;AAHiB,OAAnB,CAAb,CAAA;AAKD,KATyB,CAA1B,CAAA;IAUAiT,QAAQ,GAAGv+I,GAAG,CAACy5B,IAAD,EAAO,UAAUN,GAAV,EAAerO,GAAf,EAAoB;MACvC,OAAO;AACLhpB,QAAAA,IAAI,EAAEq3B,GADD;AAELhrB,QAAAA,IAAI,EAAEstM,gBAAgB,CAAC3wL,GAAG,GAAG,CAAP,CAAhB,CAA0B3c,IAAAA;OAFlC,CAAA;AAID,KALa,CAAd,CAAA;AAMAitM,IAAAA,QAAQ,GAAG,IAAI3yJ,UAAJ,CAAe81F,QAAf,EAAyB87D,OAAzB,CAAX,CAAA;AACD,GAlBD,MAkBO;AACL97D,IAAAA,QAAQ,GAAG,CAAC;AACVz8I,MAAAA,IAAI,EAAE,OADI;AAEVqM,MAAAA,IAAI,EAAE,OAAA;AAFI,KAAD,CAAX,CAAA;AAIAitM,IAAAA,QAAQ,GAAG,IAAI3yJ,UAAJ,CAAe81F,QAAf,EAAyB87D,OAAzB,CAAX,CAAA;AACD,GAAA;;EAED,IAAIH,OAAO,GAAGl6M,GAAG,CAACq6M,OAAO,CAAC9mL,GAAR,CAAY,MAAZ,CAAD,EAAsBi4B,OAAK,CAAC4uJ,iBAAD,EAAoBtoL,WAApB,EAAiC5F,QAAjC,EAA2CmuL,OAA3C,CAA3B,CAAjB,CAAA;;AAEA,EAAA,IAAInuL,QAAJ,EAAc;IACZguL,OAAO,GAAGnuM,MAAM,CAACmuM,OAAD,EAAU1uJ,OAAK,CAACmvJ,cAAD,EAAiBzuL,QAAjB,CAAf,CAAhB,CAAA;AACD,GAAA;;AAED,EAAA,IAAI6rL,cAAc,GAAG7rL,QAAQ,GAAG,UAAUve,IAAV,EAAgBmuD,OAAhB,EAAyBvsC,SAAzB,EAAoCO,QAApC,EAA8C;AAC5E;AACA,IAAA,IAAIJ,MAAM,GAAG/hB,IAAI,CAAC02B,KAAL,CAAWzpC,IAAI,CAACumC,KAAL,CAAWrR,QAAQ,GAAG,CAAtB,CAAX,EAAqCA,QAAQ,GAAG,CAAhD,CAAb,CAAA;IACA,OAAOsmL,cAAc,CAAC1mL,MAAD,EAAS6uH,QAAQ,CAACzuH,QAAD,CAAjB,CAArB,CAAA;GAH2B,GAIzB,UAAUniB,IAAV,EAAgBmuD,OAAhB,EAAyBvsC,SAAzB,EAAoCO,QAApC,EAA8C;IAChD,OAAOsmL,cAAc,CAACzoM,IAAI,CAAC2sB,KAAN,EAAaikH,QAAQ,CAACzuH,QAAD,CAArB,CAArB,CAAA;GALF,CAAA;AAOAsrL,EAAAA,QAAQ,CAAC1yJ,QAAT,CAAkBwxJ,OAAlB,EAA2B,IAA3B,EAAiCnC,cAAjC,CAAA,CAAA;EACAqD,QAAQ,CAACnoL,aAAT,GAAyB,IAAzB,CAAA;AACA,EAAA,OAAOmoL,QAAP,CAAA;AACD;;ACpXD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAAS58L,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiC6nJ,aAAjC,CAAA,CAAA;EACA17L,SAAS,CAACksD,qBAAV,CAAgCowI,YAAhC,CAAA,CAAA;AACAt8L,EAAAA,SAAS,CAACosD,oBAAV,CAA+B,UAAUr+C,GAAV,EAAe;IAC5C,IAAIonL,mBAAmB,CAACpnL,GAAG,CAACm/C,MAAL,EAAa,UAAb,CAAvB,EAAiD;AAC/C;AACAn/C,MAAAA,GAAG,CAACkvL,QAAJ,GAAelvL,GAAG,CAACkvL,QAAJ,IAAgB,EAA/B,CAAA;AACD,KAAA;GAJH,CAAA,CAAA;AAMD;;ACtDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,IAAIC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAUxyK,OAAV,EAAmBh7B,IAAnB,EAAyB;EACvD,IAAIA,IAAI,KAAK,KAAb,EAAoB;IAClB,OAAO;AACLA,MAAAA,IAAI,EAAE,KADD;AAELyiH,MAAAA,KAAK,EAAEznF,OAAO,CAACwnI,cAAR,EAAyBp9I,CAAAA,GAAzB,CAA6B,CAAC,QAAD,EAAW,UAAX,EAAuB,KAAvB,CAA7B,CAAA;KAFT,CAAA;AAID,GALD,MAKO,IAAIplB,IAAI,KAAK,SAAb,EAAwB;IAC7B,OAAO;AACLA,MAAAA,IAAI,EAAE,SADD;AAELyiH,MAAAA,KAAK,EAAEznF,OAAO,CAACwnI,cAAR,EAAyBp9I,CAAAA,GAAzB,CAA6B,CAAC,QAAD,EAAW,UAAX,EAAuB,SAAvB,CAA7B,CAAA;KAFT,CAAA;AAID,GAAA;AACF,CAZD,CAAA;;AAcA,IAAIqoL,WAAW;AACf;AACA,UAAUt8L,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACq8L,WAAD,EAAct8L,MAAd,CAAT,CAAA;;AAEA,EAAA,SAASs8L,WAAT,GAAuB;AACrB,IAAA,IAAIp8L,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaytM,WAAW,CAACztM,IAAzB,CAAA;IACAqR,KAAK,CAACyuC,UAAN,GAAmB;AACjB9/C,MAAAA,IAAI,EAAE,KADW;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACAiiK,MAAAA,UAAU,EAAE,IAAA;KATd,CAAA;AAWA,IAAA,OAAO5wJ,KAAP,CAAA;AACD,GAAA;;EAEDo8L,WAAW,CAACxgN,SAAZ,CAAsBytC,IAAtB,GAA6B,UAAU5c,MAAV,EAAkBsgD,WAAlB,EAA+BpjC,OAA/B,EAAwC;AACnE,IAAA,IAAA,CAAKooB,oBAAL,CAA0BtlC,MAA1B,EAAkCkd,OAAlC,CAAA,CAAA;AACAld,IAAAA,MAAM,CAACmmE,QAAP,GAAkBnmE,MAAM,CAACmmE,QAAP,IAAmB,EAArC,CAAA;;IAEA,IAAKypH,CAAAA,eAAL,CAAqB5vL,MAArB,CAAA,CAAA;GAJF,CAAA;;EAOA2vL,WAAW,CAACxgN,SAAZ,CAAsBquD,WAAtB,GAAoC,UAAUx9B,MAAV,EAAkBkd,OAAlB,EAA2B;IAC7D7pB,MAAM,CAAClkB,SAAP,CAAiBquD,WAAjB,CAA6BhqC,IAA7B,CAAkC,IAAlC,EAAwCwM,MAAxC,EAAgDkd,OAAhD,CAAA,CAAA;;IAEA,IAAK0yK,CAAAA,eAAL,CAAqB5vL,MAArB,CAAA,CAAA;GAHF,CAAA;;AAMA2vL,EAAAA,WAAW,CAACxgN,SAAZ,CAAsBygN,eAAtB,GAAwC,UAAU5vL,MAAV,EAAkB;AACxD,IAAA,IAAIq6K,QAAQ,GAAGr6K,MAAM,CAACq6K,QAAtB,CAAA;IACA,IAAIn9J,OAAO,GAAG,IAAA,CAAKA,OAAnB,CAAA;;IAEA,IAAIm9J,QAAQ,KAAK,IAAjB,EAAuB;MACrBA,QAAQ,GAAGr6K,MAAM,CAACq6K,QAAP,GAAkB,CAAC,KAAD,EAAQ,SAAR,CAA7B,CAAA;AACD,KAAA;;AAED,IAAA,IAAIxjK,SAAA,CAAewjK,QAAf,CAAJ,EAA8B;MAC5BxjK,MAAA,CAAYwjK,QAAZ,EAAsB,UAAU34L,IAAV,EAAgB0sC,KAAhB,EAAuB;AAC3CvX,QAAAA,QAAA,CAAgBn1B,IAAhB,CAAA,KAA0BA,IAAI,GAAG;AAC/BQ,UAAAA,IAAI,EAAER,IAAAA;SADR,CAAA,CAAA;AAGA24L,QAAAA,QAAQ,CAACjsJ,KAAD,CAAR,GAAkBvX,KAAA,CAAan1B,IAAb,EAAmBguM,yBAAyB,CAACxyK,OAAD,EAAUx7B,IAAI,CAACQ,IAAf,CAA5C,CAAlB,CAAA;OAJF,CAAA,CAAA;AAMD,KAAA;GAfH,CAAA;;AAkBAytM,EAAAA,WAAW,CAACxgN,SAAZ,CAAsB42D,aAAtB,GAAsC,YAAY;IAChD,IAAK8pJ,CAAAA,WAAL,CAAiB,IAAA,CAAK3yK,OAAtB,CAAA,CAAA;;AAEA,IAAA,IAAI4yK,UAAU,GAAG,IAAKnlL,CAAAA,KAAtB,CAHgD;;IAKhD,IAAImlL,UAAU,CAAC,CAAD,CAAV,IAAiB,IAAKxoL,CAAAA,GAAL,CAAS,cAAT,CAA6B,KAAA,QAAlD,EAA4D;AAC1D,MAAA,IAAIyoL,WAAW,GAAG,KAAlB,CAD0D;;AAG1D,MAAA,KAAK,IAAIl9M,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi9M,UAAU,CAAC39M,MAA/B,EAAuCU,CAAC,EAAxC,EAA4C;QAC1C,IAAIysF,MAAM,GAAGwwH,UAAU,CAACj9M,CAAD,CAAV,CAAcy0B,GAAd,CAAkB,MAAlB,CAAb,CAAA;;AAEA,QAAA,IAAI,IAAKytB,CAAAA,UAAL,CAAgBuqC,MAAhB,CAAJ,EAA6B;AAC3B;UACA,IAAK74C,CAAAA,MAAL,CAAY64C,MAAZ,CAAA,CAAA;AACAywH,UAAAA,WAAW,GAAG,IAAd,CAAA;AACA,UAAA,MAAA;AACD,SAAA;AACF,OAZyD;;;AAe1D,MAAA,CAACA,WAAD,IAAgB,IAAKtpK,CAAAA,MAAL,CAAYqpK,UAAU,CAAC,CAAD,CAAV,CAAcxoL,GAAd,CAAkB,MAAlB,CAAZ,CAAhB,CAAA;AACD,KAAA;GArBH,CAAA;;AAwBAqoL,EAAAA,WAAW,CAACxgN,SAAZ,CAAsB0gN,WAAtB,GAAoC,UAAU3yK,OAAV,EAAmB;IACrD,IAAI8yK,aAAa,GAAG,EAApB,CAAA;IACA,IAAIC,cAAc,GAAG,EAArB,CAAA;AACA/yK,IAAAA,OAAO,CAACqjJ,aAAR,CAAsB,UAAU16J,WAAV,EAAuB;AAC3C,MAAA,IAAIka,UAAU,GAAGla,WAAW,CAAChwB,IAA7B,CAAA;MACAo6M,cAAc,CAAC/8M,IAAf,CAAoB6sC,UAApB,CAAA,CAAA;AACA,MAAA,IAAImwK,WAAJ,CAAA;;MAEA,IAAIrqL,WAAW,CAACy3B,oBAAhB,EAAsC;AACpC,QAAA,IAAI6yJ,QAAQ,GAAGtqL,WAAW,CAACy3B,oBAA3B,CAAA;AACA,QAAA,IAAIoqC,KAAK,GAAGyoH,QAAQ,CAACpzJ,WAAT,EAAZ,CAAA;;AAEA,QAAA,IAAI,CAAC7f,OAAO,CAACwpG,gBAAR,CAAyB7gH,WAAzB,CAAL,EAA4C;AAC1CoqL,UAAAA,cAAc,GAAGA,cAAc,CAAChsI,MAAf,CAAsByjB,KAAtB,CAAjB,CAAA;AACD,SAAA;;QAED,IAAIA,KAAK,CAACv1F,MAAV,EAAkB;AAChB69M,UAAAA,aAAa,GAAGA,aAAa,CAAC/rI,MAAd,CAAqByjB,KAArB,CAAhB,CAAA;AACD,SAFD,MAEO;AACLwoH,UAAAA,WAAW,GAAG,IAAd,CAAA;AACD,SAAA;AACF,OAbD,MAaO;AACLA,QAAAA,WAAW,GAAG,IAAd,CAAA;AACD,OAAA;;AAED,MAAA,IAAIA,WAAW,IAAIE,eAAe,CAACvqL,WAAD,CAAlC,EAAiD;AAC/CmqL,QAAAA,aAAa,CAAC98M,IAAd,CAAmB2yB,WAAW,CAAChwB,IAA/B,CAAA,CAAA;AACD,OAAA;KAxBH,CAAA,CAAA;AA0BA;AACJ;AACA;AACA;;AAEI,IAAA,IAAA,CAAKw6M,eAAL,GAAuBJ,cAAvB,CAlCqD;AAmCrD;;AAEA,IAAA,IAAIjzJ,OAAO,GAAG,IAAA,CAAK11B,GAAL,CAAS,MAAT,KAAoB0oL,aAAlC,CAAA;IACA,IAAIF,UAAU,GAAGj5K,GAAA,CAAWmmB,OAAX,EAAoB,UAAUm+E,QAAV,EAAoB;AACvD;AACA,MAAA,IAAItkG,QAAA,CAAgBskG,QAAhB,CAAA,IAA6BtkG,QAAA,CAAgBskG,QAAhB,CAAjC,EAA4D;AAC1DA,QAAAA,QAAQ,GAAG;AACTtlI,UAAAA,IAAI,EAAEslI,QAAAA;SADR,CAAA;AAGD,OAAA;;MAED,OAAO,IAAItjE,KAAJ,CAAUsjE,QAAV,EAAoB,IAApB,EAA0B,IAAKj+F,CAAAA,OAA/B,CAAP,CAAA;KARe,EASd,IATc,CAAjB,CAAA;AAUA;AACJ;AACA;AACA;;IAEI,IAAKvS,CAAAA,KAAL,GAAamlL,UAAb,CAAA;GArDF,CAAA;;AAwDAH,EAAAA,WAAW,CAACxgN,SAAZ,CAAsB+xB,OAAtB,GAAgC,YAAY;AAC1C,IAAA,OAAO,KAAKyJ,KAAZ,CAAA;GADF,CAAA;;AAIAglL,EAAAA,WAAW,CAACxgN,SAAZ,CAAsBs3C,MAAtB,GAA+B,UAAU5wC,IAAV,EAAgB;AAC7C,IAAA,IAAIswF,QAAQ,GAAG,IAAKnmE,CAAAA,MAAL,CAAYmmE,QAA3B,CAAA;AACA,IAAA,IAAIxF,YAAY,GAAG,IAAA,CAAKr5D,GAAL,CAAS,cAAT,CAAnB,CAAA;;IAEA,IAAIq5D,YAAY,KAAK,QAArB,EAA+B;MAC7B,IAAIt9D,IAAI,GAAG,IAAA,CAAKsH,KAAhB,CAAA;AACAkM,MAAAA,MAAA,CAAYxT,IAAZ,EAAkB,UAAU83G,QAAV,EAAoB;QACpCh1C,QAAQ,CAACg1C,QAAQ,CAAC7zG,GAAT,CAAa,MAAb,CAAD,CAAR,GAAiC,KAAjC,CAAA;OADF,CAAA,CAAA;AAGD,KAAA;;AAED6+D,IAAAA,QAAQ,CAACtwF,IAAD,CAAR,GAAiB,IAAjB,CAAA;GAXF,CAAA;;AAcA85M,EAAAA,WAAW,CAACxgN,SAAZ,CAAsBk3F,QAAtB,GAAiC,UAAUxwF,IAAV,EAAgB;AAC/C,IAAA,IAAI,KAAKyxB,GAAL,CAAS,cAAT,CAAA,KAA6B,QAAjC,EAA2C;AACzC,MAAA,IAAA,CAAKtH,MAAL,CAAYmmE,QAAZ,CAAqBtwF,IAArB,IAA6B,KAA7B,CAAA;AACD,KAAA;GAHH,CAAA;;AAMA85M,EAAAA,WAAW,CAACxgN,SAAZ,CAAsBm3F,cAAtB,GAAuC,UAAUzwF,IAAV,EAAgB;AACrD,IAAA,IAAIswF,QAAQ,GAAG,IAAA,CAAKnmE,MAAL,CAAYmmE,QAA3B,CADqD;;AAGrD,IAAA,IAAI,CAACA,QAAQ,CAAC/mE,cAAT,CAAwBvpB,IAAxB,CAAL,EAAoC;AAClCswF,MAAAA,QAAQ,CAACtwF,IAAD,CAAR,GAAiB,IAAjB,CAAA;AACD,KAAA;;IAED,IAAKswF,CAAAA,QAAQ,CAACtwF,IAAD,CAAR,GAAiB,UAAjB,GAA8B,QAAnC,CAAA,CAA6CA,IAA7C,CAAA,CAAA;GAPF,CAAA;;AAUA85M,EAAAA,WAAW,CAACxgN,SAAZ,CAAsBmhN,SAAtB,GAAkC,YAAY;IAC5C,IAAIjtL,IAAI,GAAG,IAAA,CAAKsH,KAAhB,CAAA;AACA,IAAA,IAAIw7D,QAAQ,GAAG,IAAKnmE,CAAAA,MAAL,CAAYmmE,QAA3B,CAAA;AACAtvD,IAAAA,MAAA,CAAYxT,IAAZ,EAAkB,UAAU83G,QAAV,EAAoB;MACpCh1C,QAAQ,CAACg1C,QAAQ,CAAC7zG,GAAT,CAAa,MAAb,EAAqB,IAArB,CAAD,CAAR,GAAuC,IAAvC,CAAA;KADF,CAAA,CAAA;GAHF,CAAA;;AAQAqoL,EAAAA,WAAW,CAACxgN,SAAZ,CAAsBohN,aAAtB,GAAsC,YAAY;IAChD,IAAIltL,IAAI,GAAG,IAAA,CAAKsH,KAAhB,CAAA;AACA,IAAA,IAAIw7D,QAAQ,GAAG,IAAKnmE,CAAAA,MAAL,CAAYmmE,QAA3B,CAAA;AACAtvD,IAAAA,MAAA,CAAYxT,IAAZ,EAAkB,UAAU83G,QAAV,EAAoB;MACpC,IAAItlI,IAAI,GAAGslI,QAAQ,CAAC7zG,GAAT,CAAa,MAAb,EAAqB,IAArB,CAAX,CADoC;;AAGpC,MAAA,IAAI,CAAC6+D,QAAQ,CAAC/mE,cAAT,CAAwBvpB,IAAxB,CAAL,EAAoC;AAClCswF,QAAAA,QAAQ,CAACtwF,IAAD,CAAR,GAAiB,IAAjB,CAAA;AACD,OAAA;;MAEDswF,QAAQ,CAACtwF,IAAD,CAAR,GAAiB,CAACswF,QAAQ,CAACtwF,IAAD,CAA1B,CAAA;KAPF,CAAA,CAAA;GAHF,CAAA;;AAcA85M,EAAAA,WAAW,CAACxgN,SAAZ,CAAsB4lD,UAAtB,GAAmC,UAAUl/C,IAAV,EAAgB;AACjD,IAAA,IAAIswF,QAAQ,GAAG,IAAKnmE,CAAAA,MAAL,CAAYmmE,QAA3B,CAAA;IACA,OAAO,EAAEA,QAAQ,CAAC/mE,cAAT,CAAwBvpB,IAAxB,CAAA,IAAiC,CAACswF,QAAQ,CAACtwF,IAAD,CAA5C,CAAuDghC,IAAAA,OAAA,CAAe,KAAKw5K,eAApB,EAAqCx6M,IAArC,CAAA,IAA8C,CAA5G,CAAA;GAFF,CAAA;;AAKA85M,EAAAA,WAAW,CAACxgN,SAAZ,CAAsBg/F,SAAtB,GAAkC,YAAY;AAC5C,IAAA,OAAO,KAAK7mE,GAAL,CAAS,QAAT,CAAA,KAAuB,UAAvB,GAAoC;AACzC8mB,MAAAA,KAAK,EAAE,CADkC;AAEzCv4C,MAAAA,IAAI,EAAE,UAAA;AAFmC,KAApC,GAGH;AACFu4C,MAAAA,KAAK,EAAE,CADL;AAEFv4C,MAAAA,IAAI,EAAE,YAAA;KALR,CAAA;GADF,CAAA;;EAUA85M,WAAW,CAACztM,IAAZ,GAAmB,cAAnB,CAAA;AACAytM,EAAAA,WAAW,CAAC9tL,YAAZ,GAA2B,CAAC,QAAD,CAA3B,CAAA;EACA8tL,WAAW,CAAC7tL,aAAZ,GAA4B;AAC1B;AACAzG,IAAAA,CAAC,EAAE,CAFuB;AAG1B6G,IAAAA,IAAI,EAAE,IAHoB;AAI1ByoE,IAAAA,MAAM,EAAE,YAJkB;AAK1Bz3E,IAAAA,IAAI,EAAE,QALoB;AAM1B;AACAC,IAAAA,GAAG,EAAE,CAPqB;AAQ1B;AACAqpB,IAAAA,KAAK,EAAE,MATmB;AAU1BnsB,IAAAA,eAAe,EAAE,eAVS;AAW1Bi2B,IAAAA,WAAW,EAAE,MAXa;AAY1BE,IAAAA,YAAY,EAAE,CAZY;AAa1BzxB,IAAAA,WAAW,EAAE,CAba;AAc1BF,IAAAA,OAAO,EAAE,CAdiB;AAe1B+kK,IAAAA,OAAO,EAAE,EAfiB;AAgB1B/4J,IAAAA,SAAS,EAAE,EAhBe;AAiB1BD,IAAAA,UAAU,EAAE,EAjBc;AAkB1Ba,IAAAA,YAAY,EAAE,SAlBY;AAmB1Bs0F,IAAAA,gBAAgB,EAAE,IAnBQ;AAoB1By6F,IAAAA,aAAa,EAAE,MApBW;AAqB1BC,IAAAA,mBAAmB,EAAE,MArBK;AAsB1BC,IAAAA,mBAAmB,EAAE,MAtBK;AAuB1BlvL,IAAAA,SAAS,EAAE;AACT/sB,MAAAA,KAAK,EAAE,SADE;AAETH,MAAAA,OAAO,EAAE,SAFA;AAGTgyC,MAAAA,WAAW,EAAE,SAHJ;AAITvxB,MAAAA,WAAW,EAAE,MAJJ;AAKT47L,MAAAA,SAAS,EAAE,SALF;AAMTjyJ,MAAAA,UAAU,EAAE,SANH;AAOTkyJ,MAAAA,gBAAgB,EAAE,SAPT;AAQTC,MAAAA,gBAAgB,EAAE,SAAA;KA/BM;AAiC1B/vL,IAAAA,SAAS,EAAE;AACTloB,MAAAA,KAAK,EAAE,MADE;AAETnE,MAAAA,KAAK,EAAE,SAFE;AAGT+7M,MAAAA,aAAa,EAAE,MAHN;AAITM,MAAAA,aAAa,EAAE,CAJN;AAKTx8M,MAAAA,OAAO,EAAE,SALA;AAMT4N,MAAAA,IAAI,EAAE,SANG;AAOT6uM,MAAAA,GAAG,EAAE,SAPI;AAQT59M,MAAAA,IAAI,EAAE,SARG;AAST69M,MAAAA,UAAU,EAAE,SATH;AAUTC,MAAAA,UAAU,EAAE,SAAA;KA3CY;AA6C1Br5I,IAAAA,SAAS,EAAE;AACTnjE,MAAAA,KAAK,EAAE,MAAA;KA9CiB;AAgD1BksF,IAAAA,YAAY,EAAE,IAhDY;AAiD1B05G,IAAAA,QAAQ,EAAE,KAjDgB;AAkD1B6W,IAAAA,aAAa,EAAE;AACbhvL,MAAAA,IAAI,EAAE,IADO;AAEbskB,MAAAA,YAAY,EAAE,EAFD;MAGb3xB,OAAO,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAHI;AAIb5Q,MAAAA,QAAQ,EAAE,EAJG;AAKbG,MAAAA,UAAU,EAAE,YALC;AAMb3P,MAAAA,KAAK,EAAE,MANM;AAObsgB,MAAAA,WAAW,EAAE,CAPA;AAQbuxB,MAAAA,WAAW,EAAE,MAAA;KA1DW;AA4D1BjkB,IAAAA,QAAQ,EAAE;AACR6uL,MAAAA,aAAa,EAAE;AACbhvL,QAAAA,IAAI,EAAE,IADO;AAEbztB,QAAAA,KAAK,EAAE,MAFM;AAGb4b,QAAAA,eAAe,EAAE,MAAA;AAHJ,OAAA;KA7DS;AAmE1B8gM,IAAAA,gBAAgB,EAAE,MAnEQ;AAoE1BC,IAAAA,eAAe,EAAE,CApES;AAqE1BC,IAAAA,iBAAiB,EAAE,EArEO;AAsE1BnuJ,IAAAA,OAAO,EAAE;AACPhhC,MAAAA,IAAI,EAAE,KAAA;AADC,KAAA;GAtEX,CAAA;AA0EA,EAAA,OAAOytL,WAAP,CAAA;AACD,CAxRD,CAwREztJ,cAxRF,CAFA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoCA,IAAI3C,KAAK,GAAG1oB,OAAZ,CAAA;AACA,IAAIh7B,MAAI,GAAGg7B,MAAX,CAAA;AACA,IAAIpW,OAAK,GAAGyF,OAAZ,CAAA;;AAEA,IAAIorL,UAAU;AACd;AACA,UAAUj+L,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACg+L,UAAD,EAAaj+L,MAAb,CAAT,CAAA;;AAEA,EAAA,SAASi+L,UAAT,GAAsB;AACpB,IAAA,IAAI/9L,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaovM,UAAU,CAACpvM,IAAxB,CAAA;IACAqR,KAAK,CAACg+L,eAAN,GAAwB,KAAxB,CAAA;AACA,IAAA,OAAOh+L,KAAP,CAAA;AACD,GAAA;;AAED+9L,EAAAA,UAAU,CAACniN,SAAX,CAAqBytC,IAArB,GAA4B,YAAY;IACtC,IAAKpc,CAAAA,KAAL,CAAWO,GAAX,CAAe,KAAKywL,aAAL,GAAqB,IAAI/wL,OAAJ,EAApC,CAAA,CAAA;IACA,IAAKD,CAAAA,KAAL,CAAWO,GAAX,CAAe,KAAK0wL,cAAL,GAAsB,IAAIhxL,OAAJ,EAArC,CAAA,CAAA;IACA,IAAKixL,CAAAA,cAAL,GAAsB,IAAtB,CAAA;GAHF,CAAA;AAKA;AACF;AACA;;;AAGEJ,EAAAA,UAAU,CAACniN,SAAX,CAAqBwiN,eAArB,GAAuC,YAAY;AACjD,IAAA,OAAO,KAAKH,aAAZ,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEF,EAAAA,UAAU,CAACniN,SAAX,CAAqByiN,gBAArB,GAAwC,YAAY;AAClD,IAAA,OAAO,KAAKH,cAAZ,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;EAGEH,UAAU,CAACniN,SAAX,CAAqB8tC,MAArB,GAA8B,UAAU40K,WAAV,EAAuB30K,OAAvB,EAAgCxxB,GAAhC,EAAqC;IACjE,IAAIomM,aAAa,GAAG,IAAA,CAAKJ,cAAzB,CAAA;IACA,IAAKA,CAAAA,cAAL,GAAsB,KAAtB,CAAA;AACA,IAAA,IAAA,CAAKK,UAAL,EAAA,CAAA;;IAEA,IAAI,CAACF,WAAW,CAACvqL,GAAZ,CAAgB,MAAhB,EAAwB,IAAxB,CAAL,EAAoC;AAClC,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI0qL,SAAS,GAAGH,WAAW,CAACvqL,GAAZ,CAAgB,OAAhB,CAAhB,CAAA;AACA,IAAA,IAAIqjE,MAAM,GAAGknH,WAAW,CAACvqL,GAAZ,CAAgB,QAAhB,CAAb,CAAA;;AAEA,IAAA,IAAI,CAAC0qL,SAAD,IAAcA,SAAS,KAAK,MAAhC,EAAwC;AACtCA,MAAAA,SAAS,GAAGH,WAAW,CAACvqL,GAAZ,CAAgB,MAAhB,CAAA,KAA4B,OAA5B,IAAuCqjE,MAAM,KAAK,UAAlD,GAA+D,OAA/D,GAAyE,MAArF,CAAA;AACD,KAdgE;;;IAiBjE,IAAI0vG,QAAQ,GAAGwX,WAAW,CAACvqL,GAAZ,CAAgB,UAAhB,EAA4B,IAA5B,CAAf,CAAA;IACA,IAAI6pL,gBAAgB,GAAGU,WAAW,CAACvqL,GAAZ,CAAgB,kBAAhB,EAAoC,IAApC,CAAvB,CAAA;;IAEA,IAAI+yK,QAAQ,KAAK,CAAC8W,gBAAD,IAAqBA,gBAAgB,KAAK,MAA/C,CAAZ,EAAoE;AAClEA,MAAAA,gBAAgB,GAAGxmH,MAAM,KAAK,YAAX,GAA0B,KAA1B,GAAkC,OAArD,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKsnH,WAAL,CAAiBD,SAAjB,EAA4BH,WAA5B,EAAyC30K,OAAzC,EAAkDxxB,GAAlD,EAAuD2uL,QAAvD,EAAiE1vG,MAAjE,EAAyEwmH,gBAAzE,EAxBiE;;AA0BjE,IAAA,IAAIe,YAAY,GAAGL,WAAW,CAACx+J,kBAAZ,EAAnB,CAAA;AACA,IAAA,IAAI0mI,YAAY,GAAG;AACjBnhL,MAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADU;MAEjBhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;KAFV,CAAA;AAIA,IAAA,IAAI+C,OAAO,GAAGg9L,WAAW,CAACvqL,GAAZ,CAAgB,SAAhB,CAAd,CAAA;IACA,IAAIqQ,OAAO,GAAG60F,aAAA,CAAyB0lF,YAAzB,EAAuCn4B,YAAvC,EAAqDllK,OAArD,CAAd,CAAA;AACA,IAAA,IAAIs9L,QAAQ,GAAG,IAAA,CAAKC,WAAL,CAAiBP,WAAjB,EAA8BG,SAA9B,EAAyCr6K,OAAzC,EAAkDm6K,aAAlD,EAAiEzX,QAAjE,EAA2E8W,gBAA3E,CAAf,CAjCiE;;IAmCjE,IAAI5zH,UAAU,GAAGivC,aAAA,CAAyB31F,QAAA,CAAgB;MACxDj+B,KAAK,EAAEu5M,QAAQ,CAACv5M,KADwC;MAExDC,MAAM,EAAEs5M,QAAQ,CAACt5M,MAAAA;AAFuC,KAAhB,EAGvCq5M,YAHuC,CAAzB,EAGCn4B,YAHD,EAGellK,OAHf,CAAjB,CAAA;IAIA,IAAK2L,CAAAA,KAAL,CAAW5wB,CAAX,GAAe2tF,UAAU,CAAC3tF,CAAX,GAAeuiN,QAAQ,CAACviN,CAAvC,CAAA;IACA,IAAK4wB,CAAAA,KAAL,CAAW3wB,CAAX,GAAe0tF,UAAU,CAAC1tF,CAAX,GAAesiN,QAAQ,CAACtiN,CAAvC,CAAA;AACA,IAAA,IAAA,CAAK2wB,KAAL,CAAWsL,UAAX,EAAA,CAzCiE;;AA2CjE,IAAA,IAAA,CAAKtL,KAAL,CAAWO,GAAX,CAAe,IAAKsxL,CAAAA,aAAL,GAAqBn4B,cAAc,CAACi4B,QAAD,EAAWN,WAAX,CAAlD,CAAA,CAAA;GA3CF,CAAA;;AA8CAP,EAAAA,UAAU,CAACniN,SAAX,CAAqB4iN,UAArB,GAAkC,YAAY;IAC5C,IAAKJ,CAAAA,eAAL,GAAuBvtL,SAAvB,EAAA,CAAA;IACA,IAAKiuL,CAAAA,aAAL,IAAsB,IAAK7xL,CAAAA,KAAL,CAAW+K,MAAX,CAAkB,IAAK8mL,CAAAA,aAAvB,CAAtB,CAAA;IACA,IAAKT,CAAAA,gBAAL,GAAwBxtL,SAAxB,EAAA,CAAA;GAHF,CAAA;;AAMAktL,EAAAA,UAAU,CAACniN,SAAX,CAAqB8iN,WAArB,GAAmC,UAAUD,SAAV,EAAqBH,WAArB,EAAkC30K,OAAlC,EAA2CxxB,GAA3C,EAAgD2uL,QAAhD,EAA0D1vG,MAA1D,EAAkEwmH,gBAAlE,EAAoF;AACrH,IAAA,IAAIhuF,YAAY,GAAG,IAAKwuF,CAAAA,eAAL,EAAnB,CAAA;AACA,IAAA,IAAIW,cAAc,GAAGz7K,aAAA,EAArB,CAAA;AACA,IAAA,IAAI07K,UAAU,GAAGV,WAAW,CAACvqL,GAAZ,CAAgB,cAAhB,CAAjB,CAAA;IACA,IAAIkrL,eAAe,GAAG,EAAtB,CAAA;AACAt1K,IAAAA,OAAO,CAACqjJ,aAAR,CAAsB,UAAU16J,WAAV,EAAuB;AAC3C,MAAA,CAACA,WAAW,CAACyB,GAAZ,CAAgB,iBAAhB,CAAD,IAAuCkrL,eAAe,CAACt/M,IAAhB,CAAqB2yB,WAAW,CAAC7iB,EAAjC,CAAvC,CAAA;KADF,CAAA,CAAA;IAGAnH,MAAI,CAACg2M,WAAW,CAAC3wL,OAAZ,EAAD,EAAwB,UAAUuxL,eAAV,EAA2BnvL,SAA3B,EAAsC;MAChE,IAAIztB,IAAI,GAAG48M,eAAe,CAACnrL,GAAhB,CAAoB,MAApB,CAAX,CADgE;;AAGhE,MAAA,IAAI,CAAC,IAAA,CAAKiqL,eAAN,KAA0B17M,IAAI,KAAK,EAAT,IAAeA,IAAI,KAAK,IAAlD,CAAJ,EAA6D;AAC3D,QAAA,IAAIlD,CAAC,GAAG,IAAI8tB,OAAJ,EAAR,CAD2D;;QAG3D9tB,CAAC,CAACkE,OAAF,GAAY,IAAZ,CAAA;QACAssH,YAAY,CAACpiG,GAAb,CAAiBpuB,CAAjB,CAAA,CAAA;AACA,QAAA,OAAA;AACD,OAT+D;;;MAYhE,IAAIkzB,WAAW,GAAGqX,OAAO,CAACsmJ,eAAR,CAAwB3tL,IAAxB,CAA8B,CAAA,CAA9B,CAAlB,CAAA;;AAEA,MAAA,IAAIy8M,cAAc,CAAChrL,GAAf,CAAmBzxB,IAAnB,CAAJ,EAA8B;AAC5B;AACA,QAAA,OAAA;AACD,OAjB+D;;;AAoBhE,MAAA,IAAIgwB,WAAJ,EAAiB;AACf,QAAA,IAAIxC,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;QACA,IAAIwxL,eAAe,GAAGrvL,IAAI,CAAClC,SAAL,CAAe,iBAAf,KAAqC,EAA3D,CAAA;AACA,QAAA,IAAIi+H,UAAU,GAAG/7H,IAAI,CAAClC,SAAL,CAAe,YAAf,CAAjB,CAAA;AACA;AACR;AACA;AACA;;AAEQ,QAAA,IAAI1tB,KAAK,GAAG4vB,IAAI,CAAClC,SAAL,CAAe,OAAf,CAAZ,CAAA;;QAEA,IAAIi/C,SAAS,GAAG,IAAA,CAAKuyI,WAAL,CAAiB9sL,WAAjB,EAA8BhwB,IAA9B,EAAoCytB,SAApC,EAA+CmvL,eAA/C,EAAgEZ,WAAhE,EAA6EG,SAA7E,EAAwFU,eAAxF,EAAyGj/M,KAAzG,EAAgH2rJ,UAAhH,EAA4HmzD,UAA5H,EAAwI7mM,GAAxI,CAAhB,CAAA;;QAEA00D,SAAS,CAACzzB,EAAV,CAAa,OAAb,EAAsB4S,KAAK,CAACqzJ,oBAAD,EAAuB/8M,IAAvB,EAA6B,IAA7B,EAAmC6V,GAAnC,EAAwC8mM,eAAxC,CAA3B,CAAqF7lK,CAAAA,EAArF,CAAwF,WAAxF,EAAqG4S,KAAK,CAACszJ,uBAAD,EAA0BhtL,WAAW,CAAChwB,IAAtC,EAA4C,IAA5C,EAAkD6V,GAAlD,EAAuD8mM,eAAvD,CAA1G,CAAA,CAAmL7lK,EAAnL,CAAsL,UAAtL,EAAkM4S,KAAK,CAACuzJ,sBAAD,EAAyBjtL,WAAW,CAAChwB,IAArC,EAA2C,IAA3C,EAAiD6V,GAAjD,EAAsD8mM,eAAtD,CAAvM,CAAA,CAAA;AACAF,QAAAA,cAAc,CAAClxJ,GAAf,CAAmBvrD,IAAnB,EAAyB,IAAzB,CAAA,CAAA;AACD,OAfD,MAeO;AACL;AACAqnC,QAAAA,OAAO,CAACqjJ,aAAR,CAAsB,UAAU16J,WAAV,EAAuB;AAC3C;AACA,UAAA,IAAIysL,cAAc,CAAChrL,GAAf,CAAmBzxB,IAAnB,CAAJ,EAA8B;AAC5B,YAAA,OAAA;AACD,WAAA;;UAED,IAAIgwB,WAAW,CAACy3B,oBAAhB,EAAsC;AACpC,YAAA,IAAI6yJ,QAAQ,GAAGtqL,WAAW,CAACy3B,oBAA3B,CAAA;;AAEA,YAAA,IAAI,CAAC6yJ,QAAQ,CAACjzJ,WAAT,CAAqBrnD,IAArB,CAAL,EAAiC;AAC/B,cAAA,OAAA;AACD,aAAA;;AAED,YAAA,IAAIgpB,GAAG,GAAGsxL,QAAQ,CAAChzJ,WAAT,CAAqBtnD,IAArB,CAAV,CAAA;YACA,IAAIpC,KAAK,GAAG08M,QAAQ,CAACvqL,aAAT,CAAuB/G,GAAvB,EAA4B,OAA5B,CAAZ,CAAA;YACA,IAAIugI,UAAU,GAAG+wD,QAAQ,CAACvqL,aAAT,CAAuB/G,GAAvB,EAA4B,YAA5B,CAAjB,CAAA;YACA,IAAIk0L,QAAQ,GAAG/pJ,KAAK,CAACv1D,KAAK,CAACC,IAAP,CAApB,CAVoC;AAWpC;;YAEA,IAAIq/M,QAAQ,IAAIA,QAAQ,CAAC,CAAD,CAAR,KAAgB,CAAhC,EAAmC;AACjCA,cAAAA,QAAQ,CAAC,CAAD,CAAR,GAAc,GAAd,CADiC;;AAGjCt/M,cAAAA,KAAK,GAAGojC,MAAA,CAAcA,MAAA,CAAc,EAAd,EAAkBpjC,KAAlB,CAAd,EAAwC;AAC9CC,gBAAAA,IAAI,EAAEw7I,SAAS,CAAC6jE,QAAD,EAAW,MAAX,CAAA;AAD+B,eAAxC,CAAR,CAAA;AAGD,aAAA;;AAED,YAAA,IAAI3yI,SAAS,GAAG,IAAKuyI,CAAAA,WAAL,CAAiB9sL,WAAjB,EAA8BhwB,IAA9B,EAAoCytB,SAApC,EAA+CmvL,eAA/C,EAAgEZ,WAAhE,EAA6EG,SAA7E,EAAwF,EAAxF,EAA4Fv+M,KAA5F,EAAmG2rJ,UAAnG,EAA+GmzD,UAA/G,EAA2H7mM,GAA3H,CAAhB,CArBoC;;;AAwBpC00D,YAAAA,SAAS,CAACzzB,EAAV,CAAa,OAAb,EAAsB4S,KAAK,CAACqzJ,oBAAD,EAAuB,IAAvB,EAA6B/8M,IAA7B,EAAmC6V,GAAnC,EAAwC8mM,eAAxC,CAA3B,CAAqF;AACrF;AADA,aAEC7lK,EAFD,CAEI,WAFJ,EAEiB4S,KAAK,CAACszJ,uBAAD,EAA0B,IAA1B,EAAgCh9M,IAAhC,EAAsC6V,GAAtC,EAA2C8mM,eAA3C,CAFtB,CAEmF7lK,CAAAA,EAFnF,CAEsF,UAFtF,EAEkG4S,KAAK,CAACuzJ,sBAAD,EAAyB,IAAzB,EAA+Bj9M,IAA/B,EAAqC6V,GAArC,EAA0C8mM,eAA1C,CAFvG,CAAA,CAAA;AAGAF,YAAAA,cAAc,CAAClxJ,GAAf,CAAmBvrD,IAAnB,EAAyB,IAAzB,CAAA,CAAA;AACD,WAAA;AACF,SAnCD,EAmCG,IAnCH,CAAA,CAAA;AAoCD,OAAA;;AAED,MAAA,IAAI0Q,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,QAAA,IAAI,CAAC6rM,cAAc,CAAChrL,GAAf,CAAmBzxB,IAAnB,CAAL,EAA+B;AAC7BiV,UAAAA,OAAO,CAAC2tB,IAAR,CAAa5iC,IAAI,GAAG,+EAApB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;KA/EC,EAgFD,IAhFC,CAAJ,CAAA;;AAkFA,IAAA,IAAIwkM,QAAJ,EAAc;MACZ,IAAK2Y,CAAAA,eAAL,CAAqB3Y,QAArB,EAA+BwX,WAA/B,EAA4CnmM,GAA5C,EAAiDi/E,MAAjD,EAAyDwmH,gBAAzD,CAAA,CAAA;AACD,KAAA;GA5FH,CAAA;;AA+FAG,EAAAA,UAAU,CAACniN,SAAX,CAAqB6jN,eAArB,GAAuC,UAAU3Y,QAAV,EAAoBwX,WAApB,EAAiCnmM,GAAjC,EAAsCi/E,MAAtC,EAA8CwmH,gBAA9C,EAAgE;AACrG,IAAA,IAAI8B,aAAa,GAAG,IAAKrB,CAAAA,gBAAL,EAApB,CAAA;AACA/1M,IAAAA,MAAI,CAACw+L,QAAD,EAAW,SAAS6Y,oBAAT,CAA8BC,YAA9B,EAA4C;AACzD,MAAA,IAAIjxM,IAAI,GAAGixM,YAAY,CAACjxM,IAAxB,CAAA;AACA,MAAA,IAAI+4C,SAAS,GAAG,IAAI/0B,MAAJ,CAAiB;AAC/BzyB,QAAAA,KAAK,EAAE;AACL7D,UAAAA,CAAC,EAAE,CADE;AAELC,UAAAA,CAAC,EAAE,CAFE;AAGL2sC,UAAAA,KAAK,EAAE,QAHF;AAILC,UAAAA,aAAa,EAAE,QAAA;SALc;AAO/B89D,QAAAA,OAAO,EAAE,SAAY,OAAA,GAAA;UACnB7uF,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,YAAAA,IAAI,EAAEA,IAAI,KAAK,KAAT,GAAiB,iBAAjB,GAAqC,qBAAA;WAD7C,CAAA,CAAA;AAGD,SAAA;AAX8B,OAAjB,CAAhB,CAAA;MAaA+wM,aAAa,CAAClyL,GAAd,CAAkBk6B,SAAlB,CAAA,CAAA;AACA,MAAA,IAAItC,UAAU,GAAGk5J,WAAW,CAACzqL,QAAZ,CAAqB,eAArB,CAAjB,CAAA;MACA,IAAIgsL,kBAAkB,GAAGvB,WAAW,CAACzqL,QAAZ,CAAqB,CAAC,UAAD,EAAa,eAAb,CAArB,CAAzB,CAAA;MACAmB,aAAa,CAAC0yB,SAAD,EAAY;AACvBve,QAAAA,MAAM,EAAEic,UADe;AAEvBt2B,QAAAA,QAAQ,EAAE+wL,kBAAAA;AAFa,OAAZ,EAGV;QACD1qL,WAAW,EAAEyqL,YAAY,CAACxuF,KAAAA;AADzB,OAHU,CAAb,CAAA;MAMA8/E,mBAAmB,CAACxpJ,SAAD,CAAnB,CAAA;AACD,KAzBG,CAAJ,CAAA;GAFF,CAAA;;EA8BAq2J,UAAU,CAACniN,SAAX,CAAqBwjN,WAArB,GAAmC,UAAU9sL,WAAV,EAAuBhwB,IAAvB,EAA6BytB,SAA7B,EAAwCmvL,eAAxC,EAAyDZ,WAAzD,EAAsEG,SAAtE,EAAiFU,eAAjF,EAAkGW,eAAlG,EAAmHj0D,UAAnH,EAA+HmzD,UAA/H,EAA2I7mM,GAA3I,EAAgJ;AACjL,IAAA,IAAI4nM,QAAQ,GAAGztL,WAAW,CAACkhG,cAA3B,CAAA;AACA,IAAA,IAAIlmG,SAAS,GAAGgxL,WAAW,CAACvqL,GAAZ,CAAgB,WAAhB,CAAhB,CAAA;AACA,IAAA,IAAI1G,UAAU,GAAGixL,WAAW,CAACvqL,GAAZ,CAAgB,YAAhB,CAAjB,CAAA;AACA,IAAA,IAAIytB,UAAU,GAAG88J,WAAW,CAAC98J,UAAZ,CAAuBl/C,IAAvB,CAAjB,CAAA;AACA,IAAA,IAAI6rB,UAAU,GAAG+wL,eAAe,CAACnrL,GAAhB,CAAoB,cAApB,CAAjB,CAAA;AACA,IAAA,IAAIyuF,gBAAgB,GAAG08F,eAAe,CAACnrL,GAAhB,CAAoB,kBAApB,CAAvB,CAAA;AACA,IAAA,IAAIisL,cAAc,GAAGd,eAAe,CAACnrL,GAAhB,CAAoB,MAApB,CAArB,CAAA;AACA83H,IAAAA,UAAU,GAAGm0D,cAAc,IAAIn0D,UAAlB,IAAgC,WAA7C,CAAA;AACA,IAAA,IAAI3rJ,KAAK,GAAG+/M,cAAc,CAACp0D,UAAD,EAAaqzD,eAAb,EAA8BC,eAA9B,EAA+CW,eAA/C,EAAgEC,QAAhE,EAA0Ev+J,UAA1E,EAAsFrpC,GAAtF,CAA1B,CAAA;AACA,IAAA,IAAI00D,SAAS,GAAG,IAAI3/C,OAAJ,EAAhB,CAAA;AACA,IAAA,IAAIozC,cAAc,GAAG4+I,eAAe,CAACrrL,QAAhB,CAAyB,WAAzB,CAArB,CAAA;;AAEA,IAAA,IAAIyP,UAAA,CAAkBhR,WAAW,CAACvF,aAA9B,CAAiD,KAAA,CAACizL,cAAD,IAAmBA,cAAc,KAAK,SAAvF,CAAJ,EAAuG;AACrG;AACAnzI,MAAAA,SAAS,CAACr/C,GAAV,CAAc8E,WAAW,CAACvF,aAAZ,CAA0B;AACtCO,QAAAA,SAAS,EAAEA,SAD2B;AAEtCD,QAAAA,UAAU,EAAEA,UAF0B;AAGtC0/D,QAAAA,IAAI,EAAE8+D,UAHgC;AAItC19H,QAAAA,UAAU,EAAEA,UAJ0B;QAKtCF,SAAS,EAAE/tB,KAAK,CAAC+tB,SALqB;QAMtCV,SAAS,EAAErtB,KAAK,CAACqtB,SANqB;AAOtCi1F,QAAAA,gBAAgB,EAAEA,gBAAAA;AAPoB,OAA1B,CAAd,CAAA,CAAA;AASD,KAXD,MAWO;AACL;AACA,MAAA,IAAI1tE,MAAM,GAAGkrK,cAAc,KAAK,SAAnB,IAAgC1tL,WAAW,CAAC3E,OAAZ,EAAsBC,CAAAA,SAAtB,CAAgC,QAAhC,CAAhC,GAA4EO,UAAU,KAAK,SAAf,GAA2BmE,WAAW,CAAC3E,OAAZ,GAAsBC,SAAtB,CAAgC,cAAhC,CAA3B,GAA6EO,UAAzJ,GAAsK,CAAnL,CAFK;;AAIL0+C,MAAAA,SAAS,CAACr/C,GAAV,CAAc0yL,oBAAoB,CAAC;AACjC5yL,QAAAA,SAAS,EAAEA,SADsB;AAEjCD,QAAAA,UAAU,EAAEA,UAFqB;AAGjC0/D,QAAAA,IAAI,EAAE8+D,UAH2B;AAIjC19H,QAAAA,UAAU,EAAE2mB,MAJqB;QAKjC7mB,SAAS,EAAE/tB,KAAK,CAAC+tB,SALgB;QAMjCV,SAAS,EAAErtB,KAAK,CAACqtB,SANgB;AAOjCi1F,QAAAA,gBAAgB,EAAEA,gBAAAA;AAPe,OAAD,CAAlC,CAAA,CAAA;AASD,KAAA;;IAED,IAAI58D,KAAK,GAAG64J,SAAS,KAAK,MAAd,GAAuBnxL,SAAS,GAAG,CAAnC,GAAuC,CAAC,CAApD,CAAA;IACA,IAAIjd,SAAS,GAAGouM,SAAhB,CAAA;AACA,IAAA,IAAI5rH,SAAS,GAAGyrH,WAAW,CAACvqL,GAAZ,CAAgB,WAAhB,CAAhB,CAAA;IACA,IAAIu4E,OAAO,GAAGhqG,IAAd,CAAA;;AAEA,IAAA,IAAIghC,QAAA,CAAgBuvD,SAAhB,CAAA,IAA8BA,SAAlC,EAA6C;AAC3CyZ,MAAAA,OAAO,GAAGzZ,SAAS,CAAC9pF,OAAV,CAAkB,QAAlB,EAA4BzG,IAAI,IAAI,IAAR,GAAeA,IAAf,GAAsB,EAAlD,CAAV,CAAA;KADF,MAEO,IAAIghC,UAAA,CAAkBuvD,SAAlB,CAAJ,EAAkC;AACvCyZ,MAAAA,OAAO,GAAGzZ,SAAS,CAACvwF,IAAD,CAAnB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI26M,aAAa,GAAGiC,eAAe,CAACnrL,GAAhB,CAAoB,eAApB,CAApB,CAAA;AACA84C,IAAAA,SAAS,CAACr/C,GAAV,CAAc,IAAImF,MAAJ,CAAiB;AAC7BzyB,MAAAA,KAAK,EAAEghE,eAAe,CAACZ,cAAD,EAAiB;AACrCx9D,QAAAA,IAAI,EAAEwpG,OAD+B;AAErCjwG,QAAAA,CAAC,EAAEupD,KAFkC;QAGrCtpD,CAAC,EAAE+wB,UAAU,GAAG,CAHqB;QAIrCltB,IAAI,EAAEqhD,UAAU,GAAG8e,cAAc,CAACa,YAAf,EAAH,GAAmC87I,aAJd;AAKrCh0K,QAAAA,KAAK,EAAE54B,SAL8B;AAMrC64B,QAAAA,aAAa,EAAE,QAAA;OANK,CAAA;KADV,CAAd,EAnDiL;;AA8DjL,IAAA,IAAIi3K,OAAO,GAAG,IAAIxtL,MAAJ,CAAiB;AAC7BzrB,MAAAA,KAAK,EAAE2lE,SAAS,CAACtoB,eAAV,EADsB;AAE7B9mC,MAAAA,SAAS,EAAE,IAAA;AAFkB,KAAjB,CAAd,CAAA;AAIA,IAAA,IAAIq5K,YAAY,GAAGooB,eAAe,CAACrrL,QAAhB,CAAyB,SAAzB,CAAnB,CAAA;;AAEA,IAAA,IAAIijK,YAAY,CAAC/iK,GAAb,CAAiB,MAAjB,CAAJ,EAA8B;MAC5BpB,gBAAA,CAAyB;AACvB9xB,QAAAA,EAAE,EAAEs/M,OADmB;AAEvBzgK,QAAAA,cAAc,EAAE4+J,WAFO;AAGvBl9I,QAAAA,QAAQ,EAAE9+D,IAHa;QAIvB8nF,iBAAiB,EAAE0sG,YAAY,CAACrqK,MAAAA;OAJlC,CAAA,CAAA;AAMD,KAAA;;IAEDogD,SAAS,CAACr/C,GAAV,CAAc2yL,OAAd,CAAA,CAAA;AACAtzI,IAAAA,SAAS,CAACzf,SAAV,CAAoB,UAAU5pD,KAAV,EAAiB;MACnCA,KAAK,CAAC4uB,MAAN,GAAe,IAAf,CAAA;KADF,CAAA,CAAA;AAGA+tL,IAAAA,OAAO,CAAC/tL,MAAR,GAAiB,CAAC4sL,UAAlB,CAAA;AACA,IAAA,IAAA,CAAKZ,eAAL,EAAA,CAAuB5wL,GAAvB,CAA2Bq/C,SAA3B,CAAA,CAAA;AACAqkI,IAAAA,mBAAmB,CAACrkI,SAAD,CAAnB,CAnFiL;;IAqFjLA,SAAS,CAACuzI,iBAAV,GAA8BrwL,SAA9B,CAAA;AACA,IAAA,OAAO88C,SAAP,CAAA;GAtFF,CAAA;;AAyFAkxI,EAAAA,UAAU,CAACniN,SAAX,CAAqBijN,WAArB,GAAmC,UAAUP,WAAV,EAAuBG,SAAvB,EAAkCr6K,OAAlC,EAA2Cm6K,aAA3C,EAA0DzX,QAA1D,EAAoE8W,gBAApE,EAAsF;AACvH,IAAA,IAAIhuF,YAAY,GAAG,IAAKwuF,CAAAA,eAAL,EAAnB,CAAA;AACA,IAAA,IAAIsB,aAAa,GAAG,IAAA,CAAKrB,gBAAL,EAApB,CAFuH;;IAIvHplF,GAAA,CAAeqlF,WAAW,CAACvqL,GAAZ,CAAgB,QAAhB,CAAf,EAA0C67F,YAA1C,EAAwD0uF,WAAW,CAACvqL,GAAZ,CAAgB,SAAhB,CAAxD,EAAoFqQ,OAAO,CAAC/+B,KAA5F,EAAmG++B,OAAO,CAAC9+B,MAA3G,CAAA,CAAA;AACA,IAAA,IAAI+6M,WAAW,GAAGzwF,YAAY,CAACrrE,eAAb,EAAlB,CAAA;AACA,IAAA,IAAI+7J,UAAU,GAAG,CAAC,CAACD,WAAW,CAAChkN,CAAd,EAAiB,CAACgkN,WAAW,CAAC/jN,CAA9B,CAAjB,CAAA;AACAojN,IAAAA,aAAa,CAACnnL,UAAd,EAAA,CAAA;AACAq3F,IAAAA,YAAY,CAACr3F,UAAb,EAAA,CAAA;;AAEA,IAAA,IAAIuuK,QAAJ,EAAc;AACZ;MACA7tE,GAAA;MACA,YADA,EACcymF,aADd,EAC6BpB,WAAW,CAACvqL,GAAZ,CAAgB,iBAAhB,EAAmC,IAAnC,CAD7B,CAAA,CAAA;AAEA,MAAA,IAAIwsL,YAAY,GAAGb,aAAa,CAACn7J,eAAd,EAAnB,CAAA;AACA,MAAA,IAAIi8J,WAAW,GAAG,CAAC,CAACD,YAAY,CAAClkN,CAAf,EAAkB,CAACkkN,YAAY,CAACjkN,CAAhC,CAAlB,CAAA;MACA,IAAIwhN,iBAAiB,GAAGQ,WAAW,CAACvqL,GAAZ,CAAgB,mBAAhB,EAAqC,IAArC,CAAxB,CAAA;AACA,MAAA,IAAI0sL,SAAS,GAAGnC,WAAW,CAAC1jH,SAAZ,GAAwB//C,KAAxC,CAAA;MACA,IAAIq+D,EAAE,GAAGunG,SAAS,KAAK,CAAd,GAAkB,OAAlB,GAA4B,QAArC,CAAA;MACA,IAAIC,EAAE,GAAGD,SAAS,KAAK,CAAd,GAAkB,QAAlB,GAA6B,OAAtC,CAAA;MACA,IAAIE,EAAE,GAAGF,SAAS,KAAK,CAAd,GAAkB,GAAlB,GAAwB,GAAjC,CAAA;;MAEA,IAAI7C,gBAAgB,KAAK,KAAzB,EAAgC;QAC9B4C,WAAW,CAACC,SAAD,CAAX,IAA0BJ,WAAW,CAACnnG,EAAD,CAAX,GAAkB4kG,iBAA5C,CAAA;AACD,OAFD,MAEO;QACLwC,UAAU,CAACG,SAAD,CAAV,IAAyBF,YAAY,CAACrnG,EAAD,CAAZ,GAAmB4kG,iBAA5C,CAAA;AACD,OAhBW;;;AAmBZ0C,MAAAA,WAAW,CAAC,CAAIC,GAAAA,SAAL,CAAX,IAA8BJ,WAAW,CAACK,EAAD,CAAX,GAAkB,CAAlB,GAAsBH,YAAY,CAACG,EAAD,CAAZ,GAAmB,CAAvE,CAAA;AACAhB,MAAAA,aAAa,CAACrjN,CAAd,GAAkBmkN,WAAW,CAAC,CAAD,CAA7B,CAAA;AACAd,MAAAA,aAAa,CAACpjN,CAAd,GAAkBkkN,WAAW,CAAC,CAAD,CAA7B,CAAA;AACA5wF,MAAAA,YAAY,CAACvzH,CAAb,GAAiBikN,UAAU,CAAC,CAAD,CAA3B,CAAA;AACA1wF,MAAAA,YAAY,CAACtzH,CAAb,GAAiBgkN,UAAU,CAAC,CAAD,CAA3B,CAAA;AACA,MAAA,IAAI1B,QAAQ,GAAG;AACbviN,QAAAA,CAAC,EAAE,CADU;AAEbC,QAAAA,CAAC,EAAE,CAAA;OAFL,CAAA;AAIAsiN,MAAAA,QAAQ,CAAC1lG,EAAD,CAAR,GAAemnG,WAAW,CAACnnG,EAAD,CAAX,GAAkB4kG,iBAAlB,GAAsCyC,YAAY,CAACrnG,EAAD,CAAjE,CAAA;AACA0lG,MAAAA,QAAQ,CAAC8B,EAAD,CAAR,GAAetlN,IAAI,CAAC0iB,GAAL,CAASuiM,WAAW,CAACK,EAAD,CAApB,EAA0BH,YAAY,CAACG,EAAD,CAAtC,CAAf,CAAA;MACA9B,QAAQ,CAAC+B,EAAD,CAAR,GAAevlN,IAAI,CAAC8iC,GAAL,CAAS,CAAT,EAAYqiL,YAAY,CAACI,EAAD,CAAZ,GAAmBH,WAAW,CAAC,CAAIC,GAAAA,SAAL,CAA1C,CAAf,CAAA;AACA,MAAA,OAAO7B,QAAP,CAAA;AACD,KAhCD,MAgCO;AACLhvF,MAAAA,YAAY,CAACvzH,CAAb,GAAiBikN,UAAU,CAAC,CAAD,CAA3B,CAAA;AACA1wF,MAAAA,YAAY,CAACtzH,CAAb,GAAiBgkN,UAAU,CAAC,CAAD,CAA3B,CAAA;AACA,MAAA,OAAO,IAAKrzL,CAAAA,KAAL,CAAWs3B,eAAX,EAAP,CAAA;AACD,KAAA;GA9CH,CAAA;AAgDA;AACF;AACA;;;AAGEw5J,EAAAA,UAAU,CAACniN,SAAX,CAAqBo8B,MAArB,GAA8B,YAAY;IACxC,IAAKomL,CAAAA,eAAL,GAAuBvtL,SAAvB,EAAA,CAAA;IACA,IAAKstL,CAAAA,cAAL,GAAsB,IAAtB,CAAA;GAFF,CAAA;;EAKAJ,UAAU,CAACpvM,IAAX,GAAkB,cAAlB,CAAA;AACA,EAAA,OAAOovM,UAAP,CAAA;AACD,CA3WD,CA2WEh1I,aA3WF,CAFA,CAAA;;AA+WA,SAASk3I,cAAT,CAAwBnzH,QAAxB,EAAkCoyH,eAAlC,EAAmDC,eAAnD,EAAoEW,eAApE,EAAqFC,QAArF,EAA+Fv+J,UAA/F,EAA2GrpC,GAA3G,EAAgH;AAC9G;AACF;AACA;AACA;AACE,EAAA,SAASyoM,iBAAT,CAA2B1gN,KAA3B,EAAkC2gN,WAAlC,EAA+C;AAC7C;AACA,IAAA,IAAI3gN,KAAK,CAACsB,SAAN,KAAoB,MAAxB,EAAgC;MAC9BtB,KAAK,CAACsB,SAAN,GAAkBq/M,WAAW,CAACr/M,SAAZ,GAAwB,CAAxB,GAA4B,CAA5B,GAAgC,CAAlD,CAAA;AACD,KAAA;;AAED8G,IAAAA,MAAI,CAACpI,KAAD,EAAQ,UAAU4gN,OAAV,EAAmB/+M,QAAnB,EAA6B;AACvC7B,MAAAA,KAAK,CAAC6B,QAAD,CAAL,KAAoB,SAApB,KAAkC7B,KAAK,CAAC6B,QAAD,CAAL,GAAkB8+M,WAAW,CAAC9+M,QAAD,CAA/D,CAAA,CAAA;AACD,KAFG,CAAJ,CAAA;AAGD,GAd6G;;;AAiB9G,EAAA,IAAI4mJ,cAAc,GAAGu2D,eAAe,CAACrrL,QAAhB,CAAyB,WAAzB,CAArB,CAAA;AACA,EAAA,IAAI5F,SAAS,GAAG06H,cAAc,CAAC70H,YAAf,EAAhB,CAAA;AACA,EAAA,IAAIitL,aAAa,GAAGj0H,QAAQ,CAACg2D,WAAT,CAAqB,OAArB,EAA8B,CAA9B,CAAqC,KAAA,CAArC,GAAyC,MAAzC,GAAkD,QAAtE,CAAA;AACA,EAAA,IAAIk+D,UAAU,GAAGr4D,cAAc,CAAC10H,UAAf,CAA0B,OAA1B,CAAjB,CAAA;AACAhG,EAAAA,SAAS,CAACwG,KAAV,GAAkB,CAACusL,UAAD,IAAeA,UAAU,KAAK,SAA9B,GAA0ClB,eAAe,CAACrrL,KAA1D,GAAkEk1D,8BAA8B,CAACq3H,UAAD,EAAa7oM,GAAb,CAAlH,CAAA;;AAEA,EAAA,IAAI8V,SAAS,CAAC9tB,IAAV,KAAmB,SAAvB,EAAkC;AAChC;AACJ;AACA;AACA;AACI8tB,IAAAA,SAAS,CAAC9tB,IAAV,GAAiB2/M,eAAe,CAACC,QAAD,CAAhC,CAAA;AACD,GAAA;;AAED,EAAA,IAAI9xL,SAAS,CAAC5tB,MAAV,KAAqB,SAAzB,EAAoC;AAClC;AACJ;AACA;AACA;AACI4tB,IAAAA,SAAS,CAAC5tB,MAAV,GAAmBy/M,eAAe,CAACiB,aAAD,CAAlC,CAAA;AACD,GAAA;;AAED,EAAA,IAAI9yL,SAAS,CAACltB,OAAV,KAAsB,SAA1B,EAAqC;AACnC;AACJ;AACA;AACIktB,IAAAA,SAAS,CAACltB,OAAV,GAAoB,CAACg/M,QAAQ,KAAK,MAAb,GAAsBD,eAAtB,GAAwCX,eAAzC,EAA0Dp+M,OAA9E,CAAA;AACD,GAAA;;AAED6/M,EAAAA,iBAAiB,CAAC3yL,SAAD,EAAY6xL,eAAZ,CAAjB,CA9C8G;;AAgD9G,EAAA,IAAImB,eAAe,GAAG/B,eAAe,CAACrrL,QAAhB,CAAyB,WAAzB,CAAtB,CAAA;AACA,EAAA,IAAItG,SAAS,GAAG0zL,eAAe,CAAC31K,YAAhB,EAAhB,CAAA;AACAs1K,EAAAA,iBAAiB,CAACrzL,SAAD,EAAY4xL,eAAZ,CAAjB,CAlD8G;;EAoD9GlxL,SAAS,CAAC9tB,IAAV,KAAmB,MAAnB,KAA8B8tB,SAAS,CAAC9tB,IAAV,GAAiB2/M,eAAe,CAAC3/M,IAA/D,CAAA,CAAA;EACA8tB,SAAS,CAAC5tB,MAAV,KAAqB,MAArB,KAAgC4tB,SAAS,CAAC5tB,MAAV,GAAmBy/M,eAAe,CAAC3/M,IAAnE,CAAA,CAAA;EACAotB,SAAS,CAACltB,MAAV,KAAqB,MAArB,KAAgCktB,SAAS,CAACltB,MAAV,GAAmBy/M,eAAe,CAAC3/M,IAAnE,CAAA,CAAA;;EAEA,IAAI,CAACqhD,UAAL,EAAiB;AACf,IAAA,IAAIhgC,WAAW,GAAG09L,eAAe,CAACnrL,GAAhB,CAAoB,qBAApB,CAAlB,CAAA;AACA;AACJ;AACA;AACA;AACA;;AAEI,IAAA,IAAImtL,eAAe,GAAGjzL,SAAS,CAAC8yL,aAAD,CAA/B,CAAA;IACA9yL,SAAS,CAACzsB,SAAV,GAAsBggB,WAAW,KAAK,MAAhB,GAAyBs+L,eAAe,CAACt+M,SAAhB,GAA4B,CAA5B,IAAiC0/M,eAAjC,GAAmD,CAAnD,GAAuD,CAAhF,GAAoFjzL,SAAS,CAACzsB,SAApH,CAAA;IACAysB,SAAS,CAAC9tB,IAAV,GAAiB++M,eAAe,CAACnrL,GAAhB,CAAoB,eAApB,CAAjB,CAAA;IACA9F,SAAS,CAAC5tB,MAAV,GAAmB6+M,eAAe,CAACnrL,GAAhB,CAAoB,qBAApB,CAAnB,CAAA;IACAxG,SAAS,CAACltB,MAAV,GAAmB4gN,eAAe,CAACltL,GAAhB,CAAoB,eAApB,CAAnB,CAAA;IACAxG,SAAS,CAAC/rB,SAAV,GAAsBy/M,eAAe,CAACltL,GAAhB,CAAoB,eAApB,CAAtB,CAAA;AACD,GAAA;;EAED,OAAO;AACL9F,IAAAA,SAAS,EAAEA,SADN;AAELV,IAAAA,SAAS,EAAEA,SAAAA;GAFb,CAAA;AAID,CAAA;;AAED,SAAS2yL,oBAAT,CAA8BlzL,GAA9B,EAAmC;AACjC,EAAA,IAAIm0L,SAAS,GAAGn0L,GAAG,CAAC+/D,IAAJ,IAAY,WAA5B,CAAA;EACA,IAAIA,IAAI,GAAG3/D,cAAY,CAAC+zL,SAAD,EAAY,CAAZ,EAAe,CAAf,EAAkBn0L,GAAG,CAACM,SAAtB,EAAiCN,GAAG,CAACK,UAArC,EAAiDL,GAAG,CAACiB,SAAJ,CAAc9tB,IAA/D,EAAqE6sB,GAAG,CAACw1F,gBAAzE,CAAvB,CAAA;AACAz1B,EAAAA,IAAI,CAACt/D,QAAL,CAAcT,GAAG,CAACiB,SAAlB,CAAA,CAAA;AACA8+D,EAAAA,IAAI,CAAC3+D,QAAL,GAAgB,CAACpB,GAAG,CAACmB,UAAJ,IAAkB,CAAnB,IAAwB/yB,IAAI,CAACI,EAA7B,GAAkC,GAAlD,CAAA;AACAuxF,EAAAA,IAAI,CAAC1+D,SAAL,CAAe,CAACrB,GAAG,CAACM,SAAJ,GAAgB,CAAjB,EAAoBN,GAAG,CAACK,UAAJ,GAAiB,CAArC,CAAf,CAAA,CAAA;;EAEA,IAAI8zL,SAAS,CAACr4M,OAAV,CAAkB,OAAlB,CAA6B,GAAA,CAAC,CAAlC,EAAqC;IACnCikF,IAAI,CAAC7sF,KAAL,CAAWG,MAAX,GAAoB0sF,IAAI,CAAC7sF,KAAL,CAAWC,IAA/B,CAAA;AACA4sF,IAAAA,IAAI,CAAC7sF,KAAL,CAAWC,IAAX,GAAkB,MAAlB,CAAA;AACA4sF,IAAAA,IAAI,CAAC7sF,KAAL,CAAWsB,SAAX,GAAuB,CAAvB,CAAA;AACD,GAAA;;AAED,EAAA,OAAOurF,IAAP,CAAA;AACD,CAAA;;AAED,SAASsyH,oBAAT,CAA8B7yK,UAA9B,EAA0C88E,QAA1C,EAAoDnxG,GAApD,EAAyD8mM,eAAzD,EAA0E;AACxE;EACAM,sBAAsB,CAAC/yK,UAAD,EAAa88E,QAAb,EAAuBnxG,GAAvB,EAA4B8mM,eAA5B,CAAtB,CAAA;EACA9mM,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,IAAAA,IAAI,EAAE,oBADW;AAEjBrM,IAAAA,IAAI,EAAEkqC,UAAU,IAAI,IAAd,GAAqBA,UAArB,GAAkC88E,QAAAA;AAFvB,GAAnB,EAHwE;AAOxE;;EAEAg2F,uBAAuB,CAAC9yK,UAAD,EAAa88E,QAAb,EAAuBnxG,GAAvB,EAA4B8mM,eAA5B,CAAvB,CAAA;AACD,CAAA;;AAED,SAASmC,eAAT,CAAyBjpM,GAAzB,EAA8B;EAC5B,IAAI4D,IAAI,GAAG5D,GAAG,CAACghC,KAAJ,EAAY5+B,CAAAA,OAAZ,CAAoByB,cAApB,EAAX,CAAA;AACA,EAAA,IAAIwZ,aAAJ,CAAA;EACA,IAAIl2B,CAAC,GAAG,CAAR,CAAA;AACA,EAAA,IAAIqJ,GAAG,GAAGoT,IAAI,CAACnd,MAAf,CAAA;;AAEA,EAAA,OAAOU,CAAC,GAAGqJ,GAAJ,IAAW,EAAE6sB,aAAa,GAAGzZ,IAAI,CAACzc,CAAD,CAAJ,CAAQu+C,MAAR,CAAe/uB,QAAjC,CAAlB,EAA8D;IAC5DxvB,CAAC,EAAA,CAAA;AACF,GAAA;;AAED,EAAA,OAAOk2B,aAAa,IAAIA,aAAa,CAACvN,UAAtC,CAAA;AACD,CAAA;;AAED,SAASq3L,uBAAT,CAAiC9yK,UAAjC,EAA6C88E,QAA7C,EAAuDnxG,GAAvD,EAA4D8mM,eAA5D,EAA6E;AAC3E;AACA,EAAA,IAAI,CAACmC,eAAe,CAACjpM,GAAD,CAApB,EAA2B;IACzBA,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,MAAAA,IAAI,EAAE,WADW;AAEjB69B,MAAAA,UAAU,EAAEA,UAFK;AAGjBlqC,MAAAA,IAAI,EAAEgnH,QAHW;AAIjB21F,MAAAA,eAAe,EAAEA,eAAAA;KAJnB,CAAA,CAAA;AAMD,GAAA;AACF,CAAA;;AAED,SAASM,sBAAT,CAAgC/yK,UAAhC,EAA4C88E,QAA5C,EAAsDnxG,GAAtD,EAA2D8mM,eAA3D,EAA4E;AAC1E;AACA,EAAA,IAAI,CAACmC,eAAe,CAACjpM,GAAD,CAApB,EAA2B;IACzBA,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,MAAAA,IAAI,EAAE,UADW;AAEjB69B,MAAAA,UAAU,EAAEA,UAFK;AAGjBlqC,MAAAA,IAAI,EAAEgnH,QAHW;AAIjB21F,MAAAA,eAAe,EAAEA,eAAAA;KAJnB,CAAA,CAAA;AAMD,GAAA;AACF;;ACrjBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASoC,YAAT,CAAsB13K,OAAtB,EAA+B;AAC5C,EAAA,IAAI0X,YAAY,GAAG1X,OAAO,CAAC2X,cAAR,CAAuB;AACxC9B,IAAAA,QAAQ,EAAE,QAAA;AAD8B,GAAvB,CAAnB,CAAA;;AAIA,EAAA,IAAI6B,YAAY,IAAIA,YAAY,CAACziD,MAAjC,EAAyC;AACvC+qC,IAAAA,OAAO,CAAC23K,YAAR,CAAqB,UAAUn1I,MAAV,EAAkB;AACrC;AACA;AACA,MAAA,KAAK,IAAI7sE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+hD,YAAY,CAACziD,MAAjC,EAAyCU,CAAC,EAA1C,EAA8C;AAC5C,QAAA,IAAI,CAAC+hD,YAAY,CAAC/hD,CAAD,CAAZ,CAAgBkiD,UAAhB,CAA2B2qB,MAAM,CAAC7pE,IAAlC,CAAL,EAA8C;AAC5C,UAAA,OAAO,KAAP,CAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,OAAO,IAAP,CAAA;KATF,CAAA,CAAA;AAWD,GAAA;AACF;;AC5DD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4BA,SAASi/M,yBAAT,CAAmCllH,UAAnC,EAA+C3vD,OAA/C,EAAwD/C,OAAxD,EAAiE;EAC/D,IAAI6oD,WAAW,GAAG,EAAlB,CAAA;AACA,EAAA,IAAIgvH,cAAc,GAAGnlH,UAAU,KAAK,gBAApC,CAAA;EACA,IAAI76C,UAAJ,CAH+D;;AAK/D7X,EAAAA,OAAO,CAAC4V,aAAR,CAAsB,QAAtB,EAAgC,UAAU++J,WAAV,EAAuB;AACrD,IAAA,IAAIkD,cAAc,IAAIhgK,UAAU,IAAI,IAApC,EAA0C;AACxC;AACA;AACA;AACA;MACA88J,WAAW,CAAC98J,UAAU,GAAG,QAAH,GAAc,UAAzB,CAAX,CAAgD9U,OAAO,CAACpqC,IAAxD,CAAA,CAAA;KALF,MAMO,IAAI+5F,UAAU,KAAK,WAAf,IAA8BA,UAAU,KAAK,eAAjD,EAAkE;MACvEiiH,WAAW,CAACjiH,UAAD,CAAX,EAAA,CAAA;AACD,KAFM,MAEA;AACLiiH,MAAAA,WAAW,CAACjiH,UAAD,CAAX,CAAwB3vD,OAAO,CAACpqC,IAAhC,CAAA,CAAA;MACAk/C,UAAU,GAAG88J,WAAW,CAAC98J,UAAZ,CAAuB9U,OAAO,CAACpqC,IAA/B,CAAb,CAAA;AACD,KAAA;;AAED,IAAA,IAAIi6M,UAAU,GAAG+B,WAAW,CAAC3wL,OAAZ,EAAjB,CAAA;AACArlB,IAAAA,MAAI,CAACi0M,UAAD,EAAa,UAAU1kK,KAAV,EAAiB;MAChC,IAAIv1C,IAAI,GAAGu1C,KAAK,CAAC9jB,GAAN,CAAU,MAAV,CAAX,CADgC;;AAGhC,MAAA,IAAIzxB,IAAI,KAAK,IAAT,IAAiBA,IAAI,KAAK,EAA9B,EAAkC;AAChC,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIm/M,cAAc,GAAGnD,WAAW,CAAC98J,UAAZ,CAAuBl/C,IAAvB,CAArB,CAAA;;AAEA,MAAA,IAAIkwF,WAAW,CAAC3mE,cAAZ,CAA2BvpB,IAA3B,CAAJ,EAAsC;AACpC;QACAkwF,WAAW,CAAClwF,IAAD,CAAX,GAAoBkwF,WAAW,CAAClwF,IAAD,CAAX,IAAqBm/M,cAAzC,CAAA;AACD,OAHD,MAGO;AACLjvH,QAAAA,WAAW,CAAClwF,IAAD,CAAX,GAAoBm/M,cAApB,CAAA;AACD,OAAA;AACF,KAfG,CAAJ,CAAA;AAgBD,GA/BD,EAL+D;;AAsC/D,EAAA,OAAOplH,UAAU,KAAK,WAAf,IAA8BA,UAAU,KAAK,eAA7C,GAA+D;AACpEzJ,IAAAA,QAAQ,EAAEJ,WAAAA;AAD0D,GAA/D,GAEH;IACFlwF,IAAI,EAAEoqC,OAAO,CAACpqC,IADZ;AAEFswF,IAAAA,QAAQ,EAAEJ,WAAAA;GAJZ,CAAA;AAMD,CAAA;;AAEM,SAASkvH,mBAAT,CAA6BziM,SAA7B,EAAwC;AAC7C;AACF;AACA;AACA;AACA;AACA;AACA;AACEA,EAAAA,SAAS,CAACqgC,cAAV,CAAyB,oBAAzB,EAA+C,qBAA/C,EAAsE0M,OAAK,CAACu1J,yBAAD,EAA4B,gBAA5B,CAA3E,CAAA,CAAA;AACAtiM,EAAAA,SAAS,CAACqgC,cAAV,CAAyB,iBAAzB,EAA4C,iBAA5C,EAA+D0M,OAAK,CAACu1J,yBAAD,EAA4B,WAA5B,CAApE,CAAA,CAAA;AACAtiM,EAAAA,SAAS,CAACqgC,cAAV,CAAyB,qBAAzB,EAAgD,qBAAhD,EAAuE0M,OAAK,CAACu1J,yBAAD,EAA4B,eAA5B,CAA5E,CAAA,CAAA;AACA;AACF;AACA;AACA;AACA;AACA;;AAEEtiM,EAAAA,SAAS,CAACqgC,cAAV,CAAyB,cAAzB,EAAyC,gBAAzC,EAA2D0M,OAAK,CAACu1J,yBAAD,EAA4B,QAA5B,CAAhE,CAAA,CAAA;AACA;AACF;AACA;AACA;AACA;AACA;;AAEEtiM,EAAAA,SAAS,CAACqgC,cAAV,CAAyB,gBAAzB,EAA2C,kBAA3C,EAA+D0M,OAAK,CAACu1J,yBAAD,EAA4B,UAA5B,CAApE,CAAA,CAAA;AACD;;ACtHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BO,SAASviM,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiCspJ,WAAjC,CAAA,CAAA;EACAn9L,SAAS,CAACksD,qBAAV,CAAgC4yI,UAAhC,CAAA,CAAA;EACA9+L,SAAS,CAACuyB,iBAAV,CAA4BvyB,SAAS,CAACwyB,QAAV,CAAmBC,SAAnB,CAA6BiwK,aAAzD,EAAwEN,YAAxE,CAAA,CAAA;AACApiM,EAAAA,SAAS,CAAC8zC,wBAAV,CAAmC,QAAnC,EAA6C,YAAY;AACvD,IAAA,OAAO,OAAP,CAAA;GADF,CAAA,CAAA;EAGA2uJ,mBAAmB,CAACziM,SAAD,CAAnB,CAAA;AACD;;ACtDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA,IAAI2iM,qBAAqB;AACzB;AACA,UAAU9hM,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC6hM,qBAAD,EAAwB9hM,MAAxB,CAAT,CAAA;;AAEA,EAAA,SAAS8hM,qBAAT,GAAiC;AAC/B,IAAA,IAAI5hM,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaizM,qBAAqB,CAACjzM,IAAnC,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;AAGE4hM,EAAAA,qBAAqB,CAAChmN,SAAtB,CAAgCimN,kBAAhC,GAAqD,UAAUC,eAAV,EAA2B;AAC9E,IAAA,IAAA,CAAKr1L,MAAL,CAAYq1L,eAAZ,GAA8BA,eAA9B,CAAA;GADF,CAAA;;EAIAF,qBAAqB,CAAChmN,SAAtB,CAAgCytC,IAAhC,GAAuC,UAAU5c,MAAV,EAAkBsgD,WAAlB,EAA+BpjC,OAA/B,EAAwC;AAC7E,IAAA,IAAIsoB,mBAAmB,GAAGC,eAAe,CAACzlC,MAAD,CAAzC,CAAA;;AAEA3M,IAAAA,MAAM,CAAClkB,SAAP,CAAiBytC,IAAjB,CAAsBppB,IAAtB,CAA2B,IAA3B,EAAiCwM,MAAjC,EAAyCsgD,WAAzC,EAAsDpjC,OAAtD,CAAA,CAAA;;AAEAymI,IAAAA,6BAA6B,CAAC,IAAD,EAAO3jJ,MAAP,EAAewlC,mBAAf,CAA7B,CAAA;GALF,CAAA;AAOA;AACF;AACA;;;EAGE2vJ,qBAAqB,CAAChmN,SAAtB,CAAgCquD,WAAhC,GAA8C,UAAUx9B,MAAV,EAAkBkd,OAAlB,EAA2B;IACvE7pB,MAAM,CAAClkB,SAAP,CAAiBquD,WAAjB,CAA6BhqC,IAA7B,CAAkC,IAAlC,EAAwCwM,MAAxC,EAAgDkd,OAAhD,CAAA,CAAA;;AAEAymI,IAAAA,6BAA6B,CAAC,IAAD,EAAO,KAAK3jJ,MAAZ,EAAoBA,MAApB,CAA7B,CAAA;GAHF,CAAA;;EAMAm1L,qBAAqB,CAACjzM,IAAtB,GAA6B,eAA7B,CAAA;EACAizM,qBAAqB,CAACrzL,aAAtB,GAAsCokB,oBAAoB,CAACypK,WAAW,CAAC7tL,aAAb,EAA4B;AACpFuzL,IAAAA,eAAe,EAAE,CADmE;AAEpFC,IAAAA,iBAAiB,EAAE,CAFiE;AAGpFC,IAAAA,aAAa,EAAE,IAHqE;AAIpFC,IAAAA,kBAAkB,EAAE,KAJgE;AAKpFC,IAAAA,aAAa,EAAE,mBALqE;AAMpFC,IAAAA,SAAS,EAAE;AACTvoF,MAAAA,UAAU,EAAE,CAAC,oBAAD,EAAuB,sBAAvB,CADH;AAETC,MAAAA,QAAQ,EAAE,CAAC,mBAAD,EAAsB,kBAAtB,CAAA;KARwE;AAUpFuoF,IAAAA,aAAa,EAAE,SAVqE;AAWpFC,IAAAA,qBAAqB,EAAE,MAX6D;AAYpFC,IAAAA,YAAY,EAAE,EAZsE;AAapFC,IAAAA,aAAa,EAAE;AACbrhN,MAAAA,KAAK,EAAE,MAAA;KAd2E;AAgBpF0qD,IAAAA,uBAAuB,EAAE,GAAA;AAhB2D,GAA5B,CAA1D,CAAA;AAkBA,EAAA,OAAOg2J,qBAAP,CAAA;AACD,CAxDD,CAwDExF,WAxDF,CAFA,CAAA;;AA4DA;;AAEA,SAAShsC,6BAAT,CAAuCkuC,WAAvC,EAAoD72M,MAApD,EAA4Dq9E,GAA5D,EAAiE;AAC/D,EAAA,IAAIsS,MAAM,GAAGknH,WAAW,CAAC1jH,SAAZ,EAAb,CAAA;AACA,EAAA,IAAIg2E,UAAU,GAAG,CAAC,CAAD,EAAI,CAAJ,CAAjB,CAAA;AACAA,EAAAA,UAAU,CAACx5E,MAAM,CAACv8C,KAAR,CAAV,GAA2B,CAA3B,CAAA;AACA0X,EAAAA,gBAAgB,CAAC9qD,MAAD,EAASq9E,GAAT,EAAc;AAC5Bn2E,IAAAA,IAAI,EAAE,KADsB;IAE5BiiK,UAAU,EAAE,CAAC,CAACA,UAAAA;AAFc,GAAd,CAAhB,CAAA;AAID;;ACrHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkCA,IAAI1jJ,KAAK,GAAGyF,OAAZ,CAAA;AACA,IAAIo9I,EAAE,GAAG,CAAC,OAAD,EAAU,QAAV,CAAT,CAAA;AACA,IAAID,EAAE,GAAG,CAAC,GAAD,EAAM,GAAN,CAAT,CAAA;;AAEA,IAAI0yC,oBAAoB;AACxB;AACA,UAAU1iM,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACyiM,oBAAD,EAAuB1iM,MAAvB,CAAT,CAAA;;AAEA,EAAA,SAAS0iM,oBAAT,GAAgC;AAC9B,IAAA,IAAIxiM,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa6zM,oBAAoB,CAAC7zM,IAAlC,CAAA;IACAqR,KAAK,CAACg+L,eAAN,GAAwB,IAAxB,CAAA;IACAh+L,KAAK,CAACyiM,aAAN,GAAsB,CAAtB,CAAA;AACA,IAAA,OAAOziM,KAAP,CAAA;AACD,GAAA;;AAEDwiM,EAAAA,oBAAoB,CAAC5mN,SAArB,CAA+BytC,IAA/B,GAAsC,YAAY;AAChDvpB,IAAAA,MAAM,CAAClkB,SAAP,CAAiBytC,IAAjB,CAAsBppB,IAAtB,CAA2B,IAA3B,CAAA,CAAA;;IAEA,IAAKgN,CAAAA,KAAL,CAAWO,GAAX,CAAe,KAAK47E,eAAL,GAAuB,IAAIl8E,KAAJ,EAAtC,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKk8E,eAAL,CAAqB57E,GAArB,CAAyB,IAAA,CAAK4wL,eAAL,EAAzB,CAAA,CAAA;;IAEA,IAAKnxL,CAAAA,KAAL,CAAWO,GAAX,CAAe,KAAKk1L,gBAAL,GAAwB,IAAIx1L,KAAJ,EAAvC,CAAA,CAAA;GAPF,CAAA;AASA;AACF;AACA;;;AAGEs1L,EAAAA,oBAAoB,CAAC5mN,SAArB,CAA+B4iN,UAA/B,GAA4C,YAAY;AACtD1+L,IAAAA,MAAM,CAAClkB,SAAP,CAAiB4iN,UAAjB,CAA4Bv+L,IAA5B,CAAiC,IAAjC,CAAA,CAAA;;IAEA,IAAKyiM,CAAAA,gBAAL,CAAsB7xL,SAAtB,EAAA,CAAA;;IAEA,IAAKu4E,CAAAA,eAAL,CAAqBzyD,cAArB,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAKyyD,eAAL,CAAqBu5G,UAArB,GAAkC,IAAlC,CAAA;GAPF,CAAA;AASA;AACF;AACA;;;AAGEH,EAAAA,oBAAoB,CAAC5mN,SAArB,CAA+B8iN,WAA/B,GAA6C,UAAUD,SAAV,EAAqBH,WAArB,EAAkC30K,OAAlC,EAA2CxxB,GAA3C,EAAgD2uL,QAAhD,EAA0D1vG,MAA1D,EAAkEwmH,gBAAlE,EAAoF;AAC/H,IAAA,IAAI54L,IAAI,GAAG,IAAX,CAD+H;;IAG/HlF,MAAM,CAAClkB,SAAP,CAAiB8iN,WAAjB,CAA6Bz+L,IAA7B,CAAkC,IAAlC,EAAwCw+L,SAAxC,EAAmDH,WAAnD,EAAgE30K,OAAhE,EAAyExxB,GAAzE,EAA8E2uL,QAA9E,EAAwF1vG,MAAxF,EAAgGwmH,gBAAhG,CAAA,CAAA;;AAEA,IAAA,IAAIgF,eAAe,GAAG,IAAKF,CAAAA,gBAA3B,CAL+H;AAM/H;;IAEA,IAAIJ,YAAY,GAAGhE,WAAW,CAACvqL,GAAZ,CAAgB,cAAhB,EAAgC,IAAhC,CAAnB,CAAA;AACA,IAAA,IAAI8uL,eAAe,GAAGv/K,SAAA,CAAeg/K,YAAf,CAA+BA,GAAAA,YAA/B,GAA8C,CAACA,YAAD,EAAeA,YAAf,CAApE,CAAA;AACAQ,IAAAA,gBAAgB,CAAC,UAAD,EAAa,CAAb,CAAhB,CAAA;AACA,IAAA,IAAIC,kBAAkB,GAAGzE,WAAW,CAACzqL,QAAZ,CAAqB,eAArB,CAAzB,CAAA;AACA+uL,IAAAA,eAAe,CAACp1L,GAAhB,CAAoB,IAAImF,MAAJ,CAAiB;AACnCrwB,MAAAA,IAAI,EAAE,UAD6B;AAEnCpC,MAAAA,KAAK,EAAE;AACL;AACA4C,QAAAA,IAAI,EAAE,OAFD;AAGL3C,QAAAA,IAAI,EAAE4iN,kBAAkB,CAAC5hJ,YAAnB,EAHD;AAILnxD,QAAAA,IAAI,EAAE+yM,kBAAkB,CAAChiJ,OAAnB,EAJD;AAKL73B,QAAAA,aAAa,EAAE,QALV;AAMLD,QAAAA,KAAK,EAAE,QAAA;OAR0B;AAUnC7W,MAAAA,MAAM,EAAE,IAAA;AAV2B,KAAjB,CAApB,CAAA,CAAA;AAYA0wL,IAAAA,gBAAgB,CAAC,UAAD,EAAa,CAAb,CAAhB,CAAA;;AAEA,IAAA,SAASA,gBAAT,CAA0BxgN,IAA1B,EAAgC0gN,OAAhC,EAAyC;AACvC,MAAA,IAAIC,iBAAiB,GAAG3gN,IAAI,GAAG,WAA/B,CAAA;MACA,IAAIyqF,IAAI,GAAGp6D,UAAA,CAAmB2rL,WAAW,CAACvqL,GAAZ,CAAgB,WAAhB,EAA6B,IAA7B,CAAA,CAAmCuqL,WAAW,CAAC1jH,SAAZ,GAAwBt4F,IAA3D,CAAA,CAAiE0gN,OAAjE,CAAnB,EAA8F;AACvG;AACA;AACAh8G,QAAAA,OAAO,EAAE1jE,MAAA,CAAYte,IAAI,CAACk+L,OAAjB,EAA0Bl+L,IAA1B,EAAgCi+L,iBAAhC,EAAmD3E,WAAnD,EAAgEnmM,GAAhE,CAAA;AAH8F,OAA9F,EAIR;AACD9b,QAAAA,CAAC,EAAE,CAACwmN,eAAe,CAAC,CAAD,CAAhB,GAAsB,CADxB;AAEDvmN,QAAAA,CAAC,EAAE,CAACumN,eAAe,CAAC,CAAD,CAAhB,GAAsB,CAFxB;AAGDx9M,QAAAA,KAAK,EAAEw9M,eAAe,CAAC,CAAD,CAHrB;QAIDv9M,MAAM,EAAEu9M,eAAe,CAAC,CAAD,CAAA;AAJtB,OAJQ,CAAX,CAAA;MAUA91H,IAAI,CAACzqF,IAAL,GAAYA,IAAZ,CAAA;MACAsgN,eAAe,CAACp1L,GAAhB,CAAoBu/D,IAApB,CAAA,CAAA;AACD,KAAA;GAxCH,CAAA;AA0CA;AACF;AACA;;;AAGEy1H,EAAAA,oBAAoB,CAAC5mN,SAArB,CAA+BijN,WAA/B,GAA6C,UAAUP,WAAV,EAAuBG,SAAvB,EAAkCr6K,OAAlC,EAA2Cm6K,aAA3C,EAA0DzX,QAA1D,EAAoE8W,gBAApE,EAAsF;AACjI,IAAA,IAAI8B,aAAa,GAAG,IAAKrB,CAAAA,gBAAL,EAApB,CAAA;AACA,IAAA,IAAIoC,SAAS,GAAGnC,WAAW,CAAC1jH,SAAZ,GAAwB//C,KAAxC,CAAA;AACA,IAAA,IAAIq+D,EAAE,GAAG62D,EAAE,CAAC0wC,SAAD,CAAX,CAAA;AACA,IAAA,IAAIxnG,EAAE,GAAG62D,EAAE,CAAC2wC,SAAD,CAAX,CAAA;AACA,IAAA,IAAIC,EAAE,GAAG3wC,EAAE,CAAC,CAAA,GAAI0wC,SAAL,CAAX,CAAA;AACA,IAAA,IAAIE,EAAE,GAAG7wC,EAAE,CAAC,CAAA,GAAI2wC,SAAL,CAAX,CAAA;AACA3Z,IAAAA,QAAQ,IAAI7tE,GAAA;IACZ,YADY,EACEymF,aADF,EACiBpB,WAAW,CAACvqL,GAAZ,CAAgB,iBAAhB,EAAmC,IAAnC,CADjB,CAAZ,CAAA;IAEA,IAAI+pL,iBAAiB,GAAGQ,WAAW,CAACvqL,GAAZ,CAAgB,mBAAhB,EAAqC,IAArC,CAAxB,CAAA;AACA,IAAA,IAAIwsL,YAAY,GAAGb,aAAa,CAACn7J,eAAd,EAAnB,CAAA;AACA,IAAA,IAAIi8J,WAAW,GAAG,CAAC,CAACD,YAAY,CAAClkN,CAAf,EAAkB,CAACkkN,YAAY,CAACjkN,CAAhC,CAAlB,CAAA;AACA,IAAA,IAAI6mN,cAAc,GAAG7/K,OAAA,CAAac,OAAb,CAArB,CAAA;AACA0iK,IAAAA,QAAQ,KAAKqc,cAAc,CAACjqG,EAAD,CAAd,GAAqB90E,OAAO,CAAC80E,EAAD,CAAP,GAAcqnG,YAAY,CAACrnG,EAAD,CAA1B,GAAiC4kG,iBAA3D,CAAR,CAAA;;IAEA,IAAIc,QAAQ,GAAG,IAAKwE,CAAAA,2BAAL,CAAiC9E,WAAjC,EAA8CC,aAA9C,EAA6D4E,cAA7D,EAA6E1C,SAA7E,EAAwFvnG,EAAxF,EAA4FwnG,EAA5F,EAAgGC,EAAhG,EAAoG1nG,EAApG,CAAf,CAAA;;AAEA,IAAA,IAAI6tF,QAAJ,EAAc;MACZ,IAAI8W,gBAAgB,KAAK,KAAzB,EAAgC;QAC9B4C,WAAW,CAACC,SAAD,CAAX,IAA0B7B,QAAQ,CAAC1lG,EAAD,CAAR,GAAe4kG,iBAAzC,CAAA;AACD,OAFD,MAEO;AACL,QAAA,IAAIxqM,MAAM,GAAGitM,YAAY,CAACrnG,EAAD,CAAZ,GAAmB4kG,iBAAhC,CAAA;AACA0C,QAAAA,WAAW,CAACC,SAAD,CAAX,IAA0BntM,MAA1B,CAAA;AACAsrM,QAAAA,QAAQ,CAAC3lG,EAAD,CAAR,IAAgB3lG,MAAhB,CAAA;AACD,OAAA;;MAEDsrM,QAAQ,CAAC1lG,EAAD,CAAR,IAAgBqnG,YAAY,CAACrnG,EAAD,CAAZ,GAAmB4kG,iBAAnC,CAAA;MACA0C,WAAW,CAAC,IAAIC,SAAL,CAAX,IAA8B7B,QAAQ,CAAC+B,EAAD,CAAR,GAAe/B,QAAQ,CAAC8B,EAAD,CAAR,GAAe,CAA9B,GAAkCH,YAAY,CAACG,EAAD,CAAZ,GAAmB,CAAnF,CAAA;AACA9B,MAAAA,QAAQ,CAAC8B,EAAD,CAAR,GAAetlN,IAAI,CAAC0iB,GAAL,CAAS8gM,QAAQ,CAAC8B,EAAD,CAAjB,EAAuBH,YAAY,CAACG,EAAD,CAAnC,CAAf,CAAA;MACA9B,QAAQ,CAAC+B,EAAD,CAAR,GAAevlN,IAAI,CAAC8iC,GAAL,CAAS0gL,QAAQ,CAAC+B,EAAD,CAAjB,EAAuBJ,YAAY,CAACI,EAAD,CAAZ,GAAmBH,WAAW,CAAC,CAAA,GAAIC,SAAL,CAArD,CAAf,CAAA;AACAf,MAAAA,aAAa,CAACrjN,CAAd,GAAkBmkN,WAAW,CAAC,CAAD,CAA7B,CAAA;AACAd,MAAAA,aAAa,CAACpjN,CAAd,GAAkBkkN,WAAW,CAAC,CAAD,CAA7B,CAAA;AACAd,MAAAA,aAAa,CAACnnL,UAAd,EAAA,CAAA;AACD,KAAA;;AAED,IAAA,OAAOqmL,QAAP,CAAA;GAnCF,CAAA;;EAsCA4D,oBAAoB,CAAC5mN,SAArB,CAA+BwnN,2BAA/B,GAA6D,UAAU9E,WAAV,EAAuBC,aAAvB,EAAsCn6K,OAAtC,EAA+Cq8K,SAA/C,EAA0DvnG,EAA1D,EAA8DwnG,EAA9D,EAAkEC,EAAlE,EAAsE1nG,EAAtE,EAA0E;AACrI,IAAA,IAAI2W,YAAY,GAAG,IAAKwuF,CAAAA,eAAL,EAAnB,CAAA;IACA,IAAIl4G,cAAc,GAAG,IAAA,CAAKkD,eAA1B,CAAA;AACA,IAAA,IAAIw5G,eAAe,GAAG,IAAKF,CAAAA,gBAA3B,CAHqI;;AAKrIzpF,IAAAA,GAAA,CAAeqlF,WAAW,CAACvqL,GAAZ,CAAgB,QAAhB,CAAf,EAA0C67F,YAA1C,EAAwD0uF,WAAW,CAACvqL,GAAZ,CAAgB,SAAhB,CAAxD,EAAoF,CAAC0sL,SAAD,GAAa,IAAb,GAAoBr8K,OAAO,CAAC/+B,KAAhH,EAAuHo7M,SAAS,GAAG,IAAH,GAAUr8K,OAAO,CAAC9+B,MAAlJ,CAAA,CAAA;IACA2zH,GAAA;IACA,YADA,EACc2pF,eADd,EAC+BtE,WAAW,CAACvqL,GAAZ,CAAgB,mBAAhB,EAAqC,IAArC,CAD/B,CAAA,CAAA;AAEA,IAAA,IAAIssL,WAAW,GAAGzwF,YAAY,CAACrrE,eAAb,EAAlB,CAAA;AACA,IAAA,IAAI8+J,cAAc,GAAGT,eAAe,CAACr+J,eAAhB,EAArB,CAAA;AACA,IAAA,IAAI++J,cAAc,GAAG,IAAKC,CAAAA,eAAL,GAAuBlD,WAAW,CAACnnG,EAAD,CAAX,GAAkB90E,OAAO,CAAC80E,EAAD,CAArE,CAVqI;;AAYrI,IAAA,IAAIonG,UAAU,GAAG,CAAC,CAACD,WAAW,CAAChkN,CAAd,EAAiB,CAACgkN,WAAW,CAAC/jN,CAA9B,CAAjB,CAZqI;AAarI;AACA;;IAEA,IAAI,CAACiiN,aAAL,EAAoB;AAClB+B,MAAAA,UAAU,CAACG,SAAD,CAAV,GAAwB7wF,YAAY,CAAC3W,EAAD,CAApC,CAAA;AACD,KAlBoI;;;AAqBrI,IAAA,IAAIuqG,YAAY,GAAG,CAAC,CAAD,EAAI,CAAJ,CAAnB,CAAA;AACA,IAAA,IAAIC,aAAa,GAAG,CAAC,CAACJ,cAAc,CAAChnN,CAAjB,EAAoB,CAACgnN,cAAc,CAAC/mN,CAApC,CAApB,CAAA;IACA,IAAI0lN,aAAa,GAAG1+K,SAAA,CAAiBg7K,WAAW,CAACvqL,GAAZ,CAAgB,eAAhB,EAAiC,IAAjC,CAAjB,EAAyDuqL,WAAW,CAACvqL,GAAZ,CAAgB,SAAhB,EAA2B,IAA3B,CAAzD,CAApB,CAvBqI;;AAyBrI,IAAA,IAAIuvL,cAAJ,EAAoB;MAClB,IAAIrB,kBAAkB,GAAG3D,WAAW,CAACvqL,GAAZ,CAAgB,oBAAhB,EAAsC,IAAtC,CAAzB,CADkB;;MAGlB,IAAIkuL,kBAAkB,KAAK,KAA3B,EAAkC;AAChCwB,QAAAA,aAAa,CAAChD,SAAD,CAAb,IAA4Br8K,OAAO,CAAC80E,EAAD,CAAP,GAAcmqG,cAAc,CAACnqG,EAAD,CAAxD,CAAA;AACD,OAFD;WAGK;QACDsqG,YAAY,CAAC/C,SAAD,CAAZ,IAA2B4C,cAAc,CAACnqG,EAAD,CAAd,GAAqB8oG,aAAhD,CAAA;AACD,OAAA;AACJ,KAlCoI;;;AAqCrIyB,IAAAA,aAAa,CAAC,CAAIhD,GAAAA,SAAL,CAAb,IAAgCJ,WAAW,CAACK,EAAD,CAAX,GAAkB,CAAlB,GAAsB2C,cAAc,CAAC3C,EAAD,CAAd,GAAqB,CAA3E,CAAA;IACA9wF,YAAY,CAACj4F,WAAb,CAAyB2oL,UAAzB,CAAA,CAAA;IACAp6G,cAAc,CAACvuE,WAAf,CAA2B6rL,YAA3B,CAAA,CAAA;AACAZ,IAAAA,eAAe,CAACjrL,WAAhB,CAA4B8rL,aAA5B,EAxCqI;AAyCrI;AACA;;AAEA,IAAA,IAAI7E,QAAQ,GAAG;AACbviN,MAAAA,CAAC,EAAE,CADU;AAEbC,MAAAA,CAAC,EAAE,CAAA;AAFU,KAAf,CA5CqI;;AAiDrIsiN,IAAAA,QAAQ,CAAC1lG,EAAD,CAAR,GAAeoqG,cAAc,GAAGl/K,OAAO,CAAC80E,EAAD,CAAV,GAAiBmnG,WAAW,CAACnnG,EAAD,CAAzD,CAAA;AACA0lG,IAAAA,QAAQ,CAAC8B,EAAD,CAAR,GAAetlN,IAAI,CAAC0iB,GAAL,CAASuiM,WAAW,CAACK,EAAD,CAApB,EAA0B2C,cAAc,CAAC3C,EAAD,CAAxC,CAAf,CAlDqI;;IAoDrI9B,QAAQ,CAAC+B,EAAD,CAAR,GAAevlN,IAAI,CAAC8iC,GAAL,CAAS,CAAT,EAAYmlL,cAAc,CAAC1C,EAAD,CAAd,GAAqB8C,aAAa,CAAC,CAAIhD,GAAAA,SAAL,CAA9C,CAAf,CAAA;AACAv6G,IAAAA,cAAc,CAACy8G,UAAf,GAA4Bv+K,OAAO,CAAC80E,EAAD,CAAnC,CAAA;;AAEA,IAAA,IAAIoqG,cAAJ,EAAoB;AAClB,MAAA,IAAI5sL,SAAS,GAAG;AACdr6B,QAAAA,CAAC,EAAE,CADW;AAEdC,QAAAA,CAAC,EAAE,CAAA;OAFL,CAAA;MAIAo6B,SAAS,CAACwiF,EAAD,CAAT,GAAgB99G,IAAI,CAAC0iB,GAAL,CAASsmB,OAAO,CAAC80E,EAAD,CAAP,GAAcmqG,cAAc,CAACnqG,EAAD,CAA5B,GAAmC8oG,aAA5C,EAA2D,CAA3D,CAAhB,CAAA;AACAtrL,MAAAA,SAAS,CAACgqL,EAAD,CAAT,GAAgB9B,QAAQ,CAAC8B,EAAD,CAAxB,CAAA;AACAx6G,MAAAA,cAAc,CAAC1wF,WAAf,CAA2B,IAAImd,MAAJ,CAAiB;AAC1CzrB,QAAAA,KAAK,EAAEwvB,SAAAA;OADkB,CAA3B,EAPkB;AAUlB;;AAEAwvE,MAAAA,cAAc,CAACy8G,UAAf,GAA4BjsL,SAAS,CAACwiF,EAAD,CAArC,CAAA;AACD,KAbD,MAaO;AACL;AACA0pG,MAAAA,eAAe,CAACx1J,SAAhB,CAA0B,UAAU5pD,KAAV,EAAiB;QACzCA,KAAK,CAACutB,IAAN,CAAW;AACTtT,UAAAA,SAAS,EAAE,IADF;AAET2U,UAAAA,MAAM,EAAE,IAAA;SAFV,CAAA,CAAA;OADF,CAAA,CAAA;AAMD,KA5EoI;;;AA+ErI,IAAA,IAAIsxL,QAAQ,GAAG,IAAA,CAAKC,YAAL,CAAkBrF,WAAlB,CAAf,CAAA;;IAEAoF,QAAQ,CAACE,SAAT,IAAsB,IAAtB,IAA8BjxL,aAAA,CAAoBi9F,YAApB,EAAkC;AAC9DvzH,MAAAA,CAAC,EAAEqnN,QAAQ,CAACG,eAAT,CAAyB,CAAzB,CAD2D;AAE9DvnN,MAAAA,CAAC,EAAEonN,QAAQ,CAACG,eAAT,CAAyB,CAAzB,CAAA;AAF2D,KAAlC;AAI9B;AACAP,IAAAA,cAAc,GAAGhF,WAAH,GAAiB,IALD,CAA9B,CAAA;;AAOA,IAAA,IAAA,CAAKwF,mBAAL,CAAyBxF,WAAzB,EAAsCoF,QAAtC,CAAA,CAAA;;AAEA,IAAA,OAAO9E,QAAP,CAAA;GA1FF,CAAA;;EA6FA4D,oBAAoB,CAAC5mN,SAArB,CAA+BsnN,OAA/B,GAAyC,UAAUtzE,EAAV,EAAc0uE,WAAd,EAA2BnmM,GAA3B,EAAgC;IACvE,IAAI2pM,eAAe,GAAG,IAAK6B,CAAAA,YAAL,CAAkBrF,WAAlB,CAAA,CAA+B1uE,EAA/B,CAAtB,CAAA;;AAEAkyE,IAAAA,eAAe,IAAI,IAAnB,IAA2B3pM,GAAG,CAACwiC,cAAJ,CAAmB;AAC5ChsC,MAAAA,IAAI,EAAE,cADsC;AAE5CmzM,MAAAA,eAAe,EAAEA,eAF2B;MAG5CiC,QAAQ,EAAEzF,WAAW,CAAC7uM,EAAAA;AAHsB,KAAnB,CAA3B,CAAA;GAHF,CAAA;;EAUA+yM,oBAAoB,CAAC5mN,SAArB,CAA+BkoN,mBAA/B,GAAqD,UAAUxF,WAAV,EAAuBoF,QAAvB,EAAiC;IACpF,IAAId,eAAe,GAAG,IAAA,CAAKF,gBAA3B,CAAA;IACAp/K,MAAA,CAAY,CAAC,UAAD,EAAa,UAAb,CAAZ,EAAsC,UAAUhhC,IAAV,EAAgB;AACpD,MAAA,IAAIK,GAAG,GAAGL,IAAI,GAAG,WAAjB,CAAA;AACA,MAAA,IAAI0hN,OAAO,GAAGN,QAAQ,CAAC/gN,GAAD,CAAR,IAAiB,IAA/B,CAAA;AACA,MAAA,IAAIoqF,IAAI,GAAG61H,eAAe,CAAC3/F,WAAhB,CAA4B3gH,IAA5B,CAAX,CAAA;;AAEA,MAAA,IAAIyqF,IAAJ,EAAU;QACRA,IAAI,CAACt/D,QAAL,CAAc,MAAd,EAAsBu2L,OAAO,GAAG1F,WAAW,CAACvqL,GAAZ,CAAgB,eAAhB,EAAiC,IAAjC,CAAH,GAA4CuqL,WAAW,CAACvqL,GAAZ,CAAgB,uBAAhB,EAAyC,IAAzC,CAAzE,CAAA,CAAA;AACAg5D,QAAAA,IAAI,CAAC56D,MAAL,GAAc6xL,OAAO,GAAG,SAAH,GAAe,SAApC,CAAA;AACD,OAAA;KARH,CAAA,CAAA;AAUA,IAAA,IAAIC,QAAQ,GAAGrB,eAAe,CAAC3/F,WAAhB,CAA4B,UAA5B,CAAf,CAAA;AACA,IAAA,IAAIi/F,aAAa,GAAG5D,WAAW,CAACvqL,GAAZ,CAAgB,eAAhB,CAApB,CAAA;AACA,IAAA,IAAI6vL,SAAS,GAAGF,QAAQ,CAACE,SAAzB,CAAA;IACA,IAAI/lL,OAAO,GAAG+lL,SAAS,IAAI,IAAb,GAAoBA,SAAS,GAAG,CAAhC,GAAoC,CAAlD,CAAA;AACA,IAAA,IAAIM,KAAK,GAAGR,QAAQ,CAACS,SAArB,CAAA;IACAF,QAAQ,IAAI/B,aAAZ,IAA6B+B,QAAQ,CAACx2L,QAAT,CAAkB,MAAlB,EAA0B6V,QAAA,CAAgB4+K,aAAhB,CAAiCA,GAAAA,aAAa,CAACn5M,OAAd,CAAsB,WAAtB,EAAmC80B,OAAO,IAAI,IAAX,GAAkB,EAAlB,GAAuBA,OAAO,GAAG,EAApE,CAAwE90B,CAAAA,OAAxE,CAAgF,SAAhF,EAA2Fm7M,KAAK,IAAI,IAAT,GAAgB,EAAhB,GAAqBA,KAAK,GAAG,EAAxH,CAAjC,GAA+JhC,aAAa,CAAC;AAClOrkL,MAAAA,OAAO,EAAEA,OADyN;AAElOqmL,MAAAA,KAAK,EAAEA,KAAAA;AAF2N,KAAD,CAAtM,CAA7B,CAAA;GAjBF,CAAA;AAsBA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGE1B,EAAAA,oBAAoB,CAAC5mN,SAArB,CAA+B+nN,YAA/B,GAA8C,UAAUrF,WAAV,EAAuB;IACnE,IAAIwD,eAAe,GAAGxD,WAAW,CAACvqL,GAAZ,CAAgB,iBAAhB,EAAmC,IAAnC,CAAtB,CAAA;AACA,IAAA,IAAI67F,YAAY,GAAG,IAAKwuF,CAAAA,eAAL,EAAnB,CAAA;AACA,IAAA,IAAIgG,iBAAiB,GAAG,IAAKh7G,CAAAA,eAAL,CAAqBu5G,UAA7C,CAAA;AACA,IAAA,IAAIlC,SAAS,GAAGnC,WAAW,CAAC1jH,SAAZ,GAAwB//C,KAAxC,CAAA;AACA,IAAA,IAAIq+D,EAAE,GAAG62D,EAAE,CAAC0wC,SAAD,CAAX,CAAA;AACA,IAAA,IAAIxnG,EAAE,GAAG62D,EAAE,CAAC2wC,SAAD,CAAX,CAAA;;AAEA,IAAA,IAAI4D,eAAe,GAAG,IAAA,CAAKC,oBAAL,CAA0BxC,eAA1B,CAAtB,CAAA;;AAEA,IAAA,IAAIj/M,QAAQ,GAAG+sH,YAAY,CAAC/sH,QAAb,EAAf,CAAA;AACA,IAAA,IAAI0hN,UAAU,GAAG1hN,QAAQ,CAACwhN,eAAD,CAAzB,CAAA;AACA,IAAA,IAAIG,SAAS,GAAG3hN,QAAQ,CAACjE,MAAzB,CAAA;AACA,IAAA,IAAI6lN,MAAM,GAAG,CAACD,SAAD,GAAa,CAAb,GAAiB,CAA9B,CAAA;AACA,IAAA,IAAI7/I,MAAM,GAAG;MACXk/I,eAAe,EAAE,CAACj0F,YAAY,CAACvzH,CAAd,EAAiBuzH,YAAY,CAACtzH,CAA9B,CADN;AAEX6nN,MAAAA,SAAS,EAAEM,MAFA;MAGXb,SAAS,EAAEa,MAAM,GAAG,CAHT;AAIXC,MAAAA,iBAAiB,EAAE,IAJR;AAKXC,MAAAA,iBAAiB,EAAE,IAAA;KALrB,CAAA;;IAQA,IAAI,CAACJ,UAAL,EAAiB;AACf,MAAA,OAAO5/I,MAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAIigJ,cAAc,GAAGC,WAAW,CAACN,UAAD,CAAhC,CAAA;IACA5/I,MAAM,CAACk/I,eAAP,CAAuBpD,SAAvB,CAAA,GAAoC,CAACmE,cAAc,CAAC1tM,CAApD,CA3BmE;AA4BnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEA,KAAK,IAAI5X,CAAC,GAAG+kN,eAAe,GAAG,CAA1B,EAA6BS,gBAAgB,GAAGF,cAAhD,EAAgEG,cAAc,GAAGH,cAAjF,EAAiGI,YAAY,GAAG,IAArH,EAA2H1lN,CAAC,IAAIklN,SAAhI,EAA2I,EAAEllN,CAA7I,EAAgJ;AAC9I0lN,MAAAA,YAAY,GAAGH,WAAW,CAAChiN,QAAQ,CAACvD,CAAD,CAAT,CAA1B,CAAA;;MAEA;MACA,CAAC0lN,YAAD,IAAiBD,cAAc,CAAC7lN,CAAf,GAAmB4lN,gBAAgB,CAAC5tM,CAAjB,GAAqBktM,iBAAzD;AACA;MACAY,YAAY,IAAI,CAAC1hM,SAAS,CAAC0hM,YAAD,EAAeF,gBAAgB,CAAC5tM,CAAhC,CAH1B,EAG8D;AAC5D,QAAA,IAAI6tM,cAAc,CAACzlN,CAAf,GAAmBwlN,gBAAgB,CAACxlN,CAAxC,EAA2C;AACzCwlN,UAAAA,gBAAgB,GAAGC,cAAnB,CAAA;AACD,SAFD,MAEO;AACL;AACAD,UAAAA,gBAAgB,GAAGE,YAAnB,CAAA;AACD,SAAA;;AAED,QAAA,IAAIF,gBAAJ,EAAsB;AACpB,UAAA,IAAIngJ,MAAM,CAACggJ,iBAAP,IAA4B,IAAhC,EAAsC;AACpChgJ,YAAAA,MAAM,CAACggJ,iBAAP,GAA2BG,gBAAgB,CAACxlN,CAA5C,CAAA;AACD,WAAA;;UAED,EAAEqlE,MAAM,CAACw/I,SAAT,CAAA;AACD,SAAA;AACF,OAAA;;AAEDY,MAAAA,cAAc,GAAGC,YAAjB,CAAA;AACD,KAAA;;IAED,KAAK,IAAI1lN,CAAC,GAAG+kN,eAAe,GAAG,CAA1B,EAA6BS,gBAAgB,GAAGF,cAAhD,EAAgEG,cAAc,GAAGH,cAAjF,EAAiGI,YAAY,GAAG,IAArH,EAA2H1lN,CAAC,IAAI,CAAC,CAAjI,EAAoI,EAAEA,CAAtI,EAAyI;AACvI0lN,MAAAA,YAAY,GAAGH,WAAW,CAAChiN,QAAQ,CAACvD,CAAD,CAAT,CAA1B,CAAA;;MAEA;AACA;AACA,MAAA,CAAC,CAAC0lN,YAAD,IAAiB,CAAC1hM,SAAS,CAACyhM,cAAD,EAAiBC,YAAY,CAAC9tM,CAA9B,CAA5B;AACA4tM,MAAAA,gBAAgB,CAACxlN,CAAjB,GAAqBylN,cAAc,CAACzlN,CAHpC,EAGuC;AACrCylN,QAAAA,cAAc,GAAGD,gBAAjB,CAAA;;AAEA,QAAA,IAAIngJ,MAAM,CAAC+/I,iBAAP,IAA4B,IAAhC,EAAsC;AACpC//I,UAAAA,MAAM,CAAC+/I,iBAAP,GAA2BI,gBAAgB,CAACxlN,CAA5C,CAAA;AACD,SAAA;;QAED,EAAEqlE,MAAM,CAACw/I,SAAT,CAAA;QACA,EAAEx/I,MAAM,CAACi/I,SAAT,CAAA;AACD,OAAA;;AAEDkB,MAAAA,gBAAgB,GAAGE,YAAnB,CAAA;AACD,KAAA;;AAED,IAAA,OAAOrgJ,MAAP,CAAA;;IAEA,SAASkgJ,WAAT,CAAqBhkN,EAArB,EAAyB;AACvB,MAAA,IAAIA,EAAJ,EAAQ;AACN,QAAA,IAAIokN,QAAQ,GAAGpkN,EAAE,CAAC0jD,eAAH,EAAf,CAAA;QACA,IAAIh7B,KAAK,GAAG07L,QAAQ,CAAChsG,EAAD,CAAR,GAAep4G,EAAE,CAACo4G,EAAD,CAA7B,CAAA;QACA,OAAO;AACL/hG,UAAAA,CAAC,EAAEqS,KADE;AAELrqB,UAAAA,CAAC,EAAEqqB,KAAK,GAAG07L,QAAQ,CAAC/rG,EAAD,CAFd;UAGL55G,CAAC,EAAEuB,EAAE,CAACu/M,iBAAAA;SAHR,CAAA;AAKD,OAAA;AACF,KAAA;;AAED,IAAA,SAAS98L,SAAT,CAAmB4hM,QAAnB,EAA6BC,QAA7B,EAAuC;AACrC,MAAA,OAAOD,QAAQ,CAAChmN,CAAT,IAAcimN,QAAd,IAA0BD,QAAQ,CAAChuM,CAAT,IAAciuM,QAAQ,GAAGf,iBAA1D,CAAA;AACD,KAAA;GArGH,CAAA;;AAwGA5B,EAAAA,oBAAoB,CAAC5mN,SAArB,CAA+B0oN,oBAA/B,GAAsD,UAAU3R,eAAV,EAA2B;IAC/E,IAAI,CAAC,IAAK4Q,CAAAA,eAAV,EAA2B;AACzB,MAAA,OAAO,CAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAI1oK,KAAJ,CAAA;AACA,IAAA,IAAI+0E,YAAY,GAAG,IAAKwuF,CAAAA,eAAL,EAAnB,CAAA;AACA,IAAA,IAAIgH,YAAJ,CAAA;AACAx1F,IAAAA,YAAY,CAACxiE,SAAb,CAAuB,UAAU5pD,KAAV,EAAiB8nB,GAAjB,EAAsB;AAC3C,MAAA,IAAI+5L,aAAa,GAAG7hN,KAAK,CAAC48M,iBAA1B,CAD2C;AAE3C;AACA;AACA;AACA;;AAEA,MAAA,IAAIgF,YAAY,IAAI,IAAhB,IAAwBC,aAAa,IAAI,IAA7C,EAAmD;AACjDD,QAAAA,YAAY,GAAG95L,GAAf,CAAA;AACD,OAAA;;MAED,IAAI+5L,aAAa,KAAK1S,eAAtB,EAAuC;AACrC93J,QAAAA,KAAK,GAAGvvB,GAAR,CAAA;AACD,OAAA;KAbH,CAAA,CAAA;AAeA,IAAA,OAAOuvB,KAAK,IAAI,IAAT,GAAgBA,KAAhB,GAAwBuqK,YAA/B,CAAA;GAvBF,CAAA;;EA0BA5C,oBAAoB,CAAC7zM,IAArB,GAA4B,eAA5B,CAAA;AACA,EAAA,OAAO6zM,oBAAP,CAAA;AACD,CAxYD,CAwYEzE,UAxYF,CAFA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASuH,6BAAT,CAAuCrmM,SAAvC,EAAkD;AAC/D;AACF;AACA;AACA;AACA;AACA;EACEA,SAAS,CAACqgC,cAAV,CAAyB,cAAzB,EAAyC,cAAzC,EAAyD,UAAU5S,OAAV,EAAmB/C,OAAnB,EAA4B;AACnF,IAAA,IAAIm4K,eAAe,GAAGp1K,OAAO,CAACo1K,eAA9B,CAAA;AACAA,IAAAA,eAAe,IAAI,IAAnB,IAA2Bn4K,OAAO,CAAC4V,aAAR,CAAsB;AAC/CC,MAAAA,QAAQ,EAAE,QADqC;AAE/C8kC,MAAAA,OAAO,EAAE,QAFsC;AAG/C7kC,MAAAA,KAAK,EAAE/S,OAAAA;KAHkB,EAIxB,UAAU4xK,WAAV,EAAuB;MACxBA,WAAW,CAACuD,kBAAZ,CAA+BC,eAA/B,CAAA,CAAA;AACD,KAN0B,CAA3B,CAAA;GAFF,CAAA,CAAA;AAUD;;AC3DD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BO,SAAS9iM,SAAT,CAAiBC,SAAjB,EAA4B;EACjCqsD,GAAG,CAACi6I,SAAD,CAAH,CAAA;EACAtmM,SAAS,CAAC6zC,sBAAV,CAAiC8uJ,qBAAjC,CAAA,CAAA;EACA3iM,SAAS,CAACksD,qBAAV,CAAgCq3I,oBAAhC,CAAA,CAAA;EACA8C,6BAA6B,CAACrmM,SAAD,CAA7B,CAAA;AACD;;ACpDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAASD,SAAT,CAAiBC,SAAjB,EAA4B;EACjCqsD,GAAG,CAACi6I,SAAD,CAAH,CAAA;EACAj6I,GAAG,CAACk6I,SAAD,CAAH,CAAA;AACD;;AChDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,IAAIC,eAAe;AACnB;AACA,UAAU3lM,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC0lM,eAAD,EAAkB3lM,MAAlB,CAAT,CAAA;;AAEA,EAAA,SAAS2lM,eAAT,GAA2B;AACzB,IAAA,IAAIzlM,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa82M,eAAe,CAAC92M,IAA7B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDylM,eAAe,CAAC92M,IAAhB,GAAuB,iBAAvB,CAAA;EACA82M,eAAe,CAACl3L,aAAhB,GAAgCokB,oBAAoB,CAAC0rI,aAAa,CAAC9vJ,aAAf,EAA8B;AAChFm3L,IAAAA,QAAQ,EAAE,KADsE;AAEhFC,IAAAA,QAAQ,EAAE,KAFsE;AAGhFlyI,IAAAA,gBAAgB,EAAE,IAH8D;AAIhFC,IAAAA,eAAe,EAAE,IAJ+D;AAKhFC,IAAAA,gBAAgB,EAAE,KAL8D;AAMhFC,IAAAA,uBAAuB,EAAE,IAAA;AANuD,GAA9B,CAApD,CAAA;AAQA,EAAA,OAAO6xI,eAAP,CAAA;AACD,CApBD,CAoBEpnC,aApBF,CAFA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAmCA,IAAIr1G,OAAK,GAAGC,SAAS,EAArB,CAAA;AACO,SAAS28I,2BAAT,CAAqCztM,GAArC,EAA0C8kK,aAA1C,EAAyD4oC,QAAzD,EAAmE;EACxE78I,OAAK,CAAC7wD,GAAD,CAAL,CAAW2tM,iBAAX,CAA6Bx9M,IAA7B,CAAkC,UAAUy9M,cAAV,EAA0B;IAC1D,IAAIC,MAAM,GAAGD,cAAc,CAACE,eAAf,CAA+BlyL,GAA/B,CAAmCkpJ,aAAa,CAACp5F,GAAjD,CAAb,CAAA;;AAEA,IAAA,IAAImiI,MAAJ,EAAY;MACVA,MAAM,CAACH,QAAP,GAAkBA,QAAlB,CAAA;AACD,KAAA;GALH,CAAA,CAAA;AAOD,CAAA;AACM,SAASK,6BAAT,CAAuC/tM,GAAvC,EAA4C8kK,aAA5C,EAA2D;AAChE,EAAA,IAAI6oC,iBAAiB,GAAG98I,OAAK,CAAC7wD,GAAD,CAAL,CAAW2tM,iBAAnC,CAAA;AACA,EAAA,IAAIK,cAAc,GAAGL,iBAAiB,CAAC/hN,IAAlB,EAArB,CAAA;;AAEA,EAAA,KAAK,IAAIzE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6mN,cAAc,CAACvnN,MAAnC,EAA2CU,CAAC,EAA5C,EAAgD;AAC9C,IAAA,IAAIkmE,WAAW,GAAG2gJ,cAAc,CAAC7mN,CAAD,CAAhC,CAAA;AACA,IAAA,IAAIymN,cAAc,GAAGD,iBAAiB,CAAC/xL,GAAlB,CAAsByxC,WAAtB,CAArB,CAAA;AACA,IAAA,IAAIygJ,eAAe,GAAGF,cAAc,CAACE,eAArC,CAAA;;AAEA,IAAA,IAAIA,eAAJ,EAAqB;AACnB,MAAA,IAAIG,KAAK,GAAGnpC,aAAa,CAACp5F,GAA1B,CAAA;AACA,MAAA,IAAImiI,MAAM,GAAGC,eAAe,CAAClyL,GAAhB,CAAoBqyL,KAApB,CAAb,CAAA;;AAEA,MAAA,IAAIJ,MAAJ,EAAY;QACVC,eAAe,CAAC/lI,SAAhB,CAA0BkmI,KAA1B,CAAA,CAAA;;AAEA,QAAA,IAAI,CAACH,eAAe,CAACliN,IAAhB,EAAA,CAAuBnF,MAA5B,EAAoC;AAClCynN,UAAAA,qBAAqB,CAACP,iBAAD,EAAoBC,cAApB,CAArB,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;AACF,GAAA;AACF,CAAA;;AAED,SAASM,qBAAT,CAA+BP,iBAA/B,EAAkDC,cAAlD,EAAkE;AAChE,EAAA,IAAIA,cAAJ,EAAoB;AAClBD,IAAAA,iBAAiB,CAAC5lI,SAAlB,CAA4B6lI,cAAc,CAACluK,KAAf,CAAqBgsC,GAAjD,CAAA,CAAA;AACA,IAAA,IAAIrO,UAAU,GAAGuwI,cAAc,CAACvwI,UAAhC,CAAA;AACAA,IAAAA,UAAU,IAAIA,UAAU,CAACh3D,OAAX,EAAd,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAS8nM,oBAAT,CAA8BnuM,GAA9B,EAAmCwtD,aAAnC,EAAkD;AAChD;AACA,EAAA,IAAIogJ,cAAc,GAAG;AACnBluK,IAAAA,KAAK,EAAE8tB,aADY;AAEnB4gJ,IAAAA,aAAa,EAAEv6J,OAAK,CAACu6J,aAAD,EAAgB5gJ,aAAhB,CAFD;AAGnBhrB,IAAAA,cAAc,EAAEqR,OAAK,CAACrR,cAAD,EAAiBxiC,GAAjB,CAHF;AAInB8tM,IAAAA,eAAe,EAAE,IAJE;AAKnBzwI,IAAAA,UAAU,EAAE,IAAA;AALO,GAArB,CAFgD;AAShD;;AAEA,EAAA,IAAIA,UAAU,GAAGuwI,cAAc,CAACvwI,UAAf,GAA4B,IAAIhD,cAAJ,CAAmBr6D,GAAG,CAACghC,KAAJ,EAAnB,CAA7C,CAAA;EACA7wC,MAAI,CAAC,CAAC,KAAD,EAAQ,MAAR,EAAgB,YAAhB,CAAD,EAAgC,UAAUmtE,SAAV,EAAqB;AACvDD,IAAAA,UAAU,CAACp8B,EAAX,CAAcq8B,SAAd,EAAyB,UAAU92B,KAAV,EAAiB;MACxC,IAAIgqH,KAAK,GAAG,EAAZ,CAAA;AACAo9C,MAAAA,cAAc,CAACE,eAAf,CAA+B39M,IAA/B,CAAoC,UAAU09M,MAAV,EAAkB;AACpD;AACA;QACA,IAAI,CAACrnK,KAAK,CAAC21B,mBAAN,CAA0B0xI,MAAM,CAACnuK,KAAP,CAAaprB,MAAvC,CAAL,EAAqD;AACnD,UAAA,OAAA;AACD,SAAA;;QAED,IAAI1N,MAAM,GAAG,CAACinM,MAAM,CAACH,QAAP,IAAmB,EAApB,EAAwBpwI,SAAxB,CAAb,CAAA;QACA,IAAI5tC,KAAK,GAAG9oB,MAAM,IAAIA,MAAM,CAACinM,MAAM,CAACQ,mBAAR,EAA6BT,cAAc,CAACluK,KAAf,CAAqB2H,QAAlD,EAA4DumK,cAAc,CAACvwI,UAA3E,EAAuF72B,KAAvF,CAA5B,CAAA;AACA,QAAA,CAACqnK,MAAM,CAACnuK,KAAP,CAAa9jB,GAAb,CAAiB,UAAjB,EAA6B,IAA7B,CAAD,IAAuC8T,KAAvC,IAAgD8gI,KAAK,CAAChpK,IAAN,CAAW;AACzD0wL,UAAAA,UAAU,EAAE21B,MAAM,CAACnuK,KAAP,CAAapoC,EADgC;AAEzD8Z,UAAAA,KAAK,EAAEse,KAAK,CAAC,CAAD,CAF6C;UAGzD/O,GAAG,EAAE+O,KAAK,CAAC,CAAD,CAAA;AAH+C,SAAX,CAAhD,CAAA;OATF,CAAA,CAAA;MAeA8gI,KAAK,CAAC/pK,MAAN,IAAgBmnN,cAAc,CAACprK,cAAf,CAA8BguH,KAA9B,CAAhB,CAAA;KAjBF,CAAA,CAAA;AAmBD,GApBG,CAAJ,CAAA;AAqBA,EAAA,OAAOo9C,cAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASprK,cAAT,CAAwBxiC,GAAxB,EAA6BwwJ,KAA7B,EAAoC;AAClC,EAAA,IAAI,CAACxwJ,GAAG,CAAC0lL,UAAJ,EAAL,EAAuB;IACrB1lL,GAAG,CAACwiC,cAAJ,CAAmB;AACjBhsC,MAAAA,IAAI,EAAE,UADW;AAEjBnG,MAAAA,SAAS,EAAE;AACTS,QAAAA,MAAM,EAAE,UADC;AAET0kC,QAAAA,QAAQ,EAAE,GAAA;OAJK;AAMjBg7H,MAAAA,KAAK,EAAEA,KAAAA;KANT,CAAA,CAAA;AAQD,GAAA;AACF,CAAA;;AAED,SAAS49C,aAAT,CAAuB5gJ,aAAvB,EAAsCzmE,CAAtC,EAAyC7C,CAAzC,EAA4CC,CAA5C,EAA+C;EAC7C,OAAOqpE,aAAa,CAACh5C,gBAAd,CAA+B47B,YAA/B,CAA4C,CAAClsD,CAAD,EAAIC,CAAJ,CAA5C,CAAP,CAAA;AACD,CAAA;AACD;AACA;AACA;;;AAGA,SAASmqN,qBAAT,CAA+BR,eAA/B,EAAgD;EAC9C,IAAI3yI,WAAJ,CAD8C;AAE9C;;EAEA,IAAIz0D,MAAM,GAAG,OAAb,CAAA;AACA,EAAA,IAAI6nM,YAAY,GAAG;AACjB,IAAA,WAAA,EAAa,CADI;AAEjB,IAAA,WAAA,EAAa,CAFI;AAGjB,IAAA,YAAA,EAAc,CAHG;AAIjB,IAAA,gBAAA,EAAkB,CAAC,CAAA;GAJrB,CAAA;EAMA,IAAI9yI,uBAAuB,GAAG,IAA9B,CAAA;AACAqyI,EAAAA,eAAe,CAAC39M,IAAhB,CAAqB,UAAUq+M,YAAV,EAAwB;AAC3C,IAAA,IAAI1pC,aAAa,GAAG0pC,YAAY,CAAC9uK,KAAjC,CAAA;IACA,IAAI+uK,OAAO,GAAG3pC,aAAa,CAAClpJ,GAAd,CAAkB,UAAlB,EAA8B,IAA9B,CAAsC,GAAA,KAAtC,GAA8CkpJ,aAAa,CAAClpJ,GAAd,CAAkB,UAAlB,EAA8B,IAA9B,CAAA,GAAsC,MAAtC,GAA+C,IAA3G,CAAA;;AAEA,IAAA,IAAI2yL,YAAY,CAAC7nM,MAAM,GAAG+nM,OAAV,CAAZ,GAAiCF,YAAY,CAAC7nM,MAAM,GAAGy0D,WAAV,CAAjD,EAAyE;AACvEA,MAAAA,WAAW,GAAGszI,OAAd,CAAA;AACD,KAN0C;AAO3C;;;IAGAhzI,uBAAuB,GAAGA,uBAAuB,IAAIqpG,aAAa,CAAClpJ,GAAd,CAAkB,yBAAlB,EAA6C,IAA7C,CAArD,CAAA;GAVF,CAAA,CAAA;EAYA,OAAO;AACLu/C,IAAAA,WAAW,EAAEA,WADR;AAELtmD,IAAAA,GAAG,EAAE;AACH;AACA;AACA;AACAymD,MAAAA,gBAAgB,EAAE,IAJf;AAKHC,MAAAA,eAAe,EAAE,IALd;AAMHC,MAAAA,gBAAgB,EAAE,IANf;MAOHC,uBAAuB,EAAE,CAAC,CAACA,uBAAAA;AAPxB,KAAA;GAFP,CAAA;AAYD,CAAA;;AAEM,SAASizI,4BAAT,CAAsC5nM,SAAtC,EAAiD;AACtDA,EAAAA,SAAS,CAACuyB,iBAAV,CAA4BvyB,SAAS,CAACwyB,QAAV,CAAmBC,SAAnB,CAA6B8zI,MAAzD,EAAiE,UAAU77I,OAAV,EAAmBxxB,GAAnB,EAAwB;AACvF,IAAA,IAAI2uM,QAAQ,GAAG99I,OAAK,CAAC7wD,GAAD,CAApB,CAAA;AACA,IAAA,IAAI2tM,iBAAiB,GAAGgB,QAAQ,CAAChB,iBAAT,KAA+BgB,QAAQ,CAAChB,iBAAT,GAA6B9nI,aAAa,EAAzE,CAAxB,CAAA;AACA8nI,IAAAA,iBAAiB,CAACx9M,IAAlB,CAAuB,UAAUy9M,cAAV,EAA0B;AAC/C;AACA;MACAA,cAAc,CAACE,eAAf,GAAiC,IAAjC,CAAA;KAHF,CAAA,CAAA;IAKAt8K,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,MAAAA,QAAQ,EAAE,UADU;AAEpB8kC,MAAAA,OAAO,EAAE,QAAA;KAFX,EAGG,UAAU24F,aAAV,EAAyB;AAC1B,MAAA,IAAI8pC,mBAAmB,GAAGppC,6BAA6B,CAACV,aAAD,CAAvD,CAAA;AACA30K,MAAAA,MAAI,CAACy+M,mBAAmB,CAAClpC,QAArB,EAA+B,UAAUmpC,cAAV,EAA0B;AAC3D,QAAA,IAAIjpC,WAAW,GAAGipC,cAAc,CAACnvK,KAAf,CAAqBgsC,GAAvC,CAAA;QACA,IAAIkiI,cAAc,GAAGD,iBAAiB,CAAC/xL,GAAlB,CAAsBgqJ,WAAtB,CAAsC+nC,IAAAA,iBAAiB,CAACj4J,GAAlB,CAAsBkwH,WAAtB,EAAmCuoC,oBAAoB,CAACnuM,GAAD,EAAM6uM,cAAc,CAACnvK,KAArB,CAAvD,CAA3D,CAAA;AACA,QAAA,IAAIouK,eAAe,GAAGF,cAAc,CAACE,eAAf,KAAmCF,cAAc,CAACE,eAAf,GAAiCjoI,aAAa,EAAjF,CAAtB,CAH2D;;AAK3DioI,QAAAA,eAAe,CAACp4J,GAAhB,CAAoBovH,aAAa,CAACp5F,GAAlC,EAAuC;AACrC2iI,UAAAA,mBAAmB,EAAEQ,cADgB;AAErCnvK,UAAAA,KAAK,EAAEolI,aAF8B;AAGrC4oC,UAAAA,QAAQ,EAAE,IAAA;SAHZ,CAAA,CAAA;AAKD,OAVG,CAAJ,CAAA;AAWD,KAhBD,EARuF;AAyBvF;;AAEAC,IAAAA,iBAAiB,CAACx9M,IAAlB,CAAuB,UAAUy9M,cAAV,EAA0B;AAC/C,MAAA,IAAIvwI,UAAU,GAAGuwI,cAAc,CAACvwI,UAAhC,CAAA;AACA,MAAA,IAAIyxI,WAAJ,CAAA;AACA,MAAA,IAAIhB,eAAe,GAAGF,cAAc,CAACE,eAArC,CAAA;;AAEA,MAAA,IAAIA,eAAJ,EAAqB;AACnB,QAAA,IAAIiB,UAAU,GAAGjB,eAAe,CAACliN,IAAhB,EAAA,CAAuB,CAAvB,CAAjB,CAAA;;QAEA,IAAImjN,UAAU,IAAI,IAAlB,EAAwB;AACtBD,UAAAA,WAAW,GAAGhB,eAAe,CAAClyL,GAAhB,CAAoBmzL,UAApB,CAAd,CAAA;AACD,SAAA;AACF,OAAA;;MAED,IAAI,CAACD,WAAL,EAAkB;AAChBZ,QAAAA,qBAAqB,CAACP,iBAAD,EAAoBC,cAApB,CAArB,CAAA;AACA,QAAA,OAAA;AACD,OAAA;;AAED,MAAA,IAAIoB,gBAAgB,GAAGV,qBAAqB,CAACR,eAAD,CAA5C,CAAA;MACAzwI,UAAU,CAACnC,MAAX,CAAkB8zI,gBAAgB,CAAC7zI,WAAnC,EAAgD6zI,gBAAgB,CAACn6L,GAAjE,CAAA,CAAA;AACAwoD,MAAAA,UAAU,CAACvB,iBAAX,CAA6B8xI,cAAc,CAACQ,aAA5C,CAAA,CAAA;AACA5lD,MAAAA,cAAA,CAA4BolD,cAA5B,EAA4C,gBAA5C,EAA8DkB,WAAW,CAACpvK,KAAZ,CAAkB9jB,GAAlB,CAAsB,UAAtB,EAAkC,IAAlC,CAA9D,EAAuG,SAAvG,CAAA,CAAA;KArBF,CAAA,CAAA;GA3BF,CAAA,CAAA;AAmDD;;ACrPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,IAAIqzL,cAAc;AAClB;AACA,UAAUtnM,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACqnM,cAAD,EAAiBtnM,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAASsnM,cAAT,GAA0B;AACxB,IAAA,IAAIpnM,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;IAEAygB,KAAK,CAACrR,IAAN,GAAa,iBAAb,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDonM,cAAc,CAACxrN,SAAf,CAAyB8tC,MAAzB,GAAkC,UAAUuzI,aAAV,EAAyBtzI,OAAzB,EAAkCxxB,GAAlC,EAAuC;IACvE2H,MAAM,CAAClkB,SAAP,CAAiB8tC,MAAjB,CAAwBpd,KAAxB,CAA8B,IAA9B,EAAoC/sB,SAApC,CAAA,CAAA;;AAEA,IAAA,IAAI09K,aAAa,CAACkD,QAAd,EAAJ,EAA8B;AAC5B,MAAA,IAAA,CAAKpqI,MAAL,EAAA,CAAA;;AAEA,MAAA,OAAA;AACD,KAPsE;AAQvE;AACA;;;AAGA,IAAA,IAAA,CAAKlO,KAAL,GAAao1I,aAAa,CAAC0D,eAAd,EAAb,CAZuE;;AAcvE0mC,IAAAA,2BAAA,CAAkClvM,GAAlC,EAAuC8kK,aAAvC,EAAsD;MACpDqqC,GAAG,EAAE30I,MAAI,CAAC40I,gBAAgB,CAACD,GAAlB,EAAuB,IAAvB,CAD2C;MAEpDhxI,IAAI,EAAE3D,MAAI,CAAC40I,gBAAgB,CAACjxI,IAAlB,EAAwB,IAAxB,CAF0C;AAGpDkxI,MAAAA,UAAU,EAAE70I,MAAI,CAAC40I,gBAAgB,CAACC,UAAlB,EAA8B,IAA9B,CAAA;KAHlB,CAAA,CAAA;GAdF,CAAA;;AAqBAJ,EAAAA,cAAc,CAACxrN,SAAf,CAAyB4iB,OAAzB,GAAmC,YAAY;AAC7C,IAAA,IAAA,CAAKu3B,MAAL,EAAA,CAAA;;IAEAj2B,MAAM,CAAClkB,SAAP,CAAiB4iB,OAAjB,CAAyB8N,KAAzB,CAA+B,IAA/B,EAAqC/sB,SAArC,CAAA,CAAA;GAHF,CAAA;;AAMA6nN,EAAAA,cAAc,CAACxrN,SAAf,CAAyBm6C,MAAzB,GAAkC,YAAY;AAC5CsxK,IAAAA,6BAAA,CAAoC,KAAKlvM,GAAzC,EAA8C,KAAK8kK,aAAnD,CAAA,CAAA;IACA,IAAKp1I,CAAAA,KAAL,GAAa,IAAb,CAAA;GAFF,CAAA;;EAKAu/K,cAAc,CAACz4M,IAAf,GAAsB,iBAAtB,CAAA;AACA,EAAA,OAAOy4M,cAAP,CAAA;AACD,CA5CD,CA4CE5lC,YA5CF,CAFA,CAAA;;AAgDA,IAAI+lC,gBAAgB,GAAG;EACrBjxI,IAAI,EAAE,cAAU0nG,YAAV,EAAwBnW,gBAAxB,EAA0CryF,UAA1C,EAAsDt2E,CAAtD,EAAyD;IAC7D,IAAIuoN,SAAS,GAAG,IAAA,CAAK5/K,KAArB,CAAA;AACA,IAAA,IAAIA,KAAK,GAAG4/K,SAAS,CAAC9iM,KAAV,EAAZ,CAF6D;;AAI7D,IAAA,IAAIi3B,SAAS,GAAGoiI,YAAY,CAACxnD,UAAb,CAAwB,CAAxB,CAAhB,CAAA;;IAEA,IAAI,CAAC56E,SAAL,EAAgB;AACd,MAAA,OAAA;AACD,KAAA;;IAED,IAAI8rK,aAAa,GAAGC,gBAAgB,CAAC9/C,gBAAD,CAAhB,CAAmC,IAAnC,EAAyC,CAAC3oK,CAAC,CAACyI,OAAH,EAAYzI,CAAC,CAAC0I,OAAd,CAAzC,EAAiEg0C,SAAjE,EAA4E45B,UAA5E,EAAwFwoG,YAAxF,CAApB,CAAA;IACA,IAAI4pC,YAAY,GAAG,CAACF,aAAa,CAACG,MAAd,GAAuB,CAAvB,GAA2BH,aAAa,CAACI,UAAd,GAA2BJ,aAAa,CAACK,WAAzC,GAAuDL,aAAa,CAACj2I,KAAhG,GAAwGi2I,aAAa,CAACj2I,KAAd,GAAsBi2I,aAAa,CAACI,UAA7I,IAA2JJ,aAAa,CAACK,WAAzK,IAAwLlgL,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAxM,CAA+MA,GAAAA,KAAK,CAAC,CAAD,CAAvO,CAAA;AACA,IAAA,IAAI3lB,KAAK,GAAG9mB,IAAI,CAAC0iB,GAAL,CAAS,CAAI5e,GAAAA,CAAC,CAACgjB,KAAf,EAAsB,CAAtB,CAAZ,CAAA;AACA2lB,IAAAA,KAAK,CAAC,CAAD,CAAL,GAAW,CAACA,KAAK,CAAC,CAAD,CAAL,GAAW+/K,YAAZ,IAA4B1lM,KAA5B,GAAoC0lM,YAA/C,CAAA;AACA//K,IAAAA,KAAK,CAAC,CAAD,CAAL,GAAW,CAACA,KAAK,CAAC,CAAD,CAAL,GAAW+/K,YAAZ,IAA4B1lM,KAA5B,GAAoC0lM,YAA/C,CAd6D;;IAgB7D,IAAI1jC,UAAU,GAAG,IAAKjH,CAAAA,aAAL,CAAmB4D,2BAAnB,EAAA,CAAiDqB,aAAjD,EAAjB,CAAA;IACA/qD,UAAU,CAAC,CAAD,EAAItvF,KAAJ,EAAW,CAAC,CAAD,EAAI,GAAJ,CAAX,EAAqB,CAArB,EAAwBq8I,UAAU,CAAC5sD,OAAnC,EAA4C4sD,UAAU,CAAC3sD,OAAvD,CAAV,CAAA;IACA,IAAK1vF,CAAAA,KAAL,GAAaA,KAAb,CAAA;;AAEA,IAAA,IAAI4/K,SAAS,CAAC,CAAD,CAAT,KAAiB5/K,KAAK,CAAC,CAAD,CAAtB,IAA6B4/K,SAAS,CAAC,CAAD,CAAT,KAAiB5/K,KAAK,CAAC,CAAD,CAAvD,EAA4D;AAC1D,MAAA,OAAOA,KAAP,CAAA;AACD,KAAA;GAvBkB;AAyBrBy/K,EAAAA,GAAG,EAAEU,SAAS,CAAC,UAAUngL,KAAV,EAAiB+T,SAAjB,EAA4BoiI,YAA5B,EAA0CnW,gBAA1C,EAA4DryF,UAA5D,EAAwEt2E,CAAxE,EAA2E;AACxF,IAAA,IAAIwoN,aAAa,GAAGC,gBAAgB,CAAC9/C,gBAAD,CAAhB,CAAmC,CAAC3oK,CAAC,CAACu1E,IAAH,EAASv1E,CAAC,CAACw1E,IAAX,CAAnC,EAAqD,CAACx1E,CAAC,CAACijD,IAAH,EAASjjD,CAAC,CAAC01E,IAAX,CAArD,EAAuEh5B,SAAvE,EAAkF45B,UAAlF,EAA8FwoG,YAA9F,CAApB,CAAA;IACA,OAAO0pC,aAAa,CAACG,MAAd,IAAwBhgL,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAxC,IAA+C6/K,aAAa,CAACj2I,KAA7D,GAAqEi2I,aAAa,CAACK,WAA1F,CAAA;AACD,GAHa,CAzBO;AA6BrBP,EAAAA,UAAU,EAAEQ,SAAS,CAAC,UAAUngL,KAAV,EAAiB+T,SAAjB,EAA4BoiI,YAA5B,EAA0CnW,gBAA1C,EAA4DryF,UAA5D,EAAwEt2E,CAAxE,EAA2E;AAC/F,IAAA,IAAIwoN,aAAa,GAAGC,gBAAgB,CAAC9/C,gBAAD,CAAhB,CAAmC,CAAC,CAAD,EAAI,CAAJ,CAAnC,EAA2C,CAAC3oK,CAAC,CAACk2E,WAAH,EAAgBl2E,CAAC,CAACk2E,WAAlB,CAA3C,EAA2Ex5B,SAA3E,EAAsF45B,UAAtF,EAAkGwoG,YAAlG,CAApB,CAAA;AACA,IAAA,OAAO0pC,aAAa,CAACG,MAAd,IAAwBhgL,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAxC,CAA+C3oC,GAAAA,CAAC,CAACk2E,WAAxD,CAAA;GAFmB,CAAA;AA7BA,CAAvB,CAAA;;AAmCA,SAAS4yI,SAAT,CAAmBC,eAAnB,EAAoC;EAClC,OAAO,UAAUjqC,YAAV,EAAwBnW,gBAAxB,EAA0CryF,UAA1C,EAAsDt2E,CAAtD,EAAyD;IAC9D,IAAIuoN,SAAS,GAAG,IAAA,CAAK5/K,KAArB,CAAA;AACA,IAAA,IAAIA,KAAK,GAAG4/K,SAAS,CAAC9iM,KAAV,EAAZ,CAF8D;;AAI9D,IAAA,IAAIi3B,SAAS,GAAGoiI,YAAY,CAACxnD,UAAb,CAAwB,CAAxB,CAAhB,CAAA;;IAEA,IAAI,CAAC56E,SAAL,EAAgB;AACd,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIssK,YAAY,GAAGD,eAAe,CAACpgL,KAAD,EAAQ+T,SAAR,EAAmBoiI,YAAnB,EAAiCnW,gBAAjC,EAAmDryF,UAAnD,EAA+Dt2E,CAA/D,CAAlC,CAAA;AACAi4H,IAAAA,UAAU,CAAC+wF,YAAD,EAAergL,KAAf,EAAsB,CAAC,CAAD,EAAI,GAAJ,CAAtB,EAAgC,KAAhC,CAAV,CAAA;IACA,IAAKA,CAAAA,KAAL,GAAaA,KAAb,CAAA;;AAEA,IAAA,IAAI4/K,SAAS,CAAC,CAAD,CAAT,KAAiB5/K,KAAK,CAAC,CAAD,CAAtB,IAA6B4/K,SAAS,CAAC,CAAD,CAAT,KAAiB5/K,KAAK,CAAC,CAAD,CAAvD,EAA4D;AAC1D,MAAA,OAAOA,KAAP,CAAA;AACD,KAAA;GAhBH,CAAA;AAkBD,CAAA;;AAED,IAAI8/K,gBAAgB,GAAG;EACrBrxJ,IAAI,EAAE,SAAU6xJ,IAAAA,CAAAA,QAAV,EAAoBC,QAApB,EAA8BxsK,SAA9B,EAAyC45B,UAAzC,EAAqDwoG,YAArD,EAAmE;AACvE,IAAA,IAAIz4I,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;IACA,IAAIrnB,GAAG,GAAG,EAAV,CAAA;IACA,IAAI1f,IAAI,GAAGw/K,YAAY,CAACnmI,KAAb,CAAmBlrB,gBAAnB,CAAoCiqC,OAApC,EAAX,CAAA;AACAuxJ,IAAAA,QAAQ,GAAGA,QAAQ,IAAI,CAAC,CAAD,EAAI,CAAJ,CAAvB,CAAA;;AAEA,IAAA,IAAI5iL,IAAI,CAAC5L,GAAL,KAAa,GAAjB,EAAsB;MACpBzb,GAAG,CAACuzD,KAAJ,GAAY22I,QAAQ,CAAC,CAAD,CAAR,GAAcD,QAAQ,CAAC,CAAD,CAAlC,CAAA;AACAjqM,MAAAA,GAAG,CAAC6pM,WAAJ,GAAkBvpN,IAAI,CAAC6G,KAAvB,CAAA;AACA6Y,MAAAA,GAAG,CAAC4pM,UAAJ,GAAiBtpN,IAAI,CAACnC,CAAtB,CAAA;MACA6hB,GAAG,CAAC2pM,MAAJ,GAAatiL,IAAI,CAACzD,OAAL,GAAe,CAAf,GAAmB,CAAC,CAAjC,CAAA;AACD,KALD,MAKO;AACL;MACA5jB,GAAG,CAACuzD,KAAJ,GAAY22I,QAAQ,CAAC,CAAD,CAAR,GAAcD,QAAQ,CAAC,CAAD,CAAlC,CAAA;AACAjqM,MAAAA,GAAG,CAAC6pM,WAAJ,GAAkBvpN,IAAI,CAAC8G,MAAvB,CAAA;AACA4Y,MAAAA,GAAG,CAAC4pM,UAAJ,GAAiBtpN,IAAI,CAAClC,CAAtB,CAAA;MACA4hB,GAAG,CAAC2pM,MAAJ,GAAatiL,IAAI,CAACzD,OAAL,GAAe,CAAC,CAAhB,GAAoB,CAAjC,CAAA;AACD,KAAA;;AAED,IAAA,OAAO5jB,GAAP,CAAA;GApBmB;EAsBrB+jB,KAAK,EAAE,SAAUkmL,KAAAA,CAAAA,QAAV,EAAoBC,QAApB,EAA8BxsK,SAA9B,EAAyC45B,UAAzC,EAAqDwoG,YAArD,EAAmE;AACxE,IAAA,IAAIz4I,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;IACA,IAAIrnB,GAAG,GAAG,EAAV,CAAA;AACA,IAAA,IAAI+jB,KAAK,GAAG+7I,YAAY,CAACnmI,KAAb,CAAmBlrB,gBAA/B,CAAA;AACA,IAAA,IAAIikD,YAAY,GAAG3uC,KAAK,CAAC0qH,aAAN,EAAA,CAAsBhyH,SAAtB,EAAnB,CAAA;AACA,IAAA,IAAIszF,WAAW,GAAGhsF,KAAK,CAAC4qH,YAAN,EAAA,CAAqBlyH,SAArB,EAAlB,CAAA;AACAwtL,IAAAA,QAAQ,GAAGA,QAAQ,GAAGlmL,KAAK,CAACsL,YAAN,CAAmB46K,QAAnB,CAAH,GAAkC,CAAC,CAAD,EAAI,CAAJ,CAArD,CAAA;AACAC,IAAAA,QAAQ,GAAGnmL,KAAK,CAACsL,YAAN,CAAmB66K,QAAnB,CAAX,CAAA;;AAEA,IAAA,IAAIxsK,SAAS,CAAC4D,QAAV,KAAuB,YAA3B,EAAyC;AACvCthC,MAAAA,GAAG,CAACuzD,KAAJ,GAAY22I,QAAQ,CAAC,CAAD,CAAR,GAAcD,QAAQ,CAAC,CAAD,CAAlC,CADuC;AAEvC;;MAEAjqM,GAAG,CAAC6pM,WAAJ,GAAkBn3I,YAAY,CAAC,CAAD,CAAZ,GAAkBA,YAAY,CAAC,CAAD,CAAhD,CAAA;AACA1yD,MAAAA,GAAG,CAAC4pM,UAAJ,GAAiBl3I,YAAY,CAAC,CAAD,CAA7B,CAAA;MACA1yD,GAAG,CAAC2pM,MAAJ,GAAatiL,IAAI,CAACzD,OAAL,GAAe,CAAf,GAAmB,CAAC,CAAjC,CAAA;AACD,KAPD,MAOO;AACL;AACA5jB,MAAAA,GAAG,CAACuzD,KAAJ,GAAY22I,QAAQ,CAAC,CAAD,CAAR,GAAcD,QAAQ,CAAC,CAAD,CAAlC,CAFK;AAGL;;MAEAjqM,GAAG,CAAC6pM,WAAJ,GAAkB95F,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAA9C,CAAA;AACA/vG,MAAAA,GAAG,CAAC4pM,UAAJ,GAAiB75F,WAAW,CAAC,CAAD,CAA5B,CAAA;MACA/vG,GAAG,CAAC2pM,MAAJ,GAAatiL,IAAI,CAACzD,OAAL,GAAe,CAAC,CAAhB,GAAoB,CAAjC,CAAA;AACD,KAAA;;AAED,IAAA,OAAO5jB,GAAP,CAAA;GAhDmB;EAkDrBmqM,UAAU,EAAE,SAAUF,UAAAA,CAAAA,QAAV,EAAoBC,QAApB,EAA8BxsK,SAA9B,EAAyC45B,UAAzC,EAAqDwoG,YAArD,EAAmE;AAC7E,IAAA,IAAIz4I,IAAI,GAAGqW,SAAS,CAACrW,IAArB,CAAA;IACA,IAAI/mC,IAAI,GAAGw/K,YAAY,CAACnmI,KAAb,CAAmBlrB,gBAAnB,CAAoCiqC,OAApC,EAAX,CAAA;IACA,IAAI14C,GAAG,GAAG,EAAV,CAAA;AACAiqM,IAAAA,QAAQ,GAAGA,QAAQ,IAAI,CAAC,CAAD,EAAI,CAAJ,CAAvB,CAAA;;AAEA,IAAA,IAAI5iL,IAAI,CAAC6xD,MAAL,KAAgB,YAApB,EAAkC;MAChCl5E,GAAG,CAACuzD,KAAJ,GAAY22I,QAAQ,CAAC,CAAD,CAAR,GAAcD,QAAQ,CAAC,CAAD,CAAlC,CAAA;AACAjqM,MAAAA,GAAG,CAAC6pM,WAAJ,GAAkBvpN,IAAI,CAAC6G,KAAvB,CAAA;AACA6Y,MAAAA,GAAG,CAAC4pM,UAAJ,GAAiBtpN,IAAI,CAACnC,CAAtB,CAAA;MACA6hB,GAAG,CAAC2pM,MAAJ,GAAatiL,IAAI,CAACzD,OAAL,GAAe,CAAf,GAAmB,CAAC,CAAjC,CAAA;AACD,KALD,MAKO;AACL;MACA5jB,GAAG,CAACuzD,KAAJ,GAAY22I,QAAQ,CAAC,CAAD,CAAR,GAAcD,QAAQ,CAAC,CAAD,CAAlC,CAAA;AACAjqM,MAAAA,GAAG,CAAC6pM,WAAJ,GAAkBvpN,IAAI,CAAC8G,MAAvB,CAAA;AACA4Y,MAAAA,GAAG,CAAC4pM,UAAJ,GAAiBtpN,IAAI,CAAClC,CAAtB,CAAA;MACA4hB,GAAG,CAAC2pM,MAAJ,GAAatiL,IAAI,CAACzD,OAAL,GAAe,CAAC,CAAhB,GAAoB,CAAjC,CAAA;AACD,KAAA;;AAED,IAAA,OAAO5jB,GAAP,CAAA;AACD,GAAA;AAtEoB,CAAvB;;ACxJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BO,SAASc,SAAT,CAAiBC,SAAjB,EAA4B;EACjCsmK,eAAa,CAACtmK,SAAD,CAAb,CAAA;EACAA,SAAS,CAAC6zC,sBAAV,CAAiC2yJ,eAAjC,CAAA,CAAA;EACAxmM,SAAS,CAACksD,qBAAV,CAAgCi8I,cAAhC,CAAA,CAAA;EACAP,4BAA4B,CAAC5nM,SAAD,CAA5B,CAAA;AACD;;ACnDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA,IAAIqpM,eAAe;AACnB;AACA,UAAUxoM,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACuoM,eAAD,EAAkBxoM,MAAlB,CAAT,CAAA;;AAEA,EAAA,SAASwoM,eAAT,GAA2B;AACzB,IAAA,IAAItoM,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa25M,eAAe,CAAC35M,IAA7B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDsoM,eAAe,CAAC35M,IAAhB,GAAuB,iBAAvB,CAAA;EACA25M,eAAe,CAAC75J,UAAhB,GAA6B,KAA7B,CAAA;EACA65J,eAAe,CAAC/5L,aAAhB,GAAgCokB,oBAAoB,CAAC0rI,aAAa,CAAC9vJ,aAAf,EAA8B;AAChFI,IAAAA,IAAI,EAAE,IAD0E;AAEhF;AACAm8B,IAAAA,KAAK,EAAE,IAHyE;AAIhFlrC,IAAAA,GAAG,EAAE,IAJ2E;AAKhFva,IAAAA,KAAK,EAAE,IALyE;AAMhFC,IAAAA,MAAM,EAAE,IANwE;AAOhFqa,IAAAA,IAAI,EAAE,IAP0E;AAQhForC,IAAAA,MAAM,EAAE,IARwE;AAShFhY,IAAAA,WAAW,EAAE,SATmE;AAUhFE,IAAAA,YAAY,EAAE,CAVkE;AAWhFn2B,IAAAA,eAAe,EAAE,kBAX+D;AAYhF;AACAyrM,IAAAA,cAAc,EAAE;AACdh7L,MAAAA,SAAS,EAAE;AACTrsB,QAAAA,KAAK,EAAE,SADE;AAETmE,QAAAA,KAAK,EAAE,GAAA;OAHK;AAKdirD,MAAAA,SAAS,EAAE;AACTpvD,QAAAA,KAAK,EAAE,SADE;AAETH,QAAAA,OAAO,EAAE,GAAA;AAFA,OAAA;KAlBmE;AAuBhFynN,IAAAA,sBAAsB,EAAE;AACtBj7L,MAAAA,SAAS,EAAE;AACTrsB,QAAAA,KAAK,EAAE,SADE;AAETmE,QAAAA,KAAK,EAAE,GAAA;OAHa;AAKtBirD,MAAAA,SAAS,EAAE;AACTpvD,QAAAA,KAAK,EAAE,SADE;AAETH,QAAAA,OAAO,EAAE,GAAA;AAFA,OAAA;KA5BmE;AAiChF;AACA0nN,IAAAA,WAAW,EAAE,uBAlCmE;AAmChFC,IAAAA,UAAU,EAAE,iHAnCoE;AAoChF;AACAnoF,IAAAA,UAAU,EAAE,MArCoE;AAsChFooF,IAAAA,WAAW,EAAE;AACXznN,MAAAA,KAAK,EAAE,MADI;AAEX6xC,MAAAA,WAAW,EAAE,SAAA;KAxCiE;AA0ChF61K,IAAAA,cAAc,EAAE,CA1CgE;AA2ChFC,IAAAA,cAAc,EAAE,kaA3CgE;AA4ChFC,IAAAA,eAAe,EAAE;AACf5nN,MAAAA,KAAK,EAAE,SADQ;AAEfH,MAAAA,OAAO,EAAE,GAAA;KA9CqE;AAgDhFgoN,IAAAA,UAAU,EAAE,IAhDoE;AAiDhFC,IAAAA,cAAc,EAAE,MAjDgE;AAkDhFrjF,IAAAA,QAAQ,EAAE,IAlDsE;AAmDhFggF,IAAAA,QAAQ,EAAE,KAnDsE;AAoDhFthJ,IAAAA,SAAS,EAAE;AACTnjE,MAAAA,KAAK,EAAE,SAAA;KArDuE;AAuDhF+nN,IAAAA,WAAW,EAAE,IAvDmE;AAwDhFjtF,IAAAA,UAAU,EAAE;AACV96H,MAAAA,KAAK,EAAE,wBAAA;KAzDuE;AA2DhF4tB,IAAAA,QAAQ,EAAE;AACR65L,MAAAA,WAAW,EAAE;AACX51K,QAAAA,WAAW,EAAE,SAAA;OAFP;AAIR+1K,MAAAA,eAAe,EAAE;AACf5nN,QAAAA,KAAK,EAAE,SAAA;AADQ,OAAA;AAJT,KAAA;AA3DsE,GAA9B,CAApD,CAAA;AAoEA,EAAA,OAAOonN,eAAP,CAAA;AACD,CAjFD,CAiFEjqC,aAjFF,CAFA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuCA,IAAIviI,IAAI,GAAGnpB,MAAX;;AAEA,IAAIu2L,yBAAyB,GAAG,CAAhC,CAAA;AACA,IAAIC,0BAA0B,GAAG,CAAjC,CAAA;AACA,IAAIC,mBAAmB,GAAG,EAA1B,CAAA;AACA,IAAIC,wBAAwB,GAAG,CAA/B,CAAA;AACA,IAAIC,UAAU,GAAG,YAAjB,CAAA;AACA,IAAIC,QAAQ,GAAG,UAAf,CAAA;AACA,IAAIC,SAAS,GAAG,CAAhB,CAAA;AACA,IAAIC,4BAA4B,GAAG,CAAC,MAAD,EAAS,KAAT,EAAgB,aAAhB,EAA+B,SAA/B,CAAnC,CAAA;AACA,IAAIC,yBAAyB,GAAG;AAC9BzgN,EAAAA,MAAM,EAAE,UADsB;AAE9B0kC,EAAAA,QAAQ,EAAE,GAFoB;AAG9B7jC,EAAAA,KAAK,EAAE,CAAA;AAHuB,CAAhC,CAAA;;AAMA,IAAI6/M,cAAc;AAClB;AACA,UAAU7pM,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC4pM,cAAD,EAAiB7pM,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAAS6pM,cAAT,GAA0B;AACxB,IAAA,IAAI3pM,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAag7M,cAAc,CAACh7M,IAA5B,CAAA;IACAqR,KAAK,CAAC4pM,aAAN,GAAsB,EAAtB,CAAA;AACA,IAAA,OAAO5pM,KAAP,CAAA;AACD,GAAA;;EAED2pM,cAAc,CAAC/tN,SAAf,CAAyBytC,IAAzB,GAAgC,UAAUM,OAAV,EAAmBxxB,GAAnB,EAAwB;AACtD,IAAA,IAAA,CAAKA,GAAL,GAAWA,GAAX,CADsD;;IAGtD,IAAK2sH,CAAAA,QAAL,GAAgBnyD,MAAI,CAAC,KAAKmyD,QAAN,EAAgB,IAAhB,CAApB,CAAA;IACA,IAAK+kF,CAAAA,WAAL,GAAmBl3I,MAAI,CAAC,KAAKk3I,WAAN,EAAmB,IAAnB,CAAvB,CAAA;GAJF,CAAA;;AAOAF,EAAAA,cAAc,CAAC/tN,SAAf,CAAyB8tC,MAAzB,GAAkC,UAAUuzI,aAAV,EAAyBtzI,OAAzB,EAAkCxxB,GAAlC,EAAuCu0B,OAAvC,EAAgD;IAChF5sB,MAAM,CAAClkB,SAAP,CAAiB8tC,MAAjB,CAAwBpd,KAAxB,CAA8B,IAA9B,EAAoC/sB,SAApC,CAAA,CAAA;;AAEAm/C,IAAAA,cAAA,CAAwB,IAAxB,EAA8B,qBAA9B,EAAqDu+H,aAAa,CAAClpJ,GAAd,CAAkB,UAAlB,CAArD,EAAoF,SAApF,CAAA,CAAA;AACA,IAAA,IAAA,CAAK+gJ,OAAL,GAAemI,aAAa,CAACriF,SAAd,EAAf,CAAA;;AAEA,IAAA,IAAIqiF,aAAa,CAAClpJ,GAAd,CAAkB,MAAlB,CAAA,KAA8B,KAAlC,EAAyC;MACvC,IAAK9G,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIosJ,aAAa,CAACkD,QAAd,EAAJ,EAA8B;AAC5B,MAAA,IAAA,CAAKpqI,MAAL,EAAA,CAAA;;MAEA,IAAK9oB,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;AACA,MAAA,OAAA;AACD,KAhB+E;AAiBhF;AACA;;;AAGA,IAAA,IAAI,CAAC6b,OAAD,IAAYA,OAAO,CAAC/9B,IAAR,KAAiB,UAA7B,IAA2C+9B,OAAO,CAAC2+C,IAAR,KAAiB,IAAA,CAAKxH,GAArE,EAA0E;AACxE,MAAA,IAAA,CAAKimI,UAAL,EAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAA,CAAKC,WAAL,EAAA,CAAA;GAzBF,CAAA;;AA4BAJ,EAAAA,cAAc,CAAC/tN,SAAf,CAAyB4iB,OAAzB,GAAmC,YAAY;AAC7C,IAAA,IAAA,CAAKu3B,MAAL,EAAA,CAAA;;IAEAj2B,MAAM,CAAClkB,SAAP,CAAiB4iB,OAAjB,CAAyB8N,KAAzB,CAA+B,IAA/B,EAAqC/sB,SAArC,CAAA,CAAA;GAHF,CAAA;;AAMAoqN,EAAAA,cAAc,CAAC/tN,SAAf,CAAyBm6C,MAAzB,GAAkC,YAAY;AAC5C2I,IAAAA,OAAA,CAAe,IAAf,EAAqB,qBAArB,CAAA,CAAA;AACA,IAAA,IAAIszB,EAAE,GAAG,IAAA,CAAK75D,GAAL,CAASghC,KAAT,EAAT,CAAA;AACA64B,IAAAA,EAAE,CAACh3B,GAAH,CAAO,WAAP,EAAoB,KAAK8pF,QAAzB,CAAA,CAAA;AACA9yD,IAAAA,EAAE,CAACh3B,GAAH,CAAO,SAAP,EAAkB,KAAK6uK,WAAvB,CAAA,CAAA;GAJF,CAAA;;AAOAF,EAAAA,cAAc,CAAC/tN,SAAf,CAAyBkuN,UAAzB,GAAsC,YAAY;IAChD,IAAI1jH,SAAS,GAAG,IAAA,CAAKn5E,KAArB,CAAA;AACAm5E,IAAAA,SAAS,CAACv1E,SAAV,EAAA,CAAA;IACA,IAAKm5L,CAAAA,SAAL,GAAiB,KAAjB,CAAA;AACA,IAAA,IAAA,CAAKJ,aAAL,CAAmBv3E,SAAnB,GAA+B,IAA/B,CAAA;;AAEA,IAAA,IAAA,CAAK43E,cAAL,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAKC,cAAL,EAAA,CAAA;;IAEA,IAAIC,QAAQ,GAAG,IAAA,CAAKP,aAAL,CAAmBQ,WAAnB,GAAiC,IAAIz3L,OAAJ,EAAhD,CAAA;;AAEA,IAAA,IAAA,CAAK03L,iBAAL,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAKtqD,aAAL,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAKuqD,iBAAL,EAAA,CAAA;;IAEAlkH,SAAS,CAAC54E,GAAV,CAAc28L,QAAd,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKI,cAAL,EAAA,CAAA;GApBF,CAAA;;AAuBAZ,EAAAA,cAAc,CAAC/tN,SAAf,CAAyBquN,cAAzB,GAA0C,YAAY;IACpD,IAAIhtC,aAAa,GAAG,IAAA,CAAKA,aAAzB,CAAA;IACA,IAAI9kK,GAAG,GAAG,IAAA,CAAKA,GAAf,CAAA;AACA,IAAA,IAAIqyM,cAAc,GAAGvtC,aAAa,CAAClpJ,GAAd,CAAkB,aAAlB,CAArB,CAAA;IACA,IAAI60L,cAAc,GAAG4B,cAAc,GAAGnB,wBAAH,GAA8B,CAAjE,CAJoD;AAKpD;;AAEA,IAAA,IAAIoB,SAAS,GAAG,IAAKC,CAAAA,cAAL,EAAhB,CAAA;;AAEA,IAAA,IAAIpqE,MAAM,GAAG;AACXj7I,MAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADI;MAEXhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;AAFG,KAAb,CAToD;;AAcpD,IAAA,IAAIogM,YAAY,GAAG,IAAA,CAAK7pC,OAAL,KAAiBw0C,UAAjB,GAA8B;AAC/C;AACA;MACAx+J,KAAK,EAAEw1F,MAAM,CAACj7I,KAAP,GAAeolN,SAAS,CAACpuN,CAAzB,GAA6BouN,SAAS,CAACplN,KAHC;MAI/Cua,GAAG,EAAE0gI,MAAM,CAACh7I,MAAP,GAAgB8jN,mBAAhB,GAAsCF,yBAAtC,GAAkEN,cAJxB;MAK/CvjN,KAAK,EAAEolN,SAAS,CAACplN,KAL8B;AAM/CC,MAAAA,MAAM,EAAE8jN,mBAAAA;AANuC,KAA9B,GAOf;AACFt+J,MAAAA,KAAK,EAAEo+J,yBADL;MAEFtpM,GAAG,EAAE6qM,SAAS,CAACnuN,CAFb;AAGF+I,MAAAA,KAAK,EAAE+jN,mBAHL;MAIF9jN,MAAM,EAAEmlN,SAAS,CAACnlN,MAAAA;AAJhB,KAPJ,CAdoD;AA2BpD;;IAEA,IAAIqwK,YAAY,GAAGn+H,eAAA,CAAuBylI,aAAa,CAACxwJ,MAArC,CAAnB,CA7BoD;;AA+BpDnkB,IAAAA,MAAI,CAAC,CAAC,OAAD,EAAU,KAAV,EAAiB,OAAjB,EAA0B,QAA1B,CAAD,EAAsC,UAAUhG,IAAV,EAAgB;AACxD,MAAA,IAAIqzK,YAAY,CAACrzK,IAAD,CAAZ,KAAuB,IAA3B,EAAiC;AAC/BqzK,QAAAA,YAAY,CAACrzK,IAAD,CAAZ,GAAqBq8M,YAAY,CAACr8M,IAAD,CAAjC,CAAA;AACD,OAAA;AACF,KAJG,CAAJ,CAAA;IAKA,IAAI0nF,UAAU,GAAGxyC,aAAA,CAAqBm+H,YAArB,EAAmCr1B,MAAnC,CAAjB,CAAA;AACA,IAAA,IAAA,CAAKqqE,SAAL,GAAiB;MACftuN,CAAC,EAAE2tF,UAAU,CAAC3tF,CADC;MAEfC,CAAC,EAAE0tF,UAAU,CAAC1tF,CAAAA;KAFhB,CAAA;IAIA,IAAKsuN,CAAAA,KAAL,GAAa,CAAC5gI,UAAU,CAAC3kF,KAAZ,EAAmB2kF,UAAU,CAAC1kF,MAA9B,CAAb,CAAA;IACA,IAAKwvK,CAAAA,OAAL,KAAiBy0C,QAAjB,IAA6B,KAAKqB,KAAL,CAAW7kL,OAAX,EAA7B,CAAA;GA1CF,CAAA;;AA6CA4jL,EAAAA,cAAc,CAAC/tN,SAAf,CAAyB2uN,cAAzB,GAA0C,YAAY;IACpD,IAAInkH,SAAS,GAAG,IAAA,CAAKn5E,KAArB,CAAA;IACA,IAAI49L,QAAQ,GAAG,IAAA,CAAKF,SAApB,CAAA;AACA,IAAA,IAAIvzH,MAAM,GAAG,IAAK09E,CAAAA,OAAlB,CAHoD;;AAKpD,IAAA,IAAIg2C,eAAe,GAAG,IAAA,CAAK7tC,aAAL,CAAmBmD,uBAAnB,EAAtB,CAAA;IACA,IAAIt+I,OAAO,GAAGgpL,eAAe,IAAIA,eAAe,CAAC/2L,GAAhB,CAAoB,SAApB,CAAjC,CAAA;AACA,IAAA,IAAIq2L,WAAW,GAAG,IAAKR,CAAAA,aAAL,CAAmBQ,WAArC,CAAA;IACA,IAAIW,gBAAgB,GAAG,CAAC,IAAKC,CAAAA,eAAL,IAAwB,EAAzB,EAA6BD,gBAApD,CARoD;;IAUpDX,WAAW,CAACr5L,IAAZ,CAAiBqmE,MAAM,KAAKkyH,UAAX,IAAyB,CAACxnL,OAA1B,GAAoC;AACnDlwB,MAAAA,MAAM,EAAEm5M,gBAAgB,GAAG,CAAH,GAAO,CAAC,CADmB;AAEnDp5M,MAAAA,MAAM,EAAE,CAAA;AAF2C,KAApC,GAGbylF,MAAM,KAAKkyH,UAAX,IAAyBxnL,OAAzB,GAAmC;AACrClwB,MAAAA,MAAM,EAAEm5M,gBAAgB,GAAG,CAAH,GAAO,CAAC,CADK;AAErCp5M,MAAAA,MAAM,EAAE,CAAC,CAAA;AAF4B,KAAnC,GAGAylF,MAAM,KAAKmyH,QAAX,IAAuB,CAACznL,OAAxB,GAAkC;AACpClwB,MAAAA,MAAM,EAAEm5M,gBAAgB,GAAG,CAAC,CAAJ,GAAQ,CADI;AAEpCp5M,MAAAA,MAAM,EAAE,CAF4B;AAGpCyc,MAAAA,QAAQ,EAAEhzB,IAAI,CAACI,EAAL,GAAU,CAAA;AAHgB,KAAlC;MAKF;AACAoW,MAAAA,MAAM,EAAEm5M,gBAAgB,GAAG,CAAC,CAAJ,GAAQ,CADhC;MAEAp5M,MAAM,EAAE,CAAC,CAFT;AAGAyc,MAAAA,QAAQ,EAAEhzB,IAAI,CAACI,EAAL,GAAU,CAAA;AAHpB,KAXF,EAVoD;;IA2BpD,IAAIgD,IAAI,GAAG4nG,SAAS,CAAC7hD,eAAV,CAA0B,CAAC6lK,WAAD,CAA1B,CAAX,CAAA;IACAhkH,SAAS,CAAC/pG,CAAV,GAAcwuN,QAAQ,CAACxuN,CAAT,GAAamC,IAAI,CAACnC,CAAhC,CAAA;IACA+pG,SAAS,CAAC9pG,CAAV,GAAcuuN,QAAQ,CAACvuN,CAAT,GAAakC,IAAI,CAAClC,CAAhC,CAAA;AACA8pG,IAAAA,SAAS,CAAC7tE,UAAV,EAAA,CAAA;GA9BF,CAAA;;AAiCAoxL,EAAAA,cAAc,CAAC/tN,SAAf,CAAyBqvN,cAAzB,GAA0C,YAAY;IACpD,OAAO,CAAC,CAAD,EAAI,IAAA,CAAKL,KAAL,CAAW,CAAX,CAAJ,CAAP,CAAA;GADF,CAAA;;AAIAjB,EAAAA,cAAc,CAAC/tN,SAAf,CAAyByuN,iBAAzB,GAA6C,YAAY;IACvD,IAAIptC,aAAa,GAAG,IAAA,CAAKA,aAAzB,CAAA;IACA,IAAIlvJ,IAAI,GAAG,IAAA,CAAK68L,KAAhB,CAAA;AACA,IAAA,IAAIT,QAAQ,GAAG,IAAKP,CAAAA,aAAL,CAAmBQ,WAAlC,CAAA;AACA,IAAA,IAAInB,WAAW,GAAGhsC,aAAa,CAAClpJ,GAAd,CAAkB,aAAlB,CAAlB,CAAA;AACAo2L,IAAAA,QAAQ,CAAC38L,GAAT,CAAa,IAAIsuB,IAAJ,CAAS;AACpB1pB,MAAAA,MAAM,EAAE,IADY;AAEpBlrB,MAAAA,KAAK,EAAE;AACL7K,QAAAA,CAAC,EAAE,CADE;AAELC,QAAAA,CAAC,EAAE,CAFE;AAGL+I,QAAAA,KAAK,EAAE0oB,IAAI,CAAC,CAAD,CAHN;QAILzoB,MAAM,EAAEyoB,IAAI,CAAC,CAAD,CAAA;OANM;AAQpB7tB,MAAAA,KAAK,EAAE;AACLC,QAAAA,IAAI,EAAE88K,aAAa,CAAClpJ,GAAd,CAAkB,iBAAlB,CAAA;OATY;AAWpB/C,MAAAA,EAAE,EAAE,CAAC,EAAA;KAXM,CAAb,EALuD;;AAmBvD,IAAA,IAAIk6L,UAAU,GAAG,IAAIpvK,IAAJ,CAAS;AACxB50C,MAAAA,KAAK,EAAE;AACL7K,QAAAA,CAAC,EAAE,CADE;AAELC,QAAAA,CAAC,EAAE,CAFE;AAGL+I,QAAAA,KAAK,EAAE0oB,IAAI,CAAC,CAAD,CAHN;QAILzoB,MAAM,EAAEyoB,IAAI,CAAC,CAAD,CAAA;OALU;AAOxB7tB,MAAAA,KAAK,EAAE;AACLC,QAAAA,IAAI,EAAE,aAAA;OARgB;AAUxB6wB,MAAAA,EAAE,EAAE,CAVoB;AAWxBg2E,MAAAA,OAAO,EAAEr0B,MAAI,CAAC,IAAKw4I,CAAAA,aAAN,EAAqB,IAArB,CAAA;AAXW,KAAT,CAAjB,CAAA;AAaA,IAAA,IAAIn5I,EAAE,GAAG,IAAA,CAAK75D,GAAL,CAASghC,KAAT,EAAT,CAAA;;AAEA,IAAA,IAAI8vK,WAAJ,EAAiB;MACfiC,UAAU,CAAC9xK,EAAX,CAAc,WAAd,EAA2B,IAAKgyK,CAAAA,aAAhC,EAA+C,IAA/C,CAAA,CAAA;MACAF,UAAU,CAAC/4L,MAAX,GAAoB,WAApB,CAAA;AACA6/C,MAAAA,EAAE,CAAC54B,EAAH,CAAM,WAAN,EAAmB,KAAK0rF,QAAxB,CAAA,CAAA;AACA9yD,MAAAA,EAAE,CAAC54B,EAAH,CAAM,SAAN,EAAiB,KAAKywK,WAAtB,CAAA,CAAA;AACD,KALD,MAKO;AACL73I,MAAAA,EAAE,CAACh3B,GAAH,CAAO,WAAP,EAAoB,KAAK8pF,QAAzB,CAAA,CAAA;AACA9yD,MAAAA,EAAE,CAACh3B,GAAH,CAAO,SAAP,EAAkB,KAAK6uK,WAAvB,CAAA,CAAA;AACD,KAAA;;IAEDM,QAAQ,CAAC38L,GAAT,CAAa09L,UAAb,CAAA,CAAA;GA5CF,CAAA;;AA+CAvB,EAAAA,cAAc,CAAC/tN,SAAf,CAAyB0uN,iBAAzB,GAA6C,YAAY;AACvD,IAAA,IAAI/wK,IAAI,GAAG,IAAA,CAAKyxK,eAAL,GAAuB,IAAA,CAAKK,sBAAL,EAAlC,CAAA;;AAEA,IAAA,IAAA,CAAKzB,aAAL,CAAmB0B,cAAnB,GAAoC,EAApC,CAAA;;IAEA,IAAI,CAAC/xK,IAAL,EAAW;AACT,MAAA,OAAA;AACD,KAAA;;IAED,IAAIxrB,IAAI,GAAG,IAAA,CAAK68L,KAAhB,CAAA;AACA,IAAA,IAAIW,OAAO,GAAG,IAAKC,CAAAA,WAAL,IAAoB,EAAlC,CAAA;AACA,IAAA,IAAIl5L,WAAW,GAAGinB,IAAI,CAAC4yB,MAAvB,CAAA;AACA,IAAA,IAAIr8C,IAAI,GAAGwC,WAAW,CAAC+2B,UAAZ,EAAX,CAAA;IACA,IAAIiuC,QAAQ,GAAGhlE,WAAW,CAAC8/G,YAAZ,GAA2B9/G,WAAW,CAAC8/G,YAAZ,EAA3B;MACb74F,IAAI,CAAC+9C,QADP,CAAA;;IAGA,IAAIA,QAAQ,IAAI,IAAhB,EAAsB;AACpB,MAAA,OAAA;AACD,KAAA;;IAED,IAAIm0H,UAAU,GAAG,IAAA,CAAKC,iBAAtB,CAAA;AACA,IAAA,IAAIC,WAAW,GAAG,IAAKC,CAAAA,kBAAvB,CArBuD;;AAuBvD,IAAA,IAAI97L,IAAI,KAAK,IAAK+7L,CAAAA,WAAd,IAA6Bv0H,QAAQ,KAAK,IAAA,CAAKw0H,UAA/C,IAA6D/9L,IAAI,CAAC,CAAD,CAAJ,KAAYw9L,OAAO,CAAC,CAAD,CAAhF,IAAuFx9L,IAAI,CAAC,CAAD,CAAJ,KAAYw9L,OAAO,CAAC,CAAD,CAA9G,EAAmH;MACjH,IAAIQ,iBAAiB,GAAGj8L,IAAI,CAAC8wB,aAAL,CAAmB02C,QAAnB,CAAxB,CADiH;;AAGjH,MAAA,IAAI00H,WAAW,GAAG,CAACD,iBAAiB,CAAC,CAAD,CAAjB,GAAuBA,iBAAiB,CAAC,CAAD,CAAzC,IAAgD,GAAlE,CAAA;AACAA,MAAAA,iBAAiB,GAAG,CAACA,iBAAiB,CAAC,CAAD,CAAjB,GAAuBC,WAAxB,EAAqCD,iBAAiB,CAAC,CAAD,CAAjB,GAAuBC,WAA5D,CAApB,CAAA;MACA,IAAIC,mBAAmB,GAAG,CAAC,CAAD,EAAIl+L,IAAI,CAAC,CAAD,CAAR,CAA1B,CAAA;MACA,IAAIm+L,gBAAgB,GAAG,CAAC,CAAD,EAAIn+L,IAAI,CAAC,CAAD,CAAR,CAAvB,CAAA;AACA,MAAA,IAAIo+L,YAAY,GAAG,CAAC,CAACp+L,IAAI,CAAC,CAAD,CAAL,EAAU,CAAV,CAAD,EAAe,CAAC,CAAD,EAAI,CAAJ,CAAf,CAAnB,CAAA;MACA,IAAIq+L,YAAY,GAAG,EAAnB,CAAA;AACA,MAAA,IAAIC,MAAM,GAAGH,gBAAgB,CAAC,CAAD,CAAhB,IAAuBp8L,IAAI,CAAC0T,KAAL,EAAe,GAAA,CAAtC,CAAb,CAAA;AACA,MAAA,IAAI8oL,WAAW,GAAG,CAAlB,CAViH;;AAYjH,MAAA,IAAIC,QAAQ,GAAGnxN,IAAI,CAACiD,KAAL,CAAWyxB,IAAI,CAAC0T,KAAL,EAAezV,GAAAA,IAAI,CAAC,CAAD,CAA9B,CAAf,CAAA;AACA,MAAA,IAAIy+L,aAAJ,CAAA;MACA18L,IAAI,CAACxnB,IAAL,CAAU,CAACgvF,QAAD,CAAV,EAAsB,UAAUx8D,KAAV,EAAiB+f,KAAjB,EAAwB;AAC5C,QAAA,IAAI0xK,QAAQ,GAAG,CAAX,IAAgB1xK,KAAK,GAAG0xK,QAA5B,EAAsC;AACpCD,UAAAA,WAAW,IAAID,MAAf,CAAA;AACA,UAAA,OAAA;AACD,SAJ2C;AAK5C;AACA;AACA;;;AAGA,QAAA,IAAIjiL,OAAO,GAAGtP,KAAK,IAAI,IAAT,IAAiBr7B,KAAK,CAACq7B,KAAD,CAAtB,IAAiCA,KAAK,KAAK,EAAzD,CAV4C;;AAY5C,QAAA,IAAI2xL,UAAU,GAAGriL,OAAO,GAAG,CAAH,GAAO4W,WAAS,CAAClmB,KAAD,EAAQixL,iBAAR,EAA2BE,mBAA3B,EAAgD,IAAhD,CAAxC,CAZ4C;;AAc5C,QAAA,IAAI7hL,OAAO,IAAI,CAACoiL,aAAZ,IAA6B3xK,KAAjC,EAAwC;AACtCsxK,UAAAA,YAAY,CAACxsN,IAAb,CAAkB,CAACwsN,YAAY,CAACA,YAAY,CAACvtN,MAAb,GAAsB,CAAvB,CAAZ,CAAsC,CAAtC,CAAD,EAA2C,CAA3C,CAAlB,CAAA,CAAA;AACAwtN,UAAAA,YAAY,CAACzsN,IAAb,CAAkB,CAACysN,YAAY,CAACA,YAAY,CAACxtN,MAAb,GAAsB,CAAvB,CAAZ,CAAsC,CAAtC,CAAD,EAA2C,CAA3C,CAAlB,CAAA,CAAA;AACD,SAHD,MAGO,IAAI,CAACwrC,OAAD,IAAYoiL,aAAhB,EAA+B;AACpCL,UAAAA,YAAY,CAACxsN,IAAb,CAAkB,CAAC2sN,WAAD,EAAc,CAAd,CAAlB,CAAA,CAAA;AACAF,UAAAA,YAAY,CAACzsN,IAAb,CAAkB,CAAC2sN,WAAD,EAAc,CAAd,CAAlB,CAAA,CAAA;AACD,SAAA;;AAEDH,QAAAA,YAAY,CAACxsN,IAAb,CAAkB,CAAC2sN,WAAD,EAAcG,UAAd,CAAlB,CAAA,CAAA;AACAL,QAAAA,YAAY,CAACzsN,IAAb,CAAkB,CAAC2sN,WAAD,EAAcG,UAAd,CAAlB,CAAA,CAAA;AACAH,QAAAA,WAAW,IAAID,MAAf,CAAA;AACAG,QAAAA,aAAa,GAAGpiL,OAAhB,CAAA;OAzBF,CAAA,CAAA;AA2BAqhL,MAAAA,UAAU,GAAG,IAAA,CAAKC,iBAAL,GAAyBS,YAAtC,CAAA;AACAR,MAAAA,WAAW,GAAG,IAAA,CAAKC,kBAAL,GAA0BQ,YAAxC,CAAA;AACD,KAAA;;IAED,IAAKP,CAAAA,WAAL,GAAmB/7L,IAAnB,CAAA;IACA,IAAKg8L,CAAAA,UAAL,GAAkBx0H,QAAlB,CAAA;AACA,IAAA,IAAA,CAAKk0H,WAAL,GAAmB,CAACz9L,IAAI,CAAC,CAAD,CAAL,EAAUA,IAAI,CAAC,CAAD,CAAd,CAAnB,CAAA;IACA,IAAIkvJ,aAAa,GAAG,IAAA,CAAKA,aAAzB,CAAA;;IAEA,SAASyvC,qBAAT,CAA+BC,cAA/B,EAA+C;MAC7C,IAAI90K,KAAK,GAAGolI,aAAa,CAACppJ,QAAd,CAAuB84L,cAAc,GAAG,wBAAH,GAA8B,gBAAnE,CAAZ,CAAA;AACA,MAAA,IAAI1/L,KAAK,GAAG,IAAI0F,OAAJ,EAAZ,CAAA;AACA,MAAA,IAAIpkB,OAAO,GAAG,IAAIokB,OAAJ,CAAoB;AAChCzrB,QAAAA,KAAK,EAAE;AACL0G,UAAAA,MAAM,EAAE69M,UAAAA;SAFsB;AAIhCz+K,QAAAA,sBAAsB,EAAE,CAJQ;QAKhC9sC,KAAK,EAAE23C,KAAK,CAAChkB,QAAN,CAAe,WAAf,CAAA,CAA4BgY,YAA5B,EALyB;AAMhCzZ,QAAAA,MAAM,EAAE,IANwB;AAOhCpB,QAAAA,EAAE,EAAE,CAAC,EAAA;AAP2B,OAApB,CAAd,CAAA;AASA,MAAA,IAAI1iB,QAAQ,GAAG,IAAIqkB,UAAJ,CAAqB;AAClCzrB,QAAAA,KAAK,EAAE;AACL0G,UAAAA,MAAM,EAAE+9M,WAAAA;SAFwB;AAIlC3+K,QAAAA,sBAAsB,EAAE,CAJU;QAKlC9sC,KAAK,EAAE23C,KAAK,CAAChkB,QAAN,CAAe,WAAf,CAAA,CAA4ByX,YAA5B,EAL2B;AAMlClZ,QAAAA,MAAM,EAAE,IAN0B;AAOlCpB,QAAAA,EAAE,EAAE,CAAC,EAAA;AAP6B,OAArB,CAAf,CAAA;MASA/D,KAAK,CAACO,GAAN,CAAUjf,OAAV,CAAA,CAAA;MACA0e,KAAK,CAACO,GAAN,CAAUlf,QAAV,CAAA,CAAA;AACA,MAAA,OAAO2e,KAAP,CAAA;AACD,KAjGsD;;;IAoGvD,KAAK,IAAI3tB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAApB,EAAuBA,CAAC,EAAxB,EAA4B;AAC1B,MAAA,IAAI2tB,KAAK,GAAGy/L,qBAAqB,CAACptN,CAAC,KAAK,CAAP,CAAjC,CAAA;;AAEA,MAAA,IAAA,CAAKsqN,aAAL,CAAmBQ,WAAnB,CAA+B58L,GAA/B,CAAmCP,KAAnC,CAAA,CAAA;;AAEA,MAAA,IAAA,CAAK28L,aAAL,CAAmB0B,cAAnB,CAAkC3rN,IAAlC,CAAuCstB,KAAvC,CAAA,CAAA;AACD,KAAA;GA1GH,CAAA;;AA6GA08L,EAAAA,cAAc,CAAC/tN,SAAf,CAAyByvN,sBAAzB,GAAkD,YAAY;IAC5D,IAAIpuC,aAAa,GAAG,IAAA,CAAKA,aAAzB,CAAA;AACA,IAAA,IAAI+rC,cAAc,GAAG/rC,aAAa,CAAClpJ,GAAd,CAAkB,gBAAlB,CAArB,CAAA;;IAEA,IAAIi1L,cAAc,KAAK,KAAvB,EAA8B;AAC5B,MAAA,OAAA;AACD,KAN2D;;;AAS5D,IAAA,IAAIrkJ,MAAJ,CAAA;IACA,IAAIh7B,OAAO,GAAG,IAAA,CAAKA,OAAnB,CAAA;AACAszI,IAAAA,aAAa,CAACQ,cAAd,CAA6B,UAAU9mH,OAAV,EAAmB2E,SAAnB,EAA8B;MACzD,IAAIsL,YAAY,GAAGq2G,aAAa,CAACqD,YAAd,CAA2B3pH,OAA3B,EAAoC2E,SAApC,CAA+C0mH,CAAAA,qBAA/C,EAAnB,CAAA;AACA15K,MAAAA,MAAI,CAACs+D,YAAD,EAAe,UAAUt0C,WAAV,EAAuB;AACxC,QAAA,IAAIqyC,MAAJ,EAAY;AACV,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAIqkJ,cAAc,KAAK,IAAnB,IAA2BlgN,OAAO,CAAC2gN,4BAAD,EAA+Bn3L,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,CAA/B,CAAP,GAAiE,CAAhG,EAAmG;AACjG,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAI64L,QAAQ,GAAGjjL,OAAO,CAACw7B,YAAR,CAAqBu3G,eAAe,CAAC/lH,OAAD,CAApC,EAA+C2E,SAA/C,EAA0D/1B,IAAzE,CAAA;AACA,QAAA,IAAI+xD,QAAQ,GAAGu1H,WAAW,CAACl2J,OAAD,CAA1B,CAAA;AACA,QAAA,IAAIo0J,gBAAJ,CAAA;AACA,QAAA,IAAIr+L,QAAQ,GAAG4F,WAAW,CAAC3F,gBAA3B,CAAA;;AAEA,QAAA,IAAI2qE,QAAQ,IAAI,IAAZ,IAAoB5qE,QAAQ,CAAC6M,YAAjC,EAA+C;AAC7CwxL,UAAAA,gBAAgB,GAAGr+L,QAAQ,CAAC6M,YAAT,CAAsBqzL,QAAtB,EAAgC9qL,OAAnD,CAAA;AACD,SAAA;;QAEDw1D,QAAQ,GAAGhlE,WAAW,CAAC3E,OAAZ,GAAsBmM,YAAtB,CAAmCw9D,QAAnC,CAAX,CAAA;AACA3yB,QAAAA,MAAM,GAAG;AACPioJ,UAAAA,QAAQ,EAAEA,QADH;AAEPzgJ,UAAAA,MAAM,EAAE75C,WAFD;AAGPw6L,UAAAA,OAAO,EAAEn2J,OAHF;AAIP2gC,UAAAA,QAAQ,EAAEA,QAJH;AAKPyzH,UAAAA,gBAAgB,EAAEA,gBAAAA;SALpB,CAAA;OAnBE,EA0BD,IA1BC,CAAJ,CAAA;AA2BD,KA7BD,EA6BG,IA7BH,CAAA,CAAA;AA8BA,IAAA,OAAOpmJ,MAAP,CAAA;GAzCF,CAAA;;AA4CAglJ,EAAAA,cAAc,CAAC/tN,SAAf,CAAyBmkK,aAAzB,GAAyC,YAAY;IACnD,IAAI35D,SAAS,GAAG,IAAA,CAAKn5E,KAArB,CAAA;IACA,IAAI8/L,YAAY,GAAG,IAAA,CAAKnD,aAAxB,CAAA;IACA,IAAIoD,OAAO,GAAGD,YAAY,CAACC,OAAb,GAAuB,CAAC,IAAD,EAAO,IAAP,CAArC,CAAA;IACA,IAAIC,YAAY,GAAGF,YAAY,CAACE,YAAb,GAA4B,CAAC,IAAD,EAAO,IAAP,CAA/C,CAAA;AACA,IAAA,IAAI7C,WAAW,GAAG,IAAKR,CAAAA,aAAL,CAAmBQ,WAArC,CAAA;IACA,IAAIr8L,IAAI,GAAG,IAAA,CAAK68L,KAAhB,CAAA;IACA,IAAI3tC,aAAa,GAAG,IAAA,CAAKA,aAAzB,CAAA;IACA,IAAI9kK,GAAG,GAAG,IAAA,CAAKA,GAAf,CAAA;IACA,IAAI86B,YAAY,GAAGgqI,aAAa,CAAClpJ,GAAd,CAAkB,cAAlB,KAAqC,CAAxD,CAAA;AACA,IAAA,IAAIk1L,WAAW,GAAGhsC,aAAa,CAAClpJ,GAAd,CAAkB,aAAlB,CAAlB,CAAA;IACA,IAAIm5L,MAAM,GAAGH,YAAY,CAACG,MAAb,GAAsB,IAAIpxK,IAAJ,CAAS;AAC1C1pB,MAAAA,MAAM,EAAE62L,WADkC;AAE1C/oN,MAAAA,KAAK,EAAE;AACLC,QAAAA,IAAI,EAAE88K,aAAa,CAAClpJ,GAAd,CAAkB,aAAlB,CAAA;OAHkC;AAK1Cma,MAAAA,UAAU,EAAE;AACVxuB,QAAAA,QAAQ,EAAE,QAAA;AADA,OAAA;AAL8B,KAAT,CAAnC,CAAA;AASA0qM,IAAAA,WAAW,CAAC58L,GAAZ,CAAgB0/L,MAAhB,EApBmD;;AAsBnD9C,IAAAA,WAAW,CAAC58L,GAAZ,CAAgB,IAAIsuB,IAAJ,CAAS;AACvB1pB,MAAAA,MAAM,EAAE,IADe;AAEvB8sC,MAAAA,gBAAgB,EAAE,IAFK;AAGvBh4D,MAAAA,KAAK,EAAE;AACL7K,QAAAA,CAAC,EAAE,CADE;AAELC,QAAAA,CAAC,EAAE,CAFE;AAGL+I,QAAAA,KAAK,EAAE0oB,IAAI,CAAC,CAAD,CAHN;AAILzoB,QAAAA,MAAM,EAAEyoB,IAAI,CAAC,CAAD,CAJP;AAKL7wB,QAAAA,CAAC,EAAE+1C,YAAAA;OARkB;AAUvB/yC,MAAAA,KAAK,EAAE;AACL;AACAG,QAAAA,MAAM,EAAE48K,aAAa,CAAClpJ,GAAd,CAAkB,qBAAlB,CAA4CkpJ,IAAAA,aAAa,CAAClpJ,GAAd,CAAkB,aAAlB,CAF/C;AAGLvyB,QAAAA,SAAS,EAAE2nN,0BAHN;AAILhpN,QAAAA,IAAI,EAAE,eAAA;AAJD,OAAA;KAVO,CAAhB,EAtBmD;;IAwCnDmI,MAAI,CAAC,CAAC,CAAD,EAAI,CAAJ,CAAD,EAAS,UAAU+uH,WAAV,EAAuB;AAClC,MAAA,IAAIixD,OAAO,GAAGrL,aAAa,CAAClpJ,GAAd,CAAkB,YAAlB,CAAd,CAAA;;MAEA,IAAI,CAACo5L,kBAAkB,CAAC7kC,OAAD,CAAnB,IAAgCA,OAAO,CAACx/K,OAAR,CAAgB,SAAhB,CAA6B,GAAA,CAA7D,IAAkEw/K,OAAO,CAACx/K,OAAR,CAAgB,UAAhB,CAA8B,GAAA,CAApG,EAAuG;AACrG;QACAw/K,OAAO,GAAG,YAAYA,OAAtB,CAAA;;AAEA,QAAA,IAAIt1K,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;UACzCk6M,YAAY,CAAC,kEAAD,CAAZ,CAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,IAAInmN,IAAI,GAAGmmB,cAAY,CAACk7J,OAAD,EAAU,CAAC,CAAX,EAAc,CAAd,EAAiB,CAAjB,EAAoB,CAApB,EAAuB,IAAvB,EAA6B,IAA7B,CAAvB,CAAA;MACArhL,IAAI,CAAC8pB,IAAL,CAAU;AACRoB,QAAAA,MAAM,EAAEk7L,WAAS,CAAC,IAAA,CAAKv4C,OAAN,CADT;AAER7iJ,QAAAA,SAAS,EAAE,IAFH;QAGRf,KAAK,EAAEyhD,MAAI,CAAC,IAAA,CAAK26I,WAAN,EAAmB,IAAnB,EAAyBj2F,WAAzB,CAHH;AAIR8I,QAAAA,SAAS,EAAExtD,MAAI,CAAC,KAAK46I,UAAN,EAAkB,IAAlB,CAJP;QAKRC,WAAW,EAAE76I,MAAI,CAAC,IAAA,CAAK86I,aAAN,EAAqB,IAArB,EAA2B,IAA3B,CALT;QAMRC,UAAU,EAAE/6I,MAAI,CAAC,IAAA,CAAK86I,aAAN,EAAqB,IAArB,EAA2B,KAA3B,CANR;AAORz8L,QAAAA,EAAE,EAAE,CAAA;OAPN,CAAA,CAAA;AASA,MAAA,IAAI28L,KAAK,GAAG1mN,IAAI,CAACs9C,eAAL,EAAZ,CAAA;AACA,MAAA,IAAIg8E,UAAU,GAAG08C,aAAa,CAAClpJ,GAAd,CAAkB,YAAlB,CAAjB,CAAA;MACA,IAAK65L,CAAAA,aAAL,GAAqBztK,YAAY,CAACogF,UAAD,EAAa,IAAA,CAAKqqF,KAAL,CAAW,CAAX,CAAb,CAAjC,CAAA;MACA,IAAKiD,CAAAA,YAAL,GAAoBF,KAAK,CAACtoN,KAAN,GAAcsoN,KAAK,CAACroN,MAApB,GAA6B,IAAA,CAAKsoN,aAAtD,CAAA;MACA3mN,IAAI,CAACwmB,QAAL,CAAcwvJ,aAAa,CAACppJ,QAAd,CAAuB,aAAvB,CAAsCC,CAAAA,YAAtC,EAAd,CAAA,CAAA;AACA7sB,MAAAA,IAAI,CAAC/G,KAAL,CAAWmB,aAAX,GAA2B,IAA3B,CAAA;MACA4F,IAAI,CAAC6qM,SAAL,GAAiB,IAAjB,CAAA;AACA7qM,MAAAA,IAAI,CAACwuB,WAAL,CAAiB,UAAjB,CAA6Bv1B,CAAAA,KAA7B,GAAqC+8K,aAAa,CAACppJ,QAAd,CAAuB,CAAC,UAAD,EAAa,aAAb,CAAvB,CAAA,CAAoDC,YAApD,EAArC,CAAA;MACAo9K,mBAAmB,CAACjqM,IAAD,CAAnB,CAAA;MACA,IAAI6mN,WAAW,GAAG7wC,aAAa,CAAClpJ,GAAd,CAAkB,aAAlB,CAAlB,CA/BkC;AAgClC;;MAEA,IAAI+5L,WAAW,IAAI,IAAnB,EAAyB;AACvB7mN,QAAAA,IAAI,CAAC/G,KAAL,CAAWC,IAAX,GAAkB2tN,WAAlB,CAAA;AACD,OAAA;;MAED1D,WAAW,CAAC58L,GAAZ,CAAgBw/L,OAAO,CAAC31F,WAAD,CAAP,GAAuBpwH,IAAvC,CAAA,CAAA;AACA,MAAA,IAAIq5D,cAAc,GAAG28G,aAAa,CAACppJ,QAAd,CAAuB,WAAvB,CAArB,CAAA;AACAuyE,MAAAA,SAAS,CAAC54E,GAAV,CAAcy/L,YAAY,CAAC51F,WAAD,CAAZ,GAA4B,IAAI1kG,MAAJ,CAAiB;AACzDP,QAAAA,MAAM,EAAE,IADiD;AAEzD3U,QAAAA,SAAS,EAAE,IAF8C;AAGzDvd,QAAAA,KAAK,EAAEghE,eAAe,CAACZ,cAAD,EAAiB;AACrCjkE,UAAAA,CAAC,EAAE,CADkC;AAErCC,UAAAA,CAAC,EAAE,CAFkC;AAGrCwG,UAAAA,IAAI,EAAE,EAH+B;AAIrComC,UAAAA,aAAa,EAAE,QAJsB;AAKrCD,UAAAA,KAAK,EAAE,QAL8B;AAMrC9oC,UAAAA,IAAI,EAAEmgE,cAAc,CAACa,YAAf,EAN+B;UAOrCnxD,IAAI,EAAEswD,cAAc,CAACS,OAAf,EAAA;AAP+B,SAAjB,CAHmC;AAYzD/vC,QAAAA,EAAE,EAAE,EAAA;AAZqD,OAAjB,CAA1C,CAAA,CAAA;AAcD,KAtDG,EAsDD,IAtDC,CAAJ,CAxCmD;;IAgGnD,IAAI+8L,cAAc,GAAGb,MAArB,CAAA;;AAEA,IAAA,IAAIjE,WAAJ,EAAiB;AACf,MAAA,IAAI+E,gBAAgB,GAAG7tK,YAAY,CAAC88H,aAAa,CAAClpJ,GAAd,CAAkB,gBAAlB,CAAD,EAAsChG,IAAI,CAAC,CAAD,CAA1C,CAAnC,CAAA;MACA,IAAIkgM,YAAY,GAAGlB,YAAY,CAACmB,UAAb,GAA0B,IAAIv7L,MAAJ,CAAiB;QAC5DzyB,KAAK,EAAE+8K,aAAa,CAACppJ,QAAd,CAAuB,iBAAvB,CAAA,CAA0CC,YAA1C,EADqD;AAE5D1B,QAAAA,MAAM,EAAE,IAFoD;AAG5DlrB,QAAAA,KAAK,EAAE;UACLhK,CAAC,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CADE;AAELZ,UAAAA,CAAC,EAAEyxB,IAAI,CAAC,CAAD,CAAJ,GAAU,GAFR;AAGLzoB,UAAAA,MAAM,EAAE0oN,gBAAAA;AAHH,SAAA;AAHqD,OAAjB,CAA7C,CAAA;AASA,MAAA,IAAIrc,QAAQ,GAAGqc,gBAAgB,GAAG,GAAlC,CAAA;AACA,MAAA,IAAInF,cAAc,GAAGkE,YAAY,CAAClE,cAAb,GAA8Bz7L,cAAY,CAAC6vJ,aAAa,CAAClpJ,GAAd,CAAkB,gBAAlB,CAAD,EAAsC,CAAC49K,QAAD,GAAY,CAAlD,EAAqD,CAACA,QAAD,GAAY,CAAjE,EAAoEA,QAApE,EAA8EA,QAA9E,EAAwF,MAAxF,EAAgG,IAAhG,CAA/D,CAAA;MACAkX,cAAc,CAACz2L,MAAf,GAAwB,IAAxB,CAAA;AACAy2L,MAAAA,cAAc,CAACvsN,CAAf,GAAmByxB,IAAI,CAAC,CAAD,CAAJ,GAAUigM,gBAAgB,GAAG,CAA7B,GAAiC,GAApD,CAAA;AACAC,MAAAA,YAAY,CAACx4L,WAAb,CAAyB,UAAzB,CAAqCv1B,CAAAA,KAArC,GAA6C+8K,aAAa,CAACppJ,QAAd,CAAuB,CAAC,UAAD,EAAa,iBAAb,CAAvB,CAAA,CAAwDC,YAAxD,EAA7C,CAAA;MACA,IAAIq6L,kBAAkB,GAAG/yN,IAAI,CAAC8iC,GAAL,CAASnQ,IAAI,CAAC,CAAD,CAAJ,GAAU,CAAnB,EAAsB3yB,IAAI,CAAC0iB,GAAL,CAASkwM,gBAAT,EAA2B,EAA3B,CAAtB,CAAzB,CAAA;MACAD,cAAc,GAAGhB,YAAY,CAACqB,QAAb,GAAwB,IAAIz7L,MAAJ,CAAiB;AACxDlV,QAAAA,SAAS,EAAE,IAD6C;AAExDvW,QAAAA,KAAK,EAAE;AACL5K,UAAAA,CAAC,EAAEyxB,IAAI,CAAC,CAAD,CAAJ,GAAUogM,kBADR;UAEL7oN,MAAM,EAAE0oN,gBAAgB,GAAGG,kBAAAA;AAFtB,SAAA;AAFiD,OAAjB,CAAzC,CAAA;AAOAJ,MAAAA,cAAc,CAAC30K,EAAf,CAAkB,WAAlB,EAA+B,YAAY;QACzCjhC,GAAG,CAACyZ,aAAJ,CAAkBq8L,YAAlB,CAAA,CAAA;AACD,OAFD,CAEG70K,CAAAA,EAFH,CAEM,UAFN,EAEkB,YAAY;QAC5BjhC,GAAG,CAAC2Z,aAAJ,CAAkBm8L,YAAlB,CAAA,CAAA;OAHF,CAAA,CAAA;MAKA7D,WAAW,CAAC58L,GAAZ,CAAgBygM,YAAhB,CAAA,CAAA;MACA7D,WAAW,CAAC58L,GAAZ,CAAgBq7L,cAAhB,CAAA,CAAA;MACAuB,WAAW,CAAC58L,GAAZ,CAAgBugM,cAAhB,CAAA,CAAA;AACD,KAAA;;IAEDA,cAAc,CAACh9L,IAAf,CAAoB;AAClBkB,MAAAA,SAAS,EAAE,IADO;AAElBE,MAAAA,MAAM,EAAEk7L,WAAS,CAAC,IAAA,CAAKv4C,OAAN,CAFC;MAGlB5jJ,KAAK,EAAEyhD,MAAI,CAAC,IAAA,CAAK26I,WAAN,EAAmB,IAAnB,EAAyB,KAAzB,CAHO;MAIlBe,WAAW,EAAE17I,MAAI,CAAC,IAAA,CAAK86I,aAAN,EAAqB,IAArB,EAA2B,IAA3B,CAJC;AAKlBttF,MAAAA,SAAS,EAAExtD,MAAI,CAAC,KAAK46I,UAAN,EAAkB,IAAlB,CALG;MAMlBC,WAAW,EAAE76I,MAAI,CAAC,IAAA,CAAK86I,aAAN,EAAqB,IAArB,EAA2B,IAA3B,CANC;MAOlBC,UAAU,EAAE/6I,MAAI,CAAC,IAAA,CAAK86I,aAAN,EAAqB,IAArB,EAA2B,KAA3B,CAAA;KAPlB,CAAA,CAAA;GApIF,CAAA;;AA+IA9D,EAAAA,cAAc,CAAC/tN,SAAf,CAAyBsuN,cAAzB,GAA0C,YAAY;IACpD,IAAIriL,KAAK,GAAG,IAAKymL,CAAAA,MAAL,GAAc,IAAKrxC,CAAAA,aAAL,CAAmB0D,eAAnB,EAA1B,CAAA;;AAEA,IAAA,IAAI4tC,UAAU,GAAG,IAAKtD,CAAAA,cAAL,EAAjB,CAAA;;AAEA,IAAA,IAAA,CAAKuD,WAAL,GAAmB,CAACxtK,WAAS,CAACnZ,KAAK,CAAC,CAAD,CAAN,EAAW,CAAC,CAAD,EAAI,GAAJ,CAAX,EAAqB0mL,UAArB,EAAiC,IAAjC,CAAV,EAAkDvtK,WAAS,CAACnZ,KAAK,CAAC,CAAD,CAAN,EAAW,CAAC,CAAD,EAAI,GAAJ,CAAX,EAAqB0mL,UAArB,EAAiC,IAAjC,CAA3D,CAAnB,CAAA;GALF,CAAA;;EAQA5E,cAAc,CAAC/tN,SAAf,CAAyB6yN,eAAzB,GAA2C,UAAUp3F,WAAV,EAAuB51B,KAAvB,EAA8B;IACvE,IAAIw7E,aAAa,GAAG,IAAA,CAAKA,aAAzB,CAAA;IACA,IAAI7lD,UAAU,GAAG,IAAA,CAAKo3F,WAAtB,CAAA;;AAEA,IAAA,IAAIE,UAAU,GAAG,IAAKzD,CAAAA,cAAL,EAAjB,CAAA;;AAEA,IAAA,IAAI/mC,UAAU,GAAGjH,aAAa,CAAC4D,2BAAd,EAAA,CAA4CqB,aAA5C,EAAjB,CAAA;AACA,IAAA,IAAII,aAAa,GAAG,CAAC,CAAD,EAAI,GAAJ,CAApB,CAAA;IACAnrD,UAAU,CAAC11B,KAAD,EAAQ21B,UAAR,EAAoBs3F,UAApB,EAAgCzxC,aAAa,CAAClpJ,GAAd,CAAkB,UAAlB,CAAA,GAAgC,KAAhC,GAAwCsjG,WAAxE,EAAqF6sD,UAAU,CAAC5sD,OAAX,IAAsB,IAAtB,GAA6Bt2E,WAAS,CAACkjI,UAAU,CAAC5sD,OAAZ,EAAqBgrD,aAArB,EAAoCosC,UAApC,EAAgD,IAAhD,CAAtC,GAA8F,IAAnL,EAAyLxqC,UAAU,CAAC3sD,OAAX,IAAsB,IAAtB,GAA6Bv2E,WAAS,CAACkjI,UAAU,CAAC3sD,OAAZ,EAAqB+qD,aAArB,EAAoCosC,UAApC,EAAgD,IAAhD,CAAtC,GAA8F,IAAvR,CAAV,CAAA;IACA,IAAIjH,SAAS,GAAG,IAAA,CAAK6G,MAArB,CAAA;AACA,IAAA,IAAIzmL,KAAK,GAAG,IAAA,CAAKymL,MAAL,GAAcr4J,KAAG,CAAC,CAACjV,WAAS,CAACo2E,UAAU,CAAC,CAAD,CAAX,EAAgBs3F,UAAhB,EAA4BpsC,aAA5B,EAA2C,IAA3C,CAAV,EAA4DthI,WAAS,CAACo2E,UAAU,CAAC,CAAD,CAAX,EAAgBs3F,UAAhB,EAA4BpsC,aAA5B,EAA2C,IAA3C,CAArE,CAAD,CAA7B,CAAA;IACA,OAAO,CAACmlC,SAAD,IAAcA,SAAS,CAAC,CAAD,CAAT,KAAiB5/K,KAAK,CAAC,CAAD,CAApC,IAA2C4/K,SAAS,CAAC,CAAD,CAAT,KAAiB5/K,KAAK,CAAC,CAAD,CAAxE,CAAA;GAXF,CAAA;;AAcA8hL,EAAAA,cAAc,CAAC/tN,SAAf,CAAyBmuN,WAAzB,GAAuC,UAAU4E,WAAV,EAAuB;IAC5D,IAAIC,WAAW,GAAG,IAAA,CAAKhF,aAAvB,CAAA;IACA,IAAIxyF,UAAU,GAAG,IAAA,CAAKo3F,WAAtB,CAAA;IACA,IAAIK,cAAc,GAAG54J,KAAG,CAACmhE,UAAU,CAACzyG,KAAX,EAAD,CAAxB,CAAA;IACA,IAAIoJ,IAAI,GAAG,IAAA,CAAK68L,KAAhB,CAAA;IACAtiN,MAAI,CAAC,CAAC,CAAD,EAAI,CAAJ,CAAD,EAAS,UAAU+uH,WAAV,EAAuB;AAClC;AACA,MAAA,IAAI2nC,MAAM,GAAG4vD,WAAW,CAAC5B,OAAZ,CAAoB31F,WAApB,CAAb,CAAA;MACA,IAAIy3F,YAAY,GAAG,IAAA,CAAKlB,aAAxB,CAAA;MACA5uD,MAAM,CAACjuI,IAAP,CAAY;QACVpf,MAAM,EAAEm9M,YAAY,GAAG,CADb;QAEVl9M,MAAM,EAAEk9M,YAAY,GAAG,CAFb;AAGV;AACA;AACAzyN,QAAAA,CAAC,EAAE+6H,UAAU,CAACC,WAAD,CAAV,IAA2BA,WAAW,GAAG,CAAC,CAAJ,GAAQ,CAA9C,CALO;QAMV/6H,CAAC,EAAEyxB,IAAI,CAAC,CAAD,CAAJ,GAAU,CAAV,GAAc+gM,YAAY,GAAG,CAAA;OANlC,CAAA,CAAA;AAQD,KAZG,EAYD,IAZC,CAAJ,CAL4D;;AAmB5DF,IAAAA,WAAW,CAAC1B,MAAZ,CAAmB7hL,QAAnB,CAA4B;AAC1BhvC,MAAAA,CAAC,EAAEwyN,cAAc,CAAC,CAAD,CADS;AAE1BvyN,MAAAA,CAAC,EAAE,CAFuB;MAG1B+I,KAAK,EAAEwpN,cAAc,CAAC,CAAD,CAAd,GAAoBA,cAAc,CAAC,CAAD,CAHf;MAI1BvpN,MAAM,EAAEyoB,IAAI,CAAC,CAAD,CAAA;KAJd,CAAA,CAAA;AAMA,IAAA,IAAIwgM,UAAU,GAAG;AACflyN,MAAAA,CAAC,EAAEwyN,cAAc,CAAC,CAAD,CADF;MAEfxpN,KAAK,EAAEwpN,cAAc,CAAC,CAAD,CAAd,GAAoBA,cAAc,CAAC,CAAD,CAAA;AAF1B,KAAjB,CAzB4D;;IA8B5D,IAAID,WAAW,CAACV,UAAhB,EAA4B;AAC1BU,MAAAA,WAAW,CAACV,UAAZ,CAAuB7iL,QAAvB,CAAgCkjL,UAAhC,CAAA,CAAA;AACAK,MAAAA,WAAW,CAACR,QAAZ,CAAqB/iL,QAArB,CAA8BkjL,UAA9B,EAF0B;;MAI1BK,WAAW,CAACR,QAAZ,CAAqB7pK,eAArB,EAAA,CAAA;MACAqqK,WAAW,CAAC/F,cAAZ,IAA8B+F,WAAW,CAAC/F,cAAZ,CAA2B93L,IAA3B,CAAgC,GAAhC,EAAqCw9L,UAAU,CAAClyN,CAAX,GAAekyN,UAAU,CAAClpN,KAAX,GAAmB,CAAvE,CAA9B,CAAA;AACD,KApC2D;;;AAuC5D,IAAA,IAAIimN,cAAc,GAAGsD,WAAW,CAACtD,cAAjC,CAAA;AACA,IAAA,IAAIyD,YAAY,GAAG,CAAC,CAAD,EAAIF,cAAc,CAAC,CAAD,CAAlB,EAAuBA,cAAc,CAAC,CAAD,CAArC,EAA0C9gM,IAAI,CAAC,CAAD,CAA9C,CAAnB,CAAA;;AAEA,IAAA,KAAK,IAAIzuB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgsN,cAAc,CAAC1sN,MAAnC,EAA2CU,CAAC,EAA5C,EAAgD;AAC9C,MAAA,IAAI0vN,QAAQ,GAAG1D,cAAc,CAAChsN,CAAD,CAA7B,CAAA;AACA,MAAA,IAAImW,QAAQ,GAAGu5M,QAAQ,CAAChkL,WAAT,EAAf,CAAA;;MAEA,IAAI,CAACv1B,QAAL,EAAe;AACbA,QAAAA,QAAQ,GAAG,IAAIkd,MAAJ,EAAX,CAAA;QACAq8L,QAAQ,CAACx5M,WAAT,CAAqBC,QAArB,CAAA,CAAA;AACD,OAAA;;MAEDA,QAAQ,CAAC41B,QAAT,CAAkB;AAChBhvC,QAAAA,CAAC,EAAE0yN,YAAY,CAACzvN,CAAD,CADC;AAEhBhD,QAAAA,CAAC,EAAE,CAFa;QAGhB+I,KAAK,EAAE0pN,YAAY,CAACzvN,CAAC,GAAG,CAAL,CAAZ,GAAsByvN,YAAY,CAACzvN,CAAD,CAHzB;QAIhBgG,MAAM,EAAEyoB,IAAI,CAAC,CAAD,CAAA;OAJd,CAAA,CAAA;AAMD,KAAA;;IAED,IAAKkhM,CAAAA,eAAL,CAAqBN,WAArB,CAAA,CAAA;GA3DF,CAAA;;AA8DAhF,EAAAA,cAAc,CAAC/tN,SAAf,CAAyBqzN,eAAzB,GAA2C,UAAUN,WAAV,EAAuB;IAChE,IAAI1xC,aAAa,GAAG,IAAA,CAAKA,aAAzB,CAAA;IACA,IAAI2xC,WAAW,GAAG,IAAA,CAAKhF,aAAvB,CAAA;AACA,IAAA,IAAIqD,YAAY,GAAG2B,WAAW,CAAC3B,YAA/B,CAAA;IACA,IAAI71H,MAAM,GAAG,IAAA,CAAK09E,OAAlB,CAAA;IACA,IAAIo6C,UAAU,GAAG,CAAC,EAAD,EAAK,EAAL,CAAjB,CALgE;AAMhE;;AAEA,IAAA,IAAIjyC,aAAa,CAAClpJ,GAAd,CAAkB,YAAlB,CAAJ,EAAqC;AACnC,MAAA,IAAI6sJ,SAAS,GAAG3D,aAAa,CAAC4D,2BAAd,EAAhB,CAAA;;AAEA,MAAA,IAAID,SAAJ,EAAe;AACb,QAAA,IAAIr7I,IAAI,GAAGq7I,SAAS,CAACL,YAAV,GAAyBh7I,IAApC,CAAA;QACA,IAAIsC,KAAK,GAAG,IAAA,CAAKymL,MAAjB,CAAA;QACA,IAAIa,YAAY,GAAGR,WAAW;UAC5B/tC,SAAS,CAACwB,mBAAV,CAA8B;AAC9B74J,UAAAA,KAAK,EAAEse,KAAK,CAAC,CAAD,CADkB;UAE9B/O,GAAG,EAAE+O,KAAK,CAAC,CAAD,CAAA;AAFoB,SAA9B,EAGC26I,WAJ2B,GAIb5B,SAAS,CAACI,kBAAV,EAJjB,CAAA;QAKAkuC,UAAU,GAAG,CAAC,IAAKE,CAAAA,YAAL,CAAkBD,YAAY,CAAC,CAAD,CAA9B,EAAmC5pL,IAAnC,CAAD,EAA2C,IAAA,CAAK6pL,YAAL,CAAkBD,YAAY,CAAC,CAAD,CAA9B,EAAmC5pL,IAAnC,CAA3C,CAAb,CAAA;AACD,OAAA;AACF,KAAA;;IAED,IAAI8pL,iBAAiB,GAAGp5J,KAAG,CAAC,KAAKu4J,WAAL,CAAiB7pM,KAAjB,EAAD,CAA3B,CAAA;AACA2qM,IAAAA,QAAQ,CAACrvM,IAAT,CAAc,IAAd,EAAoB,CAApB,CAAA,CAAA;AACAqvM,IAAAA,QAAQ,CAACrvM,IAAT,CAAc,IAAd,EAAoB,CAApB,CAAA,CAAA;;IAEA,SAASqvM,QAAT,CAAkBj4F,WAAlB,EAA+B;AAC7B;AACA;AACA;AACA,MAAA,IAAIk4F,YAAY,GAAG58L,cAAA,CAAqBi8L,WAAW,CAAC5B,OAAZ,CAAoB31F,WAApB,CAAiC/gG,CAAAA,MAAtD,EAA8D,IAAA,CAAKrJ,KAAnE,CAAnB,CAAA;AACA,MAAA,IAAIoxC,SAAS,GAAG1rC,kBAAA,CAA2B0kG,WAAW,KAAK,CAAhB,GAAoB,OAApB,GAA8B,MAAzD,EAAiEk4F,YAAjE,CAAhB,CAAA;AACA,MAAA,IAAIj8M,MAAM,GAAG,IAAA,CAAKu6M,YAAL,GAAoB,CAApB,GAAwBrE,SAArC,CAAA;AACA,MAAA,IAAIgG,SAAS,GAAG78L,gBAAA,CAAuB,CAAC08L,iBAAiB,CAACh4F,WAAD,CAAjB,IAAkCA,WAAW,KAAK,CAAhB,GAAoB,CAAC/jH,MAArB,GAA8BA,MAAhE,CAAD,EAA0E,IAAKs3M,CAAAA,KAAL,CAAW,CAAX,CAAgB,GAAA,CAA1F,CAAvB,EAAqH2E,YAArH,CAAhB,CAAA;AACAtC,MAAAA,YAAY,CAAC51F,WAAD,CAAZ,CAA0B5pG,QAA1B,CAAmC;AACjCpxB,QAAAA,CAAC,EAAEmzN,SAAS,CAAC,CAAD,CADqB;AAEjClzN,QAAAA,CAAC,EAAEkzN,SAAS,CAAC,CAAD,CAFqB;AAGjCtmL,QAAAA,aAAa,EAAEkuD,MAAM,KAAKkyH,UAAX,GAAwB,QAAxB,GAAmCjrJ,SAHjB;AAIjCp1B,QAAAA,KAAK,EAAEmuD,MAAM,KAAKkyH,UAAX,GAAwBjrJ,SAAxB,GAAoC,QAJV;QAKjCv7D,IAAI,EAAEosN,UAAU,CAAC73F,WAAD,CAAA;OALlB,CAAA,CAAA;AAOD,KAAA;GA1CH,CAAA;;EA6CAsyF,cAAc,CAAC/tN,SAAf,CAAyBwzN,YAAzB,GAAwC,UAAUt0L,KAAV,EAAiByK,IAAjB,EAAuB;IAC7D,IAAI03I,aAAa,GAAG,IAAA,CAAKA,aAAzB,CAAA;AACA,IAAA,IAAIrxD,cAAc,GAAGqxD,aAAa,CAAClpJ,GAAd,CAAkB,gBAAlB,CAArB,CAAA;AACA,IAAA,IAAI07L,cAAc,GAAGxyC,aAAa,CAAClpJ,GAAd,CAAkB,gBAAlB,CAArB,CAAA;;AAEA,IAAA,IAAI07L,cAAc,IAAI,IAAlB,IAA0BA,cAAc,KAAK,MAAjD,EAAyD;AACvDA,MAAAA,cAAc,GAAGlqL,IAAI,CAACmqL,iBAAL,EAAjB,CAAA;AACD,KAAA;;AAED,IAAA,IAAIC,QAAQ,GAAG70L,KAAK,IAAI,IAAT,IAAiBr7B,KAAK,CAACq7B,KAAD,CAAtB,GAAgC,EAAhC;AAAA,MACbyK,IAAI,CAAC52B,IAAL,KAAc,UAAd,IAA4B42B,IAAI,CAAC52B,IAAL,KAAc,MAA1C,GAAmD42B,IAAI,CAACrjB,KAAL,CAAWqgJ,QAAX,CAAoB;AACvEznI,MAAAA,KAAK,EAAE1/B,IAAI,CAACiD,KAAL,CAAWy8B,KAAX,CAAA;AADgE,KAApB,CAAnD;AAAA,MAGAA,KAAK,CAACg3F,OAAN,CAAc12H,IAAI,CAAC8iC,GAAL,CAASuxL,cAAT,EAAyB,EAAzB,CAAd,CAJF,CAAA;IAKA,OAAO9iN,UAAU,CAACi/G,cAAD,CAAV,GAA6BA,cAAc,CAAC9wF,KAAD,EAAQ60L,QAAR,CAA3C,GAA+DzmN,QAAQ,CAAC0iH,cAAD,CAAR,GAA2BA,cAAc,CAAC7iH,OAAf,CAAuB,SAAvB,EAAkC4mN,QAAlC,CAA3B,GAAyEA,QAA/I,CAAA;GAdF,CAAA;AAgBA;AACF;AACA;;;AAGEhG,EAAAA,cAAc,CAAC/tN,SAAf,CAAyB6xN,aAAzB,GAAyC,UAAUmC,UAAV,EAAsB;AAC7D;AACAA,IAAAA,UAAU,GAAG,IAAA,CAAK97I,SAAL,IAAkB87I,UAA/B,CAAA;IACA,IAAI7C,YAAY,GAAG,IAAA,CAAKnD,aAAxB,CAAA;AACA,IAAA,IAAIqD,YAAY,GAAGF,YAAY,CAACE,YAAhC,CAAA;IACAA,YAAY,CAAC,CAAD,CAAZ,CAAgBl8L,IAAhB,CAAqB,WAArB,EAAkC,CAAC6+L,UAAnC,CAAA,CAAA;IACA3C,YAAY,CAAC,CAAD,CAAZ,CAAgBl8L,IAAhB,CAAqB,WAArB,EAAkC,CAAC6+L,UAAnC,CAAA,CAN6D;;AAQ7D7C,IAAAA,YAAY,CAACmB,UAAb,IAA2B,IAAK/1M,CAAAA,GAAL,CAASy3M,UAAU,GAAG,eAAH,GAAqB,eAAxC,CAAyD7C,CAAAA,YAAY,CAACmB,UAAtE,EAAkF,CAAlF,CAA3B,CAAA;GARF,CAAA;;AAWAvE,EAAAA,cAAc,CAAC/tN,SAAf,CAAyB0xN,WAAzB,GAAuC,UAAUj2F,WAAV,EAAuBjhG,EAAvB,EAA2BC,EAA3B,EAA+BsoB,KAA/B,EAAsC;AAC3E,IAAA,IAAA,CAAKm1B,SAAL,GAAiB,IAAjB,CAD2E;;AAG3EK,IAAAA,IAAA,CAAex1B,KAAK,CAACA,KAArB,EAH2E;;IAK3E,IAAI4wK,YAAY,GAAG,IAAK3F,CAAAA,aAAL,CAAmBQ,WAAnB,CAA+B1nJ,iBAA/B,EAAnB,CAAA;;AAEA,IAAA,IAAIowI,MAAM,GAAGngL,gBAAA,CAAuB,CAACyD,EAAD,EAAKC,EAAL,CAAvB,EAAiCk5L,YAAjC,EAA+C,IAA/C,CAAb,CAAA;;IAEA,IAAIM,OAAO,GAAG,IAAA,CAAKpB,eAAL,CAAqBp3F,WAArB,EAAkCy7E,MAAM,CAAC,CAAD,CAAxC,CAAd,CAAA;;IAEA,IAAIntE,QAAQ,GAAG,IAAKs3C,CAAAA,aAAL,CAAmBlpJ,GAAnB,CAAuB,UAAvB,CAAf,CAAA;;AAEA,IAAA,IAAA,CAAKg2L,WAAL,CAAiB,CAACpkF,QAAlB,EAb2E;AAc3E;;;AAGAkqF,IAAAA,OAAO,IAAIlqF,QAAX,IAAuB,KAAK6uD,mBAAL,CAAyB,IAAzB,CAAvB,CAAA;GAjBF,CAAA;;AAoBAm1B,EAAAA,cAAc,CAAC/tN,SAAf,CAAyB2xN,UAAzB,GAAsC,YAAY;IAChD,IAAKz5I,CAAAA,SAAL,GAAiB,KAAjB,CAAA;;AAEA,IAAA,IAAA,CAAK25I,aAAL,CAAmB,KAAnB,CAAA,CAHgD;AAIhD;;;IAGA,IAAI9nF,QAAQ,GAAG,IAAKs3C,CAAAA,aAAL,CAAmBlpJ,GAAnB,CAAuB,UAAvB,CAAf,CAAA;AACA,IAAA,CAAC4xG,QAAD,IAAa,IAAA,CAAK6uD,mBAAL,CAAyB,KAAzB,CAAb,CAAA;GARF,CAAA;;AAWAm1B,EAAAA,cAAc,CAAC/tN,SAAf,CAAyBuvN,aAAzB,GAAyC,UAAUjsN,CAAV,EAAa;IACpD,IAAI6uB,IAAI,GAAG,IAAA,CAAK68L,KAAhB,CAAA;;AAEA,IAAA,IAAIkF,UAAU,GAAG,IAAA,CAAKlG,aAAL,CAAmBQ,WAAnB,CAA+Br9J,qBAA/B,CAAqD7tD,CAAC,CAAC2S,OAAvD,EAAgE3S,CAAC,CAAC6S,OAAlE,CAAjB,CAAA;;AAEA,IAAA,IAAI+9M,UAAU,CAAC,CAAD,CAAV,GAAgB,CAAhB,IAAqBA,UAAU,CAAC,CAAD,CAAV,GAAgB/hM,IAAI,CAAC,CAAD,CAAzC,IAAgD+hM,UAAU,CAAC,CAAD,CAAV,GAAgB,CAAhE,IAAqEA,UAAU,CAAC,CAAD,CAAV,GAAgB/hM,IAAI,CAAC,CAAD,CAA7F,EAAkG;AAChG,MAAA,OAAA;AACD,KAAA;;IAED,IAAIqpG,UAAU,GAAG,IAAA,CAAKo3F,WAAtB,CAAA;AACA,IAAA,IAAIvuK,MAAM,GAAG,CAACm3E,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAA3B,IAAkC,CAA/C,CAAA;;AAEA,IAAA,IAAIy4F,OAAO,GAAG,IAAKpB,CAAAA,eAAL,CAAqB,KAArB,EAA4BqB,UAAU,CAAC,CAAD,CAAV,GAAgB7vK,MAA5C,CAAd,CAAA;;AAEA,IAAA,IAAA,CAAK8pK,WAAL,EAAA,CAAA;;AAEA8F,IAAAA,OAAO,IAAI,IAAA,CAAKr7B,mBAAL,CAAyB,KAAzB,CAAX,CAAA;GAhBF,CAAA;;AAmBAm1B,EAAAA,cAAc,CAAC/tN,SAAf,CAAyBwvN,aAAzB,GAAyC,UAAUlsN,CAAV,EAAa;AACpD,IAAA,IAAI7C,CAAC,GAAG6C,CAAC,CAAC2S,OAAV,CAAA;AACA,IAAA,IAAIvV,CAAC,GAAG4C,CAAC,CAAC6S,OAAV,CAAA;IACA,IAAKg+M,CAAAA,WAAL,GAAmB,IAAIp9L,KAAJ,CAAkBt2B,CAAlB,EAAqBC,CAArB,CAAnB,CAAA;IACA,IAAK0tN,CAAAA,SAAL,GAAiB,IAAjB,CAAA;AACA,IAAA,IAAA,CAAKgG,eAAL,GAAuB,CAAC,IAAIvmM,IAAJ,EAAxB,CALoD;GAAtD,CAAA;;AAQAkgM,EAAAA,cAAc,CAAC/tN,SAAf,CAAyBiuN,WAAzB,GAAuC,UAAU3qN,CAAV,EAAa;IAClD,IAAI,CAAC,IAAK8qN,CAAAA,SAAV,EAAqB;AACnB,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI33E,SAAS,GAAG,IAAKu3E,CAAAA,aAAL,CAAmBv3E,SAAnC,CAAA;IACA,IAAK23E,CAAAA,SAAL,GAAiB,KAAjB,CAAA;;IAEA,IAAI,CAAC33E,SAAL,EAAgB;AACd,MAAA,OAAA;AACD,KAAA;;AAEDA,IAAAA,SAAS,CAACthH,IAAV,CAAe,QAAf,EAAyB,IAAzB,CAAA,CAAA;AACA,IAAA,IAAIk/L,UAAU,GAAG59E,SAAS,CAACnrI,KAA3B,CAAA;AACA,IAAA,IAAIgpN,YAAY,GAAG,CAAC,IAAIzmM,IAAJ,EAApB,CAdkD;;AAgBlD,IAAA,IAAIymM,YAAY,GAAG,IAAA,CAAKF,eAApB,GAAsC,GAAtC,IAA6C50N,IAAI,CAACyC,GAAL,CAASoyN,UAAU,CAAC5qN,KAApB,CAAA,GAA6B,CAA9E,EAAiF;AAC/E;AACA,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIqpN,UAAU,GAAG,IAAKzD,CAAAA,cAAL,EAAjB,CAAA;;AAEA,IAAA,IAAI3oC,aAAa,GAAG,CAAC,CAAD,EAAI,GAAJ,CAApB,CAAA;AACA,IAAA,IAAA,CAAKgsC,MAAL,GAAcr4J,KAAG,CAAC,CAACjV,WAAS,CAACivK,UAAU,CAAC5zN,CAAZ,EAAeqyN,UAAf,EAA2BpsC,aAA3B,EAA0C,IAA1C,CAAV,EAA2DthI,WAAS,CAACivK,UAAU,CAAC5zN,CAAX,GAAe4zN,UAAU,CAAC5qN,KAA3B,EAAkCqpN,UAAlC,EAA8CpsC,aAA9C,EAA6D,IAA7D,CAApE,CAAD,CAAjB,CAAA;AACA,IAAA,IAAA,CAAKksC,WAAL,GAAmB,CAACyB,UAAU,CAAC5zN,CAAZ,EAAe4zN,UAAU,CAAC5zN,CAAX,GAAe4zN,UAAU,CAAC5qN,KAAzC,CAAnB,CAAA;;AAEA,IAAA,IAAA,CAAK0kN,WAAL,EAAA,CAAA;;IAEA,IAAKv1B,CAAAA,mBAAL,CAAyB,KAAzB,CAAA,CAAA;GA7BF,CAAA;;AAgCAm1B,EAAAA,cAAc,CAAC/tN,SAAf,CAAyBkpI,QAAzB,GAAoC,UAAU5lI,CAAV,EAAa;IAC/C,IAAI,IAAA,CAAK8qN,SAAT,EAAoB;AAClB;AACA71I,MAAAA,IAAA,CAAej1E,CAAC,CAACy/C,KAAjB,CAAA,CAAA;;MAEA,IAAKwxK,CAAAA,gBAAL,CAAsBjxN,CAAC,CAAC2S,OAAxB,EAAiC3S,CAAC,CAAC6S,OAAnC,CAAA,CAAA;AACD,KAAA;GANH,CAAA;;EASA43M,cAAc,CAAC/tN,SAAf,CAAyBu0N,gBAAzB,GAA4C,UAAUxkH,MAAV,EAAkBC,MAAlB,EAA0B;IACpE,IAAImhH,YAAY,GAAG,IAAA,CAAKnD,aAAxB,CAAA;IACA,IAAI3sC,aAAa,GAAG,IAAA,CAAKA,aAAzB,CAAA;AACA,IAAA,IAAI5qC,SAAS,GAAG06E,YAAY,CAAC16E,SAA7B,CAAA;;IAEA,IAAI,CAACA,SAAL,EAAgB;AACdA,MAAAA,SAAS,GAAG06E,YAAY,CAAC16E,SAAb,GAAyB,IAAIv2F,IAAJ,CAAS;AAC5C1pB,QAAAA,MAAM,EAAE,IADoC;AAE5ClyB,QAAAA,KAAK,EAAE+8K,aAAa,CAACppJ,QAAd,CAAuB,YAAvB,EAAqCC,YAArC,EAAA;AAFqC,OAAT,CAArC,CAAA;AAIAi5L,MAAAA,YAAY,CAAC3C,WAAb,CAAyB58L,GAAzB,CAA6B6kH,SAA7B,CAAA,CAAA;AACD,KAAA;;AAEDA,IAAAA,SAAS,CAACthH,IAAV,CAAe,QAAf,EAAyB,KAAzB,CAAA,CAAA;IACA,IAAIq/L,UAAU,GAAG,IAAA,CAAKL,WAAtB,CAAA;AACA,IAAA,IAAI3F,WAAW,GAAG,IAAKR,CAAAA,aAAL,CAAmBQ,WAArC,CAAA;IACA,IAAIiG,QAAQ,GAAGjG,WAAW,CAACr9J,qBAAZ,CAAkC4+C,MAAlC,EAA0CC,MAA1C,CAAf,CAAA;AACA,IAAA,IAAIxtD,UAAU,GAAGgsK,WAAW,CAACr9J,qBAAZ,CAAkCqjK,UAAU,CAAC/zN,CAA7C,EAAgD+zN,UAAU,CAAC9zN,CAA3D,CAAjB,CAAA;IACA,IAAIyxB,IAAI,GAAG,IAAA,CAAK68L,KAAhB,CAAA;IACAyF,QAAQ,CAAC,CAAD,CAAR,GAAcj1N,IAAI,CAAC0iB,GAAL,CAAS1iB,IAAI,CAAC8iC,GAAL,CAASnQ,IAAI,CAAC,CAAD,CAAb,EAAkBsiM,QAAQ,CAAC,CAAD,CAA1B,CAAT,EAAyC,CAAzC,CAAd,CAAA;IACAh+E,SAAS,CAAChnG,QAAV,CAAmB;AACjBhvC,MAAAA,CAAC,EAAE+hD,UAAU,CAAC,CAAD,CADI;AAEjB9hD,MAAAA,CAAC,EAAE,CAFc;MAGjB+I,KAAK,EAAEgrN,QAAQ,CAAC,CAAD,CAAR,GAAcjyK,UAAU,CAAC,CAAD,CAHd;MAIjB94C,MAAM,EAAEyoB,IAAI,CAAC,CAAD,CAAA;KAJd,CAAA,CAAA;GApBF,CAAA;AA2BA;AACF;AACA;;;AAGE47L,EAAAA,cAAc,CAAC/tN,SAAf,CAAyB44L,mBAAzB,GAA+C,UAAU7uD,QAAV,EAAoB;IACjE,IAAI99F,KAAK,GAAG,IAAA,CAAKymL,MAAjB,CAAA;IACA,IAAKn2M,CAAAA,GAAL,CAASwiC,cAAT,CAAwB;AACtBhsC,MAAAA,IAAI,EAAE,UADgB;MAEtB08E,IAAI,EAAE,KAAKxH,GAFW;AAGtBwsG,MAAAA,UAAU,EAAE,IAAA,CAAKpT,aAAL,CAAmBxtK,EAHT;AAItBjH,MAAAA,SAAS,EAAEm9H,QAAQ,GAAG+jF,yBAAH,GAA+B,IAJ5B;AAKtBngM,MAAAA,KAAK,EAAEse,KAAK,CAAC,CAAD,CALU;MAMtB/O,GAAG,EAAE+O,KAAK,CAAC,CAAD,CAAA;KANZ,CAAA,CAAA;GAFF,CAAA;;AAYA8hL,EAAAA,cAAc,CAAC/tN,SAAf,CAAyB8uN,cAAzB,GAA0C,YAAY;AACpD;AACA,IAAA,IAAIlsN,IAAJ,CAAA;IACA,IAAI8xN,gBAAgB,GAAG3yC,6BAA6B,CAAC,KAAKV,aAAN,CAA7B,CAAkDY,QAAzE,CAAA;;AAEA,IAAA,IAAI,CAACr/K,IAAD,IAAS8xN,gBAAgB,CAAC1xN,MAA9B,EAAsC;MACpC,IAAI8tB,QAAQ,GAAG4jM,gBAAgB,CAAC,CAAD,CAAhB,CAAoBz4K,KAApB,CAA0BlrB,gBAAzC,CAAA;MACAnuB,IAAI,GAAGkuB,QAAQ,CAACkqC,OAAT,IAAoBlqC,QAAQ,CAACkqC,OAAT,EAA3B,CAAA;AACD,KAAA;;IAED,IAAI,CAACp4D,IAAL,EAAW;AACT,MAAA,IAAI6G,KAAK,GAAG,IAAA,CAAK8S,GAAL,CAASmG,QAAT,EAAZ,CAAA;AACA,MAAA,IAAIhZ,MAAM,GAAG,IAAA,CAAK6S,GAAL,CAASoG,SAAT,EAAb,CAAA;AACA/f,MAAAA,IAAI,GAAG;QACLnC,CAAC,EAAEgJ,KAAK,GAAG,GADN;QAEL/I,CAAC,EAAEgJ,MAAM,GAAG,GAFP;QAGLD,KAAK,EAAEA,KAAK,GAAG,GAHV;QAILC,MAAM,EAAEA,MAAM,GAAG,GAAA;OAJnB,CAAA;AAMD,KAAA;;AAED,IAAA,OAAO9G,IAAP,CAAA;GArBF,CAAA;;EAwBAmrN,cAAc,CAACh7M,IAAf,GAAsB,iBAAtB,CAAA;AACA,EAAA,OAAOg7M,cAAP,CAAA;AACD,CAr0BD,CAq0BEnoC,YAr0BF,CAFA,CAAA;;AAy0BA,SAASqrC,WAAT,CAAqBC,OAArB,EAA8B;AAC5B;AACA;AACA,EAAA,IAAItsN,GAAG,GAAG;AACRnE,IAAAA,CAAC,EAAE,GADK;AAERC,IAAAA,CAAC,EAAE,GAFK;AAGR4jD,IAAAA,MAAM,EAAE,OAHA;AAIRnL,IAAAA,KAAK,EAAE,QAAA;GAJT,CAAA;EAMA,OAAOv0C,GAAG,CAACssN,OAAD,CAAV,CAAA;AACD,CAAA;;AAED,SAASO,WAAT,CAAmBj2H,MAAnB,EAA2B;AACzB,EAAA,OAAOA,MAAM,KAAK,UAAX,GAAwB,WAAxB,GAAsC,WAA7C,CAAA;AACD;;AC/5BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAASp4E,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiCw1J,eAAjC,CAAA,CAAA;EACArpM,SAAS,CAACksD,qBAAV,CAAgCw+I,cAAhC,CAAA,CAAA;EACApkC,eAAa,CAACtmK,SAAD,CAAb,CAAA;AACD;;ACjDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAASD,SAAT,CAAiBC,SAAjB,EAA4B;EACjCqsD,GAAG,CAACilJ,SAAD,CAAH,CAAA;AACAjlJ,EAAAA,GAAG,CAACklJ,SAAD,CAAH,CAFiC;AAGjC;AACD;;ACjDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BA,IAAIC,aAAa,GAAG;AAClB;AACF;AACA;AACE18L,EAAAA,GAAG,EAAE,SAAUrG,GAAAA,CAAAA,UAAV,EAAsB/qB,GAAtB,EAA2B85D,UAA3B,EAAuC;AAC1C,IAAA,IAAI3hC,KAAK,GAAGwI,OAAA,CAAa,CAAC/U,aAAa,CAACb,UAAD,CAAb,IAA6B,EAA9B,EAAkC/qB,GAAlC,CAAb,CAAZ,CAAA;AACA,IAAA,OAAO85D,UAAU,GAAGn5B,SAAA,CAAexI,KAAf,CAAwBA,GAAAA,KAAK,CAACA,KAAK,CAACl8B,MAAN,GAAe,CAAhB,CAA7B,GAAkDk8B,KAArD,GAA6DA,KAA9E,CAAA;AACD,GAAA;AAPiB,CAApB,CAAA;AASA,IAAIvM,aAAa,GAAG;AAClBrtB,EAAAA,KAAK,EAAE;AACLmzH,IAAAA,MAAM,EAAE,CAAC,SAAD,EAAY,SAAZ,CADH;IAELC,QAAQ,EAAE,CAAC,eAAD,CAAA;GAHM;AAKlB7gB,EAAAA,QAAQ,EAAE;AACR4gB,IAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,GAAJ,CADA;AAERC,IAAAA,QAAQ,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAA;GAPM;AASlB3vB,EAAAA,eAAe,EAAE;AACf0vB,IAAAA,MAAM,EAAE,CAAC,GAAD,EAAM,CAAN,CADO;AAEfC,IAAAA,QAAQ,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAA;GAXM;AAalB3gB,EAAAA,cAAc,EAAE;AACd0gB,IAAAA,MAAM,EAAE,CAAC,GAAD,EAAM,GAAN,CADM;AAEdC,IAAAA,QAAQ,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAA;GAfM;AAiBlB5vB,EAAAA,UAAU,EAAE;AACV2vB,IAAAA,MAAM,EAAE,CAAC,GAAD,EAAM,CAAN,CADE;AAEVC,IAAAA,QAAQ,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAA;GAnBM;AAqBlBvzH,EAAAA,OAAO,EAAE;AACPszH,IAAAA,MAAM,EAAE,CAAC,GAAD,EAAM,CAAN,CADD;AAEPC,IAAAA,QAAQ,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAA;GAvBM;AAyBlBtmG,EAAAA,MAAM,EAAE;AACNqmG,IAAAA,MAAM,EAAE,CAAC,QAAD,EAAW,WAAX,EAAwB,SAAxB,CADF;IAENC,QAAQ,EAAE,CAAC,MAAD,CAAA;GA3BM;AA6BlBrlG,EAAAA,UAAU,EAAE;AACVolG,IAAAA,MAAM,EAAE,CAAC,EAAD,EAAK,EAAL,CADE;AAEVC,IAAAA,QAAQ,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAA;AAFA,GAAA;AA7BM,CAApB;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiCA,IAAIjjB,SAAS,GAAGpB,aAAa,CAACoB,SAA9B,CAAA;AACA,IAAIF,UAAU,GAAGlB,aAAa,CAACkB,UAA/B,CAAA;AACA,IAAIl5F,OAAO,GAAGqrB,SAAd,CAAA;AACA,IAAIh7B,MAAI,GAAGg7B,MAAX,CAAA;AACA,IAAI2yB,GAAG,GAAGqb,KAAV,CAAA;AACA,IAAItwB,WAAS,GAAGswB,WAAhB,CAAA;;AAEA,IAAIo/I,cAAc;AAClB;AACA,UAAU5wM,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC2wM,cAAD,EAAiB5wM,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAAS4wM,cAAT,GAA0B;AACxB,IAAA,IAAI1wM,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa+hN,cAAc,CAAC/hN,IAA5B,CAAA;AACAqR,IAAAA,KAAK,CAACylL,SAAN,GAAkB,CAAC,SAAD,EAAY,YAAZ,CAAlB,CAAA;AACAzlL,IAAAA,KAAK,CAAC2wM,oBAAN,GAA6B,CAAC,SAAD,EAAY,YAAZ,EAA0B,QAA1B,EAAoC,YAApC,EAAkD,OAAlD,CAA7B,CAAA;IACA3wM,KAAK,CAACyuC,UAAN,GAAmB;AACjB9/C,MAAAA,IAAI,EAAE,KADW;AAEjBiiK,MAAAA,UAAU,EAAE,IAAA;KAFd,CAAA;AAIA;AACJ;AACA;;IAEI5wJ,KAAK,CAAC4wM,SAAN,GAAkB,CAAC,CAACztM,QAAF,EAAYA,QAAZ,CAAlB,CAAA;IACAnD,KAAK,CAACu/H,aAAN,GAAsB,EAAtB,CAAA;IACAv/H,KAAK,CAAC6wM,iBAAN,GAA0B,EAA1B,CAAA;AACA,IAAA,OAAO7wM,KAAP,CAAA;AACD,GAAA;;EAED0wM,cAAc,CAAC90N,SAAf,CAAyBytC,IAAzB,GAAgC,UAAU5c,MAAV,EAAkBsgD,WAAlB,EAA+BpjC,OAA/B,EAAwC;AACtE,IAAA,IAAA,CAAKooB,oBAAL,CAA0BtlC,MAA1B,EAAkCkd,OAAlC,CAAA,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;EAGE+mL,cAAc,CAAC90N,SAAf,CAAyB42D,aAAzB,GAAyC,UAAU4jE,SAAV,EAAqB3jG,MAArB,EAA6B;IACpE,IAAIggC,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;AACA,IAAA,CAACgG,MAAD,IAAWg2K,mBAAA,CAAmCh2I,UAAnC,EAA+C2jE,SAA/C,EAA0D,IAAKu6F,CAAAA,oBAA/D,CAAX,CAAA;AACA,IAAA,IAAA,CAAKrwJ,cAAL,GAAsB,IAAA,CAAKzsC,QAAL,CAAc,WAAd,CAAtB,CAAA;AACA,IAAA,IAAA,CAAKi9L,aAAL,EAAA,CAAA;AACA,IAAA,IAAA,CAAKC,oBAAL,EAAA,CAAA;GALF,CAAA;AAOA;AACF;AACA;;;AAGEL,EAAAA,cAAc,CAAC90N,SAAf,CAAyBo1N,WAAzB,GAAuC,UAAUtrB,sBAAV,EAAkC;IACvE,IAAID,SAAS,GAAG,IAAA,CAAKA,SAArB,CAAA;IACAC,sBAAsB,GAAGpiK,MAAA,CAAYoiK,sBAAZ,EAAoC,IAApC,CAAzB,CAAA;AACA,IAAA,IAAA,CAAKmrB,iBAAL,GAAyBpoB,oBAAA,CAAoC,IAAA,CAAKh8K,MAAL,CAAY+oD,UAAhD,EAA4DiwH,SAA5D,EAAuEC,sBAAvE,CAAzB,CAAA;AACA,IAAA,IAAA,CAAKnmD,aAAL,GAAqBkpD,oBAAA,CAAoC,IAAA,CAAKh8K,MAAL,CAAYhlB,MAAhD,EAAwDg+L,SAAxD,EAAmEC,sBAAnE,CAArB,CAAA;GAJF,CAAA;AAMA;AACF;AACA;;;AAGEgrB,EAAAA,cAAc,CAAC90N,SAAf,CAAyBq1N,aAAzB,GAAyC,YAAY;AACnD,IAAA,OAAO,IAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;;;AAGEP,EAAAA,cAAc,CAAC90N,SAAf,CAAyBs1N,sBAAzB,GAAkD,YAAY;AAC5D,IAAA,IAAIC,iBAAiB,GAAG,IAAK1kM,CAAAA,MAAL,CAAYkf,WAApC,CAAA;IACA,IAAIy9J,aAAa,GAAG,EAApB,CAAA;;AAEA,IAAA,IAAI+nB,iBAAiB,IAAI,IAArB,IAA6BA,iBAAiB,KAAK,KAAvD,EAA8D;MAC5D,IAAKxnL,CAAAA,OAAL,CAAa+yB,UAAb,CAAwB,UAAUpqC,WAAV,EAAuBuoB,KAAvB,EAA8B;QACpDuuJ,aAAa,CAACzpM,IAAd,CAAmBk7C,KAAnB,CAAA,CAAA;OADF,CAAA,CAAA;AAGD,KAJD,MAIO;AACLuuJ,MAAAA,aAAa,GAAGz8J,gBAAA,CAA2BwkL,iBAA3B,CAAhB,CAAA;AACD,KAAA;;AAED,IAAA,OAAO/nB,aAAP,CAAA;GAZF,CAAA;AAcA;AACF;AACA;;;EAGEsnB,cAAc,CAAC90N,SAAf,CAAyB8iJ,gBAAzB,GAA4C,UAAUz9C,QAAV,EAAoB/1E,OAApB,EAA6B;IACvEoY,MAAA,CAAY,IAAA,CAAK4tL,sBAAL,EAAZ,EAA2C,UAAUvlL,WAAV,EAAuB;MAChE,IAAIrZ,WAAW,GAAG,IAAKqX,CAAAA,OAAL,CAAai5H,gBAAb,CAA8Bj3H,WAA9B,CAAlB,CAAA;;AAEA,MAAA,IAAIrZ,WAAJ,EAAiB;AACf2uE,QAAAA,QAAQ,CAAChhF,IAAT,CAAciL,OAAd,EAAuBoH,WAAvB,CAAA,CAAA;AACD,OAAA;AACF,KAND,EAMG,IANH,CAAA,CAAA;GADF,CAAA;AASA;AACF;AACA;;;AAGEo+L,EAAAA,cAAc,CAAC90N,SAAf,CAAyBw1N,cAAzB,GAA0C,UAAU9+L,WAAV,EAAuB;IAC/D,IAAI++L,EAAE,GAAG,KAAT,CAAA;AACA,IAAA,IAAA,CAAK3yE,gBAAL,CAAsB,UAAU7mG,KAAV,EAAiB;AACrCA,MAAAA,KAAK,KAAKvlB,WAAV,KAA0B++L,EAAE,GAAG,IAA/B,CAAA,CAAA;KADF,CAAA,CAAA;AAGA,IAAA,OAAOA,EAAP,CAAA;GALF,CAAA;AAOA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAGEX,cAAc,CAAC90N,SAAf,CAAyB01N,eAAzB,GAA2C,UAAUx2L,KAAV,EAAiB2hC,UAAjB,EAA6B80J,WAA7B,EAA0C;IACnF,IAAI9kM,MAAM,GAAG,IAAA,CAAKA,MAAlB,CAAA;AACA,IAAA,IAAI3wB,SAAS,GAAG2wB,MAAM,CAAC3wB,SAAvB,CAAA;IACA,IAAI80N,SAAS,GAAG,IAAA,CAAKA,SAArB,CAAA;AACA,IAAA,IAAI/9H,SAAS,GAAGpmE,MAAM,CAAComE,SAAvB,CAAA;AACA,IAAA,IAAI2+H,QAAJ,CAAA;AACAD,IAAAA,WAAW,GAAGA,WAAW,IAAI,CAAC,GAAD,EAAM,GAAN,CAA7B,CAAA;;AAEA,IAAA,IAAIjuL,SAAA,CAAexI,KAAf,CAAJ,EAA2B;AACzBA,MAAAA,KAAK,GAAGA,KAAK,CAACnW,KAAN,EAAR,CAAA;AACA6sM,MAAAA,QAAQ,GAAG,IAAX,CAAA;AACD,KAAA;;AAED,IAAA,IAAIC,SAAS,GAAGh1J,UAAU,GAAG3hC,KAAH;MACxB02L,QAAQ,GAAG,CAAC1/F,OAAO,CAACh3F,KAAK,CAAC,CAAD,CAAN,CAAR,EAAoBg3F,OAAO,CAACh3F,KAAK,CAAC,CAAD,CAAN,CAA3B,CAAH,GAA4Cg3F,OAAO,CAACh3F,KAAD,CAD7D,CAAA;;AAGA,IAAA,IAAIwI,QAAA,CAAgBuvD,SAAhB,CAAJ,EAAgC;MAC9B,OAAOA,SAAS,CAAC9pF,OAAV,CAAkB,SAAlB,EAA6ByoN,QAAQ,GAAGC,SAAS,CAAC,CAAD,CAAZ,GAAkBA,SAAvD,CAAA,CAAkE1oN,OAAlE,CAA0E,UAA1E,EAAsFyoN,QAAQ,GAAGC,SAAS,CAAC,CAAD,CAAZ,GAAkBA,SAAhH,CAAP,CAAA;KADF,MAEO,IAAInuL,UAAA,CAAkBuvD,SAAlB,CAAJ,EAAkC;AACvC,MAAA,OAAO2+H,QAAQ,GAAG3+H,SAAS,CAAC/3D,KAAK,CAAC,CAAD,CAAN,EAAWA,KAAK,CAAC,CAAD,CAAhB,CAAZ,GAAmC+3D,SAAS,CAAC/3D,KAAD,CAA3D,CAAA;AACD,KAAA;;AAED,IAAA,IAAI02L,QAAJ,EAAc;MACZ,IAAI12L,KAAK,CAAC,CAAD,CAAL,KAAa81L,SAAS,CAAC,CAAD,CAA1B,EAA+B;QAC7B,OAAOW,WAAW,CAAC,CAAD,CAAX,GAAiB,GAAjB,GAAuBE,SAAS,CAAC,CAAD,CAAvC,CAAA;OADF,MAEO,IAAI32L,KAAK,CAAC,CAAD,CAAL,KAAa81L,SAAS,CAAC,CAAD,CAA1B,EAA+B;QACpC,OAAOW,WAAW,CAAC,CAAD,CAAX,GAAiB,GAAjB,GAAuBE,SAAS,CAAC,CAAD,CAAvC,CAAA;AACD,OAFM,MAEA;QACL,OAAOA,SAAS,CAAC,CAAD,CAAT,GAAe,KAAf,GAAuBA,SAAS,CAAC,CAAD,CAAvC,CAAA;AACD,OAAA;AACF,KARD,MAQO;AACL;AACA,MAAA,OAAOA,SAAP,CAAA;AACD,KAAA;;IAED,SAAS3/F,OAAT,CAAiBtyH,GAAjB,EAAsB;AACpB,MAAA,OAAOA,GAAG,KAAKoxN,SAAS,CAAC,CAAD,CAAjB,GAAuB,KAAvB,GAA+BpxN,GAAG,KAAKoxN,SAAS,CAAC,CAAD,CAAjB,GAAuB,KAAvB,GAA+B,CAAC,CAACpxN,GAAF,EAAOsyH,OAAP,CAAe12H,IAAI,CAAC8iC,GAAL,CAASpiC,SAAT,EAAoB,EAApB,CAAf,CAArE,CAAA;AACD,KAAA;GArCH,CAAA;AAuCA;AACF;AACA;;;AAGE40N,EAAAA,cAAc,CAAC90N,SAAf,CAAyB81N,WAAzB,GAAuC,YAAY;AACjD,IAAA,IAAIj/J,UAAU,GAAG,IAAKhmC,CAAAA,MAAtB,CADiD;AAEjD;AACA;;AAEA,IAAA,IAAIiO,MAAM,GAAGu7B,GAAG,CAAC,CAACxD,UAAU,CAACv0B,GAAZ,EAAiBu0B,UAAU,CAAC30C,GAA5B,CAAD,CAAhB,CAAA;IACA,IAAKukK,CAAAA,WAAL,GAAmB3nJ,MAAnB,CAAA;GANF,CAAA;AAQA;AACF;AACA;AACA;AACA;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGAg2L,EAAAA,cAAc,CAAC90N,SAAf,CAAyB+1N,qBAAzB,GAAiD,UAAU7hM,IAAV,EAAgB;AAC/D,IAAA,IAAI8hM,MAAM,GAAG,IAAKnlM,CAAAA,MAAL,CAAY6Y,SAAzB,CAAA;;IAEA,IAAIssL,MAAM,IAAI,IAAd,EAAoB;AAClB,MAAA,OAAO9hM,IAAI,CAACS,iBAAL,CAAuBqhM,MAAvB,CAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAIC,QAAQ,GAAG/hM,IAAI,CAACoK,UAApB,CAAA;;AAEA,IAAA,KAAK,IAAI56B,CAAC,GAAGuyN,QAAQ,CAACjzN,MAAT,GAAkB,CAA/B,EAAkCU,CAAC,IAAI,CAAvC,EAA0CA,CAAC,EAA3C,EAA+C;AAC7C,MAAA,IAAIg9D,OAAO,GAAGu1J,QAAQ,CAACvyN,CAAD,CAAtB,CAAA;AACA,MAAA,IAAI8lC,OAAO,GAAGtV,IAAI,CAACuV,gBAAL,CAAsBi3B,OAAtB,CAAd,CAAA;;AAEA,MAAA,IAAI,CAACl3B,OAAO,CAAC0sL,kBAAb,EAAiC;QAC/B,OAAO1sL,OAAO,CAAC2sL,aAAf,CAAA;AACD,OAAA;AACF,KAAA;GAhBH,CAAA;;AAmBArB,EAAAA,cAAc,CAAC90N,SAAf,CAAyB++B,SAAzB,GAAqC,YAAY;AAC/C,IAAA,OAAO,IAAK0nJ,CAAAA,WAAL,CAAiB19J,KAAjB,EAAP,CAAA;GADF,CAAA;;AAIA+rM,EAAAA,cAAc,CAAC90N,SAAf,CAAyBm1N,oBAAzB,GAAgD,YAAY;IAC1D,IAAIpnL,OAAO,GAAG,IAAA,CAAKA,OAAnB,CAAA;IACA,IAAI8oB,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;AACA,IAAA,IAAIqsC,IAAI,GAAG;MACTgkF,OAAO,EAAErqF,UAAU,CAACqqF,OADX;MAETC,UAAU,EAAEtqF,UAAU,CAACsqF,UAAAA;KAFzB,CAAA;IAIA,IAAIt1I,MAAM,GAAGgrD,UAAU,CAAChrD,MAAX,KAAsBgrD,UAAU,CAAChrD,MAAX,GAAoB,EAA1C,CAAb,CAAA;IACA,IAAI+tE,UAAU,GAAG/iB,UAAU,CAAC+iB,UAAX,KAA0B/iB,UAAU,CAAC+iB,UAAX,GAAwB,EAAlD,CAAjB,CAAA;AACAlyC,IAAAA,KAAA,CAAa77B,MAAb,EAAqBqxD,IAArB,EAT0D;;AAW1Dx1B,IAAAA,KAAA,CAAakyC,UAAb,EAAyB1c,IAAzB,EAX0D;;AAa1D,IAAA,IAAI2D,UAAU,GAAG,IAAKA,CAAAA,UAAL,EAAjB,CAAA;AACAu1J,IAAAA,cAAc,CAAC/xM,IAAf,CAAoB,IAApB,EAA0BxY,MAA1B,CAAA,CAAA;AACAuqN,IAAAA,cAAc,CAAC/xM,IAAf,CAAoB,IAApB,EAA0Bu1D,UAA1B,CAAA,CAAA;IACAy8I,gBAAgB,CAAChyM,IAAjB,CAAsB,IAAtB,EAA4BxY,MAA5B,EAAoC,SAApC,EAA+C,YAA/C,CAAA,CAhB0D;;AAkB1DyqN,IAAAA,kBAAkB,CAACjyM,IAAnB,CAAwB,IAAxB,EAA8Bu1D,UAA9B,CAAA,CAAA;;IAEA,SAASw8I,cAAT,CAAwBl5J,IAAxB,EAA8B;AAC5B;AACA;AACA;AACA;AACA,MAAA,IAAI7gD,OAAO,CAACw6C,UAAU,CAACvxD,KAAZ,CAAP;AACJ;AADI,SAED,CAAC43D,IAAI,CAACgkF,OAFT,EAEkB;QAChBhkF,IAAI,CAACgkF,OAAL,GAAe;AACb57I,UAAAA,KAAK,EAAEuxD,UAAU,CAACvxD,KAAX,CAAiByjB,KAAjB,GAAyBohB,OAAzB,EAAA;SADT,CAAA;AAGD,OAX2B;AAY5B;AACA;AACA;AACA;AACA;;;AAGA+yB,MAAAA,IAAI,CAACgkF,OAAL,GAAehkF,IAAI,CAACgkF,OAAL,IAAgB;AAC7B57I,QAAAA,KAAK,EAAEyoC,OAAO,CAAC5V,GAAR,CAAY,eAAZ,CAAA;OADT,CAAA;AAGD,KAAA;;AAED,IAAA,SAASk+L,gBAAT,CAA0Bn5J,IAA1B,EAAgCq5J,UAAhC,EAA4CC,WAA5C,EAAyD;AACvD,MAAA,IAAIC,QAAQ,GAAGv5J,IAAI,CAACq5J,UAAD,CAAnB,CAAA;AACA,MAAA,IAAIG,SAAS,GAAGx5J,IAAI,CAACs5J,WAAD,CAApB,CAAA;;AAEA,MAAA,IAAIC,QAAQ,IAAI,CAACC,SAAjB,EAA4B;AAC1BA,QAAAA,SAAS,GAAGx5J,IAAI,CAACs5J,WAAD,CAAJ,GAAoB,EAAhC,CAAA;AACA9pN,QAAAA,MAAI,CAAC+pN,QAAD,EAAW,UAAUvsB,UAAV,EAAsBp4K,UAAtB,EAAkC;AAC/C,UAAA,IAAI,CAACuiF,aAAa,CAACiB,WAAd,CAA0BxjF,UAA1B,CAAL,EAA4C;AAC1C,YAAA,OAAA;AACD,WAAA;;UAED,IAAI6kM,IAAI,GAAG9B,aAAa,CAAC18L,GAAd,CAAkBrG,UAAlB,EAA8B,UAA9B,EAA0C+uC,UAA1C,CAAX,CAAA;;UAEA,IAAI81J,IAAI,IAAI,IAAZ,EAAkB;AAChBD,YAAAA,SAAS,CAAC5kM,UAAD,CAAT,GAAwB6kM,IAAxB,CADgB;AAEhB;AACA;;AAEA,YAAA,IAAI7kM,UAAU,KAAK,OAAf,IAA0B,CAAC4kM,SAAS,CAACzmM,cAAV,CAAyB,SAAzB,CAA3B,IAAkE,CAACymM,SAAS,CAACzmM,cAAV,CAAyB,YAAzB,CAAvE,EAA+G;AAC7GymM,cAAAA,SAAS,CAACvxN,OAAV,GAAoB,CAAC,CAAD,EAAI,CAAJ,CAApB,CAAA;AACD,aAAA;AACF,WAAA;AACF,SAhBG,CAAJ,CAAA;AAiBD,OAAA;AACF,KAAA;;IAED,SAASmxN,kBAAT,CAA4B18I,UAA5B,EAAwC;AACtC,MAAA,IAAIg9I,YAAY,GAAG,CAACh9I,UAAU,CAACsnE,OAAX,IAAsB,EAAvB,EAA2B9uH,MAA3B,IAAqC,CAACwnD,UAAU,CAACunE,UAAX,IAAyB,EAA1B,EAA8B/uH,MAAtF,CAAA;AACA,MAAA,IAAIykM,gBAAgB,GAAG,CAACj9I,UAAU,CAACsnE,OAAX,IAAsB,EAAvB,EAA2B7tH,UAA3B,IAAyC,CAACumD,UAAU,CAACunE,UAAX,IAAyB,EAA1B,EAA8B9tH,UAA9F,CAAA;AACA,MAAA,IAAIguL,aAAa,GAAG,IAAA,CAAKlpL,GAAL,CAAS,eAAT,CAApB,CAAA;AACA,MAAA,IAAI2+L,UAAU,GAAG,IAAKzB,CAAAA,aAAL,EAAjB,CAAA;AACA,MAAA,IAAI7rE,aAAa,GAAGstE,UAAU,IAAI,WAAlC,CAAA;AACApqN,MAAAA,MAAI,CAAC,IAAKm9L,CAAAA,SAAN,EAAiB,UAAU3nJ,KAAV,EAAiB;QACpC,IAAIu0E,QAAQ,GAAG,IAAA,CAAKA,QAApB,CAAA;AACA,QAAA,IAAIjd,OAAO,GAAG5/B,UAAU,CAAC13B,KAAD,CAAxB,CAFoC;AAGpC;;QAEA,IAAI,CAACs3D,OAAL,EAAc;AACZA,UAAAA,OAAO,GAAG5/B,UAAU,CAAC13B,KAAD,CAAV,GAAoB;AAC5B58C,YAAAA,KAAK,EAAEu7D,UAAU,GAAGwgJ,aAAH,GAAmB,CAACA,aAAD,CAAA;WADtC,CAAA;AAGD,SATmC;;;AAYpC,QAAA,IAAI7nG,OAAO,CAACpnF,MAAR,IAAkB,IAAtB,EAA4B;AAC1BonF,UAAAA,OAAO,CAACpnF,MAAR,GAAiBwkM,YAAY,IAAIlvL,OAAA,CAAakvL,YAAb,CAAhB,KAA+C/1J,UAAU,GAAG2oF,aAAH,GAAmB,CAACA,aAAD,CAA5E,CAAjB,CAAA;AACD,SAAA;;AAED,QAAA,IAAIhwC,OAAO,CAACnmF,UAAR,IAAsB,IAA1B,EAAgC;AAC9BmmF,UAAAA,OAAO,CAACnmF,UAAR,GAAqBwjM,gBAAgB,IAAInvL,OAAA,CAAamvL,gBAAb,CAApB,KAAuDh2J,UAAU,GAAG41D,QAAQ,CAAC,CAAD,CAAX,GAAiB,CAACA,QAAQ,CAAC,CAAD,CAAT,EAAcA,QAAQ,CAAC,CAAD,CAAtB,CAAlF,CAArB,CAAA;AACD,SAlBmC;;;QAqBpCjd,OAAO,CAACpnF,MAAR,GAAiBqjF,SAAS,CAAC+D,OAAO,CAACpnF,MAAT,EAAiB,UAAUA,MAAV,EAAkB;AAC3D,UAAA,OAAOA,MAAM,KAAK,MAAX,GAAoBo3H,aAApB,GAAoCp3H,MAA3C,CAAA;SADwB,CAA1B,CArBoC;;AAyBpC,QAAA,IAAIiB,UAAU,GAAGmmF,OAAO,CAACnmF,UAAzB,CAAA;;QAEA,IAAIA,UAAU,IAAI,IAAlB,EAAwB;AACtB,UAAA,IAAI0jM,KAAK,GAAG,CAACxvM,QAAb,CADsB;;AAGtBguF,UAAAA,UAAU,CAACliF,UAAD,EAAa,UAAU6L,KAAV,EAAiB;AACtCA,YAAAA,KAAK,GAAG63L,KAAR,KAAkBA,KAAK,GAAG73L,KAA1B,CAAA,CAAA;AACD,WAFS,CAAV,CAAA;UAGAs6E,OAAO,CAACnmF,UAAR,GAAqBoiF,SAAS,CAACpiF,UAAD,EAAa,UAAU6L,KAAV,EAAiB;YAC1D,OAAOkmB,WAAS,CAAClmB,KAAD,EAAQ,CAAC,CAAD,EAAI63L,KAAJ,CAAR,EAAoB,CAAC,CAAD,EAAItgG,QAAQ,CAAC,CAAD,CAAZ,CAApB,EAAsC,IAAtC,CAAhB,CAAA;AACD,WAF6B,CAA9B,CAAA;AAGD,SAAA;OApCC,EAqCD,IArCC,CAAJ,CAAA;AAsCD,KAAA;GAlHH,CAAA;;AAqHAq+F,EAAAA,cAAc,CAAC90N,SAAf,CAAyBk1N,aAAzB,GAAyC,YAAY;IACnD,IAAKz+F,CAAAA,QAAL,GAAgB,CAACzhH,UAAU,CAAC,IAAKmjB,CAAAA,GAAL,CAAS,WAAT,CAAD,CAAX,EAAoCnjB,UAAU,CAAC,IAAKmjB,CAAAA,GAAL,CAAS,YAAT,CAAD,CAA9C,CAAhB,CAAA;GADF,CAAA;;AAIA28L,EAAAA,cAAc,CAAC90N,SAAf,CAAyB6gE,UAAzB,GAAsC,YAAY;AAChD,IAAA,OAAO,CAAC,CAAC,IAAKhwC,CAAAA,MAAL,CAAYytB,UAArB,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;;;EAGEw2K,cAAc,CAAC90N,SAAf,CAAyBg3N,WAAzB,GAAuC,UAAUhgI,QAAV,EAAoB,EAA3D,CAAA;;AAEA89H,EAAAA,cAAc,CAAC90N,SAAf,CAAyBi3N,WAAzB,GAAuC,YAAY;AACjD,IAAA,OAAO,IAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;;;AAGEnC,EAAAA,cAAc,CAAC90N,SAAf,CAAyBwqM,aAAzB,GAAyC,UAAUtrK,KAAV,EAAiB;AACxD,IAAA,OAAO,IAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGE41L,EAAAA,cAAc,CAAC90N,SAAf,CAAyBk3N,aAAzB,GAAyC,UAAUC,cAAV,EAA0B;AACjE,IAAA,OAAO,IAAP,CAAA;GADF,CAAA;;EAIArC,cAAc,CAAC/hN,IAAf,GAAsB,WAAtB,CAAA;AACA+hN,EAAAA,cAAc,CAACpiM,YAAf,GAA8B,CAAC,QAAD,CAA9B,CAAA;EACAoiM,cAAc,CAACniM,aAAf,GAA+B;AAC7BI,IAAAA,IAAI,EAAE,IADuB;AAE7B;AACA7G,IAAAA,CAAC,EAAE,CAH0B;AAI7B6jB,IAAAA,WAAW,EAAE,KAJgB;AAK7BzN,IAAAA,GAAG,EAAE,CALwB;AAM7BpgB,IAAAA,GAAG,EAAE,GANwB;AAO7B6B,IAAAA,IAAI,EAAE,CAPuB;AAQ7BmrC,IAAAA,KAAK,EAAE,IARsB;AAS7BlrC,IAAAA,GAAG,EAAE,IATwB;AAU7BmrC,IAAAA,MAAM,EAAE,CAVqB;AAW7Bz9B,IAAAA,SAAS,EAAE,IAXkB;AAY7BD,IAAAA,UAAU,EAAE,IAZiB;AAa7ByU,IAAAA,OAAO,EAAE,KAboB;AAc7Bs1D,IAAAA,MAAM,EAAE,UAdqB;AAe7Bt6E,IAAAA,eAAe,EAAE,eAfY;AAgB7Bi2B,IAAAA,WAAW,EAAE,MAhBgB;AAiB7BigL,IAAAA,YAAY,EAAE,SAjBe;AAkB7B/V,IAAAA,aAAa,EAAE,MAlBc;AAmB7Bz7L,IAAAA,WAAW,EAAE,CAnBgB;AAoB7BF,IAAAA,OAAO,EAAE,CApBoB;AAqB7B;AACA2xM,IAAAA,OAAO,EAAE,EAtBoB;AAuB7Bn3N,IAAAA,SAAS,EAAE,CAvBkB;AAwB7BuoE,IAAAA,SAAS,EAAE;MACTnjE,KAAK,EAAE,MADE;;AAAA,KAAA;GAxBb,CAAA;AA6BA,EAAA,OAAOwvN,cAAP,CAAA;AACD,CA5ZD,CA4ZE/hK,cA5ZF,CAFA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA+BA,IAAIukK,iBAAiB,GAAG,CAAC,EAAD,EAAK,GAAL,CAAxB,CAAA;;AAEA,IAAIC,eAAe;AACnB;AACA,UAAUrzM,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACozM,eAAD,EAAkBrzM,MAAlB,CAAT,CAAA;;AAEA,EAAA,SAASqzM,eAAT,GAA2B;AACzB,IAAA,IAAInzM,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAawkN,eAAe,CAACxkN,IAA7B,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;AACD;AACF;AACA;;;EAGEmzM,eAAe,CAACv3N,SAAhB,CAA0B42D,aAA1B,GAA0C,UAAU4jE,SAAV,EAAqB3jG,MAArB,EAA6B;IACrE3S,MAAM,CAAClkB,SAAP,CAAiB42D,aAAjB,CAA+BlmC,KAA/B,CAAqC,IAArC,EAA2C/sB,SAA3C,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKmyN,WAAL,EAAA,CAAA;AACA,IAAA,IAAA,CAAKV,WAAL,CAAiB,UAAUjrB,aAAV,EAAyB;MACxCA,aAAa,CAAC71F,aAAd,GAA8B,QAA9B,CAAA;AACA61F,MAAAA,aAAa,CAACl1F,UAAd,GAA2B,IAAA,CAAKl2E,SAAL,EAA3B,CAAA;KAFF,CAAA,CAAA;;AAKA,IAAA,IAAA,CAAKy4L,WAAL,EAAA,CAAA;GATF,CAAA;AAWA;AACF;AACA;AACA;;;AAGED,EAAAA,eAAe,CAACv3N,SAAhB,CAA0Bk1N,aAA1B,GAA0C,YAAY;IACpDhxM,MAAM,CAAClkB,SAAP,CAAiBk1N,aAAjB,CAA+BxkM,KAA/B,CAAqC,IAArC,EAA2C/sB,SAA3C,CAAA,CAAA;;IAEA,IAAI8yH,QAAQ,GAAG,IAAA,CAAKA,QAApB,CAAA;IACA,CAACA,QAAQ,CAAC,CAAD,CAAR,IAAe,IAAf,IAAuB5yH,KAAK,CAAC4yH,QAAQ,CAAC,CAAD,CAAT,CAA7B,MAAgDA,QAAQ,CAAC,CAAD,CAAR,GAAc6gG,iBAAiB,CAAC,CAAD,CAA/E,CAAA,CAAA;IACA,CAAC7gG,QAAQ,CAAC,CAAD,CAAR,IAAe,IAAf,IAAuB5yH,KAAK,CAAC4yH,QAAQ,CAAC,CAAD,CAAT,CAA7B,MAAgDA,QAAQ,CAAC,CAAD,CAAR,GAAc6gG,iBAAiB,CAAC,CAAD,CAA/E,CAAA,CAAA;GALF,CAAA;AAOA;AACF;AACA;;;AAGEC,EAAAA,eAAe,CAACv3N,SAAhB,CAA0Bw3N,WAA1B,GAAwC,YAAY;AAClD,IAAA,IAAIviH,UAAU,GAAG,IAAKl2E,CAAAA,SAAL,EAAjB,CAAA;AACA,IAAA,IAAIkN,KAAK,GAAG,IAAKpb,CAAAA,MAAL,CAAYob,KAAxB,CAAA;;AAEA,IAAA,IAAI,CAACA,KAAD,IAAUA,KAAK,CAACwrL,IAApB,EAA0B;AACxB;AACA;MACAxiH,UAAU,CAACwiH,IAAX,GAAkB,CAAlB,CAAA;AACA,MAAA,IAAA,CAAK5mM,MAAL,CAAYob,KAAZ,GAAoBgpE,UAApB,CAAA;KAJF,MAKO,IAAIvtE,SAAA,CAAeuE,KAAf,CAAJ,EAA2B;MAChC,IAAIA,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAApB,EAAyB;AACvBA,QAAAA,KAAK,CAAC9B,OAAN,EAAA,CAAA;AACD,OAAA;;AAED8B,MAAAA,KAAK,CAAC,CAAD,CAAL,GAAWzsC,IAAI,CAAC0iB,GAAL,CAAS+pB,KAAK,CAAC,CAAD,CAAd,EAAmBgpE,UAAU,CAAC,CAAD,CAA7B,CAAX,CAAA;AACAhpE,MAAAA,KAAK,CAAC,CAAD,CAAL,GAAWzsC,IAAI,CAAC8iC,GAAL,CAAS2J,KAAK,CAAC,CAAD,CAAd,EAAmBgpE,UAAU,CAAC,CAAD,CAA7B,CAAX,CAAA;AACD,KAAA;GAhBH,CAAA;AAkBA;AACF;AACA;AACA;;;AAGEsiH,EAAAA,eAAe,CAACv3N,SAAhB,CAA0Bm1N,oBAA1B,GAAiD,YAAY;IAC3DjxM,MAAM,CAAClkB,SAAP,CAAiBm1N,oBAAjB,CAAsCzkM,KAAtC,CAA4C,IAA5C,EAAkD/sB,SAAlD,CAAA,CAAA;;IAEA+jC,MAAA,CAAY,IAAA,CAAKmiK,SAAjB,EAA4B,UAAU3nJ,KAAV,EAAiB;MAC3C,IAAI7uB,UAAU,GAAG,IAAKxC,CAAAA,MAAL,CAAY+oD,UAAZ,CAAuB13B,KAAvB,CAAA,CAA8B7uB,UAA/C,CAAA;;MAEA,IAAIA,UAAU,IAAIA,UAAU,CAAC,CAAD,CAAV,KAAkBA,UAAU,CAAC,CAAD,CAA9C,EAAmD;QACjDA,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAAV,GAAgB,CAAhC,CADiD;AAElD,OAAA;AACF,KAND,EAMG,IANH,CAAA,CAAA;GAHF,CAAA;AAWA;AACF;AACA;;;AAGEkkM,EAAAA,eAAe,CAACv3N,SAAhB,CAA0Bg3N,WAA1B,GAAwC,UAAUhgI,QAAV,EAAoB;AAC1D,IAAA,IAAA,CAAKnmE,MAAL,CAAYob,KAAZ,GAAoB+qD,QAAQ,CAACjuE,KAAT,EAApB,CAAA;;AAEA,IAAA,IAAA,CAAKyuM,WAAL,EAAA,CAAA;GAHF,CAAA;AAKA;AACF;AACA;;;AAGED,EAAAA,eAAe,CAACv3N,SAAhB,CAA0Bi3N,WAA1B,GAAwC,YAAY;AAClD,IAAA,IAAIhiH,UAAU,GAAG,IAAKl2E,CAAAA,SAAL,EAAjB,CAAA;AACA,IAAA,IAAIw0L,YAAY,GAAG79I,KAAA,CAAe,CAAC,IAAKv9C,CAAAA,GAAL,CAAS,OAAT,KAAqB,EAAtB,EAA0BpP,KAA1B,EAAf,CAAnB,CAFkD;;AAIlDwqM,IAAAA,YAAY,CAAC,CAAD,CAAZ,GAAkBt+G,UAAU,CAAC,CAAD,CAA5B,KAAoCs+G,YAAY,CAAC,CAAD,CAAZ,GAAkBt+G,UAAU,CAAC,CAAD,CAAhE,CAAA,CAAA;AACAs+G,IAAAA,YAAY,CAAC,CAAD,CAAZ,GAAkBt+G,UAAU,CAAC,CAAD,CAA5B,KAAoCs+G,YAAY,CAAC,CAAD,CAAZ,GAAkBt+G,UAAU,CAAC,CAAD,CAAhE,CAAA,CAAA;AACAs+G,IAAAA,YAAY,CAAC,CAAD,CAAZ,GAAkBt+G,UAAU,CAAC,CAAD,CAA5B,KAAoCs+G,YAAY,CAAC,CAAD,CAAZ,GAAkBt+G,UAAU,CAAC,CAAD,CAAhE,CAAA,CAAA;AACAs+G,IAAAA,YAAY,CAAC,CAAD,CAAZ,GAAkBt+G,UAAU,CAAC,CAAD,CAA5B,KAAoCs+G,YAAY,CAAC,CAAD,CAAZ,GAAkBt+G,UAAU,CAAC,CAAD,CAAhE,CAAA,CAAA;AACA,IAAA,OAAOs+G,YAAP,CAAA;GARF,CAAA;AAUA;AACF;AACA;;;AAGEgE,EAAAA,eAAe,CAACv3N,SAAhB,CAA0BwqM,aAA1B,GAA0C,UAAUtrK,KAAV,EAAiB;AACzD,IAAA,IAAI+M,KAAK,GAAG,IAAKpb,CAAAA,MAAL,CAAYob,KAAxB,CAAA;AACA,IAAA,IAAIgpE,UAAU,GAAG,IAAA,CAAKl2E,SAAL,EAAjB,CAFyD;AAGzD;;AAEA,IAAA,OAAO,CAACkN,KAAK,CAAC,CAAD,CAAL,IAAYgpE,UAAU,CAAC,CAAD,CAAtB,IAA6BhpE,KAAK,CAAC,CAAD,CAAL,IAAY/M,KAA1C,MAAqD+M,KAAK,CAAC,CAAD,CAAL,IAAYgpE,UAAU,CAAC,CAAD,CAAtB,IAA6B/1E,KAAK,IAAI+M,KAAK,CAAC,CAAD,CAAhG,CAAuG,GAAA,SAAvG,GAAmH,YAA1H,CAAA;GALF,CAAA;;AAQAsrL,EAAAA,eAAe,CAACv3N,SAAhB,CAA0B03N,qBAA1B,GAAkD,UAAUzrL,KAAV,EAAiB;IACjE,IAAI88B,MAAM,GAAG,EAAb,CAAA;AACA,IAAA,IAAA,CAAK+5E,gBAAL,CAAsB,UAAUpsH,WAAV,EAAuB;MAC3C,IAAI42F,WAAW,GAAG,EAAlB,CAAA;AACA,MAAA,IAAIp5F,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACAmC,MAAAA,IAAI,CAACxnB,IAAL,CAAU,IAAA,CAAKqpN,qBAAL,CAA2B7hM,IAA3B,CAAV,EAA4C,UAAUgL,KAAV,EAAiB/K,SAAjB,EAA4B;AACtE8X,QAAAA,KAAK,CAAC,CAAD,CAAL,IAAY/M,KAAZ,IAAqBA,KAAK,IAAI+M,KAAK,CAAC,CAAD,CAAnC,IAA0CqhF,WAAW,CAACvpH,IAAZ,CAAiBowB,SAAjB,CAA1C,CAAA;AACD,OAFD,EAEG,IAFH,CAAA,CAAA;MAGA40C,MAAM,CAAChlE,IAAP,CAAY;QACV4rF,QAAQ,EAAEj5D,WAAW,CAAC7iB,EADZ;AAEVsgB,QAAAA,SAAS,EAAEm5F,WAAAA;OAFb,CAAA,CAAA;AAID,KAVD,EAUG,IAVH,CAAA,CAAA;AAWA,IAAA,OAAOvkD,MAAP,CAAA;GAbF,CAAA;AAeA;AACF;AACA;;;AAGEwuJ,EAAAA,eAAe,CAACv3N,SAAhB,CAA0Bk3N,aAA1B,GAA0C,UAAUC,cAAV,EAA0B;IAClE,IAAIQ,KAAK,GAAGC,kBAAkB,CAAC,IAAD,EAAO,YAAP,EAAqB,IAAA,CAAK74L,SAAL,EAArB,CAA9B,CAAA;AACA,IAAA,IAAI84L,KAAK,GAAGD,kBAAkB,CAAC,IAAD,EAAO,SAAP,EAAkB,IAAA,CAAK/mM,MAAL,CAAYob,KAAZ,CAAkBljB,KAAlB,EAAlB,CAA9B,CAAA;IACA,IAAI8gB,KAAK,GAAG,EAAZ,CAAA;;AAEA,IAAA,SAASiuL,OAAT,CAAiB54L,KAAjB,EAAwB6rK,UAAxB,EAAoC;MAClClhK,KAAK,CAAC9lC,IAAN,CAAW;AACTm7B,QAAAA,KAAK,EAAEA,KADE;AAET55B,QAAAA,KAAK,EAAE6xN,cAAc,CAACj4L,KAAD,EAAQ6rK,UAAR,CAAA;OAFvB,CAAA,CAAA;AAID,KAViE;;;IAalE,IAAIgtB,IAAI,GAAG,CAAX,CAAA;IACA,IAAIC,IAAI,GAAG,CAAX,CAAA;AACA,IAAA,IAAIC,IAAI,GAAGJ,KAAK,CAAC70N,MAAjB,CAAA;AACA,IAAA,IAAIk1N,IAAI,GAAGP,KAAK,CAAC30N,MAAjB,CAAA;;IAEA,OAAOg1N,IAAI,GAAGE,IAAP,KAAgB,CAACL,KAAK,CAAC70N,MAAP,IAAiB20N,KAAK,CAACK,IAAD,CAAL,IAAeH,KAAK,CAAC,CAAD,CAArD,CAAP,EAAkEG,IAAI,EAAtE,EAA0E;AACxE;MACA,IAAIL,KAAK,CAACK,IAAD,CAAL,GAAcH,KAAK,CAACE,IAAD,CAAvB,EAA+B;AAC7BD,QAAAA,OAAO,CAACH,KAAK,CAACK,IAAD,CAAN,EAAc,YAAd,CAAP,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,KAAK,IAAIG,KAAK,GAAG,CAAjB,EAAoBJ,IAAI,GAAGE,IAA3B,EAAiCF,IAAI,EAAA,EAAII,KAAK,GAAG,CAAjD,EAAoD;AAClD;AACA;AACAA,MAAAA,KAAK,IAAItuL,KAAK,CAAC7mC,MAAf,IAAyB80N,OAAO,CAACD,KAAK,CAACE,IAAD,CAAN,EAAc,YAAd,CAAhC,CAAA;AACAD,MAAAA,OAAO,CAACD,KAAK,CAACE,IAAD,CAAN,EAAc,SAAd,CAAP,CAAA;AACD,KAAA;;IAED,KAAK,IAAII,KAAK,GAAG,CAAjB,EAAoBH,IAAI,GAAGE,IAA3B,EAAiCF,IAAI,EAArC,EAAyC;AACvC,MAAA,IAAI,CAACH,KAAK,CAAC70N,MAAP,IAAiB60N,KAAK,CAACA,KAAK,CAAC70N,MAAN,GAAe,CAAhB,CAAL,GAA0B20N,KAAK,CAACK,IAAD,CAApD,EAA4D;AAC1D;AACA,QAAA,IAAIG,KAAJ,EAAW;AACTtuL,UAAAA,KAAK,CAAC7mC,MAAN,IAAgB80N,OAAO,CAACjuL,KAAK,CAACA,KAAK,CAAC7mC,MAAN,GAAe,CAAhB,CAAL,CAAwBk8B,KAAzB,EAAgC,YAAhC,CAAvB,CAAA;AACAi5L,UAAAA,KAAK,GAAG,CAAR,CAAA;AACD,SAAA;;AAEDL,QAAAA,OAAO,CAACH,KAAK,CAACK,IAAD,CAAN,EAAc,YAAd,CAAP,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAII,QAAQ,GAAGvuL,KAAK,CAAC7mC,MAArB,CAAA;IACA,OAAO;AACL6mC,MAAAA,KAAK,EAAEA,KADF;MAELK,WAAW,EAAE,CAACkuL,QAAQ,GAAGvuL,KAAK,CAAC,CAAD,CAAL,CAASvkC,KAAZ,GAAoB,aAA7B,EAA4C8yN,QAAQ,GAAGvuL,KAAK,CAACuuL,QAAQ,GAAG,CAAZ,CAAL,CAAoB9yN,KAAvB,GAA+B,aAAnF,CAAA;KAFf,CAAA;GA7CF,CAAA;;EAmDAiyN,eAAe,CAACxkN,IAAhB,GAAuB,sBAAvB,CAAA;EACAwkN,eAAe,CAAC5kM,aAAhB,GAAgCokB,oBAAoB,CAAC+9K,cAAc,CAACniM,aAAhB,EAA+B;AACjF0a,IAAAA,KAAK,EAAE,MAD0E;AAEjFgrL,IAAAA,UAAU,EAAE,KAFqE;AAGjFC,IAAAA,SAAS,EAAE,IAHsE;AAIjFvuF,IAAAA,QAAQ,EAAE,IAJuE;AAKjF+iF,IAAAA,UAAU,EAAE,4HALqE;AAMjFnoF,IAAAA,UAAU,EAAE,MANqE;AAOjFooF,IAAAA,WAAW,EAAE;AACX51K,MAAAA,WAAW,EAAE,MADF;AAEXvxB,MAAAA,WAAW,EAAE,CAAA;KATkE;AAWjF2yM,IAAAA,aAAa,EAAE,QAXkE;AAYjFC,IAAAA,aAAa,EAAE,KAZkE;AAajFC,IAAAA,cAAc,EAAE;AACdthL,MAAAA,WAAW,EAAE,MADC;AAEdvxB,MAAAA,WAAW,EAAE,CAFC;AAGdtP,MAAAA,UAAU,EAAE,CAHE;AAIdJ,MAAAA,aAAa,EAAE,CAJD;AAKdE,MAAAA,aAAa,EAAE,CALD;AAMdG,MAAAA,WAAW,EAAE,iBAAA;AANC,KAbiE;AAqBjF;AACA;AACA;AACA;AACA;AACA;AACA;;AA3BiF,GAA/B,CAApD,CAAA;AA8BA,EAAA,OAAOghN,eAAP,CAAA;AACD,CA3ND,CA2NEzC,cA3NF,CAFA,CAAA;;AA+NA,SAAS8C,kBAAT,CAA4Bn0E,cAA5B,EAA4CsnD,UAA5C,EAAwD91F,UAAxD,EAAoE;EAClE,IAAIA,UAAU,CAAC,CAAD,CAAV,KAAkBA,UAAU,CAAC,CAAD,CAAhC,EAAqC;IACnC,OAAOA,UAAU,CAAClsF,KAAX,EAAP,CAAA;AACD,GAHiE;AAIlE;AACA;AACA;;;EAGA,IAAI6e,KAAK,GAAG,GAAZ,CAAA;AACA,EAAA,IAAIzU,IAAI,GAAG,CAAC8hF,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAA3B,IAAkCrtE,KAA7C,CAAA;AACA,EAAA,IAAI1I,KAAK,GAAG+1E,UAAU,CAAC,CAAD,CAAtB,CAAA;EACA,IAAIyjH,UAAU,GAAG,EAAjB,CAAA;;AAEA,EAAA,KAAK,IAAIh1N,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAIkkC,KAAL,IAAc1I,KAAK,GAAG+1E,UAAU,CAAC,CAAD,CAAhD,EAAqDvxG,CAAC,EAAtD,EAA0D;IACxDg1N,UAAU,CAAC30N,IAAX,CAAgBm7B,KAAhB,CAAA,CAAA;AACAA,IAAAA,KAAK,IAAI/L,IAAT,CAAA;AACD,GAAA;;AAEDulM,EAAAA,UAAU,CAAC30N,IAAX,CAAgBkxG,UAAU,CAAC,CAAD,CAA1B,CAAA,CAAA;AACA,EAAA,OAAOyjH,UAAP,CAAA;AACD;;ACtSD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiCA,IAAIC,aAAa;AACjB;AACA,UAAUz0M,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACw0M,aAAD,EAAgBz0M,MAAhB,CAAT,CAAA;;AAEA,EAAA,SAASy0M,aAAT,GAAyB;AACvB,IAAA,IAAIv0M,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAa4lN,aAAa,CAAC5lN,IAA3B,CAAA;IACAqR,KAAK,CAACw0M,kBAAN,GAA2B;AACzB70M,MAAAA,IAAI,EAAE,CADmB;AAEzBmrC,MAAAA,KAAK,EAAE,CAFkB;AAGzBlrC,MAAAA,GAAG,EAAE,CAHoB;AAIzBmrC,MAAAA,MAAM,EAAE,CAAA;KAJV,CAAA;AAMA,IAAA,OAAO/qC,KAAP,CAAA;AACD,GAAA;;EAEDu0M,aAAa,CAAC34N,SAAd,CAAwBytC,IAAxB,GAA+B,UAAUM,OAAV,EAAmBxxB,GAAnB,EAAwB;IACrD,IAAKwxB,CAAAA,OAAL,GAAeA,OAAf,CAAA;IACA,IAAKxxB,CAAAA,GAAL,GAAWA,GAAX,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;AAGEo8M,EAAAA,aAAa,CAAC34N,SAAd,CAAwB8tC,MAAxB,GAAiC,UAAU21G,cAAV,EAA0B11G,OAA1B,EAAmCxxB,GAAnC,EAAwCu0B,OAAxC;IAC/B;IACA,IAAK2yG,CAAAA,cAAL,GAAsBA,cAAtB,CAAA;;AAEA,IAAA,IAAIA,cAAc,CAACtrH,GAAf,CAAmB,MAAnB,CAAA,KAA+B,KAAnC,EAA0C;MACxC,IAAK9G,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;IAED,IAAK4jM,CAAAA,QAAL,CAAcp1E,cAAd,EAA8B11G,OAA9B,EAAuCxxB,GAAvC,EAA4Cu0B,OAA5C,CAAA,CAAA;GATF,CAAA;AAWA;AACF;AACA;;;AAGE6nL,EAAAA,aAAa,CAAC34N,SAAd,CAAwB4xG,gBAAxB,GAA2C,UAAUvgF,KAAV,EAAiB;IAC1D,IAAIoyH,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;AACA,IAAA,IAAI/9H,OAAO,GAAG6gJ,mBAAA,CAA6B9iB,cAAc,CAACtrH,GAAf,CAAmB,SAAnB,CAAA,IAAiC,CAA9D,CAAd,CAAA;AACA,IAAA,IAAIv1B,IAAI,GAAGyuB,KAAK,CAACs3B,eAAN,EAAX,CAAA;AACAt3B,IAAAA,KAAK,CAACO,GAAN,CAAU,IAAIsuB,MAAJ,CAAS;MACjB9qB,EAAE,EAAE,CAAC,CADY;AAEjBoB,MAAAA,MAAM,EAAE,IAFS;AAGjBlrB,MAAAA,KAAK,EAAE;QACL7K,CAAC,EAAEmC,IAAI,CAACnC,CAAL,GAASilB,OAAO,CAAC,CAAD,CADd;QAELhlB,CAAC,EAAEkC,IAAI,CAAClC,CAAL,GAASglB,OAAO,CAAC,CAAD,CAFd;AAGLjc,QAAAA,KAAK,EAAE7G,IAAI,CAAC6G,KAAL,GAAaic,OAAO,CAAC,CAAD,CAApB,GAA0BA,OAAO,CAAC,CAAD,CAHnC;AAILhc,QAAAA,MAAM,EAAE9G,IAAI,CAAC8G,MAAL,GAAcgc,OAAO,CAAC,CAAD,CAArB,GAA2BA,OAAO,CAAC,CAAD,CAAA;OAP3B;AASjBphB,MAAAA,KAAK,EAAE;AACLC,QAAAA,IAAI,EAAEk/I,cAAc,CAACtrH,GAAf,CAAmB,iBAAnB,CADD;AAEL1zB,QAAAA,MAAM,EAAEg/I,cAAc,CAACtrH,GAAf,CAAmB,aAAnB,CAFH;AAGLvyB,QAAAA,SAAS,EAAE69I,cAAc,CAACtrH,GAAf,CAAmB,aAAnB,CAAA;AAHN,OAAA;AATU,KAAT,CAAV,CAAA,CAAA;GAJF,CAAA;AAoBA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAGEwgM,aAAa,CAAC34N,SAAd,CAAwB84N,mBAAxB,GAA8C,UAAUC,WAAV,EAAuBC,aAAvB,EAAsCxxN,IAAtC,EAA4C;IACxFA,IAAI,GAAGA,IAAI,IAAI,EAAf,CAAA;AACA,IAAA,IAAIyxN,UAAU,GAAGzxN,IAAI,CAACyxN,UAAtB,CAAA;IACA,IAAIx1E,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;AACA,IAAA,IAAIy1E,SAAS,GAAG,EAAhB,CAJwF;;IAMxF,IAAIF,aAAa,KAAK,OAAtB,EAA+B;AAC7B,MAAA,IAAIG,YAAY,GAAG11E,cAAc,CAACtrH,GAAf,CAAmB,cAAnB,CAAnB,CAAA;MACA+gM,SAAS,CAAC5zN,KAAV,GAAkB6zN,YAAlB,CAAA;AACD,KAAA;;IAED,SAASlhH,MAAT,CAAgBlxG,GAAhB,EAAqB;MACnB,OAAOmyN,SAAS,CAACnyN,GAAD,CAAhB,CAAA;AACD,KAAA;;AAED,IAAA,SAASmxG,MAAT,CAAgBnxG,GAAhB,EAAqBm4B,KAArB,EAA4B;AAC1Bg6L,MAAAA,SAAS,CAACnyN,GAAD,CAAT,GAAiBm4B,KAAjB,CAAA;AACD,KAAA;;AAED,IAAA,IAAI8qK,QAAQ,GAAGvmD,cAAc,CAACwxE,iBAAf,CAAiCgE,UAAU,IAAIx1E,cAAc,CAAC+mD,aAAf,CAA6BuuB,WAA7B,CAA/C,CAAf,CAAA;AACA,IAAA,IAAI/iH,WAAW,GAAG3B,aAAa,CAAC0B,kBAAd,CAAiCi0F,QAAjC,CAAlB,CAAA;AACAtiK,IAAAA,MAAA,CAAYsuE,WAAZ,EAAyB,UAAUjjG,IAAV,EAAgB;AACvC,MAAA,IAAIqmN,aAAa,GAAGpvB,QAAQ,CAACj3L,IAAD,CAA5B,CAAA;;AAEA,MAAA,IAAIvL,IAAI,CAAC6xN,qBAAL,IAA8BtmN,IAAI,KAAK,SAA3C,EAAsD;AACpDA,QAAAA,IAAI,GAAG,YAAP,CAAA;QACAqmN,aAAa,GAAGpvB,QAAQ,CAACK,iBAAzB,CAAA;AACD,OAAA;;MAED,IAAIh2F,aAAa,CAAC+B,SAAd,CAAwBrjG,IAAxB,EAA8BimN,aAA9B,CAAJ,EAAkD;QAChDI,aAAa,IAAIA,aAAa,CAACzkH,WAAd,CAA0BokH,WAA1B,EAAuC9gH,MAAvC,EAA+CC,MAA/C,CAAjB,CAAA;AACD,OAAA;KAVH,CAAA,CAAA;IAYA,OAAOghH,SAAS,CAACF,aAAD,CAAhB,CAAA;GAjCF,CAAA;;AAoCAL,EAAAA,aAAa,CAAC34N,SAAd,CAAwBs5N,aAAxB,GAAwC,UAAUjoM,KAAV,EAAiB;IACvD,IAAI4qB,KAAK,GAAG,IAAA,CAAKwnG,cAAjB,CAAA;IACA,IAAIlnI,GAAG,GAAG,IAAA,CAAKA,GAAf,CAAA;IACAq/B,eAAA,CAAuBvqB,KAAvB,EAA8B4qB,KAAK,CAACiI,kBAAN,EAA9B,EAA0D;AACxDz6C,MAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADiD;MAExDhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;KAFV,CAAA,CAAA;GAHF,CAAA;;AASAg2M,EAAAA,aAAa,CAAC34N,SAAd,CAAwB64N,QAAxB,GAAmC,UAAUp1E,cAAV,EAA0B11G,OAA1B,EAAmCxxB,GAAnC,EAAwCu0B,OAAxC,EAAiD,EAApF,CAAA;;EAEA6nL,aAAa,CAAC5lN,IAAd,GAAqB,WAArB,CAAA;AACA,EAAA,OAAO4lN,aAAP,CAAA;AACD,CAzHD,CAyHExrJ,aAzHF,CAFA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA,IAAIosJ,SAAS,GAAG,CAAC,CAAC,MAAD,EAAS,OAAT,EAAkB,OAAlB,CAAD,EAA6B,CAAC,KAAD,EAAQ,QAAR,EAAkB,QAAlB,CAA7B,CAAhB,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASC,YAAT,CAAsB/1E,cAAtB,EAAsClnI,GAAtC,EAA2Ck6G,QAA3C,EAAqD;AAC1D,EAAA,IAAIgjG,WAAW,GAAGh2E,cAAc,CAAC5yH,MAAjC,CAAA;AACA,EAAA,IAAIgyL,SAAS,GAAG4W,WAAW,CAACpsL,KAA5B,CAAA;;AAEA,EAAA,IAAIw1K,SAAS,IAAI,IAAb,IAAqBA,SAAS,KAAK,MAAvC,EAA+C;AAC7C,IAAA,OAAOA,SAAP,CAAA;AACD,GANyD;;;AAS1D,EAAA,IAAIn+D,MAAM,GAAG;AACXj7I,IAAAA,KAAK,EAAE8S,GAAG,CAACmG,QAAJ,EADI;IAEXhZ,MAAM,EAAE6S,GAAG,CAACoG,SAAJ,EAAA;GAFV,CAAA;EAIA,IAAI+2M,SAAS,GAAGD,WAAW,CAACj+H,MAAZ,KAAuB,YAAvB,GAAsC,CAAtC,GAA0C,CAA1D,CAAA;AACA,EAAA,IAAIm+H,KAAK,GAAGJ,SAAS,CAACG,SAAD,CAArB,CAAA;EACA,IAAIE,SAAS,GAAG,CAAC,CAAD,EAAI,IAAJ,EAAU,EAAV,CAAhB,CAAA;EACA,IAAIC,WAAW,GAAG,EAAlB,CAAA;;EAEA,KAAK,IAAIn2N,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAApB,EAAuBA,CAAC,EAAxB,EAA4B;AAC1Bm2N,IAAAA,WAAW,CAACN,SAAS,CAAC,CAAA,GAAIG,SAAL,CAAT,CAAyBh2N,CAAzB,CAAD,CAAX,GAA2Ck2N,SAAS,CAACl2N,CAAD,CAApD,CAAA;IACAm2N,WAAW,CAACF,KAAK,CAACj2N,CAAD,CAAN,CAAX,GAAwBA,CAAC,KAAK,CAAN,GAAU+yH,QAAQ,CAAC,CAAD,CAAlB,GAAwBgjG,WAAW,CAACE,KAAK,CAACj2N,CAAD,CAAN,CAA3D,CAAA;AACD,GAAA;;EAED,IAAIo2N,MAAM,GAAG,CAAC,CAAC,GAAD,EAAM,OAAN,EAAe,CAAf,CAAD,EAAoB,CAAC,GAAD,EAAM,QAAN,EAAgB,CAAhB,CAApB,CAAA,CAAwCJ,SAAxC,CAAb,CAAA;EACA,IAAI92N,IAAI,GAAGw8D,aAAa,CAACy6J,WAAD,EAAcn1E,MAAd,EAAsB+0E,WAAW,CAAC/zM,OAAlC,CAAxB,CAAA;EACA,OAAOi0M,KAAK,CAAC,CAAC/2N,IAAI,CAAC+iB,MAAL,CAAYm0M,MAAM,CAAC,CAAD,CAAlB,CAA0B,IAAA,CAA3B,IAAgCl3N,IAAI,CAACk3N,MAAM,CAAC,CAAD,CAAP,CAApC,GAAkDl3N,IAAI,CAACk3N,MAAM,CAAC,CAAD,CAAP,CAAJ,GAAkB,GAApE,GAA0Ep1E,MAAM,CAACo1E,MAAM,CAAC,CAAD,CAAP,CAAN,GAAoB,GAA9F,GAAoG,CAApG,GAAwG,CAAzG,CAAZ,CAAA;AACD,CAAA;AACD;AACA;AACA;AACA;AACA;;AAEO,SAASC,iBAAT,CAA2BhtD,KAA3B,EAAkCtpB,cAAlC,EAAkD;EACvD/7G,MAAA,CAAYqlI,KAAK,IAAI,EAArB,EAAyB,UAAUJ,SAAV,EAAqB;AAC5C,IAAA,IAAIA,SAAS,CAACx4I,SAAV,IAAuB,IAA3B,EAAiC;AAC/Bw4I,MAAAA,SAAS,CAACzN,eAAV,GAA4ByN,SAAS,CAACx4I,SAAtC,CAAA;MACAw4I,SAAS,CAACx4I,SAAV,GAAsB,IAAtB,CAAA;AACD,KAAA;;IAEDw4I,SAAS,CAACqtD,YAAV,GAAyB,WAAev2E,IAAAA,cAAc,GAAGA,cAAc,CAAC9yG,cAAlB,GAAmC,EAAhE,CAAzB,CAAA;GANF,CAAA,CAAA;AAQA,EAAA,OAAOo8H,KAAP,CAAA;AACD;;AC/FD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAyCA,IAAI3nH,SAAS,GAAGswB,WAAhB,CAAA;AACA,IAAIhpE,MAAI,GAAGg7B,MAAX,CAAA;AACA,IAAIrF,OAAO,GAAG7iC,IAAI,CAAC8iC,GAAnB,CAAA;AACA,IAAIC,OAAO,GAAG/iC,IAAI,CAAC0iB,GAAnB;;AAEA,IAAI+3M,eAAe,GAAG,EAAtB,CAAA;AACA,IAAIC,cAAc,GAAG,CAArB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIC,cAAc;AAClB;AACA,UAAUj2M,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACg2M,cAAD,EAAiBj2M,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAASi2M,cAAT,GAA0B;AACxB,IAAA,IAAI/1M,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaonN,cAAc,CAACpnN,IAA5B,CAAA;IACAqR,KAAK,CAACg2M,OAAN,GAAgB,EAAhB,CAAA;IACAh2M,KAAK,CAACi2M,aAAN,GAAsB,EAAtB,CAAA;IACAj2M,KAAK,CAACwuM,WAAN,GAAoB,EAApB,CAAA;IACAxuM,KAAK,CAACk2M,qBAAN,GAA8B,EAA9B,CAAA;AACA,IAAA,OAAOl2M,KAAP,CAAA;AACD,GAAA;;AAED+1M,EAAAA,cAAc,CAACn6N,SAAf,CAAyB64N,QAAzB,GAAoC,UAAUp1E,cAAV,EAA0B11G,OAA1B,EAAmCxxB,GAAnC,EAAwCu0B,OAAxC,EAAiD;IACnF,IAAK8mD,CAAAA,IAAL,GAAYr7E,GAAZ,CAAA;;AAEA,IAAA,IAAI,CAACu0B,OAAD,IAAYA,OAAO,CAAC/9B,IAAR,KAAiB,iBAA7B,IAAkD+9B,OAAO,CAAC2+C,IAAR,KAAiB,IAAA,CAAKxH,GAA5E,EAAiF;AAC/E,MAAA,IAAA,CAAKimI,UAAL,EAAA,CAAA;AACD,KAAA;GALH,CAAA;;AAQAiM,EAAAA,cAAc,CAACn6N,SAAf,CAAyBkuN,UAAzB,GAAsC,YAAY;IAChD,IAAK78L,CAAAA,KAAL,CAAW4D,SAAX,EAAA,CAAA;IACA,IAAIwuH,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;IACA,IAAIj5C,SAAS,GAAG,IAAA,CAAKn5E,KAArB,CAAA;AACA,IAAA,IAAA,CAAK6nJ,OAAL,GAAez1B,cAAc,CAACtrH,GAAf,CAAmB,QAAnB,CAAf,CAAA;AACA,IAAA,IAAA,CAAKoiM,UAAL,GAAkB92E,cAAc,CAACtrH,GAAf,CAAmB,YAAnB,CAAlB,CAAA;;AAEA,IAAA,IAAA,CAAKm2L,cAAL,EAAA,CAAA;;IAEA,IAAKkM,CAAAA,UAAL,CAAgBhwH,SAAhB,CAAA,CAAA;;AAEA,IAAA,IAAIiwH,aAAa,GAAGh3E,cAAc,CAACtrH,GAAf,CAAmB,MAAnB,CAApB,CAAA;;AAEA,IAAA,IAAA,CAAKuiM,eAAL,CAAqBlwH,SAArB,EAAgCiwH,aAAhC,EAA+C,CAA/C,CAAA,CAAA;;IAEA,IAAKC,CAAAA,eAAL,CAAqBlwH,SAArB,EAAgCiwH,aAAhC,EAA+C,CAA/C,EAfgD;;;AAkBhD,IAAA,IAAA,CAAKtM,WAAL,CAAiB,IAAjB,CAAA,CAlBgD;AAmBhD;;;AAGA,IAAA,IAAA,CAAKv8G,gBAAL,CAAsBpH,SAAtB,CAAA,CAtBgD;;AAwBhD,IAAA,IAAA,CAAK2jH,WAAL,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAKwM,wBAAL,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAKC,0BAAL,EAAA,CAAA;;IAEA,IAAKtB,CAAAA,aAAL,CAAmB9uH,SAAnB,CAAA,CAAA;GA9BF,CAAA;;EAiCA2vH,cAAc,CAACn6N,SAAf,CAAyB06N,eAAzB,GAA2C,UAAUrpM,KAAV,EAAiBopM,aAAjB,EAAgCI,SAAhC,EAA2C;IACpF,IAAI,CAACJ,aAAL,EAAoB;AAClB,MAAA,OAAA;AACD,KAHmF;;;AAMpF,IAAA,IAAIvzN,IAAI,GAAGuzN,aAAa,CAAC,CAAA,GAAII,SAAL,CAAxB,CAAA;IACA3zN,IAAI,GAAGA,IAAI,IAAI,IAAR,GAAeA,IAAI,GAAG,EAAtB,GAA2B,EAAlC,CAAA;IACA,IAAIu8I,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;AACA,IAAA,IAAI4zE,OAAO,GAAG5zE,cAAc,CAACtrH,GAAf,CAAmB,SAAnB,CAAd,CAAA;AACA,IAAA,IAAIs+F,QAAQ,GAAGgtB,cAAc,CAAChtB,QAA9B,CAAA;AACA,IAAA,IAAI83F,QAAQ,GAAG,IAAK6L,CAAAA,OAAL,CAAa1mB,SAA5B,CAAA;;AAEA,IAAA,IAAI5vL,QAAQ,GAAG,IAAKg3M,CAAAA,eAAL,CAAqB,CAACrkG,QAAQ,CAAC,CAAD,CAAR,GAAc,CAAf,EAAkBokG,SAAS,KAAK,CAAd,GAAkB,CAACxD,OAAnB,GAA6B5gG,QAAQ,CAAC,CAAD,CAAR,GAAc4gG,OAA7D,CAArB,EAA4F9I,QAA5F,CAAf,CAAA;;AAEA,IAAA,IAAIlhL,KAAK,GAAG,IAAKytL,CAAAA,eAAL,CAAqBD,SAAS,KAAK,CAAd,GAAkB,QAAlB,GAA6B,KAAlD,EAAyDtM,QAAzD,CAAZ,CAAA;;IAEA,IAAI/yH,MAAM,GAAG,IAAA,CAAK09E,OAAlB,CAAA;AACA,IAAA,IAAIx0G,cAAc,GAAG,IAAK++E,CAAAA,cAAL,CAAoB/+E,cAAzC,CAAA;IACA,IAAKrzC,CAAAA,KAAL,CAAWO,GAAX,CAAe,IAAImF,MAAJ,CAAiB;AAC9BzyB,MAAAA,KAAK,EAAEghE,eAAe,CAACZ,cAAD,EAAiB;AACrCjkE,QAAAA,CAAC,EAAEqjB,QAAQ,CAAC,CAAD,CAD0B;AAErCpjB,QAAAA,CAAC,EAAEojB,QAAQ,CAAC,CAAD,CAF0B;AAGrCwpB,QAAAA,aAAa,EAAEkuD,MAAM,KAAK,YAAX,GAA0B,QAA1B,GAAqCnuD,KAHf;AAIrCA,QAAAA,KAAK,EAAEmuD,MAAM,KAAK,YAAX,GAA0BnuD,KAA1B,GAAkC,QAJJ;AAKrCnmC,QAAAA,IAAI,EAAEA,IAAAA;OALc,CAAA;AADQ,KAAjB,CAAf,CAAA,CAAA;GAnBF,CAAA;;AA8BAizN,EAAAA,cAAc,CAACn6N,SAAf,CAAyBw6N,UAAzB,GAAsC,UAAUlmB,WAAV,EAAuB;IAC3D,IAAI7wD,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;IACA,IAAIs3E,MAAM,GAAG,IAAA,CAAKX,OAAlB,CAAA;AACA,IAAA,IAAI3jG,QAAQ,GAAGgtB,cAAc,CAAChtB,QAA9B,CAAA;IACA,IAAIj7B,MAAM,GAAG,IAAA,CAAK09E,OAAlB,CAAA;IACA,IAAInuG,SAAS,GAAG,IAAA,CAAKwvJ,UAArB,CAAA;AACA,IAAA,IAAI1X,SAAS,GAAG/7G,YAAA,CAAoB28C,cAApB,EAAoC,IAAKlnI,CAAAA,GAAzC,EAA8Ck6G,QAA9C,CAAhB,CAAA;;IAEA,IAAIi9E,SAAS,GAAGqnB,MAAM,CAACrnB,SAAP,GAAmB,IAAKsnB,CAAAA,eAAL,CAAqBnY,SAArB,CAAnC,CAAA;;AAEA,IAAA,IAAIoY,gBAAgB,GAAG,IAAIlkM,OAAJ,EAAvB,CAAA;AACA28K,IAAAA,SAAS,CAAC9hL,GAAV,CAAcqpM,gBAAd,EAX2D;;IAa3DA,gBAAgB,CAACrpM,GAAjB,CAAqBmpM,MAAM,CAAC55E,UAAP,GAAoB+5E,aAAa,EAAtD,CAAA,CAAA;IACAD,gBAAgB,CAACrpM,GAAjB,CAAqBmpM,MAAM,CAAC75E,OAAP,GAAiBg6E,aAAa,CAAC,IAAD,EAAOnwJ,SAAS,GAAG0mJ,SAAS,CAAC,IAAA,CAAKv4C,OAAN,CAAZ,GAA6B,IAA7C,EAAmDxxI,MAAA,CAAY,KAAKyzL,WAAjB,EAA8B,IAA9B,EAAoC,KAApC,EAA2C,KAA3C,CAAnD,EAAsGzzL,MAAA,CAAY,IAAKyzL,CAAAA,WAAjB,EAA8B,IAA9B,EAAoC,KAApC,EAA2C,IAA3C,CAAtG,CAAnD,CAAA,CAd2D;;AAgB3DF,IAAAA,gBAAgB,CAACrhN,WAAjB,CAA6B,IAAImd,MAAJ,CAAiB;AAC5CzrB,MAAAA,KAAK,EAAE;AACL7K,QAAAA,CAAC,EAAE,CADE;AAELC,QAAAA,CAAC,EAAE,CAFE;AAGL+I,QAAAA,KAAK,EAAEgtH,QAAQ,CAAC,CAAD,CAHV;AAIL/sH,QAAAA,MAAM,EAAE+sH,QAAQ,CAAC,CAAD,CAJX;AAKLn1H,QAAAA,CAAC,EAAE,CAAA;AALE,OAAA;AADqC,KAAjB,CAA7B,CAAA,CAAA;IASA,IAAIgnD,QAAQ,GAAGm7F,cAAc,CAAC/+E,cAAf,CAA8BqmC,WAA9B,CAA0C,GAA1C,CAAf,CAAA;AACA,IAAA,IAAIqwH,QAAQ,GAAG74L,OAAO,CAAC+lB,QAAQ,CAAC7+C,KAAV,EAAiB6+C,QAAQ,CAAC5+C,MAA1B,CAAtB,CA1B2D;;AA4B3D,IAAA,IAAIqhE,SAAJ,EAAe;MACbgwJ,MAAM,CAACM,YAAP,GAAsB,EAAtB,CAAA;MACAN,MAAM,CAAC1J,YAAP,GAAsB,EAAtB,CAAA;MACA0J,MAAM,CAACO,iBAAP,GAA2B,EAA3B,CAAA;;AAEA,MAAA,IAAA,CAAKC,aAAL,CAAmB93E,cAAnB,EAAmCiwD,SAAnC,EAA8C,CAA9C,EAAiDj9E,QAAjD,EAA2D2kG,QAA3D,EAAqE5/H,MAArE,CAAA,CAAA;;AAEA,MAAA,IAAA,CAAK+/H,aAAL,CAAmB93E,cAAnB,EAAmCiwD,SAAnC,EAA8C,CAA9C,EAAiDj9E,QAAjD,EAA2D2kG,QAA3D,EAAqE5/H,MAArE,CAAA,CAAA;AACD,KAAA;;IAED,IAAKggI,CAAAA,gBAAL,CAAsB/3E,cAAtB,EAAsCiwD,SAAtC,EAAiDj9E,QAAjD,EAA2D2kG,QAA3D,EAAqE5/H,MAArE,CAAA,CAAA;;IAEA84G,WAAW,CAAC1iL,GAAZ,CAAgB8hL,SAAhB,CAAA,CAAA;GAxCF,CAAA;;AA2CAymB,EAAAA,cAAc,CAACn6N,SAAf,CAAyBu7N,aAAzB,GAAyC,UAAU93E,cAAV,EAA0BiwD,SAA1B,EAAqCj4E,WAArC,EAAkDhF,QAAlD,EAA4D2kG,QAA5D,EAAsE5/H,MAAtE,EAA8E;AACrH,IAAA,IAAIigI,OAAO,GAAG/zL,MAAA,CAAY,IAAA,CAAKyzL,WAAjB,EAA8B,IAA9B,EAAoC1/F,WAApC,EAAiD,KAAjD,CAAd,CAAA;AACA,IAAA,IAAIigG,SAAS,GAAGh0L,MAAA,CAAY,IAAA,CAAKyzL,WAAjB,EAA8B,IAA9B,EAAoC1/F,WAApC,EAAiD,IAAjD,CAAhB,CAAA;AACA,IAAA,IAAIkJ,UAAU,GAAGpgF,cAAY,CAACk/F,cAAc,CAACtrH,GAAf,CAAmB,YAAnB,CAAD,EAAmCs+F,QAAQ,CAAC,CAAD,CAA3C,CAA7B,CAAA;AACA,IAAA,IAAIklG,WAAW,GAAGnqM,cAAY,CAACiyH,cAAc,CAACtrH,GAAf,CAAmB,YAAnB,CAAD,EAAmC,CAACwsG,UAAD,GAAc,CAAjD,EAAoD,CAACA,UAAD,GAAc,CAAlE,EAAqEA,UAArE,EAAiFA,UAAjF,EAA6F,IAA7F,EAAmG,IAAnG,CAA9B,CAAA;AACA,IAAA,IAAIpuG,MAAM,GAAGk7L,SAAS,CAAC,IAAA,CAAKv4C,OAAN,CAAtB,CAAA;IACAyiD,WAAW,CAACxmM,IAAZ,CAAiB;AACfoB,MAAAA,MAAM,EAAEA,MADO;AAEfF,MAAAA,SAAS,EAAE,IAFI;AAGff,MAAAA,KAAK,EAAEmmM,OAHQ;AAIfl3F,MAAAA,SAAS,EAAEm3F,SAJI;MAKf/2D,WAAW,EAAE,SAAUrhK,WAAAA,CAAAA,CAAV,EAAa;AACxBi1E,QAAAA,IAAA,CAAej1E,CAAC,CAACy/C,KAAjB,CAAA,CAAA;AACD,OAAA;KAPH,CAAA,CAAA;IASA44K,WAAW,CAACl7N,CAAZ,GAAgBg2H,QAAQ,CAAC,CAAD,CAAR,GAAc,CAA9B,CAAA;IACAklG,WAAW,CAAChjM,QAAZ,CAAqB8qH,cAAc,CAACxrH,QAAf,CAAwB,aAAxB,CAAuCC,CAAAA,YAAvC,EAArB,CAAA,CAAA;IACAyjM,WAAW,CAAC9pM,QAAZ,CAAqB;AACnBpsB,MAAAA,aAAa,EAAE,IADI;AAEnBK,MAAAA,WAAW,EAAE,IAAA;KAFf,CAAA,CAAA;AAIA61N,IAAAA,WAAW,CAACr3N,KAAZ,CAAkBsB,SAAlB,IAA+B,CAA/B,CAAA;AACA+1N,IAAAA,WAAW,CAAC9hM,WAAZ,CAAwB,UAAxB,CAAoCv1B,CAAAA,KAApC,GAA4Cm/I,cAAc,CAACxrH,QAAf,CAAwB,CAAC,UAAD,EAAa,aAAb,CAAxB,CAAA,CAAqDC,YAArD,EAA5C,CAAA;AACA+5E,IAAAA,uBAAuB,CAAC0pH,WAAD,EAAc,IAAd,CAAvB,CAAA;AACAjoB,IAAAA,SAAS,CAAC9hL,GAAV,CAAc+pM,WAAd,EAxBqH;AAyBrH;AACA;AACA;;AAEA,IAAA,IAAIj3J,cAAc,GAAG,IAAK++E,CAAAA,cAAL,CAAoB/+E,cAAzC,CAAA;AACA,IAAA,IAAIk3J,WAAW,GAAG,IAAI7kM,MAAJ,CAAiB;AACjCR,MAAAA,MAAM,EAAEA,MADyB;AAEjCF,MAAAA,SAAS,EAAE,IAFsB;AAGjCf,MAAAA,KAAK,EAAEmmM,OAH0B;MAIjC92D,WAAW,EAAE,SAAUrhK,WAAAA,CAAAA,CAAV,EAAa;AACxB;AACAi1E,QAAAA,IAAA,CAAej1E,CAAC,CAACy/C,KAAjB,CAAA,CAAA;OAN+B;AAQjCwhF,MAAAA,SAAS,EAAEm3F,SARsB;AASjCp3N,MAAAA,KAAK,EAAEghE,eAAe,CAACZ,cAAD,EAAiB;AACrCjkE,QAAAA,CAAC,EAAE,CADkC;AAErCC,QAAAA,CAAC,EAAE,CAFkC;AAGrCwG,QAAAA,IAAI,EAAE,EAAA;OAHc,CAAA;AATW,KAAjB,CAAlB,CAAA;AAeA00N,IAAAA,WAAW,CAAC/hM,WAAZ,CAAwB,MAAxB,CAAA,CAAgCv1B,KAAhC,GAAwC;AACtCa,MAAAA,OAAO,EAAE,GAAA;KADX,CAAA;IAGAy2N,WAAW,CAACC,eAAZ,GAA8B;AAC5B9pL,MAAAA,QAAQ,EAAE,GAAA;KADZ,CAAA;AAGA,IAAA,IAAA,CAAK1gB,KAAL,CAAWO,GAAX,CAAegqM,WAAf,CAAA,CAAA;AACA,IAAA,IAAIE,gBAAgB,GAAG,CAACn3F,UAAD,EAAa,CAAb,CAAvB,CAAA;IACA,IAAIo2F,MAAM,GAAG,IAAA,CAAKX,OAAlB,CAAA;AACAW,IAAAA,MAAM,CAACM,YAAP,CAAoB5/F,WAApB,IAAmCkgG,WAAnC,CAAA;AACAZ,IAAAA,MAAM,CAACO,iBAAP,CAAyB7/F,WAAzB,IAAwCqgG,gBAAxC,CAAA;AACAf,IAAAA,MAAM,CAAC1J,YAAP,CAAoB51F,WAApB,IAAmCmgG,WAAnC,CAAA;GAxDF,CAAA;;AA2DAzB,EAAAA,cAAc,CAACn6N,SAAf,CAAyBw7N,gBAAzB,GAA4C,UAAU/3E,cAAV,EAA0BiwD,SAA1B,EAAqCj9E,QAArC,EAA+C2kG,QAA/C,EAAyD5/H,MAAzD,EAAiE;AAC3G,IAAA,IAAIl1E,KAAK,GAAGi+B,cAAY,CAACk/F,cAAc,CAACtrH,GAAf,CAAmB,eAAnB,CAAD,EAAsCs+F,QAAQ,CAAC,CAAD,CAA9C,CAAxB,CAAA;AACA,IAAA,IAAIpmD,SAAS,GAAG7+C,cAAY,CAACiyH,cAAc,CAACtrH,GAAf,CAAmB,eAAnB,CAAD,EAAsC,CAAC7R,KAAD,GAAS,CAA/C,EAAkD,CAACA,KAAD,GAAS,CAA3D,EAA8DA,KAA9D,EAAqEA,KAArE,EAA4E,IAA5E,EAAkF,IAAlF,CAA5B,CAAA;IACA+pD,SAAS,CAACl7C,IAAV,CAAe;AACboB,MAAAA,MAAM,EAAE,MADK;AAEb1U,MAAAA,SAAS,EAAE,IAFE;AAGb2U,MAAAA,MAAM,EAAE,IAHK;AAIb/1B,MAAAA,CAAC,EAAEg2H,QAAQ,CAAC,CAAD,CAAR,GAAc,CAAA;KAJnB,CAAA,CAAA;IAMA,IAAIgiG,cAAc,GAAGh1E,cAAc,CAACxrH,QAAf,CAAwB,gBAAxB,CAA0CC,CAAAA,YAA1C,EAArB,CAAA;;IAEA,IAAIm4C,SAAS,YAAYjrE,OAAzB,EAAkC;AAChC,MAAA,IAAIszB,SAAS,GAAG23C,SAAS,CAAC/rE,KAA1B,CAAA;AACA+rE,MAAAA,SAAS,CAAC13C,QAAV,CAAmB+O,MAAA,CAAc;AAC/B;QACA3zB,KAAK,EAAE2kB,SAAS,CAAC3kB,KAFc;QAG/BtT,CAAC,EAAEi4B,SAAS,CAACj4B,CAHkB;QAI/BC,CAAC,EAAEg4B,SAAS,CAACh4B,CAJkB;QAK/B+I,KAAK,EAAEivB,SAAS,CAACjvB,KALc;QAM/BC,MAAM,EAAEgvB,SAAS,CAAChvB,MAAAA;OAND,EAOhB+uN,cAPgB,CAAnB,CAAA,CAAA;AAQD,KAVD,MAUO;MACLpoJ,SAAS,CAAC13C,QAAV,CAAmB8/L,cAAnB,CAAA,CAAA;AACD,KAAA;;IAED/kB,SAAS,CAAC9hL,GAAV,CAAcy+C,SAAd,CAAA,CAAA;AACA,IAAA,IAAI3L,cAAc,GAAG,IAAK++E,CAAAA,cAAL,CAAoB/+E,cAAzC,CAAA;AACA,IAAA,IAAIq3J,cAAc,GAAG,IAAIhlM,MAAJ,CAAiB;AACpCP,MAAAA,MAAM,EAAE,IAD4B;AAEpC3U,MAAAA,SAAS,EAAE,IAFyB;AAGpCvd,MAAAA,KAAK,EAAEghE,eAAe,CAACZ,cAAD,EAAiB;AACrCjkE,QAAAA,CAAC,EAAE,CADkC;AAErCC,QAAAA,CAAC,EAAE,CAFkC;AAGrCwG,QAAAA,IAAI,EAAE,EAAA;OAHc,CAAA;AAHc,KAAjB,CAArB,CAAA;AASA,IAAA,IAAA,CAAKmqB,KAAL,CAAWO,GAAX,CAAemqM,cAAf,CAAA,CAAA;IACA,IAAIC,mBAAmB,GAAG,CAAC,CAACxgI,MAAM,KAAK,YAAX,GAA0B4/H,QAAQ,GAAG,CAArC,GAAyClB,cAA1C,IAA4DzjG,QAAQ,CAAC,CAAD,CAAR,GAAc,CAA3E,EAA8E,CAA9E,CAA1B,CAAA;IACA,IAAIskG,MAAM,GAAG,IAAA,CAAKX,OAAlB,CAAA;IACAW,MAAM,CAAC1qJ,SAAP,GAAmBA,SAAnB,CAAA;IACA0qJ,MAAM,CAACgB,cAAP,GAAwBA,cAAxB,CAAA;IACAhB,MAAM,CAACiB,mBAAP,GAA6BA,mBAA7B,CAAA;IACA,IAAKC,CAAAA,mBAAL,GAA2B,IAA3B,CAAA;GA1CF,CAAA;;EA6CA9B,cAAc,CAACn6N,SAAf,CAAyBm7N,WAAzB,GAAuC,UAAU1/F,WAAV,EAAuBriF,KAAvB;EACvC5e,EADuC,EACnCC,EADmC,EAC/B;IACN,IAAI,CAAC,IAAK8/L,CAAAA,UAAV,EAAsB;AACpB,MAAA,OAAA;AACD,KAAA;;IAED,IAAKriJ,CAAAA,SAAL,GAAiB,CAAC9+B,KAAlB,CAAA;;IAEA,IAAI,CAACA,KAAL,EAAY;AACV;AACA,MAAA,IAAI89J,MAAM,GAAG,IAAA,CAAK4jB,eAAL,CAAqB,CAACtgM,EAAD,EAAKC,EAAL,CAArB,EAA+B,IAAK2/L,CAAAA,OAAL,CAAa1mB,SAA5C,EAAuD,IAAvD,CAAb,CAAA;;AAEA,MAAA,IAAA,CAAKmf,eAAL,CAAqBp3F,WAArB,EAAkCy7E,MAAM,CAAC,CAAD,CAAxC,CAAA,CAAA;;MAEA,IAAKglB,CAAAA,cAAL,GANU;AAOV;;;AAGA,MAAA,IAAA,CAAK/N,WAAL,EAAA,CAAA;AACD,KAlBK;;;IAqBN,IAAI/0K,KAAK,KAAK,CAAC,IAAKqqG,CAAAA,cAAL,CAAoBtrH,GAApB,CAAwB,UAAxB,CAAf,EAAoD;AAClD;MACA,IAAK5b,CAAAA,GAAL,CAASwiC,cAAT,CAAwB;AACtBhsC,QAAAA,IAAI,EAAE,iBADgB;QAEtB08E,IAAI,EAAE,KAAKxH,GAFW;AAGtBk0I,QAAAA,WAAW,EAAE,IAAA,CAAK14E,cAAL,CAAoB5vI,EAHX;AAItBmjF,QAAAA,QAAQ,EAAE,IAAA,CAAKqjI,aAAL,CAAmBtxM,KAAnB,EAAA;OAJZ,CAAA,CAAA;AAMD,KAAA;;AAED,IAAA,IAAIqwB,KAAJ,EAAW;AACT,MAAA,CAAC,IAAKgjL,CAAAA,SAAN,IAAmB,IAAA,CAAKC,uBAAL,EAAnB,CAAA;AACD,KAFD,MAEO,IAAIC,oBAAoB,CAAC,IAAK74E,CAAAA,cAAN,CAAxB,EAA+C;MACpD,IAAK84E,CAAAA,oBAAL,CAA0B,IAAK3J,CAAAA,WAAL,CAAiBn3F,WAAjB,CAA1B,EAAyD,KAAzD,CAAA,CAAA;AACD,KAAA;GApCH,CAAA;;AAuCA0+F,EAAAA,cAAc,CAACn6N,SAAf,CAAyBsuN,cAAzB,GAA0C,YAAY;IACpD,IAAI7qE,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;IACA,IAAI8vE,YAAY,GAAG,IAAK8G,CAAAA,aAAL,GAAqB52E,cAAc,CAACwzE,WAAf,EAAxC,CAAA;AACA,IAAA,IAAIhiH,UAAU,GAAGwuC,cAAc,CAAC1kH,SAAf,EAAjB,CAAA;IACA,IAAIy3F,UAAU,GAAG,CAAC,CAAD,EAAIitB,cAAc,CAAChtB,QAAf,CAAwB,CAAxB,CAAJ,CAAjB,CAAA;AACA,IAAA,IAAA,CAAKm8F,WAAL,GAAmB,CAACxtK,SAAS,CAACmuK,YAAY,CAAC,CAAD,CAAb,EAAkBt+G,UAAlB,EAA8BuhB,UAA9B,EAA0C,IAA1C,CAAV,EAA2DpxE,SAAS,CAACmuK,YAAY,CAAC,CAAD,CAAb,EAAkBt+G,UAAlB,EAA8BuhB,UAA9B,EAA0C,IAA1C,CAApE,CAAnB,CAAA;GALF,CAAA;AAOA;AACF;AACA;AACA;AACA;AACA;;;EAGE2jG,cAAc,CAACn6N,SAAf,CAAyB6yN,eAAzB,GAA2C,UAAUp3F,WAAV,EAAuB51B,KAAvB,EAA8B;IACvEA,KAAK,GAAGA,KAAK,IAAI,CAAjB,CAAA;IACA,IAAI49C,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;IACA,IAAIjoB,UAAU,GAAG,IAAA,CAAKo3F,WAAtB,CAAA;IACA,IAAIp8F,UAAU,GAAG,CAAC,CAAD,EAAIitB,cAAc,CAAChtB,QAAf,CAAwB,CAAxB,CAAJ,CAAjB,CAAA;IACA8E,UAAU,CAAC11B,KAAD,EAAQ21B,UAAR,EAAoBhF,UAApB,EAAgCiF,WAAhC;AACV,IAAA,CADU,CAAV,CAAA;AAEA,IAAA,IAAIxmB,UAAU,GAAGwuC,cAAc,CAAC1kH,SAAf,EAAjB,CAPuE;;AASvE,IAAA,IAAA,CAAKs7L,aAAL,GAAqB,CAACj1K,SAAS,CAACo2E,UAAU,CAAC,CAAD,CAAX,EAAgBhF,UAAhB,EAA4BvhB,UAA5B,EAAwC,IAAxC,CAAV,EAAyD7vD,SAAS,CAACo2E,UAAU,CAAC,CAAD,CAAX,EAAgBhF,UAAhB,EAA4BvhB,UAA5B,EAAwC,IAAxC,CAAlE,CAArB,CAAA;GATF,CAAA;;AAYAklH,EAAAA,cAAc,CAACn6N,SAAf,CAAyBmuN,WAAzB,GAAuC,UAAUqO,SAAV,EAAqB;IAC1D,IAAI/4E,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;AACA,IAAA,IAAIxuC,UAAU,GAAGwuC,cAAc,CAAC1kH,SAAf,EAAjB,CAAA;IACA,IAAIg8L,MAAM,GAAG,IAAA,CAAKX,OAAlB,CAAA;IACA,IAAIqC,oBAAoB,GAAG,CAAC,CAAD,EAAIh5E,cAAc,CAAChtB,QAAf,CAAwB,CAAxB,CAAJ,CAA3B,CAAA;AACA,IAAA,IAAIimG,iBAAiB,GAAGF,SAAS,GAAGC,oBAAH,GAA0B,KAAK7J,WAAhE,CAAA;;AAEA,IAAA,IAAI+J,aAAa,GAAG,IAAKC,CAAAA,gBAAL,CAAsB,IAAA,CAAKvC,aAA3B,EAA0CplH,UAA1C,EAAsDynH,iBAAtD,EAAyE,SAAzE,CAApB,CAAA;;AAEA,IAAA,IAAIG,gBAAgB,GAAG,IAAKD,CAAAA,gBAAL,CAAsB3nH,UAAtB,EAAkCA,UAAlC,EAA8CwnH,oBAA9C,EAAoE,YAApE,CAAvB,CAAA;;AAEA1B,IAAAA,MAAM,CAAC75E,OAAP,CAAervH,QAAf,CAAwB;AACtBttB,MAAAA,IAAI,EAAEo4N,aAAa,CAACG,QADE;;AAAA,KAAxB,EAGGrtL,QAHH,CAGY,QAHZ,EAGsBktL,aAAa,CAACI,SAHpC,CAAA,CAAA;AAIAhC,IAAAA,MAAM,CAAC55E,UAAP,CAAkBtvH,QAAlB,CAA2B;AACzBttB,MAAAA,IAAI,EAAEs4N,gBAAgB,CAACC,QADE;;AAAA,KAA3B,EAGGrtL,QAHH,CAGY,QAHZ,EAGsBotL,gBAAgB,CAACE,SAHvC,CAAA,CAAA;;AAKA,IAAA,IAAA,CAAKC,aAAL,CAAmBN,iBAAnB,EAAsCC,aAAtC,CAAA,CAAA;GApBF,CAAA;;AAuBAxC,EAAAA,cAAc,CAACn6N,SAAf,CAAyB48N,gBAAzB,GAA4C,UAAUrJ,YAAV,EAAwBt+G,UAAxB,EAAoCumB,UAApC,EAAgDy9F,UAAhD,EAA4D;AACtG,IAAA,IAAIzxN,IAAI,GAAG;AACTyxN,MAAAA,UAAU,EAAEA,UADH;AAETI,MAAAA,qBAAqB,EAAE,IAAA;KAFzB,CAAA;;IAKA,IAAI5hN,UAAU,GAAG,IAAKwlN,CAAAA,kBAAL,CAAwB1J,YAAxB,EAAsC/rN,IAAtC,CAAjB,CAAA;;AAEA,IAAA,IAAI01N,WAAW,GAAG,CAAC,IAAA,CAAKpE,mBAAL,CAAyBvF,YAAY,CAAC,CAAD,CAArC,EAA0C,YAA1C,EAAwD/rN,IAAxD,CAAD,EAAgE,IAAKsxN,CAAAA,mBAAL,CAAyBvF,YAAY,CAAC,CAAD,CAArC,EAA0C,YAA1C,EAAwD/rN,IAAxD,CAAhE,CAAlB,CAAA;;IAEA,IAAIu1N,SAAS,GAAG,IAAKI,CAAAA,gBAAL,CAAsB3hG,UAAtB,EAAkC0hG,WAAlC,CAAhB,CAAA;;IAEA,OAAO;AACLJ,MAAAA,QAAQ,EAAE,IAAIh+I,cAAJ,CAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,CAA5B,EAA+BrnE,UAA/B,CADL;AAELslN,MAAAA,SAAS,EAAEA,SAFN;AAGLK,MAAAA,YAAY,EAAE,CAAC3lN,UAAU,CAAC,CAAD,CAAV,CAAcnS,KAAf,EAAsBmS,UAAU,CAACA,UAAU,CAACzU,MAAX,GAAoB,CAArB,CAAV,CAAkCsC,KAAxD,CAAA;KAHhB,CAAA;GAZF,CAAA;;EAmBA60N,cAAc,CAACn6N,SAAf,CAAyBi9N,kBAAzB,GAA8C,UAAU1J,YAAV,EAAwB/rN,IAAxB,EAA8B;AAC1E;AACA;AACA;AACA,IAAA,IAAI61N,YAAY,GAAG,GAAnB,CAJ0E;;IAM1E,IAAI5lN,UAAU,GAAG,EAAjB,CAAA;AACA,IAAA,IAAI0b,IAAI,GAAG,CAACogM,YAAY,CAAC,CAAD,CAAZ,GAAkBA,YAAY,CAAC,CAAD,CAA/B,IAAsC8J,YAAjD,CAAA;IACA5lN,UAAU,CAAC1T,IAAX,CAAgB;AACduB,MAAAA,KAAK,EAAE,IAAA,CAAKwzN,mBAAL,CAAyBvF,YAAY,CAAC,CAAD,CAArC,EAA0C,OAA1C,EAAmD/rN,IAAnD,CADO;AAEdkQ,MAAAA,MAAM,EAAE,CAAA;KAFV,CAAA,CAAA;;IAKA,KAAK,IAAIhU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG25N,YAApB,EAAkC35N,CAAC,EAAnC,EAAuC;MACrC,IAAI45N,SAAS,GAAG/J,YAAY,CAAC,CAAD,CAAZ,GAAkBpgM,IAAI,GAAGzvB,CAAzC,CAAA;;AAEA,MAAA,IAAI45N,SAAS,GAAG/J,YAAY,CAAC,CAAD,CAA5B,EAAiC;AAC/B,QAAA,MAAA;AACD,OAAA;;MAED97M,UAAU,CAAC1T,IAAX,CAAgB;QACduB,KAAK,EAAE,KAAKwzN,mBAAL,CAAyBwE,SAAzB,EAAoC,OAApC,EAA6C91N,IAA7C,CADO;QAEdkQ,MAAM,EAAEhU,CAAC,GAAG25N,YAAAA;OAFd,CAAA,CAAA;AAID,KAAA;;IAED5lN,UAAU,CAAC1T,IAAX,CAAgB;AACduB,MAAAA,KAAK,EAAE,IAAA,CAAKwzN,mBAAL,CAAyBvF,YAAY,CAAC,CAAD,CAArC,EAA0C,OAA1C,EAAmD/rN,IAAnD,CADO;AAEdkQ,MAAAA,MAAM,EAAE,CAAA;KAFV,CAAA,CAAA;AAIA,IAAA,OAAOD,UAAP,CAAA;GA9BF,CAAA;;EAiCA0iN,cAAc,CAACn6N,SAAf,CAAyBm9N,gBAAzB,GAA4C,UAAU3hG,UAAV,EAAsB0hG,WAAtB,EAAmC;AAC7E,IAAA,IAAIzmG,QAAQ,GAAG,IAAKgtB,CAAAA,cAAL,CAAoBhtB,QAAnC,CAAA;IACA,OAAO,CAAC,CAACA,QAAQ,CAAC,CAAD,CAAR,GAAcymG,WAAW,CAAC,CAAD,CAA1B,EAA+B1hG,UAAU,CAAC,CAAD,CAAzC,CAAD,EAAgD,CAAC/E,QAAQ,CAAC,CAAD,CAAT,EAAc+E,UAAU,CAAC,CAAD,CAAxB,CAAhD,EAA8E,CAAC/E,QAAQ,CAAC,CAAD,CAAT,EAAc+E,UAAU,CAAC,CAAD,CAAxB,CAA9E,EAA4G,CAAC/E,QAAQ,CAAC,CAAD,CAAR,GAAcymG,WAAW,CAAC,CAAD,CAA1B,EAA+B1hG,UAAU,CAAC,CAAD,CAAzC,CAA5G,CAAP,CAAA;GAFF,CAAA;;AAKA2+F,EAAAA,cAAc,CAACn6N,SAAf,CAAyBg7N,eAAzB,GAA2C,UAAUnY,SAAV,EAAqB;IAC9D,IAAIrnH,MAAM,GAAG,IAAA,CAAK09E,OAAlB,CAAA;IACA,IAAIhzI,OAAO,GAAG,IAAKu9G,CAAAA,cAAL,CAAoBtrH,GAApB,CAAwB,SAAxB,CAAd,CAAA;IACA,OAAO,IAAIpB,OAAJ,CAAkBykE,MAAM,KAAK,YAAX,IAA2B,CAACt1D,OAA5B,GAAsC;MAC7DnwB,MAAM,EAAE8sM,SAAS,KAAK,QAAd,GAAyB,CAAzB,GAA6B,CAAC,CADuB;AAE7DrwL,MAAAA,QAAQ,EAAEhzB,IAAI,CAACI,EAAL,GAAU,CAAA;AAFyC,KAAtC,GAGrB47F,MAAM,KAAK,YAAX,IAA2Bt1D,OAA3B,GAAqC;MACvCnwB,MAAM,EAAE8sM,SAAS,KAAK,QAAd,GAAyB,CAAC,CAA1B,GAA8B,CADC;AAEvCrwL,MAAAA,QAAQ,EAAE,CAAChzB,IAAI,CAACI,EAAN,GAAW,CAAA;AAFkB,KAArC,GAGA47F,MAAM,KAAK,UAAX,IAAyB,CAACt1D,OAA1B,GAAoC;MACtCnwB,MAAM,EAAE8sM,SAAS,KAAK,MAAd,GAAuB,CAAvB,GAA2B,CAAC,CADE;AAEtC7sM,MAAAA,MAAM,EAAE,CAAC,CAAA;AAF6B,KAApC,GAGA;AACFD,MAAAA,MAAM,EAAE8sM,SAAS,KAAK,MAAd,GAAuB,CAAvB,GAA2B,CAAC,CAAA;AADlC,KATG,CAAP,CAAA;GAHF,CAAA;;EAiBAsX,cAAc,CAACn6N,SAAf,CAAyBg9N,aAAzB,GAAyC,UAAUxhG,UAAV,EAAsBmhG,aAAtB,EAAqC;IAC5E,IAAI,CAAC,IAAKpC,CAAAA,UAAV,EAAsB;AACpB,MAAA,OAAA;AACD,KAAA;;IAED,IAAIQ,MAAM,GAAG,IAAA,CAAKX,OAAlB,CAAA;IACA,IAAI32E,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;AACA,IAAA,IAAI43E,YAAY,GAAGN,MAAM,CAACM,YAA1B,CAAA;AACA,IAAA,IAAIhK,YAAY,GAAG0J,MAAM,CAAC1J,YAA1B,CAAA;AACA,IAAA,IAAI56F,QAAQ,GAAGgtB,cAAc,CAAChtB,QAA9B,CAAA;AACA,IAAA,IAAIxhB,UAAU,GAAGwuC,cAAc,CAAC1kH,SAAf,EAAjB,CAAA;IACAryB,MAAI,CAAC,CAAC,CAAD,EAAI,CAAJ,CAAD,EAAS,UAAU+uH,WAAV,EAAuB;AAClC,MAAA,IAAIkgG,WAAW,GAAGN,YAAY,CAAC5/F,WAAD,CAA9B,CAAA;MACAkgG,WAAW,CAAC9pM,QAAZ,CAAqB,MAArB,EAA6B8qM,aAAa,CAACS,YAAd,CAA2B3hG,WAA3B,CAA7B,CAAA,CAAA;AACAkgG,MAAAA,WAAW,CAACj7N,CAAZ,GAAgB86H,UAAU,CAACC,WAAD,CAA1B,CAAA;MACA,IAAI73H,GAAG,GAAGwhD,SAAS,CAACo2E,UAAU,CAACC,WAAD,CAAX,EAA0B,CAAC,CAAD,EAAIhF,QAAQ,CAAC,CAAD,CAAZ,CAA1B,EAA4CxhB,UAA5C,EAAwD,IAAxD,CAAnB,CAAA;MACA,IAAI5hF,UAAU,GAAG,IAAKylM,CAAAA,mBAAL,CAAyBl1N,GAAzB,EAA8B,YAA9B,CAAjB,CAAA;AACA+3N,MAAAA,WAAW,CAAC5lN,MAAZ,GAAqB4lN,WAAW,CAAC3lN,MAAZ,GAAqBqd,UAAU,GAAGojG,QAAQ,CAAC,CAAD,CAA/D,CAAA;AACAklG,MAAAA,WAAW,CAACl7N,CAAZ,GAAgBg2H,QAAQ,CAAC,CAAD,CAAR,GAAcpjG,UAAU,GAAG,CAA3C,CAPkC;;MASlC,IAAIugM,SAAS,GAAG78L,gBAAA,CAAuBgkM,MAAM,CAACO,iBAAP,CAAyB7/F,WAAzB,CAAvB,EAA8D1kG,cAAA,CAAqB4kM,WAArB,EAAkC,IAAA,CAAKtqM,KAAvC,CAA9D,CAAhB,CAAA;AACAggM,MAAAA,YAAY,CAAC51F,WAAD,CAAZ,CAA0B5pG,QAA1B,CAAmC;AACjCpxB,QAAAA,CAAC,EAAEmzN,SAAS,CAAC,CAAD,CADqB;AAEjClzN,QAAAA,CAAC,EAAEkzN,SAAS,CAAC,CAAD,CAFqB;QAGjC1sN,IAAI,EAAEu8I,cAAc,CAACiyE,eAAf,CAA+B,KAAK2E,aAAL,CAAmB5+F,WAAnB,CAA/B,CAH2B;AAIjCnuF,QAAAA,aAAa,EAAE,QAJkB;AAKjCD,QAAAA,KAAK,EAAE,IAAA,CAAK6rI,OAAL,KAAiB,UAAjB,GAA8B,IAAA,CAAK4hD,eAAL,CAAqB,MAArB,EAA6BC,MAAM,CAACrnB,SAApC,CAA9B,GAA+E,QAAA;OALxF,CAAA,CAAA;KAVE,EAiBD,IAjBC,CAAJ,CAAA;GAXF,CAAA;;AA+BAymB,EAAAA,cAAc,CAACn6N,SAAf,CAAyBu9N,cAAzB,GAA0C,UAAUC,WAAV,EAAuB3H,SAAvB,EAAkC4H,WAAlC,EAA+CC,iBAA/C,EAAkE;IAC1G,IAAIj6E,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;AACA,IAAA,IAAIxuC,UAAU,GAAGwuC,cAAc,CAAC1kH,SAAf,EAAjB,CAAA;AACA,IAAA,IAAI03F,QAAQ,GAAGgtB,cAAc,CAAChtB,QAA9B,CAAA;IACA,IAAID,UAAU,GAAG,CAAC,CAAD,EAAIC,QAAQ,CAAC,CAAD,CAAZ,CAAjB,CAAA;IACA,IAAIskG,MAAM,GAAG,IAAA,CAAKX,OAAlB,CAAA;AACA,IAAA,IAAI/pJ,SAAS,GAAG0qJ,MAAM,CAAC1qJ,SAAvB,CAAA;;IAEA,IAAI,CAACA,SAAL,EAAgB;AACd,MAAA,OAAA;AACD,KAAA;;AAEDA,IAAAA,SAAS,CAACl7C,IAAV,CAAe,WAAf,EAA4B,KAA5B,CAAA,CAAA;AACA,IAAA,IAAI3tB,IAAI,GAAG;AACT6xN,MAAAA,qBAAqB,EAAE,IAAA;KADzB,CAAA;IAGA,IAAI/zN,KAAK,GAAG,IAAA,CAAKwzN,mBAAL,CAAyB0E,WAAzB,EAAsC,OAAtC,EAA+Ch2N,IAA/C,CAAZ,CAAA;IACA,IAAI6rB,UAAU,GAAG,IAAKylM,CAAAA,mBAAL,CAAyB0E,WAAzB,EAAsC,YAAtC,CAAjB,CAAA;IACA,IAAI98N,CAAC,GAAG0kD,SAAS,CAACo4K,WAAD,EAAcvoH,UAAd,EAA0BuhB,UAA1B,EAAsC,IAAtC,CAAjB,CAAA;IACA,IAAI/1H,CAAC,GAAGg2H,QAAQ,CAAC,CAAD,CAAR,GAAcpjG,UAAU,GAAG,CAAnC,CAAA;AACA,IAAA,IAAIsqM,eAAe,GAAG;MACpBl9N,CAAC,EAAE4vE,SAAS,CAAC5vE,CADO;MAEpBC,CAAC,EAAE2vE,SAAS,CAAC3vE,CAAAA;AAFO,KAAtB,CApB0G;;IAyB1G2vE,SAAS,CAAC3vE,CAAV,GAAcA,CAAd,CAAA;IACA2vE,SAAS,CAAC5vE,CAAV,GAAcA,CAAd,CAAA;AACA,IAAA,IAAImzN,SAAS,GAAG78L,gBAAA,CAAuBgkM,MAAM,CAACiB,mBAA9B,EAAmDjlM,cAAA,CAAqBs5C,SAArB,EAAgC,IAAKh/C,CAAAA,KAArC,CAAnD,CAAhB,CAAA;AACA,IAAA,IAAI0qM,cAAc,GAAGhB,MAAM,CAACgB,cAA5B,CAAA;AACAA,IAAAA,cAAc,CAAC5mM,IAAf,CAAoB,WAApB,EAAiC,KAAjC,CAAA,CAAA;;IAEA,IAAIkY,KAAK,GAAG,IAAA,CAAKytL,eAAL,CAAqB,MAArB,EAA6BC,MAAM,CAACrnB,SAApC,CAAZ,CAAA;;IAEA,IAAIl4G,MAAM,GAAG,IAAA,CAAK09E,OAAlB,CAAA;AACA,IAAA,IAAIlzI,YAAY,GAAGw1D,MAAM,KAAK,YAA9B,CAAA;IACAugI,cAAc,CAAClqM,QAAf,CAAwB;AACtB3qB,MAAAA,IAAI,EAAE,CAACu2N,WAAW,GAAGA,WAAH,GAAiB,EAA7B,IAAmCh6E,cAAc,CAACiyE,eAAf,CAA+BG,SAA/B,CADnB;AAEtBvoL,MAAAA,aAAa,EAAEtH,YAAY,GAAGqH,KAAH,GAAW,QAFhB;AAGtBA,MAAAA,KAAK,EAAErH,YAAY,GAAG,QAAH,GAAcqH,KAAAA;KAHnC,CAAA,CAAA;AAKA,IAAA,IAAIuwL,iBAAiB,GAAG;AACtBn9N,MAAAA,CAAC,EAAEA,CADmB;AAEtBC,MAAAA,CAAC,EAAEA,CAFmB;AAGtB4D,MAAAA,KAAK,EAAE;AACLC,QAAAA,IAAI,EAAEe,KAAAA;AADD,OAAA;KAHT,CAAA;AAOA,IAAA,IAAIu4N,aAAa,GAAG;AAClBv5N,MAAAA,KAAK,EAAE;AACL7D,QAAAA,CAAC,EAAEmzN,SAAS,CAAC,CAAD,CADP;QAELlzN,CAAC,EAAEkzN,SAAS,CAAC,CAAD,CAAA;AAFP,OAAA;KADT,CAAA;;IAOA,IAAInwE,cAAc,CAAC11G,OAAf,CAAuB2M,kBAAvB,EAA+C,IAAA,CAAC,IAAKuhL,CAAAA,mBAAzD,EAA8E;AAC5E,MAAA,IAAIruN,YAAY,GAAG;AACjBmkC,QAAAA,QAAQ,EAAE,GADO;AAEjB1kC,QAAAA,MAAM,EAAE,YAFS;AAGjBywN,QAAAA,QAAQ,EAAE,IAAA;OAHZ,CAAA;AAKAztJ,MAAAA,SAAS,CAAC5vE,CAAV,GAAck9N,eAAe,CAACl9N,CAA9B,CAAA;AACA4vE,MAAAA,SAAS,CAAC3vE,CAAV,GAAci9N,eAAe,CAACj9N,CAA9B,CAAA;AACA2vE,MAAAA,SAAS,CAACv+B,SAAV,CAAoB8rL,iBAApB,EAAuChwN,YAAvC,CAAA,CAAA;AACAmuN,MAAAA,cAAc,CAACjqL,SAAf,CAAyB+rL,aAAzB,EAAwCjwN,YAAxC,CAAA,CAAA;AACD,KAVD,MAUO;MACLyiE,SAAS,CAACl7C,IAAV,CAAeyoM,iBAAf,CAAA,CAAA;MACA7B,cAAc,CAAC5mM,IAAf,CAAoB0oM,aAApB,CAAA,CAAA;AACD,KAAA;;IAED,IAAK5B,CAAAA,mBAAL,GAA2B,KAA3B,CAAA;AACA,IAAA,IAAI5K,YAAY,GAAG,IAAK+I,CAAAA,OAAL,CAAa/I,YAAhC,CAAA;;AAEA,IAAA,IAAIA,YAAJ,EAAkB;AAChB,MAAA,KAAK,IAAI3tN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2tN,YAAY,CAACruN,MAAjC,EAAyCU,CAAC,EAA1C,EAA8C;AAC5C;AACA;AACA,QAAA,IAAA,CAAKk0F,IAAL,CAAUgkH,SAAV,CAAoByV,YAAY,CAAC3tN,CAAD,CAAhC,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GA9EH,CAAA;;AAiFAy2N,EAAAA,cAAc,CAACn6N,SAAf,CAAyB26N,wBAAzB,GAAoD,YAAY;IAC9D,IAAIvxM,IAAI,GAAG,IAAX,CAAA;;IAEA,IAAKgxM,CAAAA,OAAL,CAAa1mB,SAAb,CAAuBl2J,EAAvB,CAA0B,WAA1B,EAAuC,UAAUl6C,CAAV,EAAa;MAClD8lB,IAAI,CAACgzM,SAAL,GAAiB,IAAjB,CAAA;;AAEA,MAAA,IAAI,CAAChzM,IAAI,CAAC8uD,SAAV,EAAqB;AACnB,QAAA,IAAIu+C,QAAQ,GAAGrtG,IAAI,CAACq6H,cAAL,CAAoBhtB,QAAnC,CAAA;;QAEA,IAAI5xD,GAAG,GAAGz7C,IAAI,CAAC0xM,eAAL,CAAqB,CAACx3N,CAAC,CAAC2S,OAAH,EAAY3S,CAAC,CAAC6S,OAAd,CAArB,EAA6CiT,IAAI,CAACgxM,OAAL,CAAa1mB,SAA1D,EAAqE,IAArE,EAA2E,IAA3E,CAAV,CAHmB;AAInB;;;QAGA7uI,GAAG,CAAC,CAAD,CAAH,GAASxiC,OAAO,CAACE,OAAO,CAAC,CAAD,EAAIsiC,GAAG,CAAC,CAAD,CAAP,CAAR,EAAqB4xD,QAAQ,CAAC,CAAD,CAA7B,CAAhB,CAAA;;QAEArtG,IAAI,CAACmzM,oBAAL,CAA0B13J,GAAG,CAAC,CAAD,CAA7B,EAAkC,CAAA,IAAKA,GAAG,CAAC,CAAD,CAAR,IAAeA,GAAG,CAAC,CAAD,CAAH,IAAU4xD,QAAQ,CAAC,CAAD,CAAnE,CAAA,CAAA;AACD,OAAA;AACF,KAdD,CAcGj5E,CAAAA,EAdH,CAcM,UAdN,EAckB,YAAY;AAC5B;AACA;MACAp0B,IAAI,CAACgzM,SAAL,GAAiB,KAAjB,CAAA;AACA,MAAA,CAAChzM,IAAI,CAAC8uD,SAAN,IAAmB9uD,IAAI,CAACizM,uBAAL,EAAnB,CAAA;KAlBF,CAAA,CAAA;GAHF,CAAA;;AAyBAlC,EAAAA,cAAc,CAACn6N,SAAf,CAAyB46N,0BAAzB,GAAsD,YAAY;AAChE,IAAA,IAAIxkJ,EAAE,GAAG,IAAA,CAAK75D,GAAL,CAASghC,KAAT,EAAT,CAAA;;AAEA,IAAA,IAAI,KAAKkmG,cAAL,CAAoB5yH,MAApB,CAA2BynM,SAA/B,EAA0C;MACxCliJ,EAAE,CAAC54B,EAAH,CAAM,WAAN,EAAmB,IAAKugL,CAAAA,6BAAxB,EAAuD,IAAvD,CAAA,CAAA;MACA3nJ,EAAE,CAAC54B,EAAH,CAAM,UAAN,EAAkB,IAAK0+K,CAAAA,cAAvB,EAAuC,IAAvC,CAAA,CAAA;AACD,KAHD,MAGO;AACL,MAAA,IAAA,CAAK8B,yBAAL,EAAA,CAAA;AACD,KAAA;GARH,CAAA;;EAWA7D,cAAc,CAACn6N,SAAf,CAAyBu8N,oBAAzB,GAAgD,UAAU0B,SAAV,EAAqBC,UAArB,EAAiC;IAC/E,IAAIz6E,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;AACA,IAAA,IAAIhtB,QAAQ,GAAGgtB,cAAc,CAAChtB,QAA9B,CAAA;;AAEA,IAAA,IAAI,CAACgtB,cAAc,CAAC5yH,MAAf,CAAsBynM,SAA3B,EAAsC;AACpC,MAAA,OAAA;AACD,KAAA;;IAED,IAAI9hG,UAAU,GAAG,CAAC,CAAD,EAAIC,QAAQ,CAAC,CAAD,CAAZ,CAAjB,CAAA;AACA,IAAA,IAAIxhB,UAAU,GAAGwuC,cAAc,CAAC1kH,SAAf,EAAjB,CAT+E;;AAW/Ek/L,IAAAA,SAAS,GAAG57L,OAAO,CAACE,OAAO,CAACi0F,UAAU,CAAC,CAAD,CAAX,EAAgBynG,SAAhB,CAAR,EAAoCznG,UAAU,CAAC,CAAD,CAA9C,CAAnB,CAAA;IACA,IAAIknG,iBAAiB,GAAGS,oBAAoB,CAAC16E,cAAD,EAAiBxuC,UAAjB,EAA6BuhB,UAA7B,CAA5C,CAAA;IACA,IAAI4nG,UAAU,GAAG,CAACH,SAAS,GAAGP,iBAAb,EAAgCO,SAAS,GAAGP,iBAA5C,CAAjB,CAAA;IACA,IAAIF,WAAW,GAAGp4K,SAAS,CAAC64K,SAAD,EAAYznG,UAAZ,EAAwBvhB,UAAxB,EAAoC,IAApC,CAA3B,CAAA;AACA,IAAA,IAAIu0E,UAAU,GAAG,CAACpkI,SAAS,CAACg5K,UAAU,CAAC,CAAD,CAAX,EAAgB5nG,UAAhB,EAA4BvhB,UAA5B,EAAwC,IAAxC,CAAV,EAAyD7vD,SAAS,CAACg5K,UAAU,CAAC,CAAD,CAAX,EAAgB5nG,UAAhB,EAA4BvhB,UAA5B,EAAwC,IAAxC,CAAlE,CAAjB,CAf+E;AAgB/E;;AAEAmpH,IAAAA,UAAU,CAAC,CAAD,CAAV,GAAgB5nG,UAAU,CAAC,CAAD,CAA1B,KAAkCgzD,UAAU,CAAC,CAAD,CAAV,GAAgB,CAACjiK,QAAnD,CAAA,CAAA;AACA62M,IAAAA,UAAU,CAAC,CAAD,CAAV,GAAgB5nG,UAAU,CAAC,CAAD,CAA1B,KAAkCgzD,UAAU,CAAC,CAAD,CAAV,GAAgBjiK,QAAlD,EAnB+E;AAoB/E;;AAEA,IAAA,IAAI22M,UAAJ,EAAgB;AACd,MAAA,IAAI10C,UAAU,CAAC,CAAD,CAAV,KAAkB,CAACjiK,QAAvB,EAAiC;QAC/B,IAAKg2M,CAAAA,cAAL,CAAoBC,WAApB,EAAiCh0C,UAAU,CAAC,CAAD,CAA3C,EAAgD,IAAhD,EAAsDk0C,iBAAtD,CAAA,CAAA;OADF,MAEO,IAAIl0C,UAAU,CAAC,CAAD,CAAV,KAAkBjiK,QAAtB,EAAgC;QACrC,IAAKg2M,CAAAA,cAAL,CAAoBC,WAApB,EAAiCh0C,UAAU,CAAC,CAAD,CAA3C,EAAgD,IAAhD,EAAsDk0C,iBAAtD,CAAA,CAAA;AACD,OAFM,MAEA;QACL,IAAKH,CAAAA,cAAL,CAAoBC,WAApB,EAAiCA,WAAjC,EAA8C,IAA9C,EAAoDE,iBAApD,CAAA,CAAA;AACD,OAAA;AACF,KA9B8E;AA+B/E;AACA;AACA;AACA;AACA;;;IAGA,IAAIW,QAAQ,GAAG,IAAA,CAAK/D,qBAApB,CAAA;IACA,IAAIgE,QAAQ,GAAG,EAAf,CAAA;;AAEA,IAAA,IAAIJ,UAAU,IAAI5B,oBAAoB,CAAC74E,cAAD,CAAtC,EAAwD;MACtD66E,QAAQ,GAAG,KAAKhE,qBAAL,GAA6B72E,cAAc,CAACi0E,qBAAf,CAAqCluC,UAArC,CAAxC,CAAA;AACD,KAAA;;IAED,IAAI+0C,aAAa,GAAGxtL,eAAA,CAA0BstL,QAA1B,EAAoCC,QAApC,CAApB,CAAA;;AAEA,IAAA,IAAA,CAAKE,iBAAL,CAAuB,UAAvB,EAAmC13H,iBAAA,CAAyBy3H,aAAa,CAAC,CAAD,CAAtC,EAA2C96E,cAA3C,CAAnC,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAK+6E,iBAAL,CAAuB,WAAvB,EAAoC13H,iBAAA,CAAyBy3H,aAAa,CAAC,CAAD,CAAtC,EAA2C96E,cAA3C,CAApC,CAAA,CAAA;GAjDF,CAAA;;AAoDA02E,EAAAA,cAAc,CAACn6N,SAAf,CAAyB+9N,6BAAzB,GAAyD,UAAUz6N,CAAV,EAAa;AACpE,IAAA,IAAI2B,EAAE,GAAG3B,CAAC,CAACuI,MAAX,CAAA;IACA,IAAI43I,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;;IAEA,IAAI,CAACx+I,EAAD,IAAOi1B,SAAS,CAACj1B,EAAD,CAAT,CAAckvB,SAAd,IAA2B,IAAtC,EAA4C;AAC1C,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAIi+B,MAAM,GAAGl4B,SAAS,CAACj1B,EAAD,CAAtB,CAAA;IACA,IAAIigM,SAAS,GAAG,IAAA,CAAKn3J,OAAL,CAAai5H,gBAAb,CAA8B50G,MAAM,CAACriB,WAArC,CAAhB,CAAA;;AAEA,IAAA,IAAI,CAAC0zG,cAAc,CAAC+xE,cAAf,CAA8BtwB,SAA9B,CAAL,EAA+C;AAC7C,MAAA,OAAA;AACD,KAAA;;IAED,IAAIhxK,IAAI,GAAGgxK,SAAS,CAACnzK,OAAV,CAAkBqgC,MAAM,CAAC2f,QAAzB,CAAX,CAAA;AACA,IAAA,IAAI7yC,KAAK,GAAGhL,IAAI,CAAC4f,QAAL,EAAA,CAAgB3b,GAAhB,CAAoBsrH,cAAc,CAACsyE,qBAAf,CAAqC7hM,IAArC,CAApB,EAAgEk+B,MAAM,CAACj+B,SAAvE,CAAZ,CAAA;;AAEA,IAAA,IAAI,CAACtwB,KAAK,CAACq7B,KAAD,CAAV,EAAmB;AACjB,MAAA,IAAA,CAAKq+L,cAAL,CAAoBr+L,KAApB,EAA2BA,KAA3B,CAAA,CAAA;AACD,KAAA;GApBH,CAAA;;AAuBAi7L,EAAAA,cAAc,CAACn6N,SAAf,CAAyBk8N,cAAzB,GAA0C,YAAY;IACpD,IAAInB,MAAM,GAAG,IAAA,CAAKX,OAAlB,CAAA;AACAW,IAAAA,MAAM,CAAC1qJ,SAAP,IAAoB0qJ,MAAM,CAAC1qJ,SAAP,CAAiBl7C,IAAjB,CAAsB,WAAtB,EAAmC,IAAnC,CAApB,CAAA;AACA4lM,IAAAA,MAAM,CAACgB,cAAP,IAAyBhB,MAAM,CAACgB,cAAP,CAAsB5mM,IAAtB,CAA2B,WAA3B,EAAwC,IAAxC,CAAzB,CAAA;AACA,IAAA,IAAIk8L,YAAY,GAAG,IAAK+I,CAAAA,OAAL,CAAa/I,YAAhC,CAAA;;AAEA,IAAA,IAAIA,YAAJ,EAAkB;AAChB,MAAA,KAAK,IAAI3tN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2tN,YAAY,CAACruN,MAAjC,EAAyCU,CAAC,EAA1C,EAA8C;AAC5C;AACA;AACA,QAAA,IAAA,CAAKk0F,IAAL,CAAUikH,SAAV,CAAoBwV,YAAY,CAAC3tN,CAAD,CAAhC,CAAA,CAAA;AACD,OAAA;AACF,KAAA;GAZH,CAAA;;AAeAy2N,EAAAA,cAAc,CAACn6N,SAAf,CAAyBq8N,uBAAzB,GAAmD,YAAY;AAC7D,IAAA,IAAA,CAAKH,cAAL,EAAA,CAAA;;IAEA,IAAIvpL,OAAO,GAAG,IAAA,CAAK2nL,qBAAnB,CAAA;;AAEA,IAAA,IAAA,CAAKkE,iBAAL,CAAuB,UAAvB,EAAmC13H,iBAAA,CAAyBn0D,OAAzB,EAAkC,IAAK8wG,CAAAA,cAAvC,CAAnC,CAAA,CAAA;;IAEA9wG,OAAO,CAAC3vC,MAAR,GAAiB,CAAjB,CAAA;GAPF,CAAA;;AAUAm3N,EAAAA,cAAc,CAACn6N,SAAf,CAAyBg+N,yBAAzB,GAAqD,YAAY;AAC/D,IAAA,IAAA,CAAK9B,cAAL,EAAA,CAAA;;AAEA,IAAA,IAAI9lJ,EAAE,GAAG,IAAA,CAAK75D,GAAL,CAASghC,KAAT,EAAT,CAAA;AACA64B,IAAAA,EAAE,CAACh3B,GAAH,CAAO,WAAP,EAAoB,KAAK2+K,6BAAzB,CAAA,CAAA;AACA3nJ,IAAAA,EAAE,CAACh3B,GAAH,CAAO,UAAP,EAAmB,KAAK88K,cAAxB,CAAA,CAAA;GALF,CAAA;;AAQA/B,EAAAA,cAAc,CAACn6N,SAAf,CAAyB86N,eAAzB,GAA2C,UAAU5jB,MAAV,EAAkBrkG,OAAlB,EAA2B3sE,OAA3B,EAAoCpvB,MAApC,EAA4C;AACrF,IAAA,IAAIhL,SAAS,GAAGirB,cAAA,CAAqB87E,OAArB,EAA8B/7F,MAAM,GAAG,IAAH,GAAU,IAAA,CAAKua,KAAnD,CAAhB,CAAA;IACA,OAAOqW,SAAA,CAAewvK,MAAf,CAAyBngL,GAAAA,gBAAA,CAAuBmgL,MAAvB,EAA+BprM,SAA/B,EAA0Co6B,OAA1C,CAAzB,GAA8EnP,kBAAA,CAA2BmgL,MAA3B,EAAmCprM,SAAnC,EAA8Co6B,OAA9C,CAArF,CAAA;AACD,GAHD,CA3oBgB;;;EAipBhBi0L,cAAc,CAACn6N,SAAf,CAAyBw+N,iBAAzB,GAA6C,UAAUzrN,IAAV,EAAgBg6J,KAAhB,EAAuB;IAClEA,KAAK,IAAIA,KAAK,CAAC/pK,MAAf,IAAyB,IAAKuZ,CAAAA,GAAL,CAASwiC,cAAT,CAAwB;AAC/ChsC,MAAAA,IAAI,EAAEA,IADyC;AAE/Cg6J,MAAAA,KAAK,EAAEA,KAAAA;AAFwC,KAAxB,CAAzB,CAAA;GADF,CAAA;AAMA;AACF;AACA;;;AAGEotD,EAAAA,cAAc,CAACn6N,SAAf,CAAyB4iB,OAAzB,GAAmC,YAAY;AAC7C,IAAA,IAAA,CAAKo7M,yBAAL,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAK3B,uBAAL,EAAA,CAAA;GAHF,CAAA;AAKA;AACF;AACA;;;AAGElC,EAAAA,cAAc,CAACn6N,SAAf,CAAyBo8B,MAAzB,GAAkC,YAAY;AAC5C,IAAA,IAAA,CAAK4hM,yBAAL,EAAA,CAAA;;AAEA,IAAA,IAAA,CAAK3B,uBAAL,EAAA,CAAA;GAHF,CAAA;;EAMAlC,cAAc,CAACpnN,IAAf,GAAsB,sBAAtB,CAAA;AACA,EAAA,OAAOonN,cAAP,CAAA;AACD,CA9qBD,CA8qBExB,aA9qBF,CAFA,CAAA;;AAkrBA,SAASuC,aAAT,CAAuBlpN,MAAvB,EAA+BukB,MAA/B,EAAuCklM,OAAvC,EAAgDC,SAAhD,EAA2D;AACzD,EAAA,OAAO,IAAI3kM,OAAJ,CAAoB;AACzBzrB,IAAAA,KAAK,EAAE;AACL0G,MAAAA,MAAM,EAAEA,MAAAA;KAFe;IAIzBqkB,SAAS,EAAE,CAAC,CAAColM,OAJY;AAKzBllM,IAAAA,MAAM,EAAEA,MALiB;AAMzBjB,IAAAA,KAAK,EAAEmmM,OANkB;IAOzB92D,WAAW,EAAE,SAAUrhK,WAAAA,CAAAA,CAAV,EAAa;AACxB;AACAi1E,MAAAA,IAAA,CAAej1E,CAAC,CAACy/C,KAAjB,CAAA,CAAA;KATuB;AAWzBwhF,IAAAA,SAAS,EAAEm3F,SAAAA;AAXc,GAApB,CAAP,CAAA;AAaD,CAAA;;AAED,SAASyC,oBAAT,CAA8B16E,cAA9B,EAA8CxuC,UAA9C,EAA0DuhB,UAA1D,EAAsE;AACpE,EAAA,IAAIknG,iBAAiB,GAAGzD,eAAe,GAAG,CAA1C,CAAA;AACA,EAAA,IAAIwE,iBAAiB,GAAGh7E,cAAc,CAACtrH,GAAf,CAAmB,mBAAnB,CAAxB,CAAA;;AAEA,EAAA,IAAIsmM,iBAAJ,EAAuB;AACrBf,IAAAA,iBAAiB,GAAGt4K,SAAS,CAACq5K,iBAAD,EAAoBxpH,UAApB,EAAgCuhB,UAAhC,EAA4C,IAA5C,CAAT,GAA6D,CAAjF,CAAA;AACD,GAAA;;AAED,EAAA,OAAOknG,iBAAP,CAAA;AACD,CAAA;;AAED,SAASpB,oBAAT,CAA8B74E,cAA9B,EAA8C;AAC5C,EAAA,IAAIi7E,iBAAiB,GAAGj7E,cAAc,CAACtrH,GAAf,CAAmB,mBAAnB,CAAxB,CAAA;AACA,EAAA,OAAO,CAAC,EAAEumM,iBAAiB,IAAI,IAArB,GAA4Bj7E,cAAc,CAACtrH,GAAf,CAAmB,UAAnB,CAA5B,GAA6DumM,iBAA/D,CAAR,CAAA;AACD,CAAA;;AAED,SAASjN,SAAT,CAAmBj2H,MAAnB,EAA2B;AACzB,EAAA,OAAOA,MAAM,KAAK,UAAX,GAAwB,WAAxB,GAAsC,WAA7C,CAAA;AACD;;AC5xBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAImjI,mBAAmB,GAAG;AAC/B5rN,EAAAA,IAAI,EAAE,iBADyB;AAE/BgwC,EAAAA,KAAK,EAAE,mBAFwB;AAG/B;AACA9mB,EAAAA,MAAM,EAAE,QAAA;AAJuB,CAA1B,CAAA;AAMA,IAAI2iM,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAU9tL,OAAV,EAAmB/C,OAAnB,EAA4B;EAC7DA,OAAO,CAAC4V,aAAR,CAAsB;AACpBC,IAAAA,QAAQ,EAAE,WADU;AAEpBC,IAAAA,KAAK,EAAE/S,OAAAA;GAFT,EAGG,UAAUmL,KAAV,EAAiB;AAClBA,IAAAA,KAAK,CAAC+6K,WAAN,CAAkBlmL,OAAO,CAACkmD,QAA1B,CAAA,CAAA;GAJF,CAAA,CAAA;AAMD,CAPM;;AChDP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BO,IAAI6nI,yBAAyB,GAAG,CAAC;AACtCC,EAAAA,iBAAiB,EAAE,IADmB;AAEtC7+N,EAAAA,KAAK,EAAE,SAAA,KAAA,CAAUy2B,WAAV,EAAuBqX,OAAvB,EAAgC;IACrC,IAAIgxL,YAAY,GAAG,EAAnB,CAAA;AACAhxL,IAAAA,OAAO,CAAC4V,aAAR,CAAsB,WAAtB,EAAmC,UAAU8/F,cAAV,EAA0B;AAC3D,MAAA,IAAI/vG,eAAe,GAAGhd,WAAW,CAACgd,eAAlC,CAAA;;AAEA,MAAA,IAAI,CAAC+vG,cAAc,CAAC+xE,cAAf,CAA8B9+L,WAA9B,CAAD,IAA+Cgd,eAAe,IAAIA,eAAe,CAACrxC,KAAtF,EAA6F;AAC3F,QAAA,OAAA;AACD,OAAA;;AAED08N,MAAAA,YAAY,CAACh7N,IAAb,CAAkB8oM,sBAAA,CAAsCppD,cAAc,CAAComD,SAArD,EAAgEpmD,cAAc,CAACE,aAA/E,EAA8Fj8G,MAAA,CAAY+7G,cAAc,CAAC+mD,aAA3B,EAA0C/mD,cAA1C,CAA9F,EAAyJA,cAAc,CAACsyE,qBAAf,CAAqCr/L,WAAW,CAAC3E,OAAZ,EAArC,CAAzJ,CAAlB,CAAA,CAAA;KAPF,CAAA,CAAA;AASA,IAAA,OAAOgtM,YAAP,CAAA;AACD,GAAA;AAdqC,CAAD;AAgBvC;AACED,EAAAA,iBAAiB,EAAE,IADrB;AAEE7+N,EAAAA,KAAK,EAAE,SAAA,KAAA,CAAUy2B,WAAV,EAAuBqX,OAAvB,EAAgC;AACrC,IAAA,IAAI7Z,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;IACA,IAAIsX,cAAc,GAAG,EAArB,CAAA;AACA0E,IAAAA,OAAO,CAAC4V,aAAR,CAAsB,WAAtB,EAAmC,UAAU8/F,cAAV,EAA0B;AAC3D,MAAA,IAAIA,cAAc,CAAC+xE,cAAf,CAA8B9+L,WAA9B,CAAJ,EAAgD;AAC9C,QAAA,IAAI6S,UAAU,GAAGk6G,cAAc,CAACyzE,aAAf,CAA6BxvL,MAAA,CAAYyvL,cAAZ,EAA4B,IAA5B,EAAkCzgM,WAAlC,EAA+C+sH,cAA/C,CAA7B,CAAgG,IAAA;AAC/G55G,UAAAA,KAAK,EAAE,EADwG;AAE/GK,UAAAA,WAAW,EAAE,EAAA;SAFf,CAAA;AAIA,QAAA,IAAI4B,MAAM,GAAG23G,cAAc,CAACsyE,qBAAf,CAAqC7hM,IAArC,CAAb,CAAA;;QAEA,IAAI4X,MAAM,IAAI,CAAd,EAAiB;AACf;UACAvC,UAAU,CAACG,SAAX,GAAuBoC,MAAvB,CAAA;UACAzC,cAAc,CAACtlC,IAAf,CAAoBwlC,UAApB,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAdD,EAHqC;;AAmBrC7S,IAAAA,WAAW,CAAC3E,OAAZ,EAAA,CAAsB4jB,SAAtB,CAAgC,YAAhC,EAA8CtM,cAA9C,CAAA,CAAA;AACD,GAAA;AAtBH,CAhBuC,CAAhC;AAwCP;AACA;;AAEA,SAAS8tL,cAAT,CAAwBzgM,WAAxB,EAAqC+sH,cAArC,EAAqDvkH,KAArD,EAA4D6rK,UAA5D,EAAwE;AACtE,EAAA,IAAIf,QAAQ,GAAGvmD,cAAc,CAACE,aAAf,CAA6BonD,UAA7B,CAAf,CAAA;AACA,EAAA,IAAI/0F,WAAW,GAAG3B,aAAa,CAAC0B,kBAAd,CAAiCi0F,QAAjC,CAAlB,CAAA;AACA,EAAA,IAAIg1B,YAAY,GAAG;IACjB15N,KAAK,EAAEi3M,iBAAiB,CAAC7lL,WAAW,CAAC3E,OAAZ,EAAD,EAAwB,OAAxB,CADP;;GAAnB,CAAA;;AAKA,EAAA,KAAK,IAAIruB,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGipG,WAAW,CAAChzG,MAAlC,EAA0CU,CAAC,GAAGqJ,GAA9C,EAAmDrJ,CAAC,EAApD,EAAwD;AACtD,IAAA,IAAIqP,IAAI,GAAGijG,WAAW,CAACtyG,CAAD,CAAtB,CAAA;IACA,IAAI42G,OAAO,GAAG0vF,QAAQ,CAACj3L,IAAI,KAAK,SAAT,GAAqB,mBAArB,GAA2CA,IAA5C,CAAtB,CAAA;IACAunG,OAAO,IAAIA,OAAO,CAAC3F,WAAR,CAAoBz1E,KAApB,EAA2BlN,SAA3B,EAAsC2jB,SAAtC,CAAX,CAAA;AACD,GAAA;;EAED,OAAOqpL,YAAY,CAAC15N,KAApB,CAAA;;EAEA,SAAS0sB,SAAT,CAAmBjrB,GAAnB,EAAwB;IACtB,OAAOi4N,YAAY,CAACj4N,GAAD,CAAnB,CAAA;AACD,GAAA;;AAED,EAAA,SAAS4uC,SAAT,CAAmB5uC,GAAnB,EAAwBm4B,KAAxB,EAA+B;AAC7B8/L,IAAAA,YAAY,CAACj4N,GAAD,CAAZ,GAAoBm4B,KAApB,CAAA;AACD,GAAA;AACF;;AChHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BA,IAAIxyB,IAAI,GAAGg7B,MAAX,CAAA;AACe,SAASu3L,qBAAT,CAA+BpuM,MAA/B,EAAuC;AACpD,EAAA,IAAIgyH,SAAS,GAAGhyH,MAAM,IAAIA,MAAM,CAACgyH,SAAjC,CAAA;;AAEA,EAAA,IAAI,CAACn7G,SAAA,CAAem7G,SAAf,CAAL,EAAgC;AAC9BA,IAAAA,SAAS,GAAGA,SAAS,GAAG,CAACA,SAAD,CAAH,GAAiB,EAAtC,CAAA;AACD,GAAA;;AAEDn2I,EAAAA,IAAI,CAACm2I,SAAD,EAAY,UAAUzxH,GAAV,EAAe;IAC7B,IAAI,CAACA,GAAL,EAAU;AACR,MAAA,OAAA;AACD,KAH4B;;;AAM7B,IAAA,IAAI8nK,GAAG,CAAC9nK,GAAD,EAAM,WAAN,CAAH,IAAyB,CAAC8nK,GAAG,CAAC9nK,GAAD,EAAM,QAAN,CAAjC,EAAkD;AAChDA,MAAAA,GAAG,CAAC8tM,MAAJ,GAAa9tM,GAAG,CAAC+tM,SAAjB,CAAA;MACA,OAAO/tM,GAAG,CAAC+tM,SAAX,CAAA;AACD,KAAA;;AAED,IAAA,IAAID,MAAM,GAAG9tM,GAAG,CAAC8tM,MAAjB,CAAA;;IAEA,IAAIA,MAAM,IAAIx3L,SAAA,CAAew3L,MAAf,CAAd,EAAsC;AACpCxyN,MAAAA,IAAI,CAACwyN,MAAD,EAAS,UAAUroH,KAAV,EAAiB;AAC5B,QAAA,IAAInvE,UAAA,CAAgBmvE,KAAhB,CAAJ,EAA4B;AAC1B,UAAA,IAAIqiF,GAAG,CAACriF,KAAD,EAAQ,OAAR,CAAH,IAAuB,CAACqiF,GAAG,CAACriF,KAAD,EAAQ,KAAR,CAA/B,EAA+C;AAC7CA,YAAAA,KAAK,CAACv0E,GAAN,GAAYu0E,KAAK,CAAClpF,KAAlB,CAAA;AACD,WAAA;;AAED,UAAA,IAAIurK,GAAG,CAACriF,KAAD,EAAQ,KAAR,CAAH,IAAqB,CAACqiF,GAAG,CAACriF,KAAD,EAAQ,KAAR,CAA7B,EAA6C;AAC3CA,YAAAA,KAAK,CAAC30F,GAAN,GAAY20F,KAAK,CAAC35E,GAAlB,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAVG,CAAJ,CAAA;AAWD,KAAA;AACF,GA1BG,CAAJ,CAAA;AA2BD,CAAA;;AAED,SAASg8J,GAAT,CAAah4I,GAAb,EAAkBx6C,IAAlB,EAAwB;EACtB,OAAOw6C,GAAG,IAAIA,GAAG,CAACjxB,cAAX,IAA6BixB,GAAG,CAACjxB,cAAJ,CAAmBvpB,IAAnB,CAApC,CAAA;AACD;;ACnFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA6BA,IAAIgjL,SAAS,GAAG,KAAhB,CAAA;AACe,SAASC,aAAT,CAAuBtmK,SAAvB,EAAkC;AAC/C,EAAA,IAAIqmK,SAAJ,EAAe;AACb,IAAA,OAAA;AACD,GAAA;;AAEDA,EAAAA,SAAS,GAAG,IAAZ,CAAA;AACArmK,EAAAA,SAAS,CAAC8zC,wBAAV,CAAmC,WAAnC,EAAgD,UAAUtmC,MAAV,EAAkB;AAChE;AACA,IAAA,OAAO,CAACA,MAAM,CAACytB,UAAR,KAAuB,EAAEztB,MAAM,CAACquM,MAAP,GAAgBruM,MAAM,CAACquM,MAAP,CAAcl8N,MAAd,GAAuB,CAAvC,GAA2C6tB,MAAM,CAACkkC,WAAP,GAAqB,CAAlE,CAAwElkC,IAAAA,MAAM,CAACwnM,UAAtG,CAAoH,GAAA,YAApH,GAAmI,WAA1I,CAAA;GAFF,CAAA,CAAA;AAIAh1M,EAAAA,SAAS,CAACqgC,cAAV,CAAyBi7K,mBAAzB,EAA8CC,qBAA9C,CAAA,CAAA;AACAlyN,EAAAA,MAAI,CAACmyN,yBAAD,EAA4B,UAAUrlG,OAAV,EAAmB;IACjDn2G,SAAS,CAACqyB,cAAV,CAAyBryB,SAAS,CAACwyB,QAAV,CAAmByN,MAAnB,CAA0B87K,SAAnD,EAA8D5lG,OAA9D,CAAA,CAAA;AACD,GAFG,CAAJ,CAAA;EAGAn2G,SAAS,CAACosD,oBAAV,CAA+B0pE,qBAA/B,CAAA,CAAA;AACD;;AC9DD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAAS/1H,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiCqgK,eAAjC,CAAA,CAAA;EACAl0M,SAAS,CAACksD,qBAAV,CAAgC4qJ,cAAhC,CAAA,CAAA;EACAxwC,aAAa,CAACtmK,SAAD,CAAb,CAAA;AACD;;ACjDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiCA,IAAIg8M,cAAc;AAClB;AACA,UAAUn7M,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACk7M,cAAD,EAAiBn7M,MAAjB,CAAT,CAAA;;AAEA,EAAA,SAASm7M,cAAT,GAA0B;AACxB,IAAA,IAAIj7M,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAassN,cAAc,CAACtsN,IAA5B,CAAA;AACA;AACJ;AACA;AACA;;IAEIqR,KAAK,CAACk7M,UAAN,GAAmB,EAAnB,CAAA;AACA,IAAA,OAAOl7M,KAAP,CAAA;AACD,GAAA;;EAEDi7M,cAAc,CAACr/N,SAAf,CAAyB42D,aAAzB,GAAyC,UAAU4jE,SAAV,EAAqB3jG,MAArB,EAA6B;IACpE3S,MAAM,CAAClkB,SAAP,CAAiB42D,aAAjB,CAA+BlmC,KAA/B,CAAqC,IAArC,EAA2C/sB,SAA3C,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKmyN,WAAL,EAAA,CAAA;;AAEA,IAAA,IAAIyJ,IAAI,GAAG,IAAA,CAAKC,KAAL,GAAa,IAAA,CAAKC,cAAL,EAAxB,CAAA;;IAEA,IAAKH,CAAAA,UAAL,GAAkB,EAAlB,CAAA;;IAEAI,YAAY,CAAC,IAAKF,CAAAA,KAAN,CAAZ,CAAyBn7M,IAAzB,CAA8B,IAA9B,EAAoC,IAAA,CAAKi7M,UAAzC,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKK,cAAL,CAAoBnlG,SAApB,EAA+B3jG,MAA/B,CAAA,CAAA;;AAEA,IAAA,IAAIynB,UAAU,GAAG,IAAKztB,CAAAA,MAAL,CAAYytB,UAA7B,CAAA;AACA,IAAA,IAAA,CAAK82K,WAAL,CAAiB,UAAUjrB,aAAV,EAAyBjoJ,KAAzB,EAAgC;MAC/C,IAAIq9K,IAAI,KAAK,YAAb,EAA2B;QACzBp1B,aAAa,CAAC71F,aAAd,GAA8B,UAA9B,CAAA;QACA61F,aAAa,CAAC7rJ,UAAd,GAA2B5W,OAAA,CAAa4W,UAAb,CAA3B,CAAA;AACD,OAHD,MAGO;AACL6rJ,QAAAA,aAAa,CAACl1F,UAAd,GAA2B,IAAA,CAAKl2E,SAAL,EAA3B,CAAA;QACAorK,aAAa,CAAC71F,aAAd,GAA8B,WAA9B,CAAA;AACA61F,QAAAA,aAAa,CAAC3zF,SAAd,GAA0B9uE,GAAA,CAAW,IAAA,CAAK43L,UAAhB,EAA4B,UAAUzoH,KAAV,EAAiB;AACrEA,UAAAA,KAAK,GAAGnvE,OAAA,CAAamvE,KAAb,CAAR,CAAA;;UAEA,IAAI30D,KAAK,KAAK,SAAd,EAAyB;AACvB;AACA;YACA20D,KAAK,CAACrB,MAAN,GAAe,IAAf,CAAA;AACD,WAAA;;AAED,UAAA,OAAOqB,KAAP,CAAA;AACD,SAVyB,CAA1B,CAAA;AAWD,OAAA;KAlBH,CAAA,CAAA;GAdF,CAAA;AAmCA;AACF;AACA;AACA;;;AAGEwoH,EAAAA,cAAc,CAACr/N,SAAf,CAAyBm1N,oBAAzB,GAAgD,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;IACA,IAAItkM,MAAM,GAAG,IAAA,CAAKA,MAAlB,CAAA;IACA,IAAI+uM,mBAAmB,GAAG,EAA1B,CAAA;AACA,IAAA,IAAI5pH,WAAW,GAAG3B,aAAa,CAACgB,eAAd,EAAlB,CAAA;AACA,IAAA,IAAIx0C,UAAU,GAAG,IAAKA,CAAAA,UAAL,EAAjB,CAAA;IACAn5B,MAAA,CAAY7W,MAAM,CAACquM,MAAnB,EAA2B,UAAUroH,KAAV,EAAiB;AAC1CnvE,MAAAA,MAAA,CAAYsuE,WAAZ,EAAyB,UAAUlkF,UAAV,EAAsB;AAC7C,QAAA,IAAI+kF,KAAK,CAAC5mF,cAAN,CAAqB6B,UAArB,CAAJ,EAAsC;AACpC8tM,UAAAA,mBAAmB,CAAC9tM,UAAD,CAAnB,GAAkC,CAAlC,CAAA;AACD,SAAA;OAHH,CAAA,CAAA;KADF,CAAA,CAAA;IAOA4V,MAAA,CAAYk4L,mBAAZ,EAAiC,UAAU9pK,CAAV,EAAahkC,UAAb,EAAyB;MACxD,IAAI+tM,MAAM,GAAG,KAAb,CAAA;MACAn4L,MAAA,CAAY,IAAA,CAAKmiK,SAAjB,EAA4B,UAAU3nJ,KAAV,EAAiB;QAC3C29K,MAAM,GAAGA,MAAM,IAAI3mC,GAAG,CAACroK,MAAD,EAASqxB,KAAT,EAAgBpwB,UAAhB,CAAb,IAA4ConK,GAAG,CAACroK,MAAM,CAAChlB,MAAR,EAAgBq2C,KAAhB,EAAuBpwB,UAAvB,CAAxD,CAAA;AACD,OAFD,EAEG,IAFH,CAAA,CAAA;MAGA,CAAC+tM,MAAD,IAAWn4L,MAAA,CAAY,IAAA,CAAKmiK,SAAjB,EAA4B,UAAU3nJ,KAAV,EAAiB;AACtD,QAAA,CAACrxB,MAAM,CAACqxB,KAAD,CAAN,KAAkBrxB,MAAM,CAACqxB,KAAD,CAAN,GAAgB,EAAlC,CAAD,EAAwCpwB,UAAxC,CAAA,GAAsD+iM,aAAa,CAAC18L,GAAd,CAAkBrG,UAAlB,EAA8BowB,KAAK,KAAK,SAAV,GAAsB,QAAtB,GAAiC,UAA/D,EAA2E2e,UAA3E,CAAtD,CAAA;AACD,OAFU,CAAX,CAAA;AAGD,KARD,EAQG,IARH,CAAA,CAAA;;AAUA,IAAA,SAASq4H,GAAT,CAAah4I,GAAb,EAAkBgB,KAAlB,EAAyBpwB,UAAzB,EAAqC;AACnC,MAAA,OAAOovB,GAAG,IAAIA,GAAG,CAACgB,KAAD,CAAV,IAAqBhB,GAAG,CAACgB,KAAD,CAAH,CAAWjyB,cAAX,CAA0B6B,UAA1B,CAA5B,CAAA;AACD,KAAA;;IAED5N,MAAM,CAAClkB,SAAP,CAAiBm1N,oBAAjB,CAAsCzkM,KAAtC,CAA4C,IAA5C,EAAkD/sB,SAAlD,CAAA,CAAA;GAjCF,CAAA;;EAoCA07N,cAAc,CAACr/N,SAAf,CAAyB2/N,cAAzB,GAA0C,UAAUnlG,SAAV,EAAqB3jG,MAArB,EAA6B;IACrE,IAAIggC,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;AACA,IAAA,IAAI2lF,SAAS,GAAG,IAAK8oH,CAAAA,UAArB,CAFqE;;IAIrE,IAAItoI,QAAQ,GAAG,CAACngE,MAAM,GAAGggC,UAAH,GAAgB2jE,SAAvB,EAAkCxjC,QAAlC,IAA8C,EAA7D,CAAA;AACAngC,IAAAA,UAAU,CAACmgC,QAAX,GAAsBA,QAAtB,CALqE;;IAOrEtvD,MAAA,CAAY8uE,SAAZ,EAAuB,UAAUK,KAAV,EAAiB53D,KAAjB,EAAwB;AAC7C,MAAA,IAAIl4C,GAAG,GAAG,IAAA,CAAK+4N,iBAAL,CAAuBjpH,KAAvB,CAAV,CAAA;;AAEA,MAAA,IAAI,CAAC7f,QAAQ,CAAC/mE,cAAT,CAAwBlpB,GAAxB,CAAL,EAAmC;AACjCiwF,QAAAA,QAAQ,CAACjwF,GAAD,CAAR,GAAgB,IAAhB,CAAA;AACD,OAAA;AACF,KAND,EAMG,IANH,CAAA,CAAA;;AAQA,IAAA,IAAI8vD,UAAU,CAAC26B,YAAX,KAA4B,QAAhC,EAA0C;AACxC;MACA,IAAIuuI,QAAQ,GAAG,KAAf,CAAA;MACAr4L,MAAA,CAAY8uE,SAAZ,EAAuB,UAAUK,KAAV,EAAiB53D,KAAjB,EAAwB;AAC7C,QAAA,IAAIl4C,GAAG,GAAG,IAAA,CAAK+4N,iBAAL,CAAuBjpH,KAAvB,CAAV,CAAA;;AAEA,QAAA,IAAI7f,QAAQ,CAACjwF,GAAD,CAAZ,EAAmB;UACjBg5N,QAAQ,GAAG/oI,QAAQ,CAACjwF,GAAD,CAAR,GAAgB,KAAnB,GAA2Bg5N,QAAQ,GAAG,IAA9C,CAAA;AACD,SAAA;AACF,OAND,EAMG,IANH,CAAA,CAAA;AAOD,KAzBoE;;GAAvE,CAAA;AA4BA;AACF;AACA;;;AAGEV,EAAAA,cAAc,CAACr/N,SAAf,CAAyBq1N,aAAzB,GAAyC,YAAY;AACnD,IAAA,OAAO,IAAKl9L,CAAAA,GAAL,CAAS,YAAT,CAAP,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEknM,EAAAA,cAAc,CAACr/N,SAAf,CAAyB8/N,iBAAzB,GAA6C,UAAUjpH,KAAV,EAAiB;AAC5D,IAAA,OAAO,IAAK2oH,CAAAA,KAAL,KAAe,YAAf,GAA8B3oH,KAAK,CAAC33E,KAAN,GAAc,EAA5C,GAAiD23E,KAAK,CAAC53D,KAAN,GAAc,EAAtE,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEogL,EAAAA,cAAc,CAACr/N,SAAf,CAAyBikJ,YAAzB,GAAwC,YAAY;AAClD,IAAA,OAAO,KAAKq7E,UAAZ,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGED,EAAAA,cAAc,CAACr/N,SAAf,CAAyBy/N,cAAzB,GAA0C,YAAY;IACpD,IAAI5uM,MAAM,GAAG,IAAA,CAAKA,MAAlB,CAAA;IACA,OAAOA,MAAM,CAACquM,MAAP,IAAiBruM,MAAM,CAACquM,MAAP,CAAcl8N,MAAd,GAAuB,CAAxC,GAA4C,QAA5C,GAAuD,IAAK6tB,CAAAA,MAAL,CAAYytB,UAAZ,GAAyB,YAAzB,GAAwC,aAAtG,CAAA;GAFF,CAAA;AAIA;AACF;AACA;;;AAGE+gL,EAAAA,cAAc,CAACr/N,SAAf,CAAyBg3N,WAAzB,GAAuC,UAAUhgI,QAAV,EAAoB;IACzD,IAAKnmE,CAAAA,MAAL,CAAYmmE,QAAZ,GAAuBtvD,OAAA,CAAasvD,QAAb,CAAvB,CAAA;GADF,CAAA;AAGA;AACF;AACA;;;AAGEqoI,EAAAA,cAAc,CAACr/N,SAAf,CAAyBwqM,aAAzB,GAAyC,UAAUtrK,KAAV,EAAiB;IACxD,IAAI+f,KAAK,GAAGo1D,aAAa,CAACkC,cAAd,CAA6Br3E,KAA7B,EAAoC,IAAKogM,CAAAA,UAAzC,CAAZ,CAAA;IACA,OAAOrgL,KAAK,IAAI,IAAT,GAAgB,KAAKpuB,MAAL,CAAYmmE,QAAZ,CAAqB,IAAK8oI,CAAAA,iBAAL,CAAuB,IAAKR,CAAAA,UAAL,CAAgBrgL,KAAhB,CAAvB,CAArB,IAAuE,SAAvE,GAAmF,YAAnG,GAAkH,YAAzH,CAAA;GAFF,CAAA;AAIA;AACF;AACA;AACA;;;AAGEogL,EAAAA,cAAc,CAACr/N,SAAf,CAAyB03N,qBAAzB,GAAiD,UAAUz+G,UAAV,EAAsB;IACrE,IAAIlwC,MAAM,GAAG,EAAb,CAAA;IACA,IAAIytC,SAAS,GAAG,IAAA,CAAK8oH,UAArB,CAAA;AACA,IAAA,IAAA,CAAKx8E,gBAAL,CAAsB,UAAUpsH,WAAV,EAAuB;MAC3C,IAAI42F,WAAW,GAAG,EAAlB,CAAA;AACA,MAAA,IAAIp5F,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;AACAmC,MAAAA,IAAI,CAACxnB,IAAL,CAAU,IAAA,CAAKqpN,qBAAL,CAA2B7hM,IAA3B,CAAV,EAA4C,UAAUgL,KAAV,EAAiB/K,SAAjB,EAA4B;AACtE;QACA,IAAI6rM,IAAI,GAAG3rH,aAAa,CAACkC,cAAd,CAA6Br3E,KAA7B,EAAoCs3E,SAApC,CAAX,CAAA;QACAwpH,IAAI,KAAK/mH,UAAT,IAAuBqU,WAAW,CAACvpH,IAAZ,CAAiBowB,SAAjB,CAAvB,CAAA;AACD,OAJD,EAIG,IAJH,CAAA,CAAA;MAKA40C,MAAM,CAAChlE,IAAP,CAAY;QACV4rF,QAAQ,EAAEj5D,WAAW,CAAC7iB,EADZ;AAEVsgB,QAAAA,SAAS,EAAEm5F,WAAAA;OAFb,CAAA,CAAA;AAID,KAZD,EAYG,IAZH,CAAA,CAAA;AAaA,IAAA,OAAOvkD,MAAP,CAAA;GAhBF,CAAA;AAkBA;AACF;AACA;AACA;AACA;;;AAGEs2J,EAAAA,cAAc,CAACr/N,SAAf,CAAyBigO,iBAAzB,GAA6C,UAAUppH,KAAV,EAAiB;AAC5D,IAAA,IAAIqpH,cAAJ,CAAA;;IAEA,IAAI,IAAA,CAAKr/J,UAAL,EAAJ,EAAuB;MACrBq/J,cAAc,GAAGrpH,KAAK,CAAC33E,KAAvB,CAAA;AACD,KAFD,MAEO;AACL,MAAA,IAAI23E,KAAK,CAAC33E,KAAN,IAAe,IAAnB,EAAyB;QACvBghM,cAAc,GAAGrpH,KAAK,CAAC33E,KAAvB,CAAA;AACD,OAFD,MAEO;AACL,QAAA,IAAIihM,aAAa,GAAGtpH,KAAK,CAAC/hD,QAAN,IAAkB,EAAtC,CAAA;AACAorK,QAAAA,cAAc,GAAGC,aAAa,CAAC,CAAD,CAAb,KAAqB,CAAC54M,QAAtB,IAAkC44M,aAAa,CAAC,CAAD,CAAb,KAAqB54M,QAAvD,GAAkE,CAAlE,GAAsE,CAAC44M,aAAa,CAAC,CAAD,CAAb,GAAmBA,aAAa,CAAC,CAAD,CAAjC,IAAwC,CAA/H,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAOD,cAAP,CAAA;GAdF,CAAA;;AAiBAb,EAAAA,cAAc,CAACr/N,SAAf,CAAyBk3N,aAAzB,GAAyC,UAAUC,cAAV,EAA0B;AACjE;IACA,IAAI,IAAA,CAAKt2J,UAAL,EAAJ,EAAuB;AACrB,MAAA,OAAA;AACD,KAAA;;IAED,IAAIh3B,KAAK,GAAG,EAAZ,CAAA;AACA,IAAA,IAAIK,WAAW,GAAG,CAAC,EAAD,EAAK,EAAL,CAAlB,CAAA;IACA,IAAIu5G,cAAc,GAAG,IAArB,CAAA;;AAEA,IAAA,SAASq0E,OAAT,CAAiBhjK,QAAjB,EAA2Bi2I,UAA3B,EAAuC;AACrC,MAAA,IAAIm1B,cAAc,GAAGz8E,cAAc,CAACw8E,iBAAf,CAAiC;AACpDnrK,QAAAA,QAAQ,EAAEA,QAAAA;OADS,CAArB,CADqC;;MAKrC,IAAI,CAACi2I,UAAL,EAAiB;AACfA,QAAAA,UAAU,GAAGtnD,cAAc,CAAC+mD,aAAf,CAA6B01B,cAA7B,CAAb,CAAA;AACD,OAAA;;AAED,MAAA,IAAI56N,KAAK,GAAG6xN,cAAc,CAAC+I,cAAD,EAAiBn1B,UAAjB,CAA1B,CAAA;;AAEA,MAAA,IAAIj2I,QAAQ,CAAC,CAAD,CAAR,KAAgB,CAACvtC,QAArB,EAA+B;AAC7B2iB,QAAAA,WAAW,CAAC,CAAD,CAAX,GAAiB5kC,KAAjB,CAAA;OADF,MAEO,IAAIwvD,QAAQ,CAAC,CAAD,CAAR,KAAgBvtC,QAApB,EAA8B;AACnC2iB,QAAAA,WAAW,CAAC,CAAD,CAAX,GAAiB5kC,KAAjB,CAAA;AACD,OAFM,MAEA;QACLukC,KAAK,CAAC9lC,IAAN,CAAW;AACTm7B,UAAAA,KAAK,EAAE41B,QAAQ,CAAC,CAAD,CADN;AAETxvD,UAAAA,KAAK,EAAEA,KAAAA;AAFE,SAAX,EAGG;AACD45B,UAAAA,KAAK,EAAE41B,QAAQ,CAAC,CAAD,CADd;AAEDxvD,UAAAA,KAAK,EAAEA,KAAAA;SALT,CAAA,CAAA;AAOD,OAAA;AACF,KAlCgE;;;AAqCjE,IAAA,IAAIkxG,SAAS,GAAG,IAAA,CAAK8oH,UAAL,CAAgBv2M,KAAhB,EAAhB,CAAA;;AAEA,IAAA,IAAI,CAACytF,SAAS,CAACxzG,MAAf,EAAuB;MACrBwzG,SAAS,CAACzyG,IAAV,CAAe;AACb+wD,QAAAA,QAAQ,EAAE,CAAC,CAACvtC,QAAF,EAAYA,QAAZ,CAAA;OADZ,CAAA,CAAA;AAGD,KAJD,MAIO;MACL,IAAI43E,IAAI,GAAGqX,SAAS,CAAC,CAAD,CAAT,CAAa1hD,QAAb,CAAsB,CAAtB,CAAX,CAAA;AACAqqC,MAAAA,IAAI,KAAK,CAAC53E,QAAV,IAAsBivF,SAAS,CAAC9rE,OAAV,CAAkB;AACtCoqB,QAAAA,QAAQ,EAAE,CAAC,CAACvtC,QAAF,EAAY43E,IAAZ,CAAA;AAD4B,OAAlB,CAAtB,CAAA;AAGAA,MAAAA,IAAI,GAAGqX,SAAS,CAACA,SAAS,CAACxzG,MAAV,GAAmB,CAApB,CAAT,CAAgC8xD,QAAhC,CAAyC,CAAzC,CAAP,CAAA;AACAqqC,MAAAA,IAAI,KAAK53E,QAAT,IAAqBivF,SAAS,CAACzyG,IAAV,CAAe;AAClC+wD,QAAAA,QAAQ,EAAE,CAACqqC,IAAD,EAAO53E,QAAP,CAAA;AADwB,OAAf,CAArB,CAAA;AAGD,KAAA;;IAED,IAAI64M,IAAI,GAAG,CAAC74M,QAAZ,CAAA;AACAmgB,IAAAA,MAAA,CAAY8uE,SAAZ,EAAuB,UAAUK,KAAV,EAAiB;AACtC,MAAA,IAAI/hD,QAAQ,GAAG+hD,KAAK,CAAC/hD,QAArB,CAAA;;AAEA,MAAA,IAAIA,QAAJ,EAAc;AACZ;AACAA,QAAAA,QAAQ,CAAC,CAAD,CAAR,GAAcsrK,IAAd,IAAsBtI,OAAO,CAAC,CAACsI,IAAD,EAAOtrK,QAAQ,CAAC,CAAD,CAAf,CAAD,EAAsB,YAAtB,CAA7B,CAAA;AACAgjK,QAAAA,OAAO,CAAChjK,QAAQ,CAAC/rC,KAAT,EAAD,CAAP,CAAA;AACAq3M,QAAAA,IAAI,GAAGtrK,QAAQ,CAAC,CAAD,CAAf,CAAA;AACD,OAAA;AACF,KATD,EASG,IATH,CAAA,CAAA;IAUA,OAAO;AACLjrB,MAAAA,KAAK,EAAEA,KADF;AAELK,MAAAA,WAAW,EAAEA,WAAAA;KAFf,CAAA;GAjEF,CAAA;;EAuEAm1L,cAAc,CAACtsN,IAAf,GAAsB,qBAAtB,CAAA;EACAssN,cAAc,CAAC1sM,aAAf,GAA+BokB,oBAAoB,CAAC+9K,cAAc,CAACniM,aAAhB,EAA+B;AAChFqkE,IAAAA,QAAQ,EAAE,IADsE;AAEhFqpI,IAAAA,OAAO,EAAE,KAFuE;AAGhFC,IAAAA,OAAO,EAAE,KAHuE;AAIhFjzL,IAAAA,KAAK,EAAE,MAJyE;AAKhF3b,IAAAA,SAAS,EAAE,EALqE;AAMhFD,IAAAA,UAAU,EAAE,EANoE;AAOhFqlM,IAAAA,UAAU,EAAE,WAPoE;AAQhFoI,IAAAA,MAAM,EAAE,IARwE;AAShF5gL,IAAAA,UAAU,EAAE,IAToE;AAUhFyW,IAAAA,WAAW,EAAE,CAVmE;AAWhFy8B,IAAAA,YAAY,EAAE,UAXkE;AAYhFi5F,IAAAA,OAAO,EAAE,EAZuE;IAahF6tC,SAAS,EAAE,IAbqE;;AAAA,GAA/B,CAAnD,CAAA;AAgBA,EAAA,OAAO+G,cAAP,CAAA;AACD,CApTD,CAoTEvK,cApTF,CAFA,CAAA;;AAwTA,CAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI4K,YAAY,GAAG;EACjB3qK,WAAW,EAAE,SAAUwrK,WAAAA,CAAAA,YAAV,EAAwB;IACnC,IAAI1pK,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;IACA,IAAI3wB,SAAS,GAAGV,IAAI,CAAC8iC,GAAL,CAASu0B,UAAU,CAAC32D,SAApB,EAA+B,EAA/B,CAAhB,CAAA;AACA,IAAA,IAAI+0G,UAAU,GAAG,IAAKl2E,CAAAA,SAAL,EAAjB,CAAA;AACA,IAAA,IAAIg2B,WAAW,GAAG8B,UAAU,CAAC9B,WAA7B,CAAA;AACAA,IAAAA,WAAW,GAAGv1D,IAAI,CAAC0iB,GAAL,CAAS28D,QAAQ,CAAC9pB,WAAD,EAAc,EAAd,CAAjB,EAAoC,CAApC,CAAd,CAAA;IACA8B,UAAU,CAAC9B,WAAX,GAAyBA,WAAzB,CAAA;AACA,IAAA,IAAIyrK,SAAS,GAAG,CAACvrH,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAA3B,IAAkClgD,WAAlD,CAPmC;;AASnC,IAAA,OAAO,CAACyrK,SAAS,CAACtqG,OAAV,CAAkBh2H,SAAlB,CAAD,KAAkCsgO,SAAlC,IAA+CtgO,SAAS,GAAG,CAAlE,EAAqE;MACnEA,SAAS,EAAA,CAAA;AACV,KAAA;;IAED22D,UAAU,CAAC32D,SAAX,GAAuBA,SAAvB,CAAA;AACAsgO,IAAAA,SAAS,GAAG,CAACA,SAAS,CAACtqG,OAAV,CAAkBh2H,SAAlB,CAAb,CAAA;;IAEA,IAAI22D,UAAU,CAACwpK,OAAf,EAAwB;MACtBE,YAAY,CAACx8N,IAAb,CAAkB;QAChB+wD,QAAQ,EAAE,CAAC,CAACvtC,QAAF,EAAY0tF,UAAU,CAAC,CAAD,CAAtB,CADM;AAEhB8B,QAAAA,KAAK,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAA;OAFT,CAAA,CAAA;AAID,KAAA;;IAED,KAAK,IAAI93D,KAAK,GAAG,CAAZ,EAAemhL,IAAI,GAAGnrH,UAAU,CAAC,CAAD,CAArC,EAA0Ch2D,KAAK,GAAG8V,WAAlD,EAA+DqrK,IAAI,IAAII,SAAR,EAAmBvhL,KAAK,EAAvF,EAA2F;AACzF,MAAA,IAAI/8B,GAAG,GAAG+8B,KAAK,KAAK8V,WAAW,GAAG,CAAxB,GAA4BkgD,UAAU,CAAC,CAAD,CAAtC,GAA4CmrH,IAAI,GAAGI,SAA7D,CAAA;MACAD,YAAY,CAACx8N,IAAb,CAAkB;AAChB+wD,QAAAA,QAAQ,EAAE,CAACsrK,IAAD,EAAOl+M,GAAP,CADM;AAEhB60F,QAAAA,KAAK,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAA;OAFT,CAAA,CAAA;AAID,KAAA;;IAED,IAAIlgD,UAAU,CAACypK,OAAf,EAAwB;MACtBC,YAAY,CAACx8N,IAAb,CAAkB;QAChB+wD,QAAQ,EAAE,CAACmgD,UAAU,CAAC,CAAD,CAAX,EAAgB1tF,QAAhB,CADM;AAEhBwvF,QAAAA,KAAK,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAA;OAFT,CAAA,CAAA;AAID,KAAA;;IAED0pH,eAAe,CAACF,YAAD,CAAf,CAAA;IACA74L,MAAA,CAAY64L,YAAZ,EAA0B,UAAU1pH,KAAV,EAAiB53D,KAAjB,EAAwB;MAChD43D,KAAK,CAAC53D,KAAN,GAAcA,KAAd,CAAA;MACA43D,KAAK,CAAC3vG,IAAN,GAAa,IAAA,CAAKwuN,eAAL,CAAqB7+G,KAAK,CAAC/hD,QAA3B,CAAb,CAAA;AACD,KAHD,EAGG,IAHH,CAAA,CAAA;GAxCe;EA6CjBxW,UAAU,EAAE,SAAUiiL,UAAAA,CAAAA,YAAV,EAAwB;IAClC,IAAI1pK,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;IACA6W,MAAA,CAAYmvB,UAAU,CAACvY,UAAvB,EAAmC,UAAUk6D,IAAV,EAAgB;AACjD;AACA;MACA+nH,YAAY,CAACx8N,IAAb,CAAkB;AAChBmD,QAAAA,IAAI,EAAE,IAAKwuN,CAAAA,eAAL,CAAqBl9G,IAArB,EAA2B,IAA3B,CADU;AAEhBt5E,QAAAA,KAAK,EAAEs5E,IAAAA;OAFT,CAAA,CAAA;KAHF,EAOG,IAPH,CAAA,CAFkC;;AAWlCkoH,IAAAA,gBAAgB,CAAC7pK,UAAD,EAAa0pK,YAAb,CAAhB,CAAA;GAxDe;EA0DjBrB,MAAM,EAAE,SAAUqB,MAAAA,CAAAA,YAAV,EAAwB;IAC9B,IAAI1pK,UAAU,GAAG,IAAA,CAAKhmC,MAAtB,CAAA;IACA6W,MAAA,CAAYmvB,UAAU,CAACqoK,MAAvB,EAA+B,UAAUyB,aAAV,EAAyB1hL,KAAzB,EAAgC;AAC7D,MAAA,IAAI,CAACvX,UAAA,CAAgBi5L,aAAhB,CAAL,EAAqC;AACnCA,QAAAA,aAAa,GAAG;AACdzhM,UAAAA,KAAK,EAAEyhM,aAAAA;SADT,CAAA;AAGD,OAAA;;AAED,MAAA,IAAIpuN,IAAI,GAAG;AACTrL,QAAAA,IAAI,EAAE,EADG;AAET+3C,QAAAA,KAAK,EAAEA,KAAAA;OAFT,CAAA;;AAKA,MAAA,IAAI0hL,aAAa,CAAC9tM,KAAd,IAAuB,IAA3B,EAAiC;AAC/BtgB,QAAAA,IAAI,CAACrL,IAAL,GAAYy5N,aAAa,CAAC9tM,KAA1B,CAAA;AACD,OAAA;;AAED,MAAA,IAAI8tM,aAAa,CAAC1wM,cAAd,CAA6B,OAA7B,CAAJ,EAA2C;QACzC,IAAIiP,KAAK,GAAG3sB,IAAI,CAAC2sB,KAAL,GAAayhM,aAAa,CAACzhM,KAAvC,CAAA;AACA3sB,QAAAA,IAAI,CAACuiD,QAAL,GAAgB,CAAC51B,KAAD,EAAQA,KAAR,CAAhB,CAAA;AACA3sB,QAAAA,IAAI,CAACwkG,KAAL,GAAa,CAAC,CAAD,EAAI,CAAJ,CAAb,CAAA;AACD,OAJD,MAIO;AACL;AACA;AACA,QAAA,IAAIjiD,QAAQ,GAAGviD,IAAI,CAACuiD,QAAL,GAAgB,EAA/B,CAAA;QACA,IAAIgiD,OAAO,GAAGvkG,IAAI,CAACwkG,KAAL,GAAa,CAAC,CAAD,EAAI,CAAJ,CAA3B,CAAA;QACA,IAAI6pH,SAAS,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAAhB,CAAA;AACA,QAAA,IAAIC,YAAY,GAAG,CAAC,CAACt5M,QAAF,EAAYA,QAAZ,CAAnB,CAAA;QACA,IAAIu5M,SAAS,GAAG,EAAhB,CAAA;;QAEA,KAAK,IAAIC,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAG,CAAtB,EAAyBA,EAAE,EAA3B,EAA+B;UAC7B,IAAIxoI,KAAK,GAAG,CAAC,CAAC,KAAD,EAAQ,IAAR,EAAc,KAAd,CAAD,EAAuB,CAAC,KAAD,EAAQ,IAAR,EAAc,KAAd,CAAvB,CAAA,CAA6CwoI,EAA7C,CAAZ,CAAA;;AAEA,UAAA,KAAK,IAAIr9N,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAAJ,IAASoxD,QAAQ,CAACisK,EAAD,CAAR,IAAgB,IAAzC,EAA+Cr9N,CAAC,EAAhD,EAAoD;YAClDoxD,QAAQ,CAACisK,EAAD,CAAR,GAAeJ,aAAa,CAACpoI,KAAK,CAAC70F,CAAD,CAAN,CAA5B,CAAA;AACAozG,YAAAA,OAAO,CAACiqH,EAAD,CAAP,GAAcH,SAAS,CAACl9N,CAAD,CAAvB,CAAA;AACAo9N,YAAAA,SAAS,CAACC,EAAD,CAAT,GAAgBr9N,CAAC,KAAK,CAAtB,CAAA;AACD,WAAA;;AAEDoxD,UAAAA,QAAQ,CAACisK,EAAD,CAAR,IAAgB,IAAhB,KAAyBjsK,QAAQ,CAACisK,EAAD,CAAR,GAAeF,YAAY,CAACE,EAAD,CAApD,CAAA,CAAA;AACD,SAAA;;AAEDD,QAAAA,SAAS,CAAC,CAAD,CAAT,IAAgBhsK,QAAQ,CAAC,CAAD,CAAR,KAAgBvtC,QAAhC,KAA6CuvF,OAAO,CAAC,CAAD,CAAP,GAAa,CAA1D,CAAA,CAAA;AACAgqH,QAAAA,SAAS,CAAC,CAAD,CAAT,IAAgBhsK,QAAQ,CAAC,CAAD,CAAR,KAAgB,CAACvtC,QAAjC,KAA8CuvF,OAAO,CAAC,CAAD,CAAP,GAAa,CAA3D,CAAA,CAAA;;AAEA,QAAA,IAAI1/F,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;UACzC,IAAIw9C,QAAQ,CAAC,CAAD,CAAR,GAAcA,QAAQ,CAAC,CAAD,CAA1B,EAA+B;YAC7Bn5C,OAAO,CAAC2tB,IAAR,CAAa,QAAW2V,GAAAA,KAAX,GAAmB,cAAnB,GAAoC6V,QAApC,GAA+C,oDAA5D,CAAA,CAAA;AACD,WAAA;AACF,SAAA;;AAED,QAAA,IAAIA,QAAQ,CAAC,CAAD,CAAR,KAAgBA,QAAQ,CAAC,CAAD,CAAxB,IAA+BgiD,OAAO,CAAC,CAAD,CAAtC,IAA6CA,OAAO,CAAC,CAAD,CAAxD,EAA6D;AAC3D;AACA;AACAvkG,UAAAA,IAAI,CAAC2sB,KAAL,GAAa41B,QAAQ,CAAC,CAAD,CAArB,CAAA;AACD,SAAA;AACF,OAAA;;MAEDviD,IAAI,CAACijG,MAAL,GAAcnB,aAAa,CAACwB,eAAd,CAA8B8qH,aAA9B,CAAd,CAAA;MACAJ,YAAY,CAACx8N,IAAb,CAAkBwO,IAAlB,CAAA,CAAA;KA1DF,EA2DG,IA3DH,CAAA,CAF8B;;AA+D9BmuN,IAAAA,gBAAgB,CAAC7pK,UAAD,EAAa0pK,YAAb,CAAhB,CA/D8B;;IAiE9BE,eAAe,CAACF,YAAD,CAAf,CAAA;AACA74L,IAAAA,MAAA,CAAY64L,YAAZ,EAA0B,UAAU1pH,KAAV,EAAiB;AACzC,MAAA,IAAIE,KAAK,GAAGF,KAAK,CAACE,KAAlB,CAAA;MACA,IAAI4+G,WAAW,GAAG,CAAC,CAAC,GAAD,EAAM,GAAN,CAAA,CAAW5+G,KAAK,CAAC,CAAD,CAAhB,CAAD,EAAuB,CAAC,GAAD,EAAM,GAAN,CAAA,CAAWA,KAAK,CAAC,CAAD,CAAhB,CAAvB,CAAlB,CAAA;MACAF,KAAK,CAAC3vG,IAAN,GAAa2vG,KAAK,CAAC3vG,IAAN,IAAc,IAAKwuN,CAAAA,eAAL,CAAqB7+G,KAAK,CAAC33E,KAAN,IAAe,IAAf,GAAsB23E,KAAK,CAAC33E,KAA5B,GAAoC23E,KAAK,CAAC/hD,QAA/D,EAAyE,KAAzE,EAAgF6gK,WAAhF,CAA3B,CAAA;AACD,KAJD,EAIG,IAJH,CAAA,CAAA;AAKD,GAAA;AAjIgB,CAAnB,CAAA;;AAoIA,SAAS+K,gBAAT,CAA0B7pK,UAA1B,EAAsC2/C,SAAtC,EAAiD;AAC/C,EAAA,IAAItwE,OAAO,GAAG2wB,UAAU,CAAC3wB,OAAzB,CAAA;;EAEA,IAAI2wB,UAAU,CAAC2kC,MAAX,KAAsB,UAAtB,GAAmC,CAACt1D,OAApC,GAA8CA,OAAlD,EAA2D;AACzDswE,IAAAA,SAAS,CAACrsE,OAAV,EAAA,CAAA;AACD,GAAA;AACF;;AC3fD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkCA,IAAI62L,sBAAsB;AAC1B;AACA,UAAU98M,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC68M,sBAAD,EAAyB98M,MAAzB,CAAT,CAAA;;AAEA,EAAA,SAAS88M,sBAAT,GAAkC;AAChC,IAAA,IAAI58M,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;AAEAygB,IAAAA,KAAK,CAACrR,IAAN,GAAaiuN,sBAAsB,CAACjuN,IAApC,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;AAED48M,EAAAA,sBAAsB,CAAChhO,SAAvB,CAAiC64N,QAAjC,GAA4C,YAAY;IACtD,IAAIruH,SAAS,GAAG,IAAA,CAAKn5E,KAArB,CAAA;AACAm5E,IAAAA,SAAS,CAACv1E,SAAV,EAAA,CAAA;IACA,IAAIwuH,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;AACA,IAAA,IAAI4zE,OAAO,GAAG5zE,cAAc,CAACtrH,GAAf,CAAmB,SAAnB,CAAd,CAAA;AACA,IAAA,IAAIusC,cAAc,GAAG++E,cAAc,CAAC/+E,cAApC,CAAA;AACA,IAAA,IAAIQ,QAAQ,GAAGR,cAAc,CAACS,OAAf,EAAf,CAAA;AACA,IAAA,IAAIqtF,QAAQ,GAAG9tF,cAAc,CAACa,YAAf,EAAf,CAAA;;AAEA,IAAA,IAAIs9I,SAAS,GAAG,IAAKoe,CAAAA,aAAL,EAAhB,CAAA;;AAEA,IAAA,IAAIxqG,QAAQ,GAAGgtB,cAAc,CAAChtB,QAA9B,CAAA;;AAEA,IAAA,IAAIyqG,QAAQ,GAAG,IAAKC,CAAAA,YAAL,EAAf,CAAA;;AAEA,IAAA,IAAIC,QAAQ,GAAGF,QAAQ,CAACE,QAAxB,CAAA;AACA,IAAA,IAAIlzI,SAAS,GAAGxmD,QAAA,CAAgB+7G,cAAc,CAACtrH,GAAf,CAAmB,WAAnB,EAAgC,IAAhC,CAAhB,EAAuD,CAACipM,QAAxD,CAAhB,CAAA;AACAA,IAAAA,QAAQ,IAAI,IAAK1G,CAAAA,eAAL,CAAqBlwH,SAArB,EAAgC42H,QAAQ,CAAC,CAAD,CAAxC,EAA6C3qG,QAA7C,EAAuDvoC,SAAvD,EAAkE20H,SAAlE,CAAZ,CAAA;IACAn7K,MAAA,CAAYw5L,QAAQ,CAACG,aAArB,EAAoC,UAAU9uN,IAAV,EAAgB;AAClD,MAAA,IAAIskG,KAAK,GAAGtkG,IAAI,CAACskG,KAAjB,CAAA;AACA,MAAA,IAAI5lC,SAAS,GAAG,IAAIl6C,OAAJ,EAAhB,CAAA;AACAk6C,MAAAA,SAAS,CAACm6B,OAAV,GAAoB1jE,MAAA,CAAY,IAAA,CAAK45L,YAAjB,EAA+B,IAA/B,EAAqCzqH,KAArC,CAApB,CAAA;;MAEA,IAAK0qH,CAAAA,gBAAL,CAAsBtwJ,SAAtB,EAAiC1+D,IAAI,CAACivN,qBAAtC,EALkD;;;AAQlD,MAAA,IAAItB,cAAc,GAAGz8E,cAAc,CAACw8E,iBAAf,CAAiCppH,KAAjC,CAArB,CAAA;;MAEA,IAAK4qH,CAAAA,iBAAL,CAAuBxwJ,SAAvB,EAAkCivJ,cAAlC,EAAkD,CAAC,CAAD,EAAI,CAAJ,EAAOzpG,QAAQ,CAAC,CAAD,CAAf,EAAoBA,QAAQ,CAAC,CAAD,CAA5B,CAAlD,CAAA,CAAA;;AAEA,MAAA,IAAIvoC,SAAJ,EAAe;QACb,IAAIwzI,WAAW,GAAG,IAAKj+E,CAAAA,cAAL,CAAoB+mD,aAApB,CAAkC01B,cAAlC,CAAlB,CAAA;AACAjvJ,QAAAA,SAAS,CAACr/C,GAAV,CAAc,IAAImF,MAAJ,CAAiB;AAC7BzyB,UAAAA,KAAK,EAAE;AACL7D,YAAAA,CAAC,EAAEoiN,SAAS,KAAK,OAAd,GAAwB,CAACwU,OAAzB,GAAmC5gG,QAAQ,CAAC,CAAD,CAAR,GAAc4gG,OAD/C;AAEL32N,YAAAA,CAAC,EAAE+1H,QAAQ,CAAC,CAAD,CAAR,GAAc,CAFZ;YAGLvvH,IAAI,EAAE2vG,KAAK,CAAC3vG,IAHP;AAILomC,YAAAA,aAAa,EAAE,QAJV;AAKLD,YAAAA,KAAK,EAAEw1K,SALF;AAMLzuM,YAAAA,IAAI,EAAE8wD,QAND;AAOL3gE,YAAAA,IAAI,EAAEiuJ,QAPD;AAQLrtJ,YAAAA,OAAO,EAAEu8N,WAAW,KAAK,YAAhB,GAA+B,GAA/B,GAAqC,CAAA;AARzC,WAAA;AADsB,SAAjB,CAAd,CAAA,CAAA;AAYD,OAAA;;MAEDl3H,SAAS,CAAC54E,GAAV,CAAcq/C,SAAd,CAAA,CAAA;AACD,KA7BD,EA6BG,IA7BH,CAAA,CAAA;AA8BAmwJ,IAAAA,QAAQ,IAAI,IAAK1G,CAAAA,eAAL,CAAqBlwH,SAArB,EAAgC42H,QAAQ,CAAC,CAAD,CAAxC,EAA6C3qG,QAA7C,EAAuDvoC,SAAvD,EAAkE20H,SAAlE,CAAZ,CAAA;AACAjnK,IAAAA,GAAA,CAAW6nG,cAAc,CAACtrH,GAAf,CAAmB,QAAnB,CAAX,EAAyCqyE,SAAzC,EAAoDi5C,cAAc,CAACtrH,GAAf,CAAmB,SAAnB,CAApD,CAAA,CAAA;IACA,IAAKy5E,CAAAA,gBAAL,CAAsBpH,SAAtB,CAAA,CAAA;IACA,IAAK8uH,CAAAA,aAAL,CAAmB9uH,SAAnB,CAAA,CAAA;GAnDF,CAAA;;EAsDAw2H,sBAAsB,CAAChhO,SAAvB,CAAiCuhO,gBAAjC,GAAoD,UAAUtwJ,SAAV,EAAqBgoC,UAArB,EAAiC;IACnF,IAAI70F,KAAK,GAAG,IAAZ,CAAA;;AAEA6sD,IAAAA,SAAS,CAACzzB,EAAV,CAAa,WAAb,EAA0B,YAAY;MACpC,OAAOmkL,WAAW,CAAC,WAAD,CAAlB,CAAA;AACD,KAFD,CAEGnkL,CAAAA,EAFH,CAEM,UAFN,EAEkB,YAAY;MAC5B,OAAOmkL,WAAW,CAAC,UAAD,CAAlB,CAAA;KAHF,CAAA,CAAA;;AAMA,IAAA,IAAIA,WAAW,GAAG,SAAdA,WAAc,CAAUx+M,MAAV,EAAkB;AAClC,MAAA,IAAIsgI,cAAc,GAAGr/H,KAAK,CAACq/H,cAA3B,CADkC;;MAGlCA,cAAc,CAAC5yH,MAAf,CAAsBynM,SAAtB,IAAmCl0M,KAAK,CAAC7H,GAAN,CAAUwiC,cAAV,CAAyB;AAC1DhsC,QAAAA,IAAI,EAAEoQ,MADoD;AAE1D4pJ,QAAAA,KAAK,EAAEjmE,iBAAA,CAAyB28C,cAAc,CAACi0E,qBAAf,CAAqCz+G,UAArC,CAAzB,EAA2EwqC,cAA3E,CAAA;AAFmD,OAAzB,CAAnC,CAAA;KAHF,CAAA;GATF,CAAA;;AAmBAu9E,EAAAA,sBAAsB,CAAChhO,SAAvB,CAAiCihO,aAAjC,GAAiD,YAAY;IAC3D,IAAIx9E,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;AACA,IAAA,IAAIg2E,WAAW,GAAGh2E,cAAc,CAAC5yH,MAAjC,CAAA;;AAEA,IAAA,IAAI4oM,WAAW,CAACj+H,MAAZ,KAAuB,UAA3B,EAAuC;AACrC,MAAA,OAAOsL,YAAA,CAAoB28C,cAApB,EAAoC,IAAKlnI,CAAAA,GAAzC,EAA8CknI,cAAc,CAAChtB,QAA7D,CAAP,CAAA;AACD,KAFD,MAEO;AACL;AACA,MAAA,IAAIppF,KAAK,GAAGosL,WAAW,CAACpsL,KAAxB,CAAA;;AAEA,MAAA,IAAI,CAACA,KAAD,IAAUA,KAAK,KAAK,MAAxB,EAAgC;AAC9BA,QAAAA,KAAK,GAAG,MAAR,CAAA;AACD,OAAA;;AAED,MAAA,OAAOA,KAAP,CAAA;AACD,KAAA;GAfH,CAAA;;AAkBA2zL,EAAAA,sBAAsB,CAAChhO,SAAvB,CAAiC06N,eAAjC,GAAmD,UAAUrpM,KAAV,EAAiBnqB,IAAjB,EAAuBuvH,QAAvB,EAAiCvoC,SAAjC,EAA4C20H,SAA5C,EAAuD;IACxG,IAAI,CAAC37M,IAAL,EAAW;AACT,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI+pE,SAAS,GAAG,IAAIl6C,OAAJ,EAAhB,CAAA;AACA,IAAA,IAAI2tC,cAAc,GAAG,IAAK++E,CAAAA,cAAL,CAAoB/+E,cAAzC,CAAA;AACAuM,IAAAA,SAAS,CAACr/C,GAAV,CAAc,IAAImF,MAAJ,CAAiB;AAC7BzyB,MAAAA,KAAK,EAAEghE,eAAe,CAACZ,cAAD,EAAiB;AACrCjkE,QAAAA,CAAC,EAAEytF,SAAS,GAAG20H,SAAS,KAAK,OAAd,GAAwBpsF,QAAQ,CAAC,CAAD,CAAhC,GAAsC,CAAzC,GAA6CA,QAAQ,CAAC,CAAD,CAAR,GAAc,CADlC;AAErC/1H,QAAAA,CAAC,EAAE+1H,QAAQ,CAAC,CAAD,CAAR,GAAc,CAFoB;AAGrCnpF,QAAAA,aAAa,EAAE,QAHsB;AAIrCD,QAAAA,KAAK,EAAE6gD,SAAS,GAAG20H,SAAH,GAAe,QAJM;AAKrC37M,QAAAA,IAAI,EAAEA,IAAAA;OALc,CAAA;AADO,KAAjB,CAAd,CAAA,CAAA;IASAmqB,KAAK,CAACO,GAAN,CAAUq/C,SAAV,CAAA,CAAA;GAhBF,CAAA;AAkBA;AACF;AACA;AACA;;;AAGE+vJ,EAAAA,sBAAsB,CAAChhO,SAAvB,CAAiCmhO,YAAjC,GAAgD,YAAY;IAC1D,IAAI19E,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;AACA,IAAA,IAAI49E,aAAa,GAAG35L,GAAA,CAAW+7G,cAAc,CAACQ,YAAf,EAAX,EAA0C,UAAUptC,KAAV,EAAiB53D,KAAjB,EAAwB;MACpF,OAAO;AACL43D,QAAAA,KAAK,EAAEA,KADF;AAEL2qH,QAAAA,qBAAqB,EAAEviL,KAAAA;OAFzB,CAAA;AAID,KALmB,CAApB,CAAA;IAMA,IAAImiL,QAAQ,GAAG39E,cAAc,CAACtrH,GAAf,CAAmB,MAAnB,CAAf,CAR0D;;AAU1D,IAAA,IAAIqjE,MAAM,GAAGioD,cAAc,CAACtrH,GAAf,CAAmB,QAAnB,CAAb,CAAA;IACA,IAAI+N,OAAO,GAAGu9G,cAAc,CAACtrH,GAAf,CAAmB,SAAnB,CAAd,CAX0D;;IAa1D,IAAIqjE,MAAM,KAAK,YAAX,GAA0Bt1D,OAA1B,GAAoC,CAACA,OAAzC,EAAkD;AAChDm7L,MAAAA,aAAa,CAACl3L,OAAd,EAAA,CAAA;AACD,KAFD;SAGK,IAAIi3L,QAAJ,EAAc;AACfA,MAAAA,QAAQ,GAAGA,QAAQ,CAACr4M,KAAT,EAAA,CAAiBohB,OAAjB,EAAX,CAAA;AACD,KAAA;;IAEH,OAAO;AACLk3L,MAAAA,aAAa,EAAEA,aADV;AAELD,MAAAA,QAAQ,EAAEA,QAAAA;KAFZ,CAAA;GApBF,CAAA;;EA0BAJ,sBAAsB,CAAChhO,SAAvB,CAAiCyhO,iBAAjC,GAAqD,UAAUpwM,KAAV,EAAiB6uM,cAAjB,EAAiC0B,UAAjC,EAA6C;AAChGvwM,IAAAA,KAAK,CAACO,GAAN,CAAUJ,cAAY;IACtB,IAAKsnM,CAAAA,mBAAL,CAAyBoH,cAAzB,EAAyC,QAAzC,CADsB,EAC8B0B,UAAU,CAAC,CAAD,CADxC,EAC6CA,UAAU,CAAC,CAAD,CADvD,EAC4DA,UAAU,CAAC,CAAD,CADtE,EAC2EA,UAAU,CAAC,CAAD,CADrF;AAEtB,IAAA,IAAA,CAAK9I,mBAAL,CAAyBoH,cAAzB,EAAyC,OAAzC,CAFsB,CAAtB,CAAA,CAAA;GADF,CAAA;;AAMAc,EAAAA,sBAAsB,CAAChhO,SAAvB,CAAiCshO,YAAjC,GAAgD,UAAUzqH,KAAV,EAAiB;IAC/D,IAAI4sC,cAAc,GAAG,IAAA,CAAKA,cAA1B,CAAA;AACA,IAAA,IAAI5yH,MAAM,GAAG4yH,cAAc,CAAC5yH,MAA5B,CAAA;AACA,IAAA,IAAI2gE,YAAY,GAAG3gE,MAAM,CAAC2gE,YAA1B,CAAA;;IAEA,IAAI,CAACA,YAAL,EAAmB;AACjB,MAAA,OAAA;AACD,KAAA;;IAED,IAAIwF,QAAQ,GAAGtvD,OAAA,CAAa7W,MAAM,CAACmmE,QAApB,CAAf,CAAA;AACA,IAAA,IAAI6qI,MAAM,GAAGp+E,cAAc,CAACq8E,iBAAf,CAAiCjpH,KAAjC,CAAb,CAAA;;AAEA,IAAA,IAAIrlB,YAAY,KAAK,QAAjB,IAA6BA,YAAY,KAAK,IAAlD,EAAwD;AACtDwF,MAAAA,QAAQ,CAAC6qI,MAAD,CAAR,GAAmB,IAAnB,CAAA;MACAn6L,MAAA,CAAYsvD,QAAZ,EAAsB,UAAU8qI,CAAV,EAAa/6N,GAAb,EAAkB;AACtCiwF,QAAAA,QAAQ,CAACjwF,GAAD,CAAR,GAAgBA,GAAG,KAAK86N,MAAxB,CAAA;OADF,CAAA,CAAA;AAGD,KALD,MAKO;MACL7qI,QAAQ,CAAC6qI,MAAD,CAAR,GAAmB,CAAC7qI,QAAQ,CAAC6qI,MAAD,CAA5B,CAAA;AACD,KAAA;;IAED,IAAKtlN,CAAAA,GAAL,CAASwiC,cAAT,CAAwB;AACtBhsC,MAAAA,IAAI,EAAE,iBADgB;MAEtB08E,IAAI,EAAE,KAAKxH,GAFW;AAGtBk0I,MAAAA,WAAW,EAAE,IAAA,CAAK14E,cAAL,CAAoB5vI,EAHX;AAItBmjF,MAAAA,QAAQ,EAAEA,QAAAA;KAJZ,CAAA,CAAA;GArBF,CAAA;;EA6BAgqI,sBAAsB,CAACjuN,IAAvB,GAA8B,qBAA9B,CAAA;AACA,EAAA,OAAOiuN,sBAAP,CAAA;AACD,CA5LD,CA4LErI,aA5LF,CAFA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAASv1M,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiCmoK,cAAjC,CAAA,CAAA;EACAh8M,SAAS,CAACksD,qBAAV,CAAgCwyJ,sBAAhC,CAAA,CAAA;EACAp4C,aAAa,CAACtmK,SAAD,CAAb,CAAA;AACD;;ACjDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,SAASD,SAAT,CAAiBC,SAAjB,EAA4B;EACjCqsD,GAAG,CAACsyJ,SAAD,CAAH,CAAA;AACAtyJ,EAAAA,GAAG,CAACuyJ,SAAD,CAAH,CAFiC;AAGjC;AACD;;ACjDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA,IAAIC,cAAc,GAAG;AACnBrvM,EAAAA,KAAK,EAAE;AACLsvM,IAAAA,OAAO,EAAE,IAAA;GAFQ;AAInBtpM,EAAAA,KAAK,EAAE;AACL9F,IAAAA,IAAI,EAAE,KAAA;AADD,GAAA;AAJY,CAArB,CAAA;AAQA,IAAIq6C,KAAK,GAAGC,SAAS,EAArB,CAAA;AACA,IAAI85B,iBAAiB,GAAG,EAAxB,CAAA;AACe,SAASi7H,UAAT,CAAoBr0L,OAApB,EAA6BxxB,GAA7B,EAAkC;EAC/C,IAAI8lN,SAAS,GAAGt0L,OAAO,CAAC9V,QAAR,CAAiB,MAAjB,CAAhB,CAD+C;;AAG/C,EAAA,IAAI,CAACoqM,SAAS,CAAClqM,GAAV,CAAc,SAAd,CAAL,EAA+B;AAC7B,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIxF,aAAa,GAAG+U,OAAA,CAAaw6L,cAAb,CAApB,CAAA;AACAx6L,EAAAA,KAAA,CAAa/U,aAAa,CAACE,KAA3B,EAAkCkb,OAAO,CAACwnI,cAAR,GAAyBp9I,GAAzB,CAA6B,MAA7B,CAAlC,EAAwE,KAAxE,CAAA,CAAA;EACAuP,KAAA,CAAa26L,SAAS,CAACxxM,MAAvB,EAA+B8B,aAA/B,EAA8C,KAA9C,CAAA,CAAA;EACA2vM,QAAQ,EAAA,CAAA;EACR5O,QAAQ,EAAA,CAAA;;AAER,EAAA,SAAS4O,QAAT,GAAoB;AAClB,IAAA,IAAIC,UAAU,GAAGF,SAAS,CAACpqM,QAAV,CAAmB,OAAnB,CAAjB,CAAA;AACA,IAAA,IAAIuqM,QAAQ,GAAGD,UAAU,CAACpqM,GAAX,CAAe,MAAf,CAAf,CAAA;;AAEA,IAAA,IAAIqqM,QAAJ,EAAc;AACZ;AACA;AACA,MAAA,IAAIC,yBAAyB,GAAG/6L,aAAA,EAAhC,CAAA;AACAqG,MAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuB;AACxC,QAAA,IAAIA,WAAW,CAACgsM,eAAZ,EAAJ,EAAmC;AACjC,UAAA,OAAA;AACD,SAAA;;QAED,IAAIC,UAAU,GAAGF,yBAAyB,CAACtqM,GAA1B,CAA8BzB,WAAW,CAAC3jB,IAA1C,CAAjB,CAAA;;QAEA,IAAI,CAAC4vN,UAAL,EAAiB;AACfA,UAAAA,UAAU,GAAG,EAAb,CAAA;AACAF,UAAAA,yBAAyB,CAACxwK,GAA1B,CAA8Bv7B,WAAW,CAAC3jB,IAA1C,EAAgD4vN,UAAhD,CAAA,CAAA;AACD,SAAA;;AAEDv1J,QAAAA,KAAK,CAAC12C,WAAD,CAAL,CAAmBtqB,KAAnB,GAA2Bu2N,UAA3B,CAAA;OAZF,CAAA,CAAA;AAcA50L,MAAAA,OAAO,CAACqjJ,aAAR,CAAsB,UAAU16J,WAAV,EAAuB;AAC3C,QAAA,IAAIqX,OAAO,CAACwpG,gBAAR,CAAyB7gH,WAAzB,CAAJ,EAA2C;AACzC,UAAA,OAAA;AACD,SAAA;;QAED,IAAIgR,UAAA,CAAkBhR,WAAW,CAAC0xE,eAA9B,CAAJ,EAAoD;AAClD;AACA1xE,UAAAA,WAAW,CAAC0xE,eAAZ,EAAA,CAAA;AACA,UAAA,OAAA;AACD,SAAA;;AAED,QAAA,IAAIl0E,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;;AAEA,QAAA,IAAI,CAAC2E,WAAW,CAACgsM,eAAZ,EAAL,EAAoC;AAClC,UAAA,IAAIE,SAAS,GAAGlsM,WAAW,CAAC+2B,UAAZ,EAAhB,CAAA;UACA,IAAIo1K,QAAQ,GAAG,EAAf,CAAA;AACA,UAAA,IAAIC,YAAY,GAAG11J,KAAK,CAAC12C,WAAD,CAAL,CAAmBtqB,KAAtC,CAAA;AACA8nB,UAAAA,IAAI,CAACxnB,IAAL,CAAU,UAAUgjB,GAAV,EAAe;AACvB,YAAA,IAAI6uB,MAAM,GAAGrqB,IAAI,CAACkN,WAAL,CAAiB1R,GAAjB,CAAb,CAAA;AACAmzM,YAAAA,QAAQ,CAACtkL,MAAD,CAAR,GAAmB7uB,GAAnB,CAAA;WAFF,CAAA,CAAA;AAIA,UAAA,IAAIqzM,WAAW,GAAGH,SAAS,CAACh7L,KAAV,EAAlB,CAAA;AACAg7L,UAAAA,SAAS,CAACl2N,IAAV,CAAe,UAAU6xC,MAAV,EAAkB;AAC/B,YAAA,IAAI7uB,GAAG,GAAGmzM,QAAQ,CAACtkL,MAAD,CAAlB,CAAA;YACA,IAAI73C,IAAI,GAAGk8N,SAAS,CAACjpM,OAAV,CAAkB4kB,MAAlB,CAAA,IAA6BA,MAAM,GAAG,EAAjD,CAAA;AACA,YAAA,IAAIykL,YAAY,GAAG57H,mBAAmB,CAAC1wE,WAAW,CAACqX,OAAb,EAAsBrnC,IAAtB,EAA4Bo8N,YAA5B,EAA0CC,WAA1C,CAAtC,CAAA;YACA,IAAIE,cAAc,GAAG/uM,IAAI,CAACuC,aAAL,CAAmB/G,GAAnB,EAAwB,OAAxB,CAArB,CAAA;AACAwE,YAAAA,IAAI,CAAC6hD,aAAL,CAAmBrmD,GAAnB,EAAwB,OAAxB,EAAiCwzM,UAAU,CAACD,cAAD,EAAiBD,YAAjB,CAA3C,CAAA,CAAA;WALF,CAAA,CAAA;AAOD,SAhBD,MAgBO;AACL,UAAA,IAAIA,YAAY,GAAG57H,mBAAmB,CAAC1wE,WAAW,CAACqX,OAAb,EAAsBrX,WAAW,CAAChwB,IAAlC,EAAwCygG,iBAAxC,EAA2Dp5D,OAAO,CAACo1L,cAAR,EAA3D,CAAtC,CAAA;AACA,UAAA,IAAIF,cAAc,GAAG/uM,IAAI,CAAClC,SAAL,CAAe,OAAf,CAArB,CAAA;UACAkC,IAAI,CAACyhB,SAAL,CAAe,OAAf,EAAwButL,UAAU,CAACD,cAAD,EAAiBD,YAAjB,CAAlC,CAAA,CAAA;AACD,SAAA;;AAED,QAAA,SAASE,UAAT,CAAoBD,cAApB,EAAoCD,YAApC,EAAkD;AAChD;AACA;UACA,IAAII,WAAW,GAAGH,cAAc,GAAGv7L,MAAA,CAAcA,MAAA,CAAc,EAAd,EAAkBs7L,YAAlB,CAAd,EAA+CC,cAA/C,CAAH,GAAoED,YAApG,CAAA;UACAI,WAAW,CAACv5M,KAAZ,GAAoB,IAApB,CAAA;AACA,UAAA,OAAOu5M,WAAP,CAAA;AACD,SAAA;OAzCH,CAAA,CAAA;AA2CD,KAAA;AACF,GAAA;;AAED,EAAA,SAAS1P,QAAT,GAAoB;IAClB,IAAI2P,WAAW,GAAGt1L,OAAO,CAACwnI,cAAR,EAAyBp9I,CAAAA,GAAzB,CAA6B,MAA7B,CAAlB,CAAA;AACA,IAAA,IAAIqxB,UAAU,GAAG64K,SAAS,CAACpqM,QAAV,CAAmB,OAAnB,CAAjB,CAAA;AACAuxB,IAAAA,UAAU,CAAC34B,MAAX,GAAoB6W,QAAA,CAAgB8hB,UAAU,CAAC34B,MAA3B,EAAmCwyM,WAAnC,CAApB,CAAA;;AAEA,IAAA,IAAI,CAAC75K,UAAU,CAACrxB,GAAX,CAAe,SAAf,CAAL,EAAgC;AAC9B,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAI9S,GAAG,GAAG9I,GAAG,CAACghC,KAAJ,GAAYl4B,GAAtB,CAAA;;AAEA,IAAA,IAAImkC,UAAU,CAACrxB,GAAX,CAAe,aAAf,CAAJ,EAAmC;MACjC9S,GAAG,CAACpM,YAAJ,CAAiB,YAAjB,EAA+BuwC,UAAU,CAACrxB,GAAX,CAAe,aAAf,CAA/B,CAAA,CAAA;AACA,MAAA,OAAA;AACD,KAAA;;AAED,IAAA,IAAImrM,SAAS,GAAGv1L,OAAO,CAACo1L,cAAR,EAAhB,CAAA;AACA,IAAA,IAAII,UAAU,GAAG/5K,UAAU,CAACrxB,GAAX,CAAe,CAAC,MAAD,EAAS,UAAT,CAAf,CAAA,IAAwC,EAAzD,CAAA;AACA,IAAA,IAAIqrM,YAAY,GAAGh6K,UAAU,CAACrxB,GAAX,CAAe,CAAC,QAAD,EAAW,UAAX,CAAf,CAAA,IAA0C,EAA7D,CAAA;IACA,IAAIsrM,gBAAgB,GAAGjkO,IAAI,CAAC8iC,GAAL,CAASghM,SAAT,EAAoBE,YAApB,CAAvB,CAAA;AACA,IAAA,IAAIE,SAAJ,CAAA;;IAEA,IAAIJ,SAAS,GAAG,CAAhB,EAAmB;AACjB;AACA,MAAA,OAAA;AACD,KAHD,MAGO;MACL,IAAI9tG,KAAK,GAAGmuG,QAAQ,EAApB,CAAA;;AAEA,MAAA,IAAInuG,KAAJ,EAAW;QACT,IAAIouG,SAAS,GAAGp6K,UAAU,CAACrxB,GAAX,CAAe,CAAC,SAAD,EAAY,WAAZ,CAAf,CAAhB,CAAA;AACAurM,QAAAA,SAAS,GAAGv2N,OAAO,CAACy2N,SAAD,EAAY;AAC7BpuG,UAAAA,KAAK,EAAEA,KAAAA;AADsB,SAAZ,CAAnB,CAAA;AAGD,OALD,MAKO;QACLkuG,SAAS,GAAGl6K,UAAU,CAACrxB,GAAX,CAAe,CAAC,SAAD,EAAY,cAAZ,CAAf,CAAZ,CAAA;AACD,OAAA;;MAED,IAAI0rM,cAAc,GAAG,EAArB,CAAA;AACA,MAAA,IAAI5gN,MAAM,GAAGqgN,SAAS,GAAG,CAAZ,GAAgB95K,UAAU,CAACrxB,GAAX,CAAe,CAAC,QAAD,EAAW,UAAX,EAAuB,QAAvB,CAAf,CAAhB,GAAmEqxB,UAAU,CAACrxB,GAAX,CAAe,CAAC,QAAD,EAAW,QAAX,EAAqB,QAArB,CAAf,CAAhF,CAAA;AACAurM,MAAAA,SAAS,IAAIv2N,OAAO,CAAC8V,MAAD,EAAS;AAC3BuvH,QAAAA,WAAW,EAAE8wF,SAAAA;AADc,OAAT,CAApB,CAAA;AAGAv1L,MAAAA,OAAO,CAAC+yB,UAAR,CAAmB,UAAUpqC,WAAV,EAAuBhH,GAAvB,EAA4B;QAC7C,IAAIA,GAAG,GAAG+zM,gBAAV,EAA4B;UAC1B,IAAIK,WAAW,GAAG,KAAK,CAAvB,CAAA;AACA,UAAA,IAAIlzL,UAAU,GAAGla,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,CAAjB,CAAA;AACA,UAAA,IAAI4rM,QAAQ,GAAGnzL,UAAU,GAAG,UAAH,GAAgB,aAAzC,CAAA;AACAkzL,UAAAA,WAAW,GAAGR,SAAS,GAAG,CAAZ,GAAgB95K,UAAU,CAACrxB,GAAX,CAAe,CAAC,QAAD,EAAW,UAAX,EAAuB4rM,QAAvB,CAAf,CAAhB,GAAmEv6K,UAAU,CAACrxB,GAAX,CAAe,CAAC,QAAD,EAAW,QAAX,EAAqB4rM,QAArB,CAAf,CAAjF,CAAA;AACAD,UAAAA,WAAW,GAAG32N,OAAO,CAAC22N,WAAD,EAAc;YACjCn0I,QAAQ,EAAEj5D,WAAW,CAACqZ,WADW;AAEjCa,YAAAA,UAAU,EAAEla,WAAW,CAACyB,GAAZ,CAAgB,MAAhB,CAFqB;AAGjC0Y,YAAAA,UAAU,EAAEmzL,iBAAiB,CAACttM,WAAW,CAACgyD,OAAb,CAAA;AAHI,WAAd,CAArB,CAAA;AAKA,UAAA,IAAIx0D,IAAI,GAAGwC,WAAW,CAAC3E,OAAZ,EAAX,CAAA;;AAEA,UAAA,IAAImC,IAAI,CAAC0T,KAAL,EAAA,GAAe27L,UAAnB,EAA+B;AAC7B;YACA,IAAIU,YAAY,GAAGz6K,UAAU,CAACrxB,GAAX,CAAe,CAAC,MAAD,EAAS,aAAT,CAAf,CAAnB,CAAA;AACA2rM,YAAAA,WAAW,IAAI32N,OAAO,CAAC82N,YAAD,EAAe;AACnCC,cAAAA,UAAU,EAAEX,UAAAA;AADuB,aAAf,CAAtB,CAAA;AAGD,WAND,MAMO;YACLO,WAAW,IAAIt6K,UAAU,CAACrxB,GAAX,CAAe,CAAC,MAAD,EAAS,SAAT,CAAf,CAAf,CAAA;AACD,WAAA;;AAED,UAAA,IAAIgsM,iBAAiB,GAAG36K,UAAU,CAACrxB,GAAX,CAAe,CAAC,MAAD,EAAS,WAAT,EAAsB,QAAtB,CAAf,CAAxB,CAAA;AACA,UAAA,IAAIisM,cAAc,GAAG56K,UAAU,CAACrxB,GAAX,CAAe,CAAC,MAAD,EAAS,WAAT,EAAsB,KAAtB,CAAf,CAArB,CAAA;UACA,IAAIksM,UAAU,GAAG,EAAjB,CAAA;;AAEA,UAAA,KAAK,IAAI3gO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwwB,IAAI,CAAC0T,KAAL,EAApB,EAAkClkC,CAAC,EAAnC,EAAuC;YACrC,IAAIA,CAAC,GAAG6/N,UAAR,EAAoB;AAClB,cAAA,IAAIpzI,MAAM,GAAGj8D,IAAI,CAACyF,OAAL,CAAaj2B,CAAb,CAAb,CAAA;AACA,cAAA,IAAIw7B,KAAK,GAAGhL,IAAI,CAAC0+C,SAAL,CAAelvE,CAAf,CAAZ,CAAA;AACA,cAAA,IAAI4gO,SAAS,GAAG96K,UAAU,CAACrxB,GAAX,CAAe,CAAC,MAAD,EAASg4D,MAAM,GAAG,UAAH,GAAgB,aAA/B,CAAf,CAAhB,CAAA;AACAk0I,cAAAA,UAAU,CAACtgO,IAAX,CAAgBoJ,OAAO,CAACm3N,SAAD,EAAY;AACjC59N,gBAAAA,IAAI,EAAEypF,MAD2B;AAEjCjxD,gBAAAA,KAAK,EAAEA,KAAK,CAACl7B,IAAN,CAAWmgO,iBAAX,CAAA;AAF0B,eAAZ,CAAvB,CAAA,CAAA;AAID,aAAA;AACF,WAAA;;AAEDL,UAAAA,WAAW,IAAIO,UAAU,CAACrgO,IAAX,CAAgBmgO,iBAAhB,IAAqCC,cAApD,CAAA;UACAP,cAAc,CAAC9/N,IAAf,CAAoB+/N,WAApB,CAAA,CAAA;AACD,SAAA;OAzCH,CAAA,CAAA;AA2CA,MAAA,IAAIS,cAAc,GAAG/6K,UAAU,CAACvxB,QAAX,CAAoB,CAAC,QAAD,EAAW,UAAX,EAAuB,WAAvB,CAApB,CAArB,CAAA;AACA,MAAA,IAAIusM,eAAe,GAAGD,cAAc,CAACpsM,GAAf,CAAmB,QAAnB,CAAtB,CAAA;AACA,MAAA,IAAIssM,YAAY,GAAGF,cAAc,CAACpsM,GAAf,CAAmB,KAAnB,CAAnB,CAAA;AACAurM,MAAAA,SAAS,IAAIG,cAAc,CAAC7/N,IAAf,CAAoBwgO,eAApB,IAAuCC,YAApD,CAAA;AACAp/M,MAAAA,GAAG,CAACpM,YAAJ,CAAiB,YAAjB,EAA+ByqN,SAA/B,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AAED,EAAA,SAASv2N,OAAT,CAAiB2C,GAAjB,EAAsB40N,SAAtB,EAAiC;AAC/B,IAAA,IAAI,CAACh9L,QAAA,CAAgB53B,GAAhB,CAAL,EAA2B;AACzB,MAAA,OAAOA,GAAP,CAAA;AACD,KAAA;;IAED,IAAIi5D,MAAM,GAAGj5D,GAAb,CAAA;IACA43B,MAAA,CAAYg9L,SAAZ,EAAuB,UAAUxlM,KAAV,EAAiBn4B,GAAjB,EAAsB;AAC3CgiE,MAAAA,MAAM,GAAGA,MAAM,CAAC57D,OAAP,CAAe,IAAI+kL,MAAJ,CAAW,SAAYnrL,GAAAA,GAAZ,GAAkB,SAA7B,EAAwC,GAAxC,CAAf,EAA6Dm4B,KAA7D,CAAT,CAAA;KADF,CAAA,CAAA;AAGA,IAAA,OAAO6pC,MAAP,CAAA;AACD,GAAA;;AAED,EAAA,SAAS46J,QAAT,GAAoB;AAClB,IAAA,IAAInuG,KAAK,GAAGznF,OAAO,CAAC5V,GAAR,CAAY,OAAZ,CAAZ,CAAA;;AAEA,IAAA,IAAIq9F,KAAK,IAAIA,KAAK,CAACxyH,MAAnB,EAA2B;AACzBwyH,MAAAA,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAb,CAAA;AACD,KAAA;;AAED,IAAA,OAAOA,KAAK,IAAIA,KAAK,CAACtuH,IAAtB,CAAA;AACD,GAAA;;EAED,SAAS88N,iBAAT,CAA2BjxN,IAA3B,EAAiC;AAC/B,IAAA,OAAOg7B,OAAO,CAACwnI,cAAR,EAAA,CAAyBp9I,GAAzB,CAA6B,CAAC,QAAD,EAAW,WAAX,CAA7B,CAAsDplB,CAAAA,IAAtD,KAA+D,MAAtE,CAAA;AACD,GAAA;AACF;;AC9PD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0Be,SAAS4xN,gBAAT,CAA0B9zM,MAA1B,EAAkC;AAC/C,EAAA,IAAI,CAACA,MAAD,IAAW,CAACA,MAAM,CAAC+zM,IAAvB,EAA6B;AAC3B,IAAA,OAAA;AACD,GAAA;;AAED,EAAA,IAAIA,IAAI,GAAG/zM,MAAM,CAAC+zM,IAAlB,CAL+C;;AAO/C,EAAA,IAAIA,IAAI,CAAC7xM,IAAL,IAAa,IAAjB,EAAuB;AACrB6xM,IAAAA,IAAI,CAACzC,OAAL,GAAeyC,IAAI,CAAC7xM,IAApB,CAAA;AACD,GAAA;;EAED6xM,IAAI,CAAC/xM,KAAL,GAAa+xM,IAAI,CAAC/xM,KAAL,IAAc,EAA3B,CAX+C;;AAa/C6U,EAAAA,MAAA,CAAY,CAAC,aAAD,EAAgB,SAAhB,EAA2B,QAA3B,EAAqC,MAArC,CAAZ,EAA0D,UAAUhhC,IAAV,EAAgB;AACxE,IAAA,IAAIk+N,IAAI,CAACl+N,IAAD,CAAJ,IAAc,IAAlB,EAAwB;MACtBk+N,IAAI,CAAC/xM,KAAL,CAAWnsB,IAAX,IAAmBk+N,IAAI,CAACl+N,IAAD,CAAvB,CAAA;AACD,KAAA;GAHH,CAAA,CAAA;AAKD;;AC7DD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BO,SAAS0c,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACosD,oBAAV,CAA+Bk1J,gBAA/B,CAAA,CAAA;EACAthN,SAAS,CAACqyB,cAAV,CAAyBryB,SAAS,CAACwyB,QAAV,CAAmByN,MAAnB,CAA0BuhL,IAAnD,EAAyDzC,UAAzD,CAAA,CAAA;AACD;;AC/CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BA,CAAA;AACA,IAAI0C,kCAAkC,GAAG;AACvC5lM,EAAAA,KAAK,EAAE,IADgC;AAEvC;AACA,EAAA,GAAA,EAAK,IAHkC;AAIvC,EAAA,IAAA,EAAM,KAJiC;AAKvC,EAAA,GAAA,EAAK,IALkC;AAMvC,EAAA,IAAA,EAAM,KANiC;AAOvC,EAAA,GAAA,EAAK,IAPkC;AAQvC,EAAA,IAAA,EAAM,IARiC;AASvC,EAAA,IAAA,EAAM,IATiC;AAUvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAjBuC,CAAzC;;AAqBA,IAAI6lM,eAAe;AACnB;AACA,YAAY;EACV,SAASA,eAAT,CAAyBC,IAAzB,EAA+B;AAC7B;IACA,IAAIC,SAAS,GAAG,IAAKC,CAAAA,QAAL,GAAgB53N,QAAQ,CAAC03N,IAAD,CAAR,GAAiB,IAAI9yC,MAAJ,CAAW8yC,IAAX,CAAjB,GAAoCG,QAAQ,CAACH,IAAD,CAAR,GAAiBA,IAAjB,GAAwB,IAA5F,CAAA;;IAEA,IAAIC,SAAS,IAAI,IAAjB,EAAuB;MACrB,IAAIvsN,MAAM,GAAG,EAAb,CAAA;;AAEA,MAAA,IAAItB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;QACzCoB,MAAM,GAAG08H,aAAa,CAAC,gBAAD,EAAmB4vF,IAAnB,EAAyB,IAAzB,CAAtB,CAAA;AACD,OAAA;;MAED3vF,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,KAAA;AACF,GAAA;;AAEDqsN,EAAAA,eAAe,CAAC/kO,SAAhB,CAA0BolO,QAA1B,GAAqC,UAAUC,IAAV,EAAgB;IACnD,IAAItyN,IAAI,GAAG,OAAOsyN,IAAlB,CAAA;AACA,IAAA,OAAO/3N,QAAQ,CAACyF,IAAD,CAAR,GAAiB,IAAA,CAAKmyN,QAAL,CAAcjqD,IAAd,CAAmBoqD,IAAnB,CAAjB,GAA4C31N,QAAQ,CAACqD,IAAD,CAAR,GAAiB,IAAKmyN,CAAAA,QAAL,CAAcjqD,IAAd,CAAmBoqD,IAAI,GAAG,EAA1B,CAAjB,GAAiD,KAApG,CAAA;GAFF,CAAA;;AAKA,EAAA,OAAON,eAAP,CAAA;AACD,CAtBD,EAFA,CAAA;;AA0BA,IAAIO,sBAAsB;AAC1B;AACA,YAAY;EACV,SAASA,sBAAT,GAAkC,EAAE;;AAEpCA,EAAAA,sBAAsB,CAACtlO,SAAvB,CAAiColO,QAAjC,GAA4C,YAAY;AACtD,IAAA,OAAO,KAAKlmM,KAAZ,CAAA;GADF,CAAA;;AAIA,EAAA,OAAOomM,sBAAP,CAAA;AACD,CARD,EAFA,CAAA;;AAYA,IAAIC,oBAAoB;AACxB;AACA,YAAY;EACV,SAASA,oBAAT,GAAgC,EAAE;;AAElCA,EAAAA,oBAAoB,CAACvlO,SAArB,CAA+BolO,QAA/B,GAA0C,YAAY;IACpD,IAAIn+N,QAAQ,GAAG,IAAA,CAAKA,QAApB,CAAA;;AAEA,IAAA,KAAK,IAAIvD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuD,QAAQ,CAACjE,MAA7B,EAAqCU,CAAC,EAAtC,EAA0C;MACxC,IAAI,CAACuD,QAAQ,CAACvD,CAAD,CAAR,CAAY0hO,QAAZ,EAAL,EAA6B;AAC3B,QAAA,OAAO,KAAP,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAO,IAAP,CAAA;GATF,CAAA;;AAYA,EAAA,OAAOG,oBAAP,CAAA;AACD,CAhBD,EAFA,CAAA;;AAoBA,IAAIC,mBAAmB;AACvB;AACA,YAAY;EACV,SAASA,mBAAT,GAA+B,EAAE;;AAEjCA,EAAAA,mBAAmB,CAACxlO,SAApB,CAA8BolO,QAA9B,GAAyC,YAAY;IACnD,IAAIn+N,QAAQ,GAAG,IAAA,CAAKA,QAApB,CAAA;;AAEA,IAAA,KAAK,IAAIvD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuD,QAAQ,CAACjE,MAA7B,EAAqCU,CAAC,EAAtC,EAA0C;AACxC,MAAA,IAAIuD,QAAQ,CAACvD,CAAD,CAAR,CAAY0hO,QAAZ,EAAJ,EAA4B;AAC1B,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAO,KAAP,CAAA;GATF,CAAA;;AAYA,EAAA,OAAOI,mBAAP,CAAA;AACD,CAhBD,EAFA,CAAA;;AAoBA,IAAIC,oBAAoB;AACxB;AACA,YAAY;EACV,SAASA,oBAAT,GAAgC,EAAE;;AAElCA,EAAAA,oBAAoB,CAACzlO,SAArB,CAA+BolO,QAA/B,GAA0C,YAAY;AACpD,IAAA,OAAO,CAAC,IAAA,CAAKx9N,KAAL,CAAWw9N,QAAX,EAAR,CAAA;GADF,CAAA;;AAIA,EAAA,OAAOK,oBAAP,CAAA;AACD,CARD,EAFA,CAAA;;AAYA,IAAIC,2BAA2B;AAC/B;AACA,YAAY;EACV,SAASA,2BAAT,GAAuC,EAAE;;AAEzCA,EAAAA,2BAA2B,CAAC1lO,SAA5B,CAAsColO,QAAtC,GAAiD,YAAY;AAC3D,IAAA,IAAIO,SAAS,GAAG,CAAC,CAAC,IAAKC,CAAAA,WAAvB,CAD2D;;IAG3D,IAAItjI,QAAQ,GAAG,IAAA,CAAKA,QAApB,CAAA;AACA,IAAA,IAAIujI,SAAS,GAAGvjI,QAAQ,CAAC,IAAA,CAAKwjI,gBAAN,CAAxB,CAAA;AACA,IAAA,IAAIC,YAAY,GAAGJ,SAAS,GAAG,IAAKC,CAAAA,WAAL,CAAiBC,SAAjB,CAAH,GAAiC,IAA7D,CAL2D;;AAO3D,IAAA,KAAK,IAAIniO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAKsiO,CAAAA,WAAL,CAAiBhjO,MAArC,EAA6CU,CAAC,EAA9C,EAAkD;AAChD,MAAA,IAAI,CAAC,IAAA,CAAKsiO,WAAL,CAAiBtiO,CAAjB,CAAoB0hO,CAAAA,QAApB,CAA6BO,SAAS,GAAGI,YAAH,GAAkBF,SAAxD,CAAL,EAAyE;AACvE,QAAA,OAAO,KAAP,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAO,IAAP,CAAA;GAbF,CAAA;;AAgBA,EAAA,OAAOH,2BAAP,CAAA;AACD,CApBD,EAFA,CAAA;;AAwBA,SAASO,WAAT,CAAqBC,UAArB,EAAiCC,OAAjC,EAA0C;AACxC,EAAA,IAAID,UAAU,KAAK,IAAf,IAAuBA,UAAU,KAAK,KAA1C,EAAiD;AAC/C,IAAA,IAAIE,IAAI,GAAG,IAAId,sBAAJ,EAAX,CAAA;IACAc,IAAI,CAAClnM,KAAL,GAAagnM,UAAb,CAAA;AACA,IAAA,OAAOE,IAAP,CAAA;AACD,GAAA;;EAED,IAAI1tN,MAAM,GAAG,EAAb,CAAA;;AAEA,EAAA,IAAI,CAAC2tN,gBAAgB,CAACH,UAAD,CAArB,EAAmC;AACjC,IAAA,IAAI9uN,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCoB,MAAAA,MAAM,GAAG08H,aAAa,CAAC,oDAAD,EAAuD8wF,UAAvD,CAAtB,CAAA;AACD,KAAA;;IAED7wF,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,GAAA;;EAED,IAAIwtN,UAAU,CAACI,GAAf,EAAoB;AAClB,IAAA,OAAOC,gBAAgB,CAAC,KAAD,EAAQL,UAAR,EAAoBC,OAApB,CAAvB,CAAA;AACD,GAFD,MAEO,IAAID,UAAU,CAACM,EAAf,EAAmB;AACxB,IAAA,OAAOD,gBAAgB,CAAC,IAAD,EAAOL,UAAP,EAAmBC,OAAnB,CAAvB,CAAA;AACD,GAFM,MAEA,IAAID,UAAU,CAACO,GAAf,EAAoB;AACzB,IAAA,OAAOC,cAAc,CAACR,UAAD,EAAaC,OAAb,CAArB,CAAA;AACD,GAAA;;AAED,EAAA,OAAOQ,qBAAqB,CAACT,UAAD,EAAaC,OAAb,CAA5B,CAAA;AACD,CAAA;;AAED,SAASI,gBAAT,CAA0BK,EAA1B,EAA8BV,UAA9B,EAA0CC,OAA1C,EAAmD;AACjD,EAAA,IAAIU,YAAY,GAAGX,UAAU,CAACU,EAAD,CAA7B,CAAA;EACA,IAAIluN,MAAM,GAAG,EAAb,CAAA;;AAEA,EAAA,IAAItB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;IACzCoB,MAAM,GAAG08H,aAAa,CAAC,uCAA0CwxF,GAAAA,EAA1C,GAA+C,uCAAhD,EAAyF,oBAAzF,EAA+GV,UAA/G,CAAtB,CAAA;AACD,GAAA;;AAED,EAAA,IAAI,CAAC7pN,SAAO,CAACwqN,YAAD,CAAZ,EAA4B;IAC1BxxF,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,GAAA;;AAED,EAAA,IAAI,CAACmuN,YAAY,CAAC7jO,MAAlB,EAA0B;IACxBqyI,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,GAAA;;AAED,EAAA,IAAI0tN,IAAI,GAAGQ,EAAE,KAAK,KAAP,GAAe,IAAIrB,oBAAJ,EAAf,GAA4C,IAAIC,mBAAJ,EAAvD,CAAA;EACAY,IAAI,CAACn/N,QAAL,GAAgBrC,GAAG,CAACiiO,YAAD,EAAe,UAAUC,SAAV,EAAqB;AACrD,IAAA,OAAOb,WAAW,CAACa,SAAD,EAAYX,OAAZ,CAAlB,CAAA;AACD,GAFkB,CAAnB,CAAA;;AAIA,EAAA,IAAI,CAACC,IAAI,CAACn/N,QAAL,CAAcjE,MAAnB,EAA2B;IACzBqyI,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,GAAA;;AAED,EAAA,OAAO0tN,IAAP,CAAA;AACD,CAAA;;AAED,SAASM,cAAT,CAAwBR,UAAxB,EAAoCC,OAApC,EAA6C;AAC3C,EAAA,IAAIW,SAAS,GAAGZ,UAAU,CAACO,GAA3B,CAAA;EACA,IAAI/tN,MAAM,GAAG,EAAb,CAAA;;AAEA,EAAA,IAAItB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;IACzCoB,MAAM,GAAG08H,aAAa,CAAC,2CAAD,EAA8C,oBAA9C,EAAoE8wF,UAApE,CAAtB,CAAA;AACD,GAAA;;AAED,EAAA,IAAI,CAACG,gBAAgB,CAACS,SAAD,CAArB,EAAkC;IAChCzxF,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,GAAA;;AAED,EAAA,IAAI0tN,IAAI,GAAG,IAAIX,oBAAJ,EAAX,CAAA;EACAW,IAAI,CAACx+N,KAAL,GAAaq+N,WAAW,CAACa,SAAD,EAAYX,OAAZ,CAAxB,CAAA;;AAEA,EAAA,IAAI,CAACC,IAAI,CAACx+N,KAAV,EAAiB;IACfytI,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,GAAA;;AAED,EAAA,OAAO0tN,IAAP,CAAA;AACD,CAAA;;AAED,SAASO,qBAAT,CAA+BT,UAA/B,EAA2CC,OAA3C,EAAoD;EAClD,IAAIztN,MAAM,GAAG,EAAb,CAAA;AACA,EAAA,IAAIotN,gBAAgB,GAAGK,OAAO,CAACY,eAAR,CAAwBb,UAAxB,CAAvB,CAAA;EACA,IAAIF,WAAW,GAAG,EAAlB,CAAA;AACA,EAAA,IAAIgB,QAAQ,GAAG7+N,IAAI,CAAC+9N,UAAD,CAAnB,CAAA;AACA,EAAA,IAAIe,UAAU,GAAGf,UAAU,CAAC7qJ,MAA5B,CAAA;EACA,IAAIuqJ,WAAW,GAAGqB,UAAU,GAAGC,iBAAiB,CAACD,UAAD,CAApB,GAAmC,IAA/D,CAAA;;AAEA,EAAA,KAAK,IAAIvjO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsjO,QAAQ,CAAChkO,MAA7B,EAAqCU,CAAC,EAAtC,EAA0C;AACxC,IAAA,IAAIyjO,MAAM,GAAGH,QAAQ,CAACtjO,CAAD,CAArB,CAAA;;AAEA,IAAA,IAAIyjO,MAAM,KAAK,QAAX,IAAuBhB,OAAO,CAACiB,kBAAR,CAA2BjvM,GAA3B,CAA+BgvM,MAA/B,CAA3B,EAAmE;AACjE,MAAA,SAAA;AACD,KAAA;;AAED,IAAA,IAAIP,EAAE,GAAGppJ,MAAM,CAACsnJ,kCAAD,EAAqCqC,MAArC,CAAN,GAAqDrC,kCAAkC,CAACqC,MAAD,CAAvF,GAAkGA,MAA3G,CAAA;AACA,IAAA,IAAIE,YAAY,GAAGnB,UAAU,CAACiB,MAAD,CAA7B,CAAA;IACA,IAAIG,eAAe,GAAG1B,WAAW,GAAGA,WAAW,CAACyB,YAAD,CAAd,GAA+BA,YAAhE,CAAA;AACA,IAAA,IAAIE,SAAS,GAAGC,sBAAsB,CAACZ,EAAD,EAAKU,eAAL,CAAtB,IAA+CV,EAAE,KAAK,KAAP,IAAgB,IAAI7B,eAAJ,CAAoBuC,eAApB,CAA/E,CAAA;;IAEA,IAAI,CAACC,SAAL,EAAgB;AACd,MAAA,IAAInwN,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;QACzCoB,MAAM,GAAG08H,aAAa,CAAC,iCAAA,GAAoC+xF,MAApC,GAA6C,iBAA9C,EAAiEjB,UAAjE,CAAtB,CAAA;AACD,OAAA;;MAED7wF,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,KAAA;;IAEDstN,WAAW,CAACjiO,IAAZ,CAAiBwjO,SAAjB,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAI,CAACvB,WAAW,CAAChjO,MAAjB,EAAyB;AACvB,IAAA,IAAIoU,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzCoB,MAAM,GAAG08H,aAAa,CAAC,uDAAD,EAA0D,oBAA1D,EAAgF8wF,UAAhF,CAAtB,CAAA;AACD,KAHsB;;;IAMvB7wF,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,GAAA;;AAED,EAAA,IAAI0tN,IAAI,GAAG,IAAIV,2BAAJ,EAAX,CAAA;EACAU,IAAI,CAACN,gBAAL,GAAwBA,gBAAxB,CAAA;EACAM,IAAI,CAACR,WAAL,GAAmBA,WAAnB,CAAA;AACAQ,EAAAA,IAAI,CAAC9jI,QAAL,GAAgB6jI,OAAO,CAAC7jI,QAAxB,CAAA;EACA8jI,IAAI,CAACJ,WAAL,GAAmBA,WAAnB,CAAA;AACA,EAAA,OAAOI,IAAP,CAAA;AACD,CAAA;;AAED,SAASC,gBAAT,CAA0BziO,GAA1B,EAA+B;EAC7B,OAAO4Y,UAAQ,CAAC5Y,GAAD,CAAR,IAAiB,CAAC21J,WAAW,CAAC31J,GAAD,CAApC,CAAA;AACD,CAAA;;AAED,IAAI6jO,2BAA2B;AAC/B;AACA,YAAY;AACV,EAAA,SAASA,2BAAT,CAAqCvB,UAArC,EAAiDC,OAAjD,EAA0D;AACxD,IAAA,IAAA,CAAKuB,KAAL,GAAazB,WAAW,CAACC,UAAD,EAAaC,OAAb,CAAxB,CAAA;AACD,GAAA;;AAEDsB,EAAAA,2BAA2B,CAACznO,SAA5B,CAAsColO,QAAtC,GAAiD,YAAY;AAC3D,IAAA,OAAO,IAAKsC,CAAAA,KAAL,CAAWtC,QAAX,EAAP,CAAA;GADF,CAAA;;AAIA,EAAA,OAAOqC,2BAAP,CAAA;AACD,CAVD,EAFA,CAAA;;AAcA,CAAA;AACO,SAASE,0BAAT,CAAoCzB,UAApC,EAAgDC,OAAhD,EAAyD;AAC9D,EAAA,OAAO,IAAIsB,2BAAJ,CAAgCvB,UAAhC,EAA4CC,OAA5C,CAAP,CAAA;AACD;;ACxUD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4BO,IAAIyB,eAAe,GAAG;AAC3B70N,EAAAA,IAAI,EAAE,gBADqB;AAE3B;EACAjH,SAAS,EAAE,SAAUooC,SAAAA,CAAAA,MAAV,EAAkB;AAC3B;AACA;AACA;AACA;AACA,IAAA,IAAI+gG,QAAQ,GAAG/gG,MAAM,CAAC+gG,QAAtB,CAAA;AACA,IAAA,IAAI4yF,OAAJ,CAAA;AACA,IAAA,IAAIC,SAAS,GAAGH,0BAA0B,CAACzzL,MAAM,CAACzvB,MAAR,EAAgB;MACxD2iN,kBAAkB,EAAEhlJ,aAAa,CAAC;AAChC14C,QAAAA,SAAS,EAAE,IAAA;AADqB,OAAD,CADuB;MAIxDq9L,eAAe,EAAE,SAAUb,eAAAA,CAAAA,UAAV,EAAsB;QACrC,IAAIxtN,MAAM,GAAG,EAAb,CAAA;AACA,QAAA,IAAIqvN,QAAQ,GAAG7B,UAAU,CAACx8L,SAA1B,CAAA;;AAEA,QAAA,IAAI,CAAC8zC,MAAM,CAAC0oJ,UAAD,EAAa,WAAb,CAAX,EAAsC;AACpC,UAAA,IAAI9uN,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;YACzCoB,MAAM,GAAG08H,aAAa,CAAC,yDAAD,EAA4D,oBAA5D,EAAkF8wF,UAAlF,CAAtB,CAAA;AACD,WAAA;;UAED7wF,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,SAAA;;AAED,QAAA,IAAI8wB,OAAO,GAAGyrG,QAAQ,CAACxrG,gBAAT,CAA0Bs+L,QAA1B,CAAd,CAAA;;QAEA,IAAI,CAACv+L,OAAL,EAAc;AACZ,UAAA,IAAIpyB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;YACzCoB,MAAM,GAAG08H,aAAa,CAAC,mCAAA,GAAsC2yF,QAAtC,GAAiD,KAAlD,EAAyD,uBAAzD,EAAkF9yF,QAAQ,CAAC+yF,qBAAT,EAAlF,EAAoH,KAApH,EAA2H,oBAA3H,EAAiJ9B,UAAjJ,EAA6J,KAA7J,CAAtB,CAAA;AACD,WAAA;;UAED7wF,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,SAAA;;QAED,OAAO;UACLozB,MAAM,EAAEtC,OAAO,CAACyV,KAAAA;SADlB,CAAA;OA1BsD;MA8BxDqjD,QAAQ,EAAE,SAAU2lI,QAAAA,CAAAA,KAAV,EAAiB;QACzB,OAAOhzF,QAAQ,CAACizF,qBAAT,CAA+BL,OAA/B,EAAwCI,KAAK,CAACn8L,MAA9C,CAAP,CAAA;AACD,OAAA;AAhCuD,KAAhB,CAA1C,CAAA;IAkCA,IAAIq8L,UAAU,GAAG,EAAjB,CAAA;;AAEA,IAAA,KAAK,IAAIzkO,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGkoI,QAAQ,CAACrtG,KAAT,EAAtB,EAAwClkC,CAAC,GAAGqJ,GAA5C,EAAiDrJ,CAAC,EAAlD,EAAsD;AACpDmkO,MAAAA,OAAO,GAAG5yF,QAAQ,CAAClwC,cAAT,CAAwBrhG,CAAxB,CAAV,CAAA;;AAEA,MAAA,IAAIokO,SAAS,CAAC1C,QAAV,EAAJ,EAA0B;QACxB+C,UAAU,CAACpkO,IAAX,CAAgB8jO,OAAhB,CAAA,CAAA;AACD,OAAA;AACF,KAAA;;IAED,OAAO;AACL3zM,MAAAA,IAAI,EAAEi0M,UAAAA;KADR,CAAA;AAGD,GAAA;AAzD0B,CAAtB;;AC7CP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA8BA,IAAIC,SAAS,GAAG,EAAhB,CAAA;;AAEA,IAAIhxN,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;EACzC8wN,SAAS,GAAG,CAAC,uBAAD,EAA0B,oCAA1B,EAAgE,8EAAhE,CAAgJpkO,CAAAA,IAAhJ,CAAqJ,GAArJ,CAAZ,CAAA;AACD,CAAA;;AAEM,IAAIqkO,aAAa,GAAG;AACzBt1N,EAAAA,IAAI,EAAE,cADmB;EAEzBjH,SAAS,EAAE,SAAUooC,SAAAA,CAAAA,MAAV,EAAkB;AAC3B,IAAA,IAAI+gG,QAAQ,GAAG/gG,MAAM,CAAC+gG,QAAtB,CAAA;AACA,IAAA,IAAIxwH,MAAM,GAAGyvB,MAAM,CAACzvB,MAApB,CAAA;AACA,IAAA,IAAI/L,MAAM,GAAG,EAAb,CAH2B;AAI3B;AACA;AACA;;AAEA,IAAA,IAAI4vN,aAAa,GAAG3+H,gBAAgB,CAACllF,MAAD,CAApC,CAAA;;AAEA,IAAA,IAAI,CAAC6jN,aAAa,CAACtlO,MAAnB,EAA2B;AACzB,MAAA,IAAIoU,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCoB,QAAAA,MAAM,GAAG,mCAAT,CAAA;AACD,OAAA;;MAED28H,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,KAAA;;IAED,IAAI6vN,YAAY,GAAG,EAAnB,CAAA;AACA77N,IAAAA,MAAI,CAAC47N,aAAD,EAAgB,UAAUE,SAAV,EAAqB;AACvC,MAAA,IAAIT,QAAQ,GAAGS,SAAS,CAAC9+L,SAAzB,CAAA;AACA,MAAA,IAAIk4D,KAAK,GAAG4mI,SAAS,CAAC5mI,KAAtB,CAAA;AACA,MAAA,IAAIqlI,UAAU,GAAGuB,SAAS,CAACntJ,MAA3B,CAAA;AACA,MAAA,IAAIotJ,YAAY,GAAGD,SAAS,CAACC,YAA7B,CAAA;;MAEA,IAAIV,QAAQ,IAAI,IAAhB,EAAsB;AACpB,QAAA,IAAI3wN,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;UACzCoB,MAAM,GAAG,0DAA0D0vN,SAAnE,CAAA;AACD,SAAA;;QAED/yF,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,OAAA;;AAED,MAAA,IAAIkpF,KAAK,KAAK,KAAV,IAAmBA,KAAK,KAAK,MAAjC,EAAyC;AACvC,QAAA,IAAIxqF,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;UACzCoB,MAAM,GAAG,sDAAsD0vN,SAA/D,CAAA;AACD,SAAA;;QAED/yF,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,OAAA;;MAED,IAAI+vN,YAAY,IAAIA,YAAY,KAAK,KAAjC,IAA0CA,YAAY,KAAK,KAA/D,EAAsE;QACpE,IAAIC,QAAQ,GAAG,EAAf,CAAA;;AAEA,QAAA,IAAItxN,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCoxN,UAAAA,QAAQ,GAAG,mDAAA,GAAsDD,YAAtD,GAAqE,IAAhF,CAAA;AACD,SAAA;;QAEDpzF,UAAU,CAACqzF,QAAD,CAAV,CAAA;AACD,OAAA;;AAED,MAAA,IAAI9mI,KAAK,KAAK,KAAV,IAAmBA,KAAK,KAAK,MAAjC,EAAyC;QACvC,IAAI+mI,QAAQ,GAAG,EAAf,CAAA;;AAEA,QAAA,IAAIvxN,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCqxN,UAAAA,QAAQ,GAAG,6CAAA,GAAgD/mI,KAAhD,GAAwD,IAAnE,CAAA;AACD,SAAA;;QAEDyzC,UAAU,CAACszF,QAAD,CAAV,CAAA;AACD,OAAA;;AAED,MAAA,IAAIn/L,OAAO,GAAGyrG,QAAQ,CAACxrG,gBAAT,CAA0Bs+L,QAA1B,CAAd,CAAA;;MAEA,IAAI,CAACv+L,OAAL,EAAc;AACZ,QAAA,IAAIpyB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;UACzCoB,MAAM,GAAG08H,aAAa,CAAC,mCAAA,GAAsC2yF,QAAtC,GAAiD,KAAlD,EAAyD,uBAAzD,EAAkF9yF,QAAQ,CAAC+yF,qBAAT,EAAlF,EAAoH,KAApH,EAA2H,iBAA3H,EAA8IQ,SAA9I,EAAyJ,KAAzJ,CAAtB,CAAA;AACD,SAAA;;QAEDnzF,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,OAAA;;MAED,IAAI2iE,MAAM,GAAG4rJ,UAAU,GAAGC,iBAAiB,CAACD,UAAD,CAApB,GAAmC,IAA1D,CAAA;;AAEA,MAAA,IAAIA,UAAU,IAAI,CAAC5rJ,MAAnB,EAA2B;AACzB,QAAA,IAAIjkE,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCoB,UAAAA,MAAM,GAAG08H,aAAa,CAAC,sBAAA,GAAyB6xF,UAAzB,GAAsC,KAAvC,EAA8C,iBAA9C,EAAiEuB,SAAjE,EAA4E,KAA5E,CAAtB,CAAA;AACD,SAAA;;QAEDnzF,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,OAAA;;MAED6vN,YAAY,CAACxkO,IAAb,CAAkB;QAChB+nC,MAAM,EAAEtC,OAAO,CAACyV,KADA;AAEhBo8B,QAAAA,MAAM,EAAEA,MAFQ;AAGhButJ,QAAAA,UAAU,EAAE,IAAIC,mBAAJ,CAAwBjnI,KAAxB,EAA+B6mI,YAA/B,CAAA;OAHd,CAAA,CAAA;KA9DE,CAAJ,CAnB2B;;AAwF3B,IAAA,IAAIvzF,YAAY,GAAGD,QAAQ,CAACC,YAA5B,CAAA;;AAEA,IAAA,IAAIA,YAAY,KAAKC,wBAAjB,IAA6CD,YAAY,KAAK4zF,yBAAlE,EAA6F;AAC3F,MAAA,IAAI1xN,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;AACzCoB,QAAAA,MAAM,GAAG,gBAAA,GAAmBw8H,YAAnB,GAAkC,wBAA3C,CAAA;AACD,OAAA;;MAEDG,UAAU,CAAC38H,MAAD,CAAV,CAAA;AACD,KAhG0B;;;IAmG3B,IAAIyvN,UAAU,GAAG,EAAjB,CAAA;;AAEA,IAAA,KAAK,IAAIzkO,CAAC,GAAG,CAAR,EAAWqJ,GAAG,GAAGkoI,QAAQ,CAACrtG,KAAT,EAAtB,EAAwClkC,CAAC,GAAGqJ,GAA5C,EAAiDrJ,CAAC,EAAlD,EAAsD;MACpDykO,UAAU,CAACpkO,IAAX,CAAgBkxI,QAAQ,CAAClwC,cAAT,CAAwBrhG,CAAxB,CAAhB,CAAA,CAAA;AACD,KAAA;;AAEDykO,IAAAA,UAAU,CAAC3mM,IAAX,CAAgB,UAAUg+K,KAAV,EAAiB5E,KAAjB,EAAwB;AACtC,MAAA,KAAK,IAAIl3M,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6kO,YAAY,CAACvlO,MAAjC,EAAyCU,CAAC,EAA1C,EAA8C;AAC5C,QAAA,IAAIqlO,QAAQ,GAAGR,YAAY,CAAC7kO,CAAD,CAA3B,CAAA;QACA,IAAIslO,IAAI,GAAG/zF,QAAQ,CAACizF,qBAAT,CAA+B1oB,KAA/B,EAAsCupB,QAAQ,CAACj9L,MAA/C,CAAX,CAAA;QACA,IAAIm9L,IAAI,GAAGh0F,QAAQ,CAACizF,qBAAT,CAA+BttB,KAA/B,EAAsCmuB,QAAQ,CAACj9L,MAA/C,CAAX,CAAA;;QAEA,IAAIi9L,QAAQ,CAAC1tJ,MAAb,EAAqB;AACnB2tJ,UAAAA,IAAI,GAAGD,QAAQ,CAAC1tJ,MAAT,CAAgB2tJ,IAAhB,CAAP,CAAA;AACAC,UAAAA,IAAI,GAAGF,QAAQ,CAAC1tJ,MAAT,CAAgB4tJ,IAAhB,CAAP,CAAA;AACD,SAAA;;QAED,IAAIlgK,MAAM,GAAGggK,QAAQ,CAACH,UAAT,CAAoBxD,QAApB,CAA6B4D,IAA7B,EAAmCC,IAAnC,CAAb,CAAA;;QAEA,IAAIlgK,MAAM,KAAK,CAAf,EAAkB;AAChB,UAAA,OAAOA,MAAP,CAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,OAAO,CAAP,CAAA;KAlBF,CAAA,CAAA;IAoBA,OAAO;AACL70C,MAAAA,IAAI,EAAEi0M,UAAAA;KADR,CAAA;AAGD,GAAA;AAlIwB,CAApB;;ACrDP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA2BO,SAAS/kN,SAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAACiyH,iBAAV,CAA4BsyF,eAA5B,CAAA,CAAA;EACAvkN,SAAS,CAACiyH,iBAAV,CAA4B+yF,aAA5B,CAAA,CAAA;AACD;;AC/CD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAwCA,IAAIa,YAAY;AAChB;AACA,UAAUhlN,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAAC+kN,YAAD,EAAehlN,MAAf,CAAT,CAAA;;AAEA,EAAA,SAASglN,YAAT,GAAwB;AACtB,IAAA,IAAI9kN,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;IAEAygB,KAAK,CAACrR,IAAN,GAAa,SAAb,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAED8kN,YAAY,CAAClpO,SAAb,CAAuBytC,IAAvB,GAA8B,UAAU5c,MAAV,EAAkBsgD,WAAlB,EAA+BpjC,OAA/B,EAAwC;AACpE7pB,IAAAA,MAAM,CAAClkB,SAAP,CAAiBytC,IAAjB,CAAsBppB,IAAtB,CAA2B,IAA3B,EAAiCwM,MAAjC,EAAyCsgD,WAAzC,EAAsDpjC,OAAtD,CAAA,CAAA;;AAEA,IAAA,IAAA,CAAKo7L,cAAL,GAAsB,IAAIC,aAAJ,CAAkB,IAAlB,CAAtB,CAAA;IACAC,2BAA2B,CAAC,IAAD,CAA3B,CAAA;GAJF,CAAA;;EAOAH,YAAY,CAAClpO,SAAb,CAAuBquD,WAAvB,GAAqC,UAAUmsE,SAAV,EAAqBzsF,OAArB,EAA8B;IACjE7pB,MAAM,CAAClkB,SAAP,CAAiBquD,WAAjB,CAA6BhqC,IAA7B,CAAkC,IAAlC,EAAwCm2G,SAAxC,EAAmDzsF,OAAnD,CAAA,CAAA;;IAEAs7L,2BAA2B,CAAC,IAAD,CAA3B,CAAA;GAHF,CAAA;;AAMAH,EAAAA,YAAY,CAAClpO,SAAb,CAAuB42D,aAAvB,GAAuC,YAAY;IACjD,IAAKuyK,CAAAA,cAAL,CAAoBt/M,KAApB,EAAA,CAAA;GADF,CAAA;;AAIAq/M,EAAAA,YAAY,CAAClpO,SAAb,CAAuBspO,gBAAvB,GAA0C,YAAY;AACpD,IAAA,OAAO,KAAKH,cAAZ,CAAA;GADF,CAAA;;EAIAD,YAAY,CAACn2N,IAAb,GAAoB,SAApB,CAAA;EACAm2N,YAAY,CAACv2M,aAAb,GAA6B;AAC3B42M,IAAAA,cAAc,EAAEC,uBAAAA;GADlB,CAAA;AAGA,EAAA,OAAON,YAAP,CAAA;AACD,CApCD,CAoCEn2K,cApCF,CAFA,CAAA;;AA0CA,IAAI02K,WAAW;AACf;AACA,UAAUvlN,MAAV,EAAkB;AAChBC,EAAAA,WAAS,CAACslN,WAAD,EAAcvlN,MAAd,CAAT,CAAA;;AAEA,EAAA,SAASulN,WAAT,GAAuB;AACrB,IAAA,IAAIrlN,KAAK,GAAGF,MAAM,KAAK,IAAX,IAAmBA,MAAM,CAACwM,KAAP,CAAa,IAAb,EAAmB/sB,SAAnB,CAAnB,IAAoD,IAAhE,CAAA;;IAEAygB,KAAK,CAACrR,IAAN,GAAa,SAAb,CAAA;AACA,IAAA,OAAOqR,KAAP,CAAA;AACD,GAAA;;EAEDqlN,WAAW,CAAC12N,IAAZ,GAAmB,SAAnB,CAAA;AACA,EAAA,OAAO02N,WAAP,CAAA;AACD,CAZD,CAYEt8J,aAZF,CAFA,CAAA;;AAgBO,SAAS/pD,OAAT,CAAiBC,SAAjB,EAA4B;EACjCA,SAAS,CAAC6zC,sBAAV,CAAiCgyK,YAAjC,CAAA,CAAA;EACA7lN,SAAS,CAACksD,qBAAV,CAAgCk6J,WAAhC,CAAA,CAAA;AACD;;ACtHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACFA/5J,GAAG,CAAC,CACFg6J,SADE,EAEFC,SAFE,EAGFC,SAHE,EAIFC,SAJE,EAKFC,SALE,EAMFC,SANE,EAOFC,SAPE,EAQFC,SARE,EASFC,SATE,CAAD,CAAH,CAAA;IAWaC,OAAO,GAAGC,WAAW,CAACC,MAAD,EAA3B;IACMC,OAAO,GAAGF,WAAW,CAACG,QAAD,EAA3B;IACMC,QAAQ,GAAGJ,WAAW,CAACK,QAAD;;;;"}